Latest posts.

Post CaseDetective 1.2 round up and future thoughts.

This is a rambling brain dump of a post, it may be big, but it definitely isn’t clever. Some might find much better use of their time by quickly skipping this post, you won’t hurt my feelings, honest. You have been warned!!!

Post Release Review

I released CaseDetective 1.2 for FogBugz a week and a half ago, so I thought it was about time I wrote a little update on how things have gone with this release.

This new release has proven to be very successful, I’ve had only one support request since it’s release, and unfortunately haven’t been able to solicit any useful information from the correspondent to find out what specifically their problem was. It’s a shame, as if I could get just a little info from them such as a 1 minute debug log run I might be able to see where the problem was, fix it and maybe turn them into a customer.

Sales

On the subject of “making” customers, last month (September 2006) was my best month so far for total number of orders, which was nice (although December 2005 was best financially due to volume orders). And doubly nice was that last week was my best single week of orders too, obviously some people trialling CaseDetective have been waiting for some of the goodies in CaseDetective 1.2 before buying. Maybe they’ve just bought it straight off knowing that there is a 90 day money back guarantee so it’s a “safe” purchase? I guess I’ll find that out within the next 3 months!

Either way, keeping the amount of changes in CaseDetective 1.2 to a couple of sizable features and a handful of minor improvements and bug fixes seems to have worked out well, especially as my available development time has been significantly cut recently.

The Next Version

Now it’s time to decide on the feature set for the next version of CaseDetective, which is proving very difficult to pin down. There are some relatively minor niggles that I know I need to address to help make things a little more “standard” (especially on Windows), I believe these minor cosmetic issues could actually be turning people off and need to be sorted sooner rather than later.

Then come the real features, the “value add” that makes people take a look at CaseDetective for the first or second time, these are a little harder to decide on.

For obvious reasons I’m not going to talk about the features I’m considering here, until said features are ready to go I’ll keep them close to my chest just in case they get pulled before the final release. However, what I can say is that I’m considering two different classes of feature, “brand new” to CaseDetective and more “improved” existing features.

Brand New Features

There are a couple of really big features that I just know will be popular, but of course the problem is they will take a considerable amount of time to develop, and I just don’t know if I’m happy to wait many months before I can release the next version. Maybe I should develop these “on the side” when I need a context switch and get them ready for a big release a little further down the line.

There are a few smaller new features that I could conceivably get completed in shorter time frames, none of them have the same “wow” factor of the larger features but on the flip side put them all together and they add up to more useful functionality and therefore reasons to try CaseDetective.

Improved Features

There are features in CaseDetective that customers really like, but want more from, and just like the “Brand New” stuff some could take considerable effort and others not so much. These are important, as it’s all very well being able to do something, or having the promise of being able to do something, but if it falls short of expectations it leaves a nasty taste in your mouth that’s difficult to remove, and therefore very bad for CaseDetective’s image.

FogBugz Compatibility

Of course, things get a little bit muddier when you take into consideration the prospect of a new version of FogBugz somewhere down the line, and the changes that may force on CaseDetective.

I have absolutely no idea what is coming up in the next release of FogBugz, or when it will be released. Like everybody else I have to just keep an eye on the FogBugz discussion group to try and glean what’s going to change. And from what I can tell, it looks like there might be some changes in the next version of FogBugz which will require changes to CaseDetective.

This will hopefully be somewhat mitigated by my development style, whereby in general CaseDetective improves bit by bit during development, always in a near release ready state with each new bit of development tested before check-in. This means if FogBugz 6.0 comes along quicker than expected I should be able to finish off (or cut) the current feature I’m developing and work on compatibility, which is always top priority.

Brand New Application

For a long time I’ve been itching to kick off development of a brand new application, possibly with brand new tools. There are three particular applications that have been bouncing around in the back of my mind waiting for an opportunity to be put into practice.

