The cargo cult of versioning
[ Update Nov 27: This post had issues, and I retract some of my more provocative claims. See the errata at the end. ]
Topics /
The most popular blog posts about software engineering on Hacker News. 894 posts.
[ Update Nov 27: This post had issues, and I retract some of my more provocative claims. See the errata at the end. ]
I posted curl is C a few days ago and it raced on hacker news, reddit and elsewhere and got well over a thousand comments in those forums alone. The blog post has been read more than 130,000 times so far. Addendum a few days later Many commenters of my curl is C post struck … Continue reading Yes C is unsafe, but… →
We build a shell in the style of the Bourne shell, Bash, zsh, etc. It supports (1) running commands with arbitrarily many arguments, (2) quoting those arguments, and (3) combining the commands into arbitrarily long pipelines where the output of one command becomes the input of the next. This requires writing a parser…
This guide is mainly intended for expert programmers familiar with Java concurrency, but unfamiliar with the memory order modes available in JDK 9 provided by VarHandles. Mostly, it focuses on how to think about modes when developing parallel software. Feel free to first read the Summary .
How I rolled up my sleeves and got a real-time lighting engine working under the constraints of PICO-8.
I really like C++. It's not the right tool for every job, but it's what I reach for when I need to do any kind of systems programming. Unfortunately, C++ has often been cited as a "bad" language, and I feel like that reputation has worsened over time. Recent languages like Go and Rust have taken over a lot of mind…
A while ago, I presented as a crazy thought experiment the idea of using Montecito's transistor budget for creating a chip with tens of tho...
Many people are currently assessing React Native as a platform to develop their next mobile app on. This is no trivial matter. Switching your software development platform involves a high setup cost and will profoundly impact your daily programming workflow. It is also one of the costliest decisions to reverse after…
Articles and tutorials about Rust, Embedded development and Computer Graphics.
This post is an attempt to reduce the number of times I need to explain things in Stack Overflow comments. You may well be reading it via a link from Stack Overflow – I intend to refer to thi…
In which I go digging into source archives from 40-50 years ago, to figure out why we use XXX to mark dodgy code.
A short and self contained explanation that will guide you through an implementation of user threads.
In this tutorial you will learn how to apply Optical Character Recognition (OCR) to images using PyTesseract, Python, and OpenCV.
The modern messaging tools that chatbots run on offer much more ways to interact compared to what previous incarnations of chatbots had, such as those used on IRC or AIM. Much advise on building chatbots that’s out there quietly assumes that all chatbots are just text-in-text-out, which doesn’t match with the…
[ Cross-posting from last year’s Go contributors AMA on Reddit, because it’s still important to remember. ]
Sometimes you have to write code to do some ad-hoc things in order to make programs run in a variety of environments, but as time goes by, it could result in a tragicomical situation where ad-hoc features are built on other ad-hoc features. It is easy to identify that kind of problem, but in many cases, nobody can fix…
Yesterday I explained how a good background job framework is critical to scaling business applications. Today, meet Faktory. I’ve spent the last six months building Faktory, a new background job system which aims to bring the best practices developed over the last five years in Sidekiq to every programming language…
For the distinct purpose of getting a job in tech, side projects are either a great use of your time or a great waste of your time.
Building your own UNIX shell in parts. This post focuses on the semantics of the fork system call.
Omar Metwally, MD University of California, San Francisco DDASH – Ethereum Operating System for Knowledge Creation and Sharing ============================================= Github repo…
Fully reproducible builds are important because they bridge the gap between auditable open source and convenient binary artifacts. Technologies like TUF and Binary Transparency provide accountability for what binaries are shipped to users, but that’s of limited utility if there is no way (short of reverse engineering)…
This was a busy week, I had no time to read anything new, so I'm sharing a note that I wrote for myself, for no other reason than to understand things better. It's a kind of cookbook of various "transformations" you can apply to...
I’m afraid of a robot taking my job. I don’t care about the job part much, I’m afraid of the actual robot. To replace my job it’d need to exhibit human level intelligence. That’s scary. Before that happens though, maybe some of its infantile, and less scary, brethren can make my job a bit easier. […]