It's 2008. Where's my flying car? RSS 2.0
 Saturday, July 19, 2003

This morning I got up early (I going to be picked to play Paintball in an hour or so) and implemented image and attachment uploads for the blogging site. This is the test for the live site.

[Here's a copy of the SoapExtension Wizard for Visual Studio.NET: ASPNETSoapExtensionWizard.zip (53.82 KB)]

 

Saturday, July 19, 2003 1:39:35 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [1] - Trackback
Technology | ASP.NET | Blog
 Friday, July 18, 2003
I will be speaking at TechEd Malaysia 2003
Friday, July 18, 2003 2:04:33 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [1] - Trackback
TechEd Malaysia | Talks

Productivity and ASP.NET

It took me less than an hour to implement, test and deploy pingback support for this blog here using ASP.NET and XML-RPC.NET (and that includes reading the spec). Yesterday and today, it took me less than 2hrs total (including addressing two comments/suggestions/corrections from Sam Ruby) to get (n)echo/pie/atom support working so that it can be validated.

Friday, July 18, 2003 1:28:35 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] - Trackback
Technology | ASP.NET
A little IHttpModule implementation for ASP.NET that maps between URLs using regular expressions. In use here.
Friday, July 18, 2003 11:00:07 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [1] - Trackback
Technology | ASP.NET | Blog

On-the-fly template-based blog rendering

If you want to get a feeling for what the rendering engine here can do (which may not be so impressive looking at other tools, but a lot better than than rev20 of BlogX which I started from), check out the "Pick a theme" bar down at the bottom of the page.

The default theme for this page is currently "newtelligence Blue". You can always go back to the default by clicking "Reset". When you select any of the other themes, you'll get a cookie set and the rendering engine will use the template whenever you come and look at the site.

[As of this moment there are two little bugs in the logic which will (1) have that cookie span the whole site and (2) will render the page inaccessible for you if the cookie goes bad. Both should be fixed today.]

Friday, July 18, 2003 3:16:21 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] - Trackback
Blog
 Thursday, July 17, 2003

This here is not Radio.

Thursday, July 17, 2003 4:39:15 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [6] - Trackback
Blog
 Friday, July 11, 2003

Quake II on .NET. Scott Stanfield and his team at Vertigo Software show yet another nice trick: Quake II in managed code.

Friday, July 11, 2003 2:07:09 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] - Trackback
CLR
 Thursday, July 10, 2003

I couldn't find one, so I made a WS-PolicyAttachment UDDI bootstrap file for import into Windows UDDI Services.

When I put that together, I ran into a bug in the spec. Point 5.1 shows the tModel for the remote policy reference. The tModelKey shown there is

<tModel tModelKey="uuid:0b1b5a47-bebf-3b7d-9802-f2dd80a91adebd3966a8-faa5-416e-9772-128554343571">

which is a bit long for a uuid, isn't it? Correct is the following (as the spec later explains):

<tModel tModelKey="uuid:0b1b5a47-bebf-3b7d-9802-f2dd80a91ade">

The bug even survived the revision from 1.0 to 1.1, which makes me wonder whether anyone ever reads these specs in any depth

Thursday, July 10, 2003 10:49:57 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] - Trackback
Web Services | Technology | UDDI
 Wednesday, July 09, 2003
This bit of news retires one of my talks ;)
Wednesday, July 09, 2003 7:47:08 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] - Trackback

Current output of this is that:

---------------
Feed Name: Clemens Vasters: Enterprise Development & Alien Abductions
Access Point:
http://radio.weblogs.com/0108971/rss.xml
RSS Version: 2.0
Description: Clemens Vasters' Weblog, Language: en
Press any key to continue

Wednesday, July 09, 2003 7:01:26 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] - Trackback
Technology | UDDI

Getting serious about UDDI, Step 1

If you search uddi.microsoft.com for "Services" by the "RSS - Version 2.0" tModel, there's exactly one entry at this time. Mine. Fix that.

