Category: Development

Tailscale on Plan 9: An April Fool's Prank That Actually Worked

2025-04-02
Tailscale on Plan 9: An April Fool's Prank That Actually Worked

Tailscale's April Fool's Day announcement wasn't a joke: they actually ported Tailscale to the Plan 9 operating system. The journey was fraught with challenges, including outdated Go compiler support for Plan 9, kernel issues, and inter-process communication bugs. The team even fixed a decades-old bug in the Plan 9 kernel. The project, initially a naive undertaking, evolved into a significant effort, culminating in a working demo running Tailscale on Plan 9, even showcased on a web browser. This wasn't just a prank; it was a testament to the team's technical prowess and a fascinating exploration of a niche OS.

Development

arXivLabs: Experimenting with Community Collaboration

2025-04-02
arXivLabs: Experimenting with Community Collaboration

arXivLabs is an experimental platform enabling collaborators to develop and share new arXiv features directly on the website. Participants (individuals and organizations) embrace arXiv's values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners who adhere to them. Got an idea to enhance the arXiv community? Learn more about arXivLabs.

Development

Protected Query Pattern: A Solution for Data Authorization in Full-Stack Apps

2025-04-02
Protected Query Pattern: A Solution for Data Authorization in Full-Stack Apps

Securing data access in modern full-stack applications is challenging. This article introduces the 'protected query pattern,' an elegant solution. It wraps pure query functions with an authorization layer, offering `query.protect` and `query.unsafe` methods for authorized and direct queries respectively. This approach avoids duplicated authorization logic, improves maintainability and readability, and supports data redaction. Kilpi simplifies implementation, offering centralized authorization and data filtering for enhanced efficiency.

Development data authorization

Django 5.2 Released: Composite Primary Keys and Simplified BoundField Overriding

2025-04-02
Django 5.2 Released: Composite Primary Keys and Simplified BoundField Overriding

Django 5.2 has been released! Key features include automatic model import in the shell, support for composite primary keys (using multiple fields as a primary key), and simplified BoundField overriding. Django 5.1 has entered security maintenance, while Django 5.0 has reached end-of-life. All users are strongly encouraged to upgrade to 5.2 for continued security fixes and bug patches.

Development

Fake Deadlines: A Manager's Secret Weapon?

2025-04-02
Fake Deadlines: A Manager's Secret Weapon?

This article explores the effectiveness of 'fake deadlines' in project management. Drawing on personal experience and the insights of James Stanier, the author argues that setting challenging deadlines leverages Parkinson's Law (work expands to fill the time available), boosting team efficiency and driving project progress. However, the author emphasizes that success hinges on team involvement, clear goals, and open communication, avoiding negative impacts like forced overtime. The ultimate goal is enhanced team productivity, not simply on-time delivery.

Development deadlines

PowerToys Command Palette: Your Ultimate Launcher and Command Center

2025-04-02
PowerToys Command Palette: Your Ultimate Launcher and Command Center

The PowerToys Command Palette, successor to PowerToys Run, is a fast, customizable, and extensible utility providing single-access to frequently used commands, apps, and development tools. Simply press Win+Alt+Space (customizable shortcut) to search for applications, folders, files, run commands (e.g., >cmd launches Command Prompt), switch windows, perform simple calculations, add website bookmarks, execute system commands, and even open web pages or searches. It also boasts rich extensions for easy addition of further functionality.

Development Command Palette

VitoDeploy: Streamlining PHP Deployment

2025-04-02
VitoDeploy: Streamlining PHP Deployment

VitoDeploy, a self-hosted web application, simplifies server management and production deployment for PHP applications, especially those built with Laravel. Developers praise its ease of use, performance, and versatility, with many highlighting its open-source nature. The application now supports SQLite, and a 1.x branch is available for beta testing.

Development Deployment Tool

Why Software Estimation Is Always Wrong (and How to Improve)

2025-04-02
Why Software Estimation Is Always Wrong (and How to Improve)

In Scrum teams, story points estimate effort, but software estimations are inherently flawed. They predict an unknown future, and project complexity, unclear requirements, and technical debt contribute to inaccuracies. Cognitive biases like Hofstadter's Law, Brook's Law, and the planning fallacy exacerbate the problem. The article explores improvements: tracking progress, adding buffers, using the COCOMO model, and an alternative from "NoEstimates": dropping story points, focusing on throughput and cycle times, and using visual tools like Kanban.

Development estimation

Multithreading: The Wrong Design?

2025-04-02

