I moved the site away from being just static html to a full application. The site now stores everything in a MySql database. The site uses Java Servlet Pages and runs on a Tomcat web server. Up until November 8th, 2005 I was hosting the site on Lunarpages in California. On that day they decided to shut us down without telling us. The site has continued to get more popular over the year with up to 500,000 hits a month. According to Lunarpages support our site was taking too much resources. Unfortunately they gave us no warning and no other options. They offer dedicated servers but after 3 days of email tag they told me there wasn't any available. Bottom line: Don't use Lunarpages. Our site is now hosted at Aplus in San Diego.
Thanks goes to David Pierce and Shandra Morton for getting this site off the ground. I took over this site in March of 2004. The first order of business was to move the site to a provider with technical support. We had a version of formmail to email dog applications. Hackers were using this vulnerability to spam people. People would apply for a dog and submit the application. This application would rarely if ever get sent.
Up until recently most of the time has been spent writing the software to manage the pictures and applications which are now all stored in a database.
My name is John Dwyer. I write software for a living. Click here for my resume. Gary Ormsby who is also a software developer gave me a hand by writing the original Events application. I've since taken it and added a new look and feel and email notifications(reminders, add/drop notifications).
The number one goal was to provide a site whereby the data was fresh and didn't require a person to copy and paste html all over the place. I wanted to provide the ability when we get a new dog one of our volunteers can log into the site, upload the dog picture and description and instantly the main site will show the new dog for adoption. Having only one person to update the site isn't scalable. The other more immediate goal was to shut down the security hole and remove the old formmail application. I wanted to move to using pure Java, Java Servlet Pages and a real database so that no applications were lost.
Adding style sheets to the site was a big improvement. The future goal is to have more people use the lab site as an application for signing up to events, changing the info and pictures for the dogs they are fostering, and continually move to having all data be dynamic. New technologies that I'll be implementing:
The lab website uses the following technologies:
The original site written in July of 2004 uses JDBC. There is a bunch of code that opens database connections, creates prepared statements, executes queries, etc. Hibernate removes all of this drudgery. I specify the hbm.xml files that describe the tables and relationships and I'm off an running.
I've got two important ant targets: local and release. ant local builds a local version of the lab site and handles setting up all of the local config files for me. ant release builds the production version which is a war file and contains the production config files. I'll be adding a target to create build labels via cvs.
The CVS plugin for IntelliJ is awesome. There is a toolbar that allows you to show history, commit the file, and rollback changes.
At work I use Oracle. MySql offers me many of the features I use in Oracle.
The site uses Log4J for logging. I wrote an article on how to configure Log4J with Resin which was published at Lunarpages. My philosopy on logging is that it is vitally important to log any error conditions that occur in the system. Debug statements are extremely helpful in debugging runtime problems. Another programming philosophy is to NEVER eat exceptions. Instead log them.