Bob Reynolds

Bob took me and my family so many places. I cherish how much of nature I got to see with him. I have always been amazed at how much he loved to be goofy with kids. Like, embarrassingly goofy. He wanted to live a generous and educational life. He thrived on sharing topics he could teach. He published papers, he inspired others to publish, teach and research. His greatest respect was for the natural world and discovering the past. He grew up in a world where practical accomplishments were admirable, and was an example to me of how to become proficient at fixing and understanding processes and mechanics. He was brave and proactive with people. When camping, he would frequently approach other campers, introduce himself and offer snacks and beers to create a relationship, especially in areas that attracted gun lovers that liked to fire shots in our favorite camp grounds. There was a lot to learn from this man. There is a lot left to teach.

ZFS: third time through

Fascinating–I had just finished a scrub on June 6. Then a drive started dying. Now I’ve attempted to replace it, but an adjacent drive also had errors. I feel like I’m in a bit of a pickle. This snapshot had the error, so I deleted the snapshot and did a zfs clear tank, and the scrub process automatically restarted:

  pool: tank
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
	continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Sat Jul  4 09:31:08 2020
	3.61T scanned out of 5.02T at 474M/s, 0h51m to go
	464G resilvered, 71.96% done

	NAME                                                      STATE     READ WRITE CKSUM
	tank                                                      DEGRADED     0     0     0
	  mirror-0                                                DEGRADED     0     0     0
	    wwn-0x5000c500536ffa79                                ONLINE       0     0     0
	    replacing-1                                           DEGRADED     0     0     0
	      8130638507939855275                                 UNAVAIL      0     0     0  was /dev/disk/by-id/wwn-0x5000c5006e3d9d3f-part1
	      wwn-0x5000cca24cd7f690                              ONLINE       0     0     0
	  mirror-1                                                ONLINE       0     0     0
	    wwn-0x5000c5005226b37b                                ONLINE       0     0     0
	    wwn-0x5000c500522766b5                                ONLINE       0     0     0
	  mirror-3                                                ONLINE       0     0     0
	    wwn-0x5000cca223ca0714                                ONLINE       0     0     0
	    wwn-0x5000cca224cb6a3b                                ONLINE       0     0     0
	  mirror-2                                                ONLINE       0     0     0
	    nvme-SAMSUNG_MZVPW128HEGM-00000_S347NY0HB06043-part1  ONLINE       0     0     0
	    nvme-SAMSUNG_MZVPW128HEGM-00000_S347NY0HB06165-part1  ONLINE       0     0     0
	  nvme-eui.002538cb61020e02-part2                         ONLINE       0     0     0
	  nvme-eui.002538cb61020e7c-part2                         ONLINE       0     0     0

errors: Permanent errors have been detected in the following files:


So at the bottom it has a unnamed file reference and it is prolly going to stick at 71.x% for the next two hours.

Just a Hutch


I had to squeeze this photo with perspective transform a few times to get the snapshot looking the way I wanted. Smoothed color layer, desaturated contrast layer.

Next Scrap

This beautiful piece of wood was passed on from an instrument builder, it looks like a perfect species for a fretboard. It’s 1-1/4″ thick. I desire 7/8″ for dice to slide, and 13/16″ is narrow enough to make them wedge.

I have some narrow gauge saw blades but not nearly so thin as a band saw blade. So if my kerf is 1/8″, I have problems. I cannot see how to make dice boxes tall enough to have the nice presentation face as a lid without using a separate 6″ slab to cut from.

It might be possible to carefully join a second piece of wood into the spare 4″ scrap from four 6″ boxes, but pairing this wood with something uninspiring is unattractive. I don’t have an acrylic mix, which might be fun.

I’m unsure how to finish this wood, too. Is linseed going to darken it? I used linseed on Jesse’s bass neck and it was perfect, but that was totally different wood. I guess it would be sensible to cut a piece off the end and treat it to see the effect.

Maple dice box

I came across a 2×6 scrap of what I’ve been told is maple. I sawed it up into a few dice boxes that I’m using my router to hollow. Each is going to be finished with linseed oil, but constructed in slightly different manners. This one is the first time I’ve used brass threaded inserts, which are surprisingly fragile.

I enjoy the look of the separation that exposed the grain.

And three magnets seem to keep it closed well enough. I might use more or use bigger magnets on the next ones.

Adding Lots of Storage Pools to Libvirt

I do not enjoy having subdirectories involved for storing files in libvert. The virt-manager interface is just way too brutal about how you manually add storage pools. After much ranting, I wrote a bash script to add these directories for my VM disk images.

  1 #!/bin/bash
  3 set -e
  4 #set -x
  5 existing_pools=()
  6 export existing_pools
  8 function add_this_dir() {
  9     local -n xisting_pools="$1"
 10     if [ ! -d "$2" ]; then
 11       echo "add_this_dir: $2 is not a directory"
 12       return
 13     fi
 14     local shortname=`basename $2`
 15     if [[ " ${xisting_pools[@]} " =~ " $2 " ]]; then
 16       echo "$2 already exists"
 17       sudo virsh pool-start "$shortname"  &>/dev/null ||:
 18       sudo virsh pool-autostart "$shortname"  &>/dev/null ||:
 19       return
 20     fi
 21     if [[ " ${xisting_pools[@]} " =~ " $shortname " ]]; then
 22       echo "$shortname already exists"
 23       sudo virsh pool-start "$shortname" &>/dev/null ||:
 24       sudo virsh pool-autostart "$shortname" &>/dev/null  ||:
 25       return
 26     fi
 27     sudo virsh pool-define-as --name $shortname --type dir --target "$2" --source-path "$2"
 28     sleep 1
 29     sudo virsh pool-start "$shortname" &>/dev/null ||:
 30     sudo virsh pool-autostart "$shortname"  &>/dev/null ||:
 31     sleep 1
 32 }
 34 while read L; do
 35   if [[ x$L = x ]]; then continue; fi
 36   hunks=($L) 
 37   existing_pools+=("${hunks[0]}")
 38 done < <(sudo virsh pool-list --all | grep -v -e Autostart -e '----' )
 40 echo "You have these existing pools defined: "
 41 echo "%%${existing_pools[@]}%%"
 43 while read D; do
 44   add_this_dir existing_pools "/tank/VMs/$D"
 45 done < <(ls /tank/VMs) 
 46 while read D; do
 47   add_this_dir existing_pools "/tank/softlib/iso/$D"
 48 done < <(ls /tank/softlib/iso)


Bass of Spades assembled!

Jesse worked hard on the Bass from morning to night, with some long interruptions to build fencing around the chicken run. We started off the morning by soldering the knobs and and the pickups.

It took filing a rough spot on the bridge and flux to get the ground wire soldered to the bridge. Then we used a chisel to carve a spot for the solder bump.

Before I knew it, Jesse had punded in the peg post collars and had put the neck on the body.

He was really excited to get his first string on a peg!

After dinner, Jesse had screwed most of the pickups on. He unfortunately broke a drill bit of in the body when sinking pilot holes for the low pickup. We had to drill some surrounding area out and use needle nose to back out the bit. And when we did, Jesse got right on to adjusting his bridge.

We finished off the evening listening to Red Hot Chilli Peppers and Primus.