Category: Development

Revolutionizing Kernel Programming with eBPF: A Hands-on Tutorial

2025-08-31
Revolutionizing Kernel Programming with eBPF: A Hands-on Tutorial

eBPF is a revolutionary technology that lets you run sandboxed programs within the Linux kernel without modifying the kernel source code. This tutorial uses a simple firewall example to demonstrate how to monitor and block traffic from a specific IP address using eBPF. The guide includes Python and C code examples, showing how to leverage eBPF's efficiency and capabilities for network monitoring and security. Learn how to build a packet counter and firewall using eBPF today!

Development kernel programming

Conquering ADHD: Strategies and Tactics

2025-08-31
Conquering ADHD: Strategies and Tactics

This post delves into managing ADHD, divided into 'Strategies' and 'Tactics'. 'Strategies' focus on high-level control systems such as medication, memory management, energy allocation, and introspection. 'Tactics' list micro-level improvements, including task selection, visual field management, regular project check-ins, and inbox management. The author emphasizes medication as a first-line treatment for ADHD and shares practical tips based on personal experience, guiding readers to build efficient personal growth systems and ultimately conquer ADHD.

Development

Beginner-Friendly Jujutsu Version Control Tutorial

2025-08-31

This tutorial introduces the Jujutsu version control system, requiring no prior experience with Git or other VCS. Structured into levels, it progresses from basic solo use to collaboration and advanced techniques. An example repository and reset script aid learning and progress resets. Even if you're familiar with Git, this tutorial offers an easier path to mastering Jujutsu.

Development

Senior Devs Embrace AI Coding More Than Juniors: A Fastly Survey

2025-08-31
Senior Devs Embrace AI Coding More Than Juniors: A Fastly Survey

A recent Fastly survey of 791 US developers reveals a surprising trend: senior developers (10+ years experience) are more than twice as likely to use AI code generation tools like Copilot and generate over half their code with them, compared to junior developers. This isn't due to laziness, but rather the diverse responsibilities of senior roles. AI helps them prototype faster, though more time is needed for bug fixing. While most senior devs find AI boosts efficiency and enjoyment, juniors prefer traditional coding and are less concerned with energy consumption. The survey highlights the experience advantage in spotting AI-generated errors. Overall, AI coding tools are making the job more enjoyable for over 70% of all respondents.

Development code generation tools

Can Databases Replace Caches Entirely?

2025-08-31

This post explores the possibility of databases completely replacing caches. While databases offer some caching capabilities like buffer pools and read replicas, caches excel at low-latency data access, especially for specific data subsets and pre-computed data. To replace caches, databases need to address several challenges: efficiently handling numerous read replicas, enabling partial read replicas, prioritizing specific data, and implementing efficient incremental view maintenance (IVM). The author suggests that combining IVM with partial read replicas might eventually allow databases to partially replace caches, but a gap remains.

(avi.im)
Development read replicas

AI Coding Assistants: Empowerment or Threat?

2025-08-31
AI Coding Assistants: Empowerment or Threat?

The author explores the impact of AI coding assistants through personal experience. Initially feeling disheartened about AI replacing programmers, weeks of use revealed AI assistants not only boost coding efficiency but also offer new learning opportunities and creative workflows. However, this experience also brings contradictions: control over AI code, responsibility for bugs, and anxieties about programmers' self-worth. The author concludes AI assistants aren't simply threats or boons, but complex emotional experiences ultimately enhancing the joy of coding, like a human-speaking programming partner.

Development

arXivLabs: Experimental Projects with Community Collaborators

2025-08-31
arXivLabs: Experimental Projects with Community Collaborators

arXivLabs is a framework enabling collaborators to develop and share new arXiv features directly on the website. Individuals and organizations involved embrace arXiv's values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only partners with those who share them. Got an idea for a project that will benefit the arXiv community? Learn more about arXivLabs!

Development

C++ shared_ptr's Non-Atomic Reference Counting: A Microbenchmark Surprise

2025-08-31
C++ shared_ptr's Non-Atomic Reference Counting: A Microbenchmark Surprise

A microbenchmark comparing Rust and C++ data structures revealed unexpected behavior in C++'s `shared_ptr`. In single-threaded environments, GNU libstdc++ optimizes `shared_ptr`'s reference counting to be non-atomic if `pthread_create` isn't imported. This performance optimization, while generally safe, can lead to issues in uncommon scenarios, such as when a dynamically linked library is loaded by a statically linked program. The author investigated other C++ implementations (libcxx and Visual C++) and ultimately resolved the performance discrepancy by referencing `pthread_create` in their benchmark. The discovery highlights the complexities of low-level optimizations and their potential unintended consequences.

