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.


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.