How to Add Calcite to Your Home Acid Neutralizer

If your incoming water supply is acidic you will need to have an acid neutralizer and a water softener installed. The medium in the acid neutralizer is calcite and it slowly dissolves as it treats the water that flows through it. When you first purchase your unit and once it is flushed and in service you should shine a bright light through one side of it to see how full it is and mark it with a piece of tape or magic marker.

Over time, depending on the acidity of your water, you will need to replace the media as it dissolves.

Following are the steps to do so which includes servicing two different types of units; one with an inspection port (or domehole) and one without that requires unscrewing the head.

Supplies

  1. A helper is a must, doing it by yourself is very difficult
  2. A couple 50 lbs. bags of calcite. Having more than you think is better than not having enough. If you can find it at a retail store, or a company that services water treatment systems, it will be much cheaper since you will not have to pay shipping. Any type of calcite that is for acid neutralizers will work.
  3. N95 dusk masks
  4. A bunch of towels
  5. A approximately four or five foot section of hose or tubing
  6. A few five gallon buckets
  7. A large funnel
  8. Some food grade silicone lubricant for plumbing
  9. A short ladder or step ladder
  10. A bright flashlight
  11. A three foot dowel or other rigid rod you can use to check the calcite level as you fill it

For Both

Depressurize it. Hopefully you have sufficient bypass valves in the plumbing to and from the unit. Turn off the valve upstream to the unit and open either a drain valve or a faucet to relieve the pressure. Run the water until it is just a trickle.

For A Unit With an Inspection Port

  1. Mark with painters tape, or a magic marker, a corner of the cap, and mark the canister right by the tape. This will allow you to know how far the cap was screwed in so that you do not over tighten it when putting it back together.
  2. Hold a towel under/around the cap and slowly unscrew it while your helper is at the ready with the section of hose and a bucket.
  3. Once you get the inspection port off, put one end of the tube into the canister and suck on the other end to create a vacuum and siphon out about a 5 gallon bucket’s worth of water.

For A Unit Without an Inspection Port

  1. Unplug the electrical connection.
  2. Disconnect the head from the plumbing.
  3. Mark with painters tape, or a magic marker, a part of the head, and mark the canister right by the tape. This will allow you to know how far the head was screwed in so that you do not over tighten it when putting it back together.
  4. Have a helper hold a towel at the base of the head and unscrew it. Do this slowly. Unscrew it 1/4 of a turn and then back 1/8 of a turn. What you are trying to do is break any seal between the down pipe that goes to the bottom of the canister from the head so that you do not lift it out when you unscrew it. If you do happen do lift the down pipe, it makes it VERY difficult to reassembly and you will have to either trim the pipe, or lay the canister on it’s side to try to re-seat the down pipe and its base.

Adding the Calcite

  1. Use the hose to siphon out about as much water as you think you will need to add calcite.
  2. Have your helper hold the funnel in either the inspection port, or in the top of the canister. For units where you removed the head ensure that you DO NOT put calcite down the down pipe.
  3. One person will hold the funnel and other will climb up the step ladder and pour in the calcite. Wear your dust mask for this otherwise you will breath in a lot of very fine particles which are very bad for your lungs.
  4. Stop regularly to check the calcite level. Insert the rod into the canister to measure the level. You can also use a flashlight by shining against the opposite side of the canister, but if the calcite that you are replacing is a different color than the existing one you can accidentally overfill it. OVERFILLING IT IS A HUGE PAIN TO FIX. Ask me how I know this. If you overfill it, when it back washes the calcite will get stuck in the head and clog the drain tube and you will have to take it outside, and lay it on its side to dump out the excess calcite. All while ensuring that the down pipe does not come out. So, just add calcite slowly, checking regularly, until it is about two-thirds full.

Reassembly

  1. Ensure that the threads for either the inspection port or the head are clean by using a clean toothbrush and pouring water over them while gently scrubbing.
  2. Lube the top of the down pipe, if applicable, and any o-rings with food-grade silicone grease and re-assemble ensuring not to cross thread it.
  3. Screw until it starts to get snug and then re-align the tape marks made before disassembling it. If you can easily screw it past that point, you will need to go another 360 degrees to get to the correct torque.

