My cousin Rafe was married in New York last weekend, and Kim and I were there. I've been pretty lame at keeping in touch with my side of the family, probably because 2 of 3 members of my immediate biological family are intolerable and I don't speak to them. But I love my Dad, and his family is one that I wish I had kept in better contact with over the years. I figured out that my aunt is probably the best conduit for keeping in touch with them, so I'm going to make an effort to fix these broken ties.
While in NYC we ate at Carmine's which was good and the Hard Rock Cafe, which was decent but tried to overcharge us $25 for some photos we didn't agree to buy. We also saw Sweeney Todd with half-price tickets from TKTS. It was excellent. There's a nice victorian-gothy aesthetic to this production, and the use of actors as the orchestra (playing at least one instrument if not two during the play!) was brilliant and very well executed.
I'm making another try at managing my time via Life Balance, and I've got most of my post-its and Stickies and memo pad notes and email inbox todos migrated over again. I haven't got my music todos in there yet, but I probably will do that today. Everything else is in there.
Tons of interesting stories I've been sitting on while I worked in HB++ night and day:
Via Bruce Schneier: 17 Mistakes Microsoft Made in the Xbox Security System. Fascinating. I used to be a teenage 8-bit assembly language hacker, fiddling with Sweet 16 and trying every trick in Apple Assembly Line. Seeing that this kind of attention to low level detail is still useful (and potentially worth billions) 20 years later is a surprise.
If you want to be a thief, don't be a dumb thief: how not to steal a cellphone.
King for A Never-Ending War. What a concise way to describe the evils of hiding behind the flag and national security.
Rowling to kill two in final book. Well, one of them is obvious, otherwise there would need to be a book 8. They've been talking about Mr. Super Bad Guy forever and ever and unless he dies for real, the series is incomplete. The other one is the real question. Does Harry kill Voldemort and die in the process? Will Ron and Hermione never actually hook up because one of them buys it in book 7? Oh well, I guess we'll all have to wait and see.
Conte's name in filing revealed by error: Bonds' Trainer Back In Court. Come on, the electronic equivalent of putting black scotch tape over redacted text is getting old. How many times are people going to screw this up?
I figured out that Eclipse and Psync both have problems running on Intel based Macs because they require high-level code running in an i386 native language interpreter (or JIT compiler, whatever) to load a shared library built for PowerPC processors only. Here is my easy fix for Psync which is used by Carbon Copy Cloner.
Gridcosm "is a collaborative art project in which artists from around the world contribute images to a compounding series of graphical squares." It's a weird web image thing, kinda cool, kinda bizarre.
Since January I've been working for Skip Interaction on their mobile client (a J2ME application) and due to serious shortcomings in the IBM WEME J2ME implementation for PalmOS, porting it from Java to Handheld Basic, a.k.a. HB++. It's really not bad; it's not as fancy a language as Java or C# but they've done a really phenomenal job of supporting the thing, with documentation, sample code, and forum based support. The samples are really impressive; they show how you can get much more mileage out of the language than you might have thought was possible from just the language docs.
I had originally expected to be doing this port in C, which was both appealing and unappealing. C is a pain to work in, but it's the officially supported native language for PalmOS development, which means that everything you can do on a PalmOS device, you can do in C, and there are code samples to be had and newsgroup posts and so on. I did an estimate based on my Java work and a much smaller C sample app with similar complexity, and I was fairly confident (and still am) that ten weeks of effort would be required. The HB++ version is almost done, and I was able to do it in three weeks, including tool ramp-up time and language ramp-up time. I've had to build some functionality, like string splitting and date manipulation and so on, and I even took the time to implement HBUnit (which I will publish soon), which is JUnit for HB++ (except very different in implementation because HB++ is not a dynamic language and doesn't feature reflection). That was an investment in quality on my part and it paid off; I had to use some bizarre (but well documented!) tricks to simulate polymorphism but now there's a test suite built into the application and that really helped me make sure that all that low level stuff actually did what I thought it did.
I haven't taken the time yet (but I will) to do personal productivity metrics with J2EE vs. C vs. HB++ on Palm. It's the same app by the same person so it's quite rare to have all of that controlled and only the language as the independent variable, so the important dependent variables of ending LOC and LOC/hour should be pretty accurate.