Best of LobstersAugust 2024

  1. 1
    Article
    Avatar of lobstersLobsters·2y

    CORS is Stupid

    CORS (Cross-Origin Resource Sharing) attempts to mitigate web security issues caused by implicit credentials in cross-origin requests. Despite its flexibility, it doesn't fully solve the problem of cross-site request forgery (XSRF). A recommended solution is to use explicit credentials like API tokens and setting same-site attributes on cookies. Additionally, implementing server middleware to block implicit credentials can enhance security.

  2. 2
    Article
    Avatar of lobstersLobsters·2y

    Go is my hammer, and everything is a nail

    Markus, a solo developer, advocates for using a single programming language, specifically Go, for all development tasks. He believes that this approach simplifies his tech stack, enhances productivity, and allows him to delve deeper into the language's features. Markus emphasizes that while most popular programming languages can accomplish various tasks, choosing one aligns better with his lifestyle and work preferences.

  3. 3
    Article
    Avatar of lobstersLobsters·2y

    My Software Bookshelf

    The post shares a curated list of impactful books that have significantly influenced the author’s programming journey. It includes recommendations for understanding complex computer science topics, effective writing for engineers, programming paradigms, and insights into the evolving roles within software engineering. Each book is positioned with personal experiences and benefits, ranging from foundational concepts in computer design to practical advice for professional growth.

  4. 4
    Article
    Avatar of lobstersLobsters·2y

    The Dying Web

    The post discusses the dominance of Chrome in the web browser market and its impact on web standards and privacy. The author advocates for using Firefox, highlighting its superior customizability and commitment to open standards and privacy. The author reminisces about past browser wars and draws parallels with the current scenario, urging readers to reconsider their browser choice for a healthier web ecosystem.

  5. 5
    Article
    Avatar of lobstersLobsters·2y

    You might be overusing Vim visual mode

    Learn why you might be overusing Vim's visual mode and discover more efficient ways to perform various text editing tasks without it. The post provides examples to illustrate how fewer keystrokes can achieve the same results, advocating for a different mindset when using Vim. Visual mode still has its uses, but normal mode motions can often be quicker.

  6. 6
    Article
    Avatar of lobstersLobsters·2y

    A Flexible Minimalist Neovim for 2024

    The author shares their journey of returning to Neovim in search of a minimalist text editor configuration. They aim to create a distraction-free, fast, and efficient environment by minimizing plugins and relying on composable primitives. The author highlights their use of Neovim with Nix for configuration management, and describes their preference for a monochrome colorscheme and certain key plugins. The setup is tailored specifically for coding and writing tasks, making the editor highly responsive and less visually cluttered.

  7. 7
    Article
    Avatar of lobstersLobsters·2y

    Writing APIs in Rust

    Tyler Neely discusses the importance of minimizing costs when integrating new Rust libraries, emphasizing the benefits for both users and authors. Practical advice such as using 'cargo tree' to manage dependencies is highlighted to improve overall experience.

  8. 8
    Article
    Avatar of lobstersLobsters·2y

    Working with Protobuf in 2024

    Protocol Buffers (protobuf), a data serialization tool from Google, has become integral in software development for its compact data structuring. Traditional workflows involving manual compilation and error-prone build steps have seen improvements with new tooling. Innovations like JSON to Proto, Protobuf Pal, and Buf CLI simplify protobuf development, offering features such as automated code generation, dependency management, and consistent code formatting. Tools like Buf Studio, Postman, Insomnia, and k6 further enhance testing capabilities. FauxRPC allows developers to create realistic mock gRPC services for faster prototyping. These advancements collectively streamline protobuf workflows and improve productivity.

  9. 9
    Article
    Avatar of lobstersLobsters·2y

    Probably Overthinking It

    The post discusses using chi-squared statistics to determine the likelihood of a die being tampered with based on observed frequencies. It explains how to compute the p-value through simulation and compares the advantages of simulation over analytic methods. Key points include the flexibility and appropriateness of chosen test statistics and the importance of modeling the null hypothesis accurately.

  10. 10
    Article
    Avatar of lobstersLobsters·2y

    CSVs Are Kinda Bad. DSVs Are Kinda Good.

    CSVs often pose challenges with different delimiters, escape characters, and newline conventions, leading to malformed data and parsing issues. Using ASCII control characters as delimiters, like unit and record separators, can simplify data parsing by avoiding conflicts with printable characters. However, there is limited tool support for these delimiters compared to CSVs, which are widely supported despite their fragility.

  11. 11
    Article
    Avatar of lobstersLobsters·2y

    uv: Unified Python packaging

    uv is a high-performance Python package manager written in Rust. Initially released as a pip replacement, uv now offers comprehensive project management, tool installation, Python bootstrapping, and script execution. It creates cross-platform lockfiles, manages dependencies, and supports workspaces, making Python development simpler and faster. The tool is particularly optimized for managing large projects and ensuring consistent environments across different platforms.

  12. 12
    Article
    Avatar of lobstersLobsters·2y

    superbrothers/opener: Open URL in your local web browser from the SSH-connected remote environment.

    Opener is a daemon that allows users to open URLs in their local web browser from an SSH-connected remote environment. It uses local commands like 'open' on macOS or 'xdg-open' on Linux. Users forward the socket file of the opener daemon when logging into SSH, enabling the remote to send URLs back to the local environment for opening. Installation involves Homebrew, setting up SSH configs, and creating fake 'open' commands.

  13. 13
    Article
    Avatar of lobstersLobsters·2y

    Forgejo is now copyleft, just like Git

    Forgejo has changed its license to a Copyleft license to align with its core values and facilitate the reuse of other copyleft software. This change aims to ensure legal compliance and grant more freedoms to users. Starting from version 9.0, Forgejo will be under the GPL v3+ license. The updates aim to guarantee the software remains free and independent, managed through a transparent governance process.

  14. 14
    Article
    Avatar of lobstersLobsters·2y

    Don't write Rust like it's Java

    The post discusses the author's journey of adapting from Java to Rust, highlighting key differences and challenges. The author emphasizes Rust's memory safety and type correctness and contrasts Rust's traits with Java's interfaces. The author urges not to force Rust into an object-oriented paradigm and to embrace Rust's unique features and idioms for a more fulfilling development experience.

  15. 15
    Article
    Avatar of lobstersLobsters·2y

    The Monospace Web

    Explore a minimalist design concept using monospace fonts for web development. The author experiments with a responsive monospace grid for aligning text and drawing diagrams, leveraging Markdown and CSS, along with a bit of JavaScript. The design is reminiscent of terminals and offers various elements such as lists, tables, and media objects, all fitting into the monospace aesthetic.

  16. 16
    Article
    Avatar of lobstersLobsters·2y

    Kindle + Python = e-Ink Dashboard (part 1)

    Explore how to repurpose an old Kindle Paperwhite 3 into a low-power e-Ink dashboard by installing Python. The process involves jailbreaking the Kindle to allow custom software installations, setting up a launcher, and preparing scripts for the dashboard functionality. Detailed instructions for both software and serial/hardware jailbreak methods are provided, along with configuring essential files for a functioning KUAL extension.

  17. 17
    Article
    Avatar of lobstersLobsters·2y

    lovasoa/SQLpage: SQL-only webapp builder, empowering data analysts to build websites and applications quickly

    SQLPage is an SQL-only webapp builder designed for data scientists, analysts, and business intelligence teams. It allows users to create data-centric applications using only SQL queries, bypassing traditional web programming languages. SQLPage supports different databases such as SQLite, PostgreSQL, MySQL, and Microsoft SQL Server. It is written in Rust and can be deployed using binary files or Docker images. Users can quickly generate webpages displaying data as lists, grids, and charts. It also supports advanced features like custom components, serverless deployment, and HTTP/2 and HTTPS.

  18. 18
    Article
    Avatar of lobstersLobsters·2y

    GitHub Profile Roast 🔥🔥🔥

    A service offering a humorous review of GitHub profiles, sponsored by Lokal.so with a discount code. Users can view the source code on GitHub and contact the admin for issues.

  19. 19
    Article
    Avatar of lobstersLobsters·2y

    Why am I writing a Rust compiler in C?

    The author is working on a project called Dozer, which involves writing a Rust compiler in pure C to address bootstrapping issues with Rust. They explain the significance of bootstrapping and the complexities involved in the process, tracing the origins of compilers back to their earliest forms. The goal is to make Rust more accessible earlier in the bootstrapping process without relying on C++.

  20. 20
    Article
    Avatar of lobstersLobsters·2y

    meithecatte/bashfuck: Write any bash with only the punctuation characters

    bashfuck is a unique bash dialect allowing the use of only ASCII special characters, without letters or numbers. It comes with a bashfuck encoder for translating regular bash scripts. The tool relies on the precise wording of bash error messages in English locales and utilizes a workaround for capturing stderr. Users are encouraged to improve the existing decoding code through contributions.

  21. 21
    Article
    Avatar of lobstersLobsters·2y

    Perfect NAS Solution

    The post explores an efficient and low-power NAS solution using a combination of different hardware, including the Silent Fanless Dell Wyse 3030 LT, HP EliteDesk 705 G4, and the GenMachine model Ren5000 with AMD Ryzen CPUs. The author emphasizes the importance of the price/performance ratio and details a backup strategy using the '4.1 - 2 - 1 - 1' rule, combining local, offsite, online, and offline backups to ensure data redundancy. Power management optimizations and the inclusion of an EATON 3S Mini UPS are also discussed.

  22. 22
    Article
    Avatar of lobstersLobsters·2y

    My intro to game (engine) dev

    The author avoided game development for years due to concerns about enjoyment, workload, and imposter syndrome. After years of working in software, they decided to try making a game, using both Bevy and Godot game engines. Not satisfied with either, they chose to learn the fundamentals of game rendering, eventually creating a 2D lighting library for Bevy. This journey reignited their passion for programming and they plan to continue both learning and developing games.

  23. 23
    Article
    Avatar of lobstersLobsters·2y

    Color picker

    The post discusses the author's decade-long fascination with designing color pickers, with a focus on the unique challenges and learning experiences they offer. It compares modern square color pickers to the traditional triangle color wheel, highlighting the benefits of the latter in terms of shade distribution and ease of use. It also touches on the practical considerations and relative unimportance of color pickers in commercial software, despite the author's continued enthusiasm for crafting them.

  24. 24
    Article
    Avatar of lobstersLobsters·2y

    Replace Docker Compose with Quadlet for Servers

    Traditionally, Docker Compose has been used by small teams to manage container deployments without the complexity of Kubernetes. However, given the shortcomings of Docker and the advantages of Podman, Quadlet—a tool for running Podman containers with Systemd—emerges as a robust alternative. Quadlet allows you to manage container deployments in a declarative way directly via Systemd, making it a compelling choice for server environments. The guide explains how to configure networks, volumes, and containers using Quadlet, and highlights its benefits for security, updates, and logging.

  25. 25
    Article
    Avatar of lobstersLobsters·2y

    vpsAdminOS

    vpsAdminOS is a lightweight operating system designed for container virtualization, created for vpsFree.cz to replace their outdated OpenVZ Legacy kernel. It uses a mix of technologies including LTS kernel, runit, ZFS, osctl, and LXC to run and manage unprivileged system containers, focusing on user namespace and cgroup management for isolation and resource control.