Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,543 posts.
How to DOS a developer
So you think your favourite FOSS project is moving too fast? Easy, just DOS the developers. Here's a few tips on how to achieve this: On IR...
Removing blur from images – deconvolution and using simple image filters
Left: Original image. Center: Blurred through convolution. Right: Deconvolution of the blurred image. In this post, we’ll have a look at the idea of removing blur from images, videos, or games thro…
Unicode's transliteration rules are Turing-complete
Claim: as specified, the UTS #35 transliteration-rule language is Turing-complete. This is an exception in Unicode, where algorithms are deliberately bounded and always terminate. The specification defines a revisiting cursor with no rewrite limit. ICU's implementation implements a per-call cap, but the spec itself…
How I've run major projects (2025)
focus • maintain a detailed plan for victory • run a fast OODA loop • overcommunicate • break off subprojects • have fun • bonus content: my project management starter kit
Elixir multiple processes: Basics
How to work with multiple processes in Elixir
Julia GPU
Lambdaclass's blog about distributed systems, machine learning, compilers, operating systems, security and cryptography.
Distributed systems for fun and profit
git , Single page HTML , Kindle .mobi , PDF , .epub , HTML for printing , book cover .
More State Machine Love: From Reflection to Statecharts
In “ How I Learned to Stop Worrying and ❤️ the State Machine ,” we built an extremely basic state machine to model a bank account.
I fixed a bug in Python
About a month ago, I found a bad-behavior bug in the tokenize standard library module, and with help from Aron Griffis, submitted a patch to fix it. Yesterday was a Python bug day, and Ezio Melotti merged my change, so I have officially contributed to CPython!
Constructing the Word's First JPEG XL MD5 Hash Quine
A walk through of building an image that displays its own MD5 Hash
Build your own summary tool
After Yahoo! acquired Summly and Google acquired Wavii, there is no doubt that auto summarization technologies are a hot topic in the industry. So as a NLP freak, I decided to give a quick overvie…
The Atoms of Programming
In the world of physics, there are many different models that can be used, though typically each of them has different applicability to different contexts. At the small scale, quantum physics is a very useful model, Newtonian physics will yield evidently incorrect predictions so is less valuable. Where a Newtonian…
The best things and stuff of 2011 by Fogus
Great things and people that I discovered, learned, read, met, etc. in 2011. No particular ordering is implied. Not everything is new.
Rolling hash; Rabin-Karp string search
This is yet another string search algorithm. (Previously my readers have read about Knuth-Morris-Pratt .)
Adventures in JIT compilation: Part 1 – an interpreter
This is the first post in a series about JIT compilers. The plan is to take a simple input language and develop some interpreters and JITs for it, in roughtly increasing degree of complexity. It's my hope that by the end of the series readers will have a good understanding of what it takes to develop a JIT compiler…
Competitive programming in Haskell: better binary search
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…
Cryptic Crossword: Amateur Crypto and Reverse Engineering
Reverse engineering is a special subgenre of computer programming. It's about the closest that I as a programmer get to being a scientist. Gather data, formulate a hypothesis, test, refine, repeat: reverse engineering is basically applying the scientific method to a very, very small knowledge domain. If you've never…
Triangle frenzy
Suppose we want to draw a batch of images, where each image is made up of randomly positioned and colored triangles, that are blending. It will look like this:
Concurrency in Python: CSP and Coroutines
Communicating Sequential Processes and Python coroutines as a structured approach to concurrency.
Write hybrid CPU/GPU programs in Haskell
What’s better than programming a GPU with a high-level, Haskell-embedded DSL (domain-specific-language)? Well, perhaps writing portab...
Debugging Lisp, Part 5
This post is for all of the miscellaneous features that arent large enough to get their own individual posts. If you havent read all of them, here are the links to the previous posts on recompilation, inspection, class redefinition, and restarts. One somewhat obscure tool for debugging is SBCLs trace. SBCLs trace goes…
Emacs and Eev, Or: How to Automate Almost Everything
Eduardo Ochs http://angg.twu.net/#eev eduardoochs@gmail.com (HTML version: 2007oct01)