|
Birds of Sanibel Island
|
|
"Why Does Test-Driven Development Work So Well In 'AI'-assisted Programming?"
|
|
A pipeline for getting bird videos from an IP webcam
|
|
What software engineers bring to AI-assisted software development
|
|
Never use Apple gift cards
|
|
"Your job is to deliver code you have proven to work"
|
|
Why tech companies encourage their software engineers to use LLMs
|
|
Introducing two tools for working with Plex media libraries
|
|
Letter of Recommendation: Simon Willison's Weblog
|
|
noclobber breaks JetBrains IDEs’ ability to read your shell environment
|
|
Streamlining my user-level CLAUDE.md
|
|
Linux server migration planning
|
|
Neat Image noise profiles for the Ricoh WG6
|
|
Neat Image noise profiles for the Leica X1
|
|
Beavers at work in West Lake Nature Preserve
|
|
Using systemd to keep an SMB share mounted
|
|
Using systemd to run a Docker container only when an SMB mount is mounted
|
|
Beavers in Dexter, MI
|
|
Automatically sort trail camera images with trailcamai
|
|
pdate.dzdz.cz: A website for pdate
|
|
Not everything in your todo list needs to be a proper GTD Next Action
|
|
pdate: Date/Time Parsing for Programmers, DevOps, and SRE
|
|
AlfredSwitchWindows now supports Ghostty tabs
|
|
#latergram: Wild Birds at the Detroit Zoo, April 2024
|
|
#latergram: Bird Photos from Kensington Metropark, July 2025
|
|
A Tool for Working with Git Worktrees
|
|
Setting Up & Testing Spotlight + Samba + Elasticsearch
|
|
Getting Good Results from Claude Code: Writing Good Prompts
|
|
New Derivative of my Ubiquiti Cloud Key 3.5" HDD Adapter
|
|
LLM + MCP Use Case: GitHub Actions Workflow Updates
|
|
Celebrating 250(+) Public GitHub Repositories
|
|
LLM Q&A Technique: Context Priming
|
|
Ask Claude Code to fix CI
|
|
Give your LLM Coding Tools Their Own Tools
|
|
Teaser for upcoming Claude Code posts
|
|
Getting Good Results from Claude Code
|
|
Navigating and Rewriting Legacy Systems
|
|
An improved nginx_ensite script
|
|
Quick Devops Tool: gha-secrets-setup
|
|
How I share Bird Buddy photos online
|
|
A Lychee photo library tool for titling photos
|
|
Avoid unbounded inboxes; avoid stress
|
|
Recommendation: Microphone Setup for BirdNET-Pi
|
|
feedfilter: an RSS feed postprocessing tool
|
|
I vibe-coded an AI photo organizer for Lychee
|
|
Use Your Type System
|
|
CO2 Monitoring and Alerting with Aranet4 + an4mon
|
|
Announcing the DzSolarized VS Code theme
|
|
Functional Documentation
|
|
Neat Image noise profiles for the Sigma sd Quattro H
|
|
birdbath.tube
|
|
Trying to remind myself that I don't have to do everything today.
|
|
Setting up a dev env for Lychee
|
|
🙄
|
|
A rule of thumb, that I need to keep in mind, is that it will take about the same amount of time to edit photos as I spent shooting them.
|
|
for no particular reason other than I think it's fun,
|
|
flickr-rss
|
|
I've long been worried that Apple will drop support for AppleScript automation in macOS updates, or at least allow it to decay into a horrible broken state.
|
|
A new feature, completed —
|
|
A new feature, continued —
|
|
A new feature appears —
|
|
How to rsync with sudo on both sides
|
|
Updated instructions for installing my Debian package repositories
|
|
Host Inventory for a (not-) Homelab
|
|
Tips on Brazing Copper and Stainless Steel
|
|
Someone please Photoshop a “Phantom of the Opera” mask onto this grackle for me
|
|
RIP: Aircraft Radar Skill for Amazon Alexa
|
|
Some TODOs for the new site
|
|
Great Moments in Modern Apple User Experience Design
|
|
Know Your Birds: Red-Headed Woodpecker
|
|
My eBird Profile
|
|
More Severance Michigan Connections
|
|
A Selection of Complex CSS Selectors
|
|
Sunset over Canyonlands National Park, viewed from BLM's Needles Overlook in Utah.
|
|
Birds in Moab and Arches & Canyonlands National Parks
|
|
Brief Review: Tamron 28-300mm F/3.5-6.3 Di VC PZD
|
|
My (Only) Two Complaints about the Canon 10x42 L IS WP Binoculars
|
|
Automating Ghost Routes & Redirects Deployment
|
|
Dust Caps for Oxygen/Acetylene Hoses
|
|
Solar Water Preheater Goals & Design Considerations
|
|
A migration to Ghost from Jekyll
|
|
Some new DNS-related tools
|
|
Everything I know about the YK-1000H NTP Server
|
|
Cloning Raspberry Pi SD cards
|
|
Faking the fan rotor lock signal in a Tripp Lite SU1000RTXLCD2U UPS
|
|
Letter of Recommendation: Quality Binoculars
|
|
Freeing disk space on GitHub Actions runners
|
|
Improved low-battery shutoff for my DIY Ego-powered 12V supply
|
|
Fixing Ego batteries in a low-voltage "defective" state
|
|
Making a Docker container depend on a disk being mounted
|
|
Moving fake-hwclock to a separate partition on a read-only Raspberry Pi
|
|
Raspberry Pi Use Cases
|
|
Letter of Recommendation: Where to start with Alastair Reynolds
|
|
Keeping a SMB share mounted on macOS (version 2)
|
|
Monitoring for NAS data corruption on ext4 with cshatag
|
|
Photographing an unusual aurora in southeastern Michigan
|
|
Linux: start an mdraid check even though bash's noclobber is set
|
|
Alfred workflows for searching Bear notes and Docker Hub images
|
|
Some recent bird photos
|
|
Pi Reliability: Reduce writes to your SD card
|