These are a few of things I've done. Some of them are class projects from ASU. As I now have more free time I'll be putting up more programs with everyday, practical, value. You are free to use, and modify them as long as you give me credit.
If you like, or don't like any of the programs/ scripts I've done, want to suggest improvements etc
I'd love to hear about it.


Assembly

CSE225 project5
I don't know why professors like assigning money management programs so much. They must be thinking about how much they made in the 'real world'. Another banking simulation, this program handles does all the regular bank account operations including create and delete. there were some additional specifications that made it quite painful to write. (small size being the most difficult.) To run it you will need an HC11 6800 series processor and a driver (I've provided a sample one for you).


C++

Memory Simulation
If you can code something, you probably understand it. That's what this project was about. In CSE330 (hardware) we had to write a program that simulated memory in a CPU. I wrote a pretty cool debugger for the various modules.

Bezier Spline Patch
This is a neat program of no practical value what-so-ever! It uses a 3d engine I wrote to display a grid that can be modified by cliking on the intersection points and then using the arrow keys. Right clicking and dragging changes the view point. You need windows 98 or 2K to run it.


Java

donovan
This is a library I'm building. I'll update it as needed.

File Renamer
This little file renaming utility can be pretty handy if you want to clean up your file names. You can select file extensions or just let the program rename everything in the directory. It also supports Undo (only for the last rename action) and does renaming with a fixed number of digits so the files stay in order (nothing worse than file "1000000" coming before file "2") pick your filename prefix (what goes before the numbers) and your sort order (by NAME, DATE, or SIZE). if you've already renamed files in another directory and wish to continue the numbering scheme from where you left off you can pick the first number, (say 200) and keep going from there....
NEW 2002.04.23: I've just updated it. It now does case modification on files. It only does ALL upper case or ALL lower case. If doing a case modification it also supports directory recursion. I prettied up the code a little as well. (if you want the code, just ask).

If you can think of any other features I should implement just let me know.


Image PopUp
I like pictures. Browsing the web for pictures can get pretty tedious, always having to click the back button, images that come up in separate windows that you then have to close separately. I decided that I'd never put images on my site that require this level of 'clickage'. Being the lazy person that I am I decided to solve the problem ONCE, and be done with it. The result of my efforts is this program. What does it do? It's a gui program that creates a javascript you can include in your html file. when you call the javascript with the name of the image you wish to display it will pop up a window that is customized to the image size NOT the other way around. To use it just point the program @ the directory where your images are (on your local hard disk), specify your special effects and where ALL of the images will be located on-line and letter rip. I must admit that the processing time for an image depends on the image size..... I told you I was lazy didn't I? If you'd like to see a demo, go to the photo section. It requires JRE 1.3 or higher to run. Follow the directions in the readme file && || contact me.

MGallery
This is a new incarnation of ImagePopUp. It does MORE, and less. This application is able to create the galleries you see in other parts of this site. You can add captions, specify your own colors, and the number of images per page. There are improvements to the popup windows as well. Mouse-over tool tips can be added to the popup windows with relative ease. (you can specify colors for those also) The file format has changed to make it easier to add images if you don't want to go through the bother of running the program later on. Because a large amount of time might be invested in creating galleries/popups with this program it is also able to read the files it creates. This should really help things out when changing tool tip text or getting tired of typing in a 100 image gallery. If you don't want to use the gallery you can include the javascript files it creates in your page (just like in Image PopUp) and the program will work the same as always.

Some basic improvements have been added to the popup windows, and some less used features have not yet been re-implemented. The program now has better image centering on the screen. It also supports image sizing to screen. The program was developed for JRE 1.4.

Notice I will no longer be developing this version see MGallery Thumbs for more information

MGallery + Thumbs
This is currently the same as the original MGallery BUT courtesy of ImageJ and Thumbnail_Maker it has the ability to generate thumbnails. This means you nolonger need to use an external compression program (like thumbs plus) The only reason I'm keeping the older version aroud is that the new version is 600k.

Search Engine
Evil, I wrote this for a class. Much of it is based on google search technology. It uses the HITS alorithm (because I think it's better than pagerank) for completeness, does vector space similartiy check on boolean results to rank documents. Sadly, it does not do any sort of vector dimension reduction. (but it does provide query expansion if you want to increase dimensionality, funny that) I include this here only because it has some really cool matrix optimization techniques and I spent a loooooog few weeks on it... (never take a class from a prof that likes his subject unless you want to work really hard) Oh, I don't want to forget, you need to have the com.lucene in your classpath and have your own web cache (crawled pages stored locally) to use it. If you get confused just send me a note and I'll be happy to ask you why you wish to torture yourself like this. (I will also give you instructions)

Bank Transaction Management
This was my graduate project for CSE 445. It illustrates the use of patterns in programming design and networking. This program (or series of programs) simulates Bank computer systems and a central exchange system. This includes validation, error correction, fault recoveries (errors in response or downed banks) and lots of other fancy features that I would tell you about but I'm a little tired right now. This project was for 2 people and due by the end of the semester. I did it by myself and finshed a month ahead of time! It requires JRE 1.3 to run.

Line breaker
I'm lazy right? I made this so I can write out lines of text and not always have to put frigging "br" at then end of each one.

JBike
Fun! This is my Java implementation of the classic "Lightcycles" video game. It's networkable (you NEED 2 or more players to use it) multithreaded and 'slightly' customizable. source and .class files included.


Javascript

DPupDate
This is a little popup calendar I modified from the original update. there's a readme file included that describes all the functionality of the original pupdate. I've added the ability to pick your own color scheme without rooting around in the code. (As the original author wisely suggests you do not). I've also added the ability to limit date selection (settable in the .js file) AND make the pulldown determine it's own length based on the date range. Why would anyone want this? One too many Pan-Galactic Gargle Blasters

dfader
There are some pretty nice fader scripts out there, but most of them are junk. This one is a little more complex to use than some; but it's far more versetile, and can even call other scripts when it's done running! Tested in IE 6 only.




Visual Basic
Questionair
Completed for CSE360 "Software Engineering", (Team project) this is the ONLY program I've worked on in Visual Basic. It's a 'game' that asks questions and keeps score for several players.