Andrej Tozon's blog

In the Attic

NAVIGATION - SEARCH

Google Mars

Google Mars... now you can start searching for a decent spot for your new future house. And if you happen to spot a Martian, I think you should:
   a) contact Google and/or NASA, or
   b) make that your last bottle of beer for tonight.

SLODUG/CodeZone-SI web portal on Community Server 2.0

A revamped Slovenian Developers User Group (SLODUG) community web portal was introduced on today's SLODUG meeting. I'm really sorry I missed that introduction, but the traffic was really a b***h today. Thanks to Miha for introducing it for me.

The new site is built on Community Server 2.0 and is located on this address. Since this site is a member of international CodeZone community, I tried to design a Community Server skin, which would capture that CodeZone's green-on-black look - check it out! The final skin and Slovenian translation of all necessary resources should be ready within one month after the final CS 2.0 release, which is scheduled for February, 20th. That means that transition to the new SLODUG/CodeZone-SI portal will be finalized by the end of the March 2006. During this time, while browsing through site's content, you might encounter some skin inconsistencies and untranslated content. Please, feel free to report that or post any comment / wish / suggestion / question about the CodeZone-SI site content on my blog or appropriate CodeZone-SI forum. Any new content, created  on the new site in the transition period, will not be deleted and will remain available after transition is finished. The old site can no longer be accessed. [will remain functional on its current address for a limited time, but we don't guarantee that any new content will be transferred to the new portal. However, any new users will be migrated.]

There were 243 users registered with the old portal and all of them were transferred to the new one. Please review and complete your online profiles.

About the content... currently available are:

  • new forums, the main meeting place for discussions,
  • photo gallery, containing photos from (future) SLODUG meetings,
  • file gallery, containing PowerPoint presentation and sample/demo code from SLODUG meetings,
  • external source aggregation, aggregated Slovenian developer blogs

We'll try to add more features in the future.

Enjoy your stay on SLODUG/CodeZone-SI community portal!

OpenSearch providers

Although at first I decided against installing Internet Explorer 7 Beta 2 Preview, I later changed my mind, mainly because I wanted to test this one new feature – (Open)Search Discovery.

Finding (relevant) information on the internet quickly is becoming a serious issue these days, and the quality of search results is crucial for the web search engines to be competitive. Everyone has his or her favorite web search engine and not all search engines return the same results to the same query. And how about specialized search engines, like forums, newsgroups or blogs search engine, a company CMS search engine? Ability to quickly switch among such search engines and narrow your search scope in the very root might just yield that exact results you were after.

IE7 introduced such switching by including OpenSearch support. OpenSearch is a collection of Xml files, some of which extend existing Xml formats, allowing OpenSearch clients to query any OpenSearch-compatible search engine and display the results. So... how does this work?

AutoDiscovery

When you navigate to a web page, which advertises one or more OpenSearch providers, the color of the search box in browser's top-right corner changes from blue to orange, alerting user that there are new search providers available.


Picture 1: Highlighted drop down arrow

Clicking on a down arrow opens up a menu, which informs you of discovered search providers. You can easily select and/or add these providers to your favorite search providers, select default provider, etc.


Picture 2: Drop down menu with Search options


Picture 3: Adding discovered search provider and making it a default one

After adding selected search provider, it is installed in your browser and ready for your queries… It’s really that simple.


Picture 4: Using new default search provider

How does it work?

The trick is in the OpenSearch description file: first, write a simple Xml file, describing how to use your search engine:

<?xml version="1.0"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
  <ShortName>Anthology search</ShortName>
  <Description>Search through Anthology</Description>
  <Tags>Anthology CMF</Tags>
  <Contact>info@anthology.si</Contact>
  <Url type="application/rss+xml" 
       template="
http://www.anthology-on.net/
       opensearch.ashx?q={searchTerms}&amp;p={startPage}" />
  <LongName>Anthology search provider</LongName>
</OpenSearchDescription>

Save this file in your web site folder and make it discoverable by putting the following line in the <head></head> section of your main web page and you're done:

<link type="application/opensearchdescription+xml" rel="search" href="opensearch-description.xml">

Writing your own search provider

Look at the Url tag in the above OpenSearch description file. There is a template attribute, which points to your search engine Url address and contains some parameters, which are substituted with actual values before the client calls the search engine. These parameters include:

  • searchTerms: actual text user inputs as a search query,
  • count: number of search results to return,
  • startPage: if count defines the number on one page, this is the number of the page to retrieve (e.g., count=10, startPage=3 : returns search results numbered from 31 to 40). 

Your search engine should of course handle these input values as expected, and, after done processing the query, return the results in the OpenSearch Response formatted file. The OpenSearch Response format is an extension of RSS 2.0 or Atom 1.0 syndication formats, so if you already have some means to generate RSS or Atom files, a few modifications to that file will make your feeds OpenSearch compatible. This is an example of such modification:

<rss version="2.0" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">
<channel>
  <title>Search Results</title> 
  <link>http://www.anthology-on.net</link> 
  <description>OpenSearch Anthology Sample</description> 
  <openSearch:startIndex>1</openSearch:startIndex> 
  <openSearch:itemsPerPage>50</openSearch:itemsPerPage> 
  <openSearch:totalResults>272</openSearch:totalResults> 
  <generator>Anthology CMF</generator> 
  <lastBuildDate>Sat, 11 Feb 2006 17:48:26 GMT</lastBuildDate> 
  <item>

...

OpenSearch Homepage offers current OpenSearch specifications, along with additional tips and samples on how to work on its implementation.

Anthology search provider, used in the above example, plays a significant part in the Anthology CMF by allowing third-party search engines to access its documents by using standardized search and aggregating mechanisms. This is the first time I’m mentioning Anthology in this blog: I’ll start writing a series of articles on it soon, so stay tuned! That said – the Url address of Anthology search provider, used in the example, is for demonstration purposes only – it doesn't point to a valid address.

A Plog?

Visiting amazon.com today I was greeted by a new feature Amazon is introducing to their customers, called personalized blog - a Plog:

["Your Amazon.com Plog is a personalized web log that appears on your customer home page. Every person's Plog is different (hence the name), and the posts are sorted so the most recent entries appear at the top. Each post also gives you the opportunity to provide feedback to the sender as to whether you liked the post or not. ... Posts in your Plog come from many sources, including authors of books you have purchased on Amazon.com. ... In the future, your Plog also will help you discover products that have just been released, track changes to your orders and much more."]

It really looks like a feed aggregator, aggregating posts from, let's say, book authors, which you searched for, bought their books or are somehow connected with your interests you expressed on Amazon. You also have the option of commenting and rating the posts [like/don't like] to give some feedback to the author. This could really develop in a nice feature for book readers to stay in touch with the latest activities around the books they purchased [like revision, source code updates, reprints], as well as keep informed about the author's latest works.

