XPG SX8100 Real-World Performance

This NVMe SSD achieves 736MB/s reads and 174MB/s writes.

The numbers were calculated using the badblocks command, and tracking how long it took to complete the read and write phases.

badblocks -wsv /dev/sda


Are you looking for a tastier, lower-carb alternative to the standard McDonald’s menu?

Make a Chick-Double! Here’s how. . .

Start with a standard McChicken and a standard McDouble
Remove the boring bread slices. Keep the ones with mayo, ketchup, pickles, and lettuce, and cheese!

Dream Hosting

I just transitioned from onsite WordPress hosting (in my garage) to using a cloud provider.

I went with the provider DreamHost.


  • The one-click migration tool is really easy. It truly did streamline copying everything from the old site to the new one (including database tables, user accounts, everything). That part took about 10 minutes.
  • Free Let’s Encrypt SSL Certs without having to do any configuration / API interaction yourself.
  • Unlimited WordPress instances/sites and unmetered bandwidth. Others may have different requirements, but for running some basic sites (like the one you are reading right now) it’s an all-inclusive service.
  • Uptime – This is an assumption because I just starting using the service. However, I know for sure that my house has experienced long term power outages, I needed to physically move things around the garage, etc. My overall uptime on my own equipment was probably around 90%.


  • Slow
  • My dedicated hardware responded to UptimeRobot with times hovering just over 100ms (1/10th of a second)
  • The shared hosting server responds in around 2500ms (2.5 seconds)
  • That’s about 25 times slower.
Left part of the graph is dedicated hardware. Right side is DreamHost.

Another con: The Let’s Encrypt certificate took a few hours to process. Not a huge deal, but it’s inconvenient because it’s long enough that you have to idle and wait, or do it another day. Just frustrating because you are basically sitting there with everything else done just waiting for this process to happen.

Hosting Cost Versus Power Cost

The servers, UPS, etc took just over 100 watts to run. That’s approximately $10 per month.

The yearly DreamHost unlimited plan has an intro rate of $2.95 per month, and then renews at $12.95 per month.

So basically, having everything done for me is the same as the cost of just power.

“Gochas” / Tips

Complete the one-click migration before making any DNS changes. Otherwise, the software has trouble pulling the data from your old/existing site.

Be sure about how you plan to handle www in the URL before copying the site over. It can be tricky to change later.

For example, know whether you want the URL to be or


Another circumstance where a long-winded explanation brings us to a fact we already know!

Shared cloud hosting is easier to manage, but has lower performance.

If you have a simple site, and can live with average response times in the 2-3 second range, I highly recommend shared hosting!

If not, explore other options.

Quotes Tech

The End of an Era

It is with a surreal sense of melancholy I announce that on July 15th, 2020, I will be shutting down the last of our user hosting. It has been a long, winding journey…

hon1nbo /

I am not in the same position as hon1nbo, but I feel like their story and mine do have many parallels.

For the past few years, I’ve physically set up and managed several web servers in my garage.

I am giving them up. Doing my own web hosting was a ton of fun! There was lots to learn, and it was engaging. However, I want to make room for other things in my life.

When I am administering the physical and software configuration of these machines, I am not journaling, working out, or connecting with friends.

Therefore, I’ve migrated this website, along with to a cloud provider.

This is the most recent step in my ongoing quest to spend my limited time in life wisely.


Deep Clean the Mazda 3

I removed the seats to get all of those left-over fries from the last 4 years!

Before (left) and After (right)
Jax just chillen but acting like he is trying to help.
Open Source Tech

Boot Log Information on Linux

I’ve always struggled to find info about the boot!

  • What drives are in the system?
  • What’s the IP address?
  • What are some details about the hardware?
  • Etc.

Turns out, it is really easy.

journalctl -b

Oil Changes are Hard

Well I thought I knew how to do an oil change with no problem.

There was one caveat: Using super thin SAE 0W-20 oil on the oil filter gasket doesn’t work well.

I was changing the oil in my 2016 Mazda 3.

Tools Required: (Those last two messed me up)

  • 8mm socket
  • 8mm Allen/hex key
  • Flat head screwdriver
  • Philips head screwdriver (optional)
  • Small extension (optional)
  • Ratchet
  • Lubricant for oil filter gasket!
  • Oil filter wrench!
The last two items on the list are missing from the photo.

First problem was that I took of the wrong plastic cover piece. There is one closer to the front of the car. I thought it was for the drain plug. I was wrong. One (slightly larger about 15″x15″) cover piece allows access to both the oil filter and drain plug.

