All

Never use the word “User” in your code

Never use the word “User” in your code

You’re six months into a project when you realize a tiny, simple assumption you made at the start was completely wrong. And now you need to fix the problem while keeping the existing system running—with far more effort than it would’ve taken if you’d just gotten it right in the first place. Today I’d like to tell you about one common mistake, a single word that will cause you endless trouble. I am speaking, of course, about “users”. There are two basic problems with this word: “User” is almost never a good description of your requirements.“User” encourages a fundamental security design flaw. The concept “user” is dangerously vague, and you will almost always be better off using more accurate... »

On Shutting Down

On Shutting Down

It makes sense that founders and investors spend so much time talking about things that go well. If we spent all of our time dwelling on the companies that failed, we wouldn’t have time for much else. When people do talk about company failure, they often do so in a way meant to make them seem wise by breaking down all the lessons they’d learned through failing. I did something like this when we shut Tutorspree down. I think that was a valuable exercise, and maybe it even helped some people. Mostly, though, it was cathartic. Founders lack a coherent way to think about when to shut down.1 Founders do not always get to choose to shut down.2 However, most of the time, it is the founder... »

Apple as the new Disney

Apple as the new Disney

There are about 5.5bn adults on earth; 5bn now have a mobile phone, 3.5-4bn have a smartphone, and 800m of those smartphones are iPhones. We connected the Earth, and Apple did pretty well out of that. The trouble is that once you connect all the people, there are, well, no more people, and growth becomes a challenge. So smartphone sales are flat-to-down year on year, Chinese smartphones sales are down and iPhone sales do not have as much growth ahead as they had in the past. Boring. What next? There are two conversations for Apple here. The first is that, just as when the iPod was The Thing and people wondered what was next, Apple has Projects. For example, some sort of car project has been ... »

The power of ten minutes a day

The power of ten minutes a day

In early 2012, I published Jumping into C++. According to the calendar, I wrote the book between January 2010 and January 2012, but it took me less than 200 hours of work. I know this because for most of the time I worked on the book, I kept careful track of my time spent. Between 1/4/2010 and 9/29/2011 (when I stopped keeping track), I’d worked on the book for almost exactly 156 hours and written over 70,000 words. How, exactly, did I manage to write a book in this short a time? I had one simple rule: I had to work on the book for just ten minutes, every day, no excuses. Ever. The original reason I tracked my time, in fact, was that I wanted to motivate myself by having a streak of day... »

Why I use old hardware

Why I use old hardware

Recently I was making sure my main laptop is ready for travel1, which mostly just entails syncing up the latest version of my music collection. This laptop is a Thinkpad X200, which turns 11 years old in July and is my main workstation away from home (though I bring a second monitor and an external keyboard for long trips). This laptop is a great piece of hardware. 100% of the hardware is supported by the upstream Linux kernel, including the usual offenders like WiFi and Bluetooth. Niche operating systems like 9front and Minix work great, too. Even coreboot works! It’s durable, user-serviceable, light, and still looks brand new after all of these years. I love all of these things, but there’... »