Day 3 - Manage Your Mesh?

Technical content of this issue - 3 out of 5

Free Stuff

Usually by this point in the conference I have spent some time talking about the free stuff they give out. So far, the SWAG has been terrible. One conference TShirt (with an EDS sponsor logo on the sleeve - Soc, I got a free TShirt for you) and a couple of magazines all held in a cheap plastic/cloth tote bags that I immediately dumped in the trash. There was a nice aluminum water bottle. I held off judgment, however, because of a couple off-hand comments that are now confirmed. When we pick up our alpha/beta bits for everything they will come not on CDs, not on DVDs, not on the web, no no no, ladies and gentlemen, they will come on a 160GB USB hard drive. How about that?

The Big Hall

The vendor expo, hands-on labs, meals, Microsoft Pavillion and lounges are all in a single room called "The Big Hall." I know I talked about this last year, but you just can't picture how big it is. This room is a par 6. The Microsoft Pavillion has Live Maps set up to do directions from one part to another. I'm pretty sure there's a WalMart in one corner.

Morning Session

I skipped the first plenary session this morning - actually, I tried to skip it, but it ran 30 minutes long so I caught the end. My goal was to arrive at the beginning of the break to get a good seat for Don Box at 11. It worked out, because there was some interesting stuff on Office on the Web.

Microsoft Online Applications is online versions of all the Microsoft Office apps. They did a demoe of several of them and they were very cool. He showed a user using OneNote locally, while it is shared on the web. Other users can see it on the web, update it and the changes are sync'ed between the two instances with a couple seconds. Then he showed the same kind of behavior with two users sharing a document with desktop Word. Finally, he showed two browser users, one in IE, the other in FireFox, sharing an Excel document with changes syc'ed between them. Selections in the spreadsheet can be published to sites, blogs, etc. The entire shebang is hosted on, you guessed it, Windows Azure.

Don Box Speaks!

This is the first time I applauded with enthusiasm all week - as did the rest of the crowd. When it comes to a show like this, Don Box is a rock star! He's been at the center of every big Microsoft technology for over a decade and is a spectacular presenter. His big brain is matched by his great humor. Kind of like me - my medium brain is matched by my mediocre humor.

He immediately announced that there would be no Powerpoints during his presentation, which got great cheers. That's nice, but what I like about his presentations is not that there is no Powerpoint (I like a good slide now and then - sue me!), but there's no wizards. He codes everything by hand - actually he usually has a partner who types while he talks, then they switch off. That's how this one worked - they typed raw code into Visual Studio against alpha bits. Since the show was being broadcast over the web, he challenged the viewers in London to drink a pint every time they ran into a bug.

Ran into Russ Williams at the beginning of the session, an old friend from Plural that is now an Architect at the MTC in Reston. We both agreed that the code was flying by really fast and following everything was near impossible. That made me feel better to hear him say that - I thought I was just getting stupid.

The goal was to write the simplest Azure service possible, but since Hello, World was thankfully nowhere to be seen I think they overshot their objectives. It started with a web service that displayed a list of the processes running on the server. Pretty straightforward. They exposed it with a REST interface that took an action, in this case display. Then they added code to handle a delete action by terminating the process specified. They ran the service and calling it with their own client showed that they could retrieve the list of processes, filter it with a LINQ query and call back to terminate each notepad instance running. At that point the debugger popped up again at one of the breakpoints - it seems that at least one audience member had written a quick client to call their service. Don Box pointed out that that was exactly why they left the breakpoint on the delete method.

Since they had purposefully turned off the authentication for the service to keep it simple up front, they then turned it back on and demonstrated adding credentials to the call. Next they published the service to Azure and showed how the client could find the service in Azure, call it and Azure would call back down to the their service running on premises. I'm not quite sure how this fits into the story they're trying to tell about hosting things in the cloud. They did some other functions where they uploaded files to the Cloud Data Store, but I never figured out how that fit into the process service.

