Warning: you do not have javascript enabled. This WILL cause layout glitches.
Projects - List view
The following is a list of all projects I have been able to find that I have worked on over time, sorted by rating.
Click on their title to go to their page with further information.
Many projects are unfinished, or just not organized enough yet to be uploaded, and only have their basic information displayed.
I will be periodically getting up the projects marked in green first, as they are done, but just need some cleaning up.
Don’t expect the non-completed red ones anytime soon. Alas, but life and real work keeps me away from the fun stuff....
When projects are uploaded for release, much more information will be included. It unfortunatly takes a lot of time to get everything sorted out for release. Questions, comments, and suggestions can be sent through the forums.
Description: A suite of products for managing ticketing and entrance into venues and providing social media and cashless solutions for (mostly) music festivals.
Current products include databases and software for “white ticketing” solutions, ID badge creation and management systems, facebook/social media technology integration, and ticket cashless/addon management.
Virtual cube with multiple face and cube view rotation methods, find solution (in under 20 moves), input custom cube state, remap face colors, save/open cube states, view from multiple angles, solution tutorial, and timer
Concepts: Emulation (Which involves too many concepts to list including CPU architecture, sound wave generation, reverse engineering, graphics, and many many more)
Updates the IP address of a domain which you own (for example, home.yourdomain.com) to that of the reporting computer. The client connects to the DNS server that you (or someone who can install this) has full access to. With this, someone outside your location can always look up the IP address of your home computer to access it for whatever reason across the Internet. Some example reasons include troubleshooting your computer via remote desktop, a web server, or web cam access. This works across NATs too.
This was very useful when ISPs often forced dynamic IP address changes when release dates were hit. Fortunately, you can bypass that nowadays by just keeping the machine (usually a router) with the assigned IP address active, which is especially no longer a problem now that home [wireless] routers have become such a norm.
Also, adding the extra stuff is always what takes all the time!
Time to program working DDNS client: 5 hours
And afterwards, time to debug, add bells and whistles, make a working service, design, and shakedown making sure it has all it needs: 55 hours
Concepts: Networking, HTTP, executable and memory footprint size minimizing
Base programming concept libraries like networking, file systems, linked lists, dynamic arrays, strings, etc. Developed for cross-OS compatibility and non-reliance on standard libraries
This is an Android [phone] application that displays one random letter at a time at industry standard sizes for a patient to read for visual acuity testing purposes. It is intended for doctors to use as a portable eye test chart.
This set of applications keeps track of a user’s current global position via GPS on their android device so their whereabouts can be monitored through a Google Maps interface. Only the current position is known, and previous positions are not logged. A person’s position cannot be viewed by another user without an access key provided during registration.
I Originally tapped the MMORPG executable memory and pulled the “hidden” character information from it. The second version edited the executable itself and had it display the information in the client’s GUI.
This might be usable for other PC or console games, most likely more PS2 games, as they might use this same file archive format. The program might take a little tweaking for them however.
#1 Whenever you think you’ve come up with an original thought, someone else has most likely had it, and there’s a good chance it has already been written/ acted upon /done.
#2 One fortunate advantage of reinventing the wheel, or writing your own classes for things, is that you understand and delve into them far deeper than anyone who is just taught about them, and uses other peoples compilations/results. You might even come up with original approaches on concepts that are better than what’s already out there by not having your mind tainted by “what’s currently right.”
Concepts: Cryptography, image and graphic manipulation
Description: “Picture Viewer” cycles through a compiled list of image files for viewing at set intervals. Images can also be overlaid on the screen, and this can also be used as a screen saver.
Python wasn’t really built to utilize normal (C based) DLLs and Windows APIs. It’s really clunky to use both of those... but oh well. It’s an interesting language.
Dynamically configure any global hot key to: Set availability status (message can be chosen many ways including via a popup); Move pidgin Buddy List to top/bottom of windows; Hide the Buddy List window or taskbar window.
Takes a hash snapshot of entire directory structures and can compare any parts of a snapshot to parts of any other snapshots.
Quick, easy, and intuitive interfaces to find differences between directories. View differences between files in multiple ways. Many ways to choose how directories are re-synced together.
Includes server to remotely take snapshots and sync files over a network or the internet.
This is kind of like the Unix rsync utility, which I found out about a number of years after writing this. This is much more user friendly though, and more powerful in many ways :-), though it has less options than rsync.
I started developing and mostly finished this applet well before this kind of thing was known on the Internet... well before Gmail existed or any other known sites really used one. Unfortunately, I never really put the finishing touches on it and never really used it.
My best friend in college told me about a keyboard that allowed you to type with only one hand by remapping both halves of the keyboard to the other side (swapping when a toggle key is held down), so that it had a backwards QWERTY layout. So, essentially, you could reach the whole keyboard with either the right or left hand.
It will soon be expanded to instead remap keys based upon a configurable ini file so it could be used for other purposes.
Most of the websites’ I’ve participated in as the primary programmer with information including programming languages used, the designer, creation dates, screenshots, and what I was involved in for their creation.
A menagerie of web base scripts. Besides the pluggable ones, there are also informational based ones like the date and character converters.
See content section for downloads.
Ah my hacking days (1996ish). This was one of the first modern fully fledged Trojan Horse backdoors, I believe. It was completed well before the Internet and firewalls were commonly known, and well before publically available Trojans like Sub7 were conceived. Unfortunately (or maybe fortunately ^_^; ), I never actually used or released it. It was more of a learning project for networking.
Most of the Personal Libraries were originally written for this. Due to proprietary reasons, I am only including one of the visual interfaces I had created for this for download.
File sending application that auto-resumes broken file transfers on reconnect and confirms file integrity through hashes. If errors are detected, the broken section of the file is found via recursively checking binary divisions against hashes until the error(s) are tracked down to a relatively small section (say, anywhere from 8K to 8 bytes) , and the section is resent.
Not sure if I’m ever going to pick this one back up and finish it. Torrents (more specifically, uTorrent) pretty much does what this project was intended for
Source code is currently in a complete mess and needs a serious reworking. I actually wrote the base code for this project out entirely on paper when I was at a relatives for the summer and without access to a computer. Surprisingly enough, it worked perfectly after I typed it in without a hitch. This was the very first real programming project I did, as I was learning my first modern computer language. I was rather proud of it at the time. I wrote it the summer before I entered the 6th grade.
With a little 3D knowledge involving vectors and matrices, true 3D engines can be written in any language. Speeding up these engines however is a little tougher.
Concepts: 3D Geometry, graphics, cross-language development
#1 99% of the time, a person will enjoy an incredibly unsophisticated cute program over a highly complex real time one, ie, a dynamic fractal landscape
#2 Do not base program time-based events on the assumption that everyones computer runs the same as yours. Add actual time (millisecond) based sleeps and checks. (The easter egg originally broke when moving from my [486?] to my [pentium?] because it was based on doing certain actions in a certain amount of clock cycles [computer based time]).
A basic example of plugging my original “Digitally Linked List” (See Scrabble project) into another project. I only worried about making it work for 1 word, but could very easily be adapted for multiple words.
Originally used for a senior English project in high school (which I may put up later), I ended up turning it into a computer language speed comparison
User logs in via ID and takes a multiple choice test. Questions are held in one small binary file, and all user answers are logged in another. Admin can log in and view all user answers, and statistics on tests taken. Includes admin interface to create questions. Completely self sufficient data structure. Would be more appropriate in a web environment w/ database nowadays...
Adds an untraceable hidden encrypted signature to the end of files. Relies on the fact that most file formats store how much data is in them, so any information tacked on the end is ignored.
Create a collage of pictures. Allows resizing images in original or changed aspect ratio. Stores images in collage by layers, which can be swapped. Save file only retains picture location, layer, and size info, so is very small.
Something like this could easily be done in say, Photoshop, but that would take a lot longer and a lot more steps than in something like this which is designed for it.
I wrote this when I first started playing around with numeric bases for encryption and other purposes. Custom arithmetic functions were made to work on base 10 numbers of any size stored in strings.
A clone of a program I had seen and couldn’t find, as the Internet was not yet really around as we know it today, so I just recreated it. If you want to get a laugh out of any easily pleased persons nowadays, just swap out the “poll” question for something relevant to today.
I went to college for 1 year, and during my 1st semester I begged them to let me skip the intro programming courses since the crappy school *cough*Rose Hulman*cough* with its incredibly underdeveloped CS department didn’t allow testing out of courses. They let me jump into Intro to Computer Science 3, which was like, programming concepts or something. Long story short, it was very boring.
I conceptualized this program a long ways back and got a good ways into researching it, and it does seem possible, but I ended up abandoning it due to time constraints. I would have rather implemented it in VC6 (Microsoft Visual C++ 6.0) instead of VC7/2003, but the damn VC6 libraries didn’t want to accept some very important windows APIs for some reason.