Posts by ianmjones.

UNIXCrypt for REALbasic now on Google Code

I’ve moved my UNIXCrypt REALbasic module onto Google Code in a project called rbunixcrypt.

If you’re looking for an open source (MIT licensed) module that enables verification of UNIX crypt style passwords, please check out the rbunixcrypt project.

There’s a download available of the latest version, and as with most Google Code projects you can check out the source with Subversion.

There’s also a discussion group and read-only commit log list hosted on Google Groups too.

Adobe Flex 3 and AIR now live!

Adobe FlexBuilderWoohoo, my favourite development platform(s) have just had their big release, Adobe Flex 3 and AIR (Adobe Interactive Runtime) were released just a few hours ago (while I was sleeping soundly).

Go read all about Flex 3, AIR and how you can build wonderful desktop AIR apps with Flex.

And if you’re a masochist, read about building AIR apps with HTML/CSS or Flash.

Adobe AIRI love all the side bar stuff they’ve got on the Flex and AIR product pages, they’re really reaching out to developers that are interested in Flex and AIR and would like to integrate with other technologies, such as ColdFusion (natch), Java, .NET, PHP or Ruby.

Personally I’m having a blast reading through Peter Armstrong’s Flexible Rails book. I’ve long thought Ruby on Rails great at connecting to the database and very powerful at exposing the data model cleanly with wonderful ways to validate data, and best of all, easily migrate the schema as the application evolves. Flex on the front end brings a full rich internet experience without the JavaScript/AJAX headache.

I’ve just paid for and downloaded my FlexBuilder 3 Professional upgrade, time to play (well, after I’ve been to work, come home, spent some time with Abi, put her to bed, had dinner with Mandy, and done a few chores that is)!

New tag line, simpler theme.

“A developer, in so many ways”, that’s my new tag line for this here blog.

Seeing as my microISV endeavor is currently on hold, I figured the old “So, now I’m an ISV…” didn’t cut it any longer, even though technically I still have one foot in the game, and have even had a very good month of sales since I put CaseDetective on hold. How weird is that?

What does the new tag line mean exactly? I’m a software developer for one thing, but I’m also developing as a person in so many other ways. When I look at how Abi is developing day by day (in the last two weeks she’s gone from barely commando crawling to super fast crawling, blink and she’s gone, pulling herself up to stand against chairs and other props, and in the last couple of days she’s even taken to climbing the stairs, supervised of course) it reminds me of all the little things that I experience and learn daily that contribute to my own personal development, we never stop developing.

Also, I grew tired of the heavily graphical and very Mac like theme on the website, it was fairly slow to load, which irked me quite a bit. I’m now using a much nippier theme from Brian Gardener. It’s a far simpler theme, which frankly is much more my style, I like the clean uncluttered look, and although I prefer navigation etc to be on the right hand side, I’ll live with it on the left as I’m way too lazy to got to the bother of switching it as I have before.

“In pursuit of simplicity”, maybe that should have been my new tag line!

CaseDetective Development On Hold

The festive holidays are a dangerous time of year, spending time with family and friends and generally having a good time away from your computer can be disastrous for an ongoing project.

This year, it’s been doubly disastrous for CaseDetective, not only has development time been non-existent and support reduced as usual, but I’ve had time to reflect on CaseDetective’s future, and more importantly on it’s place in my life.

I’ve come to the (long overdue) decision that development on CaseDetective is to be put on hold, I’m not going to work on CaseDetective or any other significant development project in my spare time for the foreseeable future.

For a long time I’ve struggled to balance time with my family and friends, personal interests and health, (money making) consulting work and CaseDetective, something has to give.

My family is everything to me, I love my wife and daughter and the last two weeks have enforced my long standing regret at having to spend a considerable amount of my (and my family’s) free time supporting and developing CaseDetective. There’s also a knock-on effect to the rest of my family and friends, who don’t get anywhere near the attention they deserve, neglecting them makes me sad.

I’ve also completely neglected my health in the last few months too. The year started well as I lost a good bit of weight and improved my fitness through running and watching my diet, but running has gone out the window as time got squeezed out by more CaseDetective support and development of version 2.0. I’m feeling very unfit, and am at my heaviest in ten years. I need to make time for running and biking again. I used to love mountain biking in my early twenties, getting up early on a Sunday morning and going for a 25-50 mile ride up and down hills coming home covered in mud was bliss. I want to have the health and time to enjoy physical activities again.

