Adventures with Live Mesh (CTP)

I have been playing around with the Live Mesh Community Techology Preview, and have been doing what I think is some pretty cool stuff with it (as a consumer), so I thought I’d post something about it.

First off, and let’s get this out of the way up front, this is NOT “another Ray Ozzie Notes/Groove”. What’s available today looks and feels like Groove (or FolderShare), but that’s only because this is the first implementation of something written on top of the Mesh Operating Environment (MOE). Today it gives you a way to synchronize files between machines and a “virtual desktop in the cloud”, but this is just the start. There will be a developer SDK available down the road that will open up this distributed environment to what I think could be a very interesting new class of applications (all SOA course!).

It is not my intention to go into detail about what it is, see the link below to Paul’s write-ups for that. It is my intention to share my experiences, good and not-so-good, and explain how I am using it.

Configuration

My configuration is:

  • My MediaCenter PC (at home) is a Live Mesh “device”
  • My notebook (also known as “my office” :)) is another Live Mesh device
  • I have created some folders on my virtual Live Mesh desktop-in-the-cloud that are synched with my devices

Project documents and artifacts

I do all of my development work inside virtual machines. Plus, I’m very mobile, and am often working in a disconnected state. How I use Live Mesh for this is:

  • from inside my virtual machine, I map a drive to a folder on my host
  • I have Live Mesh running in the host
  • When I drag project documents from inside the VM into the shared folder, they appear on the host
  • Live Mesh detects the new documents, and synchronizes them to the cloud
  • Live Mesh running on my MediaCenter PC detects the new files in the cloud and brings them down.

Presto… everything’s in synch! Pretty cool that I can do something inside my VM and it just shows up at home on my MediaCenter (complete with an RSS news feed for the folder saying who added/deleted what).

Photos

Basically the same as above, except when I plug my camera into my notebook I drag the photos in a folder that’s synched with my Live Mesh desktop. From there, they replicate down to my MediaCenter PC. I have my MediaCenter machine configure to automatically do backups to an external drive. Here Live Mesh gives me instant distributed backups, without having to think about it.

My not-so-great experiences

My not-so-great experiences were my own fault, nothing wrong with Live Mesh.

  • I didn’t understand the concept of a “device”. It is a combination of machine+login. I have 2 logins on my MediaCenter, a low-privilege one for everyone in the family, and my admin login. I had set Live Mesh up, under both those logins, to synchronize the same folder to my virtual desktop folder. Perhaps it could be a bit smarter and detect that scenario, but it didn’t, and the net effect was that I started getting duplicate file conflicts as the same files were being uploaded from different devices (even though from the same physical location) to the same virtual location. It turned into a real “Live Mess” 🙂 Solution was to set the MediaCenter machine to login automatically on boot, so Live Mesh would always be running, and remove the admin “device” from my mesh.
  • this one’s kind of funny, and shows what can happen when you forget what happens when you drag things. I was in Jordan, and had spent a weekend taking a bazillion pictures with my 10 megapixel camera. I pulled the pictures off, and it took all of a second to drag them to my synchronized photo folder. The upload to my mesh completed 5 days later 🙂

Learning more

Live Mesh is really cool, and useful technology. My biggest gripe right now, and a constraint on my usage, is the 5 gig limit. As was said on CNET’s Buzz Out Loud podcast, and I love this quote, “we’re going to need a bigger cloud”.

I would encourage everyone to get the CTP, or get on the list, and start using it for real.

Last I saw there was a waiting list to get in to the tech preview. That may or may not still be the case when you read this.

If you search around, you’ll find lots of info about Live Mesh, as a lot of people are (rightfully so) pretty excited about this. Some good starting points would be:

Technorati Tags: LiveMesh,Live Mesh

MVP Year – #2

