Career Reminiscing
Rejoining the Breakpoints after 17 years
So I played in a band at the legendary Ritz in San Jose, California last night.
(below are some of the many great photos of the event by Adam Tow)


The whole event reminded me that it’s not really important how good a musician you are; you should just get together with your friends and play some music. (And maybe people will come! And they did, in this case; the event was a fundraiser for App Camp for Girls )
Wait, whaaat? What band are you in NOW? I thought the whole football band thing was over. Well, yeah it still is. This time I sat in with James
Dempsey and the Breakpoints at their 8th annual Live Near WWDC concert.
This is an annual concert put on by people attending Apple’s World Wide Developer Conference, and it’s spearheaded by my friend James who has written an entire chart-topping album of funny songs celebrating various technical aspects of programming and you can of course listen to the whole album here.
The band featured a whole group of people who are stars in the Mac world - including Daniel Jalkut, author of MarsEdit, the blogging software I am typing in right now - and many other luminaries that I bet most of my friends outside the Mac world have never heard of. But I don’t care! It was great fun to be invited!
for instance
Here’s one of my favourite numbers - The Liki Song (Minawana Meika La’a Likiko)
It’s a little Hawaiian number with James on ukulele - and it’s about memory management. I have to admit, the first time I listened to it - while walking through an airport - I had no idea what the heck James was singing about. “Liki” ? “Mina wana meika laâa likiko”? What the heck? What is he talking about?
And finally it dawned on me - “Me no want to make a lot of leaky code.” That stopped me in my tracks in the airport; I had to sit down, I was laughing so hard. And this was the big closing number at the show, with 24 musicians on stage and the entire crowd singing along. What a treat. So many songs, so many different styles.
how'd this start?
James and I both worked at Apple ages ago - I still do - and both presented at WWDC many times. I distinctly remember one year when I was getting ready for my talk and Matt Firlik announced to me that James had written an original song about Fetch Specifications for his talk, and right then, I knew the best any of the rest of us could hope for was to give the 2nd best presentation.
For years afterwards, the word would get out that James’s WWDC session was almost over and, regardless of topic, people would suddenly arrive for the last 5 minutes to hear his latest song about localization or the perils of designated initializers or whatever else struck his fancy.
A year or two later in 2002, he wrote another song at the developer conference about memory management called Hold Me, Use Me, Release Me - and I knew I had to up my game, and brought my trombone on stage for my own session on WebObjects and I told the crowd that I’d written an original trombone solo about Key-Value Coding, which I hoped I’d have time to perform.
To the great relief of everyone, including me, I did not have time to perform this (nonexistent) solo. But there was some sort of community event that night and James was asked to reprise the Hold Me song, and, well I happened to be around and happened to have a trombone on hand and my arm was twisted ever so slightly so I played along on stage with James.
And that was the last time I did, until 17 years later.
(Ten years later, I was visiting Cathy’s mom at her home in a tiny community in northern New Brunswick and tweeted something about it, and about five minutes later, the phone rang - it was James. “Are you really in Jacquet River, New Brunswick?” he asked in amazement - because it turns out his wonderful father Wilbur lived there too! Small world.)
the breakpoints
James eventually struck out on his own and formed a band of various other members of the geek-Apple community - all very talented musicians - and called the group the Breakpoints. (A breakpoint is a term in software debugging for a location where you want the program to stop so you can see what’s going on.)
He actually wound up with enough material to release an entire album of funny programming songs songs which actually was the #1 comedy album on iTunes for a while (and, if I remember correctly, #1 overall album in Bulgaria).
I was lucky enough to be dubbed a “conditional breakpoint”, i.e. someone who played with the band only rarely.
For years James and his band did these wildly popular fundraisers called “Live Near WWDC”, and I always went, and always enjoyed it, and always secretly wanted to be up there on stage too.
the show
Last night was my chance. 17 years after first playing with James, I was invited back to play trombone on a couple of numbers, including a rockin' round of trading licks with awesome guitarist Jim Dalrymple, in a song which could only have been improved if I had not forgotten what key it was in part way through. (note: it was in “A”.)
I am saving this tweet -
You are amazing!
â Jim Dalrymple (@jdalrymple) June 6, 2019
Wow, was it fun. Over 20 different muisicians in the band - singers, guitarists, drummers, a violin! a cello! And a guy with a blue trombone having the time of his life.
Thank you James. And thanks for the selfie below which you actually took during the middle of my solo, which perhaps caused me to forget the key signature (note, again: “A”)
I hope I can do it again in 2036. Maybe sooner!
My name's on your iPhone
Really. Go find it. Iâll wait.
Couldnât find it? Settings > General > About > Legal > Legal Notices. Scroll waaaaaaaay down. Eventually youâll hit this -
update - in 2022 it’s in Settings > General > Legal and Regulatory > Legal Notices

