Blog
permalinknanojson API
Found some time tonight to flesh out nanojson’s API a bit more. Going to start replacing all the various JSON.org parsers scattered around production code with this to get a better idea of how the API feels.
You’ll find it at GitHub here.
How Apple can make use of ARM (and Intel) in its laptop line
There’s been some speculation about Apple moving to ARM in some of its MacBook products. This has been largely dismissed as pure rumour by a number of folks: the costs to developers of adding another platform to the universal binary format (“universal trinaries”) would be prohibitive. On top of that, the difficultly of emulating x86 or x64-compiled code on a purely ARM platform with reasonable performance would be a very challenging task.
That’s not to say that it’s totally impossible for Apple to take advantage of the potential power savings of making an ARM switch.
Abusing the HTML5 History API for fun (and chaos)
Disclaimer: this post is intended to be humorous and the techniques described in this post are not recommend for use for any website that wishes to keep visitors.
I’ve been waiting for a chance to play with the HTML5 History APIs since seeing it on Google’s 20thingsilearned.com. After reading Dive into HTML5’s take on the History API today (thanks to a pointer by Mark Trapp), I finally came up with a great way to play around with the API.
Teaser: it turns out that this API can be used for evil on WebKit browsers. I’ll get to that after the fun part.
GWT 2.2 and java.lang.IncompatibleClassChangeError
I’ve been updating Gri.pe to the latest versions of the various libraries we use and ran into some trouble while attempting to update GWT to 2.2. There were some incompatible bytecode changes made: the classes in the com.google.gwt.core.ext.typeinfo package were converted to interfaces. Java has a special invoke opcode for interface types, so the classes would fail to load with this obscure error when the verifier tried to load the classes:
java.lang.IncompatibleClassChangeError: Found interface com.google.gwt.core.ext.typeinfo.JClassType, but class was expected