I announced Friday that I deployed a complete, ground-up rewrite of Weather Now, but it looks a lot like the old version. So what's really different?
The differences between the versions go all the way down to the operating system. Version 3.1, which I launched in July 2007, ran on ASP.NET 2.0, SQL Server 2005, and a motley collection of sub-components I wrote from 1999 to 2004. The current version runs on ASP.NET 3.5, SQL Server 2008, and completely new components I re-wrote from first principles starting in September 2007.
I've got a lot of technical information about the foundation code, called the Inner Drive Extensible Architecture, over at my professional website. The IDEA handles all the nuts and bolts of the Weather Now application: messaging, database access, measurement conversions, time zones, and on and on.
The next layer up from that is the Gazetteer, version 0.5, which I wrote as an interim product to bridge between the geographical database that ran Weather Now 2.0 through 3.1, and the completely-new geographical database I'm planning for 2010.
Right under the user interface (UI) layer is another set of components dealing specifically with weather. Like the Gazetteer 0.5, the Weather 3.5 components bridge between the existing (2.0/3.0/3.1) weather data and the new design I'm working on. The combination of Gazetteer 0.5 and Weather 3.5 means that I could rewrite the application without worrying about the database.
Finally, at the top, a completely-rewritten user interface, written just in the last few weeks. (I had to write all the invisible stuff first.)
You can see an obvious problem with this, at least from a P.R. perspective: it's really hard to see any differences between old and new, unless you know what to look for.
Over the next few weeks, I'll describe in more detail what changed. I'll start with an issue that bugged the heck out of everyone, including me, for years.
Here's the top of the old home page:
There's the truly annoying measurement drop-down, showing "Aviation" as the current measurement system, and the temperature and wind readings from Chicago, showing degrees Celsius and knots, respectively. Every time you go to a new page, the application resets to Aviation, even if you tell it repeatedly you want to use English or Metric measures.
Here's the new version:
No dropdown. And, for people using U.S. English as their default language (your browser automatically communicates this information), the application defaults to degrees Fahrenheit and miles per hour.
A user from France, however, would see this:
So how do you change what you see? The new Preferences page, which not only lets you choose any available language or measurement system, but also remembers what you've chosen for your whole session—or permanently, if you have cookies enabled.
All the new code I developed for the application made fixing this long-standing annoyance almost trivially easy. Still, it's not complete yet. Version 3.7, which I hope to release this autumn, will allow users to create their own profiles, permanently storing not only their language and measurement choices, but also things like what they want shown on the home page.
There's another thing the screen shots show that you may have noticed. I'll talk about that next time.