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.
Important navigation information: Mouse over a column header for information about its data or sorting/moving options. Hidden columns are reaccessible via the Hidden Columns section below the main menu to the left.
Name
Thumb
Ver
Description
Rtn
Stat
Start Date
End Date
Languages
Extra Information
Concepts
Projected Time
Notes
Requirements
Dwnld
Project Name Title & Link to Information Page
Thumb Project Thumbnail
Version Project Version Number This is only set for uploaded (complete) projects
Description Overview Description
Rating Personal Rating based upon achieved goals, usefulness, final project outcome, time it took to make, and skill level.
Status Status of project with the following possibilities:
C: Completed and released. Updates may still be made in the future
SC: Specs Completed. These are not so much true projects as just data from assignments or such.
-: Ongoing. Project will never be considered “complete” and will be continually receiving updates
%: Percent organized. Project was/is completed, and just need a certain amount of touching up for release. Expect to see these being released periodically in the near future.
%: Percent completed. Project has not been completed, and should not be expected for release any time soon.
x: Abandoned. Project is incomplete and there are no plans to finish it.
Start Date Start Date of Project I am as accurate as possible with these, with a precision of a month. I had to go through a lot of old logs to find some of this info :-(
End Date End Date of Project (Official release, not including updates) I am as accurate as possible with these, with a precision of a month. I had to go through a lot of old logs to find some of this info :-(
Languages Computer languages used for the project Click Here for language information.
Extra Information Main scope and explanation of the project without going into intricates. More information is probably available within the projects information page, especially if project is complete.
Concepts Important programming concepts used in the project
Prj Time These are the guessed (often probably quite far off) amount of time spent doing a project, unless noted with a *, meaning time was kept track of.
Notes Interesting notes, or things I learned from the project
Requirements Requirements to run the project. Windows is always assumed, unless noted with a *, meaning the application was built for cross operating system compatibility.
Download Download Binary and/or Source. A red S indicates the source will later be provided. A red M indicates download information is available in the project’s contents section.
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
Graphics, 3d algorithms, insane cube-i-ness
35
I’ve always been a bit obsessed with the rubiks cube...
Very long project with lots of history. Plays (some) NES games! ^_^
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.
Networking, HTTP, executable and memory footprint size minimizing
60*
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
DNS write/refresh and PHP access to the server hosting the domain, written for the namedDNS server
Personal libraries for generic programming resources
Rating Note: All of these contain basic concepts, but are highly optimized, and made for ease of use and independence upon outside sources where possible, which makes this a nice complex and robust set of libraries.
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
Too many to list
Too many to count
There are some programming concepts many people take for granted.
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 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.
Reverse Engineering, Graphics, Common Sense
25
When you want something, sometimes you have to do it yourself
I really liked some backgrounds on a virtual computer desktop of the first .Hack PS2 games and wanted them for my computer, so I got them.
Reverse Engineering
15
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.
Encrypts text within a picture using a password as a secondary key, requiring it and the exact original picture for decryption.
Rating Note: Didn’t turn out as well as I hoped quality wise. See content section about RGB to HSL possibility. Also turns out all my ideas were already existent.
Good for hiding secret conversations in something that people won’t find suspicious.
Cryptography, image and graphic manipulation
30
#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.”
“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.
Rating Note: Lots of configurable and toggle-able options to make the program more versatile. Can be used to replace standard Windows Picture Viewer or 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.
GUI Design
25
I hate branching library dependencies ^_^ (and creating GUIs!)
A web based application that allows for managing a venue’s daily event bookings.
Rating Note: This is very typical of web CMS systems I put together (of which there have been dozens), and while it wasn't a particularly large or complex project, it delivered strongly what multiple clients needed.
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.
Fully Firefox and IE compliant, with as many useful RichText/HTML markups as I could include.
DOM, Cross-Browser development
?
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.
Low level windows hooks
3
Well, Microsoft is always going on and on about handicapped accessibility...
Rating Note: I much prefer application programming, but have been doing websites for a living for a while, and am really good and experienced in the field.
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.
Networking, security, good fun
40+
While this was completed I do not plan on releasing this, for what I hope are obvious reasons.
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.
Networking
?
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
Weee Solitaire! This was written in the age when Klondike Solitaire was the norm before FreeCell and Spider started taking over peoples' lives.
?
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.
This was an experiment to get some solid performance numbers from computationally expensive processes written in different languages.
3D Geometry, graphics, cross-language development
6
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.
A desktop buddy in the form of a pair of eyeballs that follows your mouse cursor around, keeping the pupils always focused on the cursor.
Rating Note: Was a very simplistic fun little program I thought up while bored in geometry class. Was just learning about trigonometric functions (sin/cos) you see :).
The more program instances you add, the creepier it gets!
Windows APIs, geometry, animation
3
#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.
Recursion, digitally linked list
< 1
Offered to throw this together for a family member that needed it, as I already had all the base components I needed to make it.
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.
Windows APIs, Operating system architecture
?
Don’t you just love being able to save/reload states in emulation? Well now you can do it with a computer process!