Archive for May 2004

Monday, May 31, 2004

Periodic Perl

Mark Lentczner created a periodic table of the Perl 6 operators:

periodic table of the Perl 6 operators

Thursday, May 27, 2004

Floating-Point Arithmetic

David Goldberg (via Malte Tancred):

Floating-point arithmetic is considered an esoteric subject by many people. This is rather surprising because floating-point is ubiquitous in computer systems. Almost every language has a floating-point datatype; computers from PCs to supercomputers have floating-point accelerators; most compilers will be called upon to compile floating-point algorithms from time to time; and virtually every operating system must respond to floating-point exceptions such as overflow. This paper presents a tutorial on those aspects of floating-point that have a direct impact on designers of computer systems. It begins with background on floating-point representation and rounding error, continues with a discussion of the IEEE floating-point standard, and concludes with numerous examples of how computer builders can better support floating-point.

Tuesday, May 25, 2004

Towel Day

Matt Deatherage:

I don’t know that you should carry your towel around your house, but you should at least always know where it is.

BSD DB to PyBlosxom

Quentin at Rogue Amoeba:

Two days later, I had finished this beast of a script. It'll take some Movable Type Berkeley DB files, pry as much data out of them as it can (posts, categories, authors, comments), and blast it all out to simple text files that you can use with PyBlosxom. And that, now, is what is running this weblog.

Scheme Macros Primer

Syntax-rules Primer for the Merely Eccentric (via Chris Double):

In learning to write Scheme macros, I have noticed that it is easy to find both trivial examples and extraordinarily complex examples, but there seem to be no intermediate ones. I have discovered a few tricks in writing macros and perhaps some people will find them helpful.

Monday, May 24, 2004

Tanenbaum: Linus Wrote Linux

Andy Tanenbaum:

Apparently a lot of people (still) think that I ‘hate’ Linus for stealing all my glory…I didn’t realize this view was so widespread. I now suspect that Brown believed this, too, and thought that I would be happy to dump all over Linus to get ‘revenge.’ By flying to Amsterdam he thought he could dig up dirt on Linus and get me to speak evil of him. He thought I would back up his crazy claim that Linus stole Linux from me.

Microsoft won’t say whether it funded Brown’s book, though it has supported his organization (via Gary Robinson). The best part of this story is the idea that Tanenbaum wrote Linux’s monolithic kernel.

Friday, May 21, 2004

Entourage 2004 and SpamSieve

SpamSieve is fully compatible with Entourage 2004, and that combination in fact works better than SpamSieve and Entourage v.X. The reason is that Entourage 2004 lets you uncheck “Do not apply other rules to messages that meet these criteria” for AppleScript rules. This means that spam messages from Exchange, Hotmail, and IMAP accounts can now be moved to the spam folder (by setting up a second rule), even though Entourage cannot move these messages via AppleScript.

Thursday, May 20, 2004


This blog now runs on WordPress. It was surprisingly easy to install, and the Movable Type importer worked well except that it didn’t fill in the post_date_gmt column. My Movable Type permalinks were of the form:

<$MTArchiveDate format="%Y/%m/%d/"$><$MTEntryTitle dirify="1" trim_to="25"$>.html

This translates to:


in WordPress. The differences are that WordPress uses hyphens instead of underscores and that it doesn’t trim the title to 25 characters. So, to keep my old permlinks working, I changed the WordPress slugs for the imported posts to the Movable Type format:

UPDATE wp_posts SET post_name = SUBSTRING(REPLACE(post_name, '-', '_'), 1, 25)

I also changed line 183 of wp-blog-header.php to make it not delete underscores from the slug in the URL:

$name = preg_replace('/[^_a-z0-9-]/', '', $name);

Finally, after some mod_rewrite fun, all the links from Movable Type should still be valid, and they should permanent-redirect to the new, cruft-free URLs.

For the record, I think Six Apart makes a good product. I’m not upset by their price increases, nor have I been itching for something under the GPL. I simply prefer WordPress.

Wednesday, May 19, 2004

libgmalloc in Xcode 1.2