Start-up Procedure for a Non Back Washing Head

  1. Start with both in and out flow bypass valves off.
  2. Turn a downstream faucet or hose bib on. Typically, these systems are plumbed with a ball valve overflow directly downstream from the unit.
  3. Turn the upstream water on.
  4. Open the downstream bypass valve all of the way
  5. Slowly open the inflow bypass valve to allow it to fill with water and push the air out.
  6. Once it is completely full and you can no longer hear any air moving through the system turn the downstream faucet off 85% and then completely open the inflow so that now both bypasses are completely open.
  7. Then connect a hose to the same downstream faucet or hose bib and open it about 30% and run it until the water is clear and all of the calcite dust is rinsed out.

Start-up Procedure for an Electronic Head

  1. Reconnect the flush outlet tube.
  2. Start with both in and out flow bypass valves off.
  3. Set the unit into manual regeneration/backwash mode. This will allow you to purge the air from the unit when turning on the water.
  4. Slowly open the inflow bypass until all of the air is purged from the system and only water is flowing out of the flush outlet tube.
  5. Once all air is purged open the inflow bypass all of the way and let the regen/flush cycle complete.
  6. Open the outflow bypass valve.
  7. You may have to run the regen cycle a few times until the water runs clear through the unit.

Clack WS1 EE

  • To enter the user programming mode press and hold NEXT and UP together for three seconds

Honey Lime Marinade

I have used this on chicken but it could probably used with pork or tofu. The following is for 4 chicken thighs; scale as required by the amount of and/or type of food you are cooking

Ingredients

  • 1/4 cup lime juice
  • 3 tbsp honey
  • 1 tbsp vegetable oil
  • 1 tsp garlic powder
  • 1 tsp paprika
  • 1 tsp ground cumin
  • 1/2 tsp chili powder
  • 1/2 tsp dried oregano
  • 1/2 tsp salt
  • 1/4 tsp black pepper
  • 2 tbsp fresh minced cilantro

Directions

  1. Mince garlic and cilantro
  2. Mix all ingredients together
  3. Pour over meat or tofu
    • If marinating meat, marinate for about 20 minutes to 2 hours. More than that can make the meat stringy and mushy

Setting up a Mac Laptop for a Software Engineer Coming from a Linux Desktop

I’ve recently started a new job and am setting up a MacBook Pro M4. I’ve been using either a native Linux Desktop, or a Linux Desktop as a VM on a Windows box for most of my career. There are a number things about the Mac that are different than Intel based machines running Linux following are the list of changes that I have made to make it usable as a development environment.

Show all files in an “Open” dialog box

Press Cmd + Shift + .

Set system time to UTC

sudo ln -sf /usr/share/zoneinfo/UTC /etc/localtime

To display time in seconds go to System Settings > Menu Bar > Clock and select “Display the time with seconds”

If you also want to display a clock that shows your local time install Clocker.

Disable the “Press and Hold” Feature

By default, holding down a given key will display a pop-up/tooltip that displays accented version of the given character. I use a Vim plugin with the IDEs that I use and when trying to navigate by holding down either the w or b chars the cursor only moves by one work and then shows an accented character. To disable it

  1. Run the following command in a terminal and then restarting applications. This turns off the feature that will show accented characters: defaults write -g ApplePressAndHoldEnabled -bool false
  2. Turn up the Key Repeat rate by going to System Setting > Keyboard and adjust the slider for the “Key repeat rate”. If this still feels too slow you can crank it up with the following terminal settings which enable values much lower than the UI allows to be set
# Sets a very short delay before repeating
defaults write -g InitialKeyRepeat -int 15 

# Sets a very fast repeat rate
defaults write -g KeyRepeat -int 2

Configuring Home and End Keys

  1. Create the following directory: mkdir -p ~/Library/KeyBindings
  2. Create and edit the binding file vi ~/Library/KeyBindings/DefaultKeyBinding.dict
  3. Paste the following content into it
{
    "\UF729" = "moveToBeginningOfLine:";
    "\UF72B" = "moveToEndOfLine:";
    "$\UF729" = "moveToBeginningOfLineAndModifySelection:";
    "$\UF72B" = "moveToEndOfLineAndModifySelection:";
}