The whole thing, while energetic and fun to watch, didn't really clarify any of the Azure story, which was disappointing for a general session presentation. A muddled story has really been my overall impression of the PDC so far. I've spoken to a couple folks about it, one who claimed to understand the big picture and was very excited and a Microsoft employee who agreed that the first keynote didn't lay out the story nearly as well as it could have. One strong plus I took out of this demo is that interaction with the cloud was open, based on REST.

A Lap Around Live Framework and Mesh Services

I haven't written anything about Live Framework or the Mesh yet, this is the first contact I've had with it. I started to go to the Oslo session, but there were so many people there I gave up and joined Russ here. My impression of these technologies is that they are really consumer oriented and of limited applicability in an IT setting. The only exception to that may be the online/offline capabilities.

The speaker began with a nice explanation of what this is all about. Live Services are a technology that is built on top of Azure. As he explained it, it is driven by the concept of all the technologies in an individuals life. If you think about all your personal data (pictures, songs, videos, documents, etc.), you probably have alot - likely in the gigabytes range. Then you've got many devices - your notebook, your home desktop, your work notebook, your phone, your iPod, etc. Keeping that much data sync'ed across the appropriate devices is obviously quite a job. Now add applications, iTunes, Office, etc., then add all your personal contacts that you email and share this information with. Add all those things together, and that's your mesh. Live Framework/Mesh is a programming environment and cloud technology that helps manage it.

I may not have the spin entirely correct, but that's how I understood it.

The demo he created was relatively straightforward, with very little "gee-whizery," so it was easy to follow. He instantiated Live Operating Environment, then iterated through the collections of objects that it manages, putting the elements of each collection in a list box in a very 1996 Visual Basic looking UI. This was fine with me, I was actually able to keep up. The demo ran locally at this point, because the network connection was not available at the moment. Remember that, we'll come back to it later.

The stack holding all this up starts with Azure on the bottom. On top of that is the Live Operating Environment, the raw technologies underlying things. Next is the Resource Model, which abstracts the data, applications and communications. Finally on top are the libraries available to actually make an app out of all this stuff. There's several, including .Net namespaces, SilverLight and JavaScript API's. You're not locked in to Microsoft technologies, however, that's just the tools they provide to manipulate the Resource Model. Manipulating the resource model directly is again an open standard based on URI's and XML. He did a quick demo where he manipulated the resource model with IronPython.

