I've just had a lot to do today and I'm not feeling particularly creative. So, nu, maybe Friday?

Meanwhile:

Finally, despite the temperature having risen to the January 21st normal of -1°C this afternoon, just look at this graphical forecast for the 48 hours starting at midnight tonight:

Brrrr

Wonderful. Looks like a solid 28 hours below -17°C (0°F) before "warming up" to -11°C (12°F) late Saturday. And poor Cassie has only gotten 4½ hours of walkies in the last 7 days. Even the 10-day forecast has us below freezing as far as it can predict.

We last had a temperature of -21°C (-6°F) two years ago, and wow, I didn't like it at all when I got off the plane from Seattle. I can hardly wait to bundle up and hunker down Friday. Yay.

New release, new bugs

    David Braverman
BlogsSoftware

I just released a new production version of the Inner Drive Journal (the software the Daily Parker runs on) with 7 bug fixes, 9 new stories, and a technical task. Most of these Jira cases took me less than 15 minutes. Yesterday, though, I wound up spending 5 hours on a new system configuration management tool because (a) it's complex and (b) I changed my mind about the interface after I ran it a couple of times.

The coolest new feature is the Calendar, which allows you to view whatever was posted on a particular date. That's...well, that's the only feature that anonymous users can see. (So create an account already!)

The same with the bug fixes; for now, I'm the only one who will notice them, because I'm 100% dogfooding. For example, the Edit Blog Post page has an auto-save feature: every n seconds (which is now configurable by project), it saves what you're working on as a draft. Once the post is published, though, the feature turns itself off. You can control whether it's on or not at any time using a checkbox on the Edit page.

That's a super-useful feature, solving one of my biggest irritations with BlogEngine.NET. We can all agree it's no fun losing a draft you've worked half an hour writing. However, as I first implemented the auto-save feature, it simply called the general Save method on the page, which happily tells you about its every success with a banner at the top of the page. This causes everything to shift briefly and can cause the editing box to lose focus, which interrupts the writing flow. I fixed it by only showing the "success" banner when you actively click the Save button, but not when it auto-saves. I'm now 10 minutes into writing this post and, yes, it's a lovely improvement.