Then save and close that file and restart applications and/or restart the Mac.

iTerm2 Specific Configurations

Configure Home and End keys to work properly

  1. Go to Settings > Profiles > Keys > Key Bindings and click the + at the bottom left.
  2. For the Home Key:
    • Keyboard Shortcut: Press your physical Home key.
    • Action: Select Send Hex Code.
    • Code: 0x01 (This is the hex for Ctrl+A).
  3. For the End Key:
    • Keyboard Shortcut: Press your physical End key.
    • Action: Select Send Hex Code.
    • Code: 0x05 (This is the hex for Ctrl+E).

Configure F-keys to work without pressing fn

  1. Open System Setting > Keyboard and click on Keyboard shortcuts
  2. Click on Function Keys in the left-hand nav
  3. Toggle the Use F1, F2, etc. keys as standard function keys

Getting Alt-Tab to Switch Applications

Download and install the AltTab application.

Configuring Primary Selection and Middle Click Paste

One of the things that I use all of the time under Linux is to select text and then middle-click to paste it. This is one of those Linux features that once you get used to, you just have to have.

Configure iTerm2

  1. Open iTerm2 settings
  2. Go to General > Selections
  3. Check the box “Applications in terminal may access clipboard”
  4. Check the box “Copy to clipboard on selection”
  5. Go to Pointer > Bindings
  6. If “Middle Button” is not there, click the “+” button at the bottom of the window
  7. Set the following
    • Button/Gesture: Middle Button
    • Click Type: Single Click
    • Action: Paste from Selection…: There are a whole host of additional options from there that you can choose from. I left the default settings.

Screenshots

Configure the OS to write screenshots to a specific directory

# Set the new location
mkdir -p $HOME/Pictures/Screenshots
defaults write com.apple.screencapture location $HOME/Pictures/Screenshots

# Apply the changes (restarts the UI server)
killall SystemUIServer

Additional brew Packages

  • watch

Helpful Keyboard Shortcuts

  • Enter a path to a file in a dialog box: By default, Mac makes you click everything. Many times you know exactly where the file is on the filesystem and you just want to type it in and hit Enter. To do so, you need to open the dialog box and then press Command + Shift + G and then you can enter the path to the file.
  • View hidden files and directories in a dialog box: By default, Mac always hides “dotfiles” and directories in a dialog box. To see them open the dialog box and then press Command + Shift + Period.

Development SDKs

Installing Go

Initially, I just went with brew install go, but this turned into a big mess. While working on a project where I was writing a K8s Custom Resource Definition I ran into a buzz saw of mismatched versions and edge cases with the Apple Silicon/ARM architectural problems with the go development toolchain.

Instead of using brew for the go SDK

  1. Download the .tar.gz file from https://go.dev/dl/ for your architecture
  2. Unpack it, rename the go directory go1.x.x and move the directory to /usr/local/
  3. Create a symlink, /usr/local/go to point to the version specific go directory
  4. Ensure that /usr/local/go/bin is in your PATH
  5. Install any other required go libraries with go install or by downloading the binaries and putting them in your $GOPATH
    • go install golang.org/x/tools/gopls@latest
    • go install github.com/go-delve/delve/cmd/dlv@latest

How to Install Windows 11 on a Dell Optiplex 990 (and perhaps other older hardware)

To perform a clean install

  1. Configure the BIOS
    • Set boot mode to UEFI
    • Set SATA configuration to AHCI
    • Enable Secure Boot/TPM
  2. Prepare a USB drive
    • Use Ventoy to create a USB drive
    • Copy the win11 ISO to the data partition of the drive
  3. Wipe the drive during the install process
    • Boot from the USB
    • When you see the “Where do you want to install Windows?” screen press Shift + F10 to open a command prompt
    • Then type the following commands, in this order
      • diskpart
      • list disk and choose the drive onto which you want to install. Most likely Disk 0
      • clean, this will remove all data from the drive
      • convert gpt, this is the command that will make the drive UEFI-compatible
      • exit
      • exit
  4. Continue with the installation. When it asks you where to install, select the drive you just wiped. It should list a large “Unallocated Space”.
  5. Select it and click Next
  6. It will then show a blue screen with “n% installing”
  7. Keep an eye on it and when it reboots, remove the installation USB
  8. You should see a “Getting Ready”, or “Installing 0%, Please keep your computer on” message. If you get there you on your way to installing Win 11 on your computer.