Development

Sniffly: A Local Dashboard for Analyzing Claude Code Logs

2025-08-31
Sniffly: A Local Dashboard for Analyzing Claude Code Logs

Sniffly is a locally-run tool that analyzes your Claude Code logs to help you improve your usage. It identifies errors made by Claude Code, allowing you to learn from mistakes and share your instructions with coworkers. Sniffly features a shareable dashboard showing project stats and instructions, with customizable options like port and auto-browser settings. All data processing is local, ensuring privacy and security.

Development local tool

Manage Your Dotfiles with Just Git

2025-08-31

Tired of complex dotfile managers like chezmoi, stow, and yadm? This article shows you how to use Git to manage your dotfiles with simplicity. Create a Git repository in your home directory, ignore all files with a `.gitignore`, and then force-add the files you want to track (e.g., `~/.bashrc`). Use `git add -f` or create an alias like `track-file` for easy tracking and syncing across machines. Handle machine-specific configurations with simple hostname checks in your main dotfiles. Ditch the extra tools and manage your dotfiles efficiently with Git!

Development

Hugo: My Static Site Generator Nightmare

2025-08-31

I used to love Hugo, a static site generator, for its speed, simplicity, and ease of use. However, with continuous updates, it's become increasingly complex and has repeatedly broken backward compatibility. My recent attempt to write a blog post resulted in Hugo updates causing my site build to fail, costing me hours of troubleshooting. I don't care about Hugo's internals; I just want a working blog. Therefore, I'm abandoning Hugo, seeking alternatives, and plan to compile an older, unchanging version myself.

Bitwig Studio 6 Beta Focuses on Editing and Automation

2025-08-31
Bitwig Studio 6 Beta Focuses on Editing and Automation

Bitwig Studio 6 beta is out now, focusing on enhancing editing and automation workflows rather than AI or gimmicky features. New features include an Automation Mode, improved editing gestures, automation clips, project-wide key signatures, and a refreshed UI. This update delivers significant improvements to the editing experience, addressing long-standing requests from engineers and users.

Development Editing Automation

Saying Goodbye to Static Config Files: How Cloud Life Halved Infrastructure Delivery Times

2025-08-31
Saying Goodbye to Static Config Files: How Cloud Life Halved Infrastructure Delivery Times

Cloud Life, using System Initiative (SI), eliminated static configuration files, cutting infrastructure delivery times by over half. The article details their transition from a traditional Terraform, config repos, PR reviews, and CI/CD workflow. SI's real-time visualization and collaborative editing enabled instant feedback and testing of infrastructure changes, dramatically improving efficiency and reliability. They overcame cultural change challenges and surprisingly found SI boosted team morale, simplified onboarding, and improved governance.

Development

Qbix Q.js: A Lightweight Frontend Framework Challenging React and Vue

2025-08-31
Qbix Q.js: A Lightweight Frontend Framework Challenging React and Vue

Qbix has released Q.js, a lightweight frontend framework weighing in at only ~40KB (minified and gzipped). Despite its size, it packs components, routing, caching, internationalization, and more. It boasts a zero build step, direct DOM manipulation for speed, and supports progressive enhancement and SEO. Compared to React, Vue, and Angular, Q.js offers significant advantages in size, performance, and ease of use, making it ideal for high-performance apps and real-time dashboards.

Development frontend framework

Vlang: Go's Spicy Counterpart? A Deep Dive

2025-08-31
Vlang: Go's Spicy Counterpart? A Deep Dive

This article compares Go and V, two programming languages. V shares similarities with Go in syntax but offers additional features such as more flexible error handling, powerful structs, enums, and lambda expressions. The author showcases V's strengths through code examples but also points out the immaturity of V's ecosystem and some compilation/build issues. Despite these, the author remains optimistic about V's future and suggests it's worth exploring for Go developers.

Development

SQL Subquery Issue: A Subtle Difference Leading to Unexpected Results

2025-08-31
SQL Subquery Issue: A Subtle Difference Leading to Unexpected Results

A reader, Dave, encountered a minor issue while testing a SQL subquery example from Vadim's book using the Northwind database on W3Schools. Dave's code differed slightly from the book's example, using '<' instead of '<=' and omitting '#'. Despite this, his scalar subquery returned zero, unlike the predecessor query in the book. This raises questions about how subtle differences in SQL queries can affect results.

Development Subquery

OpenTelemetry Distributed Tracing: Unraveling App Performance with Traces and Spans

2025-08-31
OpenTelemetry Distributed Tracing: Unraveling App Performance with Traces and Spans

