A Quick Personal Update

Published at 09:20 on 11 September 2021

Not been posting here much recently because I have been preoccupied with the upcoming move to Vancouver, BC. Or should I say, the potential upcoming move.

You see, my potential employer had been operating under what I call “the child’s conception of NAFTA*.” Which is, upon hearing that the “FT” stands for “free trade,” to conclude based on its name alone that one knows all there is to know about the agreement. In this case, it means assuming cross-border hire is only very slightly more complex than hiring someone from another Canadian province. Just tell the hiree to apply for a work permit under that agreement, wait a few weeks for perfunctory approval, problem solved.

Um, no, that’s not how it works. Back in the day, I remember right-wing, ultra-capitalist libertarians whining about how NAFTA was false advertising because it really didn’t usher in complete free trade. Well, from their standpoint, they had a point, because it did not. National borders still very much exist and they still very much matter. Yes, there are easy-to-get work permits under that agreement, but they are limited to 63 quite narrow and precisely defined job categories, and a software developer is not among them.

So the intervening weeks have been a process of educating first myself, and then transferring that knowledge to my potential employer, who to this day remains of the general belief that they do not want to get super heavily-involved in the process. Which makes the outcome uncertain, because as Canadian immigration law is written, the employer basically does have to be quite heavily involved in my situation.

One can argue that this should not be the case, given the shortage of software people in Canada. That, however, is a policy advocacy position and not a statement of political fact. The fact is that hiring developers from abroad is not currently so easy or simple.

So this whole exercise may well come to naught so far as they are concerned. It won’t be a total loss from my standpoint, however, as going through it has enabled me to learn about which Vancouver employers are willing to be involved in the process of hiring from abroad (due to the software developer shortage, there is a motive for them to do so). Those are going to be my focus from this point onward, of course.

* And yes, the agreement is no longer officially called NAFTA. It is, depending on what country one resides, USMCA, CUSMA, or T-MEC. (Note how each acronym puts one’s own nation’s name first. But of course. Ah, nationalism. But I digress.) People tend to remember the fact that it’s basically a renegotiated NAFTA, however, and still judge the overall nature of the agreement by its original name.

Something to Keep in Mind Re: Afghanistan

Published at 07:52 on 26 August 2021

Not only have longer-term issues doomed the West in Afghanistan, so have shorter-term ones. In particular, the shorter-term ones probably doomed the West to a chaotic and awkward evacuation of the sort we are seeing right now. See this Twitter thread for the details.

I May Have Found a Tech Job… in Vancouver

Published at 10:23 on 25 August 2021

It’s not 100% certain yet, and there’s still immigration red tape to go through (with a good chance, but not a certainty, of approval) even if the offer does come. So no celebrating yet.

One thing it does all show, however, is how effed-up and bigoted against older people the Seattle high tech scene is. I applied at literally dozens and dozens of positions in the Seattle area over the years. Got called for an interview at maybe 10% of those, and offers at exactly zero of them, even for the interviews in which I absolutely nailed every question. Contrast with Vancouver: three applications, two of which resulted in interviews, one which looks likely to result in an offer, and on none of those interviews did I absolutely nail everything (only did passably well).

Even if nothing does come through, this avenue has been productive enough that it will probably be worth trying again. I really have to thank the friend who encouraged me to check out Vancouver because the scene there was different.

More on Afghanistan

Published at 11:42 on 16 August 2021

An Intelligence Failure of the First Order

I expected the Taliban to prevail (they prevailed in about a third of the country prior to the withdrawal, after all). I did not expect them to prevail so soon. Neither did the intelligence community.

My oversight can be excused. I am just some random guy with a blog; any failures in my analyses carry exactly zero national security import. The so-called experts should have known better.

Biden Has Egg on His Face

Yes, his predecessor had the idea of withdrawing in defeat first. So what? Trump had lots of other ideas, and Biden promptly tore the policies based on those ideas up when he got into office. Biden, not Trump, is president now. Biden, not Trump, made the ultimate decision to withdraw. The buck stops in the Oval Office.

The question now is how much this will hurt Biden. Hurt him it will, of that there is no question. The only question is how much. One thing working in Biden’s favor is that most Americans don’t give a shit about foreign policy. The Republicans are going to try and make this stick, and unlike the Democrats, the Republicans actually do have effective propagandists. But they will still be swimming against the tide of a public that generally does not give a shit.

The Real Losers Are the Afghan People

Many of them do not yet realize how much they have lost. Like most of the Third World, Afghanistan’s population skews young. Many of them don’t have personal experience living under Taliban rule. They now will.

