Posts from August 2005.

Just like buses…

Just like buses, no posts for ages and then three come along at once!

So, apparently it’s Blog Day today, you’re supposed to link to at least five blogs. So I’ll highlight a few blogs that have recently entered my regular feed list from my “New Subscriptions” quarantine list, all related to making a business out of writing software, in one way or another.

.NET Undocumented is a mixture of .NET (well, dah!) and entrepreneurship. Bit too much about .NET for me really, but there’s a fair bit about business to keep me interested.

ToDoOrElse.com is the blog of MasterList Professional developer Safari Software. Nice interviews in the Micro-ISV Tip series of posts, plus productivity and general business and blog related stuff.

I guess Tim Weiler is as busy as I’ve been recently, so hasn’t updated in a couple of weeks, but his Syncura blog tells his microISV story.

Realmac Software – Blog. This one goes into my “Apple” category. RapidWeaver is what I use to create my company website, I like Realmac Software’s products and the fact that they’re a small UK company that listen to their customers.

Talking of RapidWeaver, if you want to see a great website built with it and some superb photography to boot, scoot on over to Pixels Everywhere.

If you’re writing software you’ll appreciate OK/Cancel and Bug Bash.

When and why you should be using Threads

When and why you should be using Threads:

Quite often I see people making programming mistakes that will cost them dearly in the long run. They’ll do things like use App.DoEvents to keep UI updating properly, or they’ll make their program inaccessible by leaving tight loops run with no way to cancel them. These situations are perfect examples of when you should be using a thread.

Aaron Ballman has written a couple of posts about using threads in RealBasic, wish he’d written them a couple of days sooner as I’ve just recently made a couple of changes to CaseDetective using threads to help make the interface more responsive while grabbing data from the database.

My changes have turned out pretty good, working well, and a lot simpler in the end than I thought it might be. But I’ve still learnt a couple of things from Aarons post, in particular I’ll be changing my code to use a “MessageReceiver” to do the progress bar updates. That was a great idea Aaron, thanks!

He mentioned he might talk about resource management between threads and how to properly use the locking mechanisms REALbasic provides, which would be useful. I had to work out how to use semaphores myself because I was getting conflicts whereby the interface was in the process of updating from new data but another thread changed the data it was trying to use. Bang! OutOfBoundsExceptions all over the place! One App.DatabaseAccesssSemaphore signaled as soon as a thread started to run, and released when finished and all was back in control. And I didn’t really lose any responsiveness in the GUI.

Me likee threads!

Update (2005-09-02): Aaron has now written a nice article on Locking Mechanisms In REALBasic.

(Via Ramblings.)

Of Mice And Machines

So, a couple of days ago I listened to Adam’s interview with Leo Laporte on the MacCast (which was very good by the way). One of the many subjects they discussed in the podcast was the impending move to Intel chips by Apple and what they think will or won’t happen with regards to Mac OS X being released for generic non-Apple hardware.

I’ve held back in airing my thoughts on this subject for some time, but I thought I’d just get it out of my system now and move on as some of Leo’s opinions mirrored mine (but I doubt we agree on everything). It’s been sitting here as a draft for way too long, this subject is starting to get old.

Hardware Release Schedule

Leo said that he does not expect us to have to wait until next summer for the first MacTel, and I agree whole heartedly. In recent times Apple hasn’t released any information on products much more than a month ahead of release, they are very good at officially being tight-lipped even if the rumour sites do get the scoop ahead of schedule now and then. Steve Jobs said in his WWDC keynote in June that they would have Intel based hardware “Starting next year, we will start introducing Macs with Intel processors in them… so when we meet here this time next year, our plan is to be shipping Macs with Intel processors by then.”, I’m hoping that Apple really expects their first product to be out before that.

I predict that by the end of January 2006 we will be able to buy a Intel CPU’d Mac mini, we’re not going to have to wait until summer. Further more, I expect there to be a variation specifically targeted to the Home Media Centre segment, which may have either new software for full screen TV compatible Music, Movies and watching/recording TV, or at least extensions to iTunes for full screen simplified control (e.g. via bundled remote control).

By summer 2006 we will have the first PowerBooks (or whatever they will be called) based on intel chips, what’s the date of next year’s WWDC event with all those developers milling around with PowerBook in-hand? ;-)

I would expect that the Intel based replacement to the PowerMac G5 should be easier to create than any other Apple hardware model purely due to the extra room you have for part placement. However, I expect the G5 replacement (G6 anyone?) to be based on the recently announced “proper” dual core Intel chips, and I seriously hope that they are dual processor too giving us effectively four way processing. Drool. This may delay release a little, so we may be looking at end of 2006/begining of 2007 for this one. What’s the betting that Apple’s deal with Intel includes them getting first dibs on the new chips as “guinea pigs”, with release to Intel’s major volume partners soon after.

iMac G5 replacement. This is a little tricky, with any luck we’ll get these for Paris Expo next year, I expect them to be out before the PowerMacs, but after the much needed PowerBook replacements. Don’t get me wrong, I love my PowerBook, it rocks, but Apple needs to get the Intel laptops out the door as they’ll be a key seller.

