Archive for December 2002

Tuesday, December 24, 2002

Top Ten Web-Design Mistakes of 2002

Jakob Nielsen (via Erik Barzeski):

Every year brings new mistakes. In 2002, several of the worst mistakes in Web design related to poor email integration. The number one mistake, however, was lack of pricing information, followed by overly literal search engines.

I think what annoys me the most is a variation on #6: when sites use JavaScript to show a link in the browser status bar that isn’t where the link you’re hovering over actually goes. For instance, VersionTracker makes it look like clicking a download link will download a .sit or .dmg file, but clicking the link actually takes you to their ad page. By the time I realize that, I’ve option-clicked the link and end up with a .php file in my downloads folder.

Monday, December 23, 2002

bbdiff 1.1

John Gruber has updated bbdiff, his command-line script for using BBEdit’s Find Differences command. If you comment out some of his defensive programming like so:

# Make sure there are two, and only two, file arguments.

# my $count = @ARGV;

# if ($count != 2) {

#     die usage();

# }

You can set it as CVL’s opendiff tool to compare revisions using BBEdit instead of FileMerge. If the files to compare weren’t previously open in BBEdit, closing the differences window will close both files. This is one of those little interface touches that make BBEdit so great.

By the way, I finally posted my little AppleScript for diffing the top two BBEdit windows. When you don’t need to set any options, it’s much quicker than going through BBEdit’s Find Differences window.

GUI Scripting

Daring Fireball is rightly concerned, but GUI scripting is definitely a net positive:

What I fear, however, is that GUI Scripting will provide cover to lazy and ignorant developers who do not wish to provide genuine scripting interfaces to their applications.

PHP and Ruby in Project Builder

Following Bill Bumgarner’s lead, here are plug-ins for PHP and Ruby.

Saturday, December 21, 2002

“Misused” Quotation Marks

Scot Hacker links to the Gallery of “Misused” Quotation Marks and the Archive of Misheard Lyrics. Great fun for language lovers.

Friday, December 20, 2002

Mal Speaks

Nathan Fillion:

So, here we all are. It seems that we are a living embodiment for the show. We are Browncoats, fighting a war we were never meant to win, but fighting none the less. The Fox Alliance has spoken, leaving us to make due with the cards we’ve been dealt. If you are anything like me, you’ve been pulling the record tabs off your precious Firefly VHS tapes, pushing along through your life still bitterly fighting the war from within.

I love Firefly. Walking around the cargo bay, the bridge, it’s all been terribly painful. It does still live inside me, though. With every “gorram” or “them as can” I throw unknowingly into my daily conversation, or everytime I sit in the Captain’s chair that lives in my heart, I smile with the knowledge of what we’ve accomplished here. We may have been on the losing side, still not convinced it was the wrong one. I can’t remember who said that.

If ever you see me on the street, just nod and say, “Captain.” You’ll make my day.

One True Quoting Style

Chris Hanson has it right.

Welch on the Finder

John C. Welch has been trying to rebut (part 1, part 2) John Gruber’s comments on the Finder (article, followup, Your Mac Life interview, Reflux). I disagree with most of Welch’s position.

The OS 9 Finder is a good piece of work. But, after 17-18 years of optimization, you’d expect it to be. If you view Jaguar as version 2.0 of OS X, then you need to compare it to Mac OS 2.0, and I expect that in 15 years or so, the Finder in OS X will be a much nicer piece of work.

The OS X Finder had the opportunity to learn from those years of refinement. If it is to replace the OS 9 Finder, it should be better—now. Sadly, it is not.

The OS 9 Finder was static; it was as done as it was ever going to be, and it wasn't going to grow in any new directions.

That’s simply false. MDJ has already explained why.

I’d also say that this idea that Mac OS 9 is so easy to use—as if you were born with the ability to use the OS 9 Finder like a baby does a pacifier—is tripe.

Welch is right here, and I think Gruber overstated his case about the intuitiveness of the OS 9 Finder. However, what matters more than ease of learning is ease of use. Here is where the spatial Finder is a big win, because it takes advantage of what the human brain can do subconsciously. John Siracusa and Bruce Tognazzini have already explained this at length (and there are probably better links to their writings, but I don’t have time to find them now).

