Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,540 posts.
Using RP2040 PIO to drive a poorly-designed displa
Dmitry.GR: Driving a poorly-designed display and touch board using no CPU at all
Listen to Database Changes Through the Postgres WAL
An in-depth guide to listening to Postgres database changes through the WAL. Covers logical replication, publications, replication slots, and an Elixir implementation.
Code review without your glasses
You’re part of a preternaturally enlightened dev team, and have set aside an entire day for nothing but code review. However, after the first 2 hours, you realise that you have forgotten your glasses and have just been staring at colourful blurs all morning. What do you do?
Improved Git Diffs with Delta, Fzf and a Little Shell Scripting
Spotting differences in code is an important part of what we do, Delta is by far the best CLI diff tool I ever used.
Index Merges vs. Composite Indexes in Postgres and MySQL
Composite indexes aka multi-column indexes are about 10x faster than index merges. In Postgres, the gap is larger than in MySQL because Postgres doesn’t support index-only scans for queries that involve index merges.
Algebras we love
If you work with anything that can be modeled mathematically, you most likely know that many things you work on can be expressed with algebras. However, if you are not a graduate of a computer science course or similar you might not know how ubiquitous they are and how often you rely on some of them. (And I don’t mean…
Unladen Swallow Retrospective
I wrote this while I was at PyCon, but I kept revising it. Anyway, here goes. :) As is apparent by now, no one has really been doing any ...
A Map of Python
PyPi, the Python Software Foundation's package repo, counts over half a million open source projects. Since I use many of these every day, it seemed appropriate to get to know this set of packages better, and show some appreciation. The index website provides nice search and filtering, which is good when looking for…
Implicit In-order Forests: Zooming a billion trace events at 60fps
In the course of trying to figure out how to smoothly zoom timelines of a billion trace events, I figured out a cool tree structure that I can’t find elsewhere online, which it turned out two of my friends have independently derived after not finding anything on their own searches. It’s a way of implementing an index…
Transformers for software engineers
Ever since its introduction in the 2017 paper, Attention is All You Need, the Transformer model architecture has taken the deep-learning world by storm. Initially introduced for machine translation, it has become the tool of choice for a wide range of domains, including text, audio, video, and others. Transformers…
Lisp Hackers: Peter Seibel
Peter Seibel has helped more people (including me) discover and become user of Lisp as probably noone else in the last decade with his Pract...
Never trust a programmer who says they know C++
I’ve been in an interviewing mindset for awhile and I’ve come to realize something important about C++ in particular. C++ is a “two peak” language. That is to say C++ is the only language I know of where two very different sets of programmers consider themselves well versed in the language. Let me show you in fake…
Why I rewrote the mesh generator of Dust3D from Rust to C++
Dust3D is a free, open source low poly 3D modeling tool for video games and 3D printing. Features sketch-to-mesh, auto-rigging, procedural animation, and single-tool GLB/FBX export.
Things You Should Never Do, Part I (2000)
Netscape 6.0 is finally going into its first public beta. There never was a version 5.0. The last major release, version 4.0, was released almost three years ago. Three years is an awfully long tim…
-h –Help -help Help –? –?
-h --help -help help --? -? ????
React/JavaScript fatigue
A few days ago, I met up with a friend & peer over coffee.
Is Haskell the right language for teaching functional programming principles?
The “park bench” panel at the Haskell eXchange last week talked about a lot of things, but some of them can be summarised by the question ...
C for Rust programmers
Interesting and unexpected details for Rust programmers learning the C programming language.
Unit tests as documentation
Unit tests are always in sync with the code, making them a powerful tool for up-to-date documentation.
Six years of professional Clojure development
Over the last couple of years me and my colleagues here at doctronic have been busy creating and maintaining more than a dozen of individual software systems for our clients.
Java 8’s new Optional type doesn't solve anything
When Java 8 was released, I was excited to see the new Optional type. The null reference is a common source of errors in most languages…
Writing a Gimp 3.0 Plugin
GIMP 3.0 is almost out, and I'm thrilled. Not only will this version bring new features and improvements, but it finally modernizes the technology stack in two important ways: