Software Development

Easy Privacy-Friendly Self-Hosted Website Analytics with GoatCounter

A quick overview of setting up GoatCounter website analytics with Postgresql, NGINX, and LetsEncrypt on Debian 11 (Bullseye).

Hide Powered by Commento

A simple trick to hide the “Powered by Commento” branding.

Asciidoc: A Superior Alternative to Markdown?

Recently I’ve been trying out Asciidoc as my go-to markup language for text docs.

Neovim and rust.vim Plugin

rust.vim plugin is included with Neovim 0.6.1, but it is buggy. Manually installing rust.vim fixed the bug I was noticing.

A week with Neovim … Meh

I tried the switch to Neovim for a week and was underwhelmed by the differences between it and Vim 8.1, but I love what a little competition has done.

vimrc from Scratch: Vim vs Neovim Defaults

And now for something a little different…

vimrc from Scratch: My Defaults

My “sane” vimrc default settings.

vimrc from Scratch: Debian Defaults

Using the default Vim configs in Debian as a starting point for a clean-slate custom vimrc.

Serving Default index.html Files with AWS S3 and CloudFront

AWS S3 combined with CloudFront is a great way to serve a static website, but I found a gotcha that was almost a deal killer for me.

gRPC Authentication with Keycloak in Go

A credentials.PerRPCCredentials implementation for authenticating with a Keycloak server to get an access token and submitting it with every RPC call.

Hosting a Static Website on Google Cloud Storage

There are a lot of ways to build a simple website, but for the somewhat technically inclined (i.e., you know what CLI and git mean), a static site generator is a compelling option.