Unless otherwise noted, these applications are written for MacOS X (usually 10.3.9 or higher) or for anything with a command line. Another way of putting it; there's very little here that will run on Windows.
These applications are complete packages for which I provide support and have the most general usefulness.


These applications are either open-source, one-offs, work-specific, or proof-of-concepts which the source is usually readily available for diddling. I will not necessarily provide any support or updates for these unless I need them updated (in other words, they may be very out-of-date).


These are odd bits of code that either have no better place to go, may or may not even be useful anymore, or simply may show how bad of a programmer I was in the early days. But I keep them around because I'm sentimental... and a pack-rat.
(Newer stuff is always toward the top).
Description Etcetera    Download
Apply XSLT So you need to apply an XSLT in Cocoa... NSXMLDocument is your friend. This is a simple example of how to read a file, apply an XSLT to it, and output the result. I also created a command-line tool that's useful for testing as well as applying XSLT to Dashboard widgets under Tiger (Javascript XSLT tools aren't available in Tiger). Package comes with an XSLT to strip HTML from a file.

Yes, I realize now I reinvented the wheel. 'man xsltproc' on any Tiger machine to find Apple's helpful XSLT command-line processor.
Written in Objective-C and XML/XSLT.

source code
screenshot #1
Subversion Icons Subversion's default XML stylesheet lacks... well, a lot. Mostly, it lacks some bitchin' icons. Not anymore! I've modified the .xsl file to display icons and provided a nice little group of icons to get you started. If you'd like an icon added, feel free to ask me for it or just make it yourself.
Written in XML/XSLT.
screenshot #1
RS232 Serial Port Poller Working on an application that reads data from Keyspan DB9 adapters, I found that identifying which adapter is where programmatically was tricky at best. Very helpful, then, was this little guy I whipped together to help me identify where RS232-type devices (kIOSerialBSDRS232Type) were being assigned in USB-land.
Written in Objective-C.
screenshot #1
Ideal Text Color Hanging out in #macsb on freenode can net some pretty cool things. Like this, a reasonably good method for determining the color text should be (either black or white) dependent on what the color is behind the text. The Cocoa method for the calculation was whipped up by the guy at lucernesys.com, I simply made a cute binary to show it off.
Written in Objective-C, but the idea could be easily ported to any language, really.
screenshot #1
mdsearch.cgi Uses the built-into-OSX indexes of Spotlight to create a quick-n-dirty search engine page for any OS X computer. Requires a web form front-end built for it to supply two data fields. Instructions included in the file.
Written in Perl.
Script source
Reload Safari Reloads Safari with a random URL read from a file. Designed to be ran from cron.
Written in Applescript.
Script source
CamelBones Example CamelBones is a framework that primarily allows you to build GUI applications in Xcode using perl. But a by-product of this process is that it can be used to call perl from a Cocoa application (leaving Cocoa to handle the GUI). I, for one, am in love with CamelBones as it turns a long-standing difficulty with C and its derivatives into a simple object call. And of course, I speak of regular expressions.

Perl’s regex engine is considered the best there is. And being able to easily tie into that robustness via CamelBones allowed for an application I needed to write to be completed in three days instead of three weeks. It does appear that Sherm has been trying to improve his career position lately, but the distribution is still strong and being actively used (although the PPC->Intel move may change things).

What I have here is an example project that I threw together that shows how one ties into CamelBones and makes object calls to perl objects loaded at runtime. It was based off these posts to Usenet back in Oct 05.
Written in Objective-C and Perl.

none
Binary Clock My good friend Dave Trent bought me a Think Geek LED binary clock for Christmas... and I'm now completely under its control. It's first demand? Create an OS X application that simulates what it does. So here it is.
Written in Objective-C using the Cocoa framework.
screenshot #1 XCode Source

Application

rgrep Recursively searches a directories contents for something. Better than 'grep blah */*/*' and solves the dreaded 'grep: arg list too long' problem.
Written in perl and requires a couple standard UNIX utilities.
screenshot #1
screenshot #2
IP Converter Turns IPv4 addresses into a single numeric number. Spammers tried to use this stuff to confuse people a few years back... but it's pretty good for when you need to sort IP addresses.
Written in perl.
screenshot #1
quotemeta Does what the perl 'quotemeta()' does, only in C: escapes special characters in a character array.
Written in C.
none
Numbers to Words Created mostly just to see how hard it would be to do, it takes a number and converts it into the words it comprises. It'd be kinda cool for a web counter... until you get up into the hundreds of millions of hits. Then half your page content would be your counter.
Written in perl.
screenshot #1
WebPage Clock Countdown I was making a website for my wedding and I wanted to put a clock counting down the days, hours, and minutes until the big day. I found a lot of javascript that sort of did what I needed, but they all put their output into a <INPUT> tag, which looks tacky. So I wrote this instead. Uses a <DIV> instead, works in NS4.x, and just looks better.
Written in Javascript.
demo none
WebPage Scrolling Marquee Much like my woes with the Clock Countdown above, I needed a scrolling banner for a site I was working on and the only ones available all pushed their content into <INPUT> tags. Positively gauche! Mine works with <DIV> instead.
Written in Javascript.
demo none
Thanks again to Ken Saunders at mouserunner.com for icons.