Tables Turned: Hamas Invades Israel

Published at 16:58 on 9 October 2023

It’s not that unusual for Israel to invade Gaza. This weekend, when I was away from the Internet, Hamas invaded Israel.

Because that’s what it was: an invasion. That is what it is called when one side’s military forces enter another side’s territory and takes land by force.

The more interesting question is who put Hamas up to it.

Because someone basically had to. The invasion makes no sense from a realpolitik angle.

You’re Palestinian, you want your homeland back. Is it really a practical strategy to try and get it back by invading and occupying Israel, who possesses what is indisputably the most powerful military in the region? Provoke a fighting war with Israel and Hamas loses. There really is no other realistic outcome.

Someone put Hamas up to it, by playing on their hatred for Israel.

That someone does not have the Palestinian (or even the Hamas) best interest at heart, because as I said earlier, the only realistic outcome one can anticipate is that Hamas will lose.

And when Hamas loses, it will be particularly humiliating for the Palestinian side. More than likely, Israel will respond by invading and (re-)occupying Gaza. Because, unlike Hamas, Israel actually has enough military power to occupy and hold enemy territory indefinitely, this occupation will last indefinitely. This is no doubt what the Netanyahu meant when he said the Hamas attack would “change the Middle East.”

So given how badly this is all set to backfire for Hamas, who could have put Hamas up to it, and why did they do it?

The Odds of a Prolonged Shutdown Just Went Way Up

Published at 19:58 on 3 October 2023

McCarthy compromised to avoid a shutdown, and just was punished for it by being the first Speaker of the House in history to get fired. This makes it highly unlikely that whomever his replacement is will be interested in following in his footsteps.

The Republicans could have avoided this fate if they showed continued interest in compromising and cutting deals. The Democrats actually made some overtures in this direction, but McCarthy chose to snub them. So here we are.

Historically, these sort of antics have not turned out well for Republicans. If the Democrats are at least halfway savvy (not a given, sadly), they will now be preparing a messaging campaign painting the other party as irresponsible and incapable of governing.

Also expect a prolonged process for selecting a new permanent speaker. It took McCarthy fifteen votes to secure his speakership in this Congress. There is no reason to believe that his successor will have a significantly easier job of it.

Camper Van Conversion Kits Suck, Here’s Why

Published at 21:33 on 23 September 2023

I mean, one of the chief advantages of having any RV, even a tiny one, even a simple one, is that it shields you from the weather better than tent camping, thereby extending the camping season.

So kits like this one and this one are just plain stupid. Notice the kitchens. They slide out of the rear. You cook outdoors. Again, the whole purpose of an RV is that it should shield you from having to cook outdoors. Suppose the weather dawns rainy and windy and you just want that cup of hot coffee or tea. With an RV, that should be no problem, turn on the stove, and heat it up. No struggling to cook in the rain.

Yet you can’t do that with these RV’s. You get to cook outdoors in the rain and wind, just as if you were tent camping. Yes, I see that tail gate lifted up. Such gates do not provide very good protection from the rain. Anyone who has tried to use them as such when camping can attest to how they let water drip into the interior when left up. They are intended for briefly sheltering from the rain while loading and unloading, when a few stray drops are no big deal. That’s it.

But why, I wondered. Why do they have such stupid kitchens, when Westfalia showed the world long ago that intelligently-designed interior kitchens can fit just fine in a smaller van.

I think I figured it out:

  1. Making life easier for DIY’ers.
  2. Liability.

Both are related to propane and fire. If you don’t want to rely on a big battery, an RV stove is a propane stove. Now you have to permanently install a cabinet, a propane tank, and route fuel lines. Nowhere near as easy as assembling some furniture and plopping it in.

Worse for the manufacturer, what if those DIY’ers you encouraged botch the job of running gas lines or installing the tank? The result could well be a fire or explosion. What if the stove was installed with improper clearance and setbacks? Fire. In both cases, lawsuit time.

You can’t legally call it an RV unless it ships with a sink, stove, and bed. So you can’t simply leave a kitchen out of something marketed as an RV conversion kit.

The solution to the problem is to have a place where the user can put a portable camp stove. Propane line installation headaches, gone. Propane line installation liabilities, gone. Portable stoves are not certified for interior use, so the design has to be an exterior kitchen that slides out, getting the stove away from interior spaces.

Problem solved! For the manufacturer, at least.

End result this that conversion kits inevitably have designs that seriously limit their functionality as RV’s. Probably a big part of the reason why there aren’t many sellers of such things. Really, the only practical options are paying someone to customize a van, or doing it totally oneself from scratch.

Caution Confirmed

Published at 07:16 on 11 September 2023

Today I learned that a friend has become addicted to cetirizine and is going through withdrawal sickness after suffering an interruption in supply.

Cetirizine is more commonly known as Zyrtec. Yes, the over-the-counter antihistamine. That’s right, an antihistamine, not an opiate.

As an allergy sufferer, I have occasionally taken antihistamines most of my life as needed. The key words here being occasionally and as needed. I was originally given them by my mother as a child. It was not that long after I started being administered them that I pushed back, questioning why I was always being given a dose of them every day. Couldn’t we stop and see how bad the symptoms are without medications today?

