Terrific Ferrite

As of this writing, there’s no ruling yet in Iron Coder 2 or 3 (aka “the array index agnostic incarnation”), but the entries are looking way more swell than last time. Some will indubitably say it’s because of the loot, but I think it’s the dynamite theme - Time + Core Graphics (aka Quartz).

Favorites so far: TimeLapse (Andy Kim, looks best), TimeRSSReader (Jin Kim, most ingenious), Process Timer (Peter Hosey, most useful+polished-combination), What Have You Done For Me Lately? (Daniel “#FF0000″ Jalkut, best implementation), Race Against Time (Mark Dalrymple, most unicorns) and Usage (Grayson Hansard, most added value by non-greyscale colors).

Boolean

Halfway through this essentially true, but rather abstract, review of efficient design, it is claimed that the “Word has finished searching the document” alert is very, very wrong. Verbatim from the article: “You’d think that such dialog boxes would only appear on web sites circa 1994, but in the latest version of Word, I found this lurking: (image of the alert) [..] To all designers out there: please never do this. There’s no excuse.”

In Office 2007, the Office UI designers did remove a very similar (identical in purpose to a very similar function) dialog saying “The spelling check is complete.“. The response was a windfall of user complaints. Some were undoubtedly “OMG YOU HAVE CHANGED THINGS THIS WILL NOT STAND” kinds of complaints. However, my guess is that most of those who complained genuinely needed that alert. The dialog was put back.

You could argue that the alert should automatically go away after a few seconds (which has usability issues of its own). You could argue that the alert is much needed. You could argue that people using other programs never ask for a similar alert, so the need for an alert is invented by behavior in Office programs. You could argue something completely different. Which is correct? I have no idea, but it’s clear that in any event, and no matter how much I believe in the premise of the original article, there’s more to this than the dismissive “Please never do this. There’s no excuse.”

Update: Michael Tsai has more to say.

Regular

Remember how, in Ruby, the scan method doesn’t return the full match, but only the captured groups? Thanks to some inspiration by Joshua, I’ve written a small method doing precisely this.

class String
    def pscan(p)
        r = []
        a = self.scan(p) {|m| r.push(m.unshift("#{$&}")) }
        if block_given?
            yield(r)
        else
            r
        end
    end
end

This exposes a method, pscan which hands out arrays of matches that contain the full match as its first element, and the rest of the captured groups in sequence, like scan does. The method should carry the exact same interface as scan, including returning the same result when nothing matches, and follow every other semantic except for the inclusion of the full match as position 0.

Include as you will. I release this code into the public domain (why not?) but attribution (by linking to this post) is appreciated.

Update 2006-06-23: This method was originally called pcrescan and merely aliased as pscan. After realizing that the name could be confusion with respect to the PCRE regex library - which Ruby doesn’t use, it uses Oniguruma - and that pscan is briefer and a better name, I omitted the name pcrescan from the code entirely. My original intention was to show that the items returned in the array are returned as they are from similar methods/functions in other Perl-compatible regex libraries for other languages.

Eight Megabits and Constantly Streaming

If you come from a G4 Mac, you will not believe how responsive the MacBook is with a high-bandwidth Internet connection. I was on vacation when I received it, and it’s only now that I’ve been able to pair it with my home connection. This is all.

I-did-totally-not-just-make-these-up points up for grabs if you catch the reference in the title.

« Newer posts · Older posts »