Tools as abstract excuses to create and understand

I saw this interesting post on Twitter from Chris Krycho the other day:

One of the frustrating side-effects of being 100% self-taught in software and computer science is having massive, *massive* gaps in my knowledge and experience, and accordingly being actually intimidated by entire classes of problems. [...]

I replied to it at the time, but I couldn't quite shake the idea out of my head. I recognize that feeling. Self-taught leaves out quite a lot. Some of the things you know aren't necessarily right, and some of the things you don't know you don't know you don't know.

It also fits in with a recent pair of episodes from Talk Python To Me: Coming into Python from another Industry (part 1) and Coming into Python from another Industry (part 2). These two episodes are talks with panels of people who turned some side work they did in Python at their old jobs into new jobs that required Python (sometimes at the same organization). Most of them told the same story: they learned Python on a lark or to solve a problem, then it turned into a superpower, then they used their superpower to solve more difficult problems and change their lives. They didn't set out with a goal in mind—they created, learned, kept at it, and drip-by-drip became someone new.

So. Two things:

One. That initial post and the podcasts turned into a solid creative week of writing some tools at work. I had lost the confidence to do that for a while, and now it's back. All the old patterns were there I could manipulate them into place like Legos, often in new configurations.

Two. I don't make tools for tools' sake. Sometimes I'll write a bit of software that saves time or produces a better looking output, and there's some joker that will ask if making tools is something I want to do. No. I do it because it helps me get the work done, but also because I get to think about the problem in a deeper, more thorough way than I otherwise would. You have to understand the interfaces of the problem, as well as what it's supposed to do and why, in order to get a tool to work with it. You have to think more abstractly when you're designing the software to solve the problem—you can't reach inside it and fix things that don't line up, you have to train the software (or the inputs to the software) to identify aspects of the problem and deal with it.

And maybe also Three: it's fun to make things.

A week in review, 2018-W34





我不是药神 (2018)



Believe in the other side

James Altucher: How To Succeed in Life

There was a passage in this post that caught my eye—

I’ve asked 400 of the most successful people in the world what they did when they were at their worst.

How did you survive?

Almost always the answer is: WAIT.


When you thrash, you crash.

Just be quiet. Don’t move too much. Be calm. Be patient.

What can I say? Look at my history and it's seems pretty clear that I don't do what the man says. I've dumped jobs and volunteer gigs far, far too soon. But I believe the advice. Even if it's just because I know the opposite doesn't work.

I know a venue where waiting and patience did work for me: running. In endurance running I routinely started in the back of the pack. Sometimes I would show up at races late and start a few minutes after everyone else. It was a good tactic for me. Let the others take off with their adrenaline surges. It's a long day. They'd be back. 50 km, 50 miles, 100 miles—after a long day I would reel all those early streakers in eventually (but for the fastest, of course). It was just a matter of time if you believed in it.

There was one other aspect of running that rewarded patience: hills. In endurance running the conventional wisdom is to walk the hills. Save your legs for the rest of the race. It's a long day. But that was my secret weapon: run the hills. If you were patient and believed that you were going to be fine later after suffering for some time now, you'd be OK. More than that, I didn't just feel OK rolling over the top, I felt strong for having waited it out.

One more thing: in the long runs, when things felt bad you had to believe that they would eventually not feel so bad. It's a long day. There was one race I remember falling apart around mile 40 in a 50-miler. I clawed out of it by clinging to a simple rule: run a minute, walk a minute; run a minute, walk a minute. Eventually: run two minutes, walk a minute; run three minutes, walk a minute. I don't know when, but eventually I didn't need the walk-a-minute part. There's no magic to it. No superhuman feats. You just have to believe that there's an Other Side to whatever difficult thing you're dealing with.

I don't know how to bring that to work yet. It seems like an easy enough lesson. But work feels like it has a different kind of pressure associated with it. A long race ends, and you know where it ends. If you walk, if you run, if you crawl, the finish line is at a fixed spot. Work? It's different. Here's a good post from Seth Godin: Evanescent boundaries

Instead, real life has changing rules, hidden rules, rules that aren't fair. Real life often doesn't reveal itself to us all at once, the way the rules of baseball are clearly written down.

And so, the first challenge of real life is: find some goals. And the second: figure out some boundaries.

It doesn't pay to get stressed out that these goals and these boundaries aren't the same as everyone else's. It doesn't pay to mourn the loss of the rigid structures that worked in the world you used to be in.

A week in review, 2018-W33





Crazy Rich Asians (2018)


Distant forest fire smoke creeps into Vancouver


It’s difficult to quit a book without finishing it

I'm still plugging through Wayne Suttles, Coast Salish Essays. I picked it while looking for books about the native people around Vancouver and Victoria before visiting there. Progress through the book was easy in the flight out there. There wasn't much time available to read it while there. After returning motivation to read it has flagged because it isn't quite as relevant anymore.

So why can't I quit, put it down, leave it alone, move on?

I don't know. Books have this mystical, sacred quality for me. The contents are the work of humans, sure, but there is something about a book--a capital B Book--that feels disrespectful to abandon it without finishing. It's almost like putting up a hand to someone talking to me and asking that person to be quiet. Shhh. I don't have time for what you have to say--moving on.

It's nonsense. I know it. It's obvious. But the feeling--the pressure--to continue is palpable. I've only quit on a handful (not counting books due back to the library and returned, ready or not, read or not). Quitting is a skill I'd like to learn.

List: eat in Canada 2018

Here's a list of places where we enjoyed eating during our trip to Canada...





What did I miss

Molson Canadian. Tim Hortons. Good night.

Now reading: The Power of Positive Deviance

Richard Tanner Pascale, Jerry Sternin, Monique Sternin, The Power of Positive Deviance: How Unlikely Innovators Solve the World's Toughest Problems (notes)

I don't remember exactly how I found this book. I think I was looking for another book on Safari Books Online and this one showed up in the search results or as a suggested book linked to whatever I was looking for. Doesn't matter. I saw this in the description and knew I had to read it:

In The Power of Positive Deviance, the authors present a counterintuitive new approach to problem-solving. Their advice? Leverage positive deviants--the few individuals in a group who find unique ways to look at, and overcome, seemingly insoluble difficulties. By seeing solutions where others don't, positive deviants spread and sustain needed change.

That's what I do. (How I see myself, at least.) Roundhouse kicks to the face of the status quo.