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.

A Dangerous Narrative

Published at 11:42 on 28 July 2021

Remember the videos of apparently complicit Capitol Police officers waving putschists into the Capitol building? Yes, there were also officers that bravely fought the enemy, and those should be recognized and honored. I have problems with the entire concept of police, but that doesn’t mean that everyone tied up in that institution is therefore all equally 100% absolutely evil. The latter is a childish oversimplification of a complex and nuanced world.

That said, there is evidence of a pattern of police officers being sympathetic or supportive of the cause of Trumpist fascism. In addition to apparently sympathetic Capitol Police officers, numerous off-duty officers from local police agencies were found to have been at the putsch attempt. Many spent considerable amounts of their own money traveling to DC from across the country. The concept that the police harbor a dangerous pro-fascist element has much to suggest it is valid. As such, ignoring evidence that it might extend to some Capitol Police officers is dangerous and troubling.

One reason this is being done is that many Democrats are running as fast as they can from the concept of defunding the police. As much as it inconveniences an anarchist such as Yours Truly, there is ample evidence that most Americans presently are too fond of being submissive to authority for such rhetoric to play well with them.

Part of the blame must also rest on those doing left-wing messaging constructing said messaging primarily for the purposes of acquiring status within a subculture, instead of reaching out and growing the size of our movement, but that is a subject for a different post. The point I want to make is that Democrats, particularly those on the right of their party, want to show they are pro-police. Hence the tactic of trotting out loyal Capitol Police officers who fought the insurgents bravely at risk to their lives.

Also, there is a political jujitsu moment here. The Republicans have been the ones loudly chanting “back the blue” for the last year or more. It is very difficult to resist the temptation to make them squirm. In fact, squandering such an opportunity borders on gross political malpractice, considering the general political dynamic outlined above.

But, none of this changes that there is nevertheless a risk. There is undeniably institutional corruption in policing, this corruption has its roots in the very nature of authority tending to be corrupt, and it is a very real threat to a free society. Ignore it (or simplify it out of existence) at our peril.

I’m Back; Forget the Reopening

Published at 22:48 on 27 July 2021

I’m back from a road trip. Back a few days early, in fact: wildfire smoke cut it short. Not much point camping, hiking, and surveying rare plants if the air quality level is someplace between Unhealthy and Hazardous, with minimization of time spent outdoors recommended.

Regarding the border reopening, thanks to the Delta variant, forget it. Yes, Canada announced that it would reopen on the 9th of next month. That is merely a non-binding statement of future intent. Canada can easily renege, and in all likelihood will. This is even the more likely given that the USA has announced it will not reopen so early. Really, now, why should Canada extend to Americans a privilege the USA refuses to extend to Canadians? It would amount to giving up a bargaining chip for acting in the interests of its own citizens. No competent national government would do such a thing. On top of that, a strike is brewing amongst Canadian border guards and customs agents.

Remember what I wrote in my prediction of a reopening:

This assumes no unexpected developments (such as a new, vaccine-resistant COVID variant emerging), of course. If such things happen, all bets are off and the border closure may truly become a long-haul thing [emphasis added].

BTECH UV-25X4 Review

Published at 08:49 on 13 July 2021

Executive Summary

It is basically what I envisioned it to be: a cheap Chinese radio. It works as advertised, but its overall quality is inferior to the products sold under the major Japanese brands. If a suitable Japanese radio was available, I would have bought it. Since one is not, the BTECH is the best alternative available, and works well enough.

Background

There is a very nice networked repeater system in my area. The one wrinkle is that most of the repeaters on it are in the 220 MHz or 1.25 meter band.

This frequency range is allocated as a ham band only in ITU Region 2, meaning that the majority of the world’s hams, and in particular hams in Asia (where most ham radio equipment is manufactured), do not have access to this band. This latter fact is responsible for the worst thing about the 220 MHz band: poor availability of equipment. This lack of equipment in turn creates a lack of popularity for the band.

Because 220 MHz is not a popular band, I want to have more than just 220 MHz capability in my truck. Because my truck has limited space for 2-way radio equipment, that means I must have a multi-band radio. Since 2 meters is by far the most popular VHF or UHF ham band, I would want at a minimum a radio that can handle both bands.