The biggest losers are the Afghans that for one reason or another threw their lot in with the West. Actually, that wording has some problems. For some of them, there really was no choice. If you were a feminist, or LGBT, Fate herself had chosen to throw your lot in with that of the Western modernizers. But that is of little consequence when it comes to the consequences that those Afghans will now suffer at the hands of their new, brutal overlords.

Get Them Out!

As much as possible, we need to ensure that those in Afghanistan who want to get out, can get out. Every country that participated in the invasion, particularly the USA, needs to welcome as many Afghan refugees as humanly possible. Any quotas or paperwork that get in the way need to be shoved out of the way.

Although the general goal should be retreat, it is acceptable (and almost certainly necessary) to maintain some military presence for purposes of managing the evacuation. Make it clear to the Taliban that their lives will be much simplified if they cooperate with the evacuation, then honor that deal by promptly leaving once the evacuations are complete.

The Taliban Takes Over

Published at 14:47 on 15 August 2021

Some random observations, in no particular order:

Not a Surprise

Anyone surprised by this simply has not been paying attention. The USA and its allies have been set to lose this one basically ever since Day One, when the war was launched, largely under laughably false pretenses, by a deluded nation in narcissistic awe of its own military might.

Well, One Surprise

That surprise is just how quickly the domestic opposition to the Taliban suddenly evaporated and blew away in the gentlest of breezes. I expected Kabul to fall, but maybe in about a month’s time, not today. I was genuinely surprised when I heard the news this afternoon.

The Afghan People Really Did Not Support the US-Backed Government

I mean, come on, the West in general and the USA in particular showered vast amounts of military aid on the (now former) government of Afghanistan. If, given all of that, virtually zero opposition was mounted to the Taliban, this cannot but show how little support for that government there was.

This is a general statement, of course. Some Afghans really did support the government. There just were not very many of them, and their support did not run very deep, else the Taliban would have run into more fighting on their way to victory.

This Is a Win for Fascism

Make no mistake, the Taliban do qualify for the epithet “Islamo-fascist.” None of my observations above imply that the Taliban are anything other than an arch-reactionary gang of authoritarians. Afghanistan will now become markedly less free. There is nothing to celebrate about a group like the Taliban taking power.

Who Has Learned What?

That is now the question we must ask. Has the USA learned anything about the limitations of empire? Have the Taliban learned anything about the limitations of holding power in a single landlocked, impoverished Third World nation?

If the answer to both of these questions is in the affirmative, some sort of stable coexistence is possible: The USA will refrain from invading again, and the Taliban will refrain from provoking the West into invading by supporting groups that commit acts of major terrorism against Western nations.

If not, then we have not seen the end of Western military actions in that part of the world.

Vaccine Mandates Can Increase Freedom

Published at 10:52 on 8 August 2021

Oh yes they can, and the lack of appreciation for this brings up one of the things that has so often galled me when the subject of freedom comes up.

Let us first discuss how vaccine mandates can increase freedom:

  1. They increase it for those who are medically unable to receive (or to much benefit from) being vaccinated, due to health conditions that they were born with or which they acquired through no fault of their own. (Real-world vaccine mandates are not universal; they do have exemptions for the minority who are incapable of tolerating vaccines.) Why should such unfortunate individuals have their freedom compromised by those who refuse to cooperate in a collective effort against a common enemy of humanity? How is this state of affairs in any way “freedom?”
  2. They also increase it for the rest of us. If vaccine mandates had existed, the Delta variant would not be spreading as much as it is. Had it not been spreading so much, mask mandates would not be coming back, and normal, vaccinated folks like me wouldn’t be having to bother with those damn masks and other restrictions yet again. (And yes, they annoy and inconvenience even those of us who find them worthwhile.) How is the current state of affairs in any way “freedom?”

It’s not just COVID-19 vaccinations, by the way. It extends to other areas of human behavior. Take air pollution, for example: How is it “freedom” for people’s ability to get out and be active to be impacted by bad air quality? Why is the “freedom” to drive polluting cars or profit from polluting factories the only “freedom” that routinely gets brought up when the issue of air quality regulations gets discussed? Get it straight: better air quality increases personal freedom for many.

Or how about indoor air pollution and smoking? It used to be considered “pro-freedom” for smokers to be able to light up in any indoor space: offices, stores, airports, aircraft, buses, etc.: smoking was allowed in all. How on earth was this “freedom” for those of us who are allergic to smoke and physically sickened by it? How was it “freedom” for those who simply didn’t want to stink of smoke to be made to stink of it? Why was (yet again) the only “freedom” that was routinely brought up the “freedom” to impose costs on others without their consent?

