Best of LobstersFebruary 2025

  1. 1
    Article
    Avatar of lobstersLobsters·1y

    Learning TypeScript

    This post introduces branded types (or opaque types) in TypeScript and their usefulness in ensuring type safety by differentiating between structurally similar types. It covers the need for branded types, how to implement them using 'as' assertions and type predicates, and presents various use cases for branded numbers and strings. It also discusses community libraries like ts-brand and Effect TS that simplify using branded types. Alternatives such as unions, enums, and template literal types are explored, along with the concept of wrappers for ensuring utmost safety in type validation.

  2. 2
    Article
    Avatar of lobstersLobsters·1y

    Best Simple System for Now

    The Best Simple System for Now (BSSN) is a concept that proposes a middle ground between perfectionism and pragmatism in software development. This system is the simplest one that meets current needs without over-engineering. Characteristics include simplicity without anticipating future requirements, focusing on the present needs, and ensuring code quality. The idea challenges the traditional dichotomy between quick fixes and sustainable development, advocating for iterative delivery and the constant evolution of the code to meet present needs effectively.

  3. 3
    Article
    Avatar of lobstersLobsters·1y

    Android in a Linux container

    A container-based approach to run a full Android system on GNU/Linux systems with Wayland desktop environments using Waydroid. It utilizes Linux namespaces to provide Android applications with direct hardware access through LXC and the binder interface. Detailed installation instructions and documentation are available on the Waydroid site, along with bug reports and development repositories hosted on GitHub.

  4. 4
    Article
    Avatar of lobstersLobsters·1y

    Docker Bake: Now Generally Available

    Docker Bake is now generally available with Docker Desktop 4.38. This orchestration tool simplifies building complex Docker images by using a declarative file format, enhancing build management, performance, and flexibility. It introduces features such as parallelization, optimization, and consistent configurations across teams. Key benefits include eliminating complex build commands, supporting advanced logic, and seamless integration with existing docker-compose files for improved development efficiency.

  5. 5
    Article
    Avatar of lobstersLobsters·1y

    ouch-org/ouch: Painless compression and decompression in the terminal

    Ouch, which stands for Obvious Unified Compression Helper, is a CLI tool designed for easy and fast compression and decompression of various file formats. It does not require runtime dependencies for Linux x86_64, offers great error messages, and includes accessibility features. Ouch supports formats like .zip, .tar, .gz, .bz2, and many others. Main commands are decompress, compress, and list, with corresponding aliases. Additional features include shell completions, man pages, and the ability to handle chained formats. Installation options include package managers like pacman, scoop, and cargo.

  6. 6
    Article
    Avatar of lobstersLobsters·1y

    Bash++

    Bash++ is governed by the GNU General Public License v3, allowing users to use the Bash++ language and compiler freely while enabling them to write software under different licenses. The documentation for Bash++ is covered under the Creative Commons Attribution-ShareAlike 4.0 International license, permitting sharing and adaptation with proper attribution and under the same licensing terms.

  7. 7
    Article
    Avatar of lobstersLobsters·1y

    GitHub - pkgforge/soar: A fast, modern package manager for Static Binaries, Portable Formats (AppImage

    Soar is a fast and modern package manager ideal for Unix-based distributions, supporting static binaries, AppImages, and other portable formats. It offers native desktop integration, high security standards, and a large repository of prebuilt packages. Soar is easy to use, requiring just a simple download and run, with many configurations already set by default. The tool provides a comprehensive guide and maintains robust community support for contributions and enhancements.

  8. 8
    Article
    Avatar of lobstersLobsters·1y

    Visual programming is stuck on the form

    Visual programming has been hindered by its focus on form rather than function. This essay explores how traditional node-and-wires paradigms fail to leverage the full potential of visual cognition. Drawing inspiration from examples like CellPond, the author argues for a new approach where the form follows function, emphasizing that effective designs should first tackle the underlying function before the visible form. This involves identifying entities, their relationships, and the system's state changes, leveraging visual perception for better program comprehension and transformation.

  9. 9
    Article
    Avatar of lobstersLobsters·1y

    strace Wow Much Syscall

    strace is a powerful system call tracer for Linux but comes with significant performance overhead and potential risks, making it unsuitable for use in production environments. The tool operates by pausing the target process for each syscall, causing a slowdown. Alternatives like perf_events may be more appropriate. The post offers insights into learning and using strace effectively, as well as similarities and differences with advanced tracers like SystemTap and ktap.