Unfortunately, a couple of the new features work in the dev/test environment but not in production (timing issues, I'm pretty sure), and I got the logic wrong in a couple of places. I'll fix those quickly and probably have a new release on Sunday or Monday. I'm also going to start working on some of the more journal-like features, starting with new layers of privacy, and possibly some external interactions I've wanted to do for years. We'll see. Plus, I'm starting to see some opportunities for better app performance, though I am really very happy by how it's running—especially compared with its predecessor.

And, yes, I'll have another How This Works explainer up as soon as I can.

Exactly one year ago this hour, the worst administration in American history took office. One hopes they will always be the worst administration in history (though I can see some ways that becomes true for some pretty horrible reasons).

In the past year, as the OAFPOTUS has descended deeper into dementia and his existing malignant narcissism, his droogs have torn down the domestic and international structures that provided the longest period of prosperity in history. Not everyone is horrified, of course; the OAFPOTUS has done Vladimir Putin's work so effectively the Russian dictator openly gloats about it.

Will we have three more years of this, or will the Republicans in Congress and in the Cabinet who keep him there end the nightmare sooner?

Even the people who believe in their tiny, cold hearts that destroying the welfare state is the only way we can have a prosperous billionaire class (looking at you, Russell Vought), or you believe that getting rid of every immigrant who arrived after 1830 will make up for you not getting to sit with the cool kids in 2nd grade (looking at you, Stephen Miller), aren't you tired of the chaos?

I should note, today is also the anniversary of the Wannsee Conference, when Stephen Miller's boyhood crush Reinhard Heydrich and his pals planned the murder of 11 million Jews in Europe. That was only 9 years after the National Socialists took power in a (mostly) democratic election. We're living through history repeating as farce, to be sure; but Miller has built concentration camps while the OAFPOTUS celebrates brownshirts killing moms in Minneapolis.

Elections for the 120th Congress take place in just 287 days. Everything points to an overwhelming swing towards the Democrats. Taking back Congress will slow but not stop the mayhem, unless the Republican Party decides they decide to take action with us. We'll see; so far, they seem to want everything to burn down so they can rule the ashes.

Woe to thee, O land, when thy king is a child, and thy princes eat in the morning.—Ecclesiastes 10:16

Before I throw my chicken soup in my slow cooker, and before I take advantage of this holiday from work to release a package of minor improvements and fixes for bugs I discovered using the new Daily Parker blog engine for a week, I need to mention the latest clear and convincing evidence that the OAFPOTUS has lost his mind and needs to be removed from power.

This morning, the government of Norway and some of our own embassies abroad released a letter the head of our government sent to the head of theirs. Schoolchildren will read about this letter centuries from now:

Dear Jonas [Gahr Støre, prime minister of Norway]:

Considering your Country decided not to give me the Nobel Peace Prize for having stopped 8 Wars PLUS, I no longer feel an obligation to think purely of Peace, although it will always be predominant, but can now think about what is good and proper for the United States of America. Denmark cannot protect that land from Russia or China, and why do they have a “right of ownership” anyway? There are no written documents, it’s only a boat that landed there hundreds of years ago, but we had boats landing there, also. I have done more for NATO than any person since its founding, and now, NATO should do something for the United States. The World is not secure unless we have Complete and Total Control of Greenland. Thank you! President DJT

If an assistant manager at a Wendy's had written this letter, he'd be fired on the spot. You wouldn't tolerate this from an 8th grader. As Adam Kinzinger said, it's time to put him in a home:

This is not parody. This is not a meme. This is not a joke taken out of context. This is the sitting president of the United States explaining how he thinks.

That is not strength. That is not realism. That is not America First.

It is grievance-driven governance, powered by ego and resentment, with nuclear consequences.

This isn’t diplomacy. It’s a warning.

Anne Applebaum:

Donald Trump now genuinely lives in a different reality, one in which neither grammar nor history nor the normal rules of human interaction now affect him.

Years of careful diplomacy, billions of dollars in trade, are now at risk because senators and representatives who know better have refused to use the powers they have to block him. Now is the time.

James Fallows tries to make sense of "what the hell is this about?" and shrugs:

Does the Trump-era obsession with Greenland seem completely irrational? That’s because it is—as no less an authority than Trump himself has told us.

Because the feeling of ownership is “psychologically important” for this one damaged man, the US is throwing alliances and interests built over centuries into a bonfire. Great. But not what Hamilton, Madison, and Jefferson had in mind.

This showdown has gone from idiotic to actually dangerous.

As a child I was afraid during the Cuban Missile Crisis of 1962. In retrospect, it was in fact the closest the world has come to nuclear devastation, in the 80+ years since the first use of atomic weapons, by the US on Hiroshima and Nagasaki.

I am afraid now when I think that one un-informed, gut-driven man is breaking up alliances, imposing tariffs by decree, and putting our collective fate in his bandaged, shaky, undersized hands.

I think we all need to remember the words of Jane Goodall: "What you do makes a difference, and you have to decide what kind of difference you want to make."

Cassie will not get a lot of walks today. Just now at O'Hare the temperature hit -18°C (-1°F) with a wind chill of -29°C (-20°F); here at Inner Drive Technology World HQ it's -15°C (5°F). Of course, this is nowhere near a record: on 19 January 1985 it was -31°C (-23°F), and the next day, 20 January 1985, Chicago hit its all-time coldest temperature of -33°C (-27°F).

I wondered how cold it would have to get for Cassie to notice. I have my answer. I let her off leash when we got back to our complex after a 4-minute speed-walk around the block, and she beelined for the front door. But now I have a Weimaraner mix who usually gets a full hour of walks every day who will get, if the wind dies down, 30 minutes today.

The forecast predicts a normal-ish -5°C (21°F) tomorrow.

The first problem of developing a new software application is to determine what it does. The second problem is to decide the fundamental abstractions that will govern the system. If you don't figure this out early, you'll either write a hideous pile of rotting spaghetti that no one will want to maintain, or you'll do that and change careers entirely.

Sorting the "what it does" problem often makes the "what represents it" question easier to answer. If you want to build a building, for example, having a clear idea of what it does ("it provides living space for lots of people") should give you a good idea of its fundamental abstraction ("people live in apartments" or "people live in houses"). If you get the fundamental abstraction wrong, it just won't work ("people live in cubicles"). This is why airports with huge shopping centers don't feel right, and condos carved out of de-sanctified churches look weird.

Fortunately, the first fundamental abstraction of this project was obvious, even before I decided to make a blog engine its first realization. Everything in the Inner Drive Journal is an Event.

Now, I'm an old Object Oriented guy. So when describing software concepts, I think of classes that have is-a and has-a characteristics. So an Event is a thing that has or will happen, and has a start time, type, and name, and maybe other characteristics like an end time, a location, comments, and text. (Because the Event lives inside a software system, it also is a DataItem that has an ID, created time, modified time, and control bits to determine whether it's published, deleted, or test data.)

