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.