Mozilla Web Development

On Prefixing And Monobrowser Culture

I’ll say right off the bat that Daniel Glazman is right, and I fully support his message. The failure to alter the course of the web now will lead to headaches. Truthfully it’s already a headache, it’s just going to get worse. The IE Days were the dark ages of web development. I don’t want to go back to that.

In an ideal world, CSS prefixing wouldn’t be necessary. Browser vendors would spec things out, agree on a standard and implement it. That however is too rational, so CSS prefixing is an unfortunate reality. It outright won’t happen by the admission of Microsoft and Apple (pointed out by bz):

tantek (Mozilla): I think if you’re working on open standards, you should propose
your features before you implement them and discuss that here.
smfr (Apple): We can’t do that.
sylvaing (Microsoft): We can’t do that either.

Of course you can question if there’s really a legitimate need to work on standards in private. I’m personally skeptical a css property will leak the next iPhone.

It’s also worth noting Apple and Microsoft are both OS vendors and (cynically speaking) have interests that are explicitly contrary to the internet being a universal platform. Fragmenting the web and making it a more difficult platform to develop on is potentially in their interest. Not to different from their stance on h.264 of whom they are both licensors and thus haven’t implemented WebM.

I’m starting to second guess the permanence of prefixes. I personally think once there’s a standard the first release of a browser 12 months after standardization drops support for the prefix. Yes, this will break a few websites that never update. However it’s almost always an easy fix. I’d venture 95%+ of the time it could be done safely via a regex. Truth is you’re talking about 18-24 months from initial implementation in practice anyway. Possibly longer. A website that is so stale it can’t manage to deal with this in 1.5-2 years is in pretty poor shape to begin with. LESS and Sass can also be a big help in automating this. W3C CSS Validator already errors on prefixes. The tools to deal with this are in place today.

I should note dropping is unlikely to happen and thus wishful thinking.

A large part of this issue is how many websites are built these days, especially “mobile sites” which are typically separate sites bolted onto an API or even the backend database of a website. Often built by 3rd party vendors getting things passable and out the door is key. As a result every shortcut in the book is taken, including the absolute minimum in testing and compatibility.

For what it’s worth, this blog has only one prefix in use, and it’s coded as:

-moz-border-radius: 3px;
-khtml-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;

Which catches everyone. That takes all of 30 seconds at most to do.

Around The Web Audio/Video

Painting A Boeing 747 Is A Jumbo Job

Painting A Boeing 747

When you see a large get it’s not terribly hard to appreciate it’s size. It’s not that hard to appreciate the amount of power needed to get it airborne. If you need a reminder, stand behind one that’s taking off.

It’s pretty easy however to overlook the amount of time/effort that goes into the giant task of painting an airplane. This several minute time lapse is pretty eye opening. It takes a long time and many people to paint even the most “simple” livery onto a plane. And that particular aircraft has had at least 3 distinct paint jobs, perhaps more since it’s over 20 years old.

Mozilla Open Source

Why Open Source Is Pretty Awesome

At some point I think it’s easy to take things for granted. Being able to alter software to meet your needs is an awesome power.

Today, a tweet rehashed an annoyance regarding a tactic on websites to alter copy/paste and put a link with tracking code in your clipboard. I could opt out, but that doesn’t fix when websites roll their own. It’s a fairly simple thing to implement. In my mind there’s little (read: no) legitimate justification for oncopy, oncut or onpaste events.

So I did an hg pull while working on some other stuff. I came back and wrote a quick patch, started compiling and went back to working on other stuff.

Then came back to a shiny new Firefox build with a shiny new preference that disabled the offending functionality. A quick test against a few websites shows it works as I intended by simply killing that event. You can’t do these things with closed source.

Of course I found the relevant bug and added a patch for anyone interested.

A 15 minute diversion and my web browsing experience got a little better. Sometimes I forget I’ve got experience on that side of the wire too 😉 .


How To Fix Broken about:home Search In Firefox

Not that I recommend it, well actually I have, and do for “advanced” users (I will update that at some point), but occasionally cleaning out your Firefox profile can be a good thing. Every so often I clean the cruft out of mine. Here’s a little quirk however. The new-ish browser start page won’t perform a search when localStorage is cleaned out. It will manifest by simply doing nothing when you try to search. The form goes nowhere. If you look for errors in the console you’ll see:

"gSearchEngine is null"

The best solution I’ve found to fixing this is to go into about:config and reset (right click -> reset) these properties and restart:


I suspect it’s just buildID, however neither should be harmful. Restart and they will be recreated.

Around The Web Audio/Video

World War II Fighter Helmet Cam

Vintage Airplane

Some awesome video shot via Helmet Camera. P-40K, the FG-1D and the P-51D. I’d recommend watching full screen and 720p.

[Via: Gizmodo]

Apple Internet


It has come to my attention that work is being done (3rd party) to bring SPDY to iOS. Awesome!

However, I can’t help but think that Apple is already working to bring SPDY to iOS perhaps as soon as iOS 6. I say this simply because it would bring a speed improvement without involving more Tx/Rx or upping CPU power consumption. It just improves network utilization. In fact since it improves utilization it possibly could improve battery life by reducing the radio usage.

I’d also like to see the Nitro JavaScript engine available outside of Safari so UIWebView implementations could take advantage. Supposedly that’s a WebKit2 thing, but I’ve heard/seen little of WebKit2. I suspect SPDY will happen first.


Obvious Dept: Men Behave Better Around Pretty Women

I love silly research results. This one comes via the Mail Online:

Men apparently become nicer, kinder and more caring when there is a beautiful woman nearby.

Is there anyone on this planet who is surprised by this? We’re also more crude when it’s just guys around. Maybe I can get government funding to prove that in a “study”. But wait! It gets better:

Women are more likely to look on the bright side than men, a study has shown.

It found the female memory focuses on pleasant experiences. Men, however, tend to hold on to unpleasant recollections.

No kidding.

Around The Web Audio/Video

Simpsons Theme Vocal Cover

Simpsons Theme Vocal Cover

Amazing cover of The Simpsons theme song. This must have taken a lot of planning to break this all out.

In The News Internet Security

Facebook’s IPO Filing

There’s not really much to say about Facebook’s IPO filing other than we all knew the day would eventually come. People love to look at the number of users as the measure of the company, but the truth is users come and go, all empires eventually fall. They have since the dawn of man. It’s a terrible measure of what a company has done, and is capable of doing. Eventually market saturation will be reached. It’s unsustainable to grow quicker than the world’s population. Everyone but Wall Street and some tech blogs know that.

What really matters is a company’s DNA. For Facebook that’s the willingness to be agile, the willingness to push things, and the willingness to change. That may occasionally backfire, however it’s proven to generally work out quite well. Especially when Facebook is willing to back down and revise as it has in the past. Mark Zuckerberg’s goal is pretty lofty, especially given the world and it’s people are struggling to figure out privacy in a connected world.

To quote him in 2010: “we’ve made great progress over the last year towards making the world more open and connected”. Balancing this mission and not crossing the line will be the challenge Facebook will face for years to come. I’ve criticized them several times in the past for either not doing enough, or not giving enough priority to the right to control privacy. Lately I’ve got less to complain about. I think that’s good for everyone.