# Friday, July 11, 2003
Amazon gets Web Services. Jeff Barr is talking about how and why Amazon implements Web Services, and they really do it right. They have a real business model and Web Services (both SOAP and REST) that fit that business model and allow both Amazon and their associates to make money.
Their Web Service model is really just an extension of their earlier associate program, and basically just gives associates way more control over the look of their site and additional features they can support.
What I find really interesting is that there's a whole economy building up around this technology. There are even solutions available such as StorePerfect, which is a set of ASP.NET controls that wrap the Amazon web services, so all you have to do to set up a commerce site using Amazon is use these ASP.NET controls. So if you get a good domain name and do a little ASP.NET coding, you can set up a site that makes you money without having to handle any goods, process any payments, or ship anything. If that's not an appropriate use of Web Services, I don't know what is.
Friday, July 11, 2003 2:25:00 PM (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 
I wanted to follow up on the last question that was asked at the speakers panel this evening. To my interpretation, the question was basically "I'm trying to sell some end users on the idea of using XML, should they care that it's XML?" That may not have been the actually question, but I think that's what I heard.
Unfortunately, that's a pretty interesting question, and the answer got totally lost in XML-RPC vs. SOAP / how badly does WSDL suck bickering and I don't think we really answered the guy's question.
My answer (speaking only for myself here) is that absolutely they SHOULDN'T care that it's XML. We as developers care because we have to write implemenations. End users shouldn't care in the slightest if it's XML. If I give my CFO a some data in CSV format, I'm pretty sure he doesn't care that the format is CSV, or that it has delimiters, or any other thing about it. What he cares about is that when he double clicks on the file, it comes up in Excel looking like a spreadsheet.
The problem is twofold: 1) we're not there yet with XML. You can't just double click on an XML file and have it come up in Excel looking like a spreadsheet (unless you're running Office 2003 Beta, which does actually manage to do just that through an amazingly clever combination of shell extensions and processing instructions, but that's an exception) 2) XML received so much hype 2-3 years ago that everyone thought (including end users) that they should care, since it's such a great buzzword.
Those are the things that we as developers have to fix, so that end users will be as blissfully ignorant of XML as the should be (are?) of CSV.
Friday, July 11, 2003 2:15:14 AM (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 
I have to hand it to Keith: it's pretty impressive to see a guy interactively build a tool during the course of his talk that lets the audience heckle him interactively while he's giving the rest of the presentation.
For those of you who weren't there, Keith used WSE 2 to set up a non-IIS based SOAP server that accepted HeckleData structures and printed them out, then build an ASPX page with a form on it that used the WSE2 SoapClient to send HeckleData messages to the server. Not only that, but he gave out the URL to the form on his first slide, thereby exposing himself to heckling from the wirelessly connected audience.
All that while wearing someone else's belt, and weathering some pretty intense non-SOAP issued heckling.
I saw Keith's presentations on WSE 2 at TechEd also, and I can't wait to get my hands on it.
Friday, July 11, 2003 2:05:02 AM (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 
As Scott Hanselman mentions I've had some experience with SVG UI's in my current project at Serveron.
While I think SVG is a really cool idea, and amazingly useful for interactive graphics (if done succinctly) we had nothing but trouble trying to craft SVG UI components, which was largely the focus of Don's talk. There were just too many problems with different scripting/DOM models (you can access Adobe's SVG DOM from IE, but you can't get to IE from Adobe, etc.) to make it a long term workable solution. In retrospect I would have suggested (not having written the SVG personally) moving all the UI controls into ASPX and keeping the SVG strictly for graphics display.
While I thought Don's approach to some of the individual controls was cool (I really liked the analog gages), I don't think that SVG, or mor importantly the infrastructure build around SVG at present, is in good enough shape to be building UI's on it.
Scott's correct in that we've essentially scrapped the SVG UI for a WinForms based "Smart Client". We orignally banked on SVG to give us cross platform interactive graphics, but as always, it's not that simple. Adobe's SVG control, which seems to be pretty much the only game in town, doesn't work in Netscape 6, which pretty much kills the whole cross-platform thing, even if we could get the scripting to work.
Friday, July 11, 2003 1:58:03 AM (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 
# Thursday, July 10, 2003
Brian Jepson did some very cool demos using Perl to convert RSS into WML so he can read blogs while standing in line at the DMV (although not while driving, he was quick to point out). He also used the same technique to wrap Amazon's Web Services so that he can check on how his books are selling on Amazon. Pretty groovy stuff. He also (bless his heart) rewrote the same applications in C# (using Rotor on OS X) so that people can actually read them. :)
You can check out his sources here.
Better still, he demoed RSS.NET, which is a C#/.NET library for reading and writing RSS. Now I can go and fix up my Draco.NET RSS feed, since I unknowingly coded all the RSS by hand.
Thursday, July 10, 2003 5:15:40 PM (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 
OK, I'm convinced. I need no further information on the ongoing debate about RSS.
Dave Winer just put forth a really great analogy on why RSS is the way to go. RSS is like a table (a physical one) in that we don't care how tables are made, we don't need a table standard, all we care about is that it holds up our coffee cup. So there it is in a nutshell: RSS holds up our coffee cups.
I must admit I have been from time to time in the strongly-typed, let's have a schema for everything camp but this and other arguments (such as loosely coupled SOAP services) are slowing winning me over to the idea that simple is better and there are good as useful reasons for not trying to specify the hell out of everything.
This makes me want to go back over some of my recent SOAP/Schema work and re-examine it in the light of this new maxim: Does it hold up my coffee cup?
Thursday, July 10, 2003 2:10:50 PM (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [3]  | 
# Tuesday, July 08, 2003

This is a really interesting idea. It’s a .NET remoting channel that uses IIOP as its wire format.  This means that you can use it to interoperate with CORBA/J2EE/JavaRMI systems rather than using XML Web Services to do the same.   It looks like it’s not much more work then implementing Web Services in .NET, and the benefits you would get would be better performance (due to the binary serialization format) and the fact that your clients can take advantage of object references rather than essentially stateless methods exposed as Web Services.  The biggest drawback compared to XML Web Services is obviously that it only works for CORBA/J2EE/JavaRMI systems and not for all the other platforms for which there are Web Services implementations and not IIOP implementations.

Tuesday, July 08, 2003 1:44:24 PM (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 
# Friday, June 27, 2003

I finally got around to creating my first RSS feed today.  We are using an automated build tool for .NET called Draco.NET to build our (rather complex) application.  The great thing about Draco is that it watches your source-code repository for any changes, and rebuilds if it detects any changes.  When it’s done, you get a very nicely formatted email that tells you if the build succeeded or failed. 

Unfortunately, as your build process grows, so does the email, since it includes the output from the NAnt build.  Also, because of some strangeness in CVS log files, Draco tends to build rather more frequently than it really needs to, particularly if you are building from two different branches.  The end result is, lots of great big email, or “build spam”. 

So, I cooked up a quick ASP.NET application that will look at the directory containing output from Draco and turn it into an RSS feed.  Now all I get is the success or failure of the build in the RSS stream, with a link to another page that provides the full results if I want to see them.  A relatively small accomplishment, I realize, but there you have it.  

What the exercise did do is confirm my faith in two things:  1) RSS is pretty darn handy, and has a lot of applications, and 2) .NET is pretty much the most straightforward way to do just about anything.  The ASP.NET application only took around 2 hours, and would have taken MUCH longer in ASP or (heaven forefend) ATL Server.

[Listening to: Lady Diamond - Steeleye Span - Spanning the Years(04:37)]
Friday, June 27, 2003 7:13:53 PM (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 

 The government is testing an airport scanner that reveals, well, pretty much everything. The image that screeners see is basically you, naked, under your clothes. Along with whatever weapons of mass destruction you happen to be concealing.
[Wired News]

Everybody remember to start doing your sit-ups before you travel…

[Listening to: John Barleycorn - Steeleye Span - Spanning the Years(04:49)]
Friday, June 27, 2003 4:49:13 PM (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 
# Thursday, June 19, 2003

Chris Goldfarb has some pointers/caveats about upgrading your build process from VS.NET 2002 -> 2003.   I’d add to that additional things to watch out for if you are using a build script that doesn’t use VS.NET.  We’re using NAnt to do our builds, and it uses the underlying .NET SDK compilers without regard to anything in the VS project files.  This leads to an even weirder upgrade, since you have to update your NAnt build file to reflect any changes required to build under 1.1 (and there are likely to be some, it took me most of a day to iron out all the issues) completely outside the context of VS.NET.  

The end result was that we had a full build working under 1.1 long before we had updated all our project files to VS.NET 2003.  This brings up some interesting problems when it comes to dependencies.  We have a fairly complex system with dozens of assemblies, and many of the project files reference assemblies from the build directory.  If your build directory is suddenly full of assemblies compiles against 1.1 and you still have 1.0 projects, chaos ensues.  All together it took the team 2-3 days to iron out all the issues and transition fully to 1.1.   As a side benefit, between the upgrade to 1.1 and moving to the latest version of NAnt (0.8.2) our build now takes about half the time it did before using essentially the same build script.  At worst it only took around 30 minutes, but 15 is still much nicer.

I guess the bottom line either way (and I think Chris reached the same conclusion) is that upgrading to 1.1 is not something you can do piecemeal, and you really have to tackle it all at once.  Embrace the pain and get it over with.

[Listening to: Man of Constant Sorrow - Dan Tyminski - O Brother, Where Art Thou?(03:10)]
Thursday, June 19, 2003 1:50:20 PM (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |