# Wednesday, 08 February 2006

Doing some WCF training this week, and the current presenter is talking about how to embrace interoperability in the world of ASMX 2.0, WSE 3, and WCF.  One of the principles he urges us to embrace is KISS.  Keep Interoperable Schemas Simple. 

I love it.  I want T-shirts. 

Wednesday, 08 February 2006 09:23:50 (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [2]  | 

I'm doing some WCF (Indigo) training this week, and one of the hands on labs went through an example of a federated trust scenario, with two STS's involved in the process.  I've got to say, I'm really impressed with how easy it was.  Granted, the configuration is pretty hairy, but it's just that, configuration.  You can set up a whole federated trust system using config files.  And it worked.  Not too shabby.  I would never have contemplated attempting something like that in WSE 2, although I think in WSE 3 it's supposed to be a bit easier. 

One thing to note, if you want to do federated trust, is that the WCF team is not shipping an STS.  Presumably for liability reasons, but that's anyone's guess.  They are, however, providing some very complete samples, which could be fairly quickly adapted for use inside one's organization.  There's also a good example STS for WSE 3 up on gotdotnet as of a few weeks ago. 

Overall, my impression is that security in WCF is very thought out, and WAY easier to bend to your will than ever before.  Check it out.

Wednesday, 08 February 2006 09:15:28 (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
# Sunday, 05 February 2006
I've been a fan- and user of Plaxo for some time, but hadn't been using it as much since switching to Thunderbird for all my email at home.  Then they came out with Thunderbird support, but not for 1.5, which is (of course) what I was using.  Now everyone has caught up, and Plaxo supports Thunderbird 1.5.  Oh, happy day!  I'm once again a regular user, and love it.  It's so nice to have my contacts synchronized across all the different machines I use on a daily basis. 

Home | Work
Sunday, 05 February 2006 09:09:31 (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
# Monday, 23 January 2006

There’s a very well written article on outdoors-magazine.com about building an “on body bug out kit” into a vest and wearing it around town so you are ALWAYS prepared for emergencies.  It’s a cool idea, and I really like the idea, but I don’t think I’m quite paranoid enough at this point to want to haul all that stuff with me all the time.  If I was, I’d look at building it into my jacket from ScottEVest.  Better load handling than a vest.

[via Survival Today]

Monday, 23 January 2006 16:07:30 (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 

This morning I got to talk to an AP Computer Science class at a local high school about GPS receivers, and the wonderful world of geospatial data.  We touched on making your own maps, Google Maps/Google Earth mash-ups, and the kinds of data you can get from the internet and from a GPSr.  Fun stuff. 

In timely fashion, Scott has some info on how to geotag your photos using various means, which is handy information for the geospatially inclined.

Monday, 23 January 2006 15:09:13 (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 

I’ve been playing with the January CTP of WCF, and I’ve encountered what seems like a pretty major setback.  I’ve got an interface that takes a MessageContract and returns a MessageContract.  All well and good.  But then I want to use the AsyncPattern on the service side, so that my routine will get called on a different thread from the one that’s listening on the network.  So I decorate the interface like so:

    [ServiceContract()]

    public interface IThingy

    {

        [OperationContract(AsyncPattern=true,Action="Signon",IsInitiating=true)]

        IAsyncResult BeginSignon(ThingyRequestMessage<SignOnRequest> request, AsyncCallback cb, object state);

 

        [OperationContract]

        ThingyResponseMessage<SignOnResponse> EndSignon(IAsyncResult ar);

    }

 

Now I get an exception at runtime, which says that I can’t mix parameters and messages for the method “EndSignon”.  What it means is that if I return a MessageContract instead of a primitive type, my method has to take a MessageContract and not one or more primitive types.  OK, I get that.  But my EndSignon method is getting flagged because it takes an IAsyncResult (as it must according to the AsyncPattern) and returns a ThingyResponseMessage. 

Does this mean I can’t use MessageContracts with the AsnycPattern?  If so, LAME.  If not, then what am I missing?

SOAP | Web Services | XML | Indigo
Monday, 23 January 2006 15:05:23 (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [2]  | 
# Monday, 09 January 2006
I’m a big fan of both the detective and the Vampire genres, so it’s pretty cool to see them both together.  In his new novel, Already Dead : A Novel, Charlie Huston combines the two seamlessly.  The protagonist, Joe Pitt, is the archetypal hard boiled gumshoe/tough guy who just happens to also be a Vampire.  I was impressed that Huston manages to stay true to both traditions without losing anything in the process.  And if you happen to be into zombies, there are some of those two.  Only they’re zombie Goth girls.  Better and better.  A good fast page turner.  Be warned, however, that in the tradition of the hard boiled detective, it can get pretty graphic, so probably not for the weak of stomach. 
Monday, 09 January 2006 16:52:03 (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 

Phew…

It’s taken most of 3 work days, but I finally got a decent installation of the December CTP.  I tried uninstalling the November bits, then installing the December stuff.  No go.  The SDK won’t install.  Sigh.  So I created a new Virtual Server image with Win2K3 sp1, and tried installing from scratch.  First the WinFX runtime, then Visual Studio 2005, then the SDK, just like it says in the docs.  The SDK still won’t install, because it says I haven’t installed the runtime.  After several days worth of combinations tried, I finally ran the Repair on the runtime’s installer, then tried the SDK again.  Success!  So simple it only took 3 days. 

The price one pays to be on the bleeding edge I guess.

Monday, 09 January 2006 16:39:50 (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
# Friday, 06 January 2006
For an excellent (and practical) example of using geospatial data, check out the Brew Map.  A Google maps mashup showing the locations of every brewery in WA and OR.  Apparently there’s a winery version too if you are into that sort of thing.  Little did I know there was a brewery in Forest Grove!  A useful tool already. :-)
Friday, 06 January 2006 08:51:06 (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
# Tuesday, 03 January 2006
There’s still time to sign up for the next web services class I’ll be teaching at OIT.  This class (which I haven’t taught before) is going to be on “Enterprise Web Services”.  We’ll cover the things you need to know to build a real enterprise application using Web Services, and how emerging standards make that much easier and more standardized.  The focus will be on applying web services standards to building B2B applications, and participants are expected to already have a solid grounding in XML/SOAP/WSDL, and be able to code in C# or VB.NET.  Class starts Monday, 1/9 at OIT Portland’s Capital Center campus.  CST 407P. 
Tuesday, 03 January 2006 15:58:14 (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  |