I seem to have this knack: I pick up a new technology, and the very first thing I try to do with it goes beyond what the technology is capable of. It happens time and time again.
I’m using XSLT today. (It’s not the first time I used XSLT, but it’s the first time in a while, and I recall something similar happening the first time, too.) And I spent over an hour thinking, “There’s got to be a way to do this.
I finally went to the XSLT 2.0 Requirements document, and sure enough, what I want to do is in there … as an option that the working group may want to consider. *sigh*.
I’ve seen a lot of people worrying lately about how fair, equitable, accurate, or helpful Google’s page rankings are. Dave is puzzled that he has an unreasonably high ranking when you search for “Dave”, and likewise an unreasonably low ranking when you search for “weblog”.
Come on, people. Google’s ranking system is based on heuristics, and sometimes those heuristics will give good results, sometimes bad. Google is a huge improvement on what went before, but the difference is just that their heuristics are better (and, incidentally, much more expensive to calculate).
Furthermore: it has to be that way. Given the weak semantics of HTML, the different ways of writing and structuring web pages, and the very different things that different people think are important, there’s no “one true way”; heuristic ranking is the only thing that makes sense.
Of course, I watched the new Two Towers trailer today, just like every other Tolkien fan. And I really like what I saw.
But I noticed something I’ve noticed before, in trailers and in the full-length films. The title sequences jitter on the screen as though they were filmed by a guy sitting in a theater with a camcorder. (OK, maybe it’s not that bad, but it’s noticeable.)
Effects groups can do motion-controlled shots with live action, miniatures, matte paintings, and CG elements all merged on screen, moving seamlessly together. (For that matter, there was a translucent overlay at the bottom of the frame throughout the trailer, and it was rock solid.) Why can’t they generate title sequences the same way?
Saturday I was sitting in a talk next to PragDave, and had to boot my PowerBook (for some reason it had shut down instead of going to sleep after my talk). I took the opportunity to show him one of my favorite silly OSX features. When you type the wrong password into the login panel, it doesn’t give you a message or anything. Instead, the login panel just shakes rapidly from side to side, as though your Mac is vehemently shaking its head at you.
Dave was most amused. :-)
I’ve found a little pet project to work on. It’s an itch of my own that I want to scratch, but I can’t predict how much time I’ll have to devote to it over the long term, so my best bet is open source: release early, release often, and get other developers interested in helping.
After sitting around discussing the idea Friday night in the sitting room of the suite at RMSS, I started playing with ideas on Saturday, using Cocoa. With an example at hand, I wrote the world’s most rudimentary version of one component I’ll need: a simple line-drawing editor. So far it’s been quite easy.
Last night, in about 30 minutes, I duplicated in Java what I’d already done in Cocoa. (I’m not trying to make a point about productivity in Java vs. Objective C … I’m a Java expert who’s just learning Cocoa, and I had already written the app once, so the second try was bound to be faster.) The Java version is cleaner in some ways than the Cocoa version, but messier in others. The Cocoa version is slightly faster, but you have to get a lot of elements in the drawing before you notice a slowdown even in the Java version (and my repaint strategy in both versions is incredibly naive, so there’s a lot of room for optimization). In short: in terms of performance and ease of development, neither Java nor Cocoa seems to offer a compelling advantage. Even memory management is a wash: Cocoa will probably deliver better perceived performance due to the lack of GC pauses, but at the cost of increased development and debugging headaches.
So my thoughts are moving toward platform popularity. I don’t particularly care how widely used the app becomes; it’s my own itch, after all. But I am interested in attracting developers to help. For that purpose, Java seems like the best choice.
For a while, at least, I’ll continue developing these two versions side-by-side. But before long, I’ll have to make a choice. And right now I’m leaning toward Java.