Best of LobstersOctober 2025

  1. 1
    Article
    Avatar of lobstersLobsters·30w

    'AI' Sucks the Joy Out of Programming

    A developer with 28 years of experience shares their critical perspective on AI-assisted programming tools. While LLMs handle simple tasks adequately, they fail on complex problems and create unmaintainable code. The trial-and-error feedback loop with AI agents removes the learning journey and problem-solving satisfaction that makes programming rewarding, replacing it with frustration over debugging AI-generated code without gaining understanding or mastery of the underlying concepts.

  2. 2
    Article
    Avatar of lobstersLobsters·32w

    The Web Is About to Get Better for Everyone, Everywhere

    The European Accessibility Act, effective summer 2025, will require digital products in the EU to meet enforceable accessibility standards. This legislation will likely trigger a global upgrade in web accessibility, as companies typically build one version of their products rather than maintaining regional forks. Similar to GDPR's impact on privacy, the EAA will affect how teams design, build, and ship products, requiring semantic HTML, keyboard navigation, screen reader support, and inclusive design patterns. The improvements will spread through shared design systems, component libraries, and frameworks, benefiting developers worldwide and potentially influencing accessibility legislation in other regions.

  3. 3
    Article
    Avatar of lobstersLobsters·30w

    A Word on Omarchy

    A critical technical review of Omarchy, a pre-configured Arch Linux distribution created by David Heinemeier Hansson. The analysis reveals significant security vulnerabilities including a non-functional firewall by default, weak password policies, and poorly written bash scripts lacking proper error handling. The review examines missing essential features like RAID support, swap configuration, and proper laptop power management, while highlighting the gap between marketing claims of being a production-ready system and the actual implementation quality.

  4. 4
    Article
    Avatar of lobstersLobsters·33w

    A Mac-like experience on Linux

    A detailed comparison of desktop environments for Mac users switching to Linux. The author argues that KDE Plasma, not GNOME, provides a more Mac-like experience with its dock-style panel, system tray, desktop icons, window management buttons, and extensive customization options. GNOME prioritizes minimal distraction over Mac-style workflows, lacking key features like a persistent dock, global menu, and desktop file management. For users leaving macOS for reasons other than seeking simplicity, Plasma offers familiar UI patterns and functionality while maintaining first-party support for customization.

  5. 5
    Article
    Avatar of lobstersLobsters·29w

    I built an actually faster Notion in Rust

    A developer shares their journey building Outcrop, a knowledge base alternative to Notion, using Rust for performance and simplicity. The project includes custom implementations of a Zanzibar-inspired authorization system, a search engine using tantivy with sub-millisecond latency, and a Rust port of ProseMirror for real-time collaborative editing. The architecture prioritizes speed through in-memory authorization checks, integrated search with permissions, and microsecond-level document processing. The product targets software teams and aims to launch within six months at €10 per seat.

  6. 6
    Article
    Avatar of lobstersLobsters·33w

    I'm Building a Browser for Reverse Engineers

    A developer chronicles building a specialized browser for reverse engineering by forking Chromium and Electron. Starting with JavaScript function hooking via Chrome DevTools Protocol, they progressed to creating custom CDP domains at the Blink layer to stealthily intercept canvas fingerprinting and other anti-bot techniques. The project evolved from a weekend prototype into a comprehensive tool featuring automatic deobfuscation, function overrides, and fingerprint payload decryption, demonstrating deep browser internals manipulation to analyze web security mechanisms.

  7. 7
    Article
    Avatar of lobstersLobsters·31w

    Software can be finished

    Explores the concept of "finished software" as a thought experiment to challenge conventional development practices. Defines finished software as feature-complete, secure, and standalone with minimal dependencies. Uses examples like the Nintendo Gameboy, embedded systems, and small JavaScript apps to illustrate software that requires no updates. Discusses principles for building finished software: understanding requirements deeply, keeping scope small, reducing dependencies, producing static output, and increasing quality assurance. Emphasizes this as a theoretical framework for thinking about trade-offs rather than a universal goal.

  8. 8
    Article
    Avatar of lobstersLobsters·32w

    HUML :: Human-oriented Markup Language

    HUML is a new experimental markup language designed for documents, datasets, and configuration files. Created to address frustrations with YAML's indentation sensitivity and other markup languages' limitations, it prioritizes human readability, visual hierarchy comprehension, and strict formatting rules. The language aims to eliminate ambiguities by providing single, consistent ways to represent data structures while maintaining visual clarity similar to YAML but with stricter syntax to prevent common errors.

  9. 9
    Article
    Avatar of lobstersLobsters·30w

    Element: setHTML() method - Web APIs

    The setHTML() method is an experimental Web API that provides XSS-safe HTML parsing and sanitization. It parses HTML strings, removes unsafe elements and attributes (like script tags and onclick handlers), and inserts the sanitized content into the DOM. The method accepts optional sanitizer configurations but always strips XSS-unsafe entities regardless of configuration. It's designed as a secure alternative to innerHTML for handling untrusted HTML content.

  10. 10
    Article
    Avatar of lobstersLobsters·31w

    Servo 0.0.1 Release

    Servo has released version 0.0.1, marking the first tagged release of their web rendering engine. The release consists of tested nightly builds of servoshell binaries for all supported platforms, available on GitHub. The team plans to publish monthly tagged releases following additional manual testing, with no immediate plans for distribution via crates.io or app stores.

  11. 11
    Article
    Avatar of lobstersLobsters·31w

    An open letter to the Obsidian team

    A community maintainer raises concerns about Obsidian's plugin review process, highlighting month-long approval times and the complete absence of update reviews. The author demonstrates security risks by discovering policy violations in community themes that remained unaddressed for over a year, arguing that the small Obsidian team cannot sustainably manage nearly 2,500 plugins. The letter proposes community-driven solutions for plugin maintenance and automated checks, emphasizing that plugins are essential to Obsidian's success and the ecosystem needs better oversight to prevent malicious code distribution.

  12. 12
    Article
    Avatar of lobstersLobsters·33w

    Conventional Commits considered harmful

    A critical examination of Conventional Commits arguing that enforcing structured commit message formats creates unnecessary barriers for contributors. The author shares a personal experience with Doom Emacs where commit linters blocked valid contributions, highlighting how the convention adds mental overhead without providing meaningful benefits for most projects. The piece contends that information captured in conventional commits is redundant with PR descriptions, and suggests alternative approaches like file-based CI/CD triggers or PR comments are more practical and less restrictive for open source collaboration.

  13. 13
    Article
    Avatar of lobstersLobsters·32w

    Birth of Prettier

    The creator of Prettier recounts the 10-year journey from concept to widespread adoption, explaining how the tool ended the "tabs vs spaces" debate by automating code formatting. Starting from a winter break project in 2016, the author details technical challenges like handling comments and method chaining, the strategic rollout at Facebook affecting millions of lines of code, and the profound impact of format-on-save functionality. The post covers implementation decisions based on Philip Wadler's pretty printer algorithm, the testing infrastructure using Jest snapshots, and ongoing maintenance challenges including funding through Open Collective to pay maintainers.

  14. 14
    Article
    Avatar of lobstersLobsters·31w

    Forgejo v13.0 is available

    Forgejo v13.0 introduces content moderation tools allowing users and admins to report abusive content, enhanced security with improved 2FA enforcement and Actions secrets encryption, and better Actions usability with access to previous run attempts and static workflow validation. Additional features include Pagure repository migration, EXIF data removal from avatars, CI status display on force pushes, and improved markdown editor shortcuts. The release follows a three-month cycle with v11.0 receiving long-term support until July 2026.

  15. 15
    Article
    Avatar of lobstersLobsters·30w

    Move, Destruct, Forget, and Rust · baby steps

    A proposal to extend Rust's type system with a trait hierarchy (Forget, Destruct, Move, Pointee) that enables different kinds of destructors and guarantees cleanup. This would enable async drop, prevent value leaking, support async scoped tasks, and allow destructors with arguments. The proposal introduces new default trait bounds using an opt-in scheme similar to RFC #3729, where generic parameters default to Forget but can opt into weaker bounds. The borrow checker would enforce these bounds, requiring Destruct for dropped values and Move for moved values. This addresses fundamental limitations in Rust's current destructor model while maintaining backwards compatibility.

  16. 16
    Article
    Avatar of lobstersLobsters·31w

    On Perfetto, Open Source, and Company Priorities

    A Perfetto team member reflects on the challenges of maintaining an open source project within a large company. The post discusses how Android priorities often overshadow external user needs, leading to delayed features like track ordering in trace visualization. The team recently added support for manual track ordering and commits to better communication about priorities, more transparent issue management, and encourages community feedback to help with prioritization decisions.

  17. 17
    Article
    Avatar of lobstersLobsters·32w

    Thoughts on Remix 3

    Remix v3 represents a significant departure from React's complexity by ditching the React runtime entirely while keeping JSX. Instead of React's declarative state management, it uses imperative updates with `this.update()` and closure-captured variables. The framework doubles down on Web Platform APIs (Request, Response, FormData) for backend portability, replaces file-based routing with TypeScript-defined routes, and uses HTML as wire format between client and server. This shift reflects growing frustration with React Server Components, the React Compiler, and Next.js complexity, offering a simpler alternative that's easier for both developers and LLMs to understand.

  18. 18
    Article
    Avatar of lobstersLobsters·32w

    Why we didn't rewrite our feed handler in Rust

    Databento chose C++ over Rust for rewriting their market data feed handler despite using Rust successfully elsewhere. The decision centered on three key friction points with Rust's ownership model: buffer reuse patterns conflicting with lifetime tracking, self-referential structs requiring workarounds, and less mature compile-time generics compared to C++ templates. While Rust offers superior safety guarantees and tooling, C++ provided more control over memory layout, better code reuse from existing systems, and greater team expertise for this specific low-latency, high-throughput use case processing 14 million messages per second.

  19. 19
    Article
    Avatar of lobstersLobsters·33w

    Systems Programming with Zig

    A comprehensive guide to Zig, a modern systems programming language designed for high-performance, low-level development. Covers writing idiomatic Zig code, integrating with C and system libraries, and building systems programs like OS kernels, device drivers, and utilities. Explores networking, interpreters, and graphics implementation from scratch, positioning Zig as a productive alternative to C, C++, and Rust that emphasizes performance and safety without heavy framework dependencies.