Modules, not microservices
Dissecting why everybody keeps talking about microservices.
The latest blog posts to take off on Hacker News. 21,823 posts.
Dissecting why everybody keeps talking about microservices.
I recently wrote about completing Advent of Code 2022 using a different programming language (or two) every day for 25 days.
9 Must-Read Books for Software Engineers in 2023 — As a software engineer, staying up-to-date with the latest developments and best practices...
This is a short introduction to Rust, intended for developers that already know another language. In the examples, Rust is compared with TypeScript, JavaScript or Java, sometimes with C++ or Kotlin.
Note: On the back of some feedback I’ve created a follow-up of this post where I refine the thesis. I’ve left this post as-is for the sake of comparison
Let's start with an example. In Advent of Code 2022 day 1 we get groups of numbers as input like: 1000 2000 3000 4000 5000 6000 7000 8000 ...
The Lua programming language is unusual among its peers. It’s a dynamically typed, scripting language with a really small core (100-200kB), but runs efficiently, has far simpler semantics than other similar languages, and is just as old as the giants like JavaScript, Python, and Ruby – first made in a research lab…
Design-by-Contract's invariant attribute allows you to enforce important properties of systems and data structures, making it an incredibly useful tool for developers. In this blog post, we'll be exploring the development of a GCC plugin that adds support for [[invariant]] conditions in C++ classes and structs. We'll…
In this post, I am going to talk about the N + 1 queries problem. While trying to solve this problem myself recently, I noticed most of the blog posts only talk about the very simple version of the problem and the proposed solutions would break down when the use cases get complex. I will try to get into more depth and…
A rant about "year of Linux on the desktop" from a tired old man. I've been part of the Linux community since before Linux was called Linux. Over the years there's been many people telling me directly that Linux is silly or wrong or imperfect, or that free and open source software is foolish or pointless. A lot more…
Binary search is a workhorse of competitive programming. There are occasional easy problems where binary search is the solution in and of itself; more often, it’s used as a primitive building block…
An alternate to traditional <code>deleted_at</code> soft deletion that stays out of the way and minimizes bugs.
How far can I get in Advent of Code if I do all the problems in Dreams?
Benchmarking Rust to determine if small structs should be passed by-copy or by-value.
A preview of `pavex`, an upcoming Rust web framework built around compile-dependency injection. An attempt to combine great development ergonomics with high runtime performance.
You can get OpenBSD Mastery: Filesystems for Kindle direct from me at Tilted Windmill Press or at Gumroad . You can get a Kindle-friendly ebook from any number of other retailers, but while they’re all supposed to be DRM-free I can’t advise on prying the file out of another vendor’s ecosystem. The one place you cannot…
In November last year — I started building a DIY security alarm system, using a Raspberry Pi as the controller. My plan was to make a self-sustained system, using proper alarm hardware — like PIR sensors and sirens. Integration with Home Assistant would be an add-on, not a requirement. I wanted the system to be as…
Ship cross-platform React apps in ½ the time with 2x performance.
16 years and counting...
A generous member of the wider curl community stepped up and donated an unused Mac mini m1 model to me to be used for curl development. Today it arrived at my home. An 8C CPU/16GB/1TB/8C GPU/1GbE model as per the sticker on the box. The m1 mac mini, still wrapped in plastic. Apple is not … Continue reading An m1 for…
Researchers from MIT's Computer Science and Artificial Intelligence Laboratory (CSAIL) found that the Multiple Demand and Language brain systems encode specific code properties and uniquely align with machine-learned representations of code.
Not all non-sequential primary keys are created equal, the ULID format is a fantastic substitute for the typical UUIDv4 choice.
SQLite's optimizer creates indexes automatically to improve query performance with only nested loop joins.
Since making a sudden leap from computer science to academic medicine about seven years ago, I haven’t programmed as much.
I often work with clients who have large “data lakes” or big star schema style enterprise databases with fact and dimension tables as far as the eye can see. Invariably said clients end up with a substantial SQL codebase composed of hundreds of independent queries with lots of overlap between them. I want to be able…
When I was in junior high, my friends and I discovered that a Command Prompt command called net send was enabled on our school network. AIM and similar services were blocked, but if we wanted to send messages to each other we could open up the Command Prompt and type something like: net send lab2126-24 test and get an…