Friday, March 31, 2006

Does Money Grow on Trees?

Look ma it does! :)



I took this picture at a Chinese Restaurant named Kung-Ho near my office. The food is great but if you’re pure-vegetarian, you better be careful while eating.

Wednesday, March 29, 2006

Some Recent Pictures

Here are some pictures that I took recently. Excuse the poor quality because I took them from my mobile phone.




Transferred them from my Nokia 6101 over IR to my laptop (Dell d810) - which wasn't that much of a pain once I installed Nokia PC Suite. Interestingly the most time consuming part was figuring out where the IR sensor on my mobile-phone was :)

Saturday, March 25, 2006

TagyuLib - Tagyu .NET Client Library


I have finished writing a .NET client library for Tagyu's REST Web-Service. Tagyu is a hosted service that uses human intelligence to suggest tags and categories relevant to a block of text.

TagyuLib (that’s my creative name for the .NET API) supports everything that the REST API of Tagyu allows you to do as of now. So it supports both classification queries and related-tags queries. It also allows you to pass your username/password to Tagyu through HTTP basic authentication scheme. If you're wondering what am I talking about here, you should really be reading Tagyu REST web service documentation first.

I have created a project at GotDotNet CodeGallery to share the source code of TagyuLib and it would be great to see people participate.

I hope some people would find TagyuLib useful and I would love to hear from them. But right now it is 2:15 AM and I need to get some sleep.

Update on March 25, 2006

Here is the class diagram and some sample code to get you started.

Class Diagram



Sample Code


Determining tags and category

You need to instantiate a new TagyuService object and simply call its GetClassification method passing-in your text. GetClassification will return you a ClassificationSuggestion object and you can loop through the items in its Tags property to do whatever you want. You can also get the category for your text from the Category property of the ClassificationSuggestion object that you got back.


string inputText = Console.ReadLine();

TagyuService ts = new TagyuService();

ClassificationSuggestion s = ts.GetClassification(inputText);

Console.WriteLine("Suggested Tags are: ");

foreach (Tag tg in s.Tags) {
Console.WriteLine(tg.Value);
}

Console.WriteLine("Suggested Category is: {0}", s.Category);



Determing related tags

That's equally simple. All you need to do is instantiate a new TagyuService object and call its GetRelatedTags method passing in the tag for which you wish to see related tags. GetRelatedTags returns a RelatedSuggestion object and you can loop through the items in its Tags property.


Console.WriteLine("Enter a Tag");

string inputTag = Console.ReadLine();

TagyuService ts = new TagyuService();

RelatedSuggestion r = ts.GetRelatedTags(inputTag);

Console.WriteLine("Related tags are: ");

foreach (Tag tg in r.Tags) {
Console.WriteLine(tg.Value);
}



Using your Tagyu username and password

As of now, unregistered users can make one request per minute from a single IP address to Tagyu and requests beyond this limit result in an error. So if this bothers you, you should create an account at Tagyu. You can pass your username and password to Tagyu through TagyuLib simply by setting these properties on the TagyuService object before invoking GetClassification and GetRelatedTags methods. Here's how:


string inputText = Console.ReadLine();

TagyuService ts = new TagyuService();

ts.Username = "[YOUR-USERNAME]";
ts.Password = "[YOUR-PASSWORD]";

ClassificationSuggestion s = ts.GetClassification(inputText);

Console.WriteLine("Suggested Tags are: ");

foreach (Tag tg in s.Tags) {
Console.WriteLine(tg.Value);
}

Console.WriteLine("Suggested Category is: {0}", s.Category);



Download

This way please!

Requirements


Bugs/Issues/Feedback

I'd love to hear from people who've used TagyuLib. Please share your feedback, issues and any bugs you encounter here.

Contributing

Join the project and get started.

Changelog

  • March 25, 2006
    • Initial version

  • April 02, 2006
    • Merged SuggestedTag and RelatedTag classes into one.
    • Renamed Suggestions to ClassificationSuggestion.
    • Renamed Related to RelatedSuggestion.
    • Added an overload for GetRelatedTags that takes a Tag object as argument.

Sunday, March 19, 2006

New Cartoon

Alright, I just made a new cartoon and posted it to CarryOnCoding.com. Now is everybody happy? :)

Saturday, March 18, 2006

Multimon Quake3

OK imagine this: You have 24 monitors in front of you - covering every inch of your field of view, and a 12 node Linux cluster. And you are using this setup to play Quake3 with a gyro-mouse (basically a mouse that you can move in air). Add surround sound to the setting, and you’ll have the most awesome gaming experience of your life. They’re doing this at Virginia Tech.



Here's a video from YouTube:




I like playing Quake3 and this blew my mind!

Via

Thursday, March 16, 2006

So you <3 Sudoku?

Sudoku (Japanese: 数独, sūdoku), also known as Number Place, is a logic-based placement puzzle. The aim of the canonical puzzle is to enter a numerical digit from 1 through 9 in each cell of a 9×9 grid made up of 3×3 subgrids (called "regions"), starting with various digits given in some cells (the "givens"). Each row, column, and region must contain only one instance of each numeral. Completing the puzzle requires patience and logical ability.


Though Sudoku is fun even when played alone, it's actually a lot more enjoyable if you're competing with someone. IronSudoku.com is an online version of the game with a social flavor to it. The website basically allows people to chat with each other while playing. A new puzzle is posted at the website every day so you have 24 hours to solve it. I'm surely looking forward to solving some.

The interface of the game at IronSudoku is very clean and user-friendly and if you know the rules of the game, you can get started right away.

I would really like it if there was a way, let's say, for me to invite some friends of mine to IronSudoku for a competition online. I (organizer) should be able to pick the difficulty level of the puzzle for the event. At the start of the event, the system should start a timer ticking and pick a puzzle of the specified difficulty randomly. Every participant would receive the same Sudoku to solve from the system. And the Chatterbox should allow chatting only between the players in that competition. A visual indication should be given by the system as soon as somebody solves the puzzle. I'm sure this would be a lot of fun!

BTW as of now you have to be a Pro member to add other IronSudoku members as friends.