Link rot and redirect madness

In the long, slow process of giving this website a makeover, I made the mistake of browsing some old posts. It’s not that my prose isn’t timeless, but the number of expired links I found within it surprised me.

And it wasn’t just the broken links. It was the vast number of redirects all over my site.

I’ll soon upgrade to HTTPS here. Doing so isn’t a penalty anymore and it can even improve your search ranking as providers now encourage the move to SSL. Which’ll probably be the only SEO I’ve ever attempted.

Since everyone else seems to have performed the same upgrade over the last few years, I expected to see URLs in my pages moving from HTTP to HTTPS. And there were some.

But the majority, the other redirects, were just strange. Entire site organizational structures have undergone revolution. Especially at big media portals. For no benefit that I can fathom.

Maybe some editor there got a wild hair up their ass after learning about mod_rewrite. Who knows.

And I found The New York Times adding cryptic query strings to their old, relatively stable, .html URLs. Possibly more paywall foolishness.

Wikipedia was particularly squirrelly. Changing the page names of almost half of my many links to that site during the last few years. Even while I was in the process of updating one of them. I probably got in the middle of some adolescent editing war.

Of course, I didn’t have to update all of these links since, technically, they’re properly redirected. Three or four times in some cases. Go figure. But, full disclosure, I’m anal-retentive about this kind of thing. Yeah, a shock.

One thing’s for certain. The next time I take inventory on URLs, I’ll automate the process of finding and fixing them.

Be still my beating heart

In early November, just about a month ago, I woke up tired. I’m old so this is not really out of the ordinary.

I still got out of bed, did my business and then took the dog outside to do his. Pro tip: always go yourself before you have to stand around waiting for someone else to unload.

Anyway, tired.

Before heading to the kitchen for my usual bagel, fruit and coffee, I went downstairs to check on my son and make sure he was up in time to make it into the office for work. I’m retired. He’s not.

But getting back up the stairs was so exhausting that I told my wife I would lay back down for awhile.

Now I was tired, in bed again and feeling sick.

Thinking that eating something would make me feel better, I forced myself up and staggered toward the breakfast bar.

Then fell down before I could reach it.

But I didn’t pass out or, thankfully, bash my head on the kitchen counter.

What the fuck was happening to me? I felt dizzy and weak, all wispy and aflutter. My breathing was labored with an unpleasant pressure in my chest. My fingers and toes were going numb.

Unable to stand on my own, my wife helped me into a chair. And told me I looked pale. I told her to get my son. And then call 911.

I won’t deny being fearful. This was some crazy, scary shit because, despite being 58 years old and overweight, I was remarkably healthy. Nothing really bad had ever happened to me. Until now.

But I thought if this was a heart attack, it’s nothing like what happens on TV. Or how my father described it to me. Other than not being able to get a full breath, I wasn’t actually in pain.

The paramedics arrived within just a few minutes. Surprisingly fast, really. And laid me flat on the floor to take my vitals, blood pressure and a quick electrocardiogram, also known as an ECG or EKG.

That ECG told them I was (good news) not having a heart attack. But it also wasn’t normal. Not even close.

A resting heart rate is supposed to be between 60 and 100 beat per minute. Mine was north of 180. I was essentially running a marathon while laying down.

At least sometimes it was that high. But, really, my heart rate was just bouncing up and down, out of control.

That meant a ride in the stretcher limo and straight to the hospital.

Maybe it’s fate or only fortune, but I live just two and a half miles away from one of the top ten cardiac care facilities in the United States. And as soon as I got there, they knew exactly what was wrong.

I was having atrial fibrillation.

The human heart has four chambers. The top two are the atria. The bottom two are the ventricles. Fibrillation is an arrhythmia or irregular and uncoordinated contraction of the cardiac muscle.

When fibrillation occurs in the atria, it reduces blood flow efficiency. When it occurs in the ventricles, it causes sudden cardiac death. So you want to avoid that flavor of it.

The good news is that while atrial fibrillation is very unpleasant, it won’t kill you. Not directly anyway.

But if the arrhythmia persists, then your uncoordinated, inefficient atria can become blood clot manufacturing facilities. And that could precipitate a stroke. Which can, yes, very quickly make you very dead.

So I was given blood thinners to prevent a stroke and other medication to slow my heart rate.

Unfortunately, the drugs didn’t convert my heart rate back into normal sinus rhythm. But my cardiologist told me it’s no big deal because another technique can do that 99% of the time.

It’s called electrical cardioversion.

The plan was to fix the short circuit in my heart by resetting it with a strong jolt of electricity. So strong, in fact, that I would need to be briefly put under to prevent trauma. Apparently it hurts. A lot.

By this time I’d had so many needles jabbed into me and so much hair peeled away by multiple ECG sensors, that strapping me to a work bench and rebooting me like a fucking Windows PC didn’t seem all that strange or unpleasant.

And it wasn’t. I don’t remember a thing.

What’s important is that it worked. The first time. And I felt much, much better right away.

After the procedure I asked my cardiologist what caused the atrial fibrillation. He told me that while they still needed to do more tests, I didn’t have any of the obvious risk factors.

“Sometimes shit happens,” he said.

Which endeared him to me immediately as a fellow professional.

The bad news is that I was back in the hospital a few days later. And again a few days after that. Not with atrial fibrillation, they said. But I was still tired and short of breath.

My son called it acute hypochondria and told me I was suffering from “old man’s disease.” Which really amused my cardiologist. Apparently, both of them are comedians.

Maybe after a lifetime of general good health, I was just having panic attacks over one scary cardiac episode.

Or maybe it was just muscle soreness from all that labored breathing. It could even be the damn flu shot they gave me during that first hospital visit.

We don’t know.

