Forwarding Address: OS X

Monday, December 30, 2002

hand-in-glove with my previous post, it's worth noting that Apple's also released the December update to their Developer Tools for Mac OS X (you get the enhanced Script Editor application i mentioned with the download). requires an Apple Developer Connection membership ("online" membership is free, by the way).

long time, no post, but i noticed that Apple's revamped the AppleScript section of their site: it now includes links to the latest news about the venerable newbie-friendly scripting technology built into the Mac OS.

and what's the latest news, you ask? Apple has released previews of a completely new Script Editor application for Mac OS X, and new System Events technology that allows AppleScript to control the GUI (again, only on Mac OS X). As they say, this gives scripters the ability to manipulate apps that don't directly support AppleScript:

Scripters have often requested the ability to control, via AppleScript, applications which either do not have AppleScript support or are only partially scriptable. The December 2002 Developer Tools release contains a beta version of the System Events application with support for controlling the GUI (Graphic User Interface) of applications with scripts.

Friday, December 27, 2002

The Humane Environment is an open source alternative GUI in OS X, created by Jef "creator of the Mac" Raskin. Still in development and very much a proof-of-concept.
The Humane Environment (THE) is as easy to learn as a GUI (or easier) yet as fast to use (or faster) than the command-line systems we struggle to learn but love to use. It is easier to add new software to than any previous interface-based system.

