Oh, Yes He Could Stop the Elections

Published at 21:36 on 30 July 2020

You had better believe he could.

Yes, yes: I know. The law. The US Constitution.

Wake up. Those have already been demonstrated to be mostly irrelevant.

Trump has spent billions on a border wall despite not having the authorization
from Congress, and has gotten away with it.

He has refused to allow Congress its power to subpoena witnesses, and he has
gotten away with it.

He has received foreign emoluments, and he has gotten away with it.

Assertions that the election must happen on time, as scheduled, just because
some dusty old pieces of paper have words saying they must are Establishment
types whistling past the graveyard. The old order has already died, and they have yet to realize it.

He’s already deploying goons to the major cities. They could easily intimidate people into staying home on Election Day, or even be dispatched to polling stations to disrupt them. Many states are controlled by Trumpists, and would gladly obey their fuhrer’s orders to not hold the elections if so requested.

The rule of law can’t save freedom. Only mass pressure from below can.

What Sucks Most about GUI’s: No Current Directory

Published at 07:58 on 28 July 2020

Say you’re doing some coding and debugging using the command line. You change directories to where the source code is and thenceforth, until you explicitly change to some other directory, you have set the default directory for all editors, compilers, debuggers, file-filtering utilities, and so on. It’s automatically understood that, unless you explicitly specify otherwise, if you specify a file name, it will be in the current working directory.

No graphical user interface that I’ve used has had anything analogous. As such, I’m forced to continually spend effort manually specifying source and destination directories. This constitutes repeated work that I don’t have to do when using the command line.

Each utility starts out relative to the home directory, or, in some cases, the directory where it was last used. It’s hard to say which is worse, but I think my vote goes for the latter: it’s a pathetic attempt at user-friendliness that ends up being incredibly user hostile: in order to predict where the files for a given application will go, I must memorize, for each application, where the last file I specified with it lived.

It all results in continual violations of the principle of least surprise. I’m persistently having to use find to determine which seemingly random and bizarre place a GUI application just created an output file in.

This, more than anything else, is why, decades into the existence of the graphical user interface, I inevitably have one or more terminal windows open, and opt to do a significant amount of my work at the command line.

Scaling Images in Java and Kotlin

Published at 08:09 on 18 July 2020

It’s sort of confusing. There’s a lot of ways to do it. And by “a lot” I mean a lot.

Despite the range of options, my initial attempts at downsizing images were disappointing, yielding ugly results. As an example, consider this:

To fully appreciate how bad that is, here’s what Gimp produces when asked to do the same thing:

Yes, the same thing. In both cases, I am requesting the image be scaled with the bicubic algorithm. Clearly, there is more processing going on in Gimp than simply bicubic scaling. Despite my attempts, I kept getting this sort of disappointing result as I experimented with the various ways of doing it.

Finally, I ran across a magic combination of API calls that yields acceptable results:

val nWidth = (imageIn.width * ratio).toInt()
val nHeight = (imageIn.height * ratio).toInt()
val imageOut = BufferedImage(nWidth, nHeight, imageIn.type)
imageOut.createGraphics().run {
    drawImage(imageIn.getScaledInstance(nWidth, nHeight, BufferedImage.SCALE_SMOOTH), 0, 0, null)
    dispose()
}

That code produced the following:

Not quite as good as what Gimp yields, but close. The takeaway is that getScaledInstance does at least some necessary extra processing, above and beyond the standard scaling, which is needed to produce acceptable results. I probably wouldn’t want to use it for high-resolution production work, but for generating screen-resolution images for sharing on the Web it’s perfectly adequate.

Update: Some more research reveals that getScaledInstance  with BufferedImage.SCALE_SMOOTH doesn’t use the bicubic algorithm after all; it uses an area-averaging algorithm which is even slower. Those details are mostly irrelevant, however: the important thing is that for my application, it delivers acceptable quality in an acceptable amount of time, which is more than can be said for all the other API calls.

Phantom Menace, Part II

Published at 11:46 on 5 July 2020

Recently, I wrote:

