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.

(Electronic) Wire-Wrapping

Published at 14:36 on 9 March 2017

Introduction

I’m working on my on-again, off-again digital clock project, and one thing I learned before I broke off before is that the number and density of connections made soldering very impractical. So wire-wrapping it was. Some basic points:

  1. Wire-wrapping is spendy. Just getting a batch of sockets, a spool of wire, and an entry-level tool cost me around $100.
  2. Because of that, I can’t consider it worthwhile for less-ambitious (read: less complex) projects.
  3. You’re on your own, basically. There’s no instructions with the tool I ordered. I presume that’s typical for most tools.
  4. There’s an incredible variety of tools and wires out there.

So, with all that, here’s what I’ve learned so far.

Get a Less-Expensive Tool

Unless you’re really going to get into wire-wrapping, don’t get one of those gun tools. The base price is spendy enough, and they’re even more spendy than that! The gun tools (both electric and hand-powered) require both a bit and a collar, and both of those items are costly as well. Expect to spend $200 to $300 or more just to get a tool capable of making connections. Ouch!

Instead, opt for a “screwdriver” type tool. I’d recommend getting one made by a well-known name brand, because you are going to be making hundreds of connections on the typical project, given the size and complexity needed to make wire-wrapping make sense.

Use 30 Gauge Wire

Specifically, 30-gauge, Kynar-insulated, silver-plated wire. It’s basically the standard. (Just to make it interesting, they sometimes call Kynar by other names: PVDF, polyvinylidene fluoride, or polyvinylidene difluoride.)

Get the Right Tool

The tool you need is governed by both the wire gauge and the style of wrapping you’ll do. You already know the gauge; the wrapping style I’d recommend is the “modified” style that involves wrapping about a turn of insulated wire around the terminal posts before the bare wire starts. This provides a degree of strain relief, which minimizes the chance of things breaking while you wire your project.

Taken together, the right tool is the Jonard WSU-30M. It’s not much larger than a small screwdriver and costs over $30. Cheaper than the guns by far, but still, ouch! It’s a name-brand tool, and it’s well-known enough that there’s (incomplete, but still better than no) instructions for using it on the web.

An added plus is that the WSU-30M can remove connections as well as make them, so you don’t have to order a separate removing tool. The latter is a must, as Murphy’s Law says you will sooner or later make a wrong connection.

How to Use the Tool

There’s some instructions here. Alas, they’re missing one of the most important things: how much wire to use to account for wrapping and slack between two terminals. After some frustration, I arrived at the distance plus 7 cm (sorry, I’m not going to convert that to inches; I prefer working in metric because the math is easier).

A Gem of a Quote

Published at 19:59 on 8 March 2017

As I am wont to do at times, I’m delving into a subject deeply for no apparent reason other than a friend mentioned it and it sparked my interest to read further on it. The subject in this case is the Chilean Revolution of 1970-1973 that was brutally cut short by a US-supported coup d’etat against the democratically-elected government of Salvador Allende.

I’m not quite old enough to qualify as “old” yet, but this still resonates with me:

“[T]here is no generation gap–there are young old people and old young people, and I place myself in the latter category.” — Salvador Allende

This comes from a little-known (in the US) speech that Allende gave at a university in Mexico:

 

Well, THAT Didn’t Last

Published at 08:14 on 4 March 2017

And really, could anyone doubt that it wouldn’t?

That speech that some foolishly gushed over looked good only in comparison to the general standard of awfulness that Trump has set. If any other president had uttered it, proposals like the Naziesque one to track and publicize immigrant crimes would have inspired the horror and revulsion they deserve.

Trump has done that before: His “I am your voice” acceptance speech was actually far better than his norm, too. He’s given up tweeting before, too. Neither has lasted. The leopard has proven time and time again that he cannot change his spots.

Well, the Democrats Did It

Published at 12:28 on 26 February 2017

They managed to successfully ram through a Clintonite to be the next head of their party. This shows that enough Democrats are either terminally clueless and cannot understand the mechanics of the Trump victory, or terminally craven and think risking a further slide into fascism is a price worth paying for continuing to appease the oligarchs.

