Herding Racehorses, Racing Sheep

My friends Dave Thomas and Andy Huntthe Pragmatic Programmers—are always teaching me new things. This time, it’s “The Dreyfus Model of Skills Acquisition.” I ran across the slides from Andy’s talk at JAOO. Everyone involved in software development should be aware of this.

The funny thing, to me, is where I think it came from. A few months ago, while Dave and I were having lunch one day, he mentioned that he was reading a book about the history of nursing. My first thought was “that’s weird,” followed immediately by “I bet he’ll learn something interesting that applies to programming.” And sure enough, there are strong hints in Andy’s talk that they learned of the Dreyfus model through historical connections with the nursing profession.

One of the slides makes this point:

Experience comes from practice. (Broad and general, not narrow and specific.) Dave and Andy certainly cast their nets wide, and they are prime examples of the value of a generalist approach.

An unexpected treat from Google News

Since Google News showed up, I’ve been impressed with it as a news “hub” site. I find it utterly fascinating that they’re able to achieve that without human editors.

It does seem that they’re using something at least vaguely similar to PageRank—there’s definitely a feedback process involved to assess the importance of various stories. One of the nice things about this is that Google frequently features stories that are off the map for mainstream American media. I’m sure this is partly due to Google’s inclusion of non-U.S. news services, but I suspect it also reflects an American population that is changing faster than the newsrooms are.

Today, I was treated to not one, not two, but three stories about Cricket on the Google News front page. What a nice surprise. (And hurray for Australia! With Shane Warne looking more powerful than ever, they’re in great shape for the Ashes next month.)

Zeroing in on my crashes

I know, I should just reinstall. But I’ve been too busy to risk that much disruption when I don’t currently have a good backup solution, and I seem to have figured out how to avoid the crashes most of the time.

I noticed fairly quickly that the crashes seem to always be related to modem use: they happen either while the modem is disconnecting, or very quickly thereafter. And I also noticed, shortly before the crashes started happening, that disconnecting was taking a lot longer than it used to. Something’s up.

After playing around for a while, I figured this out: if I unplug the phone cord from my laptop before I tell the modem to disconnect, the machine won’t crash. So far, that’s worked. Keeping my fingers crossed.

Beginning the Day …

(via my O’Reilly blog)

A month ago, I wrote about “TechnoPop: The Secret History of Technology and Pop Music”, Rick Karr’s series of reports running on NPR’s Morning Edition. This morning I was listening to part 5 while driving to work, and I heard Karr say this:

Over the past decade, all this technology making modern music has gone digital.

Those of you as old as I am might recognize the middle of that sentence as a near quote from Rush’s 1980 masterpiece, “The Spirit of Radio”. That little touch put a big smile on my face.

Thanks to the magic of iPod, I had the song close at hand. So I popped my cassette adapter into the slot in the dashboard, plugged in my iPod, and had a listen. And I was struck by just how appropriate it was for Karr to quote from that song, which was a scathing attack on the music industry.

The first part of “TechnoPop” made a rather pointed reference to the current conflicts between the music industry and their customers (and, for that matter, the artists), and there’ve been hints that the series will come back to that issue in its final installment next week. So far, the series has covered the phonograph, microphones and electrical recording, magnetic tape, LPs, and multitracking. At each stage, the theme has been clear: technology inevitably changes not only music itself, but also the music business – often over the protests of established players in the industry, but usually to the long-term benefit of the music industry as a whole.

One still likes to believe in the freedom of music, but even the illusion of integrity that Rush sang about has vanished. The gift of music that radio brings to us, far from being beyond price, seems firmly in its grip.

A weird Java2D bug under OSX

Last week I was playing with my toy line drawing editor again, and I noticed a very strange bug in the Java 2D graphics support under MacOS X. I wrote a tool to draw ovals, and it worked great. Then I wrote a tool to draw circles; it was just a subclass of the oval tool that constrained the vertical and horizontal axes to be the same dimension. It worked great, too, but I noticed that all my ovals (and other shapes, for that matter) were nicely antialiased, and all of the circles were jaggy.

Java2D circle bug

At first I thought I’d done something wrong, but the circle tool doesn’t change any of the drawing code from the oval tool.

It turns out that if you draw a circle using Java2D under MacOS X (at least using Java 1.3.1 under Jaguar) it does not do antialiasing at all. If you choose the oval tool and start sweeping out the bounding box, you can see it suddenly switch to jaggy pixels as the dimensions become completely circular, and then back to antialiased mode as you keep going. In the picture, both shapes were drawn with the oval tool; the only difference is that the one on the left has a square bounding box.

It doesn’t happen with Java on other platforms, or with Cocoa. My theory: there’s an optimization path in the Carbon port of Java2D. When it notices that it’s drawing a true circle, that optimization path kicks in, and there’s a bug so that it loses the quality hints.

subscribe via RSS or JSON Feed