Tom

Professional programmer, amateur speculator People pay me money to write code so I guess I'm ok at that. Nobody pays me to write words but sometimes I want to do that anyway so here I am, doing it for free. DISCLAIMER All opinions expressed in this space are my own and not representative of any employer of mine (past, present, or future), any organization to which I belong, or the broader community of well-adjusted human beings in general.

Social Hacks to Selfishly Up Your Work Game

If you, like me, work in a technical position, you probably think of social skills as a waste of brainpower. And one of the greatest advantages of having a technical position is that most of the time, social skills are optional for your job progression! But what I've discovered over the last few years is that if you develop social skills in particular ways, it can actually be a worthwhile investment, because they can make your job easier while making you look more valuable to your management. Th...
Read post

Complication, Complexity, and Chaos part 3: The "AI Sweet Spot"

Previously: Part 1 and Part 2 Now that we've established a basic understanding of some systems context, we can use it to draw useful conclusions. Let's start by establishing a coherent definition and somewhat meaningful definition of "AI": statistical and computational techniques that allow humans to "train" and "generate" algorithms to work in problem spaces where we cannot directly write useful algorithms, and the vast, inscrutable algorithms which are generated by these techniques. Though ...
Read post

Complication, Complexity, and Chaos part 2: Life is Chaotic

(Part 1 here) Imagine yourself as a single-celled organism living in a puddle. You have exactly one top-level priority: propagate so that your descendants are more numerous than you. In service of this goal, you have exactly two primary objectives: 1) don't die, and 2) acquire resources. In service of these objectives, you have a solid handful of secondary objectives; for example moving toward potential food, moving away from potential predators, responding to nonliving hazards like contaminant...
Read post

Complication, Complexity, and Chaos

There are three separate dimensions to any dynamic environment: complication, complexity, and chaos1. I'm going to explain what these dimensions mean, and why it's so important to keep track of them, in this post, and if you're willing to read on and bear with me, I'm eventually going to apply them to make some statements about "AI" and the limitations of the future impact of algorithms and binary computing in general. Complication is when a system follows a large number of specific rules. Com...
Read post

How to explain a software system

Has THIS ever happened to YOU? You're in a meeting with a bunch of other developers. The presenter, who is one of the smartest people you will ever meet, starts off by saying "I know you mostly aren't familiar with the FroznakDecombobulationService, so I'm going to give everyone a high-level overview. As you will see from the boxes and arrows on this slide, ..." Fifty minutes later, your coffee cup is empty, your bladder is full, your notepad is full of explanation on all the different framewo...
Read post

Git learnt

(ya know, if you want) Git is a powerful tool, and by far the most effective way to unlock its potential is to use it on the command line. There's just one issue with that, which is that the syntax for Git commands is unintuitive, often overly verbose, and written at a very low level, so doing many operations you care about (like, say, "put me on the latest version of this specific branch from the remote") tend to involve several commands. And since the commands are often context-dependent, com...
Read post

"AI Alignment" is impossible, but that's OK because it's also a silly thing to worry about

Fine, I'll elaborate. The version of "AI Alignment" I'm talking about here is the kind that a bunch of big-shot internet celebrities and "research foundations" and such are "trying" to "solve", where we build an AI with arbitrary capabilities far greater than human, and then try to make it do what we want. Here's why it's stupid: For any galaxy-brained constraint that we could place on an arbitrarily powerful AI, there exists an even more powerful AI which could develop an even more galaxy-bra...
Read post

Now featuring sweet aesthetics

I wrote a custom theme for this blog based on dark mode for hack.css. I had to copypaste it all into a single file and change a bunch of selectors which were targeting class names to just directly target the HTML elements, because Listed doesn't give the customizability to change any of the selectors on your HTML itself. I then went out and found the hex color code for old-school terminal style bright green text, which turns out to be #4AF626 (roughly speaking). I changed the primary colors to ...
Read post

A past post on Azure databases

While I polish up some of the drafts, I'd like to collect some of my other writing online too. So here is a post I did a few years back for my work's dev blog, about how to tune your Azure Cloud SQL database to make it go extra fast. ...
Read post

A Taxonomy of Software Failures

(Somewhat inspired by this classic article about categorizing exceptions, which anyone who writes software should read.) There are an infinite number of specific ways that a production software system can fail, and in my career I've encountered a vast array of them (of course, some percentage of them were my fault in the first place). But I've noticed that production failures tend to fall into a few broad categories, so my hope is that by sorting the categories out, it can be easier to anticipa...
Read post

First Poast

Testing this thing out -- there's a bunch of stuff I kind of want to write up, polish up, and broadcast to the general public. But since social media is demonic for numerous and well-documented reasons, I'd rather do it on a place like here; also because I'm hoping this will force me to be more proactive and coherent than I otherwise would. Current agenda is to get the general layout and metadata and CSS looking nice and fancy while I also polish up the posts I have in the drafts, and hopefully...
Read post