[Luis:] I’ve been getting a good number of visitors reading about The Life, so I thought I’d get some other folks to offer their perspectives on living It.
Brian Cooke is a good friend of mine. He has started doing The Life part-time with his software company RoobaSoft. He’s written a cool and free Mac app called rooVid Lite, which lets you convert iMovies and other video to other video formats. There will be a more full featured shareware version coming later this year. I asked him to kick off this series with his take on The Life.
…
[Brian:] How I Started Writing Software for OS X
I purchased my first G4 Tower in February 2004 from some guy in a White Hen Pantry parking lot and exchanged about $500 for the Apple goodness. When I got home and loaded Panther it was love at first click. However, it wasn’t until July ’05 that I had the desire to learn to write software for OS X. This post will focus on the eight months from picking up Cocoa Programming for Mac OS X to releasing rooVid Lite 1.0 describing how I got here and some advice along the way. One quick note before we begin: Prior to my endeavor into OS X programming I was already being payed to program. I knew C, C++, Java. I was comfortable in UNIX and a handful of scripting languages. I did not know Objective-C nor had I any experience with a framework as complete as Cocoa, Java was the closest I had come.
Go Learn
In July ’05 I decided I wanted to write software for OS X and I wanted to use Cocoa. I snagged Cocoa Programming for Mac OS X and I was off. About halfway through the book I decided decided to write a contraction timer that would graph the duration of each contraction and the time between each contraction. Lesson #1: when your wife is in labor, she doesn’t want you to run for your iBook.
Slightly more useful was my second attempt at an application. It was a utility to erase DVDs and then launch the app of your choice. Much like the contraction timer, this was something I made use of, but very few people would appreciate. Lesson #2: Write applications you need.
Get Support
It was the day after Thanksgiving and the wife and kids and I packed up and were driving to go cut down our Christmas tree. Along the way I told my wife that I was going to try to write an app that I needed, but that I was also going to try to release it to the public. I explained why I needed rooVid and why others might be willing to give me money for it. She was resistant, but eventually she seemed to give in and agreed it might be something others would want. Lesson #3: If you have a counterpart, get her/his support, it’ll prove invaluable when you’re chugging along and need a good kick, or just someone to talk to.
…
[Luis:] I’ll post Part 2 of Brian’s Take on The Life tomorrow.
That trip I took last week really took me out of my regular development rhythm. So today I made a small beta release of WebnoteHappy. Only a few things changed, but I think its important to get in a rhythm and stay in it. Even if it is only a small change, its good to make it and deliver it to your beta testers. In this way, you keep adding small improvements continuously (kaizen) until you get to your 1.0 or whatever your next release is.
I think the same goes for blog entries. No need to wait until you’ve got the next del.icio.us/popular worthy post. Just write what you’ve got. I think blog readers appreciate a certain rhythm.
Related to that, I got a handle on my NetNewsWire feeds by using the Dinosaurs window. I read via Tim Bray that the brown feeds in the NNW 2.1 beta are dinosaurs. (Also known as Merlin Mann Coloring. How cool is it to get a feature named after you? Yes, I’m talking to you Mike Harris.) So I deleted everything that was over 90 days old and wasn’t just a broken/redirected feed. I’m now down to 329 feeds from a high of 400 feeds.
Today I took a day off of work, partly to decompress after a week long trip to California for a conference, partly to spend some more time with my family, and partly to live another fully day in The Life. So I had visions of getting a huge amount of work done and getting closer to WebnoteHappy 1.0.
Everyone has off days and today was one of them. I might be hard on myself, but I didn’t get through all the things I thought I should get done. But I think part of living The Life is not killing yourself. Or that is, push yourself hard when you can, but when things aren’t flowing, then that’s OK too. Just revisit your problems the next day.
I was feeling quite bad about this until I happened upon Berin’s latest blog entry, Workaholic Rant Time. Berin’s a local blogger/programmer to the DC area. He complains that it is 10pm, trying to fix a bug, and there are better things to do like spending time with your family.
Even though I routinely work late into the night (check the blog post times), I do it on my own terms. I spend time with family first and then do my work when they’re asleep. And for some reason, that’s just so much better.
I just released WebnoteHappy Lite 1.1!
What’s new in 1.1? First, it is a Universal binary, so it runs natively on both PowerPC and Intel Macs. It ran fine in Rosetta, but I think it is important to be Universal. Second, it is now localized for French, Dutch, and Danish.
Now even though we call ourselves “Mac Indies”, really a lot of people collaborated with me to make WebnoteHappy Lite 1.1. So let me pour out some gratitude:
Philippe “Flip” M merci beaucoup for doing the French localization
Arnaud L dank je wel for doing the Dutch localization
Preben N mange tak for doing the Danish localization
Thanks go out to Brian C, Gus M, Mike PJ, Takaaki K and Zeno C for doing Intel testing
I’m attending a conference this week in Santa Clara, CA. Also my oldest son had his birthday party on Saturday. Packing and traveling took up most of the day on Sunday. And the conference is pretty packed full of activities, starting at 8:30 in the morning and not finishing until 5pm. Though tonight I was at an Eclipse on Mac OS X Birds of a Feather, which ended around 11pm. So I’ve been pretty busy recently.
I have been getting a little bit of time between finishing up the conference each day and getting some slightly jet-lagged sleep. I’ve been working on getting a new release of WebnoteHappy Lite out. I’m focusing on making sure it works as a Univeral Binary. Also working on localizing it to a few select languages. So expect to see WebnoteHappy Lite 1.1 in the near future.
Gus pointed me to a post about Entrepreneurial Proverbs and in one of the comments that was a link to a really good article that resonated with me: Top Signals of Success for Software Entrepeneurs from OnStartups.com. It is a list of 15 traits that successful software entrepreneurs share. Now I think its healthy to start with a bit of self-critique
Sometimes I get stuck with #8: “You have a proclivity for action.” Though I’ve found what works for me is to shift my mindset at least once a day into “Project Manager mode”. In this mode, I make plans for what I’m going to do next and try to plan it out to the next release, work backwards, and prioritize. Its sort of a Getting Things Done for Indies. Then I switch back to Programmer Mode and crank away. Only problem is sometimes I forget to go into Manager mode so now I try to keep a printed copy of the plan in front of me to remind me.
On to some of the good points: #5 (You are an artist): I do love delighting my audience and continually improving. #14 (You work hard): I can’t stand delivering the minimum. #15 (You just love the game): I think living The Life is one of the biggest challenges I’ve ever volunteered for. And that makes life really exciting.
I’d probably add a 16th trait: You feel like this is what you should be doing. Some sort of deep-seated conviction. In my much smaller sample of successful software entrepreneurs, I’ve noticed this. They believe that what they’re doing is essential, that people really need what they’re building, and that’s why they’re working so hard to get it out to everyone.
One of the things that’s a reality is that business is risky. But one of the ways to reduce that risk is to form an LLC, a Limited Liability Company. Yes, that’s right – it basically means Reduce Your Risk Company. It is especially helpful if you have any type of assets. That is why Happy Apps is really Happy Apps LLC.
(Disclaimer: I’m not a lawyer neither do I play one on TV.)
On the other hand, if you start doing business and don’t start an LLC or some sort of corporation, then you are by default known as a Sole Proprietor or a Partnership (if there’s more than one of you). This means that your assets are the company’s assets and vice-versa, also known as unlimited personal liability.
Let’s put it in a way that Mac enthusiasts would understand:
If the LLC was available 30 years ago back in 1976 when Apple was founded, then we might have remembered Ron Wayne. Who is Ron Wayne? He is the long-forgotten third founder of Apple. According to Woz, Ron was worried about owing money for computer parts which they were using to assemble the Apple Is which were basically pre-assembled motherboards. He had some “gold hidden in his mattress” that he was worried about. Sadly, he sold out his 10% share of Apple for a pittance ($800). [Note: 10% of Apple is now worth around $5.6 billion.]
So what would have been different if Steve Jobs, Woz, and Ron Wayne had founded Apple Computer LLC? An LLC is another entity apart from the “members” of it. It owns assets and has liabilities just like a person would. So Ron, being the money man, could have put in say $3000 or however much it cost to make a few batches of Apple Is and other operating expenses. And then he could sleep soundly on his gold-stuffed mattress because even if for some reason the Apple Is didn’t sell, the only thing that they would lose would be that $3000.
Congratulations to Brian Cooke, a good friend and the guy behind roobaSoft! He is taking his first steps in The Life. He released rooVid Lite 1.0 yesterday. It lets you convert iMovies and other video to other video formats. For example, you can take a home movie and convert it to both playable on a video iPod and also on the web. In fact, that’s the default set of profiles that rooVid Lite is configured with. I like apps with good defaults.
Try it out. It’s free.
Steadily cranking away at WebnoteHappy, the full featured shareware version. I’m nearing feature completion, which is a good thing. Starting to put additional features on the post-1.0 queue. Not making as much progress as when I was doing The Life full-time, but still making steady daily progress. Kaizen.
So in a week and a half, I’ll be at EclipseCon to improve the skills that make me valuable in the Enterprise Java corporate sphere. The initial keynote speaker at EclipseCon will be none other than Joel Spolsky, who is a very popular Indie. You may know him by his blog, Joel on Software. He’s written a lot of useful articles on running a software company. I laughed and cried when I read what he said in the intro to the MicroISV book:
“I have a crystal ball and can now tell you the one fact you need to know more than anything else: exactly how much money you’re going to make during the first month after your product goes live.
Ready?
OK.
In the first month, you are going to make…
about…
$364, if you do everything right.”
Anyways, as a public service, I’m going to try to corner Joel and ask him a few questions on behalf of macsb and all the Mac Indies that read this blog. So if you’ve got any questions, let me know in the comments or send me email.
If you’re wanting to live The Life, I strongly recommend you go to WWDC. Yes I know, it is expensive. And your work probably won’t pay for it. And you’ll have to take a vacation week. But really, I think it is worth it. Why?
1. You get to learn all the cutting edge Apple tech before anyone else does. For me, also it is nice to have someone explain it to you in further detail, take you through some examples and give you some tips versus just reading the docs.
2. It’s almost completely under NDA. Last year’s WWDC had two bloggable events: the Keynote by Steve Jobs and the .Mac 2.0 session. Everything else was under NDA. And you can’t watch those sessions any other way. (Except for maybe being an ADC Premiere member, but that includes a ticket to WWDC, so really you paid for those sessions even if you didn’t go.)
It was harder to watch them this year since you didn’t get them on DVDs but had to watch them through streamed Quicktime. But again, those sessions are not available to the general public.
3. You have access to the latest hardware. At last year’s WWDC, we had access to the Intel Macs. That was 6 months before the general public got to try them. I know several developers who got a nice warm and fuzzy when they recompiled their app and it just worked.
4. The energy. The vibe. You can’t walk away from the worldwide gathering of Mac developers all into one spot and not feel like you’re going to go home and make some serious headway on your app. And maybe vie for that Apple Design Award too.
5. The people. Life is really about relationships, right? I made some good friends at WWDC. And not only do you have fellow programmers, but you also have designers there and other Mac luminaries.
Oh yeah, Apple just announced the dates for WWDC 2006: August 7 – 11. See you there!