Posts from November 2005.

One week to go.

Five weeks have passed since I decided to give up my day job and go full time developing and selling my own software, only one week left working for someone else. Where has the time gone, it’s just flown by!

I’m really excited about my impending freedom, every day I think of new features for CaseDetective or have them suggested by users, I can’t wait to have the time to implement them.

As briefly mentioned in my last post I’ve really started to get a good solid bunch of tools and workflow together over the past few months while producing the Betas and eventually the final release of CaseDetective. I thought it would be nice to quickly itemize them:


My main development machine at present is my PowerBook running Mac OS X 10.4.3, I’ll no doubt switch back to my dual processor G4 once I’m based in my home office permanently. At present it’s convenient to have a laptop while I’m spending most of my day away from home, catching the odd half hour during lunch to update docs and the occasional bit of development.

My main server is a Mac Mini running Mac OS X Server 10.4.2, this box runs my version control, main FogBugz application and all other server like stuff (DNS, domain control, home dirs etc).

I also have a few Wintel boxes, 1 is running Small Business Server with FogBugz running under MS SQL Server, another is a WinXP client and another is my old Debian Linux server. They all come into play for testing, but aren’t used for any development itself.

I also use Virtual PC on my laptop for quick (well, convenient) tests of Windows builds on various flavours of Windows, from Win98 through to WinXP. I also use it for building my Windows setup application for CaseDetective as it can read all the files off my PowerBook’s hard drive without network access.

Development IDE

As regular readers are most likely aware I use RealBasic by Real Software to develop CaseDetective for both Windows and Mac. I started off using RB5.5 over a year ago now, and only switched to using RB2005r2 a couple of months ago.

I really like RB2005, the improvements in the language from RB5.5 to RB2005 have made the change in IDE more than worthwhile, and I’ve grown to love the single window format of the IDE. I also like the new window design guides very much, and love the fact that I can have objects such as timers sitting outside the window on the back canvas and not cluttering up the window. Although search within selection is still missing I find the new search results tab very usable, I love that I can see all the matches in a list and select which ones I want to replace all in one go, it has seriously sped up search and replace (which you do a lot of when re-factoring young code). It’s all very VB.NET like, but in my opinion much much nicer.

I’ve since moved on to RB2005r4 which brought with it some nice additions to the language but also a couple problems, which may be due to bugs in the IDE or my code. I had developed some custom bindings to link up different data provider and consumer objects within my UI without having to duplicate lots of code, it worked really well until I moved to RB2005r4 when all of a sudden I got some assertion errors when compiling. To this day I don’t know whether it’s something I’ve done wrong and was just getting away with earlier or whether there’s a bug in the compiler, but I’ve found some neat ways round it by implementing a MessageCentre module. It’s working nicely for the conversations I had the errors with, I think I’ll start using throughout as it actually brings with it some nice features I’ll find useful in the future.

Anyway, using RB makes it a snap to design and write code once and compile for both Windows and Mac (could do Linux as well if I wanted, but I’m not going there just yet), it’s great for working with databases and without it CaseDetective probably wouldn’t have been built.


Photoshop. Need I say more? Oh, OK, Photoshop 7.0, it costs way too much to upgrade every blinking release, so I’ll wait until the version ready for Intel Macs is ready before upgrading again. If it were cheaper I’d of upgraded every time and probably given them more money in the long run, but from their revenue it looks like they’re doing OK as it is!

Website Creation / Help Doc Content

I’m using RapidWeaver from RealMac Software for both website development and user guide content creation.

I’m a refugee from CityDesk, which was very nice while it was being developed and supported, but Fog Creek have all but officially dropped it, Joel has mentioned in a couple of interviews that it’s not been that successful and he’s got no interest in it any longer. Which is a great shame as it was a great little app that allowed me to design a basic template for my website once and then just write content for ever more afterwards. However, since then I’ve moved to a Mac as my main desktop and even though I continued to use CityDesk in Virtual PC it wasn’t too long until I started looking for something a bit better.

Then I found RapidWeaver, which has quickly found it’s place in my arsenal of tools. It’s just so darn easy to use, with great built-in and third-party themes and plugins. The community around RapidWeaver is fantastic, a great (huge) bunch of people that recognize just how nice the app is.

Since I’ve started using RW I’ve found it very easy to build my website, and now I use it for creating the basic HTML for my help docs too with a very simple plain theme I’ve created especially.

Help Doc Publishing

for converting my HTML help docs into properly formatted indexed and searchable help docs for Windows and Mac I use HelpLogic from Electric Butterfly.

HelpLogic is a superb little app that allows me to structure and add meta data to my help docs and then output to Windows HTML help and Apple’s Help Doc formats, as well as a nice web ready format. I originally used Electric Butterfly’s UniHelp module to display my help in CaseDetective but found the naming conventions it needed the html to be too constricting, and also felt it would be nicer to use native Windows and Apple help formats just for userbility and consistency.

Once I’ve got the output from HelpLogic all I have to do is drop the folder with the Apple Help Doc stuff into the Help Indexer that comes with Mac OS X to give it all the indexes etc that Apple’s Help Viewer application needs and then copy the whole folder inside the Bundle created by Real Basic when I compiled. For the Windows help I flip over to Virtual PC to run Microsoft’s HTML Help Studio which loads the file generated by HelpLogic and compiles it into a CHM file. I could have used the Microsoft HTML Help formatted output from helpLogic as it was, but I prefer the single file format, which HelpLogic does all the prep work for already.

Application Setup

For building the final Windows setup application I use Jordan Russel’s Inno Setup. Inno setup is a breeze to use and builds nice simple compressed Windows setup files that save a lot bandwidth and do all the heavy lifting needed when setting up Windows software. It takes virtually no time for me to build the setup file, I simply update a couple of strings which hold version info and then click compile, that’s it.