Such radios are (with one exception, the BTECH UV-25X4) currently not being made. So my choice was to either get a UV-25X4 or to buy something on the used market, and due to being artificially scarce, the used radios were expensive. Not just expensive, either: they were also (as is typical for used gear) sold as-is, and most of them are now quite long in the tooth, being well over 20 years old.

Now, there are currently-manufactured Japanese radios that in theory cover both 2 meters and 220 MHz, but if you look at their specifications, 220 MHz is clearly an afterthought, with a limited transmit power on that band. The latter is typically only 5 watts, which is simply not enough for reliable mobile use. The BTECH is rated to put out 20 watts on all three bands it supports.

As such, after much pondering, I decided that a new cheap Chinese radio was a better deal than an old and possibly trouble-ridden Japanese one. Both were risky from a reliability standpoint, but at least I could purchase the cheap Chinese radio from a dealer with a good record of post-sales support and return it if it was defective.

It Is What I Expected

Going into my purchase, I expected I would be getting something whose design, build quality, and user interface would not be up to the standards I had grown to expect as a user of the Japanese brands, but my hope was that it would still be usable for my purposes. That is basically what I got:

  • The first radio died soon after I received it. (Thankfully, I had ordered it from BTECH and I was able to exchange it for another with no hassle.)
  • The internal speaker is tiny and tinny and has a vibration problem. (Solved by using an external speaker.)
  • It is front-panel programmable, but only in theory. In practice, it is so difficult to program via the front panel that one is best treating it as programmable only via software and a USB cable, much like a Part 90 radio.
  • The receiver is a poor second cousin to the receiver in a quality Japanese transceiver. I have had to learn to simply ignore random bits of intermod as I drive around.
  • Six months in, that second UV-25X4 still works, and it lets me get on 220 MHz or 2 meters while mobile. As a bonus, it also lets me get on the 70 cm (440 MHz) band.

My experience with “infant mortality” leads me to strongly recommend those tempted to purchase a cheap Chinese radio to purchase one from a well-established dealer with a domestic presence. Having to kiss away my money on a nonreturnable dead radio would have not been worth a somewhat lower initial purchase price.

Furthermore, cheap Chinese radios are for the most part not FCC type accepted, and have a well-deserved reputation for regulation-violating lack of spectral purity on transmit. This is another advantage of BTECH: they actually have submitted what they sell to the FCC for type acceptance, so one can have some assurance of not violating regulations every time one keys the mike.

Unrest in Cuba

Published at 08:40 on 12 July 2021

This is Unusual

Remember, Cuba stayed solidly Marxist-Leninist while the entire Eastern Bloc in Europe rejected “left” dictatorship over a quarter-century ago. I put “left” in quotes here because that is how such dictatorships have been categorized in the Establishment media and there really is no good alternate categorization. This is despite how the very notion of rule by force is incompatible with the fundamental notion of a politics based on egalitarianism and opposition to social hierarchy, which is the original definition of the political left.

Anyhow, to have this sort of unrest in Cuba is decidedly unusual.

How Much US Involvement?

I would be surprised if there was none whatsoever, but I would also be surprised if it is the primary driving force. The latter appears to have been how the Internet is making it easier for Cubans to organize in opposition to their government, and the USA has shown itself to not be very good at Internet warfare (we have trouble defending ourselves from attacks by Russia, and today’s Russia is but second-rate power).

It’s a dictatorship. It’s been over seventy years since Cuba had anything approaching a freely contested election. Yes, seventy. Castro did not destroy Cuban democracy; Batista did. Castro failed to restore the democracy that Batista destroyed. Follow that earlier link. (It’s an article written by a Cuban exile in Florida, by the way. Put that in your pipe and smoke it if you think that Castro was the source of all evil in Cuba.)

Anyhow, it’s a dictatorship. It is oppressive, and the island is currently beset with economic problems. It is no big surprise that people are revolting. It is not necessary to concoct a grand conspiracy involving US-led covert action (which has, prior to this point, failed to provoke widespread unrest) to explain the unrest. Many other dictatorships in similar situations have found themselves facing unrest.

Overall, a Welcome Development

