Technical Information for KevinMorris.org
This site is intended to be my weather information portal and software development
sandbox for testing and developing skills in new programming languages and frameworks.
It has gone through several iterations since its inception in 2002: J(2)EE, .NET, and currently Ruby on Rails.
Weather was originally chosen as a domain because of the subject's rich and publicly available data sets.
This gives me an excellent backdrop with which to experiment with a wide variety of technologies.
- At a configurable time interval, several "miners" written in pure Ruby and running on
Ubuntu Linux crawl pages for pertinent pieces of information, in this case the current temperature
as well as the next week's forcasted high, low, and chance of precipitation. These miners fit into
a general framework based on the Template Method design pattern which allows me to simply extend
an abstract mining class if I ever want to add a new data item. These miners then upload their data
to a MySQL database running on my hosting company's machines.
- The application responsible for displaying the mined data is a Ruby on Rails application using out-of-the-box
scaffolding. The display application is completely decoupled from the miner framework mentioned above.
This allows safe failure of the mining framework if there is a network problem or the target pages change.
The display application simply displays the most current data it has available.
- The calendar allows a user to check the temperature for any time that is stored in the database. It
utilizes Yahoo!'s YUI framework to render the calendar and Prototype's AJAX libraries to make requests
to the server.