For the Mac OS X disk image with it’s simple drag the app to install interface I use FileStorm. It’s child’s play to use, and now takes me exactly two clicks of the mouse to use once open. One click to say “finalize” which starts the build off and another to confirm that I want to replace the .DMG I’ve already got from the previous build, so if I deleted that first it would be a one click wonder once opened.

Both of the setup compilers above took a little bit fiddling to get right at first, but now they just work.

Version Control

I use Perforce to version all my source and third party objects. It’s fast and has a nice easy to use GUI, so I’m more than happy with it.

I’m now using Subversion.

Wrap Up

To get everything up on the servers I just hit the Publish button in RapidWeaver, my download page picks up the setup files if they’ve changed and sends them on their merry way to my domain host provider.

The online docs get transferred via Transmit, a quick Sync of the folder on my Mac and they’re up online. Transmit is a great FTP application, no Mac user should be without it.

And that wraps up this post, I’m bound to have forgotten a few things, if you want to know anything else about how I develop CaseDetective, please post a comment and I’ll try and answer.

Oh, nearly forgot…

Bug/Feature/Inquiry Tracking

FogBugz! :-)

Minor update to CaseDetective released (v1.0.1)

Just released a minor update to CaseDetective for FogBugz.

There were a handful of tiny things that irked me about 1.0.

The automatic check for update popped up a dialog asking the user to connect to the internet if it couldn’t connect to the internet straight away. I feel the automatic check should just ignore the error and pretend there wasn’t anything to download. The manual check for update will however ask the user to connect to the internet if it can’t get through.

The Database and FogBugz specific areas of the Connection tab in Preferences weren’t well defined, now they’re in nice little group boxes. Makes it very clear what’s what.

There’s a limit of 64 columns in the listbox I use for displaying the cases, and as I have one column hidden to store meta data that means users can pick up to 63 columns to view/extract at once. This isn’t likely to be a problem, can’t see many people wanting to extract all 77 columns currently available, but strange things happen if you try. So I’ve made it impossible to select more than 63 columns for display, with a nice little message if the user tries.

The docs had a few spelling mistakes and I wanted to update the list of fields in the features page to have dinky little Yes and No pictures for when a field is sortable or not. I’ve also added an acknowledgments page and updated some of the wording in a few places.

This release was a lot easier and faster to put together than 1.0, I’ve got a nice little suit of tools that had to be put together and learnt during the run up to 1.0, now I know the sequence. Hopefully it’ll get easier and easier as I refine my workflow.

It’ll be a good test of the auto check for update too, hopefully those CaseDetective users that have switched it on will get a little dialog pop up when they first run it tomorrow. Then again, most of my users will no doubt be taking the day off tomorrow seeing as it’s a holiday in the States.

Yay! Free Alcohol! (again)

This weekend has been great, not only have my parents been visiting (which is really nice, Mandy and I love spending time with my Mum and Dad), but we got three bottles of wine delivered to our door for free!


On Friday we got two bottles of wine from my mate Gordon to say thank you for taking him to see Paul Weller play at the Usher Hall in Edinburgh, fulfilling one of his life time ambitions. Really the wine’s for Mandy as she couldn’t make it so I asked Gordon whether he fancied accompanying me. He really didn’t need to send us the wine, but we’re very grateful.

Then just this morning I got a delivery of a bottle of Stormhoek Shiraz (red) from Orbital Wines to say thank you for helping make their previous promo so successful by being one of those to post a photo of the wine they sent before.


That was very nice gesture from them, and again really not needed as I’m more than happy to post a picture of any free wine I get!

Anyone else want to send me some free alcohol? :-)

CaseDetective 1.0 Released!


CaseDetective for FogBugz version 1.0 has been released unto the World!

There’s a new logo for IMiJ Software too.

I’m very happy, and very very tired, need I say any more? Well, yes, I’ve got lots to say, but it’ll have to wait until I’ve had some sleep and sent out the proper emails tomorrow today.

Do the first sale jig!

Woohoo, I’ve got my first sale of CaseDetective!

What a great feeling, with just 3 and a half weeks to go until I give up my current means of income this sale couldn’t have come at a better time, it’s a real confidence boost.

“So, what’s the deal with CaseDetective anyway?” I hear you ask, “It’s been a bit quiet on the old release front hasn’t it?”.

Well, life has really got in the way recently, it’s been proof that I need to do this thing full time if I’m going to do it properly. But there is a release waiting in the wings.

CaseDetective 1.0 has got a number of fixes and optimizations under the hood, but only a couple of changes visible to the user, such as a few new fields. I haven’t been able to get the LDAP stuff working as reliably as I’d like, so I’m pulling that from the release, no one has asked for it, so it can wait until the next release, I’ll have much more time to get it right for then.

There’s a new website and forums waiting to take the stage too. The website is cleaner still than my current website, and I’m also making different (in colour) to so that I can eventually bring new brands to the fore without worrying about watering down my existing brand(s).

My current client asks me every other day whether I’ve reconsidered leaving them, which makes me feel very guilty for leaving them in the lurch, but I’m totally resigned (ha ha) to moving on to developing CaseDetective full time. I’m going to miss the guys I work with I’m sure, but it’s now or never.

So, all in all, things are going great, seriously looking forward to going solo and over the moon that someone’s found CaseDetective useful enough to buy. Happy days! :-)

Oh yeah, I admit it, I did the first sale jig around the living room when I got the confirmation email!

CaseDetective Icon Featured At

Hey, just noticed that CaseDetective’s application icon as designed by Jordan Langille of is the current “Featured Design”. Cool!