After a prolonged period characterized largely by passive submission, widespread acts of revolt against a decades-old dictatorship have begun. What’s not to like? That’s fundamentally good news. Anyone who values freedom should celebrate it.

If you’re a friend of dictators who play dictator in the name of keeping “their” country safe for “socialism,” you are ultimately not my ally. I am opposed to ruling elites, no matter what principles those elites use to justify their rule by force. I am as opposed to elites that rule by force in the name of “socialism” as I am to those who do it in the name of “free enterprise.”

It May Be a Flash in the Pan

It is necessary to temper one’s excitement here. There is no guarantee that much of anything will come from the current unrest. Iran has been through many episodes of unrest, some far more significant than what has happened so far in Cuba, yet the reign of the mullahs still prevails there. Belarus is still a dictatorship despite all the unrest there in the past year. Uprisings often fail. In fact, more fail than succeed, if one defines success as unseating the government of the day.

There are Risks

Certainly there are risks. One has only to look how Western meddling derailed what glasnost and perestroika began in the ex-USSR, by pushing the Russians to create the very same strongman presidency that Putin soon used to create a new dictatorship, to see an example of what could go wrong. And it’s not just Russia; many nations in what was the Soviet bloc have proved to be disappointments when it comes to respect for basic human rights.

News flash: life itself entails risk. Progress entails taking risks. Revolution is always a risky endeavor.

It is Worth the Risk

Revolution is risky, but it is also necessary. Ultimately, it is the only thing that keeps ruling elites in check. Laws in law books might appeal to fans of the rule of law, but ruling classes have always been willing to break the very laws they wrote. The only thing that really restrains ruling elites is their own knowledge of the historical fact of many revolutions, and the fear, somewhere in the back of their heads, of what might come their own way should they push things too far.

So ¡Viva la revolución!

What about the Border?

Published at 06:10 on 10 July 2021

It will soon be a year and four months since the US/Canada border was closed. Most of us in border regions are eagerly awaiting its reopening. So, when will that be? First, let me observe two points:

  1. Canada has been reluctant to reopen the border.
  2. The pressure is increasing (on both sides of the border) to reopen.

Put those two together and it seems obvious that the most likely course of events is a gradual relaxation of border-crossing requirements. Such a relaxation is already underway, in fact. Expect the trend to continue.

Each loosening will only temporarily cause pressure to abate on the two national governments; until it is easily possible to cross the border, pressure will remain to relax the restrictions on crossing it. There are just too many people inconvenienced by the border being closed for it to be any other way. The logical result of such a process is a gradual loosening of restrictions.

By September, things may not completely be back to normal, but I expect to be allowed to once again go up to Vancouver to visit friends. I may well have to go through a little extra paperwork to be allowed into Canada, but I should be allowed to cross the border for not much more of a reason than I want to cross it.

This assumes no unexpected developments (such as a new, vaccine-resistant COVID variant emerging), of course. If such things happen, all bets are off and the border closure may truly become a long-haul thing.

Smoke Aloft

Published at 11:43 on 9 July 2021

Perhaps you have noticed it: the sky has a dingy aspect to it today, and sunlight is a little less intense and a little more yellowish than normal. The reason is smoke. There is wildfire smoke above us. It has not made it down to the surface due to the surface flow being onshore, so there have not been any real air quality concerns about it. (East of the Cascades, it is a different story; the smoke has made it down to the surface several times already there.)

This has happened once or twice before in the past week or two. Eventually, our luck will run out and the smoke will make it down to the surface. Although it is not known exactly when that will happen, it is early enough in the summer, with most of the dry season left to go, therefore it is almost certain to happen at some point. Hence my earlier warnings about preparing for smoke.

For this weekend, however, we should be safe. The smoke aloft is in fact modeled to depart by Sunday afternoon, so the sky should get clearer and bluer. Temperatures will be somewhat above long-term norms, but it will not be a heat wave by any measure. Highs should be in the mid-to-upper 70’s near the coast and into the low 80’s inland.

What we really need at this point is a summertime rain storm to reset the fire conditions, but nothing of the sort is modeled in the near future.

Room for a Little More Optimism

Published at 10:31 on 9 July 2021

Now that the House has committed itself to forming a select committee to investigate the events of last January 6th, there is room for a little more optimism about the future.

