Ch-ch-ch-changes…

Still don’t know what I was waiting for And my time was running wild A million dead-end streets and Every time I thought I’d got it made It seemed the taste was not so sweet So I turned myself to face me But I’ve never caught a glimpse. – Bowie, David This has been a … Continue reading “Ch-ch-ch-changes…”

Still don’t know what I was waiting for
And my time was running wild
A million dead-end streets and
Every time I thought I’d got it made
It seemed the taste was not so sweet
So I turned myself to face me
But I’ve never caught a glimpse.

– Bowie, David

This has been a week of changes for me. I’ve been forced into the situation that I have to take stock of where things are going in my personal life and at the end of last week, everything changed.

I don’t think anyone can afford to sit back and idly watch time go by. I don’t think it’s right for you to put your life on hold while others obsess about their past. If, through inaction, you permit something to happen, then you are just as guilty.

I’ve blogged about this sort of thing before but I’m been procrastinating for an age and done nothing. Shame on me.

On other news, we have a hit-list of things we need to do before release and we have to start getting on with things. Aidan is taking this weekend off and so am I. After this weekend, a long weekend extended by the May Day bank holiday, nothing will be the same.

The incredible disappearing, reappearing developer

You may have noticed I’ve not posted anything to our blog for the past couple of weeks. Unfortunately, my wife’s grandmother died about two weeks ago, and we’ve spent the intervening time preparing for a trip back to the UK (Yorkshire) for the funeral. Given that we’d already planned a trip back to Northern Ireland … Continue reading “The incredible disappearing, reappearing developer”

You may have noticed I’ve not posted anything to our blog for the past couple of weeks. Unfortunately, my wife’s grandmother died about two weeks ago, and we’ve spent the intervening time preparing for a trip back to the UK (Yorkshire) for the funeral.

Given that we’d already planned a trip back to Northern Ireland for July (and a subsequent trip to Disneyland Paris for the kids), we decided it would be best for my wife just to stay in N.I. until I could come out and join her. At the last moment, she felt very uncomfortable about the whole thing and I’ve ended up coming with her.

The upshot of all this activity is that I’m on leave from my day job, and in Lisburn (that not-so-well-known market village pretending to be a suburb of Belfast). I met up with MJ on Saturday for the first time in almost three years (and he’s not become _that_ fat) and we’ve kicked off the activities necessary to turn infurious into a limited company.

Also, while offline for about two weeks, I started work on our second product, and I’m pleased to say it’s come on very well – to the extent that we may be able to launch it around the same time as SyncBridge (although it has less broad appeal).

Vista "Abysmally handled" says known MS shill.

Forgive the Daily Star-style headlining I spent about 7 hours with some smart people yesterday. One of them, a dyed-in-the-wool Windows sysadmin, showed us some cool technology but it was very noticeable the way he expressed how he had no idea how to sell Vista to his clients. He could force it upon them but … Continue reading “Vista "Abysmally handled" says known MS shill.”

Forgive the Daily Star-style headlining

I spent about 7 hours with some smart people yesterday. One of them, a dyed-in-the-wool Windows sysadmin, showed us some cool technology but it was very noticeable the way he expressed how he had no idea how to sell Vista to his clients. He could force it upon them but how to actually “sell” it and make it actually “value” was proposed as something that would be difficult.

We’ve seen how Microsoft is courting games developers to make new games only run under Vista in the old-fashioned concept that games drive the industry forward. Hey, Billy-Boy, games drive sales of hardware, using it as a club to make people buy your next piece of software is going to be a hard sell – especially to developers who want to appeal to everyone with a vaguely recent machine.

Even Paul Thurrott claims Microsoft’s handling of Windows Vista has been abysmal

So, how is this going to be pushed? I figure a version of Office will be thrown out the door which only supports Vista and does something new and exciting with pivot tables. They’ll kill all OEM sales of XP so that Dell and the other box builders will be forced to ship Vista to everyone buying new hardware. (Hint to PC-based companies – stock up on your XP licenses if intending to grow).
I’m actually looking forward to running Vista on my MacBook Pro – just in virtualisation you understand. By then I’ll be running Leopard for day-to-day operations and it’ll be nice to compare. Based on what I’ve seen of Vista and based on the testimonials of the guys I know on the beta track for Vista – it ain’t going to be ready for January.