When I was taking off the old oil filter, I could barely get it off. I spent about 15 minutes getting in just the right position and used all of my hand strength.

I was confused why it was so difficult, because I put the last one on myself, and I would have been careful not to over-tighten it.

When I put the new one on, the directions said to turn it 3/4 to 1 full turn after contact with the block.

  1. I lubricated the oil filter gasket with the brand-new SAE 0W-20 oil.
  2. I got it to 1/2 turn, then it wouldn’t budge. Totally stuck.
  3. I couldn’t even loosen it!

Now, I was discouraged and laying under a hot car, debating whether to leave an improperly tightened filter as-is and hope for the best, or actually fix it.

Thankfully, my neighbor had a large set of pliers and I was able to get the filter off!

I retried the installation using a 3-IN-ONE multipurpose oil. It’s the kind that is used for bike chains, casters, etc.

This time, everything felt normal. I was able to turn to about 3/4 turn perfectly. Hopefully, the oil is still on there when I got to take the filter off!

In addition to using better filter gasket lubricant, I would never risk doing the job without something to take off the oil filter with force. Oil filter wrench is probably ideal, but at least something like large enough pliers.


Rear Brake Pad Replacement: A Doozy

We have a 2016 Mazda 3. I needed to replace the rear brake pads.

I’ve done this before on other cars, so I thought it would be easy. Due to my inexperience and lack of tools, it was not.

Getting everything to the point of removing the caliper went fine. Then, I needed to compress the caliper piston. The idea is to move it in the direction of the red arrows.

I was trying to force the piston straight back in.

Unfortunately, I didn’t have the official tool, so I got creative. I tried forcing it in with several items.

  • C-clamp that didn’t quite fit
  • Spare piece of wood
  • Spare piece of aluminum
  • Spreading apart neighbors pliers

After breaking my neighbor’s pliers, I gave up for the day, and re-assembled everything with the old brake pads still in the car. ???? ????

I became furious, then cried a little bit, then went online and ordered the tool.

The tool looks like this.

The key is actually to rotate/screw the caliper piston back in, as opposed to pushing it straight in.

This is true for the back brakes, not the front ones. The process is different because the parking brake is connected to the back brakes.

After screwing, the piston moved back into position.

Now that I know how the piston needs to rotate, I’m not sure that the tool was actually required. I probably could have used pliers.

However, I had a new problem! It looked like the rubber seal was completely messed up as a result of the twisting.

Nooo, Why?!

Luckily, this turned out to be no problem. I easily pushed the rubber seal back in place with my thumbs.

Whew, close one.

After swapping out the old pads for new ones, the brakes were ready for re-assembly!

The car is now back on the road.

Open Source Tech

Use InfluxDB 2 as a Metric Server for Proxmox


InfluxDB will run on in a Docker container.

This setup assumes that a Docker host is accessible on the LAN. In this example, the local domain is vnet and the host name is docker4.

Therefore, the Docker host FQDN is docker4.vnet

InfluxDB Container

Your USERNAME, PASSWORD, and ORG will vary.

I made my org the same as my local networking domain, but that is not a requirement.

docker run -d \
     -p 8086:8086 \
     --mount type=volume,source=influx-data,target=/var/lib/influxdb2 \
     --mount type=volume,source=influx-conf,target=/etc/influxdb2 \
     --name idb \
     -e DOCKER_INFLUXDB_INIT_PASSWORD=secret-password \

Connect Proxmox to InfluxDB 2

As of Proxmox 6.4, it is possible to use the version 2 API of Influx.

Before that, Proxmox would connect to Influx 1.x, but it was sending graphite line protocol over UDP (yuck). Now it connects via TCP/HTTP to the Influx API.

Get the Token

Log into the Influx web user interface, and copy the token for the user.

Click the token name to reveal the token.


There is probably a command-line way to do that, but I don’t know it.

Configure Proxmox Metric Server

The name can be whatever you want.

Paste the token from the last step into the “Token” field in the Proxmox UI.

Confirm Proxmox is Saving to InfluxDB

Navigate back to the InfluxDB web UI, and confirm that data is flowing. http://docker4.vnet:8086/

If things are working, there will be some measurements that clearly look related to Proxmox resource utilization.

Next Steps

In the next post, we will connect the InfluxDB bucket to a pre-built dashboard using Grafana.


No man ever steps in the same river twice, for it’s not the same river and he’s not the same man.

This is a quote by Heraclitus. He lived from 535-475 BC.