Remembering Matt Gray

At the end of the memorial for Matt Gray, his wife Carie called for the worst puns heard from Matt. He and I shared a love of wordplay and while I’m certain I’ve forgotten far more of his jokes than I can remember, at least some of them were memorialized in a text file that began its life in an issue tracking system called Bugzilla. I haven’t worked with Matt in over 10 years, but I have a copy of the text file from that era, and just after Matt passed away, I spent some time reading through the entire file again, pulling out just the quotes attributed to Matt. These are the ones I felt have the best wordplay:

“You can’t spell abuse without use.”

“It’s a bug fix… with benefits”

“You just got hexidecimated!”

“Change disappear? Whoda trunk it?”

“Sweat happens when muscles cry.”


“That’s all dreams are — rows in a spreadsheet.”

If there is such a thing as a 10x developer, Matt was one. But he was so far from all the stereotypes. He was generous with his time to a fault (always willing to put extra effort Into a project, even when he wasn’t assigned to it), and definitely one of the most humble people I’ve met with that kind of skill. It really felt like he could make anything happen with enough time (and coffee and pizza).

When I first started learning iOS development, it was a stretch for me. I was a mostly self-taught programmer, without a computer science degree, and I’d never written a compiled language before. I’d also never worked in any IDE (unless you count vim). I spent a lot of “after-hours” hours at the Clockwork kitchen table, banging my head against pointers and learning to manage memory via reference counts. One night, Matt sat down next to me and helped me work through an issue I was having, and in the process explained how to use Xcode’s step debugging feature. Keep in mind, at that point, Matt and I had worked together for at least 6 years, and never in all that time had Xcode been part of actual workplace project. He either knew how to use Xcode from before his time at Clockwork, or through some other after-work activity. (I didn’t think to ask at the time, and now I may never know.) As I tweeted cryptically after Matt passed, that evening conversation changed my life. It became ridiculous to me to work in an environment that didn’t have this modern convenience. I slowly migrated to working on iPhone apps full-time, and I have certainly never looked back.

Much earlier in our careers at Clockwork, when Matt wanted to move into management, I was actually rather taken aback. Here was this guy who was the most talented developer I’d ever met, and he was going to waste those talents by spending time managing people instead? I don’t think I understood his motivations at all at the time, although of course I didn’t begrudge him wanting to “move up” in the world if that was it. He was far too likable to hold any animosity. Over time, he became a great manager. (It never hurts when your manager has previously done exactly the job you do.) I only felt like I understood after my last zoom call with him, when Matt emphasized that as interested as he was in technology, it was never about the technology for him, it was about the people using the technology, and about the people making it. “…It was always about the people”, he said.

Matt made a positive impact on so many people, and so many lives, including mine, were changed for the better by knowing him.

we become our choices

“As water given sugar sweetens, given salt grows salty,
we become our choices.
Each yes, each no continues,”

– from Rebus, by Jane Hirshfield

I’ve been on a poetry kick the last few days. It’s rhythms, its saturation, seep into the meaning of everything. I could become worse, I suppose, than reading poetry.

I discovered Hirshfield via a blog on mathematics in poetry, which I very much enjoyed. I then picked up Given Sugar, Given Salt, and everything in the collection (so far) has really resonated, Rebus included.

2017 Poems

[I don’t write poetry all that often anymore, but since sometime in 2015, I have been keeping a poetry notebook of sorts in (embarrassingly) Apple’s Notes app. For some reason, in 2017, there were a surprising number of entries. At the moment at least, I really like a lot of these. In a moment (this moment) of weakness, I’m going to post the best ones here.]


Everything is a gimmick

In poetry, it’s all just words
That exalt exhaust fuming
Fumbling mind-forensics

Frayed-edged razor words
Bathtub scrubbed sentences
Clean as a gleam of your reflected eye

Reflexed rubber word bubbles
Popping rice crispy soft
On the cerebellum insides

Gullible and guilty words
A wasted breath-beacon
On your bacon bourbon belly brain


It’s national poetry month!

Says the library shelf
So I paw through some disused books
Sniffing for turns of phrase
Like a dog who pisses letters

