Superlatives

Elected to the MacTech Top 25, 2007
“The MacTech 25 honors the most influential people in the Macintosh community. How do we know who these people are? You tell us! Once a year, we open up voting to you, the Macintosh community.”
Best technical writer
John Gruber: “I consider [Matt Neuburg] the best technical writer in the business…”
“[The online help for Affrus] is quite simply the finest software documentation I have every encountered. It’s not just that it’s well-written, detailed, accurate, and complete. It’s that it truly takes advantage of the nature of hypertext. It is cross-referenced and cross-linked out the ying-yang. If you have a specific question, it is easy to find the answer and jump to it directly. (And every question I’ve ever had about Affrus is answered in the help documentation.) But if you want to read the documentation linearly, from beginning to end, it’s easy to do that too. Affrus’s help isn’t just good when compared against the deplorable state of your average help book - it’s just plain great by any standard.”
AppleScript book: “Truth.” “Scholarly.”
David Cortesi, on Amazon.com: “The first AppleScript book that tells the deep truth… [Matt Neuburg] has taken the time to test out every corner case and exception of the language, and he lays them all bare. He looks into AppleScript’s baroque scoping rules and its inconsistent rules for implicit coercion of types. All of Part II is meat and drink to a fan of programming languages, and I read it through like a good novel. More to the point, it’s a deep and thorough job of documenting the actuality of AppleScript: what syntax works, what the tricks and traps are, and what to avoid… To sum up: this book is a deep, thorough exploration of all the quirks, dusty corners, and skeleton-filled closets of AppleScript. Reading it will make you far better prepared to use AppleScript productively.”
Reader email: “Your book is the only one I have come across that really explains precisely the basics linguistic concepts of the language. It is a scholarly work.”
One of the Macworld top maintenance and troubleshooting tools
Dan Frakes: “MemoryStick 1.5 (free; Matt Neuburg) lets you know if you’re running short on RAM or if you’ve got too many apps open, by displaying your Mac’s memory allocation.”
“Rocks.”
Email from a satisfied downloader: “I love stuff that just works. Caught the latest MacWorld tip about your stuff and it doesn’t just work, it rocks.”

Photo Album

I’ve taken a lot of photographs that I like, almost exclusively nature images, but have only recently thought of putting a few on the Web.
Here are what I consider the best 100 or so pictures I’ve taken since about the year 2000. Thanks to John for letting me stick these up in his Gallery. Eventually I’d like to put up a lot more, plus I want to continue digitising my negatives from the past 20 years… Could we have more hours in a day, please?
There is also this little collection of pictures from my family’s Alaska Cruise.

Things Having To Do With Cocoa

