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