Main

July 5, 2008

Vietnamese computing is a very fragmented experience. Not only are there several character encodings for Vietnamese, but Vietnamese computer users must also choose between several popular input methods. As you’ll recall from November, an input method is a procedure for typing in a complex, often non-alphabetic writing system. An input method editor (IME) is software that intercepts your keystrokes and translates them into more complex characters, such as Chinese characters, on the fly. Today’s major operating systems provide IME for most complex writing systems, notably Chinese and Japanese.

Vietnamese is alphabetic, unlike Chinese, but because of its large set of letter–diacritical mark combinations, it’s impractical to simply assign each key to a letter or accented letter, as with French or Spanish. Making matters worse, operating systems have historically provided poor support for Vietnamese input. Microsoft Windows and Mac OS X (until 10.5 Leopard) don’t include an IME for Vietnamese, so each Vietnamese-language website is expected to embed one using JavaScript. Webpages, ordinarily the least powerful of computing technologies, thus end up implementing one of the operating system’s core responsibilities: text input. Predictably, there are at least a dozen such IMEs, and each site uses a different one.

It’s a situation no one likes, but it’s not easy to convince operating system vendors to ship good support for Vietnamese, since the market for it is still relatively small. As a stop-gap solution, three of these IME’s authors have released Firefox extensions that provide Vietnamese typing support on any webpage within the browser. Since the Web browser is pretty much the application that users keep open all day, it’s not an entirely bad solution.

Back in November, I released a keyboard layout for Vietnamese, to improve the Vietnamese typing situation on the Mac. Although the keyboard layout provided support for every application on the system, it was far from ideal, because very few Vietnamese speakers use Mac OS X. Now I finally have a way to show non-Mac users some input method love too.

In 2006, I made a number of modifications to one of the IME extensions, Hiếu Đặng’s AVIM extension. However, because the original extension was a kludge and I didn’t yet consider my version to be of release quality, I hung onto the modifications for nearly two years. Recently, I briefly encountered a curious phenomenon known as free time and began shaping AVIM into a much more presentable extension.

AVIM for Firefox

Since it was introduced to the Vietnamese Wikipedia in 2005, AVIM has turned a very poor editing experience into a pleasant one. My productivity at the site increased dramatically, as I could begin to write and edit articles from directly within the site, rather than copy-pasting my composed text from another program. I hope that this extension will give you the same dramatic increase in productivity, no matter what site you frequent.

June 5, 2008

Any serious computer user lives by Firefox extensions. My copy of Firefox has around 30 installed, and I wouldn’t part with more than five of them. It’s bad enough that I employ the Nightly Tester Tools extension to shove out-of-date extensions down Firefox’s figurative throat and Menu Editor to keep my sprawling Tools menu (the product of 30 extensions) tidy.

I know most of this blog’s readers don’t write in Vietnamese, but for the few who do, I spent a bit of last weekend writing an extension for Firefox and its companion e-mail program, Thunderbird, that checks your Vietnamese spelling as you type. Unlike the last piece of software I released, this one requires hardly any explanation. You know if you need it.

Continue reading "Vietnamese Dictionary 1.0 for Firefox" »

May 8, 2008

With extensions for programs like Firefox at the convergence of desktop applications and the Web, they can at times become attack vectors:

Starting in mid-Feburary, Vietnamese users of Mozilla’s open source Firefox browser were at risk of infection from malicious Trojan Horse code seemingly accidentally embedded in a language pack available on its Add-ons site.

The add-on’s author is not suspected of intentionally booby-trapping the file, but instead had his own system infected. That Trojan inserted a banner-ad displaying script into any html [sic] file on his system, which included the help files for the language pack.

Ironically, the HTML files have been removed altogether from the forthcoming Firefox 3, because Mozilla has decided to use an online, wiki-based help system, rather than the static help files that come packaged with Firefox 2.

Application security is still important these days, but as software vendors race to embrace add-ons and RIAs, Web technologies can no longer be considered confined within a tight security “sandbox”. It’s not even just a security issue, either: with phishing- and other fraud-based attacks so prevalent, software developers need to be especially vigilant about any user interface details that could be used to deceive.

As the author of a similar extension for Thunderbird, Firefox’s companion e-mail client, I should note that the Vietnamese localization pack I wrote for Thunderbird is not affected by the trojan. The current version was released in 2005, long before the Firefox localization package.

By the way, an updated version of that localization pack is in the works, based on the Firefox extension. Although I did consult some parts of the Firefox extension’s source code to resolve some tough-to-translate terms, there was no code sharing of any kind. (Not even copy-pasting.)

You can track my progress by pointing your Subversion client (such as TortoiseSVN) to http://version.1ec5.org/vi/. And if you happen to be thạo tiếng Việt, please contact me; I’d be more than happy to accept your help.

To clarify, only advertising banners were inserted, not actual worm or trojan code. See Asa Dotzler’s explanation.


  1. AVIM for Firefox
  2. Vietnamese Dictionary 1.0 for Firefox
  3. Ngựa thành Troy
  4. Firefox 2.0
  5. Firefox 1.5
  6. Catching up
  7. Making the switch
  8. New vectors
  9. Duplication of effort
  10. Catching up on technology
  11. Going Out: Breaking the rules
  12. One of those early-adopter urges
  13. Portable everything
  14. Lastest news
  15. Yum…