.BIZ Korean IDNs Just Launched
August 20th, 2007The second piece of news following the localization of EchIDNA into Korean is that we have just launched Korean IDN registration in .BIZ three hours ago. I won’t divulge the numbers here but let’s just say that it far exceeded my expectations.
You may be wondering if there is any connection between our Korean launch and the localization of EchIDNA. Aside from yours truly being involved in both projects, it is purely coincidental. We have been preparing for the Korean launch for a few months, and in doing so have consulted with NIDA (National Internet Development Agency in Korea) and have adopted their language table (with 2,350 KS X 1001 Hangeul characters). The table is available here: http://www.neulevel.biz/idn/KR_Table.pdf and will be posted to the IANA Repository of TLD IDN Practices soon.
If you have a .BIZ Korean IDN and would like some free links, submit it to IDNSearch.net!
EchIDNA Speaks Korean
August 20th, 2007안녕하세요! There are two pieces of great news I’d like to report, both of which relate to the Korean Internet users community.
First of all, EchIDNA is now localized to Korean thanks to Jaeyoun Kim (www.김재연.kr) who took the initiative that triggered a collaboration between us where he translated the EchIDNA user interface into Korean and I added localization support to the code. While I have long been thinking about localizing EchIDNA, I never did get around to doing it so I’m really glad that it’s finally out.
Here’s a screenshot of it in action:
This move was largely motivated by the disheartening news that Verisign discontinued its IDN Web Navigation system on July 25th 2007. A bit of explanation of the so-called IDN Web Navigation System is in order. Basically, every IDN registered in the com and net TLD gets one or more A records inserted into the zone that points to a Verisign web server(s). These are not punycode domain names but binary representation of the IDN in local code pages where it is likely used, plus maybe some IE-specific behavior. The latter refers to an IE5/6 quirk that will encode the individual bytes of the domain name in the system code page to UTF-8 by treating them as ISO8859-1 characters. By doing so, users who are using non-IDN aware browsers will be redirected to Verisign’s web service which will then offer them the ability to download its i-Nav plug-in, and at the same time select the correct IDN domain to navigate to. Since the A records are binary representations, there is a possibility of collision which explains why the users have to select. It’s not hard to imagine that the general Internet users may mistake i-Nav to be the Web Navigation system that they were using, and since it works why bother downloading anything? So my guess is that many users simply ignored the i-Nav download part and click through to the site they wanted to go to. When the service was discontinued these users were lost. It didn’t take long for the domain owners to notice and complaints started flooding into the registrars and hosting providers. Some of these complaints also made it to NIDA which had an agreement with Verisign to distribute the i-Nav plug-in (and since users confuse i-Nav with the IDN web navigation system, it just looked like “i-Nav stopped working”.)
While I agree that this is really a hack and that the service cannot run forever, it is simply too soon as IE7 is not even one year old in Korea. Even though there is technically nothing wrong with discontinuing a hack, I can’t help but question the ethical validity of the decision, given the obscene amount of cash made from these TLDs. I wonder if the transition could be made smoother by first disabling the navigation feature and explaining to the users that they really need to be using an IDN-aware browser or download a plug-in.
Many ccTLD registries (CN, DK, JP, KR, TW to name a few) that offer IDN registration also run a similar web navigation system for their TLD, and AFAIK are still running it.
So, back to EchIDNA. The localized version was released on August 15th, 2007 and is available on http://idn.isc.org/
GearSaver v0.4
August 12th, 2007I’m pleased to announce GearSaver v0.4. This version has been tested under Firefox 2.0.0.6 and IE7 on Windows with Gears installed. Most importantly, I’ve finally ironed out all the bugs in the various usage scenarios x both browsers. The usage scenarios I’m talking about are:
- By including the script on the page
- By using it as a bookmarklet
Along with it, I’ve put up a proper page for it: GearSaver Home.
Here’s a screenshot:

