wtth
wtth is a program that connects to Humans vs. Zombies.org, checks for new zombies, and reports them to Twitter. I run this from a cron when there is a Humans vs. Zombies game in progress on campus.
jgit-describe
jgit-describe is an Ant task that emulates git-describe using only Java code(doesn't require git or native code). The commit description is saved into a property for whatever use. I've been using it to name jar files.
jff2dot
I had to make a lot of automata in JFlap for class, but the professor wanted everything turned in on paper and JFlap is a terrible program for layout and display. This program converts JFlap finite automata, push down automata, and Turing machines into Graphviz files.
Usage: jff2dot.rb <jflap.jff> > <graphviz.dot> converts jflap.jff into graphviz.dot.
Java Enemy Territory Launcher
This program connects to a Return to Castle Wolfenstein: Enemy Territory(RTCW: ET, Enemy Territory, or just ET) server and shows information about the game currently in session.
Features:
- Interface looks similar to the interface used in the game.
- Supports colors in server and player names.
- Displays a picture of the map.
- Allows the user to join the game by clicking the “Join Game” button.
Technical details:
- The server interaction is handled by a library I wrote called ServerInfo. I only tested it with RTCW: ET, but it should work to some degree with other Quake 3 based games. The library launches a background thread that periodically gets updates from the server.
- The launcher locates the user's installation of Enemy Territory by checking in the default locations and asking the user. Map images are loaded directly from the map files. The images are sometimes in TGA format, so the launcher includes a custom image loader to supplement Java's built-in image format support.
- This is a Java Web Start application because the idea was that somebody running an Enemy Territory server could grab a copy and change the server address in the JNLP file and have a working launcher for their server.
- The source code is under a slightly modified BSD license and is available inside the jar files.
Fill Slots
In highschool I took a robotics class and at the end of the prepared material the teacher assigned some extra credit projects. My project was to keep some block holders populated with blocks. The project couldn't be completed using the standard control software, so I wrote a Java program that uses JNI and some Windows API calls to control the robotics program.
User Bar Maker
This program makes those little bars like the ones on Userbars.org.
Features:
- Fully customizable.
- Image updates in real time.
- Runs inside the Java Web Start sandbox.
- Terrible user interface (not much of a feature).
- The source code is under a slightly modified BSD license and is available inside the jar file.
NetGrowl.jar
This library sends Growl(or Mumbles) notifications by implementing the NetGrowl protocol as seen here. Unlike the official Java bindings, NetGrowl.jar can be run on Windows and Linux computers.
The source code is under a slightly modified BSD license and is available inside the jar file.
MIDPWumpus
A Java Hunt the Wumpus port for cell phones. This works for me on my phone. I had to implement my own keypad input system so it might be funky on phones that don't have the standard cellphone layout.
I also made a Hunt the Wumpus clone in Ruby.
猫(Neko)
A Mac OS X port of the Neko program written in Objective-C. You can run Oneko on Mac OS X but the cat doesn't appear in front of Mac OS applications, so I ported it to Cocoa. My version does not change the mouse cursor or support different themes. This is based off the public domain Oneko code.
This program does not show up in the dock. To close it, you either need to open the terminal and type “killall Neko” or open the Activity Monitor and quit Neko.
Recorder
Mac OS X doesn't come with a simple recording program, so I made one. This program records AAC audio into a file named “blah timestamp.m4a” where “blah” is the text typed into the destination box. This program listens for all key-presses(even ones made in other applications) and toggles its recording when the user presses the “Help” key on some Apple keyboards. I set this up for recording simultaneously along with another application.