One of these applications is fairly simple and has no dependencies on other applications or systems, it would therefore be a nice little bit of development that I could chip away at in my “spare” time (ha ha, ‘cos I have so much spare time you know). However, there are three possible implementation methods for this app, desktop only, web only, or web with desktop app. I’m leaning towards at least starting off as web only, as it should then be possible to add a desktop app later if the need still remains.

The other two apps are Mac only, nothing particularly new, just “better mouse traps”. Both could start off fairly simple and grow organically although there is a definite level of features that I would require before I could start using them full time, which might mean a pretty lengthy development schedule. And there might not be much call for what I’m thinking of developing anyway.

Either way, each of these new developments requires that I start to use a new technology, most likely Ruby On Rails for the web app and Objective-C/Cocoa for the desktop apps. I could use REALbasic for the desktop apps, but to be honest I fancy learning something new and that Core Data stuff looks pretty neat for what I’m thinking of doing. Having said that, although there are plenty of Windows apps in the application spaces I might be targeting, I dare say I could take a slice of the action with a cross-platform application written with REALbasic. The desktop apps definitely have more marketability than the smaller web one, but I really want the web one!

What to do?

So, as you see I have a bit of a dilemma.

 I really would like to start development on the web application, but frankly I just haven’t got the time just now and am very unlikely to conjure up anymore in the coming months. I could sacrifice one evening a week to it, but I’m not convinced that’s enough to learn a new language without being frustrated by lack of use hampering the learning curve. There’s also the problem that the new development is pretty much for my own edification, as there quite likely isn’t a market for what I intend to develop, even if I know I would pay for it myself. I guess I could always test that though, no harm in trying.

As it stands, I’m leaning towards improving current CaseDetective features in the next release, with a few smaller “new” features that have been most requested. But, I’m going to take a few days to properly sketch out and estimate the changes I’m considering from the huge heap of feature requests to make a better informed decision on which to do, and make sure to leave some slack for catching up with FogBugz just in case it gets rev’d within my release time frame.

I did warn you!

So if you’ve made it here, sorry, but I did warn you!

Phew, CaseDetective 1.2 released!

Hooray! The pressure has been released as CaseDetective 1.2 for FogBugz is out the door!

On Thursday evening (nearly Friday morning) CaseDetective 1.2 hit the ‘net after a pretty swift gestation period compared to previous versions, two months of development plus a few weeks of beta testing.

Things have gone really well with this version, I set my sights on just a couple of major features with the intent of getting it out within 3 months, and I just managed to get it finished on time.

I started this release at the beginning of July, once I’d got back from holiday and had settled into my new contracting gig. From the start I followed a pretty punishing schedule, every week day I’d check my mail etc while having breakfast, then I did a full day of on-site 4GL development consultancy, and then in the evenings after getting home I’d have dinner with my wife and then spend the rest of the evening working on CaseDetective. I’d also steel the odd hour or two on the weekends if we were out and about.

I think It’s paid off, the beta release was very stable, the only changes I needed before final release were either existing problems that I hadn’t been aware of until some new customers tried CaseDetective or small cosmetic changes.

While fixing one of those existing problems I stumbled across a REALbasic keyword that sparked a connection with a problem I was aware of but could not find a way to fix, thinking it a problem with RB. I was having problems with email messages, RB has some really great ways of handling email messages, but I kept missing the first few lines of an email message or the headers wouldn’t be found when I pumped the source into the EmailMessage class. I’d tried all kinds of pre-processing encoding/decoding of the raw email source text to try and wiggle out the line ending and other features of the text that might cause the problems. But it wasn’t until I found the ReplaceLineEndings that it all went away, this one function allowed me to fix all the different line endings that email messages pick up on their travels in one fell swoop. This bug had been haunting me since I started on the preview pane, now it has been vanquished (hopefully forever), hooray!

It was particularly good timing fixing this bug before the final release of CaseDetective 1.2 as the new Save to PDF and Print features rely on being able to correctly process email messages to extract the text and attachments.

Anyway, best get on and start writing the newsletter to let more people know about the new release, and then maybe start on some other promo tasks.