I also find it curious that Gruber talks about how he wants the OS X Finder to be simpler, but then wants Apple to implement different types of windowing methods, depending on how you view a folder. That increases complexity and decreases consistency. And this would be an improvement?

If I understand Gruber correctly, he wants the Finder to support separate spatial and browser (Columns view) windows. That is, the two types of windows would be visually distinct and it would not be possible to change a given window from one type to the other. Unlike Welch, I think this would be a big improvement and would reduce complexity. If two things are fundamentally different, they should look different. Making them look the same in the name of consistency would only be deception and would cause the user to make false assumptions.

Along these same lines, I think it was a mistake to call the Finder’s commands for copying and pasting files Copy and Paste. They do not adhere to the clipboard’s standard behavior. If you copy a file and then modify it, pasting it will paste the modified version. Further, if you copy a file and delete it (or unmount its volume) you can no longer paste. In trying to be consistent (using the standard Copy and Paste nomenclature), the Finder has deceived the user and created lots of opportunities for confusion.

Gruber also advocates creating what would become a second Finder, namely the “Column view Finder,” which would behave in an inconsistent fashion, depending on whether you single-click or double-click on an icon.

In the current OS X Finder’s Columns view, single-clicking lets you browse down a level and double-clicking opens a new window. That’s not inconsistent, is it? On my reading, Gruber’s proposal is that double-clicking in either a spatial or browser window would always create a new spatial window. That seems very consistent to me.

I find it far easier, under OS X, to show that a window is just the way you look at folders, applications, hard drives, etc. This is a level of abstraction that is more natural.

This is a matter of opinion/measurement, of course, but I think the point with the classic Finder is that the one-to-one mapping makes the abstraction unnecessary. The user thinks that the window is the folder, so there is no need to learn how the abstraction works.

Welch goes on to mention some of the things that are nice about the OS X Finder: the affordance for the path popup, Go to Folder…, and the possibility of using Columns view. He then says “If you feel more comfortable with the OS 9 paradigm, use that as well.”

A lot people who like the OS X Finder approach criticism of it like so:

Here’s where I (and I think many of Welch’s “MacMacs”) stand:

Although there are differing opinions about the value of various old and new Finder features, there is little actual conflict. I think it’s possible for the Finder engineers to satisfy both groups.

Project Builder and Python

The December 2002 developer tools are out, and now Project Builder can use BBEdit as an external editor. I still prefer the BBEdit error browser (it updates the line numbers of errors as you edit the file—how cool is that?), but being able to double-click an error in PB and have it selected in BBEdit is a huge improvement. Bill Bumgarner notes the release of PyObjC 0.8, and he’s also written specifications to enable syntax highlighting of Python in Project Builder.

Serenity and VCDs

Don’t forget to tune into the two-hour Firefly pilot tonight. It’s at 8 EST on Fox. After missing the two-weeks-ago episode “War Stories,” I was able to get a copy on VCD thanks to the kindness of Beth Aweau. Unfortunately, my DVD player is too old/cheap to play VCDs, and OS X’s QuickTime Player can’t play them either. MacVCD X can play VCDs on OS X, but I wanted to convert the movie into an MPEG file I could play with QuickTime. To do this, I opened the .dat file in OS 9’s QuickTime Player and saved the movie as a self-contained file. Then I used vcdgear’s -dat2mpg converter. VCDGearX is an AppleScript Studio interface for vcdgear, but I couldn’t get it to work so I ended up using the command-line tool inside VCDGearX’s application package.

Sunday, December 15, 2002

Mac Users Uncover eBay Scam Artist

MacNN breaks Jason Eric Smith’s story.

On-the-Fly Garbage Collection


One of the classic papers about incremental and parallel garbage collection. Communicating sequential processes, implementing cooperative multitasking, are the form of parrallism used. The main goal was to design an algorithm with as little synchronization and mutual exclusion as possible.

Kernel Panics

Apple has released Technical Note 2063: Understanding and Debugging Kernel Panics (via Ranchero).

Quit Slashdot

Here’s the link.

Java Syntactic Extensions

Ovidiu Predescu:

I think the JSR 201 should broaden the scope of the proposed extensions. Instead of proposing just some minor syntactic sugars to the Java syntax, it should try to extend the language in such a way that allows unlimited extensibility of the syntax by means of macros.


Keith Devens:

On ::Manageability:: there’s an interesting post about how bad Microsoft’s CLR is for running interpretive languages.…I told my friend that this is what Microsoft does…even though they supposedly provide a common framework, they favor their own blessed language. It’s the same with C#.

Stanford to Clone Human Stem Cells

Eric Albert:

Today’s Philadelphia Inquirer reports that Stanford is starting a privately funded program to do human stem cell research by cloning embryos. This is an end run around the President's attempt last year to block embryonic stem cell research, since the program won’t be dependent on federal funding.…Politics shouldn’t try to stop science, especially in areas in which the potential benefits of the research are huge.

Microsoft Pays States’ Legal Fees

Eric Albert:

How Appealing points to a Washington Post story that surprisingly has received little notice elsewhere. Apparently Microsoft offered to pay the legal fees of any state that didn’t appeal the recent antitrust decision. All but two states accepted the offer and decided not to appeal.

Saturday, December 14, 2002

That Fine Manual

Bill Bumgarner highly recommends TFM 1.1, a developer documentation viewer and search utility. I think it’s a great idea, but so far I’m not thrilled with the implementation. There are lots of visual glitches, and it crashes while indexing some of the sample documents. I couldn’t figure out how to view more than one section of a document at a time (or even open the HTML file in iCab). Also, it doesn’t seem to like that I’ve replaced ~/Library/Application Support with a symlink. If a future version is more polished and adds AppleScript support, I’d definitely buy it. For now, I’ll test drive it to see how useful the search feature is. Why does it seem like we still haven’t caught up to THINK Reference (which has got to be about ten years old now)?

Chandler: Outlook Killer

Dave Winer:

Mitch Kapor tries to take the high road, but Wired puts him on the low one—with “10 Things I Hate about Outlook.” Oy. Same old stuff. Apparently it’s impossible for anyone to do anything without it being about Microsoft.

Friday, December 13, 2002

Objects in Space

“Firefly is a good design. People don’t appreciate the substance of things. Objects in space. People miss out on what’s solid.” —Jubal Early

Go to Firefly: Immediate Assistance for information on petitioning other networks (like UPN) to pick up Firefly. You can send a free, full-color postcard from USPS NetPost.

Firefly Cancelled

Not surprisingly, Fox has cancelled its brilliant show Firefly, after placing it in the 8 PM Friday slot, withholding its pilot, airing the initial episodes out of order, pre-empting it with baseball, and failing to advertise it. Joss Whedon promises not to give up, but if the show does come back it won’t be until next fall. Mac guy Jason Snell has written the best eulogy I’ve seen.

Thanks to the cast and everyone at Mutant Enemy. Your work has brought me much laughter and joy.

What to do now? Why enjoy “Objects in Space,” of course—it starts in five minutes.

Take my love, take my land
Take me to where I cannot stand
I don’t care ’cause I’m still free
You can’t take the sky from me

Take me out to the black
Tell ’em I ain’t comin’ back
Burn the land and boil the sea
You can’t take the sky from me

There’s no place I could be
Since I found Serenity
You can’t take the sky from me

Thursday, December 12, 2002

The World According to Google

Steven Levy (author of Hackers and Insanely Great) has written an article on the rising importance of Google.

Cocoa Object Library

Steven Frank has started yet another repository for re-usable Cocoa classes.

The Evolution of Online Distribution

Tim O’Reilly wrote a great article on piracy and online distribution.

There is nothing in technology that changes the fundamental dynamic by which millions of potentially fungible products reach millions of potential consumers. The means by which aggregation and selection are made may change with technology, but the need for aggregation and selection will not.
Services like Kazaa flourish in the absence of competitive alternatives.…The current experience of online file sharing services is mediocre at best. Students and others with time on their hands may find them adequate. But they leave much to be desired, with redundant copies of uneven quality, intermittent availability of some works, incorrect identification of artist or song, and many other quality problems.

Wednesday, December 11, 2002

PL History and CS Classics

E7L3 (no permalink, alas) links to some course notes about the Evolution of Programming Languages and maintains a list of Computer Science Classics. (via Keith Devens)

Star Trek Nemesis

Ain’t It Cool News really doesn’t like the new Star Trek movie. I haven’t seen it yet, so I don’t know how accurate the review is, but it seems very plausible based on what Berman and crew have done with the once-great series. It’s like they’re in some kind of franchise-destroying competition with George Lucas.

The Poetry of Programming

Sun has an interview with Richard Gabriel, who says that software creation is not purely an engineering discipline.

What do people do when they’re being trained, for example, to get a Master of Fine Arts in poetry? They study great works of poetry. Do we do that in our software engineering disciplines? No. You don’t look at the source code for great pieces of software. Or look at the architecture of great pieces of software. You don’t look at their design. You don’t study the lives of great software designers. So, you don’t study the literature of the thing you’re trying to build.

I think we should.

Posting Anonymously

Kuro5hin has a discussion about how to remain anonymous on the Internet without relying on proxies like that for legal reasons are (probably) no longer effective.

State Boundaries

Chris Turner points to an animation showing the boundaries of the U.S. and the individual states changing from colonization to the modern age.

BBEdit/OmniOutliner Tip

Due to the way BBEdit handles Unicode and the way Cocoa handles different flavors of the clipboard, pasting from OmniOutliner into BBEdit can cause BBEdit to switch its script system and change the font away from my preferred ProFont. The solution is to change the characters in OmniOutliner’s RTF Export preferences to the same ones that are in its Text Export preferences. Then it won’t put any Unicode on the clipboard and everyone will be happy. (Thanks to Jim Correia.)

Tuesday, December 10, 2002

MailDrop 1.2

Freshly Squeezed Software has released MailDrop 1.2, a powerful utility for sending mass e-mails that are customized per-recipient (like with a mail merge). I contributed some code to this new version. You can get 20% off if you buy it this month.

Monday, December 9, 2002

MDJ on the WSJ and “Cult of Macintosh”

As setup for its upcoming debunking of Leander Kahney’s Cult of Macintosh, today’s MDJ examines the role of the press in Apple’s misfortunes.

Press Watch begins a double-length feature today with a look at how the “Cult of Macintosh” came to be. You probably never joined a cult or think of your decisions as irrational, but lots of reporters and at least one book author are eager to portray you as such to make a quick buck. It’s important because when the press decides something about Apple Computer or its customers, it tends to stick for years and may not be reversible. We look at the Wall Street Journal’s 1993 decision that Apple Computer was in business trouble as a primary example, leading into why the press is so fond of “cult” characterizations. All this sets background for why a certain new book is not only insulting but, in the end, unbelievable, as you’ll see in part 2.


History is a funny thing. The biggest crisis Apple Computer faced in the last decade was not the mismanagement that led to over US$1.5 billion in losses in a two-year period, but rather the sales drop-off that came from months and months of daily stories wondering about Apple Computer’s future. Whether the reports listed dramatic sales collapses that didn’t exist or dramatic software sales fall-offs that didn’t exist, the major press found a reason almost every day to speculate that Apple Computer might be bankrupt in a few months. The losses and write-offs to fix the company hurt, but what hurt more were the billions in dollars annually from customers who, thinking they saw handwriting on the wall, “moved on” to Windows. Apple’s market share has not yet recovered from that eighteen-month attack.

Saturday, December 7, 2002

Close & Delete in BBEdit

I’ve posted a new BBEdit script:

BBEdit has a great feature called Close & Delete, which is available when you hold down Shift and view the File menu. In BBEdit 7.0 and later, the utility of this time-saving feature is greatly diminished because BBEdit asks if you’re sure that you want to delete the file. This script restores the old behavior of the command. If you delete the file by accident, you can always recover it from the trash can.

Spam Training with Hotmail

Ashley Karyl, a SpamSieve beta tester, wrote me to say that he’s found a great way to speed up the training process: sign up for a Hotmail account. Since he uses Entourage, which can retrieve messages directly from Hotmail, this is an easy source of spam—letting him add almost 150 spam messages in the last week. “There is a lovely sense of poetic justice in doing all this.”


Bill Bumgarner links to Peter Norvig’s Python IAQ (there’s also a Java IAQ) and posts some information about his .python file.

“War Stories” and ProFont

Daniel Sandler links to ProFont, a great monospaced font for coding and e-mail. He also links to a post by Joss Whedon about Friday’s Firefly episode, “War Stories.” I’ve got to agree with Joss that there is something amazing about this show. It’s about the only TV I watch, and I’m completely in love with it. Over Thanksgiving, I showed my parents “Out of Gas” and “Ariel,” but they don’t see what I see (even though they like sci-fi and westerns, and speak Chinese). They didn’t even think it was funny. My brother gets it, though, and he’s about as obsessed as I am. I don’t know how Fox expects it to ever get ratings if they refuse to advertise it. Daniel missed the denouement of “War Stories,” but due to a VCR snafu I missed all but the first five minutes. I am currently trying to get a copy through ScoopMe!.

Spam Wiki

Gary Robinson has started a wiki for the spam-battling community.

Group Think

Bo Johan Peter Lindberg links to an article about Group Think and Saturday Night Live.

One of the peculiar features of group dynamics is that clusters of people will come to decisions that are far more extreme than any individual member would have come to on his own.

Thursday, December 5, 2002

Proposed Features for Java 1.5

Lambda has some comments on the JSR 201 and links to an interesting wiki with comments on the Java 3.0 proposal.

Mac OS X Binary Compatibility

Technical Note TN2064 explains:

how to ensure that a Mach-O application built against the latest version of Mac OS X can run effectively on older versions of Mac OS X, and what you should do if your application contains the use of APIs that do not yet exist in the older version of Mac OS X.

(link credit to Ranchero)

Jaguar’s Font Panel

Ken Bereskin:

Many people don’t realize that you can slide the preview panel up and down. There’s a hot zone near the bottom of the preview.

Perhaps that’s because there’s no affordance. The font panel would be really cool if you could type letters to navigate MenuType-style. I can’t find a link for MenuType, but I think that’s what it was called. It was a control panel that let you type to scroll through the Font menu, and it also provided WYSIWYG previews in varying sizes.

The Elements of Typographic Style

Aaron Swartz praises Robert Bringhurst’s The Elements of Typographic Style, an excellent book that’s a lot more fun than you might think it could be. Swartz also notes that despite the book’s beauty it’s hard to actually read it because of its binding and shape (I agree). This kind of irony is all too common—despite Tog’s knowledge of computer interfaces, his Web site was a usability disaster before he got help from Jakob Nielson.

Functional Python

Daniel Sandler shows how to write objectcurry in Python:

Called with an object and the name of a method, will return a standalone function that can be called at any time (as if it were still connected to its object).

It seems that Python doesn’t have real closures, but I was able to write make-adder using the single-element array technique that’s often used with Java inner classes. I also found Peter Norvig’s Python for Lisp Programmers page, which has some great examples of when Python’s more mainstream syntax is and isn’t a win. Norvig says that “Python can be seen as either a practical (better libraries) version of Scheme, or as a cleaned-up (no $@&%) version of Perl.” Finally, the Xoltar toolkit adds functional programming support to Python.

Powers of Ten

Chris Turner (a pal from ATPM who’s probably wondering when I’m going to link to his blog) links to a cool Java-powered animation that’s in the spirit of Philip Morrison’s popular book Powers of Ten.

Wednesday, December 4, 2002

ATPM 8.12

The December issue of ATPM is out. I think we struck a nice balance this month between columns and reviews. The columns include a lengthy gift guide for Mac games and six Cortland cartoons. The reviews are AlphaSmart Dana, BBEdit 7, .Mac, icKeys, Kids GoGoGo, Mac OS X Killer Tips, and Ponere.