Mom thought I was being somewhat silly for being willing to risk feeling miserable like that, all over a little worry about ingesting medication with a doctor’s approval. I felt that why should I take any medication unless I am sure I need it. (It’s not as if my allergies were life-threatening or anything.)

Such has been my policy about antihistamine usage to this day. If my allergies are making me miserable, I will medicate, and do so without guilt. Then I will cut myself off medication, and see how I feel without. If I don’t feel abjectly miserable, I will put up with low-grade symptoms and carry on. If I do feel miserable, I will take another pill.

Many, like Mom, have thought it silly bordering on Puritanical for me to be willing impose suffering on myself like this. Today I feel vindicated.

Postscript

I have also run across those who try to make me feel guilty for being willing to turn to the products of the pharmaceutical industry at all. Try alternative treatments, they say. Well, I have. They don’t work as well (often, they don’t work, period).

When I query them, I find out that such individuals inevitably either don’t have allergies, or that their symptoms are vastly less serious than mine. As such, their opinions the matter are irrelevant.

Java Community Antipatterns, an Ongoing Series

Published at 17:27 on 1 September 2023

To give you an idea of the general pathetic hilarity of the situation, I was reviewing some code at work today. It reads in a message from Kafka, obtains a validator object, and calls that object’s isValid() method on the message it receives. That method in return a ValidationResult object, whose valid() method is then called inside an if statement.

This immediately strikes me as odd. When you validate something, it either turns out to be valid or invalid. That’s it. Two options, no more, no less. Yes/no. Black/white. On/off. There is no need to create a new data type to represent a validation result, because a perfectly appropriate data type already exists, built in to Java: the Boolean. Just use that. Far simpler and cleaner.

Maybe the ValidationResult object does something special and has extended features beyond those of a Boolean? Yes, it has a message field! But wait, that field is never accessed. The only thing that is ever done with that object is to call the valid() method, whose purpose is to return the Boolean value that should have been used in the first place.

And what of the validator object? Its class definition is very simple, just one short method that makes some basic checks. If its argument turns out to be invalid, the message part of the result is set to the string “Data is not valid.” No, I am not making this up. Of course the data is not valid, you moron! That is why the valid flag is set to false! This field conveys exactly zero meaningful information.

What other code uses this validating logic? None of it, it turns out! So there was no need for the validator class, either. Could have just added a private isValid() method inside the one (short) source file where this logic is used. Would have been a whole lot clearer, because the person reading the code wouldn’t have had to open another file to determine just what the validation logic is.

So three classes, and three source files, are being used where just one would have sufficed.

Now, this was a particularly egregious example, but this sort of crap-ola happens over and over (and over) again in Java code. Needless complexity everywhere.

Why Canister Stoves Suck

Published at 08:18 on 26 August 2023

Introduction

I have blogged about this before, but it was quite a few years ago, so I figure it’s time for a rehashing.

I prefer liquid fuel stoves. Most of the world prefers canister stoves. If you read a typical guide to camping stoves, you will see it recommend canister stoves in most cases. I do not understand most of the world. This post explains why.

The Waste

You cannot safely refill canisters. There are products sold that claim to let you refill them, but they are not safe. It is too easy to get a tiny speck of dirt in the one-way valve of a canister when attempting to refill it. Then you have a gas leak on your hands. Not good.

So when a canister becomes empty, you must discard it. And since it is virtually impossible to recycle stove canisters (virtually all recycling agencies forbid them), “discarding” means throwing it in the trash.

Not Refillable

To reiterate, canisters are not refillable (see immediately previous section). When you buy a new canister stove, you get to leave home on your first camping trip with a new, completely full, canister.

From then on, except on that rare trip where your canister usage and your outings happen by luck to align, you get to take a partly-empty canister. Or you get to add to your ever-growing collection of partly-empty canisters at home. Or you get to take multiple canisters on a trip where only one could have sufficed, adding weight and bulk.

You will virtually always be juggling multiple canisters, most of them partly full.

The Absolutely Lousy Cool-Weather Performance

Note I said “cool” not “cold” above. Canister stove fans like to act as if performance issues only kick in during wintertime conditions. Unless you limit your camping to South Florida and the coastal parts of Southern California, this is a lie.

Once a canister gets below the ¼ full mark, performance issues start kicking in around 10˚C (50˚F). A canister stove operating under such conditions can’t hold a full flame for more than about a minute. Output will then start rapidly declining, eventually reaching simmer levels.

A full canister can indeed offer acceptable performance down to about the freezing point, but see the previous section. You will almost never be operating your stove on a full canister. You will almost always be operating it on a partly-full one.

In my part of the world, overnight temperatures can drop below 10˚C pretty much any time of the year, even in the middle of the summer. In the mountains, they can drop to around 0˚C even in midsummer (yes, I have woken to frosty mornings in July and August). Cold mornings are exactly when I want my hot cup of tea and hot oatmeal most, and they are exactly when a canister stove will refuse to deliver same in a timely manner. Canister stoves disappoint, even in the summer.

