Skip to content


Wednesday, 31 May 2017, 06:07 UTC

Oldie #1: Oxygen

I’m in the office standing between two desks. Something makes me think of a song. I start to sing it in my lame, cracking voice, which for this song is just fine, because it always was a lame song.

“Huh, huh, huh?” I ask Kyle.

There’s no reaction. Not a surprise — he’s too young.

I look over at Carl. Certainly he knows it. But there’s no reaction there, either.

I pull up my phone, search for Love Is Like Oxygen, and play it.

“You remember that, don’t you?” I ask Carl.

An uncertain look on his face. A bit of a frown. And a slight shake of his head.

Then I made the mistake.

“When were you born, Carl?”

Ok. I see why he didn’t know the song.

Oldie #2: Rock On

Alex texts us to tell us they are going to landscape the front yard.

“We’re rocking the yard,” he says. “Do you want us to do it on your side of the driveway, too?”

I give it some thought. I think about that thin strip of grass. About the mowing.

“Rock on!” I say, with David Essex running thru my head.

“Ok, rock we shall,” Alex says.

“I like rocks,” responds the fair and industrious Trudy.

I try again responding, “Jump up and down in my blue suede shoes,” without doubt the best ditty in the Essex song.

And then I made the mistake.

I search for the lyrics online so I can send the link. And I find them… on

Buying Shoes

Monday, 29 May 2017, 09:20 UTC

1. The Shoe Store

I bought a new pair of shoes, yesterday. It was a strange experience.

When we walked into the place, the smell of leather was wonderful. Unlike our previous forays into three (count ‘em, three) old-guard departments stores, this place felt genuine. They were selling shoes, period. Ok, I think there were some other leather things, but this was just a shoe store. They didn’t try to be anything else. As a marketing strategy, it worked.

For example, here we were standing near a shelf at the front of the store. Trudy looked at some boots and said to me, “Wow. I would marry you if you wore these!” (It was primarily due to the influence of the fair and industrious Trudy that we were on this quest in the first place. I can tell you with some conviction that marrying her was the best decision of my life, and somehow I managed to score that without those boots.)

Ok. So this was a place that even we could enjoy. But still, it was a bit strange… 

2. The Shoe Store Process

I found a pair I liked.

“May I try these in 10 1/2?” I asked.

The woman tapped on a hand-held (Honeywell) device.

I walked off to look at other shoes. When I turned around, she was still there. I was puzzled, but I gave her more time. 

She just stood there. Perhaps they were out of my size. Maybe she was just giving me some space before she told me.

“Are you out of my size?” 

“Oh no,” she said. “They’re coming.”

They’re coming. That’s odd, I was thinking to myself. And at that very moment a door opened in the back of the store. A man emerged holding a box. He walked up with an odd smile on his face. He handed the box to the woman and returned to the back.

The shoes weren’t quite right, so I asked for a different pair. The subsequent process was the same: the woman went nowhere; some time elapsed; the man again emerged with a box. 

This time, he was closer to me. So I reached out for the box.

But he didn’t want to hand them to me. I could see it in his eyes. There was panic hidden behind his smiling facade. He looked at me, then at her, back at me. Finally he reached around me and handed the box to her.

3. How It Appeared

I get it. There are laces to be laced, stuffing to be unstuffed. Don’t trouble the customer with trivialities. I get that.

But here’s the thing of it. We were the only ones there, and I was the only customer.

In addition to the saleswoman and this young, silent shoe-transporter who evidently spends most of his working hours hidden in the bowels of the stock shelfs, there was a manager/salesman in the store, too. One customer and a standard store process that requires three people to service him.

The manager spent much of his time at the cash register, typing away at the keyboard, singing along with the hip, piped-in music. The woman was tethered to a handheld cash register satellite. And there was this silent drone-of-a-man who retrieved and delivered boxes from an area in the back.

I pictured the area behind that door as a vast, dark array of shelves stretching out in all directions. I pictured him stepping onto a platform as soon as he received a get-this-box summons, being whisked off to the box’s coordinates and transported back, stepping off the platform and walking out into the full light of the salesroom, box in hand.

The shoe store felt strange, but I ended up buying the shoes.

… Maybe I need to get out a little more.

Telling Stories

Sunday, 28 May 2017, 19:08 UTC

We had been on a hike — several miles of steep ascending and descending paths along a creek that sometimes gurgled and sometimes disappeared into the limestone boulder field. We were tired. We all agreed that tomorrow we would be stiff. We were happy to be sitting in comfortable chairs on a restaurant patio with a cool breeze blowing. And we were looking forward to our food arriving.

