Is Mélenchon another Chávez? Another Trump?

Published at 21:27 on 19 April 2017

Probably not. He’s never tried to stage a coup d’etat in the name of the people (Chávez), and unlike Trump he does actually have some prior political experience.

But, really, “better than Chávez” or “better than Trump” are very low standards to set, and the guy just has a tawdry air around him. He’s certainly not shying away from using ethnic bigotry (against Germans) for his own personal gain. His promise to tax all income above above €400K is unrealistic (no such massive income redistribution can be successfully imposed by government fiat; it would take sustained social pressure from civil society over many years). His apparent admiration of both Castro and Chávez is both foolish and sickening (though not terribly surprising for an ex-Trotskyite).

On the latter fact, it’s important to consider that self-professed communist candidates that are freely elected have never turned out to be totalitarians, despite their delusions about those who share their political label in less free societies. Cyprus had an elected communist as head of government for a few years. On the local and regional level, parts of Italy and India have long had communist governments.

To sum up: no, he’s probably not another Hugo Chávez. He’s definitely not equivalently awful to Marie LePen. But he’s hardly the dawn of a great new era, either. Mostly, he sounds like a garden-variety faux-populist gasbag out to capitalize on popular discontent.

So, What Happened?

Published at 21:12 on 11 April 2017

I think this:

  • Trump wants to be chummy with Russia. He (or others on his campaign) may well even have colluded with Russia.
  • Fascists admire Putin and want to be chummy with Putin, too.
  • Trump wants to pander to fascists.
  • But Trump’s ideology is mostly about promoting Trump. He has no firm commitment to fascism. He just pandered to fascism because he needed their votes in the election.
  • Fascists (and even fascist sympathizers) with significant policy experience are rare, meaning Trump has been compelled by circumstances to hire many conservatives.
  • Conservatives are not fascists. Trump was never very popular with conservatives. They just learned to eventually accept Trump because at least he’d probably appoint judges they’d like.
  • Moreover, Trump may be losing patience with the fascists. Bannon’s advice hasn’t exactly served him well. This doubtless explains Bannon’s recent demotion.

End result? An administration packed with conservatives who went into orbit when Assad launched that gas attack and automatically started denouncing it. Yes, I believe at least some of them started denouncing Assad before even consulting their boss on the matter. Reason: they wanted to strongarm their boss into seeing things (or at least professing to see them) their way.

But Trump still wanted to be chummy with Russia, so he told Russia first and launched a deliberately ineffectual attack. But it’s looking increasingly like that didn’t work. Putin paid for his lapdog, and he’s apparently quite upset that he hasn’t gotten what he paid for.

This is where things might start really getting interesting. For openers, if Putin does really have kompromat on Trump, he will almost certainly use it, given how upset he seems to be. Don’t expect that shoe to drop until after Tillerson leaves Moscow. If it doesn’t, the kompromat probably doesn’t exist.

On the subject of Putin and his wished-for lapdogs, expect Putin to be particularly livid at Assad for launching the attack and setting off the whole mess in the first place. The Russians are doubtless already searching for someone better to back in Syria, and as soon as they find him, Assad will be dumped.

The lesson here is that ruling elites are not the master manipulators that conspiracy theorists believe them to be. They hold great power, but they also work with limitations and imperfect circumstances in an unpredictable world.

A Strange Missile Attack

Published at 22:30 on 9 April 2017

First, yes, Trump indeed told Russia about it first. I mention that not because there’s been any shortage of such mentions, but that they have, so far as I have been able to tell, mostly been one liberal blog citing another. My link is to a Time magazine article that quotes a Russian official by name confirming the notice.

Second, the runways were left alone. Add that to the point above, and it’s no surprise that that planes (which Russia and Russia’s ally Syria were able to move to a safe place thanks to the deliberate warning) used the (still intact) runways to launch sorties from.

Before closing I’ll point out that there is a bit of truth that came out from the White House, namely, that attacking the runways with missiles wouldn’t have accomplished much. No, it wouldn’t have. But that’s sort of beside the point I’m making, which was that a deliberately symbolic attack, with only limited military significance, was made. In other words, it was for show.

Go (the Computer Language) and Fads

Published at 19:18 on 5 April 2017

I’ve been looking at the Go programming language recently, because (a) it’s started showing up a lot more in job descriptions, and (b) it combines the interesting attributes of both being compiled to machine language and being garbage-collected.

Unfortunately, it also falls victim to what I regard as an unfortunate fad amongst programming language designers in recent years: the decision that full, preemptive threading is something that programs don’t need and that some sort of ersatz (cooperative) concurrency is good enough.

Well, sorry, in my experience it’s just not. Maybe I’m atypically biased, because of my recent experience writing web crawlers, which have to parse pages as part of the job of finding new links to crawl. That’s a computationally complex task that in certain pathological cases can take indefinitely long. The solution is to run the parsing in a thread, and to kill that thread and proclaim the page unusable if it fails to parse in a reasonable amount of time.

This only works with true preemptive threading. The parsing is taking place in some third-party library that’s stuck in a loop someplace. I don’t want to recode the parsing library and clutter it up with dozens of yield statements. I shouldn’t have to recode it. But absent genuine threads, there is no alternative.

Maybe I’m being unfair here; maybe my experience with concurrency is highly unrepresentative. I don’t know, exactly. I can’t imagine I’m the only person who’s tried to make calls into a computationally complex library routine from a multithreaded program. So color me skeptical about the whole “ersatz threads are good enough” mindset.

I’ll note that C# has both full preemptive threading and the ability to be compiled down to machine code (by default, it’s just byte code, but there is what the C# world calls “ahead of time” compilation, which is just what I described). And C# is not a Microsoft-only thing; there’s Mono.