profile picture

Daniel Michaels 🇦🇺

I build things and drink coffee.

© Daniel Michaels 2018-2025
  • Home
  • Blog
  • Zet
  • Projects
  • About
    2025
    • DBeaver wordwrap and autoformat by default
      May 8
    • iterm2 dropdown tips
      May 5
    • OpenFaaS golang-middleware go.work fix
      Apr 21
    • Homeassistant MQTT (and NATS)
      Apr 17
    • Coolify basic auth
      Apr 13
    • My Thinkpad is dead, back on the (old) macbook
      Apr 7
    • Dagger CI is best CI
      Mar 23
    • xclip helper
      Mar 3
    • Taskfile dynamic command variables
      Jan 29
    • PocketBase used in Beszel server monitoring
      Jan 17
    • Mermaid.js for Hugo blogs
      Jan 17
    • PocketBase learned me a browser caching
      Jan 15
    • Migrating from CapRover to Coolify
      Jan 3
    • PocketBase and Litestream - very unreliable
      Jan 1
    2024
    • pycharm-goland broke my GPG verified commits
      Dec 16
    • structured logging; convincing a team to use it
      Dec 10
    • DNS Enumeration summary
      Nov 20
    • Deploy to Netlify using Github Actions
      Oct 22
    • git log to PR message
      Oct 20
    • docker compose up --watch
      Sep 27
    • Slack Bolt Python oauth install fix
      Sep 26
    • NF20MESH bridge mode
      Sep 23
    • Goa websocket with subprotocols (auth)
      Sep 7
    • How to invalidate tanstack query key in same component
      Sep 3
    • How I write Golang CLI tools today (using Kong)
      Aug 1
    • RabbitMQ missed heartbeat BlockingConsumer
      Jul 25
    • Go's peterbourgon ff CLI package snippet
      Jul 11
    • minio for local s3 testing
      Jun 27
    • golang ssh client snippet
      Apr 27
    • goa.design custom zerolog logger with HTTP Info, Warn and Error codes
      Apr 21
    • Client-go; kubernetes deployment,service and ingress
      Apr 16
    • Golang: Time.In panic missing Location
      Apr 8
    • nextdns rewrites
      Mar 30
    • Caddy and CORS
      Mar 30
    • Home server notes
      Mar 29
    • Goa openapi embedded openapi documentation
      Mar 26
    • GH Actions versus GitlabCI
      Mar 24
    • Low effort issues and tickets, a cultural problem
      Mar 18
    • MITM proxying for request inspection
      Mar 4
    • Golang: title casing first character only
      Feb 17
    • AsyncClient: python quick example
      Jan 26
    • qemu kvm: operation not permitted fix
      Jan 18
    • HTMX and Echo; rendering HTML
      Jan 18
    • GoLand and templ with autocomplete
      Jan 16
    • Why I love gjson
      Jan 4
    2023
    • Linux captive portal - ubuntu
      Dec 31
    • New year, new challenges
      Dec 26
    • Laravel DX is incredible
      Dec 17
    • goa (goland) API design is better than oapi-codegen
      Dec 4
    • Looping over embedded structs in html template
      Nov 28
    • air.toml interrupts and kill_delay
      Nov 27
    • Users don't read the manual
      Nov 9
    • Forking and contributing to a Go project
      Nov 6
    • Code AI teaches with examples
      Oct 29
    • kagi.com is superior to google
      Oct 14
    • Sourcegraph is awesome
      Oct 2
    • Go's Functional Options pattern is great
      Oct 2
    • http status code mistakes: 303 versus 307
      Sep 19
    • Flush linux DNS cache
      Sep 13
    • oapi-codegen: chi router groups and middleware
      Aug 8
    • VHS: your CLI home video recorder
      Aug 5
    • Go generic: non-ptr to ptr
      Aug 3
    • charmbracelet gum is awesome
      Aug 3
    • Remote and voltage; a fix
      Jul 31
    • Custom zerolog logger
      Jul 30
    • Instant Motivation
      Jul 29
    • zalando API guidelines
      Jul 21
    • golang map references
      Jun 27
    • ngroks newer cousin
      Jun 23
    • Bad Request v Unprocessible Entity
      Jun 1
    • sqlite JSON and Go
      May 28
    • snips.sh and zet
      May 26
    • oapi-codegen with Gin and Echo
      May 25
    • Quick math temp conversions
      May 19
    • Docker layers and ARG
      May 19
    • API project design
      May 19
    • Docker catalog and digest using crane
      May 17
    • Helm upgrade dynamically with Go
      May 7
    • Dynamically generate helm commands in CI
      May 5
    • Go: simple background task
      Apr 26
    • zerolog: reference article
      Apr 22
    • garbage collecting nix
      Apr 16
    • kubernetes UnexpectedAdmissionError
      Apr 5
    • Qantas Wifi and Docker
      Apr 1
    • A viable openapi documentation platform
      Mar 15
    • Erik Prince: The Rise and Fall of Blackwater
      Feb 27
    • Mongorestore notes
      Feb 20
    • Taskfile is my new Makefile
      Feb 17
    • reproducible random strings in python
      Feb 16
    • Makefile check args are passed in
      Feb 12
    • debug failed pod
      Feb 8
    • k3s hostmount
      Feb 7
    • Go-colly meta tags
      Jan 31
    • Go oapi-codegen chi subrouters
      Jan 25
    • docker run helper
      Jan 24
    • Python's distutil strtobool replacement
      Jan 16
    • pfSense on Vultr (and a rant)
      Jan 14
    • hstr: bash history fuzzy finder
      Jan 14
    • ArgoCD: refresh v sync
      Jan 11
    • Mudmap updates Jan
      Jan 8
    • fc is a hidden linux gem
      Jan 8
    • Kong is an amazing CLI for Go apps
      Jan 7
    2022
    • Why twitter beats mastodon
      Dec 21
    • k3s: tuning local development
      Dec 19
    • Go:embed reading individual files
      Dec 18
    • Python rich progress bar and httpx
      Dec 15
    • Reminiscing
      Dec 13
    • Golang: JSON API returning different responses
      Dec 11
    • RF based detection: terms and definitions
      Dec 10
    • Hobby as a job has its downsides
      Dec 10
    • Automatic Pet Door
      Dec 10
    • My site has RSS
      Dec 6
    • Golang: find uniques
      Nov 29
    • Golang: case statements with an OR clause
      Nov 26
    • Slack apps
      Nov 25
    • Mudmap: installer fixes
      Nov 25
    • inlets troubleshooting
      Nov 14
    • Golang *pq.Error handler for postgres
      Nov 12
    • Typescript: basics
      Nov 11
    • Workout finishers
      Nov 3
    • Nomad Homelab
      Nov 3
    • Format JSON on The CLI Easily
      Nov 1
    • Nomad: basics
      Oct 25
    • Andor: finally a great disney spin off
      Oct 22
    • kubernetes: connection to the server localhost:8080 error
      Oct 20
    • goland: highlight error without mouse hover
      Oct 17
    • I need to track contract time
      Oct 16
    • go parsing seconds into time.Duration
      Oct 16
    • create cli reminder script
      Oct 16
    • SQLite select between dates
      Oct 11
    • pop-os shell over i3
      Oct 11
    • Contract time countdown and hours remaining
      Oct 11
    • Hugo sort json
      Oct 9
    • September Retro
      Oct 7
    • Job tasks I do these days
      Sep 26
    • Ballbag quote of the day
      Sep 21
    • WGD Fri 2022-09-23
      Sep 19
    • docker buildkit breaks 'docker build -o'
      Sep 13
    • self-hosted gitlab-runner queue slow
      Sep 4
    • programmer quote of the day
      Sep 4
    • kubernetes ingress and metallb
      Sep 1
    • get private ssl cert
      Aug 29
    • TIL: bash flags
      Aug 26
    • microservice learning task
      Aug 26
    • k3s nginx ingress over traefik
      Aug 23
    • kubernetes tips
      Aug 22
    • Getting into the back country
      Aug 16
    • thisisunsafe Chrome ssl bypass
      Aug 3
    • k3s custom resolv.conf
      Aug 3
    • WGD Fri 2022-07-29
      Jul 31
    • Razors worth remembering
      Jul 31
    • WGD Fri 2022-07-22
      Jul 22
    • wails as a standalone app
      Jul 22
    • python Protocols are Go interfaces
      Jul 22
    • WGD Mon 2022-07-01
      Jul 3
    • Kubernetes local development musings: work edition
      Jun 20
    • Ansible check exists with register
      Jun 20
    • WGD Fri 2022-06-17
      Jun 18
    • Performance review notes Q1 2022
      Jun 18
    • Mudmap org and new user registration
      Jun 16
    • Go database and sql tips
      Jun 14
    • Go template iterators
      Jun 10
    • WGD Fri 2022-06-10
      Jun 8
    • fly.io CNAME setup
      Jun 7
    • Breadcrumbs for Go templates
      Jun 7
    • WGD Fri 2022-06-03
      Jun 3
    • Go features repo for future reference
      May 30
    • WGD Sat 2022-05-28
      May 28
    • zerolog Objects
      May 25
    • Ansible localhost setup
      May 25
    • WGD 2022-05-20
      May 20
    • Voyager-1 an engineering feat
      May 19
    • Go-resty: A Simple HTTP Client
      May 18
    • People don't listen and I don't have time for them
      May 14
    • WGD Fri 2022-05-13
      May 13
    • Old skills, new skills
      May 11
    • Developer Experience is Everything
      May 11
    • Twitch streams I follow
      May 9
    • Mudmap Org Register Proposed Flow
      May 9
    • Mudmap sub-account overview
      May 7
    • Cheatsheet: psql and pg_dump
      May 7
    • WGD Fri 2022-05-06
      May 6
    • Mudmap Org Permissions
      May 5
    • Microservice contracts can be coupled
      May 2
    • Go test -race requires CGO_ENABLED=1
      May 1
    • pfSense-api v1.4.0
      Apr 30
    • WGD Fri 2022-04-29
      Apr 29
    • Golang URL Params
      Apr 28
    • Vim Filters
      Apr 26
    • Initial Zettelkasten
      Apr 26
    • ANZAC Day COVID Bullshit
      Apr 25
    • How to check Go module versions
      Apr 24