“The motto of the place is ‘Knowledge in pursuit of excellence.’
Not truth, not beauty, not art or science. Just excellence.”

— Grimjack

Four cores, no waiting


My dual-dual-core PowerMac arrived this week. I had to go with the “low-end” graphics card, because there’s a 6-8 week delay on the better one (I simply refused to consider the best one, which would have added $1,650 to the price), but performance is quite spiffy, and the machine is quite quiet in normal operation.

How quiet? I can occasionally hear a bit of drive noise when it’s chugging away, but I’ve yet to be able to pick the fans out from the background noise in my house. I’m sure that will change when I really start pounding on the CPUs, but when it’s idle, I forget that it’s turned on.

Sadly, since I’ve come down with the seasonal muck, it’s all I can do to sit up long enough to play World of Warcraft for a few hours. The good news is that I can crank up all the video options and still get 30 frames/sec on my 20” Cinema Display. Well, except in front of the bank in Ironforge, but that problem’s on the other end.

Configuration details:

  • 2.5GHz Quad-core PowerPC G5
  • 4GB DDR533 Non-ECC 4X1GB
  • 250GB Serial ATA-7200rpm
  • 16x SuperDrive Dual Layer (DVD-R/CD-RW)
  • NVIDIA GeForce 6600 256MB SDRAM
  • AirPort Extreme + Bluetooth

The machine it’s replacing is a dual 1GHz G4 (WindTunnel aka “Dual Mirrored Doors”), so some performance improvement is to be expected. :-)

Thank you, University of Kansas


I’m delighted to see Intelligent Design being given the serious attention it deserves:

A course being offered next semester by the university religious studies department is titled "Special Topics in Religion: Intelligent Design, Creationism and other Religious Mythologies."

A new low in gaming lawsuits


I’m sorry, but this is bullshit so raw that even a Democratic presidential hopeful wouldn’t touch it:

The parents filed a suit against Blizzard Entertainment on Wednesday, saying their son jumped to his death while reenacting a scene from the game, the report said.

What scene would that be? The one where you deliberately send your character off the edge of a cliff, knowing that he’ll die when he hits the ground? Or did he leave a note saying that he was going to teleport to the top of the Twin Colossals and try out that cool new Parachute Cloak he picked up at the Auction House in Gadgetzan? Or did these loving parents just not pay enough attention to their kid to notice that he was suicidally depressed?

If this cash-grab fails, no doubt they’ll turn up a witness who claims that the kid was shouting “Accio Firebolt!” on the way down, and sue J.K. Rowling next.

Automating


Most of the real bang for the buck with OS X Tiger is under the hood, but as cool as things like Core Image are, Apple found it easier to focus their marketing on three key features: Dashboard, Spotlight, and Automator. The only problem with this is that they’re not done yet.

Spotlight should have been released as an open beta for users to play with and developers to write plug-ins for. Instead, Apple made it pretty much the only way to search in Tiger, and hijacked a very useful keyboard shortcut to activate it. Worse, the indexing process is a major pig, and the default behavior is to index the entire contents of any disk you attach to your computer, as soon as you connect it.

Dashboard is a cool prototype of a number of ideas. If they ever finish the APIs necessary to write full-featured programs in DHTML, a thousand useful special-purpose tools will appear. As it is, all we’ve got are a thousand web-scrapers, search buttons, and picture viewers, and many of them are CPU hogs. To be honest, I’m more excited by the tantalizing glimpse it gives of a future desktop-layering API; the way that the Dock, Exposé, and Dashboard exist outside the desktop while interacting with it has real potential. I think we’re going to see more such layers in future releases; the most obvious candidates are screen savers and the grab-bag of tools with “float above over windows” options, but there are certainly others I haven’t considered. My other hunch is that a mature version of Dashboard would be a perfect match for an Apple PDA; the SDK’s emphasis on small size and distinctive front graphics fits almost too well.

Which brings me to Automator. It’s actually good enough to call a released application; the problem is that it isn’t what Steve told us it would be. In another year, perhaps, third-party developers will have fleshed it out with a wealth of plug-ins that make it possible to really tie your applications together in useful ways without programming, but it’s not there yet.

So. Today’s problem: my manager’s SO has 3,680 audio files that she wants to put on her iPod. Unfortunately, they’re in a format iTunes doesn’t understand. Google turned up a few Windows utilities that claim to grok this format, but the only Mac tool likely to work was a Mac OS 9 app, and I really didn’t want to reinstall Classic just to find out.

