Rolling your own dynamic DNS

First let me acknowledge that there are many ways to accomplish this. An easy solution for me would have been to simply use dyndns.com, no-ip.com, or one of the other commercial DDNS services supported by my router. For various reasons, I decided not to use one of those. Actually I did use duckdns.org for a while, but there were occasional issues that I got tired of dealing with.

I’m currently using Porkbun for DNS. They’re cheap, reliable, and have a decent user interface. They, like many other DNS services, also provide an API to make changes programmatically, without needing to log into their web site and make manual changes.

In my case, I have a shell script that runs as a cron job every 5 minutes. It checks my router for the WAN address and compares it to the last recorded address. If the two are not the same, it emails me and runs a Python script to update DNS.

I realize that some of this is pretty specific to my setup. Still, it might be a useful starting point. I found the Python script to update Porkbun DNS on their web site. The command to check the WAN IP address at the router may work for yours, or you may need to take a different approach.

#!/bin/bash

# Read the old IP address from a file.  The EOL will go into a variable we don't use.  This is necessary.
read OldIP b < /home/dale/myipaddress.txt
# Get our curent IP address from the router.
OUTFILE=~/myipstatus.txt
MyIP=`ssh -o StrictHostKeyChecking=no [username]@[router.ip] "ifconfig eth0 \
| grep inet | sed -e 's/.*addr:\([^ ]*\) .*/\1/'"`

while [[ $MyIP == "" ||  $MyIP == "192.168."*  ]] ; do
 sleep 10
 MyIP=`ssh -o StrictHostKeyChecking=no [username]@[router.ip] "ifconfig eth0 \
 | grep inet | sed -e 's/.*addr:\([^ ]*\) .*/\1/'"`
done

if [  "$OldIP" != "$MyIP" ] ; then
  echo "`date`" > $OUTFILE
  echo "Found new IP $MyIP, which is different from our previous $OldIP!" >> $OUTFILE
  echo "Updating Porkbun DNS entries..." >> $OUTFILE
  python3 ~/porkbun/porkbun-ddns.py ~/porkbun/config.json <mydomain.com> <hostname> >> $OUTFILE
  mail -s "IP address change detected" <myemail@domain.com>  < $OUTFILE
  echo $MyIP > ~/myipaddress.txt
else
 echo -n "." >> $OUTFILE
fi

In practice, this can result in a 5-10 minute lag between the time your IP address changes and the time your DNS is updated. If your ISP changes your IP address frequently, it may be too long. In my case, our ISP only changes our IP on rare occasions — typically less than once a year.

Again, there are other approaches, but most will not update DNS entries in your own domain. You can get around this to a certain extent by using CNAME entries, but this was the best way that I found to update my own domain’s DNS.

Running Web Servers on Residential Internet

Once upon a time, residential home Internet connections — cable modem and DSL being the choices at the time — were unfiltered and un-firewalled. This had good and bad aspects to it. You may or may not have been firewalled off from your neighbors. I remember a guy who worked for me demonstrating on the TV news one night how he could see every Windows PC in his neighborhood, and send print jobs to random peoples’ printers if he wanted to. Even after they wised up to that little bit of “openness”, it was still possible to run your own services — mail, web, and so on.

Since then ISPs have come a long way. Residential cable, DSL, and fiber connections, often topping out at 1 GB or even higher, are tightly restricted. Your ISP really wants to support only web prosing and gaming, and most certainly do not want any services running on their network. No web servers, no email (in or outbound). Anything inbound on ports 80, 25, and often 443 are blocked, as is outbound port 25.

So, you’ve got your own little web server you run for your own blog (like this one)… or one you run for a nonprofit, club, whatever. You’ve got your own domain and want to run your own email. The solution is usually some combination of a hosted VM, Google, what have you. But it can get a little expensive, and of course you’re dependent on others for critical bits and pieces of your infrastructure. I can’t take all of that pain away, but I can maybe help to reduce it somewhat.

So let’s look at the issues you may face, and how to solve them. I’ll detail each solution in subsequent blog posts, with solutions that may work for you as they have for me.

  • Your IP address is dynamic, and you need reliable DNS. This can be fixed using a script to detect when your IP address changes, and update your DNS accordingly. It’s not perfect in that there will be a delay before the IP address change is detected and updated, but if your IP only changes occasionally it’s “good enough”. Of course there are dynamic DNS (DDNS) solutions that will do this as well, if you don’t mind paying for them. I’m a cheap bastard and I like a challenge, so I rolled my own.
  • Your ISP blocks connections on port 25 (SMTP). This is pretty much going to require an external mail relay. I have yet to find a way to get the rest of the world to use any port other than 25 for SMTP connections… it really is too bad there’s not a DNS based way around this, like a SRV record (see RFC 6186). Until that happens, I use a small external hosted VM relaying mail on a different port. It could actually be a lot simpler, but I prefer to keep our actual email on a server here, at my house.
  • Your ISP blocks incoming traffic on web ports 80 and 443. Easy. Nginx is your answer, what was the question?

The fun part is sizing this stuff. If you’re used to working in a corporate environment like I have been for the past (mumble) years, you’re thinking, “OK, a 4 CPU 16 GB machine for a mail server, than another one for the proxy… that might be OK… ” Nah. You might be shocked at just how little power it takes to do this stuff. After all, we’re just passing packets around. The TLS encryption is the most heavyweight thing being done, I think. If I had a solid place to hang a Raspberry Pi where it would have a static IP and no filtering of privileged ports, it wouldn’t break a sweat — though I’ve had too many of them just stop working to trust them for this kind of stuff, really.

The Vespa rides again

Or, I ride the Vespa again.

I got the SIP ignition kit installed, which vastly improved the electrical situation. The original 6V AC magneto system gave a dull glow from the tail light (there is no brake light on this scooter) and a headlight that was adequate for very low speed riding around the neighborhood at night, but nothing else. Turning on the headlight with the engine at idle was not a good idea. Now I’ve got 12V AC, a nice bright tail light, bright halogen headlight, everything works – even at idle.

I also took the opportunity to clean out and de-rust the gas tank, and clean the carburetor and replace the gaskets again. Though I don’t have the original, marginally effective choke connected, it still starts and runs well. I put a new exhaust with an expansion chamber on it — it sounds about the same as before, but seems to have a bit more “oomph” than it did. Still not a race bike by any measure! I think it could whip the average Power Wheels though.

I’ve ridden it on a few laps around the neighborhood, and even on a few errands to the stores that I can get to without riding on a major road. It does reasonably well, with a top speed of maybe 40 if you have enough road to get there.

Unfortunately it’s now developed a fuel leak, which I suspect is the fuel tap at the bottom of the tank. I’ll try tightening it up but I’ll probably need to replace the gasket. I want to get that done before this Saturday, when I’d like to ride it in the neighborhood July 4th parade.

Bump stocks

The Supreme Court issued a ruling that invalidates a 2018 ban on “bump stocks”. These are designed to increase the rate of fire of semiautomatic rifles using the recoil to mechanically “bump” the trigger against the user’s finger.

Is there any kind of practical use for this, other than having fun or possibly mowing down people? Not really. It’s not like there’s a need for anything of the sort while hunting or target shooting. Of course, the Second Amendment has nothing to do with either hunting or target shooting, so that isn’t really pertinent. There are a lot of guns out there that are essentially useless during peacetime other than for pure entertainment. Never underestimate the childlike glee of emptying a 20- or 30-round magazine downrange, safely, in a brief period. If anyone ever offers you the chance to run a few dozen (or a few hundred) rounds through anything on full auto, take it. No question. I’ve fired an M60 machine gun, an M16 on full auto, and a charming little .22 submachine gun that looks like the love child of a Thompson and a Lewis gun. That one was suppressed, for even more fun. I highly recommend it if you get the chance.

Don’t take this to mean that I’m in favor of bump stocks, or in favor of banning them. My opinion on that subject honestly doesn’t matter one bit. What does matter is how this whole drama has played and is playing out.

In 2018, the BATFE issued a ruling that they considered bump stocks to be included in the definition of a “machine gun”. Machine guns are, to a degree, legal to own, as long as the gun was manufactured prior to 1986 and the owner has the gun registered with BATFE and has paid a tax. Since supply is very limited and getting smaller all the time, owning a machinegun is beyond the reach of most gun enthusiasts. Even the cheapest full-auto gun will set you back well over $10K, plus a long slog of paperwork. Of course since bump stocks were developed after 1986, if they’re ruled to be machine guns — they’re illegal.

