Thursday, December 29, 2005
by Nik Kalyani
Thursday, December 29, 2005 2:49:52 PM (Pacific Standard Time, UTC-08:00)

After coming up blank on a robust tagging API for ASP.Net apps, and wanting to incorporate this functionality into new versions of most Speerio products, I decided to create one. Along the way, I took a good, hard look at many websites to see how they implemented the UI for tagging. In most cases, everyone ripped Flickr’s UI. This is fine, but in the process they also copied some of limitations of the Flickr UI.

I took a clean-slate approach and decided I wanted to communicate more than just popularity through the tag cloud. The relative age of an item is just as relevant as how often an item is tagged with a certain tag, therefore I decided to introduce the concept of “age” into my tagging API. At a glance, the tag cloud not only tells you which items are more popular, but also which ones have newer/older information.

This ability to convey both popularity and age through a single UI is going to be an important feature of the (clean-slate) discussion forum I am creating. Imagine if you will, a discussion forum that is devoid of categorized groups of sub-forums, with only a tag cloud for navigation. If you’re looking for a solution or an answer to a question, you can instantly find all posts relevant to a keyword of interest to you simply by clicking on it. And then, you can explore clusters of related information to find the handful of posts that are most applicable to your situation. No paging through hundreds of posts only to find content that has no bearing on your situation. And if you want to browse, just click on “age” and you’ll see the topics that have been most recently posted.

Getting back to the API, here’s a screen grab of the cloud which can be added to any ASP.Net page or control with one line of code. The entire UI is customizable with CSS and works identically on IE and FireFox (should work on other browsers too, but I haven’t tested).

Cloud1

I also wanted to automate the detection of clusters between tags and users. I didn’t think this was information that was relevant on the main cloud UI, so I created a context-menu which allows a user to display a cross-browser, modal dialog containing more information about the tag.

Cloud2

I’ll have more details about the tagging API soon and an online demo in the next few days.

 

 Friday, December 23, 2005
by Nik Kalyani
Friday, December 23, 2005 5:25:13 PM (Pacific Standard Time, UTC-08:00)

Whew…another DNN Newsletter done and sent. We have some really interesting nuggets of information in this one, so do check it out. Now to sit and track the response. I really enjoy this part. It’s fun and informative reading the community’s feedback to the Newsletter and to the survey.

This edition announces the release of the DotNetNuke Benefactor Program too. A lot of thought and planning went into developing this program and it presents an interesting alternative to open source projects just going completely commercial. This program allows DNN to maintain its open source ideals, but provides a way to get some voluntary funding from the community.

 

 

 Tuesday, December 13, 2005
by Nik Kalyani
Tuesday, December 13, 2005 6:58:24 PM (Pacific Standard Time, UTC-08:00)

It has begun. With Amazon’s announcement of the Alexa web search platform beta the index of the web is no longer the domain solely of 800 lb gorillas. Anybody who knows how to consume a webservice can tap into Alexa’s index of billions of documents. This move will truly democratize search as ideas will no longer be constrained by the need to have a massive data center and web crawlers.

#    Comments [0] - Trackback    

 Saturday, December 10, 2005
by Nik Kalyani
Saturday, December 10, 2005 6:42:12 AM (Pacific Standard Time, UTC-08:00)

If you do any file processing, you will inevitably find yourself writing recursive code to traverse a directory structure. If you have a directory structure that is broad and deep with files/folders numbering in the thousands, recursion is inefficient as it consumes stack resources. In some cases you will run out of stack space and cause the code to throw an error.

You can do this more efficiently by using a seldom-used class of the System.Collections namespace: Stack. The Stack class implements a LIFO data structure (Last In First Out), as opposed to Queue, which implements FIFO (First In First Out). Instead of deferring to the run-time to implement the stack (which is essentially what recursion does, but in an inefficient way), you can optimize the process and also prevent your code from breaking, by managing the stack yourself.

Here is a simple example that will traverse and print-out all the files in a directory structure without using recursion:

private void TraverseFolder(DirectoryInfo dir)
{
	Stack stack = new Stack();
	stack.Push(dir);
	while (stack.Count > 0)
		{
			DirectoryInfo dirInfo = (DirectoryInfo) stack.Pop();
			foreach(FileInfo file in dirInfo.GetFiles())
			{
				System.Web.HttpContext.Current.Response.Write(file.FullName + "<br>");
			}					   
			DirectoryInfo[] subDirs = dirInfo.GetDirectories();
			for (int index = subDirs.Length - 1; index >= 0; index -= 1)
				stack.Push(subDirs[index]);
		}
}

 

 Friday, December 09, 2005
by Nik Kalyani
Friday, December 09, 2005 8:46:34 AM (Pacific Standard Time, UTC-08:00)

Looks like Lee Sykes beat me to the DotNetNuke lens on Squidoo. Interestingly enough, the ASPnet lens was available for the taking. I also picked up WebDAV, Tagging and Logos.

 

RSS feed
Search and Links
Bling

View Nik Kalyani's profile on LinkedIn

Contact me: nik*kalyani.com (replace "*")

TechBubble
www.flickr.com
This is a Flickr badge showing public photos from techbubble. Make your own badge here.
Statistics
Total Posts: 204
This Year: 22
This Month: 0
This Week: 0
Comments: 231
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2008
Nik Kalyani
Sign In
All Content © 2008, Nik Kalyani