I decide that most poets aren’t
Using enough technical terms, or
Analytical enough
(anal being the operative syllable)
And resolve to write more
Poems for pedantic programmers

I’ll read a book of poems this month
Even if it’s snozcumber terrible!
I turn to a back page author’s bio
And see a woman I haven’t thought about
Since our shared poetry classes
Twenty professor-less years ago

The publication date is two years previous
This is her first book
Her dedication is the same as the photo credit
She got an MFA after I dropped out to write webpages

As I walk to get lunch I’m writing this poem
Breaking lines, cultivating, alliterating
Struggling secondarily, unnecessarily
to remember a single detail about her
Not already present on that back page



An ember, smoldering,
Buried behind my right eye
If I pay it too close attention
It sparks and the bright red pain
Flares for an instant
The color of burned paint
Peeling from a tin can



We have a perfect time
Heading over to pick
Bus mother and real estate
Office is open at three
Look for the new best next
Theory we look under there


Anatomical Geometry

Asses to elbows
in the club, it’s all
circles and angles

A fundamental efficiency
human bit-packed array;
analytical plasticity. / an encumberment of appendages.

Cosmos consequences

We have been watching episodes of Cosmos as a family. (Colleen is now 4 years old.) This is best when Colleen is engaged and asks us to pause the show and answer her questions every other minute. The good thing about that of course is that we can gauge how much she’s absorbing, as opposed to when she’s silently watching or not really paying attention, and then we have no idea. Anyway, one consequence is that she definitely likes to talk about science and the universe, and has incorporated that into her play. These are only good things as far as I’m concerned.

Another consequence by way of a quick anecdote this morning: As we were getting ready to leave the apartment, she was looking at a calendar with animals on each page. (For those who haven’t seen it, one of the recurring themes of Cosmos is an analogy where the lifetime of the universe is broken down into the length of a single calendar year.) She told me it was a calendar with pictures of the very first animals. Then I took a video of her, trying to get her to elaborate on that idea, but instead I just got descriptions of the animals. Some of which are rather… interesting. I particularly liked the unicorn, and “walrus bear”.

StackOverflow Friend’s List

I use stack overflow quite a bit in my day-to-day. Here is my profile widget:

profile for livingtech at Stack Overflow, Q&A for professional and enthusiast programmers

The official word (well anyway, the official meta thread) says that Stack Overflow will never support a friend’s list, so I decided I should just start collecting a list of my friends and/or people I follow who also have accounts there. This post will likely get updated as I add or (heaven forbid!) remove folks. It would be really cool (as usual, I think this several times a year) to have a single place to maintain my list of friends, a meta-social-networking site that connects all the other social networking sites into one thing. Obviously Stack Overflow isn’t really meant to be a social network… but it is a network, and I would like to keep tabs on my friends there on occasion. Now I can just come to this page/post.

profile for Insyte on Stack Exchange, a network of free, community-driven Q&A sites
Ben B

profile for Zachstronaut at Stack Overflow, Q&A for professional and enthusiast programmers
Zach Johnson, @zacharyjohnson

profile for slembcke at Stack Overflow, Q&A for professional and enthusiast programmers
Scott Lembcke wrote chipmunk.
@slembcke, github

profile for Whit at Stack Overflow, Q&A for professional and enthusiast programmers
Whitaker Trebella wrote Polymer &
Pivvot! (github, @wtrebella)

profile for nimblegorilla at Stack Overflow, Q&A for professional and enthusiast programmers
Nate Yourchuck

Please know that if you are reading this, and use StackOverflow (or any of the StackExchange sites), and aren’t represented here, it’s likely because I couldn’t find you on there, or just plain didn’t (yet) think to look for you. Feel free to message me or comment here, and I’ll add you forthwith!

Best lunch ever

20130102-120237.jpgIf you’d have told me 5 or 10 years ago that there would be a time in my future when my favorite meal was something I could prepare myself, I would probably not have believed you.