This article challenges the common misconception that multithreading always improves performance. The author argues that modern CPUs don't operate as a shared memory model as often taught, and multithreading introduces significant overhead due to cache coherence issues and synchronization primitives, leading to performance degradation and increased complexity. Duplicating single-threaded code across multiple cores is presented as a more efficient approach, leveraging CPU time more effectively and resulting in simpler, more maintainable code. The author advocates for single-threaded designs like Node.js and Actor models as superior for utilizing modern CPU resources, despite the perception that multithreading is a more sophisticated approach.

Development

Confetti: A Minimalist and Flexible Configuration Format

2025-04-02
Confetti: A Minimalist and Flexible Configuration Format

Confetti is a novel configuration format built on simplicity and minimalism. Unlike complex formats like YAML, Confetti boasts a concise and easily understandable specification, learnable in minutes. Its typeless design and composable syntax allow for everything from simple configurations to textual file formats and lightweight scripting. Confetti supports custom keywords and tri-state values, is localization-friendly, and encourages extensions, enabling users to create unique Confetti flavors.

Development configuration format

SSLyze: Blazing Fast SSL/TLS Security Scanner

2025-04-02
SSLyze: Blazing Fast SSL/TLS Security Scanner

SSLyze is a fast and powerful SSL/TLS scanning tool and Python library that analyzes a server's SSL/TLS configuration to ensure strong encryption settings and protection against known TLS attacks. It supports various server types, saves results as JSON, and integrates easily into CI/CD pipelines. SSLyze checks against Mozilla's recommended configurations, offering options to test against different TLS versions and cipher suites. Easily installed via pip, Docker, or a pre-compiled executable, SSLyze quickly enhances your server security.

Development Security Scanning

Graft: A Novel Edge Replication Engine for Strong Consistency and Partial Syncs

2025-04-02
Graft: A Novel Edge Replication Engine for Strong Consistency and Partial Syncs

Graft, an open-source transactional storage engine, tackles the challenges of data synchronization in edge computing environments. Unlike traditional full replication or schema-aware diffing, Graft employs a lazy, partial replication strategy that combines strong consistency guarantees, horizontal scalability, and object storage durability. It allows clients to sync data on demand, fetching only necessary data, and supports syncing from edge and offline devices. At its core is the Volume, a sparse, ordered collection of fixed-size Pages, with clients interacting through a transactional API. This makes Graft suitable for various use cases, including offline-first apps, cross-platform sync, and stateless multi-writer replicas.

Development Database Replication

The Linux Binary Compatibility Nightmare: Deconstructing and Rebuilding GLIBC

2025-04-01

This article delves into the deep-seated issue of binary compatibility on Linux, pinpointing the root cause as the monolithic design of GLIBC (GNU C Library). It critiques containerization solutions like Flatpak and AppImage for their shortcomings, proposing an alternative approach using static linking and older system libraries to improve portability. Ultimately, the authors advocate for a radical restructuring of GLIBC, breaking it into smaller, more focused libraries—libsyscall, libdl, libheap, libthread, and libc—to achieve Windows-like robust binary compatibility and finally solve this longstanding Linux problem.

Development binary compatibility

textcase: A Feature-Complete Python Text Case Conversion Library

2025-04-01
textcase: A Feature-Complete Python Text Case Conversion Library

textcase is a feature-complete Python library for converting text to various casing styles (snake, constant, kebab, camel, pascal, etc.). It handles acronyms, non-ASCII characters, and allows for custom boundary conditions for precise control over string splitting. The library includes `is_case` for case detection, and `CaseConverter` for encapsulating conversion parameters. This enables powerful and flexible text manipulation.

Development Case Conversion

Mozilla Launches Thunderbird Pro: A Paid Upgrade for its Open-Source Email Client

2025-04-01
Mozilla Launches Thunderbird Pro: A Paid Upgrade for its Open-Source Email Client

Mozilla is launching Thunderbird Pro, a paid suite of services designed to enhance its open-source email client, Thunderbird. The suite includes Thundermail (a Gmail-like email service), Thunderbird Appointment (a scheduling tool), Thunderbird Send (a file-sharing service), and Thunderbird Assist (an experimental AI service). Initially, Thunderbird Pro will be free for active community contributors, but will eventually require payment for others. Mozilla may introduce limited free tiers later. This move aims to offer a fully open-source, freedom-respecting alternative to competitors like Gmail and Office 365.

Development Paid Services

Igatha: Open-Source Offline SOS for Disaster Zones

2025-04-01
Igatha: Open-Source Offline SOS for Disaster Zones

