This Should Clear Things Up

Published at 07:12 on 2 August 2023

From the indictment:

The Deputy White House Counsel reiterated to Co-Conspirator 4 that there had not been outcome-determinative fraud in the election and that if the Defendant [Trump] remained in office nonetheless, there would be “riots in every major city in the United States.” Co-Conspirator 4 responded, “Well, [Deputy White House Counsel], that’s why there’s an Insurrection Act.”

Them or us. They use the power of the State to destroy us (and with it, open society), or we use the power of the State to destroy them (and enable open society to be preserved). It was always thus. As I wrote in the wake of the insurrection:

We must win and the fascists must lose. It is as simple as that. Everything  that follows flows from this simple, elementary fact.

Fascists want a world where fascism is the only principle allowed. All debate, all activity, save for the glorification of the fascist order, will be sedition. Non-fascists span the whole gamut of ideologies outside fascism, and we do not want that. The vast, vast majority of us want a world where openness, debate, and dissent are not only allowed but valued. This latter state of affairs may be termed an open society.

There is simply no compromise possible between the two positions. Either open society prevails, or fascism prevails.

12 January 2021

This is why I was so worried about the lack of a prosecution of those at the top for the events of 6 January, and this is why I am so relieved to see prosecution finally commence.

At Last

Published at 23:05 on 1 August 2023

It seems as if American democracy might finally be getting serious about trying to save itself.

The basic nature of the indictment is plain: that Trump incited the insurrection on January 6th.

I am not personally averse to insurrections, if they are against a corrupt Establishment that deserves an insurrection. If Democratic operatives had really tried to steal a legitimate victory from a Republican candidate (or, of course, the converse), then the sort of thing we saw on the 6th would be both:

  • Only to be expected, and
  • Completely justified.

As such, the false claims on Trump’s part that he was cheated out of his victory had only one logical conclusion: the one we saw play out on the 6th.

Really, nothing could be more clear.

The question now is whether all the dilly-dallying on the way to getting here makes this a case of closing the barn door after all the cows have already escaped. But as the old saying goes, better late than never.

On (Not) Being a Java Careerist

Published at 07:40 on 29 July 2023

Not to slam Java careerists. One thing they are is very smart and talented. One just has to be, in order to deal with all the gratuitous complexity bred by the traditions of that programming community.

But here’s the thing: I don’t want to devote basically all of my mental effort to doing that. I don’t want to lose my botanical knowledge, or my wide-ranging general scientific knowledge. And I would have to in order to succeed in the Java world. The mental load is just so extreme.

Even if I wanted to, I am not sure I could. I crave knowledge in a diversity of subjects. My mind would rebel, strongly, against being forced to hyperspecialize.

In a sense, this means I’m “lazy” in that I “don’t want to work very hard” at software software development. But I don’t see that as necessarily a bad thing. Why should I work harder than necessary? If there is an easier way to do a good job at something, why not choose the easier way?

Is it really intelligent behavior to continue doing something in a difficult way when you are aware that an easier way exists?

This all was, in fact, something I wondered a bit about going into this job. And I decided then that if this was the case, I wouldn’t succeed at the job, wouldn’t want the job, and would end up departing from it. And so here I am.

Why I Hate Java: An Example

Published at 20:46 on 28 July 2023

Building on this entry, let us relate a little story that transpired in the past week.

About a week ago, I make a stupid error and introduce a bug into the code. Shouldn’t be a big problem; one good thing about where I work is that there is a very extensive battery of tests for things.

But this is the Java universe we are talking about. Simplicity is not appreciated as a virtue. Both the test and build frameworks are ginormous and hypercomplex. Somehow, I still do not know why, some feature got triggered that caused the test(s) that would have detected my bug to fail to run.

Because the Java universe does not appreciate simplicity, that code base itself is ginormous and hypercomplex. If the code were not written by members of such a dysfunctional programming culture, it would have been broken up into smaller, more managable bits that communicated with each other somehow. The test log for the subset of the code I was working with would have been short enough I would have probably noticed something missing. Instead, the missing tests were buried in a little over 80,000 lines of test and build output. Can you read an 80,000 line log file without falling asleep first? I sure can’t. So I didn’t even try. Naturally, the missed tests go unnoticed.

The check-ins get rejected for other reasons, so I get to work on addressing them. Meanwhile, the whatever-it-was that caused the critical tests to get suppressed ceases to do so. So my first attempt to test the recode fails for this out-of-the-blue, off-the-wall reason. I look at my recent changes and see nothing that could cause this issue to manifest.

Not much can be done but to attempt to instrument the daylights out of the code with debug log statements and try to figure out what the heck is going on with the data as it gets operated on.

My first attempt to do so fails because the company’s network infrastructure suffers a hiccup and causes my build to fail. The company’s infrastructure is super-complex, poorly-documented, and unreliable. (Everyone else just basically accepts it because everyone else is a Java programmer and thus used to unnecessary complexity and the resulting unreliability.)

In my second attempt, I discover that for some reason the test framework suppresses all log messages. So I recode to use writes to standard output, figuring (correctly) that it won’t “intelligently” suppress those. The instrumenting turns out to be insufficient, so I add more.

Each of these iterations takes way, way longer than it should, because the code is big and bloated and complex and so takes 30–45 minutes to build. If everything was factored into smaller units, I doubt builds would take longer than 5 minutes (if that). So each iteration takes roughly 6 to 10 times longer than it should.

Finally, after at least 4 hours of effort, I locate the bug.

And this is why I hate Java. Not because of the core language itself (dated, but still not bad considering it was designed in the ’90s) or because of its runtime (still one of the best virtual machines out there), but because of the traditions of the community that uses it. A minor bug, that would have been resolved in half an hour easily, instead almost makes it into production and takes half a day to resolve.

