Sweet sixteen for Safari and WebKit

On June 25, 2001, I arrived at Apple Computer to lead the effort in building a new Web browser. It was also Ken Kocienda’s first day on the job, both at Apple and on that same project with me.

For that reason, Ken and I have always considered our start date to be when Safari and WebKit were born. Not any other position on the calendar. Only June 25, 2001. We were there. We should know.

Sorry to belabor the point, but every few years I need to clarify exactly when that birthday was because someone from outside the project mistakenly thinks the anniversary is a random internal milestone we passed later on. Ugh. Please never do that.

Anyway, I’m proud of the work Ken, myself and the other original team members put into the project. And I’m just as proud of the effort by everyone else who’s worked on it since then. It’s a delight for me to see the current Safari and WebKit team still kicking ass.

So, happy sixteenth birthday, folks. Keep going.

Hot enough for you?

For some strange reason I checked the temperature today in Brawley, California, one of the many small towns in the Imperial Valley where I grew up.

It’s over 110 degrees Fahrenheit there as I write this. With a forecast for 123 degrees later today. The folks in Brawley sure know how to celebrate the summer solstice, don’t they?

Tragically, this assault on the mercury is not all that odd for June in the Imperial Valley. Just wait until July if you want to see some really lethal weather.

I live in the Bay Area now—thank god!—and I’m always amused when people panic or think they’re being punished if gets over 90 degrees. Seriously, folks? I wear a hoodie for 10 months of the year around here because it’s so pleasantly cool. And by “cool” I mean when it’s 72 degrees or less.

Now I can take the heat a little more than some, but I’ll admit 123 degrees is really fucking hot. When I was a kid in Brawley during the summer, we just didn’t go out in the middle of the day—that being after 9 a.m. or before 7 p.m. No, sir! Even the stupid children stayed inside hugging their air conditioner vents.

But 123 degrees? Step outside in an atmosphere like that and it’s as if someone rolled a Buick into your chest. Never mind that your lungs would be on fire if you could actually breathe then.

Still, it’s the rapid change in temperature from leaving the safety of even moderately cool interiors that will knock you on your ass. Or worse, send you tumbling forward unconscious for a face plant on pavement that might as well be on fire. I’ve seen this happen to people multiple times. It’s not pretty.

And realize that it’s not just eggs you can cook on the sidewalk when it’s that goddamn hot. You can pretty much fry a steak, too.

So, fellow Bay Area residents, please stop complaining about the weather. It’s not that bad. Yet.

That bleeping kerfuffle

After I posted that link to my latest podcast with Rene Ritchie, several folks alerted me via Twitter that all my colorful metaphors had been “bleeped” on the audio.

I didn’t realize that because I hadn’t listened to the recording myself. And I don’t normally listen to my own podcasts because… that’s just sort of creepy, isn’t it?

Obviously, that means I don’t mix the audio either. I don’t do that because 1) I don’t have relevant experience at it, 2) I’m really lazy and 3) fine folks elsewhere do all the hard work for me.

My apologies if you didn’t get the whole “Melton” experience you were expecting. Rene tells me that episode was an accident and our next podcast won’t be censored. “Let Melton be Melton,” as he likes to say. Plus, we might just release an explicit version of the current show.

Has everyone calmed the fuck down now?1

OK, here’s the thing—I was not upset at all about being censored.

The show might be called “Melton” but that’s only because 1) Rene Ritchie is a generous man, 2) I’m vain and 3) we couldn’t think of a better name after we recorded the first episode.

I consider the whole enterprise as something Rene and I do together. It’s our show. Not my show. If anything, I’m the co-host. This is exactly why I call Rene (and Kelly Guimont for our “Westworld” podcast) “boss.” I’m not trying to be funny, ironic or insult them. I’m reminding myself who really is in charge. And who does all the hard work.

Seriously, I just talk into a microphone, folks. And it’s a microphone that Rene gave me! A really nice Røde Podcaster model, too.

Talking is easy and I continue to be amazed that anyone out there cares about listening to what I have to say. I’m honored that all these nice people enable me to broadcast my various musings, opinions and rants.

So if Rene and anyone else at iMore—or Jason Snell and anyone else at The Incomparable—decide to censor my many and frequent vulgarities, it’s their call. They’re the publishers.