In the meantime, they taped a portable heart monitor to my chest for two weeks, costing me more of my manly fur. And treated me to multiple echocardiograms, ultrasounds of my heart, before and after a treadmill stress test. Not to mention multiple chest X-rays.

After all that, I show absolutely no signs of heart disease, valve problems, blocked arteries or excess pericardial fluid. My cardiologist said that I have a perfectly normal, healthy heart. And I can live my life without any special medication or diet.

So I’ve got that going for me. Which is nice.

But I still have a 50% chance of another atrial fibrillation episode during the next year. Why? Because those are the odds for anyone who’s ever had it once.

To prevent further stupid trips to the emergency room, I bought an AliveCor Mobile ECG for my iPhone. It can very quickly detect atrial fibrillation as well as many other cardiac problems. It’s worth it just for the peace of mind.

The other thing that makes me feel good about this whole ordeal is the response from family and friends.

My wife and son, of course, were by my side the entire time. Another reason I love them. And my sister and in-laws were checking on me constantly. That’s what our family does.

But the response from all of you out there was amazing. Thank you so much, my friends, for your concern and support. Seriously.

And to everyone who told me to “calm the fuck down,” yes, I got the joke. And I really deserved that advice this time.

Why they call me “Gramps”

The first time I met Craig Federighi was the day he returned to Apple in 2009. He had left in ’97 shortly after the acquisition. An event we at the home office in Cupertino always “hysterically” referred to as the time NeXT acquired Apple.

Craig is now in charge of all of Software Engineering, but back then Bertrand Serlet had just re-hired him to run OS X. Which is still a big job.

Anyway, Craig was back, hair and all. And Bertrand invited the department heads, which included me, to a large conference room to meet Craig and discuss the current state of the OS.

Almost as soon as I introduced myself, Craig said “I’m told they call you Gramps.” Which I’m guessing he heard from Bertrand. “Are you really okay with that?”

Pure Federighi earnestness and concern. Seriously.

So I explained that I was christened as such when I was only in my mid-thirties at Netscape, “Years ago when I got that name, I was actually young enough for it to be ironic. These days it’s a Human Resources policy violation.”

And Craig started laughing out loud. Drawing the attention of everyone else in the room. And, of course, a big smile on my face.

Thus began my friendship with Craig. And my quest to get him laughing in every meeting we attended from then on.

Eventually, Craig started using my nickname too. Hell, even Steve called me that once or twice. But for some reason, my boss, Scott Forstall, never used it. No idea why and I never thought to ask him.

So, how did I get that nickname at Netscape?

Back in ’96 at the Land O’ Lizard, it was a tradition for teams to take new members to lunch on their first day of work. That’s the policy at every tech company, really. I started in April of that year (post-IPO so I’m not a Mozillionaire, unfortunately) as an engineer on the Mac Navigator team.

But the Mac geeks at Netscape were spread out across several groups. And almost all of them joined us for lunch. Which was good since the Mac Navigator team was so damn small. Even then that meant only about six or seven of us at the table.

One of the folks who joined the meal from another team was Tim Craycroft. I think he’s a VP at now, but I swear he must have been only 18 or 19 years old at the time.

Conversation was good and random, not just technical fluff. We were getting to know each other. I always like that.

Eventually, talk somehow drifted to politics. A topic, I’m told, that you should avoid at work. But none of us had good sense so we just went with it.

For some strange reason I made a joke about the Johnson administration. Yeah, I’m that hip. Now, I don’t recall the details but it really did get a few laughs. Really.

And then Tim asked, “Who?”

“You know, President Johnson,” I said.

Again, “Who?”

“You know, the president between Kennedy and Nixon,” I said, hoping he was a least familiar with those names.

Tim stared blankly, waved his hand over his head in dismissal as if LBJ never existed, and said, “Whatever, grandpa!”

And the whole table burst out laughing. The little bastard.

Actually, he was smiling when he said it and I might have been the one laughing the loudest, so, fair is fair.

Anyway, I forgot all about it until the next day when another engineer who had been at that lunch, maybe Paul Chen, called me “Gramps.”

And then it just kept happening.

Eventually someone would say, “Hey, Gramps!” and I would respond.

Since I didn’t learn to program until I was 24 years old and didn’t start doing so professionally until after I was 30, I’ve always seemed to be older than my peers, at least most of them.

Maybe I should’ve been more sensitive to ageism. But, I don’t know, that seemed a little petty when I had all the privileges of being an English-speaking, reasonably straight, white male, too.

About a week into my tenure at Netscape, yet another lunchtime engineer approached me privately and asked, “Don, does it bother you being called Gramps?”

I tried my best to make my lip tremble and look like I was about to burst into tears. But I couldn’t pull it off and just started laughing instead.

“No, I don’t give a shit. It’s actually kind of cool since I’m technically the new guy.”

So I was stuck with it at Netscape. Everyone called me “Gramps.” Which was quite an honor considering my email address there was “”

You see, I was one of the few people in Software Engineering at Netscape who wasn’t referred to by their email user ID. Nobody called Michael Toy by his first name. He was “Mtoy.” Chris Houck was always “Chouck.” Jim Everingham? Just “Jevering.”

What can I say, it was a weird place. And not just for that reason.

And when I went to Apple in 2001, the user ID “don” had been long gone. Taken by some guy on the loading dock in Elk Grove, I think.

So guess what I picked? Yeah, “” Hey, I thought it was funny.

But don’t ever use that email address. I assume it’s as dead as my chance of returning to Cupertino. For all I know it forwards to Tim Cook now.

If you worked with me at Netscape, Eazel or Apple back in the day, you’re still welcome to call me “Gramps.” In fact, it’s kind of endearing. Like we’re all in a special club together.

And if you’re a “special” friend, you can use that name, too. Don’t ask, you know who you are.

