Dave's Programs and Scripts
It's fun to make old software do new tricks. It's less
fun to put the appropriate finishing touches on an application or script so that it'll be
more likely to work when somebody else tries it, but I feel selfish keeping
these little doodads for myself. If there's a "Not Released" script that
you're really interested in, drop me a line. I might post that one next, or
just let you have it as is.
Released Applications and AppleScripts
-
FTL Checkpoint
- is a Mac app to provide a checkpointing function for the space game "Faster Than Light," or "FTL."
-
Sackson Solitaire Dice
- is a Mac app version of a game described by Sid Sackson in his classic book "A Gamut of Games."
-
Big Box of Blox Score Exchanger
- will let you import and export the high score lists from
Digital Eel's game "Big Box of Blox" so you can share your high scores with your friends.
-
Life Balance AutoAssist
- adds a couple of awfully handy, conspicuously absent functions
and features to Llamagraphic's program LifeBalance.
-
ThreadKiller
- works with Mail to help you manage busy mail list groups.
- Disk Image*App Launcher
- is for games that insist that you
put their CD in the drive, but actually work just fine if you mount an image of the
CD instead of carrying around piles of game disks (Railroad Tycoon II, Hoyle's Card Games,
and Age of Empires II are some examples). This script auto-mounts the disk image
if needed before running the program.
- OS9 to OSX Printing
-
OS9/Classic doesn't "get" networked printing in OSX. It can only print to a printer connected
directly to your Macintosh, or one that is smart enough to support Appletalk directly (which
pretty much means only laser printers with their own Ethernet port and PostScript). This
script which I posted on MacOSXHints lets you print to any networked printer (or one that
you don't have an OS9 driver for) from Classic (or from an OS9-only machine)
Not (Yet) Released
Scripts for Images
- Picture Sorter
- Uses GraphicConverter to show you each image file in a directory,
and then lists all folders in that directory. You pick a folder,
and the picture gets moved there. Painlessly sort piles of picture files
into groups.
- Nail Polish
- Automatically builds thumbnails for a folder full of images, constructing
multiple thumbnails to specified H or V limits and types, into specified
subfolders and with appropriate name changes, according to a config file.
- Flashcard Picture Transfer
- It's much faster to transfer files from my digital camera via the
PCMCIA slot than the USB cable, but the file dates and names aren't very
useful. This script hunts down devices with the DCIM directory, gets the
picture files out of them, and sorts them into folders based on the day
they were taken, renaming the files sequentially in the process.
Scripts for Servers
- SIMS Queue Reset
- Sometimes the Stalker Internet Mail Server will, for perfectly legitimate
reasons, end up with a queue full of messages marked "Don't bother trying
to send these any more." Each queued message has to have a letter changed
on the second line of the file (and SIMS restarted) in order to re-enable
delivery attempts. This droplet makes that change.
- Make Secondary DNS File
- Used with QuickDNSPro 2.n, it will create a QDNS Secondary file for
all the open primary domains. This secondary file would then be moved
to a different server, the one that is actually providing secondary DNS
service (with another copy of QuickDNS Pro)
- Process Rotator
- Under OS9, the 'frontmost' program gets more processor time. This
script would switch which program was frontmost every n seconds.
- Voice Mail Remailer
- Smith Micro's "HotFax MessageCenter" is a remarkably flexible, pathetically
'supported' (it's been version 1.0 for years now!) multi-box voicemail
system. One exceptionally lame missing feature is email notification of
voice mail. This script uses SoundApp and an SMTP-enabled Scripting Addition
to watch for new voice mail sound files, convert them to WAV files, and
email the message to the appropriate user.
- I'd be so much happier if SmithMicro'd just expend
a bit of effort to add a modicum of AppleScript support. You can trigger
an Applescript IF the inbound call has callerID. Only if. Except that
they don't support most modems' callerID identification. Being able to
attach scripts to basic functions, and reading the internal data, would
be adequate to expand the program's usefulness, even if they don't put
in email notification as an inherent function.
- OK, I'm done ranting about this now.
- Numeric Pager
- PageSentry's a clever server monitoring tool which I used for years.
Pager notification required some extra piece of software. All I wanted
was primitive numeric paging, and a monitor event can call an AppleScript,
so this script uses a serial port Scripting Addition to send numeric
pages.
Scripts for iTunes
- iTunes Voice Control
- Does just what it sounds like; let's you control iTunes by talking
into a microphone. It's a huge script as scripts go, and does all sorts
of fancy things. I could play my MP3 files on a 66MHz 6100, but
it requires at least a 233MHz G3 for the voice control. But iTunes 3 is
a big upgrade, and OSX only, and that really overloads the older
Macs I have connected to the stereo, so the Voice Control's been temporarily
shelved while I decide how I want to handle MP3 playback.
- Playlist Database Dump
- Cross Correlate is horribly, painfully slow when you have 6000+ entries.
Rather, AppleScript's got some kind of enormous overhead when talking
to apps, so I figured I'd be able to find duplicates, check playlist membership,
and stuff like that if I could just get the data away from iTunes
and AppleScript, and into a real database like PostgreSQL. This script
extracts the playlist info into a DB-import-ready file.
- Master Database Dump
- See above.
Scripts for the Finder
- Folder Spectrumizer
- We lost colored folders with OSX. So I made a whole pile of folder
icons in different colors. This script currently uses IconBrush to replace
plain light blue folders with semi-randomly selected folders in other
colors. This makes multiple folders much easier to identify. I'm waiting
for OSX to include the native icon support that the Finder's dictionary
says is "Not Supported Yet", then I'll be able to quit using IconBrush.
Update: I've discovered the secret powers of AppleScript
Studio, so I may end up building this into Window Dresser.
- Decompose Folder
- I downloaded a web site and found that I had files in folders in
folders in folders. When I drop a folder onto this script, all the files
nested inside folders are moved (and renamed if necessary) to the root folder,
and the subfolders are deleted. The renaming system preserves information
about the original location of the files to some degree.
- Window Dresser
- I got tired of adjusting finder window settings to the same two or
three configurations. This ProjectBuilder (my first) application allows
for more rapid resetting of a finder window to one of a subset of preset
configurations, including Large, Medium, and Small icons (by name, size,
or date) or a List view. In all cases, the window's resized to fit. It
can be controlled entirely by keystrokes; no mousing is necessary.
Scripts for Entourage
Note: I don't use Entourage any more, I've switched to Mail, so
these scripts will probably never get posted.
- Chatelaine
- This rather complex script intercepts all messages that are not
from known addresses, and asks the sender to reply to a message.
Any message without a valid return address, or one that goes back
to an automated address, will not send a valid reply, and after a bounce
or after a month of waiting, the message is thrown out. Mildly annoying
to legitimiate friends and associates, but nearly 100% effective at
blocking spam. It's possible to add addresses before you get mail, it
always checks with the address in the address book, and you can also
set addresses to be rejected as well. Currently requires its own email
account, alas.
- Archive Selected Email
- This one's been posted elsewhere. It saves out email into an external
directory, where it can be indexed by the OS. Keeps your email program's
system clearer, and let's you find messages with the Content Find from
Finder. OSX isn't being as cooperative as 9 was for some reason.
- Change Return Address
- Sometimes I want to send a message with a different "From" than
what's set in my account. This does that.
- SpamHunter
- Before I developed Chatelaine, I was using this. It uses a great
big pile of rules to assign a "Spam Score" to a message. A score over
n would get it marked with the spamscore in the subject,
and a score over N would get it deleted.
- Dial Phone Number
- This just uses a serial port-controlling Scripting Addition
to use a modem to dial a phone number for a contact on the screen.
- Synchronize Tasks
- Synchronize Address Book
- Synchronize Calendar (Add Only)
- Synchronize Calendar Delete
- For a while I was trying to keep two different copies of Entourage
synchornized. That's what these did. Unfortunately, Entourage's support
is exasperatingly incomplete. You can't actually copy a task properly;
there's no way to set a repeat on a new task, you can't identify creation
dates on calendar events or read or set the repeating functions on them,
and so on. So after hours of fighting the "close but not actually right"
implementation, the Sync routines work, mostly-ish.
Script Modules and Sub-Functions
- List Shuffler
- This shuffles a list like it was a deck of cards; randomly reordering
it.
- Query PostgreSQL
- This primitive function calls the Unix command line function 'psql'
to send a query to a PostgreSQL server, and returns the result from a temporary
file.
- ChopString
- Chops a string into a list, or lists of lists. There are scripting
additions with commands that do this, but I wanted one of my scripts to
not require installation of third-party scripting additions.
To Home Page.