And being censored won’t damage my “brand”—whatever the hell that means. (Actually, it scares me thinking about what that means.)

Yes, words matter. Exact words even. But the truth is that some people—whether they admit being offended or not—have difficulty listening to vulgarities. Especially at the pace I spew them. A friend of mine told me he’s sad that he can’t listen to my podcasts in his car anymore now that he has kids. I get it. There are valid reasons to hit the buzzer.

As anyone who’s adventurous enough to follow me on Twitter knows, I’m saltier than most sailors. I don’t plan on changing that there or on this website. But if someone needs to filter me a bit elsewhere, I’m fine with that.

  1. A tired catchphrase which really needs retirement. I should know. 

Peter Abernathy speaks

Anyone who listens to me on other podcasts1 knows that I might be, oh, just a bit fanatic about “Westworld.” And my favorite performance from the very first episode—among an array of other favorites—was by veteran character actor Louis Herthum.

His unsettling but riveting performance as Mr. Peter Abernathy in one particular scene still creeps me the fuck out! All the while sitting naked like a piece of machinery oposite Sir Anthony Hopkins and Jeffery Wright.

That’s some acting chops, folks. And apparently Hopkins thought so too.

Anyway, Herthum has been pretty quiet all year until Sarah Rodman of the Los Angeles Times sat him down for an interview. And not just about “Westworld”—the man continues to have a full and fascinating career.

But Herthum did manage to spill the beans that filming for the second season will begin—yay!—in July. Also, now we know what Jeffery Wright really said to him as he shuffled into cold storage.

Here’s the video—not violent but still a delight.

Via Westworld Watchers.

  1. That’s a link to “Greetings from the Uncanny Valley” hosted by Kelly Guimont and co-hosted by me. We’ll be cranking up the re-watch shows any day now, so be sure to join us! 

My reaction to WWDC 2017

Episode number 12 of the whenever-the-hell-we-feel-like-recording-it “Melton” podcast with Rene Ritchie and I is now available. At least—as of this posting—it’s available on Overcast. Apparently the iTunes podcast crawler just can’t keep up.

This episode is called “Zero regression” where we discuss my reaction to WWDC 2017, the continued awesomeness of the Safari and WebKit teams, HEVC transcoding and that new bullshit book about iPhone history. Enjoy.

Under new content management

Today I returned to my roots and replaced the WordPress installation here with free-range, handcrafted, artisanal HTML, this time statically generated by Nanoc. More on why I made that change later. For now, please take note of these caveats:

  • My RSS feed has moved back to https://donmelton.com/rss.xml but you should be automatically redirected there if you’re using the old WordPress URL. Of course, it wouldn’t hurt to update your subscription bookmarks.

  • The <guid> elements for older posts in my RSS feed will retain their whacky-ass, WordPress-generated values so your reader software shouldn’t be confused into thinking that 10 new items just appeared. But cross your fingers on that one because some RSS readers are easily confused.

  • If you subscribed to my old comments-only RSS feed then you should’ve already noticed there haven’t been any new comments in over a year—I disabled that feature—and after today’s update, that feed URL now answers to the name “404 Not Found.” But please enjoy the bonus content I included on the new “Not found” page.

  • Several other URLs—mostly WordPress-generated paged archives for the main index and various years, months, days, etc.—also respond with “404 Not Found” now rather than a redirect to https://donmelton.com/archives/. This is intentional because I want those pages removed from search engine results soon.

  • Search results here are once again provided by DuckDuckGo. However, I’ve added a handy “Favorites” section to the top of my “Archives” page so you can easily find popular essays like “Memories of Steve.”

  • My “How to contact me” page has reverted to an intelligence test where you suss out my email address. Sorry, but I removed the WordPress-generated form which challenged users to include their email address—a task which was sometimes problematic.

  • The new—and far simpler—CSS here should still provide a responsive and mobile-friendly presentation. Please let me know if that’s not the case.

  • The absolute minimum of engineering effort was put into support for legacy Web browsers. But please let me know if your evergreen browser—i.e. Safari, Firefox, Edge or Chrome—doesn’t seem to render content correctly here.

  • While I do employ Darth Google for Web analytics, I finally added an 'anonymizeIp' line to the JavaScript tracking snippet, making at least the appearance of trying to protect your privacy.

