First Times Food

First Ever Rib Roast

I’ve never baked a beef rib roast before! Here’s the story of what happened.

Seasoned it with salt, pepper and garlic. Placed on countertop for a few hours. Put into the oven when the roast was 52 degrees.

Baked at 250 degrees for about 3 hours. Once the roast reached 120 degrees, cranked the oven up to high for almost 10 minutes to get a sear.

After searing and removing from the oven, the roast was at around 126 degrees.

The result was pretty good! I was going for medium rare, but ended up at a medium.

For my first-ever attempt: I’ll take it! 😀

Next time I’ll endeavor to have it closer to rare. Stay tuned.

Open Source Tech

Bulk Resize Images for WordPress

Here’s a python script.

import os
import subprocess

# inspired by this post

def main():
    # the maximum length in any direction (width or height)
    # setting at 1600 because full HD (1920x1080) seems larger than necessary
    # this will allow 1600x900 (or portrait 900x1600) images.
    MAX_LEN = "1600" 
    size_parm = MAX_LEN+'x'+MAX_LEN+'>' #
    # files in the input directory will (at least SHOULD) remain untouched.
    # files with identical names will be created in the output directory.
    # files in the output directory are OVERWRITTEN (if they already exist and the names match)
    IN_DIR = '/home/vince/Pictures/WordPress'
    OUT_DIR = '/home/vince/Pictures/WordPressSmall'

    # show what is about to happen
    print ('Input: ', IN_DIR)
    print ('Output:', OUT_DIR)
    print ('Resize Geometry:', size_parm)

    for filename in os.listdir(IN_DIR):
        # get full file paths
        infile =  os.path.join(IN_DIR, filename)
        outfile = os.path.join(OUT_DIR, filename)

        # this is not necessary because the ImageMagick library supports shrinking only
        # AND maintaining aspect ratio. all the logic is basically done.
        # the '>' in size_parm prevents making the image larger.
        # #get width and height
        # width = subprocess.check_output(['identify', '-format', '%w', filepath])
        # width = int(width.decode())

        # convert and print output
        subprocess.check_output(['convert', infile, '-verbose', '-resize', size_parm, outfile])

if __name__ == '__main__':


Observing Jupiter and Saturn Together

Today, Jupiter and Saturn formed a visible “double planet” for the first time in 800 years. It was also the winter solstice.

The winter solstice of 2020 was a once in a lifetime opportunity to see the planets align!

Bethany and I managed to snap a few photos!

Here is the “double planet” that looks like a single one with the naked eye.

Jupiter and Saturn are the bright spot toward the top left of the tree.

With the binoculars, you can see the two planets distinctly. It took both of us together holding the phone camera and binoculars to make this happen 😁


Panda Bear is in the Sink

What a great relaxation spot!

Let’s hope she stays out of the toilet!

Open Source Tech

Torrent Container for Proxmox

Why Do This?

I always end up downloading ISO images for use in VMs using my laptop. I’m rarely running the torrent program on my laptop, so I am a leecher!

Proxmox is running 24/7, so I can help the rest of the community by being a seeder!

Creating a container to avoid having too much configuration on the Proxmox server itself. The idea is to keep Proxmox a pure VM host, not a Torrent server.

Plus, the setup is finicky, so being able repeatedly wipe the container and start over is helpful!

Before We Begin

The setup assumes that networking has been configured for both the Proxmox host, and the container that will run the Transmission torrent client.

In case local DNS is not configured, IP addresses are fine!

  • pve1: Physical server that is running Proxmox
  • torrent0: Debian container to run Transmission and Samba.

Both of these servers have IP addresses on the network.

Transmission (Torrent)

root@torrent0:~# apt install transmission-daemon transmission-cli
root@torrent0:~# cp /etc/transmission-daemon/settings.json /etc/transmission-daemon/settings.json.original

root@torrent0:~# service transmission-daemon stop