Cocoa is an application framework provided as part of Mac OS X. Apple also provides, when you buy OS X, free tools for programming Cocoa. This means it’s easy to write your own Mac OS X-native applications! So naturally I’ve started writing some. My goal is to write freeware only. Software should be free.
MemoryStick
Provides a graphical display of your RAM usage under Mac OS X. You can instantly see how full your RAM is getting. Optionally uses sound to signal pageouts and/or an increase in your swapfile count; these can be a sign that you need more RAM. Inspired by John Siracusa’s article on Mac OS X 10.1 in Ars Technica. 200K. Download the latest version, MemoryStick 1.5 (Tiger/Leopard only!), here. (The previous version, for Panther, is here; the very early Jaguar version is here.)
Zotz
It’s just a game. A really simple game. A really simple time-wasting curiously absorbing card game. I didn’t even make it up! Someone else made up the game; I downloaded it, it behaved in ways I didn’t like, so I wrote my own version, and this is it. The goal is to spot groups of three “cards” that are the same or different in all four of their “attributes”. Panther/Tiger/Leopard only. Source code included! This is your chance to learn Cocoa (ha). Download it here.
Thucydides
Presents your Safari history file as a sortable, searchable table. I wrote this because I got tired of Safari’s crappy, unusable history and lousy auto-completion. This app is tiny; it has no bells and whistles, such as caching your history information or searching the contents of the web pages. It just makes your actual Safari history URLs a lot easier to use. Hey, it’s free, and it works. As with my other programs, I wrote it for myself to use, I use it all the time, I’m sharing it because, well, why not? Current version is Tiger/Leopard only. Source code included (with which you can build earlier versions that run on Panther). Download it here.
MothersHelper
Helps my mother (and others) keep track of what application is frontmost. Hard as it may be to believe, there are people who have trouble with this (such as my mother (and others)). On Mac OS X, you can see one application through another, windows of different applications can become interleaved, the active window is not strongly distinguished and doesn’t say what application it comes from, you can close all windows and still be in an application, and so forth. The menu bar does say what application is frontmost, but somehow that isn’t a strong enough cue. So this little utility provides a stronger cue: it tiles the desktop with the icon of the frontmost application. Tiger/Leopard only. Download it here.
Diary
A simple daily journal application. Start it up, type what you did today, quit. Next day, same thing. Searchable, but no bells and whistles; I use it every day so I thought I’d share it. Tiger/Leopard only. Source code included. (Good demonstration of simple Core Data programming.) Download it here.
NotLight
A simple Spotlight front-end substitute. I wrote this because I got sick and tired of Tiger’s lousy Spotlight interface. The magnifying-glass menu is a fake menu; it behaves oddly, and doesn’t show all the matches. The Spotlight window looks like something from the Windows world: it works like a web browser, you can’t easily navigate it with the keyboard, you have to keep pressing the “i” buttons just to learn where a file is, and so on. The Finder window requires that you jump through all sorts of hoops just to find a file by name. Worst of all, none of these front ends give you access to the real power of Spotlight: they automatically do wildcard searches, they don’t let you do exact searches, they don’t let you specify case-sensitivity or word-based searches, and they don’t let you construct complex boolean searches with AND, OR, and NOT (or if they do, it isn’t clear how).
   So I wrote this substitute, in order to access the real Spotlight. You can do any kind of Spotlight search; seven search keys are built in, and you can add more, and you can even view and edit a search as text if you like. You can use wildcards or not, specify word-based, case-insensitive, and diacritic-insensitive searches, and construct complex searches with AND, OR, and NOT. A Date Assistant translates dates into Spotlight’s query language for you. Results are a simple list of filename and paths. Download it here. [Reviewed in Macworld.]
JACTVocab, CambridgeLatin
Programs for letting students of Classical languages (Greek and Latin) drill and test themselves. Based respectively on, and intended to accompany use of, JACT “Reading Greek” and Jones and Sidwell’s “Reading Latin”. Please scroll down on this page for download links and to read more about them. Updated from HyperCard; these are now Mac OS X-native programs, requiring Tiger or Leopard.
PacManOnMarsX
A really simple game. So simple that it isn’t even a game, really. Nevertheless it might be fun for children and, uh, other people with childlike minds (okay, I have to admit that I’ve spent a lot of time playing it!). All that happens is that some ghosts are flying around on Mars and you use the arrow keys to make PacMan eat them. It takes about 30 seconds to play. Its real purpose was to port to Cocoa the PacManOnMars example from my REALbasic book. In other words, for you technically minded people, I wanted to make a Cocoa version of the REALbasic SpriteSurface / Sprite classes so that I could do an elementary animation easily. I did that, so here it is. Probably Tiger/Leopard-only.

FaceSpan 5

