Potion Factory Blog

Category Software Development

Move to Applications Folder?

After reading John Gruber's "How Should Mac Apps Be Distributed?", I wanted to mention that The Hit List already does by itself what John suggests Apple consider doing with all apps. That is, if you launch The Hit List from a folder that is not an Applications folder, it asks if it should move itself to /Applications.

Why it does this, though, is not for the reason that most people expect.

Interview of Yours Truly

Will Holmes was kind enough to interview me on his blog. I talk about square watermelons and Don Norman. I hear they're giving away licenses of Tangerine! and Voice Candy too.

Link to Interview

Best Crash Report Ever

I was chatting with a developer friend about crash reports and as one thing led to another, after a quick Gmail search, I ended up showing him this one particular crash report I got sometime last year:

A flash of lightning could be seen through the north-facing window, the squak of the dark night's crow taunted me from a distance as I just reloaded the library in Tangerine. Shortly after a masked butcher, knife and all, broke through my thrice-locked front door barking threats of murder, Tangerine! unexpectedly quit. As a father feels when he loses his son, I felt an overwhelming sadness until I was warmly greeted by Apple's "YOUR PROGRAM CRASHED, BROTHA!!" window suggesting I relaunch Tangerine. That's what brings me here, composing this message to you. I have personally attached the Crash Long Contents for your reviewal. I can only hope, pray, that you will use it to correct the wrong that I have experienced. Now I must bid you adieu.

I cringe whenever I get a crash report, but if they were all like this, I wouldn't mind so much.

It's from a Mr. Eric L. Pheterson. I hope he doesn't mind my publishing it here. Oh, and the bug was fixed a long time ago.

How to Keep Backwards Compatibility and be Less Grumpy About It

I dread backwards compatibility. I dread it because it means that for every product that I need to keep backwards compatible, the testing burden is at least twice as big. The math is simple: testing on two major OS versions and two processor types can be as much as 4 times of stuff I'd rather not be doing.

The last time I had to maintain a product with backwards compatibility, this is what I used to do:

  1. Build then copy application to test machine.
  2. Get it to fail. This is the one part where I don't have to work very hard.
  3. Try to fix while scratching head then proceed to littering print statements all over the code.
  4. Go back to step 1.

You can make this process a little less sucky by configuring Xcode to copy after each build, or by mounting a share so that there's no copying at all. But in the end, debugging with print statements alone is limiting and time consuming. There has to be a better way, right?

Licensing Scheme Switch


With the release of Tangerine! we moved to a new licensing scheme across all of our applications. If you upgrade Podcast Maker or Voice Candy and all of a sudden find that it thinks that you are not registered and your trial has expired, it is because you need to put in your new license key. We emailed them out ahead of time, but you may not have gotten it for one reason or another. In that case, please go here to retrieve your license.

But... Why?

So why would we go through the eye-poking pain of updating every order in the database, not to mention having to write code that we don't enjoy writing? Well, there are several reasons why it's all justified.