But when I retired from Apple in 2012, I also retired “Gramps.” In a way, he was a character I played on TV. And that show isn’t in reruns.

More importantly, since I’ll be 59 years old soon, that name is long, long past being ironic. I may, however, let my grandchildren call me that. If I ever have any.

By the way, pro tip: don’t ever call my wife, “Grandma.” Certain death.

Missed opportunities

This is my first post here in a long, long time. Until my ISP got hacked last month and my server’s home directory was filled with spam links (it can still happen with a static website, folks), I had really forgotten all about this place.

Which is sad. Especially after all the effort I put into building the software which generates it.

Not to mention that whole “writing” thing.

Now, it’s really hard to follow a post like “Memories of Steve.” It was very popular and I truly appreciate your appreciation of it. But leaving it there at the top of the front page for what it is perilously close to two years? That’s just pathetic.

I like to say that I live a dull life but even mine has something worthy of a little prose from time to time.

While I did write here about the passing of my family’s two beloved older dogs, I haven’t even mentioned the crazy little puppy we adopted later. Or his scary attack, injury and recovery when he was less than a year old.

Did you know that my wife and I stupidly bought a second home? And that we’re developing an interest in good, if not necessarily fine, wine because of where that home is located? Well, you wouldn’t find that story at this place.

And I haven’t written about video transcoding here at all. It’s a passion that’s consumed me so much over the last year and a half that I’ve created command line tools to facilitate my habit.

Some of you might even be interested in not only how I built my own Windows (yes, Windows) gaming PC, but why I went down that path in the first place. However, there’s nothing about that on this site.

Then there’s my recent first ambulance ride to the hospital and the need to electrically reboot my heart due to atrial fibrillation. More scary shit that I could have articulated with at least a post.

Of course, I haven’t been completely silent about any of these topics. If you follow me on Twitter, then you know I’ve been an absolute motormouth about them all. One hundred and forty characters at a time.

And I’ve talked about them on the air in various podcasts. So many of those shows, in fact, that I’ve lost track of some.

You would think with all these podcasts I’ve been doing, along with my own semi-regular show, that I would at least promote some of them on this website. Nope.

Tweets and podcasting have definitely lowered my passion to write. But there’s one theory that can always explain my behavior: laziness. That said, it’s still just an excuse. It’s not actual writing.

So, I’ll make an attempt to get back to it. You know, the typing. And, yes, tell some more of those stories you all like about the Fruit Company and my other technology adventures.

I’ll never get any good at it if I don’t at least try. And I certainly don’t want to miss so many opportunities again.

Memories of Steve

A version of this article about Steve Jobs first appeared in The Loop Magazine on his birthday during February of this year. Jim Dalrymple edited the original down in size and split it into two parts — decisions that didn’t bother me in the least and probably made it easier to read. Thanks, Jim — for that and publishing it in the first place.

But I decided to post the original, unexpurgated version here. Please note that I wrote this during the summer of last year, so adjust some temporal references as you read. And even if you don’t read this, you should download Jim’s magazine and subscribe because it is a delight.

I have no plans to watch that new movie about Steve Jobs. As I have no plans to read Walter Isaacson’s biography of him.

It’s not because I think those efforts are somehow not worthy of his memory. It’s just that I have my own recollections of the man. And I’m very jealous in guarding them. I don’t want those few and fleeting memories fractured and confused by other people’s interpretations.

Consider that a fair warning, because I’d like to recount a few of my own stories about Steve here. Not only for you, but for myself. Because maybe in the process I can remember him better.

Let me be up front saying that I did not know Steve well, but I had the opportunity to be around him on occasion. Mostly during design reviews of applications for which I was responsible. There were certainly other meetings, but I never visited his home and very rarely spent time with him unless others were part of the conversation.

And I was certainly not some kind of confidant. In fact, he probably always thought of me as the “Safari Guy.” Which is fine by me since there were worse ways for Steve Jobs to think of you.

Of course, Steve could recall my real name, too. Anyone at Apple or Pixar — both large organizations — will tell you that Steve knowing your name was an honor. But also occasionally a terrifying responsibility. That was the bargain.

I was privileged to work at Apple during its Renaissance. I thank Scott Forstall for that. For hiring me. And for introducing me to Steve.

But the first time I met Steve Jobs — actually just saw him in person — wasn’t at Apple. It was at the developer rollout of the original NeXT computer and its software, NeXTSTEP. Software which would eventually become Mac OS X. This was an all-day conference — I forget exactly where — probably during 1988.

Steve was supposed to address us potential NeXT developers at lunch. When the noon hour rolled around, I remember being very hungry and wanting to quickly find a quiet place in the oddly-shaped dining hall to eat my meal. I picked what I thought would be a remote table. Turns out it was right next to where a lectern would soon be placed, followed shortly by the honored speaker.

Steve walked out from some side door and up to the podium. Close enough for me to stand up, walk two steps and shake his hand. Not that I was stupid enough to try that.

He was dressed in a suit. Apparently he did that a lot in those days before he rediscovered jeans. Very professional looking. Almost too serious. Matching the intensity of his bearing and gaze. Obviously Steve intended to tell us all something very important.

And we were all still eating. Some of us hadn’t even started. It was an ungrateful din of crackling sandwich paper, clanging forks, slurping straws, gnashing teeth.

Obviously he wanted us to quiet down. You could tell because he paused several times for us to hush ourselves. And out of respect, awe, and probably some fear, we all tried our best to do so. But, dammit, the room was now packed and that many people just swallowing food makes a lot of noise. Sitting so close, I felt especially self-conscious.

Who the hell scheduled him to speak at that time? Knucklehead. It’s entirely possible that person was taken out later and shot.

Anyway, I do remember Steve’s seriousness and apparent impatience that day. But not a thing he said.

