Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 21,828 posts.
Ryan Bates launches RailsCasts Pro
Short Ruby on Rails screencasts containing tips, tricks and tutorials. Great for both novice and experienced web developers.
Doom 3 Source code review
On November 23, 2011 id Software maintained the tradition and released the source code of their previous engine. This time is was the turn of idTech4 which powered Prey, Quake 4 and of course Doom 3. Within hours the GitHub repository was forked more than 400 times and people started to look at the game internal…
How to take 7 years to ship a beta
Update (February, 2020): I finally shipped v1.0! Since this post I refactored the engine to support lower-end hardware, finished the macOS…
Multi-tenant queues in Postgres
How we implemented fair queueing strategies for Postgres-backed task queues to ensure fair execution time across tenants.
Unifying the Technical Interview
Aisha’s hands rattle you. They float gently in front of her shoulders, wrists cocked back. One sways cheerfully as she banters with the hiring manager—her lacquered nails a cyan mosaic over ochre palms. They flit, then hover momentarily as the two women arrange lunch. When the door closes, Aisha slaps her fingertips…
Paul Buchheit: Applied Philosophy, a.k.a. "Hacking"
Every system has two sets of rules: The rules as they are intended or commonly perceived, and the actual rules ("reality"). In most complex ...
Cider 1.0
You can’t really know where you are going until you know where you have been. – Maya Angelou CIDER started its life as an effort to replace a hacked version of SLIME1 with a proper environment for Clojure development on Emacs. Many of you probably don’t remember those days, but initially almost everyone was using a…
That people produce HTML with string templates is telling us something
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
Go generics are not bad
When programming, we often need to write 'generic' functions where the exact data type is not important. For example, you might want to write a simple function that sums up numbers. Go lacked this notion until recently, but it was recently added (as of version 1.18). So I took it out for a spin. In … Continue reading…
Ruby has been fast enough for 13 years
When I started programming Ruby, it was on an Apple iBook G4/800. That beautiful 12” powerhouse of a 800 MHz PowerPC with a rocking 256MB of RAM. A lovely computer that was not only fast enough to …
ORM is an anti-pattern
ORM looks great early in a project but breaks down as complexity grows, forcing you to learn SQL anyway. Relations aren't objects. Either use NoSQL for object-like data or write a model layer with real SQL. ORM's abstraction is leaky, its efficiency poor, and the alternatives are better.
At the end you use `git bisect`
People rant about having to learn algorithmic questions for interviews. I get it — interview system is broken, but you ought to learn binary search at least.
Gzip exceptions, but only on hot or rainy days
A debugging story about a mysterious C# gzip decompression exception and what actually caused it, with investigation steps and lessons learned.
Announcing Wolfram Programming Lab
Easily learn programming and computational thinking with the Wolfram Programming Lab environment. Jump in and explore or learn systematically.
Why Lua?
Disclaimer: this article is intended for those familiar with programming languages ( Lua in particular).
This is how I git
Every now and then I get questions on how to work with git in a smooth way when developing, bug-fixing or extending curl - or how I do it. After all, I work on open source full time which means I have very frequent interactions with git (and GitHub). Simply put, I work with git … Continue reading This is how I git →
What is the core of the Python programming language?
Why ask this question? It's no secret that I want a Python implementation for WebAssembly [https://webassembly.org/]. It would not only get Python into the browser, but with the fact that both iOS [https://developer.apple.com/documentation/javascriptcore] and Android [https://developer.android.com/guide/webapps]…
Explaining Code Using ASCII Art
I’ve done plenty of these, when I wanted to switch half my brain off but still do something time-consuming and fiddly, but still kind of productive. Very therapeutic!
The Unix process API is unreliable and unsafe (2021)
It is difficult to write software which reliably and safely manages processes on Unix; this is because of flaws in the API. I know of no Unix system which has solved these problems, but in this article I'll be specifically talking about the Linux process API.
We have proof automation now
I've long had a soft spot for dependently-typed languages like Coq Rocq and Lean. They offer the possibility of a type system capable of encoding and enforcing arbitrarily subtle invariants. The sort of thing that, in regular languages, ends up (at best) as a comment, and which quickly gets lost as the size of the…
The upcoming GPT-3 moment for RL
How RL training will scale up to thousands of diverse environments, similar to how pretraining scaled up text corpora.
A Story About ‘Magic' (1994)
Some years ago, I (GLS) was snooping around in the cabinets that housed the MIT AI Lab's PDP-10, and noticed a little switch glued to the frame of one cabinet. It was obviously a homebrew job, added by one of the lab's hardware hackers (no one knows who).