Post by Marc on Dec 12, 2012 9:21:28 GMT -8
I'm pretty sure I posted a similar thread to this a few years back, but I figured I'd post it again.
What would you say was/is your favourite development project? Feel free to split it up into desktop/web applications, and post pictures/links if you've got them!
P.S. This thread is meant for sharing work that we're proud of, not for tearing down the work of others, so let's keep it friendly!
Desktop Development
My favourite desktop project would have to be the Random Terrain Generation Engine that I built for a CS project back in high school (I think I was 16 or 17 at the time). Unfortunately, both the application and the screenshots I have are at home on my old computer, so I'll try to explain it as best as I can.
When the user loads the application, it asks you to enter a few things...Grid Size, Minimum Height, and Maximum Height.
Grid Size: A numeric value >= 64 which defines the size of the terrain to be generated.
Minimum Height: A numeric value that can be either negative or positive. Negative values create valleys, positive values create hills and/or mountains.
Maximum Height: Same as above, but generated heights will not be greater than this value.
The application used a mathematic method known as Mid Point Displacement (MPD). Basically, it would define a random value (within the allowed height range) for each corner of the grid, as well as the point in the middle of the grid. From there, it would generate a height for the point in the middle of each of the already-defined points by averaging out all the values and adding a random small height value to the calculated average. This would continue until each point on the grid had a defined value. From there, it would loop through each point, and assign a texture to each square on the grid depending on its height, thus creating a randomly generated landscape.
The eventual goal was to create a collision detection system, as well as a character that could run around the map to explore it, but due to lack of time, I ended up simply allowing the user to move the GL "camera" around the map (in essence flying around the map).
This explanation may be slightly confusing, so I'll try to find the screenshots when I get home from work tonight and upload them.
EDIT: As I scanned through my old hard drive last night, I remembered that I had housed the project on an external drive that corrupted. Luckily, I did have a backup of the project. Unfortunately, the backup is from a few weeks before I had completed the project, meaning there is no shading, no texturization, and no smoothing. But oh well, you can still get the idea from the screenshot below...
Web Development
This is definitely a difficult choice, simply because of the number of projects that I've done. I would have to say that it's a tie between three of them. Cr0w Online, uMonitr, and the chat room system I once developed.
Cr0w Online: Some of you may remember this one. It was my first large-scale PHP project back in 2006 when I was new to PB and was just starting to learn server-side languages. It went through two-and-a-half versions, and featured (all custom-built) a forum, shoutbox, free and paid resources, free and paid services, web hosting, an affiliate/referral system with stats, CMS / admin section, and a bunch of other stuff. It was probably the biggest project I've ever done, and I learned a lot from it (mainly the importance of security, right Peter & frufru ? ). I'll see if I can find any screenshots later.
Chat Room System: I had gotten really tired of Flash or Java chat rooms being all that was available, so I took on the task of creating one using JavaScript & AJAX. I wish I had known about libraries like jQuery back then (although I'm not sure they existed at that point in time), but I made it work. It featured multiple rooms, password protected rooms, private chats, site-wide member chatroom invites ("User A wants to chat! [Accept/Decline]"), staff powers, standard chatroom commands (/me, /ban, /kick, etc.), per-message font customization, and an automated, unobtrusive advertising system. I believe the system is still being used on a few sites, so I'll see if I can find a link to share.
uMonitr: This is my current undertaking, created using Django and Python. Basically, I needed automated alerts for the servers and websites that I maintain at work in the event of an outage, and I didn't feel like paying for it. So, I decided to make a free service that not only I could use, but others could take advantage of as well. Currently, the production version only has one monitoring option (HTTP Header Response). This is because of server limitations. My development version has quite a few (more advanced) monitoring options, but those won't be implemented until I invest in a VPS, which won't be until I complete the BETA testing period. I will, however, be implementing additional basic monitoring options as time permits. There's a link to it in my signature if you'd like to check it out.
What about you? Which project(s) are you most proud of, and why?