Best of Lobsters — May 2024
- 1
- 2
- 3
Lobsters·2yDon't Microservice, Do Module
This post argues for the use of modules instead of microservices, highlighting the benefits of modules and the challenges of microservices. It also provides scenarios in which microservices may be appropriate. Overall, a well-structured modular monolith is recommended over microservices unless specific use cases demand them.
- 4
- 5
Lobsters·2yYour API Shouldn't Redirect HTTP to HTTPS
This post argues that APIs should not redirect HTTP to HTTPS due to the downsides and potential security risks involved. It highlights the importance of a fail-fast approach for unencrypted API calls and suggests disabling the HTTP interface or returning clear error responses for unencrypted requests. The post also mentions popular APIs that either redirect or respond with plaintext, and suggests amending best practices to explicitly recommend against redirecting HTTP to HTTPS for APIs.
- 6
Lobsters·2yglanceapp/glance: A self-hosted dashboard that puts all your feeds in one place
Glance is a self-hosted dashboard that allows users to see everything in one place, including RSS feeds, subreddit posts, weather, bookmarks, and more. It has minimal JS, very few dependencies, and offers a small binary and Docker container for easy distribution. The project is under active development.
- 7
Lobsters·2yWriting commit messages
A guide to writing good commit messages that focus on important information rather than typography. It emphasizes the importance of including all the important facts and reasoning behind the code changes. The post also discusses the use of subject lines in Git and provides tips for clear and readable commit messages.
- 8
- 9
Lobsters·2yBitKeeper, Linux, and licensing disputes: How Linus wrote Git in 14 days
Linus wrote Git as an alternative to the existing version control tools, BitKeeper was the tool of choice before Git. Linus disliked CVS and Subversion due to their centralized nature. The development of Git was influenced by BitKeeper and aimed to provide a better solution for managing the Linux kernel.
- 10
- 11
- 12
Lobsters·2ymicrosoft/go: The Microsoft build of the Go toolset
microsoft/go is a repository containing the infrastructure Microsoft uses to build Go. It produces a modified version of Go that can be used to build FIPS 140-2 compliant applications. The binaries produced are intended for general use within Microsoft. The repository follows the upstream Go Release Policy and supports each major release until there are two newer major releases.
- 13
Lobsters·2yDatabase Design for Google Calendar: a tutorial
This post provides a tutorial on how to design the database tables for a Google Calendar clone. It introduces the approach used in the book 'Database Design using Minimal Modeling' and is aimed at helping readers understand the process of designing a database.
- 14
- 15
- 16
Lobsters·2yHigherOrderCO/Bend: A massively parallel, high-level programming language
Bend is a massively parallel, high-level programming language that runs on massively parallel hardware like GPUs. It has features of expressive languages like Python and Haskell and does not require explicit parallel annotations.
- 17
Lobsters·2yStealing everything you’ve ever typed or viewed on your own Windows PC is now possible with two lines of code — inside the Copilot+ Recall disaster.
The implementation of Copilot+ Recall on Windows PC raises privacy concerns and potential risks of data breaches. Hackers and malware can access the processed data, and the privacy implications are significant.
- 18
Lobsters·2ydestel/rill: Go concurrency with channel transformations, type safety, batching and error handling. No boilerplate
Rill is a comprehensive Go toolkit for streaming, parallel processing, and pipeline construction. It is designed to reduce boilerplate and simplify usage, allowing developers to focus on core logic without getting bogged down by the complexity of concurrency. Rill offers a range of features including lightweight integration into existing projects, easy to use abstractions for managing concurrency and error handling, batching for organizing and processing data, streaming for handling real-time data, order preservation for maintaining the original order of data, efficient resource use, type-safety, and functional programming capabilities.
- 19
- 20
- 21
- 22
- 23
Lobsters·2yRebuilding my homelab: Suffering as a service
The post discusses the process of rebuilding a homelab using Talos Linux and Kubernetes, exploring the challenges faced and the solutions implemented. It highlights the benefits of running workloads locally, the use of Kubernetes for workload management, and the importance of persistent storage solutions. The author evaluates various options, including Rocky Linux, Fedora CoreOS, and Longhorn for persistent storage.
- 24
- 25