Friday, November 15, 2002


PocketSOAP 1.4.0 beta 2 available. includes support for HTTP compression and HTTP timeouts on PocketPC [PocketSOAP News]
8:41:09 AM    

  Thursday, November 14, 2002


John Giudice has started a weblog.  John is another Product Manager here at Groove.  He is in charge of the Groove Developer Kit and its various tools and utilities.  John says:

Over the coming days I will try and share ideas on what is involved with creating collaborative applications and making them succesful

[Matt Pope's Radio Weblog]

Cool! I worked with John a lot on the Toolkit. One of the very cool things that I always loved about John is he is one of the very few Product Managers I have ever seen anywhere that gets as dirty in the code as he does. He codes at home too. Cool!


6:32:44 PM    

  Tuesday, November 12, 2002


Btw, in case any of you have been wondering at all why I really haven't been discussing anything about SOAP, WSDL or other specific Web service technologies as of late, the reason is that I've recently begun to make a transition from focusing on the individual technologies to focusing on the types of things that can be done with the technologies.  For example, this new series of articles on developerWorks.  Also, this emerging family of technologies.  And lots of other stuff.  In other words, now that we've achieved a much greater level of interoperability, what can we do with it?  Driving the car is a lot more fun than building it.

[snellspace]
8:25:40 AM    

  Monday, November 11, 2002


I have just been given a go-ahead (Visual C++.NET only so I won't talk about the rest) since a lot of this has gone public already. The Everett Visual C++.NET features, I feel, are the biggest changes to VC++ since 5.0 and have made me extremely happy. The features break into 4 main areas:

  • ANSI/ISO Compliance
  • Forms Designer for Managed C++
  • Security Features
  • Optimizer Improvements particuarly in floating point

The ANSI/ISO compliance is particularly exciting as Visual C++ finally does Partial Template Specialization, Partial Ordering, Member Template Definitions, and pretty much everything in the standard. Public statements have said 98% compliant. I have not been able to throw any Standard C++ at it that it couldn't compile and handle correctly yet. Very heavy users of advanced Standard C++ features, particuarly templates like Loki, Boost and Blitz now compile 100%!

Also, in the unmanaged arena, there have been significant additions for security, paticuarly in the area of buffer overruns. The new /GS flag, when code is recompiled with 71, will catch many buffer overruns. There are also Safe Exceptions which I won't go into here. Also, in the unmanaged area, there have been some outstanding improvements made in the optimizer, particuarly for floating point. The /G7 flag builds code optimized for the P4 and there are major gains. Also the new /arch:[SSE:SSE2] flags let you generate code for the Streaming SIMD and Streaming SIMD Extensions 2 instructions.

Last, but certainly not least, there is now a Form Designer for Managed C++! You will be able to do everything you do with the C# or VB designer. You can visually design forms and work with Managed C++. This obviously opens powerful opportunities to do certain things like Direct/X without Interop penalities and much more. Its very exciting!


3:45:10 PM    

DM'er Jason Whittington has written a hillarious song on the whole PetShop saga. It so rules-). I can just picture Band on the Runtime doing it now. Sing along....
2:50:26 PM    

  Sunday, November 10, 2002


I want to step away from coding, talking about .NET altogether, and talk about abstraction, domain engineering, generic programming, and design paradigms for a bit. In 1999, I read a book by Jim Coplien, “Multi-Paradigm Design for C++”, which forever changed the way I looked at design paradigms. Lately, while reading Andrei Alexandrescu’s “Modern C++ Design: Generic Programming and Design Patterns Applied”, combined with doing a lot of “Modern C++”, I had several awakenings those shook up things for me even more.

            For years now, it seems to me, we have had many design “gurus” repeating a mantra “Object Oriented Design good, all other techniques  bad”, to the extent that for many developers and designers, that is the only paradigm that they use and even know. Abstraction is one of the key tools for managing the ever-increasing complexity of modern software. As Coplien says, “The common answer to what is abstraction usually has something to do with objects, thereby reflecting the large body of literature and tools that have emerged over the past decade to support object-oriented techniques.” Even more so, frameworks, languages and abstractions like .NET’s BCL and most of Java is only OO based (yes, I had been thinking about this for 2 weeks now, before Microsoft’s vapor announcement of future generic programming features in .NET). Java is touted, rightly or wrongly, as completely OO such that everything must be in a class. NET’s BCL is mostly only OO. Both of these, for the most part, wrap your abstraction and your way of thinking in object-oriented ways. Yes, there are exceptions (no pun intended!), but for the most part, most of the world thinks in objects. Well, that’s goodness, right? After all, it models the real world and builds abstractions much better, right? Well, yes and no. There’s no denying the vast benefits of OO but the key message in these books, and particularly Coplien’s book, is that Object Oriented Design is just one subset of the solution domain and not always appropriate for the problem at hand.  {READ MORE...}


3:03:16 AM    

  Tuesday, November 05, 2002


From the Rotor List:

On behalf of the entire Rotor team, I am pleased to announce the 1.0 release of Rotor. This release is available at the usual place http://msdn.microsoft.com/net/sscli.

The 1.0 release builds and runs on Windows XP, the FreeBSD operating system, and Mac OS X 10.2. In addition, the release contains many bug fixes, more documentation, new samples and additional test suites.

Please download it and let us know what you think.

Geoff Shilling

Rotor Project


7:38:12 PM    

Just entered chat below and right off start getting messages from all sorts of bloggers-) Ethan Brown, Greg, Matt Griffith, Ingo, Simon, Alexis, Jim

Don's talking about the overall architecture right now and putting in place all the pieces that other middleware stacks have had, and going for adoption...SOAP Preliminaries: SOAP message format described by envelope is pretty straightforward...In general, SOAP fairly silent about what goes on in body, some to say about header...exists so 3rd parties can augment. SOAP has always had this extensibility mechanism. AS SOAP has evolved more rigor has been applied to headers and thats what we rely heavily on in GXA specs... Two roles Ultimate Reciever and Next (predefined).

Drill into WS_ROUTING - gives transport independent way of sending SOAP. HTTP wonderful, until end of time but lot of people want to send over other transports. Tried to abstract away transport details.

Yikes! So many messages from bloggers, can't keep track of talk...WS_ROUTING - Action, Id, relatesTo, To, Source Routing in form of Foward and Reverse Paths...We need Intermediaries for things likes firewalls, proxies, may want to smear message over several locations. Another aspect is hard to build IP Router...Idea rebuilding IP Routing in User Mode...Application aware routing...All of specs are layered on SOAP 1.1 and 1.2 not replacement for. Though probably end of line for SOAP in 1.2, if we don't hold constant, pretty hard to get Interop.

Move on to WS-Coordination, Released as same time as WS-Tx, so didn't get a lot of attention - bizare to me. The real interesting innovation, unknown stuff in WS-Coordination. 3 people of 75 have read it. WS-c igives us lot of functionality that people expected when moved from classic RPC. Look at Corba, COM. Tended to want to build things that lasted more than one msg - COM+ - Contexts. Want to establish temporal, spatial relationship. Take bunch of messages and make sure the context has an id. Spec is org in most peculair way - two most interesting things in 2 appendicies. Context = collection of messages over time that share at least one property - identifier. May share others. When 2 or more WS are doing work together they may want to establish shared context. Basic Header Type - Context Header Block - Contains at least ID and maybe more info. Header blocks have distinct URIs.  WS-C pre-defines a Cordination Context. 2nd thing in Appendix - PortRef - contains bare minimum of address.

<CoordinationContext>
    <Identifier>uri</Identifier>
     <CoordinationType>uri</CordinationType>
      <RegistrationService>
            <Address>http://foo.com/mycoordinator.jsp<;/Address>
<PortReference>
    <Address>http://www.microsoft.com/foo.asmx<;/Address>
</PortReference>

WS-Tx really two specs - Part 1 2 Phase Commit and ACID. Part 2 Business Activities. ACID Txs - no one who worked on spec expected it to be used across trust boundaries. Part 1 exists to allow existing Tx apps to be able to do 2PC in a web context. Never intended to go across web sites and firewalls - across org boundaries. Tried to make that clear in the spec. Don't read Part 1 unless building Tx plumbing - codification of work done last 10-20 years in Tx. Part 2 really long-running transactions. Not strong isolation...No expectation of isolation or stability...BA is much simpler to understand - combine with WS-C an app dev could grok...So don''t wory about ACID, BA more interesting...

Reliable Messaging in next couple of months...Lots of plans...

Wow, I have to clean this up and get it in a story tonight...


3:33:20 PM    

WS-Routing, WS-Coordination, and WS-Transaction

Just in case you weren't aware...Don Box is scheduled to give a webcast this afternoon, discussing the above web service protocols.  Details and free registration are here.

[Greg Reinacker's Weblog]
1:05:30 PM    

  Monday, November 04, 2002


Here we go... As we near the initial release of Groove Web Services, we've started speaking more openly  [Matt Pope's Radio Weblog]

Obviously, this has a big bearing on our Groove Experiments stuff.


11:31:32 AM    

Steve Gillmor's column also references Groove Web Services heavily. He mentions the contribution Peter Drayton made to the design of the API.  No doubt, the value of enlisting Peter's help has been immeasurable.  Thank you Peter!  [Matt Pope's Radio Weblog]

The single best recomendation I have ever made...


11:30:35 AM    

Ticket to ride. 9:30pm Sunday @ Gate 89, Terminal 3, San Francisco International. I'm sitting here with a one-way ticket to Seattle. One-way. Wow. Seems slightly unreal... [Peter Drayton's Radio Weblog]

He's off. I got an email last night too. Good luck Peter. I'm sure you will have a lot of fun as well as making a big impact.


9:14:48 AM