Arnt Gulbrandsen
About meAbout this blog

Threading email using Thread-Index

Microsoft Exchange sends email containing a header field called Thread-Index that does much the same job as References. I've no idea why Exchange does that instead of the normal way. But I have found out how to parse it, and it's not terribly difficult. It's easiest to explain using examples, […More…]

Come back Microsoft, all is forgiven

A year ago I talked at some length and frequency about the evils of Microsoft's reference application for the Xbox. One of the points I mentioned most often is that the thing links in four different JSON libraries, all deficient in some serious manner.

Today I added a third JSON library to an application, despite knowing that it already used two different ones.

An aside on and the Xbox 360 is a fine library. High DWIM factor. So I was happy when Microsoft suggested that I use instead of the class Microsoft had previously suggested as the best-supported, JavascriptSerializer.

Starting with the July 2012 release, the Xbox ADK contains an integrated version of Unfortunately it seems dynamic types don't work on the Xbox 360, so they removed all the dynamic parts of JSON (ie. JS and most of the O).

Thus, for using on the Xbox, the following three rules apply: Use using Json.Net.Adk; instead of the proper package name. Use only JsonTextReader and its helpers (JsonToken, IJsonLineInfo) to parse. Use printf to write JSON.

Should you feel tempted to use's excellent higher-level functionality, forget it. It's not there. The Microsoft Help page spends six sentences describing, and that really is everything you can use.

I do wonder why dynamic doesn't work, and why that and the lack of the Microsoft.Csharp assembly isn't documented.

A Nokia Lumia arrived

I need it for testing some compatibility blah.

Although it looks modern and snazzy and so on, and they've clearly tried to make it iOS-like, the visual design somehow communicates that the next screen may be this:

(Note: I copied that from MSDN without permission.)

Update: Later it told me an update is available, and to please connect the phone to a computer, which would tell me more and allow me to update the phone. I connected it to my desktop. The phone did nothing and there's no apparent way to make it do something or ask what the problem might be. The computer supplies power, so it cannot be fear of running out of power in the middle of the upgrade.

I suspect that computer actually means computer that runs the right version of Windows and has the right software installed. But they don't want to say that, because it would sound complicated. Windows phone can be complicated but it must never sound complicated. Plonk.

Update: I gave the phone to an ex-Nokia colleague who willingly began using it.

Silverlight video streaming on the Mac

The Silverlight streaming has a tendency to pick a very low frame rate on some hosts, particularly on the Macintosh. Microsoft has promised a fix in Silverlight 5, but that doesn't help now.

The workaround is to disable WindowSizeHeuristicsEnabled in the player configuration file. Of course that may have negative consequences.

Bashing Microsoft

Scientists have proven that eighty-four per cent of Microsoft-bashing is ridiculously wrong, and that all that rubbish makes valid criticism of Microsoft look bad.