I love Rick Beato's interviews, but his most recent one might be the best yet. Rick sits down with Robby Krieger and John Densmore from The Doors, and they even play some of their hits in the studio where they recorded some of their albums. Great stuff!

Indie Game DevLogs

Feb 6, 2025

I found another cool YouTube channel that I think is worth checking out, making it my pick for February. DevDuck follows the efforts of an aspiring game developer who is working on his dream game in his spare time. The development logs are reasonably short, they showcase the progress he makes from episode to episode, and they don't stray too far into the weeds. The production values are pretty nice, in my opinion.

I've embedded the first episode of the playlist below. There are 54 episodes (so far) in this playlist, and there's other related content on his channel as well.

Searching via AI

Feb 5, 2025

I've been playing with ChatGPT recently, primarily as an alternate way to search the web. Tonight, for example, I recalled that there's a Sherlock Holmes story in which Sherlock remarks to Dr. Watson, "These are very deep waters." I couldn't remember the story containing that quote, so I decided to ask ChatGPT with the following prompt:

One of the Sherlock Holmes stories by Sir Arthur Conan Doyle has a line in it where Sherlock says something to the effect of "these are very deep waters." What is the quote and from what story does it come?

ChatGPT responded that the story that includes this quote is The Adventure of the Engineer's Thumb. Not remembering this particular story, I asked to have the story summarized. The summary jogged my memory, but I did a quick search to double check the answer's accuracy.

Lo and behold, ChatGPT was incorrect! This quote actually appears in The Adventure of the Speckled Band (a terrific story, by the way). I found the story text online, and sure it enough it includes the aforementioned quote. A search of the text for The Engineer's Thumb does not contain this quote.

It's interesting to note that these stories are the 10th and 11th stories, respectively, to be written by Arthur Conan Doyle. I'm guessing that ChatGPT made an "off by one" mistake here, which is certainly easy to do.

I can imagine a future where search via AI allows us to side-step the SEO noise that Google pumps into the ether, but it looks like there is still a ways to go. At the rate things are progressing, however, this future may not be too far off.

Helene Survival Story

Jan 21, 2025

Here's an amazing survival story from Helene that I stumbled upon on YouTube. It's truly incredible that this guy made it out alive.

Core Keeper

Jan 20, 2025

I don't play as many PC games as I used to, but Core Keeper has drawn me back in as of late. This top-down sandbox adventure game is bursting with stuff to explore and do, and has a style that's reminiscent of Stardew Valley. In fact, Core Keeper is what happens when Terraria and Stardew Valley have a baby.

There is so much to do in this game that it's almost overwhelming. Exploration and combat are the primary activities, but there's plenty more to occupy your time. You can:

  • Build a base
  • Mine for ore
  • Build automated mining contraptions (so cool!)
  • Raise livestock
  • Farm crops
  • Cook food (which boosts your stats)
  • Play music with in-game instruments
  • Catch fish
  • Craft all kinds of tools and items
  • Fight huge bosses
  • Build boats, railways, and go-karts to get around the map quickly

Like Terraria, each world you play in is randomized. One of the joys of the exploration side of the game is stumbling upon what the game calls "scenes," hand-crafted areas that usually have neat loot to find. You'll stumble upon giant doors that only open when you use an instrument to play the notes inscribed on them. Other times it will be an abandoned house, often containing useful furniture or crafting stations within. The remains of giant creatures will often have neat stuff located nearby.

Combat is pretty simple, generally. There are three classes you can play as, with a fourth minor class: melee, ranger, magic, and summoner. The melee and ranger classes are both reasonably well balanced, but the mage and summoner classes need work. I've read that these were added towards the end of development, so hopefully some future balances will be made here (additional content is planned for the game, according to the developers).

If you're looking for a fun time-sink, this is it. Be sure to check it out if you haven't already.

Stables to Workshop

Jan 15, 2025