After I started at Apple in June of 2001, I saw Steve at a few on-campus events, company meetings, walking between buildings and such. You could also see Steve sometimes in the company cafeteria, Caffè Macs. He ate there just like the rest of us. Often sitting with Jony Ive.

I’m not sure whether this incident happened just before or after Apple announced the original iPod, but it was a fine Autumn day in Cupertino and I was eating lunch with Ken Kocienda and Richard Williamson, the first two engineers on my Safari team.

We were sitting at a table just outside one of the double doors to Caffè Macs. I can’t remember exactly what we were talking about. If we ever discussed “the project” — as we would sometimes refer to it when not in our offices — it was always in quiet tones and extremely obtuse language since Safari was still double secret and known to only a handful.

Anyway, while we were all munching on sandwiches and salads, Ken noticed a familiar face looking for an open table near the other end of the long patio curving around the front of the cafeteria. It was Bud Tribble.

Among many other achievements, Bud was famous for running the original Macintosh software team and being a co-founder at NeXT, where Richard had worked years earlier. Bud had also hired me at the now defunct Eazel which Ken and I had both worked just prior to joining Apple. Bud, in fact, helped me get the interview at Apple with Scott Forstall.

So all three of us knew him well.

Bud finally sat down with someone else whose back was turned away from us, six or seven tables away. Ken said something like, “Hey, that’s Bud over there! Did you guys see him? What’s he doing here?”

Ken and I hadn’t seen Bud in months, not since Eazel shut down, so we were all making guesses about the reason for his visit. Tiring of the conjecture, I finally just stood up, cupped my hands and called out to him.

“Hey, Bud! Come over and see your old pals when you’re done to talking to that guy.” Bud looked up — slight pause — and “that guy” turned around to stare at me.

It was Steve Jobs. Of course.

I will forever remember his look — a slightly lopsided and tight-lipped half-smile, eyebrows narrowed as if to say, “I don’t know who you are but I won’t forget that.”


When I sat back down at least I didn’t say something smartass like, “I am so fired,” in front of my two engineers. Although that’s what I thought at the time.

Ken and Richard thought it was pretty funny once Steve turned back around. Until he did, I think they were holding their breath, too.

Spoiler alert: I did not get fired.

And about nine or ten months into the Safari project, Scott Forstall figured we should start preparing to review its features, user interface and various behaviors with Steve. This would have been during the late Spring of 2002.

By that time Safari was a for-real application which could actually browse the Web. But it wasn’t called Safari yet. That christening wouldn’t happen until December, later that year.

Scott briefed me on what to expect and essentially how to behave during my first meeting with Steve and the subsequent reviews. And it was clear I would not be at a second meeting with Steve if I fucked up during the first one.

So I listened to Scott very carefully and took his most excellent advice. In retrospect, it should have been obvious. At least the general guidelines. But there were a few particulars I never would have thought of ahead of time.

Let me be clear. Steve was not some mercurial ogre or cartoon autocrat. He was just very, very busy. He didn’t have time for “yes men,” the easily frightened, or those who didn’t know what the fuck they were doing or talking about.

In that way, he wasn’t different from any other executive. At least those with good sense.

Steve expected excellence. Which is why he so often got it.

He knew when something was right, but he didn’t always tell you what he wanted when it wasn’t. And he was very clear when he didn’t like it. Some misinterpreted this behavior as being overly critical, but it was actually time-saving clarity, albeit uncomfortable on occasion.

Design was an iterative process with Steve. Which meant that it could take several sessions with him to complete that cycle. So patience was not just a virtue.

When Steve asked you a question? You didn’t ramble and, whatever you did, you didn’t make up an answer. If you didn’t know, you just said that you didn’t know. But then you told him when you’d have an answer. Again, this was just good advice to anyone “managing up,” as they say.

When demoing something to Steve, you had to pace yourself. If Steve said, “Stop,” you fucking stopped. Hands down and waited. And you didn’t jiggle the cursor while he was looking at the screen. Certain death.

If he wanted to drive the demo machine then, by God, you let him drive.

And if your software crashed, you didn’t make excuses. You just made damn sure that particular scenario didn’t happen again. Ever.

Most of all, you remained calm. Because that was so easy. Oh, yeah.

Anyway, the other thing Scott warned me about was that Steve might test me. Meaning that he might push me a bit to see what I would do. Sort of like a pitcher brushing back a batter with the high hard one. Fun.

I don’t actually remember much about that first meeting with Steve. Sorry, folks. Probably nothing to do with nervousness, I’m sure. But I was invited back. So I must not have screwed it up too badly. No doubt because not much actually happened.

At one of those subsequent reviews — it might have been the second meeting — Steve did put me on the spot. With a direct in-your-face question. In fact, I think it was the first thing he ever asked me.

We were reviewing the bookmarks user interface in the yet-to-be-released Safari. At that time, all bookmarks were contained in a single, separate modeless window. It was homely but easy to implement.

And Steve didn’t like it. Probably because he didn’t want the complication of switching between windows. We started looking at how other Mac browsers did it. He didn’t like those solutions either.

So he turned directly to me, leaned forward with that laser-like focus of his and asked, “What would you do?”

Considering that what we just demoed was what I had done — or, technically, what my engineers had done — I was screwed. Everything else in the world seemed to fade away in a blur around Steve’s face, and for a moment I couldn’t think. But I didn’t panic. Or soil myself.

After a beat I said, “I actually like what Internet Explorer for Windows does, with the bookmarks in the same window as the Web content. I just don’t like how it puts them in a sidebar. There’s got to be a better solution than a sidebar, but I don’t know what that is yet.”

And instead of being annoyed at my lame-ass answer, Steve said, “Show me what that looks like.”

Of course, he put me on the spot again because we didn’t have any machine running Windows handy. Which shouldn’t be surprising. But I dodged another fastball by finding a screenshot online with Safari itself. Score!