This means that everything that everything you see on The Daily Parker is, fundamentally, an Event. A BlogPost is an event that has additional characteristics specific to blogging. In time, I'll add other event types with other characteristics, for example to represent when I read a book or took a hike with Cassie.

The blog post's class hierarchy looks like this:

public class BlogPost : Event { }

public class Event : DataItem, IEvent, IGeoLocatable { }

public abstract class DataItem : IDataItem, IAuthorizable { }

The I prefix indicates an interface, which simply defines what a thing has to have without specifying how any of those characteristics work. That lets developers care only about the minimum characteristics of a thing without caring about what the thing actually is. For example, the authorization system only cares that things implement the IAuthorizable interface, and doesn't care if the thing is a blog post, a book review, or a squirrel.

The other principal abstraction is a Project, which is a collection of Events. There are two reserved projects, Public and Administration, but otherwise what goes in a Project is completely arbitrary. The Daily Parker is a Project containing Events, and most (but not all) of those Events are Blog Posts.

The application has two other things that people interact with, Users and Comments. But altogether, the application has (as of this morning) about 50 other classes that are and have specific characteristics that make the application work. For example, the View page is a class that includes the Blazor page definition, the code behind the page, and a list of text items like field names and tooltips.

As always, use the comments to ask questions or ask for specific topics of these explainers.

Next time: the authorization architecture, which is how the application decides who can see and do what.

In Friday's explainer, I gave a 10,000-meter view of the application and its basic components. Today I'm going to show you the software's basic features; I'll go deeper on some of them in later posts.

(Since I'm actively developing this software, some of the details that follow could change, so they're accurate only as of the date of this post.)

The most obvious feature is that you can read blog posts. You're doing it now, in fact. If you just landed on https://www.thedailyparker.com, you're seeing this post in the reverse-chronological feed, which shows you posts from the past 7 days. If you went to the permalink https://www.thedailyparker.com/2026/01/17/how-all-this-works-what-the-blog-engine-does, you're seeing the single post page. You might also see any comments that people have left.

Before you can see the post, I have to write it on the edit post page, which looks like this:

The editing page

The edit post page has a bunch of features that give me precise control over what you see:

  • An indication that the post is a draft next to controls that allow me to save and pin the post
  • The title, used to build the permalink
  • Tags, which provide a quick way to find posts related to a common topic
  • The body text, which is what you're reading
  • A preview button, which generates the HTML that you see, so that I can make sure I'm formatting everything correctly
  • An author box, pre-populated with the name of whoever is editing if it's a new post
  • The project selector, which I'll get into later
  • The encoding selector, which defaults to Markdown for new posts but also has settings for HTML (any post before January 2026) and plain text
  • A control to set the start date of the post, which allows me to post something in the future (like this post)
  • Location controls, to populate the little globe icon you see in the header above
  • A selector to open or close comments, which defaults to closing them after 60 days
  • Checkboxes that determine whether the post is published and whether the editor auto-saves what I'm working on
  • Buttons to save, publish or re-publish, view, or delete the post
  • A readout of the metadata about the post, including its permalink, unique ID, owner (the person who created it), and last modified time and editor
  • A separate history tab, showing all the changes to the post's metadata (but not to the post text, for reasons I'll get into later)

As you can see above, all these controls are just stacked on one big page. I've put the most frequently used controls at the top and the less-frequently used at the bottom, and a lot of them start off with default values that don't change very often.

Other major features of the UI include:

  • Full-text search, which will find any word or set of words in any post
  • User profiles, which you can set up if you log in using a Microsoft account (including Outlook, XBox, etc.)
  • Administrative tools that let me read the event log, audit log, diagnostic information, the user list, and the project list

Plus a couple of features that you won't necessarily see:

  • A flexible permissions architecture, which I will discuss in depth later on
  • reCAPTCHA verification for comments

It's a lot, I know! And I'm constantly developing more features, one of which I plan to deploy on Monday.

Let me know in the comments which features you want to know more about.

I have a list of 6 or 7 short plumbing tasks that I hope will take less than an hour, which is 1/8th the time window the plumbing service provided for the plumber's arrival. We all know how that goes. And at my real job, I'm coordinating a bunch of processes for a biweekly release that, so far, is pretty boring—just how we like it.

Meanwhile, the rest of the world persists in not boring anyone:

  • In a moment that should make all patriotic Americans vomit from embarrassment and which Paul Krugman called "the inanity of evil," exiled Venezuelan opposition leader María Corina Machado presented the OAFPOTUS with her Nobel medal, which he promptly stuck in his mouth while making happy little squealy noises. No report yet on whether he actually peed his pants or just drooled onto them.
  • The US has admitted it obtained a directed-energy weapon that could cause brain injuries similar to the so-called "Havana Syndrome," despite years of Pentagon denials that such a thing could exist.
  • Local public transport officials have drawn up plans for a long-overdue regional transit police force. One hopes they will have the authority to stop people smoking, pissing, and shitting on CTA trains. It's a little thing, I know, but it's important to some of us.
  • Bruce Schneier looks back on Aaron Swartz's JSTOR dump and subsequent suicide, arguing that private hoarding of taxpayer-funded knowledge abetted by pro-corporate public policies has gotten worse since then.
  • Jeff Maurer nails it: "In Fairness, “Reconstitute ICE So That Internal Border Enforcement Can Be Done in a Professional Manner by an Agency That Has the Public’s Trust” Is a Bad Slogan."

Finally, a story on NPR this morning had me yelling at my radio. The Heritage Foundation, who in saner times brought us Romney-slash-Obamacare, now fret about "what happens to a nation when its citizens largely stop having children and eschew marriage," as a section of their latest report has it. The report argues that marriage is the foundation of society, and therefore the government should make marriage more attractive. Nowhere do they argue for things that could make having children more attractive, like free day care, free pre-school and pre-K, free lunches in primary schools, and free health care for kids under 10. Or, you know, immigration, which has been proven to increase the population of every country that has tried it.

It's almost as if Heritage is raising the alarm over declining birth rates but not being particularly honest about whose birthrate they mean. Not to mention, the policies they do propose also create incentives for women to leave the workforce and return to the idyllic lifestyle they led in the 1950s and 1960s.

Is it possible that the organization that brought us Project 2025 and all the wonderous things we've experienced over past year has some other agenda? Hmm.

In my last post about the Daily Parker's new blog engine, I explained why I built this and what it's for. This post will give you an overview of the app's basic structure; that is, the physical building blocks that make the blog happen.

When you point your browser at https://www.thedailyparker.com, the request goes to the front door of a Microsoft Azure App Service, which runs on a server in Microsoft's US East data center, located outside the tiny town of Boydton, Va, on the Virginia-North Carolina border about halfway between Richmond, Va., and Raleigh, N.C. I put this app there because lots of Inner Drive apps live there, including Weather Now.

Once the request hits the server, it goes to a Microsoft Blazor WebAssembly application called InnerDrive.Journal.UI, which sends and receives messages to a stack of other components:

  • A Microsoft Cosmos DB NoSQL database that stores all of the blog posts as fully-indexed JSON documents.
  • Multiple Microsoft Azure Tables, which are high-speed flat structures that store simple rows of data with only two indices. The tables store information that needs to be written and read very quickly but doesn't have a lot of overhead. The blog engine uses tables for:
    • Audit logs
    • Event logs
    • Indexes
    • Comments
    • Tags
  • An Azure Key Vault that stores keys and secrets, so that the source code never does. For example, to read from the database, the application needs the database's secret connection information, so it knows where to look and what password to use. That "connection string" goes in Key Vault.
  • Microsoft Azure Blob storage to keep the photos and other files that you see.

Unlike Weather Now, the Daily Parker runs entirely in a single Blazor WebAssembly app. Weather Now uses two: a user interface app, which shows all the data, and a separate API, which stores and processes all the data. That makes it easy for Weather Now to serve its data to other apps. But the way I expect people will use the blog engine is entirely different, so I chose the simpler, one-app approach.

