Essays
I've been writing and publishing essays on this site since 2010. Here they are, gathered into topics. If you'd like to see them chronologically check out the full archive.
Best Of (start here)
- Backyard Fiber
- A journey through setting up a fiberoptic network backbone at my hosue.
- DNS: The Good Parts
- Dig through the DNS and learn how and why it all works.
- Automatic Finances
- My personal finance system that I haven't had to change since setting it up in 2018.
- Program your Finances: Command-line Accounting
- All about my financial journey, from debt-ridden towards debt-free. More importantly, this is a very basic introduction to how to use ledger to keep track of your finances. This has been described as the best introduction to ledger out there.
3D Printing
- 2023-09-19 - Using a Secondary Klipper for Printer Power Control
Book Reviews
- 2013-06-09 - Book Review: The Box
- 2013-05-25 - Book Review: Tubes: a Journey to the Center of the Internet
Business
- 2018-06-04 - Notes on Shutting Down an S-Corp
- 2017-06-07 - Adventures in Stock Picking
- 2017-05-15 - My Miniature Corporate Empire
- 2015-11-23 - Does an LLC protect me from a personal injury lawsuit?
- 2015-08-31 - Organizing Your Consulting Business
- 2015-05-08 - Pay Your Taxes!
- 2014-11-25 - What is the best modern payment provider?
- 2014-09-08 - Five business lessons from an idle game
- 2011-09-04 - Bootstrapping a Side Business - First Steps
DNS
- 2014-12-01 - Your DNS Provider Should Not Be Your Registrar
- 2014-08-21 - Fix Your Email Deliverability with DMARC
- 2013-07-19 - DNS: The Good Parts
- 2013-06-07 - How and why I'm not running my own DNS
- 2012-12-31 - How I run my own DNS servers
- 2015-01-07 - DKIM Deep Dive
- 2015-01-05 - SPF: Sunscreen for your Email
- 2014-12-31 - Email: The Good Parts
Finance
- 2024-07-31 - Automatic Investing
- 2024-07-31 - Automatic Cash Management
- 2024-07-31 - Automatic Finances
- 2019-02-19 - Automatic Insurance
- 2015-06-17 - Program Your Finances: Algorithmic Savings
- 2015-04-08 - Program Your Finances: Envelope Budgeting
- 2012-01-01 - A Robust Reporting System for Ledger
- 2011-12-18 - Program Your Finances: Automated Transactions
- 2011-08-04 - Program Your Finances: Vacation Tracking
- 2011-07-09 - Program your Finances: Reporting for Fun and Profit
- 2010-05-23 - Program your Finances: Command-line Accounting
Hardware
- 2013-05-17 - Mounting a Magic Trackpad on a Kinesis Advantage Keyboard
- 2011-09-11 - Quadrotor Update 3
- 2011-09-09 - Quadrotor Update Part 2
- 2011-09-05 - Quadrotor Update
- 2011-04-24 - Quadrotor Motors Are Alive!
- 2011-02-15 - I Soldered Something!
Home Automation
- 2024-08-12 - Using ESPHome Without the Home Assistant Addon
- 2024-06-15 - ESPHome Server in Python
- 2024-05-02 - The Simply Complicated Automatic Sprinkler
- 2024-01-08 - Using a Static JSON File in Home Assistant
- 2023-11-28 - Using Eufy Permanent Outdoor Lights with WLED
Home Improvement
- 2023-06-05 - Backyard Fiber Update 2
- 2023-04-19 - Backyard Fiber Update 1
- 2023-03-31 - Backyard Fiber
Home Lab
- 2022-09-21 - Homeprod Management with Docker Compose
- 2022-03-18 - Z-Wave Controllers using Dell Wyse Thin Clients
Networking
- 2022-08-12 - Setting up an isolated work VLAN with VyOS
- 2021-11-24 - My Virtualized Router
- 2014-09-14 - Building a Private Backplane Network for your VPSs with ZeroTier
- 2013-01-27 - Increasing the Encryption Noise Floor
Politics
- 2016-11-10 - We (Probably) Have Two Years of ACA Left
Programming
- 2022-05-27 - Ruby Service Objects with Sorbet
- 2019-03-13 - Using Que instead of Sidekiq
- 2018-06-05 - An Open Licensing Organization for Open Source Software
Software
- 2020-05-21 - Tiller, Ledger, and Sorbet
- 2018-09-13 - Using Let's Encrypt Without certbot
- 2018-08-30 - What is a CDN and why do I need one?
- 2018-08-20 - My Own Private CDN
- 2018-04-29 - Why your SaaS application should support SAML
- 2016-05-22 - Archiving Websites with Wget
- 2014-08-13 - Know How To Roll (Your SSL Certificates)
- 2014-08-04 - Command Line Faxing
- 2014-05-30 - Start a VirtualBox VM at Boot on Mac OS X
- 2014-03-16 - Self-hosted Git Server
- 2014-03-06 - Using the Mailchimp API for Sales
- 2013-12-15 - A Practical Exercise in Web Scraping
- 2013-12-05 - Simple Git-backed Microsites
- 2013-12-02 - Simulating a Market in Ruby
- 2013-11-12 - Little Data: How do we query personal data?
- 2013-10-19 - Post-mortem of a Dead-on-Arrival SaaS Product
- 2013-09-22 - DRY your Rails CRUD with Simple Form and Inherited Resources
- 2013-09-15 - Essential Tools for Starting a Rails App in 2013
- 2013-06-18 - Making eBooks with Docverter
- 2013-06-15 - Page Viewer, a Simple Markdown Viewer
- 2013-05-30 - Design for Failure: Processing Payments with a Background Worker
- 2013-05-10 - Distributed Personal Wiki
- 2013-01-09 - Full Text Search with Whistlepig
- 2012-12-30 - Deploy 12-Factor Apps with Capistrano::Buildpack
- 2012-11-11 - Deploying a 12-Factor App with Capistrano
- 2012-11-05 - Run Anything on Heroku with Custom Buildpacks
- 2012-10-27 - Private Git Repositories with Gitolite and S3
- 2012-10-20 - On-the-fly Markdown Conversion to PDF and Docx
- 2012-09-08 - Keeping a Programming Journal with Marginalia
- 2012-08-11 - Task-oriented Dotfiles
- 2012-05-17 - Dokuen, a Personal App Platform
- 2011-11-30 - Another Tiny Webapp
- 2011-11-27 - Concurrency on Heroku Cedar
- 2010-08-22 - Perl with a Lisp
- 2010-08-08 - Managing Your Processes with ProcLaunch.
- 2010-08-01 - Daemons are Our Picky, Temperamental Friends
- 2010-06-02 - Data Mining "Lost" Tweets
- 2010-05-30 - Iterating Elements in boost::tuple, template style
- 2010-05-27 - Everyone Needs Goals
- 2010-05-16 - Building Battle Bots with Clojure
- 2010-05-12 - Actionable Information
- 2010-05-09 - Moose vs Mouse and OOP in Perl
- 2010-04-08 - Calorific, a Simple Calorie Tracker
Stripe
- 2014-11-20 - Stripe removed SSLv3 support. Here's how to fix the HTTP 401 errors.
- 2014-11-17 - Payola v1.2: Now with Subscriptions
- 2014-11-11 - Building Payola Extensions
- 2014-10-20 - Introducing Payola
- 2014-05-07 - Stripe Account Balances for Service Credits
- 2014-03-30 - Using Stripe Checkout for Subscriptions
- 2014-01-20 - The Life of a Stripe Charge
- 2013-09-03 - Adventures in Self Publishing
- 2013-07-02 - Shipping with Stripe and EasyPost
Updates
- 2018-08-15 - VMSave has made over 10,000 calls
- 2015-09-22 - One Thousand Days
- 2015-09-17 - New Book: Handle Your Business
- 2014-09-02 - Let's Begin Again
- 2013-08-15 - Mastering Modern Payments Is Out Today!
- 2013-07-15 - Announcing: Mastering Modern Payments: Using Stripe with Rails
- 2013-06-06 - Cancer
- 2013-06-02 - Blog Relocation
- 2013-05-24 - New Blog Design
- 2012-11-23 - Docverter is now Open Source
- 2012-09-03 - Marginalia: A web-based journaling and note taking tool
- 2012-05-29 - Dokuen 0.0.8, Now with Linux Support
- 2012-05-20 - Dokuen Update
- 2011-12-14 - Yet Another (not very) Static Blog Generator
- 2011-11-17 - Introducing FivePad
- 2011-10-19 - What sucks about apartment hunting?
- 2011-10-08 - Remindlyo is a Go
- 2011-09-25 - Random Remindlyo Things
- 2011-04-15 - ProcLaunch v1.2
- 2011-03-04 - ProcLaunch Improvements and v1.1
- 2010-09-23 - ProcLaunch v1.0
- 2010-08-06 - Blog Generator Updates
- 2010-03-29 - Adding RSS and Other Things
- 2010-03-28 - Yet Another Static HTML Blog