<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Wil Tan</title>
	<atom:link href="http://dready.org/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://dready.org/blog</link>
	<description>musings on internationalized identifiers: domain names, OpenID, TLDs</description>
	<pubDate>Fri, 22 May 2009 10:48:01 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Forums are so 1999</title>
		<link>http://dready.org/blog/2009/05/22/forums-are-so-1999/</link>
		<comments>http://dready.org/blog/2009/05/22/forums-are-so-1999/#comments</comments>
		<pubDate>Fri, 22 May 2009 10:48:01 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[rant]]></category>

		<category><![CDATA[forums]]></category>

		<guid isPermaLink="false">http://dready.org/blog/?p=239</guid>
		<description><![CDATA[I cringe forums1 or message board every time I visit one.
They are usually cluttered with distracting animated gifs, elaborate signatures and tons of useless stats about the posters (novice/expert level, im status, joining date, etc.)
They are notoriously cumbersome to navigate, let alone find what you need. The forum administrators and moderators know it, so most [...]


Related posts:<ol><li><a href='http://dready.org/blog/2007/08/20/echidna-speaks-korean/' rel='bookmark' title='Permanent Link: EchIDNA Speaks Korean'>EchIDNA Speaks Korean</a> <small>안녕하세요! There are two pieces of great news I&#8217;d like to report, both of which relate to the Korean Internet...</small></li><li><a href='http://dready.org/blog/2005/08/07/whirlpool-aanet-exetel-and-xxx/' rel='bookmark' title='Permanent Link: Whirlpool, aaNet, Exetel, and XXX'>Whirlpool, aaNet, Exetel, and XXX</a> <small>Here&#8217;s a piece of interesting news from Whirlpool &mdash; Australia&#8217;s most popular community driven broadband news site. Quoting a forum...</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>I cringe <a href="http://en.wikipedia.org/wiki/Internet_forum">forums</a><sub>1</sub> or message board every time I visit one.</p>
<p>They are usually cluttered with distracting animated gifs, elaborate signatures and tons of useless stats about the posters (novice/expert level, im status, joining date, etc.)</p>
<p>They are notoriously cumbersome to navigate, let alone find what you need. The forum administrators and moderators know it, so most forums use stickies as a band-aid. For the casual visitor, stickies are usually road signs that tell you where to look for certain things, a summary of important points or FAQs. Needless to say, they&#8217;re pretty effective when you compare them with the rest of the mess, but a band-aid nonetheless.</p>
<p>I&#8217;d blame the user interface for this awkward communication medium. It&#8217;s not so much due to its age, because I&#8217;d rather read stuff on old skool NNTP with vi key bindings than to navigate these forums. Rather, it&#8217;s the constant need for paging (displaying page 1 of 32!!), which means that you can&#8217;t effectively use the browser&#8217;s in-page find feature. Search is usually broken or otherwise less than relevant. No threading, nor ability to easily filter messages. I could go on.</p>
<p>Perhaps it&#8217;s just a matter of tweaking the skin and applying sane user interface design. Certainly, there are some better-designed forums out there that are less painful to use. I haven&#8217;t seen much innovation in that area in a long time, actually not since my first encounter with them. I suspect people actually <em>like</em> and have come to expect those cumbersome features.</p>
<p>Forum communities are an entire subculture of their own, and I don&#8217;t expect a shift anytime soon. Yet, I can&#8217;t help but wonder if we can do better.</p>
<p><sub>1</sub> In case you&#8217;re wondering, I intentionally used the word <a href="http://en.wiktionary.org/wiki/Talk:forum">&#8220;forums&#8221; instead of &#8220;fora&#8221;</a>.</p>


<p>Related posts:<ol><li><a href='http://dready.org/blog/2007/08/20/echidna-speaks-korean/' rel='bookmark' title='Permanent Link: EchIDNA Speaks Korean'>EchIDNA Speaks Korean</a> <small>안녕하세요! There are two pieces of great news I&#8217;d like to report, both of which relate to the Korean Internet...</small></li><li><a href='http://dready.org/blog/2005/08/07/whirlpool-aanet-exetel-and-xxx/' rel='bookmark' title='Permanent Link: Whirlpool, aaNet, Exetel, and XXX'>Whirlpool, aaNet, Exetel, and XXX</a> <small>Here&#8217;s a piece of interesting news from Whirlpool &mdash; Australia&#8217;s most popular community driven broadband news site. Quoting a forum...</small></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2009/05/22/forums-are-so-1999/feed/</wfw:commentRss>
		</item>
		<item>
		<title>links for 2009-02-19</title>
		<link>http://dready.org/blog/2009/02/20/links-for-2009-02-19/</link>
		<comments>http://dready.org/blog/2009/02/20/links-for-2009-02-19/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 16:03:21 +0000</pubDate>
		<dc:creator>delicious</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dready.org/blog/2009/02/20/links-for-2009-02-19/</guid>
		<description><![CDATA[

JavaScript Madness: Dynamic Script Loading
(tags: bookmarklet js loading script webdev ajax)


Scope in JavaScript &#124; Digital Web Magazine
Excellent article on Javascript scoping, debunking the confusing concepts of &#34;this&#34;, &#34;bind&#34;, &#34;call&#34; and &#34;apply&#34;.
(tags: javascript js tutorial scoping programming)


iTransmogrify!
(tags: iphone videos youtube bookmarklet conversion flash)


Large iPhone Icons - a set on Flickr
not sure what the license is on [...]


Related posts:<ol><li><a href='http://dready.org/blog/2009/02/19/links-for-2009-02-18/' rel='bookmark' title='Permanent Link: links for 2009-02-18'>links for 2009-02-18</a> <small> Whoosh Whoosh is a fast, featureful full-text indexing and searching library implemented in pure Python. May be an easier-to-integrate...</small></li><li><a href='http://dready.org/blog/2006/05/19/google-web-toolkit-ajax-library/' rel='bookmark' title='Permanent Link: Google Web Toolkit (AJAX library)'>Google Web Toolkit (AJAX library)</a> <small>When I first saw the news about the newly released Google&#8217;s Web Toolkit: Google Web Toolkit (GWT) is a Java...</small></li><li><a href='http://dready.org/blog/2008/12/15/python-30-text-vs-data-instead-of-unicode-vs-8-bit/' rel='bookmark' title='Permanent Link: Python 3.0: Text vs. Data Instead Of Unicode vs. 8-bit'>Python 3.0: Text vs. Data Instead Of Unicode vs. 8-bit</a> <small>Python 3.0 (Py3K) is out. I&#8217;m with Sam Ruby &#8212; this seemingly simple change of paradigm from &#8220;Unicode vs. 8-bit&#8221;...</small></li></ol>]]></description>
			<content:encoded><![CDATA[<ul class="delicious">
<li>
<div class="delicious-link"><a href="http://unixpapa.com/js/dyna.html">JavaScript Madness: Dynamic Script Loading</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/mamamia/bookmarklet">bookmarklet</a> <a href="http://delicious.com/mamamia/js">js</a> <a href="http://delicious.com/mamamia/loading">loading</a> <a href="http://delicious.com/mamamia/script">script</a> <a href="http://delicious.com/mamamia/webdev">webdev</a> <a href="http://delicious.com/mamamia/ajax">ajax</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://www.digital-web.com/articles/scope_in_javascript">Scope in JavaScript | Digital Web Magazine</a></div>
<div class="delicious-extended">Excellent article on Javascript scoping, debunking the confusing concepts of &quot;this&quot;, &quot;bind&quot;, &quot;call&quot; and &quot;apply&quot;.</div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/mamamia/javascript">javascript</a> <a href="http://delicious.com/mamamia/js">js</a> <a href="http://delicious.com/mamamia/tutorial">tutorial</a> <a href="http://delicious.com/mamamia/scoping">scoping</a> <a href="http://delicious.com/mamamia/programming">programming</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://joemaller.com/2008/01/12/itransmogrify/">iTransmogrify!</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/mamamia/iphone">iphone</a> <a href="http://delicious.com/mamamia/videos">videos</a> <a href="http://delicious.com/mamamia/youtube">youtube</a> <a href="http://delicious.com/mamamia/bookmarklet">bookmarklet</a> <a href="http://delicious.com/mamamia/conversion">conversion</a> <a href="http://delicious.com/mamamia/flash">flash</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://www.flickr.com/photos/34818713@N00/sets/72157601845495751/#">Large iPhone Icons - a set on Flickr</a></div>
<div class="delicious-extended">not sure what the license is on these</div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/mamamia/iphone">iphone</a> <a href="http://delicious.com/mamamia/graphics">graphics</a> <a href="http://delicious.com/mamamia/iphonedev">iphonedev</a> <a href="http://delicious.com/mamamia/icons">icons</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://www.freesoftwaremagazine.com/columns/opensocial_overview_how_opensocial_works_and_integrate_with_cms">OpenSocial overview: how opensocial works, and how to integrate it with your CMS</a></div>
<div class="delicious-extended">Good step-by-step guide to implementing OpenSocial in your own site</div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/mamamia/shindig">shindig</a> <a href="http://delicious.com/mamamia/opensocial">opensocial</a> <a href="http://delicious.com/mamamia/gadget">gadget</a> <a href="http://delicious.com/mamamia/widget">widget</a> <a href="http://delicious.com/mamamia/cms">cms</a> <a href="http://delicious.com/mamamia/article">article</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://eric.themoritzfamily.com/2009/02/17/announcing-django-viewtools/">Announcing django-viewtools | One More Blog</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/mamamia/django">django</a> <a href="http://delicious.com/mamamia/debugging">debugging</a> <a href="http://delicious.com/mamamia/profiling">profiling</a> <a href="http://delicious.com/mamamia/webdev">webdev</a> <a href="http://delicious.com/mamamia/python">python</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://www.yamli.com/">Yamli - Arabic Search Engine and Smart Arabic Keyboard</a></div>
<div class="delicious-extended">Transliterate Arabic with this tool with API</div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/mamamia/arabic">arabic</a> <a href="http://delicious.com/mamamia/ajax">ajax</a> <a href="http://delicious.com/mamamia/transliteration">transliteration</a> <a href="http://delicious.com/mamamia/api">api</a> <a href="http://delicious.com/mamamia/web2.0">web2.0</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://lethain.com/entry/2009/feb/13/the-django-and-ubuntu-intrepid-almanac/">The Django and Ubuntu Intrepid Almanac @ Irrational Exuberance</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/mamamia/sysadmin">sysadmin</a> <a href="http://delicious.com/mamamia/vps">vps</a> <a href="http://delicious.com/mamamia/django">django</a> <a href="http://delicious.com/mamamia/nginx">nginx</a> <a href="http://delicious.com/mamamia/tutorials">tutorials</a> <a href="http://delicious.com/mamamia/ubuntu">ubuntu</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html">Specify your canonical (Official Google Webmaster Central Blog)</a></div>
<div class="delicious-extended">Tell Googlebot your canonical URL, so you don&#39;t get duplicate pages in the index</div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/mamamia/seo">seo</a> <a href="http://delicious.com/mamamia/webdev">webdev</a> <a href="http://delicious.com/mamamia/google">google</a> <a href="http://delicious.com/mamamia/search">search</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://www.scribd.com/doc/12016121/Tokyo-Cabinet-and-Tokyo-Tyrant-Presentation">http://www.scribd.com/doc/12016121/Tokyo-Cabinet-and-Tokyo-Tyrant-Presentation</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/mamamia/tokyocabinet">tokyocabinet</a> <a href="http://delicious.com/mamamia/db">db</a> <a href="http://delicious.com/mamamia/memcached">memcached</a> <a href="http://delicious.com/mamamia/scalability">scalability</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://www.webappwednesday.com/">Web App Wednesday - Occasionally interesting, often trivial, always original.</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/mamamia/gae">gae</a> <a href="http://delicious.com/mamamia/tutorials">tutorials</a> <a href="http://delicious.com/mamamia/python">python</a> <a href="http://delicious.com/mamamia/webdev">webdev</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://code.google.com/p/google-mobwrite/">MobWrite: Real-time Synchronization and Collaboration Service</a></div>
<div class="delicious-extended">Ajax frontend with corresponding backend to allow a web form to be collaboratively edited by multiple users.</div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/mamamia/python">python</a> <a href="http://delicious.com/mamamia/gae">gae</a> <a href="http://delicious.com/mamamia/googledocs">googledocs</a> <a href="http://delicious.com/mamamia/ajax">ajax</a> <a href="http://delicious.com/mamamia/collaboration">collaboration</a>)</div>
</li>
</ul>


<p>Related posts:<ol><li><a href='http://dready.org/blog/2009/02/19/links-for-2009-02-18/' rel='bookmark' title='Permanent Link: links for 2009-02-18'>links for 2009-02-18</a> <small> Whoosh Whoosh is a fast, featureful full-text indexing and searching library implemented in pure Python. May be an easier-to-integrate...</small></li><li><a href='http://dready.org/blog/2006/05/19/google-web-toolkit-ajax-library/' rel='bookmark' title='Permanent Link: Google Web Toolkit (AJAX library)'>Google Web Toolkit (AJAX library)</a> <small>When I first saw the news about the newly released Google&#8217;s Web Toolkit: Google Web Toolkit (GWT) is a Java...</small></li><li><a href='http://dready.org/blog/2008/12/15/python-30-text-vs-data-instead-of-unicode-vs-8-bit/' rel='bookmark' title='Permanent Link: Python 3.0: Text vs. Data Instead Of Unicode vs. 8-bit'>Python 3.0: Text vs. Data Instead Of Unicode vs. 8-bit</a> <small>Python 3.0 (Py3K) is out. I&#8217;m with Sam Ruby &#8212; this seemingly simple change of paradigm from &#8220;Unicode vs. 8-bit&#8221;...</small></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2009/02/20/links-for-2009-02-19/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Why Internationalize?</title>
		<link>http://dready.org/blog/2009/02/19/why-internationalize/</link>
		<comments>http://dready.org/blog/2009/02/19/why-internationalize/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 19:52:43 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[dns]]></category>

		<category><![CDATA[i18n]]></category>

		<category><![CDATA[icann]]></category>

		<category><![CDATA[arabic]]></category>

		<category><![CDATA[domain]]></category>

		<category><![CDATA[idn]]></category>

		<category><![CDATA[l33t]]></category>

		<category><![CDATA[sethgodin]]></category>

		<category><![CDATA[tld]]></category>

		<guid isPermaLink="false">http://dready.org/blog/?p=231</guid>
		<description><![CDATA[
Seth Godin&#8217;s book Tribes: We Need You to Lead Us looks like a good read, especially for marketers, crowd-herders, and entrepreneurs. Along with the book, he also started an invitation-only triiibal network on Ning, and got the folks to write an ebook called The Tribes Casebook (free download).
There&#8217;s a particular essay in there written by [...]


Related posts:<ol><li><a href='http://dready.org/blog/2007/08/28/icann-tests-idn-tld-for-real/' rel='bookmark' title='Permanent Link: .test IDN TLD (For Real!)'>.test IDN TLD (For Real!)</a> <small>Tina Dam and I caught up during ICANN San Juan on the current state of IDN TLD work within ICANN...</small></li><li><a href='http://dready.org/blog/2006/07/10/whats-in-an-i-name/' rel='bookmark' title='Permanent Link: What&#8217;s in an i-name?'>What&#8217;s in an i-name?</a> <small>The project that I&#8217;ve been working for almost a year at NeuStar is very much centered around a marketing term...</small></li><li><a href='http://dready.org/blog/2005/04/10/idn-in-dot-net-rfp/' rel='bookmark' title='Permanent Link: IDN in Dot Net RFP'>IDN in Dot Net RFP</a> <small>The .NET RFP evaluation report by Telcordia is disappointing because: IDN was not given the weight that it deserves; it...</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/Brueghel-tower-of-babel.jpg/400px-Brueghel-tower-of-babel.jpg" alt="Tower of Babel" title="Tower of Babel" /></p>
<p><a href="http://sethgodin.typepad.com">Seth Godin</a>&#8217;s book <em>Tribes: We Need You to Lead Us</em> looks like a good read, especially for marketers, crowd-herders, and entrepreneurs. Along with the book, he also started an invitation-only triiibal network on Ning, and got the folks to write an ebook called The Tribes Casebook (<a href="http://sethgodin.typepad.com/seths_blog/2008/10/free-tribes-ebo.html">free download</a>).</p>
<p>There&#8217;s a particular essay in there written by <a href="http://datesndip.wordpress.com/">Dr. Saleh AlShebil</a> titled <em>When Technology Fails: A Language gets Born in an Online Tribe</em>. Dr. AlShebil wrote about how an ASCII-based language (that he calls <em>Araby</em>) was born due to the lack of Arabic language input support on early instant messaging networks. These are transliterations of Arabic into Latin alphabets, not unlike <a href="http://en.wikipedia.org/wiki/Leet">l33t</a> but grew out of different motivations.</p>
<p>Here&#8217;s what it looks like (<a href="http://jcmc.indiana.edu/vol9/issue1/palfreyman.html" title="A Funky Language for Teenzz to Use: Representing Gulf Arabic in Instant Messaging">source</a>):</p>
<table cellspacing="1" bgcolor="#666">
<tbody>
<tr bgcolor="#777">
<th width="50%">Sound</th>
<th width="10%">Arabic letter</th>
<th width="10%">ASCII</th>
<th width="30%">Example</th>
</tr>
<tr>
<td>/&#295;/ (a heavy /h/-type sound)</td>
<td dir="rtl">&#1581;</td>
<td align="center">7</td>
<td>wa7ed (one)</td>
</tr>
<tr>
<td>/&#661;/ (a tightening of the throat resembling a light gargle)</td>
<td dir="rtl">&#1593;</td>
<td align="center">3</td>
<td>ba3ad (after)</td>
</tr>
<tr>
<td>/t&#8217;/ (the emphatic version of /t/)</td>
<td dir="rtl">&#1591;</td>
<td align="center">6</td>
<td>6arrash (he sent)</td>
</tr>
<tr>
<td>/s&#8217;/ (the emphatic version of /s/)</td>
<td dir="rtl">&#1589;</td>
<td align="center">9</td>
<td>a9lan (actually)</td>
</tr>
<tr>
<td>/&#660;/ (glottal stop)</td>
<td dir="rtl">&#1569;</td>
<td align="center">2</td>
<td>so2al (question)</td>
</tr>
</tbody>
</table>
<p>So, <span dir="rtl" lang="ar">واحد</span> (one) sounds roughly like &#8220;wahed&#8221;, and you&#8217;d write it as &#8220;wa7ed&#8221;.</p>
<p>Quoting Dr. AlShebil (<em>emphases</em> added):<br />
<blockquote>
Arabic language alphabet is comprised of 28 letters. Some of these letters do not have an equivalent “sound” in English. So what did our online tribe do? They began looking for numbers and other keystrokes that can somehow resemble what the real Arabic letter “looks” like. Let me explain…</p>
<p>For instance, the Arabic letter “ﻉ” is pronounced as A’aa when used in a word and it got replaced with the number “3” since “3” looks like an inverted “ﻉ”. So the word Arabic which is written “Araby” (in Arabic sounding English) and begins with “ﻉ” was then written as “3raby.”</p>
<p>&#8230;This new form of tribal net lingo began to spread like wildfire. It would probably be a safe assumption to say that <em>any Arab who is online today (especially the youth)</em> is pretty familiar with it. Using it was not limited to chat and instant messaging but has also swelled to include any form of writing in online communities and even in mobile text messaging (sms). The Arabic net lingo virus caught on to <em>Arabic websites that even wanted their domain names to sound or “look” Arabic.</em>
</p></blockquote>
<p>As mentioned above, this is similar to l33t-speak, and also the lesser-known <a href="http://ja.wikipedia.org/wiki/%E3%82%AE%E3%83%A3%E3%83%AB%E6%96%87%E5%AD%97">ギャル文字</a> (<a href="http://en.wikipedia.org/wiki/Gyaru-moji">Gyaru-Moji</a>).</p>
<p>Now, I dig subcultures like these, but don&#8217;t you think there&#8217;s something wrong with the emergence of a new lingo that could potentially <em>erode a language like Arabic just because technology couldn&#8217;t support it</em>?</p>
<p>Is this serious enough to erode the Arabic language? Maybe I&#8217;m exaggerating but one can imagine youths forgetting how to spell correctly in Arabic script because they&#8217;re so used to using &#8220;Araby&#8221;.</p>
<p>This is the case for why internationalization is important for the Internet (and technology in general.) More importantly, it is the prime motivation behind Internationalized Domain Names, which is in turn a primary contributor to the need for new TLDs.</p>
<p>Internationalization is not for vanity or luxury, it&#8217;s a necessity to preserve culture.</p>


<p>Related posts:<ol><li><a href='http://dready.org/blog/2007/08/28/icann-tests-idn-tld-for-real/' rel='bookmark' title='Permanent Link: .test IDN TLD (For Real!)'>.test IDN TLD (For Real!)</a> <small>Tina Dam and I caught up during ICANN San Juan on the current state of IDN TLD work within ICANN...</small></li><li><a href='http://dready.org/blog/2006/07/10/whats-in-an-i-name/' rel='bookmark' title='Permanent Link: What&#8217;s in an i-name?'>What&#8217;s in an i-name?</a> <small>The project that I&#8217;ve been working for almost a year at NeuStar is very much centered around a marketing term...</small></li><li><a href='http://dready.org/blog/2005/04/10/idn-in-dot-net-rfp/' rel='bookmark' title='Permanent Link: IDN in Dot Net RFP'>IDN in Dot Net RFP</a> <small>The .NET RFP evaluation report by Telcordia is disappointing because: IDN was not given the weight that it deserves; it...</small></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2009/02/19/why-internationalize/feed/</wfw:commentRss>
		</item>
		<item>
		<title>links for 2009-02-18</title>
		<link>http://dready.org/blog/2009/02/19/links-for-2009-02-18/</link>
		<comments>http://dready.org/blog/2009/02/19/links-for-2009-02-18/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 16:07:33 +0000</pubDate>
		<dc:creator>delicious</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dready.org/blog/2009/02/19/links-for-2009-02-18/</guid>
		<description><![CDATA[

Whoosh
Whoosh is a fast, featureful full-text indexing and searching library implemented in pure Python. May be an easier-to-integrate alternative to Xapian, Lucene or HyperEstraier.
(tags: fulltext search python indexing)


Demiforce :: Home
(tags: iphone gamedev social cocoa)


Business Card Scanning and Contact Manager - CloudContacts
(tags: businesscards web2.0 organizing crm)


Tagging the World
(tags: techcrunch50 iphone social geotagging camera japan)




Related posts:links for [...]


Related posts:<ol><li><a href='http://dready.org/blog/2009/02/20/links-for-2009-02-19/' rel='bookmark' title='Permanent Link: links for 2009-02-19'>links for 2009-02-19</a> <small> JavaScript Madness: Dynamic Script Loading (tags: bookmarklet js loading script webdev ajax) Scope in JavaScript | Digital Web Magazine...</small></li><li><a href='http://dready.org/blog/2006/08/21/im-flocked/' rel='bookmark' title='Permanent Link: I&#8217;m Flocked'>I&#8217;m Flocked</a> <small> Just downloaded flock and am totally lovin&#8217; it. Being able to manage my flickr and photobucket account with drag-n-drop...</small></li><li><a href='http://dready.org/blog/2006/08/07/distinguished-business-leader-series/' rel='bookmark' title='Permanent Link: Distinguished Business Leader Series'>Distinguished Business Leader Series</a> <small>Yesterday, Alvin and I attended the &#8220;Distinguished Business Leader Series&#8221; talk jointly organized by the Singapore Prime Minister’s Office and...</small></li></ol>]]></description>
			<content:encoded><![CDATA[<ul class="delicious">
<li>
<div class="delicious-link"><a href="http://whoosh.ca/">Whoosh</a></div>
<div class="delicious-extended">Whoosh is a fast, featureful full-text indexing and searching library implemented in pure Python. May be an easier-to-integrate alternative to Xapian, Lucene or HyperEstraier.</div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/mamamia/fulltext">fulltext</a> <a href="http://delicious.com/mamamia/search">search</a> <a href="http://delicious.com/mamamia/python">python</a> <a href="http://delicious.com/mamamia/indexing">indexing</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://onyx.demiforce.com/">Demiforce :: Home</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/mamamia/iphone">iphone</a> <a href="http://delicious.com/mamamia/gamedev">gamedev</a> <a href="http://delicious.com/mamamia/social">social</a> <a href="http://delicious.com/mamamia/cocoa">cocoa</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://www.cloudcontacts.com/">Business Card Scanning and Contact Manager - CloudContacts</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/mamamia/businesscards">businesscards</a> <a href="http://delicious.com/mamamia/web2.0">web2.0</a> <a href="http://delicious.com/mamamia/organizing">organizing</a> <a href="http://delicious.com/mamamia/crm">crm</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://www.tonchidot.com/">Tagging the World</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/mamamia/techcrunch50">techcrunch50</a> <a href="http://delicious.com/mamamia/iphone">iphone</a> <a href="http://delicious.com/mamamia/social">social</a> <a href="http://delicious.com/mamamia/geotagging">geotagging</a> <a href="http://delicious.com/mamamia/camera">camera</a> <a href="http://delicious.com/mamamia/japan">japan</a>)</div>
</li>
</ul>


<p>Related posts:<ol><li><a href='http://dready.org/blog/2009/02/20/links-for-2009-02-19/' rel='bookmark' title='Permanent Link: links for 2009-02-19'>links for 2009-02-19</a> <small> JavaScript Madness: Dynamic Script Loading (tags: bookmarklet js loading script webdev ajax) Scope in JavaScript | Digital Web Magazine...</small></li><li><a href='http://dready.org/blog/2006/08/21/im-flocked/' rel='bookmark' title='Permanent Link: I&#8217;m Flocked'>I&#8217;m Flocked</a> <small> Just downloaded flock and am totally lovin&#8217; it. Being able to manage my flickr and photobucket account with drag-n-drop...</small></li><li><a href='http://dready.org/blog/2006/08/07/distinguished-business-leader-series/' rel='bookmark' title='Permanent Link: Distinguished Business Leader Series'>Distinguished Business Leader Series</a> <small>Yesterday, Alvin and I attended the &#8220;Distinguished Business Leader Series&#8221; talk jointly organized by the Singapore Prime Minister’s Office and...</small></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2009/02/19/links-for-2009-02-18/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Why be an OpenID Relying Party?</title>
		<link>http://dready.org/blog/2009/02/12/why-be-an-openid-relying-party/</link>
		<comments>http://dready.org/blog/2009/02/12/why-be-an-openid-relying-party/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 18:20:52 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[data-portability]]></category>

		<category><![CDATA[oauth]]></category>

		<category><![CDATA[openid]]></category>

		<category><![CDATA[openstack]]></category>

		<category><![CDATA[portable contacts]]></category>

		<guid isPermaLink="false">http://dready.org/blog/?p=228</guid>
		<description><![CDATA[Plaxo&#8217;s Joseph Smarr presented the following at the OpenID Design Summit at Facebook HQ yesterday:
What an &#34;RP&#34; Wants
View more presentations from johnmccrea. (tags: #openidux josephsmarr)

This was a controlled experiment combining 3 technologies (2 of which from the Open Stack but hybridized) under the hood to create a streamlined signup experience that goes like this:

Someone at [...]


Related posts:<ol><li><a href='http://dready.org/blog/2007/05/05/openid-for-drupal/' rel='bookmark' title='Permanent Link: OpenID for Drupal'>OpenID for Drupal</a> <small>There was a thread on the OpenID list around the subject of OpenID support in Drupal. Previously, I&#8217;ve experimented with...</small></li><li><a href='http://dready.org/blog/2009/01/02/mobile-openid-in-japan/' rel='bookmark' title='Permanent Link: On Mobile OpenID in Japan'>On Mobile OpenID in Japan</a> <small>This presentation by =zigorou (Toru Yamaguchi) titled &#8220;Considering OpenID for Mobile&#8221; (Thanks =peterd and =nat) is particularly interesting for me...</small></li><li><a href='http://dready.org/blog/2007/01/15/this-blog-is-openid-enabled/' rel='bookmark' title='Permanent Link: This blog is OpenID enabled!'>This blog is OpenID enabled!</a> <small> One thing led to another. After reading my previous entry on &#8220;mod_python OpenID Access Control&#8221;, Nate Olson contacted me...</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Plaxo&#8217;s <a href="http://www.plaxo.com/directory/profile/4294967299/7cca273a/Joseph/Smarr">Joseph Smarr</a> presented the following at the OpenID Design Summit at Facebook HQ yesterday:</p>
<div style="width:425px;text-align:left" id="__ss_1014050"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/johnmccrea/what-an-rp-wants?type=presentation" title="What an &quot;RP&quot; Wants">What an &quot;RP&quot; Wants</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=2009-whatanrpwants-1234302033849999-1&#038;stripped_title=what-an-rp-wants" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=2009-whatanrpwants-1234302033849999-1&#038;stripped_title=what-an-rp-wants" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/johnmccrea">johnmccrea</a>. (tags: <a style="text-decoration:underline;" href="http://slideshare.net/tag/openidux">#openidux</a> <a style="text-decoration:underline;" href="http://slideshare.net/tag/josephsmarr">josephsmarr</a>)</div>
</div>
<p>This was a controlled experiment combining 3 technologies (2 of which from the Open Stack but <a href="http://step2.googlecode.com/svn/spec/openid_oauth_extension/latest/openid_oauth_extension.html">hybridized</a>) under the hood to create a streamlined signup experience that goes like this:</p>
<ol>
<li>Someone at Plaxo invites you to join by entering your Gmail address</li>
<li>You get an invitation email from Plaxo</li>
<li>You click on the link</li>
<li>Plaxo knows that you&#8217;re a GMail user (and <strong>likely still signed in</strong>), so it presents you with the following screen: <br /><img src="http://farm4.static.flickr.com/3369/3237416706_fe0cb23628.jpg" alt="" title="Google Optimized Landing Page" /><br /><small>I believe that since Plaxo already has your Gmail address, it is already somehow encoded in here to save you from having to type it in, but I haven&#8217;t tried it so I&#8217;m not sure</small></li>
<li>Clicking &#8220;Sign up with my Google Account&#8221; brings you over to Google with the following screen:<br /><img src="http://farm4.static.flickr.com/3432/3237416710_f8ee8eccb0.jpg" alt="" /></li>
<li>Clicking &#8220;Continue Sign-in&#8221; tells Plaxo that you are indeed the holder of the Gmail address, at the same time authorizing Plaxo to import your address book from Google.</li>
<li>That&#8217;s it! You&#8217;re signed up to Plaxo and your Gmail address book is available in Plaxo.</li>
</ol>
<p>The result was a staggering 92% return rate (from the Google authorization confirmation screen above), of which 92% continued with the sign up and allowed Plaxo to import their contacts from their Google address book. The results were so impressive that Plaxo&#8217;s business folks stopped the tech folks from turning off the experiment!</p>
<p>Indeed these results are impressive by today&#8217;s standard of endless signup forms and social networking fatigue. I would whole-heartedly agree that through this clever experiment, Plaxo has met their goals of making it better for the user, the identity provider, as well as the relying site.</p>
<p>The technologies that made these possible were:</p>
<ul>
<li><a href="http://openid.net/">OpenID</a> for proving who you are (to Plaxo that you do indeed own the GMail address.)</li>
<li><a href="http://oauth.net/">OAuth</a> (implemented as an extension to OpenID) was used to grant Plaxo access to your contacts stored on Google; and</li>
<li>Google Contacts API for actually importing them into Plaxo (would be nice to see <a href="http://portablecontacts.net/">Portable Contacts</a> being adopted by Google)</li>
</ul>
<p>Individually, those technologies are good at what they&#8217;re designed to do but when combined with a simple hint such as &#8220;the user is a GMail account holder, and is probably still signed in to the service&#8221;, it could be very powerful.</p>
<p>Still, my biggest takeaway from the slides are:</p>
<ul>
<li>17% (of Plaxo signups) come from GMail account holders; and</li>
<li>73% come from the top 4 (Yahoo, Microsoft, Google, and AOL)</li>
<li>all of them being OpenID Providers</li>
</ul>
<p>This shows that you can already take advantage of the fact that a large percentage of users already own an OpenID, who may be more willing to sign up to your service than they otherwise wouldn&#8217;t have if faced with another tedious registration form.</p>
<p>While many (including myself) have criticized OpenID that there are more providers than relying parties, Plaxo has proven (with impressive numbers) that with a little ingenuity and optimization of <acronym title="User Experience">UX</acronym>, sites can reap the benefits of being an RP!</p>


<p>Related posts:<ol><li><a href='http://dready.org/blog/2007/05/05/openid-for-drupal/' rel='bookmark' title='Permanent Link: OpenID for Drupal'>OpenID for Drupal</a> <small>There was a thread on the OpenID list around the subject of OpenID support in Drupal. Previously, I&#8217;ve experimented with...</small></li><li><a href='http://dready.org/blog/2009/01/02/mobile-openid-in-japan/' rel='bookmark' title='Permanent Link: On Mobile OpenID in Japan'>On Mobile OpenID in Japan</a> <small>This presentation by =zigorou (Toru Yamaguchi) titled &#8220;Considering OpenID for Mobile&#8221; (Thanks =peterd and =nat) is particularly interesting for me...</small></li><li><a href='http://dready.org/blog/2007/01/15/this-blog-is-openid-enabled/' rel='bookmark' title='Permanent Link: This blog is OpenID enabled!'>This blog is OpenID enabled!</a> <small> One thing led to another. After reading my previous entry on &#8220;mod_python OpenID Access Control&#8221;, Nate Olson contacted me...</small></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2009/02/12/why-be-an-openid-relying-party/feed/</wfw:commentRss>
		</item>
		<item>
		<title>(Lack of) English Word Wrapping in Japan</title>
		<link>http://dready.org/blog/2009/02/05/english-word-wrapping-japan/</link>
		<comments>http://dready.org/blog/2009/02/05/english-word-wrapping-japan/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 18:31:08 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[japan]]></category>

		<category><![CDATA[usualbiz]]></category>

		<category><![CDATA[culture]]></category>

		<category><![CDATA[train]]></category>

		<category><![CDATA[word wrapping]]></category>

		<guid isPermaLink="false">http://dready.org/blog/?p=226</guid>
		<description><![CDATA[Here&#8217;s a pic of the information panel on a train a took in Tokyo while heading towards Shinjuku:

Notice how the words &#8220;suspension&#8221;, &#8220;service&#8221;, &#8220;trouble&#8221; (and the partially visible &#8220;Shinkansen&#8221;) were brutally split at arbitrary boundaries without any use of hyphen. While this is common practice for the Japanese language, it certainly makes it hard for [...]


Related posts:<ol><li><a href='http://dready.org/blog/2009/01/02/mobile-openid-in-japan/' rel='bookmark' title='Permanent Link: On Mobile OpenID in Japan'>On Mobile OpenID in Japan</a> <small>This presentation by =zigorou (Toru Yamaguchi) titled &#8220;Considering OpenID for Mobile&#8221; (Thanks =peterd and =nat) is particularly interesting for me...</small></li><li><a href='http://dready.org/blog/2006/05/19/google-web-toolkit-ajax-library/' rel='bookmark' title='Permanent Link: Google Web Toolkit (AJAX library)'>Google Web Toolkit (AJAX library)</a> <small>When I first saw the news about the newly released Google&#8217;s Web Toolkit: Google Web Toolkit (GWT) is a Java...</small></li><li><a href='http://dready.org/blog/2009/02/19/why-internationalize/' rel='bookmark' title='Permanent Link: Why Internationalize?'>Why Internationalize?</a> <small> Seth Godin&#8217;s book Tribes: We Need You to Lead Us looks like a good read, especially for marketers, crowd-herders,...</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a pic of the information panel on a train a took in Tokyo while heading towards Shinjuku:</p>
<p><img src="http://lh4.ggpht.com/_Ff3GsX-NfP0/SYnZNxnPTiI/AAAAAAAAADI/0NOBDzPVUkI/s400/IMG_0453.JPG" alt="" /></p>
<p>Notice how the words &#8220;suspension&#8221;, &#8220;service&#8221;, &#8220;trouble&#8221; (and the partially visible &#8220;Shinkansen&#8221;) were brutally split at arbitrary boundaries without any use of hyphen. While this is common practice for the Japanese language, it certainly makes it hard for English readers to scan the information being presented.</p>
<p>I can only vaguely remember early computing systems where editors didn&#8217;t do word wrapping (anybody care to refresh my memory?)</p>


<p>Related posts:<ol><li><a href='http://dready.org/blog/2009/01/02/mobile-openid-in-japan/' rel='bookmark' title='Permanent Link: On Mobile OpenID in Japan'>On Mobile OpenID in Japan</a> <small>This presentation by =zigorou (Toru Yamaguchi) titled &#8220;Considering OpenID for Mobile&#8221; (Thanks =peterd and =nat) is particularly interesting for me...</small></li><li><a href='http://dready.org/blog/2006/05/19/google-web-toolkit-ajax-library/' rel='bookmark' title='Permanent Link: Google Web Toolkit (AJAX library)'>Google Web Toolkit (AJAX library)</a> <small>When I first saw the news about the newly released Google&#8217;s Web Toolkit: Google Web Toolkit (GWT) is a Java...</small></li><li><a href='http://dready.org/blog/2009/02/19/why-internationalize/' rel='bookmark' title='Permanent Link: Why Internationalize?'>Why Internationalize?</a> <small> Seth Godin&#8217;s book Tribes: We Need You to Lead Us looks like a good read, especially for marketers, crowd-herders,...</small></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2009/02/05/english-word-wrapping-japan/feed/</wfw:commentRss>
		</item>
		<item>
		<title>HTML.vim &#8212; Save Some Keystrokes (and Your Wrists)</title>
		<link>http://dready.org/blog/2009/02/03/html-vim-save-keystrokes-and-wrists/</link>
		<comments>http://dready.org/blog/2009/02/03/html-vim-save-keystrokes-and-wrists/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 15:39:29 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[vim]]></category>

		<category><![CDATA[conscious typing]]></category>

		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://dready.org/blog/?p=224</guid>
		<description><![CDATA[To save my wrists from chronic RSI, I finally switched to using HTML.vim, and I must say that rocks! Having to type less means it forces me to be a more conscious typist, pausing to think what I really need to achieve rather than doing lots of pointless characters that gets the backspace treatment within [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>To save my wrists from chronic <acronym title="Repetitive Strain Injury">RSI</acronym>, I finally switched to using <a href="http://www.infynity.spodzone.com/vim/HTML/">HTML.vim</a>, and I must say that rocks! Having to type less means it forces me to be a more conscious typist, pausing to think what I really need to achieve rather than doing lots of pointless characters that gets the backspace treatment within seconds of appearing anyway.</p>
<p>It does take some getting used to but trust me it&#8217;s a wise investment.</p>
<p>The following settings (in <code>.vimrc</code>) works well for me:</p>
<p><code><br />
:let g:html_tag_case = 'lowercase'<br />
:let g:do_xhtml_mappings = 'yes'<br />
</code></p>
<p>Plus the ability to quickly insert a customized blank HTML template is just godsend!</p>
<p>I&#8217;ve procrastinated way too long, but if you&#8217;re like me and use Vim to edit HTML a lot, you should definitely check it out!</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2009/02/03/html-vim-save-keystrokes-and-wrists/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Emoji Encoding Conversion between Carriers</title>
		<link>http://dready.org/blog/2009/02/01/emoji-encoding-conversion/</link>
		<comments>http://dready.org/blog/2009/02/01/emoji-encoding-conversion/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 17:52:05 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[japan]]></category>

		<category><![CDATA[mobile]]></category>

		<category><![CDATA[unicode]]></category>

		<category><![CDATA[emoji]]></category>

		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://dready.org/blog/?p=215</guid>
		<description><![CDATA[
I remember reading about Apple supporting emoji on the iPhone OS 2.2. Now that I&#8217;ve upgraded, I decided to try it out but for could never find it after hunting through the keyboard preferences. Googling showed that these cute little emoticons are only available for Softbank users. Thankfully, Steven Troughton-Smith has figured out that by [...]


Related posts:<ol><li><a href='http://dready.org/blog/2009/01/30/emoji-in-unicode/' rel='bookmark' title='Permanent Link: Emoji to be encoded in Unicode'>Emoji to be encoded in Unicode</a> <small>The Unicode Technical Committee is working on encoding emoji (絵文字) in the Unicode Standard and ISO10646. It has spurred loads...</small></li><li><a href='http://dready.org/blog/2009/01/02/mobile-openid-in-japan/' rel='bookmark' title='Permanent Link: On Mobile OpenID in Japan'>On Mobile OpenID in Japan</a> <small>This presentation by =zigorou (Toru Yamaguchi) titled &#8220;Considering OpenID for Mobile&#8221; (Thanks =peterd and =nat) is particularly interesting for me...</small></li><li><a href='http://dready.org/blog/2008/07/31/iphone-blogging/' rel='bookmark' title='Permanent Link: iPhone-blogging'>iPhone-blogging</a> <small>I&#8217;ve always wanted to post to my own blog from the mobile phone rather than using third party blogging platforms....</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.macrumors.com/iphone/2008/10/05/iphone-2-2-includes-hidden-japanese-emoji-icons/"><img src="http://dready.org/blog/wp-content/uploads/2009/02/175357-emoji.jpg" alt="" title="emoji on iPhone" width="320" height="480" class="alignnone size-medium wp-image-216" /></a></p>
<p>I remember reading about Apple supporting <a href="http://dready.org/blog/2009/01/30/emoji-in-unicode/">emoji</a> on the iPhone OS 2.2. Now that I&#8217;ve upgraded, I decided to try it out but for could never find it after hunting through the keyboard preferences. Googling showed that these cute little emoticons are only available for Softbank users. Thankfully, <a href="http://blog.steventroughtonsmith.com/2008/11/how-to-enable-emoji-systemwide.html">Steven Troughton-Smith</a> has figured out that by editing a file on your iPhone backup, the &#8220;emoji&#8221; option suddenly shows up under <em>Settings</em> -&gt; <em>General</em> -&gt; <em>Keyboard</em> -&gt; <em>International Keyboards</em> -&gt; <em>Japanese</em>!</p>
<p>Now that I have the ability to enter these emoji on my iPhone, I figure I&#8217;d try it out by sending an email to myself. Alas, all I get is a list of of boxes. Time to look at the message content (relevant fields):</p>
<p><span id="more-215"></span></p>
<pre>
Content-Type: text/plain;
  charset=cp932;
  format=flowed
Content-Transfer-Encoding: base64
X-Mailer: iPhone Mail (5G77)
Mime-Version: 1.0 (iPhone Mail 5G77)
Subject: trying out emoji
Date: Sat, 31 Jan 2009 19:11:03 +0800

aGV5IHRoZXJlIPGQDQoNCvWc9d3wSPB78unzR/SY9Jv3RPCW9vnwlQ==
</pre>
<p>ok, pretty strange that it&#8217;s sent in <a href="http://en.wikipedia.org/wiki/Code_page_932">cp932</a> encoding, but we&#8217;ll see:</p>
<pre>
&gt;&gt;&gt; from base64 import b64decode
&gt;&gt;&gt; s = b64decode('aGV5IHRoZXJlIPGQDQoNCvWc9d3wSPB78unzR/SY9Jv3RPCW9vnwlQ==')
&gt;&gt;&gt; s
'hey there \xf1\x90\r\n\r\n\xf5\x9c\xf5\xdd\xf0H\xf0{\xf2\xe9\xf3G\xf4\x98\xf4\x9b\xf7D\xf0\x96\xf6\xf9\xf0\x95'
&gt;&gt;&gt; s.decode('cp932')
u'hey there \ue10b\r\n\r\n\ue407\ue448\ue008\ue03b\ue220\ue23b\ue347\ue34a\ue528\ue055\ue520\ue054'
&gt;&gt;&gt;
</pre>
<p>The Unicode code points look like they do correspond to the Softbank private use ones, so I&#8217;m going to use the <a href="http://code.google.com/p/emoji4unicode/">emoji4unicode</a> package to convert it to HTML. The following Python script will convert it to the various carrier&#8217;s representation:</p>
<pre>
import emoji4unicode
import carrier_data

s = b64decode('aGV5IHRoZXJlIPGQDQoNCvWc9d3wSPB78unzR/SY9Jv3RPCW9vnwlQ==')
uni = s.decode('cp932')

sd = carrier_data.GetSoftbankData()
dd = carrier_data.GetDocomoData()
kd = carrier_data.GetKddiData()

emoji4unicode.Load()
def find_symbol(pua, carrier):
    for sym in emoji4unicode.GetSymbols():
        uni = sym.GetCarrierUnicode(carrier)
        if uni and uni == pua:
            return sym

def map_symbol(sym, carrier, cdata):
    uni = sym.GetCarrierUnicode(carrier)
    if not uni: # no mapping for this carrier
        return sym.GetTextFallback()
    else:
        if uni.startswith("&gt;"): # mapped
            if len(uni) &gt; 5:
                raise Exception, "cannot handle this yet"
            uni = uni[1:]

        return cdata.SymbolFromUnicode(uni).ImageHTML()

softbank = []
docomo = []
kddi = []

for u in uni:
    hex = "%04X" % ord(u)
    if u &gt; '\x7F':
        sym = find_symbol(hex, "softbank")

        softbank.append(sd.SymbolFromUnicode(hex).ImageHTML())
        kddi.append(map_symbol(sym, "kddi", kd))
        docomo.append(map_symbol(sym, "docomo", dd))
    elif u == '\n':
        softbank.append('&lt;br /&gt;')
        kddi.append('&lt;br /&gt;')
        docomo.append('&lt;br /&gt;')
    else:
        softbank.append(u)
        kddi.append(u)
        docomo.append(u)

print "Softbank:&lt;br /&gt;", ''.join(softbank).encode('utf-8')
print "&lt;hr /&gt;KDDI:&lt;br /&gt;", ''.join(kddi).encode('utf-8')
print "&lt;hr /&gt;DoCoMo:&lt;br /&gt;", ''.join(docomo).encode('utf-8')
</pre>
<p>Results below:</p>
<div style="background: #333">
<strong>Softbank</strong>:<br /> hey there <img src=http://creation.mb.softbank.jp/web/img/E101/E10B_20.gif></p>
<p><img src=http://creation.mb.softbank.jp/web/img/E401/E407_20.gif><img src=http://creation.mb.softbank.jp/web/img/E401/E448_20.gif><img src=http://creation.mb.softbank.jp/web/img/E001/E008_20.gif><img src=http://creation.mb.softbank.jp/web/img/E001/E03B_20.gif><img src=http://creation.mb.softbank.jp/web/img/E201/E220_20.gif><img src=http://creation.mb.softbank.jp/web/img/E201/E23B_20.gif><img src=http://creation.mb.softbank.jp/web/img/E301/E347_20.gif><img src=http://creation.mb.softbank.jp/web/img/E301/E34A_20.gif><img src=http://creation.mb.softbank.jp/web/img/E501/E528_20.gif><img src=http://creation.mb.softbank.jp/web/img/E001/E055_20.gif><img src=http://creation.mb.softbank.jp/web/img/E501/E520_20.gif><img src=http://creation.mb.softbank.jp/web/img/E001/E054_20.gif>
</div>
<div style="background: #333">
<strong>KDDI</strong>:<br /> hey there <img src=http://www001.upp.so-net.ne.jp/hdml/emoji/e/254.gif></p>
<p><img src=http://www001.upp.so-net.ne.jp/hdml/emoji/e/444.gif><img src=http://www001.upp.so-net.ne.jp/hdml/emoji/e/489.gif><img src=http://www001.upp.so-net.ne.jp/hdml/emoji/e/94.gif><img src=http://www001.upp.so-net.ne.jp/hdml/emoji/e/342.gif><img src=http://www001.upp.so-net.ne.jp/hdml/emoji/e/184.gif><img src=http://www001.upp.so-net.ne.jp/hdml/emoji/e/5.gif><img src=http://www001.upp.so-net.ne.jp/hdml/emoji/e/243.gif><img src=http://www001.upp.so-net.ne.jp/hdml/emoji/e/437.gif><img src=http://www001.upp.so-net.ne.jp/hdml/emoji/e/249.gif><img src=http://www001.upp.so-net.ne.jp/hdml/emoji/e/252.gif><img src=http://www001.upp.so-net.ne.jp/hdml/emoji/e/713.gif><img src=http://www001.upp.so-net.ne.jp/hdml/emoji/e/246.gif>
</div>
<div style="background: #333">
<strong>DoCoMo</strong>:<br /> hey there <img src=http://www.nttdocomo.co.jp/service/imode/make/content/pictograph/extention/images/74.gif width=16 height=16></p>
<p><img src=http://www.nttdocomo.co.jp/service/imode/make/content/pictograph/basic/images/143.gif width=16 height=16>[サンタ]<img src=http://www.nttdocomo.co.jp/service/imode/make/content/pictograph/basic/images/68.gif width=16 height=16><img src=http://www.nttdocomo.co.jp/service/imode/make/content/pictograph/extention/images/53.gif width=16 height=16><img src=http://www.nttdocomo.co.jp/service/imode/make/content/pictograph/basic/images/129.gif width=16 height=16>[<][イチゴ][ナス][サル]<img src=http://www.nttdocomo.co.jp/service/imode/make/content/pictograph/extention/images/69.gif width=16 height=16>[イルカ][クジラ]
</div>
<p>As you can see, DoCoMo has the least number of emoji&#8217;s, so many of the characters like &#8220;Santa&#8221;, &#8220;Strawberry&#8221;, &#8220;Eggplant&#8221;, &#8220;Monkey&#8221;, &#8220;Dolphin&#8221; and &#8220;Whale&#8221; are substituted by the fallback text format.</p>
<p>Do note that the python script is not optimized at all, and loops through every emoji in the database for each character it needs to convert. Also, if you need such functionality in your application, there are various libraries out there that already does the mapping well. This is just an experiment.</p>


<p>Related posts:<ol><li><a href='http://dready.org/blog/2009/01/30/emoji-in-unicode/' rel='bookmark' title='Permanent Link: Emoji to be encoded in Unicode'>Emoji to be encoded in Unicode</a> <small>The Unicode Technical Committee is working on encoding emoji (絵文字) in the Unicode Standard and ISO10646. It has spurred loads...</small></li><li><a href='http://dready.org/blog/2009/01/02/mobile-openid-in-japan/' rel='bookmark' title='Permanent Link: On Mobile OpenID in Japan'>On Mobile OpenID in Japan</a> <small>This presentation by =zigorou (Toru Yamaguchi) titled &#8220;Considering OpenID for Mobile&#8221; (Thanks =peterd and =nat) is particularly interesting for me...</small></li><li><a href='http://dready.org/blog/2008/07/31/iphone-blogging/' rel='bookmark' title='Permanent Link: iPhone-blogging'>iPhone-blogging</a> <small>I&#8217;ve always wanted to post to my own blog from the mobile phone rather than using third party blogging platforms....</small></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2009/02/01/emoji-encoding-conversion/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Writer&#8217;s Drainage</title>
		<link>http://dready.org/blog/2009/01/30/writers-drainage/</link>
		<comments>http://dready.org/blog/2009/01/30/writers-drainage/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 13:51:56 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[blogging]]></category>

		<category><![CDATA[inspiration]]></category>

		<category><![CDATA[writer's blog]]></category>

		<category><![CDATA[writer's drainage]]></category>

		<guid isPermaLink="false">http://dready.org/blog/?p=213</guid>
		<description><![CDATA[Don&#8217;t ask why, I just somehow fell into the mood of blogging again. It&#8217;s strange, for a long period I have had absolutely no intention to write. Even when I tried, words failed to flow.
Then, all of a sudden, now it&#8217;s all coming back. Every other minute, I&#8217;m getting hit by ideas and everything I [...]


Related posts:<ol><li><a href='http://dready.org/blog/2005/05/26/linksys-wrt54gp2-router-with-ata/' rel='bookmark' title='Permanent Link: Linksys WRT54GP2 Router with ATA'>Linksys WRT54GP2 Router with ATA</a> <small>I seldom get a toy like this, so I&#8217;m very excited! This is essentially a combination of the WRT54G wireless...</small></li><li><a href='http://dready.org/blog/2008/07/31/iphone-blogging/' rel='bookmark' title='Permanent Link: iPhone-blogging'>iPhone-blogging</a> <small>I&#8217;ve always wanted to post to my own blog from the mobile phone rather than using third party blogging platforms....</small></li><li><a href='http://dready.org/blog/2007/08/11/ip-migration/' rel='bookmark' title='Permanent Link: IP Migration'>IP Migration</a> <small>Our excellent hosting provider, Simpli.BIZ, has had in the past a few glitches due to the fault of AboveNet, their...</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Don&#8217;t ask why, I just somehow fell into the mood of blogging again. It&#8217;s strange, for a long period I have had absolutely no intention to write. Even when I tried, words failed to flow.</p>
<p>Then, all of a sudden, now it&#8217;s all coming back. Every other minute, I&#8217;m getting hit by ideas and everything I do, I just feel like blogging it. I could&#8217;ve easily spurted in under 140 characters on <a href="http://twitter.com/dready" rel="nofollow">Twitter</a> or something, but it doesn&#8217;t feel right. I&#8217;m being possessed by the need to elaborate.</p>
<p>Is this the reverse of the <a href="http://en.wikipedia.org/wiki/Writer's_block">Writer&#8217;s block</a> &#8212; Writer&#8217;s drainage?</p>
<p>Let&#8217;s see if I can define it:</p>
<dl>
<dt>Writer&#8217;s Drainage</dt>
<dd>a phenomenon whereby a person who seldom writes suddenly gets streams of inspiration in during a period of time.</dd>
</dl>
<p>If that&#8217;s the case, I sure hope this is a chronic case because I certainly need the <a href="http://metajack.im/2009/01/14/on-practice/">practice</a>.</p>
<p>Moving on to the next post&#8230;</p>


<p>Related posts:<ol><li><a href='http://dready.org/blog/2005/05/26/linksys-wrt54gp2-router-with-ata/' rel='bookmark' title='Permanent Link: Linksys WRT54GP2 Router with ATA'>Linksys WRT54GP2 Router with ATA</a> <small>I seldom get a toy like this, so I&#8217;m very excited! This is essentially a combination of the WRT54G wireless...</small></li><li><a href='http://dready.org/blog/2008/07/31/iphone-blogging/' rel='bookmark' title='Permanent Link: iPhone-blogging'>iPhone-blogging</a> <small>I&#8217;ve always wanted to post to my own blog from the mobile phone rather than using third party blogging platforms....</small></li><li><a href='http://dready.org/blog/2007/08/11/ip-migration/' rel='bookmark' title='Permanent Link: IP Migration'>IP Migration</a> <small>Our excellent hosting provider, Simpli.BIZ, has had in the past a few glitches due to the fault of AboveNet, their...</small></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2009/01/30/writers-drainage/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Emoji to be encoded in Unicode</title>
		<link>http://dready.org/blog/2009/01/30/emoji-in-unicode/</link>
		<comments>http://dready.org/blog/2009/01/30/emoji-in-unicode/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 16:48:46 +0000</pubDate>
		<dc:creator>wil</dc:creator>
		
		<category><![CDATA[japan]]></category>

		<category><![CDATA[mobile]]></category>

		<category><![CDATA[unicode]]></category>

		<category><![CDATA[emoji]]></category>

		<category><![CDATA[i18n]]></category>

		<guid isPermaLink="false">http://dready.org/blog/?p=208</guid>
		<description><![CDATA[The Unicode Technical Committee is working on encoding emoji (絵文字) in the Unicode Standard and ISO10646. It has spurred loads of discussions on the Unicode mailing list with more than a handful of forked threads, leading to fundamental questions like whether we should even encode them, and what constitutes a character.
Not to worry, the Unicode [...]


Related posts:<ol><li><a href='http://dready.org/blog/2009/02/01/emoji-encoding-conversion/' rel='bookmark' title='Permanent Link: Emoji Encoding Conversion between Carriers'>Emoji Encoding Conversion between Carriers</a> <small> I remember reading about Apple supporting emoji on the iPhone OS 2.2. Now that I&#8217;ve upgraded, I decided to...</small></li><li><a href='http://dready.org/blog/2008/12/15/python-30-text-vs-data-instead-of-unicode-vs-8-bit/' rel='bookmark' title='Permanent Link: Python 3.0: Text vs. Data Instead Of Unicode vs. 8-bit'>Python 3.0: Text vs. Data Instead Of Unicode vs. 8-bit</a> <small>Python 3.0 (Py3K) is out. I&#8217;m with Sam Ruby &#8212; this seemingly simple change of paradigm from &#8220;Unicode vs. 8-bit&#8221;...</small></li><li><a href='http://dready.org/blog/2009/01/02/mobile-openid-in-japan/' rel='bookmark' title='Permanent Link: On Mobile OpenID in Japan'>On Mobile OpenID in Japan</a> <small>This presentation by =zigorou (Toru Yamaguchi) titled &#8220;Considering OpenID for Mobile&#8221; (Thanks =peterd and =nat) is particularly interesting for me...</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>The Unicode Technical Committee is working on encoding <a href="http://en.wikipedia.org/wiki/Emoji">emoji</a> (絵文字) in the Unicode Standard and ISO10646. It has spurred loads of discussions on the <a href="http://www.unicode.org/cgi-bin/CurrentArchive.pl">Unicode mailing list</a> with more than a handful of forked threads, leading to fundamental questions like whether we should even encode them, and what constitutes a character.</p>
<p>Not to worry, the Unicode consortium is a veteran when it comes to dealing with the hairy issues of creating standards that work across languages, cultures and geographic regions. They simply can&#8217;t please everyone.</p>
<p>To me, the motivation for this is clear &#8212; interoperability. The current state of affairs in the Japanese mobile industry leaves a lot to be desired: across the carriers, there exist different sets of supported emoji&#8217;s, different private-use characters, substitution mappings, and code pages (user-defined characters in Shift_JIS, really). As one can imagine, the results is chaos, and as I software engineer, I really don&#8217;t want to imagine what those poor software engineers have to do to make it &#8220;just work&#8221; when a message cross the carrier boundaries.</p>
<p>To illustrate my point, let&#8217;s look at what Google does when you send a message with some emoji characters from GMail to each of DoCoMo, Softbank, and au.</p>
<p><a href="http://dready.org/blog/wp-content/uploads/2009/01/gmail-emoji.png"><img src="http://dready.org/blog/wp-content/uploads/2009/01/gmail-emoji.png" alt="" title="Emoji experiment on GMail" width="500" height="580" class="alignnone size-full wp-image-209" /></a></p>
<p><span id="more-208"></span></p>
<p>The screenshot above is for DoCoMo, but I also repeated the experiment for Softbank and au. From the bounce message, one can easily tell that what is saved as a sent message and what gets actually transmitted to each of the carriers&#8217; SMTP server are all distinct in their encodings.</p>
<p>What&#8217;s saved in Gmail when you click on &#8220;Show original&#8221; embeds the graphics using standard mime techniques (<code>multipart/related</code> with CID URIs a.k.a <a href="https://www.ietf.org/rfc/rfc2111.txt">RFC 2111</a>) with an extension attribute called <em>goomoji</em> in the HTML version, which carries part of Unicode private use character assigned for it. For example, the crab <img src="https://mail.google.com/mail/e/1E3" alt="crab [カニ]" /> is assigned <code>U+FE1E3</code> in Google, so its <code>goomoji</code> value is <code>1E3</code>.</p>
<p>What&#8217;s sent to DoCoMo is a different story altogether:</p>
<p>It&#8217;s a standard <code>multipart/alternative</code> message with 2 parts: <code>text/plain</code> and <code>text/html</code>, both encoded in Shift_JIS. Decoding the <code>text/plain</code> part gives:</p>
<pre>
&gt;&gt;&gt; import base64
&gt;&gt;&gt; sjis = base64.b64decode("W4NKg2pd+aT56ApYT1hPIIFfKF4tXimBXgoKaHR0cDovL3hyaS5uZXQvPXdpbAo=")
&gt;&gt;&gt; sjis
'[\x83J\x83j]\xf9\xa4\xf9\xe8\nXOXO \x81_(^-^)\x81^\n\nhttp://xri.net/=wil\n'
&gt;&gt;&gt; print sjis.decode("shift_jis", 'ignore')
[カニ]
XOXO ＼(^-^)／

http://xri.net/=wil
</pre>
<p>Since DoCoMo doesn&#8217;t have the <a href="http://en.wikipedia.org/wiki/Decapoda">decapods</a> in their emoji set, it gets encoded as <a href="http://www.unicode.org/~scherer/emoji4unicode/snapshot/full.html#e-1E3">カニ (Japanese for crab) in square brackets</a>. Next comes the double musical notes <a href="http://www.unicode.org/~scherer/emoji4unicode/snapshot/full.html#e-814"><img src="https://mail.google.com/mail/e/814" alt="musical notes メロディ" /></a>, which is assigned a user defined Shift_JIS value of F9A4 in DoCoMo (explains why I had to pass the &#8216;ignore&#8217; parameter to the decode method above, Python has no way to map that that sequence to Unicode and therefore barfs). Same goes for the tulip <img src="https://mail.google.com/mail/e/03D" alt="Tulip チューリップ" />. Ignoring the plain text &#8220;XOXO&#8221;, the last emoticon is a <em>hug face</em> <img src="https://mail.google.com/mail/e/35D" alt="hug face emoticon ＼(^-^)／" />, which <a href="http://www.unicode.org/~scherer/emoji4unicode/snapshot/full.html#e-35D">Google assigned a code point to</a> but none of the carriers use a graphic to represent. In fact, this is mapped to a Kao-moji (顔文字 - &#8220;face words&#8221;).</p>
<p>For au (KDDI), the message was also sent in <code>multipart/alternative</code> with  <code>text/plain</code> and <code>text/html</code> parts but this time encoded in ISO-2022-JP. Similar situation here, where crab =&gt; [カニ], KDDI&#8217;s version of ISO-2022-JP for the musical notes and tulip emoji, and kaomoji for the hugs.</p>
<p>Similar deal for Softbank, but the <code>charset</code> specified is <code>PDC</code>, but it smells just like Shift_JIS with user-defined characters to me.</p>
<p>I hope by now you have an appreciation of the kind of fiddling that Google engineers had to do in order to get their messages to display properly on Japanese mobile phones, just because the carriers decided to go invent their own mappings and character sets. It&#8217;s no wonder that <a href="http://google-opensource.blogspot.com/2008/11/emoji-for-unicode-open-source-data-for.html">Google</a> and Apple, with its recently announced emoji support in iPhone, are among those supporting this effort.</p>
<p>The ongoing work can be found <a href="http://sites.google.com/site/unicodesymbols/Home/emoji-symbols">here</a> and all the emoji&#8217;s is available <a href="http://www.unicode.org/%7Escherer/emoji4unicode/snapshot/utc.html">here</a> and <a href="http://www.unicode.org/%7Escherer/emoji4unicode/snapshot/full.html">here</a> in gory details.</p>
<p>If I had the time and luxury (read: paid) to participate, I would. I wish them all the best and hope to see a good set of emoji&#8217;s in Unicode soon.</p>


<p>Related posts:<ol><li><a href='http://dready.org/blog/2009/02/01/emoji-encoding-conversion/' rel='bookmark' title='Permanent Link: Emoji Encoding Conversion between Carriers'>Emoji Encoding Conversion between Carriers</a> <small> I remember reading about Apple supporting emoji on the iPhone OS 2.2. Now that I&#8217;ve upgraded, I decided to...</small></li><li><a href='http://dready.org/blog/2008/12/15/python-30-text-vs-data-instead-of-unicode-vs-8-bit/' rel='bookmark' title='Permanent Link: Python 3.0: Text vs. Data Instead Of Unicode vs. 8-bit'>Python 3.0: Text vs. Data Instead Of Unicode vs. 8-bit</a> <small>Python 3.0 (Py3K) is out. I&#8217;m with Sam Ruby &#8212; this seemingly simple change of paradigm from &#8220;Unicode vs. 8-bit&#8221;...</small></li><li><a href='http://dready.org/blog/2009/01/02/mobile-openid-in-japan/' rel='bookmark' title='Permanent Link: On Mobile OpenID in Japan'>On Mobile OpenID in Japan</a> <small>This presentation by =zigorou (Toru Yamaguchi) titled &#8220;Considering OpenID for Mobile&#8221; (Thanks =peterd and =nat) is particularly interesting for me...</small></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://dready.org/blog/2009/01/30/emoji-in-unicode/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
