How to recreate the BPOS Outlook profile

The Microsoft Online Services Sign In client does a once-only configuration of Outlook when you first sign in to create a BPOS profile. If that profile is subsequently deleted, Outlook will refuse to start with “The profile name is not valid”, but the Sign In client gives you no option to recreate the profile.

You can quickly recreate a deleted profile using the following command:

outlook.exe /importprf "\Users\<username>\AppData\Local\Microsoft\Sign In\Config\<email address>\outlook-configuration.prf"

GC on iOS

The Whereoscope guys have put up a well-publicised post explaining why they prefer Android development to iOS. One of the main gripes they had was the lack of garbage collection; I felt I had to put forward my take on the GC question.

GC has been available in Cocoa since 2007, and there’s no technical reason (that I’m aware of) that it can’t be delivered as part of iOS. Apple has made an explicit choice to not ship GC in the OS. Without going into too much detail about the trade-offs involved, I think it’s fair to say that when Apple does need to make a trade-off between developer convenience/productivity and user experience, the user will win EVERY TIME. Developers who are expecting anything else are kidding themselves.

Regarding the other points — it’s much the same deal with the provisioning and App Store deployment processes; these are there primarily to deliver a safe, simple, reliable experience for the users. Criticisms of the documentation and XCode are subjective, but probably not too far off the mark. I did find the complaint about the Simulator as being ‘too fast’, in comparison to Android’s emulator (too slow to be usable, but this is somehow a good thing) to be quite odd.

Microsoft BPOS Admin UX Fail

Attempting to verify a domain for Microsoft BPOS (cloud-hosted Exchange & Sharepoint) and this gem pops up.

Domain Verification Error

Giving multiple possible reasons for failure without indicating which one it was is pure laziness on the part of the developer. There is no way I can tell if the domain has been validated by someone else – that’s information that only Microsoft has. A modicum of extra effort to detect mistyped CNAME records would also signifcantly add to the usability of this process.


Domain Verification Error

Attempting to verify a domain for Microsoft BPOS (cloud-hosted Exchange/Sharepoint).

Perth .NET DevJam 2010

I had the privilege of doing a brief presentation at the 2010 Perth .NET Community of Practice DevJam last night. I haven’t spoken at an event like this before, so it was a new experience for me — I managed to get the timing about right after a few practice runs, and got a two-screen Keynote slideshow working without being able to test it first, but I didn’t know how to zoom in on a slide so the guys at the back could read the code (for future reference: control + two finger drag, but the “Allow Exposé, Dashboard and others to use screen” preference setting must be enabled first).

My presentation covered my experiences migrating a BizTalk integration solution to NServiceBus. It’s a fairly niche topic, but it was nice to get some positive feedback from a few audience members during the drinks & pizza afterwards.

Of the other presenters, I particularly liked Mike Bain’s presentation on SpecFlow and WatiN (and not just because he was also presenting on a MacBook). I’ve played with WatiN before, and while it seemed powerful enough, the prospect of building a comprehensive UI test suite in code looked daunting. Mike’s example of strongly typed pages to build a more concise DSL seems sensible, and I think having something like SpecFlow at the front-end (even if the tests are being written by developers rather than BAs or dedicated testers) would help provide more structure and direction. I would imagine you’d get the most benefit if you’re using structured acceptance criteria (see my earlier post on the Agile Perth User Story meetup).

All of the other presentations were high-quality; I probably got the most out of Piers William’s coverage of Rx and Mike Minutillo’s inventive approach to dealing with thread synchronisation in a .NET 2 WinForms app.

The pizza & beer rounded out an enjoyable evening – Mitch Wheat deserves significant kudos for putting events like this together.