Mac OS X On Intel

A lot of the discussion recently has centred around whether Apple will release Mac OS X for any old generic PC, or whether they will ensure Mac OS X can only run on hardware made by themselves.

Well, I reckon they will (and should) take steps to make it fairly difficult to run Mac OS X on anything but Apple hardware, but not waste time in making it very difficult. It doesn’t matter how hard Apple tries, someone will have it running on generic PCs within a month of release, so why bother trying to make it impossible. Apple should do as most software vendors do, just make it hard enough that the casual user won’t bother, and make it extremely clear that Mac OS X running on anything other than Apple hardware will not be supported in any way. Apple simply could not afford to support Mac OS X running on generic hardware, their support costs would sky-rocket. But, after the first iteration, once a fair chunk of business has been buying Apple hardware or looked at OS X, and a sizeable segment of the software market has made noises about porting their apps to Mac OS X to satisfy the demands of the new switchers, I can see Apple taking another look at the generic PC market as a platform for OS X. It would in my opinion be a shame to decouple the hardware from OS, quality will suffer, but they’ll sell a lot of copies and iLife will sell by the truckload too, not to mention the Pro tools.

Where Apple will gain is in people buying Apple hardware that they know can run MS Windows, but also that sexy Mac OS X that everyone is raving about. They’ll take the plunge because the hardware just looks fantastic and has a superb build quality, and if their current computer usage depends on Windows based software, they’re not going to miss out. Security is a real head-turner in todays virus ridden world, Mac OS X in inherently more secure and so I think this will make a lot of sales just in itself as people look for a safe platform to do their email and web surfing while still having Windows as a fall-back.

What About Mice?

Why did I title this post as “Of Mice And Machines”? Well, I’ve talked about machines, and the OS that runs on them, but what about mice?

It occurred to me as soon as I saw the Mighty Mouse that one of the major reasons that Apple released it was not because it’s existing users have been requesting it or that they have been buying replacement 3 button mice forever, but because Apple is trying to remove as many obstacles from the path of potential switchers. These mice, when bundled with a new Mac that can run both Mac OS X and MS Windows are what the switcher expects, three button mice are the norm in the Windows world.

OK, I’ve made enough of a fool of myself, better leave off now!

CaseDetective Beta2 is out!

Finally, I’ve managed to work around all the connection problems users of CaseDetective Beta1 were having, and added a few other little fixes and cosmetic updates too.

It’s a little late at night (actually early in the morning) for me to launch into a review of what I’ve been up to over the last few weeks, but I will do so in the next day or so.

Time for bed me thinks, need some energy just in case anything is amiss with Beta2. Catch yer later.

Sometimes an iPod on random is sublime

Led Zeppelin – Bron-Y-Aur Stomp
Prince – Sign O’ The Times
Eals – Fresh Feeling
Sex Pistols – Problem
Supergrass – Lenny
AIR – Mike Mills

And there were many more before. Superb.

Beta Release == Very Busy

Well, as expected once the CaseDetective for FogBugz beta 1 was released, things got a whole lot busier around here.

I’ve had a tonne of great feedback on the first beta, and have been working hard on Beta 2.

One of the biggest problems I expected users of CaseDetective to have would be actually connecting to the FogBugz database, I imagined that there would be configurations that I’d not tested that would have problems, but tried really hard to counter this (including making the connection method options sparse and testable outside of caseDetective). Well, this fear has turned out to be true, but not in the way I’d thought (if I’d expected it then I guess I would have tried to make sure it wasn’t a problem!).

Turns out that a lot of people use Digest and Integrated Windows authentication on their FogBugz websites, not to actually log into FogBugz (it don’t do dat), but on their web server that hosts their installation of FogBugz. This is a right royal PITA, as it pretty much requires that you use IE to use FogBugz and meant that I’d have to find a way of supporting Integrated Windows authentication in CaseDetective.

Well, Fog Creek came to the rescue, I asked Michael Pryor whether he’d consider telling me how they encrypt the passwords in FogBugz, if I know that then I don’t need to use the FogBugz web site at all. Of course he told me straight away, and I’m working on getting it integrated into CaseDetective.

I should have asked Michael months ago when I first approached this problem, but instead I went around the houses and implemented the web logon stuff instead. Michael even (verbally) slapped me over the wrist for not sending him the first Beta before making it public, he said he’d be more than happy to give it a test on a few of their different configurations, I should have done so. Michael also set up a Copilot session where he showed me a couple of the problems he had with CaseDetective, which helped immensely (Copilot is way cool by the way, a breeze to use).

I don’t know what my problem is, every time I’ve asked Michael and Fog Creek anything they’ve always helped me out, but still I’m reticent to ask. I think I’ve learnt my lesson now, Fog Creek seem really happy to help me out, and I should not be shy to ask.

I’m hoping to have Beta 2 ready in a week or two, depending on how well this work goes (It was going well, but I’ve hit a stumbling block that’s taking a lot of research and testing to get over) and free time to actually do the work. Got a few real life things happening over the next couple of weeks, and my current day job is taking a lot at present too due to an impending Beta, Pilot and release.

No rest for the wicked!