root@torrent0:~# nano /etc/transmission-daemon/settings.json
    "download-dir": "/srv/smb/template/iso",
    "rpc-password": "YourSecretPassword",
    "rpc-whitelist": "192.168.27.*",

root@torrent0:~# service transmission-daemon start

Downloading a torrent will cause that that directory to be automatically created if it doesn’t exist. Avoid doing that until we’ve completed more steps in the setup.

For more information, see Debian’s documentation.

Samba (CIFS / SMB)

root@torrent0:~# apt install samba

root@torrent0:~# smbpasswd -a debian-transmission
root@torrent0:~# mkdir /srv/smb
root@torrent0:~# chown debian-transmission:debian-transmission /srv/smb/

root@torrent0:/etc/samba# cp smb.conf smb.conf.default 
root@torrent0:/etc/samba# nano smb.conf

   comment = SMB Share 
   path = /srv/smb 
   guest ok = no
   browseable = yes
   readonly = no

root@torrent0:~# systemctl restart smbd
root@torrent0:~# systemctl status smbd

For more information, see Debian’s documentation.

Connect Proxmox

I had buggy issues removing/editing CIFS shares from the web GUI. Falling back to command line.

root@pve1:~# pvesm add cifs tor0 --server torrent0.vnet --share smb --username debian-transmission --password 'YourSecretPassword'
--then manually edited to change storage type to ISO in GUI

This automatically creates /template/iso/ under whatever share you give it.

For more information, see the Proxmox Storage Documentation

And also, forum post related to bugs adding/removing CIFS.

Download ISO Files

The Web GUI can be accessed here: http://torrent0:9091

  • Default UN: transmission
  • PW: Configured earlier in tutorial

I’ve had better luck with .torrent files than magnet links, but YMMV.

First Times

First Time Draining a Chip Shot in Golf

I made a 30ft shot in the hole!

It was at The Divide Golf Club in Matthews, NC.

Here’s the view from where I chipped it in.

Bonus First: A round of golf with my own clubs.

First Times

First Time Seeing a Shower with the Faucet on the Opposite Wall of the Shower Head

My wife and I were staying at the Spring Hill Suites in Mt Pleasant SC.

We were the because we were attending our friends Joe and Caroline’s wedding in Charleston. Congrats Joe and Caroline!

The faucet of the showers is on the opposite wall from the shower head. It was so weird!

First Times

First Time Donating a Car to NPR (WFAE)

I’ve had my 2001 Ford Focus since 2012. It starting having trouble lately, at it was time to let it go!

I decided to donate it to the local NPR station, WFAE.

Does this sound like a good idea? Check out more details about WFAE’s Vehicle Donation Program!

Off she goes!
What a modern interior. . . for the year 2000
So many hours of work. Kept it running for a solid 8 years!
First Times

First Time Riding in a Tesla

I went disc golfing with my neighbor Brian today. He has a Tesla. I got to ride in it.


Pass Static IP to pfSense with AT&T Router

I have a pfSense router. It should have a public, static IP address.

AT&T requires that I use their gateway, so I cannot use the pfSense router as my edge device.

The solution mostly came from a post on the AT&T community forums titled How do I setup an AT&T Internet Static IP?

The first step is to configure the public subnet. My static IP address block has the following details:

  • Network Address:
  • Subnet Mask:

This is a block of 8 IP addresses. The AT&T post goes into detail about how the blocks are configured. For my particular assignment, they break down as follows:

IP AddressUsage Address for AT&T Gateway Address
IP Address Breakdown

The only section that needs to be edited is “Public Subnet”. All other items are left at defaults.

pfSense is configured to get a WAN address from a DHCP server. Next up, we need to move pfSense from the private (LAN) subnet to the public subnet.

Locate pfSense either by hostname, or by the MAC address of the WAN port. Notice that it got a LAN IP by default.

If you don’t see it in the allocation list, reboot pfSense.

pfSense old allocation

Click “Allocate” and choose a public IP.

Reboot pfSense.

Now, it should have an IP on the public subnet!