I was in the major leagues now.

One great take away from working with Steve is that there’s not much anyone can do to intimidate me now. So, bonus.

After a few reviews with Steve, I was allowed to do the live application demos of Safari sitting right next to him.

Normally someone from the design team demoed screenshots or non-code prototypes in Macromedia Director. And many times they also demoed the real application. But Scott wanted me to demo the live code because he thought I would be able to avoid the fragile edges and therefore the crashes.

Later, I initiated one of my engineers, John Sullivan, with this honor and doom. But in the beginning, it was me.

Toward the end of Summer in 2002, we were making progress with Safari’s look and feel. While reviewing some of the affordances in the main Safari window again with Steve, we focused on the status bar.

Steve didn’t like the status bar and didn’t see the need for it. “Who looks at URLs when you hover your mouse over a link?” He thought it was just too geeky.

Fortunately, Scott and I convinced Steve to keep the status bar as an option, not visible by default. But that meant we had a new problem. Where should we put the progress bar to indicate how much of the page was left to load?

Before, the progress bar lived inside the status bar. So we needed to find it a new home. We discussed all sorts of silly ideas including making it vertical along the edge of the window.

Remember, this was back in the day before the spinning gear or other smaller affordances were widely used to indicate progress. In the age of barber-pole blue Aqua, it had to be a bar.

The room got quiet. Steve and I sat side-by-side in front of the demo machine staring at Safari. Suddenly we turned to each other and said at the same time, “In the page address field!”

Smiles all around. Which I followed with, “I’ll have a working version of that for you by the end of the week.” Over-committing my engineering team, of course.

But I didn’t care. I had just invented something with the Big Guy. True, it was a trifle, but there’s no feeling like sharing even a tiny byline with Steve.

The irony of that invention is that years later I tried to get the whole feature removed. Because even when precision testing showed that Safari loaded pages faster than any other browser, that damn in-your-face progress bar made it seem slower to the user. Its wonderful visibility was killing our reputation.

While we never did remove it, we finally changed the appearance and behavior of the progress bar. And that made me sad, even while it made me happy.

Sometimes during those design review meetings I got a glimpse of Steve that few were privileged to see.

Once a co-worker in the room acted a bit unfocused and bleary eyed so Steve paused the review to ask if he felt okay. That person apologized and responded that he’d been in the emergency room late into the night with his daughter after an accident at home.

Steve, visibly concerned, asked if it would be better to do the review later. The fellow thanked him and said no, we could proceed. Then Steve related a story about one of his own children who had a similar mishap a few weeks earlier and how much that had shook him, too. He told the fellow he could take off early that day, after the review.

Another time Steve himself looked a bit bleary eyed and apologized to all of us. He told us he’d been up all night.

The family dog had passed away sometime earlier so Steve and his family adopted a new puppy. After a few days with that strain, his wife told him it was his turn to stay up minding the animal so she and the kids could get some sleep. Which meant he had been sitting on the kitchen floor until morning with a cranky little dog trying to keep it quiet.

Even he thought that was funny, a good thing because several of us were trying not to laugh.

Yes, Steve could be intense at times. But he was also a real person. He had to deal with the ordinary and mundane aspects of life like everyone else. Maybe even enjoy them.

I’ve written before about being at 2003 Macworld keynote rehearsals, the event where Safari was unveiled. Also where Steve gave the first update on our new Apple Stores, at the time open less than a year.

Many technology and business pundits had already written off our retail effort claiming it would be a huge failure — yet another dumb-ass prediction about Apple. In fact, the stores had succeeded better than we expected. And Steve wanted to make damn sure everyone knew that. Especially the pundits.

During the two days of rehearsals, I sat about three or four rows away from the stage in the nearly empty presentation hall with Ken Kocienda. With the brightly lit stage in a dark hall, Ken and I were just visible enough for Steve or the support staff to see us if we were needed to troubleshoot the Safari demo.

But most of the time, we had nothing to do except sit there and watch The Master Presenter practice his magic.

Near the beginning of the first day Steve asked, “Is Phil here yet?” Meaning Phil Schiller, our head of Marketing. After a quick look around, somebody reported that he hadn’t arrived yet.

Steve explained to all of us that he was planning a little prank, we would see it first, and we had better not say anything about it when Phil did arrive later.

He then queued up the slides with the Apple Store update and inserted an extra special slide right at the end.

It. Was. Epic.

Laughter all around while we stared at the slide for a minute, a few moments to calm ourselves, and then the keynote was reset to the beginning. Great timing because that’s when Phil walked into the hall.

So Steve started the rehearsal, going through slides on the “Switcher” ad campaign and then the Apple Stores.

At the end of the retail update, he was supposed to conclude with something like “1.4 million visitors in the month of December alone,” but he added, “so to all of you in the press who doubted us…”

And then clicked to reveal his special slide — poster art I’m sure everyone has seen before — a 1940’s-style rendering of a grinning man holding a big mug of coffee next to his face with this text alongside like a world balloon:

“How about a nice cup of shut the fuck up.”

And then the best part — the part we didn’t know was coming — Steve paused, turned to his VP of Marketing and deadpanned, “What do you think, Phil? Too much?”

Ken and I struggled to keep from collapsing in another giggling fit and falling on the floor.

That Steve made such an effort to punk Phil not only meant he had a wonderful sense of mischief, but it was clear he thought well enough of Phil to know the man could take the joke. Which Phil did after a few moments of what I assume was panic.

Steve didn’t always wear blue jeans and a black turtleneck.

Sometime during my early years at Apple, I spoke with a veteran engineer in his first-floor office. He had his back to a window so I had a good view of the big path outside which led to Caffè Macs.

