All Posts

The complete list of posts, in reverse chronological order.

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