If you’ve tried GearSaver before and it didn’t work for you, I would encourage you to give it another try and submit a comment here.
IP Migration
August 11th, 2007Our excellent hosting provider, Simpli.BIZ, has had in the past a few glitches due to the fault of AboveNet, their upstream provider. Yesterday, I finally bit the bullet and migrated all our “hosts”1 to the new IP range owned by Simpli. It wasn’t as smooth a migration as I’d hoped, but the Simpli team was very helpful and attentive. Knowing how much I suck at system administration, Erica had already arranged for KVM attached to my console so even though I managed to lock myself out, I could still do everything through the console.
The old IPs are still available, but I’ve already updated some DNS records to point at the new IPs. The old IPs still work via PF redirection rules.
Simpli must be the most personal commercial hosting provider out there, it’s nice to have your web hosting support person (in this case it happens to always be Erica the founder) to be on IM and maintains a blog. What more can you ask for?
1 I said “hosts” because while I only rented a measly Celeron from them for USD99/month, I have 3 FreeBSD jails running.
GearSaver Reloaded
August 6th, 2007The GearSaver Bookmarklet was not that useful since there was no easy way to use the saved data. Since this is an itch that I’d really like to be able to scratch, I reached further and improved on it to the point that I can now write this post in a GearSaver-enabled textarea. Added features are:
- uses jQuery - I have no intention of working around browser DOM quirks more than I already have to
- displays previously saved versions
- ability to preview a version and apply to current textarea content
- ability to delete versions
Eventually, I hope to be able to provide the script as:
- ad-hoc inclusion into any page - this already works in the current version
- as a bookmarklet - so that you can enable any page
- as a greasemonkey script - so that you can automatically have it turned on on the sites that you want it
So, without further ado, you can try it out…
1. Here’s a textarea
2. Make sure you have Google Gears installed.
3. Click here to enable GearSaver.
4. Gears will ask you whether to allow http://dready.org/ to write data
Please report any bugs / suggestions.
Update 20070812: Updated to use new and improved version 0.4
GearSaver Bookmarklet
July 29th, 2007Google Gears is one of the most exciting technologies to be released IMO. It will push the web 2.0 envelope further and bring interactive web applications to the next level — offline! Well, not just offline, the whole point is that you can design your application synchronization strategy.
I’ve been experimenting with it a bit and it’s surprisingly (Javascript) developer friendly. The end product is a bookmarklet I call GearSaver. It’s really a shell that injects the gearsaver.js script hosted on my server into the current page that you’re viewing. It saves all your textareas (be it a blog post or wiki page that you’re editing, any multi-line text box in a form) into Gears.
This is pre-pre-pre alpha and is only a proof-of-concept, I haven’t tested it in IE and there isn’t a way to view the saved results yet. You can, however, use the DB query tool included in the gears samples and select the textarea table in the gearsaver database.
This is personally very useful to me because many a time I’ve lost valuable work in a textarea upon submitting a page and the network goes down. What this does is that it saves a version of each textarea found on the page, indexed by the URL and its xpath. It is also timestamped. My next enhancement would be to have a pull-down menu on each textarea to allow you to revert to older versions.
Without further ado:
Add the following bookmark and use it on any page: Launch GearSaver
Updated 20080812: bookmarklet to use version 0.4.
Yet Another Trip
July 24th, 2007Just got back from another trip to Singapore and a side-trip to Malaysia. This time I was there not for my own wedding but my good friends, Aelvin and Kim’s who got married on 070707 (7th July, 2007) at the Equinox restaurant up on the 69th floor of Swissôtel The Stamford. I’ve known Aelvin for 19 years. When I first arrived in Singapore and went out with Aelvin, I was introduced to Kim. That’s how long I’ve know this sweet couple - about half my lifetime!