Make no mistake: there is also a cost in freedom to be paid when regulations and other standards of conduct are instituted. I am not disputing that. What I am disputing is unquestioned implicit assumption that this is the only side of the balance sheet worth considering. It is also an issue of individual liberty when one individual’s freedom to swing his fist impacts another individual’s freedom to not have his face punched.

It goes beyond regulations and impacts the development of positive policies as well. Consider, for example, universal health care. That typically requires taxes or other mandates to support, and those taxes do deprive the taxed of the freedom to spend that money on things other than taxes (or to save it). But the result frees people from having a run of medical bad luck drain their life savings, thereby destroying much of their freedom. It also frees children from the oppression of having the accidents of birth and inheritance determine the health care they get. Universal health care creates greater freedom for many. Any reasonable, balanced debate on health policy simply must include this fact. Yet in the USA, all too often it does not. The enemies of universal health care often get a monopoly on playing the freedom card.

One-sided characterizations of freedom are, in a word, a dangerous pitfall. Badly-warped concepts of “freedom” breed societes with badly warped value systems that in turn breed badly warped public policies.

Beware Misrepresented Data

Published at 21:59 on 6 August 2021

There are plenty of graphics like the following one circulating on social media:

If true, such statistics are shocking. A significant number of major cities where over half of households face eviction? That’s a major, major social crisis in the works! And the source is a US Census survey, not some dubious polling outfit one has never heard of.

Turns out, not nearly so much. Here is the actual household pulse survey data from the US Census Bureau. Note the caption: “Percentage of adults living in households not current on rent or mortgage where eviction or foreclosure in the next two months is either very likely or somewhat likely [emphasis added].” Not the percentage of all adults, just the percentage who are already behind. Here is a related set of data showing those who are behind and have little hope of ever catching up.

Take Mississippi, one of the worst states, for example. 12.3% of adults live in households that are behind, and of that number, 60.5% are at risk of eviction. The actual fraction of adults in the overall population at risk is therefore more like 60.5% of 12.3%, or 7.4%. That’s still not an insignificant number, but it is far less than 60.5%.

Not Much Smoke; Rain Coming

Published at 09:09 on 5 August 2021

First, my smoke warning was mostly a bust. Some smoke did make it down to ground level earlier this week, but it didn’t last very long and the air quality never got worse than the moderate range. So our incredible run of luck at avoiding the smoke continues. It does not look likely to get smoky again in the near future. I still will be surprised if we escape this summer without any serious episodes of degraded air quality at the surface, but who knows, we just might.

The best models do all agree that starting as soon as tomorrow, we are in for a spell of weather damper than we have seen since June. Some model runs are saying it will be quite damp; if so, this could end up really helping the situation with the fires in Okanogan County. But others are saying amounts should be fairly paltry (remember, there has been no more than a trace of rain since June, so the phrase “damper than we have seen since June” really doesn’t say much).

There is, in other words, far less model agreement on precipitation amount than on the general fact that at least some precipitation is coming. What this means is that it is really not possible for anyone to make an accurate forecast as to precipitation amount. Any amounts you see being forecast, even in professional forecasts, need to be taken with more than a few grains of salt. A given forecast might end up being correct, but if so it will be a matter of sheer luck.

This is in fact one of the biggest problems with weather forecasts as they are currently disseminated. There is no information given as to accuracy. (I actually had a pretty easy job with last winter’s successful snow forecasts; models were in significant agreement, and all I did was summarize them.) It would help a lot if the public had some idea of how confident forecasters were in a given forecast.

So Much Stupidity

Published at 09:56 on 30 July 2021

Trees Are Stupid

Not the living beings (those are amazing), the data structures. The things my undergrad CS teachers were obsessed with assigning tedious programming exercises to implement.

I am reviewing how to pass those stupid coding tests most interviewers seem to be so fond of these days, and one if the things that has become clear is just why I never much liked trees in the first place. In short, if you use trees, you are virtually always stuck with two choices: a simple, logical, easy-to-understand tree that is vulnerable to pathological behavior, or a complex, quirky, difficult-to-understand one that literally makes buggy code inevitable.

Yet my professors pissed away so much time blathering about trees and how to code them. How many times have I used, I mean actually used, such knowledge professionally? Maybe once or twice in my decades-long career. Not surprising, given their many disadvantages.