CaseDetective has picked up a few more sales recently, it may be due to the onset of 1.2 or maybe people’s trial periods finishing after using it for 30 separate days or so. Personally I think it’s because I’ve been talking about the new version and generally making sure people know that CaseDetective has a future and will continue to evolve. So I’m going to start doing a bit more of that.

CaseDetective 1.2 Beta/RC going great guns.

Thought I’d better drop you all a quick updated as to how the beta of CaseDetective 1.2 is going.

It’s doing really well; the first beta had just a couple of very minor issues, so minor in fact that from the second version I’ve renamed it as a release candidate.

Since then a couple of issues from previous versions of CaseDetective have been brought to my attention, and I’ve decided to make sure they are fixed before v1.2 makes it’s final release, so I’m working on them now.

While working on those fixes I’ve had the chance to find a couple of other bugs and cleanups that also need sorting, so I’m glad I decided to take the extra time, I’d much rather delay the release a short while than have to release a bug fixed version soon after.

Can’t say for sure how long it’s going to take to get the final version fixed and out, it should be pretty soon, but it’s tough now that I only have evenings to work on CaseDetective.

All the while my EyeTV is accumulating shows for me to catch up on, and I’m not even that much of a TV watcher, it’s going to be hard finding time to watch them all.

CaseDetective 1.2 Private Beta Almost Ready

Just like Jon trainer, I haven’t met my self imposed deadline of releasing the next version of CaseDetective for private beta.

I had hoped to get the next version out by the end of August, but things have been very very hectic in the real world lately. Even though I’ve been trying to catch up recently by seriously burning the candle from both ends, it just hasn’t come together as quickly as I hoped, even with cutting some features.

But, the good news is that I’m nearly finished, it’s just a case of testing all the combinations that I need to support, i.e. Windows and Mac OS X versions connecting to MS SQL Server, MS Access and MySQL (4 & 5) databases on various hosts, and then I’ve got to get some docs together etc. But the chances are I’ll skip the docs and update them while it’s out being tested.

What are the major changes in CaseDetective 1.2 apart from bug fixes? In this release I’ve addressed the 4 top requests:

1) DSN less connections on Windows.

2) Direct connections to MySQL 4.1 and 5.

3) Printing of cases.

4) Less painful initial sync.

Since people started using CaseDetective they’ve been confused by the need to use an ODBC Data Source Name (DSN) when connecting to either MS SQL Server or MS Access. This has now been addressed for the Windows version, you can now enter database connection details directly into CaseDetective’s preferences window. This should make getting started much quicker and easier.

Along the same lines, now that FogBugz supports MySQL 5, I’ve been getting lots of requests for being able to connect to such databases. It seems that the Beta MySQL 5 ODBC drivers aren’t too stable and have been causing people problems, CaseDetective 1.2 will support connecting to MySQL 5 without the need for ODBC.

CaseDetective 1.2 has rudimentary printing of cases and saving to PDF. Why do I say rudimentary? Well, although many people will find the printing capabilities sufficient, it’s not as feature complete as it could be, and there’s no print preview yet. I’m hoping to get some feedback from the release so I can find out what printing features users are looking for.

And finally, but certainly not least, some users have been having problems doing the initial full sync that CaseDetective 1.1 does. 1.2 addresses this by syncing the “big stuff” (comments, emails and attachments) in the background, slowly catching up. If CaseDetective is closed before the case events are all sync’d, then it’ll just carry on syncing on the next run.

Never Check Your Email First Or Last

Never Check Your Email First Or Last at LifeDev

I’m really bad for this, and have been for a very long time. Even though I once announced my new regime would include not checking email first thing so that I could concentrate on getting stuff done, it wasn’t long until I slipped back into the habit.

At the time I was working for only myself, at home, and so had the flexibility to manage my own schedule throughout the day, but these days I don’t have that luxury any more, now that most of my day is spent on someone else’s budget.

