Posts are listed in reverse chronological order.
You may also browse blog posts by series or tags.
- 25 Sep 2024
Cloning Raspberry Pi SD cards
574 words • raspberry-pi linux - 11 Sep 2024
Faking the fan rotor lock signal in a Tripp Lite SU1000RTXLCD2U UPS
931 words • electronics project-logs - 10 Sep 2024
Letter of Recommendation: Quality Binoculars
922 words • birding binoculars recommendations - 04 Sep 2024
Freeing disk space on GitHub Actions runners
257 words • github - 03 Sep 2024
Improved low-battery shutoff for my DIY Ego-powered 12V supply
506 words • electronics ego-power series:project-logs - 03 Sep 2024
Fixing Ego batteries in a low-voltage "defective" state
610 words • ego-power electronics - 03 Sep 2024
Making a Docker container depend on a disk being properly mounted
295 words • docker linux - 26 Jun 2024
Moving fake-hwclock to a separate partition on a read-only Raspberry Pi
1224 words • series:pi-reliability raspberry-pi linux - 11 Jun 2024
Raspberry Pi Use Cases
650 words • raspberry-pi - 17 May 2024
Letter of Recommendation: Where to start with Alastair Reynolds
111 words • recommendations books sci-fi - 16 May 2024
Keeping a SMB share mounted on macOS (version 2)
274 words • macos samba launchd - 15 May 2024
Monitoring for NAS data corruption on ext4 with cshatag
657 words • linux - 13 May 2024
Photographing an unusual aurora in southeastern Michigan
445 words • photography - 08 May 2024
Linux: start an mdraid check even though bash's noclobber is set
108 words • linux bash - 01 May 2024
Alfred workflows for searching Bear notes and Docker Hub images
235 words • macos alfred - 01 Apr 2024
Some recent bird photos
42 words • photography birding - 01 Apr 2024
Pi Reliability: Reduce writes to your SD card
1408 words • series:pi-reliability raspberry-pi linux - 01 Apr 2024
The 12v portable power supply Ego needs to make
561 words • electronics ego-power series:project-logs - 29 Mar 2024
Running a Raspberry Pi with a read-only root filesystem
2716 words • series:pi-reliability raspberry-pi linux - 27 Mar 2024
Setting net.netfilter.nf_conntrack_max on Ubuntu 22.04
217 words • linux - 26 Mar 2024
Pi Reliability over WiFi: 'Temporary failure in name resolution'
386 words • dns series:pi-reliability raspberry-pi linux - 11 Mar 2024
Keeping a SMB share mounted on macOS (and alerting when it does down)
425 words • macos samba launchd - 22 Feb 2024
More Koyaanisqatsi desktop wallpaper (sunrise clouds this time)
83 words • Koyaanisqatsi wallpaper - 20 Feb 2024
Socket organizers, end caps, and 3D-printed friction fits
1307 words • 3d-printing - 16 Feb 2024
Making 3D-printed end caps for sharp aluminum extrusions
296 words • 3d-printing series:project-logs - 16 Feb 2024
Blocking disposable email domains in Mastodon
61 words • mastodon spam - 15 Feb 2024
Reliable WiFi for the Bambu X1C 3D printer
970 words • 3d-printing wifi linux raspberry-pi series:project-logs - 13 Feb 2024
Desert stills from Koyaanisqatsi as desktop wallpaper
182 words • Koyaanisqatsi wallpaper - 12 Feb 2024
Automated generator load-shedding for the house
405 words • series:project-logs 3d-printing electronics - 12 Feb 2024
Fixing bad design with a label maker
206 words • design - 08 Feb 2024
OpenList is no longer available in the Chrome Web Store
328 words • google google-chrome - 06 Feb 2024
Recycling a pallet into an Adirondack-ish-style footrest
219 words • series:project-logs - 06 Feb 2024
Setting up a secondary Pi-Hole on my home network
1121 words • linux series:project-logs pihole - 02 Feb 2024
Setting up KVM virtual machines using a bridge network on an Ubuntu host
1318 words • linux docker networking - 16 Jan 2024
How to move Docker's data directory from /var/lib
226 words • linux docker - 29 Dec 2023
Considerations for a long-running Raspberry Pi
397 words • series:pi-reliability raspberry-pi - 29 Dec 2023
Stop using the Raspberry Pi's SD card for swap
766 words • series:pi-reliability raspberry-pi linux - 29 Dec 2023
Remote logging for easier Raspberry Pi debugging
634 words • series:pi-reliability raspberry-pi linux - 29 Dec 2023
Raspberry Pi SD cards: fsck them often
277 words • series:pi-reliability raspberry-pi linux - 29 Dec 2023
Mitigating hardware/firmware/driver instability on the Raspberry Pi
2824 words • series:pi-reliability raspberry-pi linux - 29 Dec 2023
Maintaining a solid WiFi connection on Raspberry Pi
813 words • series:pi-reliability raspberry-pi linux wifi - 29 Dec 2023
Keep your software up and running on the Raspberry Pi
1709 words • series:pi-reliability raspberry-pi linux - 29 Dec 2023
Disable or remove unneeded services and software to help keep your Raspberry Pi online
716 words • series:pi-reliability raspberry-pi linux - 29 Dec 2023
Consider the risks before making any dramatic changes to your Raspberry Pi setup
615 words • series:pi-reliability raspberry-pi - 29 Dec 2023
Choosing the right SD card for your Pi
595 words • series:pi-reliability raspberry-pi - 08 Nov 2023
Fixing excessive Pi-hole lighttpd access log size when Netdata is installed
469 words • pihole netdata series:pi-reliability raspberry-pi linux - 24 Oct 2023
A complete table of Nikon 1 system battery compatibility
181 words • photography - 06 Apr 2023
From Pinboard to Raindrop
1385 words • bookmarks - 28 Jan 2023
Photo sequence of Bald Eagles hunting, from Nov. 2022
423 words • photography birding - 18 Mar 2022
Thinking about cardboard
2634 words • 3d-printing cardboard recycling - 14 Mar 2022
Hacking slightly better sum types without Go generics
2650 words • golang programming types - 16 Dec 2021
3D Printing Recommendation: Plasti-Dip Spray Rubberized Coating
323 words • 3d-printing recommendations - 14 Dec 2021
Reconsidering Netdata
1879 words • linux raspberry-pi - 13 Dec 2021
TDS220 Oscilloscope Refurbishment: Rotary Encoders & Backlight
655 words • electronics series:project-logs - 07 Dec 2021
Building the atomic clock I’ve always wanted
2696 words • esp8266 arduino platformio 3d-printing series:project-logs - 07 Dec 2021
3D Printing Project: Tiny Trays for Screws, etc.
176 words • 3d-printing series:project-logs - 16 Nov 2021
Embracing a ruthless approach to email spam
866 words • security-and-privacy - 11 Nov 2021
macOS Scripting: How to tell if the Terminal app has Full Disk Access
248 words • macos programming - 10 Nov 2021
Patron-only Fatal Error episodes are becoming public
142 words • podcast - 09 Nov 2021
Reducing SD Card Wear on a Raspberry Pi or Armbian Device
5030 words • raspberry-pi linux series:pi-reliability - 09 Nov 2021
PiKVM Build
2054 words • raspberry-pi 3d-printing series:project-logs - 04 Nov 2021
Expanding the Ubiquiti Cloud Key Gen 2+ with a 3.5” Hard Drive
2212 words • 3d-printing series:project-logs - 03 Nov 2021
Thermal Camera Photos of Wemos D1 Mini ESP8266 Board
236 words • esp8266 - 29 Oct 2021
HTTPS Requests with a Small Set of Root Certificates on ESP8266 + Arduino
678 words • arduino esp8266 programming security-and-privacy series:esp8266-getting-started - 28 Oct 2021
HTTPS Requests with a Root Certificate Store on ESP8266 + Arduino
3570 words • arduino esp8266 programming security-and-privacy series:esp8266-getting-started - 15 Oct 2021
Shipping Data to InfluxDB using Arduino + ESP8266
240 words • arduino esp8266 influxdb series:esp8266-getting-started - 15 Oct 2021
Initial Impressions of ESP8266 + Arduino
438 words • arduino esp8266 platformio series:esp8266-getting-started - 14 Oct 2021
Environmental Data Logging to InfluxDB using BME280/AM2301 Sensors on Raspberry Pi
997 words • raspberry-pi influxdb series:home-energy-env - 13 Oct 2021
Log your Ecobee data in InfluxDB with ecobee_influx_connector
148 words • influxdb series:home-energy-env - 13 Oct 2021
Working around the “Untrusted Developer” bug on iOS 15
315 words • ios apple series:ios-15-bugs - 12 Oct 2021
Checking in on iOS 15 bugs, as of 15.0.2
615 words • apple ios series:ios-15-bugs - 08 Oct 2021
Reusing an ESP8266HTTPClient
586 words • arduino esp8266 programming series:esp8266-getting-started - 08 Oct 2021
How to enable debug logging for Arduino's ESP8266HTTPClient with PlatformIO
212 words • arduino esp8266 platformio series:esp8266-getting-started - 07 Oct 2021
ESP8266 + PlatformIO Serial Console Monitoring with Exception Decoding
721 words • arduino esp8266 platformio series:esp8266-getting-started - 07 Oct 2021
Debugging an Intermittent Arduino/ESP8266 ISR Crash
2468 words • arduino esp8266 series:esp8266-getting-started - 06 Oct 2021
Small commands, big consequences
252 words • linux - 27 Sep 2021
More Bugs in iPhone 13 & iOS 15
444 words • apple ios series:ios-15-bugs - 22 Sep 2021
iOS 15 & Safari 15
561 words • apple ios design series:ios-15-bugs - 21 Sep 2021
Integrating URLs into the Finder file-browsing experience
266 words • macos applescript - 09 Sep 2021
I wrote ‘hosts-timer’ to help quit my (desktop) Twitter and Facebook habits
296 words • productivity series:project-announcements - 09 Sep 2021
Tiny Side Project: Lofi Cafe.app
190 words • music series:project-announcements - 08 Sep 2021
I got into 3D printing, and it feels like magic
768 words • 3d-printing - 31 Aug 2021
LAKE.app
209 words • series:project-announcements michigan - 15 Mar 2021
Deferred Tasks, Project Templates, and More: Customizing Things with AppleScript
881 words • macos applescript productivity - 23 Feb 2021
Now: Feb. 2021
826 words • influxdb recommendations - 23 Feb 2021
Redirecting Hacker News traffic away from your site via Nginx configuration
117 words • linux - 22 Feb 2021
Why I use Arq instead of restic for macOS backups
486 words • macos backups - 22 Feb 2021
Ship electricity usage data from an Energy Bridge to InfluxDB
474 words • influxdb series:home-energy-env - 11 Feb 2021
Replacing iTunes, Music.app, iTunes Match, and iCloud Music Library
856 words • apple music series:project-logs - 08 Feb 2021
Securing my personal SSH infrastructure with Yubikeys
2281 words • security-and-privacy linux series:project-logs - 03 Feb 2021
Using Flickr Again
190 words • photography social-networks - 01 Feb 2021
Letters of Recommendation: Where to start with Peter F. Hamilton, Mastodon iPhone apps, and Domain Registrars
284 words • recommendations books sci-fi - 31 Jan 2021
Now, Jan. 2021
2914 words - 06 Jan 2021
A lightweight service health check tool written in Bash
375 words • linux series:project-announcements - 07 Dec 2020
Simple programs that make Things.app better
528 words • macos productivity series:project-announcements - 04 Dec 2020
Introducing Runner: a lightweight wrapper for cron jobs
576 words • linux series:project-announcements - 25 Jan 2018
Deploying Let’s Encrypt with Nginx on Ubuntu 16.04
952 words • security-and-privacy linux - 22 Jan 2018
Takeaways from Vox’s post on malicious ads
627 words • security-and-privacy series:ad-networks - 07 Jan 2018
Reading List: Meltdown and Spectre
205 words • security-and-privacy - 24 Sep 2017
API Design Reading List
166 words • programming design - 14 Sep 2017
Recommended Equifax Breach Resources
249 words • security-and-privacy - 11 Sep 2017
Failing Actors Reading Series
349 words • swiftlang - 09 Aug 2017
Quick ADS-B monitoring on OS X
596 words • radio macos series:project-logs - 12 Jun 2017
DRYing up duplicate code into helper functions
1246 words • programming software-architecture - 29 Jan 2017
Monitoring aircraft via ADS-B on OS X
3179 words • radio macos raspberry-pi series:project-logs - 18 Jan 2017
Statically-Typechecked Duck Types in Swift
2537 words • swiftlang types - 16 Jan 2017
Choosing a Version Number for a CocoaPod with Updated Dependencies
337 words • programming - 16 Jan 2017
Parent-Child Communication in a Coordinator/View Model Application
325 words • programming software-architecture - 16 Jan 2017
Fatal Error, Season 2
261 words • podcast series:project-announcements - 09 Dec 2016
Fatal Error
340 words • podcast - 22 Nov 2016
Why Comcast injecting messages into web traffic is dangerous
1071 words • security-and-privacy - 21 Nov 2016
The hard problem in decentralized social networks
284 words • security-and-privacy social-networks - 07 Nov 2016
Let’s Encrypt vs. iTunes: anatomy of an error delivering Fatal Error
851 words • security-and-privacy apple podcast - 03 Sep 2016
Fixing Storyboard Segues: Only Apple Can Do This
586 words • programming swiftlang apple - 05 Apr 2016
Over-Reactive?
338 words • programming reactive-programming - 15 Mar 2016
Ad networks in their current incarnation are too dangerous to be allowed to exist.
64 words • security-and-privacy series:ad-networks - 04 Mar 2016
Modeling polymorphic relationships in Swift (spoiler: enums seem pretty cool)
924 words • programming swiftlang software-architecture - 27 Jan 2016
Does everything need to be HTTPS?
367 words • security-and-privacy - 14 Jan 2016
App Transport Security: What, Why, How?
501 words • security-and-privacy ios programming - 06 Jan 2016
Ad-light, Malware-heavy
512 words • security-and-privacy series:ad-networks - 15 Dec 2015
Quotes
119 words - 14 Dec 2015
‘Obviously super complex’: evaluating software architecture as simple vs. easy
650 words • programming software-architecture - 10 Dec 2015
String is not a sufficient type: how using your type system can help you make better software
154 words • programming types - 27 Oct 2015
Writing good commit messages
293 words • git - 14 Oct 2015
Why I’m selling my Apple Watch
612 words • apple design - 01 Oct 2015
Working with custom UIView designated initializers
391 words • ios swiftlang programming - 18 Sep 2015
Nobody is using App Transport Security; what’s next?
621 words • ios security-and-privacy - 17 Sep 2015
Ad blockers aren’t killing the web; ad networks are killing the web
608 words • security-and-privacy series:ad-networks - 15 Jun 2015
Multiple Inheritance vs. Traits or Protocol Extensions
666 words • swiftlang types software-architecture - 21 May 2015
Cocoa’s mutable-subclass pattern is an antipattern
588 words • programming apple objective-c software-architecture - 17 Apr 2015
Be Proactive: Use Reactive
99 words • programming reactive-programming - 21 Mar 2015
Casting in Swift 1.2: a brief summary
228 words • programming swiftlang - 21 Mar 2015
IBOutlet declarations in Swift
569 words • programming swiftlang types - 20 Mar 2015
Subjective-C: I use property (dot) syntax liberally
821 words • programming objective-c - 19 Mar 2015
Why use GitHub Wikis?
320 words • git - 26 Feb 2015
Tiny Swift idioms in ObjC
203 words • programming swiftlang objective-c - 12 Feb 2015
A list of Auto Layout DSLs, Categories, Etc.
116 words • programming - 19 Jan 2015
The problems with due-process-compatible cryptography
340 words • security-and-privacy - 12 Jan 2015
Why non-engineers should care about “Technical Debt”
818 words • programming tech-debt - 04 Jan 2015
Why Reactive programming techniques are valuable
166 words • reactive-programming programming - 15 Dec 2014
Notes on Initialization in Swift
440 words • programming swiftlang software-architecture - 18 Nov 2014
Physics in Interstellar
171 words • science - 24 Sep 2014
Back Buttons for Web View Controllers
360 words • design ios - 22 Sep 2014
Real World Singleton Design
911 words • programming singletons software-architecture - 16 Sep 2014
Greg Titus on NSFileCoordination and Extensions
172 words • ios - 16 Sep 2014
iOS 8 Extensions Roundup
299 words • ios apple - 26 Aug 2014
Let’s talk about Optionals
311 words • programming swiftlang types - 26 Aug 2014
It’s Not Exploitable
249 words • security-and-privacy - 26 Aug 2014
Code Optional
99 words • podcast series:project-announcements - 26 Aug 2014
Benefits of Cocoa: Still here in Swift
153 words • programming swiftlang objective-c - 25 Aug 2014
Tech Debt and Refactoring
157 words • programming tech-debt - 25 Jul 2014
Explicit Programming
1495 words • programming - 28 Mar 2014
Follow me on Pinboard
106 words • bookmarks - 27 Mar 2014
Quick followup on singletons
612 words • programming singletons objective-c software-architecture - 25 Mar 2014
Including your Pods directory in source control
619 words • ios programming - 07 Mar 2014
Singletons in Cocoa applications
770 words • programming singletons objective-c software-architecture - 15 Feb 2014
The Value of ReactiveCocoa
1116 words • programming reactive-programming - 14 Feb 2014
Objective-C
136 words • programming objective-c - 12 Jan 2014
Serving from your Dropbox folder with nginx
575 words • linux - 16 Jul 2013
Do programmers use serial commas more often than other people? (No.)
434 words - 02 Apr 2013
CDZLinkOpenManager
68 words • ios series:project-announcements - 21 Mar 2013
Where is this awesome airplane playground?
482 words - 15 Mar 2013
CDZPinger
97 words • ios series:project-announcements - 09 Oct 2012
Elegant UITableView row selection behavior based on edit state
713 words • ios programming - 19 Sep 2012
Collaborating with Git and Github
45 words • git - 02 Jul 2012
1.5 Years of UMich Magic Bus Data
171 words • umich - 22 Apr 2012
Shooting Theatre, Dance, and Music
61 words • photography - 19 Dec 2011
Fixing 'Corrupted MAC On Input' Error with Git/SSH/VirtualBox 4.1.6
270 words • macos - 07 Dec 2011
UMich Google Calendar Updated for Winter 2012
43 words • umich - 18 Oct 2011
Capturing Lightning
56 words • electronics photography series:project-logs - 12 Aug 2011
UMich Google Calendar Updated for Fall 2011
43 words • umich - 03 Aug 2011
How Rdio Can Kill Spotify (and vice-versa)
2402 words • design music - 02 Aug 2011
Removing AT&T Mobile Web Bookmark from Android Phones
141 words • android - 11 May 2011
Making a Private Gist Public
333 words • git - 06 Apr 2011
The Twitter Busyness Average
194 words • series:project-announcements social-networks - 06 Apr 2011
Shooting Concerts with Strobe Lights
917 words • photography - 23 Feb 2011
Find open CAEN computers using your phone
181 words • umich series:project-announcements - 09 Feb 2011
Moving from Wordpress to Jekyll (and a new design)
998 words • linux - 09 Dec 2010
UMich Google Calendar Updated for Winter 2011
43 words - 19 Aug 2010
Datasheet for RadioShack Phototransistor
334 words • electronics - 07 Jul 2009
Perfect ViewVC On Dreamhost
758 words • linux - 26 Jun 2009
University of Michigan Google Calendar
90 words • umich series:project-announcements - 25 Jan 2009
Very Simple Dynamic DNS Client
243 words • linux