The Habit

A mentor, Naomi, once told me “it’s more fun to write programs that help you write programs than it is to write programs”. While funny — and true, at least for me — I think what she was getting at is something a little more general: meta-work is a way of distracting ourselves from the real work. Or, more nefariously, meta-work is a way of feeling like we’re accomplishing something when we’re standing still (with respect to our goals).

This has been coming up for me recently around blogging and blogging software. I had a really good blogging habit for a while, and it served me well. Arguably I have my career because of it. Today when I read something interesting and want to comment, amplify, or rebut part of it, my thoughts still go to publishing. But I’ve lost the habit, the muscle, so instead I dither. I focus on how much I pay for WordPress hosting​*​. I view-source and look for tell-tale signs of what tool another author is using. I familiarize myself with headless CMSes, flat files, and “IndieWeb” standards. What I do not do is write.

Almost inevitably two things happen. First, I run out of time: I have to get back to work, I have to make dinner, etc. And second, when I finally return to the open browser tabs — now 90% meta, 10% what I wanted to reflect on — I say to myself, “why the fuck not wordpress? it’s not like it’s done anything to you in the past; yeah, it’s not new, and it’s not written in a language you’re enamoured with today, but it’s not like you have time to hack on it anyway. And if you did, you could do a lot worse than plugging into an ecosystem that big. Suck it up.” And then I close the tabs because I’m annoyed with how much time I’ve plowed into not-writing.

Later me is right: writing my own blogging software is in no way a good use of my time right now; I am not not-writing because of the software; using Jekyll Hugo Pelican Plume will not suddenly cause me to blog; making POSSE work is not a way to rebuild the blogging muscle; my theme is not my problem; post formats do not matter; Guttenberg didn’t reduce my likelihood to post; the list goes on.

Sometimes meta work is an interesting, high leverage way to approach things: there have been times I wrote a program that helped me write a program, and the result was doing something in a few days that we thought would take a few weeks​†​. The difference is, in those cases, I was already actively using the mental muscles I needed, I was already in “the habit”. When it comes to writing, making art, or sewing, the habit is really all that matters.

  1. ​*​
    I pay because a few years ago I was trying to get myself out of a similar rut, this time around what VPS to use and how to secure it. That time I told myself, “it doesn’t fucking matter, just pay to have someone else deal with this, and find a managed service.” And I’ve resented them ever since, despite the great service they provide. Probably because I’m not using the service I pay for.
  2. ​†​
    For example, the time I wrote a codemod using jscodeshift that added sane security defaults to Lob’s entire API codebase.


I read that 2018 was the final year of Open Source Bridge. Reading that I felt sadness, as well as gratitude the organizers were able to choose that. I spoke at the inaugural Open Source Bridge, and my memory of that is that it was such a refreshing vibe compared to the other conferences I was attending at the time (OSCON, Semantic World). There was space for self care (yoga), for weird ideas, and for community in a way I didn’t experience at other conferences. I started to write this as a status update, and realized that these feelings about Open Source Bridge are part of a larger wave of nostalgia for the late aughts I’ve been feeling lately.

The first Open Source Bridge took place in 2009. I had been living in San Francisco for two years and was working at Creative Commons. My role at CC had morphed from “figure out what we could build to engage people with the commons” to “figure out our technical strategy and how we fit with the You Tubes of the world”. I was a lot better at the former; at the very least I enjoyed it more. But there was still something there that I felt energized being part of. There was a community that I appreciated and valued. I’ve reflected in the past that formed the core of this online community for me. It also lived on blogs and in the #cc IRC channels.

So I guess it’s appropriate that some of this nostalgia is undoubtedly triggered by all the awesome Indie* work being done. Just this week I learned about Indie Book Club and Indie Web Ring. And while both are simple, that’s sort of the point: I’m happy they both exist, because [I hypothesize] they help me connect with a larger community while being my whole self online. Being my whole self means that I “show up” in a solid, singular way: you come to my blog and get printmaking, scifi quotes, Python advice, sewing; you get me.

My talk at the inaugural Open Source Bridge was entitled “A Database Called the Web”. It was the second and last time I presented that talk, which was a shame because I don’t think I ever really got the kinks worked out. Creative Commons was founded with this technical layer under girding the licenses, and “A Database Called the Web” was my attempt to articulate that decentralized, federated vision in a way that didn’t start with RDF, XHTML, etc. And that’s why in addition to feeling some nostalgia I also feel some hope: it seems like with ~ 10 years of time (and a lot of heartache) people have moved on to building decentralized things that they want to see exist in the world. And that makes me happy.

Debugging my Creative Process

I’ve been taking print making classes this year, and have really enjoyed exploring something new. What’s been particularly interesting for me is seeing parallels between what I think of as a creative hobby – print making – and what I think of as creative work – writing software.