Using the UDDI SDK 2.0 (part of the Platform SDK), the following snippet is a simple console app that lists all weblogs registered with the RSS 2.0 tModel in the Microsoft UDDI registry [thanks to Karsten Januszewski for his doc, tModel bootstrap and code]. The advantage? If aggregators were able to remember my service key instead or in addition to my absolute access point (right now http://radio.weblogs.com/0108971/rss.xml), I could move the RSS feed around to any arbitrary locations without any pain and clients would still be able to find it using a simple lookup into the registry. And the infrastructure is all there. No future thing.

using System;
using Microsoft.Uddi;
using Microsoft.Uddi.TModels;
using Microsoft.Uddi.Services;

namespace ListRSS20Feeds
{
    class MainApp
    {
        static void Main(string[] args)
        {
            UddiConnection uddiConnection = new UddiConnection();
            /* RSS 2.0 tModel key from config */
            string RSS20TModelKey = "uuid:bacbe300-4b2b-11d7-bc51-000629dc0a53";
            /* setup the UDDI parameters on the connection */
            uddiConnection.InquireUrl = "http://uddi.microsoft.com/inquire";


            /* create a UDDI FindService and ServiceList objects */

            FindService fs = new FindService();
            ServiceList sl = new ServiceList();
            /* add the rss tModel key */
            fs.TModelBag.Add( RSS20TModelKey );


            try
            {
                /* send to uddi */
                sl = fs.Send(uddiConnection);
            }
            catch ( Exception ex )
            {
                Console.WriteLine( ex.Message );
                return;
            }

            /* create FindBinding and BindingDetail objects */
            FindBinding fb = new FindBinding();
            BindingDetail bd = new BindingDetail();
            fb.TModelBag.Add( RSS20TModelKey );

            /* get the bindings */
            foreach ( ServiceInfo si in sl.ServiceInfos  )
            {
                /* set the serviceKey */
                fb.ServiceKey = si.ServiceKey;
                try
                {
                    /* send to UDDI */
                    bd = fb.Send(uddiConnection);
                }
                catch ( Exception ex )
                {
                    Console.WriteLine( ex.Message );
                    return;
                }
                foreach ( BindingTemplate bt in bd.BindingTemplates )
                {
                    Console.WriteLine(

                        "---------------\n"+
                        "Feed Name: {0}\n"+
                        "Access Point: {1}", 
                        si.Names[0].Text, 
                        bt.AccessPoint.Text);

                    /* get out the tModelInstanceInfo for the tModelKey 
                        that represents RSS 2.0 and get the version info */
                    foreach ( TModelInstanceInfo tmii in bt.TModelInstanceInfos )
                    {
                        if ( tmii.TModelKey == RSS20TModelKey ) 
                        {
                            if ( tmii.InstanceDetails.InstanceParameters != null )
                                Console.WriteLine("RSS Version: {0}", 
                                  tmii.InstanceDetails.InstanceParameters);
                            else
                                Console.WriteLine("RSS Version: n/a");
                        }
                    }
                    
                    if ( bt.Descriptions.Count > 0 )
                    {
                        Console.WriteLine( "Description: {0}, Language: {1}", 
                           bt.Descriptions[0].Text, 
                           bt.Descriptions[0].IsoLanguageCode);
                    }
                }
            }
        }
    }
}

Wednesday, July 09, 2003 4:19:04 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [1] - Trackback
Technology | UDDI

H2/2003, moving up one notch on the WS stack.

Yesterday, all the travel madness of H1/2003 which begun in January has officially ended. I have a couple of weeks at the office ahead of me and that's, even if it may sound odd, a fantastic thing. The first half of the year and quite a bit of last year too, I spent most of my research time working deep down in the public and not-so-public extensibility points of Enterprise Services and Web Services, trying to understand the exact details of how they work, figuring out how to inject more and tweak existing functionality and whether certain development patterns such as AOP could enhance the development experience and productivity of my clients (and all of you out there who are reading my blog). I've been in 21 countries in this first half of the year alone and at about 40 different events, talking about what I found working with these technologies on some more and some less serious projects and doing that and speaking to people I learned a lot and I also think that I helped to inspire quite a few people's thinking.

Now it's time to move on and focus on the bigger picture. Starting with version 2.0 of Microsoft Web Service Enhancements that's due out by end of this summer, Web Services will finally become less Web and more Services. The WSE 2.0 stack will break the tie between HTTP and SOAP by enabling other transports and they'll add support for some of the most important WS-* specs such as WS-Policy, WS-Addressing and related specs. The now released UDDI services in Windows Server 2003 put a serious local UDDI registry at my fingertips. BizTalk Server 2004's new orchestration engine looks awesome. There's a lot of talk about Service Oriented Architectures, but too less to see and touch for everyone to believe that this stuff is real. I think that's a good job description for H2/2003. My UDDI provider key: 7f0baedf-3f0d-4de1-b5e7-c35f668964d5

Wednesday, July 09, 2003 4:05:25 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] - Trackback
Web Services | Technology | UDDI
 Friday, July 04, 2003

