All Posts

The complete list of posts, in reverse chronological order.

  1. Weeknotes (2026 W27)
  2. What's in Your Kit? 2026
  3. Pinned Tabs in Zen Browser
  4. Migrating from Logseq to Trilium
  5. Fediverse Rules of Engagement
  6. Eleventy Migration Notes
  7. Links (16 July 2025)
  8. Links (22 April 2025)
  9. Webhooks as a (Systemd) Service
  10. Migrating xoxo.zone to OVHcloud
  11. XOXO 2024
  12. Marshall Turner Moulton, 1928-2022
  13. Introductions
  14. Hollybank Road
  15. ACNH: Removing a Deleted Profile's House
  16. Kingswood 2461
  17. Hades: There is No Escape
  18. Vim Template Files and :keepalt
  19. ACNH: Starting my Garden
  20. PC Build March 2020 Edition
  21. Recovery
  22. XOXO 2019
  23. Twitter vs. Mastodon: On Abandoning the Titanic
  24. Including Remotes in Team Offsites
  25. Tracking Cash with You Need a Budget
  26. 2018 Retrospective
  27. Ansible Playbook: Reboot Servers
  28. Easier Drone Deploys with Docker Images
  29. TaskPaper 3: Child-aware Archiving
  30. Ansible, Postfix, and Mailgun
  31. Termux for Android
  32. Miracle Cube Timer
  33. Goodbye, Burrito
  34. My Ansible Holy Grail: Bootstrapping a VPS
  35. PC Build (December 2016 Edition)
  36. Goats in the Machine
  37. Open Letter to Maggie Hassan
  38. Love Each Other
  39. How "Oldschool" Graphics Worked
  40. OK Uber, that's not creepy or anything
  41. Bullshit
  42. Priorities
  43. Early Adoption
  44. Feminist Frequency: Twitter, Conspiracies, and Information Cascades
  45. Showing Up
  46. Forest: Stay Focused, Be Present
  47. Debian Release Nicknames
  48. Ansible 2.0 Released
  49. 2016
  50. pigz: parallel gzip
  51. A Night In with Shia
  52. Morgamic: Reorgs: Choose Wisely
  53. FIDO U2F Security Key
  54. IFTTT and Taskpaper TODO Workflow
  55. Freedom of Panorama
  56. Upcoming: RFID on Raspberry Pi
  57. Remote Control via BitTorrent Sync
  58. 2015
  59. Fresh Starts
  60. Simple Firefox Content Scripts
  61. PC Build (Fall 2014 Edition)
  62. Smells
  63. Monday Focus
  64. When Consoles Die
  65. Family Restrooms
  66. How to Be a Girl by gendermom
  67. "Brothers" web series on Indiegogo
  68. Ice King's Search History
  69. Unproxy Gmail Images
  70. The Message is Clear
  71. Yeah, Thank You, Bye
  72. Things I Will Miss About Brooklyn
  73. Cookie Clicker
  74. Streaming MP4 with Nginx
  75. Computer Dark Ages
  76. Biking in Brooklyn
  77. Google Reader Discontinued
  78. I Know That Subway Stop!
  79. Marked: Overriding Styles
  80. Open Tech NYC 2013 Notes
  81. Mean Beef Stroganist
  82. Adventures in Git: Deploy on Push
  83. Google Reader Sunset
  84. Moved to Pelican
  85. Journal from the Terminal
  86. Trends in iOS Icon Design
  87. Dropbox for iOS: Version Conflict
  88. Transit Markers in Apple Maps
  89. Adventures in Git: Move Commits from `main` to New Branch
  90. Page Rank after SSL Migration
  91. Two-factor SSH to Ubuntu 11.04 with Google Authenticator
  92. Defining INI Entries for PHP Scripts
  93. Level Up
  94. Filesystem Events on Mac OS X
  95. Vintage NYC
  96. Starstruck
  97. Feedback Loop
  98. Keeping Up
  99. IRC Clients
  100. Hearts, Park Slope
  101. New Page: Mac OS X Setup Guide
  102. Impersonation by Gravatar
  103. Drawing ACS-mode boxes in the terminal with Ruby
  104. Rasmus on Interpolation vs. Concatenation
  105. You Can Take It With You
  106. Trillium
  107. Spring Toad
  108. Spotted salamander
  109. Google on the iPhone
  110. Test Post
  111. Experiment: Digital Permanence and Ownership
  112. Amongst the Tall Trees
  113. I get to
  114. Git Subtree Merges, Orphaned Branches, and GitHub
  115. Transforming Business
  116. State of PHP 2012
  117. Being Nice
  118. On Internationalization
  119. Preware Ubuntu 11.04 Chroot Script
  120. SOPA Protests
  121. There's Always a New Tweet
  122. Conferencing in Boston
  123. iTerm 2 Skinny Fonts: Solution
  124. Is the Earth Special?
  125. Locked Files in Mac OS X
  126. jsRender: Passing Variables to Nested Templates
  127. UC Davis and the Pepper Spray Incident
  128. Webpages as Screen Savers in Mac OS X
  129. PHP 5.4 Changes
  130. Where Are My Pills?
  131. Nest Harvesting
  132. Updated: Amazon S3 for WordPress
  133. Use openssl to Issue Raw HTTP Requests
  134. Google+ for Google Apps
  135. WordPress Network Plugin Management
  136. mysqlhotcopy: error 24
  137. Installing CPAN Modules without Root
  138. Better Local Dev Hostnames with Dnsmasq
  139. Automatic Ellipsis with CSS
  140. Zoom.it API REST Considerations
  141. REST APIs and Security in PHP
  142. Responsive Design Quick Tips
  143. Liquid Televison
  144. Demarked
  145. WordPress MU Domain Mapping Patches
  146. Filesystem Caching without Cruft in PHP
  147. Saving WordPress Media to Amazon S3 (Teaser)
  148. Welcoming Harper Hawke
  149. Google Chrome 13 "Pretty Print" Scripts
  150. webOS 3.0.2 Changes
  151. Merlin Mann on Marketplace of Ideas
  152. Python and PHP: Giving a Rat's Ass
  153. PHP, symlinks, and the realpath cache
  154. World of Warcraft: TCG Card Numbering
  155. Portal 2: Now with More Portals
  156. Subversion and "Skipped '.'"
  157. Google Apps Transition
  158. Sprint AIRAVE installed
  159. Migrating to PHP 5.3: call_user_func_array()
  160. Private Information
  161. On Frameworks
  162. Sprint AIRAVE
  163. New Hampshire HB240: Approval Voting
  164. sf.net Passwords Reset
  165. Locking Down rsync Over SSH
  166. prettyPrint for JavaScript
  167. Light Reading
  168. How Not to Serve Ads
  169. Thinking About Testability
  170. Testable Factories
  171. Running gitweb in FastCGI Mode
  172. Ubuntu 8.04 on Linode: Cloning and Upgrading to 10.04
  173. Makefile for CSS and JS Minify/Compress
  174. Cron Output in Google Reader
  175. Appify: Wrapping Shell Scripts as Applications in Mac OS X 10.6
  176. WordPress Stack Exchange Goes Live
  177. WordPress StackExchange
  178. Cataclysm Beta
  179. WordPress Themes and the GPL
  180. Blizzard To Post Real Names on Forums
  181. WordPress 3.0 Released
  182. Google Background Images
  183. Growing Up
  184. Ads vs. Content
  185. The Killer Technology
  186. Cool Dude in Shades
  187. Raised Garden Bed
  188. Upgrading to Snow Leopard
  189. The iPad is OK… Sometimes
  190. Subversion: Missing Features
  191. My Browser is Sentient
  192. Ding III
  193. Tunneling Everything through SOCKS5
  194. Removing All Partitions in Mac OS X
  195. Information Gathering
  196. Video in the Browser
  197. Bash Completion
  198. Firefox Personas
  199. On Entropy
  200. Palm Pre Countdown in your Mac OS X Dashboard
  201. Live in the Past
  202. Waiting for the Palm Pre
  203. Google Search Options
  204. The Incredible Shrinking RAM
  205. Managing Money with Buxfer
  206. Please Insert Quarter
  207. A Vim of a Different Color
  208. Google Documents and Google Apps
  209. PHP 5.3.0 Changes
  210. XKCD: Students
  211. Local Documentation: PHP, Django, jQuery
  212. 16.7 Exabytes
  213. Open Letter to Don McIver
  214. World of Warcraft Tooltips Redux: phpBB 2 and Wowhead
  215. Variable Variables and Arrays
  216. Baby Food
  217. Death Knight Primer
  218. Mug Shot
  219. A Cunning Disguise
  220. Space
  221. JavaScript Bookmarklets
  222. Ani DiFranco - Red Letter Year
  223. VMware Fusion 2
  224. Smarter Parsing with Smarty
  225. Stupid VMware Tricks
  226. ADOdb, MySQL, and Transactions
  227. Google: Search Result Editing
  228. Vim, Terminal.app, and the Delete key
  229. IE "Operation Aborted" and jQuery
  230. Guitar Zero
  231. Google Doctype: Firefox Quick Searches
  232. Thunderbird and Vim
  233. Announcing Marshall Leif
  234. Abusing screen(1)'s Default Shell
  235. Moving On
  236. Python Indentation and Vim
  237. Expiring Trees in Dirvish
  238. SXSW Six-word Reviews: Textutils Edition
  239. The Business of Being Born
  240. Ani in Concord 2/28/2008
  241. ASCII Art Spam
  242. test.txt: PHP Exploit in Server Logs
  243. Apropos
  244. SVN Repository Explodes, No Serious Injuries
  245. Linking to E-mail Messages
  246. Psychedelic TV, Courtesy of Netflix
  247. Changes
  248. Leopard: SMB Easter Egg
  249. World Usability Day New England 2007
  250. The Blow in Boston
  251. Flickr Updates (23 September 2007)
  252. Custom Template Blocks in Django
  253. The Twig is now Closed
  254. On Burning Men
  255. Alpha Five Updates: Syndicated Feed
  256. Moving from Qmail to Postfix
  257. Vacation, Interrupted
  258. Logitech V270 Bluetooth Mouse
  259. Make Up Your Mind
  260. Jumping Ship
  261. Flickr Updates (17 June 2007)
  262. Improving Network Performance on Mac OS X
  263. Siege
  264. User-Agent?
  265. Statistics
  266. Flickr Updates (28 May 2007)
  267. Adobe "Customer Service"
  268. Me vs. Puzzle Quest
  269. New color scheme?
  270. War on Tourists
  271. Giving Feedback
  272. OO.o Calc: Skipping Days
  273. Power's Out
  274. UDP DoS?
  275. Sixohthree.com qmail fixed
  276. SlackBuilds.org: Community Package Scripts
  277. Merging PDFs in Linux
  278. Number 8!
  279. Downtime
  280. Slackware: Daylight Saving Update
  281. RIT Falling Behind
  282. World of Warcraft: New Models on the Horizon?
  283. You Are Not Prepared
  284. Friday Randomness
  285. I've never wanted a mobile phone
  286. Server Move
  287. Handling Spam II: Follow-up
  288. My Country
  289. Handling Spam II: Revenge of the Spam
  290. Burning Crusade Cinematic Intro
  291. Ani DiFranco in Concord
  292. Public Service Announcement
  293. Rest in Peace
  294. [Ding]x2
  295. Web Icons: "Silk"
  296. View from the Top
  297. Sunset
  298. Creating eReader Books
  299. Upcoming: Portal
  300. Websites that Changed My Life
  301. Company are Doing Stuff
  302. Penny-Arcade Redesign
  303. Public Service Announcement
  304. Broadening Horizons: RF Online
  305. Greasemonkey & Opera
  306. E3 2006
  307. Secret Language
  308. Google Sitemaps and WordPress 2.0
  309. World of Warcraft: Ajax item tooltips
  310. Cross-post: Warcraft item links in macros
  311. Monkey See
  312. Background Noise
  313. Hey look, it's winter
  314. Opera for Nintendo DS, & Misc.
  315. 4096 Color Wheel
  316. Ding!
  317. Anyone for static Warcraft?
  318. WoW: Stargate SG-1 Tribute
  319. Blog? What's that?
  320. Fall Updates, 2005 Edition
  321. Banshee
  322. MediaWiki Calendar Template
  323. WordPress via Subversion
  324. Zip Technology
  325. JavaScript Anagram Helper
  326. Better to Just Get High
  327. Penny-Arcade @ MIT
  328. The More Things Change...
  329. Moving Out
  330. Quote Test
  331. Saving Music Videos in iTunes 5.0 for Windows
  332. In the Trenches
  333. WordPress Upgrade
  334. Controlling Spam
  335. Flickr Calendar View
  336. Twist that Knife
  337. Taming Google
  338. Pat Robertson & Amtrak?
  339. In Debt, and Indebted
  340. Lunch Money
  341. Custom Plates
  342. Exploring Flickr
  343. It's the Thought That Counts
  344. Brought to you by the number 1™
  345. Handling Spam
  346. Man Convicted for... Something?
  347. Travelog: To Jen and Back
  348. Font Resource
  349. Aggressive Advertising
  350. Thunderbird Display Errors
  351. Microsoft Intelligence
  352. That Crushing Feeling, and Tangled Webs
  353. Sunday Miscellaneous: eBay Detective and Others
  354. Must Read
  355. Politics-by-Numbers
  356. Python as Calculator
  357. Massive Experiences
  358. Loading title, please wait...
  359. Linguistic Profile
  360. Ergodex DX1
  361. Audio Excellence
  362. Leakage
  363. Phisher Fishing
  364. Firefox Packages on Slackware
  365. Accidental Absence
  366. Post-Boskone Post
  367. News to Me
  368. Memorex Black CD-R Changes
  369. New CD II
  370. Related Feeds (Supposedly)
  371. Thoughts on rel="nofollow"
  372. Targeted Ads in RSS
  373. HTML Labels & Netscape 7.0
  374. Backup Musings
  375. Useless Spam?
  376. If This Pad Could Talk...
  377. Modern-Day Propaganda
  378. Internet Alphabet
  379. Saving iTunes Music Store Videos in Windows
  380. Prior Art
  381. Bash Tips: Set Remote Variables
  382. Dockadd, Revealed
  383. Free Fone, Friend
  384. Six Degrees
  385. Life's Little Pleasures
  386. HTML Under the Microscope
  387. Well, that was fast
  388. Hello Blog
  389. On Playing Half-Life 2
  390. What's that I smell?
  391. Tweakin' the Feeds
  392. Firefox 1.0 Released
  393. Snowflakes
  394. Is a Recount in Order?
  395. Just a Reminder
  396. Ani Fall Tour '04
  397. To Have, or Have Not
  398. POV-Ray Fumblings
  399. CS:S Physics Fun
  400. Comment Spam Update
  401. A Source of Entertainment
  402. Total Lunar Eclipse, Right Now
  403. Help from Unlikely Places
  404. Working Stiff
  405. Couldn't Resist
  406. Subversion Wiki Updates
  407. Unlocking iTMS Tracks
  408. CompactFlash Price Drops
  409. May I Have Another?
  410. Web Dynamics
  411. Thursday Miscellaneous
  412. The Downside of AdSense
  413. Righteous Babeage
  414. Comment Spam
  415. Being Ultra Semantic
  416. Dynamic Pages with JavaScript and the DOM
  417. MySQL Backups with Subversion
  418. Random though
  419. Escaping JavaScript for PHP
  420. Speaking of Coding...
  421. Moving On
  422. More Subversion Reading
  423. Dust Settling
  424. Free Words
  425. Under Control
  426. Alternate Dimensions
  427. July Updates
  428. Gere on AIDS
  429. On HTML Butchering
  430. Ani DiFranco, Live in Buffalo
  431. Happy Birthday to You
  432. Misguided Hierarchies
  433. Bash Tips: Giving Feedback
  434. Ani DiFranco: Official Bootleg Series
  435. Ximian Connector: First Thoughts
  436. Fahrenheit 9/11 in Theatres Friday
  437. Cory Doctorow DRM talk
  438. Food Costs
  439. State Speed Limit
  440. One Week Later
  441. Surgery Tomorrow
  442. May Update
  443. Kaboom
  444. Darkpole
  445. Bash Tips: SCP Compatibility
  446. Sunday Miscellaneous
  447. The Stylus is So Yesterday
  448. Spring Update
  449. Too Good to Pass Up
  450. Variable Web Content
  451. Offline IMAP in Entourage
  452. Snowy Sunday
  453. Hacker Culture
  454. Musical paranoia
  455. Virii Lie
  456. Bash Tips: Wildcards
  457. With a "D"
  458. Thinking of the Big Picture
  459. Wiki way
  460. Stylin'
  461. Linux Trucking
  462. Align Along a Line
  463. A Faker in our Midst
  464. School Days
  465. New CD
  466. You Should Read This
  467. ISO, and You?
  468. Painting With Light
  469. New Haircut
  470. Unemployment Starts at Home
  471. I should blog...
  472. Of Scripts and Such
  473. Winding Down
  474. More Spam, Please
  475. ACGT, If You Please
  476. New Toy
  477. Blast From the Past
  478. In Other News
  479. More Information in my Pocket
  480. Miscellaneous Hackery
  481. Fall Updates
  482. Ninja Power vgextend!
  483. Still Playing Roles
  484. Metadata Rhymes with Metadata
  485. Pocket-sized Internet
  486. I Think I'm Alone Now
  487. Bash Tips: Testing Arguments
  488. The Word is "Excess"
  489. Only in New Hampshire
  490. Getting There From Here
  491. What'd I miss?
  492. On Bragging
  493. The Lure of Data
  494. Summer of Three Day Vacations
  495. A Lone Echo Post
  496. Dock Annoyances
  497. Bash Tips: Automatically Go Root
  498. Lock Your Doors
  499. Internet Explorer fumbles.. he's down!
  500. Chevron Seven Locked
  501. No News is Good News?
  502. TODO
  503. Those "Game" Things
  504. Movie Night: Matrix Reloaded
  505. Summer Plans
  506. Blogs and Spam: The Next Revolution
  507. Goodbye, Boss
  508. DBMS Updates
  509. Will Intern for Food
  510. FlexibleType
  511. Tracking Comments
  512. Thin Client Update
  513. SpamAssassin, Procmail, and Fetchmail, Oh My
  514. ITX PC Build
  515. Static Blogrolling
  516. This is My Life
  517. Of Indoor Swimming Pools
  518. Microsoft is Pain
  519. Family Tech Support
  520. Spring has Sprung
  521. OK, Real Quick...
  522. Bwerp Server Move
  523. Activism (or Lack Thereof)
  524. Be Green
  525. Mmm.. Web Development
  526. More Blog Ignoring
  527. Pings at last!
  528. Making Plain Text Useful
  529. Why ESR is an Anarchist
  530. Recommended Reading
  531. Lonely, Lonely Blog
  532. Mapping the Blogsphere
  533. Sticker Yer Blog
  534. Welcome to China, Here's Your Firewall
  535. You've Got to be Kidding..
  536. Movie Night: Star Trek: Nemesis
  537. Movie Night: Hawk & Amélie
  538. Mmm, Vacation
  539. I Hope My PC Forgives Me
  540. You Are Being Lied To
  541. Making Windows Bearable
  542. Productivity?
  543. Palm Goodies
  544. Tim O'Reilly on Piracy
  545. Overheard
  546. What is "dotdotdot"?
  547. Server Move
  548. A Blog is Born