maker://Hans.Anderson

I am a maker. I make websites/apps as a full-stack-senior-web-application-devops-engineer-blah-blah-you-name-it; I make podcasts/audio short stories; I make photographic scenes of miniatures; I make disc golf stats.

I am the creator of the tech-fantasy and fiction-crime podcasts series Dist1nc7ive Stories, and produce other audio short stories.

I'm a freelance full stack web geek, and I blog about it, including my favorite toys of late: automation with Playwright/Puppeteer, PHP Goutte, and I leave myself notes-to-self to remember.

I am a co-founder of StatMando, a disc golf side-project that helped revolutionize stats in disc golf.

I used to run goofiness.com, and currently have Mockumentary.com, HuckfaceDG and a few other, um, interesting side projects.

<Full>Stack</Dev>

PHP framework experience includes Laravel, Yii, Symfony, WordPress, CodeIgniter, and custom PHP projects.
Have an old legacy PHP site that needs to be carefully updated? I have experience working with older codebases, updating both the code, and the systems they run on, carefully, while maintaining the important system. I've worked with Apache, Nginx, Internet Information Server, MySQL, PostgreSQL and MS-SQL.

StatMando

Disc golf stats. In early 2021, a few of us were on twitter, bemoaning the lack of stats in disc golf. We decided to try to help. We met, we planned, we built. The result: StatMando.

Distinctive Stories Podcast

I'm the creator of the tech-fantasy and fiction-crime podcasts series Distinctive Stories.
Visit site

Rufus & Anna are villains in "Computronium"

Blog Posts

February 3, 2025

Git Config Backup

Read

January 25, 2025

ARP in Networking

ARP (Address Resolution Protocol) is a fundamental networking protocol. It translates IP addresses into their corresponding MAC address. Find your network interface: ifconfig...

Read

January 19, 2025

Promises in Three Languages

Three ways to handle concurrent API requests that resolve when all are done, but can run concurrently. In other words, if you have three requests and takes 2 seconds, takes 1 second takes 2...

Read

January 19, 2025

Concurrency vs Parallelism

As always: This is for my own understanding. Please don't assume it is 100% correct. Concurrency is handling multiple tasks during the same time. Parallelism is actually doing tasks at the same...

Read

January 18, 2025

Things to Know About Concurrency

Things to know about Concurrency: Why it's important: Devops involves working with systems that might involve multiple processes, threads, or containers running concurrently. Understanding basic...

Read

January 18, 2025

The `awk` Command

To determine whether a website is using only IPv6 or if it supports both IPv4 and IPv6 (dual stack), you can do: If only the IPv6 ping is successful, the site might not support IPv4. If...

Read

January 17, 2025

Bring a Git Subfolder and History to New Repo

Bring a git subfolder and it's history over to start a new repo: https://docs.github.com/en/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository I did this for a repo and it was...

Read

January 12, 2025

Accessing the Docker Linux Virtual Machine

Docker runs on linux natively, but Docker Desktop works on a Mac by creating a virtual machine, installing Linux, and then running on top of that. So, to do some things, like intercepting network...

Read

January 12, 2025

Wireshark

Here's some notes on Wireshark, especially filtering results. You need to set an environment variable in a terminal, AND open the browser from that terminal: Then, you need to tell Wireshark...

Read

December 29, 2024

Kubernetes ConfigMap Values

Extract a Specific Key from a ConfigMap: You can use jq or yq to parse JSON or YAML output to get specific values. For example, to get the value of a specific key in a...

Read

December 21, 2024

Command to Find a Command's Apt Package

Sometimes I type a command in linux and it's not found. I try to install it and it's not found. Often it will say what package you need to install, but when it doesn't it's usually something...

Read

December 21, 2024

Signal Handling in Three Languages

Signal processing in three scripting languages: Run: Run: Run:

Read