Continuous integration on HanselMinutes

Scott Hanselman gives a great overview of Continuous integration tools on this week's HanselMinutes, along with some guidelines on how to make them work together and build yourself a mighty powerful build machine. And if you're not interested in automated builds, at least what you should do is look into TestDriven.NET/NUnit/NCover tripack to help you test your code. TestDriven.NET was recently released with NCover support, giving you even more testing power.

On a side note, in case you missed it :D : IE7 Beta 2 Preview has been released. After working with the first beta, I don't think I'm installing this one. Sure looks cool though.

Got CTP?

This is one of those link posts which serve as bookmark pages...

I kinda got lost with all the latest "technology preview" bits Microsoft teams keep releasing lately. When you install all December/older CTP bits, there's already at least one January CTP available. And what's the current situation?

Not bad. Here are some other "preview" links, more or less related to the above:

And some more:

  • Visual Studio 2005 Web Deployment Projects (Beta Preview): "Visual Studio 2005 Web Deployment Projects provide additional functionality for building and deploying Web site applications that you create in ASP.NET 2.0 and Visual Studio 2005. This add-in includes a new tool that enables you to merge the assemblies created during ASP.NET 2.0 precompilation, and it provides a comprehensive UI within Visual Studio 2005 for managing build configurations, merging, and pre-build and post-build task using MSBuild."
  • Visual Studio 2005 Web Application Project Preview: "The Visual Studio 2005 Web Application Project Model is a new web project option for Visual Studio 2005 that provides the same conceptual web project approach as VS 2003 (a project file based structure where all code in the project is compiled into a single assembly) but with all the new features of VS 2005 (refactoring, class diagrams, test development, generics, etc) and ASP.NET 2.0 (master pages, data controls, membership/login, role management, Web Parts, personalization, site navigation, themes, etc)."

I also looked into these:

Also noted:

Alive with Windows Live Messenger

It's time for yet another IM client upgrade...

Thanks to Erik, who was kind enough to provide me with the invite, necessary to get into WLM Beta program, I am now able to communicate through the next generation of MSN Messaging - Windows Live Messenger. "Sharing Folders" looks cool, although compared to FolderShare, feels somehow limited (sharing one folder is limited to single contact only?). As this is the early Beta, I expect more goodies to come soon...

On a side note: it appears that Erik is the only Slovenian Microsoftie blogger on MSDN blogs. And he writes in Slovenian language. Check it out.

Windows Live Messenger starts kicking

Windows Live Messenger Beta has just been released to the closed Beta testers group. Quick-reading the partial feature list, among several, mostly cosmetic changes, one thing cought my eye - Sharing Folders. Being a fan of both MSN Messenger and FolderShare, this integration is right my alley.

"Sharing Folders” feature lets you create a shared folder with each of your Messenger contacts.  When either of you add/edit a file in your Shared Folder, we automatically share it between your computers the next time each of you sign in."