I guess programming has been a slight side interest of mine for the past few years. I have experience with Java, PHP, Lua, Javascript, Perl, and other random languages. On this page, you'll find various examples and scripts of different programming projects I have worked on.

Ragnarok Online Database

Language: PHP & MySQL
Date: 2005-2006
Source: Coming soon!
In January of 2005, I took over RODatazone, which was a popular Ragnarok Online fansite describing in detail various in-game mechanics. A lot of the current information was embedded into javascript arrays, so I needed some other way to update the site, and do it dynamically. I decided to create a database using MySQL and PHP to interact with that database. This was a project that took some various time and effort to create.

It's still a work in progress, and I don't feel that it's refined enough to quite release the source code to yet. But if you're still interested in looking to see what an early development build looked like, and how it worked you can head on over to rodatazone.simgaming.net/test/ and login using the username "test" and password "test".

Tiny Basic Parser

Language: Java
Date: Spring 2006
Source: tinybasicparser.zip
This is actually a group project I worked on the spring semester of my sophmore year at Samford University. Two other students, Ben Dennis and Alex Karaman also worked on this project. Our project was to create a program in Java that would parse a valid Tiny Basic program and run just like a normal Tiny Basic program would.

I mainly worked with JavaCC which helped us define the various rules that determined whether a line of input was valid, while both Ben and Alex worked with creating the storage process and working with the GUI window interface that would allow us to input programs. We mostly finished the project, although we never got to the point where we could throw basic error messages from the input, but at least it was working for the most part.

Homunculus Skill-Autocast Script

Language: Lua
Date: Spring 2006
Source: autocast.lua
For years, I had been playing an MMORPG, Ragnarok Online when they came out with a new feature, the homunculi. These homunculi were meant to be a sort of slave, or "pet" to the alchemist class. What made the idea even more interesting was that they allowed for you to create AI and import it into the game using a the Lua programming language.

I didn't really do too much, but I wanted to write a script where your homunculus could automatically cast skills without you having to worry about manually doing it yourself. You can find that script here. There was already a default script included with the game that would allow most basic features, but you could plug this right into that script and would allow you to autocast skills based on percentages you set in my script. Right now, it only supports two types of homunculus, and I had planned to support the other two types in the future but never got around to it.

A Dynamic Approach to Searching Music

Language: Java
Date: Spring 2007
Source: musicsearch_source.zip
Executable: musicsearch.zip
Music and Computer Science have been a joint interest of mine for many years. For a long time, I imagined how cool and interesting it would be to be able to identify a song just by being able to input a portion of the melody. Through techniques learned in Artificial Intelligence, I have devised a method that might could be use (and may already be used) to allow for searching of music.

I have created a program, that "conceptually" shows how it's done. I'm not dealing with the issue of translating sound into some form to be used on the computer, there's other software out there available for use. I'm assuming that this has already been done, and am just converting from a melody with just one line of notes.

The specifics are pretty simple. Instead of dealing with notes, and note values I perform a conversion by abstracting away and reducing everything to just half-step intervals. This allows a phrase to match any other phrase in a song even if the phrase, or the song itself is in a different key. For example, a G-natural going up to an A-natural would result in a +2, while in reverse it would be a -2. This results in a long string of intervals for each song/subphrase. This is then searched using the Dynamic Programming Algorithm and matches are returned based on a percentage value which can be set by the user. More information and specifics about how the program works can be found in this paper.

If you're interested in running the program, or viewing the source code they're available up above. All the files needed are in the zip files. To run the program, you need to have the Java Runtime Environment 5.0 (JRE 5.0) installed before executing the .jar file.

File Regex Matcher

Language: Java
Date: Winter 2008
Source & Executable: FileRegexMatcher.zip
Okay, so this isn't really much of a program, but I hacked it together in a short time. I got tired of having to search through files looking for a string of a certain format, or how many times it occured in the file. Basically, what this program allows is for is to open a file and run a valid java regular expression against the file. Then you can either look at the output of matches, or save the matches to a file for later.

I know Linux has grep, and I didn't really look for Windows software that does this, although I'm pretty sure that some probably does exist. But this was just something for fun I guess, and it didn't really take that long to write. Sorry if you run into any bugs or issues, but I haven't really run very many tests, and it has worked pretty much for the use I wrote it for.