That doesn't mean everything is stuffed into one big executable file, though. The application architecture of the blog splits responsibilities into a collection of small-ish assemblies:

  • Core contains the most basic components that every other part of the system uses, like the definitions for Privacy and Accuracy.
  • Data defines how the application uses the database and other data structures like indexes. The basic abstraction for the app, the Event, lives here, as do the definitions for Factory and Repository, which represent different ways of dealing with certain kinds of data.
  • Blog holds the bits that are specific to blogs and not generally used by other kinds of events. The BlogPost class lives here, as does the BlogPostFactory; both of those things extend their Data counterparts (Event and EventFactory).
  • Services orchestrates how those other parts interact with each other. For example, the BlogService has a method to find a blog post by its ID. That code in turn calls the EventFactory.Find method to get the post, but then it calls a several other pieces of code to determine if the person trying to find the post has permission to see it, as well as code to log information to the event log (things that the software does) and the audit log (things that the user does).
  • UI uses Services to generate the pages that you see in your browser.

All of this currently runs on .NET 10 and was written in the C# language. Plus, there are a bunch of 3rd-party components, including the Inner Drive Extensible Architecture™ (which I also wrote) that do specific tasks, like time zone calculations and translating the Markdown I'm typing right now into the HTML you see in your browser.

Over the next few weeks, I'll go into much more detail about all of this. But my next post will be about the features I developed for this new blog engine, and why I think they're cool.

This is the first in a series of posts I've planned to explain what the Daily Parker blog engine actually is, how it works, and what's coming. I'll start with the most basic question: what the heck is a blog engine and why did I write one from scratch?

Simply put, a blog engine is software that handles all the plumbing for a blog. Substack is a blog, and it runs on a blog engine. WordPress is also a blog engine.

The Daily Parker has existed in some form or another since July 1997 and as something identifiable as a blog since May 1998. When I started posting things online, I manually edited HTML files and copied them to my company's web server. Version 1.0 of an identifiable blog engine read posts from an Access database and served them up using a scripting language called Active Server Pages. (The Wayback Machine's earliest capture of the braverman.org proto-blog was on 8 October 1999.)

I started calling this a "blog" when I deployed, with some frustration, a DasBlog site to my own web server in November 2005. That was version 3.0; I rolled out version 4.0 almost exactly 10 years later, this time running on BlogEngine.NET, which I forked (split off my own version) from the open source version available back then.

That's the context. Now the rationale.

Between DasBlog and BlogEngine.NET, I've had to make do with other people's design choices and coding styles, requiring hours of digging through code to make even simple changes. I could never get either of them to do everything I wanted, nor could I make them even work sometimes. You have no idea how many times I had to reboot BlogEngine.NET because its synchronous architecture got bogged down and crashed. The magic number was around 200 simultaneous users, whereupon the blog engine would spend so much time trying to handle its request queue that it could never get to new requests.

I finally got so sick of it that I decided to build the first iteration of a journaling application as a blog engine. It had to work, be easy to change, and provide at least the basic features people expect on blogs:

  • Reverse-chronological browsing of posts
  • WYSIWYG editing in both Markdown and HTML
  • Tags for classifying posts
  • Comments with approvals
  • An attractive, modern look and feel
  • Works on mobile devices and tablets
  • Basic permissions to restrict who can post and what posts anonymous users can see
  • Sign-on using external accounts, like Microsoft and Google

It also had to work in the modern software-development universe:

So, welcome to the public face of the Inner Drive Journal! At this writing, it's just the minimum-viable product, but the JIRA backlog is long and very cool. But because of how I designed and built it, it's easy to change, and the roadmap is pretty clear to me. And I'm proud of my work so far.

Next time: basic site architecture.

Even though I wrote this thing, the new editor interface is so radically different from the old one that it will take getting used to. Also, the new blog engine uses Markdown instead of HTML, which makes writing quicker with a lot less formatting.

And because I wrote it to the simplest standard of good software that I know ("it does what it's supposed to and it's easy to change"), if when I find something clunky, I file a bug on Jira and then I fix it.

If only we could apply the rule to the current administration, which does not do what it's supposed to, and is not easy to change:

  • Yesterday, some flunky in Health & Human Services cut $2 billion—basically all the funding—from 2,000 substance-abuse and mental health programs, and quietly restored fundng this morning.
  • Amanda Nelson says we should stop thinking about ICE as the American Gestapo because, really, it's more like the slave patrols of the antebellum South.
  • Paul Krugman credits the impatience and incompetence of the OAFPOTUS and his droogs with giving us the best chance to resist authoritarianism in the US.