Important observation: You cannot make an interface better without making it different (that's obvious). If it's a lot better, it will be a lot different. This means that it will feel unfamiliar to anybody familiar with present interfaces. Therefore, it has to be used for a while (after you read the manual) before you unlearn your present habits and can begin to appreciate it. You are in a worse position for learning it than a novice who has only to acquire new habits and has nothing to unlearn!

Link Discuss (Thanks, John!)

Wednesday, December 25, 2002

To all the developers out there writing the kick-ass software that makes OS X the techno-orgiastic playground its become, and to all the fine folks inside Apple laying the groundwork: thank you! Merry Christmas and Happy New Year all.

Monday, December 23, 2002

This afternoon, my Address Book mysteriously emptied itself. Looking through ~/Library/Addresses/Address Book.addressbook, I saw that all my contacts appear to be there, but when I try to sync my iPod, iSync tells me that there are 670+ contacts to delete. I tried moving the iSync.vcf off my iPod and then importing it into Address Book, but the import process doesn't populate the window with my contacts.

I tried logging in as another user and successfully imported the iSync.vcf file. Then I tried exporting it, logging back in as me, and re-importing. Address Book hung.

I tried deleting ~/Library/Addresses/ and ~/Library/Preferences/, and tried importing either the iSync.vcf file or the other, new file. In the case of the file from my iPod, it zipped through, but did not create a new ~/Library/Addresses folder or any new contacts. In the case of my imported-then-exported file, Address Book hung again. I'm stumped. I need this data on my effing Mac. What do I do? Discuss

P.S.: Perhaps it's worth noting that over the weekend, I suddenly became unable to save any files. Every attempt to save a file returned a Disk Full warning (3+ GB available on my disk). I rebooted, and the problem was solved, but all my Mozilla cookies, bookmarks, and stored passwords were gone, as were all my preferences. Perhaps this is related?

Sunday, December 22, 2002

For fun this afternoon I decided to get VNC running between my laptop and my MP3 server so I can control the machine from anywhere in my place. I was expecting at least a few hours of work; I was not expecting it to take approx. six minutes. Assuming you're running at least 10.1.5, these are the steps:
  1. Install this on the Mac you want to control: Share My Desktop
  2. Install this on the Mac to control from: VNCThing
  3. There is no step 3.
I love X.

OSXII is an Apple //e emulator for OS X. I'm digging out my old Logo programs and BASIC games! Link Discuss

Saturday, December 21, 2002

The developers of Chimera are urging users to download the Dec 20th nightly build (you can also grab the very latest nightly build if you like the bleeding edge) and check out the many improvements. Improved stability, better support for Shockwave Director and Realplayer files, lots of other groovy fixes and additions.

Thursday, December 19, 2002

Well, just in case you haven't already heard it, Mac OS X 10.2.3 is out.

The 10.2.3 Update delivers enhanced functionality and improved reliability for the following applications, utilities, and technologies: AppleScript, Classic compatibility, Disk Copy, Disk Utility, Image Capture, Mail, OpenGL, Print Center, and Rendezvous. It provides audio, disc recording, graphics, printing improvements, as well as AFP and WebDAV networking improvements. The update also provides updated security services and includes the latest Security Updates.

For detailed information on this Update, please visit

mi (formerly MMKEdit) is a nice little free Carbon (OS9/OSX) text-editor. It doesn't have as many features or the slick UI of BBEdit Pro, but it certainly has more flexibility that the free BBEdit Lite. (Thanks, Brian!)

Monday, December 16, 2002

Help me, oh blogosphere...I've just moved to rural Sweden, and my only option for connectivity beyond 7k dialup is two-way satellite broadband. It works well, except that I am getting a vast number of Network TimeOut errors. Is there a way of lengthening the network time-out interval, so that, for example, posting an entry to my Movable Type blog doesn't timeout halfway through?

Nat sez: " is a supersweet *tabbed* terminal emulator for OS X. Supports Cmd-T to open a new tab, like Mozilla. Cmd- moves to that window number. And it seems to be much less of a memory hog than" Link Discuss (Thanks, Nat!)

Friday, December 13, 2002

Gotta plug Matisse Enzer's new book, UNIX for Mac OS X: Visual QuickPro Guide. I just got my copy this week, and within about 10 minutes I accomplished something I had wanted to try for months (namely, using rsync via ssh to create local mirrors of websites I work on). This is an ideal book for migrators to OS X who are interested in the Unix underpinnings.

Seth tells me that in the Linux world, people are accustomed to doing something called "one-armed routing." That's where you route on a single Ethernet interface, by creating a fake virtual interface that has an internal network address as well as the real interface with the real network address. I used to do this under OS 9 with IPNetRouter when I had a machine acting as a NAT/DHCP box running on a DSL modem in my old building.

Does anyone know how to do one-armed routing under OS X on Airport? This could be incredibly useful in situations where, for some reason (having paid a subscription fee, having an authenticated MAC address, having a superior antenna) one user has access to a WiFi network but others don't -- you could republish the network around your machine and share it with others. Right now, I usually accomplish this trick by connecting my Airport base-station to my iBook with an Ethernet cable and bridging whatever connection I can get onto down to the AP. It would be handy to pull this off without the Airport AP. Any ideas? Discuss

Wednesday, December 11, 2002

BareBones Software, makers of BBEdit -- the greatest text editor ever -- are giving $10 to EFF from every copy of BBEdit sold this month. I wrote my last two novels in BBEdit, I compose blog entries in BBEdit, I use it for html composition, I use it to diff documents as we work on them around the office. Not only do these guys make wicked-swell software, but they also support electronic liberty. Link Discuss

Monday, December 09, 2002

Thanks to Paul H. for that note. I am a statistics ignoramus, though I have read enough to know that the term "Bayesian" is being used loosely (and that there is some debate over whether it applies to these techniques at all). It's also not inclusive of everything a tool like SpamSieve does. I was going to include a comment to that effect, but couldn't bear to add one more qualifying parenthetical to an already convoluted post. For better or worse, "Bayesian" seems to have been adopted as the common term for this sort of filtering. If that's bad usage, I think now is the time to strike with alternative suggestions!

Without commenting on SpamSieve, I would note that "Bayesian" anything is a somewhat meaningless term, akin to "artificial intelligence". There is a great book on the (actually quite short) history of statistics called The Lady Tasting Tea, and it has good material on why Bayesian can mean anything that is close to "gets better with more good data", which is true for almost anything.

Sunday, December 08, 2002

(This is rather long winded. Short version: check out SpamSieve.)

It's been a while since I posted about spam filtering. For many months I've been happily using mailfilter by Andreas Bauer, and I even put up some instructions to help other people use it. It has killed over 20,000 pieces of spam for me. However, with 300+ rules I have hit the point of diminishing returns -- it's hard to add individual rules that make much of an improvement in the overall accuracy, and the whole shebang is higher-maintenance than I want it to be. And, while in general I love mailfilter's kill-it-on-the-server method, it's a real bummer when you get that rare false positive, because you have to 1) notice that it happened 2) dig the sender's e-mail address out of the log, and 3) beg for a re-send.

