The Daily Parker

Politics, Weather, Photography, and the Dog

Side-gig day

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.

Last hot weekend of 2023, I hope

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:

Pigeons roosting, etc.

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.

Temperature 26, dewpoint 22

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.

Incremental improvements

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?

Lunch links

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.

Stuff to read later

I'm still working on the feature I described in my last post. So some articles have stacked up for me to read:

And while I read these articles and write this code, outside my window the dewpoint has hit 25°C, making the 28°C air feel like it's 41°C. And poor Cassie only has sweat glands between her toes. We're going to delay her dinnertime walk a bit.

Oh, right, there's another sub-feature

I finished the main part of the feature I've been fighting since last week, only to discover that a sub-feature needs refactoring as well. Basically, before implementing this feature, the user would recalculate their model every time they changed its parameters. Calculation usually takes 5-10 seconds for most models, but (a) for some models it takes up to a minutes and (b) the calculation engine uses a first-in-first-out queue when calculating. But the calculation engine caches on a most-recently-used basis (meaning it flushes the least-recently-used calculations when it needs to free up space), so generally, it's just a quick call to retrieve the same results.

In actual user testing, we realized that users often want to go back to a previously-used set of parameters. The calculations for any set of parameters should always return the same results, so in theory this isn't a problem. But we only stored the URL of the most recent calculation for any model. So to get previous results, the users had to recalculate the model with the previous parameters.

I've spent the last 5 days refactoring all of that so that all calculation results are stored, even incomplete ones, and users can simply flip between them with a drop-down. Only, there's a second step, whereby the API takes the results and transforms them into a different view. That calculation is very quick—just a few milliseconds—but also subject to the queuing mechanism, and requiring a second call from our UI to our API, and then from our API to the calculation engine, after our API looks up the results of step 1.

All of this has pushed our sprint out a week, as well as made me very cross with myself for not anticipating this workflow a year ago when we built our current UI.

Anyway, it's past 4pm on a Friday and I will probably spend another 90 minutes on this tonight to get it to a point where I can finish it Monday morning without having to rethink the whole API. Good Omens II will just have to wait.

Papagena lebe!

I'm just over a week from performing with the Chicago Symphony Orchestra at Ravinia in Mozart's Die Zauberflöte, so as I try to finish a feature that turned out to be a lot bigger than I thought, I'm hearing opera choruses in my head. Between rehearsals and actual work, I might never get to read any of these items:

Finally, New York City (and other urban areas) are experiencing a post-pandemic dog-poop renaissance. Watch where you step!

And now, I will put on "Dank sei dir Osiris" one more time.

Nailed to the perch

This Twitter is no more. It has ceased to be. It has expired and gone to meet its maker. Bereft of life, he rests in peace.

John Scalzi has my favorite take so far:

Twitter was its own specific thing, whereas as “X” is meant to be a number of different things, of which microblogging will be only one part, and, one suspects, the part Musk will care the least about. He’s really about finding ways to have people give him their money, either through subscriptions or taking a cut of transactions. It’s a fundamentally different beast, or at least, plans to be.

Twitter isn’t Twitter anymore. He’s destroying the value of the brand name. Even if at some point X fails (and it probably will), and Musk sells off the microblogging part for pennies on the dollar, even if the new owner calls it “Twitter” again, too much damage will have been done to the brand identity, and most of the power users (who aren’t incel bigots either by inclination or for pay) will either have moved on or will have done what I’m planning to do, ie., reduce their reliance on the service. Historically, social media sites get sold twice, first for a whole lot of money, and then for very little. When they’re sold for very little, it’s understood they’re damaged goods, unlikely to rise again to the prominence they had before. And in this case, the new buyer wouldn’t even get the value of the name.

To be clear, Musk’s microblogging service will persist, until it doesn’t, and people will use it, until they don’t. But whatever it is now, it’s not Twitter, and there’s no percentage in pretending it is. It was nice to have Twitter when we had it. But it’s gone. Now we get to find out what’s next.

Is Musk evil? Yeah, but mainly he's just a narcissistic failson. I mean, Eddie Lampert is evil and a narcissist, so he actually profited from killing Sears. Musk's evil comes more from his upbringing as an unrepentant beneficiary of Apartheid. (Yes, I'm linking to a partial debunking of Elon Musk Apartheid rumors.)

As someone said when Musk bought Twitter, I know a lot about software, so I'm staying away from Musk's cars and rockets.