Also, today is the 25th birthday of Wikipedia. The free online encyclopedia has a special birthday mode that will remain available through mid-February. Today is also the 45th anniversary of Hill Street Blues, which you should watch if you haven't already seen it. I think it holds up, as a snapshot of life in 1980s Chicago.

I woke this morning to the sound of snow and ice slamming into my bedroom window when this cold front came through:

Cold front

Cassie enjoyed this a lot more than I did:

Winter came back

The forecast predicts that the snow will stop in a couple of hours, and it doesn't look like we're going to get too much of it. Yay.

I'm David Braverman, this is my blog, and Cassie is my 7½-year-old mutt. I last updated this About... page in March 2021. Quite a lot has changed since then, most notably I wrote a whole new blog engine. (More on that in a moment.)

Cassie in repose

About the blog

The Daily Parker is about:

  • Cassie, whom I adopted on 16 March 2021. (The blog is named after my previous dog, Parker, whom I adopted in 2006 and who died in 2020.)
  • Politics. I'm a moderate-lefty by international standards, which makes me a radical left-winger in today's United States. And I'm looking forward to the day, whether 20 January 2029 or earlier, when we can start repairing all the damage caused by this rogue administration.
  • The weather. I've operated a weather website for more than 27 years. That site deals with raw data and objective observations. Many weather posts also touch politics, given the political implications of addressing climate change, especially given the OAFPOTUS's hostility to science.
  • Chicago (the greatest city in North America), and sometimes London, San Francisco, and the rest of the world.
  • Photography. I took tens of thousands of photos as a kid, then drifted away from making art until early 2011 when I finally got the first digital camera I've ever had whose photos were as good as film. That got me reading more, practicing more, and throwing more photos on the blog. In my initial burst of enthusiasm I posted a photo every day. That frequency is incompatible with having a life, so I don't update this category very often.

I also write a lot of software, and will occasionally post about technology as well. I've got more than 45 years experience writing the stuff, 30 as a professional. I own Inner Drive Technology, a microscopic software development company in Chicago, which has some interesting packages available on NuGet. I see a lot of code, and since I often get called in to projects in crisis, I see a lot of bad code, some of which may appear here.

I strive to write about these and other things with fluency and concision. "Fast, good, cheap: pick two" applies to writing as much as to any other creative process (cf: software). I hope to find an appropriate balance between the three, as streams of consciousness and literacy have always struggled against each other since the first time someone put chisel to tablet 5,500 years ago.

Finally, given that I started this blog almost 23 years ago, it has old and crappy examples of my writing and of my opinions. I have evolved quite a bit. Author John Scalzi put it perfectly: the guy I was in 1998, the guy I am now, and the guy I'll be in 2036 are three different people.

About the blog engine

Now let's talk about the software the blog runs on. In 2016, I had an idea for software that would allow users to put together a timeline of events. The software needed to have seriously strong privacy protections, because I envisioned it as something people could use as a personal journal, or as a way to organize a legal case, or as a cache of sources and notes for a journalist.

I started writing the software in 2020, but put it aside until I had a burst of inspiration about a year ago. From that point I made slow but steady progress, until the BlogEngine.NET platform that The Daily Parker had run on since 2015 basically wouldn't run anymore without frequent reboots and cursing. That got me thinking, wouldn't the minimum viable product for a timeline application be, in fact, a blog engine?

Over the next few days and weeks, I'll have a series of technical posts about how I developed it and how it works. Check back on this post for links, or just watch them come up on the new posts page. You can also bookmark the Release Notes page.

Deeper dives

I've started a series of posts explaining how all this works and why I did it. Read in any order; more posts coming frequently:

Thanks for reading, and I hope you continue to enjoy The Daily Parker.