For my first new-to-me YouTube channel recommendation of 2025, I'm going with Ben Kilner. Specifically, the 100 Year Old Derelict Stables to Dream Workshop playlist, the first installment of which is embedded below.

This series has been so enjoyable! Each episode is not too long, and many of them have incredible timelapses of the effort this guy is putting into rehabilitating an old building. And what an effort! Ben is putting an amazing amount of "elbow grease" into this renovation, and he's come a decent way since the first episode. New episodes continue to get posted, so be sure to give it a follow if you are interested in this kind of thing.

In an effort to try and stay current, I have migrated this website from Bootstrap 4.6 to Bootstrap 5.3. The migration documentation is shockingly long and detailed, and I'm sure there are things that slipped through the cracks here and there. It doesn't help that version 5 expects radically different markup in some cases from its predecessor.

I am also now using a new lightbox plugin for my image gallery posts, but I find that the new plugin leaves a lot to be desired. Given how simple its code is, I'll likely roll my own version in the future to improve upon the look and feel.

If you find issues, be sure to let me know. I no longer bother using a sandbox site to test this stuff out (who needs testing?!?), so things are bound to shift around some over the coming days.

Back in 2020, I put together a very simple virtual environment helper script for Python virtual environments in Windows. One issue this previous incarnation had was the inability to walk up the tree structure, looking for virtual environment folders above the current level. As a result, you always had to be in the root of the project to activate or deactivate the virtual environment.

I've finally spent a little time fixing this, and the improved script is below. The script will now walk up the tree structure, allowing you to activate or deactivate the environment, regardless of your depth in the tree. Just save the contents as a batch file named work.bat, put it in your PATH, and use either work or work off to activate or deactivate the environment, respectively.

@echo off

set "startDir=%cd%"

:: Get the drive letter from the start directory
for %%D in (%startDir%) do set "drive=%%~dD"

:: Traverse upwards from here
set "currentDir=%startDir%"
:loop

:: Stop if we reach the root of the drive
if "%cd%"=="%drive%\" (
    echo Unable to locate venv folder in this tree
    exit /b
)

if exist "%cd%\venv" (
    if "%1" == "off" (
        echo Deactivating virtual environment
        call "%cd%\venv\Scripts\deactivate.bat"
        echo.
    ) else (
        echo Activating virtual environment
        call "%cd%\venv\Scripts\activate.bat"
    )
    cd %startDir%
    exit /b
)

:: Move up one level
cd ..
goto loop

Content Goals for 2025

Dec 25, 2024

I consume a lot of YouTube content; in fact, YouTube is essentially all I watch these days. Lots of the content I watch comes from channels I'm subscribed to (over 100 at the moment), but I always enjoy seeking out new things to watch. One of my goals for 2025 is to find 12 new channels to subscribe to. Once a month, I'll do my best to post what I've found here at the site. The ground rules for this effort will be:

  1. The channel must be a new-to-me channel, so no recommendations for those that I've covered here before (which are plentiful).
  2. Ideally, the channel should be small-ish. I'm sure there are giant channels out there that I'm missing out on, but I always love finding the diamond in the rough.

