37 comments

[ 5.9 ms ] story [ 306 ms ] thread
Love it. I starred it, as a reminder to create/contribute new icons, in the future. :)
Way better than the other "weather apps for the terminal" I've seen on HN.
I really like weather http://fungi.yuggoth.org/weather/

It gets me the information for the forecast and current conditions quickly and painlessly. I have used it for years. I much rather have the NOAA forecast and current conditions to anything else.

This would compliment weather for me.

Why not do some releases? It's one of the advantages of Go that it is easy to release binaries for?
I would also vastly prefer a release so I can just add it to my path.
I live on the command line, so I really dig this sort of thing. And this one in particular looks very nice. I'm a fan!

If you're open to bug reports/feature requests:

* The image for clear weather is a bright sun, which is a little odd to see in the 'Night' column

* Many city names are duplicates. How do I know I've got the right one?

Be as explicit as possible. For example, `Santa Cruz, Bolivia` not just `Santa Cruz` because there is ambiguity.
Whenever I see a weather "app" I always think: "This is really a weather display utility" and then wonder about the quality / longevity of the service it depends on and how the information is provided.

What would interest me is an implementation that allows you to plug in different weather backends, so that having an API key to worldweatheronline, or screen-scraping weather underground, or building a bridge to your serial-port connected weather station all can target the same interface; to provide current conditions/historical conditions, a forecast, etc.

Are there standards for this, or is it mostly ad-hoc, the whim of the sites or commercial services which aggregate information and provide forecasts?

Unfortunately, as far as I know, the NOAA doesn't provide forecasts outside of the US and US territories.
Thanks, this is pretty cool; I think the NWS qualifies as a stable source.
I've found they vary quite a bit, both in the data points they provide, and the depth of data. Especially comparing free vs paid services. Some provide historical data, others want lots of extra cash for that. Some provide hourly and even minutely results (like my current favorite -- forecast.io), and some do not. And the underlying conditions they provide can vary. You might get simply 'partly_cloudy' from one, an actual cloud cover percentage from another, or even the cloud cover at different altitudes from a yet another provider. So you'd have to do a lot of normalizing between providers to come up with a common API.

So it certainly could be done. And I actually looked into this a few years ago, but it wasn't trivial enough to make it worth the time back then.

"or screen-scraping weather underground"

I know very little about this space, but when you suggest screen scraping WU, are you implying that they have no API or XML feed or some kind of open feed of their data ?

That's disappointing. I always assumed they did ...

Maybe we would all do well by closing our terminals, taking a break, and going outside to see what the weather is really like.
Idk, i use this kind of thing before I go out to see if I have to prepare better. "oh look it's getting colder, I better not go in shorts", "oh look it's actually pretty cold despite how sunny it looks"
I apologize to the HN Gods for suggesting that you go outside.
This is one of the best "terminal weather apps" I have seen. Love the ASCII art.
Very nicely done. Terminalize ALL THE THINGS!
Necessary, but not sufficient. A lot of terminal apps are still - to borrow a phrase - captive user interfaces, which don't play much better with others than a GUI. Decompose all the things into individual utilities (or libraries) so they can be reused and recombined!
Haskell combinators for ALL THE THINGS :)
Get me a Haskell shell as usable as bash, and I'm down!
I built a shell in Haskell for a class project this semester. At some point I'll get around to releasing it on Github. It doesn't do much aside from backgrounding tasks, piping, and supporting environment variables (both in a config file and dynamically through a built in export command). But it was fun to build!
Nice! In this case it's less a question of implementation language (though Haskell would likely be the best fit) and more what it exposes to the user.
this is awesome, first go app to run for me, this language looks fun
I like the utility, its convenient not to leave the command line.

On another note, was it really necessary to add the bit about the NSA? Hasn't that been played to death now?

A few years ago, you'd get notice by taking an old text-based service and wrapping it up in a web frontend. Now, the cool kids are taking web-based services and wrapping them up in text-based frontends.

Next thing someone will have the bright idea of transmitting data as sounds over VOIP services, and we can start setting up BBSes on skype...

You just got me to finally install and try out Go! Thanks! Also great app!