I showed my work publicly for the first time two weeks ago. The day after the show I had booked time in the studio. I showed up after work that day with my tools, anxious to get back to printing. It had been a couple weeks since I’d been in the studio, and last time I was there had been very productive: I’d spent the entire day working with the same image, producing six unique prints as I tried to add more texture and depth to the precise lines of the stencils I’d been creating. The result was a set of prints which were somewhat uneven in quality, but which showed a progression of control and vision. With each one I tried something a little different, until I felt like I had a good understanding of what I really wanted. Going into the studio that evening, I had about three hours of printing time, and hoped to bring that same exploration to another image.

I did wind up with five prints that evening, but none of them resonated for me like the Golden Gate Bridge prints did. As I pulled each print, I’d look at it, realize it wasn’t what I’d had in mind, and try to think about what to do next. Time in the studio usually passes quickly, and I feel like I’m racing the clock to do everthing that comes to mind. But that evening felt disjointed and choppy, and when it came time to clean up, I was ready to go home. I’d tried serious, whimsical, and abstract, and none of them felt like they worked for me that night. As I rode home from the studio, I felt disappointment. The experience wasn’t the effortless expression of creativity I was used to, and the work I had produced didn’t speak to me as I hoped and had come to expect.

The next morning I looked over the pieces again, and I realized that in each case there was one or two things that I didn’t like, which overwhelmed the rest of the piece. In one case I made a choice about negative space that turned out to be the wrong one. In another I tried to do too much at once, and my vision hadn’t translated well onto paper. As I stood there looking at each piece, I thought to myself, “Why didn’t you just do this exact same image again, but change the aspect you didn’t like?” Somehow I’d forgotten that it was OK to repeat yourself, to try again if the result wasn’t what I was looking for. I’d fallen into the trap that creativity is all about the flash, the spark, and that it just magically happens.

If I think about writing software, I’m well aware that getting the result I want is real work: we have test suites, debuggers, and continuous integration tools for a reason. We often don’t get it right on the first try. Just because the “test suite” for print making is personal and subjective doesn’t make iteration any less important.

I had my first linocut class Wednesday evening. Linocut involves carving a linoleum plate with an image, which you can then use to make a print. Our instructor asked us to bring a simple image to use for our first plate, and to get some experience with carving. I spent some time searching for the “perfect” image to use, something that I would be new and different and push the boundaries of my print making. In the end I wound up taking one of my monotype stencils and generated a scaled down version of it. And I couldn’t be happier with how it turned out.


Yes, it’s the same cat that I’ve been working with for the past couple months. But that doesn’t mean I’m not expanding my skill set, trying different techniques, and iterating. I have plenty of time to try new images out, and if I spend the time now, debugging my technique and learning how to iterate (just like I do with software), I think my ability to tackle more complex and involved work will grow, just like it has with software.

date:2011-04-24 10:22:00
category:printing, process
tags:iteration, linocut, meta

Perfection is not an option

My friend Andy, a successful organizational development consultant, moved to Ohio last year to pursue an MFA in playwriting. I spoke to Andy yesterday for the first time in about a month. We talked about his first year play, and he told me about how he’s felt blocked for a few weeks. After an initial reading with actors, he received consistent feedback in one area: he had to decide if he was writing a farce with some serious undertones, or a serious piece with some moments of light. Andy told me that this weekend he finally gave up trying to have it both ways, made a decision, found himself unblocked creatively, and spent the entire weekend writing.

“I realized that I don’t have time to fix everything I want to fix this time around. I need to fix the big things, get it in front of actors, and let the little things take care of themselves. I can’t afford to wait around for it to be perfect.”

Perfection is not an option.

How many projects do I have in some sort of blocked state right now because I need to find the time to do them right? How many ideas are only half-executed because I haven’t figured out how to finish them the “right” way? I have friends who agreed to read some of my writing in December, whom I haven’t followed up with because I haven’t “finished” revising. And I never will, at least not as long as I hang onto a belief in perfection.

This should sound familiar to anyone who’s worked on a software project using one of the agile methodologies. You don’t try to perfect — finish — the software, and then show it to the users. You take care of the big stuff, and get in front of users. And then the big stuff changes, and you can take care of it again. Rinse and repeat.

Perfection is not an option.

Perfection is, of course, quite alluring. I know that I want to be recognized for my work, want to be seen as someone who has intellectual authority and gets things done. At the same time, I’m afraid that I’ll be seen as less than that: as a failure, a poser, someone who just doesn’t get it. So I hold onto this belief that if I do it perfectly, I can somehow control how people see my work. This is a lie. I can not control how people see my work, and can not control their reactions. If someone reacts negatively, it’s possible they’re reacting to the quality of my work (I am not for one moment arguing I shouldn’t care about doing my best), but it could also be something else entirely. The way I present myself. Their own concerns and fears about their work. Things I can not control. So I remind myself of the truth.