Many of the channels I subscribe to are naturally things I'm interested in, but I'm on the hunt for new stuff and I'd like to expand my horizons. As such, I'll try to limit my recommendations to things outside of my wheelhouse (though that won't be a hard and fast rule).

If you have any channels you routinely enjoy, please leave a comment. I'd be interested in hearing about them!

Fixing Site Bugs

Dec 24, 2024

As is typical for this time of year, I'm spending some time updating this website. I've fixed two long-standing bugs: the contact form should now work properly, and the comment form for posts should now look much better on mobile devices.

The Git Bash prompt in Windows is shockingly slow. I found this gist that speeds it up considerably. Simply place this in your user's .bash_profile file.

# Very very fast __git_ps1 implementation 
# 100% pure Bash (no forking) function to determine the name of the current git branch
# Modified from: https://gist.github.com/Ragnoroct/c4c3bf37913afb9469d8fc8cffea5b2f
# Which was inspired by https://gist.github.com/wolever/6525437
function __fastgit_ps1 () {
    branch=""

    local headfile head branch
    local dir="$PWD"

    while [ -n "$dir" ]; do
        if [ -e "$dir/.git/HEAD" ]; then
            headfile="$dir/.git/HEAD"
            break
        fi
        dir="${dir%/*}"
    done

    if [ -e "$headfile" ]; then
        read -r head < "$headfile" || return
        case "$head" in
            ref:*) branch="${head##*/}" ;;
            "") branch="" ;;
            *) branch="${head:0:7}" ;;  #Detached head. You can change the format for this too.
        esac
    fi

    if [ ! -z "$branch" ]; then
        branch="($branch)"
    fi

    # Edit to suit your needs. Note the branch will be wrapped in parenthesis if it's set. Completely empty otherwise.
    export PS1="\[\e]0;\W\a\]\n\[\e[32m\]\u@\H \[\e[33m\]\w\[\e[0m\] \[\033[36m\]$branch\[\033[0m\]\n\$ "
}
export PROMPT_COMMAND=__fastgit_ps1

Earlier this week Valve released a 20th (!!) anniversary update for Half Life 2. One of the major features added is developer commentary, which they shipped for Episode 1 and 2, but never for the original game. It's been very interesting to listen to the commentary so far (I'm only about half-way through the game), and I've learned several interesting things that I didn't previously know:

  • In the very first platform puzzle, if you try to throw all of the crates out of the window (breaking the puzzle in the process), a new crate is spawned in while you aren't looking; very clever!
  • Loot crates will typically drop whatever you're most in need of at the moment.
  • Eli winks at the player when he says that Alyx is the only thing Gordon can't handle; I've played this game countless times and I've never noted that detail!
  • If given long enough, seagulls will perch on the dune-buggy and poop on it! You can then clean the buggy off by driving through shallow water.

Also released was a 2-hour documentary on the making of the game, which I'm also about half-way through. It's always fun to peer behind the curtain on stuff like this.

Rebuilding I-40

Oct 1, 2024

The recent devastation in western North Carolina from hurricane Helene is truly mind-boggling. There is no doubt that it will be multiple years before the roads there are back to anything resembling "normal." I'm sure the death toll will also only go up from where it is now, which is heartbreaking. Watching on the news, one can't help but to feel utterly helpless.

One aspect of this ever-changing story that will be fascinating to watch will be how the North Carolina DOT chooses to repair the collapse of I-40:

Portion of I-40 which collapsed

In addition to the curved section shown above, a longer, straighter section also washed out, with the adjacent river coming perilously close to the road's edge. From a logistical perspective, it's going to be very interesting to see how they choose to fix this collapse. Is it better to cut into the neighboring rock and essentially shift the road away from the river's edge? Do you try to backfill the river somehow? I can only imagine the engineering challenges that await this repair.

A terrific YouTube channel to follow for this kind of content is Casey Jones - Professional Engineer. He often digs deep into stories such as this, providing his own insights as a certified civil engineer. The video below has some good footage of the damage the highway received, along with some brief commentary about the challenges ahead.

Here's an interesting video describing how the calories within food are determined.

I recently read, though I don't recall where, someone comparing Amazon to a giant flea market. That statement really struck me as profound, and I've been thinking about it quite a bit. Like Google before it, searches at Amazon have grown worse in recent years, with loads more noise and less signal.

For example, when I search for woodworking t-squares, the results I'm shown are rife with Chinese no-name brands. In fact, I have to browse to the 9th item in the list to see a name brand item (Irwin, in my case). The 39th item is a Woodpeckers branded item, the gold standard that most other companies try to copy. Comically, that item is only 3-inches in length!

