Stochastic Diffusion Search for Real-Time Web Search

My third year project at uni (this year) involved investigating the application of Stochastic Diffusion Search to the problem of real-time web search by designing and implementing such a search engine in software. It certainly was interesting work and though the project had been completed successfully, there are a few things I wish I had explored and experimented with a bit more. I have another major project to tackle for the last year of my M.Eng degree in AI and Cybernetics which begins next month.

Anyway, here is a short presentation I had given based on a research paper I had to submit on my work as part of the course. I hope you find it interesting...

Radheef for Facebook passes 200th user

Radheef for Facebook, the little Facebook application that displays random words from the Radheef on the Facebook profile, has reached its 200th user. It took the whole of three months since its launch in February 2008 for it to get there! :S

- View the application's About page on Facebook

And here dwelleth 300,000 invisible beings

Most Maldivians are by now familiar with the drama unfolding in Makunudhoo. It has been on the news a lot and has been blogged about a lot but photos haven't been very forthcoming - well, except for a blurred image on Haveeru Daily and a photo stolen from my Flickr stream published on Miadhu News. So here are some images of the historic Makunudhoo School where Man and Jinn live side by side and study side by side, though not always in harmony as has been revealed. The school may replace the island's currently most famous landmark: the residential ruins of the infamous Bodufenvalhugey Seedhee (known for various supposed supernatural feats such as "walking on water" between islands, "helping" the infertile conceive etc) including its "teleportation well".

And yes, in case you wonder, it is ridiculous to believe this is a battle between invisible Jinn and humans, especially when there are good explanations.

Enjoy... stand awed.

Browsing the sky with WorldWide Telescope (and Google Sky)

I am hooked... to WorldWide Telescope! I love Google Sky and am an avid fan of it, but this new software from Microsoft Research kicks it all up a notch. WWT gives access to images of the sky from various different databases including the DSS optical, infrared and even the WMAP microwave imagery in a really slick, smooth interface. I've spent a good few hours today browsing through the sky, literally, and reading up.

Here is an image of the Orion belt I snapped from WTT. These three stars are part of the Orion constellation and are among the most prominent and easily identifiable stars in the skyscape. In fact, any Maldivian who has ever looked up at the night sky should recognize them. It is one of the first star constellations that I had learnt of and was a source of great wonder when I was a kid.

And here is an image of the planet Mars - the (almost) unmissable bright red dot in the sky. Many Maldivians seem to have a special relationship with Mars - as demonstrated by a habit of falling for the Mars sunrise-from-west doomsday fantasy hoax and the Mars as-large-as-Moon hoax. I think it might be appropriate for all those people to see the planet up close. :-)

It is amazing that through modern technology, merely equipped with free software like the WWT or Google Sky (and its web version), that anyone of us can now zoom on these and other objects in the sky and enjoy a whole new level of awe and appreciation of the world around us...

Thaana date formatting for PHP 5

Here is a PHP 5 class that provides a drop-in function replacement/equivalent for the built-in PHP date() function to output formatted dates in Thaana/Dhivehi. It follows the standard method of writing Gregorian dates in Thaana by using transliterations of the English month names and using the native Dhivehi names for the week days. It accepts all the usual formatting arguments permitted by the original date() function thus allowing the same degree of formatting freedom as the original. The output returned from the function uses ASCII Thaana and, if needed, can then be converted to Unicode/UTF-8 by using the Thaana Conversions class. This class does not support Hijri dates (yet).

The class is being released under the Open Source MIT License.

Functions exposed

Returns a Dhivehi date string formatted according to the given format string using the given integer timestamp


// Load class include
require 'thaana_date.obj.php';

// Format date
$thaanatoday = Thaana_Date::format('j M Y', time());


- (v0.2, 1.4KB)

Drop me a line if you have comments/queries. Enjoy :-)

Thaana conversions class for PHP 5 - v0.2

Here is an update to the Thaana conversions class I released in Nov 2007. This new version 0.2 release expands the varieties of conversions available and should be more than adequate for almost all uses. This version, most importantly, adds solid UTF-8 conversion functions allowing for more flexibility in PHP-based Unicode/UTF-8 Thaana handling. Further, the class is now licensed under the pretty liberal Open Source MIT License. The code still relies solely on core PHP 5 functions and does not demand any extra PHP extensions to be installed.

Functions exposed by the class

- convertUtf8ToUnicodeIntegers()
Convert UTF-8 data to Unicode character integer representations

- convertUtf8ToAscii()
Convert UTF-8 data to Ascii

- convertEntitiesToUnicodeIntegers()
Convert HTML Unicode entitied string to Unicode Integer characters array

- convertEntitiesToUtf8
Convert HTML Unicode entities to UTF-8

- convertEntitiesToAscii()
Convert HTML Unicode entities to Dhivehi Ascii equivalents

- convertUnicodeIntegersToUtf8()
Convert Unicode Integer array to UTF

- convertUnicodeIntegersToEntities()
Convert Unicode char integers to HTML entities

- convertUnicodeIntegersToAscii()
Convert Unicode char integers to Ascii

- convertAsciiToUtf8()
Convert Ascii Thaana to UTf-8

- convertAsciiToUnicodeEntities()
Convert Ascii Thaana to Unicode HTML entities

- convertAsciiToUnicodeIntegers()
Convert Ascii Thaana to an array of Unicode integers


// Load class and initialize object
require 'thaana_conversions.obj.php';
$thaana = new Thaana_Conversions();

echo $thaana->convertEntitiesToAscii('ދިވެހި');
echo $thaana->convertAsciiToUtf8('rWacje');


- (v0.2, 3KB)

Drop me a line if you run into trouble with any of the functionality or have comments/queries. Enjoy :-)

Update (11-Sep-2008): This version is now superseded by the v0.3 release.


Jellyfish count as one of my favourite creatures. They don't have a brain yet come equipped with interesting varieties of (err) accessories. It is supposed to have been among the earliest animals that evolved yet its descendants continue to thrive in oceans across the world even to this day. And there are just so many of them, abundant even in the Maldivian seas!

Anyway, this astonishingly beautiful-hypnotic video of various jellyfish from the Monterey Bay Aquarium just had my jaws drop open and inspired this post. Check it out! (The video is in HD. Watch it fullscreen to enjoy the finer details)