We also have the threat of right-wing terrorism, or should I say the virtual certainty of it. The American Right is an overall fascist political movement. Fascists believe in seizing power ruthlessly, and that nobody but themselves have any business being in power (or even are fully proper members of the nations they reside in). (One only has to consider the trope, long present amongst right-wingers, particularly rural ones, that they are the “real Americans” and theirs is the “real America.”) They also have guns, and lots of them. There is really only one logical takeaway from all this, and that is that they will start using those guns to fight those whom they believe unworthy of ruling the nation.

Right-wing domestic terrorism is already the dominant variety in the USA. Well, you ain’t seen nothing yet.

At that point, we will have a national domestic security crisis. The logical response to that will be to enact new measures aimed at targeting and suppressing the violent subversives.

So as to avoid cluttering up that article with a digression, I left out the point that the menace from those domestic-security measures will not be merely a future one, when a fascist takes power. Far from it: the temptation will be nearly as great for Biden to use them against the radical left as it will be against the far right.

This is the case, even in the absence of any equivalent proclivity towards political violence on the part of the American left. That is merely a fact, and facts and logic often prove little or no obstacle to the exercise of political power. Authoritarianism is, at its core, both illogical and highly destructive, yet this has done little to prevent it from being exercised throughout history.

The Democratic Party has plenty of centrists in it, Biden is himself one of those centrists, and he is likely to appoint many centrists as his advisers. Targeting both ends of the political spectrum is just the sort of thing that a centrist (who believes both sides to be approximately equally off-base as a core part of his or her weltanschauung) would find inherently appealing.

So the centrists, self-professed enemies of authoritarian extremism, might themselves get suckered into becoming precisely the sort of enemies of liberty they believe to be defending against.

They are, in fact, uniquely vulnerable to it.

As a left-wing anarchist, I have had to contend with the unpleasant fact that anti-capitalist revolutions have a sad record of creating, not greater liberty and equality, but greater tyranny. As a person opposed to both capitalism and authoritarianism, I have been compelled by my beliefs and my knowledge of history to explore the pitfalls that led revolutionaries astray. I am hardly unique; such interests are common amongst anarchists.

They are not nearly so common amongst centrists, securely ensconced in their firm and deeply-held emotional attachment to both-sides-ism. Most centrists are well aware of the Terreur (and will eagerly base sermons to radicals around it), yet blissfully ignorant of the Semaine Sanglante (where in a week at least as many were slaughtered in the name of keeping society safe from radicalism as the former did in ten months).

In the application of the security measures, therefore, there is every reason to be concerned that centrists will be smug, cocksure, and ignorant. That is a dangerous combination of characteristics, to say the least.

The Phantom Menace

Published at 07:50 on 3 July 2020

Let’s be optimistic and assume that Biden wins in November and is allowed to take office in January. If so, we may well be heading into a period of history which will later prove to have been a battle with a mostly phantom menace, one which let a real menace grow and fester.

The phantom menace would be the power of the political right to frustrate Biden’s agenda, and the real menace would be the continued dismantling of checks and balances against autocracy, particularly the continued growth of the imperial presidency.

On that latter point, what simpler and easier way to counter the opposition than for a Democratic president (one with a popular mandate behind him, unlike the opposition) to assert his prerogative to continue the decades-long growth of the power of the presidency at the expense of the other two branches of the Federal government? Obama did it, and in doing so unwittingly helped create the monster that is Trump.

Then there is the Senate and its antimajoritarian traditions to contend with. The Democrats chipped away at those during the Obama Era, too, only to bitterly regret it later. If the Democrats take the Senate (as they might) they almost certainly will not earn a filibuster-proof majority, so the temptation to dismantle the filibuster will then likely prove too great to resist.

We also have the threat of right-wing terrorism, or should I say the virtual certainty of it. The American right is an overall fascist political movement. Fascists believe in seizing power ruthlessly, and that nobody but themselves have any business being in power (or even are fully proper members of the nations they reside in). (One only has to consider the trope, long present amongst right-wingers, particularly rural ones, that they are the “real Americans” and theirs is the “real America.”) They also have guns, and lots of them. There is really only one logical takeaway from all this, and that is that they will start using those guns to fight those whom they believe unworthy of ruling the nation.

Right-wing domestic terrorism is already the dominant variety in the USA. Well, you ain’t seen nothing yet.