I’m delighted to say I been awarded Microsoft Most Valuable Professional (MVP) for second year in a row. My first MVP year was awesome, its hard to believe the level of benefits you get from Microsoft for being an MVP. I’ll say the highlight of my award year was participating in the “Oslo” Software Design Review at Redmond during the MVP global summit. Without being an MVP its very unlikely I would have got a chance like this to hear directly from the Product team their future road map. It’s not all about hearing what’s coming soon, but also getting the opportunity to engage yourself in heated debate and to provide feedback directly to the product team to shape the technology you love the most.

One of the other exciting thing for me as part of “Oslo” SDR, is the chance to interact with the industry experts. It was limited set of audience (around 40 people I believe) including people like Don Box, Juval Lowy, Michele Leroux Bustamante , Jesus Rodriguez, Jon Flanders, Sam Gentile, Brian Loesgen, Charles Young, Richard Seroter, Scott Colestock, Stephen Thomas, to name the few (guys I haven’t left anyone intentionally, this list is from just on top of my head).

Not to mention, you get MSDN or Technet subscription free during your award year, which is great for a technical enthusiast to play with different things without the barrier of buying it.

I also need to thank everyone behind the scene, who nominated me for this award year.

Nandri!

Saravana

Second CTP of Adapter Pack V2!

 

The BizTalk Adapter Pack team is very happy to announce the release of the second CTP of the Adapter Pack V2. This CTP adds more features to the  new WCF Oracle E-Business Suite and SQL adapters that we shipped in the first CTP. We got some good feedback on the first CTP,and we are doing a second CTP with some more features.We added support for polling a stored procedure and PL/SQL tables in Oracle ebiz adapter and support for SQL query notification in the SQL adapter. Keep the feedback coming!


Note that this CTP is only available for members who have enrolled into the Adapter Pack V2 TAP program. Please view this blog for details on how to enroll into this program.


Enjoy!


The BizTalk Adapter Pack Team

XNA Games on the Zune

XNA Games on the Zune

Last night I finally had the opportunity to install the new Game Studio 3.0 CTP, and deploy some games to my Zune. I’ve tried 4 games (the official sample plus stuff I got from ZuneBoards) and one app (an e-book reader).

These are very simple, and most of them had small quirks and bugs that occasionally restarted the Zune, but my music and podcasts are not damaged in this process.

What disappointed me a little was the control schemes: the Zune touchpad is very sensitive, and some games use this, others use clicking on the large button, with wrong moves being done frequently. For example, when playing Sirtet (a clone of Tetris), I have to click the left part of the large Zune button to move the pieces left. Frequently, while doing this, I’d end up clicking either UP (rotate piece) or the center of the button (hard drop of the piece). Clear nuisances! And I imagine left-handed players will have the inverse problem.

Other interesting thing is that people are using XNA/.Net to develop applications for the Zune, some of them are here. Most seem like early releases of simple stuff, like clocks, stopwatches, instant messengers, phone books or text file readers, but are very interesting nonetheless.

A final note to mention how quick and simple the process is: just connect the Zune, open Visual Studio, select the Zune as the deployment location, then build your project and select Deploy. DONE!

Share this post: email it! | bookmark it! | digg it! | reddit! | kick it! | live it!

BizTalk Services New Release – Now with Workflow

BizTalk Services New Release – Now with Workflow

There’s a new release of BizTalk Services (R12) coming out and already available at the Pre-Production environment. This new release brings exciting new functionality, the most visible of which is (finally) Workflow support. The SDK includes 2 workflow samples ("Workflow Watchdog" and "Create Workflow APIs") and the following cloud-based activities are now available for use in your Visual Studio 2005 toolbox:

  • CloudHttpSend
  • CloudHttpReceive
  • CloudIfElse
  • CloudSequence
  • CloudServiceBusSend
  • CloudDelay
  • CloudWhile

… what do you mean you’re still not learning about cloud development?!

Share this post: email it! | bookmark it! | digg it! | reddit! | kick it! | live it!

