All Posts

The complete list of posts, in reverse chronological order.

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