So I don’t see anyway that I can keep things responsive for my customers unless I check my email and forums first thing in the morning while eating breakfast, as otherwise I can’t check until lunch time. I’ll have to keep the habit of checking email first thing for now.

Checking email last thing at night is also a habit I’ve acquired over the years, and it affects me just as described by Glen, it tends to take much longer than “just a couple of minutes”, drastically eating into my much needed slumber time.

This one I can and should tackle, from now on I’m going to close down my email client, news-reader (another bad habit along the same lines), and web browser long before finishing up on any work I might be doing in the evening. I will not be opening said offending apps until morning.

No more “I’m just going to check my email” before going to bed, it can wait until I’m fresh and rested from a good night’s sleep.

Mac OS X Server Admin app bug + SORBS = undelivered mail

Last week I had an “Undelivered Mail” message bounced back email for an email I sent to a good mate of mine. A bit strange, but I just figured it was one of those things that happens now and then, maybe an over zealous SPAM filter or something at his end.

So I re-sent the mail, letting him know that he possibly had a problem, and didn’t think any further of it.

A few days later I hadn’t had a reply, but we ended up actually conversing via phone anyway, imagine that, a real conversation with audio, whatever will they think of next! That evening I got a second bounce, Gordon definitely had a problem!

Then yesterday I had to call someone because they hadn’t responded to an important email I sent last week, they said they hadn’t received an email from me. Hmmm, that’s curious, but I’ve had problems with this particular person having “not got the email” before, so I just figured they were up to their old tricks.

Then this morning I got a couple of Undelivered Mail messages into my FogBugz server. This happens every now and then when a SPAM mail slips through the FogBugz SPAM filters and the auto-response gets bounced. But this time there were no SPAM messages in my inbox, so I took a closer look at the two error reports.

The first was indeed a bounced auto-response, but I recognised the email address, it was for someone who’d been using the CaseDetective trial and had a couple of questions. That’s not good, why did that email fail?

The second was an email that I’d sent to that same person in answer to their questions, which apparently they never got the answers to. Oh dear.

On closer inspection it looked like an outfit called SORBS had bounced the emails because the IP address of the sending server is on a dynamic IP address. A quick check of their database showed that my IP address was in their list of dynamic IP addresses that should not therefore be sending email (there’s a link in the error message that included my IP address).

Now, I have a static IP address, it’s one of the reasons I’m with the ISP I’m with, I need a static IP address for hosting my FogBugz server as it harvests automatic bug reports submitted by my customers through ScountSubmit directly from CaseDetective. I also like my static IP address because I can access my email on my little server through SquirrelMail when I’m away from the office etc.

So, SORBS has got it wrong, and for them to change their mind I have to get my ISP to get in contact with them and put them straight.

So I logged a support request with my ISP, and they quickly responded to clarify the situation, an are now going to get in touch with SORBS to get the IP address block I’m on removed from their dynamic IP address database. But it could take several days for it to happen. Bugger!

The support guy at my ISP didn’t have a very high opinion of SORBS, and I can see why, their policy of blocking dynamic IP addresses is all very well, I can see the logic in what they are doing, but if you’re going to do something so severe you’d better get it bloomin’ right, or else you’re going to piss off a lot of innocent bystanders, such as people like me!

The ISP support guy mentioned that I should use their relay host in the mean time, which made me think because I thought I was already using it, but obviously couldn’t be if I was getting this problem. Hmmmm…

After a few tests and much perusing of raw email headers I deduced that although my email server was set to use my ISP’s relay host, it wasn’t doing so, my email server was definitely sending email direct. Double bugger!

A quick search of the Apple support forums came up with another person with the same problem, and a response that there seems to be a bug with the Mac OS X Server Admin GUI when writing out the config file for postfix.

It seems that the Server Admin app is setting the relayhost variable to blank, which means the mail server can obviously only go direct when sending mail out.

I stopped my mail server, quickly edited postfix’s main.cf file to set the relayhost variable to my ISP’s host, started my mail service again and ran a quick test … job done, mail is now being routed via my ISP’s relay host.

