Ruby Tuesday

So: after months of tip-toeing around it, last night I sat down and tried converting a small toy app previously written in another language to Ruby, a kind of Ruby trial by fire. Considering the circumstances, it went fairly well. However, I’m left wondering some things. (Readers not intimately familiar with my programming situation: loving Objective-C, liking Perl, using PHP and getting by with it, not touching Python with a stick (out of bad experiences with it, not because of tribal dogma).)

The documentation is fine. However, the Book’s HTML version (the only one at hand) keeps referring to itself in terms of page numbers only printed in the dead tree version (which by implication is not at hand). Jumping around is guesswork, and I suppose it wouldn’t be so bad if the pure API documentation was also guilty of referencing the rest of the book in the same way in some places. You can point out weaknesses in PHP all day, but the PHP manual is comprehensive, well-structured, searchable and downloadable, and even the manual’s discussion parts (”discussion” meaning those not directly saying “this class does that and this method does this” but discussing the material in a wider context, not the user-added comments) have these blue linky things in them that you can click.

Threads: awesome. No concurrent threads: whuh?

Regular expressions: good that they’re built in. However, I poopoo its seeming unability to return an iterator of a standard array of matches when you know you have a string with multiple matches in. scan is close but doesn’t return the entire match (\0) in its array (matches) of arrays (groups). Update a few days later: fix.

This experiment has strengthened my small experience and general hunch of Ruby: it’s good in the ways that Perl is good, and it’s conventional in the ways that Perl is not conventional (everything is an object! sane OO model! iterators!), but its principle of least surprise introduces bigger surprises: things are less than useful in some common scenarios (threads and concurrency, regexes and multiple matches) simply because they simplify or deviate from the norm.

Don’t get me wrong - I love it because it’s simple, and deviating from the norm doesn’t automatically mean doing it worse. The two together have certainly already meant dynamite for Ruby in many places. I think I’ll keep using Ruby for some stuff, but it’s not all sunshine.

Adiumy 2.0, Adium 1.0b

New icons of Adiumy, the Adium duck. I wasn’t sure to expect a new icon totally or a refreshed Adiumy when Adam pre-announced the new version, but I like it.

Something I noted in retrospect: The icon wasn’t supposed to ’solve’ having a big green duck as the icon. Having a big green duck as your icon isn’t about being ballsy. It’s not about ignoring your audience. It’s not about “just not getting it” about icons. No, damn it, having a big green duck is about personality.

And for those interested, Adium is finally in its 1.0 beta (which you should not post to version tracking sites). The big thing is that File Transfer finally has a chance of working in AIM/.Mac and ICQ, but there are many small improvements that all add up. I’ve made some myself over a long period: The Insert Link from Safari command now can source OmniWeb, NetNewsWire and Camino too (and will ask which if more than one browser is open), the volume icons to the left and right of the slider in Events peg the slider to the respective edge when clicked, and then there’s a (still slightly buggy) use of the (also beta) Shortcut Recorder control I started to implement a hot key.

MacBook status update

Big Bang Board Games (thoughtfully bundled full-version - thanks Apple) had never ran well on the MacBook. The rest of the computer would scream, but when running that it would just freeze in a minor fit whenever I placed or moved a piece. The movement was choppy. There was also the thing about QuickTime not working very well with H.264 or other MPEG-4-based movies (white screens, no audio).

Whether the problem came by my using the Migration Assistant (and somehow corrupting something - although I had removed all third-party components) or it being a bug in Intel QuickTime builds (the movies played back fine in Rosetta) I may never know. However, I do know that after installing Mac OS X 10.4.7 and QuickTime 7.1.2, the problem disappeared, Ze Frank audible and BBBG playable.

I’m slowly coming off the “everything’s roses” phase you acquire with any decent apparatus in the start. However, I firmly stand by my opinion that the MacBook is an incredibly solid, well-built machine, and I have since discovered that its speed (the primary reason for me buying it) is something to shout about. (Encoding movies, in particular, is very, very, very fast in comparison to the old PowerBook.)

Feghooty

Finally; Feghoot of Love, the latest album by my friend Sam’s band Meat Rainbow is available on US iTunes. (Link is kickback-free and Sam’s really good with names.)

It’s interesting to know that babies have been conceived and subsequently born in the time it took for this to get on the iTMS. Sam signed up for CD Baby in late autumn 2005, the disc took a while to get into their database, took more while to show up as “submitted to iTunes” in CD Baby, took until April(?) to show up as a no-songs, album-covered, hidden-from-Search (but buyable, curiously enough) entry in iTunes and to now to show up as a fully functional entry.

(Inquiring minds: Wikipedia knows what a Feghoot is.)

« Newer posts · Older posts »