This guide dives deep into OpenTelemetry's core distributed tracing concepts: Traces and Spans. A Trace represents the entire journey of a single request, while Spans are individual timed steps within that journey. Using clear language and helpful diagrams, the guide explains how to structure Traces and Spans, propagate context, and implement them in Node.js/TypeScript. It also covers best practices, common anti-patterns, and correlation with metrics and logs, empowering developers to build efficient and reliable distributed systems.

Development

Efficient Datalog Querying with SQL: A Clever Environment-Relation Approach

2025-08-31
Efficient Datalog Querying with SQL: A Clever Environment-Relation Approach

This article presents a novel approach to translating Datalog programs into SQL queries. The author cleverly leverages the relational algebra capabilities of SQL, representing the variable binding environments from the Datalog program body as relations. This allows for efficient execution of Datalog queries using existing SQL engines. The method is not only clean but also allows for semi-naive evaluation using the dual number trick, further boosting performance. The article includes Python and SQL code examples, along with performance comparisons against other Datalog engines.

Development

Zellij's Web Terminal: Bringing Your Terminal to the Browser

2025-08-31
Zellij's Web Terminal: Bringing Your Terminal to the Browser

Zellij, a terminal workspace and multiplexer, recently released a built-in web client, allowing users to connect to background terminal sessions via a browser. This post details the construction of the Zellij Web Terminal, including technology choices, architecture design, and challenges faced. It uses a client/server architecture with bidirectional communication via WebSockets between the browser and the Zellij server. Built with Rust and axum, the web server prioritizes security and ease of use. Future plans for Zellij include expanding the web interface to support features like native UI component rendering and the merging of multiple terminal sessions.

37signals Ditches Docker Hub and ECR for Self-Hosted Harbor Registry

2025-08-31
37signals Ditches Docker Hub and ECR for Self-Hosted Harbor Registry

37signals, the creators of Basecamp and HEY, migrated from external container registries like Docker Hub and Amazon ECR to a self-hosted Harbor registry. Driven by cost concerns (bandwidth overages and subscription fees), performance issues (slow pull times impacting deployments), security risks, and a desire for greater independence, they chose Harbor for its ease of setup, rich feature set, and open-source nature. The article details their single-server deployment outside Kubernetes, S3 storage configuration, multi-instance setup, replication strategy, and the process of migrating images from Docker Hub. The result? Significant cost savings (around $5k/year), improved performance (15-second deployment reduction, 25-second image pull reduction), and enhanced security.

Development container registry

Forced AI in Development: A Disaster in the Making?

2025-08-31
Forced AI in Development: A Disaster in the Making?

Piccalilli publishes an article exposing the dark side of mandatory AI tool usage in software development. Multiple developers anonymously share their negative experiences: AI-generated code is buggy and difficult to debug; tech leads outsource decision-making to AI, leading to lower quality projects; companies use AI proficiency as a performance metric, creating employee anxiety. The author urges developers to document negative outcomes, protect their interests, and beware of over-reliance and potential risks of AI tools.

Development Professional Risks

Red: A Powerful, Self-Hosted, Cross-Platform Systems Programming Language

2025-08-31
Red: A Powerful, Self-Hosted, Cross-Platform Systems Programming Language

Red is a programming language strongly inspired by Rebol, but with a broader field of usage thanks to its native-code compiler, from system programming to high-level scripting, while providing modern support for concurrency and multi-core CPUs. Red tackles software building complexity using a DSL-oriented approach (dialects). Built-in dialects include Red/System (a C-level system programming language), Parse (a powerful PEG parser), VID (a simple GUI layout creation dialect), Draw (a vector 2D drawing dialect), and Rich-text (a rich-text description dialect). Red has its own complete cross-platform toolchain, featuring an encapper, a native compiler, an interpreter, and a linker, not depending on any third-party library (except during the alpha stage). Key features include human-friendly syntax, homoiconicity, multi-typing, a powerful pattern-matching macro system, a rich set of built-in datatypes, both static and JIT compilation, cross-compilation, small executables (<1MB), strong concurrency and parallelism support, low-level system programming abilities, a powerful PEG parser DSL, a fast and compacting garbage collector, built-in instrumentation, a cross-platform native GUI system, JVM bridging, high-level scripting, and REPL GUI and CLI consoles. Currently in alpha and 32-bit only.

Firefox Privacy Checklist: Enhance Your Privacy

2025-08-30
Firefox Privacy Checklist: Enhance Your Privacy

