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.
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
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.
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.
I’ve found using php’s included MySQL functions to be cumbersome, take a lot more code than necessary, and create code that is not very readable. I am also not completely happy with PDO, so DSQL is my solution to this problem. I use it heavily in all of my professional web projects.
The classes in this library are written generically so they could easily be converted to any other database software.
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.
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.
My music directories have been growing for over 2 decades in a folder based hierarchy, often using playlists for organization. Plex’s music organization is counterintuitive to this organizational structure, and Plex currently does not have an easy way to import external playlists. Hence this script was born :-)
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.
Description: An interface to manage Recipes for Guild Wars 2. The interface allows filtering and sorting recipes by many variables. It also has user toggleable checkboxes per recipe that you can use to group and filter recipes. For example, all recipes with the first checkbox selected might be recipes your primary character already knows.
This project has 2 parts. The first pulls all of the Item and Recipe info for Guild Wars 2 into a database. The second is a client side only recipe management interface (no server processing).
I threw this together for a friend in 8 hours, as some of its functionality coincided with stuff I needed for another one of my projects. It was not meant to be pretty, so the interface is a bit spartan, and the code comments are a bit lacking. It also doesn’t check user input very thoroughly :-) .
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
#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
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.
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.
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.
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.
#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.
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...
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.
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.