Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 21,842 posts.
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
Swc – Fast JavaScript to JavaScript compiler
SWC (Speedy Web Compiler) is a super-fast JavaScript and TypeScript compiler.
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…
mruby 3.2.0
mruby is the lightweight implementation of the Ruby language complying to (part of) the ISO standard. mruby can be linked and embedded within your application. We provide the interpreter program
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 .)
Master Concurrent Processes with core.async
One day, while you are walking down the street, you will be surprised, intrigued, and a little disgusted to discover a hot dog vending machine. Your scalp tingling with guilty curiosity, you won’t be able to help yourself from pulling out three dollars and seeing if this contraption actually works. After accepting…
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…
Fuzzing Like It’s 1989
With 2019 a day away, let’s reflect on the past to see how we can improve. Yes, let’s take a long look back 30 years and reflect on the original fuzzing paper, An Empirical Study of the Reliability of UNIX Utilities, and its 1995 follow-up, Fuzz Revisited, by Barton P. Miller. In this blog post, […]
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.
LLVM 3.6 Release Notes
This document contains the release notes for the LLVM Compiler Infrastructure, release 3.6. Here we describe the status of LLVM, including major improvements from the previous release, improvements in various subprojects of LLVM, and some of the current users of the code. All LLVM releases may be downloaded from the…
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)
Just-in-time code generation within WebAssembly
wingolog: article: just-in-time code generation within webassembly
DeepSeek-v4.1 Flash: Pushing the Limits of KV Cache Compression
A deep dive into the DeepSeek-V4.1 Flash technical report: CED, CSA2, HSI, Single-Pass mHC, Engram and FP4 KV Cache — how the KV cache was compressed to just 890 bytes per token.
Resources for Learning about .NET Internals
It all started with a tweet, which seemed to resonate with people: