Archive for April 2003

Tuesday, April 29, 2003

More Apple Music

JXXX Compiler Service

This Web page lets you compile Java code when you don’t have the JDK installed (via Lambda).

Are Programmers People?

Ken Arnold:

If we accept that programmers are humans, one primary and interesting consequence is that human factors issues can be properly applied towards the tools they use.…I am speaking about the more basic tools programmers use every minute they do their work: programming languages and APIs.
Consider garbage collection. One can argue up and down about the overhead, etc., but consider this: Two of the best selling C++ books are Scott Meyer’s Effective C++ and More Effective C++. The single largest category of the 85 tips—about one quarter of them—is dealing with potential memory leaks.…This is fundamentally a human factors problem: You can tell people how to avoid the whirling knives of the abattoir, or you can close the abattoir door.

(via Ned Batchelder)


Tony Arnold has updated iTableView.


Dennis G. Jerz:

On the web, a blurb is a line or short paragraph (20–50 words) that evaluates (or at least summarizes) what the reader will find at the other end of a link. A good blurb should inform, not tease. Usability testing will help you determine the best way to lay out your blurbs, but this document will help you write the content.

Better Distribution of Mac OS X Software

Dan Frakes has written an article that every Mac developer should read. My favorite piece of advice: put the full name of the product and the version number in the name of the disk image.

Quote of the Day

Classes are what make objects possible, and without objects, object-oriented programming would not make sense.Special Edition Using Java, quoted by Douglas Dunn on the now-defunct

Monday, April 28, 2003

Apple Music

I really want to hear the details of the DRM. How is the iPod special wrt authorization? What happens if I burn a CD and then rip it?

I’m not sure yet how much I’ll use this service. Unlike Jobs, I like albums, and the prices seem geared towards singles. Right now, I see it as mostly useful for previewing and accessing previously unreleased material. I didn’t see the original version of “Slow Motion,” though.

Quote of the Day

There’s a flow to a good album. The songs support each other. That’s the way I like to make music.Trent Reznor

Sunday, April 27, 2003

Characters vs. Bytes

Tim Bray has written an introduction to Unicode. From my quick skimming, his writing seems exceptionally clear.

How to Make a Fast Curry

Lambda: “Our conclusion is simple, and contradicts our initial intuition: compiled implementations should use eval/apply.”


Two links I want to remember are Google Zeitgeist and where to find those tiny badges.

Unix-Haters Handbook

Rooneg notes that the The Unix-Haters Handbook (circa 1994) is now available online, hosted by Microsoft. It has a forward by Donald Norman and an anti-forward by Dennis Ritchie.

That Honda Ad

Here’s some discussion of the Rube Goldberg Honda Ad. I’d just assumed it was CGI…but Eric says it’s not.

Quote of the Day

A skeptic checks all the drawers. —Dilbert


Here’s a transcript of Kapor and Hertzfeld’s talk at O’Reilly. Chandler is written in Python, which Hertzfeld says is three times faster to program in than Java, which is three times faster than C. Chandler uses wxWindows for its platform-agnostic interface framework. The Mac version uses native widgets, but the program as a whole doesn’t feel at all native to me. I do like the way you can click on an address component (such as a phone number) to edit it. There’s no annoying editing mode, like in Apple’s Address Book. Hertzfeld apparently likes browsers: every view in Chandler has a URL, and one of the “key concepts is that you can have multiple Views onto each data set.” Kapor says: “We’re not successful if we make commercial development impossible.”

Alan Kay at O’Reilly

Here are some notes with comments from Kay and L. Peter Deutsch.

Friday, April 25, 2003

File-swapping Tools Are Legal

Eric Blair links to this story. I didn’t expect this, and it’s great news.

Nisus Writer Express

Nisus has released a beta version of their Cocoa rewrite of Nisus Writer. As much as I’m glad that Nisus Writer is still under development, I can’t get that excited about the product because it hasn’t yet caught up to Nisus Writer 4. As with OmniGraffle, the interface is palette-heavy, although the palettes are in a drawer. When did the menu bar go out of fashion? Palettes should be for frequently used settings where I need direct feedback. I don’t need a palette for setting the number of columns in the document; I’ll do that once!


Just as I was pining for the menu bar, Stone Design released FontSight, which brings back the Font menu. It doesn’t work in Carbon applications, but most Carbon applications have Font menus, anyway. Hopefully it will evolve into a MenuFontsX. MenuFonts showed previews of fonts in different sizes, and you could type the first few letters of a font’s name to jump to it in the menu.

MORE to Keynote

Nicholas Riley:

EquationService, if you haven’t seen it, is a handy free application which produces PDF images with PDFLATEX or CONTEXT that can be dragged and dropped into Keynote or almost any other Mac OS X application. The main advantage over using TeXshop or similar is that you can typeset a single equation to get a small PDF image containing only that equation, rather than an entire page. The interface sucks, however, and I sent the author some changes which I hope he incorporates.

Watson 1.7

Dan Wood:

I hope people like the new SiteSearch tool. When people talk to me about Sherlock 3, what is undershadowed by The Controversy is the fact that there were hundreds of plugins out there for searching sites, which people liked, that don’t work in Jaguar! A lot of Sherlock’s original purpose of “meta-searching” is no longer pertinent, thanks to Google, but the ability to search a targeted site conveniently was abandoned when Apple changed gears. Yet those plugins are still available out there in Web-land, and many of them actually still work…not in Sherlock 3, though…just in Watson, and, I think, Interarchy.

Smarten Up

Eric Blair writes about the <q> tag in Safari.


John Gruber analyzes the Dan Gillmor article that’s been getting entirely too much coverage. I’m sick of Carbon vs. Cocoa and which group contributed what to melange that is Mac OS X. Gruber’s best point is that much of the great Mac software has historically been written by small developers. The only (non-Apple) applications from big companies in my Dock right now are Internet Explorer and Photoshop Elements. In a few minutes I’ll be starting up FrameMaker. I doubt this ratio has changed much for me over the years.

Quote of the Day

Premature optimization is the root of all evil (or at least most of it) in programming. —Donald Knuth

Thursday, April 24, 2003

DropDMG 2.1

DropDMG Icon This morning I released DropDMG 2.1. It adds BBEdit-inspired recent and favorite folders, support for Internet-enabled images, compatibility with Apple’s JDK 1.4.1, and lots of other refinements. I’m especially proud of the new sheet-based interface for overriding the preferences.

OmniGraffle 3

Erik Barzeski has some good criticism of OmniGraffle 3 and its icons. The new palettes look cool, and I was never really a fan of the old Interface Builder–style ones. But I think I want something more context-sensitive.


Dan Sugalski write about how Parrot got started and inter-langauge interoperability.


Slava Karpenko:

It is understandable that carrying an advanced featureset and lots of media manipulations can’t be all that speedy, but we’re talking about the interface responsiveness here. I am, trying to assemble my first home-made movie in iMovie, using a semi-modern Mac (dual-Ghz), don’t like clicking into a movie fragment and waiting for half a second for the system to understand I clicked in and update the UI. I don’t like browsing through the iPhoto library with an ocassional coffee breaks every time i click on an up arrow because my library contains about 600 photos.

Public TV

Phil Greenspun:

The video also made one wonder for whom public television programs are made. Despite having two hours the show did not attempt to explain even the simplest physics or engineering behind radio or any of the inventions that were the subject of the disputes chronicled. The biographical and historical information was narrated so slowly that it could have been sped up 3X without approaching the speed of dialog on the Simpsons, which most people seem to have no trouble following.


Buzz Andersen:

All gripes aside, however, Eclipse on OS X is the same great development environment that I’ve come to love on Windows, and that alone is cause for celebration. I would kill to have Eclipse’s sophisticated code completion features in Project Builder (since I’ve been using Eclipse at work, my once frequent visits to the Java API docs have all but ceased).

I don’t think that would be enough to get me to write code in Project Builder, but if Apple implemented more of Eclipse’s feature I might consider switching. Although the situation is much better than on OS 9, it still seems like the Mac is behind in developer tools. Using a minority language like Objective-C doesn’t help, of course.

Apple Store

Erik Barzeski doesn’t like the Apple Store’s new look, and I’ve got to agree. It’s too cluttered. By the way, did you know that Apple still sells HyperCard? I recently bought a FireWire hard drive from Dell. Their store is worse, of course—especially the search feature. But I paid $60 + shipping less than if I had bought at a Mac store. (The price has since gone up to the Mac-store level.)

Quote of the Day

A witty saying proves nothing. —Voltaire

Friday, April 18, 2003


Steven Frank:

Are web-based forums (especially phpBB and friends) really hard to use, or am I just not understanding something fundamental?

I thought I was the only one!

Law Follows Patents

Scientific American:

Georgetown University law professor John R. Thomas sees the case as a demonstration of how the patent system is being commandeered by private individuals who then go on to make their own laws, free from the traditional safeguards that prevent the government from abusing its power. This trend emerges from the willingness of the U.S. patent office to approve what Thomas calls “postindustrial” patents that cover everything from methods of doing business to human behaviors.

Springer on the Celtics

Shira Springer’s article in the Globe today is a horrid piece of puff journalism. The Celtics have many offensive players, but their offense is awful. Rather than getting “the most” out of the Celtics, Jim O’Brien has them playing well below their talent level. Many of the players whose “expertise” he solicits have never played under a real NBA coach. O’Brien would probably be an OK coach for a veteran team, but these Celtics need a different sort of coach—someone like Larry Brown.

Quote of the Day

We’re going to turn this team around 360 degrees. —Jason Kidd, upon being drafted by the Dallas Mavericks

Wednesday, April 16, 2003

I Don’t Get It

How is a right-handed person supposed to use the keyboard to switch tabs in Safari? Using multiple windows and Command-` seems so much easier.

PlayStation FireWire

Bill Bumgarner:

While the elimination of the FireWire port from the PS2 does not necessarily mean the end of such a vision, it is certainly likely.

Markup Taxonomy

Tim Bray: “Semantics don’t come from schemas.”

Quote of the Day

The type of this expression, Integer, is not numeric.jikes

Monday, April 14, 2003

Karelia Cocoa

Dan Wood has started a blog containing random bits of Cocoa code. What’s nice is that they seem to be self-contained, so you don’t have to bring in a whole framework to take advantage of them. Also, each file has a URL, so the code will be indexed by Google and hopefully also spur some discussion. In that spirit:

Truncate_a_string_t.m: It appears that this method isn’t Unicode-savvy. It should probably use rangeOfComposedCharacterSequenceAtIndex:.

NSWorkspace__Return.m: The answer to the question in the comment is -[NSFileManager stringWithFileSystemRepresentation:length:].

NSSet__Show_the_con.m: I commented on another blog that I sometimes miss Java’s Iterator.hasNext() when programming in Cocoa. This is a good example of where it would be useful.

Safari 1.0 Beta 2

The change in Safari that I’m excited about is not the metal tabs but the font rendering. Previous versions of Safari always anti-aliased fonts and didn’t use screen fonts. The new version of Safari obeys the system anti-aliasing threshold, which I override for Safari like so:

defaults write AppleAntiAliasingThreshold 12

It also uses the real screen version of Geneva—sometimes.

I previously showed examples of how Safari and iCab render one of Apple’s Web pages.

Below is Safari with the above anti-aliasing setting and the fonts set to Geneva 10 and Monaco 10.


Here’s what it looks like in iCab. The Safari text is now just as sharp as in iCab, and it seems to be using the proper letter shapes and spacing. Safari’s underlining still obscures the descenders, and it does poorly with the bold and italic text.


In all fairness, iCab’s italic Geneva 10 doesn’t look great either. For true bitmap nirvana, you have to reduce the font size to take advantage of the hand-tuned Geneva 9 bitmap.


Unfortunately, reducing the font size in Safari results in even worse bold and italic text.


By the way, Safari also renders the q tag now. See?

Quote of the Day

Letters are things, not pictures of things.Eric Gill

Saturday, April 12, 2003

Data Structures

Keith Devens:

I came across a neat list of data structures and algorithms resources today, so I’m keeping a list.


Serious software development requires keeping track of “issues”: bugs, feature requests, unresolved support incidents, code snippets, prototyping results, URLs, etc. A few months ago, I dumped my home-made FileMaker database for CVSTrac, and I couldn’t be happier. The developer has shown enormous restraint in keeping it simple, and the result is one of the most elegant pieces of open source software that I’ve seen. (Apparently, the code is elegant too.) If you’re on a huge project, you might want something heavier, but CVSTrac is more than enough for most smaller teams, I think. You can try it out on CVSTrac’s own server. I’ve posted a Mac OS X build. Hopefully I’ll have time to write a full review soon.

It’s All Thanks to Science

Matt Ridley:

Far from imprisoning us in fate, self knowledge about the causes of our behaviour will liberate people to make choices: as the philosopher Daniel Dennett argues, more knowledge brings more free will.

“Organic farming is sustainable,” says Indian biotechnologist CS Prakash. “It sustains poverty and malnutrition.”

If you asked intellectuals at almost any time since Malthus to talk about the future, they would have been pessimistic and they would have been wrong.

(via Jerry Kindall)

The Daily Show

Somehow I only just discovered that The Daily Show has highlights from recent shows online. Stephen Colbert says: “What we need to do is develop bombs that can kill ideas.”

Quote of the Day

Whoever thinks a faultless piece to see, Thinks what ne’er was, nor is, nor e’er shall be. —Alexander Pope

Wednesday, April 9, 2003

Movable Type Templates

Mark Pilgrim:

These are the Movable Type templates that generate the bulk of this weblog. They are licensed under a Creative Commons license .

Menu Master 1.0

The latest haxie from Unsanity brings NowMenus-like editing of keyboard shortcuts. Cool. But, actually, most of the heavy applications I use already have configurable shortcuts.


Miklós Fazekas’s MachOView lets you view the symbols in a framework without using the command-line. The source is available, and it’s written in Perl using CamelBones.

Quote of the Day

There are 1011 stars in the galaxy. That used to be a huge number. But it’s only a hundred billion. It’s less than the national deficit! We used to call them astronomical numbers. Now we should call them economical numbers. —Richard P. Feynman

Monday, April 7, 2003

Internationalizing Cocoa Applications

Stepwise has published an internationalization article by Malcolm Crawford and Bill Cheeseman. New to me were the magic command-line switches -AppleLanguages (for launching an application using a different language) and -NSShowNonLocalizedStrings (for logging to the console when a localized string can’t be found). It’s a good article, but I’d rather read about the non-technical aspects of localization.

Quark Translation

John Gruber translates Quark’s PR to English.

New Programming Book

Peter Van Roy and Seif Haridi:

This textbook brings the computer science student a comprehensive and up-to-date presentation of all major programming concepts, techniques, and paradigms. It is designed for second-year to graduate courses in computer programming.…As far as we know, there is no other book with this breadth of coverage that is both practical and theoretically well-founded.

Drafts of the book are available online. The examples are in Mozart, reflecting an emphasis on concurrent programming.

JDK 1.4.1

Chris Adamson:

What’s happening is that Java 1.4.1, now the default when you type java on the command line, does not support certain Java-to-Carbon technologies that QuickTime for Java depends on.

This change also breaks DropDMG 2.0’s MacBinary encoder. JDK 1.3.1 is still installed and available in /System/Library/Frameworks/JavaVM.framework/Versions/1.3.1/, however I made the mistake of hard-coding /usr/bin/java into DropDMG. (In the future I will indirect such paths through the defaults database.)

The next version of DropDMG will use a new MacBinary encoder that works with JDK 1.4.1. For now, if you want to make MacBinary-encoded images with DropDMG, you can not update to JDK 1.4.1 or symlink /usr/bin/java to /System/Library/Frameworks/JavaVM.framework/Versions/1.3.1/Commands/java.

sudo mv /usr/bin/java /usr/bin/java141
sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/1.3.1/Commands/java /usr/bin/java

CocoaTech Frameworks

Steve Gehrman:

The Cocoa frameworks used to create Path Finder, and source code used to write Path Finder plugins are now open source and ready for immediate download.

Included in the source code package are two powerful frameworks: CocoaTechBase and CocoaTechFoundation. These two frameworks make up the heart and soul of Path Finder.

Also included are 4 real world Path Finder plugins. These aren’t simplified versions, these are the actual full plugins that ship with Path Finder. “Hex View”, “Image Converter”, “Get Info”, and a sample plugin designed to be a perfect starting point to write your own Path Finder plugin.

The license is BSD-style. With loads of categories in the same namespace and dependencies on the Omni frameworks, I doubt many developers will want to use these frameworks as-is, but there’s probably a lot to learn from them. Path Finder is a multi-threaded app, and it handles both Unix and Mac aspects of files.

Sometimes it’s easy to what’s going on, as in NTWeblocFile.m where Gehrman explains his reverse engineering of the Finder’s “webloc” files. In other cases, the code is clear but the rationale is not, as in NSNumber-NTExtensions.m where there is a category for wrapping NSSizes when NSValue seemingly already does that.

I’m not a fan of CocoaTech’s new Geeklog-based site. The old version was much simpler. However, Gerhman includes a link to, a site that has the major CMSs installed so that you can try them out.

The Politics of Participation

Chuq Von Rospach:

I think the difference here is that CPAN is promoting use of the software, and the bottomline purpose of FSF is to promote the policies under which FSF develops software, not really the software itself.

The Girl Who Cried Webmaster

Joey deVilla:

At least a couple of readers of this blog guessed that something was wrong when the “Ten Cool Things About the New Girl” blog entry from last week got yanked. They were right, but they probably had no idea how wrong things went. I’m going to tell the story—with names changed and a few non-essential details omitted. I’m trying to balance telling my story with protecting people’s privacy. Hopefully, I’ve succeeded.

(via Boing Boing)

Code Generation

Dave Thomas:

When the time came to run the acceptance tests, we brought the client in, showed them this language, and explained how it was used to produce the document. We then showed them some new magic: we fed the same document through a different code generator and it produced a whole lot of C code, one function per test. They verified that this C did indeed represent the contents of the document, then we compiled and ran it. The entire Telex switch acceptance tests were run from this domain language (and, amazingly, it passed).

Most Coveted Covers


So many talented book designers get so little recognition. To do our small part to rectify that, DG Strong and Karen Templer—joined by Mignon Khargie as of 09/25/02—will be singing the praises of some stand-out covers and the designers who designed them, more or less weekly.

(via Jerry Kindall)

Quote of the Day

In science one tries to tell people, in such a way as to be understood by everyone, something that no one ever knew before. But in poetry, it’s the exact opposite. —Paul Dirac

Friday, April 4, 2003


Peter Lindberg:

Dale Emery wrote to recommend Joseph M. Williams’s Style: Ten Lessons in Clarity and Grace, calling it a Refactoring for writers. That definitely sounds interesting!

Both books are good, and the comparison is apt. I actually prefer Williams’s other Style book to the one above. It has basically the same material without the classroom angle. Style is the most useful book I’ve found about writing. Strunk and White motivate: “make every word tell” and “omit needless words.” Williams helps you refactor your writing to actually do that. (Of course, it’s a never-ending struggle.) When I was studying psycholinguistics a few years ago, I read a bunch of papers that (unknowingly) verified some of Williams’s claims. Perhaps prescriptivists and descripivists aren’t so far apart after all.

Michael Kelly Killed in Iraq

Washington Post:

Michael Kelly, the Atlantic Monthly editor-at-large and Washington Post columnist who abandoned the safety of editorial offices to cover the war in Iraq, has been killed in a Humvee accident while traveling with the Army’s 3rd Infantry Division.

I thank him for creating the new Atlantic Monthly, one of my favorite publications.

Quote of the Day

The best writing is rewriting. —E. B. White

Wednesday, April 2, 2003

About the Finder

John Siracusa:

Since the dawn of Mac OS X, I've been waiting for one of two things to happen to the Finder: either a radical revamp according to a bold new vision of what the Finder could be, or a return to the core values that defined the classic Mac OS Finder and made it so well respected and loved. Neither has happened so far, and so in this article I've proposed a way to do both.

The OS X Finder, though it has improved a lot since 10.0, still has me cursing it almost every time I use it. For the past month, I’ve tried using Columns view instead of the spacial views that I prefer, hoping that maybe that side of the Finder would be more polished. In some ways it is, but I still think Siracusa is right. The current Finder is neither here nor there. It is a half-baked spatial Finder and a half-baked browser Finder melded together in a confusing way.

Siracusa pushes a bit too hard on the idea that the spatial Finder is a better match for human brains. It may be true, and I think it probably is, but his argument is not a proof. Either way, I worry that browser Finder advocates will put down the article before they get to his interesting ideas in the second half.

Spiffy new features and a religious war over the spacial and browser paradigms are putting the cart before the horse. At this point, all I want is a polished Finder. Just something basic that lets me manage my files without frustration will be enough. By basic, I mean windows that auto-refresh and remember their settings, being able to move large numbers of files quickly, and other things that we used to take for granted. For the rest, I can wait for 10.5 or 11.0.

The OS X Finder still feels like a beta. Apple’s been eager to build countless iApps and compete with third-party developers, yet it is unwilling to finish its most important application. Everyone uses the Finder, and it’s not replaceable. Apple should make it first-rate.

Quote of the Day

How do you like my American accent? —Steven Hawking

Tuesday, April 1, 2003

ATPM 9.04

The April issue of ATPM is out.


Hydra is a basic text editor with syntax coloring for popular languages and Rendezvous-based collaboration features for pair programming.

April Fools

Quote of the Day

Some people, when confronted with a problem, think I know, I’ll use regular expressions. Now they have two problems. —Jamie Zawinski, in comp.lang.emacs