Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,544 posts.
How do you visualize code?
The other day I was reading about the development of personal computers and the desktop GUI, and I was thinking about how comfortable we all have become with the analogy of the “desktop” for our personal computers. We place files in folders and keep them on our desktops. There’s a lot of physical action going on…
The Birth of Standard Error (2013)
Earlier today Stephen Johnson, in a mailing list run by the The Unix Heritage Society , described the birth of the standard error concept: the idea that a program's error output is sent on a channel different from that of its normal output. Over the past forty years, all major operating systems and language libraries…
Why Emacs has buffers
Emacs's buffers are so much more than their name implies. They're not just a vessel for you to read or write from. Buffers in Emacs host network processes, shells, and transient data. They're also a key part to understanding why Elisp is designed the way it is.
Maybe Everything Is a Coroutine
I was inspired, after reading the excellent blog post Let Futures Be Futures, by the author’s thought experiment of a language in which all functions are coroutines and this is used to express asynchr…
How to be a sane programmer
Business Insider published an article today called The Stress of Being a Computer Programmer is Literally Driving Many of them Crazy. It covers the ty
GTK4 for Graphical User Interfaces
This book gives an introduction to design and creation of graphical user interfaces using the GTK widget tool-kit and the Nim programming language. The book has its focus on the Linux operating system (OS). While the Nim programming language does support all major operating systems, GTK has it main emphasis on the…
What the heck is a parser-combinator?
Introduction to parser combinators. Understand this functional programming concept for building parsers from smaller components.
Cryptography Dispatches: Hello World, and OpenPGP Is Broken
This is the inaugural issue of Cryptography Dispatches, meant to be quick, frequent and lightly edited discussions of cryptographic topics. Longer form can be found at blog.filippo.io. If you are not reading this in your email client, you can subscribe here .
The Git source code audit, viewed as a Rust programmer
On January 17th 2023, X41 and Gitlab published a report of the source code audit they performed on Git (funded by the OSTIF foundation).
LaTeX and Neovim for technical note-taking
This is a tutorial series to help you set up the Vim or Neovim text editors for efficiently writing math in LaTeX. Here is an example of what I have in mind:
Software designers, not engineers: An interview from alternative universe
How very different the world of software is in an alternative universe which has software designers rather than software engineers? In this interview, we look at a range of topics from software design sketching to software designer education, as well as the way in which software designers reshape any problem they are…
I Want Decentralized Version Control for Structured Data
How do I synchronize application data between devices and people? That's the question I was unable to answer when thinking about ideas for new applications I could develop. I wanted the synchronization to be
Lou's Pseudo 3D Page (2013)
Previous update: An explanation of 3d projection mathematics (under Road Basics) and analysis of Activision's Enduro (under Case Studies)! Thanks to everyone for all the e-mail! Keep it coming :) Sorry, I can't answer questions about when I'll post source code, but I'm always happy to answer anything else about these…
J Notation as a Tool of Thought
Kenneth Iverson’s 1964 language, APL, won him the Turing Award. His award lecture, Notation as a Tool of Thought, argued that better notations would lead people to deeper insights about mathematics. He provided a number of examples ranging across linear algebra, arithmetic, probability, and logic. Unfortunately, most…
A Lisp interpreter written in Lisp (2017)
A Lisp interpreter written in Lisp
Using Zig to Unit Test a C Application
Zig is a new, independently developed low-level programming language. It’s a modern reimagining of C that attempts to retain C’s performance while embracing improvements from the last 30 years of tooling and language design. Zig makes calling into C code easier than any other language I’ve used. Zig also treats unit…
Undefined vs. Unsafe in Rust
Recently Julia Evans wrote an excellent post about debugging a segfault in Rust. (Go read it, it’s good) One thing it mentioned was I think “ …
If you didn’t run code written by assholes, your machine wouldn’t boot
This was passed on to me by Ben Elliston, ex-gcc hacker and good guy. Amusing in context, but the corollary is that working on free software means you'll encounter such people. You may have to work with them. You may have to argue with them (and they may be right). Quite some time ago I was horrified by the private…
Visualizing binaries with space-filling curves
Edit: Since this post, I've created an interactive tool for binary visualisation - see it at binvis.io
Runtime code generation and execution in Go
Disclaimer: I won’t expand on why/when you want to do this kind of hack, and you should not do this unless you know exactly what you are doing. Everything I talk about here is completely unsafe and might not be accurate for the future Go versions. This is not a recommendation, but more of a fun story.
System Design Interview book review
I've come across the book System Design Interview: an Insider's Guide by accident (paperback book [https://www.amazon.com/dp/B08CMF2CQF], and online course [https://bytebytego.com/]). I was looking for good book resources after several people have been asking me how they can get better at building
Hacking Coroutines into C
A while ago, I was part of a team developing embedded software. The software was deeply rooted in state machines - dozens of them—spread across multiple functions. While this architecture is common in embedded development, especially for systems without an operating system, I started to question: Is this really the…