So apologies to those who didn’t get expected emails in the last week, and a special apology to those who’ve now just got an email from me dated sometime last week!

2,115 miles later…

We’re back from our two week holiday to Yorkshire, East Sussex, Wiltshire, and Lancashire.

lambs.jpgIn those two weeks we clocked up over 2,115 miles in the car, and I dare say we added a good portion of those miles while going up and down dale and around in circles in spectacular Herriot country. We loved our time in Yorkshire and are already planning to go back soon.

East Sussex was great, that’s where I was born and spent my formative years, and is where the majority of my family is. I don’t see my family anywhere near as much as I’d like, so it was very nice to have a few days to visit. Even though we had 5 days in East Sussex, time seemed very short and I wish we could have spent more time there. Did however have time to get a new tyre for the car as somewhere along the way we’d picked up 4 punctures in just the one tyre!

cheekymonkey.jpgWe spent a glorious day at Longleat where we saw the fantastic house, Lord Bath’s amazing murals (an open mind required), and some wonderful wildlife in the safari park. The cheeky monkeys stripped off with my rear windscreen wiper rubber and ran off with the rear wash nozzle, so there’s yet more expense for the car. But they had a hard time getting to the sticker on the inside of the window!

It was then up to Liverpool, where we visited some family and friends in Southport and Crosby, but just like the rest of the holiday time seemed too short and soon we were enjoying a very pleasant last evening dining outside a restaurant in Liverpool’s Albert Dock as the sun set.

And so to Monday morning and my first proper day on the new contract, which has been very good and surprisingly productive, with all software installed, dev environment set up, source checked out and built and some time spent familiarising myself with the application. I also got started reading the requirements specification for the project, it definitely looks as though I’ll have plenty to keep me busy for the forthcoming year!

Now it’s back to trying to schedule my spare time to enable me to continue to develop CaseDetective as well as have some semblance of a family life and time to relax. I’m going to experiment with a few ideas on that front, I’ll post about it as and when I have time! ;-)

Out of the office for the next two weeks.

I’ll be out of the office for the next two weeks, which unfortunately means much reduced support during this time.

I should be back in the office and answering email etc by the 4th of July.

Back from the abyss

The last week or so has been pretty exhausting for two reasons.

First was the release of CaseDetective 1.1.1, 1.1.2 and 1.1.3 to fix up little problems found in CaseDetective 1.1. There’s still one user with a problem that I simply can not decipher, it makes absolutely no sense and no one else has seen it. I’ll maybe have to see if I can get a CoPilot session going to fathom it out.

The second is that since Tuesday last week I’ve been getting steadily more and more ill until Friday I finally came down with a really nasty cold. I was totally wiped out all day Saturday and Sunday and then started to feel better and better yesterday as the day wore on. I missed all the really nice weather we’ve had over the weekend, but at least I didn’t miss the football!

Today I feel much much better, still full of gunk, but should be OK for doing my first day of consultancy at the new contract tomorrow.

My new client wants me to go in for a day to meet various people and generally settle in so that I can hit the road running when I come back off of holiday.

Bit of a shame that it’s tomorrow they picked as it’s Mandy’s birthday and we’d planned on going out for the day, but she’s going to see her Mum and sister instead and we’ll do something on Thursday if it’s OK out. So hopefully it’s going to all work out well.

It’s taking me ages to write this as my attention keeps veering off to the Brazil vs Croatia match on my second monitor (got to love EyeTV), so I’ll stop fighting the temptation and wrap up this little update post. Speak to you soon.

CaseDetective 1.1.2 Released, Oops!

CaseDetective 1.1.2 is just a little update to make sure Attachments are sync’d before Bugs and BugEvents to ensure referential consistency, particularly if the app is quit before the sync completes. This was broken by today’s v1.1.1 release.

Should have known better than to release software on the 6th day of the 6 month in the year 06! :-)

Maybe the fact that this is build 222 will help?