maker://Hans.Anderson

I am a maker.

I make websites as a full-stack senior web application developer; 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

December 7, 2024

Docker RUN v CMD v ENTRYPOINT

RUN - (buildtime) during image build, lines in a bash script to install everything for the image. Most Dockerfiles will have many of these. Each one creates a docker layer. It's a good idea to...

Read

December 7, 2024

Docker RUN v ADD v COPY

I was wondering why we needed specific commands like COPY, instead of just RUN cp file1 file2. Research, and a colleague, says there are two reasons: Basically,...

Read

December 7, 2024

Docker Image Layers

Each instruction in a Dockerfile (like RUN, COPY, or ADD) creates a new layer. These layers are stacked on top of each other to form a complete...

Read

November 23, 2024

Install a Kubernetes Ingress

This is for my own understanding. It might be wrong but reflects my current understanding. (using kind) This setup maps ports 80 and 443 from localhost to the ingress. It's like...

Read


November 23, 2024

View Your Current a Kubernetes `kubectl` Cluster Context on the CLI

When I first started using git many years ago, you would be working pretty blind on the command line (and I don't know of any GUI tools at the beginning). So, to make sure you didn't...

Read

November 23, 2024

Kubernetes Helm Releases

This is for my own understanding. Please don't assume it is 100% correct. When releasing with helm, the release name typically stays the same when you then upgrade a Helm chart. The release name...

Read

November 23, 2024

My `.bashrc` backup

Just a backup for my own sake.

Read

November 23, 2024

Difference Between Kubernetes yaml and Helm Chart

This is for my own understanding. Please don't assume it is 100% correct. A helm chart is an abstraction that allows you to group multiple k8s configuration files into one package and deploy...

Read

November 23, 2024

Add a Kubernetes Cluster Context

This is for my own understanding. Please don't assume it is 100% correct. Each cluster provider will have some sort of kubeconfig command so you can add a context locally, for whatever...

Read

November 23, 2024

VSCode keybindings.json file

My keybindings.json file, mostly for backup purposes: Note: on a Mac, these are in ~/Library/Application Support/Code/User/keybindings.json

Read

November 14, 2024

Kubernetes `Rollout`

In k8s, you don't "deploy", you "rollout". But, you don't "rollout" either. You either apply a deployment (or do it through helm, preferably), or kubectl create deployment <name>....

Read