Main

April 1, 2010

At midnight, the majority of the world’s search engine users dumped Google in favor of Mountain View–based Topeka.

AVIM was ready. The little input method editor that could has supported Topeka since its first release nearly four years ago. It comes with full support for Topeka Docs, which is great news for those of you who edit corn yield estimates in Vietnamese.

An archival photograph of AVIM working its magic on Topeka’s front page Internet ages ago.

But enough about Topeka. AVIM excels at so much more. I always tout how it “lets you type so naturally you won’t even notice it”. As a user, you should never have to worry how a webpage was implemented in order to use it. That’s why AVIM works in every single part of every single application it supports. That’s why it automatically resolves conflicts with other IMEs and even pioneers support for Microsoft Silverlight.

Today, as the popular Web comic xkcd unveiled its state-of-the-art “unixkcd” interface, I couldn’t help but notice that AVIM continues to do the right thing. What’s more natural for a command-line interface than pure, unmodified VIQR?

But as a software developer, I can’t rest on the merits of releases past. There’s still plenty of room for innovation in the input method editing space. And while I can’t commit to anything specific yet, I will say that my new input method is rockin’.

April 1, 2009

This morning, Mozilla officially renamed “add-ons” to “change-arounds”. Apparently the move is intended to capitalize on Barack Obama’s campaign for President, which centered around the word “change”.

Add-ons never added to my hard drive’s available space, and the extensions I’ve authored never added to my bottom line. So, though I find the new name a bit awkward, I’m thrilled that Mozilla is finally listening to the more pedantic parts of their user base for once. I just Twittered a Mozilla official, who wished to either remain anonymous or place me under an NDA. He assured me – off the record – that the Internet Explorer team plans to make the same change to their browser interface, possibly as soon as the next Patch Tuesday come-arounds.

Mozilla had planned to rename the feature “Take-outs” – reflecting the subtractive nature of many extensions and themes – and had already commissioned a series of cute Chinese take-out box icons. However, the nearby Lucky Wok restaurant stepped in at the last minute, threatening legal action. “Developers need Chinese take-out for late-night coding sessions,” explained the official, again off the record. “You wouldn’t believe how many bugs we’ve traced back to the presence of pizza or TV dinners in the building. You just don’t get that with moo goo gai pan.”

I’ve just updated AVIM’s website and its listing at Firefox Change-arounds to reflect the change. The Mozilla official fully expects other change-around developers to follow suit. But you didn’t hear it from him.

[Update] After much outcry from such Facebook groups as “I miss OLD Firefox Add-ons!!!11!!”, Mozilla has changed the name back. The fact that it’s now April 2nd must’ve factored into the decision, too.

February 15, 2009

First things first: if you use version 20080728.280 of my AVIM extension, upgrade to version 20080728.306 now.

Last Friday, Adblock Plus developer Wladimir Palant refuted five typical excuses for calling the eval() function in JavaScript. I remembered that function well: take any string, pass it into eval(), and the string gets executed as though it were ordinary code. When I took Stanford’s hacking class last spring, we developed an exploit that targeted a fictitious website’s generous use of the function. eval() is the most easily abused function available to JavaScripters, because it’s such a tantalizing shortcut. Why bother learning DOM Level 3 when you can call one function and move on?

Were you to conduct a comprehensive survey of computer programmers, I’d suspect that nearly all of us would rate ourselves “above average” programmers who keep particularly good best practices in mind at all times. Like, to avoid eval() at all costs. But I called that function – once – and Wladimir caught me.

Continue reading "Wrong" »


  1. AVIM doesn’t fool around
  2. AVIM extension is now AVIM change-around
  3. Wrong
  4. AVIM not just for Firefox
  5. AVIM for Firefox