Archive for July, 2008

Presentations with Opera and S5

Tuesday, July 29th, 2008

I avoid Keynote and PowerPoint to ensure that I will be able to refer to my presentations three years from now. Until last week, I thought that using the HTML-based S5 format meant compromising the style of my presentations.

While preparing a presentation for the Mozilla summit, I found a pretty S5 theme called Glossdeck. More importantly, I learned that Opera supports the Apple Remote for switching between slides.

I'd love to be able to do the same using Firefox rather than Opera. Using Opera is somewhat painful because switching slides using the keyboard is awkward (it uses space and shift+space rather than arrow keys) and Glossdeck has to be modified to work in Opera. But Firefox on Mac doesn't have a full-screen mode or support for the Apple Remote.

Boris Zbarsky's work in bug 113934 for reparenting Firefox tabs between windows should pave the way for Firefox to have full screen on Mac. It would be great if Firefox had Apple Remote support as well, perhaps as a DOM event sent to the focused web page.

If anyone at the Mozilla summit wants an Apple Remote, I brought three extras. I hear they work with Keynote and PowerPoint too.

The bikeshedding continues

Wednesday, July 23rd, 2008

In 2006, Mike Beltzner filed a bug saying that Firefox's about:config should have a warning. Chris Thomas wrote a patch adding a warning page, and it was checked in with a playful title suggested by the same Mike Beltzner: "Be careful, this gun is loaded!".

Some people thought the reference to guns made Firefox too violent. After much discussion, Beltzner changed the title to "This might void your warranty!", which was a suggestion from Phil Ringnalda.

Today, Christopher Aillon of Red Hat filed a bug about the "warranty" string. He says it has caused several users to contact legal departments or IT departments with questions that should have been unnecessary.

My suggestion is "Caution: Firefox internals may be hot". As a bonus, it fails to make sense in Iceweasel-branded versions.

Additional suggestions may be hidden in the Firefox source tree. When Beltzner made the change from "gun" to "warranty", he also added a note to localizers, suggesting that the title need not be a direct translation from English but "should be attention grabbing and playful". At least three localizers substituted their own phrases. I'm curious what the strings say when translated back into English.

Transparent text is transparent

Friday, July 18th, 2008

Firefox 3 added support a new CSS color keyword, transparent. Surprisingly, this broke some sites, many of which had rules like table { color: transparent; } due to a Microsoft FrontPage bug.

The strangest part: Firefox wasn't the first major browser to support transparent. Safari was.

These sites were broken in Safari too — until the webmasters got emails from Firefox users. Is Safari's market share really so low that even when Safari is the first to make a change that affects compatibility, Firefox helps Safari more than Safari helps Firefox?

The return of NS_ABORT_IF_FALSE

Thursday, July 17th, 2008

After five years in hiding, NS_ABORT_IF_FALSE has returned. Please use it instead of NS_ASSERTION in situations where failure is likely to lead to memory corruption. By aborting rather than asserting, you ensure that debug-build users focus on the cause of the corruption rather than whatever random crash results from the corruption. This leads to happier debugging and better bug reports.

Of course, sometimes it's better to prevent the memory corruption entirely, e.g. by adding a run-time check or by making all builds abort (not just debug builds).

New security features in IE8

Friday, July 4th, 2008

Microsoft has announced interesting new security features that will be in Internet Explorer 8 Beta 2. They are following other browsers such as Firefox on some issues, and taking bold new steps on others.

Firefox users are already filing bugs asking for us to match some of these features.

Twitter Quick Reply user script

Tuesday, July 1st, 2008

Last week, John Resig created a Twitter Quick Reply bookmarklet. I wanted to make replying even faster, so I created a Greasemonkey script that adds a reply box to each tweet. If you follow a Twitter feed and reply frequently, this script could save you some time.

My script uses several advanced Gecko features. First, it uses getElementsByClassName, which was added in Firefox 3, so it will not work in Firefox 2. Second, it uses a transparent iframe background to hide the fact that there is an iframe present. (By the way, did you now that the default background for iframes is transparent? In the past, I have argued that this default is a security hole. But most sites specify a background color, so it's almost moot.)

Algorithm Ink

Tuesday, July 1st, 2008

Aza Raskin's Algorithm Ink is really neat. Hand Spirals and Kishkush balabush create beautiful pictures with just a little bit of code, while Underground and Morse Code Forever look like real things. Algorithm Ink can even be tricked into performing pure animation, as shown by my example Gears.