Posted by & filed under Personal.

What a year it’s been.

Exactly one year ago today, Shawna dropped what she was doing to drive up to the offices and take me home, and then to the hospital.

I remain full of gratitude to be alive and well. I may write more later but need to hit the road and drive home now.
But I wanted to mark the occasion, and to thank everyone who’s helped me and my family get through this year.
Thank you, from the bottom of my heart.

Posted by & filed under How To, Technical, Work.

There’s a tool that can cut your image filesizes in HALF without meaningfully degrading their appearance. But hardly anyone seems to be using it.


[Disclaimer: I had intended this to be a lengthier and more technically detailed post about image optimization. I saved a draft of it two months ago… then got too busy with other things. I’m finally just publishing this abridged version, on 20131119.]

I’ve spent a few years paying pretty close attention to web performance optimization best practices as they evolve. Some techniques are counterintuitive, complex or subtle. But despite the ongoing, rapid changes in front-end engineering, the simplest and most obvious solution of simply sending fewer bytes over the wire remains one of the most critical to faster load times. Looking at a typical web page, images account for the largest proportion of bytecount:

Before (20,803 bytes)

So it makes sense to try harder to shave bytes off our image assets. If you are simply using Photoshop and its “Save for Web”, you’re missing a huge opportunity to make your website load faster. This hurts the UX, and in the enterprise it is hurting your bottom line too, with unnecessarily inflated storage and bandwidth costs. If you use a tool like to reduce the bytecount by another 5 or 10%, that’s a good start, and it certainly helps. But I recently stumbled upon a tool that is radically better at trimming the fat. Enter ImageOptim. Here is the same image you see above, after being run through ImageOptim:

After (14,298 bytes)

The 2nd image is about 31% smaller than the 1st one. But they look identical. Under the hood, ImageOptim leverages several utilities for compressing binary images. It goes beyond stripping metadata and color profiles. In some cases what it does is not technically lossless… yet the images look the same, even to keen designers’ eyes on huge high-res, high-DPI monitors. At my workplace, running ImageOptim against tens of thousands of images, we reduced filesizes by about 56%! That is just unbelievable. I shared these exciting results with my brother (who is in a fairly senior position at Facebook) and he told me it started a discussion leading to changes in FB’s asset pipeline, with anticipated bandwidth cost savings in the millions of dollars per month. This is a big deal. Some of the underlying utils (like pngquant) have improved by leaps and bounds in recent months, but so far it’s gone unnoticed by the community at large. Webperf professionals work so hard to shave 3-5% off rendering times… but here’s a tool to make gains that go way, way beyond that. Cutting the filesize of all your images in half is a game-changer.

Note, the image I used here came from, a fantastic resource for understanding web technology trends. It was created by Steve Souders, among the world’s most famous experts on web performance. Yet even that site’s assets are under-optimized. It seems to me there’s a huge opportunity here, one that’s being missed by the large majority of the webdev community. I’m not sure why this is.

Finally, here’s a detailed breakdown of various tools, showing ImageOptim to be a pretty clear winner in most cases:

Happy optimizing! 🙂

Posted by & filed under How To, Technical.

Lose your customized gmail inbox settings after trying the new category tabs? I did. Here’s how to restore them.

I tried Gmail’s new inbox tabs, didn’t like them, and tried to revert back to my original settings by unchecking all the tabs. But there was a surprising, unwanted side effect: my “inbox type” reset to “default”. It had been years since I’d changed this, so it took me a little while to figure out how to get it back. (I like my inbox with the starred messages above everything else.)

If you are having trouble getting your old settings back after playing with the new tabs, this should do the trick:

1. Click the “Settings” gear icon, then uncheck all the optional tabs in the “Configure inbox” menu.
2. Click the “Settings” gear icon again, then go to Settings > Inbox and select Inbox type: “Starred first” (and whatever other options might have reset to their defaults).

Hope that helps someone out there. 🙂

Posted by & filed under Personal.

No news is, as they say….

Happy to report an uneventful MRI and oncologist visit today. Dr Dietrich confirmed I’m doing great and there is no sign of recurrence.

It puts the flooding and never-ending kitchen renovation in perspective. So grateful to have only petty temporary complaints right now.