Eric Albert:

Apple recently released Xcode 1.2 with the standard assortment of bug fixes and new features. One new feature is a bit hidden, though, and since I've only seen it mentioned elsewhere once, I figure it's high time I let some other folks know. It's called libgmalloc, or Guard Malloc if you're into marketing terms.

Tuesday, May 18, 2004


Adam Engst describes his fantasy word processor, and it’s pretty close to mine. Of course, I would add some pet features like conditional text (a distinct concept from an “invisible” style attribute), scriptability, good automatic image placement, beautiful equations, and powerful auto-numbering (which is what Engst’s searching example really motivates, to my mind).

In short, WriteRight must essentially clone almost every feature of Word that matters (and I haven’t even mentioned things like tables and hyperlinks) to be able to read a Word file without losing data, and more to the point, to be able to write the file back out with all data equally intact. It’s a tall order, and one that may not be feasible.

Aside from the engineering work this would entail, full Word compatibility would impose a lot of constraints on the word processor’s design. I’m not sure that it’s possible to be significantly better than Word, and yet fully compatible with it. But we can dream, right?

And now for my tall order: WriteRight should be easy to use and WYSIWYG, like a traditional Mac word processor. But it should also be possible to customize it programmatically. I don’t mean just automating its existing features via AppleScript, but rather the ability to add new features (such as trees, glosses, and parser-directed formatting), à la LaTeX.

Monday, May 17, 2004


Dave Winer announces that UserLand will open-source Frontier’s kernel.

Saturday, May 15, 2004

Entourage 2004

People who have already received their copies of the new Microsoft Office say that SpamSieve works with Entourage 2004. My copy is in the mail, and I’ll post an official compatibility notice when I test it next week. One of the new features is that Entourage can now apply additional rules after applying one that runs an AppleScript. This should make it easier to integrate SpamSieve with the rest of your rules.

Scott Haneda reports that Entourage 2004 doesn’t draw Monaco 9 properly when you don’t want anti-aliasing. This echoes other Mac OS X font problems that I’ve noted. Former Entourage developer Dan Crevier tried very hard to get this right, but was unable to due to limitations of the ATSUI text engine that are not shared by Cocoa or QuickDraw. Haneda found that ProFont looks better than Monaco in Entourage 2004 and that, as I noted, to get proper spacing you should use ProFontISOLatin1 (although that has a few problems of its own).

Wednesday, May 12, 2004

GyazMail 1.2.0

The latest version of GyazMail adds support for SpamSieve, amongst many other new features.

Monday, May 10, 2004


Dan Wood:

It would be a piece of cake for programs to continually save a snapshot of what the user is working on onto the hard disk in case, heaven forbid, something unexpected happened. So why are we still forcing users to manually save their work?

Wood’s heart is in the right place, but I don’t agree with his example of HyperCard (or FileMaker Pro, which others have cited). True, these programs don’t require you to save, but I’ve found them frustrating to use. The automatic saving can cause you to lose data if you aren’t aware of how it works. For instance, if you discover that your experimental changes broke a stack, you can’t revert to the saved version because HyperCard has already committed your unwanted changes to disk. Furthermore, although it’s good that in the event of a crash you might lose less data, it’s bad that when you re-open the file you won’t know exactly which version you’re looking at. With manual saving, changes are committed to disk at mental checkpoints: the completion of a section, the fixing of a set of errors, etc.

Automated saving should probably be handled by the OS, so that it’s standard across applications. Any such solution should support multiple versions of files (like FlashBack), as well as optional manual checkpointing.

Prebinding Address Change

Jonathan Rentzsch, on the MacOSX-dev mailing list, notes that Apple has (sort of) changed the recommended address space for embedded frameworks.

CVSTrac 1.1.3

I’ve posted a new Mac OS X build of CVSTrac. The changes since 1.1.2a include:

Monday, May 3, 2004


Trac is an issue tracker, somewhat similar to CVSTrac, that I’ll probably use if I ever switch to Subversion (via Nicholas Riley).

ATPM 10.05

The May issue of ATPM is out.