Archive for January 2003

Thursday, January 30, 2003

The Baker Deal

Does Steve Bulpett actually believe this?

Wednesday, January 29, 2003

Minimalist Languages are Not Stupid


A prefect example of how this may be done is the E Language.  It builds itself from a small foundation, a microkernel so to speak, they call it Kernel-E. All constructs of the E Language are based on macro expansion of Kernel-E. Its easier to verify the semantics of the smaller language, at the same time give you the ultimate flexibility of building new constructs. This in my opinion is a pretty solid way of building a language. (BTW, it's written in Java)


Slava Karpenko:

I promised to give some pointers for programmers on how to enhance your software so it is less vulnerable to cracker’s attacks, who are trying to crack or make a serial for it.

Tuesday, January 28, 2003


Adam Zaner informed me that Glenn McDonald has switched. In his inspiring essay, McDonald gets at the essence of the Macintosh experience: that computing can be joyful.

Not only did I buy a PowerBook, but I got a big second monitor for it, and a wireless-networking base-station, and an iPod, and a small arsenal of gadgets whose purpose is not obvious from looking at them. And then I bought my sister an iMac, too, and we’ll see what it takes to convince my parents. What began as a relatively harmless idea about checking email and watching DVDs in a hotel room has become an upheaval in my belief system, and turned me into a zealot about one more topic. I have Switched. If computers have not been the central mechanical forces in your entire daily adult life, like they have been in mine, maybe you think I just sound geeky when I say this, but I’m telling you there is a real revolution underway.


The bouncing icons (and the puffs of smoke and the pipe-organ speech synthesizer and the way dialogs tidily resize and the drop-shadows on the windows and the jellybean buttons and the eject key on the keyboard) are not individually rationalizable on utilitarian grounds, and they do not pretend they mean to be. They are there to, in aggregate, change the nature of your relationship with the device. They are joyful, and they hope their joy is infectious. The more you use a Mac, and the more of its secrets you learn (and the bizarre truth is that although simple tasks are designed to be much simpler on the Mac than on a PC, the Mac is also much more deeply and pervasively capable of being tweaked and customized and automated and shortcutted), the more you will like it. This is exactly, radically, totally the opposite of what happens in Windows, where every damn thing you learn after the first ten minutes will make you hate it more and more violently.


To use the Mac is to be confronted, over and over, with the idea that the most mundane task can be done artfully and compassionately, beautifully and invitingly.

Opera and Safari

Chuq Von Rospach and Eric Albert are Apple guys, so they’re not impartial, but their thoughts on the Opera article are dead-on. To me, what’s important about the article is that it’s a reminder of how much most tech journalism sucks, even when it’s factual. I’d much rather read an informed opinion (which I might not agree with) than an “objective” news story that takes sides by omitting half the story.

Update (2013-02-16): The blogs are down, but Eric Albert and Chuq Von Rospach’s posts are available from the Internet Archive.

Monday, January 27, 2003

Can Your Cell Phone Impair Your Vision?

New research from the University of Utah has revealed a potentially lethal “tunnel vision” that drivers get while talking on a cell phone.


Lee Bennett’s site is now a blog.

Sunday, January 26, 2003

Jason Orendorff (via Mark Pilgrim):

This module provides a single class that wraps the functionality in the os.path module. You wouldn’t think that would be so helpful, but in practice I find it much more pleasant to write and to read.

A Modest Proposal

No one seems that surprised that the MS SQL Worm could exist, and it’s popular to blame Microsoft and the server administrators who use SQL Server. If Microsoft would stop writing buggy software… If the admins had installed the update… If Microsoft had made the update easier to install… Well, I’m inclined to cut Microsoft some slack here. They didn’t screw up on purpose, and they’re not incompetent. Open source software isn’t free of security flaws, either.

It seems that no matter how carefully software is designed and reviewed, people will always be able to find security holes. That is why critical software like this should not be coded in unsafe languages such as C. I’ve read that more than half of all security holes are caused by buffer overflow bugs. Buffer overflows are not possible in a safe language. The solution is not to expect programmers to write bug-free code. We’ve already seen that this is practically impossible for humans to do, unless time and cost are not factors. Instead, we should give these programmers better tools that prevent these classes of errors.

Murphy’s Law Gone Wild


This is not the first time that a hard drive failure has led to a series of other problems that wound up wasting days and days of work. Notice that I had a very respectable backup strategy, everything was backed up daily, offsite. In fact I believe this is the third time that a hard drive failure has led to a series of mishaps that wasted days. Conclusion: backups aren’t good enough. I want RAID mirroring from now on.

Friday, January 24, 2003

Tolkien’s Lawyers Harass Small Publisher

Aaron Swartz:

Mike Perry emailed me this fascinating story (350K PDF) of Tolkien’s lawyers harassing him for publishing a reference book on Lord of the Rings that lists important events in the trilogy by date.

Tuesday, January 21, 2003

SICP Videos

Brian Jepson notes that MIT and Berkeley have made lecture videos of Structure and Interpretation of Computer Programs (1986) and Introduction to Symbolic Programming available. The SICP videos go with the first edition of the book. The complete text of the second edition is available online. It’s amazing how much information is packed into this one little book.


Evan Jones has posted RowResizableTableView, an LGPL package with subclasses for NSTableView and NSOutlineView that support variable-height rows. There is a performance hit for this coolness because the subclasses have to do more than simple multiplication to figure out which rows need to be drawn.

Monday, January 20, 2003

OS X Keyboard Consistency

John Lam:

OS X applications lack consistency in the way they handle the keyboard. It seems like every application has a different set of keystrokes for extremely common operations. By common operations, I mean things that devs do every day: next word, previous word, beginning of line, end of line, top of document, bottom of document.

There’s been some discussion of this on the Carbon-Dev list, recently. In my opinion, all applications should support the BBEdit bindings for navigating and selecting text, and also Emacs bindings like Control-A and Control-E that are easy to type with one hand.

Sunday, January 19, 2003

ClarisWorks History

Bob Hearn, co-author of ClarisWorks (and the excellent AppleWorks GS), has written a brief history of the program. Although I preferred BeagleWorks to ClarisWorks 1.0, ClarisWorks 4 is one of my all-time favorite applications.

In its effort to produce slick, bug-free software, Claris was neglecting the hard reality that sheer number of features sells, independent of elegance of design. Some products, such as MacWrite Pro, were delayed so long by stringent quality assurance requirements that they lost their effectiveness in the market.

Update (2020-08-17): See also: Hacker News.

Update (2022-07-22): See this updated link (via Thomas Brand).


I’ve been looking for a new search engine for ATPM, and right now the leading candidate is SWISH-E. Here are some of the reasons I like it:

There are many free search engines, but ones that have this combination of features are rare (judging from my quick search). Installation took a while, as I had to first install libxml2 and Xpdf, and then wrestle with why SWISH-E couldn’t find pdftotext or pdfinfo even though they were in the path. Once installed, it seems to work well. By tomorrow it should be done indexing, and then I can try some real tests.

Apple’s “Free” Software

Steven Frank:

My position isn’t really “boo hoo, Apple should play nice”—like everyone else, we’ll do whatever we need to as a company to stay alive. It’s just that a whole lot of cool stuff from a lot of cool companies is probably getting stifled. For better or worse, that’s the hidden cost of free, bundled apps. As Ihnatko says, without competition, “how can we be sure that we’re getting the best software possible?” In all likelihood, you’re not.

Friday, January 17, 2003

Keynote Chartjunk

Matthew Thomas offers a critique of Apple’s Keynote marketing, in the spirit of Edward Tufte. Also, see this transcription by Aaron Swarz and Peter Norvig’s classic Gettysburg PowerPoint Presentation.

Apple’s X11

John Gruber writes that “X11 is only of interest to Unix nerds. It has no relevance whatsoever to regular Mac users”:

[Mac OS X] not only runs Macintosh software, but it runs Unix software as well. But that X11 applications consist of standard GUI elements such as windows, menus, and buttons does not change the fact that they are Unix programs: tricky to install and remove, poorly designed, and utterly lacking in Mac-ness. That X11 is a graphical environment doesn’t mean it’s any more interesting to most Mac users than the text-based programs accessible via Terminal.

I totally agree that X11 applications aren’t real Mac applications, and that’s exactly why Apple’s X11 server is relevant. Not only does it make it easier to bring X11 apps to the Mac without rewriting them in Carbon or Cocoa, but the fact that it’s an Apple product means that Apple is implicitly saying that this is an OK thing to do.

Consider the case of MATLAB. It used to be a real Macintosh application, not unlike Gruber’s example of MacPerl. It could copy and paste graphs in EPS, which I thought was cool. The MathWorks stopped developing MATLAB for the Mac, but now they’ve brought it to Mac OS X. The only problem is that MATLAB 6.5 is an X11 port, and thus is probably less Mac-like than MATLAB running in Virtual PC. (This is speculation: I’ve used the old Mac version of MATLAB, as well as X11 versions on Linux and Solaris; I’ve not used 6.5 on Mac OS X.)

I worry that Apple’s X11 server will encourage more ports of this type, and that regular Mac users will be forced to use them. Of course, maybe these companies would never consider doing real Mac ports, in which case an Apple X11 server is preferable to Fink or paying Tenon a lot of money.

Sunday, January 12, 2003

Google Replies to SearchKing Lawsuit

Dave Winer links to an interesting LawMeme article:

The PageRank values assigned by Google are not susceptible to being proved true or false by objective evidence. How could SearchKing ever “prove” that its ranking should “truly” be a 4 or a 6 or a 8? Certainly, Search King is not suggesting that each one of the billions of web pages ranked by Google are subject to another “truer” evaluation? If it believes so, it is certainly free to develop its own search services using the criteria it deems most appropriate.


That said, the policy questions that SearchKing is raising are critically important. Google has bceome hugely important to the Internet, and many are starting to ask whether the public interest demands special treatment. Perhaps a search engine is important enough to be treated as a regulated utility, the same way that water, gas, and the cables over which search requests travel are. Google is good, most netizens seem to think, but what if it weren’t? What if it became an arbitrary dictator, raising up and throwing down web sites at will. That’s what SearchKing thinks Google has become already, or at least that’s one major question raised by this suit.

Lisp 1.5 Manual

A post in comp.lang.dylan mentions that the Lisp 1.5 Programmer’s Manual (circa 1962) is available online.

Apple Shuns SVG

xmlhack has some discussion of Appple’s decision not to use SVG in Keynote’s file format.

Friday, January 10, 2003

Cringely on Macworld Expo

Robert X. Cringely gets a lot right. He knows his history and questions Apple’s recent desire not to rely on outside software developers. (Reducing dependence on Microsoft and encroaching on third-party Mac developers are quite different things. The former is good; the latter could be disastrous.) However, I think he’s absolutely wrong that Internet Explorer and PowerPoint are harder for Apple to replace than Word and Excel. I’m not even convinced that Keynote will interoperate well with PowerPoint.

Thursday, January 9, 2003

Cortland on Macworld

Matt Johnson has created two new Cortland cartoons based on the Macworld Expo keynote.

More Safari

Yesterday’s keynote had lots of good announcements, but Safari is still the one I find the most exciting. It renders fast and renders well. The user interface, though still beta, is easily the best of Apple’s recent applications. It takes a lot of thought to figure out what to take away to make it simpler, and Apple has done that. Yet Safari still has almost all the important stuff. It does bookmarks and the history right. Sure, these are standard, boring features, but Safari is way ahead of Chimera and OmniWeb here. Same with the Status Bar and dragging links around; in fact, with these two I think it’s broken new ground. Plus, it’s got pop-up blocking, and the SnapBack feature is actually useful.

Like iCab, Safari’s Find feature isn’t forgetful, and amazingly the Find Previous command’s shortcut is the Mac-standard Command-Shift-G, rather than the Command-D that many Cocoa applications use. A list of Safari keyboard shortcuts is available in an HTML file inside the application package. (You must have Safari installed in the top-level Applications folder for the link to work.)

Apple did a wonderful job of keeping Safari’s preferences lean. Almost everything important is there, although there are a few other preferences I wanted to be able to set. Fortunately, Safari has preferences beyond those exposed in its user interface. Using F-Script Anywhere:

> (NSUserDefaults standardUserDefaults) dictionaryRepresentation

I was able to get a list of Safari’s preferences. The interesting ones I found were:

WebKitHistoryAgeInDaysLimit = 7;
WebKitHistoryItemLimit = 1000;
WebKitMinimumFontSize = 9; 
WebKitCursiveFont = "Apple Chancery"; 
WebKitFantasyFont = Papyrus;
WebKitSansSerifFont = "Lucida Grande"; 
WebKitSerifFont = "Times New Roman";

To set one of these preferences, you can use Terminal and the defaults command. For instance, to raise the minimum font size:

defaults write WebKitMinimumFontSize 12

Overall, I’m very happy with Safari. It’s remarkably solid and polished for a beta. Of course, there are some things I wish it did better, and which I will be suggesting to Apple:

For now, I’m trying Safari as my default browser. It is the only browser to tempt me away from iCab since I switched from IE. Of course, I’ll probably still need to keep IE and Netscape around for the few odd pages that only work in one of those browsers.

See also:

Wednesday, January 8, 2003

EyeTV 1.1

I haven’t had a chance to try it yet, but the EyeTV 1.1 update promises to add the three main features that I wanted: editing of recordings, VCD playback, and QuickTime playback with the EyeTV timing controls. It’s too bad I’ve already wasted a lot of time cobbling together ways to do the first two, but at least I no longer have to write an app to do the third. By the way, El Gato has outstanding customer service.

Tuesday, January 7, 2003

Whoa, Bare Bones has redesigned their Web site. It looks more corporate and uses lots of JavaScript. They also have a not-at-show special where BBEdit is available for $149, but this isn’t really news because you can cross-upgrade from BBEdit Lite for $119.

Meddling with Safari

  1. Control-click on Safari and choose Show Package Contents.
  2. Open the Contents folder.
  3. Open the Resources folder.
  4. Open the English.lproj folder.
  5. Open Browser.nib (requires Interface Builder).
  6. Make sure that the Window icon is selected in the Browser.nib window.
  7. In the Info palette (available in the Tools menu, if it doesn’t open automatically), choose Attributes from the pop-up menu.
  8. Uncheck Textured Window at the bottom of the palette.
  9. Repeat these steps for Downloads.nib.
  10. Save the changes you made.

The edges of the buttons look a little odd, since they were designed for the brushed metal background, but overall Safari looks much better. Plus, it now conforms to Apple’s own guidelines for the use of textured windows.

Safari in Aqua

Monday, January 6, 2003

`(hello ,user)

Manageability reports that Brad Cox has written a preprocessor that adds quasi-literals to Java. Wow. It’s amazing how many cool things people are doing with Java (besides the recent post, AspectJ and JSE also spring to mind).


Lambda links to a cool-looking project from Andrew Myers:

The JMatch language extends Java with support for abstract iterable pattern matching: a mechanism for pattern matching that is compatible with the data abstraction features of Java and also makes iteration abstractions convenient to use and to implement. JMatch provides abstract pattern matching; patterns are not tied to algebraic data constructors as in ML. A single JMatch method may be used in several modes that may share a common implementation as a boolean formula. JMatch provides modal abstraction that simplifies the specification and implementation of abstract data types. JMatch also makes the specification, implementation, and use of iteration abstractions convenient, by automatically finding multiple solutions to a formula or pattern.

Myers’s earlier project, PolyJ, was a good idea implemented in a way (guavac extension) that made it a pain to maintain and use. My hope is that JMatch, being based on Polyglot, won’t have these problems.

Blacklists Are Bad

Here’s why:

Summary: Alternatives to Realtime Blackhole Lists (RBLs) should be actively deployed because of serious well-known problems with the RBL spam filtering technique.

Pure Content?

Mark Pilgrim sums up my thoughts on the utility of pure content:

I wrote Dive Into Python in DocBook XML, and I maintain a set of XSLT scripts to convert the raw XML into HTML, PDF, Word, HTMLHelp, and plain text. Actually, my scripts are just customizations of larger, more complex scripts maintained by Norman Walsh. Overall, I’ve spent more time maintaining those scripts that I have writing the book. But my content is pure! Was it worth it? No, not really. Mostly I ended up using HTML as an intermediate format anyway, so a semantic HTML source document and a few well-placed regular expressions would have served my purposes just as well. In fact, this is what I did to produce the PDF version of Dive Into Accessibility.

Ironically, I was just looking at his Dive Into Python as an example of a successful use of single-sourcing from DocBook and concluded that it was a lot of extra work for few real advantages over LaTeX. I’m still looking for a good format for single-sourcing. Both LaTeX and FrameMaker have worked well for me, but to get good results I have to use a restricted feature set and write scripts to post-process the output.

How to Write Like a Wanker

Mark Pilgrim links to this amusing article:

Just as every house needs a foundation, every brilliantly immature net text is built on a strong structure of ignorance, sloth, and mindless misguided belligerence.

Gender-neutral Singular Pronouns

A Boston Globe reader suggests using “xe” (pronounced as in Xerox) to replace he/she. Besides already having multiple meanings in German, all different from the one proposed, “xe” and its variations don’t sound like English to me. Anyway, it doesn’t matter because English speakers decided long ago to use “they” instead. I think most casual speakers use “they” unconsciously. The real question is when, if ever, prescriptivists will consider it correct usage. Until they do, the best solution I’ve found is to randomly choose either “he” or “she” each time you need a pronoun. I do this by seeing whether the last digit on my menubar clock is odd or even. Taylor and Wheeler go as far as assigning subject-specific meanings (frames of reference, if I recall) to the genders of their pronouns. That’s a bit extreme, but I think it worked rather well for them.

Friday, January 3, 2003

ATPM 9.01

The January issue of ATPM is out. There’s lots of great stuff this month, even if we finished a bit late. The December and January issues are always the hardest because of holidays at the end of the month. The reviews mix is a bit unusual. Greg Tetrault had done a lot of double-duty recently, and Eric Blair had an incredible streak going; they both took this issue off and hopefully had a good rest. Filling in are some familiar faces from other parts of the e-zine. Web Editor and comments guru Lee Bennett reviews EarthDesk. Longtime ATPM staffer Evan Trent, who’s been mostly writing opinions lately, reviews the new printer that he’s using at Symphony Sound. And Robert Paul Leitao, the doyen of ATPM, took on the tough job of reviewing StuffIt Deluxe 7. After writing five StuffIt reviews that, I think, started to sound like broken records (When are they going to learn from Salient? Aren’t DMGs cool?), I was happy to recuse myself from this one. I’d link to some other articles, but they’re all good so you may as well check out the whole issue.


I don’t normally follow FoxTrot, but today’s is pretty good.

Thursday, January 2, 2003

Crufty UI

Erik Barzeski has some sensible reactions to Matthew Thomas’s article. I think there’s a deeper UI principle here, almost a quality without a name. It’s about presenting the right abstraction to the user. Of course the computer should prevent you from losing unsaved work, but the real point of manually saving documents is to give meaningful names (and locations) to user-specified states of the document. Until the computer can read my mind, it had better not try to be too clever. If its “perfect” high-level abstraction won’t let me do what I want, it should let me drop down a level. In an application’s case, this may mean not hiding (or obfuscating) the file system. This is my main complaint with applications like iPhoto, VOODOO, and Frontier. They think they’re making things easier, but they really just get in the way if you ever have to do anything outside their little universe. The situation with quitting is similar. Unless there’s a reason I’d never want to quit, the application had better let me. The current Mac OS X virtual memory system is not such a reason. I still quit applications that I’m not actively using. Part of this is to free up space in the Dock, granted. But it’s often true that switching to a swapped-out application is slower than launching that same application. Also, some applications save data and perform cleanup tasks when they quit, and it’s good to let them do that to make sure all their data are in a consistent state. With a perfect system, this wouldn’t matter, but Mac OS X isn’t perfect. A few days ago it froze on me while I was in iChat, and I couldn’t even ssh in. Don’t let the “modern” OS underpinnings make you lazy; you still have to think about when and where to save.

Project Builder as an Organizing Tool

Mac OS X Hints has a tip that I found amusing. Apparently there are people who like Project Builder so much that they want to use it for non-programming stuff, too. The basic idea is good, though, and I do something similar with BBEdit’s File Group feature. Note that you can option-double-click an item in a BBEdit File Group to open it with the Finder instead of BBEdit.

Pointers in Cocoa

I don’t quite understand what Victor Ng is on about. Objective-C ivar pointers are initialized to nil, and you should get a compiler warning if you attempt to use an uninitialized local variable. But he’s right, of course, that it’s easy to send a message to a released object. Unlike Victor, I don’t set pointers to released objects to nil because I think that would make it harder to detect errors; Objective-C will happily send any message to nil without complaining. I’d rather use NSZombieEnabled during testing.

Semantic Web: The New AI?

Nate Batchelder:

The semantic web is one of those technologies that will never live up to its full hype, but will provide us with real benefits nonetheless. I think it will be like AI: lots of interesting things were accomplished, but somehow each little piece that actually worked was officially categorized as “not AI”, leaving AI always a distant dream. If researchers in the ’70s had seen Microsoft Word running with speech recognition, correcting grammar, they would have hailed it as breakthrough AI. Today, it's just what a computer does, and AI remains somewhere in the future.

How very true. It’s no wonder that AI is publicly seen as a failure.

That Sort of Thing

John Gruber, whose Daring Fireball has lost its Bob Dole/Karl Malone complex, compares BBEdit 7’s new sorting plug-ins with the latest version of Craig Maynard’s venerable LineSort plug-in. This comparison is missing from my BBEdit review because for some reason I thought that LineSort hadn’t been Carbonized.

Modal dialogs get a bad rap from many users, so you might find it curious that Bare Bones would choose to use them for new plug-ins. But there are in fact several advantages to modal dialogs. One is that they can be driven by the keyboard. Bring up BBEdit 7’s Sort Lines dialog, then hold down the Command key, and a moment later you will see shortcuts appear for each of the checkboxes in the dialog. These shortcuts don’t conflict with normal menu command shortcuts, because most menu commands are disabled when a modal dialog is open. A floating palette such as LineSort’s can only be driven using the mouse.

Modal dialogs, used right, are great. I’m so sick of these Cocoa applications where it’s impossible to tell which window has keyboard focus.

Multiple Emacs Shell Buffers

I don’t use Emacs that often anymore, but it’s occasionally quite useful. One thing I like is its shell buffers. Unfortunately, I’m always forgetting how to open more than one shell buffer at a time. Normally you can type M-x shell to open a new shell buffer, but if you already have one open that will just switch to the existing one. The solution is to use M-x rename-buffer to change the name of the first shell buffer before creating another one. The next time I forget, I’ll just search for this page.

Deleting Code

Ned Batchelder has a nice little article about deleting code. I agree completely; I hate seeing lots of old code that’s in the file for some unknown reason. Version control rules. CVS is a bit clunky, but it has a great practical advantage over (technically) slicker solutions like VOODOO: it stores everything in a very low-tech way so that you can break the abstraction barrier when there’s no tool to do what you want. In this case, it’s sometimes useful to be able to open the ,v file in BBEdit and search for fragments of deleted code.

iCal 1.0.1

The new version of iCal seems to be a big improvement. I have about 550K of calendar files, and iCal 1.0 took 15–20 dock bounces to launch and used more than 50 MB of RPRVT RAM. iCal 1.0.1 launches in 3 bounces and uses 16 MB of RAM. Additionally, it’s much more responsive once open and it’s a bit less clumsy at editing event information. Apple’s download Web page is wonky, though. I unchecked the box for sending me news about Apple software updates, but it kept telling me to enter my e-mail address. Even after I did, it still wouldn’t let me download iCal until I had also entered my name.

10.2.3 and Open/Save Dialogs

I haven’t upgraded my main machine to 10.2.3 yet, because I don’t want to risk any problems before ATPM 9.01 is released. There was a time when I’d download a 0.0.1 Mac OS update and install it as soon as possible, but with Apple’s recent Installer problems, its lack of release notes, and the sheer size of Mac OS X updates, that’s just not a wise idea. I did update my Mac OS X installation on an external drive, however—mainly because I had two reports of SpamSieve not working with 10.2.3. One guy got SpamSieve (and some of his other software) working again by disabling FruitMenu. The other one still gets this Console error when he tries to launch SpamSieve. WindowServer[424]: ERROR! execle(/Users/db/Utilities/ returned, err=22 This is a mystery to me, as the error number apparently means that the executable was compiled for a different processor type. The positive news about 10.2.3, however, is that keyboard navigation has returned to Open and Save dialog boxes. This is really great; I’d almost given up hope that Apple would fix this, since it’s been broken since the Public Beta. The new dialogs are easier to understand than either Standard File or the initial Navigation Services dialogs, but even with keyboard navigation I’m still finding them more clumsy to use. I wish there were a utility like Dialog View that could automatically enlarge all the dialogs for all my applications (and shrink the font size, too). Maybe Default Folder X does this now, but I’d prefer a non-haxie utility that just modified the .plist files.

Semantic Markup

Mark Pilgrim has sparked discussion of how to use tags like <cite> to produce more information-rich Web pages. It’s definitely something to consider when I have more time.


Gary Robinson:

If you’ve been perplexed by the question of whether genes or organisms are the basic unit of natural selection, see this excerpt from Matt Ridley's book Evolution.