5 comments

[ 4399 ms ] story [ 888 ms ] thread
In the spirit of "shipping it", I wanted to share this quick project that I made for myself and my friends: http://derefnull.org/wx

As an avid skydiver, I regularly check wind forecasts for multiple drop zones to determine which location is most suitable for the day of jumping. I was tired of manually entering each location each time I checked the weather forecast, so I created this app to simplify the process.

This web app will render multiple wind-speed forecasts on a single page for comparison. Once locations are entered in, the user can return to the page and refresh the forecast with a single click.

The app is nearly all client side, which is a new paradigm for me. The only server side component is a proxy script I made to get around a browser-side issue (http://en.wikipedia.org/wiki/Cross-origin_resource_sharing)

The locations are validated with the Google Geocode API, stored in a client-side cookie (jquery.cookie), and rendered with Raphael JS. Weather forecasts are provided by weather.gov. Additional UI goodies use twitter bootstrap and some custom scripting as glue.

Note: this was written a modern browser (tested with apple safari, and google chrome, IE 10)

Next iteration : client side app-building is fun, but I think I can improve response time by moving much of the weather.gov queries server-side. This will also allow me to add a slick "share these locations" feature to the app.

Unfortunately, it doesn't work for me [Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/28.0.1500.71 Chrome/28.0.1500.71 Safari/537.36]

JS console says:

   Uncaught TypeError: Cannot read property 'firstChild' of null derefnull.org/wx/:290
   doParseWxXml derefnull.org/wx/:290
   forecastAsync_Update derefnull.org/wx/:148
   c jquery.js:4
   p.fireWith jquery.js:4
   k jquery.js:6
   r jquery.js:6
Strange -- was that for a US-based location? I just tested it in windows based firefox & debian based iceweasel and it seemed to work ok. I don't have a Ubuntu system handy at the moment.
No, a couple locations in Europe.

I've just tried it with two locations in the US and it works with no errors. If I add to them a location in Europe there's an error:

   Uncaught TypeError: Cannot read property 'firstChild' of null derefnull.org/wx/:290
Ah ok -- that makes sense, as the data is sourced from weather.gov which handles only weather data for the USA. Sorry about that :)