What is FaceSpan 5?
First of all, what is FaceSpan? Similar to HyperCard, FaceSpan is a software construction kit; it emerged at the same time as AppleScript, about 1991, and AppleScript is its programming language. As originally conceived, it was elegant and easy to use, a great way for AppleScript programmers to create a user interface for their scripts. It was bought by DTI in 1996. When Mac OS X came out, DTI first let FaceSpan languish, then rewrote it on top of Apple’s own AppleScript Studio, so that it lost most of its virtues and acquired a lot of AppleScript Studio’s faults.
Then in 2005, Mark Alldritt / Late Night Software, for whom I have done some documentation and programming work, bought FaceSpan and started to rewrite it from the ground up again as FaceSpan 5. The idea is to bring back the elegance and simplicity of the HyperCard-type model, where every interface object has its own script, messages are passed automatically up the containership chain, and every object can see every other object and its script. Plus, since Mark also writes Script Debugger, FaceSpan 5 will have debugging built in. This has turned out to be a massive task, but it’s coming along and the results are pretty astounding so far. I’ve been helping out with documentation and other forms of alpha tester support.

Take Control Ebooks

Take Control is a publishing arm of TidBITS. It involves rapid publication of timely electronic books (PDFs optimized for on-screen reading) which are kept up to date by periodic revisions. Because the books are electronic, overhead is low, so the books are inexpensive and can easily be updated; once you have bought one, the updates are free. This is a good model for computer-related subjects, because the subject matter changes so quickly (plus it sure saves paper).

Things Having To Do With AppleScript

AppleScript: The Definitive Guide!
image Well, here’s a how-de-do! I’ve gone and written a book about AppleScript — not just a book, but the book. This really is the definitive guide to AppleScript. Endorsed by Apple Computer, Inc. as an Apple Developer Connection title, covering Mac OS X 10.3 (Panther) and beyond, this book explains the language completely, including many aspects of it that I’ve never seen explained before. Even if I do say so myself, this is the first really good book on AppleScript - the book I wish I’d had years ago.
News flash: This book is now (January, 2006) in its second edition. Completely rewritten, and updated for Tiger (Mac OS X 10.4). (Leopard users, don’t worry; there are very few changes in AppleScript for Leopard, so the Tiger edition of the book is still good. See the errata page for information about the few Leopard differences.)

Things Having to Do With Ruby

What is Ruby?
Ruby is a programming language that incorporates the best features of every other language that I like (such as UserTalk, JavaScript, and LISP). I’ve been using it for quite a while now.
Replacing AppleScript With Ruby
When I want to drive a scriptable Mac application, I’m now much more likely to reach for Ruby than for AppleScript. What makes it possible, as this online article explains, is rb-appscript, which lets the Ruby language express and send Apple events as easily as AppleScript does (the syntax is quite reminiscent of how Frontier’s UserTalk does the same thing). The reason for choosing Ruby over AppleScript is that Ruby is so much richer as a language than AppleScript is; Ruby has real arrays and hashes, great string handling, and true object-orientation. Since moving my scripts over to Ruby, they’ve become much more efficient and maintainable.
The RubyFrontier Project
The most significant and by the far the largest Ruby project I’m working on is RubyFrontier. One of the coolest features of UserLand Frontier is that it provides a framework for building Web sites that are easy to write and maintain. Frontier takes care of the navigation between pages for you, and turns your text into HTML, allowing you to concentrate on content instead of form (in fact, Frontier was really an early “content management system,” though that term hadn’t been invented at the time). But Frontier is getting long in the tooth, especially on Leopard, plus its Web framework is kind of a pain to work with — it was never very consciously or efficiently designed — and UserTalk isn’t object-oriented and its string-handling abilities were never all that great; and the Frontier open source effort, though well-intentioned, is not making much headway (for example, Apple events still don’t work properly in the universal-binary build on Intel). So I’ve been porting the whole Web framework over from Frontier to Ruby, making improvements as I go along.
The project is now in what I would call a complete first-draft stage: it has gotten far enough that some of these Web pages (those that are so labelled at the bottom) are now maintained and built with RubyFrontier, and so is the entire online help for Script Debugger. I haven’t decided where to take this yet (for example, whether to go open-source); anyway, it’s too early for that.

Things Having To Do With REALbasic

This section is no longer actively maintained and has been moved to here.