I hope you’re all staying cool.


Posted by & filed under Culture, Personal, Quotes.

Here is the toast I gave at my brother’s wedding on Saturday, Aug 3, 2013:

My dear brother,
Thank you for this huge honor, naming me your best man and giving me a chance to share my thoughts and feelings. I have a few words for you, a few words for Rebecca, and a few words for you both.

It’s been interesting to reflect on our relationship and how it’s changed over the years. My job as your big brother is *supposed* to be about showing you the way. I think I’ve done that, to some degree, since we were very young.
But not always in the most obvious or direct way.
In fact, for much of your life I think the largest influence I’ve exerted on you may have been in showing you what *not* to do. Examples abound.

As kids, I was skateboarding in traffic, holding onto car bumpers on Mass Ave, while you were learning to program computers. As teenagers, I was busy worrying about how to impress the girls while you (with much greater success) were actually impressing the scientists at MIT’s Lincoln Labs and doing antimatter research at Harvard. In college, I won drinking games while you won programming competitions. I think I had a natural talent for showing you what not to do. And you were probably smarter than you realized to learn from my mistakes and choose a different path.

In a lot of ways, you’ve been more like the big brother. When it comes to computers, you’ll always be able to code circles around me. Professionally speaking, you’ve got many years and whole categories of entrepreneurial experience on me. I’m grateful not to feel a sense of sibling rivalry about it, because if it were a competition it wouldn’t even be close. I’ve looked up to you for a long time in this realm and doubt that will ever change. Your brilliance and energy are contagious and wonderful. As is your huge warm heart and desire to teach and to share. I think you’re a hero of sorts to a lot of people, and I count myself among them. You are amazing.
So it was more than a little flattering when, 13 years ago, you spoke at my wedding and told everyone that you looked up to me. Yes, I still remember your speech. You said you hoped to emulate me by living in a way that embraced enjoying life to the fullest. Of course at that point you were probably referring to my then-recent adventures in Europe with Shawna. If there’s a marker in my personal history, a signpost marking the point where my decision-making started to improve, marrying Shawna has to be it.
Speaking from experience, marrying your best friend, someone you love and respect, someone who is every bit your equal and who is capable of things you yourself are not, is an excellent decision. So, brother, maybe we’ve reached a new phase of our relationship, where some of the choices I’ve made as an adult can actually serve as a reasonable model for you to follow. When I look at my amazing wife and incredible daughters, I know I’ve done something right. Possibly it’s just unbelievably good luck. Whatever it is, I wish it for you. [More on that in a bit. But first I want to say something to your lovely bride.]


Dear Rebecca,
Here we are, at long last. It’s been quite a year-plus for our family, as you well know. Getting to know your SO’s family and becoming a part of it isn’t easy in the best of times, let alone when there is suffering and loss. Your willingness to be there last year, and your efforts to help, did not go unnoticed. You probably don’t even remember this, but at the reception following my mother’s funeral service, I’d been standing for about an hour greeting the many, many people who’d come to pay their respects. Unasked for, and without saying a word, you brought me a much-needed glass of cool water. Sometimes it’s the little things that reveal someone’s character. To me, that thoughtful action spoke volumes. Sometimes there isn’t much anyone can do. But during this entire tumultuous and difficult chapter in my family’s life, you have done your level best to take care of us in the ways that you could. And most of all, you’ve been taking care of David. Thank you for that. Please keep taking care of him. I’m confident you will. And welcome, officially, to the family.


To both of you, I want to pass on 3 key pieces of advice given to me and Shawna at our wedding by our wise and dear friend and pastor Bob Ludwig, who said:
* Be quick to say “I Love You”, early and often.
* Be quick to say “I’m Sorry”.
* Give each other room to change and grow. Things will change; marriage is about navigating that change together.


Finally, I wanted to mention to everyone else that for years, David has talked about whisking Abi and Harper away on grand adventures with Uncle David. I can’t blame him; my daughters are a ton of fun. Well, David, now that you’re married I can finally say in no uncertain terms: if you want to spend summers playing with children — ….. MAKE SOME OF YOUR OWN!!! :) I love you, little brother. Congratulations.