But I’m writing here today to tell you that is precisely the case. I am obsessed with Target’s (Market Pantry branded) Honey Battered Breast Tenders. I would probably eat them for every meal. Oh, but part of what makes the meal for me is that I always dip them in Famous Dave’s BBQ sauce. I made a batch of them for Colleen and I for lunch today, with some steamed frozen corn. Delicious.

2012 in(trospection) review

I am using this personal public space less and less. More often than not, the kind of self-observations I would have previously have posted here are instead getting posted to Facebook. This is a trend I can only feebly justify by stating that, while facebook’s privacy settings are a quagmire, at least there are privacy settings. Additionally, I no longer expect that more than a handful of close friends and family will see this post unless I make an effort to cross post it to twitter or Facebook.

2012 was an intensely satisfying year for me.

The year I finally went out on my own and started a business for myself. Abstract Puzzle has been a dream for so long now, and it’s finally a reality. I launched three brand new apps, four if you include freelance work (freelance GAME dev). I finally feel in control of my own destiny. It’s too soon to tell if that’s going to be hugely successful, but it’s already been hugely satisfying.

The year Colleen began to talk and think in earnest for herself. Of course every parent says this, but she surprises and amazes us daily with her increasing intelligence, creativity and personality. Florence and I are at home tonight, having gotten as far as the car before Colleen proved to us she was still sick by throwing up on her party dress.

The year I started logging all my board game plays to BoardGameGeek. This was my only real New Year’s resolution for 2012, and I stuck with it. 741 games (if my in-my-head-summing of monthly totals was correct), and the night is still young! I’m not doing anything interesting with the data (yet), but it’s fun being able to say exactly how many plays of a particular game I’ve gotten in. I’ll definitely be continuing this into 2013 and beyond.

For next year, my resolution is a bit more practical. I want to get better at the practice of making games, and that means making more of them with less time spent on each one. I’m going to attempt to create at least one a month. There are somewhere around another 2000 people who are going to try for this same goal (thanks at least in part to I’m tempted to make it my goal to also publish or otherwise make those games available publicly, but who knows how many of them will totally suck. I guess that’s a bonus goal I’ll also work toward.

Happy new year, everyone!

An idea: “Incentivized Curation” of search results

So, just now I had this idea in the shower. (Yes, now that I work for myself from home, I can take showers whenever I feel like it.)

I was thinking about Stack Overflow, and how great it is, and I was thinking about how google results are often not as good (for very targeted specific topics), and also the phenomenon where, when I find a stack overflow question I want to answer, but don’t have some specific piece on hand, I go to google. So in some sense, for some questions/answers, Stack Overflow is really just a curated list of google results, and then I had this thought.

What if google provided a link, after you search, that said something along the lines of “Not what you’re looking for?”, and it immediately flagged the search for an incentivized human to look at. The human would not actually provide links (I guess maybe they could), but would instead provide “better” search terms. Of course google would do some intelligent caching so that if someone has searched for the same thing before, it gives you back the best terms from before first. And then the final piece is upvoting/downvoting of search terms/results that help you.

Essentially, I’m using the word incentivization to avoid the word gamification. But I mean adding RPG elements. Levels, points, all that kind of fun stuff that makes people go bananas. It struck me as weird that Google hasn’t really done any gamification outside of G+. Clearly they are avoiding it intentionally, since it would be easy to add those types of features across the board (I’m mostly thinking of search here). I guess maybe they are dipping their toes in the water with G+, since it’s now invaded most of their products.

Anyway, just a random thought.

How am I making the world a better place?

OK, so this started as an “I’m an indie game developer!” post, and morphed into the title you see above. Mainly because I discovered Gittip, and it’s one of those ideas that grabbed me instantly and wouldn’t let me stop thinking about it.

Gittip is essentially a recurring tip jar for folks on github. (And it sounds like they are ambitious, and want it to be for more than that, but at least for now, it seems like you have to have a github account to sign up — even to tip someone, so that’ll need to change eventually.) Anyway, you sign up/in and tell it who you want to tip on a weekly basis and how much, then it lumps all their tips together in one anonymous donation every Friday.

I’m in the process of setting up an LLC for my business. I quit my dayjob just over a week ago, and I’m going to be making apps (mostly games!!!), about 50% of the time ones that I design, and the other half of the time for other projects I think are awesome.

The point is, I’ve been thinking a lot about monetization, and how I want to be charging people for my apps. Freemium is the buzzword of the year, but it’s got a lot of different incarnations, some of which leave everyone sane with a bad taste in their mouthes. Other incarnations are a lot closer to the shareware model, only you give away the whole app, hoping that enough people want to pay you to make it worth your while. I like that idea, it really sits well with me ideologically, but I’m not certain I’m making games that have a wide enough appeal that the one to three percent of people who tend to pay for games like that would eventually pay all my bills.

If only gittip were somehow a viable payment option for apps!

I really think a model like gittip is how the non-physical-goods-based-economy should work! Or anyway it’s one payment model that has been missing: recurring anonymous microtransactions. Plus it’s combining that with philanthropy, but I really think that’s just marketing for the payment model, same as it is for kickstarter. Effective marketing, don’t get me wrong, especially because it’s marketing you WANT to hear, but marketing nonetheless. (I should probably explain that further, but I’m lazy… maybe in a future post.)

When you sign up, it doesn’t distinguish between folks who want to give or get tips, so you’re presented with a profile screen that asks you to fill in the blank: “I’m making the world a better place by… ________” My initial thought was “well, I’m not YET!”, but then I settled on “…making games nobody else has bothered making.” For now at least, I’m certain that’s true. Wish me luck!

The perfect strawberry smoothie

I embarked on this quest on Sunday night… Frustrated that the wedge smoothie bar was closed and that I knew of no ther place to get a smoothie on short notice, I thought “I’ll just make one! How hard can it be?”

I went to walmart with Jason (the 24 hour one on Hennepin next to kowalski’s), and bought a blender for 22.99 (or something like that).

Having already surfed the Internet, I had my first recipe in mind, so I bought some frozen strawberries, and a container of lemon juice.

Unfortunately, Colleen was fast asleep by the time I returned home, so I didn’t end up making the smoothie until Monday night, last night. The recipe was as follows: a spoonful of lemon juice, ten frozen strawberries, and 3/4ths of a cup of water. I put them all in my BRAND NEW blender, and after some confusion about the controls, I was blending away. Then suddenly the blender seemed to be making more noise than it had before. I turned it off, since it was probably done anyway, and poured it out into a glass. Three of the strawberries hadn’t blended, and it was a little watery. Okay, but not great. I put some Naked “blue machine” in it, and all was not lost.

Cut to tonight. I’m feeling reckless, and I think I know the fundamental problem with the smoothie from the night before: those crappy frozen strawberries! I have some fresh strawberries, so at first I think I’ll just replace the water with ice cubes to offset their frozenness, but then I see milk in the fridge, and impulsively decide to use it. New recipe: 5 frozen strawberries, 7 fresh ones, about 3/4ths cup whole milk. I skip the lemon juice.

I’ve poured everything into the blender, but I’m having a bit of trouble getting the glass top part to mate with the bottom motor part… And then I figure out why. The motor is actually loose in it’s housing! The part that fits into the glass/plastic bottom can be moved around a bit. But I figure that once it sits in place it’ll be held there by the glass part, right?

I turn it on, and it’s blending, and I’m trying to remember if it was always this loud, or if this is the loudness from right at the end of the previous blending, and then I smell burning rubber.

I turn it off, of course, but I don’t see anything obviously wrong, and we’re only about half blended, so I turn it on again. Then it starts spitting out black chunks and making obvious choking noises. At that point I’m thinking, I’m returning it anyway, so let’s see if we can at least finish this up before complete destruction… Eventually I’m satisfied, and turn the broken thing off.

Conclusion: take two was a VAST improvement over the first attempt. Still not great, but not as soupy or lame as the first, for sure. Florence said it tasted like yogurt, and I do think I could probably have used less milk flavor,but the consistency was right, so I’m not sure what to do. Suggestions for next recipes to try would be very welcome. It’ll have to wait a week or so until a new blender arrives.