Know how your org works, or how to become a more effective engineer
A few months ago, exhausted by a constant stream of people perennially disappointed about reward structures at companies, I made what…
A few months ago, exhausted by a constant stream of people perennially disappointed about reward structures at companies, I made what…
Why ReSTIR is good for you.
This post is an unofficial sequel to one of my first blog posts from 2007, which was entitled “Quantum mechanics and Tomb Raider”. One of the oldest and most famous allegories is Plato&…
Some speculative hypotheses
Buying a new monitor is stressful because there's so many things to understand. After reading this article, you will know what to look for.
“The emotionally intelligent person knows that they will only ever be mentally healthy in a few areas and at certain moments, but is committed to fathoming their inadequacies and warning othe…
Around half of all software engineers are self-taught, One way to approximate this number is via the Stack Overflow developer survey . Another rough approximation comes from the fact that over the last decade, typically only 40-60K students graduated each year with a CS major from a US university, whereas the total…
This post is going to be a bit different from my usual posts. It’s still about computers, but it’s about a different type of computer: the computer modules in my 2009 Dodge Ram 1500 pickup. Vehicles these days have lots of computers in them. I’ve historically been afraid to mess too much with them in fear of screwing…
The pandemic made evident how much work can, and should, be different. The forced change to accommodate remote workflows also brought to light what I like to call “virtual offices”. Unlike truly remote friendly workplaces optimized for asynchronous communication, these aim to merely transport the office into a virtual…
Eight studies reveal a (possibly universal) bias in human imagination
Some gut-based judgements on the effectiveness of data.
Lessons from Atlantropa, the megaproject to unite Europe (& erase Africa)
The supply chain crunch, modern logistics, and that famous trip around the Port of Long Beach
The observability problem - Why is the system exhibiting this behaviour?
While reading up on architecture in Japan recently, I came across a technology that I hadn’t heard of before: the Ene-Farm. It’s a domestic energy system that is being used in Japan and…
In C, the length of a string in marked by a 0 byte at the end of the string. Thus to determine the length of the string, one must scan it, looking for the 0 byte. Recent ARM processors have a powerful instruction set (SVE) that is well suited for such problems. It allows you … Continue reading Implementing ‘strlen’…
Recently I gave a guest lecture in a graduate level software engineering course on the value of technical writing for software engineers. This post is a sort of rough transcript of my talk. I live-…
How to disable heap (dynamic memory allocation) in an embedded application? This article goes into the details of linker files and how to detect dynamic memory allocation.
You sometimes feel the need to make all of your integers positive, without losing any information. That is, you want to map all of your integers from 'signed' integers (e.g., -1, 1, 3, -3) to 'unsigned integers' (e.g., 3,2,6,7). This could be useful if you have a fast function to compress integers that fails to ……
When you hear the term, you should picture an hourglass with M things on one side, N on the other, and an important concept in the middle.
Visi On was the first full GUI for the IBM PC. First demonstrated by VisiCorp at Fall Comdex 1982 and released at the end of 1983, just prior to the Apple Macintosh, it pre-dated the release of Microsoft Windows by several years.
Scott Mabin's blog
At my company we use a small SQLite database. We define the schema in a single file with SQL CREATE TABLE statements. If we add tables, columns, or indexes, our application will create them automatically the next time it starts up.