Either way, I have no stomach for working closer with those bastards. Yes, I realize that there’s an argument to be made for perseverance, one that is basically not refutable (since it depends so much on unknowable future events). It’s just that the chance seems so remote to me, and the need seems so profound for more revolutionary politics, that I cannot in good conscience squander my precious life energy on working within the Democratic Party.

It bears revisiting the point that the Establishment left does not exist to liberate people from capitalism; it seeks to placate people with reforms so that they don’t get uppity and threaten the rule of the elites. As such, the reason that Ellison wasn’t voted in is that he serves no useful purpose to the Establishment. There simply isn’t enough viable threat of social revolution to sufficiently motivate serious attempts at reformism at the present.

So the conflict between following my heart and choosing the most practical route turns out to be illusory; focusing on radical politics is the most practical route.

US Imperialism Could Be Worse

Published at 10:07 on 24 February 2017

It could be explicitly guided by the principles of white nationalism, and could be totally unmoored from any standards of decency, instead of only partially unmoored from them. It could, in other words, be much like President Bannon desires it to be.

Which means that despite all his faults, someone like James Mattis is exerting a beneficial influence by retarding such new directions and clinging to historical patterns. In turn that means that if Mattis (or some other more Establishment figure) leaves, particularly if he is forced out, it’s time to get really worried.

The Deep State Versus Trump

Published at 13:24 on 16 February 2017

It’s real. Trumpists are whining about it and Establishment liberals are cheering it on.

What’s the ramifications in this for anarchists? I think this discussion on Reddit captures many of the points. First, the Deep State, like any part of the State, is not the friend of anti-authoritarians. But second, the pre-Trump status quo is far better for anarchists than the sort of fascism Trump could easily unleash. In this, the Deep State serves much like Stalin did against Hitler: not necessarily a Good Guy, but someone who can be much more easily lived with and coped with than the Bad Guy both of us have in common.

Currently, the Intelligence Community seems to be fighting Trump in the least harmful way remaining available to them: by leaking damaging facts about his regime. That allows the influence they wield to be moderated by public opinion and lawful processes. Exercising influence via leaks is greatly preferable to doing so via more overtly forceful techniques such as blackmailing, assassinations, coups d’etat, etc.

The leaks are still unlawful, of course. Classified information is being released to the public without following the legally mandated formal process of declassification. But the law isn’t prefect; in fact, it’s already failed mightily by letting an authoritarian demagogue (precisely the sort of person it has intended to keep out of high office) into the White House.

The crisis, in other words, already exists. By choosing to deliberately leak, the Intelligence Community is responding to an existing constitutional crisis, not creating a new one.

Re-Acclimating

Published at 08:55 on 14 February 2017

My parents keep it very warm (about 75 ˚F) in their house. I generally heat mine to somewhere between 60 and 65 ˚F. When I’m there and awake, that is. So often it’s somewhere in the fifties because although the heat is on it hasn’t fully warmed up yet.

Which made for a little bit of worrying about how uncomfortable I’d be when I returned. Answer: not much. 58 ˚F is still plenty comfortable when one is in front of a radiant heat source, wearing sweatclothes, and has a blanket handy.

It’s winter, why should I dress as lightly as if it were a warmer season?

I Expected This

Published at 07:37 on 13 February 2017

I lived in New Mexico as a teen, and learned early on that if there’s a spell of abnormally warm weather in the cooler months of the year, it typically ends abruptly. Two days ago, highs were in the 70s.

Flying back to the Pacific Northwest this afternoon.

Albuquerque Journal Runs Fake News on Crime

Published at 10:55 on 11 February 2017

I’m visiting my parents in New Mexico, and twice I’ve been struck by articles in the local paper hyperventilating about crime. The most recent one is here. In short: they’re pure crap, as shown by the actual statistics.

Crime is higher than national averages both in Albuquerque and in the state of New Mexico. Things have long been such; I remember that being the case when I lived in New Mexico as a teen. Yet, I never felt personally at risk, and I still don’t when I visit. And, more importantly, the long-term trend in crime, both in New Mexico and nationwide, has been downward.

Claims that “the crime rate is eye-popping” are nothing short of fake news. The Albuquerque Journal should be ashamed of itself.