So what good is it? We've already got one FaceBook and it took over from one MySpace, the keynote showed a very sexy BBC site for sharing videos but it's been done. He started listing some very compelling ideas. When you take a picture with your phone, it would sync automatically with your PC. Tag the picture in different ways and it syncs with the Grandparents (because you don't want to send every picture to the grandparents), or to your digital picture frame. When you buy a new computer all your apps and data sync automatically from your mesh. Lastly, the working local when disconnected, then sync'ing automatically when back online technology may have significant benefits to business. Many firms have tried to do this from scratch with mixed success. I've heard rumors that some of the syncing technology will be available to host on premises in the future.

Visual Studio Web Deployment

This is not the sexiest session offered in this timeslot - much more interesting is the session explaining SQL Server Data Services, but deploying to different environments is a constant struggle at FINRA so this is probably the session this week with the most direct impact on my current work so here I am in my least crowded session to date.

Microsoft is recognizing the problems of deploying web applications in an enterprise environment and attempting to address them in 2010. From the look of what they showed today they are helping with some issues but there are still some glaring holes. At the beginning he showed a slide of everything that must be gathered from a dev environment and deployed with a web app:

  • Content
  • Assemblies in the GAC
  • Configuration
  • COM Objects (still some out there
  • Some others that I didn't get down

First he showed the new Publish tab on a deployment project properties. This allows you to specify what should be gathered up. Gathering all the files needed isn't rocket science and not too bad a current weakness, but what has been added is the ability to gather things like IIS settings. This way you don't need an extra step for the SA to turn on Windows Authentication, for example. That's a nice plus. This tab doesn't address the concept of different configurations for different environments. That's addressed in a different area.

You can now register transform files for the web.config file based on compilation configuration. These appear as nodes under web.config in the solution explorer and contain specific transformations for that environment. They are not XSLT transforms as that would be too lengthy and complicated, but XPath statements with attributes that give instruction to the transformation algorithm. For instance, if the xdt:transform="replace" attribute appears in a <connection_string> element in the transform file, that connection string element will replace the element in web.config for that build configuration. This is OK, but it happens in the build environment based on configuration, which means that you are forced to compile a new set of bits to deploy to a new environment.

The big gap that still exists is the ability to encrypt a node containing something like a connection string. Several people, including yours truly, made a comment about this. A show of hands indicated that between a third and a half of the room wanted this addressed.

Microsoft Research: BAM, Ajax View and Doloto

This is probably the most "out there" session of the week. It is stuff that Microsoft Research is playing with that may someday become a product. But it sounded interesting and was being held in the theatre which is the most comfortable breakout room in the convention center, so sounded like a good choice for the 5:15 PM session.

BAM is a modeling tool that allows you to define an app, then outputs the app as a cloud application. That's what the writeup said, but I have no idea what he was trying to show us. After some theory talk, he described a demo based on a document management system. He wrote a convoluted model describing algorithms for knowing when a document had to be sync'ed, the generated the app. Then he ran the app - no documents, we saw a palette where he dragged computer icons and started processes. What about the big algorithm? What about documents? What did I miss here? I was completely baffled.

The next two items were much better. First was Ajax View. This is an add-on to your web server that instruments JavaScript code as it leaves your server so that it tracks function entry, exit and duration and sends the resulting log information back to the server. This allows web developers to get a good idea of how their application is behaving in the wild. Since so much of Web 2.0 apps are JavaScript, having this information can reveal things that can't be seen any other way. Live Maps, for instance, has 70,000 lines of JavaScript that talk to more than 14 other services (advertisers, etc.) that the developer has no control over.

Now the amount of instrumentation is controllable, so developers can set up instrumentation at a very coarse level for less impact. Then, when hot spots are identified, the instrumentation can be increased on a targeted basis to measure the hotspots.

Another feature to lessen impact on the user (yes, you run this on live production servers with real users) is to divide the instrumentation across users, so each user gets 1/n of the total instrumentation impact. The results are then aggregated on the server.

Doloto is a technology to reduce the amount of code downloaded so that a site is available to the user faster. Using the output of AjaxView, developers can determine what code is required to initialize the page and make it operable. The rest of the code is wrapped in JavaScript that delays download until the first call. The code required for this wrapper is so boilerplate for each call that the entire routine can be reduced to a single one line template. This allowed a reduction in downloaded JavaScript by 40% on tests on Live.com, Live Maps and Google Spreadsheet, for a reduction in download time of 30-40%.

Prototypes and documentation on these two technologies are available online-

Letters! We Get Letters!

DW from MD asks - Thanks Biff. I’m very interested in [Azure]. Did they talk extensively about how they were pressured into doing this by Google Apps and how this is going to eat into their bread and butter desktop software business?"

Strange, they didn't mention the company that may be their biggest threat - wonder why they didn't come up? They did talk a little about Amazon Web Services. I will try to get more perspective on how they feel they compare and contrast to both these products. - Ed.

PK from DC redundantly begins - This is PK in DC; long time listener, first time caller. My question is, What is wrong with the Minnesota Viking and why can't Gus straighten them out?

People, people, people. See what we are reduced to when you don't send in mail? Sports radio analogies? Let's work a little harder in the mail department - Ed.

Oh yeah, Gus hasn't been the same since slamming his head on the stadium wall - Ed.

Be a part of the newsletter, send your mail to editor@biffspdcnewsletter.com.

Tomorrow

Biff
Muzak Programmer, Biff's PDC Newsletter