Best of LobstersJuly 2024

  1. 1
    Article
    Avatar of lobstersLobsters·2y

    Zed on Linux is here!

    Run the provided shell script to install Zed on most Linux distributions using the command: curl https://zed.dev/install.sh | sh.

  2. 2
    Article
    Avatar of lobstersLobsters·2y

    Lessons learned in 35 years of making software

    After 35 years in the software industry, the author shares crucial lessons learned. Key takeaways include keeping solutions simple to make maintenance easier, quickly releasing functional software to build company value, and the importance of professional relationships for career advancement. Visibility of work and willingness to tackle new challenges are essential, as is cultivating a network outside the current workplace. The author also highlights the importance of seeking interesting opportunities over chasing salary and titles, understanding the impact of social class differences in the workplace, and delivering sufficient rather than perfect work.

  3. 3
    Article
    Avatar of lobstersLobsters·2y

    Scaling One Million Checkboxes to 650,000,000 checks

    One Million Checkboxes (OMCB) is a website that scaled from a few expected users to over 650 million checks within days. The architecture involved using Redis for state management, nginx for static content and reverse proxy, and Flask for API handling. The site faced several challenges including unexpected high traffic, Redis connection issues, and bandwidth costs. Solutions included adding more servers, batching updates, using a connection pool, and eventually rewriting the backend in Go, which significantly improved performance. The project emphasized learning and fun over perfect solutions, leading to valuable scaling insights.

  4. 4
    Article
    Avatar of lobstersLobsters·2y

    One File Linux

    OneFileLinux is a lightweight live Linux distribution packaged in a single ~20MB file that can be booted from the EFI system partition on both PC and Mac without installation. It eliminates the need for USB flash drives and additional boot managers, being compatible with various disk encryption methods. Ideal for scenarios requiring Linux on bare metal, it provides instructions for setup on Macs and PCs as well as a method to run from a USB flash drive.

  5. 5
    Article
    Avatar of lobstersLobsters·2y

    Fear of over-engineering has killed engineering altogether

    Over the past two decades, there has been a shift in software engineering from rigorous planning to rapidly shipping products without much foresight. While agile methodologies have benefited the tech industry, there's a growing concern that the pendulum may have swung too far, leading to a disregard for basic engineering principles. The post emphasizes the importance of using simple tools like napkin math and Fermi problems for making informed decisions, ultimately saving time and resources. By sharing examples from the development of fika, the author illustrates how basic calculations can prevent costly mistakes and optimize development processes.

  6. 6
    Article
    Avatar of lobstersLobsters·2y

    How I Computer in 2024

    The post details how the author uses their computer setup in 2024, covering their custom-built desktop, home server, Lenovo laptop, and iPhone. It emphasizes the importance of a solid audio-visual setup for remote work, the use of Tailscale for connectivity, and reliance on tools like Obsidian for note-taking and Todoist for task management. The author explains their preference for NixOS and highlights their productivity applications and development tools.

  7. 7
    Article
    Avatar of lobstersLobsters·2y

    Build your own Interpreter

    Learn how to build an interpreter for the Lox scripting language by following the guidelines from the book 'Crafting Interpreters' by Robert Nystrom. The challenge starts from chapter 4 on scanning and covers topics like tokenization, ASTs, and tree-walk interpreters.

  8. 8
    Article
    Avatar of lobstersLobsters·2y

    Doggo

    Doggo is a command-line DNS client designed for humans, offering human-readable and JSON outputs. It supports multiple transport protocols including DNS over HTTPS, TLS, QUIC, TCP, UDP, and DNSCrypt. Additional features include ndots and search configurations, multiple resolver support, shell completions for zsh and fish, a web interface, and cross-platform capability. The tool also supports reverse DNS lookups, flexible query options, debugging, and response time measurement.

  9. 9
    Article
    Avatar of lobstersLobsters·2y

    Block Coding for Godot: Lowering the Bar of Entry for a Powerful Tool

    Endless Foundation's new initiative introduces block coding for the Godot game engine, making it easier for beginners to learn game development. Block coding allows users to create programs using a user-friendly interface that bypasses complex syntax, making game creation more accessible. The goal is to bridge the gap between simplified tools and the professional Godot engine, leveraging the successful approaches of tools like Scratch and Blockly while preparing learners for advanced development.

  10. 10
    Article
    Avatar of lobstersLobsters·2y

    An Experienced (Neo)Vimmer's Workflow

    Learn how to create a Personalized Development Environment (PDE) using Neovim, focusing on improving functionality with key plugins and configurations. The post covers advanced Neovim tips such as search and replace, keybindings, movement, undo/redo, and integrating essential plugins like Treesitter, Wilder, and Telescope. Additionally, it discusses customizing the status line, enhancing terminal usage, and setting up auto-complete with coc.nvim and Copilot. Ideal for experienced Vim users looking to optimize their workflow.

  11. 11
    Article
    Avatar of lobstersLobsters·2y

    gRPC Over HTTP/3

    HTTP/3 offers a range of benefits for gRPC services, including faster connection establishment, eliminating head-of-line blocking, and mandatory encryption via TLS 1.3. The post explores the practical implementation of gRPC servers and clients over HTTP/3 using Go's ConnectRPC and quic-go libraries. HTTP/3 leverages QUIC, a protocol built on UDP, to reduce latency and improve performance. Despite the early adoption phase, the potential for enhanced performance and security in API development is evident. Practical examples and experimentation reveal current capabilities and limitations of gRPC over HTTP/3.

  12. 12
    Article
    Avatar of lobstersLobsters·2y

    Booting Linux off of Google Drive

    A developer shares their journey of booting Linux from Google Drive using FUSE as a filesystem driver in userspace. The process involves configuring networking in initramfs and overcoming several challenges related to symlinks and file permissions. The end result is a functional Linux boot from Google Drive on virtual machines and eventually real hardware, contributing to Cloud Native Computing.

  13. 13
    Article
    Avatar of lobstersLobsters·2y

    Dark mode isn't as good for your eyes as you believe

    Dark mode has gained popularity for its aesthetic appeal and supposed health benefits, such as reducing eye strain and conserving battery life. However, evidence suggests it may not significantly reduce eye strain or improve readability for most people and could even make text harder to read due to lower contrast in certain conditions. For OLED screens, dark mode does save battery life by deactivating black pixels. Although dark mode might be more comfortable in low-light environments, it is not proven to aid concentration or minimize distractions effectively. Limiting screen time remains the best solution for eye health and better sleep.

  14. 14
    Article
    Avatar of lobstersLobsters·2y

    How to convert Python Applications to installable applications?

    Seeking guidance on converting Python applications to installable formats such as .exe, .app, or .bin. The aim is to create a user-friendly drag-and-drop installation without requiring pip install for the end user. Looking for recommended books, websites, and tutorials to get started.

  15. 15
    Article
    Avatar of lobstersLobsters·2y

    helix/CHANGELOG.md at master · helix-editor/helix

    The latest release of Helix Editor includes contributions from 160 developers. Key updates include new features like a textobject for list-like entries and a picker for VCS-changed files. Commands have been added or improved for better usability, like `select_all_siblings` and enhanced `goto_file` detection. Usability improvements also feature better popup positioning and auto-saving buffers. Numerous bugs were fixed, especially around LSP integration and terminal behavior. New themes and language supports have been introduced or updated, ensuring a more versatile and stable editing experience.

  16. 16
    Article
    Avatar of lobstersLobsters·2y

    C++ Design Patterns For Low-Latency Applications

    Performance optimizations remain crucial in applications like high-frequency trading (HFT), where low latency is essential. This post discusses a preprint article from Imperial College London focusing on design patterns in C++ for low-latency applications. The optimizations include common practices like prewarming CPU caches and advanced techniques like hotpath versus coldpath separation. Benchmarks using Google Benchmark demonstrate the effectiveness of these patterns, and the detailed implementations are available on GitHub.

  17. 17
    Article
    Avatar of lobstersLobsters·2y

    "Functional programming languages should be so much better at mutation than they are"

    Functional programming languages often struggle with mutation, leading to unnecessary overhead and complexity. The post explores various approaches to incorporate mutation in functional languages, such as allowing mutable data structures, locally limited mutations, linearity, and functional but in-place data structures. Each approach comes with its own set of challenges, and the search for a robust solution continues.

  18. 18
    Article
    Avatar of lobstersLobsters·2y

    Bevy 0.14

    Bevy 0.14 introduces a host of new features including Virtual Geometry for efficient rendering of large meshes, Sharp Screen Space Reflections, Depth of Field effects, Per-Object Motion Blur, Volumetric Fog and Lighting, Filmic Color Grading, and PBR Anisotropy. It also includes enhancements like ECS Observers and Hooks, improved color APIs, and support for GLTF KHR_texture_transform, amongst others. This release leverages a release candidate process to ensure stability and immediate usability.

  19. 19
    Article
    Avatar of lobstersLobsters·2y

    git-spice

    git-spice is a tool designed to manage and navigate stacks of Git branches, allowing users to modify, rebase, and create GitHub Pull Requests efficiently. It supports incremental incorporation into your workflow, operates entirely locally, and provides easy-to-remember shorthands for commands. As free and open-source software, it's available under the GPL-3.0 license.

  20. 20
    Article
    Avatar of lobstersLobsters·2y

    Why German Strings are Everywhere

    German Strings are a custom string type optimized for data processing, particularly in database systems. Unlike traditional C and C++ strings, they are immutable and designed to handle short, frequently read strings more efficiently. This custom implementation minimizes memory allocation, supports efficient prefix searches, and includes features like short string optimization and specialized storage classes. These enhancements make German Strings particularly suitable for high-performance applications where data integrity and retrieval speed are crucial.

  21. 21
    Article
    Avatar of lobstersLobsters·2y

    Using CSS nesting - CSS: Cascading Style Sheets

    CSS nesting allows writing stylesheets that are easier to read, modular, and maintainable by reducing repetitive selectors. Unlike CSS preprocessors like Sass, CSS nesting is parsed directly by browsers. The `&` nesting selector is used to join selectors, improve readability, and ensure compatibility. Examples demonstrate how to use nesting with child selectors, combinators, and compound selectors, as well as highlighting invalid nested rules.

  22. 22
    Article
    Avatar of lobstersLobsters·2y

    Using S3 as a container registry

    Using S3 as a container registry is feasible by exposing an S3 bucket through HTTP and uploading image files to specific paths. This approach can yield substantial performance improvements, particularly in upload speed, compared to traditional container registries like ECR. While the method is experimental and lacks the advanced features of dedicated registries, it opens up new possibilities for optimizing container image hosting.

  23. 23
    Article
    Avatar of lobstersLobsters·2y

    Mohamedjcali/aya: A minimalist version control system with fewer than 6 commands, offering a straightforward alternative to Git.

    Aya is a minimalist version control system designed to be simple and user-friendly with fewer than 6 commands, making it easier to learn and use compared to Git. It aims to eliminate complex errors and provide a more intuitive experience for version control. Follow the provided steps to install Aya, initialize projects, and manage versions efficiently.

  24. 24
    Article
    Avatar of lobstersLobsters·2y

    andrewarrow.dev

    Discover the professional work and expertise of Andrew Arrow, a Principal Software Engineer. Explore his contributions and the services provided by andrewarrow.dev.

  25. 25
    Article
    Avatar of lobstersLobsters·2y

    89 things I know about Git commits · Jamie Tanna

    The post shares 89 insights about Git commits based on over a decade of experience in various team sizes and Open Source projects. It covers the importance of well-written commit messages, preferences for rebase-merging over other methods, the utility of tools like `git reflog` and `git subtree`, and the benefits of atomic commits. Emphasizing good practices in commit history and message writing, it also touches on the challenges and frustrations involved in maintaining high standards across teams. The insights also highlight the advantages of conventional commits and the value of reflection in commit messages.