Brandon Live!

Desktop Search FAQ   |   Start++   |   Contact Me

Washington Joke (and it doesn’t involve rain!)

July 28, 2005 at 11:48 pm
Imported from old blog

God was missing for six days. Eventually, Michael, the
archangel, found him, resting on the seventh day. He inquired of God.

“Where have you been?” God sighed a deep sigh of satisfaction, and proudly pointed downwards through the clouds. “Look, Michael, what I’ve made.”

Archangel Michael looked puzzled, and said, “What is it?” “It’s a planet,” replied God, “and I’ve put Life on it. I’m going to call it Earth and it’s going to be a great place of balance.”

“Balance?” inquired Michael, still confused.

God explained, pointing to different parts of earth. “For example, Northern Europe will be a place of great opportunity and wealth, while Southern Europe is going to be poor. Over there I’ve placed a continent of white people, and there is a continent of black people. Balance in all things,” God continued pointing to different countries. “This one will be extremely hot, while this one will be very cold and covered in ice.”

The Archangel, impressed by God’s work, then pointed to a land area and said, “What’s that one?” “Ah,” said God, “That’s Washington State, the most glorious place on earth. There are beautiful mountains, rivers and streams, lakes, forests, hills, and plains. The people from Washington State are going to be intelligent, honest, nice, modest, and genuinely caring for the planet as well as the welfare of others. They will also be extremely hardworking, high achieving, and they will be known throughout the world as diplomats, and ambassadors of peace.” Michael gasped in wonder and admiration, but then proclaimed, “What about balance, God? You said there would be balance.”

God smiled.

“There is another Washington… wait until you see the idiots I put there.”


Scoble says a Longhorn announcement is coming.

July 21, 2005 at 6:25 pm
Imported from old blog

Scoble says that an announcement is coming tomorrow morning around 6am. 

He says it’ll be posted here.

I wonder what it could be?


Oh dear… Google Maps + HotOrNot = hot people by zip code

at 3:59 pm
Imported from old blog

Just saw this via Neowin…

http://apps.hotornot.com/jeff/

Who comes up with this stuff?  Seriously?


So where AM I working?

July 20, 2005 at 3:46 am
Imported from old blog

Gretchen over at the JobsBlog posted an entry about the campus I’m working at, what we call “RedWest” campus.  The first thing I was told about Red West when I got here was that it has the best cafeteria. 

http://blogs.msdn.com/jobsblog/archive/2005/07/12/438157.aspx

One little touch specific to Red West that I like is the preponderance of MSN flags (which line the road through our little set of buildings).  There’s a certain pride to working at MSN nowadays.  We’re the front line in the battle with Google.  And having our own little campus really ties in with that start-up kind of mentality.    We ship early* and ship often.  From Messenger and Hotmail to Desktop Search, IE tabs, Spaces, and Virtual Earth… We’re doing the cool shit. 

And if you think those are sweet, just wait til you see what we’ve got coming.

 

* Well, maybe not early, more like… less late ;-)   


Safest cars in the world.

July 18, 2005 at 1:37 am
Imported from old blog

I’m always talking about how much I love my Audi.  One point I often make when people ask me about it is safety.  I feel safe knowing that my car was designed to protect me and my passengers.

So far this year the Insurance Institute for Highway Safety has given four cars their “Double Best Pick” - meaning perfect scores in both front and side-impact crash testing.  Two of them were Audis.  From CNN.com:

Only four vehicles have earned the “Double best pick” rating from the Institute: Audi A4, Audi A6, the Saab 9-3 and the Toyota RAV4 with optional side airbags.

I’m awaiting their test of the A3, but I expect it will live up to its bretheren.


Want to index your Trillian IM logs?

July 15, 2005 at 4:26 pm
Desktop Search, Imported from old blog

Jeff Schoolcraft wrote in his blog about a problem he had getting WDS to index his Trillian log files, which are text files with a “.log“ extension - an extension we ignore by default.  Removing that extension from the ignore list will get the files indexed (assuming you choose to index the appropriate folder), but it then displays some bizarre behavior when returning results.

As a fellow Trillian user I sympathized with Jeff’s problem, although I hadn’t yet tried to index those logs.  Upon discovering this problem, I decided to look into a way to make it work in our current release.

My first thought was… why doesn’t Trillian use XML like Messenger does?  Well actually, it turns out that Trillian 3.x also writes an “XML” file for each log in addition to the .log - but unfortunately, it isn’t valid XML and it doesn’t include an XSLT. Otherwise, we could display it just like we do MSN Messenger logs.

Ideally, it would be great if Trillian could fix that, and then we’d have results comparable to Messenger.  It’s probably even something that can be done with a Trillian plug-in.  But in the meantime, I found another solution for the *.log problem:

