Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,540 posts.
Native equivalents of jQuery functions
Dive into the world of reviews! Read in-depth analysis of products, understand consumers' thoughts & make smarter buying decisions. Explore now!
Knuth's 'Earthshaking Announcement' due tomorrow
(I'm still looking for the catchiest way to appreciate the number MMXXVI. Exercise 7.2.1.6–122 gives 1234+.5*6+789 and -1+2345*6/7+8+9 and 1+(2/3)*45*67.8-9 ; other suggestions are welcome. The most elegant that I've seen so far is a beauty that was suggested independently by Arnaud Lefebvre and by Evangelos…
Grokking big unfamiliar codebases
A blog about game engines, graphics, C++, and more.
Paper is dead, long live paper programming
It should come as no surprise to anyone who reads this blog that I love to program "by hand." I happen to practice a degree of ascetical programming practices, and I believe that they help me to more deeply internalize and understand problems, ultimately delivering higher quality solutions. One of
I hate you Microsoft
The rare moment when I need to open a powerpoint document is here. As usual, I have my institutional account logged into their “services”, because my university pays microslop something in the ballpark of hundreds of thousands of euros in contracts with this large software provider.
PUT or POST: The REST of the Story
Web service designers have tried for some time now to correlate CRUD (Create, Retrieve, Update and Delete) semantics with the Representational State Transfer (REST) verbs defined by the HTTP specif…
An Introduction to Lock-Free Programming (2012)
Lock-free programming is a challenge, not just because of the complexity of the task itself, but because of how difficult it can be to penetrate the subject in the first place. I …
Why does zsh start so slowly?
I’m serious about shell startup speed. I use tmux to open and close tmux splits all day every day, so I need zsh to start quickly. I used to use frameworks like oh-my-zsh or prezto and while I was happy with the functionality they provided I wasn’t happy with their impact on my shell’s startup speed. So, what do we do…
Imperative Haskell
This post covers essentially the same material as a 5-minute presentation I gave at RC .
Deploying Kubernetes clusters in increasingly absurd languages
It’s been over 3 years since I published my most successful blog post about the abject horror of templated yaml and in many ways, I feel the same way now
Book review: Is parallel programming hard, and, if so, what can you do about it?
Here are my thoughts on the free online textbook Is Parallel Programming Hard, And, If So, What Can You Do About It? by Paul E. McKenney, author of the Linux kernel’s RCU synchronization mechanism. I read a lot of this textbook, got my fill, and probably won’t read more of it in the near future so wanted to write this…
Scrumdog – a program to download Jira Issues to a local database
Why I created Scrumdog - a program to download Jira Issues to a local database
Research in programming languages
Is there still research to be done in Programming Languages? This essay touches both on the topic of programming languages and on the nature of research work. I am mostly concerned in analyzing this question in the context of Academia, i.e. within the expectations of academic programs and research funding agencies…
Benchmark in Milliseconds
How long should a micro benchmark run? My rule of thumb is to tweak the input size until the benchmark takes about 300ms, for the following reasons:
Windows dynamic linking depends on the active code page
Windows paths have been WTF-16 -encoded for decades, but module names in the import tables of Portable Executable are octets. If a name contains values beyond ASCII — technically out of spec — then the dynamic linker must somehow decode those octets into Unicode in order to construct a lookup path. There are multiple…
Suture – Supervisor Trees for Go
Supervisor trees are one of the core ingredients in Erlang's reliability and let it crash philosophy . A well-structured Erlang program is broken into multiple independent pieces that communicate via messages, and when a piece crashes, the supervisor of that piece automatically restarts it.
What years of production-grade concurrency teaches us about building AI agents
Python and JavaScript/TypeScript AI frameworks are reinventing what telecom solved in 1986. What 40 years of production-grade concurrency teaches us about building AI agents.
The Linux kernel can spawn processes on its own
While investigating the aftermath of a potential security breach, I came across a somewhat "odd" process looking like this:
Setting up Gmail in Doom Emacs using mbsync and mu4e
Texts on this and that.
OpenSSL bug exposed up to 255 bytes of client heap and existed since 2011
Silently sends up to 255 bytes of the client's heap to the server . The server must support NPN , and the heap data is encrypted in transit.
How to write a JavaScript-free todo app using just HTML and CSS
I wrote a todo app. Unlike TodoMVC (where I took the design from) it doesn’t use JavaScript and instead all interactions are driven by CSS.
Rust Ownership Explained with Python
Mostly software: Rust, machine learning, and P2P systems. Previously, games and cocktails.