One of my colleagues at another office sent an email this morning to basically everyone in the company with a screen shot and a brief cry for help. One of her customers had an app with our company's name on it that had stopped working, and could anyone identify the app or where it came from? Also, it seems to run on something called "ANSIC" which no one in the customer's office knows.
I should at this point mention that the dialog box was from a Windows NT 4 or 2000 computer, and was version 2.0.415—so it probably started life on an even older version of Windows. And "ANSIC" means ANSI C, a language almost as old as COBOL. So even before we get to asking whether my company can still support it, I have to ask: how is the computer it's running on still working?
To me as a software developer this is like meeting a 30-year-old dog on the street.
Update: the author of the email got back to me, after hearing from someone who recognized the app. Its author died years ago, and the only other person who might have worked on it retired in the 2010s. The only thing to do, then, is to reverse-engineer the business process and start fresh.
You know, I still have code I wrote in Applesoft in 1981, but it's on printouts. The oldest runnable code I have is from 1986, and I need to spin up a DOS 3.3 virtual machine to get it to run. I hope that my craft has matured enough since then that the code I write today will still work in 15 years, but 30? No way. I've recently had to give an old client some bad news about their 16-year-old app: we either need to re-write most of it, or I can only keep it alive for 4 or 5 more years, because Microsoft will stop supporting the language (.NET 4.7) someday soon.
It's only Wednesday? Sheesh...
- The Writers Guild of America got nearly everything they wanted from the Alliance of Motion Picture and Television Producers (i.e., the Astroturf organization set up by the big studios and streamers to negotiate with the Guilds), especially for young writers and for hit shows, but consumers should expect more bundling and higher monthly fees for shows in the future.
- Josh Marshall suspects that the two competing storylines about the XPOTUS (that he's about to return to power, but he's also losing every legal battle he fights) are actually just one: his "current posture of bravado and menace – while real enough as a threat – is simply his latest con, concealing a weaker and more terrified reality."
- Jamie Bouie marvels that Justice Clarence Thomas (R$) wins the trifecta: "We have had partisan justices; we have had ideological justices; we have had justices who favored, for venal reasons, one interest over another. But it is difficult to think of another justice, in the history of the Supreme Court, who has been as partisan and as ideological and as venal as Thomas...."
- Melissa Gira Grant profiles US District Court Judge Matthew Kacsmaryk (R-NDTX), a Christian nationalist who rose through the Federalist Society pipeline to a lifetime appointment where he will push his Victorian-era views on the people of Texas for the next 30 years or so.
- North Korea vomited up US Army Private 2nd Class Travis King, having used him for the little he was worth after the soon-to-be-dishonorably-discharged soldier illegally entered the kingdom in July.
- Kelli María Korducki worries that "in the age of AI, computer science is no longer the safe major," not realizing, perhaps, that the most effective programmers are and have always been liberal arts majors.
Finally, yet another fact that will make everyone I know feel old: today is Google's 25th birthday. And yes, the Daily Parker has been around longer trillion-dollar search company. We just haven't had our IPO yet.
I was a little busy over the summer, so it took me a couple of months to finish adding Inner Drive Technology World HQ's Netatmo weather station to Weather Now. (Implicitly, the app can now read any Netatmo data to which the owner of the station has granted us access.) Netatmo weather stations upload data every 10 minutes, so that's how often Weather Now downloads it.
I had to change a number of assumptions throughout the application, as it has only used NOAA aviation weather since its origins in 1997.
The next updates to Weather Now will most likely include a fix to the way it displays on mobile devices, personal profiles, the annual core language update (to .NET 8) in November, and a massive expansion of the Gazetteer.
The v2–v4 Gazetteer had about 7.3 million geographical records in a huge relational SQL Server database. Since I uploaded most of that data in 2003, I'm going back to the agencies that provided the original data and grabbing all of the current information. And because of the way Azure Cosmos DB works, updating individual records will be far, far easier, even in batches, than it would have been with SQL Server.
My next big hobby project will be to replace this blog engine. But I've been saying that for 15 years now...
Three hours later, I've got Weather Now's Netatmo code integrated with the Function App that controls all of the automated background functions of the application. I now have to move the adobo to phases two and three (browning, starting the slow cook), then take Cassie out.
I might actually deploy this today. Except that I discovered that a decision I made about how the site would store weather at the start of the re-write in 2020 means the simplest thing that works requires me to change Netatmo's data into a METAR. Not difficult, but also not the most elegant solution.
Someday I might even import the entire gazetteer into Weather Now 5, too...
I have three goals today, to take advantage of the gray rainy weather. First, another stab at adobo, this time with a little less vinegar, fewer peppercorns, and a skosh* more sugar. It's marinating right now, so in about three hours, I'll brown the pork belly and then slow-cook it in my Instapot for another three hours or so.
Goal #2: Finish coding and deploy the update to Weather Now to use data from my Netatmo devices. Finally, I'll have actual IDTWHQ weather!
Goal #3: See if it's possible to build an Azure pipeline to deploy a 16-year-old .NET 4.8 application to an App Service. This is the first of several steps to get a very old client application to stay alive for another five or so years after Microsoft kills Cloud Services (classic) next August. Because the UI uses ASP.NET Web Forms, I can't upgrade it to .NET 7, which means I may have to write custom code to do things that .NET 7 provides out of the box. There is a possibility that I may even have to re-write the UI in Blazor, which no one—not me, not the client, not the users—wants at all.
All righty then, time to get coding. And in 6½ hours, adobo!
* TIL how the word is actually spelled, and why.
The temperature has crept up towards 34°C all day after staying at a comfortable 28°C yesterday and 25°C Friday. It's officially 33°C at O'Hare but just a scoshe above 31°C at IDTWHQ. Also, I still feel...uncomfortable in certain places closely associated with walking. All of which explains why I'm jotting down a bunch of news stories to read instead of walking Cassie.
- First, if you have tomorrow off for Labor Day, you can thank Chicago workers. (Of course, if you have May 1st off for Labor Day, you can also thank us on the actual day that they intended.)
- A new study suggests 84% of the general population want to experience an orchestral concert, though it didn't get into how much they want to pay for such a thing. (You can hear Händel's complete Messiah on December 9th at Holy Name Cathedral or December 10th at Millar Chapel for just $50!)
- An FBI whistleblower claims Russian intelligence co-opted Rudy Giuliani in the run-up to the 2020 election—not as a Russian agent, mind you, just as a "useful idiot."
- Rapper Eminem has told Republican presidential (*cough*) candidate Vivek Ramaswamy—who Michelle Goldberg calls "very annoying"—to stop using his music in his political campaign.
- The government of Chile has promised to investigate the 3000 or so disappearances that happened under dictator Agosto Pinochet, though they acknowledge that it might be hard to find the ones thrown out of helicopters into the sea, or dropped down mine shafts. And with most of the murderers already dead of old age, it's about time.
- Julia Ioffe wonders when the next putsch attempt will get close to Moscow, now that Prigozhin seems to be dead.
- About 70,000 people continue to squelch through ankle-deep mud at Black Rock City after torrential rains at Burning Man this weekend. (I can't wait to see the moop map...)
- University of Michigan Law Professor Nicholas Bagley had a cogent explanation of why pharmaceutical companies don't want to negotiate drug prices with Medicare. (Hint: record profits.)
- Switching Chicago's pre-World War II bungalows from gas to electric heating could cut the city's GHG emissions by 14%.
- Molly White's weekly newsletter starts off with some truly clueless and entitled behavior from Sam Bankman-Fried and gets weirder.
- Zoning laws, plus the inability of the Portland, Ore., government to allow variances in any useful fashion, has condemned an entire high school to send its kids an hour away by bus while the building gets repaired, rather than just across the street to the community college many of them attend in the evenings. (Guess what skin color the kids have. Go on, guess.)
- A group of hackers compromised a Portuguese-language "stalkerware" company and deleted all the data the company's spyware had downloaded, as well as the keys to the compromised phones it came from, then posted the company's customer data online. "Because fuck stalkerware," they said.
- Traffic engineers, please don't confuse people by turning their small-town streets into stroads. It causes accidents. Which you, not they, have caused.
- Illinois had a mild and dry summer, ending just before our ferociously hot Labor Day weekend.
- James Fallows talks about college rankings, "which are marginally more encouraging than the current chaos of College Football."
Finally, I'll just leave this Tweet from former labor secretary Robert Reich as its own little monument to the New Gilded Age we now inhabit:
A few of them have come home or are en route:
Finally, climate change has made your favorite hot sauce more expensive, and will continue to do so until pepper farmers adapt their vines to the new reality, or move them.
I just got back from walking Cassie for about half an hour, and I'm a bit sticky. The dog days of summer in Chicago tend to have high dewpoints hanging out for weeks on end, making today pretty typical.
Our sprint ends Tuesday and I still have 3 points left on the board, so I may not have time to give these more than a cursory read:
Finally, Andrew Sullivan adapts a column he wrote in August 2001 asking, "why can't Americans take a vacation?" One reason, I believe: all the time and money we spend in and on our cars.
i just pushed a new build of Weather Now that corrects a problem no one else knew about in the way it managed time zones. The work took about 3 hours over several days this week, sneaking half an hour here and there between rehearsals, performances, and my day job.
I also worked on some code to interface with my home weather station. I've gotten it to download and parse reports from my Netatmo devices, and to refresh (and securely store) the API access token. I figure it'll take about 3-5 more hours to hook that code into the Azure Functions that download and store weather reports from other sources.
Today, however, I have one more performance of Die Zauberflöte. So...maybe next weekend?
I love it when something passes all the integration tests locally, then on the CI build, and then I discover that the code works perfectly well but not as I intended it. So while I'm waiting for yet another CI build to run, I'm making note of these:
Finally, WBEZ made me a shopping list of locally-produced hot sauces. First up: Cajun Queen—apparently available about a kilometer away.