Things Having To Do With UserLand Frontier

This section is no longer actively maintained and has been moved to here.


Things Having To Do With Nisus

This section is no longer actively maintained and has been moved to here.


Things Having To Do With HyperCard

This section is no longer actively maintained and has been moved to here.


Things Having To Do With Learning Ancient Greek

JACT Greek Stacks
To accompany use of the JACT Cambridge textbook for beginners in Ancient Greek, Reading Greek. These stacks let students drill and test themselves on most of the exercises, and all of the forms and vocabulary, from the textbook; includes an authoring system to permit the modification of the exercise stacks and the creation of new ones. Requires Mac System 7+ and HyperCard 2.1+. (And, optionally, Apple’s Speech Manager and voices, if you want it to read Greek aloud rather badly!) Click here to download Part One. Click here to download Part Two.
JACT Vocabulary
To accompany use of the JACT Cambridge textbook for beginners in Ancient Greek, Reading Greek. This program includes all the learned vocabulary from the textbook, allows this vocabulary to be sorted and consulted in ways likely to be useful to students and teachers, and creates flashcards. Requires Mac OS X 10.4 (Tiger) or higher. Click here to download it. Based on my HyperCard stack, which you can still obtain here.
Greek Verb Help
An application (Mac Classic only) which presents a full paradigm of the Ancient Greek -o-verb in hypertext format. This means you can navigate in ways impossible with 2-dimensional book pages, which helps you visualize and memorize better. Example: if you’re looking at the Aorist Optative Active and you type “middle”, you’re looking at the Aorist Optative Middle. Includes many notes warning about ambiguous or misleading forms. Looks best in color. Written with Storyspace, in case you were wondering. Click here to download it.
JACT Plato Reader
An application (Mac Classic only) which provides a hypertext grammatical commentary on the Plato selections from the JACT (Cambridge) second- or third-year Ancient Greek textbook, The Intellectual Revolution. The Plato text is in it, and so is a reference grammar, and when you click on a word in the Plato text, you are taken instantly to the relevant passage in the reference grammar. Personally, I think the grammar alone is the real point; it’s written from a somewhat revolutionary point of view (active rather than passive, i.e. how to say things in Greek), and disagrees with Smyth on many points. Based on years of research that didn’t do me a bit of good. Click here to download it.
Translation of Aristophanes, Lysistrata
Literal, including an exact reproduction of the original lyric metres; scholarly, yet intended for (and tried and tested in) actual performance. Sorry, you can’t download a copy; this is a published book. You can learn more about how to order it, here.
Translation of Euripides, Bacchae
Like the Aristophanes translation: Literal, including an exact reproduction of the original lyric metres; scholarly, yet intended for (and tried and tested in) actual performance. This one is available as a PDF, for download.

Things Having To Do With Learning Latin

CambridgeLatin
To accompany use of the Cambridge textbook for beginners in Latin, Reading Latin, by Peter Jones and Keith Sidwell. Includes a healthy proportion of the exercises from the Grammar, Vocabulary and Exercises volume, letting students drill and test themselves. Requires Mac OS X 10.4 (Tiger) or later. (Based on a set of HyperCard stacks written for and used with students about 10 years ago.) Click here to download.
Online Latin Lexicon
A file for use with Peter N Lewis’ ObiWan. Gives you a Latin lexicon (Latin-English dictionary) on your computer, with instant lookup, and pop-up access from any application. The dictionary is over 1 MB in size, has 15600 entries; yet the whole thing runs in just 200K of RAM. Can be used for English-Latin lookup too, by searching the entries; that’s not instant, but it’s still very fast. You can read more about it, or just go ahead and download it.
Latin Vocabulary Trainer [not by me]
Okay, I didn’t write this one! But I wish I had. It’s got two features I like: it trains you in Latin vocabulary and verb forms, and it’s written (very nicely) in REALbasic! Here’s a link.

Some Technical Online Articles