While looking out that window, I became distracted trying to figure out who was walking along that path with Jony Ive. The hand gestures seemed familiar, but… Wait. What the hell?

I pointed at who I saw out the window. My host turned around, looked and said, “Yeah, that’s how we know it’s really Summer — Steve is wearing short pants.” And apparently a short-sleeved, almost-tropical shirt with actual buttons.

Seriously, I didn’t recognize him at first. There were always a few strangely dressed folks around campus, including one fellow who regularly wore a plaid kilt. And I’m not even sure that guy was Scottish.

At least Steve looked like he was cool even if that wasn’t a particularly cool look for him.

And in retrospect, he did have a better tan than most of the rest of us geeks.

In my later years at Apple, I probably saw Steve less often than the early days of Safari development. Partly by circumstance and partly by my choice.

I had fewer new applications to review with him and often when I did, I tried to get someone on my staff to do the demo instead of myself. This made for less crowded reviews and it gave other folks experience dealing with Steve. I didn’t want to hog all the glory. Or all the doom.

Once there was a longer than usual stretch of time where I hadn’t been in a meeting with Steve. In fact, during that period, I didn’t recall seeing him in the cafeteria or walking around campus either.

And then I was called to participate in a design review with Steve.

When I walked into the meeting room I was shaken. Steve looked thin and haggard with an unhealthy color, like someone’s grandfather.

Just as unsettling was his demeanor. He seemed tired and without his usual focus.

We all knew Steve was sick. He had told us about the cancer. But until that time I didn’t realize how much it had ravaged him.

I don’t even remember the subject of that design review. When it was over, I left quickly and headed toward my office.

Realizing that what I saw had bothered me so intensely, I stopped at Darin Adler’s office rather than my own. I needed to talk to someone about it. As a manager, you should never share such things with someone who reports to you. But I had known Darin for years and trusted him not to freak out.

And he didn’t. But at the end of the day there wasn’t much for either of us to do except hope for the best and prepare for the worst. And get back to work.

Which is why, months later, I was actually relieved to hear that Steve would be getting a liver transplant. That idea scared a lot of folks, but I thought it felt hopeful.

When he returned from the operation, he still didn’t look like the Steve of old, but he looked much better than that last time. So much better that many of us hoped he would be with us for quite a while.

The last time I saw Steve we talked about Safari.

This was earlier in the Summer of 2011 before he resigned. Steve had been on another medical leave since January of that year. Getting thinner and weaker again, he still came into the office to do what he loved.

At a design review of a new Safari feature, the subject of the Windows version came up. Steve wanted to know what we could do to make it better and more competitive.

By this time I felt pretty relaxed being around Steve. So relaxed that I decided — what the hell — I’ll just be blunt.

Besides getting more folks at Apple to support development of Windows components the application depended on, I told him this wasn’t an engineering problem — I really needed advertising. And that Safari for Windows couldn’t compete with Chrome when Google put a download button for it on their home page and spent big on television, print and Web views.

Scott Forstall, also in the room, backed me up on this. Another reason Scott made a great boss.

Darin Adler, now running Safari and WebKit for me, had the presence of mind to add that the need for promotion wasn’t just a Windows Safari problem — Mac Safari would benefit from it too.

We were all huddled in the little design review room, some of us in chairs. I sat directly across and just a few feet from Steve.

He seemed to be thinking about the problem and the proposal for some time. He was actually considering this. And that was heartening. After all, Steve was famous for changing his mind.

But, in the end, he said no.

While not harsh about the decision at all, he didn’t really elaborate on the response. I assume his reason was focus. By then we had focused on iOS, iPhones and iPads. Hell, I don’t think we even advertised Macs or OS X on television at that time.

I wasn’t thrilled, but I could understand.

And when you can get the time for thoughtful reflection on your idea from a visionary like Steve — well, that’s a good day.

A few months later, I was home sick in bed with the flu, a little out of it due to medication and not at all aware of the news.

It’s not like all of us didn’t expect it, but it surprised me when Scott called to tell me that Steve had died. A courtesy that I’ve always greatly appreciated because I know how difficult it must have been to talk then.

And it seemed better that Steve passed away at home with his family around him. Because that’s how a good man goes.

After I called my staff and made sure they were aware and they were okay, I told them to let any of their team members leave for the day if they thought that was best. Most of them stayed anyway because they didn’t want to be alone.

Then I laid back down, alone, and selfishly realized how fortunate I had been to have known this man, if just for a little while.

A podcast about things you people wouldn’t believe

Back on September 7 of last year, I sent Rene Ritchie and Guy English an email titled “Some ’80s films for your consideration.” This was shortly after our popular “Dune” podcast (and before the always insightful Matt Drance would join us to discuss “RoboCop“). At the time we were trying to come up with another geek movie to blather on about for 90 minutes.

The email was a list of 40 films that I thought were significant and timeless. On that list was “Blade Runner.” This is what I had to say about it in the email:

This is the biggest impact science fiction film of the ’80s, as far as I’m concerned. Everything changed after this one. In fact, the creators of RoboCop were inspired by it. But maybe it’s already been over-analyzed to death.

I wasn’t being hyperbolic. Every dystopian-cyberpunk-noir thriller that would follow has “Blade Runner” in its DNA. And there were a lot of them. Some might not exist at all if it weren’t for the singular and prescient vision of Ridley Scott and his collaborators.

Look at “Ghost in the Shell,” “Dark City” and “The Matrix.” Would those be the same without “Blade Runner?” I doubt it. Even Ronald Moore has said that the Cylons in his re-imagined “Battlestar Galactica” owe much to the replicants of “Blade Runner.”

That fear of everything already having been said about “Blade Runner” — at least everything of consequence — is why I had it so far down the list.

So I asked Rene to put off doing “the big one” for awhile. Maybe I thought we needed to first earn the right to discuss it. Who knows. For me, it was intimidating.

