« March 2007 | Main | May 2007 »

April 2007 Archives

April 3, 2007

Live Maps launches new version with Firefox support for 3D

clipped from liveside.net

A new major revision of Live Maps was released today, with a number of new features and enhancements. At the top of the list is Firefox (v 1.5 or later) support for 3D mapping. In addition, memory management and cache performance has been improved for the IE version. 3D support is now also included for the Space Navigator, a 3D controller made by 3dConnexion, a Logitech company.

  powered by clipmarks blog it
This release really has a few very desired new features. Not being compatible with Firefox is a popular complaint about Microsoft's web services products. This is a good answer. Hopefully, the browser compatibility issues could be addressed at the very beginning of the future new product release, so that the public image of being IE-biased can be wiped off and gain more traction over the net.

This new release also enables inserting maps and driving directions into the emails and meeting appointments created in outlook. It is even considerate to block the driving time for the meeting too.

A feature that I have been longing for is the organization of scratch pad. However, still doesn't seem easy to move the push pins over to a different collection.

April 17, 2007

Use Windows Desktop Search API Inside of Managed Code

Starting from Windows Desktop Search (WDS) 3.0, a new helper API ISearchQueryHelper is added to help simplify the construction of index OLE DB connection string and search queries. The search service is implemented and the API is exposed as COM objects. Fortunately, there is a way for managed code to invoke the WDS too.
Download the Windows Search SDK. After unzip the package, the search interop assembly (Microsoft.Search.Interop.dll) is in the "Managed" folder. Add it to the reference inside of your solution and put “using Microsoft.Search.Interop; ” at the top of your C# code. Now it’s ready to write C# code and make use of WDS API. Some of the unmanaged and managed counterparts of classes are the following:
Unmanaged
Managed
ISearchManager
CSearchManager
ISearchCatalogManager
CSearchCatalogManager
ISearchQueryHelper
CSearchQueryHelper
 
The following sample code constructs a search query using ISearchQueryHelper to display the sender, recipients, and summary of the first 100 emails that contain a particular keyword (“share” in this example).
int maxSumLength = 100;
 
// Setup the catalog and search query helper
CSearchManager srchMngr = new CSearchManager();
CSearchCatalogManager srchCatMngr = srchMngr.GetCatalog("SystemIndex");
CSearchQueryHelper srchQueryHelper = srchCatMngr.GetQueryHelper();
 
// Assemble the query
srchQueryHelper.QuerySelectColumns = "System.Message.FromAddress, System.Message.ToAddress, System.Search.AutoSummary";
srchQueryHelper.QueryWhereRestrictions = "AND CONTAINS(System.Kind, '\"email\"')";
string sqlQuery = srchQueryHelper.GenerateSQLFromUserQuery("share");
 
// Setup the OLE DB connection
OleDbConnection conn = new OleDbConnection(srchQueryHelper.ConnectionString);
conn.Open();
 
// Execute the query
OleDbCommand cmd = new OleDbCommand(sqlQuery, conn);
OleDbDataReader srchResult = cmd.ExecuteReader();
 
// Process the search result and send to output
for (int i = 0; (i < 100) && srchResult.Read(); ++i)
{
                string fromAddr = "";
                string toAddr = "";
                string sumAddr = "";
 
                if (null != srchResult.GetValue(0) && !(srchResult.GetValue(0) is System.DBNull))
                {
                    string[] addrs = (string[])srchResult.GetValue(0);
                    fromAddr = "From: " + System.String.Join(",", addrs);
                }
                if (null != srchResult.GetValue(1) && !(srchResult.GetValue(1) is System.DBNull))
                {
                    string[] addrs = (string[])srchResult.GetValue(1);
                    toAddr = "To: " + System.String.Join(",", addrs);
                }
                if (null != srchResult.GetValue(2) && !(srchResult.GetValue(2) is System.DBNull))
                {
                    sumAddr = (string)srchResult.GetString(2);
                }
 
                textBox1.AppendText("(" + i + ") ");
                textBox1.AppendText(fromAddr + " " + toAddr + " ");
                textBox1.AppendText("Content: " + (sumAddr.Length <= maxSumLength ? sumAddr : sumAddr.Substring(0, maxSumLength)));
                textBox1.AppendText(Environment.NewLine);
}
 
