Happy twentieth to Safari and WebKit

Safari and WebKit aren’t teenagers anymore. I just want to make note of that. To quote a previous post:

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.

That was 20 years ago today. Twenty years! Of course, it’s been over nine years since I retired from Apple. Obviously, I’m not a teenager anymore either. But I still remember that first day clearly.

So, happy birthday to Safari and WebKit and the team now tasked with their adult supervision.

Cranking up the blogging machine again

For whatever reason I started blogging again last week. Not knowing why isn’t due to a lack of introspection on my part.

Maybe the nauseating weight of the Trump administration was suppressing my desire to write for the previous three-and-a-half years? Or maybe I’m just arbitrary and lazy?

It’s also unclear how long I can keep this up. Inspiration and a willingness to type are not something which you can purchase online or install with a package manager. I suppose we’ll find out.

However, the mechanics of blogging again are simpler to understand.

For one thing, as I write here:

… this website is only free-range, handcrafted, artisanal HTML. With a little CSS, of course. No JavaScript—that’s just crazy talk.

Technically, it’s all created using software. I don’t actually type all that markup manually, like some filthy animal.

And since the site remained unchanged from the time I generated it during June of 2017, it was still working fine as of last week. Keep that in mind when you consider the architecture for your own blog. Once you’ve created it, static HTML is pretty much maintenance free.

However, there’s that whole problem of generating it again. With new content. Yeah.

I had all the publishing software, content, configuration, etc. installed on my Mac originally. But since we all know I’m using a Windows PC now, I had to migrate everything.

That meant just copying my blog posts since they’re simply Markdown documents with YAML frontmatter. Easy.

But my content management system is Nanoc, a Ruby-based generator. And while it’s reasonably cross-platform and mostly runs on Windows, it’s not officially supported there. More importantly, the scripts and other tools I built on top of Nanoc were kinda Unix-adjacent, if you know what I mean.

This is where the Windows Subsystem for Linux (WSL) came to the rescue.

Normally, I use the Windows-specific version of ruby.exe for my other projects. But with WSL, you really need to apt-get ruby and shove that baby into Ubuntu as well.

After that it was just a gem install of nanoc and kramdown, my Markdown parser of choice. At least, I thought that’s all I needed.

Turns out the kramdown-parser-gfm Gem is required too since I depend on GitHub-flavored Markdown and the kramdown developers removed support for it from the main project back in 2019. Surprise, surprise. But that’s what I get for not parsing any Markdown for so damn long.

By the way, for any of you also installing Ruby Gems in WSL or other Unix-like environments, don’t preface gem install with sudo. This is both unnecessary and unwise.

It’s unnecessary because you can simply append --user-install to those installation commands. This will place them in ~/.gem, your local Gem directory.

And it’s unwise because you don’t want them placed in your system-wide Gem directory. Doing so will delete, overwrite or otherwise fuck them up whenever you update ruby itself.

Of course, you’ll need to add that local Gem directory to your $PATH variable in ~/.bash_profile or whatever the equivalent is for your shell. Otherwise the shell can’t find those Gems. Duh.

Here’s an example ~/.bash_profile showing how to do just that:

if [ -f ~/.bashrc ]; then
	. ~/.bashrc


Obviously the version of ruby in that path will need to be adjusted if yours if different.

So after getting the correct Gems installed in the correct places, I then had to make a few changes to my Nanoc configuration files and various homebuilt Unix-y scripts. These were mostly just converting some hard-coded macOS-specific directory names to their Windows-specific equivalents.

And then… it all worked. Flawlessly.

Which means migration was not really much of a problem at all. Sure, thinking ahead on what I needed to do took awhile, but that actual typing necessary to make it happen was just a matter of minutes.

Kind of anticlimactic, really.

Of course, now I have to figure out what to write. Dammit.

Waiting four years to exhale

Today is a good day. Joseph Robinette Biden Jr. has been inaugurated as our 46th president. And Kamala Devi Harris as our 49th vice president.

While they cannot immediately undo the American carnage inflicted upon us by the previous administration, at least the vindictive malevolence has stopped now. Finally, and ironically, fulfilling the promise made four years ago by Donald Trump, deposed tyrant and career criminal.

So let’s take a moment to unload that uncomfortable weight off our chests and shout in celebration.

Fuck yeah! ‘Murica!

Our long national nightmare is not over

I have faith in Joe Biden. And Kamala Harris. They’re good people. They and the team they’ve selected know what they’re doing. It’s obvious just listening to them.

So I can barely wait for them to take over the White House tomorrow. Because real governance will be back in residence. And we need all of that to make it through this pandemic. Along with a crushing number of other crises.

But even after Trump slithers back to Florida—with a few of his favorite swamp creatures in tow—his enablers in federal, state and local government aren’t going anywhere. And they don’t believe in accountability for him or themselves.

Then there’s 75% of Republican voters out there who still think the election was stolen and that Biden is an illegitimate president. Which means The Big Lie isn’t going anywhere either. Don’t ever assume it’s just a small minority that suddenly developed a taste for bullshit.

