Sunday, June 19, 2005
by Nik Kalyani
Sunday, June 19, 2005 7:02:47 AM (Pacific Standard Time, UTC-08:00)

I am quite excited! I am putting the final touches on my Speerio "Skinergy" suite of tools for DotNetNuke.

After the DotNetNuke site was launched with the new skin and the usability controls for adjusting text size and layout width, I got a flood of emails asking for the controls. Since the Core Team wants to protect the DotNetNuke brand identity, releasing the DotNetNuke site skin to the community is out of the question. So I started work on creating a community version of an alternate skin.

Some significant scope creep later, we now have Speeio "Skinergy" -- a suite of three usability enhancements plus one control panel enhancement all packaged in the new Speerio "Z" skin.

The enhancements are:

Text Size Control: Allows the user to choose their preferred text size for a site (remembered in cookie)

Layout Width Control: Allows the user to choose their preferred layout width for a site (remembered in a cookie)

Color Palette Control: Allows the user to choose their preferred color palette for a site (remembered in a cookie)

Dnntoolbar


Admin Control Panel
: Revised DotNetNuke control panel in a popup dialog 

Dnncontrolpanel

Got some more spit and shine to do on this package, but I fully expect to release Skinergy to the community tomorrow.

[Edit: I have posted a preview at http://skinergy.speerio.net. There is a problem with the Control Panel w.r.t. postbacks and I am currently working to resolve this issue. I will release the package once I have a fix.]

 

 Friday, June 17, 2005
by Nik Kalyani
Friday, June 17, 2005 1:54:57 PM (Pacific Standard Time, UTC-08:00)
 Wednesday, June 15, 2005
by Nik Kalyani
Wednesday, June 15, 2005 4:43:24 AM (Pacific Standard Time, UTC-08:00)

So I decided to give MSN Desktop Search/Toolbar a whirl yesterday.

After my rather disappointing experience with Google Desktop Search (which I uninstalled within hours of installation), I had fairly low expectations. But so far I completely amazed. Google had better get some of those skunkworks projects into prime-time, because the signs are clear -- Microsoft is going at this search thing with such gusto that it will not take very long for it to catch-up and even pass Googliath. 

The attention to detail in the MSN Desktop Search is unlike any I have seen in Microsoft apps before. From a usability standpoint the U.I. is nearly invisible -- the hallmark of an intuitive and well-designed U.I. I especially like the preview feature on search results where you can see the search word in application context (example: within an Excel spreadsheet).

I'll try the desktop search for a few more days and see how it goes. For web searching, I am still sticking with Google, but I'll keep an eye on MSN. But one thing I am keeping for sure is the IE tabbed browsing.

FireFox has always provided a superior browsing experience in many ways and tabbed browsing was one huge advantage it had over IE. Gone! One thing I never quite figured out in FireFox is how to save the state of the browser when multiple tabs are open so I can restore it the same way. (Of course, if the feature exists and I can't find it, it's not much of a feature anyway). The MSN toolbar does have this feature and it lets me save one set of tabs as "My Tabs" which I can restore at the click of a button. Neat. I also like having the option to open each link I click in a new tab. This is great for search engine results. I had fully expected this to be an all or nothing feature, but was pleasantly surprised to find that it is tab-specific. So on tabs where I have search results displayed, I can have this feature on, and turn it off elsewhere.

Now for a little rant.

With all the hype and money and technology being invested in search by Google, Yahoo and Microsoft, why is it so difficult to find things in context and why are search interfaces still so lame. I don't claim to have a magic solution, but I am certain the keyword approach with control suffix/prefix characters is a crappy interface for search. And don't get me started on boolean logic. As a developer, I see its value, but for the ordinary individual, it is completely unnatural. Much has been said about Google's precision. I conduct maybe 50-70 searches in any given day. It is quite rare that the relevant item I am searching for is on the first page of results (and I have the page size set at 30). So either I am an idiot and can't figure out what keywords to use, or the search technology is still a pile. I suspect that it's the latter, but of course, I can't be objective.

There is a simple solution. Google is currently beta testing its Sitemaps concept. (A good idea which will soon result in bad data. More on this some other time.) A better idea would be for Google to publish the specs for a site search webservice. Say what? Read on...

When you're looking at search results, Google makes relevancy decisions based on its super cool algorithms. One thing I notice quite often is the search results contain page after page of results from the same site. Now, how often is it that you click on one of those results and get exactly the content you are looking for? The answer is "it depends." If it's a content-centric site, then chances are good. But if the result is from a forum post or some dynamically generated page, you have to click around a bit to find the information you need. Often, you end up using the site search (if it has that capability) and then the results are more specific and also have abstracts that are in context. It would be so much simpler if Google took a smarter approach.

Let's say that site www.somesite.com had more than say 20% of the first 50 results. If Google had a published a site search webservice specification, the owners of somesite.com could implement this on their site. When Google detects that one site is responsible for a high number of relevant search results (determined by its own algorithm), it could make a quick call to the site's webservice with the same keyword, and return the result set (maybe top 10-20 results) in a collapsible pane integrated into the general Google result set. There are search engine aggregators that do this for a finite number of engines. Why not do it for the entire Internet, live and on-demand?????

Now, this approach does not address the keyword search approach, which I opined as being flawed. But it will help in making results more precise. Because no matter how well tuned the Google algorithm is, the site's own search is usually going to provide better results than Google's inferred results.

 

#    Comments [1] - Trackback    

 Sunday, June 12, 2005
by Nik Kalyani
Sunday, June 12, 2005 8:54:59 PM (Pacific Standard Time, UTC-08:00)

If you have multiple controls in your ASP.Net, especially third-party ones, which in turn have a dependency on another third-party component, you are in for a world of pain if different controls use different versions of the same third-party component. Since your app has only one "bin" folder where all the assemblies reside, putting one version of the third-party component will break controls that rely on the other version. Luckily, the .Net developers devised some good solutions. Although I would not call this an elegant solution to DLL hell, at least its possible to have a solution that works.

Here are some sample web application scenarios and solutions involving assembly version conflicts, different assembly versions and location of assemblies. This is a small portion of a much larger .Net design involving the GAC etc., but I am not going to delve into that.

1) Placing assemblies outside the bin folder.

