Daniel Michaels | Developer | Entrepreneur | Veteran
Disable Firefox AI summary
Working across timezones
Uses
Ghostty quick-terminal makes Mac terminals useful again
Claude Code findings
NATS, ADS-B and my blog
NATS ADS-B
Ollama on the plane
NATS and Fly Gateway proxy
Go vendor for debugging dependencies
Github UI needs vimium extension to be useful
Went to my local SecTalks today
Go: errors.As versus type assertions
NATS Micro example
Projects
DBeaver wordwrap and autoformat by default
iterm2 dropdown tips
OpenFaaS golang-middleware go.work fix
Homeassistant MQTT (and NATS)
Coolify basic auth
My Thinkpad is dead, back on the (old) macbook
Dagger CI is best CI
xclip helper
Taskfile dynamic command variables
Mermaid.js for Hugo blogs
PocketBase used in Beszel server monitoring
PocketBase learned me a browser caching
Using Github Actions to publish my zettelkasten notes
Migrating from CapRover to Coolify
PocketBase and Litestream - very unreliable
pycharm-goland broke my GPG verified commits
structured logging; convincing a team to use it
DNS Enumeration summary
Deploy to Netlify using Github Actions
git log to PR message
docker compose up --watch
Slack Bolt Python oauth install fix
NF20MESH bridge mode
Goa websocket with subprotocols (auth)
Hire me
How to invalidate tanstack query key in same component
How I write Golang CLI tools today (using Kong)
RabbitMQ missed heartbeat BlockingConsumer
Go's peterbourgon ff CLI package snippet
minio for local s3 testing
golang ssh client snippet
goa.design custom zerolog logger with HTTP Info, Warn and Error codes
Client-go; kubernetes deployment,service and ingress
Golang: Time.In panic missing Location
Caddy and CORS
nextdns rewrites
Home server notes
Goa openapi embedded openapi documentation
GH Actions versus GitlabCI
Low effort issues and tickets, a cultural problem
MITM proxying for request inspection
Golang: title casing first character only
AsyncClient: python quick example
HTMX and Echo; rendering HTML
qemu kvm: operation not permitted fix
GoLand and templ with autocomplete
Design First API Development with Goa
Daniel Michaels
Why I love gjson
Linux captive portal - ubuntu
New year, new challenges
Laravel DX is incredible
goa (goland) API design is better than oapi-codegen
Looping over embedded structs in html template
air.toml interrupts and kill_delay
Users don't read the manual
Forking and contributing to a Go project
Code AI teaches with examples
kagi.com is superior to google
Go's Functional Options pattern is great
Sourcegraph is awesome
http status code mistakes: 303 versus 307
Flush linux DNS cache
oapi-codegen: chi router groups and middleware
VHS: your CLI home video recorder
charmbracelet gum is awesome
Go generic: non-ptr to ptr
Remote and voltage; a fix
Custom zerolog logger
Instant Motivation
zalando API guidelines
golang map references
ngroks newer cousin
Bad Request v Unprocessible Entity
sqlite JSON and Go
snips.sh and zet
oapi-codegen with Gin and Echo
API project design
Docker layers and ARG
Quick math temp conversions
Docker catalog and digest using crane
Running a business with OpenFaaS, Stripe and Sendgrid
Helm upgrade dynamically with Go
Dynamically generate helm commands in CI
Go: simple background task
zerolog: reference article
garbage collecting nix
kubernetes UnexpectedAdmissionError
Qantas Wifi and Docker
A viable openapi documentation platform
Erik Prince: The Rise and Fall of Blackwater
Mongorestore notes
Taskfile is my new Makefile
reproducible random strings in python
Makefile check args are passed in
debug failed pod
k3s hostmount
Go-colly meta tags
Go oapi-codegen chi subrouters
docker run helper
Python's distutil strtobool replacement
hstr: bash history fuzzy finder
pfSense on Vultr (and a rant)
ArgoCD: refresh v sync
fc is a hidden linux gem
Mudmap updates Jan
December 2022 Retrospective
Kong is an amazing CLI for Go apps
Why twitter beats mastodon
k3s: tuning local development
Go:embed reading individual files
Python rich progress bar and httpx
Reminiscing
Golang: JSON API returning different responses
Automatic Pet Door
Hobby as a job has its downsides
RF based detection: terms and definitions
My site has RSS
November 2022 Retrospective
Golang: find uniques
Golang: case statements with an OR clause
Mudmap: installer fixes
Slack apps
inlets troubleshooting
Golang *pq.Error handler for postgres
Typescript: basics
October 2022 Retrospective
Nomad Homelab
Workout finishers
Format JSON on The CLI Easily
Nomad: basics
Andor: finally a great disney spin off
kubernetes: connection to the server localhost:8080 error
goland: highlight error without mouse hover
create cli reminder script
go parsing seconds into time.Duration
I need to track contract time
Contract time countdown and hours remaining
pop-os shell over i3
SQLite select between dates
Hugo sort json
Sept 2022 Retrospective
September Retro
Job tasks I do these days
Ballbag quote of the day
WGD Fri 2022-09-23
docker buildkit breaks 'docker build -o'
programmer quote of the day
self-hosted gitlab-runner queue slow
kubernetes ingress and metallb
get private ssl cert
microservice learning task
TIL: bash flags
k3s nginx ingress over traefik
kubernetes tips
Getting into the back country
k3s custom resolv.conf
thisisunsafe Chrome ssl bypass
Razors worth remembering
WGD Fri 2022-07-29
python Protocols are Go interfaces
wails as a standalone app
WGD Fri 2022-07-22
June 2022 Retrospective
WGD Mon 2022-07-01
Ansible check exists with register
Kubernetes local development musings: work edition
Performance review notes Q1 2022
WGD Fri 2022-06-17
Mudmap org and new user registration
Go database and sql tips
Go template iterators
WGD Fri 2022-06-10
Breadcrumbs for Go templates
fly.io CNAME setup
May 2022 Retrospective
WGD Fri 2022-06-03
Go features repo for future reference
WGD Sat 2022-05-28
Ansible localhost setup
zerolog Objects
WGD 2022-05-20
Voyager-1 an engineering feat
Go-resty: A Simple HTTP Client
People don't listen and I don't have time for them
WGD Fri 2022-05-13
Developer Experience is Everything
Old skills, new skills
Mudmap Org Register Proposed Flow
Twitch streams I follow
Cheatsheet: psql and pg_dump
Mudmap sub-account overview
WGD Fri 2022-05-06
Mudmap Org Permissions
April 2022 Retrospective
Microservice contracts can be coupled
Go test -race requires CGO_ENABLED=1
pfSense-api v1.4.0
WGD Fri 2022-04-29
Golang URL Params
Initial Zettelkasten
Vim Filters
ANZAC Day COVID Bullshit
How to check Go module versions
Github Vigilant Mode Setup
March 2022 Retrospective
Citrix Workspaces SSL Error on Linux Fix
Alpine.js and Tailwind HTML setup
TIL: Interview Questions Worth Thinking About
Feb 2022 Retrospective
Jan 2022 Retrospective
December 2021 Retrospective
November 2021 Retrospective
October 2021 Retrospective
September 2021 Retrospective
August 2021 Retrospective
July 2021 Retrospective
June 2021 Retrospective
May 2021 Retrospective
April 2021 Retrospective
March 2021 Retrospective
Feb 2021 Retrospective
Jan 2021 Retrospective
2020 In Review ✨
From requirements.txt to poetry's pyproject.toml
The Slight Edge, A Summary
Getting Fedora 32 and Docker to Play Nice
2020 So Far, A Brag Doc
HTTPX is the new Requests with Async
Flask's jsonify in 2020
Starting Your Side Hustle
Web Scraping Javascript with Python
Wagtail embeded YouTube videos
Ecosia
learn docker in one month
Defending your apps
Dropbear and AWS
Curl you an email for great good
HTTP Methods Primer
HTTP Security Basics
DNS the easy parts
User Agents 101
LessPass: A Primer
On teaching
Python's bytes and strings
Sqlite3: A Primer
Linux Environment Variables & PATH
Python Object References
Public Key Crypto: The Basics
Base64 ELI5
Flask, forms and http requests
Uploading to PyPI
Mentoring at CoderDojo
TIL How Network Time Protocol Works
Scapy Snippets
Linux file permissions
SSH in a nutshell
Rsync cheatsheet