Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 1,551 posts.
The Code Is the To-Do List
Learn programming languages like TypeScript, Python, JavaScript, SQL, and regular expressions. Interactive with real code examples.
The Musl Preprocessor Debate
Today, I would like to discuss a project that I care very deeply about: the musl libc. One of the most controversial and long-standing debates in the musl community is that musl does not define a p…
How Airbnb Built “Wall” to prevent data bugs
Gaining trust in data with extensive data quality, accuracy, and anomaly checks.
Postgres Insider Terminology
If you've ever wondered - What is a tuple? What is a Postgres page? What's the difference between a record and a row? What is a relation? What's an array? What is TOAST? This post is for you! These are terms you hear all the time in the Postgres world. This post breaks down what these terms mean and how they are used.
uLisp on the Raspberry Pi Pico
The RP2040 is a microcontroller chip designed by Raspberry Pi in the UK. It's a dual-core ARM Cortex M0+ running at 200 MHz which provides up to 16 MB of off-chip flash and 264 KB on-chip RAM. It has 30 GPIO pins, 4 of which can be used as analogue inputs, two UARTs, two SPI controllers, two I2C controllers, and 16…
Crystal 1.5
We are delivering a new release with several bugfixes and improvements. Below we list the most important or interesting changes, without mentioning several bugfixes and smaller enhancements. For more details, visit the changelog. Breaking changes are marked with ⚠️.
You say “cave dweller debugging”, I say debug logging
There are still many situations where it's not feasible to stop a process, attach the debugger, and start futzing with memory. We can argue over whether this is because the industry didn't learn enough from the Pharo folks later. For now, let's pretend that's axiomatic: a certain amount of debugging (and even testing)…
They Called It LISP for a Reason: List Processing (2005)
Lists play an important role in Lisp--for reasons both historical and practical. Historically, lists were Lisp's original composite data type, though it has been decades since they were its only such data type. These days, a Common Lisp programmer is as likely to use a vector, a hash table, or a user-defined class or…
WebAssembly and C++
C/C++-specific WebAssembly notes.
The state of Flow-based Programming
Where Flow-based Programming stands after 50 years since its introduction. What problems it solves today. And what problems it can solve tomorrow for broader Software Engineering industry
DockYard R&D: FireFly Optimizes Your Elixir Compilation
Firefly is an alternative compiler to BEAM, introducing new levels of efficiency and speed for compiling Elixir applications.
Linker, can you spare a meg? (2021)
Tailscale on iOS runs as a special kind of app, a Network Extension. This lets us run in the background, so we can secure traffic from all of your applications, without them having to change anything. But with this power comes a memory straightjacket. Normal iOS apps can use 5GB or so of memory before iOS kills them…
Loopr: A Loop/Reduction Macro for Clojure
I write a lot of reductions: loops that combine every element from a collection in some way. For example, summing a vector of integers:
Babashka Clojure nREPL as a system interface
Dmitri's blog about programming, Clojure, and software development
News from WWDC22: WebKit Features in Safari 16 Beta
WebKit has had a big year, with over 162 new features and improvements shipping in WebKit browsers — including Safari 15.2, Safari 15.4, and Safari 15.5.
How I learned to stop worrying and love the YAML
Something I miss after emigrating from the UK to the USA is the using the name of a yeast extract based spread as an adjective. To describe something as “marmite”
My Elm Experience
I've been using Elm since about one year back now. At the start of 2021 I began working with a client that had an existing Elm frontend code base and an early stage backend built in Elixir and Phoenix. This post will be about my experiences running face first into Elm. I'll be vague on some details as I can't share…
Scaling Git’s garbage collection
A tour of recent work to re-engineer Git’s garbage collection process to scale to our largest and most active repositories.
New and Improved Embedding Model for OpenAI
We are excited to announce a new embedding model which is significantly more capable, cost effective, and simpler to use.
Piet-GPU Progress: Clipping
Recently piet-gpu has taken a big step towards realizing its vision, moving the computation of path clipping from partially being done on the CPU to entirely being done on the GPU.
Tackling multiple tasks with a single visual language model
We introduce Flamingo, a single visual language model (VLM) that sets a new state of the art in few-shot learning on a wide range of open-ended multimodal tasks.
A System-Witch’s Package Manager Murder Mystery
It was a calm day on the puppy-linux thinkpad. The CPU was cool, the RAM was operating at double data rate, and a gentle breeze flowed through the chassis as the fan whirred away. A girl wanted to log onto Discord to chat with her friends, but much to her dismay, Discord needed a package update! No matter, such things…
New in Go 1.20: wrapping multiple errors
Go 1.20, which is expected to be released in February 2023, comes with a small change that can possibly improve error handling in applications which heavily use …
Safety: A comparaison between Rust, C++ and Go
Memory safety is a hot topic, but what do we mean by it?