Aside from attending the wedding, perhaps what makes this trip so dear to my heart is that Tiff turned up at the airport when I arrived! I was totally not expecting her because despite numerous attempts at getting her to take a few days off to attend the wedding, she was quite sure that she wouldn’t be able to get any time off from work. Turns out that she tried anyway and her manager said, “Sure, babe!”
Good thing for us because that gave us the opportunity to spend some time together as well as finish off some very important business — spending time with my parents. After the wedding, we went back to Ipoh (my hometown) with my mum and spent three days with her, accompanying her to the dentist and fixed up some home electrics for her. Of course, we binged quite a bit too.



We then made our way down to Kuala Lumpur to see my dad. Dad couldn’t make it out to our wedding in Singapore due to health reasons, so it was especially important to see him as we’ve not seen him for 7 years. Not since we left for Australia. If you don’t know by now you would’ve guessed that my dad and mum were separated. So even if my dad was able to attend our wedding it would’ve been awkward since my mum vows never to see his face! Not sure how we would’ve handled that. Nevertheless, we wanted to get his blessings and so we carried out the traditional tea ceremony with him. The wedding wouldn’t have been complete without that!



So, mum and dad are both happy.
Other than the fact that Tiff and I are still living apart, I’m actually very glad to be back. I’m going to ground myself for at least 3 months.
Back in the US
June 9th, 2007After an exhilarating trip to Singapore for our wedding and Hanoi for a mini “honeymoon” 1, I’m back in the US before yet another wedding (not mine of course) trip to Singapore in July. A lot of catching up to do at work…
In case you’re looking for some photos, we are now preparing them. Will post them online once they’ve been sorted out.
OpenID for Drupal
May 5th, 2007There was a thread on the OpenID list around the subject of OpenID support in Drupal. Previously, I’ve experimented with the OpenID module originally written by Jonathan Daugherty from JanRain, now under maintenance by the folks at Bryght. That module uses JanRain’s PHP OpenID library, and it worked pretty much out of the box, with XRI support.
What I learned from this discussion thread is that James Walker from Bryght has been working on another OpenID module that is intended for inclusion into Drupal 6 core distribution, without using JanRain’s library. There are apparently things that Drupal-heads don’t like about the JanRain’s library, licensing may be one of the issues.
So I pulled the DRUPAL-5 codebase from CVS and installed it, then installed the 5.x-1.x-dev snapshot tarball to test it out. First thing I noticed was that it doesn’t support XRI, and I really didn’t expect it to. Then, when I tried logging in with my dready.org identifier, it wouldn’t work because I delegated it to my myopenid.com account. So, it doesn’t support delegate either.
Then I spent a few hours getting rudimentary XRI support into it, and made it work with delegates. Few days later, I realized that this was only a snapshot and the module is in the Drupal contributions repository. So, I threw away my installation but kept the patch I made of the 5.x-1.x-dev snapshot and started anew. The result is a patch that works with the Drupal CVS trunk as of today.
The changes are:
1. When a first-time user is authenticated, a local account is created but no role was specified. Modified the module to add the ‘authenticated user’ role to the user.
2. XRI support. This is very rudimentary and does not support canonical ID yet, but shouldn’t be hard to implement.
3. Delegate support. In OpenID 2.0, the submitted identifier (URL) is passed to the OP as the openid.claimed_id parameter, while the delegate, if present, is sent as openid.identifier.
4. In the meantime, I noticed that the while the URL normalization conforms to the OpenID Authentication 2.0 implementor’s draft 11 specification, it treats http://dready.org and http://dready.org/ (with trailing slash) as different identifiers. Well, they should really be the same as RFC3986 says that for HTTP, an empty path is equivalent to “/”. This normalization rule was reflected in rev 294 of the spec.
Of course this is only a *very* rough patch (no pun intended). I have never hacked Drupal before, and haven’t read much of its coding styles though I tried to follow the conventions in the original code. I do hope that at least parts of it can be integrated into the module though.
My development environment is here: http://dready.org/drupal/. Feel free to try it out.
