Two Birds and a Stone

Today, two parrots we had died.  Blue one, cowardly yet cheerful old male with endless appetite, died even before I got up.  That one was my favorite.  White one, feisty angry young female with tendency to destroy more food than consume, died about 11PM with both my wife and I watching.  We think the food we gave them last night was bad.

I never named the birds, just enjoyed watching them.  Blue one would scream for food and, when I give them, scream to complain that the white one took his food.  White one ate only a little but spent a lot of time throwing food out.  Blue one spent most of the day running away from the white one but would spend about ten minutes hopping around mad at the white one.  During those ten minutes, the white one just flew to a corner and waited for the blue one's temper to end.

Blue one would also demand to be let out once a day and when we do, flew around the house for half an hour and then demanded to be let in.  The white one would peep nervously whenever the blue one went out to fly.  It was peeping all day today, asking the blue one to fly back home.  I stayed my home office mostly to avoid hearing her sad little peeps.

Where does the stone come in?  The stone is in my heart.  I am not really sad.  My wife is.  She cried even.  I cried when my dog died but no tears came this time.  My heart just feels heavy, as if it's weighted down with a stone.

Friends as Enemies

The title of this post is rather off but I like it so…

I realized just yesterday (doh) that Google will have harder time extending the impact they are making with Google Toolbar to Firefox and Safari users because those browsers are pro-Google, meaning they have google search box built-in.

Kinda funny in a way…

Blogging Frankenstein

Out of the blue, a real understanding of the horror of Frankenstein in context of blogosphere struck me this morning.

Imagine a hideous monster created out of pieces of your friends and family, eyes of your wife, hands of your son, or a patch of skin from your daughter.  The common practice of misquoting, rephrasing, or taking words out of context and reapplying in the blogosphere reminded me of Frankenstein.  I know that most of it is done unintentionally and it's just human nature at work, but the sharp image I got jolted me.

Just a food for thought although I doubt others will be able to digest this any better than I can.

Fixing AutoLink

Enough people have already commented on what is wrong with Google's AutoLink, most of which I agree 100% with, so I won't delve into that.  Instead, I'll write about how to fix it.

Opt-out solutions (i.e. 'noautolink' meta tag) are useless because they still create chores for content providers where there were none before.  Google's 'rel=nofollow' was a borderline case.  AutoLink is not because the effect of not opting out is greater and more direct.

Short of scrapping AutoLink, a solution that allows content-providers to opt-in is needed.  One such solution to AutoLink only anchor tags with recognizable identifier in the 'class' attribute.  For example, content producers who opt-in can markup following content:

123 ABC St., San Jose, CA
ISBN 0123456789
Harry Potter

like this:

<a class='address'>123 ABC St., San Jose, CA</a>
<a class='isbn'>ISBN 0123456789</a>
<a class='book'>Harry Potter</a>

AutoLink should link the content only IF the class attribute contains one or more keywords (i.e. isbn, ssn, gps, person) it can handle.  There should also be a generic autolink class so content authors can markup without knowing which class to markup a text fragment with.  So above could have been written like this:

<a class='autolink'>123 ABC St., San Jose, CA</a>
<a class='autolink'>ISBN 0123456789</a>
<a class='autolink'>Harry Potter</a>

If the anchor tag is not appropriate, then I think 'span' tag can be used with minimal visual side-effects.

Thought leaders or out of touch with the masses

Tim wrote:

I hadn’t heard about any first-hand experiences since few people I work with live on Windows.

The proportion of thought leaders who use IE on Windows is trending to zero.

Given the sharp rise of PowerBooks at conferences are of any indication, I think he is right.

What I wonder though is whether the, so called thought leaders, are leading or simply getting out of touch with the masses?  With the Net, the perfect reality warping medium, serving as the social fabric of the thought leaders and new social software enabling them to form tighter groups, what lies ahead?  Perhaps a shock many times greater than the one I felt at the end of last presidential election?

First Law of Mobile Killer Apps