Rafal is God.

We're at the speaker hotel looking at the final speaker scores with a group of people including David Platt, Kimberly Tripp, Juval Löwy and Gert Drapers. Rafal Lukawiecki did the four highest ranked sessions of TechEd Europe. The four top spots of all speakers and sessions, all him. The highest was 8.58 out of 9. With 288 attendees responding. That's just unbelievable and it is really, really well deserved, because Rafal is just awesome. We all agree that when it comes to technical presentations, Rafal is God.

Friday, July 04, 2003 9:34:14 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] - Trackback
Talks
 Thursday, July 03, 2003

I am party incompatible ... ummm... no, my session schedule is party incompatible, says Lorenzo. The good news is: My talk this afternoon at 18:15 (DEV387) is going to be pretty light compared to yesterday ;) The session is on "Layers & Tiers" in distributed systems and I'll explain the difference between the two terms, will talk about a broad idea about what a service in an SOA world is and will talk about proper treatment of data and about using data services and about communication patterns and contracts. Very conceptual talk and only one quick (prebuilt) demo to illustrate the concept of "smart" data services.

Thursday, July 03, 2003 4:53:32 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] - Trackback
Talks | TechEd Europe

WEB404 post-mortem

My talk on web services internals like custom reflectors and importers and format extensions went well -- for what I wanted to achieve. However, based on the audience feedback there was definitively a spread between good and bad in terms of customer experience and most of the critical comments are related to the demo (of course). Here's two out of about 40 feedback comments I got :

  • The speaker had quite a few surprises with his own code during the demo, giving the impression that what he proposed was rather a problem than a solution. The techniques shown looked very powerful, though.
  • sorry about all the demo problems, I hope practicing the demos 3times more before the next time will help.

What's interesting about these two is that everything actually worked and failed just as expected. I was running into "problems" that were there by intent in order to introduce the next step to get the solution going. Whenever I do a coding session (and I think it was appropriate to do that for this session) it is not even my intent to make it all look as if the sun would always shine and everything were easy and works with two mouse clicks. It's not. It's work. Also, I needed good reasons to go into the debugger and show appropriate debugging techniques -- essential for writing importers. But it's always pretty difficult to make it right for everybody, especially with level 400 talks on very complex matters where you need to cover a lot of ground.

Here's the link to the Soap Extension Wizard once more.

 

Thursday, July 03, 2003 4:45:11 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [1] - Trackback
Talks | TechEd Europe
Here is the sample code I used for the WEB400 talk about loose coupling here in Barcelona today. To get it to run you need to create virtual directory for the "web400" directory and move the person.xml file into client\bin\debug.
Thursday, July 03, 2003 4:14:17 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0] - Trackback
Talks | TechEd Europe
Stuff
About the author/Disclaimer

The content of this site are my own personal opinions and do not represent my employer's view in anyway. In addition, my thoughts and opinions often change, and as a weblog is intended to provide a semi-permanent point in time snapshot you should not consider out of date posts to reflect my current thoughts and opinions.

© Copyright 2008
Clemens Vasters
Sign In
Statistics
Total Posts: 717
This Year: 11
This Month: 0
This Week: 0
Comments: 1220
Themes
Pick a theme:
All Content © 2008, Clemens Vasters
DasBlog theme 'Business' created by Christoph De Baene (delarou)