All Posts

The complete list of posts, in reverse chronological order.

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