MSDN Webcasts in July – Creating Connected Applications

Due to popular demand for our June WF/WCF webcasts, four July webcasts have been added to the MSDN .NET Framework 3.5: Create Connected Applications webcast series.

Webcast Title

Date/Time

Presenter

Level

Transactional Windows Communication Foundation Services

7/7/2008
10:00 AM PDT

Juval Lowy

200

Using Windows Workflow Foundation to Build Services

7/9/2008
10:00 AM PDT

Jon Flanders

300

WCF Extensibility Deep Dive

7/11/2008
10:00 AM PDT

Jesus Rodriguez

400

Bringing Enterprise Data to Life with SharePoint Server and Windows Communication Foundation

7/18/2008
10:00 AM PDT

Joe Klug

300

In this series, we’ve partnered with industry experts to focus on how to connect your applications together using Windows Workflow Foundation (WF) and Windows Communication Foundation (WCF), both part of the Microsoft .NET Framework 3.5.

If you’ve come across this blog post too late, and you missed a webcast, remember that we record the presentations and make them available for on-demand viewing.

Among the webcasts that you’ll find on-demand, last month’s presentations included:

This collection already contains an address with scheme http. There can be at most one address per scheme in this collection – WCF/BizTalk Error

You’ll get this error when using WCF/IIS and host headers…..fortunately a fellow
colleague Paul
Glavich
figured it out!!! Well done Paul! (It involves an IIS reshuffle, you may
be able to do something within a custom WCF Binding.)

Remember: There is a limit on the number of IIS Websites you can have on a
single machine.

No results when searching for A word or phrase in the file

Have you ever used the search functionality in Windows Explorer, only to be disappointed as it returns no results. I’ve seen this a million times, and is one of the first settings I change when bring up a server.

Here’s the fix:

set the FilterFilesWithUnknownExtensions DWORD value to 1 in the following registry key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ContentIndex

ASP.Net DefaultButton fires wrong button when tab is used to focus a button

ASP.Net DefaultButton fires wrong button when tab is used to focus a button

My loyal BizTalk readers 🙂 may be surprised to know I’m pretty handy with writing code as well. As such I’ve been working on a ASP.Net site recently and had to deal with this weird situation.

If you have a webpage with two buttons ‘Ok’ and ‘Cancel’ say, and you set default button like this:

Page.Form.DefaultButton = btnOk.UniqueID;

Now lets say you’re doing the right thing in regards to accessibility and paying attention to how your page behaves without the mouse and you tab to the Cancel button and hit the enter key, what do you expect to happen?

You would expect the Cancel button event to fire right? Well actually it doesn’t. Even though the Cancel button has the focus, it is the DefaultButton event that fires and therefore it is the Ok button that executes. The exact wrong thing you would want to happen.

DefaultButton is implemented using a javascript method called “WebForm_FireDefaultButton”. To fix the issue I’ve just described the solution was to add a javascript file to the page (in my case it was the Master page) that overloads that method. In a nutshell this overloaded method checks to see if the the focus is on a button and if it was the enter key which was pressed. If those two things are true, the FireDefaultButton is ignored. This is the script that we used:

// In the case where a defaultbutton is programmatically set button A the user tabs the focus to button B and hits the enter key, button A will fire. This is the workaround.

if (typeof(WebForm_FireDefaultButton) != ‘undefined’ )

var origFireDefaultButton = WebForm_FireDefaultButton;

WebForm_FireDefaultButton = function(event, target) {

if (event.keyCode == 13) {

var src = event.srcElement || event.target;

// Don’t call original function if focus is on a button

if (src &&

(src.tagName.toLowerCase() == “input”) &&

(src.type.toLowerCase() == “submit” || src.type.toLowerCase() == “button”)) {

return true;

}

}

return origFireDefaultButton(event, target);

}

As you can see, fortunately, the script is very lightweight and won’t therefore cause much of a performance drag.