But there’s a specific definition of a “machine gun” in the National Firearms Act. The BATF had issued several letters in the years prior to 2018 stating that bump stocks were not considered machine guns, and were legal. In 2018, they reversed that and declared them to be machine guns. This kind of semi-random rulemaking is not unusual for the BATFE, nor is it unique to them — plenty of agencies do the same kind of thing.

The minority dissenting opinion from the Supreme Court, written by Justice Sotomayor for herself, Kagan, and Jackson, said this:

“When I see a bird that walks like a duck, swims like a duck, and quacks like a duck, I call that bird a duck. A bump-stock-equipped semiautomatic rifle fires ‘automatically more than one shot, without manual reloading, by a single function of the trigger,’ I, like Congress, call that a machinegun.”

Well, there’s the problem. You see a duck, someone else sees a loon or a goose or whatever. A bump stock does not technically allow the gun to keep firing “by a single function of the trigger”. It just allows the shooter to activate the trigger quite a bit faster than most of us could do manually. That’s according to all those BATFE issued letters saying that they were not machine guns.

Congress did, in 1934, write a definition, and the BATFE has been interpreting and re-interpreting it ever since. If Congress wants to impose some improved or additional clarity, or if they want to expand or change the definition, then Congress should do so rather than allowing the BATFE to do what they lack the will or the motivation or the intestinal fortitude to do. Updating a law every 90 years or so might not be the worst thing that could happen.

Resurrecting the Vespa (again)

The Vespa scooter (a 1955 Vespa VL1, if you’re not familiar) has been parked in the hangar for several years now. I don’t really remember how long, exactly, but the license plate expired in 2018 so it was around then. I’d ridden it a couple of times around the airport, but several years ago it refused to start and I hadn’t figured out why. I knew it was ignition related, and I was holding off until I could find the CDI ignition kit I knew I’d bought and install that. In August of 2021 I cleaned out the gas tank (the gas had gone very bad) and carb, and got it running — but it refused to start more than once without taking the flywheel off. I eventually put it more-or-less back together and there it’s sat since.

Well, the day came when we got a letter from the airport authority demanding that we get a bunch of stuff out of the hangar – including the scooter. In the process I managed to find the CDI kit. Unfortunately, I then discovered that it’s a complete pile of shit from a horrible now-defunct Vietnamese supplier. They couldn’t even drill four holes in a square to fit the fan. I don’t think I’ll be using it.

On the bright side, I did discover the cause of the ignition problems — a broken wire on the condenser. A lot has changed in the marketplace since the last time I needed to buy scooter parts for this rare old scoot, and I ended up ordering a bunch of parts from Germany to fix the ignition as well as a bunch of other things that needed fixing. When the parts arrived, I replaced the points and condenser, but didn’t even bother to set timing or point gap before seeing if that made a difference. Miraculously, the gas was not bad enough to cause problems. I squirted a bit into the carb and the old gal started and ran on the first kick. There is a Santa Claus!

Now I’m going through doing some post-restoration work that has been deferred for far too long. I’ve installed new shift cables (the old ones were too short and hit the legshield when turning). I removed the grips, cleaned everything up, lubed and re-installed. I put in a new clutch inner cable and put on the new spare tire carrier I finally found (these didn’t exist a few years ago). I’m replacing the rubber bits that I bought from various places back when I first finished up the restoration; they were made from some horrible shitty rubber that either just dried out and crumbled, or turned into a mess of stuff that looked like someone had hit it with a torch. Some of the wiring has proven inadequate; I’m replacing the wires to the headlamp assembly. Along the way I also cleaned up the carb and fuel system again, replaced the gearbox oil (and the oil seal), and I’m about to see why the steering stops don’t appear to be working on either side.

SIP Scootershop has proven to be my new go-to source for a lot of things, though Scooter Mercato has some good stuff as well. Some of the old places I’ve used either don’t exist any more or have far less inventory available for the old widebody Vespas. I get it; there are a lot more 60s and 70s and later scoots out there than the ’46-’55 models. I’m just glad there are places picking up the slack, even if they are nearly all in Europe.

A cruise line comparison

As we fly home from our first cruise on Norwegian, I’m reflecting on the differences – good and otherwise – between them and Carnival, with whom we’ve cruised a few times before.

Overall TL/DR summary: they’re different, not better, it just depends on what you like.

We liked the unlimited bar option that was pretty reasonably priced. While neither of us are heavy drinkers, it’s nice to know you can enjoy whatever you like (aside from some premium drinks that never were an issue) without worrying about the bar tab. I have no idea what Carnival charges for that, if they even offer it.

We did enjoy the option of eating on a dining room, rather than a buffet, whenever we wanted as long as they were open – typically 5 to 9 for dinner. That said, there were occasions when we were turned away from the main dining room or there were long lines for the smaller ones. We also missed the Carnival large tables with people we’d see nightly to swap stories and compare notes. On previous cruises we made friends that we kept in touch with for years afterward… not so much this cruise.

Buffet and dining room food seemed just slightly lower quality than what I recall from Carnival. I’ll temper that by saying it’s been several years since we sailed with them, so that may have changed. I’d love to have seen crab legs some time during the week. You could get lobster, but it was a $25 up charge even with the “free” dining nights in the extra-cost restaurants. The food overall was good, just not great. With over 4,000 passengers and another 1,700 plus crew to feed, one can’t really expect gourmet.

It’s not a big deal, and I’ll say the cabin steward did a stellar job of keeping the room clean and all, but the Carnival style evening turndown and the little towel animals were missed.

On Carnival we’d wake up, slip on our thick cushy robes, and enjoy our bagels with cream cheese and lox on the balcony – delivered with coffee and juice for either no charge or a very small tip. Norwegian charges $9.95, and you are limited to a pretty sparse room service menu. We missed Carnival in the morning, for sure.

I may be working from defective memories, but it seems like there were more entertainment options on Norwegian.

I think pretty much any cruise is going to be a pretty constant upsell. As a shareholder in both NCLH and CCL, I get that. These companies are awash with debt from keeping largely unoccupied ships afloat for a couple of years, and it’s going to be a long road back to profitability. o didn’t find the upsell irritating or distracting on Norwegian. We haven’t sailed with Carnival post-COVID, so I can’t speak to that.

I think we may actually try Disney next, depending on the cost. We got a glowing recommendation from our youngest after he, his wife, and their two kids took a cruise with them. He claims we wouldn’t to suffer little kids running around all the time. I don’t mind kids, just not 24 hours a day, please.

Borkum Riff Bourbon Whiskey, yet again

I did a review of this about a year ago. I almost never – OK, never – throw out tobacco. Even if I don’t like it, I’ll stick it in a jar and let it sit. Sometimes I find that my tastes or my technique change, and I like it better later on. Sometimes I find that some age really improves the blend. And honestly, some I tried early on I just didn’t really know how to smoke yet. So last night I broke out the jar of Borkum Riff and tried it again.

Once again, it started out innocuously enough. As I’ve changed my smoking habits quite a bit, I took it easier this time around and paid attention to keeping it burning relatively cool and slow. I’m still not a fan. I checked tobaccoreviews.com to see what’s in this blend; they say Virginia and Cavendish, but it used to contain Burley as well. I would believe that. I’m really finding that I’m not a big fan of Burley, and this seems to have some in it. I don’t know. What I do know is why it scores less than 2 stars on that site, and about the same on smokingpipes.com. It really isn’t very good. I’m down to the last 3/4 ounce or so. It may just get dumped into the scraps jar, or I may try mixing it with some VA flake or something to see if it’s got anything at all to offer.

Overall, I think it may at its core just be some fairly decent tobacco ruined by heavy-handed topping.

Bye-Bye, Bimmer

After a couple years of BMW ownership I parted ways with my ’18 540i XDrive last Friday. Its replacement is a 2020 F150 Platinum.

