I’ve read lots of fascinating posts on the web about startups that failed. Maybe the idea was too far ahead of its time, or the cofounders didn’t get along. Usually the startup just ran out of money. Even if you’re lucky and get funding, it won’t last forever. It’s hard to build up enough revenue to get the rocket off the ground.
My story is a little different. I’m quitting before I’ve even really gotten started.
I had a lunch meeting yesterday with a friend regarding possible web development work for his company. The meeting was amicable, but there wasn’t any work available for me. When I came home I was disappointed, naturally, but it got me thinking about what I really want to do with my life.
One thing that’s not going to work is working at a regular company as a regular programmer. The language I’ve fallen in love with, newLISP, isn’t something that I can just go and get a job using. The industry has standardized on VB.NET, C#, PHP, Java, and to a much lesser extent Ruby on Rails. I can code in any of these if I had to, but they won’t make me happy, and if I’m unhappy I’m not likely to be productive and useful. I’d always be thinking about how much faster and more efficiently I could be coding in my own little niche language. I have real-world data to back this up. At my last job I was actually able to keep up in features (my application was better in performance and had fewer bugs) with a development team of five people including one manager who were rewriting my application using C#.
So when I thought about this, and believe me I thought about it a lot, I figured that a better plan would be to start out on my own. After all, if I can keep up with a team of five people, and only have to pay my own way, won’t that be a lot easier? It seemed like a natural fit. I would blaze a trail and develop amazing new applications on my own! Be my own boss!
What I didn’t realize is that being the boss is actually no fun, at least for me. It’s easy to complain about your boss when it’s another person. When your own boss is you, you’re perpetually mad at yourself. Why are you not working harder? Why aren’t you figuring out ways to make money? Why don’t you spend more time coding?
I spent amazingly little time coding. Because I was so efficient, I could get a few days worth of work done in a couple of hours. But then I’d stop. I set up a bunch of websites and got some neat features working on them, and then I’d waste time watching Starcraft or playing games. Why was I doing this?
I was thinking about it yesterday, when I went on my mid-morning run. I enjoy running, but I’m not a good runner. My lung capacity is pretty low, and I don’t push myself hard enough to improve my fitness level that rapidly. Starting a business is kind of like saying you want to run, not just for fun, but as a way to make a living. You need to be absolutely dedicated to it. You need to be a little crazy to run yourself right to the edge, to risk serious injury in pursuit of ever-increasing goals.
I remember running past long swathes of wild blackberry bushes in August and thinking that I should really go out and spend a few days just collecting them to freeze and make blackberry crisp. Instead, I would just grab a few berries as I ran, savoring the sweet taste but watching as thousands of berries just went to waste, picked by no-one, washed away by the rains and the end of summer.
It’s a lot like how I approached starting a business. It was fun to have a little taste of it, but I didn’t want to put in the incredible level of effort it would require to do it properly. And of course, there’s always the fear of failing. If you didn’t put in your best effort, you can’t be too disappointed in yourself, right? I know a few professional Starcraft players who had this approach. It didn’t end well for them. Success takes hard work. You have to slog through it to get what you really want.
But when I thought about it some more, it’s not like I was this lazy slob who didn’t put any effort into anything. I did write a whole web development framework from scratch. I did launch a couple of websites. I learned a lot and gained valuable skills that I can use anywhere that I go in the future. I can’t think of this as a waste of time.
Oh, and there was one other tiny little thing that I did over the last few months. I wrote an entire novel.
The truth is, while I was struggling to find motivation to be a software entrepreneur, I was already running a startup of sorts. Being an author is a lot like starting a business. You have to put in the effort to make a decent product (in this case, books and short stories), you have to spend a ridiculous amount of time on marketing (authors have to relentlessly self-promote on Twitter and blogs and their own website, as well as doing giveaways and appearing on radio shows and podcasts and writing panels) and you have to do all of these things consistently to try and grow a tiny revenue stream into something that (hopefully) becomes profitable.
It turns out that all this time I was doing all of this, and doing it consistently. I wrote 1,000 words every single day, without fail, and every day I would read blogs about marketing and go on Twitter and try to get the word out about my writing. Even though it wasn’t generating much revenue, it was more than my web-based businesses were doing (which was zero!)
At some point, I had to decide what I really wanted to do. Which would I keep as a hobby and which would I take seriously as a profession?
My wife, who knows me better than anyone in the world, including myself, found a way to help me decide.
She held me from behind, and put her hands on my chest, and squeezed gently.
“How do you feel about programming?” she asked.
I had to answer honestly. “I feel like I’m being crushed,” I said.
“Okay, now let’s try this again.” She released me and then grabbed me again in the same way. “Now how do you feel about writing?”
I wasn’t sure. “I don’t feel anything,” I said. But she wouldn’t leave it at that. She did the exercise again. I still felt like I was being crushed when I thought about programming as a career. But the feeling when I thought about writing was different.
“I feel like I’m uncrushable,” I said.
So I had my answer.
Now, I’m not going to stop programming. I’m still planning on developing JetCondo, for example, my RSS reading platform. But I’m going to develop it for myself, as a hobby, and not try and make it my livelihood. I’ll still work on newLISP on Rockets as well, and if any future employer can get some benefit out of my work with these tools, great. But it’s not necessary. Ironically now that I’ve made this decision I feel like working on it more than I did before. Isn’t that weird?
It also doesn’t mean that now I’m going to take on the stress and pressure of making my fiction writing be my sole income. The artist Lynda Barry had a great quote about this: she compared art to a beautiful baby, and how artists are immediately expected to jump on the baby’s back and yell “I’m riding you all the way to the bank!” It doesn’t work that way. You have to care for and nurture the baby, and when it grows up maybe it can take care of you. In the mean time, there are other ways to make a living.
Writing is my baby. It’s time to nurture it and let it grow.
I was going to do this when I first released Monarch, but it seemed hard so I didn’t actually get around to doing it.
To prevent spammers that can read even the most twisted words and phrases, I’ve implemented my own version of Kitten Captcha, something I wrote about on Ars way back in 2006 here:
Well, I’ve finally done it. The system displays a bunch of random pictures and a new user has to select all the pictures that are in fact cats. The file names are all randomized so that a spambot can’t just guess what they are, and you have to pick only three out of the ten images so you can’t just select everything.
I deleted all the spam accounts that OSY 3.0 had accumulated (about 30 of them!) and so we’ll see how this new system works. I hope it both discourages bots and encourages new users due to its being cute and cuddly.
Here’s a screenshot of the page in action:
Many years ago I became obsessed with personal computer market share. I remember wanting desperately to argue with other geeks on the Internet about whether the Apple ][ had a greater share than the Commodore 64 or vice versa, but the problem was that nobody seemed to have this information.
One night I went into insane researching mode and stayed up until three in the morning trying to find the answers to my questions. I gathered up all the numbers, and put it on a single page, for which I did no advertising. For years it was the #1 or #2 result for Googling "personal computer market share", simply because nobody else had bothered to tally up these numbers.
You can visit the page here: http://jeremyreimer.com/postman/node/329
or read the more full-featured article I wrote for Ars Technica based on these numbers here: http://arstechnica.com/old/content/2005/12/total-share.ars
After this, I gradually lost interest in the whole concept of market share, mostly because it was (for me) a solved historical problem now, but also because I moved on to other things.
Then out of the blue I found this article that had taken my numbers, moved the whole graph to a really cool logarithmic scale, and added data for iPhones, Android phones, and iPads!
This is a really cool example of people building on top of other people’s work, without having to ask permission but being nice about attribution. It’s nice to see the data I had long forgotten about being used in new and novel ways.
The idea behind HTML 5 was a good one: make sound and video clips a part of standard HTML code that anyone can use on any platform without having to use Adobe’s proprietary Flash plug-in. Great! Long overdue, in my opinion.
Then, sadly, everything went wrong.
I already knew that the video tag in HTML 5 was a complete train-wreck. Some browser manufacturers had decided to support H.264, others Ogg Theora, and then Google came along and started pushing WebM. But that’s video, something where new codecs are still being created and the state of the art is still very much in flux. I could forgive things for not being all sorted out.
Audio, I thought, would be trivial. So when it came time to include a podcast playback control in my Monarch blog engine (you’re reading through it right now!) I decided to test out HTML 5’s audio support to see how well it would work.
The answer is worse than not at all.
Internet Explorer 8, of course, ignores the tag and displays nothing, but that’s forgivable because honestly, who uses IE any more? Only dinosaurs and old people who really like things to be extra-slow. IE9 will supposedly support it, assuming the sun hasn’t become a red giant and consumed all life on Earth by the time it is released.
Firefox, on the other hand, commits an even more unforgivable sin: it CLAIMS to support it, but then won’t play MP3 files! Ogg Vorbis only! Look, Mozilla people, I understand this Noble Crusade For No Patents in Codecs, but MP3 is supported by every other sound playback system in the entire history of time. Five dollar portable music players support it. I think my breakfast cereal supports it. This is ridiculous!
Now, we get to Chrome. Great browser, Chrome. Supports HTML 5 audio tags and plays back MP3s. Great, right?
Yeah, until you put more than one on a single page. Then it tries to play them all at once, ignoring the autoplay settings, and freezes the entire web page. (EDIT: It's worse than that, actually. It freezes the ENTIRE BROWSER! Not even sandboxing can save it!) Great, Chrome. Nice job.
I downloaded a Flash audio player (the same one that the audio module in my old blog running Drupal used) and everything ran fine. Multiple instances, no problem. Runs on every browser, too, except the iPhone/iPad, which don’t support Flash.
The idea of replacing Flash is a good one. It was neat seeing the Knotty Geeks podcasts load up on my iPad in a web page and being able to play them. But freezing Chrome and not working on Firefox is a complete deal-breaker, and this doesn’t show any signs of improving any time soon.
Flash is here to stay for the time being, folks.
I'm a writer and occasional programmer. I write science fiction stories and novels.
I also write technology articles for Ars Technica.
I'm the creator of newLISP on Rockets, a web development framework and blog application.