How to properly join threaded metal plumbing fittings

For a while I struggled with ensuring that a joint between two metal plumbing fittings did not leak. On my most recent project that required multiple threaded fittings I took some time, did my research, and finally sorted out the details.

There are four things to do that will ensure a water tight joint:

  1. Join like metals together: Use the same, or similar, metal types for both male and female fittings. If you have copper pipe, use a copper or brass fitting. When joining dissimilar types, the threads of the harder metal can distort or destroy those of the softer metal and will result in a leak.
  2. Use professional teflon tape: Do not use the cheapo, thin tape that you get at the commercial hardware store. Go to a professional plumbing supply store and get a thicker tape that is made for the type of metal you are using. Wrap it 3 or 4 times, and no more. Too much tape can cause it to bunch up and leak. Wrap it on the male threads, clockwise as you are looking directly at the male fitting with it pointed towards you so that when you screw it into the female fitting it continues wrapping the tape tight and not unwinding it. When applying it, unroll a bit of it and hold it to the male threads with your thumb, then wrap it around, pulling it tight into the valleys of the threads, but not too tight that it rips the tape. It is important that the tape is seated into the valleys of the threads.
  3. Use a good quality pipe dope, and less that you think: Once the tape is applied, coat it with pipe dope. Only fill the valleys of the threads so that the ridges of the threads are still visible.
  4. Tighten it to that “just right” torque: There is no universal torque spec for all plumbing fittings. Apply the same principle from automotive mechanics; ensure that you do not cross-thread the fitting and then tighten it until it starts to snug up and then tighten it “just a bit more” instead of “as tight as possible”. This is the most difficult part and does require some experience.

How to calibrate a Whirlpool WTW4816FW3, or similar, washing machine

There are many similar models of both Whirlpool, Amana, and Maytag washers to which this process applies. One of the first things to do with these machines if they are acting a bit wonky is to re-calibrate them.

The process is a bit esoteric and after finding a video of it online I wanted to write it down for future reference. In the following directions when it says “turn it R”, it means to turn the center control knob one “click” to the Right. “turn it L”, means one “click” to the Left.

  1. Turn the middle selector knob counter-clockwise, two “clicks” past Normal
  2. Turn it back to 12-o-clock, Normal
  3. Turn the knob, in the following sequence: L R R R L R. At this point, all of the indicator lights below the center knob should be blinking
  4. Turn the knob R until just the Done light is on
  5. Turn it R one click at a time until just the Rinse light is on
  6. Press the Start button
  7. It will run through the calibration process which takes about 1 to 2 minutes

Then run the washer as normal.

Mount External, Encrypted, LMV drives

First decrypt the drive. When I plugged it in GNOME displayed a dialog and asked for the key. I’m guessing that cryptsetup luksOpen /dev/device device_crypt would work as well.

Run lvdisplay to get the LV Path for the logical volume that you want to mount.

Then, activate the volumes , there is a way to activate a specific one volume, but the following activates them all.

vgchange -ay

Then mount it

mount <lv-path> /mnt

PDF Commands Cheat Sheet

Following are a number of common PDF processing commands on a Linux box

Convert a series of images to a PDF

convert image-1 image-2 ... images.pdf

convert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF’ @ error/constitute.c/IsCoderAuthorized/426.

ImageMagick, specifically version 6 (im6), is preventing the conversion of PDF files due to a security policy. To address this

  1. As root, edit /etc/ImageMagick-6/policy.xml
  2. Search for the line <policy domain="coder" rights="none" pattern="PDF" />
  3. Update rights="none" to rights="read|write"
  4. Save the xml file