Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,540 posts.
A Million Lines of Bad Code
This is the story of some bad code I wrote.
Getting silly with C, part (void*)2
They won't be able to find bugs in your code if they can't figure out how it works.
The weirdest QNX bug I've encountered (2021)
I am responsible for the reliability of the firmware updates on our devices and this work never gets boring. The thing about firmware updates is that by definition, every bug is caused by the updater because before installing the affected version, the bug was not present. You could say that updates are the cause and…
The GitHub wiki is an anti-pattern (2022)
Using the wiki on GitHub makes life more difficult for your users, and you as a maintainer. Use the `/docs` folder and GitHub Pages instead and keep your docs in sync with code
Isn't WSL2 just a VM?
My take on Windows NT subsystems and the thin line between VMs and subsystems.
What Every Programmer Absolutely, Positively Needs To Know About Encodings (2011)
If you are dealing with text in a computer, you need to know about encodings. Period. Yes, even if you are just sending emails. Even if you are just receiving emails. You don't need to understand every last detail, but you must at least know what this whole "encoding" thing is about. And the good news first: while the…
Learn Perl in about 2 hours 30 minutes
Perl is a dynamic, dynamically-typed, high-level, scripting (interpreted) language most comparable with PHP and Python. Perl's syntax owes a lot to ancient shell scripting tools, and it is famed for its overuse of confusing symbols, the majority of which are impossible to Google ...
Replacing cron jobs with a centralized task scheduler
A brief description of our task scheduling system
C extensions, portability, and alternative compilers
Anyone who's written C knows that full ISO C standard-adhering code is an impractical rarity. Most real world C code out there relies on non-standard behaviors and language extensions to varying extents, and a lot of this isn't for extra features, but just to work around bugs and gaps in different compilers and…
Resilience requires helping each other out
A common failure mode in complex systems is that some part of the system hits a limit and falls over. In the software world, we call this phenomenon resource exhaustion, and a classic example of th…
Parsing URLs in Python
Tech babble and other stuff
Fooling Around with Foveated Rendering
Shadertoy is a wonderful tool which lets users create and share a type of program called a fragment shader online. The true magic of shadertoy is its community of very talented graphics programmers who build incredible works of art despite having access to only a sliver of the traditional graphics pipeline.
Local-First Software Is Easier to Scale
The title of this post is somewhat misleading. Local-first software rarely needs to be scaled at all.
Eve: My Concerns
Eve is a new programming language. Maybe. Or, a development environment. More accurately, perhaps, it’s a tool to think. If you have an hour to spare, this is a great video to watch from Chris Granger:
F (2006)
F is a pure functional concatenative language originally designed as an extension of False . F contains the list-operations of K3 and the dip combinator of Joy . Floating-point and symbolic datatypes are supported. One-time assignment is enforced in syntax. A theory of function-valence and -charge is outlined. F also…
Compiling Rust for .NET, using only tea and stubbornness
In this article, I describe my journey creating a barely functional rust backend enabling compilation for the .NET runtime (Usually used to run C# and F#).
The Framing of the Developer
Who framed Roger Rabbit? Talking about Software Development is about using frames. The prevalent "Backlog" frame is bad for the company and bad for developers.
To Serve Man, with Software
I didn’t choose to be a programmer. Somehow, it seemed, the computers chose me. For a long time, that was fine, that was enough; that was all I needed. But along the way I never felt that being a programmer was this unambiguously great-for-everyone career field with
Unicode programming, with examples in C
Most programming languages evolved awkwardly during the transition from ASCII to 16-bit UCS-2 to full Unicode. They contain internationalization features that often aren’t portable or don’t suffice.
'Music' from /dev/urandom
Last Updated Dec 12, 2019: Fixed an off by one error (awk uses 1-based arrays!).