I had just told a story about when I was very young. A story about how as young kids, we would leave the city behind and climb up the pomegranate terraces and hike on the mountain slopes. It wasn’t a very good story. And there was a dramatic point I never got to make about one of the deep swimming pools up beyond those pomegranates. But Deepa seemed to enjoy it nevertheless.

She leaned back in her chair and looked across the table.

“I like listening to my grandfather,” she said. “He always has stories.”

I wasn’t quite sure how her grandfather figured into this.

“Your grandfather?” I asked.

“…and you. I like how my grandfather and you tell stories.”

And so… there you have it. 

Backwards Speaking

Saturday, 27 May 2017, 09:40 UTC

0. Synopsis

Software developers aren’t good an explanations. They get things backwards, assuming their audience already understands everything. This isn’t good.

1. Mathematicians

I once worked with some guys who were closet mathematicians. No, that’s not accurate. One of was a mathematician. Still, we were doing software development, which means that his math-y nature was in a closet.

In a closet!? What on earth are you saying, man? You haven’t even made your point, and you’ve drifted off course.

Fair enough. Let me start over.

I once worked with some guys who brought a mathematical way of thinking to their software development jobs.

Much better!

Thanks. My bad.

These guys wrote great software — great in the sense that it did great things. But it was also notorious for being an indecipherable edifice. The mere mortals on our team…

There you go again, man. I suspect mortality is not the subject of this conversation.

Dang. Right.

The rest of us really couldn’t understand their system. Although it was amazing for what it did, they were the only ones who could maintain it.

2. Multiply By 2

Now one day, I had a conversation with one of them about a triviality. He was doubling the value of some integer counter, and to so, his code looked like this: x << 1.

Now I’ll admit that there’s a streak of closet mathematician in me, too, but…



Now, I understood what that code was doing. It’s a bit-shift.

And I understood that when you shift a binary value left by 1, the corresponding integer value (x in this case) is changed in such a way that you’ve effectively multiplied it by 2. Of course I knew this. But it was my opinion that writing the code that way obfuscated (in an admittedly minor way) the underlying algorithm.

In my opinion, the code should have been written as x * 2.

3. A Difference of Opinion

 “But David,” they said. “That is what the code says. It says multiply by 2.”

“No it doesn’t,” I said. 

“Yes it does,” they said. “Everyone knows that left shifting is scaling by 2.”

And of course, they were correct.

But that wasn’t my point. The code wasn’t speaking to the reader. It wasn’t saying multiply by 2. The explanation depended on the implicit assumption that everyone already knows that left shifting is scaling by 2.

“The code doesn’t tell me what you’re doing,” I said.

“But of course it does. Quite literally it says what we’re doing,” they said.

I was not satisfied. Although the basic idea was ridiculously simple: double that thing, the code didn’t even have a 2 in it. 

(Mind you, this was a good natured, philosophical discussion — part of made those years so wonderful.)

4. It’s Your Job

Most software developers are not good communicators.


Wait. I fully concede that this is an unfair generalization, so work with me, here.


The same is true of mathematicians, perhaps even more so.


I know. This is also unfair. But here is my point: this is a widespread problem among technical people, in particular in the software world. Most software developers are exclusively interested in cranking out code. 

To them, it is your job to get to the required level of understanding. It is your job to infer the general idea from the specifics of their source code. Don’t expect it to be self-documenting. Don’t look for explanations. Before you ask questions, make sure that you have combed thru the code to arrive at the same fidelity of understanding that they have. Failure to do this is laziness on your part.

To use the example above, it is your job to see beyond the bit-shifts.

5. Backwards Speaking

Now, the problem with this bit shifting example is that it trivializes the point I’m trying to make: most developers speak backwards.

Their code, comments, documentation and verbal explanations usually start from an assumption that you already understand. Their approach to explaining their system is to demonstrate that the system conforms to this assumed understanding.

This is backwards. 

The audience almost never has a shared understanding with you. Your explanations, documentation, comments and code (yes, source code) should proceed from an assumption of non-understanding and strive to bring the audience up to speed. In the case of the trivial bit-shift example, the code patently does not say double this thing. You must map from the bit-shifting to the general concept yourself.

At best, this tendency among us is laziness. My contention is that it is pathological. 

6. On Interviewing

This isn’t just a philosophical point. 

It is popular in the software business to throw out a gauntlet of technical brain teasers when interviewing for developers to fill a job. Search for interview questions online. You’ll see what I mean. If I ran a software company, I’d forbid this. 