So, after all that work moving this website to WordPress—much of it documented here—why am I moving back to static HTML? And why use Nanoc instead of my own generator, Magneto?

Well, I’m a dinosaur who couldn’t make the transition to the highly-regarded, Web-based editor in WordPress. My writing workflow starts in BBEdit—my preferred text editor for the last 25 years—formatted as Markdown. With WordPress, I wound up pasting my posts into its editor afterwards and then cursing—even more than usual—while I translated them to Texturize format.1

That said, WordPress does work as advertised and it’s simpler to maintain than most people think. For the most part, it even updates itself—especially with fixes for critical security vulnerabilities.

But my big problem with WordPress was performance.

Using this website while logged into the WordPress dashboard was excruciatingly slow—often a three-second or longer wait for each page. And without being logged in—even with the WP Super Cache plugin enabled—each page took over twice as long to load as this current static website does. And Gramps don’t like sloth.

I suppose I could have written my own WordPress theme to help solve some of the performance problems, but after looking at the design requirements I decided the easiest solution would be returning to a static generator. Seriously, writing a good WordPress theme is a non-trivial effort.

As for Nanoc, five years of contributions from multiple developers have made it faster and more capable than Magneto, a poorly maintained project from a single knucklehead (me). Plus, Nanoc doesn’t suffer from the my-way-or-the-highway design that plagues so many other static generators.

In retrospect, I think I installed WordPress just so I could play with it. But playtime is over now. Back to work.

  1. Yes, I know there’s a Markdown plugin for WordPress, but it has… issues. 

Almost famous, now for transcoding

Last week at the Beard Bash (thanks, Jim and Rene, for the invitations) I was surprised by acknowledgments from some other attendees—not the attention itself, but how they recognized me and what they wanted to discuss. It was delightful.

During those rare occasions when I visit developer conferences or parties, I usually just blend in with the hobo-nerd style of everyone else. So other than being obviously older than average, I don’t stand out in a crowd. Blandness is an underated superpower. Take note, flashy mortals.

Anyway, I would say something out loud at the party—usually to my wife because she attends these events with me—and invariably someone would join in with, “Hey, are you Don Melton?” And then ask me about… no, not Safari and WebKit… my Video Transcoding project. Seriously.

It seems that my voice, after blathering on so many podcasts for the last few years, is now quite distinctive to some of you. Maybe it’s my demented-gorilla laugh that gives me away? I don’t really know.

Along with thanks for doing the project—and that appreciation is much appreciated—questions about transcoding came from both home enthusiasts and professionals. There was also quite a bit of discussion about High Efficiency Video Coding (HEVC), which the Fruit Company announced support for earlier in the day.

Here are a few things I said to the nice folks there and to some others later online:

  • There’s no such thing as an archival transcoding. That’s not what transcoding is for. It’s about portability. And it’s always a tradeoff between quality and size. Not to mention time. Your original DVD or Blu-ray Disc rip is your archival version. Storage space is cheap. So don’t throw away your original rips.

  • Stop trying to mimic Netflix engineering if you’re only transcoding your home disc collection. You don’t have the server farm or time to spend on that. This is exactly why I created the transcode-video tool. Even its default settings will deliver high quality at a reasonable speed without overheating the planet.

  • Hardware-based transcoding, e.g. Intel Quick Sync Video, is a great solution for real-time applications like video conferencing. But at the moment it means lower quality when applied to your disc collection. Of course, that may change someday. In the meantime, everyone needs to calm the fuck down.

  • HEVC/H.265 is clearly the future. It will eventually replace H.264 as our preferred video format. But that doesn’t mean such a future is here yet for home transcoders. The open source x265 encoder is making rapid progress, but it’s still not entirely practical for that domain. And it remains to be seen whether the HandBrake, FFmpeg or Libav teams will integrate Apple’s HEVC implementation. My guess? Not anytime soon.

So I totally geeked out at the Beard Bash but with transcoding geeks this time. It was worth it—even having to drink all that Heineken.

Design before you “minify”

In a fit of frustration the other evening, I posted this on Twitter:

I’m not really a curmudgeon, I just play one online. And apparently folks are watching my show because that one-off rant received a lot more “likes” and “retweets” than I was expecting.