Thatâs right, Steve Hayman of the Indiana University Computer Science Department.
Whatâs all that about?
In 1989 or so I was working at Indiana University as a network manager in the computer science department. We had a fleet of Apollo and Sun workstations, and one or two of these weird NeXT cube things, which I wound up getting to know pretty well but thatâs another story.
University of California, Berkeley had a popular variant of the UNIX system, which we used at IU on our Suns, including the Sun 3/60 on my desk, that happened to be based extensively on AT&Tâs System V.
Berkeley wanted to get rid of the AT&T parts so that they could make it truly open-source and unencumbered by the AT&T license restrictions, so they put out a call for volunteers to rewrite certain AT&T programs from scratch. (The rules were: you were allowed to study and run the original, and look at the man page, but you couldnât look at the original AT&T source code.)
Along with many other people who were much better programmers than me, I volunteered, and they asked me to take a stab at rewriting /usr/games/bcd, which was a silly little program that took text and drew a fake punch card around it.
BCD stands for Binary Coded Decimal, which was the text encoding standard that evolved into EBCDIC (Extended Binary Coded Decimal Interchange Code), as used on punch cards, which I actually used in my first year Waterloo computing course on Fortran, and you would perhaps have liked the conference talk I gave at MacSysAdmin on the history of text encodings from Morse Code to Emoji - but more importantly - this bcd program qualified as high concept computer geek humor back in the day.
Also it was in /usr/games! What exciting computer games we had in those days!
AT&T Unix came with this utility, and I volunteered to rewrite it, and submitted the code to Berkeley.
They seemed happy with it and asked me to do another so I also rewrote /usr/bin/join, which is a sort of command line version of the database join function.
(That one was way more useful but way less fun to demo.)
Weirdly, the AT&T version only created 48-column cards instead of the standard 80-column card, but I was intent on copying the AT&T version, so if you ever look at the source you should change this line
int columns = 48;
So anyway I kind of forgot about it, but here we are, decades later.
Berkeley UNIX has continued to evolve, and a lot of the Berkeley code found its way into Linux, and MacOS, and even iOS.
Needless to say, iOS doesnât actually include either the bcd or join programs, but it does include a lot of other Berkeley Unix code.
Apple lists the license agreement and credits for a ton of open source code in its Legal Notices section, and Berkeley, god bless them, has chosen to include the names of all these contributors from long ago. The Berkeley section says This code is derived from software contributed to Berkeley by âŠ. and lists dozens of people, virtually all of whom did something way more important than I did.
But there it is. Iâm sure hardly anybody reads the Legal Notices but itâs the first thing I check when thereâs a new iOS release. Just making sure things are still there.
postscript
Berkeley unix mutated into OpenBSD and FreeBSD and NetBSD and Linux and MacOS and iOS and watchOS and tvOS and I canât keep track of it all - but you can see the OpenBSD version of the BCD source here.
I am really amused that in my efforts to copy the AT&T version exactly, I inadvertently copied a bug from the original! Four years later, Dyane Bruce noticed (and fixed) that Q and R were being punched the same way! ooops.
My name's on your iPhone
Really. Go find it. I’ll wait.
Couldn’t find it? Settings > General > About > Legal > Legal Notices. Scroll waaaaaaaay down. Eventually you’ll hit this -
That’s right, Steve Hayman of the Indiana University Computer Science Department.
What’s all that about?
In 1989 or so I was working at Indiana University as a network manager in the computer science department. We had a fleet of Apollo and Sun workstations, and one or two of these weird NeXT cube things, which I wound up getting to know pretty well but that’s another story.
University of California, Berkeley had a popular variant of the UNIX system, which we used at IU on our Suns, including the Sun 3/60 on my desk, that happened to be based extensively on AT&T’s System V.
Berkeley wanted to get rid of the AT&T parts so that they could make it truly open-source and unencumbered by the AT&T license restrictions, so they put out a call for volunteers to rewrite certain AT&T programs from scratch. (The rules were: you were allowed to study and run the original, and look at the man page, but you couldn’t look at the original AT&T source code.)
Along with many other people who were much better programmers than me, I volunteered, and they asked me to take a stab at rewriting /usr/games/bcd, which was a silly little program that took text and drew a fake punch card around it.
BCD stands for Binary Coded Decimal, which was the text encoding standard that evolved into EBCDIC (Extended Binary Coded Decimal Interchange Code), as used on punch cards, which I actually used in my first year Waterloo computing course on Fortran, and you would perhaps have liked the conference talk I gave at MacSysAdmin on the history of text encodings from Morse Code to Emoji - but more importantly - this bcd program qualified as high concept computer geek humor back in the day.
Also it was in /usr/games! What exciting computer games we had in those days!
AT&T Unix came with this utility, and I volunteered to rewrite it, and submitted the code to Berkeley.
They seemed happy with it and asked me to do another so I also rewrote /usr/bin/join, which is a sort of command line version of the database join function.
(That one was way more useful but way less fun to demo.)
Weirdly, the AT&T version only created 48-column cards instead of the standard 80-column card, but I was intent on copying the AT&T version, so if you ever look at the source you should change this line
int columns = 48;
So anyway I kind of forgot about it, but here we are, decades later.
Berkeley UNIX has continued to evolve, and a lot of the Berkeley code found its way into Linux, and MacOS, and even iOS.
Needless to say, iOS doesn’t actually include either the bcd or join programs, but it does include a lot of other Berkeley Unix code.
Apple lists the license agreement and credits for a ton of open source code in its Legal Notices section, and Berkeley, god bless them, has chosen to include the names of all these contributors from long ago. The Berkeley section says This code is derived from software contributed to Berkeley by …. and lists dozens of people, virtually all of whom did something way more important than I did.
But there it is. I’m sure hardly anybody reads the Legal Notices but it’s the first thing I check when there’s a new iOS release. Just making sure things are still there.
postscript
Berkeley unix mutated into OpenBSD and FreeBSD and NetBSD and Linux and MacOS and iOS and watchOS and tvOS and I can’t keep track of it all - but you can see the OpenBSD version of the BCD source here.
I am really amused that in my efforts to copy the AT&T version exactly, I inadvertently copied a bug from the original! Four years later, Dyane Bruce noticed (and fixed) that Q and R were being punched the same way! ooops.
Email from famous people
You might be wondering, âWhy did you, Steve, send Jeff Bezos some jumper cables for his birthday in 2001?â
Amazon has a wish-list feature where you can list things you wanted other people to buy for you. And in 2001, Jeff Bezos had one, with jumper cables on it.
I figured, hey, I like Amazon, Iâll send the guy - who was not at the time the worldâs richest man - some jumper cables, with a nice note saying âHappy Birthday, and I hope you never need these.â
(Meanwhile I created my own amazon wish list with some fancy stuff on it - I forget what exactly, some binoculars or something - because hey, you never know.)
And I actually got a gracious thank-you note from Jeff Bezos, thanking me for the jumper cables and agreeing that he too hoped heâd never need them. (He did not wind up buying me anything off of my own wish list, however.)
But somewhere in my email, I have a thank-you note from Jeff Bezos, which I will cherish forever, assuming I can ever find it
I have another email saying âGreat idea - thanks.â
From Steve Jobs.
I really should find THAT one and frame it.