What's going on (from twitter)
Archive: February 2007
1846285194The book "Workflows for e-Science: Scientific Workflows for Grids" is now available. Amongst the chapters in the book, you'll find one on the SC SSDL Protocol Framework. Congrats to Simon Woodman who did most of the work on this chapter and to the editors for putting the book together.

(I am back in Seattle, some notes about my trip to the UK will follow)

The "Web 2.0... The Machine is Us/ing US" video is a nice high-level illustration of the evolution of the Web (some call it 'Web 2.0').

Jim's search is suspended but our hope continous
17 Feb 2007, Updated: 17 Feb 2007

Please review the "Search status" blog entry over at the "Tenacious Search" blog.

I am still full of hope and anxiously awaiting for Jim to reply to my last message upon his return, in which I requested to hear about his adventure over beers!

Great paper on parallel computing
14 Feb 2007, Updated: 17 Feb 2007

While on my way to London, I've been doing some reading. I found "The Landscape of Parallel Computing Research: A View from Berkley" a great read.

DWave claims they have built the first quantum computer for commercial use. They are going after NP-complete problems, of course! I couldn't find technical details on their web site but if this thing is fast and evaluates functional/dataflow graphs in parallel, I want one as my laptop :-)

In an interview to Stefan Tilkov, Arjen Poutsma, of Spring Web Services fame, had something nice to say about SSDL :-) Wouldn't it be great if there were frameworks out there providing support for SSDL-like contract languages? I have been hard at evangelising SSDL within my company. Let's see if anything comes out of it (btw... I have no insight into any future product plans so don't take this post as any kind of indication of what's coming). I've even built a XAML-based and WF-driven contract language to illustrate the advantages to customers.

(thanks to Spiros)

On the road again
13 Feb 2007

I am going to be traveling again from tomorrow. First, it's Greece for few days to see my family and participate in my city's carnival celebrations. Then I'll be visiting the UK. I am going to be in Southampton and Microsoft Reading on the 21st, Manchester on the 22nd, and Newcastle on the 23rd (soooo looking forward to seeing my old coleagues there). I'll spend Saturday morning (24th) in London with Jim*, coding and brainstorming (he doesn't know that yet :-)

Anyway, if I happen to be around the same longitude+latitude as you and you are interested in a F2F, please drop me a line.

--

* I had an excellent time with Jim and his better half two weekends ago in Whistler. It was so nice to see them again. I really have missed working closely with my pal (and arguing all the time :-) Hopefully now he's back in the UK I'll be seeing him more often.

User-Defined Functions in Excel 2007 and Web Services
11 Feb 2007, Updated: 11 Feb 2007

While preparing for an integration project with some of David Heckerman's biology-related work, I thought of educating myself on how Excel 2007, .NET, and Web Services could be combined to play together.

A lot of scientists use Excel in their day-to-day activities. So it makes sense to make functionality exposed through Web Services available as custom Excel functions, which can be added through "automation addins". It is possible to write such addins as .NET classes and exposed as COM servers through COM Interop.

The example below shows an Excel worksheet where the user can define the symbol for two currencies ('from' and 'to') and the ammount to be converted. The custom function retrieves the exchange rate between the two given currencies from the Web Service. If you change the values in the B1 or B2 cells, the conversion will be recalculated, as you'd expect. The 'ExchangeRate' function is the name of the custom function.

 

Of course, there is the BIG isssue of synchrony. Excel doesn't know that the call to the function may take a long time. Although there is a way to enable multithreaded evaluation even for custom functions, this is not possible from within .NET (or, at least, I am not aware of how). Here's the code. Once you build your DLL, you can register it by going to Excel->Options->Addins->(press the "Go" button)->Automation and locate the class. Make sure you say 'no' to the question you'll get about "mscorlib.dll". If you have any problems, drop me a line.

    //------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//------------------------------------------------------------


    namespace Microsoft.TechnicalComputing.Sample
{
    using System;
    using System.Runtime.InteropServices;
    using Microsoft.Win32;

    // Added through "Web References"->Add (http://www.webservicex.net/CurrencyConvertor.asmx?WSDL)
    using Microsoft.TechnicalComputing.Sample.net.webservicex.www;

    [ClassInterface(ClassInterfaceType.AutoDual)]
    [ComVisible(true)]
    [Guid(ExchangeRateSample.TypeGuid)]
    [ProgId("Microsoft.ExchangeRate")]
    publicclassExchangeRateSample
    {
        public ExchangeRateSample() {}

        internalconststring TypeGuid = "13600B26-D84B-4da2-98FE-66FACC5BD2C7";
        staticstring SubKeyName = @"CLSID\{" + ExchangeRateSample.TypeGuid + @"}\Programmable";

        [ComRegisterFunction]
        publicstaticvoid RegisterFunction(Type type)
        {
            Registry.ClassesRoot.CreateSubKey(ExchangeRateSample.SubKeyName);
        }

        [ComUnregisterFunction]
        publicstaticvoid UnRegisterFunction(Type type)
        {
            Registry.ClassesRoot.DeleteSubKey(ExchangeRateSample.SubKeyName);

        }

        publicdouble ExchangeRate(string from, string to)
        {
            CurrencyConvertor svc = newCurrencyConvertor();
            return svc.ConversionRate(
                (Currency)Enum.Parse(typeof(Currency), from), 
                (Currency)Enum.Parse(typeof(Currency), to));
        }
    }
}
PBlog comments update
10 Feb 2007

There has been no spam comments since I added the simple antispam functionality on pblog. However, since there was some confusion as to how to filter the numbers from the antispam string, I simplified it. Now, the antispam string has to be written as is. If spams start appearing again, I may introduce a math-based solution :-)

Wow! This AJAX+WPF/E application simulates the Vista Aero interface inside the Web browser. The windows in the screenshot are actually hosted within the browser, even the video. Amazing.

It's so nice to see the community getting together to find Jim. The efforts are reported on the "Tenacious Search" blog.

I've been constantly checking the Web for news about Jim and we get lots of information within Microsoft. Although the US Coast Guard is about to stop their search operations, the efforts to locate him are continuing. Google and Amazon are helping out and I've been told that even satellites and a NASA airplane with a high-resolution camera may be used. I am not losing faith in Jim; he's ok.

I've never blogged about it but Jim is my peer-mentor within Microsoft. Like so many others, he's also my role model and the kind of scientist/researcher/person I want to be. Everyone loves him. I wish I could do something to find him. I know he's ok!