A little more. We are still in a world where the Democrats have damned themselves via their own reluctance to form such a committee in the first place. This indicates an overall, collective lack of appreciation for the seriousness of the current situation.

Also, these are Democrats we are talking about, the party that continually squanders opportunities and has a long, sad history of losing easily winnable elections. A competent Democratic Party would leverage the work of such a select committee to help inspire voters to oppose the GOP in the coming election (the GOP sure wasn’t shy about leveraging the work of the Benghazi select committee). But that is not the sort of Democratic Party we have; instead, we have one that by and large labors under the delusion that the voting public is, in general, comprised of rational actors who are concerned about political issues and who will naturally tend to reward the Democrats when they do things that are in the interest of the vast majority.

Thankfully, the antifascist coalition consists of more than just Democrats. In particular, it consists in part of dissident conservatives who have left the Trump-era Republican Party in disgust, and some of these individuals are the very political operatives who have long helped the GOP eat the Democrats’ lunch in campaigns. Thus, we can expect the Lincoln Project (which, contrary to my expectations, seems to have weathered the storm of its earlier scandal) to not be shy about doing what is necessary to politically capitalize on the fallout from January 6th.

The question is whether or not it will be enough. The Lincoln Project is something of a political oddball, and is not well tied-in to conventional sources of funding, thus limiting its power to do the politically savvy things that its leaders know need to be done. Then again, they recently did manage to spank Toyota good and hard for bankrolling seditious politicians, so do not underestimate that organization’s ability to make up in talent for it lacks in funding.

So: a little more optimism is called for at this stage, but not any more.

How Not to Leave Afghanistan

Published at 08:31 on 8 July 2021

I wrote a few months ago how leaving Afghanistan in defeat is basically a foregone conclusion, and thanks to the malfeasance of the ruling class that ordered the invasion, has been a foregone conclusion for nearly two decades and counting.

As such, there really are only two fundamental choices: leave in defeat now, or continue squandering lives and resources and leave in defeat later.

At best, there is some sort of weak argument for leaving not quite now, so the departure can be done in a somewhat more orderly fashion, with a somewhat more hopeful future prognosis. The risk in this is that when “not quite now” comes around, there will be a strong temptation to come up with a new “not quite now,” just a little bit further in the future, and so on, until significant delay has transpired, with the associated waste in lives and resources. In fact, much of the duration of the Western presence in Afghanistan can be accurately characterized as precisely this process.

Eventually, the bitter reality of defeat must be accepted by the ruling class. Of this, there is no alternative.

All that said, however, there are still better and worse ways to leave in defeat. One huge question is the one of what happens to the Afghans who chose to throw their lot in with the Western invaders. If they are not given asylum in the West, it is crystal clear what will happen to them, and as of this stage it is unclear if they will be given asylum.

Mind you, this is a ruling class we are talking about, so such rank callousness over the lives of others just comes with the territory. It would be entirely in character for those Afghans to be abandoned. History is replete with such examples. So they may well be abandoned. That much is as clear as the inevitability of the US defeat in Afghanistan has long been.

However, it would be, in addition to inhumane, highly unstrategic. It would say to future potential allies that being an ally of the West is a stupid exercise that will likely lead to one being abandoned later. This has the obvious consequence of making it more difficult to secure allies in the future.

The question is whether the ruling class is capable of realizing this. They really do believe they are superior human beings whose lives matter more than others; one cannot easily rule over others without believing such claptrap. And, of course, the lives that matter least of all are the lives of those least like the ruling elite, those whom: do not have much money to their name, do not have white skin, do not have a Western culture and traditions, etc. The Afghan people fit these characteristics to an absolute “T.”

Nothing is inevitable, however, and it is also possible that political realities can be created which make it the path of least resistance for the ruling class to give those vulnerable Afghans asylum. However, such realities must be created, i.e. there must be organized pressure in favor of giving our Afghan allies asylum. So far, there has not been a great deal of such pressure, but it is possible to change that, and the real question is whether or not sufficient pressure can be created.

If this does not happen (and it is at this time an open question whether or not it will), then we will soon see another moral outrage added to the long list of such outrages committed by Western imperialism.