The G30 BMW was a nice enough car. It never was the equal of the Mercedes in sound suppression, comfort, or speed. It was however perfectly reliable, with none of the increasingly irritating shortcomings of the much older Mercedes. Everything worked; the cruise didn’t panic at random times, the radio and nav worked well, and it did get about 30 MPG at highway speeds. I never spent a single day fixing anything; it just worked. Of course it was an 11 year newer car that had been properly maintained, so that was certainly to be expected. So the ownership experience was much better, even if the car was not quite in the same class – rightly so, since the S-class is a full on luxury sedan and the 5-series is an executive sedan.

The F150 is a mix of pure utility and unabashed opulence. The cabin is big enough to pitch a tent. The electronics are pretty much up to date — not perfect, but quite good. It’s remarkably quiet in the cabin. I can of course use it as a pickup, which is really one of the two things that made me pull the trigger on swapping out the BMW for the truck. The other was ride comfort on long trips. While the BMW was quite comfortable (as was the Mercedes before it), that comfort was good for about 2-3 hours at most. After that I’d start to get some pain in my right hip, and by the time we hit the 4 hour mark it was on fire. A 14 hour day driving the old F150 (which needs a new home still) had no such discomfort.

The climate controls in the Ford are a welcome change, too. Both of the German cars had rather anemic air conditioning that struggled with full sun and hot days. The F150 will just about freeze you out if that’s what you want, and it’s the very first vehicle in which the seat cooling/ventilation actually works well enough that you can feel it. I’ve also got little things that American car makers include almost as stock items and for inexplicable reasons the Germans either refuse to allow at all, or charge stupid amounts of money to enable – like remote start and Apple Car Play.

Yes, I’ll miss the acceleration of the V-12 and the I-6; even the 375 HP Ecoboost doesn’t haul the huge bulk of the pickup all that fast. It’s plenty quick for a pickup, of course, and I’m OK with trading some of the neck-snapping capability that was so seldom used, for the cargo space that is frequently required. I even get to do some towing tomorrow.

Tobacco harvest, 2023

Yesterday (10/6/23) I harvested all of my remaining tobacco plants, as there were frost warnings for overnight and this morning. I cut most of the VA leaves off the stalks and bundled them until I can get my curing kiln finished and get them in there. I leaf harvested some of the Turkish, then stalk harvested the rest – whether I hang the stalks or cut the leaves ff remains to be seen. I am keeping the VA and Samsun separate, though I haven’t kept the bright VA separate from the TN Red Leaf or Ontario Bold.

Hearth & Home White Knight

This has become one of my favorite tobaccos. It’s a Balkan of substance; not overpowering with Latakia or Oriental, but a good blend that just ticks all the boxes for me. It’s got that unique flavor from the Oriental tobacco that I find I really enjoy. The tin note is a delight as well, at least if you’re into smoky, English and Balkan style mixtures..

It’s very close in its flavor to Sutliff’s Balkan Sobranie Original Mix Match. The differences between the two are subtle but do exist. I’ll digress for just a moment and talk about both of these. White Knight is a tinned tobacco, sold under the Hearth & Home brand. It’s a consistent, high quality ribbon cut product that is perfect (other than needing a bit of drying time) right out of the tin.

The bulk product (which I’ll refer to as BSOMM from here out, just to save a few electrons) is sold by Sutliff. Sutliff also makes Hearth & Home blends. The two tobaccos come from the same manufacturer. It’s been argued that BSOMM and White Knight are one and the same; I disagree. While the two have very similar flavor profiles, White Knight seems to be a little higher quality product. It’s usually cut better and more consistently, and its flavor is more fully developed. BSOMM seems e bit less carefully produced; the last bag I opened had a huge clump of uncut leaf in it. I’ve found chunks of stem (well, OK, not a stem; more likely a chunk of vein or midrib) and other inconsistencies that I don’t find nearly as often in White Knight. The flavor is also just a little bit milder; it may do well after a couple of months in a jar.

As I write this, I’ve been working my way through a couple ounces of BSOMM and a tin of White Knight, both received a couple of months back from Smokingpipes.com. I’ve been alternating the two for comparison. Why do that? Well, in the quantities I would order for long term use, White Knight costs roughly three times as much per ounce. The question is whether the savings is worth the differences between the two. Honestly, I can find so little difference between them that I’ll probably keep a jar full of BSOMM on hand after the White Knight is gone.