One of the problems on software projects is a lack of understanding. This shows up at multiple levels: a lack of understanding what the problem is we’re trying to solve, a lack of understanding understanding what the approach a colleague is using in their code, a lack of understanding how this old code works. If I ran a software company, I’d interview candidates for their ability to communicate well, to help the audience reach a shared understanding. 

Don’t get me wrong. I am not implying that truth, love and understanding is the only task ahead of us. Still, at my company, it your job would be more than writing code that works. It would also be your job to share enough information that someone else could quickly understand what you did and why you did it that way.

If you wanted me to hire you, you would need to speak (in code, in comments, in documentation, in presentations to your peers) straightforwardly. I would want you to show me in the interview that you can do this.

7. This is Important

This is a bigger problem than we generally recognize.

Software is expensive, and in the long run a major portion of that cost is that developers typically do a poor job of explaining things. We consider it a right of passage that other developers must dive into the code before asking questions. We only value whether the code works and whether is runs fast. We undervalue clear explanations. We discount the important of shared understanding. We don’t think in terms of an audience that we need to bring up to speed.

We speak backwards, assuming too much. And there is a hidden cost implicit in this. It’s a big problem, and we need to do better.

St. Elmo Bluegrass Night

Friday, 26 May 2017, 06:18 UTC

1. Sitting Down to Wait

“You can sit right here,” we said, and I motioned to a man with a dog.

“Ok,” he said with a glad look on his  He had been walking back and forth evidently looking for a place to sit, for a while.

The people at the table next to us were a bit alarmed, because two of their group had gone in to order another beer. But they eventually offered to move over themselves so that this guy and his dog could slide in at the picnic table. 

A woman joined him just as we were all sitting back down. So we were two full tables amid the many other tables of happy, loud, talking people waiting for the bluegrass band to return from their break.

2. A Young Crowd

The two of them were bluegrass fans. They said they regularly visit St. Elmo Brewing Company on Thursdays for bluegrass night. Indeed, as it turned out, they play bluegrass themselves.

They talked about a bluegrass jam they have at their house with a couple of retired guys. They talked excitedly about a festival they’ll be playing at in the fall. And they told us about each of the musicians when they returned to the stage.

At some point one of us asked, “When did you get here?” You know, the where are you from and what do you do in your day job conversation.

Trudy answered, “I came to Austin in 1991.”

“Oh,” the woman said with wide eyes. “You win!”

Trudy threw a glance my way.

“But he,” Trudy said, pointing at me in a J’accuse! kind of way. “He has been here longer.”

They looked at me.

“I came to Austin in 1982,” I said.

The woman’s eyes opened even wider. And the man shuffled their little dog in his lap, turned to me with a smile on his face.

“I came here in 1982, too,” he said. He paused and added, “I was born in 1982.”

Let’s just say, that it was a young crowd. (As it turned out, the music was dang good, too.)

Evening Snack

Sunday, 21 May 2017, 20:28 UTC

Time for a little something…

I went to the refrigerator and pulled out the last of the raspberries and some half-and-half. And I put them into a brown-eyed-susan bowl.

My taste for fruit has not returned, so I did not get the enjoyment on my tongue that raspberries bring, although I suspect my taste buds are locally happy even if my brain didn’t globally register a thing. (Or maybe even that isn’t true. Maybe those taste buds are shot. Still, I choose to behave otherwise.)

In any event, the joy of this was the bowl. 

Some of you might know these brown-eyed-susans.

For those of you who do, you will remember summer days of picking raspberries on Stonewall Road. Of mounds and mounds of them for breakfast, for snacks, for just about anytime. And you might also remember those brown-eyed-susans on the plates and the bowls and the juice pitcher and the salt-and-pepper shakers that were in that kitchen that looked out onto that yard where those red raspberries used to grow out beyond the euonymus-topped rock garden and along the line of Cedar trees.

Maybe I didn’t taste the raspberries tonite. But they sure were good.

AirDrop at Graduation

Sunday, 21 May 2017, 19:55 UTC

Back to Berkeley… 

1. The Procession

After perhaps an hour, accompanied by Pomp and Circumstance, the graduates filed out of a tunnel on the north end of the stadium, walking (not particularly solemnly) behind the chancellor and a banner of Berkeley Blue and California Gold

There were many of them. The procession went on for a very long time. And as their seats on the field gradually filled, I took a panorama photo.

(You can usually click the photos to enlarge them.)

2. Sharing the Pano

Having some time on my hands, I looked to see if I could AirDrop the pano to Trudy’s phone. 

