Best of Lobsters — March 2024
- 1
- 2
Lobsters·2yWhy Facebook doesn’t use Git
Facebook chose to use Mercurial instead of Git due to performance issues and the willingness of the Mercurial community to collaborate. They considered alternatives such as Perforce and Bitkeeper but ultimately found Mercurial to have cleaner architecture. Facebook successfully migrated their engineering organization to Mercurial.
- 3
- 4
- 5
Lobsters·2yThe Real C++ Killers (Not You, Rust)
The author discusses their struggle with C++ addiction and explores other languages that provide competitive advantages over C++. They introduce Spiral, a research project that optimizes code for hardware, and Numba, a Python compiler that offers C++ performance. The author also discusses the ForwardCom proposal, which aims to create a universal instruction set architecture for forward compatibility in assembly programming.
- 6
Lobsters·2yThis TypeScript type haunted my dreams
The post explores the 'OneOf' TypeScript type and its implementation through the 'AllowOnly', 'Pick', and 'Omit' types. It explains how the 'AllowOnly' type creates a stricter version of 'Pick', and how 'Pick' and 'Omit' are used to select and exclude specific keys from a type.
- 7
Lobsters·2yA new serverless Postgres platform
Xata announces the launch of a new serverless Postgres platform, combining the features of Xata with the functionality of Postgres. The platform offers high availability, scalability, and cost efficiency, with a generous free tier. It also introduces logical database branches and integrates with pgroll for zero-downtime schema migrations. The Xata platform provides a data-centric solution with features like file attachments and full-text search.
- 8
- 9
Lobsters·2yA Javascript Nightmare
The post describes the author's frustrating experience with a JavaScript issue related to exporting PDF files. The investigation led to suspicions on Nginx, AWS WAF, and S3 buckets, but ultimately the issue was caused by library and package version compatibility. The post emphasizes the challenges and risks of the JavaScript ecosystem.
- 10
Lobsters·2ygithubnext/monaspace: An innovative superfamily of fonts for code
Monaspace is a monospaced type superfamily with distinct variable axis typefaces and coding ligatures. It offers font installation instructions for macOS, Windows, and Linux. The post also explains how to set the font family and enable texture healing and coding ligatures in VS Code.
- 11
- 12
- 13
Lobsters·2yBuilding an interactive shell in Golang
Learn how to build an interactive shell in Go using the abiosoft/ishell package. This tutorial covers configuration options, launching the shell, handling predefined commands or free-form input, interrupting execution, and adding shell history and tab completion. Find out the best option for building interactive shells in Go.
- 14
Lobsters·2yWhat I like about Go
Benefits of using Go for deployment and management, such as good performance, ease of cross-compilation, containerization, and fast startup times. Advantages of Go's balance between low-level and high-level, static typing, ergonomic concurrent programming, standardized tooling, and straightforward code constructs.
- 15
Lobsters·2yicyphox/legit: web frontend for git
Legit is a git web frontend written in Go that features fully customizable templates and stylesheets, cloning over HTTP(s), and improved HTML. It uses yaml for configuration with options for specifying repository paths, readme files, main branches, and more.
- 16
- 17
- 18
- 19
Lobsters·2yHow we replaced Vagrant with devenv
The author shares their experience replacing Vagrant with devenv for their development environment. They encountered problems with Vagrant's shared folder and slow VM recreation. They considered containers but found them less ideal for development. They discovered devenv, a Nix-based alternative, and built a proof of concept. They faced challenges with integrating with PHPStorm and issues with WSL. Despite the challenges, the final setup improved speed and browser response times. They used home-manager for WSL configuration and aimed for a standardized development baseline. The author sees potential in the Nix ecosystem.
- 20
- 21
Lobsters·2yIAM Is The Worst
IAM in cloud providers has become increasingly complex and difficult to manage, causing challenges for users. GCP's approach to IAM is criticized for its folder structure and reliance on predefined roles. The solution proposed is to use service accounts and viewer accounts to track and adjust permissions based on actual usage.
- 22
- 23
- 24
Lobsters·2ydevenv 1.0: Rewrite in Rust
devenv 1.0 has been released with new features and improvements. It is a rewrite in Rust from PythonRust. The migration guide includes deprecations and breaking changes. Future features planned include running devenv in a container, generating containers with a full environment, macOS support for generating containers, and native mapping of dependencies.
- 25