The solution, of course, it to take multiple canisters on a trip, so you can switch to a full or nearly full one on such mornings. And again, you end up juggling multiple canisters in various stages of partial emptiness, and sooner and more often than simple unrefillability would dictate.

Liquid Fuel Stoves Solve All of These Problems

  • Less waste. Liquid fuel is sold by the gallon in thin-walled containers that use less resources than a canister.
  • Refillable. Just top off the tank before you leave on your weekend outing. No need to take extra fuel. No need to juggle partly-empty canisters.
  • Cold-weather performance. A liquid-fuel stove will operate at full blast until the tank is empty, no matter how cold it gets overnight.

About High-End Canister Stoves

There are some high-end models of canister stove that solve the cool-weather issues. They do this by operating with their canisters upside-down. Effectively, they are liquid-fuel stoves that use the pressurized liquid inside a canister, instead of highly refined gasoline, as their fuel. Many of them can, in fact, operate on gasoline simply by changing tanks.

This solves the cold-weather problem. Unfortunately, you are still stuck with unrefillable canisters. Given these stoves are as complex as liquid-fuel stoves (because they are liquid-fuel stoves), they are as expensive as them. Since one is spending that sort of money anyhow, why not just spring for a refillable gasoline tank and use the stove that way?

Where I Think Canister Stoves Make Sense

All the above said, there are some situations where I think a good argument exists for canister stoves:

  • Group campouts with the pyrophobic. Lighting a liquid fuel stove is not so simple as lighting a canister one. The process can intimidate some people. Many modern canister stoves even come with built-in igniters, making them even more like a kitchen stove.
  • Air travel to areas where canisters are available. It is hard to completely clean all traces of fuel from a liquid-fuel stove, and if there is literally so much as the faintest whiff of gasoline on one, airport security will probably confiscate it. Not a trace of gas remains on the stove part of a canister stove more than a few minutes after use. So it is easy to take the stove, provided you can procure a canister or two after you land. (You will probably have to leave a partly-used canister behind, but that is a relatively minor loss.)
  • Budget-sensitive, infrequent use. Canister stoves cost significantly less than liquid fuel ones. If you don’t go camping very often, the better performance of a liquid-fuel stove might not be worth the extra money.

They are simply not the default best choice for most as they are so often claimed to be, that is all.

Putin Regains Some Strength

Published at 12:24 on 24 August 2023

Of course Putin did it. There is a well-established history of Putin’s adversaries suffering unfortunate “accidents.” The chances of this being a bona-fide accident are somewhere between slim and none.

Putin had to do something like this to regain some strength after showing himself to be the pathetic weakling who ran away and hid when threatened and then thanked his challenger for standing down. That is emphatically not how a strongman deals with his adversaries. Unfortunate “accidents,” by contrast, are a classic.

The trouble is, Putin still turned tail last June, and still then thanked Prigozhin for standing down. He can’t undo those things. He’s regained some strength, but he has a ways to go before he looks once again like the strongman Putin of old.

More challenges to Putin’s authority are still possible. Likely, even.

Soon: Put Up or Shut Up Time

Published at 22:33 on 23 August 2023

Trump has been warned not to threaten jurists or poison potential jurors.

So of course he will. He has no self-control, and his whole life up to this point has taught him that as a hereditary member of the wealthy class, the laws that apply to the little people do not apply to him.

At that point, again it becomes put up or shut up time for the legal system (just like it did when Trump instigated an insurrection). Norms that are not upheld cease to be norms.

Cutting Over to LaTeX

Published at 15:15 on 20 August 2023

The above use of StUdLy CaPs courtesy of a community somewhat enamored of them. An overly-cute quirk that for a long time made me shy away from that document preparation system. It’s silly, to be sure, and hardly the No. 1 reason, which is that I had by that time:

  • Already had learned troff, which provides the same general functionality,
  • Often I did not have access to a laser printer, and troff shares an input language with nroff, which can produce passable output on a simpler and at the time much more common typewriter-like printer. TeX and LaTeX, by contrast, are useless if you don’t have access to a laser printer, phototypesetter, or graphics display.

Time passes. LaTeX grows to be way more popular than poor old troff. Users deveop and share all sorts of macros to do just about anything you want. Those same users have many online forums that can be searched if you get stuck or puzzled. troff gains nothing equivalent. Get frustrated buy troff‘s inability to set text that wraps around illustrations (a standard book publishing technique).

So yeah, it was time. The final push that made spend most of a day reading Knuth’s definitive description of his program was my resumed job search, the desire to make a résumé that breaks a few of the rules (using some of my favourite fonts), and the difficulty of getting good font support for troff. By contrast, there are modern versions of TeX that can read standard font files.

(Yes, I know there are modern versions of troff that can apparently read standard font files. The rub is, they lack certain extensions to standard troff in the version I have been using, extensions that I am making use of, so I would have to rewrite anyhow. Plus. troff still can’t format output by wrapping around illustrations. Why not rewrite in the more powerful and full-featured alternative?)

Anyhow, I’ve now learned enough of LaTeX to make it do what I want to do… for now, which was the goal.