Consider associative arrays (a.k.a. dictionaries or hash maps), which all modern programming languages support to some degree. These are versatile general-purpose data structures that eliminate much low-level grunt work. A huge part of the reason I so seldom use trees is that I just use associative arrays instead.

Ah, but don’t these use trees under the hood? No, generally they do not. They use hashing functions, arrays, and linked lists. Why? Because you typically get faster access that way, and they are simpler to code (and therefore have fewer chances of implementation bugs), that’s why. The people who code language runtimes and standard libraries are not stupid.

Yes, even in what is alleged to be the canonical “trees excel at this” case, they actually don’t. Not really.

Sure, trees have some genuine uses in databases. But here’s the thing about databases: very few people write them. This is because few people need to write them. The rest of us simply use them, and there is already a very nice set of databases (well debugged) out there ready to be used. Why re-invent the wheel, particularly when it would involve so much tedious, bug-prone coding?

So it’s not that trees are useless, it’s just that they are far less useful than their prominence in the undergraduate computer science curriculum would indicate.

Why are they so common, then? One must consider the general purpose of higher education: to furnish to the economic system individuals that are screened and graded for both intelligence and obedience to authority. Seeing who is motivated to perform meaningless, tedious programming exercises is a great way to do this. As a bonus, many of the more sophisticated tree structures have the advantage of requiring algorithms that are both non-trivial enough to give students a good coding exercise yet trivial enough for them to be expected to code in the first place, thus making them a good source of busywork.

Job Interview Coding Tests Are Stupid

They are stupid precisely because they inevitably want you to show off your tree-coding knowledge. But as we have seen, in the real world, you don’t directly touch trees. You use a database or a hash map, and be done with it. This goes for a surprising amount of the generalized stuff they teach you in college, in fact.

Seeing the world in terms of general-purpose principles can often be positively harmful in programming. Some of the most useful code I have written for people is code that was proclaimed by others to be impossible to write, because it was an instance of a generally impossible problem to efficiently solve. While this was true in the general case, a little introspection into the particular instance of the problem at hand would reveal it had specific attributes that made a solution possible. The general case would break my code, but that was irrelevant because my code was not running against the general case. A solution was possible.

In one case, there was so much resistance from others in the team that I had to sneak my code into the system. It was only some weeks later that I observed how things were “mysteriously” behaving better, and then pointed out the reason to my incredulous teammates, who were at that point compelled to concede that the problem was solvable after all.

Success in real-world coding is based on being able to determine the unique and specific characteristics of a particular problem, how these differ from the more general cases of problems, and how to leverage these particulars to craft specific solutions that are significantly more efficient than any stock algorithms or data structures could ever be.

I will make an exception here for the coding test that my passing led me to get hired at the best job I have ever worked at (at least for the initial several years, until both the job and the company changed to the point that I was no longer well-suited to the position). It was crafted to have such realistic special characteristics, and it was my quick spotting of these that impressed my interviewers.

But that was the exception that proved the general rule: interview coding tests are stupid.

A Garden-Variety Heat Wave; Still No Smoke (for Now)

Published at 11:00 on 29 July 2021

We are now in the midst of a pretty garden-variety heat wave for Northwestern Washington. Temperatures in the eighties seem positively anticlimactic compared to readings that pushed the century mark in coastal areas and soared well above it even a short distance inland. It simply underscores how extreme the late June heat wave was. Things will be heading closer to seasonal norms by Sunday, with even the chance of a few showers on that day.

Regarding smoke, we continue to luck out. Fires began erupting shortly after the late June heat wave. At that time, I was pretty sure our luck would not hold for as long as it has. Even many areas east of the Cascades have often escaped the smoke; only the northern tier of such counties has been consistently smoky, as smoke from fires in Okanogan County streams due east.

On the subject of Okanogan County, I had been planning to do some volunteer botanical survey work there this week. The persistently awful air quality readings (generally somewhere between unhealthy and hazardous with little hope for immediate improvement), persuaded me to cancel.

Models indicate we should see some smoke aloft by late Saturday afternoon to early Sunday morning. The source of the smoke will actually be fires well to the south of us in California. This smoke is forecast to stay in the upper atmosphere, so while it may make skies look dingy, air quality near the surface will be unaffected. The clouds and showers forecast for Sunday may well make the dinginess harder to notice.

I will still be surprised if the smoke spares us for the entire rest of the dry season. I am going by pure odds here: chances are slim that low-level flow will remain as persistently in our favor for avoiding smoke as it has been. Sure, it could happen, but it probably won’t. It is still wise to be prepared.