Nearly every other search I've performed recently has been similar: drawer slides, children's star lamp, etc. Every search results in junk; and I mean junk! Some of the reviews on these things are comical. I've started using the Fakespot browser plugin to try and help weed through the junk, but it's still a struggle.

As a result, I have been turning elsewhere to find reliable products. Home Depot and Ace Hardware are two of the go-to websites recently for product comparisons (I shop for mostly home improvement stuff these days). I am still guilty of using Amazon for the convenience of quick shipping, but I've also been shopping locally more and more. Local shops just don't have that skeezy feeling to them.

I've been listening to a lot of The Moody Blues recently. They definitely have a sound, but I like it! The following album, On the Threshold of a Dream, is a particularly strong entry, though many of their albums from this period are equally as good, including Days of Future Passed and A Question of Balance.

Give it a listen.

USPS is the Worst

Jul 29, 2024

I have a shipment coming in two parts that I'm excited to get. The first part came via Amazon shipping and arrived mid-day. I looked at the other part and saw this:

Shipped with USPS

Inevitably, this means that the shipment is delayed by at least one day. I know this is a first world problem, but I'd love to have an option to avoid using USPS as a means of shipment. Certainly Amazon can do that?

Adventures in Milling

Jul 16, 2024

Last month I was fortunate enough to purchase a Dewalt 735x thickness planer. My goal with this addition to the shop was two-fold:

  1. Make it possible to mill my own lumber from rough stock
  2. Easily thickness the lumber I have

In all my previous woodworking projects, I've used either S4S (surfaced-four-sides) or S2S (surfaced-two-sides) lumber; that is, all (or most) of the milling work has already been done for you. Buying S4S material is the most expensive way to purchase lumber. The cheapest way to purchase it is in the rough; the boards have been cut by the sawmill, but none of the faces are clean, square, or parallel. It's up to you, the woodworker, to fix that.

As an introductory step into the world of milling, I purchased enough rough Sapele lumber to build two patio side-tables. Each table is a modified version of the California Casual Patio Table that I made over five years ago, which is now all but falling apart.

Since I don't have a jointer, I built myself a jointing sled for the planer. It's an incredibly simple jig: a sheet of MDF with a small cleat glued to one end. Just stabilize the lumber that you want to joint on the sled with shims, then send it through the planer, taking off just a hair at a time. Eventually, the entire surface will be planed and the face will be both flat and parallel to the sled's reference surface (which is also flat). The lumber can then be sent through the planer to get the opposite face parallel (and flat). Combine this with an edge-jointing jig, which I built a while back for my table saw, and I can now convert rough lumber to S4S!

As with most things, there has been a learning curve. I've first learned that milling is typically at least a two-day process. The first step is to mill the lumber to rough thickness (7/8", for example, if the final thickness is to be 3/4"), and then let it rest for a night or two. The next milling process will take it to final thickness, and remove any warping that occurred after the first round. Rushing the process will yield warped lumber, which is a problem I ran into with the first table. Happily, the warpage was minimal, so I was able to recover.

I've also learned that milling creates a ton of sawdust. I'm amazed at how much sawdust results from the thickness planer; bags and bags of it!

All in all, this has been an enjoyable area of woodworking to learn and explore. The results speak for themselves, I think; the lumber I've milled for these side tables has been among the best quality I've worked with so far. It's a joy to construct something and have it come together so neatly. I look forward to using these skills in upcoming projects.

Here's a terrific video from Rick Beato on why music is getting worse. He's a music producer (and has a terrific channel), so if anyone knows the ins and outs, it's him. Check it out.

Arctic Outpost AM 1270

Jun 13, 2024

I found a terrific radio station today on Radio Garden: Arctic Outpost AM 1270, "broadcasting from the top of the world." Based out of Longyearbyen, Norway, the radio station is truly way up North. They play 78's from 1902 to 1958, including this truly hilarious ditty I hadn't heard before:

Be sure to check out this station. It's commercial free and definitely worth a listen!