Skip to main content


Search with cmd/ctrl + f, use site search, browse by tag, or try a random article.

Manage your photo archive

Take a minute to review all photos from today's date and delete the ones you don't need

Site update May 2024

tl;dr I removed dark mode, `/contact`, likes, analytics, Netlify, and changed random articles

Measuring and cutting

Measuring twice, cut once is good advice for woodworking but maybe not for software engineering

A Few Things #12

A collaborative interactive, Toto on ocarina, a word-based strategy game, and a classic infinite runner

A Few Things #11

A personal apologetic, assessing the world, Scotland's rainforests, and finding new music

A Few Things #10

A pink lake in Senegal, an Indian community that solved drought, and the strange origin of Idaho's name.

Upgrading from Astro v2 to v4

I needed to update dependencies, change a client directive, and then update configuration in Netlify

A Few Things #9

A reflection on silence contemplation, the art of bookmaking, semantic satiation, and soccer logo design

A Few Things #8

Tree mails, disappearing cockroaches, and an entry in the game dev log genre

Why Microsoft Edge?

Edge has all of the features of Chrome with some additional features

A Few Things #7

7 million syllabi, trash bag testing, a skeleton gardener, and jokes that probably aren't that funny.

A Few Things #6

Reflections on digital waste, a great green wall, beautiful illuminations, and a fun trivia game

A Few Things #5

Handwriting research, medieval fighting snails, wholesome comics, and banana price projections

Adding a components page

After a recommendation from, I added a public page to see all of the components that I’ve created for this site

A Few Things #4

An investigation in remote Madagascar, Parkinson's Law, writing letters to your future self, and a live shark tracker.

A Few Things #3

The Japanese art of repair, a movie/TV recommendation service, a relaxing gardening game, and answering the question "Can elephants swim?"

A Few Things #2

Reflections on creation, the NFL's success, a map of lightning strikes, and Chester A. Arthur holding ham.

A Few Things #1

An app to help you travel, dispelling an American myth, reflection on creation, and a game that will make your head spin. review

A great tool that gets out of the way when creating slides

Off to Kindergarten

My first born starts Kindergarten today and boy am I going to miss him

1000 commits

This article marks the 1000th commit to this website's repository

How I'm using AI in July 2023

Some more competitors are entering the ring, but GitHub Copilot remains the only AI-powered product that I use regularly

Timeboxing types

In order to maximize the value of types and your time, consider timeboxing the amount of time that you spend writing any given type

CSS columns are neat

The columns property is CSS divides content among a set number or width of columns

Quality requires iteration

You're not going to write the perfect program on your first attempt; it's going to take multiple iterations to arrive at the best solution

A workable emoji picker on Ubuntu

The default GNOME emoji picker is limited to certain applications, but you can find copyable emojis in the Activities view

Losing steam

This year started strong on writing, but I have found little motivation recently

Reviewing "Go By Example"

Go By Example is a great resource for learning the syntax and patterns of Go, but you might need to supplement it with other resources to learn how to work in the language

Web-browser Accessibility Tools

Chrome, Edge, Firefox, and Safari all have built-in accessibility tools to help you create accessible experiences for all

Linux Update in 2023

After experimenting with Linux last year, I am happily using Ubuntu on a Lenovo Yoga as my personal computer

How I'm using AI in May 2023

GitHub Copilot is the top product this month, but Bard, Bing, ChatGPT, and Warp all have their uses

Learning Go

Learning the Go programming language for professionanl development has been an enjoyable experience

Set up Decap CMS

Decap CMS is the official successor to Netlify CMS and works well with the old tooling.

Listen for class change in JavaScript

There isn’t an event for class list changes, but you can write a function that listens for class changes on an element with the MutationObserver API

Reviewing my Netlify Analytics

Thanks to Netlify Analytics I know to focus on writing how-to articles, but it has less data than I hoped

CSS :empty pseudo class

Empty elements in a flex or grid container can result in double gaps, but CSS has an pseudo class to select and remove those elements

Farewell Create React App

The React team is looking to transition Create React App from a project scaffold to a launcher that includes options other than client-side rendering

Starting an RSS Club

I can publish an article exclusively to the RSS feed with a special flag in the frontmatter

On closings

Closings are lovely in letters but unnecessary online. I'm going to try to omit closings from my articles.

Learning about Smart Brevity for writing

Axios co-founder Jim VandeHei advocates for a writing style that is clear and concise. I'm interested in learning whether I can provide more value through direct and informative writing.

Burrito emoji

Burrito means thank you. Thank you means burrito. Enjoy the burrito.

New command palette

I added a new new command/control K command palette to my site. You can use the keyboard shortcut or activate it by clicking the magnifying glass in the header.

Adding images to articles (again)

I went through the process of adding images back to my articles with a helpful script to automate image processing for me.

Portable custom search engines

Custom search engines (sometimes called site search) are a great browser feature, but they aren't easily ported from one browser to the next. I created a portable web app to handle your custom search engines from any browser.

Thoughts on Steve Job on consulting

Steve Jobs had some opinions on consulting, and it sparked a few thoughts of my own. What makes a valuable consultant? Experience.

Are command bars the future?

Command bars are a great way to access functionality through a single user interface, but how much potential does this pattern have to change the way we interact with products?

Node.js is great for scripting

Node.js and JavaScript are a great option for scripting for the language features and the large ecosystem. Oh, and it's pretty fast too!

Giving Linux another try

It's been about 10 years since I last tried using Linux, so I think it's time to explore what it has to offer in 2022.

Jest tips & tricks

A growing list of little things that make working with Jest a little better

Starring content

A write-up on the new star feature on

When to use React's memo HOC

The memo higher-order component can prevent your component for re-rendering unnecessarily, but you should use caution before using it

Music to code to

A growing list of artists that I like to listen to while programming.

Make a web component

How to make a custom web component with only a few lines of code

My best Slack emojis

A curated list of the best reaction emojis that I have created for Slack

React Native Glossary

A growing list of terms you need to recognize when working in React Native

What is Hermes in React Native?

Hermes is a JavaScript engine that is designed to run on mobile devices. It helps power React Native on Android – and now iOS – devices.

Handy git commands

A curated collection of git commands that help me do my job better

COVID-19 journal

Recording my experience contracting COVID-19 in 2020

Let's stop skinning cats

Proposing an alternative, more constructive idiom to "there's more than one way to skin a cat"

TypeScript without TypeScript

TypeScript provides valuable features but complicate the development process. What are some alternatives that provide the features without the headache?

Nodemon for Deno

Denon is a utility for Deno that provides source watching and process restarting just like Nodemon

Six video update

Lessons learned from publishing six videos on YouTube

Store readable data

When forced between storing data for humans or computers, choose the former.

Over my head

A list of articles, topics, and resources that are currently over my head

Laws I Love

This is a WIP that I probably will never finish.

Free to grow

Why tests (should) free you to grow with confidence

2019 into 2020

Reflecting on last year while looking forward the next

2018 into 2019

Reflecting on last year while looking forward to next

Why a blog?

An effort to preserve my content on the ever-changing web

How to create a render prop component

Render props are a popular technique in modern React, but they can be tricky. Here is a brief explanation and guide to creating your own.