Perfection is not an option.

Just like I’ve tried to stop worrying about having the perfect tools, I want to let go of believing the output has to be perfect before I share it with others. [Reading this blog, you can be forgiven believing that I let go of that belief long ago; I do better here, but there are still drafts from 2006 that I’ve never published because they weren’t “right”.] By definition what I put out, no matter how much time I put into it, is not going to be perfect. If I can accept that, embrace it, I can spend my time and energy actually doing the work, instead of worrying about the output.

Perfection is not an option.

date:2010-03-29 08:04:46
category:my life

Meta: What’s up with all the Reading?

So far this year, I’ve published seven posts with the tag “reading“. Of 24 posts this year (already more than all of 2009!), that’s almost a third of my blogging. Put another way, in the first five years of blogging I wrote four book-related posts; I’ve almost doubled that in the first quarter of 2010.

I’ve always loved reading. In middle school, I’d sit with a novel in my lap, trying to read during class without getting caught. Going into this year, I wanted to try things that I hypothesized would make me a better writer. One of these things is reading, specifically reading and thinking about what makes a book or story work or not for me. Another of the things is blogging1, so it made sense to me that I would start to blog what I read. I also wanted to keep track of what I read a little better. Instead of using this as another excuse to build a tool that I’m not sure I’ll actually use, I’m just using tags on the posts: sfpl for books I check-out from the the San Francisco Public Library, fiction for works of fiction, etc. I’d like to use something more structured for this (probably RDFa), but right now I have enough half finished software projects, so tags it is.

And that’s why my blog seems like a book report lately.

1 I see blogging as a practice: something that I do with regularity, which has immediate and cumulative benefits.

date:2010-03-10 07:04:26
tags:meta, reading


My friend and colleague Vern used to joke that it was more fun to write code to help you write code than it was to actually write code. Except that it’s not just a joke, it also contains a truism: if you like to create things, it’s really easy to find things to put off the actual act of creating. Especially if that involves creating something else.

Exhibit the first: When I started hacking on gsc, I didn’t do it because I wanted to dig into version control. I did it because I wanted to blog more, but I “really needed a great theme first”. And I knew that doing it from scratch was foolish, so I decided to base it on Carrington. But Carrington uses subversion, and I wanted to track my local changes, like any competent engineer. And none of the DVCS tools I found handled svn:externals, so there I was, writing a tool to help me develop a theme, so I could actually get around the writing (creating) something. Let’s be honest, hacking on gsc didn’t motivate me to write more. It just let me put off something I wanted to do, in the name of perfection. [NB: I’ve since just given in and begun using Carrington Text; I have a few local modifications, but until they grow sufficiently large, I’m not going to worry about them]

Lately I’ve been getting a lot of spam here that gets caught in the moderation queue. This has actually been nice in one respect: I get to go back and revisit some of the things I wrote in 2003-2005. One thing I’ve noticed is how awful a lot of that writing is, but also how frequent. It’s like it just kept coming and I had to let it out. In contrast, I wrote 14 posts in all of 2009.

I should point out that it’s not that I’m not writing these days. I started journaling again back in 2006, writing for an audience of one. I have a shelf in my bedroom with my journals on it.


Since moving to San Francisco, my writing on the blog has declined, and my writing in my journal has picked up more than proportionally. On that shelf, June 2007 through 2009 dwarf 2006 (I think 2006 has one or two notebooks on that shelf; the rest are post-move). One of my hypothesis about the reason for this is about the tools: all I get to pick are a notebook and a pen (or pencil, occasionally); once I’ve done that, I stop thinking about it until one or the other runs out.

This hypothesis is supported by my other writing experience of late; during the fall semester I took a writing class at City College of San Francisco — “Creative Writing: Autobiography”. I didn’t take the class because I wanted to write my autobiography, I took it because I wanted to try writing in a more structured way, and it turned out to be a really enjoyable, productive experience. But when I sit down to edit things on the computer, I immediately start mulling over “Emacs or Should I be using DVCS to track my changes? Maybe flashbake? And if I do, is that one repository per piece, or one for the entire class?” This sounds ridiculous as I write it, because it is; those questions are really entirely irrelevant to the work I want to do. They’re just ways to distract myself from what the actual desired output is.

I don’t really believe in New Year’s Resolutions; reading my abortive journal from 2004, I found a “resolutions” entry containing things that never happened, or that only happened years later. I guess my intention for 2010 is to try and focus on the desired outcome, what I actually want to do. I discovered in 2009 that I like to write. And I’ve known for a while that I like to make things. Maybe one day I’ll have the perfect toolkit, framework, theme, or workflow for that; right now, I can do far, far worse than just focusing on the task at hand.

date:2010-01-02 14:13:41
category:my life, writing
tags:intentions, journal, meta, resolutions, tools, writing