srchResult.Close();
conn.Close();
           

A letter from Pandora founder - Help Save Pandora and Internet Radio

It's sad that the Internet radio is undergoing a struggle to survive.  Actually I found Pandora pretty nice that it incorporates some cool innovative search technologies to help you customize your radio station with your favorite genre, artists, and songs.  When playing your favorites, it will also try recommending other songs and artists that have similar characteristics according to your taste.  Great way to discover new songs.  By interactively rating on those recommended songs you help to continuously refine your customization.  The UI is pretty cute too by the way.  The following is the original letter the Pandora founder sent to many listeners:

Hi, it's Tim from Pandora,

I'm writing today to ask for your help.  The survival of Pandora and all of Internet radio is in jeopardy because of a recent decision by the Copyright Royalty Board in Washington, DC to almost triple the licensing fees for Internet radio sites like Pandora.  The new royalty rates are irrationally high, more than four times what satellite radio pays and broadcast radio doesn't pay these at all.  Left unchanged, these new royalties will kill every Internet radio site, including Pandora.

In response to these new and unfair fees, we have formed the SaveNetRadio Coalition, a group that includes listeners, artists, labels and webcasters.  I hope that you will consider joining us. 

Please sign our petition urging your Congressional representative to act to save Internet radio: http://capwiz.com/saveinternetradio/issues/alert/?alertid=9631541 

Please feel free to forward this link/email to your friends - the more petitioners we can get, the better.  

Understand that we are fully supportive of paying royalties to the artists whose music we play, and have done so since our inception.  As a former touring musician myself, I'm no stranger to the challenges facing working musicians.  The issue we have with the recent ruling is that it puts the cost of streaming far out of the range of ANY webcaster's business potential. 

I hope you'll take just a few minutes to sign our petition - it WILL make a difference. As a young industry, we do not have the lobbying power of the RIAA. You, our listeners, are by far our biggest and most influential allies.

As always, and now more than ever, thank you for your support.

tim_signature.jpg 
-Tim Westergren
(Pandora founder)

 

April 22, 2007

Open source protester in Bill Gate's event in China

clipped from news.yahoo.com
Photo
  powered by clipmarks blog it
The behavior of this protester is not wise. I think this gives people a bad and impolite impression of the open source world. Also, why this guy's looking down instead holding the head up high if he believes what he does is smart?

It was said that the protester is the chief representative of LPI (Linux Professional Institute) in China and assumed significant positions in some companies and organizations before that. But technology is technology instead of religion. Competition is good and boosts improvement in the industry. But proving it and speaking up is a smarter thing to do than acting like a clown in front of the world, unless his purpose is to make himself (instead of open-source) well-known. Be grown-ups!

April 28, 2007

Difference in Paradigm: Open Source .vs. Microsoft

One can enumerate hundreds of difference between software from open source community and companies like Microsoft.  There are fundamental things that cause the difference - the paradigm of programming, the architecture of software family, and development productivity, etc.

On the server side development platform for example, popular open source tools are the well known LAMP.  Four pieces are done by totally different groups of people, on different time schedule, and with different design style.  They are all good products without doubt.  They work together very well for sure too.  Coding something on LAMP feels super geeky, because you control everything from top to the bottom.  Commercial software makers like Microsoft have some different considerations.  For good manageability, installation, configuration, migration, and so on mostly have easy to use (at least try to) GUI.  For productivity, many of the routines are abstracted and hidden away from the application developers.  For example, in ASP.NET, post backs, event handler registration, page templating and all those kind of wiring work is hidden.  Writing server side code feels more straight forward like writing desktop application.  ASP.NET really evolves from a programming language up to a server side framework.  With the Visual Studio .NET's help like IntelliSense, debug tracing on both server and client side, visualized server control customization with sample data, and so on, developers are more free to focus on the business logic of the software, which is critical for business.