This temporary workaround requires that you edit the registry.
DO NOT ATTEMPT TO EDIT THE REGISTRY IF YOU DON’T KNOW WHAT YOU’RE DOING.

1) Open regedit as an Administrator.
2) Navigate to the HKEY_CLASSES_ROOT\.log key
3) Right-click on the key and select “New String Value”
4) Name the string “Content Type” and set it to “text/plain”

Now .log files will work just like .txt files, allowing you to search your Trillian logs.


Desktop Search SDK FAQ: What column names can I ask for?

July 13, 2005 at 8:41 pm
Desktop Search, Imported from old blog, WDS Development

So our (beta) SDK sample includes a sizeable list of column names that you can ask for from the indexer (in the QueryBuilder.cs file)… but it’s far from a full list.  These are the string constants that you pass to ExecuteQuery in the second parameter (and also you pass one of them as the third parameter to sort by).  ExecuteQuery works like this:

_Recordset resultSet = foo.ExecuteQuery(“a query to search for“, “DocTitle, DocAuthor, Url“, “DocTitle“, null)

Let’s break those down:

Param 1:  The first parameter is the query string, which is usually the user’s input.  Now… you can take more control by modifying the user’s input.  For example, if I’m building a music organizer, I might want to do this:

string foo = userInput + “ kind:music“;

Or if you’re like me (and use obscure file formats), userInput + “ fileext:(wma OR mp3 OR shn OR flac OR ogg OR mp4 OR aac)“ and so on =)

Param 2: This is the list of columns you want back - formatted as a comma delimited string.  If you pass invalid column names or an improperly formatted string, the COM interface will throw an exception (so validate your input!).  This is the SELECT portion of the SQL expression.

Param 3: This is the column you want the results ordered by.  This directly becomes the ORDER BY clause so you’ll need to pass it in as “RecievedDate DESC” or “ReceivedDate ASC”.  This value must be explicitly set to null (or Nothing in vb) if you don’t want the results sorted.  Due to a bug in 2.5 passing an empty string (“”) will cause the method to fail.

Param 4: This is any optional constraint you want appended to the SQL expressions WHERE clause.  Why do you need this?  It let’s you filter the results to a particular type without have to append the AQS expression of “type:email” to the users query.  To constrain the results to email you’d pass in “Contains(PerceivedType,’email’)”. This value must also be explicitly set to null if you don’t want any additional constraint applied.  Due to a bug in 2.5 passing an empty string (“”) will cause the method to fail.

So how do you know what to send in the second and third parameters?

This is COMPLETEY UNSUPPORTED and all column names are SUBJECT TO CHANGE (and probably will) in future releases.  Once again, our SDK and API are considered BETA components and are subject to change.  Changing the registry can have very adverse effects on your system and do not attempt to use regedit unless you know what you’re doing.

We have the ability to log queries for support/diagnostic purposes by adding a DWORD to the registry named WriteLog under the key HKCU\Software\Microsoft\MSN Apps\DS and setting it to 1.  As it turns out, the log that’s created is especially useful for developers.  Once you’ve enabled logging, we log the SQL that is generated for every query in a file in your root path called “query.txt“

By running a query with this logging enabled, you can see the SQL that is generated.  The SELECT statement will include all the columns that the UI asked for. 

As I said above, the column names are probably going to change in future releases.  While we do strive to keep from breaking things whenever possible, we have intentionally not documented these column names because we’re not ready to say that they’re final.  Because of this please plan on future WDS releases changing these interfaces and the column names.  No one here wants to make working with our stuff difficult for you, but for a fairly new product like ours we’re not yet comfortable with the burden that comes with promising future compatability on our current APIs - and we wouldn’t be repeating this disclaimer over and over if it wasn’t a serious concern for us.



This post was from my old blog.  Click here for the original post (with original comments). 

Some people in the Aqua-Soft forum had questions about how to call the Windows Desktop Search API from VB .NET.  There are two ways to do this right now, using our beta SDK.

1) Download the SDK and Sample (see my post below) files.  Reference WDSQuery.dll and include QueryBuilder.cs in your project.  Then you can instantiate a QueryBuilder object and use that (the comments in that file, or IntelliSense, will guide you).  It’s pretty simple.

OR

2) Use the COM API directly. Here’s what I posted over there:

Open VS 2003 and create a new VB.NET “Windows Forms” project. Add a reference to WDSQuery.dll.
Drop a DataGrid control from the toolbox onto the form, and size it reasonably. Leave the name as “DataGrid1″ for now.
Copy and paste this code into the vb file:


   

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim mSearchClass As New Microsoft.Windows.DesktopSearch.Query.SearchDesktopClass
        Dim resultSet As Microsoft.Windows.DesktopSearch.Query._Recordset
        resultSet = mSearchClass.ExecuteQuery(”test”, “DocTitle,DocAuthor,Url”, “DocTitle”, Nothing)
        Dim DataSet1 As New System.Data.DataSet
        Dim DataTable1 As New System.Data.DataTable
        DataSet1.Tables.Add(DataTable1)
        Dim DataAdapter1 As New System.Data.OleDb.OleDbDataAdapter
        DataAdapter1.Fill(DataTable1, resultSet)
        DataGrid1.DataSource = DataSet1
        DataGrid1.DataMember = “Table1″
    End Sub


   