I feel a little chagrined today as I expect to release the new version of The Daily Parker this evening, and yesterday I failed to write even a cursory post. I blame meetings and a very long dentist appointment (I'm fine; still no cavities; but the new dentist patient intake took a while).

I also didn't have any time to read these:

Finally, Education Secretary Linda McMahon probably used some A-1 to come up with her plan to eliminate public education as we know it in favor of publicly-funded religious education. I've got an A-1 amendment for her to read while she's dreaming of Christianist madrassas.

(After Dave and Bob got so excited about yesterday's post, I just had to give them more of what they came for. You're welcome.)

It turns out, several people use RSS to keep up with The Daily Parker. I hadn't planned to write an RSS feed component before launch, but as I don't want to cut them off, I've reprioritized the feature. Plus, I have a couple more things to do before I can cut over to the new production environment:

  • Implement Real Simple Syndication (RSS);
  • Fix a bug caused by the interaction between the HTTP context object and Azure Front Door; and
  • Create a new About page.

I'll fix the bug in the next 15 minutes, but the RSS feed probably won't get done today. Cassie and I took an hour-long walk (because the weather is unusually good for January) and I just need a few hours of reading time today.

So, you'll just have to live with the anticip—

Say it!

ation.

Again: you're welcome.

I did not watch the Bears-Packers playoff game last night, but I got real-time updates from my friends and family. You can bet I'm going to watch the highlight reel this afternoon:

The Bears won this way all season and delivered yet another thriller Saturday to stay alive in the playoffs.

They rallied from a big deficit to beat the Packers 31-27 in their wild-card game at Soldier Field and advanced to host the Rams or defending champion Eagles in the divisional round. It was their first playoff victory since 2011.

They rallied from down 21-3 early, as well as trailing 27-16 in the last five minutes, on a furious charge by quarterback Caleb Williams and the offense. He put them ahead with a 25-yard pass to DJ Moore with 1:43 left, and the Bears’ defense did its job at the end of a rocky night on that side of the ball.

Ultimately, the Bears got 25 points in the 4th quarter, which is like getting four goals in the last 15 minutes of regulation play in everybody else's football. Imagine Manchester City trailing Chelsea 3-0 at 50 minutes, and then going on to win 4-3 with the last goal at 88 minutes of regulation. Not penalty kicks; an actual goal.

Cassie and I are talking an hour-long walk before lunch so I don't have time to watch just now. But this afternoon, while I'm cutting over to the new Daily Parker, I'm going to watch the 4th quarter. Because, wow.

As I type this, Azure DevOps is banging away at the new blog engine's dev-test pipeline so that I can confirm the last few bits of it are correctly configured. The production environment is up and working, except for icons and RECAPTCHA, which explains the rebuild. Google: your dashboards are really confusing.

Creating the production environment took 57 minutes this morning, and creating the production release pipeline (which included setting all the Azure roles properly on things like the database and Key Vault) took about 45 minutes. I'm particularly pleased that the pipeline succeeded on the second try, which is not my usual experience with devops tasks.

For the past hour or so, I've been testing the production environment, noticing annoyances, fixing them, and repeating the cycle. Now that the dev-test environment has restarted, and all looks good, I'm pushing up the Production branch to start the continuous-integration deployment to the Production environment.

The final step will be to transfer and transform the data from this version of The Daily Parker to the new one. With over 10,000 entries, plus the tags and comments that go along for the ride, that should take most of tomorrow. (Fortunately it's completely automated and idempotent.)

If all goes well, I will switch the DNS entries and move the SSL certificate to the new app once that is far enough along that people won't encounter broken links unless they're looking for them. Wish me luck.

At midnight Chicago tied its high-temperature record for January 9th, 15.6°C (60°F), set in 1880. Then from 4am to 5am the temperature dropped 7°C (12°F) and now hovers around 6°C (42°F). This is a weakening La Niña plus human-caused global heating plus Chicago generally having weird weather.

In other news:

  • Glenn Kessler warns that the OAFPOTUS's vandalism of our foreign policy is the equivalent of Cortez burning his ships, with similarly grim prospects for the natives. Matt Ford thinks it will "haunt us for generations." I think it's more like centuries, but that's only because I've read the history of Rome.
  • Minneapolis Mayor Jacob Frey, who yesterday told Immigration and Customs Enforcement to "get the fuck out of Minneapolis," reminds everyone that if the OAFPOTUS or his droogs are speaking, they are lying.
  • In a glimmer of good news, it looks like Congress is creeping closer to a ban on Congressional stock-trading, which has become one of the most egregious sources of insider trading in contemporary history.
  • So many SpaceX rockets have exploded over busy air travel routes that the safety of flight is at risk, particularly in the Caribbean. (Did NASA's rockets blow up that much? I don't think so.)
  • Texas no longer requires ABA accreditation for law schools, instead ruling the state supreme court would decide who gets to sit for the bar exam. The reason? DEI, of course. And that the ABA's headquarters is here in Chicago.

Finally, the Bears host the Green Bay Packers tomorrow evening here in Chicago. The winner gets the wild-card slot in the NFL playoffs, and the loser goes home to Green Bay (I hope). Most of the local breweries will have it on, so Cassie and I will likely head over to Spiteful to watch. Or maybe I'll leave her at home and go down to Begyle where they'll have tacos...

Despite the annoyances with the soon-to-be-decommissioned BlogEngine.NET version of the Daily Parker, I actually had some things to say today.

Mainly: the OAFPOTUS and his droogs know they're losing everywhere that matters, and they know they only have slightly less than a year before the next Congress effectively shuts them down, so they're going for broke. And the last 36 hours are just the beginning.

Top of mind is yesterday's murder of Renee Good, a mother of three shot in the face by a poorly-trained, undisciplined, and unhinged Federal immigration officer, on a quiet residential street in Minneapolis. The OAFPOTUS and Homeland Security Secretary Kristi Noem called it a terrorist incident, which is correct just not the way they intended.

Reactions in the reality-based community have run from "just fucking no" all the way to "really ICE can just fuck right off now." I'll start with the Republicans:

  • Adam Kinzinger: "This administration wants force normalized. It wants fear. It wants examples made. That is the deeper sickness here. This wasn’t just about one encounter. Minneapolis didn’t wake up yesterday and randomly get flooded with ICE agents. That surge happened for one reason: provocation. A show of force. A political message."
  • Jennifer Rubin: "Going forward, it is long past time for Congress to conduct actual oversight of the Department of Homeland Security. Any reasonable person knew that an out-of-control, cruel, and lawless regime openly spouting xenophobic attacks on non-Whites and rushing to flood American cities with armed thugs (who feel empowered to resort to violence) would invariably wind up hurting and killing innocent people."
  • The Economist: "For months Mr Trump has seemed to want to provoke protesters to violence in order to justify cracking down even harder on Democrat-run cities. Recent court decisions limit his ability to deploy the National Guard the way he did in Los Angeles, but that is not the only option the president has if things get out of hand. He has long toyed with the idea of invoking the Insurrection Act, which would allow him to send troops to cities. Once again, Minneapolis is at the centre of a storm."
  • Heather Cox Richardson: "That both DHS and Trump posted false accounts of the shooting even as there are four videos circulating that reveal those accounts to be lies shows they no longer are making any attempt to justify their actions. Instead, they are demanding Americans abandon reality in favor of whatever the administration says. If this works, it would be a demonstration of totalitarian power, the ability to control how people think. Accepting that lie is a loyalty test."
  • Luke Hallam: "Trump’s response...was to vilify the victim. He accused her of willfully attempting to mow down an officer. He asserted, without a shred of evidence, that an onlooker was a paid agitator. And—worst of all—he said nothing that even came close to the sort of human response to tragedy that we would expect of minimally decent human beings. This is about Trump’s clear failings as a human being."
  • Amanda Nelson: "The fight needs to be on two things: your state and local legislative offices, including Sheriffs and state houses, which decide on whether your police departments partner with ICE. And the midterms. If we take the House back in the midterms, we can 1/ reduce the budget and headcount of ICE, which is the easiest way to reduce their operations and 2/ begin investigations."

That isn't all the regime did this week. In fact, Renee Good's murder might serve as a welcome (to the OAFPOTUS) distraction from all the other damaging things they did:

It's past time for us to behave like grandma's Democratic Party. We need to stop this shit, and we have 10 months to make our case. We have to fight with every legal means possible and, once we've driven these assholes from the field, strengthen our system against future attacks from within like this one.

Maybe going live this weekend

    David Braverman  1

The BlogEngine.NET version of The Daily Parker seems to know it has run out of time. It won't let me log in this afternoon. No errors, nothing in the logs, the authentication cookie looks correct, just...no author controls. It knows.

So once I'm done writing this directly in SQL Server, I'll start creating the production environment.

Last orders, please.

Earlier posts

Copyright ©2026 Inner Drive Technology. Donate!