Happy Apps Blog

The Life – Day 5.0 February 24th, 2006

A word to the wise: Caffeine and adrenaline does not equal sleep.

Today I was crashing because I’ve been running so hard the past four days. Add to that the excitement and camaraderie of the local Mac Programmer group last night. But I’ve been averaging probably 5 hours of sleep a night when I usually average 7. Those 2 hours make a difference! The fortunate thing while you’re living The Life? You can take a nice nap and no one will complain. :)

The Life – Day 4.2 February 24th, 2006

As WebnoteHappy nears completion, the enormity of Mac Indie-ness starts becoming clearer. Like I said earlier, it’s not just about the programming. To be sure, being a great programmer is essential, because that is probably one of the biggest expenses in a software company. Plus you’ll know exactly the quality of the product you are getting and what timelines you’re dealing with.

But there’s so much more:

  • Licensing
  • You have to be able to generate license keys and validate them along with enforcing any trial limits. WebnoteHappy will be a 30-day trial so you can exercise it fully by throwing all your bookmarks at it and hopefully creating even more.

  • Web site
  • You have to have a good web site. One that is as good as or better than the app itself really. I think I’ll have to call on some friends to help me out with the graphic design of HappyApps.com.

    Also you should pick a good web host. HappyApps.com is on Pair since they are rock solid.

  • Order and payment processing
  • You can build your own, but when you first start out, it’s probably better to rely on a third party to get you up and running. I’m going to go with Kagi on this since they have a good web store, provide an in-app store, charge a reasonable fee, and seem to have good service. eSellerate is another popular one among Mac Indies that I’ve talked to.

  • Graphics
  • I tried making my own app icon as probably most Mac Indies start out doing. But like most, I found that I’m not really that good at graphic design. So I hired Jasper Hauser to create the app icon for WebnoteHappy as well as create toolbar and other in-app icons. I think they turned out great. It has been the biggest expense so far, but I think it was a wise investment.

I’ve already touched on UI design, Apple Help, Beta Testing, and Customer Support in my previous “The Life” posts. There’s even more aspects but I think this is enough for future Mac Indies to consider before taking the plunge. There is nothing that you can’t overcome, but I’d say that you have to budget plenty of time and also some money. Also I hope this helps people appreciate the work that goes into building a great Mac app.

The Life – Day 4.1 February 24th, 2006

Timely – Kathy Sierra has a nice blog entry about iPods increasing performance. I treat my PowerBook like a big iPod since it is usually on my lap when I’m programming. I noticed tonight that before the ice skating competition that the Gold medal winner, Shizuka Arakawa of Japan, was warming up with some big headphones like the ones I wear. Here’s an interesting quote from an old interview with her:

“I like to skate to music with a story,” she said. “Something big that I can skate to. If you compare skating to ballet, there’s a story you have to follow in ballet. But in skating, I can tell my own story by performing whatever feels best with the music.”

I do it sort of the opposite. My designs guide my programming and I let the music help me move along – sort of like surfing a sonic wave.

The Life – Day 4.0 – With more features, comes more reponsibility February 23rd, 2006

WebnoteHappy is not just WebnoteHappy Lite that you can pay for. No, there’s lots of additional functionality that makes it easier for you to organize and then find your webnotes, among other things that will hopefully make your life easier and more fun when it comes to dealing with enhanced bookmarks or what I call webnotes. But to paraphrase Uncle Ben from Spiderman:

With more features, comes more responsibility.

More responsibility to fight crime? No, more like responsibility to do the things that probably separates the average programmer from the Mac Indie. Things like writing good documentation that explains the features if people want to read more about them. Also packaging that good documentation so it integrates nicely with the OS X Help Viewer along with an index.

Things like hiding features until they are needed. And having a useful toolbar that doesn’t have everything and the kitchen sink on it. I think Justin Williams calls this “Mac Polish”.

Another hidden aspect of this that you won’t see in the UI is the careful balance an Indie has to make between satisfying people’s desires for added functionality with the overall vision and aesthetic of your application. One of the great benefits of releasing WebnoteHappy Lite before the full WebnoteHappy is that it generated a lot of requests for functionality. I was able to collate these and generate a master list of what everyone wanted.