This guy gets it.

This guy really gets it. “Apple are treading a very fine line with this application though between functionality and bloat, now I am very pleased to say that in my opinion they are definitely on the right side of that line at the moment.” This is what it’s all about. It’s slightly different to the … Continue reading “This guy gets it.”

This guy really gets it.

“Apple are treading a very fine line with this application though between functionality and bloat, now I am very pleased to say that in my opinion they are definitely on the right side of that line at the moment.”

This is what it’s all about. It’s slightly different to the Windows Tao which is “cram features in there and beat out everyone else cramming in features” and it’s also different to the UNIX Tao of “It does one thing. It doesn’t do this, it doesn’t do that. It does one thing.”
Preview is a essential application on Mac OS X because it provides exactly the essence of what a good application should. It does its job….and then a little more….

Need a little more? there’s iPhoto. Need a little more than that? Aperture. And if that doesn’t ring thy bells…..Photoshop.

Apple and mach.

James Stoup has written a long-winded bit of speculative fiction about how, with the departure of Avi Tevanian from Apple, Mac OS X might be switched to the monolithic Linux kernel. Of course, xnu, the hybrid kernel used in Mac OS X is derived from the mach microkernel but is not strictly a microkernel and … Continue reading “Apple and mach.”

James Stoup has written a long-winded bit of speculative fiction about how, with the departure of Avi Tevanian from Apple, Mac OS X might be switched to the monolithic Linux kernel.

Of course, xnu, the hybrid kernel used in Mac OS X is derived from the mach microkernel but is not strictly a microkernel and has many monolithic kernel features.

The licensing of the Linux kernel is also a serious stumbling block.

I suppose it would be bad not to give the link of the article so I’ve added it in. Everyone’s a pundit.

What exactly is SyncServices

Easter was a very quiet weekend for many. Certainly the roads were empty and everywhere important was closed. For my part I spent the weekend with the kids and also building a new workshop for the day job so it was busy. John Welch also posted an article about SyncServices which will help people understand … Continue reading “What exactly is SyncServices”

Easter was a very quiet weekend for many. Certainly the roads were empty and everywhere important was closed. For my part I spent the weekend with the kids and also building a new workshop for the day job so it was busy.

John Welch also posted an article about SyncServices which will help people understand the magic that Aidan has woven – more importantly it may help people with making some feature requests now that we’re accelerating quickly towards release.

Aidan was also talking about his next visit to Northern Ireland which might be sooner than expected which is cool. But more on that when I know more.

CL2

Google CL2 was released today and ushered in a new age of fun and frolics for Google critics. Now they not only know what you want (Google Search), they know what you have (Google Desktop), what you buy (Froogle) and where you are (Google Maps) but now when you’re going to be there (Google Calendar). … Continue reading “CL2”

Google CL2 was released today and ushered in a new age of fun and frolics for Google critics. Now they not only know what you want (Google Search), they know what you have (Google Desktop), what you buy (Froogle) and where you are (Google Maps) but now when you’re going to be there (Google Calendar). Privacy loons and criminals are again shouting about how this will…uh…be scary and stuff.

Why do I care?

Well, SyncBridge works with calendars of course. Google hasn’t released their API yet but we’ll see what we can do about synchronising it. There’s also not much provision for secure transfers of private calendars in CL2. I’m sure this is all stuff they’ll fix.

Standalone it’s not bad at all. Its pretty – long URLs in public calendars look ugly but that’s a minor niggle. If they get with the program and manage to release an API sometime soon, we’ll work with them

The Reality of Web TV

Of course I don’t mean “WebTV” or any of the other failed attempts While at my parents, I glanced at the TV guide and was amazed to find how many Tv programmes on terrestrial and digital channels are dedicated to “reality” TV. Just looking at Thursday – We have “Birmingham’s Best Gardens”, “Gardens in Coleraine”, … Continue reading “The Reality of Web TV”

Of course I don’t mean “WebTV” or any of the other failed attempts

