Interviewed by Geoffrey Grosenbach
Geoffrey Grosenbach: I thought it was appropriate to talk to one of the most controversial members of the Ruby community, Giles Bowkett. Programmer, DJ, actor, and pundit on his blog. Now, the first thing that I had to ask is, you have British citizenship. If I had that, I would take it as an opportunity to use a fake British accent as frequently as possible.
Giles Bowkett: [laughing] Well, actually, I have the legal option of British citizenship. I’ve never actually gotten the paperwork done. I’ve got it all sitting in a box, kind of ready to get done, hopefully in the next month or two.
Geoffrey: Now, we’ll get to Ruby eventually, but, you said you intentionally moved to Los Angeles because of the sun and you wanted a warm place. Were you living in a very cold and rainy place? It wasn’t Seattle, for example, was it?
Giles: Actually, I come from Chicago. And, when I left Chicago because I don’t know if you’ve been to Chicago but it gets very cold. You get this thing where it’s so bright outside because of the sun reflecting off the snow that you have to wear sunglasses. And yet, it’s so cold out that they freeze to your head for a bit.
So, you’re going to work, you get inside the building, and the change in temperature inside the building makes your glasses fog up instantly. But, you can’t take them off, right?
Geoffrey: Because they’re frozen to you. [laughing]
Giles: Right, right. So you get this moment of maybe three seconds, maybe five, where you enter the building and you go blind. It’s quite an adventure.
Geoffrey: Now, you have a separate Twitter feed where you post music every day? New beats. I think that’s pretty impressive. Most of that is using your Ruby libraries, Archaeopteryx that you’ve written, or other things. How do you have a schedule that allows you to actually publish music every single day?
Giles: Well, I bought a keyboard that I had always wanted to get, and it’s just a little keyboard, but it’s kind of a cult hit in the keyboard world. I was like, wow, this is awesome. I’ve got to do this today. I’ve got to do that today.
At the same time, I bought this at Guitar Center. I went there with my boss, Ian GP and Courtney, and he was like scoffing at this wonderful, beautiful keyboard. I felt the need to defend it, so I was posting MP3s of how awesome it was. But, anyway, after I had been doing this for a few days, I was like, this is a good thing. I should make this an official habit.
When I started, I was just doing it at night before I went to sleep. This actually made me exhausted, because it always took a little bit longer to make something than I thought it would. Then I switched to doing it first thing in the morning, and it became easier. I was actually inspired by “Calendar About Nothing” by Rick Olson and Kyle Neath.
Geoffrey: Like the Seinfeld idea to write a joke every day.
Giles: Exactly. You write something every day, and eventually, over time, don’t break the chain. And actually, I got an iPhone app called Streaks. I bought it a couple of days ago. It’s just based on the whole Seinfeld calendar thing. And, I think because it’s a very, very small goal. A very small, very simple goal. Yesterday, I posted something that I was very not happy with musically at all, but the rules are you have to post an MP3 a day. And, the basic ideas of this whole ‘just do a little bit every day’ encourages experimentation because you can just throw stuff away.
Geoffrey: I find I’ve been blogging less and less because I think I’m too perfectionistic. It’s like, I can’t write something unless it’s absolutely fantastic and I’ve polished it all off and it’s ready to release.
Giles: Right, right. And, the irony of course is that the beats that I come up with using this approach have generally been better than the stuff that I created when I was…there was a time a couple of years ago where I just locked myself at home and made beats all day. And I was not making little MP3s. I was making full on tracks. I made a few of those into records and they didn’t do well at all. They barely sold. In fact, I still have hundreds in storage. It was a total failed experiment. But, what I was trying to do at the time was just create, you know, it’s got to be perfect.
And, I’m doing something similar with Rails, well, with Ruby in general, where I’m doing mini apps. It’s interesting to me because the minute you have a larger task it becomes easier to procrastinate. I was actually just reading this research, someone put it in Twitter. I was reading it this morning before I even got up. Psychology, it’s from the economists. And basically, the psychologists, they found that the minute you add an abstract element of any kind to a task, people procrastinate it. People procrastinate on it much, much more. It jumps by like 56 percent just by adding some abstract term of any kind.
Geoffrey: When I find that it’s hardest to work is when I don’t know what I am supposed to do next. And people have things like test-driven development, and even just a simple to-do list to say, OK, here are the steps. And now, it’s no longer this abstract unknown.
Giles: I mean that’s the big win in test-driven development, isn’t it? You check things down really specifically in order to write your tests.
Geoffrey: You’ve blogged about a whole variety of topics. One of those is just the business of running businesses and venture capital, and all of those kinds of things. You recently said that in conjunction with some of the acting you’ve done, people don’t get into acting because they want to be millionaires.
It’s just kind of a side effect for some people who happen to be financially successful, and that programmers should have the same, or even startups, should have the same approach. Do it because you love it, do it for the thrill, do it to make the world a better place. It seems completely backwards from what most people would expect from a startup.
Giles: Well, what I really mean is that it was a response to a question that I got at CUSEC. I had done this whole presentation about why I was more interested in building my own projects and more interested in building open source as a career path for programming. Because the BC thing just seems like too much of a gamble. And, it’s partly because I read this post that Ragan Wald wrote, Reg Braithwaite, a couple years ago where he was talking about the actual math of joining a startup.
Basically, a startup is really only, in most cases, a good financial decision if you’re extraordinarily lucky and if you’re one of the founders. The boost that you get if you’re just one of the startup employees, even like number five, is not necessarily going to be that great, especially when you compare it to the hours that you put in, which are often equivalent with the hours that the founder puts in.
Actually, the specific blog post that you’re talking about. Paul Graham responded to it on Y Combinator, on his news site because it showed up on there. I think he said, if I remember his argument correctly, that the reason he disagreed and he felt that startups were worthwhile for people to put the time into is because he said the distinction was between the median and the average. He said the median startup failed, but the average startup succeeds.
I feel I must be misunderstanding but, as far as I understood, he was saying that if you go on to found several startups, you’ll probably succeed sooner or later. And that the big consumer startups are less common than the small startups that sell to some other business because they’re very specifically focused on the business.
My actual argument in the blog post was that this person who saw my presentation – this was at CUSEC in Montreal – they were saying, “I don’t want to put my time into open source, because I want to be a millionaire.” So it seems to me the thing to do is to build startup. You know, if that works for you, more power to you. But, as far as I can tell, it requires doing it several times and I also want to enjoy life.
Geoffrey: I’m surprised that the number of the successful companies that we list, they didn’t even start out expecting for that to be profitable. I mean, 37signals started back Base Camp as just something that they would personally use and they wanted to reduce some of their stress of deploying apps on client sites, they didn’t expect to be making millions of dollars.
GitHub. Chris and PJ spent all of their savings making another startup called FamSpam which, as far as I know it’s still up, it just didn’t make that much money. They didn’t even expect GitHub to be popular. A lot of these things, people didn’t go into it thinking, “This is a definite money-maker.”
Giles: There’s a lot to be said about the whole “eating your own dog food, scratching your own itch” type of thing. Actually, that’s the major strength of Archaeopteryx because I’ve seen similar products. I don’t know exactly what it was, I was absolutely shocked because I went and got a magazine, Computer Music, and on the cover they give out a DVD every issue. It’s always got some free software. They had a free edition of this drum machine called Erratic which is a probabilistic drum machine and I went, “Oh my god no! Someone’s beaten me to market! Oh no!” But I looked at it, and it was not actually designed the way Archaeopteryx is designed, and basically my goal with Archaeopteryx is very, very simple, and it was informed by: I am a musician who wants to make beats. I’m eating my own dog food, I’m scratching my own itch. It matches my workflow and the way I think.
Geoffrey: Well the user interface definitely is huge with all that. It seems like DJs and producers in general are a lot closer to a combination of programmers and musicians. You look at Grandmaster Flash wiring up his own potentiometers and faders so that he could use two turntables at once and all of these kinds of things. It seems like that’s the edge of using music, hardware, programming, electronics all together.
Giles: That’s a really good point actually. Grandmaster Flash did something similar at around the time that he was actually building this thing. It was to be fact that tinkering was part of the four elements of being a DJ like building your own equipment. So there is, in a sense, something kind-of classical about this. In the sense that I am just doing what Grandmaster Flash did, except he did it with wires and I’m doing it with code.
Geoffrey: Success. You talked about PHP, success of the language, kind of redefined it, saying that once a language gets to the point where programmers are just a commodity then it’s not really successful anymore. So, what is success for you? Is it even possible to talk about a language being successful?
Giles: Ah, yeah. I saw a thing this morning about a friend of mine saying that he wishes Smalltalk had won. I don’t know, there are people… if you could have really strong Smalltalk skills, you can definitely find lucrative work, there’s no doubt about that. Smalltalk won a victory of a kind. The PHP thing, it’s not as much of a victory to turn the rates of somebody who uses your language into a down elevator. PHP is probably the least profitable language to code in, so yeah it probably didn’t win at all – it was a huge failure.
Geoffrey: It’s accessible. It’s easier for people to get into it.
Giles: Yeah, it really is a matter of perspective. Because, there’s this idea that every technology out there wants to dominate and be the number one technology. And if you look at something like Google, Google gets all of its money from being the number one choice so there’s a lot to that. If you look at Pounce versus Twitter, it is kind of a highlander situation. There can be only one. But, if you look at stuff like Base Camp, I don’t think Base Camp is the only choice, and I think the reason it wins is because it’s not the only choice.
Geoffrey: If it’s a social product you’re selling, then you need a number of people using it. If it’s a business product, you just need the people in your company and more competing business could survive with the same product.
Giles: Yeah. Some markets are winner-take-all markets, and some markets are not. There are plenty of spaces where there are ecosystems that thrive. I’m much happier writing Ruby than I would be writing PHP. I don’t know. I don’t think being the most popular language is necessarily such a win. It drives your prices down as a programmer, and it drives your rates down. Success… if you get what you wanted, and what you wanted was a good thing to get, then you’re success.
Geoffrey: Maybe it’s more about the programmer individually. You look at the economy in general: are we in a recession or not? Well, the fact is who cares? It’s about, for the most people, the overall GDP or something is not immediately relevant. It’s do I have a job, am I doing what I want to. And in the context of programming or programming languages how do I build a career that’s what I want to do with my life both immediately and maybe for a bigger purpose.
Giles: Exactly it’s your life. That’s the thing. I’m not saying that people who are like dude I’m going to make a million dollars and this is wonderful, and awesome, and this is the thing I want to do in my life.
I’m not saying people like that should be like your Emperor Has No Clothes, Where’s Your God Now—I’m not trying to put those people down. I’m just saying that if you’re a programmer and you think your options are I can either do something exciting for a startup or I can work for the man.
I mean there’s a huge range of additional options. I can work for a company that doesn’t like Base Camp. I can create something like Base Camp myself. I mean you can do a startup with no other interest than providing music for people in your spare time. Because the opportunity cost for this sort of thing, you know the getting started cost, are very, very low right.
It’s commodity hardware. It’s open source software, which is free. The only cost is the amount of time you put in. And you can also do something like I’m doing which is look to build an open source ecosystem and create a product that scratches your own itch. I mean building that is a form of success especially if your overall goal is to create an open source project and products from it or related to it. Everything that happens in open source is research of a kind. I mean Ruby on Rails wouldn’t exist without some of the stuff that people created before it.
You know, PHP you can look at it as a giant research community. In fact there is a really good pair of books that kind of do that in passing, which are “Here Comes Everybody” by Clay Shirky and “The Wisdom of Crowds” by James Surowiecki..
Geoffrey: That’s a great book.
Giles: Yeah it’s a fantastic book. It really is. But I mean you can define success anyway you want. I think building an open source community is definitely a good definition.
Geoffrey: And it seems like you’re definitely taking a multiyear approach to this. For some businesses they are more of the everyday try if for a month, throw out an idea see if it works. But you’re seeing this as more of a long term thing.
Giles: I mean this mini apps things, right, I’m just going to code up whatever comes in my mind. But when it comes to music I was passionate about music when I was 15. I’ll probably be passionate about music when I’m fifty. I was writing Basic when I was 11. I’m writing Ruby today. I’ll probably be writing some kind of code when I’m 50. That’s a luxury that I have because this is a genuine passion. And it’s also a luxury you have with anything that you’re doing with open source software and commodity hardware.
You can afford to take the long view because it’s free. Your burn rate, to use the startup term, is infinite. Your burn rate is how much time you have given the amount of money that you’re spending. Well, if you’re not spending any money you’re dividing by zero. The answer is infinite.
Geoffrey: Also with any calculation you have to think well what else could I be doing? Could I be doing something else that would be more profitable in that case that’s your competition?
Giles: Well that’s true and that comes under a couple of things like A) do you know what your other options are? And B) what definition of success appeals to you the most?
Geoffrey: I think that leads to my final question. You said 2009 is not going to be about learning new languages for you but about new habits and addressing a new problem space. Maybe those problem spaces are even outside of programming but still have an effect on it.
Giles: Well, yes and no. What I meant was just that I learned more from taking Ruby and applying it to music than I did from learning Python. Sorry, Python.
I mean mainly what I meant I’m just going to take these skills and apply them to a variety of useful purposes and see if I come up with anything interesting.
But, yeah, some of those things aren’t going to be programming at all. I mean I’m going to look at doing more auditions as an actor and probably just be constraint to shorter films or maybe, if I get lucky, commercials. But you know I spent some time setting up flexible schedules that’s possible. And also working on music some more which actually takes us back to the stuff we were talking about at the beginning.
Because although cooking at the new beat everyday has proven very successful for me like it’s made me better. It’s just really working. I haven’t figured out how to turn that into making a new track every X period of time.
And that’s actually very similar to this mini app thing because how do you take a daily habit. And that’s something that makes you better at what you do right. That’s something that you do for its own sake. How do you take that and turn it into something that also everyday I’m doing a little bit that results in a track every three weeks? Or everyday I’m doing a little bit that results in a new app every month you know something like that.
So that’s something I really want to figure out because I feel like I’m on the right track and if I figure that out I’ll be releasing records, appearing in short films and commercials, continuing with my open source. I really filmed a bunch of stuff last year and I hoping to do the same this year.
I got one project that I’m neglecting which I really like. It’s Repetition Detector for Code and I’m hoping to film that tomorrow. And I think if I figure out this whole habits thing then I’ll have it where I maintain the progress in programming and these other things as well.
So that’s definitely going to take some time.
Geoffrey: The Rails Podcast is sponsored by PeepCode’s screencast, a new screencast on Haml and Sass. Also new and coming out in the next couple of days on Objective-C for Rubyists, headed by Scott Stevenson of Cocoa Dev Central. Thanks, also, to Rails Machine for providing hosting and bandwidth for the show.