Best of LobstersSeptember 2024

  1. 1
    Article
    Avatar of lobstersLobsters·2y

    Twelve rules for job applications and interviews

    Learn twelve practical rules to enhance your job applications and interview performance. The advice emphasizes the importance of demonstrating value through specific examples, being personal and concrete, telling stories, showing vulnerability, confronting weaknesses, and thoroughly researching prospective employers. Additionally, it advises against using AI-generated content to maintain authenticity and personal touch in your applications.

  2. 2
    Article
    Avatar of lobstersLobsters·2y

    My Homelab Setup

    The author upgraded their home network, using Unifi's latest devices including Gateways, Switches, APs, and Cameras. They replaced their TP-Link Omada setup and incorporated several tools and configurations to optimize their network, especially for a house with concrete walls. Highlights of the setup include multiple APs for robust Wi-Fi coverage, various switches like Pro Max 24 PoE and Flex for different purposes, VLANs for network segmentation, and a planned integration of multiple SSIDs. Future upgrades include replacing the UPS and adding a rack-based NAS.

  3. 3
    Article
    Avatar of lobstersLobsters·2y

    Text to diagram

    The post details various features and attributes of an open-source language designed for creating diagrams from text. Key highlights include CLI availability, support for server-side execution, configurable themes, editor support with extensions for VSCode and Vim, and essential diagram features like container edges, sequence diagrams, and SQL tables. Additional capabilities such as rendering Math equations in LaTeX, handling Markdown, and exporting to PDF are also covered.

  4. 4
    Article
    Avatar of lobstersLobsters·2y

    Opinions for Writing Good CSS

    CSS, though challenging for beginners, is a robust and flexible language. Key advice includes avoiding unnecessary CSS, using comments for transparency, managing specificity without relying on Ids or !important, and systematizing your approach. Resets and defaults can simplify coding, understanding the codebase is crucial in team settings, and CSS variables and responsive design considerations are essential. Avoid copying and pasting CSS to foster better understanding and deliberate coding choices.

  5. 5
    Article
    Avatar of lobstersLobsters·2y

    gRPC: 5 Years Later, Is It Still Worth It?

    The post reflects on the decision to use gRPC and Protobuf instead of OpenAPI/Swagger for Torq's technology stack, highlighting the enhanced backward compatibility, enforceable standards, and streamlined development process it provided. It covers advancements in code generation with tools like buf.build, improved module dependency management with Buf Schema Registry (BSR), and discusses the benefits and challenges of using gRPC-web for frontend development. The author affirms gRPC as their preferred protocol, bolstered by robust tool support and the use of service meshes like linkerd for better load balancing and security.

  6. 6
    Article
    Avatar of lobstersLobsters·2y

    I Was Wrong About Open Source

    The author originally opposed making their project, Yaak, open source due to past burnout with OSS. After receiving constructive criticism from the open-source community about the potential benefits, they decided to make Yaak open source under the MIT license but restricted contributions mainly to bug fixes, inspired by models like SQLite and Litestream.

  7. 7
    Article
    Avatar of lobstersLobsters·2y

    XKCD 1425 (Tasks) turns ten years old today

    XKCD 1425, a classic comic highlighting the distinction between easy and hard challenges in software, celebrates its 10th anniversary. The comic's insight remains relevant, especially with the rise of AI-assisted programming. The complexity of understanding AI capabilities, particularly what tasks Large Language Models (LLMs) can handle, continues to be a significant challenge. The post discusses how modern AI tools and security considerations like CSP headers impact task execution.

  8. 8
    Article
    Avatar of lobstersLobsters·2y

    How to Monetize a Blog

    Maintaining a blog is a lot of work, and monetizing it can make the effort worthwhile. The primary method discussed is display advertising, which includes CPM (cost per thousand impressions) and CPA (cost per action). The post emphasizes building relationships with both the audience and advertisers to ensure ad relevance and effectiveness. Additionally, it mentions joining advertising networks and creating filler content to increase ad space, along with the darker aspects of demographic profiling for targeted ads.

  9. 9
    Article
    Avatar of lobstersLobsters·2y

    Managing dotfiles with chezmoi

    Managing dotfiles with version control provides benefits like backup and recovery, consistent configuration, and ease of migration. While traditional tools like GNU Stow have limitations, chezmoi offers a comprehensive solution with features such as templating, password manager support, full file encryption, and cross-platform capabilities. chezmoi simplifies dotfile management by integrating closely with version control systems, supporting encrypted secrets, and handling various edge cases. It allows easy setup and management of dotfiles across multiple machines with minimal dependencies.

  10. 10
    Article
    Avatar of lobstersLobsters·2y

    Improving rendering performance with CSS content-visibility

    A developer encountered a performance issue with an emoji picker containing 20k custom emojis, causing significant slowdown. To address this, they explored using CSS content-visibility as an alternative to complex virtualization. By leveraging this feature and related optimizations, they achieved a 45% performance improvement in Chrome and Firefox. Despite this success, the author notes that for maximum performance, a virtual list remains ideal, though CSS content-visibility offers a simpler, accessibility-friendly interim solution.

  11. 11
    Article
    Avatar of lobstersLobsters·2y

    Godot for App Development

    Godot Engine is a powerful yet underrated tool for app development, offering numerous advantages such as an intuitive Scene Tree and Control Nodes system, fast iteration with its own scripting language GDScript, and excellent cross-platform support. It is particularly strong in creating complex GUIs and mock-ups quickly. With its capability to export to various platforms including Windows, Linux, macOS, Android, iOS, and web, Godot stands out as a versatile framework for both game and non-game applications like Chord Chart Memo, Lorien, and Material Maker.

  12. 12
    Article
    Avatar of lobstersLobsters·2y

    Design Patterns Are Temporary, Language Features Are Forever

    Design patterns are useful but can sometimes be overcomplicated. The post discusses the author's journey in understanding design patterns like the visitor pattern, and how language features like pattern matching in Rust and new features in Java 21 simplify problem solving. Through exploring modern features in Java, the author finds more efficient ways to implement functionality that would traditionally require design patterns, emphasizing the evolving nature of programming languages.

  13. 13
    Article
    Avatar of lobstersLobsters·2y

    Unboxing and First Impressions

    The MNT Pocket Reform is a small, open-platform laptop designed for durability, modification, and longevity. It features a solid build with visible screws, a metal case, and sturdy screen hinges. The device includes a mechanical keyboard, an integrated trackball, and runs on Linux with options for Wayland environments. Initial impressions highlight its customizable firmware, excellent manual, and solid performance, although some issues with WiFi connectivity and charger compatibility were noted.

  14. 14
    Article
    Avatar of lobstersLobsters·2y

    sminez/ad: an adaptable text editor

    The post introduces 'ad' (A.D.), an experimental text editor combining the modal interface of 'vi' and 'kakoune' with the extensibility of Plan9's 'Acme.' Despite being highly unstable and incomplete, 'ad' aims to implement unique features like structural regular expressions and external command usage. The detailed breakdown includes several internal modules such as buffer, exec, fsys, and trie. It reflects the author's journey of creating a simple, hackable editor inspired by vim and Acme, while pondering its potential future structuring.

  15. 15
    Article
    Avatar of lobstersLobsters·2y

    pijng/prep: Golang comptime. Pure blasphemy

    The `prep` tool for Golang enables compile-time function evaluation by replacing function calls with computed results during the build process. It can be integrated easily as a Go library or standalone executable and works with basic literals. To use it, install `prep` and use the `-toolexec` flag in your `go build` command to evaluate functions marked with `prep.Comptime`.

  16. 16
    Article
    Avatar of lobstersLobsters·2y

    How I Built “The Monospace Web”

    The Monospace Web project explores minimalist web design with a fixed grid layout using CSS, particularly leveraging the `ch` unit for alignment. The design ensures elements align perfectly by making use of JetBrains Mono font for consistent box-drawing support. The setup involves responsive techniques for varying viewport widths and custom styling for elements like tables and horizontal rules to maintain grid integrity. The project is open-source, inviting others to fork, tweak, and build upon it.

  17. 17
    Article
    Avatar of lobstersLobsters·2y

    System Initiative

    System Initiative is a newly launched technology aimed at revolutionizing DevOps automation. It introduces digital twins to simulate cloud infrastructure, significantly improving feedback loops and programmability. Built as an open-source project, it aims to solve the limitations of using code to manage infrastructure and promises collaborative, real-time, and customizable automation solutions. The platform integrates version control and promotes a multiplayer approach for better collaboration, making it a significant shift from traditional methods.

  18. 18
    Article
    Avatar of lobstersLobsters·2y

    grampelberg/kty: The terminal for Kubernetes

    kty is a terminal for Kubernetes that simplifies cluster management by allowing users to log in with GitHub or Google accounts. It offers a TUI-based dashboard to interact with pods, view logs, forward traffic, and transfer files, all without requiring kubectl. kty is written in rust and leverages OpenID providers and Kubernetes RBAC for secure access.

  19. 19
    Article
    Avatar of lobstersLobsters·2y

    SSH Keystroke Obfuscation Bypass

    OpenSSH 9.5 introduced keystroke timing obfuscation to mitigate timing attacks via traffic analysis. Despite this, a researcher discovered a bypass that allows keystroke packets to be identified among the obfuscating 'chaff' packets. Using SSHniff and latency analysis tools, the researcher could infer commands typed during an SSH session, highlighting shortcomings in the current obfuscation methods. The bypass involves recognizing larger packet sizes produced during user keystrokes after the chaff has been triggered.

  20. 20
    Article
    Avatar of lobstersLobsters·2y

    Async Rust can be a pleasure to work with (without `Send + Sync + 'static`)

    Async Rust can be complex and often requires `Send + Sync + 'static` bounds, leading to extensive use of `Arc`s and `Mutex`es. However, using structured concurrency and thread-per-core runtimes can simplify async Rust by avoiding these bounds. Structured concurrency makes futures scope-bound, enabling Rust's borrow checker to handle cleanup automatically. Thread-per-core architectures, such as those supported by runtimes like `glommio`, remove the need for `Send` bounds, allowing resources to remain unwrapped and reducing the need for clones. This approach can significantly improve developer experience and, in some cases, even performance.

  21. 21
    Article
    Avatar of lobstersLobsters·2y

    2M users but no money in the bank. Tough times 😔

    Exercism has reached a milestone of 2 million users and 45 million exercise submissions. Despite this, financial difficulties are forcing the platform to cease payroll and restructure its operations. The outgoing Erik, a key contributor, will transition to a volunteer role. To maintain code quality, new GitHub teams and stricter PR review processes are being implemented. Donations currently cover server costs, but additional funding is needed for growth. Future plans include developing a new educational product and exploring revenue opportunities through Exercism Teams.

  22. 22
    Article
    Avatar of lobstersLobsters·2y

    pythops/oryx: 🕵️‍♂️ TUI for sniffing network traffic using eBPF

    Oryx is a TUI tool for real-time network traffic inspection using eBPF on Linux. It provides comprehensive traffic statistics and supports fuzzy search. Installation requires rustup, bpf-linker, and specific LLVM dependencies. Users can interact with oryx via keyboard shortcuts to navigate and manage network traffic data.

  23. 23
    Article
    Avatar of lobstersLobsters·2y

    Goodhart's Law in Software Engineering

    Goodhart's Law highlights how metrics in software engineering can become counterproductive when they turn into targets. The law's weak version suggests that people may manipulate metrics, while the strong version warns that even honest pursuit of these metrics can be detrimental. Examples in engineering include using test coverage as a proxy for thorough testing and lines of code for productivity. The solution is elusive, but combining multiple metrics and using best engineering judgment may help mitigate the effects.

  24. 24
    Article
    Avatar of lobstersLobsters·2y

    MoErgo Glove80 programmable ergonomic keyboard

    The MoErgo Glove80 is a highly programmable, ergonomic keyboard designed for comfort and efficiency. It offers a split, columnar, and contoured design with wireless capabilities. The post provides an in-depth review of the keyboard's features including customizable layers, lightweight polycarbonate build, and advanced firmware options. It compares the Glove80 with other ergonomic keyboards and discusses its advantages in terms of usability, mobility, and customization.

  25. 25
    Article
    Avatar of lobstersLobsters·2y

    Changes to `impl Trait` in Rust 2024

    Rust 2024 introduces a new default for `impl Trait` in return positions, allowing hidden types to use any generic parameter in scope, including lifetimes. A new 'use bound' syntax provides explicit control over which generics are captured. These changes aim to reduce confusion and improve consistency, addressing usability problems and inconsistencies with existing rules.