Lots of people use and love SpamAssassin. It's great. However, it can be complex to set up and maintain, and you've got to keep it up to date as spammers learn to game its rules.

What if you had software that, instead of using tons of rules by clever humans, simply learned by example what spam is, and kept learning?

That's the hot thing in spam fighting now -- Bayesian filtering. I'll leave the details to smarter people, but it is essentially a statistical method in which individual tokens (words) are mapped to probabilities. For example, a quick look at my spam log of 700+ recent spams shows that my last name shows up in 4 spams and 254 "good" messages, making it a strong (but not absolute) indicator of non-spam. Conversely, the term "hcode" shows up in 304 spam messages and no legitimate messages, making it a very good indicator of spam. What's "hcode"? I have no idea -- something that shows up in spammers' HTML a lot, I'd guess. It's obviously incredibly predictive, yet I never would have created a rule to look for it.

That's the beauty of this approach. Instead of trying to cleverly create individual rules that identify spam, you simply feed your Bayesian engine a pile of spam, and a pile of good mail, and it learns the difference. (It does weighting like SpamAssassin, but instead of weighting rules, it individually weights every unique word.) Read Paul Graham's highly influential "A Plan for Spam" essay for more on this. Really, read it. It's excellent.

Actual usable software using these techniques includes Eric S. Raymond's (yes, that Eric S. Raymond) bogofilter, various applications of the ifile utility, and (finally, here we are) the product I'm trying out right now: SpamSieve.

SpamSieve works with Eudora (which is what I use), Entourage Mailsmith, Powermail, and Emailer. (What about, you ask? Well, reportedly,'s built-in spam killer is actually a Bayesian filter, and works great. So if you are a user, I guess you're all set...)

You train SpamSieve with a batch of good messages and a batch of bad, then correct it whenever it screws up. It learns fast.

People who are wrapped up in making clever rules for complex filtering systems can't believe how effective Bayesian filtering is. After just a few days of training, SpamSieve has exceeded the accuracy of my mailfilter setup (about 95%) and is still climbing -- even messages that it correctly identifies as spam are used to improve its accuracy. People have reported accuracy of up to 99.5% with Bayesian filtering.

I am fully convinced that this is the future of spam-killing. (Well, actually, I think there's also a place for Brightmail-type honeypots, but that's another story.) Check it out. Discuss

Friday, December 06, 2002

On the subject of media players, Faisal Jawdat writes

The best player I've seen in terms of range of formats is mplayer. On the downside, the GUI doesn't really work, which means you have to use it from the command line and navigation takes the form of random keystrokes.

Wednesday, December 04, 2002

VideoLAN on OS X seems to be able to open and play more Windows Media formats than the Mac version of Windows Media Player. It handles many other formats as well.

After looking at Anonymous for a minute, I thought Moniz might have a point. After all, David Lamkins was involved in its design, and he's an old Mac/Lisp hacker. And yet a side by side comparison (L: monaco, R: Anonymous) in what was presumably Lamkins' favorite editor left me feeling that Anonymous looks a little cluttered or unfinished at smaller sizes (it looks pretty good at 48pt, I will admit) compared to Monaco.

Tuesday, December 03, 2002

Wiseman is wrong. Anonymous is your true monospace type solution. Decry the blasphemous imposters Monaco and Andale Mono.

Monday, December 02, 2002

Tyler writes in about a neat key remapping app:
it's called uControl, and you can swap modifier keys (i.e. capslock-> control, etc), allows *book users to hold down the function key to make their trackpad function like a mouse wheel. and perhaps the most *sounds like a weird thing to do, but i use it alot,* ability, if you hold down the spacebar, the keyboard mirrors, so you can type one-handed (i.e. spacebar-f -> j, spacebar-s -> l, etc). very handy if you have two machines on the same desk.

Sunday, December 01, 2002

I've been playing with F-Script a lot lately, and although we've discussed it before, I thought it might be nice to point to some online articles on the subject.

Scripting Cocoa with F-Script
Browsing Cocoa with F-Script

With Bill Bumgarner's excellent work, a lot of this (if not all) is possible with Python now but hey, new languages are fun.