To my surprise and delight, however, QuickTime Player reads them just fine, and it has an Export function that will let me write them out in AIFF or WAV format. In theory, this is a perfect task for Automator: “for each file in these directories, open it up and write it back out in WAV format, then send the whole lot to iTunes and have it convert them to MP3/AAC”. In practice, however, the only thing that Automator can do is allow you to select the files and send them to QuickTime Player; converting them requires a bit of AppleScript programming. Automator will run that script once you’ve written it, but unless you get lucky and find something on the web that’s pretty close, it may take longer to automate the solution than to do it by hand.

I got lucky. Even better, I happen to have another 8,400 of these files that I wouldn’t mind having on my iPod…

[update: it turned out to be easier to hack the script to walk the directory tree directly, so I don’t need Automator at all, just AppleScript. The only way to improve the script further would be to write it in Perl and generate the necessary AppleScript; that way I could have a decent string-handling library.]

Dear OSM™,


I tried to find out what your reason for existing is, but I’m afraid I didn’t make it past the “From the founders” letter. Quoting:

At OSMTM (Open Source Media), we believe that to be true—that freedom, openness and transparency in media is an inevitable result of the technological advances that have given every citizen the chance to breathe deeply of the news, thought and opinion that hovers in the ether between us.
  1. Note that HTML has a perfectly good mechanism for encoding a trademark symbol, ™. Using guarantees that cut-and-paste will transform your name into OSMTM.

  2. “A, B, and C are”, not “A, B, and C is”.

  3. every citizen” has been given this chance? Really?

  4. For that matter, “every citizen” has? Citizen of what, precisely?

  5. “…breathe deeply of the news, thought and opinion…”?!? Sounds like you’re trying to attract ads for bongs and hookahs.

  6. “…hovers in the ether between us”?!? Never mind, I see you already have enough bongs of your own. Did someone actually read this nonsense before posting it?

And where faceless, "objective" editorial boards once handed down opinions and endorsements, bloggers sound off, the numbers on their public sitemeters lending them unassailable credibility as voices for the rest of us.

I was going to point and laugh at the absurdity and awkward phrasing of the part I highlighted, but I simply can’t get over the juxtaposition of that line of bullshit with the scare quotes you put around the word “objective” in describing the sort of media companies you say you’re different from. “Editorial boards are just something to sneer at, but hit-counters are The Rock of Gibraltar, baby!”.

OSM’s mission is to expand the influence of weblogs by finding and promoting the best of them, providing bloggers with a forum to meet and share resources, and the chance to join a for-profit network that will give them additional leverage to pursue knowledge wherever they may find it.

I’m sorry, but this sentence simply doesn’t parse right. Is it “expand the influence by ‘finding and promoting weblogs’, ‘providing bloggers with a forum’, and ‘the chance to join a network’”, or is it “expand the influence by ‘finding and promoting weblogs’ and ‘providing bloggers with a forum and the chance to join a network’”?

[Mind you, I’m not at all sure how your network is supposed to give someone leverage (additional, no less) to pursue knowledge, much less ‘wherever they may find it’, but I’ll let that one go for now.]

From academics, professionals and decorated experts, to ordinary citizens sitting around the house opining in their pajamas, our community of bloggers are among the most widely read and influential citizen journalists out there, and our roster will be expanding daily.

Apparently your community of bloggers is missing some key knowledge about the difference between singular and plural nouns. Also, when one is addicted to lengthy sentences, mastery of the serial comma is essential for clarity.

[And who decorates experts, anyway?]

...but the next phase in the democratization of ideas has begun.

Only a phase, is it? Nothing to get excited about, then.

Flashcards revisited


A while back, I made quick and dirty hiragana flashcards, using the Mac OS X print dialog to print single-word pages 16-up. As my Japanese class moves along, though, there’s a need for something more sophisticated. Each lesson in our book includes a number of kanji words that will be on the test, and while my previous method will work, the hard-coded font sizes and word placement get messy to maintain.

If I’m going to write an honest-to-gosh flashcard generator, though, I might as well go whole-hog and make it capable of printing study words vertically, the way they’d be printed in a book or newspaper. Learning to recognize horizontal text might get me through the test, but it’s not enough for real Japanese literacy.

Here’s the Perl script (requires PDF::API2::Lite), a horizontal example, and vertical example. You’ll need to supply the name of your own TrueType/OpenType font that includes the kanji, unless you happen to have a copy of Kozuka Mincho Pro Regular around the house.

Note that the above PDF files have been significantly reduced in size (by an order of magnitude!) by using Mac OS X’s Preview app and saving them with the Quartz filter “Reduce File Size”. The words in the sample are from the review sheet for this week’s lesson…

