Main

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" »

December 9, 2008

In July, when I last wrote about AVIM, it was a Firefox extension that let you easily enter fully-accented Vietnamese into any webpage, as well as most of Firefox. It also supported a few well-known Firefox extensions.

Since then, AVIM has gained French and Chinese localizations and added support for all of Firefox. More importantly, the extension now supports a number of Mozilla-based applications, including Songbird and Flock. AVIM’s also been downloaded nearly 30,000 times and serves over 1,700 people as of last month.

Mozilla Messaging today released the first beta of Thunderbird 3. Since it runs on Mozilla 1.9, AVIM supports it too. It’s a boon for Vietnamese speakers who still use a desktop application for reading e-mail and news feeds.

You can download AVIM for free and drag the file into Thunderbird’s Add-ons window. Alternatively, you can use Thunderbird 3’s new Add-ons Manager to install an older version of AVIM hosted by Mozilla.

One thing you’ll notice about AVIM is that, even though the extension is intended for Vietnamese speakers, the extension’s menus aren’t necessarily in Vietnamese. If your copy of Thunderbird is in English, for example, AVIM is also in English. That’s because I designed the extension to blend in with the application as much as possible.

Unfortunately, efforts to translate Thunderbird into Vietnamese aren’t complete yet. In the meantime, you can force AVIM to display in Vietnamese anyways. Regardless of AVIM’s interface language, the extension will continue allowing you to type in Vietnamese.

You might’ve noticed that AVIM is essentially in maintenance mode. I’ve implemented all the big changes I have planned, and I really don’t have much time to work on the software in the near future. However, you’ll continue to see AVIM support more and more applications as they upgrade to Mozilla 1.9. Someday, I’ll get around to writing an operating system–level IME, so you’ll get AVIM’s well-known flexibility no matter which application you’re using. Someday.

As always, I welcome any contributions to the AVIM project, whether in the form of code or translations, or by spreading the word. Working on AVIM’s code require little more than a working knowledge of JavaScript and Vietnamese. For any code or translation contributions, you’ll receive due credit on a widely-used piece of software and the satisfaction that you’ve helped real people in a measurable way. If you’d like to help out, please contact me.

November 9, 2008

Friday night (San Francisco time), northern Vietnam’s wiki addicts got together to discuss – what else? – wikis at the inaugural Wiki Day in Hanoi.

Inside the inaugural Wiki Day.

Inside the inaugural Wiki Day. Courtesy: Trần Xuân Trường, Nguyễn Phan Kiên, NHHP.

Unfortunately, I couldn’t make it: at the last minute, my professor caught wind of my plans to take a plane to Vietnam instead of taking a midterm. :^P So instead of being able to finally meet my co-conspirators in the wiki revolution face to face, I settled for writing a talk for an attendee to read. In between studying for a midterm and completing a problem set, I managed to crank out what sounded (on paper) like a coherent essay on Wikipedia’s principles, how we foster a community, and what we do about vandals. Hopefully it wasn’t too awkward. Word has it that the meetup overall was a success.

I hadn’t realized how big a deal wikis have become in Vietnam, but apparently the event has received coverage in the country’s major newspapers, and a few national TV networks were on-scene as well. If I knew the mainstream press was coming, I would’ve probably switched into car salesman mode and pushed Wikipedia’s benefits more than discussing the challenges ahead of us as a community. But it’s not like we have anything to hide, what with an Edit button atop every page.

The Vietnamese Wikipedia community doesn’t have official recognition with a Wikimedia Foundation chapter of its own, and it has yet to really spread to other Wikimedia projects like Wiktionary and Wikibooks. We haven’t won any awards like the Italian community or put on a Wikimania conference like the Taiwanese. But still, it’s awesome how far things have progressed since late 2003, when we were just a ragtag group of geeks starting into computer screens, developing carpal tunnel by writing too much.

Along the way, I learned a new language – I only knew a few words of Vietnamese before joining Wikipedia – we’ve written on topics that’ve never been written about in our language; and we’ve changed the way people think about learning. You can, on your own time, enrich your understanding of the world around you. At least for those with Internet access, the excuse of not having the money or patience is gone. (Reaching those without Internet access is an open problem.)

What makes Wikipedia (and any other wiki) is that we’re not just a community. We’re a community making something useful: in our case, a website synonymous these days with “encyclopedia”. In making decisions at Wikipedia – such as determining how strict we enforce a rule on notability – the overriding challenge is balancing the needs of the community versus the needs of the encyclopedia.

I’m pretty sure what kept me contributing to Wikipedia all these years, even as the offline world called, was the knowledge that the project depends on each individual to keep it afloat. Especially when there weren’t many administrators and other dedicated contributors around, others would have to shoulder more work if I simply packed up and left. I wouldn’t’ve particularly cared, except that I’d already built up a good working relationship with so many in the community. Meetups, like the one on Friday, ensure that “the community” isn’t just a nebulous group of someone-or-others, but rather your friends.

In treating everyone as equals – with mostly the same editing rights, but more importantly with equal authority in arguments – we the wiki community think of everyone as trusted friends. That’s a really great statement about humanity.


  1. Wrong
  2. AVIM not just for Firefox
  3. Community
  4. Mười lũy thừa một trăm
  5. AVIM for Firefox
  6. Vietnamese Dictionary 1.0 for Firefox
  7. Pills with bank accounts
  8. Vietnamese VIQR Keyboard Layout 1.0 for Mac OS X
  9. Musical instructions
  10. Going somewhere?
  11. Mùng Một thì ở nhà xa
  12. Soup by any name, as long as it’s hot
  13. Publicity
  14. Đại Hội Thánh Mẫu 2005
  15. Making the switch
  16. Duplication of effort
  17. In memoriam
  18. One-fifty
  19. One man band
  20. All in a name
  21. Tết
  22. Ng~
  23. Pronunciation
  24. The Alphabet
  25. Tones and Tone Marks
  26. A Translator at Last