This checklist guides you through optimizing Firefox's privacy settings. The author prefers Firefox over Chromium-based browsers like Brave due to Mozilla's non-profit nature and commitment to open source. It details how to improve privacy via settings and extensions, including accessing settings and using about:config (with a cautionary note). The author welcomes suggestions for improvement.

Development

Vlang: A Multifaceted Language Showcase

2025-08-30

This code snippet demonstrates V's versatility, ranging from simple loops greeting developers across various domains (game, web, etc.) to handling log files, making network requests, parsing and manipulating JSON data, and array deduplication. It covers I/O operations, string manipulation, network programming, JSON handling, and array manipulation, showcasing V's concise and elegant syntax and powerful standard library.

AWS SQS Fair Queues: Mitigating Noisy Neighbors in Multi-Tenant Systems

2025-08-30
AWS SQS Fair Queues: Mitigating Noisy Neighbors in Multi-Tenant Systems

AWS introduced Amazon SQS fair queues, a new feature designed to mitigate the impact of 'noisy neighbors' in multi-tenant systems. Noisy neighbors are tenants that overuse resources, causing delays for others. Fair queues monitor message distribution and automatically adjust delivery order, prioritizing messages from non-noisy tenants. This ensures consistent service quality for all tenants without requiring changes to existing message processing logic. Developers simply add a tenant identifier (MessageGroupId) and monitor relevant metrics using CloudWatch.

Development Fair Queues

Improving Algorithms for Simplifying Geographic Polygons

2025-08-30

This article explores algorithms for simplifying geographic polygons, specifically their convex hulls. The current approach combines the Douglas-Peucker algorithm with polygon offsetting: the polygon is first offset outwards to eliminate details, then simplified using Douglas-Peucker, and finally offset inwards. However, this method isn't optimal for convex features. The author seeks more efficient algorithms to achieve higher-quality geometry at the same size or further reduce size without compromising quality.

Cognitive Load: The Silent Killer in Software Development

2025-08-30
Cognitive Load: The Silent Killer in Software Development

This article explores the critical role of cognitive load in software development. High cognitive load leads to decreased efficiency and increased bugs. It analyzes common causes of high cognitive load, such as complex code logic, excessive inheritance, too many shallow modules and microservices, and unnecessary abstraction layers. The author advocates for minimizing cognitive load by using meaningful variable names, early returns, composition over inheritance, and creating fewer but deeper modules to simplify code, thus improving readability and maintainability. The article also critiques the drawbacks of over-emphasizing design patterns and architectures, stressing that simpler, straightforward solutions are often more effective.

Development

dlclose Failure: A Weird Interplay Between Rust and C++ Libraries

2025-08-30

This post recounts a perplexing debugging story: when using `dlclose` to unload a dynamic library, libA was successfully unloaded, but its dependency, libB, unexpectedly remained in memory. Investigation revealed the root cause was thread local storage (TLS) destructors registered in libB. Because the threads didn't exit, these destructors weren't executed, preventing libB from unloading. Enabling logging resolved the issue because the logging library also used TLS, preventing libA from unloading and thus maintaining consistent shared state between libA and libB. This case highlights the importance of understanding `dlclose` behavior and the impact of TLS destructors, recommending the use of the `LD_DEBUG` environment variable for debugging dynamic link libraries.

Development dynamic linking

F-Stack: A High-Performance Open-Source Network Framework Based on DPDK

2025-08-30

The rapid advancement of Network Interface Cards (NICs) has exposed the performance bottleneck of Linux kernel data packet processing. To meet the internet's demand for high-performance network processing, kernel bypass technologies like DPDK, NETMAP, and PF_RING have gained prominence. F-Stack is a high-performance open-source network framework built on DPDK. It utilizes the Linux kernel only for control flow, processing all data streams in user space. This avoids performance bottlenecks caused by kernel packet copying, thread scheduling, system calls, and interrupts. F-Stack includes a user-space TCP/IP stack (based on FreeBSD 11.0 stable), POSIX APIs (Socket, Epoll, Kqueue), a programming SDK (Coroutine), and interfaces for applications like Nginx and Redis, aiming for superior network processing performance.

Development Kernel Bypass

Automating Bug Bounty Enumeration with n8n and a Discord Bot

2025-08-30
Automating Bug Bounty Enumeration with n8n and a Discord Bot

This article details automating three bug bounty enumeration steps—subdomain enumeration, directory enumeration, and screenshot capture—using the open-source automation platform n8n and a Discord bot. The author sets up an n8n server and a working server, creates an n8n workflow, writes bash scripts, and configures a Discord bot. The entire process is triggered via the Discord bot, with results output to a designated Discord channel, enabling automation and collaboration.

Development
1 2 4 6 7 8 9 200 201