But it would have been foolish to just go down the list and implement them one by one with no thought to the big picture. I mean, that would be easy and you would give the people what they want right? But I’ve seen apps do this and they end up in this sort of mess of features where you look at it and think “OK that’s just bloated now.” And who wants to use bloated software? I think the aesthetic of OS X is really about minimalism and elegance, while also being powerful and effective.

So what I’ve found was that I had to carefully consider each request and how it would affect not just what was existing, but also against the other requests and my vision of what I see WebnoteHappy 2.0 and even 3.0 being like. Plus I don’t just code it right away. I write up designs in my notebook and then re-design it. Then I let it stew in my head before committing it to code. I think in this way, I’ll be able to make WebnoteHappy be the best Mac app it can be.

The Life – Day 3.3 February 23rd, 2006

4:19AM – I really should be getting to bed. But first, a quick blog entry. I feel like Doogie Howser.

I released two private beta builds today. Three beta testers joined in the past two days. Private betas can be hard to manage. They don’t teach that kind of thing in undergraduate Computer Science. But I try to treat my beta testers like my friends and I’m just sharing something new but rough with them. And hopefully they like it and if they don’t or if they find bugs, then I go and figure out how to make it better.

I’ve now released 23 private builds of the Pro version of WebnoteHappy, with 6 in the past week alone. The pace is increasing which is a good sign. It just means that public beta is around the corner and that means WebnoteHappy 1.0 is on the horizon.

The Life – Day 3.2 February 23rd, 2006

It’s fitting that just after Apple sold its billionth song via the iTunes Music Store that I write about music. By the way, that was billion with a “B”. Amazing!

Oh yes… music. I find that I program way better when I’ve got my Sennheiser HD280 Pro’s plugged into my PowerBook. (Hmm there’s that “Pro” again.) I especially like listening to the “good songs i haven’t heard in a while” smart playlist. Not sure why this is, but I think it has something to do with your mental state and getting your brain into a good rhythm. I did a quick poll of some other Mac Indie friends and many of them agreed that music does indeed make your code flow more smoothly.

The Life – Day 3.1 February 22nd, 2006

I’ve noticed that programming time tends to squeeze out blogging time. And vice-versa. But I guess eventually I’ll become a more efficient blog writer and it’ll just flow out of my head like the code does.

Today was pretty good – making improvements in the layout to hide more advanced features until they are necessary or when users call upon them. I try to focus on ease of use – because that’s what I wish more apps have. There are lots of apps with lots of features but few apps that are actually easy and fun to use. I’d rather have less features done really well. I think this is sort of a Mac ethos.

I also improved the Spotlight support. So you’ll be able to find related webnotes in your Spotlight searches. This is another one of the great things about OS X: the tight integration that it offers between third party applications and the operating system.

BTW I’m starting to wonder if I should call the full version “WebnoteHappy” or “WebnoteHappy Pro”. I was leaning towards just calling it “WebnoteHappy” because that already is a mouthful and it really is meant to be used by everyone, not just certain audio or video or graphics professionals. Then again, with the arrival of the blazing fast MacBook Pro, maybe “Pro” is not a bad thing to have in the name. Any marketing-savvy people out there have advice on the name for the full shareware version?

The Life – Day 3.0 February 22nd, 2006

Keeping schedules – corporate managers use Microsoft Project. Joel uses Excel spreadsheets. What does a Mac Indie use? I use VoodooPad.

It don’t keep track of estimates or hours worked. But I do keep track of the priority of tasks and when they are done. (Hint: Use Control-Command-Delete.) It works well for me as it is quick, light, and allows me to organize my thoughts. For WebnoteHappy Lite, I actually used notecards ala XP (eXtreme Programming) and having my estimate/time worked on each card. That was in addition to using VP.

Using VP allows me to collect my thoughts on a task. If it is complicated, I can make a new page out of it and then put in tests, sample data, relevant documentation, code snippets, and general notes.

Later, I might start including my estimate/elapsed again, but right now it is full-speed ahead, get things done as fast as I can. I’ll re-evaluate after WebnoteHappy 1.0.

