SoftwareThis web site is produced using free software from the following volunteer projects:
How it worksThere are two parts to the system: Data collection and data presentation.
Collection is easy. A small perl program runs every fifteen minutes. It uses the FreeBSD fetch(1) program to grab the latest data from the BoM via the FTP protocol. The .tar archive containing the samples is unpacked, then each file is run through another perl program which loads it into the PostgreSQL database (potentially updating any samples we've already seen).
For presentation, there's another perl program which the Apache web server calls via CGI -- that's the /cgi-bin/atmos bit in the site's URL. This program's job is to accept queries from users, who tell it what they want to see by selecting options from pop-up menus. Based on those queries, the program extracts the requested data from the database, and uses it to construct configuration files for Peter Temple's original plotting software (the same code which has been building these pages for years). That's how the graphs get generated; it all happens on demand whenever someone visits the web site.
The HTML output which is sent back to the user's web browser is also dynamically generated, via a simple templating language developed for this system. The templates have tokens in them to tell the content generated from the /cgi-bin/atmos program where it should go. Using these templates, the aesthetic details of the site ("look and feel") can be adjusted without needing to modify the underlying software. The tokens in templates can also reference other templates, so I can build up the final web pages like Lego, picking and choosing from template modules until I've reached the desired result. This mechanism also enables the location-specific customization on the temp trace screens, by including an (optional) template for each city.
Changing one template is sufficient to change the whole site (for example: If I alter the "menu" template, all of the screens which have menus down the left hand side of the screen will automatically include my alterations; All my changes can be made in one place).