Project List
These are various web development projects I've written over the years. They have all been solely coded by me, unless otherwise specified, due to lack of other coders in the department. Screencaps have been provided for all projects that are not hosted locally, to ensure that they are still visible independently of the source. Due to the size of the images (they are all quite large), all images open in a new window. If you have a popup blocker, either right click on the link and select "Open in New Tab" or hold Control when you click the link to bypass your popup blocker. My apologies in advance for the inconvenience.
Rhythmtoweb plugin Hack
http://amhill.net/projects/rhythmtoweb/Current status: works awesomely!
Technology used: Python, Glade
Details: This project, a plugin for Rhythmbox Music Player that sends information about the currently playing song to a URL of your choosing, was originally developed by Felix Oghina (Rhythmtoweb Project Website). The main problem I had with it was that there was no verification that the person submitting data was the person that SHOULD be submitting it. It was basically "Security through obscurity." My modifications included adding a "secret" key (sort of like an API key) that would prevent just anyone from submitting data. Since the data submitted writes out to a file, there is an obvious security risk.
Monty Hall Simulator
http://amhill.net/projects/montyhall/Current status: functional, but not pretty.
Technology used: PHP
Details: Regarding this blog post -- this simulator takes N sample-size and runs a monty-hall 3-door simulation, reporting the success rate of both switching and not-switching. As predicted, always-switching is very superior. :)
Richmond Area Free Thinkers Society
http://richmond-freethinkers.orgCurrent Status: Done!
Technology Used: HTML/CSS, Wordpress (PHP / MySQL), Javascript/AJAX
Details: RAFTS is a local Freethought group that I co-founded, along with a few local friends. My friend Dave designed an illustrator comp, and then I hacked together the HTML and CSS for it, customized a wordpress theme, and added additional features including the AJAX contact form (using prototype library) which uses a mailer script I wrote. It also makes use of the Amazon Affiliate program, including an IFRAME that is more or less seamlessly integrated.
Lightweight Comment Engine
Locally Hosted SourceCurrent Status: Functional
Technology Used: HTML/CSS, PHP, Javascript/AJAX, MySQL
Details: A faculty member asked if I could write a widget that would easily provide him the ability to use comments on his webpages, but it would need to be abstracted enough that it could be applied to any number of pages. The widget is easily added to any page (include a JS file and a CSS file and place a
<div id="comments"> </div> somewhere on your page, and that's it!). It records the name (if they provide one) and the IP address of all commenters, and is posted via AJAX.
There's currently no administration method, nor authentication, nor validation. It's extremely lightweight. Feel free to customize, but stick a link back this way in your source code, if you borrow it!
Susanna Tanner Photography
http://www.susannatanner.comCurrent Status: Completed (August 2007)
Technology Used: HTML/CSS, PHP, Javascript/AJAX, Flash 8
Details: This project was a redesign for my co-worker, Susanna. She wanted three basic things for her website:
- Galleries that she could easily manage
- A blog
- Background Music
Rock Paper Scissors!
http://www.amhill.net/projects/rps/Current Status: Completed
Technology Used: HTML/CSS, PHP, JavaScript, AJAX
Details: Written for my server-side programming class. It makes use of a modal AJAX requestor that behaves differently based on the type of output object it's passed. (i.e. if it's a DOM object, it sticks the output in innerHTML/src, if it's a function, it passes the output as a parameter to the function, etc.) I don't know that the design is *completely* polished -- there is probably a little more I can do to spiff it up a little bit. But it looks decent as is.
IU East Athletics Page
http://www.iue.edu/athletics/ (defunct)Current Status: Completed (May 2007)
Technology Used: HTML/CSS, PHP, MySQL, WordPress Software, jquery Javascript library
Details: I hacked the Wordpress templates to bits for this. The events, athlete of the week, and the loop itself are all custom queries. The navigation links are all built via custom-queries, and the individual sports teams' pages are a series of hierarchal WP pages, using custom written page templates. The athletics department really loves this because it allows them to have a lot of control over their content (as opposed to using contribute) while still maintaining a consistent structure.
- Screencaps
- Main page (new design) (590kB) [Opens in New Window]
- Main page (old design) (202kB) [Opens in New Window]
- Child page (old design) (192kB) [Opens in New Window]
IU East Nursing Page
http://www.iue.edu/academic/nursing/Current Status: Completed (May 2007)
Technology Used: HTML/CSS, Dreamweaver Spry widget
Details: This departmental page was redesigned to update it in tandem with the main IUE.edu rollout. The entire layout is a CSS-based tableless layout, with faux-hacks in place for IE compatibility.
- Screencaps
- Main page (131kB) [Opens in New Window]
- Child page (110kB) [Opens in New Window]
IU East Success Website
http://www.iue.edu/successCurrent Status: Completed (April 2007)
Technology Used: HTML/CSS, PHP, MySQL (for blog feeds)
Details: This site is meant to be an outreach to future traditionally aged college students (read: High School Juniors / Seniors). The comp was designed by the Office of Marketing, and then I rendered it into HTML/CSS. The main page retrieves a blog feed from two of our student bloggers, and the background for the main page rotates on reload. The flash widget in the page was designed by my coworker (At the time of this entry, he is currently better trained with Flash than I am). The child pages use "sandbag DIVs" in order to emulate magazine-style text flowing (Screencap 2).
- Screencaps
- Main page (161kB) [Opens in New Window]
- Child page (171kB) [Opens in New Window]
MadLibs
http://www.amhill.net/projects/madlibs/Current Status: In progress (Last Updated: January 2007)
Technology Used: HTML/CSS, PHP, MySQL, AJAX & JavaScript
Details: Currently, only the barebones structure of the application work. You can "Load a Madlib", "Fill Out a Madlib", and click on individual words to have them randomly replaced with a different word of the same part of speech. When I get some more time to work on it, I'll add functionality for user-created madlibs, user-supplied words, etc.
IU East University Advancement Application
This cannot be accessed by non-employees.Current Status: Completed (November 2006)
Technology Used: HTML/CSS, C# .NET (2005), MS SQL
Details: This was a "rescue project." The original application, written in Visual Basic .NET, was not working correctly and Donor-hunting season was approaching. My job was to fix or re-write the application. Up to this point, I had never used C#.NET before. My programming background was mostly C++ and C-style syntactic languages. The application took about 2 or 3 weeks to write, but the project took an additional 2 weeks or so beyond that because the database, which housed over 9,000 non-normalized records, needed to be migrated to a normalized database. The coding wasn't completely flawless, but it was pretty darn good for my first foray into C#.NET! Some features included: parametrized dynamic queries (to prevent SQL injection), database-driven drop-down lists, data validation where necessary, and the ability export to an Excel document.
- Screencaps
- Patron Browser (55kB) [Opens in New Window]
- Report Builder (61kB) [Opens in New Window]
City of Richmond Content Management System
This cannot be accessed by non-employeesCurrent Status: More or less completed (October 2006)
Technology Used: HTML/CSS, PHP, MySQL, JavaScript
Details: This content management system was developed in tandem with the database-driven website (see below). The idea was to empower every department to manager their own content through a webform which would store the data in a MySQL database. TinyMCE was used for data entry. This was my first large-scale PHP application. At the time that I left my position to go work at IU East, there was still some additional features that needed to be added, but it currently works as-is. It allowed employees to create new announcements (for main page display), create and edit content for their individual department, and some department specific tasks (such as adding code entries to the Richmond City Code database, or uploading bid packets for new projects.)
- Screencaps
- Purchasing Dept. Bid Packet Mgr. (133kB) [Opens in New Window]
- Universal Announcement Editor (65kB) [Opens in New Window]
City of Richmond Website
http://ci.richmond.in.us (Link points to Wayback Machine -- their version of the code is significantly scaled back -- please check the images here)Current Status: More or less completed (October 2006)
Technology Used: HTML/CSS, PHP, MySQL
Details: Let me be the first to admit that my ability as a graphic designer is only marginal. That said, the entire website, from design to coding, was completely built by me. This was my first PHP project, and was developed in tandem with the CMS (see above). The site is entirely database driven -- all the menus, content, and every single page is rendered on the fly by one PHP file. In my opinion, the absolute crown jewel of the whole site is the Richmond City Code database. The entire text of the City Code was entered into a MySQL database, indexed as FULLTEXT, and is searchable using the search form on the main page. Tags were also used to allow abstract associations between entries (i.e. "bike" or "road" or "definitions"). Screencap 2 has some sample output from the Code search.
At the time of this writing, the city is contracting another firm to re-design the website, yet again, but this time using Joomla! as their CMS. To be fair, if I had known about Joomla!, I probably would have went with that instead anyways, but I don't take it personally. The project was great experience and a lot of fun!
- Screencaps
- City of Richmond Main Page (198kB) [Opens in New Window]
- Richmond City Code Search (218kB) [Opens in New Window]
City of Richmond Knowledge Base
Not accessible by non-employeesCurrent Status: Completed, but unused (August 2006)
Technology Used: HTML/CSS, PHP, MySQL, JavaScript
Details: This was the progeny of a cluttered desk. I had all these notes laying around everywhere -- little mini-solutions I discovered for various problems. I thought "You know, this stuff would be a lot more accessible if it were in a searchable database." When I first started learning PHP and MySQL, this projectlet was used as a way to practice both. I set up a Linux system in our office, created a database and coded up some pages. We ended up not really using it -- I don't think my co-workers really understood how useful KB's are. But either way, it was a useful tool! Employees could log in, post a question, and when myself or my boss logged in, it would show us all unanswered questions. Q&A's could be tagged for abstract associations. Plus it had that hackneyed "retro" look to it.
- ScreenCaps
- Knowledge Base (143kB) [Opens in New Window]