Update: One problem with my vertical-printing solution quickly became obvious, and I don’t have a good solution for it. The short version is “Unicode is meaning, not appearance”, so variant glyphs can’t be easily selected, even if they’re present in your font. Specifically, the katakana prolonged-sound mark 「ー」 should be a vertical line when you’re writing vertically. Also, all of the small kana 「ぁぃぅぇぉっ」 should be offset up and to the right, and good fonts include correct variants, but I can cheat on that one; I just need to move the glyph, not change its shape.

No one seems to have figured out the necessary font-encoding tricks to pull this off with PDF::API2. At least, it’s not turning up in any google incantation I try, which leaves me with one conceptually disgusting workaround: rotate and flip. Calligraphers and type-weenies will cringe, but at text sizes it will pass. The correct character is on the left:

vertical kana hack

Now to write the code for both workarounds…

[side note: Adobe’s premier software suite is remarkably fragile; I just got it into a state where I couldn’t run Photoshop. How? I started Illustrator, which opened Adobe’s software-update tool in the background, then quit Illustrator. When I started Photoshop, it tried to open the update tool again, couldn’t, and crashed.]

Why I don't trust anything posted at boingboing.net, reason #3125


There’s a certain gullibility in most boingboing posts. Often this is combined with eXtreme Technophilia or a hard-left anti-whatever slant, but my favorites are the pure examples.

Today, there’s a link to a story about a 30,000 calorie sandwich. The poster obviously read the linked article and looked at pictures of the sandwich, yet he completely failed to notice the fact that the ingredients list included two and a half quarts of canola oil.

Yes, fully 62% of the claimed calorie count was in the oil used to deep-fry several ingredients. I can forgive some random tailgater for just typing his shopping list into a calorie-counter and blindly accepting the results, but you’d think someone with Cory Doctorow’s alleged technohippitude would easily spot such a glaring error.

Sadly, he and his cohort don’t seem to be much better at spotting obvious flaws in tech-related stories either. I find that most of the actual useful links posted at boingboing come from places like Gizmodo and Engadget, so I tend to look there first for news, and only visit boingboing when I need to laugh. (“at, not with”)

My need for fluff and fan-service


On Tuesday, a server we rely on that’s located in another state, under someone else’s control, went poof. They have another machine we can upload to, though, so I changed all references to point to it.

All the ones I knew about, that is. A little-used script in a particular branch of our software had a hardcoded reference to the dead host, which it used to download previous uploads to produce a small delta release. The result, of course, was a failure Wednesday that left the QA group twiddling their thumbs until I could fix things. In the end, other failures turned up that prevented them from getting the delta release, but they could live with a full release, and that’s what they got.

That was my day from about 7am to 2pm, not counting the repeated interruptions as I explained to people that the backup server we were uploading to had about half the bandwidth of the usual connection, so data was arriving more slowly.

Things proceeded normally for a few hours, until the next fire at 4:30pm. A server responsible for half a dozen test builds and two release builds had a sudden attack of amnesia, forgetting that a 200GB RAID volume was supposed to be full of data. A disk swap brought it back to life as a working empty volume, but by that time I’d moved all the builds to other machines. I’ll test it today before putting it back in service.

Just as I was finishing up with that mess and verifying that the builds would work in their new homes, our primary internal DNS/NIS server went down. The poor soul who’d just finished rebuilding my RAID volume had barely gotten back to his desk when he had to walk three blocks back to the data center. Once that machine was healthy again, I cleaned up some lock files so that test builds would resume, and waited for the email telling me what was supposed to be on the custom production CD-ROM they’re shipping overseas today.

That, of course, was IT’s cue to take down the mail server for maintenance. Planned and announced, of course, but also open-ended, so I had no idea when it would be back. Didn’t matter, though, because then my DSL line went down. I’d never made it out of the house, you see, and was doing all of this remotely.

The email I was waiting for went out at 9:30pm, I got it at 10:45pm, and kicked the custom build off at 11pm. It finished building at 12:30am and started the imaging process, which makes a quick query to the Perforce server.

Guess what went down for backups at 12am, blocking all requests until it completed at around 3am? Nap time for J!

At 4:45am I woke up, checked the image, mailed off a signing request so it could actually be used to boot a production box, set the alarm clock for 6:45am, and went back to sleep.

This was not a day for deep, thought-provoking anime. It was a day for Grenadier disc 2 and Maburaho disc 4 (which arrived from Anime Corner Store just about the time the mail server went down). I considered getting started on DearS disc 2 and Girls Bravo disc 3, which also showed up, but decided instead to make a badly-needed grocery run.

“Need a clue, take a clue,
 got a clue, leave a clue”