Woodworking Advent Calendar
Check out my Woodworking Advent Calendar!
Posted Thu, Nov 2, 2023
Debian and Ubuntu Automatic Updates
How I set up automatic updates on laptops.
Posted Thu, Mar 9, 2023
Serving Static Files from Go
How to easily serve static files in a Go app.
Posted Tue, Mar 7, 2023
Write a Love Letter
Write a love letter by being a full stack engineer.
Posted Tue, Feb 21, 2023
Screen Scrape with Headless Chrome and Puppeteer
Screen scrape more effectively with Chrome and Puppeteer.
Posted Mon, Feb 20, 2023
2023 January Goals Review
Early review of my goals and the system to think through how well it’s working.
Posted Sat, Jan 28, 2023
2023 Goals
Goals for the new year.
Posted Mon, Jan 2, 2023
You Fool!
This post is about ethics.
Posted Fri, Dec 23, 2022
More Perl to Go Conversions
As time goes by I have less and less patience for ecosystems that demand my time. Typically this is in the form of breaking changes in either a language or the modules that language uses. This morning I ported a relatively simple tool from Perl to Go to escape this kind of tax.
Posted Sat, Nov 19, 2022
Announcing dh
I needed a tool to manage a relational database, so I built one.
Posted Mon, Jun 20, 2022
Using Tailscale for Authentication
I recently used Tailscale to add an authenticated portion to a public website, hosted via Fly.io.
Posted Thu, Jun 9, 2022
Setting Up Vim with an LSP for Scala
I write Scala a bunch these days at work. The language (or maybe the Spark culture) really wants you to use an IDE. As much as I tried to use IntelliJ I just can’t bring myself to make such a big switch. If you are interested in language servers (which typically provide autocomplete,) Vim, or specifically setting that up for Scala, read on.
Posted Tue, May 31, 2022
Go 1.18
Go 1.18 just came out, so I’m looking over the new features.
Posted Tue, Mar 15, 2022
Reliably Cross Compiling Go using Zig
Do you ever need a C library to cross compile in Go? I got something to work this week that makes me feel better about my cross-compilation setup.
Posted Sun, Mar 13, 2022
Go Generics Example
Go 1.18 will be adding Go’s version of generics pretty soon. I wanted to get a feel for how I might use them. Read on for a concrete example.
Posted Sun, Jan 9, 2022
Learning Rust with a Side Project
I spent some of my time off for the holidays learning Rust.
Posted Tue, Dec 28, 2021
Decisions and Habits
I’m building new habits to meet new goals.
Posted Mon, Dec 20, 2021
Leatherman Draw
I wrote a weird little tool to draw stuff with code. It was fun!
Posted Thu, Feb 25, 2021
Gumbo v2
Here’s a major update of my original gumbo recipe.
Posted Sat, Feb 20, 2021
Stateless Notes
I made my stateless, Raspberry Pi hosted notes service have an in-memory SQLite for more features and better performance.
Posted Sat, Jan 30, 2021
Personal Monorepo
Today I completed my long-standing project to merge all of my open source Go repositories into a single repo.
Posted Sat, Jan 23, 2021
Steambox 2021: even faster
After Saturday’s work I got my steambox starting even faster.
Posted Mon, Jan 18, 2021
steambox 2021 Edition
I made my steambox start up faster and fixed a race condition with Perl.
Posted Sat, Jan 16, 2021
Dropbox Longpoll Bugs
I fixed a subtle bug in my dropbox client’s longpoll implementation.
Posted Sat, Jan 9, 2021
Embedding Lua in Go
I embedded lua in my leatherman so that I could add even weirder features without too much effort. It was awesome.
Posted Thu, Jan 7, 2021
Useful Vim Features
Some friends and I collaborated on this post about some interesting features in vim.
Posted Mon, Oct 26, 2020
Logorrhea
I was part of a convergence of changes that ended up causing us to lose 30% of important logs. The full investigation involved application, log pipeline, and Kubernetes integration. Read how it happened.
Posted Mon, Sep 21, 2020
Mixer Post Mortem
For about 13 minutes on Cinco de Mayo the Mixer had a near total outage. The root cause was a panic due to an out of range access of a slice.
Posted Wed, May 13, 2020
Improve Git Diffs for Structured Data
I made diffs of some structured data more useful.
Posted Fri, May 8, 2020
Go Subtest Tips
I recently learned more detail about subtests in Go.
Posted Tue, May 5, 2020
Adding Autoreload to srv
About a week ago I added automatic reload to my little web server.
Posted Mon, Apr 27, 2020
context Deadlines in Go
I recently learned more about contexts in Go.
Posted Tue, Apr 7, 2020
I Avoid Named Pipes
I recently, finally decided to (almost) never use named pipes anymore.
Posted Tue, Mar 24, 2020
Zine: Software for Managing Notes
I recently completed a major new iteration of my custom notes management software.
Posted Thu, Feb 27, 2020
Testing Perl Clients and Go Servers
At work I recently built what would normally be forced to be an integration test in a unit test. It’s awesome.
Posted Fri, Feb 14, 2020
Calculators, Binary Hybrids, and UNIX History
I wanted to add a calculator to my leatherman but I never ever want to write a parser. The following is what ensued.
Posted Mon, Feb 10, 2020
My Editing Workflow
I recently considered that my day-to-day editing cycle might be of some interest, so here it is.
Posted Mon, Feb 3, 2020
Weird Hobby: Scraped Git Histories
I have discovered a silly new hobby: creating git repos of the data in certain websites.
Posted Tue, Jan 28, 2020
Five Hundredth!
This is my five hundredth post on this blog!
Posted Mon, Jan 6, 2020
Goals for 2020
It’s already a few days into 2020 so I’m gonna keep this brief: Goals for 2020!
Posted Sat, Jan 4, 2020
Writing a Go Linter
I wrote a little linter for Go. Here’s why and how.
Posted Mon, Dec 30, 2019
The Everyday Magic of Simplification
I recently simplified the system I use for RSS.
Posted Sat, Dec 14, 2019
Brute Force Image Recovery
Last week was the ZipRecruiter holiday party. As usual they had a photobooth (two in fact!) Catherine and I took three sets of pictures but I didn’t get an email for one of the three. Read on to find out how I got them.
Posted Mon, Nov 25, 2019
Go's reflect packages vs types package
I’m attempting to migrate some code that uses reflect
to instead use
go/types
and I have some thoughts.
Posted Tue, Oct 22, 2019
Go's Reflect Package is Mostly Read-Only
Today, after playing with the reflect
package I discovered that you can’t use it as
a construction kit.
Posted Thu, Oct 17, 2019
Direct Observation with Go Tooling
Today I investigated a hunch using some nice tooling built into the Go compiler.
Posted Thu, Oct 10, 2019
Performance; git, go, and otherwise
I recently made a change that made some code non-trivially faster. Also I think most of the performance related advice out there is bad.
Posted Fri, Sep 13, 2019
Go Debris (2019)
Go 1.13 is out and the Gophercon 2019 videos have been released; I have thoughts on both.
Posted Mon, Sep 9, 2019
Ordering Green Coffee with Go and jq
I roast my own coffee and order the green beans from sweetmarias. I automated a big chunck of that. Here’s how.
Posted Wed, Sep 4, 2019
Distraction Free Slack
I have gotten to the point where I can almost use Slack with zero distractions…
Posted Mon, Aug 19, 2019