Fragments
Stream of consciousness notes that don't merit a more dedicated write-up.
2021
- The Leica Q2 Monochrom, or why not to get into Leica
- The girl next door
- Predictions for San Francisco over two years
- Engineering blog posts: Apply healthy skepticism
- Blog with Markdown + Git, and degrade gracefully through time
- Large asset management in a Git-based static site
- RSS, why didth I abandon ye?
- The great Signal migration
- Roderick, canceled
- A WaniKani API Go package
- Cross-posting to Mastodon
- The Engelmann Spruce plaque, Sulphur Mountain
- Homebrew on M1 is a go
- Building Ruby 3 on Mac M1 ARM
- Development log: Rescuing history
- What to do in 2021
- What's good about offset pagination; designing parallel cursor-based web APIs
- Development log: Moving to flat files
2020
- The Sopranos
- Tenet
- The .org armageddon staved off, for now
- Japanese: Why does the は particle sound like "wa"?
- 350 MB
- WaniKani level 10
- Cookies vs. local storage
- Apple M1: First impressions
- GitHub Actions: Setting env vars with other env vars
- Aurora Babelfish
- On the cruelty of kanji
- Meditations on the impermanence of wireless earphones
- SF go/no-go decision framework
- Building a self-updating GitHub README
- A simple HTTP retry and backoff loop in Go
- TTL indexes in Mongo
- Beginner Japanese
- Development log: Turning on DMARC for sending email
- Development log: libjpeg / MozJPEG optimization shootout
- Development log: Minimizing S3 transfer during sync
- Development log: Deploying Google Cloud Run from GitHub Actions
2019
- Slack, and the case for bar-raising (instead of lowering)
- AirPods Pro
- The steady march of complexity
- Encoding H.265/HEVC for QuickTime with FFmpeg
- False positives in UI design: when small buttons are better than big ones
- 1,000 days of counting Calories
- Karl Lagerfeld (and dieting)
2018
- Simple and stateless CSRF protection with the `Origin` header
- OLAP, OLTP, Zheap, and tradeoffs in Postgres MVCC
- The subtleties of API contracts, or how enabling HTTP/2 broke Go clients
- Caffeine
- Reflections on Rust, and the sand castle metaphor
- The 500 test
- 100 days with Rust, or, a series of brick walls
2017
- Mindfulness
- Changing a universal constant: How 280-character tweets break an API
- The city that tried to buy itself
- Depickling, gadgets, and chains: The class of exploit that unraveled Equifax
- Unsubscribe: The noisy death of email marketing
- Patronage in the age of free
- A year of counting Calories
- Headspace
- The long road to Mongo's durability
- All wires
- Partitioning in MongoDB (or lack thereof)
- GraphQL APIs and performance
- Your Name
- Shopify scripts, MRuby, and the $500,000 release
- Sharing with iCloud Drive and iBooks
- The rise of the smartphone's eye
- AirPods
- GitLab, and centrally hosted platforms
- Learning about language safety from Zcoin
- Alan Kay on Apple and iOS
- Chrome
- Marginal security
- Understand deeply
- The state of messaging
- Journaling (revisited)
- Amazon Prime
2016
- Zombified
- Exporting Flickr
- The last AirBnB
- Apple 2016
- Turn off your cellphone
- No escape
- Fixing a slow git $PS1 prompt
- Apple Bedtime
- Deep work & concentration
- OpenAPI 2.0
- Postgres 9.5 on Travis CI
- PAX 2016
- Courage
- Splunk
- Podcasts 2016
- 4 A.M.
- Ivy
- Retina check
- The cost of manga
- The steel man
- Journaling
- Gh-ost
- Perpetual cookies
- OSX and entropy
- Verified env vars
- Where are all the new great companies?
- Asturias check-in
- Hype trains
- us-east-1
- CloudFront indexes
- Six weeks
- Testing Go packages from project root
- Going static
- H&M sportswear
- Week three
- _Do_ debug
- Week two
- The zero-sum treadmill
- One week of nutritional rigor
- The iPad Mini
- PAX 2016 ticket royale
- Calorie counting
- On brevity
- Life without mediators
- Not hosted here
- Traffic
- A glance at Kubernetes
- Codeword
- Timing the guitar
- Avast
- Digital natives
- Accumulation
- Testing a Kafka connection
- Google engineering principles
- Naked DNS
- The bear
- Burn parties
- Heavy complexity
- MonkeyBrains
- Fast OSX screen lock
- AWS Certificate Manager
- Turning points
- Safety razors
- Notification hell
- An AWS static hosting workaround
- AWS static hosting
- Do one thing and do it well?
- The sprawl blues
- Game of Thrones pessimism
2015
- SF housing and activism
- Insecurity by instinct
- Cineplex Odeon
- Star Wars VII: The Force Awakens
- Plex for PS4
- Starbucks growth
- Spectre
- Showing Redshift distkey & sortkey
- GPG at Stripe
- Safeway justice
- 2015 resolutions (update)
- Entropy
- The End of the Tour
- Legacy projects & the maintainer
- Whiplash
- The Everything Store
- The 12" MacBook revisited
- The guitar
- WGT 2015 abstract
- WGT 2015 brain dump
- Notes on the new 12" MacBook
- Google Domains
- Paper books
- Infinite Jest
- 2015 resolutions
- Inventory ephemeralization
2014
- GPG + the Heroku CLI
- GPG + HTTP git
- The Cubano
- CloudFlare Universal SSL
- GPG + s3cmd
- GPG + cURL
- Yosemite & progress bars
- Anki's .apkg
- Global recovery in Go with defer
- iBooks & Dropbox
- PAX
- Major buys
- New York
- WGT
- Yosemite & Linux
- Go relax
- Two stars
- Bicycles
- Swift: day one
- json_ schema
- Gossip from across the world
- X-Forwarded-Proto
- Square cash & e-mail as a platform