Eventually I realized that doing the podcast is not necessarily about saying something new. It’s about saying something true. That took the pressure off. Because I truly love this movie. I hope that comes through.

You can listen to our celebration of “Blade Runner” here.

As you wish, another ’80s movie podcast

If you enjoyed the “RoboCop” show that Rene Ritchie recorded with Guy English, Matt Drance and myself last month, then we have another ’80s movie diversion for you — an inconceivable 1 celebration of “The Princess Bride” that the four of us recorded last week.

That makes three ’80s movie podcasts so far, starting with “Dune” way back in August. And we plan to do still more. Seriously, one of these every month. We’re just crazy like that.

We’re focusing on ’80s movies because an ancient relic of that era, me, is available to do stream-of-unconsciousness commentary with folks who were probably children back then. And people wonder why I’m called “Gramps.”


  1. See what I did there?

He who controls the Spice, controls the podcast

I did another podcast last week. With my usual broadcasting buddies, Guy English and Rene Ritchie. I’m not sure why they keep inviting me on their various shows, but I have so much fun talking to them it’s not like I’m going to say “no.” Even if they ask me again. Especially if they ask me again.

Anyway, this time we didn’t even talk about Apple. Much. No, this podcast was entirely (yeah, right) on the subject of “Dune,” the classic Frank Herbert novel and the surreal David Lynch film. In the process, I suffered a serious ’80s flashback and we had trouble staying on topic. No doubt due to all of us being jacked up on Melange. But even with all that Spice, Guy and Rene managed to sound articulate and informed while I talked over everyone else. Just like usual.

Why in God’s name they asked me to join them for a “Dune” podcast is still beyond me. It’s not really my area of known or even suspected expertise. So I just made shit up like any other media reviewer. Whatever works. I think this whole thing started as a bad run of “my name is a killing word” jokes between the three of us and a few other folks on Twitter back in June. And then it got completely out of hand so we had to record it.

Rene told me he hardly edited this one at all, other than clipping the beginning when we were futzing around with our microphones and exchanging mundane stuff about our personal lives. So if you want to hear me unvarnished and raw, I suppose this is as close as it gets.

The Spice must flow. And it did.

Remembering Penny


This is one of my favorite photos of Penny. She’s hard at work on one of the three chores she loved best, sniffing. The other two being eating and sleeping, of course. If all of those can be considered a career, then Penny was a seasoned professional.

There’s another picture here with her sister, Casey, when we celebrated Penny’s fifteenth birthday last Summer. That was a very happy day for all of us. Frankly, we never thought Penny would last that long. Every day after that was a gift. And we cherish them all.

Today would have been Penny’s sixteenth birthday.

Sweet sixteen for a Labrador Retriever is more like 99 for you and me. And toward the end, Penny did seem that ancient. But I like to remember when she was still black as a hairy coal, filled with mischief and energy, ready to chase those pesky cats or sneak away to find one of their feline bowel snacks. You dog people know what I mean.

Penny would eat just about anything. One time she chewed into my son’s backpack and swallowed two handfuls of foil-wrapped candies. Stomach-pump time for any other breed, but not Labradors in general nor Penny in particular. As they say, it came out all right in the end. Foil-wrapped, too. Watching her remanufacture those candies the next morning was an inspiration to anyone who’s ever been constipated.

She loved to eat healthy foods as well. Years ago when we worried that she might be putting on a little too much weight, we started feeding her carrots, broccoli and cauliflower as snacks. She loved them as much or more than her kibble or biscuits. But we quickly had to back away from that strategy due to the risk of a methane explosion. The cauliflower was especially dangerous and unpleasant.

But Penny loved the smells she made. Just like she loved all the odors. She didn’t even have to bury her head in the grass or dirt to enjoy them. At times, she would stand in our yard on the hilltop, leaning into the wind, her nose quivering, concentrating, trying to suss out all that lay below her. So focused. I never interrupted her when she was like that. I didn’t want to break her spell.

Another passion of hers was walking. Up the block and down the hill, all around and around. No doubt to get closer to whatever she had smelled from her perch above. Every morning after breakfast she wanted to get out and check her pee-mail. We would go strolling to investigate the neighbors, the deer, fresh lawn clippings, some spilled refuse, perhaps a varmint or two. And she never tired of it. Even treading the same paths every day. It was just as exciting to her as dog food.

Meetings were always fun for Penny. She could get scratched, smell some new humans, and pick up a few sympathy snacks. She never bit anyone nor threatened a child. Although she did lick a few of them pretty thoroughly. She certainly loved my son — they grew up together. But it took her awhile to accept Casey, our other dog. Penny had us all to herself for so long that I think she was a bit miffed at the newcomer. But once Casey was no longer an annoying puppy, they became family. Eventually they would curl up asleep next to each other.

Penny had a rich, double-thick coat of fur with a subtle but stylish wave running down the middle of her back. Beautiful and therapeutic. When I would come home from a long day at work — after she licked me repeatedly in my face — I would place my hands on her hairy head or fuzzy sides, scratching her, tickling her, stroking her back. And soon all the tension would leave my body, and all my worries would dim from my mind. Every time she would give me this gift. Every time.

She was dedicated to sleeping. Even as a puppy, Penny seemed to spend over half the day at it. And she had a snore that would shame an apnea-suffering fat man. Her dreams could be loud too. While not exactly violent, she sometimes moved and shook, twitching her legs, tail and nose. For a long time she slept on the bed at our feet. I always liked her close by, even if she was noisy and in the way. It just seemed right to have her there.

In her later years, when she could no longer leap up safely on the bed, Penny would curl up in the closet. Tucked away like a shadow in the shade. That little room became like a burrow for her, and she sought it out for comfort. And as I moved around during the night, I took comfort too in the gentle buzzing and creaking emanating from the darkness between the clothes and the hangers.