Reading and sleeping, I want to do more!!!

I think CaseDetective has also impinged on my mind so much that on occasions it may have had an impact on my consulting work. Sometimes I’m so wrapped up in something I’m doing with CaseDetective that I feel I’m not giving my real job it’s deserved attention. That is unacceptable, and with my current contract being a pretty intense project with an aggressive time scale, I can’t afford to slip up because my mind is elsewhere.

Many people would have put a stop to development of CaseDetective a long time ago just because of the terrible return on investment. CaseDetective has been in development since September 2004, with a few hiatuses along the way, let’s say that’s 156 weeks (3 years) worth. With a conservative estimate of 8 hours development/support time per week (it was actually full time for about 6 months), that is 1,248 hours. Let’s take a reduced consulting fee of £25 per hour for a grand total of £31,200 worth of my time spent on developing CaseDetective. Seeing as CaseDetective has had a net revenue (according to eSellerate) of approx. £1,885 ($3,771.47), it really doesn’t stack up well, and that’s not even taking into consideration expenditure on tools and hosting etc.

One of the major problems I have with CaseDetective though, is that I no longer have any need for it myself. Most of the functionality I need for bug, feature and inquiry tracking is in FogBugz, and I rarely want to report on the data held in FogBugz any longer. So you can imagine that my enthusiasm for developing and improving CaseDetective is somewhat diminished. I still believe CaseDetective could be a great product, and one that I would use if I added some of the features I have planned, but to get it where I want it would take considerable development time. At the moment, I’m simply not willing to commit so much of my free time to make it happen.

So development of CaseDetective is on hold. Support for existing customers will continue for the time being (at least six months), but I’m going to take down the majority of the CaseDetective website and stop taking any further sales.

There is a slim chance that development could resume if I find myself at a loose end without full time employment so I’m not thinking about selling or otherwise releasing the CaseDetective source code.

If there is anyone out there with a product that could help CaseDetective customers continue to extract CSV files and/or PDF reports from FogBugz without having to know any SQL, please drop me a line and I’ll pass your details onto my customer base. If there is a free license or “competitive upgrade” license available, all the better.

Thank you to all the great people in the MicroISV/BoS community that have supported me with kind words of encouragement and advise throughout my time developing CaseDetective, you helped me immensely.

A big thank you must go out to everyone at Fog Creek, especially Michael H. Pryor, without your help I couldn’t have got as far as I did.

Also, thanks to all my customers, thank you for showing your support for CaseDetective in the best possible way, by buying a license! And thank you for being such nice people if we had any communication.

And finally, thank you to my wife Mandy, for putting up with my countless hours working on CaseDetective and supporting me all the way. I love you so much.

CaseDetective 1.3.4 released

I’ll let the release notes tell the story…

Changes In CaseDetective 1.3.4