Build and run. Your datagrid should be filled with results for the query “test” - you can of course change that to something more pertinent to your index.

VB isn’t really my thing, but that works on my system and should give you a basic idea of how to use the COM interfaces.

Option 1 is nice because QueryBuilder gives you easier query syntax to work with, and it gives you a decent list of Column Names that are supported in the current release (2.05) - remember, these are subject to change in future releases.

C# developers have a little easier time because they can read the sample code but not necessarily use it verbatim.  If you don’t understand C# though it may not be as useful to you - it really depends on your usage. 

I’ll be posting more about the SDK soon.  Tomorrow my cable gets installed at the new apartment, so I’ll actually be able to leave the office and get more blogging done :)



A little over a week ago we released our international version of the MSN Search Toolbar with Windows Desktop Search.  As part of that release, we shipped BETA support for our developer API.  Actually, CNET and some others found our SDK without us making any fuss about it.  The reason we didn’t (until today) is that we wanted to fix up a couple things before doing so.  So Steve Ickman went back and made a few changes, including seperating the IDL file into two (one for the query interface, and one for protocol handlers).  He also ran them through MIDL and TLBimp to generate interop assemblies for .NET - saving you .NET folks the trouble.  So now you can download the updated SDK.

But that’s not all!  I took some time earlier this week and put together some basic C# Samples.  There are two files… One is a wrapper for the WDS query interface.  It lets you build a query, execute it, and get the results in a .NET DataSet complete with databinding functionality.  There’s also a simple app that demos how you can use this wrapper and the functionality it provides.  Both samples are basic and the UI is a bit crude.  The idea is to give you a place to start, not do all of your work for you :)

Here are some other useful links:

The official Windows Desktop Search API documentation.

SDK Update at the official MSN Search blog

Steve Ickman’s blog post about the SDK (very useful!)

Sean Mcleod - The first implementation of our interfaces that I’ve seen. Updated!

Christopher Lauer writes about our SDK including a screenshot of our sample.  Added!

 

You can bet i’ll be posting more about this soon, including some detailed info about the samples, and maybe more.


July 2, 2005 at 1:47 am
Imported from old blog

Tonight, going without my music collection (which is on a truck on its way to Washington) finally got too tough.  So I decided to try out one of those fancy monthly subscriptions where I can download millions of songs, transfer them to my portable player/phone/car and enjoy that warm feeling that comes from making sure that recording industry executives don’t ever have to worry about putting less-than-premium fuel in their private jets ever again.

Because of the extremely competitive price, and my not-so-great experiences with a certain headphone-wearing feline, I decided to check out your Yahoo Music Unlimited service.

First off, so far I like what you’ve done.  The “Music Engine” has done its job so far.  But the whole thing has some issues for me:

-I didn’t ask for the Yahoo Messenger.  I don’t know a single person that uses it, so I have no use for it.  Not only did you install it without giving me an option, but you made it run at start up without asking me.
-When I signed up for the account, you had a million spam options enabled by default.  I had to turn them off, and I almost didn’t even see them.
-I never asked for desktop icons.  You gave me two.
-I never asked for Quicklaunch icons.  You gave me two.
-You added Yahoo Messenger to both my programs list and my start menu list (so on XP it shows up in the same list twice).
-When I start the music app, you start the messenger app.  why?  If I wanted it, I would’ve started it myself.  Or not shut it off when it ran on start-up.
-Your two apps add two tray icons.  The music one doesn’t seem to do anything.  It just sits there taking up space (and memory) providing no function other than running your music app.

These are all examples of a little something I call “AOL-itis” - it’s commonly found in products that contain the words “AOL” and “Real.”  Fortunately, I don’t think it’s too late for you.  If you drink lots of fluids, and stop trying to trick people into using your unpopular services, it should clear right up.


[powered by WordPress.]

Hi. I'm Brandon. I'm a geek, and I work on Search technology for Windows at Microsoft. This is my blog.

RSS Button

Picture

categories:

archives:

July 2005
M T W T F S S
« Jun   Aug »
 123
45678910
11121314151617
18192021222324
25262728293031

search this site:

The views expressed within my blog are my own - and are not in any way indicative of those of the company I work for, Microsoft, or it's employees. No warranties or other guarantees will be offered as to the quality of the opinions or anything else offered here.