Igatha is an open-source app designed for emergency communication in war zones and disaster areas. Using Bluetooth Low Energy (BLE), it broadcasts and scans for SOS signals, estimates distance, and operates entirely offline. It features automated disaster detection. Open-sourced for transparency and community contribution, Igatha welcomes bug reports, translations, and feature enhancements.

DEDA: Extracting, Decoding, and Anonymizing Tracking Dots from Printed Documents

2025-04-01
DEDA: Extracting, Decoding, and Anonymizing Tracking Dots from Printed Documents

DEDA is an open-source toolkit for extracting, decoding, and anonymizing tracking dots embedded in printed documents. Color laser printers often leave tiny tracking dots containing information like the printer's serial number. DEDA can read and decode this information, and also anonymize documents to prevent tracking. It offers a GUI and command-line tools for various operations, including extracting dots, comparing printers, creating custom dots, and anonymizing scans and documents. Installation requires Python 3 and several dependencies; troubleshooting tips for common installation errors are provided.

Development

Hightouch Hiring Senior Frontend Engineer: $170K-$240K

2025-04-01
Hightouch Hiring Senior Frontend Engineer: $170K-$240K

Hightouch, a $1.2B valued CDP company, is hiring a Senior Frontend Engineer. They've built a Composable CDP and an AI Decisioning platform, empowering businesses to leverage data and AI for improved marketing and operations. This role involves working on Customer Studio (their second major product, accounting for half their revenue), including enhancing the Audience Builder, Journey Builder, and building data visualization capabilities. The salary is $170K-$240K, plus a generous equity package.

Development

Open-Source Benchmark for LLM OCR and Data Extraction

2025-04-01
Open-Source Benchmark for LLM OCR and Data Extraction

Omni, an open-source benchmarking tool, compares the OCR and data extraction capabilities of various large multimodal models like gpt-4o, evaluating both text and JSON extraction accuracy. This benchmark provides a comprehensive evaluation of OCR accuracy across traditional OCR providers and LLMs. The dataset and methodologies are open-source, encouraging contributions and expansion. The benchmark focuses on JSON extraction, measuring the accuracy of the entire pipeline: Document ⇒ OCR ⇒ Extraction. It uses a modified json-diff for JSON accuracy and Levenshtein distance for text similarity. The tool supports various models, including OpenAI, Google Gemini, and Anthropic, with a simple command-line interface and JSON output.

Development

Beyond Tech Debt: A Reflection on Organizational 'Debts'

2025-04-01

A LinkedIn post sparked a discussion not just about technical debt, but about various kinds of organizational 'debts,' including product debt, operational debt, process debt, and organizational debt. The author delves into the nature of 'debt,' arguing that it's not inherently bad; the key is whether it's incurred wisely. Sometimes, taking on short-term 'debt' to iterate quickly and seize opportunities is necessary, while over-focus on long-term planning can lead to missed chances. The article emphasizes that post-hoc analysis is easy, but the crucial element is clarity of decision-making at the time and foresight concerning future uncertainties.

Development

TopoSort: A Highly Efficient Zig Library for Topological Sorting

2025-04-01
TopoSort: A Highly Efficient Zig Library for Topological Sorting

TopoSort is a highly efficient Zig library for performing topological sorting on dependency graphs. It boasts features like dependency graph building, topological sorting, generation of dependency-free subsets for parallel processing, cycle detection and reporting, and support for various node types. A command-line interface tool, `toposort-cli`, simplifies usage. Performance is optimized by setting the `max_range` parameter, potentially speeding up dependency tree building by 3-4 times. TopoSort is MIT licensed.

Development Topological Sort

RubyUI: Blazing Fast Rails UI Component Library

2025-04-01
RubyUI: Blazing Fast Rails UI Component Library

RubyUI (formerly PhlexUI) is a Rails UI component library built on Phlex, boasting speeds up to 12x faster than traditional ERB templates. It offers a collection of reusable, customizable components that you can copy and paste directly into your applications. RubyUI emphasizes clean design, well-organized components, and extensive customization options, with comprehensive documentation and examples. It uses custom-built Stimulus.js controllers, minimizing dependencies, allowing for the easy creation of efficient and beautiful Rails application interfaces.

Development UI component library

AWS's Systems Correctness: A Multifaceted Approach

2025-04-01