But some were confused by what I meant. So I’ll explain.

That vulgar epiphany came to me while I was measuring the embarrassing sloth of this website1 and examining the sluggish behavior of quite a few others. Obviously I shouldn’t cast the first stone, but there’s a lot of unnecessary bloat elsewhere out there, too.

I’m not saying that you shouldn’t use tactics like minification, resource concatenation, server-side compression, etc. to improve performance.

But have a strategy for performance first. Have a design. Consider whether you need all those libraries you’re tempted to include. Consider whether you need to write even more JavaScript, CSS, JSON and Christ-knows-what-all to “improve” the user experience.

Maybe leveraging those Content Delivery Networks will let you get away with it. But maybe they won’t.

Then again, what the hell do I know? I’m just an old Web browser guy. So I’ll leave you with this quote, sometimes attributed to Albert Einstein, that I kept in my .plan file back when that was a normal thing to have around:

Everything should be made as simple as possible, but no simpler.

I’m just trying to get people to think a little bit more before they deploy. I certainly wish I had here.

  1. I’m currently over-burdened with a relational database, a resource-hungry theme, complicated plugins and other dynamic functionality I’ll probably never use. So I’m seriously considering a return to just static HTML. 

Interviewed by a twelfth grader

So, this happened. I was interviewed by David Silverman this week. Nice kid. And considering all the high-quality exchanges from other people on his site—some by friends of mine—I’m really impressed that David is still just in high school. He’s going far.

David had some really clever questions, too. I wasn’t expecting, “You are trapped on a desert island…” But it’s not like he was the Spanish Inquisition, either. I was allowed to answer via email so I could craft the responses myself from my comfy chair. I’m just particular that way.

All in all, a good experience and much better than my last phone interview. Thanks, David.

The move to WordPress and the traffic that followed

On Tuesday evening, I converted this self-hosted site from a collection of simple, static HTML files to a full WordPress content management system.

And on Wednesday it received 93,112 page requests. Not the most my site has handled in a single day, but still atypical. All without any downtime, too.

Now, moving to WordPress had nothing to do with all the traffic. That was just a happy testing and validation accident.

The traffic surge all started with a post to Hacker News by someone I’ve never met. And I didn’t even notice the event until 8:45 that morning when their post made it all the way to the front page.

The funny thing is, this was a link to something I’d published and (mostly) forgotten about on Sunday. It was three days old by the time it got any real attention. Go figure.

Then sometime early Wednesday afternoon, John Gruber linked to the same page on Daring Fireball. Rene Ritchie piled on later with a link from iMore (and some damn good commentary). And other folks started linking to it as well.

Through it all, my server just kept humming along, not showing any significant memory load either.

What enabled all this reliability from a little WordPress blog? Just some common sense, really. But I can thank Guy English for at least one suggestion.

A few weeks ago when I first considered moving to WordPress, I noticed that Guy was using DreamHost for his blog, kickingbear. Since I also use DreamHost (they’re good people) and Guy’s blog was a WordPress site, I was curious if he had done anything special to survive his last Fireballing by our friend John Gruber.

The big difference in Guy’s configuration from mine was him using a virtual private server (VPS) instead of shared hosting. Good idea, I thought. Sure, it’s a little more expensive but there’s much more isolation that way, preventing the Apache HTTP server from getting too distracted.

Guy also suggested installing WP Super Cache, a plugin for WordPress. But I already made that a requirement. I’m not grotesquely stupid. Nobody should ever run a self-hosted WordPress site without some form of static page caching.

The other strategy I applied was a content delivery network (CDN) to offload stylesheets, scripts and images. This was easy since I was already using MaxCDN for my static site and WP Super Cache has built-in support for rewriting internal resource URLs to point at CDNs instead.

One thing I didn’t try was moving from FastCGI to XCache for PHP. I simply don’t have enough experience to know if that’s an advantage for WordPress, or the configuration tricks in making such a transition. But if you do, please comment on this post or contact me. I’m not above admitting ignorance or asking for help.

While 93,112 page requests seems like a large number for one day, it’s really only a little faster that one page per second on average. And the number of simultaneous users probably never got over 500.

A more stressful day on the site is still needed to shake things out and assuage all my fears about reliability. But this is a good start.

And a real incentive to write more.