Delimiter Collision

A blog about software, cycling, and roads unknown


Out in the Yard, Weeding the Code

Published on

California poppies among a tangle of weeds
California poppies among a tangle of weeds

In spring time, our yard goes crazy. The grass grows tall and weeds eagerly emerge — the stubborn kind with thick stems that bounce back up when you try to cut them down. I am a reluctant gardener. Even though I value our little patch of green space, I am always toying with the idea of hiring someone to just clean it all up. There are two things that prevent this: being too cheap and impatient to have a yard maintenance crew come out, and the idea that it's my own yard, goddammit, and so I ought to clean it up myself.

I am always glad when I get out and do the work. It is a solitary, meditative experience. I've tried listening to audio books or podcasts while I do it, but the weed-whacker is too loud. So I just go out with my own thoughts.

I have an old push mower that delights passers by, when they see me trying to will it through the thick carpet of bermudagrass that has taken hold in our front lawn. "Man, I used to mow my grandma's lawn with one of those!" one tells me, chuckling. I like to tell myself that I use the push mower because it gets me some additional exercise, and this is partly true. But the real reason is usually that I didn't bother to borrow my neighbor's electric mower.

I discover things when I clean up the yard. Earlier in the season, when it's still damp from winter rains (presuming it has rained in California), I will find clusters of mushrooms hidden in the tall grass. I pull these up so that my dog will not eat them. As I pull and whack the weeds, bugs and spiders scurry away. They have been making a home here. That's fine, bugs may need a home somewhere, but I don't want it to be where we run around and play.

I think a lot when I am doing this gardening, as brute force as it may be. The analogy of working with code becomes apparent. I'm certainly not the first to make the comparison; Hunt and Thomas write in The Pragmatic Programmer that building software is more like gardening than construction. But I feel it, out there in the yard.

It's the way that just cutting through the brush reveals things, hidden dangers and tangled branches that were somehow a bigger mess than you thought. The way I feel the importance, the necessity, of yanking out plants that have become a blight. The other day I cut back a massively overgrown rosemary bush with a hacksaw and felt a moment of catharsis and clarity; I suddenly had worked out how to refactor a set of classes with better abstraction.

Sure, the models are really good at finding bugs in your code. I liked Nolan Lawson's recent blog post about using LLMs to write better code more slowly, using their ability to ferret out bugs and triage them. I've tried it myself with some success.

Still, I think about going out there in the yard. Taking a quiet afternoon and getting away from distraction, getting my jeans dirty, and cleaning it up myself. Often, I'm not just weeding the yard, I'm weeding my mind. Through the tangle, I can see the whole.


Mile Zero

Published on

It's a steep descent off the back of Hawk Hill — an 18 percent grade, to be exact. A sign at the top warns cyclists to use "Extreme Caution", though by the time you notice it, it's probably too late. I felt the wind coming off the Pacific Ocean pushing me sideways as I began to ride down, wondering whether this was a good idea.

I had first taken this road more than two years ago, not long after I bought my touring bike. I had thought it scared me then only because I was fairly new to road cycling, and it happened to be raining. But I realized now I was mistaken: even on a dry day, with plenty of hills under my belt, the descent was still frightening.

I squeezed my brakes as I felt gravity pull me down the smooth pavement, releasing slightly as I went into turns. The view — out beyond San Francisco's Golden Gate — was beautiful, but I barely looked up.

This was January, and I was halfway through a 60 mile ride. I was eager to start accumulating miles because I had recently decided to ride the full Grizzly Peak Century, a local tour renowned for its punishing amount of climbing — 8k+ feet in total. Hawk Hill isn't part of the course but I thought I could use the hill training. Although I'd ridden the 50 and 75 miles routes of the GPC in prior years, this would be my first time riding the full route.

View from Hawk Hill during a training ride
View from Hawk Hill during a training ride

Fast forward to May, and I had abandoned my century ambitions altogether. After lackluster training throughout the spring, I had to admit to myself that I wasn't prepared. Initially, I felt relief; I had let myself off the hook. But what followed was a strong sense of disappointment in myself. Why had I failed to follow through?

Why are we here again?

There were reasons, of course. February was rainy. In March, I caught a cold that lingered. But my training plan was also vague and only in my head. That should have been revealing: I hardly ever need a reason to start a new spreadsheet.

What I realized is that I hadn't really explained to myself why I wanted to do the ride in the first place, or internalized what it would take to train properly. I had a mix of other goals and obligations that were vying to take priority in the meantime, and so when small obstacles came my way, I stumbled.

When I look back at previous attempts to write and publish on my blog, it's not all that different. I've have a desire to write, and a general idea of how many times I'd like to publish in a month or in a year. But connecting the dots and understanding what kind of committment that's going to take is another thing.

Clarifying the why is the other essential piece. The other day I was listening to the author David Sedaris interviewed on the radio . When Sedaris was asked why he returns to the page each day to write, after meeting his ambitious daily step count and doing Duolingo, he had this to say:

I want to be better. I want to be better at everything. And the only way to get better at everything is to work harder [...] That's the promise: that you can write better, that you can understand better, that you can speak a language better, be a better person. But it's not going to happen by accident. You have to work at it.

The idea that someone as accomplished as Sedaris keeps at it every day because he wants to continuously improve was striking and inspiring.

Thinking back to cycling, the first time I rode the 75 mile length of the GPC — the longest I'd ever ridden — I felt a great sense of not only accomplishment but also hope. It's easy, entering middle age, to slide into thinking that you're not going to get better or stronger at anything, that after the "hill" it's just a decline. But I'd resisted that and succeeded.

Maybe that should have been reason enough to push through with the 100 mile route. I also have other cycling goals, including doing a multi-day tour internationally. Cycling, for me, has always been about connecting with the wider world. But of course getting down the road requires a certain level of fitness.

So here I am, training lapsed, at mile zero. I can start again, I tell myself, I can get better. With this blog, I am also starting from a blank slate once more. I'm not exactly sure what I want to write, only that I want to keep writing.