March 2010 Recap
In the spirit of sharing the ups and downs of running a small “indie” software company, this is the first in a series of recaps of what Clickable Bliss did last month (March 2010) and the goals for next month (April 2010). It’s a bit long but on the bright side that means I did a lot of stuff. :)
Events
ProfitTrain 2.0 Released!
March started off with a bang as we had the official release of ProfitTrain 2.0 on March 1st. Throughout the month we issued a few dot releases to kill some bugs but overall the release went smooth. The shipping version currently stands at 2.0.7. To see what’s been fixed check out the release notes.
Marketing
Press Releases
When you have a new application, or a significant upgrade, one of the most basic things you can do to help promote the launch is to write a press release. This is the press release I used for the 2.0 release. Overall it’s pretty standard stuff but a few things to note:
- I included a custom NFR serial number right at the top that is made specifically for the press outlet I am sending it to. Some people write in their press release that NFR serials are “granted on request”. I figure if I can eliminate that step all the better. Perhaps if you are posting a generic version of the PR on your site (and you should, I don’t yet) you can put that in.
- I don’t use a bulk PR house like PR Mac but instead go through my collective bookmarks of news sites and blogs doing individual emails. The total count for this release was about 40, so it’s not too time consuming. Lots of sites are very specific about how they want you to send in press releases so pay attention.
- For this release I actually sent the press release a week before the launch hoping to give people some lead-time and perhaps improve my chances at getting coverage. Sadly I don’t think it helped much and in a few cases caused confusion and accidental early publication. I don’t think this is something I would recommend to others.
So of the 40 or so sites I contacted how many did I get coverage from, well sadly only a few. Macsimum News, MacInTouch, Mac360 and The Loop come to mind. MacNN did news coverage of the release and then a full on review later (4.5 of 5 stars!).
Part of the issue I think is that many of these “Mac” sites just don’t cover desktop software releases like they used to. These are sites that were 100% dedicated to the Mac a few years ago and now focus on the broader “Apple Inc.”; dividing coverage between iPhone, iPad and then when there is room or something special, the Mac.
Lots of sites also forgo release news and instead like to bunch up coverage for a class of application into “collection articles” that compare similar apps that solve similar problems. I’ve seen Billable get coverage on some of the bigger sites through articles like this so hopefully in time ProfitTrain can get some too. It’s not the end of the world if the big sites don’t cover the release of your app as much as you know they know it exists.
TidBITS
If you don’t know what TidBITS is, shame on you. TidBITS is a great Mac-focused newsletter that has been running since 1990. I’ve been an avid reader since I can’t remember when. Anyways, TidBITS has a number of advertising options but one that I used for Billable a while back and now again for ProfitTrain this past month is DealBITS. DealBITS is basically a contest where you get a little write up in a TidBITS issue, a drawing is held, you give out some free copies of your software and when the winners are announced in the next issue you get to offer a coupon code to the readership at large. There is a flat fee of $250 to run a DealBITS contest and I suspect Adam and company will want to bless your app as worthy too.
For me the ProfitTrain DealBITS response did not match the response I got for Billable’s DealBITS back in January 2007. Perhaps the TidBITS readership isn’t as active as much as they use to be, or perhaps it’s part of that attention split between the iPhone/iPad vs Mac that I talked about earlier. That said, sales via the coupon code more than covered the cost of the contest so really I’m getting paid to advertise my product. Nothing wrong with that.
Apple’s Third Party Promotions (aka The Source)
For those not in-the-know, if you are an employee of Apple Inc. (including international and retail employees) you have access to an employee-only intranet site called The Source. This is a place where third parties can promote their products and services to Apple employees usually offering them at a heavy discount if not for free.
If you are a developer you want your software to be listed here — hopefully the reasons are obvious. I don’t have any personal knowledge of the ratio of discounted vs. free listings on the site but considering it cost me $0.00 to make a serial I go the free route and offer a complimentary license to ProfitTrain for all Apple employees.
To get you own product listed send an email to thirdpartypromos@apple.com. They will send back a list of questions to answer including details about your product and how you want the discount to work. For me, I made a special page in my store software and allow the employees to use their email as the verification of employment. I generate the complimentary serial info and send if off to the email they provided.
It will take some time for the listing to actually show up so be patient. You’ll know it’s up when you see the wall of order emails flood in.
Newletters
So far I’m keeping good on my goal to send out monthly newsletters. This month’s newsletter was sent out on March 3rd and was mostly promotional of the ProfitTrain upgrade that was now available. It was very exciting to see a wave of upgrade orders minutes after I hit the send button. I also continue to play with the format and in this issue included some recommendations for other software subscribers might also enjoy.
Development and Education
The move to 10.6
ProfitTrain development was started before the release of 10.6. When 10.6 did come out I installed it on a partition for testing but actually continued to live and develop ProfitTrain on 10.5. To date all shipping copies of ProfitTrain have come from a 10.5 system.
Well with some extra time after the big release I finally took the plunge this month and moved all my tools over to 10.6. The current trunk of ProfitTrain is now building under the new version of Xcode w/ gcc 4.2 (though it did take a little bit of coaxing). I still link against the 10.5 SDK so I can’t take advantage of all the new 10.6 APIs but still some of the tool improvements are nice to have.
The other benefit of the move is the ability to run some of the newest apps like Acorn 2, LadyBugz and other super secret apps that only run in 10.6.
The only negative thing I will say about 10.6 is the QuickTime player. Wow, do I hate the new QuickTime player. Thankfully the old style player was an optional install or I’d be really frustrated.
iPhone Classes
While most of my “code time” is focused on the 2.1 release of ProfitTrain I am trying to take some time and catch up with the iPhone SDK. Part of this has been watching and doing some of the homework assignments of the the Stanford iPhone course on iTunes U. I think I have about 6 videos left to watch to finish the course and it has really been informative. Of course the long term goal is to possibly offer a companion app for ProfitTrain on the iPhone/iPad and while that is still a long ways away watching the classes now is helping me make decisions that will help in the long term.
Core Data
In early February I posted some thoughts on the blog about why ProfitTrain doesn’t use Core Data. The short summery goes like this: I felt a little burned by Core Data from my 10.4 days. When I started working on ProfitTrain there was no Core Data on the iPhone. Long term I knew I wanted to do stuff on the iPhone so I wanted to be more comfortable with dealing with SQLite directly and thus ProfitTrain does this.
Today is a new day, Core Data is now prevalent on all Apple platforms, what to do? Well the first step was to purchase and read the Core Data book from the Pragmatic Programmers. Overall I liked the book. It has for now made me more hopeful that the the migration tools of Core Data will let me do what I want.
Second, do some experiments. To help test Core Data I created a mirror of the ProfitTrain model tree using Core Data and made a bunch of unit tests against it. Overall the tests are working well though I have had some issues pop up.
Third, make it clean. Back in my Billable days I used Core Data and ended up with lots of repetitive code to do things like fetches and build up the core data stack to do migrations, unit tests, etc.. It was ugly code. I don’t want to do it that way again. I was very thankful to find this post from Martin Pilkington that goes over a design patter that uses a ModelController. I love this idea. It fits right in with what we see a lot in the iPhone SDK. Very specific, reusable controllers. I’ve built on Martin’s implementation in my own code to help with some things like unit testing that should use in-memory stores but overall my model controller is similar to that example.
So with all this said, do I migrate ProfitTrain to use Core Data? Right now it seems like the answer is yes but this is more for future proofing than a real benefit to the desktop app today. Long term moving the models over to Core Data will help with the iPhone and iPad as Core Data has nice tools for faulting objects and relationships only when they are needed. The ability to load and unload as memory constrains dictate will be very helpful.
The other reason for making the move now rather than later is AppleScript. I really want to implement AppleScript in ProfitTrain and if I were to make my non-core data models scriptable and then eventually move them over to core data I would have to rewrite a significant chunk of that code.
I’m sure I’ll have more to say about this next month but this is where I stand today.
Goals for April
Marketing Goals
- I’m in the brainstorming phases of a rather big marketing idea. I’ve started to seed the idea out to other developers as this is a group project not just me. For April I’d really like to solidify my idea and maybe pull together a prototype website to demonstrate it.
- I’d like to start to spend a little money advertising ProfitTrain on networks like Fusion but before I so I’d really like to add some code to the store that would help me track if ad activity actually results in a sale.
- I would also like to put together a RFP (Request for Proposal) to hire some designers to work on some new invoices templates.
Development Goals
- I want to finish the migration of ProfitTrain over to Core Data. This is already in progress and is actually in tandem with some other refactoring I’m doing trying to simplify my AppController and clean up the MainMenu.xib (which houses windows which need to move to their own independent window controllers).
- Once the Core Data migration is complete I want to get started on the AppleScript implementation and related scripts that will help ProfitTrain interoperate with others applications.
- One of the long term goals for Clickable Bliss this year is to launch a second product. I have the spark of an idea but still am not sure how it will materialize. This month I’d like to do a few experiments to see how certain features could be implemented.
Education Goals
- Finish the Stanford iPhone Class (already in progress).
- I still use Subversion for my projects. It actually works great for me, but I keep getting the feeling that I really need to start to become comfortable with the distributed systems long term. This month I hope to catch up with Mercurial and read the Git book.
- In coordination with my plans to prototype a web app I also hope to use the time to catch up with the changes in Rails 3 as well as some of the UI tools in Cappuccino.
I hope you enjoyed this recap post. I write it as much for my future self as I do for the blog.
Hopefully doing these recaps will help to keep myself personally focused on how I spend my time. I also hope these recaps help the community understand that gears are turning behind the scenes even though they might not see a new release in any given month.
Posted on: April 1, 2010 – 11:28 AM

Post a Comment | Comment RSS feed