Amazon Web Services (AWS) employs a robust system correctness strategy combining formal and semi-formal methods to deliver reliable services. Initially relying on TLA+ for modeling critical systems, AWS identified and eliminated subtle bugs early in development. The introduction of the P programming language, a more developer-friendly state machine language, further enhanced their approach, playing a crucial role in migrations like Amazon S3's move to strong consistency. Lightweight methods such as property-based testing, deterministic simulation, and fuzzing are also widely used. AWS further bolstered resilience with the launch of FIS (Fault Injection Service). For critical security boundaries, formal proofs, as seen in the development of Cedar and Firecracker, guarantee correctness. This multifaceted approach not only ensures reliability but also drives performance optimization and cost reduction.

Rediscovering .NET: A First Look at F#

2025-04-01
Rediscovering .NET: A First Look at F#

After a 15-year hiatus, the author returns to the .NET world, driven by curiosity about the functional programming language F#. The article delves into F#'s features, such as lightweight syntax, immutability, and type inference, illustrating its conciseness and power with code examples. A comparison between F# and OCaml highlights F#'s strengths and weaknesses, along with its applications in web development and data science. Despite its relatively small community, the author finds it vibrant and active, concluding that F# is a fun and practical language worth exploring for .NET developers.

Development

Control Your Android Phone with AI: Code Your Commands

2025-04-01
Control Your Android Phone with AI: Code Your Commands

The open-source project `mobile-use` lets you control your Android phone using AI. Simply write commands like "Open Instagram and send a message," and the project executes them using your locally installed Android SDK tools (adb). It supports custom LLM models and offers both command-line and file input methods, allowing you to easily send instructions from the terminal or a file. The project is licensed under the MIT License.

Development

My Self-Hosted Journey: From Container Runtimes to Monitoring

2025-04-01
My Self-Hosted Journey: From Container Runtimes to Monitoring

For a year, I've been immersed in self-hosting, experimenting with various software and building my own dashboards and applications. This post summarizes my experiences and some useful yet less popular software. I used Docker, Podman, and Kubernetes as container runtimes, Portainer and Dockge as web UI management tools, Pangolin as a VPN and reverse proxy, Caddy as a lightweight reverse proxy, NetBird as a VPN, and Uptime Kuma and Gotify for monitoring and alerts respectively. I also recommend some excellent software resource lists to help you find more self-hosted applications suitable for your needs.

Development

Verso: Simplifying Web Rendering for Tauri Apps with a Servo-based Browser

2025-04-01
Verso: Simplifying Web Rendering for Tauri Apps with a Servo-based Browser

Verso is a browser built on Servo, a Rust-based web rendering engine, aiming to simplify Servo's APIs. This article details Verso's integration with the Tauri framework. Using the `tauri-runtime-verso` runtime, developers can easily swap runtimes and use standard Tauri functionalities. Verso is currently under active development. Future plans include releasing a pre-built executable, creating an evergreen shared Verso (similar to WebView2), and expanding support for more Tauri features like window decorations, titles, and transparency.

Development

A 149-Byte Minimal PubSub Library

2025-04-01
A 149-Byte Minimal PubSub Library

This article introduces a minimalist PubSub library weighing in at a mere 149 bytes, with virtually no dependencies. It's compared to competitors like nano-pubsub (194 bytes) and tiny-pubsub (401 bytes), highlighting its incredibly small size. Built using EventTarget, the code is clear and concise, and includes TypeScript type definitions. The author encourages contributions to further reduce the library's size.

Development lightweight library

Nue: A Web Framework Lighter Than a React Button

2025-04-01
Nue: A Web Framework Lighter Than a React Button

Nue, a new web framework, leverages modern web standards (HTML, CSS, JS) to create applications significantly lighter than a React button. Using a Rust computation engine and Event Sourcing, it handles instant search across 150,000 records—a feat that would crash React. Nue simplifies development, offering a cleaner experience for Rust, Go, and JS engineers, design engineers, and UX engineers alike by emphasizing modular design and minimal dependencies. It aims to restore the joy of web development by addressing the complexity of modern frameworks.

Development High Performance

Don't Let LLMs Make Decisions: They're Terrible At It

2025-04-01
Don't Let LLMs Make Decisions: They're Terrible At It

The author, an NPC developer for an online game, argues against using Large Language Models (LLMs) for business logic and decision-making. Instead, LLMs should serve as a user interface, translating user requests into API calls and results back into natural language. LLMs are shown to be inferior in performance, debugging, and adjustment compared to specialized systems, using a chess-playing bot example. The author advocates for using LLMs for tasks like text transformation, categorization, and intent understanding, while relying on purpose-built systems for core logic. While LLMs will continue to improve, this architectural principle remains crucial.

Development
1 2 5 6 7 9 11 12 13 96 97