The Life – Day 2.5 February 22nd, 2006

One of the things that is nice about being on your own is that you really don’t have to worry that much about when you blog. Sure, blogging is probably less harmful than smoking and people take smoke breaks during the day, but then again there’s not usually a corporate policy about what cigarettes you can smoke.

So one of the things I need to unlearn this week is blogging at certain times. I think it’d be more interesting and more natural to just blog short entries when things come up. I guess that leads to Lesson 4: You have to unlearn some structure.

Also I just got the Step into Xcode book as recommended by Wolf. It’s pretty good so far but its got a scary looking math equation on page 11 for linear regression. It gets clearly illustrated on the next page that it helps you fit a line to a series of data points like the quarterly sales of a company, but kind of funny since most professional programming books don’t really have that much math in it. All that being said, I think this is a great book so far for showing you the ins and outs of Xcode and I’ll probably be sharing it with the local Mac Programming group this coming Thursday.

Even though this week is mostly about getting out WebnoteHappy, I don’t think you can really neglect the development of your skills. (Maybe Lesson 5: Keep improving your skills even when you’re on your own or when you have to pay for it. For example, I paid for my entire trip to WWDC last year.)

OK, so maybe I’m extreme… like when I read Refactoring by Martin Fowler – not exactly a spy novel – on a vacation in Florida. But I love this stuff! I also subscribe to the “kaizen” principle – you improve a little bit each day and over the long run you’ve outrun the pack.

Weird thing that happened today: I got a free sample of Degree for Men: “For men who take risks, it won’t let you down” with my copy of Step into Xcode. I wonder what Amazon is trying to tell me. Is there some sort of correlation between Xcode developers and stinkiness? Or is it the risk taking aspect? :)

Oh interesting – on the back it says “You’re a risk-taker. You don’t follow footsteps. You blaze trails.” Since when did marketing sound like a fortune cookie? Here’s a stab at the fortune cookie for WebnoteHappy: “You use the web all the time. You hate to lose good links. You want to find that cool web site right away.” Note to self – work on marketing skills. (Lesson 6: The Life isn’t just about programming.)

The Life – Day 2 – getting into the groove February 21st, 2006

Today I woke up at around 10:30 – which seems kind of slackerish, except that I went to sleep at around 3:30. I answered a few emails. Answering emails seems to be the sort of thing that people don’t plan for when considering The Life. As John Gruber points out:

So the conundrum is this: once a developer gets enough paying users to consider quitting his day job so he can devote full-time effort to writing code, he’s quite possibly got so many paying users that he’ll spend much of his time helping customers in ways other than writing code.

I don’t have any paying users yet since I haven’t released WebnoteHappy as shareware, but I do have a free version in WebnoteHappy Lite. I get an average two emails a day, so I still have lots of time to program though this varies on how much time I’ve got that day. After the 1.0 release for instance, I couldn’t do any programming for 2 days because I got a lot of email and I only had 3-4 hours to work with.

Some of the emails are actual technical support but these are becoming rarer. This is partly because I had a very long beta cycle and great beta testers which left only some minor and obscure bugs in the 1.0. Its also partly because I kept the Lite release focused in functionality.

Right now a majority of the emails come in two flavors: suggestions and encouragement. Many times, they’re in the same email. This is really great in my opinion. The suggestions help me figure out what people want without spending a lot on focus groups or surveys.

But the best part is the encouragement. I fully expected to do the sort of starving, unappreciated artist bit for a while before anyone stood up and took notice. But Mac Enthusiasts are a wonderful group of people and really supportive. In the dark recesses of the night, when most of DC slumbers and I think – hmmm maybe I’ll just stop for now – I look at some of the email or blog entries that compliment my work on WebnoteHappy. Then I smile and keep going.

After answering emails, I spent an hour and a half at lunch today which was well worth it since I spent it with my wife and kids. Plus afterwards I picked up a case of Coca-cola for my caffeine fix. Later on, one of my crack team of beta testers spotted a bug in the latest private beta and I got that fixed up. Then I improved the Keychain integration. I’ll be back later tonight…