Mobile killer apps must be ready to be used during the time the user takes the mobile device out of his pocket and raise it up to his face.

Implications: the user must be able to select and activate the app with only one hand and without looking at the screen on the device.

URLCall on Nokia

Didier hacked together an implementation of URLCall on his new Python-enabled Nokia phone.  Cool!  He also used the word 'dial' to describe the concept which I think is better than 'call'.  So a new name for the concept could 'DialWeb' except that it's being used for another telephony project

[Update:  Why not come up with an entirely new word by smashing Dial and URL together?  Diurl!  I might have heard the word before in my past lives…perhaps during the French Revolution?  😉 ]

Anyway, unless I misunderstood, his implementation runs entirely on the phone, thus requiring phone number to URL database to be on the phone.  My ideal solution would use a server-side database accessed via a HTTP GET.  URLCall client on the phone needs to know only one URL.  With multiple HTTP redirection, you can even set up a hierarchical directory infrastructure on top of HTTP.

URLCall (level 1) looks at the first number and redirects to one of 10 Level 2 URLCall websites.  Level 2 URLCall websites looks at the second number and redirects again.  So on and so forth.  Net result is a sort of poor man's directory infrastructure spanning the globe.

A more practical version would reserve the top rows of the phone pad (1,2,3) and '0'  for special uses (i.e. anything start with 1 maps a personal URL like my bookmarks page) and then use the remainder plus the next three numbers to decide which Level 2 URLCall directory to route to.  Numbers starting with '0' is a way to call local numbers.  I think three HTTP redirects at the most is needed to address all the websites in the world with phone numbers.

Flash MX 2004 sendAndLoad bug

Here is a bug that I wasted untold hours on.  sendAndLoad is a method available on Flash 6 and later feature that sends and receives URL encoded name/value pairs.  For example:

var in = new LoadVars();
var out = new LoadVars();

in.onLoad = function (success) {
   if (success) {
      // got response
   }
};

out.somedata = 'hello world';
out.sendAndLoad('hello.cgi', in, 'POST');

In the above example, I've used an anonymous function to handle the response.  Unfortunately, Flash MX 2004 generated Flash movie doesn't call anonymous function onLoad handler if the movie output settings are Flash version 6 and ActionScript version 1.  The workaround is simple: use a named function like this.

function loadHandler (success) {
if (success) {
      // got response
   }
};

var in = new LoadVars();
var out = new LoadVars();

in.onLoad = loadHandler;

out.somedata = 'hello world';
out.sendAndLoad('hello.cgi', in, 'POST');

Phone Number to URL

During my breaks, I've been thinking about ways to improve mobile user experience.  One rough spot is the need to type in URLs which are typically ASCII which is awkward to type into a phone.  One way to get around this problem is to use phone numbers.

This is how I see it working.  Each website offering mobile contents or services gets one or more URLCall (pronounced Earl Call) numbers which are phone numbers.  When the number is called, the phone recognizes the number as a URLCall and, instead of making a real phone call, it opens the web browser and opens the URL mapped to the phone number.

URLCall Recognition

Special number prefixes or a set of non-existent country codes configured into the phone can be used to recognize URLCalls.

URLCall to URL Mapping

Many solutions are possible.  Here are two:

DNS Solution:

DNS-like services are used which maps phone numbers to URL instead of IP address to domain names.

HTTP Redirect:

Phone simply points the browser to a known URL with URLCall as a parameter:

http://urlcall.net/phone2url?1234567890

URLCall.net service looks up the number and performs a HTTP redirect to the mapped URL:

http://somewhere.com/mobile/welcome.html

A less glamorous yet more practical solution that will work with existing phones with only minor changes is to program a single button to open the browser to the URLCall.net website.  So all user has to do is click on that button and type in the number.  This approach removes the need for URLCall recognition which I like.

NOTE: URLCall.net is a fictitious domain which I made up to illustrate the idea.

UPDATE:

First implementation of URLCall by Didier!