(A few technical online articles of mine, some of which are also pointed at elsewhere on these pages… For articles in TidBITS, scroll further down.)

Replacing AppleScript with Ruby
About rb-appscript, which has complete changed my life by letting me use Ruby instead of AppleScript as a base for sending Apple events to scriptable Mac applications.
AppleScript Power Handlers
Some weird power-user features of the AppleScript language.
Creating Online Help with Tinderbox
How I wrote the Affrus help using Tinderbox.
Write Your Own Automator Actions
Why Automator is a great way to package up your AppleScript.
With REALbasic, Object-Oriented Programming is Easy
An introduction to object-oriented programming.

Selected Writings from TidBITS

(For a complete list, go to the TidBITS home page and do a search on “Neuburg”…)


Reviews of Software


LaunchBar

KeyClick

Flying Logic

Default Folder X

PTHPasteBoard 4.0

Color It! 4.5

MindManager

MindManager

SlipBox

Thinking Rock

NovaMind

Pacifist 2.0

OmniGraffle

Path Finder 4

DropCopy

Yojimbo

Marten

Smasher

Typinator

Dashboard

Automator

Intaglio

Curio

DEVONAgent

Audio Hijack Pro

SonicMood

Pyramid

FontAgent Pro

Webstractor

Word 2004

DEVONthink

Hog Bay Notebook

Mailsmith 2.0

NoteTaker

iData Pro

Scripting the Unscriptable

Multiple Clipboard Utilities

Tinderbox

StuffIt Deluxe 7

WorkStrip X

Sciral Consistency

PopChar X

URL Manager Pro

Desktop Rover

Layout Master

Extensis Suitcase

Unicode on Mac OS X

IBM ViaVoice for Mac OS X

AppleScript Studio

ProVue Panorama

QuicKeys X

DiskSurveyor

StickyBrain, EZNote, and Z-Write

Storyspace 2.0

Boswell

iListen 1.0

TypeTamer 2

Microsoft Excel 2001

ConceptDraw

Microsoft Word 2001

Microsoft Entourage

PlainTalk

ViaVoice Enhanced

Starry Night Backyard

Inspiration 6

Idea Keeper

OneClick 2.0

DiskTop and DiskTracker

Font Reserve 2.5

Helix

Canvas 7

Papyrus 8.0.7

Style Master

QuicKeys 4

Canvas 6

RichLink

Stagecast 1.0

CorelDRAW 8

Conflict Catcher 8

REALbasic 1.0

Microsoft Excel 98

Microsoft Word 98

Eudora 4.0

Everything Scripting CD

Inspiration 5.0

Text Machine 1.0

Font Reserve 1.0.1

Spreadsheet 2000

SuperCard 3.0

Canvas 5.0.1

CopyPaste 3.2.2

Palimpsest 1.1

Eudora 3.0

KeyQuencer 2.0

QuicKeys 3.5

    Part 1
    Part 2

Now Utilities 6.0

WebArranger 1.0

Prograph Classic

Now Utilities 5.0

In Control 3.0

Hypercard 2.2

MORE 3.1

In Control 2.0

Inspiration 4.0

MacEuclid

Nisus 3.06

    Part 1
    Part 2
    Part 3

SuperPaint 3.0

Storyspace


Miscellaneous TidBITS Rants


Six Things I Hate About Leopard

Leopard 10.5.2

The Decline of WWDC
Of Files, Forks, and FUD
Are Input Managers the Work of the Devil?
iMac G5 Up In Smoke
Apple’s Dirty Little Secret
Long Day’s Journey Into Night Of the Living Dead Software

Of Macs and Macros

Malign Neglect

Apple vs. the little guy

The New Technologies Treadmill


This page prepared April 12, 2008 by Matt Neuburg, phd = matt at tidbits dot com, using RubyFrontier. RubyFrontier is a port, written in the Ruby language, of the Web-site-creation features of UserLand Frontier. Works just like Frontier, but written in Ruby!