Weather TL;DR

What is it?

Weather TL;DR is a simple weather forecast webapp using data from the weather.gov system. This was an experiment to see if I could write a simple webapp to tell me the current weather forecast in a compact and simple page.

How do you use it?

Usage it pretty simple. It will ask you if it is ok to use your location data. If you don’t agree then it presents a simple form where you can manually enter a latitude and longitude in decimal form.

If you allow it to use your location it will truncate it to about 1Km accuracy and request the current weather forecast for your location from weather.gov and display the next week’s worth of forecasts.

Problems

Sometimes the weather.gov system will have problems and return an error code (500, and 503 are common). Refresh it a few times and it may work, or wait a few minutes and try again.

Sometimes, on the iPhone at least, the data appears to be cached by the OS. At the bottom of the page it should show the date and time the forecast was generated. If this is older than 24 hours then something got stuck. I have not been able to figure out a way to force a reload, and it seems to correct itself eventually. If you have any ideas as to why this happens, please contact me .

Writing Weather TL;DR

Weather TL;DR is my first project written using Elm , a functional language that compiles into Javascript. It was more fun to write than Haskell, and the tutorial and documentation is very well written.

The idea behind Weather TL;DR was that I wanted to know what the weather forecast was for my current location without being bombarded with a bunch of ads or UI elements that don’t fit on my phone’s screen. Just the weather, just text, and just for my current location.

Getting the current location is a bit tricky, I had to write that in Javascript and pass it into the Elm application when starting it with the Elm.Main.init call.

There is no backend for the app. It all runs in your browser and communicates directly with the NOAA weather.gov API system. You can, for now, make requests to it without any kind of API key required. It isn’t ideal though, it will sometimes return 500 and 503 errors for whatever reason and you will need to manually refresh it.

Location accuracy and privacy

If you want the weather report for your current location you have to reveal your location with some degree of accuracy. Some systems use zipcodes, which may or may not give you an accurate weather report. It depends on local geography and how close you are to what location registered for the selected zipcode. GPS coordinates from your phone are much more accurate, but reveal your exact location and travel patterns to the API server.

I didn’t want to pass my exact location to the weather.gov system. Once you hand over that kinds of data you have no control over where it is stored, how long it is retained, who has access to it. But you cannot get the current weather without doing so. So I compromised and truncated the location to 2 decimal places, which if my calculations are correct, gives an accuracy of about 1Km. So if you are hiding out from the authorities, don’t use Weather TL;DR to check the weather from your hideout.