While at my parents, I glanced at the TV guide and was amazed to find how many Tv programmes on terrestrial and digital channels are dedicated to “reality” TV. Just looking at Thursday – We have “Birmingham’s Best Gardens”, “Gardens in Coleraine”, “The lives of the Paparazzi”, “Instructions on Downsizing”, “Tarrant being annoying on television”, “Two people move to France for jolly japes”, “Two people move to Budapest”, “The problem with Asthma”, “Watching idiots put up wallpaper”, “Lets stare at the horrific plastic surgery”, “Middleaged couple moan about their failed sex life”, “Give me style and fashion for the duration of a television show” or “I murdered my best friends mum and now I get to talk on Tv about it”. It’s like half the programmes on TV are starring members of the public whether it’s their garden, their dancing, their singing, their personal problems, their humorous accidents or their planned house moves.

Does this sound familiar to anyone?

Big companies flogging user content?

If I didn’t know better I’d say this was Web 2.0. But it’s not. It’s just what TV has been doing for the last 5 years…

(P.S. This is the content in on BBC1, BBC2, ITV, C4 and Five on Thursday 13th April. I counted maybe 30 reality shows…)

RubyCocoa (and SyncServices)

In case it hasn’t become obvious by now, SyncBridge 1.0 is partially implemented using the RubyCocoa library (for all the usual reasons that one would choose Ruby over Objective-C). I’ve had to wrap the SyncServices API such that Ruby understands it (and I’ll be releasing that very soon as open source – Fuji-san is aware … Continue reading “RubyCocoa (and SyncServices)”

In case it hasn’t become obvious by now, SyncBridge 1.0 is partially implemented using the RubyCocoa library (for all the usual reasons that one would choose Ruby over Objective-C). I’ve had to wrap the SyncServices API such that Ruby understands it (and I’ll be releasing that very soon as open source – Fuji-san is aware that I’m going to be doing that).

The single biggest issue that I had to debug was in type mismatches. SyncSchemas and Client Descriptions are what SyncServices use for determining what properties need syncing between clients, devices, servers, etc. These properties are specified using fairly generic names (“number”, “array”, “calendar date”) but they map directly to very specific Cocoa foundation types. RubyCocoa handles most of these just fine, but some aren’t quite right.

The two main culprits I’ve found so far are Fixnum and Date. A Fixnum gets translated to an Obj-C NSDecimalNumber, but SyncServices expects an NSNumber. Likewise, a Date becomes an NSDate, but SyncServices expects an NSCalendarDate.

Now for the really annoying part. SyncServices exception handling seems a bit spotty – when I passed a (RubyCocoa-converted) NSDate, it threw me an error that made it easy to see I needed to change the type of the variable (and SyncroSpector allowed me to determine which type). But when I pass an NSDecimalNumber instead of an NSNumber, the SyncServer didn’t throw any warning at all, it just didn’t update correctly (or at least this is the symptom I’m still seeing).

I’ll post more as I get to the bottom of this, possibly with a conversion table/script to make the SyncServices/RubyCocoa wrapper a bit more intuitive to use. It might be that RubyCocoa makes assumptions about types that I can override in the wrapper.

Syncrospector (and show-stopper bugs)

This relates to MJ’s “Almost done” post earlier. The actual problem was one of poor coincidental timing. I upgraded to 10.4.6, I started using Syncrospector, and I changed some code, all within a few hours of each other. Syncrospector is a developer tool from Apple which allows great insight into the whole Sync process. I … Continue reading “Syncrospector (and show-stopper bugs)”

This relates to MJ’s “Almost done” post earlier.

The actual problem was one of poor coincidental timing. I upgraded to 10.4.6, I started using Syncrospector, and I changed some code, all within a few hours of each other.

Syncrospector is a developer tool from Apple which allows great insight into the whole Sync process. I turned on some debugging info when I first started it. I then started running and debugging the code and started getting weird untraceable errors:


ISyncConcreteSession#pushChangesFromRecord:withIdentifier: - NSInvalidArgumentException - *** -[NSProxy forwardInvocation:] called!

failed to save the call history: NSInvalidArgumentException *** -[NSProxy forwardInvocation:] called!

I tried to track down this error, and eventually decided to switch on “Save call history very frequently” in Syncrospector’s preferences. This option comes with a warning about a performance hit of “catastrophic proportions”, which is why I hadn’t turned it on at this point. Sure enough, I got the above error a lot more times. The astute reader will think this obvious, but I hadn’t read the names of the preferences for Syncrospector, just the descriptions of what they did.

Turning off the call history saving made the error go away.

I’ll detail the other show-stopper bug in the next blog post, mostly because the information contained in each of these posts is good search engine fodder.