Sometimes you have an app with many assemblies and you want to keep them more organized. .Net allows this by providing a way to specify the folders where it should search. Modify your web.config as below:

<configuration>
  <runtime>
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <probing privatePath="bin;somefolder\bin" />
     </assemblyBinding>
  </runtime>
</configuration

You can specify as many folders as necessary in a semi-colon separated list which fusion will use to locate an assembly.

2) Having multiple versions of the same assembly in the same app space.

In this example, two versions of the ThirdParty assembly are placed in numbered sub-folders of bin. Both can co-exist and will work correctly.

<configuration>
        <runtime>
             <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
                 <dependentAssembly>
                     <assemblyIdentity name="ThirdParty" publicKeyToken="16dcc87a28w7w7b1" />
                     <codeBase version="1.4.0.0" href="bin\14\ThirdParty.dll" />
                     <codeBase version="1.2.0.0" href="bin\12\ThirdParty.dll" />
                </dependentAssembly>
             </assemblyBinding>  
       </runtime>
</configuration>

3) Redirecting an assembly from an older to a newer version.

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <dependentAssembly>
            <assemblyIdentity name="myAssembly" publicKeyToken="32ab4ba45e0a69a1" culture="neutral" />
            <bindingRedirect oldVersion="1.0.0.0"  newVersion="2.0.0.0"/>
         </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

You can only use #2 or #3 with strong named assemblies.

 

 Wednesday, June 08, 2005
by Nik Kalyani
Wednesday, June 08, 2005 7:31:19 AM (Pacific Standard Time, UTC-08:00)

It's unlikely anyone noticed, but things have been quiet on the Speerio front the past 7-10 days. Well, it's mostly because I was busy working on the DotNetNuke branding in time for Tech Ed. With milestone one achieved, I can now go back to working on Speerio products and provide more timely support to customers.

#    Comments [1] - Trackback    

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