Worse, Trump might be without a platform but he’ll continue to incite his army of insurrectionists with more grievance and more lies. Not all of these people are silly cosplayers. There are enough with military training and weapons to cause significant damage. God only knows what they’ll do the next time. Possibly pose as real troops or law enforcement.

If we’re lucky, Trump will just blow up the Republican Party instead of the whole country. But let’s not bet on being lucky.

We need to be vigilant. This isn’t over yet.

My traitorous move to Windows

I still have my Mac. Three of them in fact. And, of course, my iPhone. Why would I ever get rid of it? That’s just crazy talk.

But… uh… my primary desktop computer has changed. Just a bit.

Most of you probably don’t know this but a little over five years ago I built my own gaming PC. I’ve assembled other PCs in the past but those were mostly Linux boxes. This one ran Windows.

I realize this might come as a shock to some of you but it’s widely acknowledged that the best game graphics as well as game performance on the desktop require a Windows PC. Who knew, right?

While I certainly gamed my ass off with that homemade machine for awhile, it didn’t really become an essential device for me until I started using it to experiment with hardware video encoders.

Maybe I’m prescient. Or maybe I’m just lucky. But I built that machine with an Intel Quick Sync Video CPU and an Nvidia GTX 1080 Ti GPU. A twofer of transcoding acceleration. So I could use either one. Or even both at the same time.

It was flexible and powerful. And the speed was addictive. I could transcode video from a Blu-ray Disc at over 300 frames per second (FPS). Sometimes over 400 FPS. Which means converting a two-hour movie usually took less than 10 minutes.

What really surprised me was the quality achievable using hardware instead of software encoders. Of course, you have to know how to tune them. Which I certainly understand now. But clearly my assumptions were wrong. Mea culpa.

Anyway, that Windows PC is one of the big reasons I created my Other Video Transcoding project. Well, that and a bunch of other like-minded, mostly-Mac nerds who were collaborating with me, and also using Windows PCs. Some of them even building their own just like I did. Now that’s commitment.

So I migrated my entire development process over to the PC. Because it was so much easier and faster to test that way. And I was doing a lot of testing, experimentation and development. A lot. It was an obsession and still is.

At first it was uncomfortable typing so much without having BBEdit around to hold my hand. But there were reasonable, if not perfect, alternatives available like Visual Studio Code, Notepad++ and Typora. Some of those with features that BBEdit didn’t even have.

And then I discovered Windows Subsystem for Linux (WSL). Damn. While WSL didn’t allow access to hardware encoders, I now had a full Unix-style command line tightly integrated with Windows. And 95% of the tooling I’ve used and relied on for over 25 years was available.

Eventually, it became a pain in the ass to keep switching back and forth between my iMac and the Windows PC. So I started browsing the Web, reading and writing email, collaborating in Slack, Discord and Skype, all within Windows.

To paraphrase Hemingway, how did I move to Windows? Two ways. Gradually, then suddenly.

The really sudden part was finally buying a new desktop computer. Yep, it was a Windows PC. Even more powerful and faster than the machine I built myself. And, more importantly, with a lot more storage. Especially on the boot drive.

That new machine has been my primary desktop for over four months now. And… it doesn’t suck. Even having to use Windows all the time. Which means, I suppose, that you can learn to tolerate anything.

Is Windows as elegant or easy as macOS? Hell no. But it works fine for typical tasks and, really, it’s ideal for gaming and transcoding. The real surprise is its flexibility as a development platform. Didn’t see that one coming.

Do I miss Safari and all the other applications I helped to develop at the Fruit Company? Of course. But I haven’t abandoned macOS. My MacBook is always close at hand. And I’m sure I’ll eventually upgrade it to an M1-based model.

Now, excuse me while I finish typing this post on, and then publishing it from, my Windows PC.

A metastasis in America

America is sick. And I don’t just mean with COVID-19. The bad news is that removing the ugly, orange tumor in the White House next week will not be enough to affect a cure.

The malignancy has spread. It didn’t even start with the presidency. We’ve been brewing and self-dosing a toxic carcinogen for centuries. White supremacy is, of course, the not-so-secret ingredient.

While responsibility for this has changed hands over the years, the modern Republican Party is obviously ensuring racism persists and even flourishes here in America. And for nothing more than electoral advantage.

The GOP cannot maintain power if everyone is allowed to vote. We all know this. But even disenfranchising non-white, non-native and otherwise different people is not enough for them now.

And their new strategy only starts by overturning election results they don’t like, achieved by lying to their lesser number of voters that they’ve been cheated.

The violent insurrectionists at the Capitol last week weren’t really interested in elections, fair or otherwise. They wanted to install a dictator. And many in the GOP—federal, state and local officials as well as their voters—were encouraging that.

It’s clear that Republicanism is no longer compatible with democracy.

So we have a big problem. The reason so many of our fellow citizens are angry and demanding autocracy is more complicated than simple political disagreements. There’s something elemental going on here. An embrace of conspiracy theories, ignorance and grievance. And on a scale I’ve never seen.

I’ll be honest that I have no idea how to cure this disease. I’m not even sure where to begin.

But our nation needs some powerful medicine. Or the body will die.

How not to blog

First off, be sure to wait at least three-and-a-half years between posts. It’s all about keeping your audience riveted in anticipation.

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.