Released 2007-12-13

  • Bug Fix: Error while creating indexs on the Attachment, Cases or CaseEvents table.
  • In some rare cases CaseDetective could not create indexes on it’s cache database due to non-unique data in a primary key, this has now been fixed.
  • Bug Fix: The previous change (1.3.3) for the above bug fix introduced some database incompatibilities.
    • In order to fix the problem across all supported database types, CaseDetective now requires MySQL 5.0+ as opposed to MySQL 4.0+. MS Access and SQL Server 2000+ are still supported as usual.
  • Bug Fix: Mac OS X 10.5 (Leopard) compatibility.
    • Updated tools and some third party libraries for better Mac OS X 10.5 (Leopard) compatibility.
  • Bug Fix: Support FogBugz 6.0 for non-administrators.
    • CaseDetective now supports changes made to the FogBugz 6.0 database schema for permissions, non-administrators can now see their cases!
  • Bug Fix: Improved permissions adherence.
    • Some changes were made to better support permissions, summary filters now correctly miss projects etc that a user does not have permission to see in FogBugz (4, 5 & 6).

    PLEASE NOTE: This does not mean CaseDetective fully supports FogBugz 6.0, it just means you may be able to use the “classic” filters in FogBugz 6.0 with CaseDetective 1.3.x, you will not be able to use the new search based filters introduced with FogBugz 6.0. Full support for FogBugz 6.0 and it’s new search based filters will arrive in CaseDetective 2.0 and CaseDetective On Demand by early 2008.

    As always, CaseDetective 1.3.4 for FogBugz is available from the download page.

    Oops, CaseDetective 1.3.3 pulled, working on CaseDetective 1.3.4.

    Oops, turns out CaseDetective 1.3.3 wasn’t so good for all database types and versions, so I’ve pulled it.

    I’m working on CaseDetective 1.3.4, but it’s a little trickier than I thought due to what SQL syntax is and isn’t supported across different versions of Access, SQL Server and MySQL.

    It may take a couple of days to fully test an alternative way of fixing the bug that was supposed to have been taken care of by CaseDetective 1.3.3.

    Thank goodness I upload the website for each version to a brand new directory and switch a symbolic link from old to new. So to revert to 1.3.2 simply consisted of logging onto my web server and switching the symbolic link from new to old.

    CaseDetective 1.3.3 for FogBugz released.

    Dumm, dumm, dumm, another one bites the dust, clap clap!

    CaseDetective 1.3.3 has been released with just one iccle fix.

    In very rare conditions CaseDetective would fail to get either attachments, cases or case events due to a “duplicate values in unique index” error.

    There was a little bit of Cartesian (black) magic happening, now vanquished!

    If you’ve not had the problem then chances are you’ll not need this update, but if you do need it you can grab it from CaseDetective’s download page.

    Weight off my mind.

    Phew, last night I killed a bug in CaseDetective 2.0 in less than 30 minutes of development that had been bugging me (pun intended) for well over 4 weeks!

    And what’s more, 30 minutes later after re-activating another feature that I’d disabled because I had a bug in that code that had also been bugging me for well over 4 weeks was also fixed, without me making any further changes!

    I hate (love) it when that happens! :-)

    The annoying thing is, my code for the first feature is virtually the same as before last night’s edits, I’d almost got the bug fixed before in that I’d whittled it down to a very specific block of code that I could hard-code around to get the results I wanted, but couldn’t get the proper solution to work, even though it looked absolutely right. I worked and worked on the area, making sure I fully understood the all the properties and events of the classes involved, but alas the solution failed to reveal itself.

    Out of frustration I switched one parameter to a function that should have absolutely no effect from “true” to “false”, fully expecting that the problem still existed. It fixed the problem. Fantastic! But also very very annoying. I can only assume it’s either a very subtle bug in the framework, or more likely me not quite fully understanding the event interactions of a couple of classes.

    I tell you, it feels great to have fixed these two problems, they were two great weights stopping me from progressing in important areas of CaseDetective, and stopped me from being able to efficiently concentrate on my work.

    A great weight has been lifted off my shoulders, full steam ahead!

    Status Update 2007-11-19


    A couple of weeks ago I was supposed to write a post about my availability for hire, having just completed the year (and a bit) long project for my last client. I guess I was too busy either enjoying some relaxed quality time with my wife and daughter, or getting in some development time on CaseDetective 2.0 and missed the opportunity.

    Anyway, today I started a new contract I bid for and won. It’s just a 20 week one, for the very same client I’ve recently finished up with, but this time doing system analysis and design for a brand new system. It’s a great project, in fact a whopping great big project of huge importance for the client, but I’m relishing the challenge.


    Although CaseDetective 1.3.2 came out a couple of weeks ago with support for FogBugz 6.0 password formats, it turns out there were other more problematic database schema changes that will cause problems for many CaseDetective users.

    As such, I’m going to have to say that CaseDetective 1.3.2 is unlikely to work for most FogBugz 6.0 users, not that it ever officially supported FogBugz 6.0 anyway. For FogBugz 6.0 support CaseDetective 2.0 will be required, which we’re hoping to have released early next year.

    FogBugz Ecology Wiki

    Just a quick note about the FogBugz Ecology Wiki page that I got started over on the Fog Creek support website.

    Michael Pryor asked whether I’d fancy getting a community wiki page up and running which pulls together links and descriptions of all the scripts, demo source and third party applications that work with FogBugz. I jumped at the chance.

    It’s very much a skeleton page at the moment, but I expect it’ll quickly fill out once people start publishing more and more examples and applications that work with the FogBugz API. I predict that the new API in FogBugz 6.0 is going to have a very positive effect on the FogBugz ecology.

    I’ll be keeping an eye out for any new scripts, example source code snippets and applications that work with FogBugz and adding them to the wiki, but I hope others will too.