I've just finished updating the Weather Now gazetteer, the database of geographical information that connects weather information to locations. This involved re-importing 283 countries and 4,494 administrative divisions from the National Geospatial Information Agency, plus 25,668 weather stations from the National Climate Data Center and 20,166 airports from the Federal Aviation Administration.
Most of these places already existed in the gazetteer, so they just got freshened up from the latest releases of the NCDC and FAA data. And, as I previously complained, the Country and Division records got their correct GEC identifiers.
Next up: a bunch of minor bugs and enhancements on the Place Info and Airport Info pages, so you can actually see the updated geographical data.
First, though, I'm going to take Cassie on a 30-minute walk. It's overcast and gloomy, but the temperature has held at just under 1°C for the past few hours. We won't have the chance to spend 30 minutes outside again until next Thursday if the forecast -18°C temperatures occur.
I've been working on a long-overdue update to Weather Now's gazetteer, the database of places that allows people to find their weather. The app uses mainly US government data for geographic names and locations, but also some international sources. This matters because the US government has a thing called "Geopolitical Entities and Codes (GEC)," which superseded Federal Information Processing Standard (FIPS) publication 10-4. Everyone else in the world use International Standards Organization publication ISO-3166 for country codes, which also doesn't have any of the same identifiers for places smaller than countries that the FIPS and GEC standards to.
Unfortunately, even though the US adopted an updated standard (FIPS 104-1), it doesn't exactly match ISO-3166.
This has caused a bit of extra work to refactor my import code to use both GEC and ISO identifiers for countries—plus the old FIPS 10-4 codes. The geographic data sets I'm going to add to Weather Now in the next couple of weeks use random assortments of the three standards.
All this just means that I have to do several hours more work than I anticipated before I can start importing other sources. But first up, when I do, will be the United States Geological Survey list of about a million places. That will make searching for weather in the US a lot more effective.
A friend pointed out that, as of this morning, we've passed the darkest 36-day period of the year: December 3rd to January 8th. On December 3rd at Inner Drive Technology World HQ, the sun rose at 7:02 and set at 16:20, with 9 hours 18 minutes of daylight. Today it rose at 7:18 and will set at 16:38, for 9 hours 20 minutes of daylight. By the end of January we'll have 10 hours of daylight and the sun will set after 5pm for the first time since November 3rd.
It helps that we've had nothing but sun today. And for now, at least, we can forget about the special weather statement that just came out warning of snow and winds starting later tonight.
Meanwhile, in the rest of the world:
Finally, National Geographic explains how the two cups of tea I drink every day (three in the summer) will help me live to 107 years old.
Once again, in the aftermath of the OAFPOTUS's demented press conference yesterday, I need to remind everyone to ignore what he says and watch what he does. He's not as harmless as the guy at the end of the bar who everyone avoids talking to, but he's just as idiotic.
Meanwhile, in the real world:
Finally, the temperature in Chicago dipped below freezing just before 2 am on January 1st and hasn't risen above freezing since then, with no relief in the forecast. Even though we don't expect any seriously cold weather in the next two weeks, it would be nice to have one day above freezing.
Somehow it's the 3rd day of 2025, and I still don't have my flying car. Or my reliable high-speed regional trains. Only a few of these stories help:
I'm also spending some time looking over the Gazetteer that underpins Weather Now. In trying to solve one problem, I discovered another problem, which suggests I may need to re-import the whole thing. At the moment it has fewer than 100,000 rows, and the import code upserts (attempts to update before inserting) by default. More details as the situation warrants.
Item the first: Weather Now got an update today. Under the hood, it got its annual .NET version refresh (to .NET 9), and some code-quality improvements. But I also added a fun new feature called "Weather Score." This gives a 0-to-100 point value to each weather report, showing at a glance where the best and worst weather is. A perfect day (by my definition) is 22°C with a 10°C dewpoint, light winds, mostly-clear skies, and no precipitation. The weather at O'Hare right now is not, however, perfect, and only rates a score of 56.
Item the second: The Daily WTF has a really good, long summary of how the Y2K problem actually got solved. It's worth a read:
25 years on, it's really hard to capture the vibe at the close of the 90s. We'll focus on the US, because that's the only region I can speak to first hand. The decade had a "it was the best of times, it was the worst of times," aspect to it. The economy was up, lifted in part by a tech bubble which had yet to pop. The AIDS epidemic was still raging (thanks, in part, to the disastrous policies of the Reagan administration). Crime was down. The Columbine Shooting was hitting the national consciousness, but was only a vague hint of the future of mass shootings (and the past, as mass shootings in the US have never actually been rare). The Soviet Union was at this point long dead and buried, and an eternal hegemony of the US seemed to be the "end of history". On the flip side, Eastern Europe was falling apart and there was war in Kosovo. Napster launches, and anti-globalization protests disrupt cities across the country.
When you add the Y2K bug into the mix, people lost their goddamn minds.
Enjoy both.
Twenty five years ago this evening, I rang in New Year 2000 in the ops center at ING Barings in midtown Manhattan...and nothing happened.
Since then, people have largely bought into the myth that because nothing happened, the Y2K problem wasn't a real problem. I assure you, it was a real problem, thousands of programmers spent most of the late '90s fixing it.
Remember this when the Unix timestamp problem hits us on 19 January 2038. If my Social Security check that month gets delayed because everyone forgot how much work we did in 1999, I will be very cross. But, as that's only 13 years away, I'll probably be one of the people fixing it. Again.
I just had a hilarious meeting with a vendor.
We (at my day job) use a JavaScript library for a small but useful feature in our application. We've used it for probably the app's entire 10 year lifespan and haven't given it a second thought. Recently, a security issue showed up on a routine scan, implicating the (obsolete) version we use. So we have to get the latest version, and company policy requires us to get a commercial license to protect our own IP.
So we got in touch with the vendor, which took some doing because this library has existed for such a long time and passed through so many owners.
First problem: the vendor's sales guy didn't have the first clue what our app does, even when explained three different ways. I feel like I spread a little knowledge into the world when I spelled "actuary" for him. I hope he reads at least the first paragraph of the Wikipedia article.
Second problem: after I guessed (inaccurately) how many actual customers use the app, he threw out a license fee of $12,000 per year. I had to choke back actual laughter. I said "well, that's not what we were expecting; are you sure that's the number you want me to take back to our head of engineering?"
In fact, our license costs would probably wind up around $2,000 per year. But given that an entire library of tools like Syncfusion offers would only cost $3,600 per year and would give us all kinds of bells and whistles, not to mention an actual support organization and frequent, predictable upgrades, even that seems high.
So, in conclusion, if you produce a tiny JavaScript library whose functionality can be found in a few dozen other libraries out there, you may want to reconsider requesting a license fee so high that the customer's only rational action would be to swap your library out for another one. If it takes one of our developers two entire days to put in a new library, it would still be cheaper than the requested license fee.
Remember: price is a function of supply and demand, not of wishful thinking.
Today is the 30th anniversary of the trope-namer first appearing in Calvin and Hobbes, making the comic strip self-referential at this point. (It's the ur-noodle incident.)
Unfortunately, today's mood rather more reflects The Far Side's famous "Crisis Clinic" comic from the same era:
Let's hope tomorrow's mood is a different Far Side comic...
The weather doesn't seem that great for a planned 15-kilometer walk through Logan Square and Avondale to visit a couple of stragglers on the Brews & Choos Project. We've got 4°C under a low overcast, but only light winds and no precipitation forecast until Monday night. My Brews & Choos buddy drew up a route starting from the east end of the 606 Trail and winding up (possibly) at Jimmy's Pizza Cafe.
Also, I've joined BlueSky, because it's like Xitter without the xit. The Times explains how you, too, can join. (Cassie also has an account, of course.)
My 4-minute train to Clybourn leaves in 45 minutes, so I want to save a few things for later reading:
Finally, NASA's Astronomy Picture of the Day this morning has a diptych of the Earth, one side from Saturn and the other side from Mercury. What makes it even more interesting is that both photos were taken 19 July 2013, making it the first time the Earth was photographed simultaneously from two other worlds in the solar system.