And this happens everywhere, all the time. Everything is more difficult, more tedious, and more error prone than it should be, with a lot more busy work than there should be.

Those dysfunctional traditions are such an irritant that I have developed my own special term for them: Java community antipatterns, or JCA’s for short.

I have recently learned that I am on my way out where I work, mainly because I can’t cope with the JCA’s as well as the Java careerists. And frankly, I can’t wait till I move on. I’m already looking for another position, and it will be as far from the enterprise Java world as it can be.

Assigned Reading… and More

Published at 20:42 on 25 July 2023

First, the assigned reading:

The extra content is a little discussion.

First, will this foot dragging result in any action being too little, too late? It might. Had the lawbreaking by the most powerful been treated more seriously sooner, Trump might already be seriously damaged to the point that the GOP would finally throw him under a bus. (His base of cult followers would never do so, but the party leadership might, if they realize that the sooner they do so, the sooner they can move on from a candidate who is doomed to lose. They don’t care about democracy, but they do care about remaining politically viable.)

Second, it really all goes to show what a bunch of pure unadulterated bullshit the “they are picking on Trump” line of the Right continues to be. Trump has gotten nothing but free rides and special treatment from the entire system, basically since the very first day of his life as the heir of a multimillionaire. If Trump wasn’t getting special treatment, he would already be in prison.

Zelensky’s Hissy Fit

Published at 06:56 on 12 July 2023

Too bad. As mentioned earlier, Ukraine does not belong in NATO. Not yet at least. Moreover, the process of getting to where Ukraine’s membership in NATO makes sense is likely to be long and complex enough that any sort of strict timeline is foolish to promise.

Biden was wrong to give Ukraine cluster bombs but he is dead right when it comes to NATO membership for Ukraine.

Ukraine is not getting an express ticket to NATO membership and Zelensky can like it or lump it. (Who else is he going to get to shovel mass quantities of military aid at his country in its time of need? Beggars can’t be choosers.)

… And More Pathetic Yet

Published at 21:05 on 11 July 2023

Now it has come out that Putin has actually met personally with Prigozhin in the wake of the Wagner mutiny. This just screams weakness. A strong authoritarian would have had the leader of a mutiny against him disappeared within a matter of days.

To reiterate: I can’t see Putin lasting much longer than a year.

Ukraine Policy Heads off the Rails

Published at 19:07 on 6 July 2023

Cluster bombs? NATO membership (not eventually, right away)? It seems like no bad idea is bad enough not to get serious consideration these days.

Cluster bombs first: the problem with cluster bombs is that the bomblets in them don’t all explode. Most of them do, but not all of them. The remaining unexploded ones lie in wait for some unfortunate individual, often a civilian, sometimes a child. Then, tragedy. They are as bad as land mines (which are banned by international treaty for a reason).

Fast-tracked NATO membership: no, no, no.

First and most important, Ukraine is actively fighting Russia. Membership while that state of affairs exists violates the unwritten rule that two superpowers don’t directly fight each other. (The NATO treaty requires an attack against one nation to be interpreted as an attack against all. This means that the next bullet fired by a Russian soldier brings the USA into a direct war against Russia.) The argument being proffered for this is that since there hasn’t been a nuclear exchange with Russia yet, what the hey, it’s worth a roll of the dice, let’s push our luck and go for broke. This is so reckless that it frankly boggles the imagination.

Second, Ukraine is not a functioning, first-world democracy. Yes, Ukraine is definitely better at the whole democracy and civil rights thing than Russia has been in recent decades, no disagreement there. But it’s still best understood as a democratizing country, not a democratized one. Ukraine still has huge problems with corruption. There are right now headaches at times caused by the likes of Turkey, Poland, and Hungary voting contrary to Western norms. Why compound them by giving another less-than-fully-compatible nation an express ticket to full membership?

Look, I get it. Putin is a piece of fascist, imperialist shit who started this war. Nothing wrong with helping Ukraine defend itself against Putin’s aggression. But please, be prudent about it. The above two ideas are disasters.

Putin Sounds More Pathetic than Ever

Published at 18:07 on 26 June 2023

Putin made an unscheduled speech today in which yet again he thanked Wagner for standing down and not going into Moscow. Total weak guy stuff (a strong leader would have promised punishment and retribution).

That one year time frame I gave a few posts ago was my upper bound for how much longer Putin can last in office. His actual remaining time in office might be quite a bit less.

Remember, revolutions in Russia seldom happen in one fell swoop. In 1917, the February Revolution preceded the October Revolution. The attempted coup against Gorbachev in 1991 was followed some months later by the breakup of the USSR, and that was followed in 1993 by Yeltsin’s coup against parliament. The Wagner mutiny is probably just the beginning.

Ukraine and the Putsch

Published at 16:23 on 25 June 2023

The putsch helps Ukraine. A lot.

Russian soldiers occupying Ukraine now know that their leader is weak and vulnerable. They know that prominent, influential people on the Russian side are saying that the whole pretext for the war was a pack of lies: Ukraine was of no threat to Russia and did not need to be de-Nazified.

Ask yourself: Would you feel motivated to fight for a weak and vulnerable leader in a war based on a pack of lies?

As such, expect low morale, desertions, surrenders, mutinies, etc. to really ramp up on the Russian side.

Moreover, Putin now is fighting two wars. One in Ukraine where he had already bitten off way, way more than he could chew. And now another one at home, trying to cling to power. He is now vastly more overextended than he was before.

It doesn’t take a genius to figure any of this out. You can be sure the Ukrainians already have. They were already beginning an offensive to retake territory. Expect the offensive to get ramped up: when the enemy is weak, you hit him harder.