At that point, we will have a national domestic security crisis. The logical response to that will be to enact new measures aimed at targeting and suppressing the violent subversives.

Meanwhile, it is highly plausible that the Republican Party will continue to be a fascist party. Fascism of the Trumpist variety is still quite popular within its base, and it while it is possible that a big humiliation at the polls will prompt a recalculation (and the GOP falling into the hands of Never Trumpers), it is hardly certain this will be the case. Moreover, Trump is not an anomaly; the GOP had been trending fascist well before Trump came on the scene; reversing such a trend is going to prove harder than purging the party of one particular corrupt con-man’s influence.

A de-Trumpified GOP would be an improvement, mind you. It’s just that it would still be a danger; it would represent a return to the status quo ante Trump, and that status quo has been demonstrably shown to be vulnerable to a fascist takeover.

As such, another fascist presidency remains highly likely, and once it happens, odds are that president won’t be as incompetent as the current one is. (That incompetence has been the sole saving grace about Trump; Hitler, Mussolini, Franco, and so on were much more effective at consolidating power than Trump has ever been.) This gives us the worst of both worlds: a more competent and ruthless fascist taking the helm of a Republic whose guardrails have been further weakened, and with a package of anti-subversion legislation in his toolbox with which to use against the left.

What’s particularly perilous in all this is that there is not necessarily always an easy way out. Consider the Senate filibuster: absent dismantling it, it is likely that Biden will prove to be a failed president, unless he asserts unitary executive power to a degree that makes the dangers of scrapping the filibuster pale in comparison. And if Biden is a failed president, the most likely result is that fascism comes roaring back and liberty dies.

Thus, in the name of not going morally bankrupt today, a loan of political capital, one which makes going morally bankrupt in the future when it becomes due more likely, will be taken out.

All I can say is: Beware the phantom menace.

Who Were the Perpetrators?

Published at 22:15 on 2 July 2020

So, CHAZ/CHOP is no more. This is very much not a surprise; anyone with so much as half a brain could see it coming as soon as the pattern of shootings and the reportage on them became evident.

Not only were there multiple shootings, many of them fatal, at regular intervals, but they were reported as all being in or associated with the CHAZ/CHOP zone, even though at least half of them were not in fact inside the CHOP zone but merely in the same neighborhood as CHOP.

More significantly, information on the perpetrators of the shootings has, up until recently, been basically non-existent. That’s a huge information deficit. Absent any knowledge as to who the shooters are (and what their motives were), it becomes basically impossible to take away anything in the way of an informed conclusion from the shootings.

To understand why, consider the possibility that the police were involved somehow, either directly (we don’t know who the perpetrators were, so we can’t say that off-duty or plainclothes cops are not involved) or indirectly (i.e. the shooters weren’t cops but were encouraged by them) as part of a plot to discredit CHAZ/CHOP.

I do not think it is possible to rule this scenario out with any great degree of certainty, given all that has become known about the pervasive institutional corruption of policing in the USA. I think it can safely be assumed that neither the mayor nor her chief of police are involved, but it is not necessary for either to be involved; any such conspiracy could easily be lower down. In fact, it’s more plausible for it to be so, because it would make for a smaller conspiracy, and smaller conspiracies are easier to keep secret.

It is important to state at this point that all the above is mere conjecture and I have no hard evidence whatsoever to suggest that it is the case. The rub is, the narrative that the shootings are all directly the fault of the protesters also has no hard evidence in its favor, given the almost total lack of information about perpetrators and motives.

The above is the maximally-damaging plausible scenario for the Establishment. A somewhat less-damaging scenario for it is that the shootings are mostly the work of violent right-wing extremists set on discrediting the movement.

Note that (in contrary to the Establishment narritive that it’s the protesters fault) there is actually some evidence in favor of the right-wing extremist conjecture. (Note also that it is not incompatible with the police-corruption conjecture; it is plausible that corrupt cops could have reached out to right-wing extremists and encouraged them.)

Bottom line here is not to be squarely in favor of any of the scenarios above, as all the puzzles are missing a lot of pieces, only to point out that the Establishment narrative (that the zone was a shit-show that had to be ended) is itself one of those puzzles missing most of its pieces, and that to accept it on face value is to fall for Establishment propaganda.