Now, when I get up in the middle of the night, I still pause to check on her in that closet. To make sure she’s okay. To make sure she’s safe. I thought I heard her collar tags jingle. Didn’t I hear it? And every time I’m sad all over again.

She’s gone away forever.

Toward the end of March, Penny couldn’t walk or even stand. Her bowel and bladder episodes were not at all regular. But on her last day she wanted a bit to eat again. So we bought her a bacon burger from Five Guys and fed some of it to her in little pieces. How many of us will have bacon on our last day?

We carried her out to the front lawn and let her lay on the grass so she could sniff the air and feel the breeze. A few of our neighbors came around to hug her and say goodbye. She was a celebrity on our block.

At the end of that day, my wife, son and I took her to the same room where we said goodbye to Casey. We kissed her, we hugged her, we stained her still beautiful coat with tears. And with all of us gathered around, and with her head resting on my knee just like Casey had done, Penny passed away from this world.

We placed her ashes in a little oak box on the mantle next to where Casey also rests. Together. They’ll always be my little girls. But I miss them so very, very much.

We love, you Penny. And we’ll never forget you. Find Casey and be at peace. Be at peace.

What I’ve been doing lately

A few words of explanation to those who are asking where I’ve gone and what I’ve been doing the last few months.

Sometime in March, shortly after I recorded my first “Debug” podcast, our dog Penny took a turn for the worse. My family and I struggled with her illness for long days and longer nights. And then we made a very hard decision. She passed away just before the month was over.

I won’t write her eulogy now. She deserves better than this haphazard post. But I hope to publish something in a few days, on what would have been her sixteenth birthday.

We were devasted by her loss. More so than I realized at the time. I unplugged myself from the Internet and most everything else I was doing then. I don’t even remember much of what happened the following week.

And then I realized I had to prepare my speech for the Úll conference starting on April 12. I’m thankful for the pressure of that deadline and my own natural tendency to procrastinate. It got my mind off grief and straight on to panic.

Now, public speaking doesn’t bother me much. Years ago I trained as a minister — a whole other story. But when you’re twenty years old, in the pulpit, and telling people four times your age that you have the absolute Word of God for their lives today — well, everything else is downhill from there in terms of pressure.

But I never want to do any kind of presentation without being prepared. The audience deserves better than that. So that had me worried. And blessedly focused.

What did me in was the way I wrote the speech. I scribbled down a 4,000-word outline — just an outline, mind you — and then proceeded to record myself trying it out. When I hit the 90-minute mark I knew I was screwed because we were limited to only 25 minutes at Úll. I figured I might get away with a half hour, but they would march me offstage if I went twice that long.

So it was cut, cut, cut and cut some more. Rewrite, rewrite, rewrite. Again and again.

I was still working on that speech the day before my wife and I got on the plane to Dublin. All the constraints, especially the time limit, actually improved it.

But the process of completing it burned me out on writing.

And then suddenly there was Úll — The Conference. I capitalize it because it’s simply the best event I’ve ever attended.

Not only are Paul Campbell and Dermot Daly crazed saints for hosting such a celebration, but how they attracted all these wonderful people to operate it, speak at it, and attend it — that’s a stunning accomplishment. You need to attend next year. Trust me.

And the venue? Perfect. Dublin is now one of my favorite cities. Some say you can’t swing a cat in that town without hitting a church or a pub. But it’s not just religion and relaxing there. Ireland is thick with history and gorgeous to behold. And after you’ve worn yourself out absorbing it? My advice is too absorb a Guinness and some pub food.

Every Guinness I’ve drank in America tastes like piss compared to the brew — like some magical beer milkshake — that they serve with such expertise and pride there. You have to try it.

But it was the people in Dublin that impressed me the most. Not only did my wife and I make wonderful new friends at Úll, but everyone else we met in Ireland were just so… nice. Even the cab drivers.

So Úll and Dublin were great. And then we got back from that 15-hour flight to find that Penny’s ashes had just been delivered to our home. It was like a punch in the gut. All those feelings were back.

Now, it’s not wrong to mourn and miss someone — and she was a some-one, not a some-thing. If you don’t, did they really matter? But you can’t dwell on just the loss.

That’s when I decided to throw myself into a new project. If I wasn’t so burned out, it would’ve been a writing project and you could’ve already read that here.

I say on this website that I’m a recovering programmer. Well, I’ve really fallen off the wagon this time.

Suddenly, I got a wild hair up my ass about MPlayer, the command line-based, cross-platform media player that geeks and other encoding freaks like myself use incessantly.

Even though it’s a command line program, it still presents a Cocoa UI when displaying video on OS X. But the various quirks and bugs in that UI had been getting on my nerves for a long time.

So I wrote a whole new front end for it. Not by patching it. But by running it as a background process, capturing its output and then dynamically presenting a new UI from yet another command line tool.

Stupid, I know. But it was a wonderful distraction. And the damn thing works just fine.

I call it “MPlayerShell.” The source code is available on Github and, thanks to Valerii Hiora, it’s installable via Homebrew too. You can read all about it here.

This is the project I talked about, but didn’t name, on my second “Debug” podcast with Guy English and Rene Ritchie. Props to Rene for leading off the show with one of my “F” bombs — the man never buries a good lede.

Anyway, the whole process of writing MPlayerShell took me nearly three weeks. Yes, I’m the world’s slowest software engineer. But part of that process was 1) Figuring out MPlayer’s peculiar APIs and behaviors, and 2) Learning to write in Objective-C on OS X again. Seriously, I hadn’t done that in years.

Now I’m on a mission. I must do more coding. That monkey is not crawling off my back anytime soon.

And I know exactly what I’m going to write.