Talking about the hot AJAX.  Interestingly this technology was started by Microsoft when building the outlook web access.  Because it is majorly for business rather than the consumers on the Internet, it didn't surface that much until Google Suggest and Maps made the splash with it.  To code in AJAX there are a lot of plumbing work underneath to wire up the connections between the client side scripts and the server side handler, AJAX for ASP.NET wraps all these up and provide a few straight forward abstract controls to improve the productivity of the application developers.

There are debates in many companies and organizations about Wiki and SharePoint too.  Again like the comparison between PHP and ASP.NET, SharePoint is more of a platform that contains Wiki features and many other capabilities.  Wiki starts out to do collaborative web content editing, while SharePoint is designed to be the collaboration platform which integrates with Office suites, workflow, enterprise search engine, content management, SharePoint Designer (visual design tool), etc.

Open source software products are simple, developer-enjoyable, and inexpensive upfront.  Commercial products are more business friendly, enterprise infrastructure oriented, productiviey oriented (sometimes productivity and developer-enjoyable are not well aligned :) ), and more expensive upfront.  They have much difference in the fundamental design paradigm.  Comparing the two different types of products really depends on the specific requirements rather than a religious belief.

April 29, 2007

Usability, Usability, Usability

Just begin with some of the many good and bad examples of usability cases.  In google search, when you click the "search" button after typing in the keywords, at the top of the search result a tip will appear saying "Tip: Save time by hitting the return key instead of clicking on 'search' ".  This approach is light footprint yet effective.  The users see the tip right after they did a "stupid" thing.  They have the motivation to try the tip right on the spot and found it really helped.  This whole process of stupidity->gotcha->cool happens in a streamline and I believe the user will remember the tip in the bone.

In live search, when users type in a non-English keyword, there are very small amount of snippets/summary for the non-English sites in its own language, which is not very international user friendly.  Those who typed in a non-English language keyword most likely know that language well enough to read the results in that language.  Having summary in the website's native language is a very natural thing to do and an expected result for the users.  Even if the search engine is facing NA market, since there are a large number of foreign people in NA, having some degree of International language support makes sense.

The importance of usability is elevated to a even higher level in the web 2.0 era.  The center of computing is shifting from computers to human users.  After many years' of advancement, computers begin to fade into the background as commodity.  The real power is organizing and combining exploding information generated by people and eventually used by people.  However, people are "lazy", "impatient", and "greedy".  Making the human users satisfied becomes more and more critical to the success of software and services providers.  The business model and vehicle to deliver the software and services in Web 2.0 era is so unique that contributes in "spoiling" the users too.  The barrier of entering and Web 2.0 industry is so low that a few good programmers with a good idea could make a very successful website.  The services of huge number of those websites are very innovative, powerful, and, more importantly, free most of the time thanks to the online ads business model.  The release and delivery of newer and nicer online services has so low impact to the users, with no hassle of installation, upgrading, or troubleshooting on the client side.  With all these things together, the users end up being the spoiled king!  They have so many choices and they are free.  So they can switch to any better product without much difficulty.  Now it's time for the software and service providers to worry about the user experience their products bring to the customers.

One big resistance to achieving good usability is from the software developers.  Most of them are passionate about technology and tackling challenging problems, while feeling bored about non-technical stuff.  Being customer obsessed and having a mind set of building software for human instead for machines would be a very appreciated capability of an excellent software developer.  The new ways of organizing emails in gmail, the search engine keyword spelling correction feature, and so on are all from developers who made this step ahead.

About April 2007

This page contains all entries posted to Stanley Yao's Blog in April 2007. They are listed from oldest to newest.

March 2007 is the previous archive.

May 2007 is the next archive.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.33