Trudy’s iPhone phone didn’t show up in the list, but there was someone else who did. I had no idea who she was, but I sent the photo to Cathy’s iPhone. It was promptly declined.

I stood up and looked around.

“Cathy…,” I said. “How could you?”

A woman sitting nearby had been paying attention to this, and she chuckled at my disappointment. I turned to look at her.

“You want a copy?” I held out my phone to show her the shot (which of course she could have taken herself if she really did). She played along.

“Sure!” she said. So she enabled AirDrop, and I sent the pano to her. It was promptly accepted.

3. An Afterthought

You know, I’m not sure I ever did send that pano to Trudy.

Sorry, Trudy. Want it now?

The Epitome of Industriousness

Saturday, 20 May 2017, 10:08 UTC

Saturday morning. A storm has just passed over and is receding into the east. The rumbling thunder is leaving Central Texas behind.

She walks into the study. Standing in the doorway with a smile on her face, she claps her hands contentedly, seemingly just as pleased as Charlie who is curled up under the desk with his eyes closed now that the thunder and lightning are gone.

I look up at her flashing eyes. (Beware! Beware! I think to myself.) 

She claps her hands again.

“Cleaning cycle has begun,” she says.

You see, we entered the late twentieth century a few months ago and got a coffee maker that’s got some automated features, including a warning light that comes on after so many uses telling you to run it thru a cleaning cycle.

“Cleaning cycle has begun,” said the fair and industrious Trudy.

I need not explain further this aspect of her moniker, industrious. The Mr. Coffee cleaning cycle and her joy in triggering it is really all the explanation you need. 

A Theory of Charlie

Saturday, 20 May 2017, 09:32 UTC

1. Some Facts

From the day we adopted him, Charlie has been afraid of riding in the car. Horribly afraid. Whereas Izzy lives for jumping into the car, as did Mr. Guinness, when we go somewhere with Charlie, his face is grim and he begins to shake. And we discovered today that the same applies to thunderstorms.

Now, Charlie isn’t the first dog to dislike thunder. Indeed, Mr. Guinness was the template from which canine dislike of storms is derived, although now that I stop to think about it, his reaction was one of challenge rather than fear. Charlie, on the other hand, seems to be terribly afraid of thunder.

In spite of the fact that thunder brings cool air blowing in the front door and refreshing rain for the tomatoes, at the slightest hint of a storm (black skies in the west and a distant rumbling), we discovered today that Charlie comes up to us for protection, plainly asking for help from the approaching danger, shaking just as he does when we go out in the car.

2. A Theory

Charlie, you should know, is ten years old. We intentionally adopted a senior dog because they are hard to adopt out and … because honestly, we didn’t want a puppy. As we were talking to another senior rescue dog who was wigglingly happy, wagging her tail and giving us many kisses, Charlie sat regally in the lap of his foster mother gazing into the distance, periodically blinking his eyes. He had a meditative look to him. I was hooked.

But why would a gentle, laid-back, ten year old dog need to be adopted? What circumstances led him to be out in the wild, emaciated and alone? What happened to this wonderful zen-dog that he needed to be rescued?

My theory is this.

Once upon a time, Charlie must have been in a wonderful home. He lived with people he loved and who loved him back. They treated him well, because there is no sign of the kind of fretful timidness in him that you can see in dogs that have been abused. He had a happy life and lived many years in that happy home.

But something happened. I don’t know what it was, but my guess is that it ended with a long car drive out into the countryside, with the opening of the car door, and with the car racing off, leaving Charlie standing on the side of the road wondering what just happened, with a fear of cars newly burned into his psyche forever.

And so there he was, far from home, alone, in the countryside. And my guess is that he was alone that way for a very long time. There must have been storms, and my guess is that his trembling this morning with the approaching thunder and lightening is not a reflection of his fear of the weather but rather a flashback to that horrible time when he was all alone, abandoned by his family, cold, hungry.

I would shake, too.

But Charlie is once again a happy dog. Now that the storm has passed, his shaking has stopped, his pensive gaze has returned, and the luminosity of his zen is glowing out from under the desk where he is very contentedly curled up.

The Fruit of our Labors

Wednesday, 17 May 2017, 20:17 UTC

A cold wind blew out of the north-northwest. The thermometer never topped 60 during the days, and it plunged into the 30s at night. But the sky was blue, and at times the sun was warm. (This, mind you, comes from a Texan who left 90 degree days in brief exchange for the wind and a fire burning in the wood stove all day long.)

It was spring — time to pull the sections of dock off the beach where we left them last fall and hook them together in anticipation of still distant summertime celebrations.

These were my compatriots.

And this was the fruit of our labors.