• Interoperability @ Microsoft

    Putting customer feedback into action to advance interoperability


    IECC-interoperability-White-Paper As the Interoperability Executive Customer (IEC) Council moved into its 4th year of existence and embarked on tackling interoperability issues in new areas, we just published a whitepaper(PDF 1.25Mb) listing the discussions and major achievements by the council over the last 3 years.

    This is the first time we have gone public with any of the operational details and results achieved by the council.

    As a technical lead, running the day to day workings of this council, I will also like to thank all the member organizations, their CIOs and other technical leads and architects for their support and participation in this council. I encourage you to read comments from Council members in the following article:
    Microsoft and Customer Executives Team Up to Improve Interoperability”.

    These organizations spend a lot of time and effort in attending the meetings and providing us candid feedback on many of our strategies, products and technologies without which the council wouldn’t be able achieve what it has in these past 3 years. The council also sees a lot of engagements from many Microsoft product teams and other employees from various parts of the company but I would especially like to call out and thank Connie Dean, Meghan Raftery and Monty O’Kelley for their contributions over the last 3+ years.

    The IEC Council is led by Bob Muglia, President of Server and Tools Business and his direct involvement is a major factor in its successful existence and ability to produce tangible results over the past 3 years. It plays a key role in influencing Microsoft’s overall strategy around interoperability and providing feedback on this important subject. As you will be able to readily recognize, many of the blog posts on this site and our work at www.interoperabilitybridges.com have been highly influenced by discussions taking place within the IEC Council. This is strictly by design.

    All the information gathered from the IEC Council process has been categorized into areas of focus called “work streams”. Work stream efforts are led by executives from numerous Microsoft divisions and product teams who interact and partner with council members’ technical architects and CIOs to identify and develop solutions within these specific areas. These are:


    We would love to hear some feedback on the topics discussed, results achieved and in general on interoperability issues being addressed through the workings of this council.

    Looking forward to more productive discussions and positive results from the IEC Council for many more years.

    Kamaljit Bath, Principal Program Manager

  • Interoperability @ Microsoft

    June Update to the Azure Toolkit for Eclipse - Zulu, Java SDK, and More!


    Microsoft Open Technologies, Inc. (MS Open Tech), has released a minor June update to the Azure Toolkit for Eclipse. This update includes a few enhancements since our April 2014 release. 

    • Support for the Zulu OpenJDK v1.8
    • Updated versions of Zulu v1.6 and 1.7
    • Support extended for the Azure SDK for Java (v. 5.0)
    • A handful of user-requested bug fixes

    Have a look at the post on msopentech.com for full details

  • Interoperability @ Microsoft

    Showcasing Open Source Community Contributors to Entity Framework, ASP.NET and Web API for Visual Studio


    Microsoft Open Technologies, Inc.’s Hub engineering program continues to be a great place for community contributors to work and collaborate on key MS OpenTech projects. We’re thrilled to see so many non-Microsoft contributors. Thank you!

    In this post we’re showcasing (and thanking!) some of the open source developers who independently contribute code to improve key MS OpenTech open source projects: ASP.NET MVC, Web API, and Web Pages, SignalR and the Entity Framework.  Microsoft Corp. regularly takes great code contributions from these projects and builds them into the products that our customers know and love: they’re shipped with Visual Studio, in the Visual Studio Gallery and even sometimes in the core product. Working with community authors has earned us some wonderful community relationships in the process

    Entity Framework (EF)

    Entity Framework continues to benefit from input from a strong open source community since MS Open Tech announced it was open source about a year ago.

    Here’s a great intro to EF and EF concepts for newbies.

    Scott Guthrie did a great job of describing the latest and greatest features in this blog post. Back in May we highlighted a few developers and their open source contributions, and today we’d like to introduce you to some of them and dive a little deeper into their contributions.

    Independent Developer Profile – Erik Ejlskov Jensen

    Erik Ejlskov Jensen
    Erik Ejlskov Jensen

    In May we mentioned community contributions by Erik Ejlskov Jensen (ErikEJ), specifically ESqlCeFunctions, that provide a SQL Compact equivalent to SqlFunctions. I caught up with Erik on a quick call from his home in Denmark to share some information and answer a few questions about his contributions and experience so far. Erik has been working with Entity Framework since before it was a CodePlex project, originally working with ADO.

    Erik is coordinator for several projects on CodePlex and follows dozens of projects as well. One of his most notable contributions is the open source SQL Server Compact Toolbox, available as a Visual Studio add-in or a standalone app. Erik describes the toolbox in great detail in this Channel 9 video.

    Erik uses many other CodePlex projects in his own projects, so giving back to the community by providing tools to help others seems like a natural response to all the support and assistance he’s received from community members and tools in his development career.

    On his motivations for sharing enhancements for the Entity Framework, Erik says “The Entity Framework team has been very open towards contributors, you really feel that your contributions are appreciated and they take your contributions seriously”.

    Independent Developer Profile – Unai Zorilla Castro

    Unai Zorrilla Castro
    Unai Zorrilla Castro

    Unai Zorrilla Castro (UnaiZorrilla) also has been an independent open source contributor to EF since before it was EF – he was the author of several popular ADO books. He’s always been interested in the data access layer. Unai had the chance to meet with Daniel Simmons and Diego Vega on the EF team, who helped him understand the full capabilities of EF.

    Unai had several ideas for features that he thought could be interesting for the product. He’s contributed more than 10 open source additions to the product so far, some minor like changes to the code generated by migrations, and some more complex, like the creation of a pluralization service as a public and configurable service from DbConfiguration. He’s also contributed some interesting methods such as AddFromAssembly in ConfigurationRegistrar that enables entity mapping loading without having to specify entities in ModelBuilder, and AddRange and RemoveRange in DbSet that provides an optimized method to include or remove a set of entities.

    Unai believes that contributing has been more beneficial for himself than for the community, team or the product. Being able to work with the core EF team members is one of the best ways he has been able to learn and improve as a professional developer. Contributors must follow the same process as internal Microsoft developers, which provide a great source of important feedback.

    Unai also independently contributes to other Microsoft open source projects for the Microsoft team in Spain. Currently he’s involved in EF6.Contrib, a repository for draft contributions to EF 6 which for various reasons cannot be included in the core product code.

    As far as tips for other community members who want to contribute to the community, Unai says “don’t be afraid of having your code reviewed, feedback is always positive no matter what. We should dare to do these kind of things. Maybe they will work out or not, but if we don’t try we are sure to fail.”


    Our ASP.NET and Web API for Visual Studio are also blockbuster Hub projects, with unprecedented interest and downloads of ASP.NET MVC, Web API, and Web Pages source code. Visit http://www.asp.net to find official installers, documentation, tutorials, samples, and videos.

    Independent Developer Profile - Brock Allen - CORS in the ASP.NET Web API

    Brock Allen
    Brock Allen

    The recently introduced CORS runtime configuration inside the ASP.NET Web API could not have been possible without the help of CORS developer Brock Allen (brockallen) . Brock video-conferenced in remotely to help show CORS Support for the ASP.NET Web API in this great video on Channel 9, also featuring Dan Roth and Yao Huang Lin of Microsoft’s ASP.NET Web API team.


    Independent Developer Profile - Tim McCall – Attribute Routing in MVC and Web API 2

    Tim McCall (mccalltd – CodePlex, NuGet) was integral in building the original open source project that eventually became the new Attribute Routing feature in ASP Web API 2, which gives you more control over the URIs in your web API. For more information, have a look at the tutorial: Create a REST API with Attribute Routing in Web API 2.

    Tim got involved as a contributor earlier this year when he saw Dan Roth talking about his project, MVC Attribute Routing on Microsoft’s Channel 9, and invited the author to get in touch with him to talk about the project “if he sees this video.” Tim was inspired by the Ruby-based Sinatra Framework, and wanted to make something as easy to use in ASP.NET. He created a NuGet package that really helped the solution take off and generated a lot of positive responses on Twitter as well. The NuGet and Twitter attention also helped his solution climb to the top of results in popular search results, generating even more attention.

    His advice to developers who want to contribute: “If you see code or features that you don’t like, and you have a way to make it better, make the change and contribute the change so others can see it. Get some open source code out there even if it’s not perfect, but works, and appreciate and respond to community members who take the time to provide feedback. Also, make sure to package your projects using a good open source package manager like NuGet, npm, or RubyGems to get extra exposure for your projects.”


    We again thank all the contributors who have participated so far in improving MS Open Tech Hub projects via community contributions. If you have a contribution that we should be highlighting, please contact us by leaving a comment below, as you can see from our developer profiles in this post we are glad to help promote your contributions in any way we can!

    And if you’re new to the MS Open Tech Hub projects and want to get started, get the latest instructions on installing the Visual Studio 2013 Preview, release notes, documentation and tutorials here. Also, source code contributions to ASP.NET MVC, Web API, and Web Pages source code can be made by starting here, and Entity Framework contributors can get started here.

  • Interoperability @ Microsoft

    New Interoperability Solutions for SQL Server 2012


    I am excited to share some great news about how we are opening up the SQL Server data platform even further with expanded interoperability support through new tools that allow customers to modernize their infrastructure while maximizing existing investments and extending virtually any data anywhere.

    The SQL Server team today introduced several tools that enable interoperability with SQL Server 2012.

    These tools help developers to build secure, highly available and high performance applications for SQL Server in .NET, C/C++, Java and PHP, on-premises and in the cloud.

    These new tools include a Microsoft SQL Server 2012 Native Client, a SQL Server ODBC Driver for Linux, backward compatibility with ADO.Net and the Microsoft JDBC Driver 4.0 and PHP Driver 3.0.

    You can find more information on all this goodness on the SQL Server blog here.

  • Interoperability @ Microsoft

    Working with Microsoft Silverlight on PHP


    Architecture diagram for an embedded Silverlight controlSilverlight Microsoft Silverlight, now at version 3.0, is a great way to create rich web applications that run on Windows, Mac OS and Linux. It provides an engaging, rich, safe, secure, and scalable cross-platform experience. Best of all you can run it off any web server (IIS, Apache for e.g.) and it can be called from any PHP website! Our team has released some helper samples to get you started. You can find the project on the Samples for PHP with Silverlight web page, and the project source can be found on Codeplex. The project includes sample HTML and PHP scripts.

    How it works? Silverlight content is embedded into an HTML or PHP web page and in turn is transferred to the client browser where it is displayed by the Silverlight runtime (plugin) installed on the client computer. The architecture is shown on the right.

    You will first create a Silverlight application file (.xap). We have provided a sample file, HelloPHPDevelopers.xap within the download or you can also create one for yourself by using another tech bridge we have, Eclipse Tools for Silverlight. Our colleague Steve Sfarz in France has a great post up on his site describing how to get started with it and create your own .xap file. This file is essentially a packaged archive or .zip file (try changing .xap to .zip and browse into it) with a collection of libraries that you have compiled for your application. If you follow the directions on the site you will end up with a button on a form with some custom actions.

    You will then copy the .xap file you have created to a directory within your web site where you plan to host the Silverlight content. You will then want to create a custom HTML or PHP page that includes the following code in it’s body


    That’s all you need to run the .xap file you created and you can swap it out to any other file Silverlight application you choose to use.  If a user does not have the Silverlight plugin installed they will be presented with a 'Get Microsoft Silverlight' image and a link to install the plugin too. You should see an example of this in action right below this paragraph.


    To do this dynamically from PHP, you can use the function below. This is handy if you have Silverlight content in more than one place on your website.


    That’s all you need to take advantage of Silverlight as a content source for your PHP website. Have fun and share your experience back with us!

    Jas Sandhu
    Technical Evangelist, Interop Vendor Alliance Manager, Interoperability Strategy Team
    Twitter@jassand, FriendFeed@jassand

  • Interoperability @ Microsoft

    Being a polyglot developer II: learning Windows Phone from an Android perspective


    As I wrote in this post “Being a polyglot developer: tools & guidance to help iPhone developers learn Windows Phone 7” about a few weeks ago, I think it is essential to be a “polyglot” developer. And although you might have a preferred language, opening your mind to others will bring considerable value to your abilities and your resume. It’s true that jumping from one platform or language to another can break your habits, but change can be stimulating and will ultimately expand your opportunities.

    Today we have released a comprehensive package for Android developers to easily learn Windows Phone and port their app to Microsoft’s phone platform. There’s no magic wand that will do the work for you, but we have put together a great package to help you get started.
    The package consists of:

    All the details are explained on the Windows Phone Developer blog.

    clip_image003I just want to point a few things. Mapping is tedious on-going work. Don’t expect a mapping for all of the APIs, simply because the platforms are built upon different architectures and user interfaces. We’re working on expanding the coverage of the API Mapping tool for both iOS and Android, but there will be some situations where you might be stuck, not knowing what way to port your feature over from iOS or Android to Windows Phone.

    We’re willing to help! We have hired the “App Guy” who crawls developer forums aggregating discussions from different locations to answer questions related to porting iOS and Android applications to Windows Phone, but hey, that’s just one guy for now, anybody can help out. Tell us if we’ve missed something and tag your questions/answers so that we can find them (see guidance) and show them off.

    Open for feedback

    When we opened the API mapping tool, we invited developers to offer up their ideas (http://wp7mapping.uservoice.com) about what mapping we should cover. With this new version including Android, we’ve also introduced the possibility to add comments directly on the existing mapping. So if you want to provide additional details or if you spot something inaccurate, just add a comment, we’re listening!

    Jean-Christophe Cimetiere, Sr. Technical Evangelist – Interoperability
    @jccim - blogs.msdn.com/interoperability

  • Interoperability @ Microsoft

    AppFabric ACS: Single-Sign-On for Active Directory, Google, Yahoo!, Windows Live ID, Facebook & Others


    Until today, you had to build your own custom solutions to accept a mix of enterprise and consumer-oriented Web identities for applications in the cloud or anywhere. We heard you and we have built a service to make it simpler.

    Today at MIX11, we announced a new production version of Windows Azure AppFabric Access Control service, which enables you to build Single-Sign-On experience into applications by integrating with standards-based identity providers, including enterprise directories such as Active Directory, and consumer-oriented web identities such as Windows Live ID, Google, Yahoo! and Facebook.

     The Access Control service enables this experience through commonly used industry standards to facilitate interoperability with other software and services that support the same standards: 

    • OpenID 2.0
    • OAuth WRAP
    • OAuth 2.0 (Draft 13)
    • SAML 1.1, SAML 2.0 and Simple Web Token (SWT) token formats
    • WS-Trust, WS-Federation, WS-Security, XML Digital Signature, WS-Security Policy, WS-Policy and SOAP.

     And, we continue to work with the following industry orgs to develop new standards where existing ones are insufficient for the emerging cloud platform scenarios: 

     Check out the Access Control service! There are plenty of docs and samples available on our CodePlex project to get started.


    Asir Vedamuthu Selvasingh

    Technical Diplomat, Interoperability

  • Interoperability @ Microsoft

    Microsoft, Interoperability at XML-in-Practice 2009


    I have just returned from a busy two days in the Washington DC area for XML-in-Practice 2009. The event was held in the Arlington VA Hilton on September 30 and October 1. The conference’s purpose is to showcase real world applications and solutions that XML has enabled, enhanced and or made possible. The event was put together by the IDEAlliance and in tradition with the XML Conference, the tracks covered a number of different topics with technical depth and explored issues beyond the fundamentals. The tracks included  the Electronic Medical Records Summit covering President Obama’s Economic Plan,  eGovernment Program , Publishing & Media Program , Applications, Foundations and Interoperability Program,  and a Tools Summit. You can also find the Conference Program. Dan Kasun & Jas Sandhu, Open Government & Interoperability

    I wore a few hats at the event, I was a member of the Program Advisory Committee, was a co-chair/track leader of the Applications, Foundations and  Interoperability Program with G. Ken Holman from Crane Softwrights Ltd. and co-presented a session on Open Government and Interoperability with Dan Kasun who leads our US Developer and Platform Evangelism  Public Sector team. The session gave us an opportunity to start a discussion about how Microsoft is participating, sharing our thoughts and work in engaging with Recovery.gov which is built on SharePoint and consumes multiple disparate data sources, interoperates with a number of other technologies, and to share our Open Government Data Initiative (OGDI) which complements Data.gov

    Keith Hurwitz demonstrating OGDI at Demo Jam Keith Hurwitz, our State and Local Government Evangelism Manager on Dan’s team, also participated in the Demo Jam at the reception hosted by one of our InteropVendorAlliance.org partners Mark Logic using OGDI. He dived deeper into OGDI in a session the next day titled Microsoft’s eGovernment Solutions: Government Transparency and Cloud Computing: Publishing government data in Windows Azure with Microsoft’s Open Government Data Initiative open source toolkit. Keith shared some of the thinking on how it can be used, it’s architecture and demonstrating some good examples, including the OGDI sample site and a visualization by a partner IDV Solutions called Visual Fusion that utilizes the OGDI data. OGDI is a great cloud solution for Government hosted on Windows Azure. It supports calling from a number of different languages including Flash, Java, Silverlight, Google Maps and Bing Maps. It also utilizes some of the Technical Bridges that have been highlighted on this blog including the Toolkit for PHP with ADO.NET Data Services,  Open XML Daisy Translator. OGDI has also been used as a demo in our latest technical bridge published, Restlet Extension for ADO.NET Data Services.XML-in-Practice 2009 Audience

    I had a great opportunity to learn a bunch of new stuff and I would like to thank the organizers, IDEAlliance, it’s board, the track leaders and members of the advisory committee, our great speakers and to the attendees for the interaction and stimulating conversation. Special thanks to Joy Donat and Ken Holman for cat herding. I look forward to working with you all again at the next event.  

    Jas Sandhu
    Senior Technical Evangelist, Interop Vendor Alliance Manager, Interoperability Strategy Team
    Twitter@jassand, FriendFeed@jassand

  • Interoperability @ Microsoft

    Gigaspaces Working with MS Open Tech on Java Tools for Windows Azure


    We’re pleased to announce that GigaSpaces Technologies Ltd, an established leader in helping enterprises move their Java applications to the cloud, has joined Microsoft Open Technologies, Inc. and Persistent Systems Ltd. in the the development work behind the latest version of the Windows Azure Plugin for Eclipse with Java (by Microsoft Open Technologies) - June 2012 CTP.

    GigaSpaces has contributed the “Publish to cloud”wizard to the plugin, enabling Java developers to easily deploy their projects to the Windows Azure cloud directly from within Eclipse, thus eliminating the need for manual uploads via the Windows Azure portal. GigaSpaces has also contributed other new capabilities for Java developers, including:

    • the ability to view the progress of the deployment in an Windows Azure Activity Log view in Eclipse
    • the ability to reconfigure remote desktop access as part of the deployment process
    • the ability to delete previously published deployments

    You can read more about the latest plugin update here, and you can learn how to use the “Publish to cloud” feature here.

    Known for its industry-leading scalable application platforms, GigaSpaces Technologies is the creator of Cloudify, an innovative Open PaaS stack solution that enables on-boarding of mission-critical and big-data applications to the cloud without any code or architectural changes. Cloudify's recipe-based approach provides the flexibility and control required to manage the deployment, scaling, management and high availability of all the tiers of your application. Hundreds of tier-1 organizations worldwide use GigaSpaces technology to enhance IT efficiency and performance, among which are Fortune Global 500 enterprises and ISVs, from many industries spanning financial services, e-commerce, Telco, healthcare, and more.

    Thanks to the team at GigaSpaces for all they’ve done to help streamline and improve the Windows Azure development and deployment experience for Java developers! We look forward to continued collaboration with Gigaspaces in the future.

    Martin Sawicki

    Principal Program Manager

    Microsoft Open Technologies, Inc.

    A subsidiary of Microsoft Corporation

  • Interoperability @ Microsoft

    Using the Cloudant Data Layer for Windows Azure


    If you need a highly scalable data layer for your cloud service or application running on Windows Azure, the Cloudant Data Layer for Windows Azure may be a great fit. This service, which was announced in preview mode in June and is now in beta, delivers Cloudant’s “database as a service” offering on Windows Azure.

    From Cloudant’s data layer you’ll get rich support for data replication and synchronization scenarios such as online/offline data access for mobile device support, a RESTful Apache CouchDB-compatible API, and powerful features including full-text search, geo-location, federated analytics, schema-less document collections, and many others. And perhaps the greatest benefit of all is what you don’t get with Cloudant’s approach: you’ll have no responsibility for provisioning, deploying, or managing your data layer. The experts at Cloudant take care of those details, while you stay focused on building applications and cloud services that use the data layer.

    You can do your development in any of the many languages supported on Windows Azure, such as .NET, Node.JS, Java, PHP, or Python. In addition, you’ll get the benefits of Windows Azure’s CDN (Content Delivery Network) for low-latency data access in diverse locations. Cloudant pushes your data to data centers all around the globe, keeping it close to the people and services who need to consume it.

    For a free trial of the Cloudant Data Layer for Windows Azure, create a new account on the signup page and select “Lagoon” as your data center location.

    For an example of how to use the Cloudant Data Layer, see the tutorial “Using the Cloudant Data Layer for Windows Azure,” which takes you through the steps needed to set up an account, create a database, configure access permissions, and develop a simple PHP-based photo album application that uses the database to store text and images:


    The sample app uses the SAG for CouchDB library for simple data access. SAG works against any Apache CouchDB database, as well as Cloudant’s CouchDB-compatible API for the data layer.

    My colleague Olivier Bloch has provided another great example of using existing CouchDB libraries to simplify development when using the Cloudant Data Layer. In this video, he demonstrates how to put a nice Windows 8 design front end on top of the photo album demo app:


    This example takes advantage of the couch.js library available from the Apache CouchDB project, as well as the GridApp template that comes with Visual Studio 2012. Olivier shows how to quickly create the app running against a local CouchDB installation, then by simply changing the connection string the app is running live against the Cloudant data layer running on Windows Azure.

    The Cloudant data layer is a great example of the new types of capabilities – and developer opportunities – that have been created by Windows Azure’s support for Linux virtual machines. As Sam Bisbee noted in Cloudant’s announcement of the service, “The addition of Linux-based virtual machines made it possible for us to offer the Cloudant Data Layer service on Azure.”

    If you’re looking for a way to quickly build apps and services on top of a scalable high-performance data layer, check out what the Cloudant Data Layer for Windows Azure has to offer!

    Doug Mahugh
    Senior Technical Evangelist
    Microsoft Open Technologies, Inc.

  • Interoperability @ Microsoft

    Interoperability Award Winners at Imagine Cup 2009


    Imagine Cup Interop award Last week under gaze of the Great Pyramids on the Giza Plateau, the only remaining monument of the Seven Wonders of the Ancient  World, I was fortunate to participate in the final ceremony of the Imagine Cup 2009 competition, called the World Festival and the announcement of our Interoperability Award winners. Before I go there I wanted to provide a brief recap of the proceedings of the event.

    After a long trip for many of the competitors, judges and the Microsoft staff. My role was captain and finals judge for the Interoperability award and that ALB_1474_webstarted with a briefing for all participants, the judges and the competitors plus the ability to tour the competition rooms. After the housekeeping was done with, we all filed for a tour and our opening ceremony at the Citadel in Cairo, a major landmark there housing a beautiful and grand Mosque, a fort and museums. We had a great ceremony in the courtyard with a cool breeze that cut the heat and a beautiful sunset.

    We then started the proceedings with a bunch of keynotes and the highlight of the evening was definitely the presentation from Ray Ozzie, our chief software architect at Microsoft who pepped up the students CIMG0229about how they can shape the future through technology, innovation, and creativity with his own personal anecdotes of starting in the world of software. Joe Wilson, senior director of Academic Initiatives at Microsoft, then inspired and gave some advice to our students on the competition, and with all our keynoters joining him onstage started the competition off with a grand laser light display that made our historical venue show off grandly.

    I had a spectacular set of judges for our award, the judges pictured here with me, from left Tiago Cardoso from Institute for the Development of New Technologies (UniNova) in Portugal, Rob Miles from University of Hull in the UK and Dennis Anderson from Pace University in New York. They all have great credentials, had an eye for interoperability and were very fair in scoring our teams. We all seemed to be very in sync on how we gave out points. They’re also a fun bunch of guys :)  The criteria we used and the points percentages was 10% for Architectural Design, 20% for Innovation, 30% for Interoperability, 20% for Coolness and 20% for Presentation.

    The final awards were presented at the World Festival by Jon Perera, General Manager for Education Strategy and Audience Marketing, All of these teams have spent numerous hours perfecting their solutions and highlight a disparate set of technologies and multiple platforms to showcase Interoperability.

    … and the winners are …CIMG0311

    Third Place, winning US$3,000, went to Team ECRAM from Jordan, with their Elder & Children Remote Mobile Application. Their application allowed for a mobile phone to  be remotely control by another client, typically another mobile, especially in the use of elder or child care. It was particularly interesting that it came from a real world problem that one of the team members was facing with his grandmother who wanted to place calls and speak to family members but had difficulties using the phone and required the help of her grandchildren. Being a busy student he was not always available and so thought of solving the problem using technology and software. The system utilized multiple different systems including mobile carriers and web services to solve the problem. Here’s a picture of the team speaking to S. Somasegar, senior vice president of Developer Division at Microsoft

    CIMG0308  Our Second Place, winning US$4,000 went to Team FteamS from Poland,  with their Universal Solution for Remote Education, Eduko. These guys were innovative and cool in the use of disparate technologies on multiple platforms and devices to create a system that enabled teachers and students to interact using a virtual whiteboard system that was enabled on the desktop and even projected on any surface. What was particularly interesting was the use of a WII controller as a camera for their custom IR marker. It served as a very captivating presentation tool. The team also were very smart in the use of mobile devices sending things like text and coursework via SMS and MMS. Very little payload for a lot of information, did you know a single MMS message can send 15 pages of documentation? The guys also put together a very well rehearsed presentation with every team member participating and that impressed our judges too.

    Our First Place winner, winning the US$8,000 went to Team Proativa from Brazil, with their Virtualized and Social Education system ProLearning whichCIMG0312 is designed to maximize the experience of distance learning. The use of an immersive virtual reality environment, where students exchange experience and study together the interaction between tutor and pupils dynamic and communal. they utilized social networks to keep students interested in the learning process and engaged continually not just during a lesson. It was a holistic system that facilitated the learning process end to end and that impressed the judges who were all teachers themselves and whom felt they could use it today in their classes. The students had also the capability of using mobile devices to personal and automatically update students on schedules and prompting their network for activities when doing distance learning. It was also novel that they integrated the social networks, mobile devices and voice over IP to get students who were friends or classmates to engage with each other for lessons making the learning experience a team based activity. The main reason that the team won this award however was that they had built a piece of software on the server that brokered different services that didn’t necessarily plug in with each other serving as a technical bridge of sorts. This proved to be the differentiator that help them cinch the award. They had a rousing fanfare by their Brazilian teammates at the finals by being the first prize recipients of the night and helping their country grab the most awards at the competition this year.

    Here are the teams videos entries:

    First place Proativa Team from Brazil

    Get Microsoft Silverlight

    Second place FteamS from Poland

    Get Microsoft Silverlight

    Third place: ECRAM from Jordan

    Get Microsoft Silverlight

    I would like to thank all the competitors who participated in the awards, their mentors, Academic Developer Evangelists, family and friends. Congratulations to our final three winners on behalf of the judges, the Interoperability Strategy team and all of us at Microsoft. I know a lot of work and sweat went into your entries and I want to share how much we all appreciate your contributions! I hope that you all will join me again next year for the Interoperability Award at Imagine Cup 2010. See you in Poland!


    Jas Sandhu
    Senior Technical Evangelist, Interoperability Strategy Team
    Twitter@jassand, FriendFeed@jassand

  • Interoperability @ Microsoft

    Using LucidWorks on Windows Azure (Part 3 of a multi-part MS Open Tech series)


    LucidWorks Search on Windows Azure delivers a high-performance search service based on Apache Lucene/Solr open source indexing and search technology. This service enables quick and easy provisioning of Lucene/Solr search functionality on Windows Azure without any need to manage and operate Lucene/Solr servers, and it supports pre-built connectors for various types of enterprise data, structured data, unstructured data and web sites.

    In June, we shared an overview of the LucidWorks Search service for Windows Azure, and in our first post in this series we provided more detail on features and benefits. In December we covered the main features of LucidWorks Search, but today Microsoft Open Technologies, Inc, is happy to share with you a few new data sources that are Available in LucidWorks Search on Windows Azure, and a new easier way to sign up for LucidWorks Search Service on Windows Azure.

    A new option for signing up

    LucidWorks Search is still listed under applications in the Windows Azure Marketplace, and from there you can create an account via the LucidWorks Account Signup Page. But getting started is now even easier as we’ve integrated LucidWorks’ service with the Windows Azure Store, so you can now set up an instance on Windows Azure By clicking 0n the Store option in the Windows Azure Dashboard:


    Next, you’ll be prompted to choose an Add-on from a list. Select LucidWorks Search. The next screen invites you Personalize your new Add-On:


    At this point, all you have to do is enter a new Name for your LucidWorks Search Add-on and the region you want your instance to be located in.

    Right now the only option for signup via the Windows Azure Store is the Micro level, which is great for getting started. Should you exceed the limits of the Micro level, you can also sign up for other enterprise-level accounts from the LucidWorks Dashboard using the LucidWorks account that is automatically created when you sign up via the Window Azure Store.

    LucidWorks support for Windows Azure SQL Databases, Windows Azure Tables and Windows Azure Blobs

    Along with the Windows Azure Store integration, we also released LucidWorks Search support for Windows Azure SQL Databases, Windows Azure Blobs, and windows Azure Table Storage. All are available via the LucidWorks Search Dashboard under Indexing > Data Sources:


    Windows Azure Blobs provide a way to store large amounts of unstructured, binary data, such as video, audio, and images, including streaming content such as video or audio. There are two types of blob storage available, block blobs and page blobs. Block blobs are optimized for streaming and referenced by a unique block ID. Page blobs are optimized for random access and composed of pages that are referenced by offsets from the beginning of the blob. More information on Windows Azure blobs can be found here.

    Windows Azure Table storage is a collection of non-relational structured data. Unlike tables in a database, there is no schema that enforces a certain set of values on all the rows within a table. Windows Azure Storage tables are more like rows within a spreadsheet application such as Excel than rows within a database such as SQL Server. Each row can contain a different number of columns, and of different data types, than the other rows in the same table. You can find more information on Windows Azure Table storage here.

    Windows Azure SQL Databases are similar to an on-premise instance of SQL Server, but not the same.  Windows Azure SQL Databases expose a tabular data stream (TDS) interface for Transact-SQL-based database access, so they can be used the same way you use on-premise SQL Server.

    However, there are some very important differences for administration. Windows Azure SQL Database abstracts the logical administration from the physical administration. That means that you continue to administer databases, logins, users, and roles, but Windows Azure manages the physical hardware and networking to ensure enterprise-class availability, scalability, security, and self-healing. More information on Windows Azure SQL Databases is available here.

    To set up a new Azure SQL Database as a Data source, select Database as your data source option under Indexing > Data Sources.


    There are a few tips for setting up a Windows Azure SQL Database as a data source for LucidWorks that you need to know. First of all, copy the URL for your Database from the JDBC connection strings in your Windows Azure Dashboard, using this format:


    Next, select the SQL Server JDBC driver as the Driver for your Windows Azure SQL Database. You also have to include at least one SQL SELECT statement that includes an id column in the result. The id column is used at the Document identifier in LucidWorks search, and relates each row returned by the SELECT statement as fields in that Document. Have a look at my first post in this series for more information on how LucidWorks works with Documents, Fields, and Collections to return search results.

    When done your Data Source configuration should look something like the sample here:


    Next there are two additional options for setting up SELECT statements to work with your database. The Delta SQL Query uses the primary key to compare new records in the database with existing Documents in the LucidWorks Search Index, and only indexes the new or updated rows. Nested Queries allow you to set up one-to many relationships in the source Windows Azure SQL Database to include multiple rows of data in a single LucidWorks index Document, based on the primary key. Full instructions on setting up these queries as well as other options can be found in the LucidWorks help documentation here.


    These are just the latest new features to help you easily and quickly set up LucidWorks Search service on Windows Azure, and there are more on the way. Get started with your own LucidWorks Search solution by signing up via the Windows Azure Store, and let us know what you think!

  • Interoperability @ Microsoft

    News from TechEd 2014: Portability and flexibility with ASP.NET vNext


    Outside, the Houston weather for the opening day of TechEd 2014 is a little gloomy, but inside the George R. Brown Convention center it’s a bright day for Openness at Microsoft with the announcement of ASP.NET vNext!   check out the full details on the MS Open Tech Blog

  • Interoperability @ Microsoft

    Zend Framework 1.11 Ships


    At the annual ZendCon 2010 in Santa Clara, CA today, Zend Technologies announced general availability of Zend Framework 1.11, the latest release of its PHP application framework. This adds support for mobile application development and includes the open source Simple Cloud API, which allows PHP developers to build portable cloud applications.

    The Zend Framework is a PHP application framework with more than 15 million downloads and over 500 contributors, including Microsoft, Amazon, IBM, Adobe and Google.

    According to Zend's announcement, Zend Framework 1.11 gives developers access to the first deliverables for the Simple Cloud API project, including:

    • Document Service integration, which allows developers to utilize a variety of NoSQL cloud storage solutions including Amazon SimpleDB and Microsoft Windows Azure Table storage.
    • Queue Service integration, which lets developers perform asynchronous operations in order to offload heavy-lifting, pre-cache pages, and more. Queue Service integrations include Amazon Simple Queue System (SQS), Microsoft Windows Azure Queue service, and all adapters supported by the Zend Framework Zend_Queue component.
    • Storage Service integration, which allows developers to push static resources such as images and archives to the cloud. Currently supported services include Amazon Simple Storage Service (S3), Microsoft Windows Azure Blog storage, and Nirvanix.

    Windows Azure access from the Simple Cloud API is made possible by the Windows Azure SDK for PHP, a project sponsored by Microsoft and developed by RealDolmen. This is yet another example of Microsoft's continuous commitment to the openness of Windows Azure Platform by working with larger open source community.

    For its part, Microsoft is pleased to see the role this project is playing in "driving adoption among PHP developers for cloud computing platforms, and hope that many of these developers will be encouraged to use Windows Azure," says Jean Paoli, General Manager of Interoperability Strategy at Microsoft Corp.

    "The Simple Cloud API is an important catalyst for open and interoperable cloud computing, and Microsoft has an ongoing investment in the Simple Cloud API project, together with Zend and other contributors," Paoli says.

    The new mobile device support in Zend Framework 1.11 provides functionality for detecting mobile device types and their capabilities. Developers can choose from the  WURFL database, TeraWurfl, or DeviceAtlas to retrieve device capabilities, or they can write their own classes to leverage additional device databases.

    Zend Framework 1.11 mobile support also includes the Dojo Toolkit 1.5 update, which includes the dojox.mobile subproject. This delivers a flexible, lightweight mobile application framework, including CSS3 and JavaScript widgets optimized for use on mobile devices and for mobile-specific contexts.

  • Interoperability @ Microsoft

    New CU-RTC-Web Prototype from MS Open Tech Demonstrates WebRTC Video Support Without SDP Offer/Answer


    Supporting ORCA, a new W3C Community Group for WebRTC

    Today, Microsoft Open Technologies, Inc., (MS Open Tech) is publishing a new prototype implementation of CU-RTC-Web on HTML5Labs that continues our exploration of alternatives to the SDP Offer/Answer approach. The CU-RTC-Web approach is based on two basic principles: that JavaScript APIs for realtime communications should not be based on passing under-specified SDP blobs and should not require implementation of the SDP Offer/Answer state machine. These principles, first articulated in the original CU-RTC-Web proposal have continued as basic tenets within our prototyping efforts, which have demonstrated the practicality of the approach with running code.

    This prototype demonstrates how to support H.264/AVC video without SDP, by building the appropriate JavaScript code and without introducing any changes in the specification. Previous prototypes of CU-RTC-Web included demonstrations of cross-platform interoperability (voice interop between Chrome on a Mac and IE10 on Windows) and roaming between cellular and Wi-Fi connections. Because CU-RTC-Web is a contribution to the ongoing standardization process, it does not represent a planned feature of any Microsoft product, and the prototypes should not be used for the development of commercial products.

    As experience with the WebRTC APIs has accumulated, more and more developers posting on the IETF and W3C mailing lists are reporting that their attempts to develop WebRTC applications have been impeded by the underspecified complexities of SDP and the unwieldy Offer/Answer model. As a result, several participants collaborated on an internet draft WebRTC JavaScript Object API Rationale that critiques the SDP Offer/Answer approach to a WebRTC API and outlines the rationale for an alternative API. Erik Lagerway of HookFlash has also provided a well-crafted Blog post on the issues – WebRTC JS Object API Model.

    At MS Open Tech, we are excited to see this work toward an “ObjectRTC” API. ObjectRTC and CU-RTC-Web share the same principles (e.g. no SDP Offer/Answer) and we look forward to a public discussion of how to synthesize the best ideas from both proposals. Pursuing multiple interoperability experiments such as CU-RTC-Web and ObjectRTC is how standardization works at its best. If you wish to participate in the discussion, an ObjectRTC Community Group (CG) has been established at the W3C - ORCA.

    The recent vibrant and open discussion as well as availability of an open source repository for the development of an alternative JavaScript API represents a major step forward for the real-time communications developer community and the principles of the open web. As these developments evolve, MS Open Tech will continue its prototyping efforts, which may in future be based on a constructive synthesis emerging from the Working Group or Community Group activities.

    As with our previous release, we hope that publishing this latest working prototype in HTML5Labs provides guidance in the following areas:

    • Clarify the CU-RTC-Web proposal with working code, so as to provide details on how the API could be used to solve real-world use cases in an interoperable way.
    • Encourage others to develop comparable interoperable example code for their proposals.
    • Seek developer feedback on how the CU-RTC-Web addresses interoperability challenges in Real Time Communications.
    • Provide a source of ideas for how to resolve open issues with the current draft API as the CU-RTC-Web proposal is cleaner and simpler.

    This is a great time for the community to come together to evaluate the draft specs to make sure they’re understandable, interoperable and implementable, and synthesize ideas to enable them to work together. We encourage you to engage with one or more of the discussions in IETF and W3C, such as ORCA CG, and we offer this new prototype to contribute to that discussion with running code. The latest CU-RTC-Web prototype can be downloaded from HTML5Labs. We look forward to receiving your feedback: please comment on this post or send us a message once you have tried out the prototype, and stay tuned for even more to come.

  • Interoperability @ Microsoft

    Apache Stonehenge demoed at PDC09


    A couple weeks ago, Microsoft was at ApacheCon. We reported the progress made on the Stonehenge project and presented the roadmap.

    _stonehengeThe goal of Apache Stonehenge is to provide a public forum to test the interoperability of WS-* protocols on different vendor stacks and to build sample applications that could provide best practices and coding guidelines for better interoperability. The main sample application, StockTrader has been implemented on .NET (by Microsoft), PHP (by WSO2), WSAS JAVA stack (by WSO2), Metro (by SUN Microsystems), Spring (by SpringSource). The latest version of StockTrader uses the WS-Security and WS-Trust protocols for claims-based authentication scenarios. This allows the end-users to be authenticated through an independent Security Token Service (STS) that is trusted by the bank and to pass that token to the broker to process the transaction.

    This week at PDC09, we were demoing the project. I went to see Kent Brown, product manager for WCF and asked him to give us an update and show a demo of the different StockTrader applications working together.

    Watch the video till the end, Kent unveils the mystery on why the project was called Stonehenge!

    -- Jean-Christophe Cimetiere

  • Interoperability @ Microsoft

    Simplifying Big Data Interop – Apache Hadoop on Windows Server & Windows Azure


    As a proud member of the Apache Software Foundation, it’s always great to see the growth and adoption of Apache community projects. The Apache Hadoop project is a prime example. Last year I blogged about how Microsoft was engaging with this vibrant community, Microsoft, Hadoop and Big Data. Today, I’m pleased to relay the news about increased interoperability capabilities for Apache Hadoop on the Windows Server and Windows Azure platforms and an expanded Microsoft partnership with Hortonworks.

    Microsoft Technical Fellow David Campbell announced today new previews of Windows Azure HDInsight Service and Microsoft HDInsight Server, the company’s Hadoop-based solutions for Windows Azure and Windows Server.

    Here’s what Dave had to say in the official news about how this partnership is simplifying big data in the enterprise.

    “Big Data should provide answers for business, not complexity for IT. Providing Hadoop compatibility on Windows Server and Azure dramatically lowers the barriers to setup and deployment and enables customers to pull insights from any data, any size, on-premises or in the cloud.”

    Dave also outlined how the Hortonworks partnership will give customers access to an enterprise-ready distribution of Hadoop with the newly released solutions.

    And here’s what Hortonworks CEO Rob Bearden said about this expanded Microsoft collaboration.

    “Hortonworks is the only provider of Apache Hadoop that ensures a 100% open source platform. Our expanded partnership with Microsoft empowers customers to build and deploy on platforms that are fully compatible with Apache Hadoop.”

    An interesting part of my open source community role at MS Open Tech is meeting with customers and trying to better understand their needs for interoperable solutions. Enhancing our products with new Interop capabilities helps reduce the cost and complexity of running mixed IT environments. Today’s news helps simplify deployment of Hadoop-based solutions and allows customers to use Microsoft business intelligence tools to extract insights from big data.

  • Interoperability @ Microsoft

    Windows Phone Interoperability site


    The announcement of the Windows Phone Developer Tools Update is the opportunity for us to say a few words about the Windows Phone Interoperability site. We opened the site last December with the focus on helping developers who have been creating phone applications on various platforms ramp up quickly on the Windows Phone 7 platform. The site initially includes content designed for iPhone developers and we will add resources for Android developers.

    The site has a wealth of information for the new and experienced developer, with more content arriving in the next weeks.

    Resources are organized into chapters, where developers can find the following detailed guides for Windows Phone development:


    The first 4 chapters are now available for download (DOCX or PDF).

    The Windows Phone Interoperability site also includes several videos of developers explaining how they transitioned from other platforms to Windows Phone 7, and revealing their secrets for successfully designing and building applications.

    clip_image004Groundspeak testimonial: experience developing the Geocaching phone application for Windows Phone 7

    At Microsoft, we’re committed to ensuring phone developers have the necessary tools for building applications on the Windows Phone platform. The goal of the Windows Phone Interoperability site is to make it easy for developers with experience on other platforms to learn as quickly as possible. The site will also provide tools and guidance to help developers building applications for multiple platforms.

    -- Jean-Christophe Cimetiere, Sr. Technical Evangelist, @openatmicrosoft

  • Interoperability @ Microsoft

    New Bing Translator Plugin lets users localize your WordPress site into the language of their choice


    Good news for WordPress developers and webmasters!  Microsoft Open Technologies, Inc. has released a new Bing Translator plugin that lets you apply the power of Bing Translator to any WordPress site running version 3.8 or later. Visitors can translate your site into their preferred language in one click without leaving the page once this light-weight, cross-browser plugin is installed. This plugin also provides options for a setting a color scheme, as well as an option to allow visitors to suggest translations.  Check out the Blog post at msopentech.com for more detail. 

  • Interoperability @ Microsoft

    Offloading work to PHP Worker Roles on Windows Azure


    There are many common scenarios in web development that require processing of information, gathering data, or handling message traffic that can be accomplished asynchronously – meaning in the background while the user is doing other things with the application. A common example of this is sending email or when thousands of users are posting comments on your blog. When you open an account or change your password, often web applications will send you some kind of confirmation email as part of the workflow. This is typically done from the server using SMTP relay. Anytime an application is connecting to an internal service there are times when network issues can cause problems. These problems range from slow bandwidth to high latency to server outages – each having the possibility to cause a connection timeout or just simply take a long, long time.

    When doing this type of processing, you have two options: to “block” and process the message while the user waits on a response from the server, or to allow the user to simply carry on and queue the work for background processing. Windows Azure provides simple tools to make this type of background processing a snap.

    To see how this can be done simply with the Windows Azure SDK for PHP and Eclipse, check out my new tutorial: “Tutorial - Using Worker Roles for Simple Background Processing”.

    That's one more update for this week on the http://azurephp.interoperabilitybridges.com site (see others here).
    I hope this is useful and I look forward to sharing many more tutorials and demos on simple ways to achieve powerful things with PHP and Windows Azure in the coming weeks.


    Craig Kitterman, Sr. Interop Evangelist, @craigkitterman

  • Interoperability @ Microsoft

    Windows Azure Plugin for Eclipse with Java – November 2012 Preview


    I’m pleased to announce the availability of a major update to our Eclipse tooling, the “Windows Azure Toolkit for Eclipse, November 2012 Preview (version 1.8.0)”. This release accompanies the release of the Windows Azure SDK v1.8, as well as the AMQP 1.0 messaging protocol support in Windows Azure Service Bus, and exposes a number of related features recently enabled by Windows Azure.

    The key highlights of this release include:

    a) The updated “Windows Azure Plugin for Eclipse with Java” supports using Windows Server 2012 as the target operating system in the cloud

    b) The plugin also now allows you to easily configure Windows Azure Caching, so you can use a memcached-compatible client for co-located, in-memory caching scenarios

    c) The toolkit includes a new component: “Package for Apache Qpid Client Libraries for JMS (by MS Open Tech)”, which is a distribution of the latest client libraries from Apache supporting AMQP 1.0-based messaging recently enabled by Windows Azure Service  Bus

    d) Plus a number of additional customer-feedback driven enhancements and bug fixes

    To learn more, see our latest documentation.

    Martin Sawicki
    Principal Program Manager
    Microsoft Open Technologies, Inc.
    A subsidiary of Microsoft Corporation

  • Interoperability @ Microsoft

    Interoperability Goodness at TechEd 2012


    I know there was a flurry of news at the recent TechEd 2012 conference in Orlando, so I wanted to point you to a piece of Interoperability goodness that might have gone unnoticed in the mix: the release of the System Center 2012 – Virtual Machine Manager (VMM) OVF Export/Importtool.

    I recently chatted with my colleague Monica Martin, who is involved in the DTMF work around OVF for MS Open Tech. She gave me a lot of insight into the tool, which uses the Distributed Management Task Force (DMTF)’s Open Virtualization Format (OVF 1.1) standard, enables Interoperability between System Center 2012 Virtual Machine Manager (VMM) and VMware vCenter and Citrix Xen Server.

    The tool allows Microsoft’s System Center 2012 VMM users to import and export a virtual machine in an OVF 1.1 format from VMware’s vCenter and Citrix’s Xen Server.

    The OVF Import/Export tool is a set of cmdlets for use with VMM. Use of OVF promotes portability and interoperability of a virtual machine across Microsoft, VMware and Citrix hypervisors. We’ve gained valuable implementation experience with Citrix and VMware using OVF and successfully tested with vCenter and Xen Server.

    Adding OVF and the OVF Import/Export tool to the cache of advanced infrastructure, configuration and service management capabilities to SC 2012 is another milestone in Microsoft’s plans to deliver ongoing value to our customers and partners.

    The Open Virtualization Format (OVF) is an open standard for packaging and distribution of virtual appliances to run in virtual machines developed in the Distributed Management Task Force (DMTF), Inc. Microsoft and other industry partners are focused on the development of OVF. Microsoft has been involved in OVF development from the outset.

    OVF 1.1 is an international standard important to customers and partners, who are looking for strategies to effectively enable and speed their on-ramp of virtualization technologies in an interoperable way.

    This is another example of how Microsoft is committed to interoperability and openness in the products and services we provide, including our multi-hypervisor and standard-based storage management features in SC 2012.

    We have now taken this even further with the release of the System Center 2012 – Virtual Machine Manager (VMM) OVF Export/Import tool, which can be downloaded from the Microsoft Download Center. More information can be found on TechNet.

    For more information about this tool and other System Center products and solutions, please visit the System Center website.

  • Interoperability @ Microsoft

    MS Open Tech contributes to open source adaptive streaming video player DASH.js


    Adaptive streaming is an important part of the future of broadband video, and interoperability matters more than ever. People want to experience Web content swiftly and smoothly across a variety of devices. Microsoft Open Technologies, Inc. (MS Open Tech), is working with others in the industry to define guidelines for the delivery of video online, as well as contributing open source code that demonstrates interoperability of adaptive streaming across a variety of devices. 

    Adaptive streaming allows streamed video content to adjust to the bandwidth available at any given time. The result is a more fluid streaming experience for the viewer. However, today’s proprietary technologies make it difficult for content to be delivered to the many consumer devices available. The MPEG-DASH standard (ISO/IEC 23009-1) seeks to address this problem. In addition it provides many other advantages, such as switching between camera views, low-latency live streaming and improved subtitles and captioning.


    Microsoft Corp. is a founding member of the DASH Industry Forum (DASH-IF), an incorporated non-profit organization with over 65 members working to catalyze the adoption of MPEG-DASH. DASH-IF recently surveyed a group of European Broadcasters. They found that the biggest barrier to adoption is the lack of available clients capable of playing MPEG-DASH content. One of the reasons for this is that MPEG-DASH is a large and complex standard with many potential variations in implementation.

    DASH-IF has published a set of guidelines for implementation (called DASH-AVC/264). Using these guidelines, organizations can more easily build MPEG-DASH solutions that are interoperable. MS Open Tech, along with Digital Primates and a number of other DASH-IF partners, are building an open source DASH-AVC/264 reference implementation called DASH.js.

    Dash.js is permissively licensed (under the BSD license) and can therefore be studied and reused by anyone seeking to provide their own DASH-AVC/264 compliant player. The goal is to make it easier for third-parties to build adaptive streaming video players.

    In order to achieve this goal, the DASH.js player needs to be useful in as many environments as possible. Therefore, the DASH.js project seeks to be as open as possible to contributions. MS Open Tech is leading the definition of a fully inclusive project governance model to help ensure the success of the project. A governance model is a small set of rules and guidelines under which the project community operates. It ensures wide participation without a loss of efficiency and agility.

    Of course, governance is secondary to the production of useful software. MS Open Tech developers, along with other contributors to DASH.js, are already hard at work. At the same time other parts of Microsoft are working to support MPEG-DASH, for example Windows Azure Media Services recently announced a preview feature that enables MPEG-DASH live profile streaming.

    MPEG-DASH is important to the future of broadband video. Come and join the MS Open Tech team in making the DASH.js project a success.

  • Interoperability @ Microsoft

    Microsoft Releases New Dev Tools Compiled With Open Source Code


    Jason Zander blogged about new releases of Microsoft’s developer tools today – tools that include many contributions from the open source community with the MS Open Tech Hub on CodePlex.

    The OSS community helped build out the source code for ASP.NET MVC 4, Web API, Web Pages 2 and Entity Framework 5 – key components in the new releases of Visual Studio 2012, Team Foundation Server 2012, and .NET Framework 4.5. Through CodePlex, developers outside Microsoft submitted patches and code contributions that the MS Open Tech Hub development team reviewed for potential inclusion in these products. I described this process in more detail last month, More of Microsoft’s App Development Tools Goes Open Source.

    Today’s news had an additional cool factor. As Jason highlighted in his blog, “Developing great apps for Windows 8 is an important goal of this release. Therefore, in coordination with today’s developer tools releases, you’ll notice that the final version of Windows 8 has released to the web as well.”

    There is a ton of great resources on these tools that you can check out and download today. The ASP.net website is a great place to start. I also recommend my friend Scott Hanselman’s new videos.

    Microsoft’s partner-centric approach has been with the company since the very beginning. Today’s milestone shows that all developers can contribute to and benefit from Microsoft’s open platforms in the future.

    Gianugo Rabellino
    Senior Director Open Source Communities
    Microsoft Open Technologies, Inc.
    A subsidiary of Microsoft Corporation

  • Interoperability @ Microsoft

    Accelerating Start-ups with open source, and Windows Azure Accelerators


    In early 2012 Microsoft chose Tel Aviv,  as the location for its first start-up accelerator. When the team at Microsoft Research and Development, Israel asked if MS Open technologies, Inc. could speak about open source on Windows Azure at their Cloud Day event I immediately jumped at the chance since I’m fascinated by how open source can help accelerate innovation. It seemed to me that this event would attract the kinds of people who could show me a thing or two about innovation on the cloud.

    The Cloud Day event was designed to provide an opportunity for members of the local start-up community to explore the latest & hottest trends in cloud computing and to gain insights on how to get the most value out of the cloud. Speakers included representatives of start-ups at varying stages of development, Venture Capitalists, Cloud Consultants and Microsoft Open Technologies.

    My session focused on using open source software to get the most from the cloud. I discussed how Microsoft Open Technologies, Inc. work with projects and communities in order to ensure Windows Azure is an ideal platform for open source solutions. This was illustrated with a number of examples and case studies, such as how Ascribe Ltd transformed healthcare using open source big data solutions thanks to Microsoft’s contributions to Apache Hadoop and how Teletica.com used Azure and open source to manage a massive surge in web traffic. I also demonstrated how, using VM Depot makes it possible for anyone to build a video sharing site during their coffee break (more on that in a later post).

    For me though what I had to say was not the important part, it was what the attendees had to say that interested me. After my session I was able to talk to quite a few people who were both keen to tell me about their start-up and to learn how they can make the most of open source software. Almost everyone I spoke to demonstrated a hunger, energy and determination that was nothing short of impressive. It's no
    wonder that the Microsoft Accelerator here has such a high success rate.

    By the end of the day it was clear that open source is an important part of the start-up ecosystem in Israel and I, along with the rest of Microsoft Open Technologies, look forward to continuing to support the brilliant team at Microsoft Israel R&D a they continue to provide support for local innovation and business development.

  • Interoperability @ Microsoft

    W3C Accepts Microsoft’s Tracking Protection Standard Submission


    The W3C announced today that they have formally accepted Microsoft's proposal on a common W3C standard for Web Tracking Protection, which means that the standardization process can now begin. 

    An important part of our work with W3C is being an active part of existing working groups as well as identifying important new areas where users and the industry can benefit from a common approach. 

    Clearly, privacy is a great candidate for standardization, given the concern that consumers, academics and governments worldwide have expressed, as highlighted in today's blog by Dean Hachamovitch, the Corporate Vice President for Internet Explorer.  

    A common question has been what exactly has been submitted for standardization and how does that process work. Essentially, the Web Tracking Protection specification is designed to help users block content associated with online tracking.  

     The proposal has two parts:

    • Filter lists, which can enforce user privacy preferences by preventing the user agent from making unwanted requests to Web servers that track users.
    • A user preference, which is conveyed by a DOM property and an HTTP header, to be used by Websites and pages to respect the user's privacy.

    Together these technologies can be used to enhance privacy protection for users, and provide access to content and services that respect user privacy preferences.  

     As to how the standardization process works, this is pretty much the flow:

    • The W3C receives many proposals for new standards, and it filters these proposals based on whether the standard will have broad interest across its members before accepting. This is where this proposal is now.
    • The W3C may hold a workshop to build consensus across stakeholders about how to build a standard technology. In this case the workshop is to seek consensus on the scope of the work to be done on the Recommendation Track.  
    • W3C and wider community members then express their interest in W3C taking up work on a standard. Assuming there is enough interest and enough resources, a Working Group is approved and work starts.

    Working group participants come from three places: W3C member companies, outside experts, and W3C employees.  

    A specification can go through many revisions, is open to broad feedback, and there is also a requirement that the actual implementations are interoperable before the specification finally becomes a W3C Recommendation or standard.

     We are currently implementing Tracking Protection Lists in IE9 RC, which expresses both user intent as well as a way to enforce this by the user. 

    We look forward to working with the other members of the W3C on a common standard for tracking protection and improving privacy for users on the web.

     Jean Paoli

    GM: Interoperability Strategy

  • Interoperability @ Microsoft

    Microsoft Interoperability at EclipseCon 2011


    imageI've just returned from EclipseCon 2011, in wet and less than usually sunny Santa Clara California, and it's been definitely a jam packed and busy event with a lot of things going on. Interoperability @ Microsoft was a Bronze Sponsor for the event and we also had a session, "Open in the Cloud:- Building, Deploying and Managing Java Applications on Windows Azure Platform using Eclipse” by Vijay Rajagopalan, previously architect on our team, Interoperability Strategy, and now leading the Developer Experience work for the Windows Azure product team.

    The session primarily covers the work we have done on Windows Azure to make it an open and interoperable platform which supports development using many programming languages and tools. In the session, you can learn the primers on building large-scale applications in the cloud using Java, taking advantage of new Windows Azure Platform as a Service features, Windows Azure applications using Java with Eclipse Tools, Eclipse Jetty, Apache Tomcat, and the Windows Azure SDK for Java.

    We have been working on improving the experience for Java developers who use Eclipse to work with Windows Azure. At this session we announced the availability of a new Community Technology Preview (CTP) of a new plugin for Eclipse which provides Java developers with a simple way to build and deploy web applications for Windows Azure. The Windows Azure Plugin for Eclipse with Java, March 2011 CTP, is an open source project released under the Apache 2.0 license, and it is available for download here. This project has been developed by Persistent Systems and Microsoft is providing funding and technical assistance. For more info in this regard please check out the post, “New plugin for Eclipse to get Java developers off the ground with Windows Azure” by Craig Kitterman and the video interview and demo with Martin Sawicki, Senior Program Manager in the Interoperability team.  Please send us feedback on what you like, or don’t like, and how we can improve these tools for you.

    I would like to thank the folks at the Eclipse foundation and the community for welcoming us and I look forward to working with you all in the future and hope to see you at EclipseCon next year!

    Jas Sandhu, Technical Evangelist, @jassand

  • Interoperability @ Microsoft

    Announcing the first Node hackathon in Redmond, November 7-8


    The MS Open Tech team has been working with the Node.js community for more than two years to deliver a great experience on Windows and Windows Azure for Node developers. It’s been an exciting and rewarding experience, and we’re looking forward to taking it to the next level as we continue the journey together.

    To that end, we’re happy to announce the first Node/Windows Hackathon, sponsored by Microsoft Open Technologies, Inc. This event will take place in Redmond on November 7-8, 2013, at the new “Garage” facility currently under construction in building 27 of the Microsoft campus. The event is open to everyone. We’ll be sharing more details in the next few days, but we’re announcing the dates now so that you can reserve the date and make plans to participate.

    This will be a great opportunity for the Node community to get to know the many Microsoft developers who love to work with Node.js as much as they do, and we’ll work together to test new scenarios, explore new features, and make the Node experience even better for Windows and Windows Azure developers. There will be plenty of pizza and beverages, lots of time for hacking as well as socializing, and we’re planning a surprise announcement at the event that we think will make Node developers on Windows very happy.

    Please sign up at the EventBrite registration page and get involved if you’d like to participate, or have suggestions for projects and scenarios to explore.  We’d love to see you in Redmond for the event, but if you can’t be there in person we’ll also have opportunities for online attendance. (Details for online participation will be posted soon.)

    See you in November!

    Claudio Caldato, Scott Blomquist, Doug Mahugh
    Microsoft Open Technologies, Inc.

  • Interoperability @ Microsoft

    Cocos2D-X on the highway to the Windows Store


    Adalberto Foresti - Principal Program Manager - Microsoft Open Technologies, Inc.
    Olivier Bloch - Senior Technical Evangelist - Microsoft Open Technologies, Inc.

    MS Open Tech has just published a code patch that introduces WinRT support in Cocos2D-X. This update will be welcome by those in the game development community who were looking forward to leveraging the wealth of capabilities offered by Cocos2D-X to write Windows Store games. It will be likewise welcome by publishers of existing Cocos2D-X based games on other platforms, who will find the effort of porting their code to a Windows Store app significantly reduced, thereby opening up new revenue opportunities for their previous work.

    Cocos2D-X is an open source C++ game engine aiming at extending the reach of the popular Cocos2D game engine to other OS platforms beyond iPhone. Cocos2D-X is used by many mobile gaming creators, from hobbyists to major publishers like Zynga, Konami, Glu, Gamevil and KingSoft.

    "Thanks to the big contribution from Microsoft Open Technologies, Inc., Cocos2d-x v2.1.15 is now successfully ported to Windows RT. Developers who want to publish their games on the Windows Store to extend their reach to Windows devices can take action now. I'm so glad to see Microsoft is embracing open source communities in such a way :)" - Zhe Wang, founder of Cocos2d-x.

    Here is a short demo of Cocos2D-X running on Windows 8.1.

    While MS Open Tech is collaborating with the Cocos2D-X community to integrate the changes back into the Cocos2D-X master branch in GitHub, you can already access the WinRT-enabled code on GitHub. So try it out, and get a head start on publishing your next Cocos2D-X game on the Windows Store!

  • Interoperability @ Microsoft

    Community Participation


    I'm heading off to Paris this weekend to participate in the annual Open Source Think Tank and Open World Forum events held in that wonderful city next week.

    I'm really looking forward to chatting with all those folk interested in this space, from enthusiasts to developers and end users.

    I will be joined at these events by my colleague and Technical Ambassador Craig Kitterman, as well as by our local market interoperability program lead Alfonso Castro.

    We will present technical sessions and participate in a number of panel discussions, ranging from what Open Source, Open Standards and Open Systems mean today to Open Source as an agent of change.

    Our participation in these Paris events complements our existing broad engagement with OSS communities, and we look forward to meeting our friends from the PhP, Node.js, Drupal, Joomla, and WordPress.communities as well as to making a lot of new ones.

    You can read more about our participation in Paris here, and we look forward to meeting those of you lucky enough to be attending in person.

  • Interoperability @ Microsoft

    MongoDB on Azure – Onsite in New York City!


    Excitement is in the air for the MongoDB community and Microsoft Open Technologies, Inc. this week as MongoDB’s inaugural global community event -MongoDB World is now underway at the Sheraton in New York City. I’m here and I’ll be around for the whole event – I’m looking forward to meeting the global MongoDB community!   Check out the full post on the MS Open Tech Blog

  • Interoperability @ Microsoft

    OpenNebula Clouds on Windows Server Hyper-V


    More good news on Microsoft's commitment to Interoperability in the cloud: last week Sandy Gupta, the General Manager for Microsoft's Open Solutions Group, announced that Windows Server Hyper-V is now an officially supported hypervisor for OpenNebula.

    This open source project is working on a prototype for release next month and it will soon be possible for customers to build and manage OpenNebula clouds on a Hyper-V based virtualization platform.

    "Windows Server Hyper-V is an enterprise class virtualization platform that is getting rapidly and widely deployed in the industry. Given the highly heterogeneous environments in today’s data centers and clouds, we are seeing enablement of various Linux distributions including SUSE, CentOS, Red Hat, and CS2C on Windows Server Hyper-V, as well as emerging open source cloud projects like OpenStack -- and now OpenNebula," Gupta said in a blog post.

  • Interoperability @ Microsoft

    Windows Gets Eclipse Platform Improvements


    Today, David Green at Tasktop posted a blog about the latest Eclipse platform improvements for Windows. As part of Tasktop’s ongoing partnership with Microsoft, they’ve been working hard to bring two more Eclipse platform improvements for Windows this year: Desktop Search and Glass.

    You can read more about both of these improvements here.

    We look forward to continuing to work with both Tasktop and the Eclipse community going forward, and would love to hear from you about new features you would like to see in the future. Feel free to let David know about these at david.green@tasktop.com.


    Martin Sawicki

    Principal Program Manager: Interoperability

  • Interoperability @ Microsoft

    Moonlight 2 is now available


    From the Silverlight Team blog: Moonlight 2 is now available

    “We are pleased to announce the availability of Moonlight 2, an open source Linux implementation of Silverlight first announced by Microsoft and Novell in September of 2007.  Moonlight is the first and only open source project that provides Linux users access to Silverlight content.  Microsoft has provided Novell with access to its test suites for Silverlight, and provides Linux end users of Moonlight with free access to the Microsoft Media Pack, a set of licensed media codecs for video and audio. In addition, Microsoft and Novell are also announcing the expansion of their collaboration on Moonlight to include support for Moonlight implementations of Silverlight 3 and Silverlight 4. As part of the companies’ interoperability agreement, Microsoft will deliver new test suites and specifications for Silverlight 3 and 4 to Novell. “

    Read the announcement on the the Silverlight Team blog: Moonlight 2 is now available.

    moonlight Miguel de Icaza from Novell have some details as well:

    Releasing Moonlight 2, Roadmap to Moonlight 3 and 4.




  • Interoperability @ Microsoft

    You’re invited to help us celebrate an unlikely pairing in open source


    We are just days away from reaching a significant milestone for our team and the open source and open standards communities: the first anniversary of Microsoft Open Technologies, Inc. (MS Open Tech) -- a wholly owned subsidiary of Microsoft.

    We can’t think of anyone better to celebrate with than YOU, the members of the open source and open standards community and technology industry who have helped us along on our adventure over the past year.

    We’d like to extend an open (pun intended!) invitation to celebrate with us on April 25, and share your burning questions on the future of the subsidiary, open source at-large and how MS Open Tech can better connect with the developer community to present even more choice and freedom.

    I’ll be proud to share the stage with our amazing MS Open Tech leadership team: Jean Paoli, President; Kamaljit Bath, Engineering team leader; and Paul Cotton, Standards team leader and Co-Chair of the W3C HTML Working Group.

    We will share personal anecdotes about how an unlikely pairing -- Microsoft and open source / open standards – may go down in history as successful as Chocolate & Peanut Butter, Cats & the Internet, and Pirates & Ninjas.

    Come raise a toast to how far we have come as a community, and to the exciting places we’ll be headed in the next 12 months.

    Find your ticket below, and register here http://congratsmsopentech.eventbrite.com.


    Gianugo Rabellino
    Senior Director, Open Source Communities
    Microsoft Open Technologies, Inc.


  • Interoperability @ Microsoft

    Microsoft Brings Cloud Interoperability Down to Earth


    I wanted to share this Feature Story that we have just posted on the Microsoft News Center:


    Interoperability in the Cloud

    Cloud-Interoperability-practical Cloud interoperability is specifically about one cloud solution, such as Windows Azure, being able to work with other platforms and other applications, not just other clouds. Customers also want the flexibility to run applications either locally or in the cloud, or on a combination of the two. Microsoft is collaborating with others in the industry and working hard to ensure that the promise of cloud interoperability becomes a reality.

    Leading Microsoft’s interoperability efforts are general managers Craig Shank and Jean Paoli. Shank spearheads the company’s interoperability work on global standards and public policy, while Paoli collaborates with Microsoft’s product teams as they map product strategies to customers’ needs.

    Shank says one of the main attractions of the cloud is the degree of flexibility and control it gives customers: “There’s a tremendous level of creative energy around cloud services right now — and the industry is exploring new ideas and scenarios together all the time. Our goal is to preserve that flexibility through an open approach to cloud interoperability.”

    Adds Paoli, “This means continuing to create software that’s more open from the ground up, building products that support the existing standards, helping customers use Microsoft cloud services together with open source technologies such as PHP and Java, and ensuring that our existing products work with the cloud.”


    Read the complete story: Microsoft Brings Cloud Interoperability Down to Earth


  • Interoperability @ Microsoft

    Windows Azure Authentication module for Drupal using WS-Federation


    At Microsoft Open Technologies, Inc., we’re happy to share the news that Single Sign-on of Drupal Web sites hosted on Windows Azure with Windows Live IDs and / or Google IDs is now available.  Users can now log in to your Drupal site using Windows Azure's WS-Federation-based login system with their Windows Live or Google ID. Simple Web Tokens (SWT) are supported and SAML 2.0 support is currently planned but not yet available.

    Setup and configuration is easy via your Windows Azure account administrator UI.  Setup details are available via the Drupal project sandbox here.  Full details of setup are here.

    Under the hood, WS-Federation is used to identify and authenticate users and identity providers.  WS-Federation extends WS-Trust to provide a flexible Federated Identity architecture with clean separation between trust mechanisms (In this windows Live and Google), security token formats (In this case SWT), and the protocol for obtaining tokens. 

    The Windows Azure Authentication module acts as a relying party application to authenticate users. When downloaded, configured and enabled on your Drupal Web site, the module:

    -Makes a request via the Drupal Web site for supported identity providers

    -Displays a list of supported identity providers with Authentication links

    -Provides return URL for authentication, parsing and validating the returned SWT

    -Logs the user in or directs the user to register

  • Interoperability @ Microsoft

    BuildNewGames.com to help developers write cross-browser code


    BuildNewGames.com, a new site to make building web games easier for developers using HTML5, CSS3 and JavaScript, is now live!

    Along with a new partnership with Bocoup, Microsoft announced @ JSConf the launch of this new site.

    You can read the post from Justin Garret, Senior Product Manager in the IE team, announcing the partnership and the new site launch.

    Over the next few months, the site will feature 50 tutorials ranging from the coding basics of games all the way to how to make money across a range of platforms.  Follow @buildnewgames or @IE for the latest.

    Developers want to be able to write code that works reliably in all modern browsers, including ie10/9, Chrome and Firefox, along with mobile browsers, resulting in a complex test matrix and higher development costs. Through standards bodies leadership and practical learning, Microsoft wants to help Web developers have an easier time targeting various browsers at once, allowing them to concentrate on innovating and delivering an outstanding Web and gaming experience to final users.

    BuildNewGames.com already features technical articles on Animation, Compositing, Graphics, Mobile, SVG, Sprites, Tools, WebSockets.

    Developing games is becoming lots of fun again!

  • Interoperability @ Microsoft

    Microsoft Interoperability at Zend PHP Conference 2009


    ZendCon 2009 just wrapped up on Thursday. It was held at the San Jose McEnery conference center from the 19-22 October 2009. The conference is a great opportunity to catch up on PHP development and deployment. There are intensive tutorials and crash courses where developers can get up to speed quickly and get certified. An Un-Conference runs alongside the main sessions in an informal setting and is mostly presented by the attendees themselves. An exhibit hall has  a few partners on display including our  Microsoft Website Spark team. There was something for those new to the technology, and plenty to chew on for experts, with plenty of opportunities to network and get to know one another.

    Zend Conference 2009 ZendCon is put together by Zend Technologies Inc. They are also is known as ‘the PHP Company’ in the industry. The founders, Andi Gutmans (CEO) and Zeev Suraski (CTO) are key contributors to PHP and the creators of the core PHP scripting engine, the Zend Engine as well as the Zend Framework. The company provides important leadership for PHP and other open source communities, and plays a central role in the explosive growth of PHP.The conference also serves as an opportunity for the rest of the contributor community  to have a real-world venue to connect, which is an important thing in itself as they usually interact virtually. You get to hear about some of the key developments and trends right from the source and not just as the sessions.

    Microsoft has been participating in ZendCon since 2006 and so we weren’t exactly strangers to this community. At this conference however we had some key information that we wanted to share with the community. These projects can be found on our  Interoperability Bridges page and are also on this blog. Featuring …PHP Installed

    PHP on Windows has come a long way on Windows! At first it was a framework you had to compile from source and run on a web server, it is now installable from many popular ftp/websites like windows.php.net. You can easily get PHP downloaded  along with the rest of your favorite apps and tools on your web development stack  by using the Microsoft Web Platform Installer. It’s tiny and free! The install for PHP happens in minutes once you pull it down from the web. More and more applications that are frequently being adopted can be found on the Windows Web App Gallery. For example applications such as  Drupal, a popular Content Management System and Wordpress, a popular Blog engine are available on there.

    Getting PHP on Windows easily installed for development and deployment was one of the most frequently asked question by most PHP developers and administrators I have talked to. Many are shocked when they first download the installer and in a few check boxes have a fully configured PHP environment and application running. You can also modify and create custom deployments of your applications fairly easily and have the same environment running in your staging and production environments in a few mouse clicks too.

    Developing on the Cloud PanelThe keynotes are a big draw at the event …  Andi Gutmans in his kickoff and state of the union keynote, ‘PHP at the Heart of Mainstream IT’, spent some time on the partnership with Microsoft. You can read a little more about what was said on  Information Week and Visual Studio Magazine. We were also on a special Keynote Panel, Developing on the Cloud. Vijay Rajagopalan, Principal Architect on the team and a person who is very instrumental in developing some of the technical bridges mentioned in this post participated on behalf of Microsoft. He was joined by a few other cloud players including Wil Sinclair (Zend), Doug Tidwell (IBM), Thorsten von Eicken (RightScale) and Dave Nielsen (CloudCamp). Stephen O'Grady (RedMonk) was the moderator. Most of the panels participants are from the Simple Cloud effort. The questions were mostly taken from the #ZendCon Twitterstream in real-time and that gave a bit of a dynamic feel to the panel and allowed observers to provide live and, most of the time, candid commentary. There was a range of discussion from developer tools and frameworks, to management and security, and to more abstract discussions about the offerings from different vendors in the industry.

    Some notable sessions that covered Microsoft and Interoperability topics, SimpleCloud.org

    • Josh Holmes, a Microsoft Architect Evangelist based in Michigan, presented ‘What’s new in PHP on Windows’. He covered some of improvements on various aspects of running PHP on Windows.
    • Kevin Leneway, a Microsoft Audience Marketing Manager from Redmond presented an Un-Conference session titled ‘Forget the Hype: Real-World Experiences Running PHP Frameworks in the Cloud’. An informal discussion with developers on what is works and doesn’t and the state of the space.
    • Will Sinclair, from the panel above, gave a session ‘PHP and Platform Independence’ in which he describes the Simple Cloud API which we contributed to and how it abstracts out and gives a common interface for making applications interoperable across cloud vendors.
    • Aaron Wormus, had an interesting and well attended session on ‘Mastering Open XML Documents with PHP’ where he talked about PHPExcel and the tricks on how to use it to create, read  and manipulate powerful documents programmatically.
    • Rob Richards, session on ‘Digital Identity: OpenID and Information Cards’ covered authentication benefits and considerations on implementing the two methods.

    Neat thing about this community of web experts, they share their slides online! You can find them at the ZendCon 2009 and Unconference Joind.in event page.

    There was a lot to learn! I had a very pleasant experience at the conference and I’m very glad that I attended. I even bumped into some old friends and made many new ones too. I would like to thank all the folks at Zend Technologies & S+S media  for putting the conference together and to the PHP community for the great discussion on technology, the web, PHP and all sorts of geekdom …  y’all rulz!

    Jas Sandhu
    Senior Technical Evangelist, Interop Vendor Alliance Manager, Interoperability Strategy Team
    Twitter@jassand, FriendFeed@jassand

  • Interoperability @ Microsoft

    New Open Source Portable Class Library for SQLite


    Microsoft Open Technologies has released an interesting Portable Class Library for SQLite, offering .Net developers a single API for integrating SQLite across Windows Store, Windows Phone and .Net 4.5 apps.

    The library is released as open source and is available as a NuGet Package (and source code).

    To learn more, read the full blog post on msopentech.com/blog

  • Interoperability @ Microsoft

    Microsoft announces Apache Cordova integration in Visual Studio for Multi-Device Hybrid App development


    Today at TechEd US, Microsoft announced the preview release of Visual Studio tooling support for Apache Cordova. This new capability is based on the open source project Apache Cordova, whereby developers can target Android, iOS, Windows Store and Windows Phone 8 from a single project using existing HTML5 and JavaScript skills and code to build apps that take advantage of the native capabilities of the device.

    Read more on the MS Open Tech blog.

  • Interoperability @ Microsoft

    Updated Windows Azure Plugin for Eclipse with Java – Kepler, new Windows Azure SDK, and less is more for deployment options


    Microsoft Open Technologies, Inc., has released The August preview of the Windows Azure Plugin for Eclipse with Java. This release includes support for the new Windows Azure SDK v2.1  (a prerequisite), and some changes to eclipse version support and how JDKs and servers are deployed. Eclipse users may already be seeing plugin update notifications in Eclipse, so please note the Windows Azure SDK prerequisite. For full details, have a look at the documentation update.


    • Windows Azure SDK Update - This update is in sync with the new Windows Azure SDK v2.1, which is required for the update.
    • Kepler support – For eclipse users working with Kepler, we now support you! Note that going forward we’re testing new plugin releases with Indigo, Juno and Kepler, so our minimum required version is now Indigo. Helios may also work, but we’re no longer testing our plugins on Helios as of this version.
    • Include-in-package option JDKs and Application Server configuration is removed. Back in May we introduced the much more efficient and team-friendly option of auto-uploading the JDK and server to a blob then deploying from there. To pave the way for future enhancements, we’re replacing the option to include your JDK and app server in the deployment package to this as of this plugin release. Projects that still use the include option will automatically be converted to the deploy-from-blob option. Here’s a sample of what you’ll see in the deployment project UI now for the JDK:


    And here’s what you’ll see when selecting a Web server for deployment:


    Getting the Plugin

    Here are the complete instructions to download and install the Windows Azure Plugin for Eclipse with Java, as well as updated documentation.

    Ongoing Feedback

    This update is another in our company’s ongoing work to make it easier to deploy Java applications on Windows Azure. As you might have read, last month we partnered with Azul Systems on an OpenJDK build for Windows Azure. This plugin is an important element for our customers working in heterogeneous development environments.

    As always, let us know how the latest release works for you and how you like the new features!  To send feedback or questions, just use MSDN Forums or Stack Overflow.

  • Interoperability @ Microsoft

    Try the June CTP of Windows Azure AppFabric Service Bus REST API from Java, PHP


    Good news for all the PHP and Java developers out there: today we are publishing some Windows Azure AppFabric Service Bus samples just for you.

    Since the AppFabric Service Bus REST API can be used from almost all programming languages and operating systems, it makes it very easy for applications written on any platform to interoperate with each another through Windows Azure.

    To illustrate the point, we took the chat application that is already available as part of the Silverlight samples and made sample clients in PHP and Java that can all work seamlessly together.

    You can download the new PHP and Java samples, as well as all others for all other supported environments, from CodePlex.

    The Java application is implemented as a stand-alone client application and these are the steps you need to follow to build it:

    1. Edit the src\config\appfabric.properties file and add your Service Namespace, Issuer Name and Issuer Secret Key (obtained here).
    2. Compile the source using Apache Ant: navigate to the application directory in a command prompt and run “ant”.
    3. Once the build is complete, cd to the new “dist” directory and run the jar file: “java –jar AppFabricChat.jar”.

    To use the PHP app, you need to:

    1. Add your Service Namespace, Issuer Name and Issuer Secret Key to application\configs\appfabric.ini (obtained here). 
    2. Then point your webserver at the “public” directory and browse to the site.

    To set up a new site in IIS:

    1. Open “Internet Information Services (IIS) Manager”
    2. Click “View Sites”, then “Add Web Site…”
    3. Give the site a name such as AppFabricChat and point “Physical path” to the “public” directory of the PHP application.
    4. Pick port and hostname information, and click OK.
    5. Click the link under “Browse Web Site” to see the application.

    Note: If PHP isn’t enabled on your web server, use WebPI to install it.

    We would really like to get your feedback on these Java and PHP samples, so please feel free to ask questions and provide feedback on this at the Windows Azure AppFabric CTP Forum.


    Alessandro Catorcini
    Principal Group Program Manager
    Interoperability Strategy Team

  • Interoperability @ Microsoft

    PHP with Microsoft’s OGDI via ADO.NET and REST (OData)


    My last post, Microsoft, Interoperability at XML-in-Practice 2009 mentioned a project  called Open Government Data Initiative (OGDI) which complements Data.gov by providing an SDK that allows you to easily access publicly available government data. It’s a pretty useful tool toOGDI SDK quickly build applications on top of the datasets. I had a couple of questions on this project and how to interact with the PHP language and I wanted to highlight some simple ways on how you can do so.

    The most interesting way you can do so is by using PHP via our Toolkit for PHP with ADO.NET Data Services. This project makes it easier for PHP developer to take advantage of the ADO.NET Data Services, a set of features now available in the .NET framework. It simply exposes data in a RESTful way via proxy classes that are generated by the toolkit at design time by using the metadata that is exposed. Your code at runtime uses these classes to work with the .NET based service over http. You can easily adapt the example given in the toolkit also described by Claudio here, to use the OGDI service. 

    You will want to PHP on Windowsinstall the toolkit as per instructions (/docs folder has a good Users Guide, it’s also available here)  by copying all the files and folders into an accessible folder with the proper include_path reference in your php.ini file, as well creating the proper variables and enabling the proper extensions such as php_curl an php_xsl. This stumped quite a few folks as generating proxy classes using the PHPDataSvcUtil.php client will not work otherwise and neither will the proxy, editor or the entity you generate. With that done, you should be able to point to the uri, you want on the OGDI data service (e.g. http://ogdi.cloudapp.net/v1/dc/ ) DC Red Light Camerasand with that you can generate your proxy classes or Entity Container. You can find a working example that has a full browser for the data at http://ogdiphpsample.cloudapp.net/ , with source code available that you can reference. There is also an ADO.NET Data Services Client Library that can be found here in which you can build using Visual Studio 2008, Service Pack 1 or later and create a svc proxy using the above method.

    The next option is to use the REST Web Services, that let’s you query using PHP and have a return result  in either ATOM Publishing Protocols, Javascript Object Notation (JSON) and JSON with Padding (JSONP) which is used in quite a few Web2.0 frameworks. There is also the ability to call using straight Javascript from within your PHP apps. You would ideally however want to create a REST client service class, with a pointer to the URL, typically one of the data services on http://ogdi.cloudapp.net/v1. You will then create a query, using a format, using the methods defined here. After grabbing executing with the proper exception handling and managing the responses for display or processing. You can see an example of the PHP code by using the data catalog. This query for example, will return the Domestic Per Diem Rates for 2009 from the General Services Administration entity container. You can also apply filters to narrow down your result as in the examples above.

    There is also the ability to return your data in Geospatial form by using the Keyhole Markup Language (KML) which is compatible with popular mapping tools including Bing Maps and services from Google and yahoo. All you need to do is to append format=kml to your query just like the filters and you will be able to visualize the data that is returned. You will find some good examples of usage in the data catalog mentined earlier. That should add some interesting color to your application along with the other methods mentioned above if the data lends itself to the solution you create.

    Jas Sandhu
    Senior Technical Evangelist, Interop Vendor Alliance Manager, Interoperability Strategy Team
    Twitter@jassand, FriendFeed@jassand

  • Interoperability @ Microsoft

    Webcast “Connecting PHP to Microsoft Technologies”


    Last week I had a chance to attend a live webcast “Connecting PHP to Microsoft Technologies” presented by my colleague Sumit, where he demoed the PHP projects (samples toolkits, frameworks and SDK) that we announced in May (Announcing PHP SDK for Windows Azure… and much more!).

    These projects enable PHP developers to easily extent their web applications using some of the Microsoft technologies. Here’s a recap of the current projects:

    Sumit also introduced new project during the webcast:

    The offline recording is now available for download at http://www.phparch.com/conferences/webcasts (there are a couple minor glitches in the audio, just skip ahead for a few seconds when it happens ;-) and you’ll find bellow a zip containing Sumit’s presentation (PDF and PowerPoint PPTX)

    sponsort This webcast is part of CodeWorks 09 summer series organized by PHP|Architect website. The series touch a number of PHP related topics including two additional sessions focused on PHP and Microsoft technologies interoperability.
    Please mark your calendar:

    phparchmag In addition you might want to check out the free May 2009 issue of php | architect magazine which focuses on running PHP on Windows, and additional technical details on how to use some of the Microsoft products with PHP.


    Jean-Christophe Cimetiere - Sr. Technical Evangelist

  • Interoperability @ Microsoft

    Using LucidWorks on Windows Azure (Part 2 of a multi-part MS Open Tech series)



    LucidWorks Search on Windows Azure delivers a high-performance search service based on Apache Lucene/Solr open source indexing and search technology. This service enables quick and easy provisioning of Lucene/Solr search functionality on Windows Azure without any need to manage and operate Lucene/Solr servers, and it supports pre-built connectors for various types of enterprise data, structured data, unstructured data and web sites.

    In June, we shared an overview of the LucidWorks Search service for Windows Azure, and in our first post in this series we provided more detail on features and benefits. For this post, we’ll start with the main feature of LucidWorks – quickly creating a LucidWorks instance by selecting LucidWorks from the Azure Marketplace and adding it to an existing Azure Instance. It takes a few clicks and a few minutes.

    Signing up

    LucidWorks Search is listed under applications in the Windows Azure Marketplace. To set up a new instance of LucidWorks on Windows Azure, just click on the Learn More button:


    That takes you to the LucidWorks Account Signup Page. From here, you select a plan, based on the type of storage being used and the number of documents to index. There are currently four plans available: Micro, which has no monthly fee, Small and Medium, which have pre-set fees, and Large, which is negotiated directly with LucidWorks based on several parameters. All of the account levels have fees for overages, and the option to move to the next tier is always available via the account page.

    The plans are differentiated on document limits in indexes, the number of queries that can be performed per month, the frequency that indexes are updated, and index targets. Index targets are the types of content that can be indexed – for a Micro, only Websites can be indexed, for small and large, files, RDBMS, and XML content can also be indexed. For large instances ODBC data drivers can be used to make content available to indexes.


    Once the plan is selected, enter your information, including Billing Information:


    Once the payment is processed (Or in the case of Micro, no payment), a new instance is generated and you’re redirected to an account page, and invited to start building collections!



    In the next part of the series we’ll cover setting up collections in more detail, for now let’s cover the account settings and configuration. Here’s the main screen for collections:


    The first thing you see is the Access URL options. You can access your collections via Solr or REST API, and here’s where you get the predefined URL for either. When you drill down into the collections you see a status screen first:


    This shows you the index size and stats about modification, queries per second, and updates per second, displayable by the last hour, day or week. This screen is also where you can see the most popular queries.

    Data Sources

    If you were managing external data sources, here’s where you configure them, via the Manage Data Sources button.


    From here you can select a new data source from the drop-down. The list in this drop-down is as of this writing, and may change over time – check here for more information on currently supported data sources.


    The Indexing Settings are the next thing to manage in your LucidWorks on Azure account. Here’s the Indexing UI:


    Indexing Settings

    De-duplication manages how duplicate documents are handled. (As we discussed in our first post, any individual item that is indexed and/or searched is called a document.) Off ignores duplicates, Tag identifies duplicates with a unique tag, and Overwrite replaces duplicate documents with new documents when they are indexed. Remember that de-duplication only applies to the indexes of data, not the data itself – only the indexed reference to the document is de-duplicated – so duplicates will still exist in the source data even if data in the indexes has been de-duplicated. Duplicates are determined based on key fields that you set in the fields editing UI.

    Default Field Type is used for setting the type of data for fields whose type LucidWorks cannot determine using its built-in algorithms.

    Auto-commit and Auto-soft commit settings determine when the index will be updated. Max time is how long to wait before committing, and max docs is how many documents are collected before a commit. Soft commits are used for real time searching, while regular commits manage the disk-stored indexes.

    Activities manage the configuration of indexes, suggested autocomplete entries, and user result click logging.

    Full documentation of indexing settings can be found here.

    Field Settings

    Field Settings allow configuration of each field in the index. Fields displayed below are automatically defined by data extraction and have been indexed:


    Field types defined by LucidWorks have been optimized for most types of content, and should not generally be changed. The other settings need to be configured once the index has run and defined your fields:


    For example, a URL field would be a good candidate for de-duplication, and you may want to index it for autocomplete as well. You can also indicate on Field Settings whether you want to display URLs in search results. Here is full documentation of Field Settings.

    Other Indexing Settings

    Dynamic Fields are almost the same as fields, but are created or modified when the index is created. For example, adding a value before or after a field value, or adding one or more fields together to form a single value.

    Field Types is where you add custom field types in addition to the default field types created by your LucidWorks installation.

    Schedules is where you add and view schedules for indexing.


    Querying Settings is where you can edit the configuration for how queries are conducted:



    The Default Sort sets results to be sorted by relevance, date, or random.

    There are four Query Parsers available out of the Box for LucidWorks; a custom LucidWorks parser, as well as standard Lucene, dismax and extended dismax. More information on the details of each parser is available here.

    Unsupervised feedback resubmits the query using the top 5 results of the initial query to improve results.

    This is also where you configure the rest of your more familiar query behavior, like where stop words will be used, auto complete, and other settings, the full details of which are here.

    Next up: Creating custom Web site Search using LucidWorks.

    In the next post in the series, we’ll demonstrate setting up a custom Web site that integrated LucidWorks Search, and the configuration settings we use to optimize search for that site. After that, in future posts we’ll discuss tips and tricks for working with specific types of data in Lucidworks.

    Brian Benz
    Senior Technical Evangelist
    Microsoft Open Technologies, Inc.

  • Interoperability @ Microsoft

    Momentum Grows as OData v4 Achieves Standards Milestone


    OData Industry Adoption Builds with v4 Now in Public Review in OASIS

    Based on the industry collaboration between Citrix, IBM, Microsoft, Progress Software, SAP AG, WSO2, and others, we are pleased to report that the OASIS OData Technical Committee recently approved Committee Specification Draft 01 (CSD01) of OData version 4.0 and has initiated a public review of OData v4.0 during May 3, 2013 through June 2, 2013. OData v4.0 is expected to become an OASIS Standard in 2013.

    Much of the data on the Web today lives in silos, needing different protocols, APIs, and formats to query and update the data. With the rapid growth of online information and big data sources, open data protocols and services are in demand more than ever before.

    OData is a Web protocol for querying and updating data. OData is built on a set of RESTful conventions that provide interoperability for services that expose data. It builds on standardized web technologies such as HTTP, REST, Atom/XML, and JSON. It provides an entity data model and has support for vocabularies for common ontologies such as Sales (with Customers, SalesOrder, Product, ...), Movies (with Title, Actor, Director, …), or Calendars (with Event, Venue, …), etc. OData enables the creation of REST-based data services which means that resources identified using Uniform Resource Identifiers (URIs) and defined in an Entity Data Model (EDM), can be published and edited by Web clients using simple HTTP messages.

    The OASIS OData version 4.0 specification is based on the popular OData version 3.0. OData version 4.0 defines data model changes to significantly simplify and expand how relationships are expressed and used as well as how metadata is described and partitioned, expanded query capabilities for inline collections and fulltext search, and extended functionality for change tracking and asynchronous processing.

    The OASIS Technical Committee has produced three work products; OData version 4.0 defines the core semantics and facilities of the protocol, including a set of conventions for addressing resources, query string operators for querying a service, and an XML representation of the Entity Data Model exposed by an OData service. OData JSON Format version 4.0 defines representations for OData request and response bodies using a JSON format. OData Atom Format version 4.0 defines an equivalent representation for OData request and response bodies using an Atom/XML format.

    Many organizations are already working with OData, and it has proven to be a useful and flexible technology for enabling interoperability between disparate data sources, applications, services, and clients. Here are some recent examples:

    Microsoft Research Explores OData and the Semantic Web

    Microsoft Research (MSR), in collaboration with The British Library and the Digital Enterprise Research Institute (DERI), has just published a whitepaper Linking Structured Data that explores how OData can be used to expose data within an RDF triple store through an end-user oriented model, and consumed by a broad range of consumer-oriented tools and applications. To better understand how RDF data could be exposed and consumed by OData clients in a real world example, MSR went from theory to practice by focusing on some scenarios from The British Library which publishes its metadata on the Web according to Linked Data principles.

    Join the OData Community

    If you’re interested in using or implementing the OData protocol or contributing to the OData standard, now’s the time to get involved.

    • Learn more about OData and the ecosystem of open data producer and consumer services by visiting the recently revamped OData.org web site for information, content, videos, and documentation.
    • Get the latest information for what's going on in OData by join the OData.org mailing list.
    • Get involved in the #OData discussion and contribute to the OData community.
    • Join the OASIS OData technical committee (OData TC) to contribute to the standard.
    • Send comments on OData version 4.0 to the OASIS OData Technical Committee

    We’re looking forward to continued collaboration with the community to develop OData into a formal standard through OASIS.

    Mark Gayler, Senior Technical Evangelist
    Microsoft Open Technologies, Inc.

    Ram Jeyaraman, Senior Standards Professional
    Microsoft Open Technologies, Inc. and co-Chair of the OASIS OData Technical Committee



  • Interoperability @ Microsoft

    MongoDB Seattle recap


    DSC_4062Last Friday I had the opportunity to attend and participate in the MongoDB Seattle conference down along the Seattle waterfront at Bell Harbor Conference Center. It was a great way to end a week of MongoDB-related activities around Seattle and Redmond! I met many people who are working with MongoDB and considering their options for cloud deployment, and I co-presented with 10gen software engineer Sridhar Nanjundeswaran on “MongoDB and Windows Azure.”

    On the day before the conference, I caught up with Aaron Heckman, Node.js engineer at 10gen, and we recorded a video of a cool demo app he had built and deployed on Windows Azure that uses Node.js and MongoDB. Aaron knows Node.js and MongoDB very well but had never worked with Windows Azure before, so his experience is a great example of how quickly and easily Node+Mongo developers can deploy apps on Azure.

    Thanks to the team at 10gen for putting on a great event, and thanks to everyone who participated and helped make it so useful and fun! You can find links to additional information about deploying MongoDB on Windows Azure over on the 10gen blog, and also be sure to check out the Windows Azure section on MongoDB.org.

    For those on the US east coast, MongoDB Boston is coming up on October 24, and my colleague Jim O’Neil will be presenting on the details of running MongoDB on Windows Azure. To find other MongoDB events check out the events page on 10gen’s site, and for information on upcoming Windows Azure events see the Windows Azure Events page on WindowsAzure.com.

    Doug Mahugh
    Senior Technical Evangelist
    Microsoft Open Technologies, Inc.

  • Interoperability @ Microsoft

    Another milestone for open source cloud programming model ActorFx, more stability, async actor communication and more


    Our team is making steady progress on building a solid framework for our new open source computing model for the cloud ActorFx, and we’re happy to report that we just released version 0.40 for this ActorFx project on CodePlex.

    ActorFx provides a non-prescriptive, language-independent model of dynamic distributed objects for highly available data structures and other logical entities via a standardized framework and infrastructure.

    Since Microsoft Open Technologies, Inc., announced that ActorFx joined the MS Open Tech Hub in December, we’ve been hard at work at adding new features in regular releases.

    For this release we focused on adding some interesting features that enriches the framework and makes it suitable for a wider range of scenarios.

    • We added a DictionaryActor, accompanied by a C# CloudDictionary<TKey,TValue> client. This is just another example of rich distributed data structures that can leverage the ActorFx infrastructure for high availability.
    • We added support for asynchronous actor-to-actor method calls (details can be found in the documentation included in the "ActorFx Basics" doc on the codeplex project).
    • We added support for actor methods written in languages other than C#. For now, we support actor methods written in JavaScript. Documentation is included in the "ActorFx Basics" doc.
    • We also spent some time to improve stability. We've added sensible handling for "transient" errors from the Actor Runtime (like NoWriteQuorum).

    We are already working on the V0.50 release. Let us know if there is any feature you would like to be added to the ActorFx project and, as always, comments and feedback are welcome.

    The ActorFx team:

    Claudio Caldato, Principal Program Manager Lead, Microsoft Open Technologies, Inc.

    Brian Grunkemeyer, Senior Software Engineer, Microsoft Open Technologies Hub

    Joe Hoag, Senior Software Engineer, Microsoft Open Technologies Hub

  • Interoperability @ Microsoft

    New Tutorial: Using Apache ZooKeeper on Windows Azure to Manage Solr on Linux Virtual Machines


    Here at Microsoft Open Technologies, Inc., we’ve been working with the top open source DevOps, application and data tools to make popular open source packages easy to deploy and manage on Windows Azure. This work gives developers the ability to take combine powerful open source technologies in new and unusual ways in the cloud to build new applications and solve old problems.

    As a showcase of these possibilities, we’ve built a search engine infrastructure using Apache Solr that is managed by an external implementation of Apache ZooKeeper to ensure scalability with reliability, and consistent search results for every search, regardless of which search servers may be accessible at any time. You can find all the details in this tutorial and once you’ve completed the tutorial you will have multiple Solr instances (called SolrCores) synchronized across more than one server, with synchronization managed by ZooKeeper. 

    By default, Solr has an internal, customized version of ZooKeeper running to synchronize SolrCloud shards on the same sever, but for our ZooKeeper example, we’re show you multiple SolrCores distributed across servers.  That means that multiple cores at multiple IP addresses are made to look like one server. 

    Here’s what the Solr dashboard will show when you’ve competed this tutorial:


    The tutorial configures one ZooKeeper instance and two Solr VMs as the minimum to test our configuration, but you could scale up much more than that.  With ZooKeeper managing Solr, as long as at least one SolrCloud instance is accessible anywhere that ZooKeeper is keeping things in Sync, you will still have ability to index documents and run queries.

    Try it out yourself, and let us know what you think!


  • Interoperability @ Microsoft

    Entity Framework V6 (EF6) Beta 1 from Microsoft Includes Latest & Greatest Open Source Contributions


    Microsoft Corp. has just announced the Beta 1 release of Entity Framework 6 (EF6).  EF6 combines the latest and greatest open source community contributions with key features and tooling that you were asking for.  Here’s the official announcement with a full list of new features.  

    As you might recall, last summer Microsoft Open Technologies, Inc. (MS Open Tech) announced that the Entity Framework (EF) was now open source.  Since then several iterations have been released, and many new features and capabilities have been added from the development team at the Microsoft Open Tech Hub as well as some great contributions from the software developer community.  Here are some highlights from the 21 community pull requests that we accepted:

    · Custom Migrations Operations were enabled by a contribution from iceclow and this blog post provides an example of using this new feature.

    · Pluggable Pluralization & Singularization Service was contributed by UnaiZorrilla.

    · Significantly improved warm up time (view generation) – especially for large models – via a contribution from AlirezaHaghshenas.

    This Get It page has all the information on installing the prerelease and current runtime packages in Visual Studio 2012.

    Don’t know your Model First from your Code First or Database First?  Here’s a great intro to EF and EF concepts.

    The team is now putting the finishing touches on the EF6 release.  Early adopters can test drive the latest Beta features in the signed nightly build. And don’t forget to have a look at the latest Feature Specifications and Design Meeting Notes.  And follow the MS Open Tech  development team on Twitter and like them on Facebook to keep in the loop on the latest developments from the team and the community. 

    Let the MS Open Tech hub team know your experiences with EF6 by start up a discussion on CodePlex for feedback.   You can also post questions and find answers on StackOverflow by using the entity-framework tag.

  • Interoperability @ Microsoft

    Sharing proposals for negotiation and flow control for HTTP/2.0 at IETF 85



    Gabriel Montenegro
    Principal Software Development Engineer, Microsoft Corporation

    Brian Raymor
    Senior Program Manager, Microsoft Open Technologies, Inc.

    Rob Trace
    Senior Program Manager Lead, Microsoft Corporation


    We just returned from the IETF 85 meeting in Atlanta, where the HTTPbis working group held face to face meetings to begin work on HTTP/2.0. As outlined in our previous IETF 84 report, there are seven key technical areas where consensus has not yet emerged or the initial draft did not specify clear behavior for an interoperable implementation. The IETF 85 meeting focused on three of these areas:

    Discussion on server push was deferred until more data is available.


    As noted in the HTTPbis charter, the working group needs to explicitly consider:

    A negotiation mechanism that is capable of not only choosing between HTTP/1.x and HTTP/2.x, but also for bindings of HTTP URLs to other transports (for example).

    To move the discussion forward, Microsoft presented Upgrade-based Negotiation for HTTP/2.0 at the HTTPbis meeting. This presentation is based on our draft proposal which allows HTTP/2.0 to be negotiated either in the clear or over TLS. Further details on its design and MS Open Tech related HTML5 Labs prototype are available in More HTTP/2.0 Prototyping: a Suggested Approach to the Protocol Upgrade.

    The working group consensus was “to pursue this path” and gather more data on its success in real world deployments when the connection is not secure. Drafts for alternatives that enhance or bypass the Upgrade approach were also solicited.

    Flow Control

    There has been limited discussion in the HTTPbis working group on flow control. Microsoft presented Flow Control Principles for HTTP 2.0 to build consensus around the rules and guidelines for future Flow Control prototypes and experimentation. Based on the response to the presentation, Mark Nottingham, the HTTPbis chair, requested a draft proposal to be submitted which incorporated suggestions from other participants. Microsoft submitted the first version of HTTP 2.0 Principles for Flow Control with contributions from Ericsson. Further versions with additional contributors are expected.


    We were very pleased with the progress of the discussions as reflected in the audio and the draft meeting minutes.

    As Lao Tzu wrote “A journey of a thousand miles begins with a single step”. IETF 85 was the first step towards the proposed completion date of November 2014. Next steps are a potential interim face to face meeting in January or February 2013 and then IETF 86 in March 2014. We’re looking forward to contributing and participating in these sessions.

    Gabriel Montenegro, Brian Raymor, and Rob Trace

  • Interoperability @ Microsoft

    Great video - MongoDB Data Analysis with Jaspersoft on Windows Azure


    Jaspersoft is an open source Java-based Business Intelligence suite that has experience in the cloud – to date, they have over 500 customers running Cloud solutions. Jaspersoft has put together this great video of the JasperReports server visualizing a million rows of GitHub archive data to show how Windows Azure, NoSQL, and open source Java BI solutions can work together.

    This video shows Jaspersoft accessing MongoDB via their native connector on Windows Azure. The Jaspersoft native connector provides near real-time connectivity, providing great performance for even complex visualizations, as you’ll see in this video:



    Jaspersoft runs on both Linux and Windows, meaning it can also run on either the Windows or Linux platform on Windows Azure as well. Jaspersoft also has native connectors for several other data sources, including Microsoft SQL Server as well as a variety of other relational data platforms and formats, and Hadoop. Because Jaspersoft is written in Java, it can be a key part of any solution that you create using our other Windows Azure – enabled Java Tools as well.

    Do you use Jaspersoft on Windows Azure, or have a Java solution running on Windows Azure that you’d like to share? Let us know in the comments and maybe we’ll highlight your solution in a future post!

  • Interoperability @ Microsoft

    Site Ready WebSockets


    Today the Internet Explorer blog has a post on site ready Web Sockets, which talks about how WebSockets technology has made significant progress over the last nine months and how the Web gets richer and developers are more creative when sites and services can communicate and send notifications in real-time.

    As Brian Raymor, Microsoft's Program Manager for WebSockets notes in the blog, the standards around WebSockets have converged substantially, to the point that developers and consumers can now take advantage of them across different implementations, including IE10 in Windows 8.

    You can read the full post here.

  • Interoperability @ Microsoft

    MIX Session Announcement: “Hot from the Labs: HTML5 WebSockets”



    Another year, another 72-hour conversation.  MIX is taking place in Las Vegas April 12-15.  If you are not familiar with MIX, it is “…a gathering of developers, designers, UX experts and business professionals creating the most innovative and profitable consumer sites on the web. Sessions range from technical, code-based topics to expert advice on content strategy, usability and design. Explore the future of the standards-based web “.  Check out all the details at http://live.visitmix.com.

    Yesterday Microsoft announced a new set of MIX sessions including my session titled “Hot from the Labs: HTML5 WebSockets”.  WebSockets is an emerging specification being standardized by W3C and IETF that will enable web browsers as well as client applications to open a bi-directional, full-duplex communication channel with a remote host.  The application of this technology is endless as there are many benefits over traditional methods including the “long polling” approach that many applications and services use today.

    This session will take place on Tuesday April 12 at 11:30am. My colleague Paul Batum and I will walk you through the implementation details and source code needed to play with the HTML5 Labs Web Sockets prototype and will share our firsthand experience in working with the new standard.

    Hope to see you there!

    Craig Kitterman
    Sr. Technical Ambassador

  • Interoperability @ Microsoft

    A sneak peek at four new Nagios and Zabbix plugins for Windows Azure


    Busy times at MS Open Tech! Today we’d like to share with the Azure community a sneak peek at our work on four new plugins for Nagios and Zabbix. It’s early days, but we care about your feedback and love working in the open, so effective today you can take a look at our github repo and see what we are working on to make monitoring on Azure easy and immediate for users of Nagios and Zabbix.

    What you can play with today is:

    • A plugin for Windows Azure Storage, that will allow you to monitor ingress, egress, requests, success ratio, availability, latency, and more
    • A plugin for Windows Azure SQL Databases, that will allow you to monitor ingress, egress, requests, success ratio, availability, latency, etc
    • A plugin for Windows Azure Active directory, that will allow you to monitor changes in user and group information (userdelta, groupdelta)
    • A plugin for Windows Azure Platform-as-a-Service (PaaS)  Worker Roles, that will allow you to monitor cpu, memory, asp.net stats, web service stats, and other compute stats

    Note that all compute plugins can be also used to monitor Windows Azure Infrastructure-as-a-Service (IaaS) Virtual Machines

    The steps for installing and running the plugins are documented in this ReadMe.

    Nagios and Zabbix have established themselves as popular choices for lightweight enterprise-class IT and infrastructure monitoring and alerting. The vibrant open source community built around Nagios has contributed hundreds of plugins (most of which are also compatible  with Zabbix) to enable  developers, IT professionals and DevOps pros to monitor a variety of entities, from servers to databases to online services. We love to help our customers that know and use those tools, and we are committed to supporting monitoring on Azure using open source technologies.

    This is a work in progress, and we’d love to hear from users to make our implementation of these popular tools the best it can be. The Plugins are available on our github repo, and we welcome your feedback and contributions. Send us a pull request if you’d like to contribute to these projects, or leave a comment/email if you have some feedback for us. See you on github!

  • Interoperability @ Microsoft

    Redis on Windows – new version and NuGet Packages


    Continuing our support for Redis on Windows, Microsoft Open Technologies, Inc. has just released the latest version (2.6.12). It has been tested and validated by our test team using the same process we used in the past to ensure stability and reliability.

    We’ve also released Redis-32 and Redis-64 NuGet packages to make it easier to install for developers that don’t need access to the source code.

    We are also working on adding support for the Web Platform Installer (WebPI) so stay tuned for more news soon!

  • Interoperability @ Microsoft

    Microsoft at DrupalCon Munich next week


    Microsoft at DrupalCon is becoming a tradition. After having partnered closely with the Drupal community to make Drupal available on Windows, Microsoft teams are continuing this engagement and are eager to meet Drupal developers in Munich next week.

    If you are going to the event, don’t miss the various panels and sessions Microsoft attendees will participate:

    And of course, you should stop by the booth to say hi!

    If you’re not in Germany and can’t attend DrupalCon, we encourage you to follow @Gracefr and @Brian_Swan on Twitter. They’ll provide insights on the cool things happening there. Don’t miss Brian’s blog that offers great technical information on Drupal on Windows Azure and other related topics: a must read!

  • Interoperability @ Microsoft

    W3Conf: Get up to Speed on the Modern Open Web Platform


    Are you a Web developer, designer or just interested in the space? Well, if you are, you really don’t want to miss W3Conf.

    W3Conf is the W3C's first ever 2-day conference for developers and designers, and is uniquely focused on cutting edge technologies that work today across browsers.

    It is being held in Redmond, Washington November 15-16 2011 and it’s packed with top-notch presentations by leading experts in the Web industry on HTML5, CSS3, graphics, accessibility, multimedia, APIs and more.

    I’m participating in the “Browsers and Standards: Where the Rubber Hits the Road” panel discussion, along with Tantek Çelik from Mozilla, Google’s Chris Wilson and Divya Manian from Opera.

    Microsoft is proud to be the host sponsor of the event, joined by AT&T, Adobe, and Nokia.

    There are several ways to experience this conference: you can register to attend in person; videos of the presentations (with English captioning) will be streamed live over the Web; and recordings will be archived and made freely available for future reference. Note that the Early Bird registration conference and hotel discount expires on October 31. 

    You can find all the details on the schedule, speakers, and the technologies themselves on the conference web site, which demonstrates the features enabled in modern browsers and authoring tools to make attractive, interactive, and accessible websites using emerging standards from W3C and other bodies. In other words, the site itself “eats the open web dog food.”

    Along with my colleagues on the Interoperability Team, I believe this will be a great event, and encourage you to attend virtually or in person.

    I look forward to seeing you there!

    Paul Cotton

    Co-Chair: HTML Working Group

  • Interoperability @ Microsoft

    Now Available through Microsoft’s Web Platform Installer: Azul Zulu OpenJDK Package for Windows


    We have great news for Java developers planning to deploy the latest Azul Zulu OpenJDK v1.7 package on 64 bit Windows Server machines. Now you can automate the process using the Microsoft Web Platform Installer (WebPI).

    This new offering is the result of our partnership with Azul, which has produced Zulu, a version of the Azul OpenJDK built for the Windows Azure Platform. In October we also integrated Zulu into our Windows Azure Plugin for Eclipse with Java. Today’s announcement continues our plan of making Java support on Windows Azure as flexible and simple as possible.

    If you’re not familiar with the Web PI, then your SysAdmin has probably been holding out on you. It’s a free and extremely useful tool that automates the download and installation of products and applications designed for the Microsoft Web Platform as well as most popular free web applications via its built-in Windows Web Application Gallery.

    The Zulu Web PI Application Gallery entry downloads the latest Zulu distribution from Azul Systems, The process is simplified, as WebPI can unzip it, automatically set your JAVA_HOME to reference Zulu, and add Zulu references to your PATH environment variable to set Zulu as the default JVM on that machine. 

    Windows Server installation

    For now, we recommend - for Windows Server only (not Eclipse clients) - using the Web PI installer to install. This is due to an Eclipse bug we’ve discovered during testing, which we are working to resolve.

    Workaround for Eclipse Clients

    If you would like to install Zulu it on your client computer and you use Eclipse as your Java IDE, we have discovered at least one issue in Eclipse that will result in intermittent hangs if Zulu is used as Eclipse’s JVM. If you are keen to try it out with Eclipse anyway, then the known workaround is to start Eclipse with additional command line parameters: -vmargs -XX:MaxPermSize=256m. If you encounter other issues, then let Azul and/or us know. If you have an Eclipse account and this issue is affecting you, please vote up the importance of bug 426422.

    Step-by-Step Installation on Windows Server

    Log on to your 64 Bit Windows Server as a user with administrative privileges, open a browser and navigate to http://www.microsoft.com/web/downloads/platform.aspx

    Next, click on the big green “Free Download” button to install the Web Platform Installer:


    The Installer will start as soon as it’s downloaded. The first screen you see is the “Spotlight” Screen, listing the most popular and/or newest packages featured in the Web PI Installer:


    You will need to click to the “Applications” tab to find theZulu Installer in the Web Application Gallery.


    NOTE: Entries are ordered by number of downloads, not alphabetically. If you do not see it listed at the top, it may be easiest to search for “Azul Zulu, OpenJDK v1.7”.


    Click on the Add button, then click install:


    As mentioned earlier, during Installation, the latest Zulu distribution from Azul Systems will automatically download, as well as set your JAVA_HOME to reference Zulu, and then add references to your PATH environment variable to set Zulu as the default JVM on that machine. 

    Once this process is complete, you are ready to deploy Java applications!

    We’re always looking for ways to enhance the developer experience and to make life easier for Java developers on Windows Server and Windows Azure, so please let us know whether you find this to be a useful tool..

    And watch this space for more exciting news coming soon!

  • Interoperability @ Microsoft

    Windows Azure Plugin for Eclipse with Java – September 2012 Preview


    The Windows Azure Plugin for Eclipse with Java (by Microsoft Open Technologies) – September 2012 Preview has been released. This service update includes a number of additional bug fixes since the August 2012 Preview, as well as some feedback-driven usability enhancements in existing features:

    • Support for Windows 8 and Windows 2012 Server as the development OS, resolving issues previously preventing the plugin from working properly on those operating systems
    • Improved support for specifying endpoint port ranges
    • Bug fixes related to file paths containing spaces
    • Role context menu improvements for faster access to role-specific configuration settings
    • Minor refinements in the “Publish to cloud” wizard and a number of additional bug fixes

    You can learn more about the plugin on the Windows Azure Dev Center.

    To learn how to install the plugin, go here.

    Martin Sawicki
    Principal Program Manager
    Microsoft Open Technologies, Inc.
    A subsidiary of Microsoft Corporation

  • Interoperability @ Microsoft

    A new way for iOS and Android users to access corporate resources: The Application Gateway


    clip_image002Every CIO today has mobile VPN access sitting very high on the priority list and knows how mobile connectivity to corporate resources is an important yet complicate matter. In a quest to solve the VPN issue in a simple way, Microsoft Open Technologies, Inc. created AppGateway, an application of VPN access for Android and iOS based on the preview of a Windows Azure Application Gateway service meant to help mobile users be more productive on the go. With this app, developed in collaboration with the Windows Azure Active Directory team, Android and iOS users can experience easy connectivity to web sites behind the corporate firewall, leveraging Windows Azure authentication services.

    For obvious security reasons, connecting to resources that are behind a firewall usually requires a fairly complex infrastructure such as VPN (Virtual Private Network). The AppGateway demo app is designed to make the process simpler yet highly secured. The mobile app connects to a service on Windows Azure that acts as the proxy to an agent that is running inside the network behind the firewall. Using the Windows Azure Authentication service, the proxy can establish a trusted connection to the agent so that the application on the mobile device can browse web sites that would not be normally accessible outside the corporate network.


    The demo app is available on the Apple App Store, GooglePlay and Amazon marketplaces at the following links:

    For more information on the Windows Azure Application Gateway service preview, visit http://appgportal.cloudapp.net/.

    In our best tradition, we also released the source code of the demo app. You can find the Android application code here.

    For detailed instructions and a quick ‘get started; guide is available here.

    We look forward for your feedback, comments and suggestions.

  • Interoperability @ Microsoft

    If you’re working with Java on Windows Azure, this update is for you!


    Martin Sawicki – Principal Program Manager – MS Open Tech
    Brian Benz – Sr. Technical Evangelist – MS Open Tech

    Incorporating developer feedback and keeping pace with Windows Azure’s ongoing evolution, Microsoft Open Technologies, Inc., has released a new update to the Windows Azure Toolkit for Eclipse. This latest version – the May 2013 Preview (or v2.0.0) – includes a number of new improvements we hope will further simplify your Java work in the Windows Azure cloud. This major update accompanies the release of the Windows Azure SDK v2.0.

    Key Enhancements:

    Automatic upload of the JDK and Server to Windows Azure storage (and deployment from there)

    This new option automatically uploads the selected JDK and Web Application Server, when needed, to a selected Windows Azure storage account and deploys these components from that account. This commonly requested feature can greatly enhance the ease and efficiency of deploying the JDK and server components, as well as help with team development scenarios, by avoiding the need to embed these components in the deployment package, or the hassle of manual uploads. Our “Hello World” tutorial walks you through these steps in detail. Here is a screenshot from the updated project creation wizard showing this feature in action:


    Centralized storage account tracking

    You may be wondering how Windows Azure knows which storage accounts to display in the drop-down list. The answer is another new feature – centralized storage account tracking. In order to reference storage accounts more easily across the various features that rely on storage, like caching and, in this case, the JDK or the Web Application server component deployment, you can register existing storage accounts names and endpoints in your current Eclipse workspace under Preferences > Windows Azure > Storage Accounts:


    As usual, you can import the information from your subscription’s publish settings file to provide the storage account discovery magic.

    Here’s an example of the centralized storage account tracking for caching as well. The drop down shows you where you would specify which storage account to store credentials for the cache configuration in a Windows Azure role. This way you no longer have to enter the access key manually.


    Simplified Remote Access setup

    For this release we’ve also streamlined the previous two-step remote access setup into one step. In the “Publish to Cloud” wizard, type in a user name and password to enable remote access, or leave it blank to keep remote access disabled.


    By default, Eclipse will use the sample certificate for encrypting your remote access credentials in the Windows Azure configuration file. If you’d rather use your own certificate, choose the Advanced… link.

    The “all-in-one” Eclipse library for easier Windows Azure API access now updated with the latest (v0.4.2)

    The latest SDK distribution of the Windows Azure Libraries for Java are packaged along with their open-source dependencies as an Eclipse library and referred to as the Package for Windows Azure Libraries for Java (by MS Open Tech). If your Java code needs to take advantage of the Windows Azure API, just add this library to the build path of your Java project (not the Windows Azure project) and all the needed libraries will be automatically referenced and included in your WAR file.


    Additional Enhancements

    We’ve also fixed sticky sessions on Windows Server 2012 (previously limited to Windows 2008). And we’ve made some package publish performance improvements that can make the upload portion of the deployment process up to twice as fast as in previous releases, especially helpful if you’re not using the “deploy from download” options, but still embedding large components in the deployment package itself. We’ve also made a number of bug fixes, including some reported issues related to deploying Tomcat and Jetty on Windows 2012 from a cloud download.

    Getting the Plugin

    Here are the complete instructions to download and install the Windows Azure Plugin for Eclipse with Java, as well as updated documentation.

    As always, let us know how the latest release works for you and how you like the new features! To send feedback or questions, just use MSDN Forums or Stack Overflow.

  • Interoperability @ Microsoft

    Document Interoperability Initiative, document-format implementation notes, and more…


    Hi, my name is Jas Sandhu and I am an evangelist on the Microsoft Interoperability Strategy Team. I manage our overall Document Interoperability Initiative community outreach, working with Doug Mahugh and many others in the Office team.


    On Friday we published Office 2007 SP2 implementation notes for the ECMA-376 1st Edition (aka Open XML). 

    I invite you to read Doug's post to get more details

    This new drop follows the publication of the ODF 1.1 implementation notes in December.
    The implementation notes site is http://www.documentinteropinitiative.org/.

    DII Web site - www.documentinteropinitiative.org

    This is also an opportunity for me to shed some light on the goals of the Document Interoperability Initiative, which  -from the website - are:

    DII Goals

    We will use this blog to report what's going on regarding these goals and to report more broadly on document format interoperability.

    Progress is being made on working together as a community and we are keen to foster such collaborative work. Implementer notes are incredibly useful, but to understand interoperability issues, sometimes it requires stepping back and discussing different approaches with others who save similar goals.

    This is what we're doing with the DII workshops that we've been running around the world since last year. The most recent DII workshop took place in Brussels. Some of the organizations that participated include Fraunhofer, Dialogika, SourceSense, Wygwam, RealDolmen, Fedict, IRIS, Getronics, Ovum and Microsoft. You can find more here on the DII website and also on the blog of the some of the participants: Martin BalliauwJulien Chable. Here's the Network World story about the event. 
    We also produced a 5 minute recap that will give you a good overview of what happened:


  • Interoperability @ Microsoft

    MS Open Tech working with the ANGLE Project community to increase apps’ portability to Windows Devices


    Microsoft Open Technologies is working with the ANGLE Project community to enable ANGLE in Windows Phone 8 and Windows Store apps. This will allow developers to reuse their existing OpenGL ES 2.0 code, and to apply their current skills to building apps and games for Windows devices.

    ANGLE Project is an open source project which goal is to allow Windows users to run OpenGL ES 2.0 content seamlessly by translating OpenGL ES 2.0 API calls to DirectX 9 or DirectX 11.

    You can read more on our new blog here: http://aka.ms/msopentechcontributestoangle

  • Interoperability @ Microsoft

    Azure Toolkit for Eclipse with Java Update: Zulu, Java SDK, Bug Fixes


    Microsoft Open Technologies, Inc. (MS Open Tech), has released a new update to the Azure Toolkit for Eclipse with Java.  Check out the Details on msopentech.com.

  • Interoperability @ Microsoft

    WS-Management adopted as ISO/IEC international standard


    DMTF (Distributed Management Task Force) announced today that the DMTF Web Services Management standard (WS-Man) version 1.1 has now been adopted by ISO (International Organization for Standardization) and IEC (International Electrotechnical Commission) as an international standard, ISO/IEC 17963:2013. This is a great milestone on the industry’s journey toward broad adoption of interoperable, royalty-free, standards-based solutions for management of systems, applications, and devices.

    WS-Man is designed to address the cost and complexity of IT management by providing a common way for systems to access and exchange management information across the entire IT infrastructure. It is used as a network access protocol by many CIM (Common Information Model) based management solutions, including the DMTF’s CIM based DASH (Desktop and Mobile Architecture for Server Hardware) and SMASH(Systems Management Architecture for Server Hardware) solutions, as well as the DMTF’s Virtualization Management (VMAN) standards which we use to manage Windows Hyper-V. WS-Man is also the primary protocol for management of Windows Server 2012, and has been supported by all versions of Windows since XP (both client and server) through Windows Remote Management (WinRM). For more information about WS-Man and how it is supported in Windows Server, System Center, and PowerShell, see Jeffrey Snover’s blog post on the Windows Server blog.

    Microsoft has a longstanding commitment to interoperability and standards in the management arena. In the early 1990s, Microsoft was one of the founding members of DMTF, and worked closely with industry partners on the development of CIM, a flexible standard that has been adopted for a wide variety of uses across computer systems, operating systems, networks, and storage devices. WS-Man and CIM are a powerful combination, with a rapidly growing ecosystem, and ISO/IEC adoption of WS-Man as an international standard will enable further adoption. Microsoft worked with the industry to standardize WS-Man CIM mappings for common management scenarios.

    Microsoft also developed OMI (Open Management Infrastructure), a high-performance small-footprint implementation of a CIM+WS-Man server, released last year by The Open Group as an open-source project under the Apache 2 License. Written in portable C, OMI provides an enterprise-grade CIM and WS-Man implementation so that hardware and software vendors can focus their investments on providers and schemas within their domain expertise. OMI opens up management of hardware devices from any vendor in a datacenter using a “Datacenter Abstraction Layer” or DAL – enabling management of devices and servers that implement standard protocols and schemas from standards compliant tools like PowerShell.

    Through those and related initiatives, we are continuing to help the industry deliver on the promise of standards-based solutions that address the cost and complexity of systems management. For example, DMTF also announced today that the DMTF Platform Management standard, which provides a common architecture for communication between management subsystem components, was adopted by ANSI (American National Standards Institute) and INCITS (International Committee for Information Technology Standards) as a US national standard, INCITS 495-2012 Platform Management. As DMTF VP of Technology Hemal Shah noted in today's announcement, “Adoption and recognition of the Platform Management and Web Services Management standards by these organizations provide additional credibility, while increasing the accessibility of these solutions to IT managers.”

    These developments are further evidence of the global interest in interoperable, royalty-free, standards-based solutions to management of systems, applications, and devices. Congratulations to everyone who has worked to help achieve these important milestones!

    Colleen Evans
    Principal Program Manager
    Microsoft Open Technologies, Inc.

    Doug Mahugh
    Lead Technical Evangelist
    Microsoft Open Technologies, Inc.

  • Interoperability @ Microsoft

    February 22 is International Open Data Day – Celebrate with our Tutorial or create your own!


    Open Data Day Events around the world!

    Here at Microsoft Open Technologies, Inc. we have a lot of fun working with Open Source Software every day. For those who may be interested in sharing the experience, Microsoft is sponsoring several International Open Data Day events over the next few days, notably CodeAcross 2014 in multiple venues worldwide. Have a look here for details on CodeAcross events sponsored by Code for America. In Canada, Make Web Not War is organizing several events in Toronto, and out West, There is also an Open Data Summit in Vancouver. You can also find Open Data Day Hackathons and other events near you by accessing the Open Data Day events map.

    An Open Tutorial

    To contribute to Open Data Day I’ve put together a tutorial to show you how to enable a solution on Windows Azure that combines three open themes – Open Government, Open Data, and Open Source Software (OSS). The result in this case, is a reference map illustrating the locations of more FAA-licensed aircraft dealers across the United States. For the Open Government piece, I have selected open domain data provided by the US Federal Aviation Administration - the FAA Aircraft Registry. I have chosen to use the open source MongoDB to store data. I use the Open Data Protocol (OData) via Windows Communication Foundation (WCF) in Windows Azure to provide easy connectivity to the MongoDB data, and I use Microsoft PowerBI for Office365 to easily plot and visualize the data on a map.

    Here’s a screen shot of the finished product:


    Happy Open Data Day! Let us know how you plan to celebrate the occasion in your corner of the world.

  • Interoperability @ Microsoft

    Come see Microsoft Open Technologies at ApacheCon next week!



    Microsoft Open Technologies, Inc will be at ApacheCon in Portland next week and we hope to see you there.  We’re sponsoring the Hackathon on Monday, and come see my session on options for implementing CouchDB on Windows Azure on Thursday.  Other than that we’ll be around all week, so if you see one of us stop and say hi!

    Brian Benz
    Senior Technical Evangelist
    Microsoft Open Technologies, Inc.

  • Interoperability @ Microsoft

    ActorFx Updates – New features, improved performance and a new plugin to ease deployment to Windows Azure


    From the ActorFx team:

    Claudio Caldato, Principal Program Manager Lead, Microsoft Open Technologies, Inc.
    Brian Grunkemeyer, Senior Software Engineer, Microsoft Open Technologies Hub

    Today Microsoft Open Technologies, Inc, would like to share the news of a new version of ActorFx, V0.7.

    ActorFx provides an open source, non-prescriptive, language-independent model of dynamic distributed objects for building highly available objects, including data structure objects, via a standardized framework and infrastructure. ActorFx is based on the idea of the mathematical Actor Model for cloud computing.

    With this release, developers now have a more stable code base (based on the Windows Azure SDK 2.0, a new prerequisite) onto which we will build new features that will make ActorFX a more solid framework for building highly distributed applications.

    The new release is based on an improved version of the Actor Runtime’s replication support, and contains improvements in several areas:

    • A new AddOnce method for our List actor.
    • Embraced async methods more fully.  Look at GetActorProxyAsync for a good example.
    • Delay-loaded our JavaScript and IronPython language packs.

    We also improved reliability and fixed some issues within the networking layer:

    • Continuations on IActorPromises work better.
    • Significantly better error handling for network problems, including adjusted timeouts & retry logic.
    • Better error handling on the server side for a number of scenarios.

    On the deployment side, we now have a way to deploy an ActorFX app on Windows Azure using a new plug-in to streamline the deployment process. The instructions are here.

    Note that the 0.7 release also requires that the Windows Azure SDK 2.0 be installed before you download the code from the CodePlex site.

    Be sure to subscribe to the CodePlex feed and our Blog to be kept current on the latest developments.

    If you are using ActorFx in implementations, we’d like to hear more about how you’re using it, how it’s useful to you and how it can be improved. We are looking forward to your comments/suggestions, and stay tuned for even more cool stuff coming in our next release!

  • Interoperability @ Microsoft

    PHP developers get more choices with Windows Azure, Bing, and SQL Azure


    web2.0 Today I presented a session at the Web 2.0 Expo in New York called Cloud Computing with Windows Azure Using Your Preferred Technology.
    During my talk, I stepped the audience through a series of demonstrations in which non-Microsoft tools and programming technologies, such as PHP or Java, were used natively to create cloud computing solutions with the Windows Azure platform. I also had the exciting opportunity to debut new open source projects:


    If you want more detail about these projects, just click the links above. There you’ll find additional information, including videos.

    I was very fortunate to have Tim Wise from Dominos Pizza as a guest speaker in my session; he showed how Dominos dealt with the problem of handling peak website loads (like on SuperBowl Sunday) by using Windows Azure for scale-out. What makes the Dominos demo very interesting is that the Dominos web-application is a Java Application running on TomCat. A true testament to the interoperability of the Windows Azure Platform!
    Read this blog post for more details: “Domino’s Demonstrates Tomcat Site on Windows Azure

    I received some very interesting questions and feedback about these projects from those who attended my talk, so I want to extend a big thanks to everyone for their input. It’s been really nice to be at Web 2.0 and connect with real-world developers building next generation websites and applications.

    --Sumit Chawla, Technical PM/Architect, Microsoft Interoperability Team

  • Interoperability @ Microsoft

    Start Testing With First Implementation of IETF HTTP/2.0 Draft from MS Open Tech


    Further to our recent Blog on the first HTTP/2.0 implementable draft from the IETF, Microsoft Open Technologies, Inc. (MS Open Tech) is releasing an HTTP/2.0 server prototype based on the implementable draft. This is the first in a series of experimental implementations of HTTP/2.0 that will enhance the performance of the web.

    This implementation of HTTP/2.0 is based on the recent version 4 implementable draft and has been created on a new Microsoft open source C#-based web stack - Katana server. The prototype supports header compression (draft-ietf-httpbis-header-compression-01), HTTP/2.0 features such as stream multiplexing, and negotiation mechanisms such as ALPN and HTTP upgrade, as well as the ability to establish direct HTTP/2.0 connections. It does not yet implement server push or flow control. Apart from the server component, this prototype also includes a test command line client that makes HTTP/2.0 protocol requests to the server.

    To enable the community to try out this implementation of HTTP/2.0, we have also published endpoints (note these require HTTP/2.0 client included in source):

    http://http2katanatest.cloudapp.net:8080/ - HTTP endpoint.
    https://http2katanatest.cloudapp.net:8443/ - HTTPS endpoint using ALPN.

    These endpoints will only work with an HTTP/2.0-enabled browser or client, and host static pages that represent common websites, based on examples from the Internet Explorer Test Drive site.

    As communicated in our previous Blog, participants in the IETF HTTP working group have committed to a wide range of implementations. MS Open Tech is actively engaged and prototyping further HTTP/2.0 implementations based on the Katana project. Early interoperability testing is planned for the third interim face-to-face IETF meeting in August. We encourage you to start trying out the first implementation of HTTP/2.0 from MS Open Tech today – feel free to test using the endpoints listed above or download the code and try out your static websites on the Katana server.

    Parashuram Narasimhan

    Senior Program Manager, Microsoft Open Technologies, Inc.

  • Interoperability @ Microsoft

    The Windows Azure Toolkit for Eclipse, July 2013 Preview is ready!


    Microsoft Open Technologies, Inc., has released a new update to the Windows Azure Toolkit for Eclipse. The July 2013 Preview includes a number of enhancements that make it easier for Eclipse developers to work with Windows Azure.

    July 2013 Enhancements

    For the July release, we’ve added an auto option for the Windows Azure Storage account selection in the JDK and server deployment configurations. This enables you to postpone the selection of a specific Windows Azure Storage account until you publish the deployment using the Publish to Windows Azure dialog. The Windows Azure Storage account you select in the Publish Wizard is used when you’re ready to publish. This is an enhancement to the automatic upload of a chosen JDK and App Server to Windows Azure storage that was enabled in the May 2013 release.  See the updated Creating a Hello World Application for Windows Azure in Eclipse tutorial for more details.

    Starting with this release, it’s also possible to deploy a complete cloud application to a new Windows Azure storage account within Eclipse. A key part of this capability is the addition of the New button in the Add Storage Account dialog, which creates a new Windows Azure Storage account without having to leave the Eclipse UI. More information here.

    We’ve also added new features for larger deployments. One often requested feature is the ability to specify a local storage resource as the deployment destination for your JDK and application server, in case your deployment may be too large to be contained in the default approot folder, as is sometimes the case with larger JBoss and JDK v1.7 deployments. More information on large deployments can be found here.  Another handy new feature for large deployments is our support for the new high-memory A6 and A7 Windows Azure Virtual Machines

    We also added new options for Service Endpoints. With the users of Windows Azure by 21Vianet, China in mind in particular, there is also now a way to select the service endpoints of the Windows Azure cloud you target. Service endpoint options for this release are the global Windows Azure platform, the Windows Azure by 21Vianet, China, or a private Windows Azure platform. For more information, see Windows Azure Service Endpoints. Here’s how the Endpoint selection looks in the new release:


    There is also an update to the Windows Azure Libraries for Java Package, based on version 0.4.4 of the Microsoft Windows Azure Client API. This package contains the latest SDK distribution and their open-source dependencies as an Eclipse library. Add this library to the build path of your project (not the Windows Azure project) and all relevant Windows Azure API libraries will be automatically referenced and included in your WAR file.

    Getting the Plugin

    Here are the complete instructions to download and install the Windows Azure Plugin for Eclipse with Java, as well as updated documentation.

    As always, let us know how the latest release works for you and how you like the new features! To send feedback or questions, just use MSDN Forums or Stack Overflow.

  • Interoperability @ Microsoft

    Apache Qpid Proton AMQP libraries now available for Windows.


    Back in November Microsoft Open Technologies, Inc. announced that Advanced Message Queuing Protocol (AMQP) 1.0 was approved as an OASIS Standard.  AMQP 1.0 enables interoperability using wire-level messaging between compliant clients and brokers. Applications can achieve full-fidelity message exchange between components built in multiple languages and frameworks and running on different operating systems.  

    Today we’re happy to share the news that the Apache Qpid Proton C AMQP library has been updated to support Windows. Proton C also includes bindings for several interpreted languages including PHP, Python, Ruby and Perl, all of which can now be used on Windows.

    UPDATE 04/18/2013 - The following paragraph was in error.  The Windows Proton libraries do not work with the latest preview release of service bus due to lack of SSL support. We apologize for the error. 

    These Proton clients can be used in conjunction with Windows Azure Service Bus, which introduced support for AMQP 1.0 as a preview feature last October, with GA planned later this year. Applications can use AMQP to access the queuing and publish/subscribe brokered messaging features.  Service Bus is a multi-protocol service, so in addition to AMQP, applications can also use REST/HTTP to access Service Bus from any platform.

    For more information, check out the official OASIS site, this developer’s guide, and downloads(the 0.4 version supports Windows) for Qpid Proton. MS Open Tech was one of many contributors to this project, and we appreciate all the work that the community is doing to help developers take full advantage of AMQP across many different languages, frameworks, and platforms.

  • Interoperability @ Microsoft

    Pointer Events Progress: Mozilla and Blink Communities Reach a Significant Engineering Milestone


    As stated in the Blink 2014 goals, the Blink team considers Pointer Events as one of their priorities to improve the mobile Web platform experience. And it has recently shown evidence of their commitment to Pointer Events by checking in touch-action functionality into the code base and making it available through an experimental flag.

    Likewise, the Mozilla Firefox team has approved a patch submitted by Nick Lebedev from Akvelon that implements the same functionality. This is the result of months of great work in the OSS community where multiple engineers from different companies contributed their design ideas and engineering insights.

    Learn more on Pointer Events progress reading our latest blog post on our new Web site : http://aka.ms/pointereventsinfirefox

  • Interoperability @ Microsoft

    Microsoft + Joomla! at J and Beyond 2011


    imageIt is not that often that we have the chance to visit a medieval abbey in Europe…but that is exactly what we are doing this May: we are sponsoring and attending J and Beyond, a major Joomla! event that will take place on the Rolduc Abbey in the Netherlands on May 6-8 2011.  Besides being thrilled about the event venue we are also excited and looking forward to the opportunity to interact, engage and listen to the Joomla! community. At Microsoft we’ve put a lot of effort in making Joomla! work really well on our platform and created an integrated development and deployment experience through WebMatrix to make it even simpler for developers. 

    We’ve got a couple of fun sessions planned and we’re looking forward to continuing the conversation and engagements with the Joomla! community at our booth as well:

    • “IE6 RIP - send flowers” with Jas Sandhu (@jassand). Join us in moving users to a modern browser and be free of Internet Explorer 6! Jas will talk about what to look for in a web browser today. The features and standards that are presently available and updates that are close in HTML5. We’ll be covering the work we are doing with Internet Explorer moving forward including a discussion of what is here today with IE9 and our IE10 Platform Previews and what will be coming in our HTML5 labs to help create a better and more interoperable web.
    • “Microsoft and the Joomla! Community” with Grace Francisco (@gracefr, the liason for the Joomla community within Microsoft). Grace will talk about your role working with open source communities and some of the activities Microsoft is involved in to make the Joomla experience great on our platform.

    We want to give a shout out to our friend Sudhi Seschala from Hooduku who is delivering a session on “Joomla 1.6 support multiple databases” covering the work he’s been doing to give the Joomla community more db options including the integration work that he’s been doing for Joomla 1.6 and SQL server and with Joomla 1.6 and SQL Azure.

    Looking forward to being at J and Beyond soon. Hope to see you there,

    Jas Sandhu, Technical Evangelist, @jassand

    Grace Francisco, Sr. Program Manager, @gracefr

  • Interoperability @ Microsoft

    OData v4.0 approved as Committee Specification by the OASIS Open Data Protocol Technical Committee


    Microsoft Open Technologies, Inc is pleased to announce the approval and publication of OData Version 4.0 Committee Specification (CS) by the members of the OASIS Open Data Protocol (OData) Technical Committee. As we reported back in May, this brings OData 4.0 one step closer to becoming an OASIS Standard.

    The Open Data Protocol (OData) uses REST-based data services to access and manipulate resources defined according to an Entity Data Model (EDM).

    The Committee Specification is published in three parts; Part 1: Protocol defines the core semantics and facilities of the protocol. Part 2: URL Conventions defines a set of rules for constructing URLs to identify the data and metadata exposed by an OData service as well as a set of reserved URL query string operators. Part 3: Common Schema Definition Language (CSDL) defines an XML representation of the entity data model exposed by an OData service.

    The CS also includes schemas, ABNF components, Vocabulary Components and the OData Metadata Service Entity Model.

    You can also download a zip file of the complete package of each specification and related files here.

    Join the OData Community

    Here are some resources for those of you interested in using or implementing the OData protocol or contributing to the OData standard:

    · Visit OData.org for information, content, videos, and documentation and to learn more about OData and the ecosystem of open data producer and consumer services.

    · Join the OData.org mailing list.

    · Check out the #OData discussion on twitter.

    · Join the OASIS OData technical committee (OData TC) and contribute to the standard.

    · Send comments on OData version 4.0 to the OASIS OData Technical Committee

    Our congratulations to the OASIS OData Technical Committee on achieving this milestone! As always, we’re looking forward to continued collaboration with the community to develop OData into a formal standard through OASIS.

  • Interoperability @ Microsoft

    MS Open Tech, Linux and Open Source at LinuxFest 2013


    I was fortunate to be invited to speak on behalf of MS Open Tech at last weekend’s LinuxFest Northwest in Bellingham, WA. This was a local event with a wide variety of developers and tech enthusiasts who gathered at Bellingham Technical College to participate in a broad spectrum of presentations, demonstrations, and labs.

    My presentation Microsoft, Linux and the Open Source Community was part of the Developing a Community Track at LinuxFest so, given Microsoft Open Technologies, Inc. had just celebrated our One Year Anniversary, I took this opportunity to demonstrate some of the MS Open Tech projects that are enabling the open source community to benefit from new interoperability technology initiatives:

    Linux on Windows Azure – Just prior to LinuxFest, the Azure team announced general availability of Windows Azure Infrastructure-as-a-Service. Windows Azure Infrastructure Services enable you to deploy and run durable VMs in the cloud. As well as Windows Server options, the built-in image gallery of VM templates includes Linux images for Ubuntu, CentOS, and SUSE Linux distributions. During my presentation session, I used Windows Azure Web Sites to create a new cloud-based WordPress site including a MySQL instance.

    VM Depot – Built on the capabilities of Linux on Windows Azure, VM Depot is a cloud-based catalog of more than 200 open source Linux virtual machine images for Windows Azure contributed by the community. Developed by MS Open Tech, on VM Depot the community can build, deploy and share their favorite Linux configurations and other freely downloadable images, create custom open source stacks, and work with others to build new architectures for the cloud that leverage the openness and flexibility of the Windows Azure platform.

    OData – OData is an open data protocol jointly developed by Microsoft, IBM, SAP, Citrix, and other industry partners and currently undergoing standardization via OASIS. We have recently revamped the http://odata.org website and encourage community contributions to develop consumer and producer services using OData as highlighted in the Ecosystem subsection. My demonstration showed how OData can be used by the community to publish and access open government data using the DataLab open source code on GitHub.

    Pointer Events - Pointer events is an emerging standard developed by the W3C to define a single device input model – mouse, pen and touch – across multiple browsers. Microsoft contributed the initial specification and is working to demonstrate cross browser interoperability for Pointer Events. MS Open Tech developed an open source Pointer Events prototype for WebKit on HTML5 Labs and submitted the patch to the WebKit community. We encourage the developer community to learn more about Pointer Events on Web Platform Docs and join the #PointerEvents discussion.

    I would like to thank the LinuxFest organizers for the opportunity to participate. Events like LinuxFest are an ideal way for us to share the work we do at MS Open Tech with the open source community and seek feedback on our efforts. I look forward to the next opportunity.

  • Interoperability @ Microsoft

    ActorFx Applied in Dynamically Distributed Social Media Apps



    From the ActorFx team:

    Brian Grunkemeyer, Senior Software Engineer, Microsoft Open Technologies Hub

    Joe Hoag, Senior Software Engineer, Microsoft Open Technologies Hub


    Today we’d like to talk about yet another ActorFx example that shows the flexibility and tests the scalability of the ActorFx Framework. 

    ActorFx provides an open source, non-prescriptive, language-independent model of dynamic distributed objects for building highly available data structures and other logical entities via a standardized framework and infrastructure. ActorFx is based on the idea of the mathematical Actor Model for cloud computing.


    The example is a social media example called Fakebook that demonstrates a simple way to apply actors to large-scale problems by deconstructing them into small units.  This demo highlights ActorFx’s ability to dramatically simplify cloud computing by showing you that surprisingly few concepts are necessary to build a scalable and interesting application with a relatively simple programming model.  The example is part of the latest build on the ActorFx CodePlex site.


    ActorFx Framework Background

    The ActorFx Framework lets developers easily build objects for the cloud, called actors.  These actors allow developers to send messages, respond to messages, and create other actors.  Our Actor Framework adds in a publish/subscribe mechanism for events as well.  Using these, we have built the start of a Base Class Library for the Cloud, including CloudList<T> and CloudDictionary<TKey, TValue> modelled after .NET collections.  We’ve harnessed the ActorFx Framework’s pub/sub mechanism to build an ObservableCloudList<T> that is useful for data binding collections to UI controls.  These primitives are sufficient to build a useful system we call Fakebook, a sample social media application. 


    Fakebook Design

    Social media apps have many properties that map quite well to actors.  Most data storage is essentially embarrassingly parallel – users have their own profile, their own photos, their own list of friends, etc.  Whenever operations span multiple users, such as making friends or posting news items, this requires calling into other people’s objects or publishing messages to alert them to new information.  All of these map well to the Actor Framework’s concept of actors, including message passing between actors and our publish/subscribe event pattern.

    Let’s decompose a social network into its constituent parts.  At the core, a social network provides a representation of a person’s profile, their friends, their photos, and a newsfeed.  All of this is tied together using a user name as an identifier.  Other features could be added on top of this, such as graph search, a nice timeline view, the ability to play games, or even advertising.  However, those are out of scope for our Fakebook sample, which is demonstrating that the core parts could be built using actors. 

    See Figure 1 for a clear breakdown of the UI into constituent parts.


    Figure 1 - Fakebook UI Design


    The core idea of Fakebook is to model a user as a set of actors.  In our model, a Fakebook user is represented by the following actors:

    ·         A person actor that tracks their name and all basic profile information (like gender, birthday, residence, etc). 

    ·         A friends list, which is a CloudList<String> containing the account name of all friends.

    ·         A photos dictionary, which is a CloudStringDictionary<PictureInfo>, mapping image name to a type representing a picture and its interesting characteristics (such as author, licensing information, etc).

    ·         A set of news posts made by the author, as a CloudList<String>.

    ·         A newsfeed actor that aggregates posts from all of a person’s friend’s news feeds.

    Interaction between actors can be done in one of two ways: actor-to-actor method calls (either via IActorProxy’s Request or Command methods), or via events sent via our publish/subscribe mechanism.  For Fakebook, we use a mix of approaches.  When constructing other actors or adding friends, we use IActorProxy’s Request. 

    The newsfeed actor works entirely based on publish/subscribe events.  The newsfeed actor is subscribed to all of the person’s friends’ news posts.  Similarly, the newsfeed actor is also subscribed to the person’s friends list, so whenever a friend is added or removed (unfriended), the newsfeed actor knows to subscribe or unsubscribe as appropriate.  For interacting with the client, we also use publish/subscribe messages.  The client can data-bind an ObservableCloudList<T> to a UI control like a ListBox.  This allows users to seamlessly push updates from the actor in the cloud to the client-side UI.  See Figure 2 for an example showing how publish/subscribe messages are sent between actors as well as from actors to the client UI.



    Figure 2 - Fakebook Publish/Subscribe messages:  Actor-to-Actor and Actor-to-Client


    We’ve extended support for LINQ queries to allow transforming observable collections from one type to another.  This is very useful for bridging from cloud-based data types (such as account names stored as strings) to rich client-side view model types (such as a FakebookPerson object).  LINQ’s Select can be used to change an ObservableCloudList<String> into an IEnumerable<FakebookPerson>, and we’ve done the engineering work to preserve the event stream of updates as well.  Consider the following code:


        privateObservableCloudList<String> _friends = …;


        // Here, we need an ObservableCloudList<String> converted to an observable sequence

        // that also passes through INotifyCollectionChanged events.  When exploring how to

        // build this, we settled on using a Select LINQ operator for our type.  Due to

        // some problems with C# method binding rules, we had to add an interface

        // to express the right type information.  But, this works.

        var people = _friends.Select(accountName =>

            newFakebookPerson(App.FabricAddress, accountName, App.ConnectThroughGateway));

        Dispatcher.Invoke(() => FriendsListBox.ItemsSource = people);


    By using client-side view model types, a client application’s data binding code can easily access properties such as a person’s first & last names as well as profile picture.  This information is not as easily obtainable via just the user’s account name, so a transformation like this helps keep the level of abstraction high when writing client apps while preserving the dynamic nature of the underlying data. 


    Deploying Code

    Fakebook’s NewsFeed and Person actors were implemented in a curious way.  For our collection actors, we built the application then used a complex, actor-specific deployment directory structure with many supporting files in place to describe the actor.  This has the advantage that our infrastructure knows what a list actor is, in great detail.  However, for Fakebook a more flexible approach was employed.  The NewsFeed and Person actors both define .NET assemblies with a type each that contains a number of actor methods.  But we use our empty actor implementation to deploy these assemblies to each of them.  This makes it easy to update the implementation, and is a bit easier to manage.

    For the Actor Runtime’s infrastructure, we create a service consisting of the empty actor app, called “fabric:/actor/fakebook”.  We then create instances of that service with names like “fabric:/actor/fakebook/People” and “fabric:/actor/fakebook/Newsfeed”.  Using a partitioning scheme, we then create individual IActorStates for individual accounts.  So an account name like “Bob.Smith” is used as a partition key for the People and Newsfeed actors.  Fakebook makes use of similarly partitioned list and dictionary actors as well.



    The Actor Framework provides for high availability by allowing multiple replicas of an actor to run within the cloud.  If a machine holding one replica crashes, then we already have other replicas to choose from to continue running the service.  The number of replicas is configurable, and for Fakebook we are using a total of two replicas per service.  The Actor Runtime will designate one as the primary and a second as the secondary.  Additional replicas all become secondaries. 

    As you may have read in the Actor Framework documentation, actors achieve a limited transaction-like set of semantics via a quorum commit.  Changes are not committed to the primary until they are first written to a quorum of secondaries.  After that, the changes are committed to the primary and acknowledged to the client. 

    Meanwhile, requests from the client to an actor are auto-idempotent.  Consider a client that makes a request and never receives an acknowledgement.  This could happen for multiple reasons.  The server could have crashed before completing the operation, after completing the operation & before acknowledging the operation.  Similarly, network connectivity could have been lost.  The Actor Framework solves this via that a unique sequence number for every request, and storing the result of the last request in the actor’s replicated state.  By doing this, if a client issues request #5 and loses its network connection, it can reconnect then safely re-issue request 5.  If the operation already ran, the client will get the previously cached result from actor state.  If the request didn’t successfully complete the first time, the request will now execute.  Importantly, the complexity of handling this is built into the client-side & server-side logic of the Actor Framework, so users do not need to think about this.  They simply call a method.

    One not-yet-implemented feature is persistence.  All data in actors is made highly available via replication across machines, but all that data is stored in memory.  Actor state is not currently persisted to disk or any other network storage mechanism like an Azure blob or table.  One consequence is that if the power goes out to the entire cluster, you lose everything.  This is an active area for future development.


    Scalability & Performance

    A traditional database system might model a user using several tables, with one row for profile information, and multiple rows representing friends & images for each person.  Scalability challenges would be hit once you exceed the number of operations possible on an individual database.  (ie, SQL Server’s new Hekaton engine may max out around 60,000 operations/second.)  While databases can go a long ways, enterprises need systems capable of scaling to a much wider scale.  Fakebook is an attempt at building a competing vision for data storage.  While scale up is important, an actor model with relatively easily separable data like Fakebook should be ideal for scale out.  Each actor can maintain its own state in memory, local to that actor.  The hope is a database acting as a single point of failure is not necessary.

    One common criticism of actor models is that while they are easy to write, they require a significant amount of optimization.  We found the same problem, and needed to invest in multi-tenant actors to improve the scalability.  Performance is still very much a work in progress for the Actor Framework, but we hope to show some of the optimizations we found particularly valuable, as well as some we hope to make in the future.



    One of the challenges is to get the most use out of each machine.  There are a finite number of sockets on each machine.  Similarly, new actors require allocating state and entries in a naming table that can slow things down.  The creation of service instances on the Actor Runtime is unfortunately slow and can gate our performance.  Mapping one actor to one process is a horrible idea, and mapping one actor to shared state within a process can often be insufficient.  To solve this, we looked into partitioned service instances for hosting multi-tenant actors.

    Think of partitioning as creating buckets for actors on various machines.  Those buckets can be empty, or you can fill them with multiple actors.  By doing this, the cost of creating the buckets is amortized over the number of partitions.  Each individual actor is created within its appropriate bucket, and receives its own isolated version of actor state.  See Figure 3.


    Figure 3 - Partitioned List Actors

    This allows for actor creation times to be vastly faster, by about 3 orders of magnitude. 

    Now let’s draw a more complete picture.  The Actor Runtime will use processes on various machines for each service type (like a list service, a dictionary service, our empty actor service, etc).  Each process hosts zero or more service instances (both primaries and secondaries, though let’s ignore secondaries for now).  Processes take a while to spin up and service instances are expensive to create.  In a naïve hosting scenario without partitioning, consider a list service and a dictionary service with many instances, mapping to one collection each.  Here is what will be running on a cluster.  Service instances are in blue below.


    Figure 4 - Non-Partitioned Hosting

    In the picture above, creating new individual collections requires creating new service instances, which is an expensive operation.  With partitioning in the picture, we create fewer service instances. 



    Figure 5 - Partitioned Hosting


    Replication is done in the Actor Framework at the service instance level.  So in this picture, “List A” and “List B” both share the same IActorState in terms of replication.  However, this could lead to conflicts if both lists used a field of the same name, allowing one list to scribble over values from a separate list.  The Actor Framework provides a further level of state isolation (an IsolatedActorState) that is a sub-space within an IActorState.  So partitioned actors share the same replication mechanism & characteristics, but get their own isolated view of their state.

    The mapping from name of an individual list is affected by partitioning.  Without partitioning, the Actor Runtime will load balance at the service instance level and allocates them to machines in a reasonable way.  However when using partitioning, the mapping from name of a list to a list partition is done by hashing the name then mapping it onto a range.  For example, a name like “List A” may hash to a value between 1 and 100, and all hash values in the range 1-25 are mapped to list partition 1, 26-50 to list partition 2, etc.  

    Fakebook employs partitioning for each of the actors it uses – lists, dictionaries, person actors & news feed actors.  This substantially reduced the cost to create new people.


    Proxy Problems

    Another challenge involves actor to actor communication, where we use IActorProxy to represent a communications channel between two actors.  Our initial design required a unique proxy object for every actor-to-actor communication, and cached proxies for quick reuse later.  In a simple example, I envisioned 256 people on Fakebook, and each of those 256 people would be a friend with all 255 other people.  However, this approach was flawed.  Keeping those IActorProxy objects cached required keeping just under 64K sockets open.  We tried developing this on one machine and ran out of sockets! 

    To fix this, we are exploring two approaches – sharing sockets when talking between actor partition buckets, as well as ditching the caching & adding in async support for establishing new actor proxies.  We anticipate this will contribute substantial wins.


    Batching Data Transfers

    One of the most significant ways to improve performance is to reduce the chattiness of your protocols over the network.  As a simple example, one of our Actor Framework performance tests adds one million integers to a CloudList<T> and sorts them.  Adding one million elements one at a time was horribly inefficient.  Instead, we needed to change the protocol to support batching to get a higher level of performance.  Additionally, readers must note that method calls that turn into network calls are significantly less reliable than normal method calls.  These considerations led to a new interface, IListAsync<T>:

    namespace System.Cloud.Collections


        publicinterfaceIListAsync<T> : ICollectionAsync<T>


            Task<T> GetItemAsync(int index);

            Task SetItemAsync(int index, T value);

            Task<int> IndexOfAsync(T item);

            Task InsertAsync(int index, T item);

            Task RemoveAtAsync(int index);


            // Less chatty versions

            Task AddAsync(IEnumerable<T> items);

            Task RemoveRangeAsync(int index, int count);




    The AddAsync and RemoveRangeAsync methods will perform much better.  Additionally, since they are async methods, they allow clients to more easily adopt async method calls as a common design pattern, then use continuations to resume execution when those operations have completed.

    A similar change was made to actor methods.  In the example of setting up friendships between multiple people, changing the ForceMakeFriends method to take an array of friends led to a substantial improvement.

    More details on how to run the Fakebook example can be found in the CodePlex site, and we are continuing work on the v0.60 release.   Subscribe to the CodePlex feed and our Blog to be kept up to date on the latest developments.


    For those of you who are using ActorFx in implementations, we’d always like to hear more about how it’s useful to you and how it can be improved. We are looking forward to your comments/suggestions, and stay tuned for more cool stuff coming in our next release!

  • Interoperability @ Microsoft

    MS Open Tech releases Kinect Common Bridge, a simple open source way for infusing the magic of Kinect in creative development



    Want to control your 3D model animation with your body, Minority Report style? We’ve got you covered. Today, Microsoft Open Technologies released the open source project Kinect Common Bridge for Kinect for Windows.

    To learn more about this release and access the project on GitHub, visit out post on our new blog: http://aka.ms/kinectcommonbridgeblog

  • Interoperability @ Microsoft

    New contribution from MS Open Tech: full Windows 8 and Windows Phone 8 support in Cocos2D-X


    Using (or planning to use) Cocos2D-X to build mobile cross platform games in C++? You will certainly love the news: Microsoft Open Technologies, Inc. is making it easy to port a Cocos2D-X game to the Windows Store and to Windows Phone. Today, at the event Cocoa China, Zhe Wang, founder of Cocos2D-X praised MS Open Tech’s contribution that opens up a wide range of Windows devices to the popular open source game engine Cocos2D-X, allowing developers to easily reach new customers for their games.

    Check out our full blog post on msopentech.com/blog

  • Interoperability @ Microsoft

    OSCON photos are here! Thanks, Julian!


    Hey OSCON friends, drum roll please … our Microsoft-sponsored photographer and joyful open source geek extraordinaire Julian Cash has posted your photos from our booth, along with a fun video, on his JC Event Photo OSCON Event page and his Facebook page. Find the photo you love from among his shots of you, give it a right-click, “save picture as…” in your favorite format, and it’s all yours. Copy the photo to your favorite social media sites and send a copy to Mom – I did!

    On behalf of the MS Open Tech evangelism team, thanks to everyone who spent time with us at OSCON. I blogged earlier about the new friends we made and the cool conversations we all had about emerging technologies, but I think it’s time to simply say that a picture is a worth a thousand words …


    Clockwise from top right: Gianugo Rabellino, “Grazie!”— Olivier Bloch, “Merci!” — Doug Mahugh and Robin Bender Ginn, “Thank you! Thank you!”

  • Interoperability @ Microsoft

    Microsoft sings ‘Incubator Blues’ at ApacheCon


    While out at Apache Conference last week in Oakland California. We had an opportunity to participate in the Lightning Talks, and it was a real break from the regular conference proceeding and business as per related to our contributions to the Apache Software Foundation.

    The Lightning Talks was held during a reception with plenty of popcorn, beer and wine on Thursday evening, November 5.  The talks are a lively, spontaneous ApacheCon tradition with speakers getting about 5 minutes to poke at each other, the projects, technology, community etc … and have a bit of fun!

    Team Microsoft was led by Kent Brown, Product Manager for Windows Communication Foundation, was our singer, songwriter and guitar player, wrote Incubator Blues’ inspired by his experience participating in the Stonehenge Project and working with the community. He was joined by his backup singers; Peter Galli, our open source community manager; Tanya Young, our chief cat herder at the conference; and me. It was great fun and we hope you enjoy it!

    Video courtesy of  Mladen Turk from Redhat, thanks!

    Incubator Blues
    Lyrics by Kent Brown to the music of ‘Walkin’ Blues” by Robert Johnson

    Woke up one mornin', said I want a project at Apache
    If you build it they’ll come, a great community!
    Woke up one mornin', said I want a project at Apache
    If you build it they’ll come, just how hard can it be?

    People tell me, Incubator blues ain't bad
    It's the worst old feeling, I most ever had
    People tell me, Incubator blues ain't bad
    It's the worst old feeling, Lordie most ever had

    They said we need a name, one that no one has used
    Cause if you’re not careful, then you’ll get us all sued!
    They said we need a name, one that no one has used
    Cause if you’re not careful, then you’ll get us all sued!

    Hoped for volunteers; thought they'd code it for fun
    But soon found out, nothing’s done without funds!
    Hoped for volunteers; thought they'd code it for fun
    But soon found out, nothing’s done without funds!

    I posted my spec, said jump on the boat
    But they said dude here you gotta take a vote.
    I posted my spec, said jump on the boat
    But they said dude here you gotta take a vote.

    I asked for a server, place to hold all my stuff
    They said “You want Windows?” well that's gonna be tough
    I asked for a server, a place to host all my stuff
    They said “You want Windows?” well that's gonna be tough

    Woke up this morning, to release version 22
    That's when I knew I had them Incubator blues
    Woke up this morning, to release version 22
    That's when I knew I had them Incubator blues

    Old Seb found a problem; somethings wrong with the build
    Nothing gets by him, that guy is skilled!
    Old Seb found a problem; somethings wrong with the build
    Gotta do it again, oh man am I thrilled!

    People tell me, Incubator blues ain't bad
    It's the worst old feeling, I most ever had
    People tell me, Incubator blues ain't bad
    It's the worst old feeling, Lordie most ever had


    Jas Sandhu
    Technical Evangelist, Interop Vendor Alliance Manager, Interoperability Strategy Team
    Twitter@jassand, FriendFeed@jassand

  • Interoperability @ Microsoft

    Android and Java Developers: MS Open Tech has a SignalR SDK for You!


    Today, Microsoft Open Technologies is releasing a SignalR software development kit for Android/Java developers. This SDK, available to the open source community on GitHub will give Java and Android developers the opportunity to add real-time functionality to their Java and Android client apps.

    To learn more, read MS Open Tech’s post.

  • Interoperability @ Microsoft

    Podcast: HTML5 Labs on Developer Smackdown


    I had the opportunity to participate in the Developer Smackdown podcast a few weeks ago at MIX Last Vegas.  We chatted about HTML5 labs: what it is and what it means for web developers are are interested in the bleeding edge of web technologies.

    Listen here:

    Download here.

    And don’t forget to subscribe to Developer Smackdown here.


    Craig Kitterman
    Twitter: @craigkitterman
    Web: http://craig.kitterman.net

  • Interoperability @ Microsoft

    Corona SDK coming to Windows devices thanks to open source ANGLE project


    Corona SDK, the popular mobile 2D platform made by Corona Labs, now offers closed beta support for Windows Phone 8. Microsoft Open Technologies helped the Corona Labs team integrate the ANGLE project into Corona SDK to add support for Windows Phone 8. This allows the more than 300,000 developers using Corona SDK today to easily port their apps to Windows Phone 8 with minimum effort, extending their reach to millions of new users.

    Learn more on the MS Open Tech blog.

  • Interoperability @ Microsoft

    OData v4.0 and OData JSON Format v4.0 approved as OASIS Standards


    Ram Jeyaraman, co-Chair of the OASIS OData Technical Committee, and Senior Standards Professional, Microsoft Open Technologies, Inc.

    Brian Benz, Senior Technical Evangelist, Microsoft Open Technologies, Inc.

    I am excited and proud to share the news that Open Data Protocol (OData) version 4.0 and OData JSON Format version 4.0 have been approved as OASIS Standards by OASIS (an open standards consortium). Congratulations to the OASIS OData Technical Committee for achieving this important milestone. Here’s the official announcement <link> from OASIS.

    This is the result of the collective handiwork of many talented people across many organizations (Axway Software, Blackberry, CA Technologies, Citrix Systems, IBM, Microsoft, Progress Software, Red Hat, SAP AG, SDL, and many others) who cooperated in a truly remarkable fashion to accomplish the common goal of creating a standard open data protocol to create and consume data services on the Web.

    Read the full post at msopentech.com

  • Interoperability @ Microsoft

    MS Open Tech releases updated Azure Node.JS SDK and Command Line Tools for Mac and Linux


    More news for our Linux friends deploying virtual machines to the cloud. Today at Microsoft Open Technologies, Inc. (MS Open Tech), we’d like to share an update to the Node SDK and Command Line tool for Mac and Linux, offering support for virtual networks, endpoints and more. This tool helps developers and IT admins to deploy and manage Linux (and Windows) virtual machines on Windows Azure.

    We’ve received lots of feedback on the Windows Azure command line tool for Mac and Linux since our team at MS Open Tech released project last year. As a result, we’re now updating the tools by adding several commonly requested features, including:

    • Virtual network configuration
    • Improved billing management for stopped VMs
    • Endpoint management
    • Load Balanced Endpoint update

    Following is a summary of the new features. As usual, send us a pull request if you’d like to contribute to these tools, or leave a comment/email if you have some feedback for us.

    1. Virtual Networks

    Since Virtual Networks have been added to the Windows Azure REST API, we added support for this feature to both the Azure SDK for Node.js and in the Command Line tool for Mac and Linux:

    In order to support virtual networks we’ve contributed a new API to the Windows Azure SDK for Node.JS that enables configuration of Virtual Networks. This API can be used standalone in Node.JS apps for configuring VNETs.

    For example, the following sample node.js code demonstrates how to configure a VNET by using the service management API.

    var service = azure.createServiceManagementService(

          subscriptionId, auth,

          { serializetype: 'XML'});

    var vnetObject = {

      VirtualNetworkConfiguration: {

        VirtualNetworkSites: [


            Name: 'test',

            AffinityGroup: 'test-ag',

            AddressSpace: [''],

            Subnets: [


                Name: 'sub1',

                AddressPrefix: ''







    service.setNetworkConfig(vnetObject, function (err, response) {

    // handle errors / process the result


    Refer to our full documentation on GitHub for complete details of ‘VirtualNetworkConfiguration’ object model.

    This SDK also provides the foundational pieces for the Command Line Tools. This makes it possible for admins to use same functionality via our Command Line Tool. Here is a sample usage showing how to create a Virtual Network in your subscription, with default settings.

    $ azure network vnet create vnet1 --location "West US" -v

    info: Executing command network vnet create

    info: Using default address space start IP:

    info: Using default address space cidr: 8

    info: Using default subnet start IP:

    info: Using default subnet cidr: 11

    verbose: Address Space [Starting IP/CIDR (Max VM Count)]: (16777216)

    verbose: Subnet [Starting IP/CIDR (Max VM Count)]: (2097152)

    verbose: Fetching Network Configuration

    verbose: Fetching or creating affinity group

    verbose: Fetching Affinity Groups

    verbose: Fetching Locations

    verbose: Creating new affinity group AG1

    info: Using affinity group AG1

    verbose: Updating Network Configuration

    info: network vnet create command OK

    For more information please refer to our wiki page for a full list of commands to manage Virtual Networks on Windows Azure.

    2. VM Stop Billing Feature

    In the first release of the Windows Azure infrastructure services, Windows Azure kept a reserved deployment spot for every stopped VM in the compute clusters, and continued to bill the user for VM compute resource unless user explicitly deleted the deployment. This changed, and now Windows Azure no longer charges users compute time for any stopped VMs. However, it still preserves the deployment state and configuration.

    MS Open Tech updated the Windows Azure SDK for Node.js and Windows Azure Command Line tool for Node.js to support this scenario. Consequently, when a VM is stopped using the azure vm shutdown command, the account will no longer be billed. Note that IP address of the VM with state StoppedDeallocated (i.e. stopped and not billed) will be released, and there is not guarantee that restarting the VM will result in the same IP being allocated.

    If you need your VM to stay allocated and preserve the IP address, we offer the --stay-provisioned switch for the azure vm shutdown command. Note, however, that in this case your account will continue to be charged for the compute time.

    3. Endpoint Update

    We have added a new command which allows users to change load balancer port, virtual machine port, end point name and protocol associated with an existing endpoint. The usage and options are listed below. For more information, read the article Load Balancing Virtual Machinesin the Windows Azure Documentation.

    $ azure vm endpoint update --help

    help: Update a VM endpoint


    help: Usage: vm endpoint update [options] <vm-name> <endpoint-name>


    help: Options:

    help: -h, --help output usage information

    help: -v, --verbose use verbose output

    help: --json use json output

    help: -d, --dns-name <name> only consider VM for this DNS name

    help: -n, --endpoint-name <name> the new endpoint name

    help: -t, --lb-port <port> the new load balancer port

    help: -t, --vm-port <port> the new local port port

    help: -o, --endpoint-protocol <protocol> the new transport layer protocol for port (tcp or udp)

    help: -s, --subscription <id> the subscription id

    4. Load Balanced Endpoint Update

    One of the cool new features in Windows Azure is updating load balanced sets:

    Let’s suppose you create two virtual machines ‘vm-1’ and ‘vm-2’ under the same cloud service ‘my service’ and added a load balanced endpoint ‘lbset1’ to both VMs. The new Windows Azure API will allow user to update the load balanced set ‘lbset1’ (for example change the probe protocol) so that it will be applied to all VM roles with this load balanced set endpoint defined.

    To support this new Azure functionality, we have added a new API updateLoadBalancedEndpointSet to the Windows Azure SDK for Node.JS and we will be also adding command line tool support soon (this wiki contains a list of all the proposed LB set commands)

    5. Other Improvements

    Finally, we made a couple more updates to the vm create command such as adding the ability to use any user name when creating Windows VMs (in the past one had to use ‘Administrator’), and displaying the image copy progress while using --community option. In addition there are a number of “under the hood” changes such as early failure in the face of common problems and more informative error reporting. These features make the tool easier to use in a variety of situations.

    Getting the Node.js SDK for Windows Azure

    The Node.js SDK and CLI make it easy to work with Windows Azure from within your own applications or from the command line. If you already have a version of the node.js tools all you need to do it run npm update azure-cli -g. If you are new to the tools then you have a couple of simple setup steps to follow, these are fully documented on the VM Depot help site. Since we mentioned VM Depot it might be worth reminding you that VM Depot has over 700 pre-configured virtual machine images ready for deployment, using the CLI, to Windows Azure.

  • Interoperability @ Microsoft

    Congratulations on the latest development for OVF!


    Interoperability in server and cloud space has found even more evidence with the release announcement of Open Virtualization Format (OVF) 2.0 standard. We congratulate DMTF for this new milestone, a further proof that customers and industry partners care deeply about interoperability and we are proud of our participation to advance this initiative.

    Browsing the OVF 2.0 standards specification, it is evident the industry is aligning around common scenarios and it comes as a pleasant surprise how some of those emerging scenarios have been driving our own thinking in the direction for System Center.

    Microsoft has collaborated closely with Distributed Management Task Force (DMTF) and our industry partners to ensure OVF provides improved capabilities for virtualization and cloud interoperability scenarios to the benefit of customers.

    OVF 2.0 and DMTF are making progress on key emerging patterns for portability of virtual machines and systems, and it’s nice to see OVF being driven by the very same emerging use cases we have been analyzing with our System Center VMM customers such as shared Hyper-V host clusters, encryption for credential management and virtual machine boot order management (not to mention network virtualization, placement groups and multi-hypervisor support).

    Portability in the cloud and interoperability of virtualization technologies across platforms using Linux and Windows virtual machines continues to be important to Microsoft and to our customers and are increasingly becoming key industry trends. We continue to assess and improve interoperability for core scenarios using the SC 2012 VMM. We also believe moving in this direction will provide great benefit to our customer and partner eco-system, as well as bring real-world experience to our participation with OVF in DMTF.

    See the overview for further details and other enhancements in System Center 2012 VMM.

    Mark Gayler
    Senior Technical Evangelist
    Microsoft Open Technologies, Inc.

  • Interoperability @ Microsoft

    MS Open Tech is hiring!


    Do you have a passion for interoperability, open source, and open standards? If you’re an experienced developer, program manager, technical diplomat, or evangelist who can help our team build technical bridges between Microsoft and
    non-Microsoft technologies, check out the blog post by Gianugo Rabellino over on the Port 25 blog today. We’re hiring, with open positions you can apply to right now. We’d love to hear from you!

    Doug Mahugh
    Senior Technical Evangelist
    Microsoft Open Technologies, Inc.

  • Interoperability @ Microsoft

    ActorFx v0.50 – more stability, scalability, extensibility, Inter-Actor programmability and a new MapReduce demo for our cloud based Actor Runtime


    By the ActorFx team:

    Claudio Caldato, Principal Program Manager Lead, Microsoft Open Technologies, Inc.

    Joe Hoag, Senior Software Engineer, Microsoft Open Technologies Hub

    Brian Grunkemeyer, Senior Software Engineer, Microsoft Open Technologies Hub


    The ActorFx team is happy to announce that the ActorFx v0.50 is available now, with several improvements since our v0.40 release in March. We also have a great new demo available, based on an algorithm employing MapReduce-like functionality.

    ActorFx provides an open source, non-prescriptive, language-independent model of dynamic distributed objects for building highly available data structures and other logical entities via a standardized framework and infrastructure. ActorFx is based on the idea of the mathematical Actor Model for cloud computing. Have a look at the CodePlex site for more information.

    This release contains some significant improvements:

    · Stability: We fixed a few bugs to eliminate deadlocks and race conditions.

    · Diagnostics: we added support for Event Tracing for Windows (ETW) and now ActorFx emits new ETW event types that can be used to diagnose issues at runtime.

    · Scalability: we implemented port sharing and per-node assembly caching

    · Inter-Actor Programmability: we added the ability for actors to create and delete other actors

    · Extensibility: We did some refactoring and added a StatelessActorApp that will enable us to implement alternative persistence mechanisms based on Azure Tables, SQL Azure and others in the future

    With the v0.50 release we also added a new demo: WordCount. WordCount demonstrates ActorFx’s ability to effect dataflow-type computations over dynamic topologies, employing a MapReduce-type algorithm to count the occurrences of all words in a selected set of textual documents.

    WordCount launches three classes of actors: mapper actors, reducer actors, and an aggregation actor.  Each are populated with the necessary logic to perform their respective functions by sending an assembly containing actor methods to each.

    The WordCount sample demonstrates many of the advantages of ActorFx:

    · Actor behavior is assigned via the passing in of an assembly containing actor methods.

    · File names and progress messages are passed from one tier to the next using actor-to-actor method calls.

    · Status information is emitted and collected using ActorFx pub/sub mechanisms.

    Details on how to run the WordCount application can be found in the CodePlex site.

    We are already working on the v0.60 release and on some new demos that show how ActorFx can be used on a wide range of scenarios. As always, we welcome input from the community. For those of you who are using ActorFx in implementations, we’d like to hear more about how it’s useful to you and how it can be improved.

    We are looking forward to your comments/suggestions, and stay tuned for more cool stuff coming in our next release!

  • Interoperability @ Microsoft

    IETF standards community reaches preliminary agreements on next generation of Internet protocol HTTP/2.0


    Gabriel Montenegro
    Principal Software Development Engineer, Microsoft Corporation

    Brian Raymor
    Senior Program Manager, Microsoft Open Technologies, Inc.

    HTTP, the Hypertext Transfer Protocol, is one of the most important protocols for the Internet, and we’re pleased to report progress on the next generation HTTP/2.0 as we recently returned from our interim HTTPbis Working Group meeting in Tokyo (HTTPbis is the HTTP Working Group in the Internet Engineering Task Force).

    Our industry standards community reached preliminary agreements on the next steps for the first in a series of experimental implementations of HTTP/2.0 that will improve the performance for how every application and service on the Web communicates today.

    Progress on Negotiation and Flow Control

    In our previous post - Sharing proposals for negotiation and flow control for HTTP/2.0 at IETF 85 – we shared our positions on Negotiation and Flow Control and outlined future plans to make progress in these areas.

    After final review at the interim HTTP/2.0 meeting, we’re pleased to announce that HTTP 2.0 Negotiation that Microsoft co-authored with Exceliance and Orange and HTTP 2.0 Principles for Flow Control that Microsoft co-authored with Ericsson and Google were incorporated into the latest HTTP/2 base draft.

    Implementation Draft Specification

    The most important outcome of the interim meeting in Tokyo was the recommendation to create a HTTP/2.0 “Implementation Draft Specification” based on the set of features that have achieved rough consensus in the HTTPBIS working group at this time. There was strong agreement among the attendees with this direction and commitment to implementing this draft specification when available.

    The implementation draft is targeted for March with another HTTP/2.0 interim meeting proposed between June-September where interoperability testing can occur.

    The full proposal is available here. Many of these features are dependent on the rapid execution of their related action items

    The proposed feature list includes significant changes to:

    • Upgrade
    • Header Compression
    • Flow Control
    • Framing
    • Server Push

    The intent is to converge on the details using the IETF HTTPBIS mailing list and then implement and validate the subsequent implementation draft. And then repeat the process based on our experience and new understanding – as Mark Nottingham (IETF HTTPBIS chair) has clarified:

    Note that we are NOT yet firmly choosing any particular path; rather, we're working on proposals in code as well as text, based upon discussion to date. As such, we're likely to have several such implementation drafts that progressively refine the approach we're taking. I.e., we don't have to agree that the above is what we want HTTP/2.0 to look like -- only that it's interesting to make these changes now, so that we can test them.

    Looking Ahead

    We are pleased with the direction of the HTTPBIS working group and are looking forward to interoperability testing with our HTML5 Labs HTTP/2.0 prototype.

    Based on the action items from the interim meeting in Tokyo, there is already active discussion on the IETF HTTPBIS mailing list as more detailed proposals are prepared and shared with the working group. We encourage the community to openly and actively contribute to the mailing list and strongly consider prototyping the implementation draft when available.

    We are looking forward to further discussions at the IETF 86 HTTPBIS meeting on March 15 in Orlando where we continue our goal to help ensure, along with our IETF colleagues, that HTTP/ 2.0 meets the needs of the broader Internet community.

    Gabriel Montenegro and Brian Raymor

  • Interoperability @ Microsoft

    MS Open Tech brings a new WebSQL plugin for Apache Cordova and enhancements to the popular Contacts plugin


    Microsoft Open Technologies is publishing the new open source WebSQL plugin for Apache Cordova and PhoneGap. This plugin allows developers to integrate a persistent SQL-based local storage solution in their Cordova apps using the exact same JavaScript code across Android, iOS, Windows Phone and Windows Store. MS Open Tech is also contributing new features inspired by Windows to the popular Contacts plugin as well as a better Windows Store apps support.

    Read more on our new blog: websqlpluginforcordova

  • Interoperability @ Microsoft

    MS Open Tech Brings the Creative World of Cinder to Windows Store Applications


    Great news for Agencies, Creative Coders and Design Engineers

    The open source programming library Cinder is growing in popularity for creative coding in C++, and now these cool Cinder coders can extend the reach of their apps to a broader audience on the Windows Store.

    Microsoft Open Technologies, Inc. (MS Open Tech), and the Microsoft Platform Evangelism team have been working with the Cinder community to enable Windows Store support for Cinder. This code is now available on a public branch on GitHub and it means that creative developers of all kinds can now build a new generation of Windows 8 apps with Cinder. For those not already familiar with it, Cinder is a cross platform framework designed for professional-quality creative coding in C++ and is typically used for design engineering.

    The Windows 8 operating system introduces a new type of application, called a Windows Store app. The new architecture is called Windows Runtime, or WinRT for short. Windows Store apps are presented and can be accessed through their respective Live Tiles. An application's Live Tile is registered automatically when that app is installed from the Windows Store.

    There is still a bit of work to do, such as adding XAML support, but the broader creative coding community is already embracing it. The screen shots above are all from the DirectX, Windows Store samples that ship with the branch.

    In order to run Cinder on Apple, Android and Windows devices prior to Windows 8, the rendering libraries leveraged OpenGL as the open source, cross platform solution. Even though DirectX has been Microsoft's preferred rendering solution for advanced graphics programming, Windows traditionally provided both DirectX and OpenGL support from the desktop. However, Windows 8 Store applications are now exclusively DirectX based, to maximize reusability across the entire domain of Microsoft experiences including Windows Phone, Windows RT, Windows 8, and gaming.

    To get a Cinder project running as a Windows Store app, the Cinder project needs to leverage a DirectX render instead of the default OpenGL renderer. Both OpenGL and DirectX have undergone significant changes over the years. As hardware and software continue to advance, both libraries continue to progress in their own distinct ways. Windows 8 Store apps leverage the most recent version of DirectX 11.1.

    Because DirectX is now directly supported by Cinder, a developer can now write code such as the sample below. Here is some example code for a Cinder BasicApp “Hello World” drawing app. It draws a line while the user is touching the screen (or dragging the mouse):

    #include "cinder/app/AppBasic.h"
    #include "cinder/dx/dx.h"

    using namespace ci;
    using namespace ci::app;
    using namespace std;

    // We'll create a new Cinder WinRT Application by deriving from the Cinder AppBasic class
    class BasicApp : public AppBasic {
           void mouseDrag( MouseEvent event );
           void draw();

           // This will maintain a list of points which we will draw line segments between
           list<Vec2f>         mPoints;

    void BasicApp::mouseDrag( MouseEvent event )
           mPoints.push_back( event.getPos() );

    void BasicApp::draw()
           dx::clear( Color( 0.1f, 0.1f, 0.15f ) );
           dx::color( 1.0f, 0.5f, 0.25f ); 
           dx::begin( GL_LINE_STRIP );
           for( auto pointIter = mPoints.begin(); pointIter != mPoints.end(); ++pointIter ) {
                 dx::vertex( *pointIter );

    // This line tells Cinder to create and run the WinRT application
    CINDER_APP_BASIC( BasicApp, RendererDx )

    As a result, developers who are familiar with either Cinder or DirectX should find themselves right at home with the new capabilities that Windows Store support has just added to the framework. Here’s some early feedback we have received from the Cinder developer community:

    We couldn't be happier about having WinRT support in Cinder. The possibility of distributing apps in the Windows Store, as well as targeting new hardware like the Surface is going to be a big deal for our users. And providing such tangible support for open source through the MS Open Technologies team is really forward-thinking and exciting in its own right. – Andrew Bell, Lead Architect of Cinder

    As a community developed open source project, Cinder separates the stable, official version of its Cinder framework from newer branches that developers setup as they program future functionality. WinRT support for Cinder is currently being developed off of one of these feature branches, with the goal of integrating in to a future iteration of the master project. The DirectX/Windows Store branch of this library can be cloned from Github.

    You can read the Getting Started With Cinder For Windows Store Apps guide here which explains more about Cinder, DirectX and how to setup Visual Studio and Windows 8. We encourage you to share this information with your designer developer colleagues and join the discussion on the official Cinder forums - http://forum.libcinder.org/#Topic/23286000001540037

    We expect this announcement will open up a whole new world of opportunities for creative applications from artists, designers, and developers. We hope you enjoy the Cinder for Windows Store experience and we look forward to seeing your cool new applications.

    Adalberto Foresti, Principal Program Manager
    Microsoft Open Technologies, Inc.

  • Interoperability @ Microsoft

    Azul Systems Releases Zulu, an OpenJDK Build for Windows Azure, in Partnership with MS Open Tech


    Today I’m happy to report the news that our Microsoft Open Technologies, Inc., (MS Open Tech) partner Azul Systems has released the technology preview for Zulu, an OpenJDK build for Windows Servers on the Windows Azure platform. Azul’s new OpenJDK-based offering has passed all Java certification tests and is free and open source.

    Azul’s new build of the community-driven open source Java implementation, known as OpenJDK, is available immediately for free download and use under the terms of the GPLv2 open source license.

    Built and distributed by Azul Systems, Zulu is a JDK (Java Development Kit), and a compliant implementation of the Java Standard Edition (SE) 7 specification.  Zulu has been verified by passing all tests in the Java SE 7 version of the OpenJDK Community TCK (Technology Compatibility Kit).

    Azul has a lot of information about this exciting news on their website, including this press release that we would like to share.

    With the support of Azul Systems and MS Open Tech, customers will be assured of a high-quality foundation for their Java implementations while leveraging the latest advancements from the community in OpenJDK. The OpenJDK project is supported by a vibrant open source community, and Azul Systems is committed to updating and maintaining its OpenJDK-based offering for Windows Azure, supporting current and future versions of both Java and Windows Server. Deploying Java applications on Windows Azure will be further simplified through the existing open source MS Open Tech Windows Azure Plugin for Eclipse with Java.

    Key details of Azul Zulu include:

    • Free and open source offering, based on OpenJDK
    • Compatible with Java SE 7, verified using Java SE 7 OpenJDK Community TCK
    • Integrated with MS Open Tech’s Windows Azure Plugin for Eclipse with Java tooling
    • Patches and bug fixes contributed back to the OpenJDK community by Azul
    • ISV-friendly binary licensing for easy embedding with 3rd party applications
    • Availability for download and immediate use

    Executives of both companies highlighted the benefits of this new effort:

    Jean Paoli, president of MS Open Tech said, “Java developers have many development and deployment choices for their applications, and today MS Open Tech and Azul made it easier for Java developers to build and run modern applications in Microsoft’s open cloud platform.” 

    Scott Sellers, president and CEO of Azul Systems said, “Azul is delighted to announce that Zulu is fully tested, free, open source, and ready for the Java community to download and preview – today. We are looking forward to serving the global Java community with this important new offering for the Azure cloud.”

    Zulu is available for download at www.azulsystems.com/products/zulu. Zulu Community Forums are listed on the Stack Overflow website under the tags “azure zulu” and “azul zulu.”

    MS Open Tech and Azul Systems first announced our partnership on July 24, 2013

    Customers and partners of Microsoft and Azul interested in participating in future Zulu tech previews are also invited to contact Azul at AzureInfo@azulsystems.com for additional information. And of course, please send questions and feedback to our MS Open Tech team directly through our blog.

    Gianugo Rabellino, Senior Director of Open Source Communities, MS Open Tech

  • Interoperability @ Microsoft

    Updated Windows Azure Plugin for Eclipse with Java – New JDK and App Server Options, Simplified Publishing


    Microsoft Open Technologies, Inc., has released the October preview of the Windows Azure Plugin for Eclipse with Java. This release includes multiple updates since our September release, including support for version 2.2 of the Windows Azure SDK, and some changes to eclipse version support and how JDKs and App Servers are deployed. For full details, have a look at the documentation update.

    Today’s release includes an update for the new OpenJDK build for Windows Azure from Azul, new Application Server version (Jetty 9), and a few improvements to increase the speed and convenience of configuring and deploying your Java code to Windows Azure.

    Support for the Azul Zulu OpenJDK package

    In July we announced a partnership with Azul Systems, and in September Azul Systems released Zulu, an OpenJDK Build for Windows Azure leveraging the latest advancements from the open source community. At that time, Zulu became an option under the 3rd party JDK Deployment Project options, so you would not have to find and upload it to make it part of your deployment package. Now, Zulu (OpenJDK v7 based offering) update 40 is the latest available option there.

    Here’s an example of the new JDK selection, showing a deployment being configured with the latest version of Zulu selected to be part of the deployment package:


    Support for the Jetty Application Server

    In addition to multiple versions of Tomcat, GlassFish, JBoss and Jetty, the latest version of the plugin also knows how to include the Jetty Application Server version 9 as part of your deployment package. As before, you can not only deploy these App Servers to Windows Azure, but also test your deployments locally in Eclipse before you deploy with full emulation. Here’s the full list of Application Servers supported in this release:


    One-click to your Cloud Service from Eclipse

    In previous versions of the plugin, you would publish, wait for the activity status to change to “Running,” then switch to your browser and navigate to your deployment’s main page in the Windows Azure Portal, and click on a link to view your deployed code in action.

    Although that was not terribly complicated, we’ve made it even simpler – now you can click on the link in the activity log when the green status bar changes to “Published,” and the deployment location will open in a new browser windows automatically. This saves time for those of you looking for quick code iterations!


    New Features when Publishing: Select a Target OS and Overwrite Deployment

    In past plugin versions, you would set a target OS in the project properties before publishing, which was easy to overlook and challenging to find. Now the Target OS can be specified each time you publish to Windows Azure as part of the publishing process. Also, in the past, if you did not unpublish your deployment from the target site before trying to publish again, Windows Azure would return a “409 conflict” error. The new Overwrite previous deployment check box permits publishing to the same target without first manually stopping and unpublishing the previous deployment.

    Here’s the new Publish to Windows Azure dialog with both new features highlighted:



    Add a role from the Eclipse Project Context menu

    In previous releases, adding and configuring Windows Azure Roles was a multi-step process, starting with going to the deployment project’s properties. Now, new Roles can be added more directly via the “Add Role…” command on the Project context menu:


    Latest Windows Azure Libraries for Java (v0.4.6) included

    The Plugin includes the latest distribution of the Windows Azure Libraries for Java (v0.4.6), in its usual location in the Eclipse library list (as “Package for Windows Azure Libraries for Java (by MS Open Tech”).

    Getting the Plugin

    Here are the complete instructions to download and install the Windows Azure Plugin for Eclipse with Java, as well as updated documentation.

    Ongoing Feedback

    Several of these features are a direct result of feedback we’ve received form the community, and we’re listening and taking action. We value your feedback on how we can make it make it easier to test and deploy your Java applications on Windows Azure. As always, let us know how the latest release works for you and how you like the new features!  To send feedback or questions, just use MSDN Forums or Stack Overflow.

  • Interoperability @ Microsoft

    W3C Pointer Events Gains Momentum Within Web Communities


    MS Open Tech Announces Intent to Implement in Blink While Continuing WebKit Implementation


    Asir Vedamuthu Selvasingh, Principal Program Manager
    Microsoft Open Technologies, Inc.

    Adalberto Foresti, Principal Program Manager
    Microsoft Open Technologies, Inc.

    The W3C Pointer Events emerging standard continues to gain traction, advancing support for interoperable mouse, touch, and pen interactions across the web. Today, Microsoft Open Technologies, Inc. (MS Open Tech) made the first step towards interoperable support for Pointer Events in Blink by submitting a formal Intent to Implement to enable our engineering team to actively collaborate and work toward a positive adoption of Pointer Events by the Blink developer community.

    Earlier this year, MS Open Tech published a Pointer Events prototype for WebKit on HTML5 Labs and submitted the patch to the WebKit developer forum. To help even more developers adopt the Pointer Events technology, we plan to continue our collaboration with the WebKit community.

    Pointer Events makes it easier to support many browsers and devices by saving Web developers from writing unique code for each input type. Today people interact with Web content on a range of devices – phones, tablets, PCs, even the living room TV. Pointer Events unifies how you code for point, click and touch across these devices. The input model is based on the APIs already available in IE10 on Windows 8 and Windows Phone 8 and you can start building websites incorporating point, click, and touch today.

    Pointer Events continues to receive positive feedback from the developer community -- many are already embracing it as a unified model for cross-browser multi-modal input:

    The jQuery team has been watching the progress of Pointer Events and participating in the W3C standardization process as it moves to Candidate Recommendation. Congratulations to the W3C working group for their hard work in getting to the CR stage. We see Pointer Events as a great way to unify the haphazard models that exist today for mouse, touch, and other pointer devices. Our team looks forward to supporting web developer use of Pointer Events as implementations begin to arrive.

    Dave Methvin, President jQuery Foundation

    Pointer Events is a great way to add cross-browser support for multi-modal input from mouse, pointer, and touch.  With Pointer Events reaching Candidate Recommendation stage, it is time all mobile html5 application developers paid attention.  The best part; you can start using it today….

    Jesse MacFadyen, Adobe Developer, Cordova Committer

    Pointer Events Advances to W3C Candidate Recommendation (CR)

    As announced last week by the W3C and shared by our colleagues in IE, the W3C has now published the Pointer Events specification as a Candidate Recommendation, an important step toward a standard. This progression from Last Call Working Draft to Candidate Recommendation is a mark of the effective collaboration among Microsoft Corp., Google, Mozilla, Opera, Nokia, jQuery, and others to help sites take advantage of new interactive devices for the Web.

    ‘Candidate Recommendation’ indicates that the W3C considers the specification widely reviewed and satisfying the Working Group’s technical requirements. It signals a call for additional implementation experience to inform the group.

    MS Open Tech and the Microsoft Internet Explorer teams will continue to work with our colleagues across the industry, engaging developers to test and provide feedback on the specification to W3C.

    Learn more about Pointer Events on Web Platform Docs

    As you start building, migrating, or testing your apps using Pointer Events on various browser platforms, you should check out the resources available on the Pointer Events Wiki at Web Platform Docs:

    • You can Try out the cool multi-model input capabilities with Pointer Events Demos.
    • You can Learn about Pointer Events by reading the specification documentation or watching Jeff Burtoft explaining how to easily upgrade from mouse to Pointer Events. And, you can learn even more by checking out the Pointer Events Primer on WebPlatform.org.
    • You can check out code samples such as the hand.js polyfill and even validate your own code with Pointer Events Test cases.


    So much progress -- Pointer Events enables you to build for the future of the Web, today. So when someone invents the next big input breakthrough (such as Tom Cruise’s crime lab from Minority Report or Tony Stark’s holographic CAD console from Iron Man), you’re already on your way to supporting new input features.

    Jump in, have fun with the demos, join the discussion at #PointerEvents and update your site with the cool capabilities of Pointer Events. Point. Click. Touch.

  • Interoperability @ Microsoft

    Microsoft Open Technologies and Azul Systems® to Partner on an OpenJDK™ Build for Windows Azure


    New OpenJDK-based offering will be free and open source, with contributions back to the community

    O'Reilly OSCON, PORTLAND, Ore. – July 24, 2013 – Microsoft Open Technologies, Inc. (MS Open Tech), a subsidiary of Microsoft Corp. dedicated to bridging Microsoft and non-Microsoft technologies, and Azul Systems®, the award-winning leader in Java runtime scalability, announced today at the O’Reilly Open Source Convention (OSCON) that they are partnering on a Windows distribution build of the community-driven open source Java™ implementation, known as OpenJDK™, for Windows Server on the Windows Azure platform.

    As part of this partnership, Azul Systems will build, certify and distribute a compliant OpenJDK-based distribution meeting the Java SE specification for use with Windows Server environments on Azure. The new OpenJDK-based offering will be freely distributed and licensed under the GNU General Public License version 2 (GPLv2) with the Classpath Exception.

    Open source is now a key building block for enterprise IT strategies. Customers also require choice in where and how they deploy new and existing Java applications. Through this partnership the global community of Java developers gain access to open source Java on the Windows Azure cloud. It will also serve the growing number of Java applications that both small and medium businesses and global enterprises depend on to run their businesses.

    Scott Sellers, Azul Systems president and CEO, said, “This initiative is all about bringing Java to the masses in the cloud. We will be providing a fully open and unconstrained Java environment — with open choice of third-party stacks — for developers and essential applications deployed on Windows Azure.”

    Jean Paoli, president of MS Open Tech said, “Microsoft Open Technologies and our Azul Systems partner are motivated by a common goal to make the world of mixed IT environments work better together for customers. This partnership will enable developers and IT professionals to ensure their mission-critical apps deploy and run smoothly on Windows Azure, using the open source Java environment they prefer. With Azul Systems rich Java heritage and strong customer track record,  partnering was a natural decision.”

    A June 14, 2013, Forrester Research report, titled: “The Forrester Wave™: Enterprise Public Cloud Platforms, Q2 2013,” states “Microsoft’s strategy for Windows Azure is very strong for two reasons … creating a single platform spanning many clouds is achievable, valuable, and a natural act for Microsoft. … Microsoft’s openness to other platforms, languages, databases, development environments, and tools is genuine and virtually assures Windows Azure’s relevance as technology evolves.”

    With the support of Azul Systems and MS Open Tech, customers will be assured of a high-quality foundation for their Java implementations while leveraging the latest advancements in OpenJDK. The OpenJDK project is supported by a vibrant open source community, and Azul Systems is committed to updating and maintaining its OpenJDK-based offering for Windows Azure, supporting current and future versions of both Java and Windows Server. Deploying Java applications on Windows Azure will be further simplified through the existing open source MS Open Tech Windows Azure for Eclipse Plugin with Java.

    The new Azul Systems offering will be available later this year. For more information and updates about the new product or the MS Open Tech and Azul Systems partnership, subscribe to the MS Open Tech Blog. Customers and partners of Microsoft and Azul are also invited to contact Azul at AzureInfo@azulsystems.com for additional information about Azul’s Early Access Program.

    About Azul Systems
    Azul Systems (Azul) is an award-winning provider of Java runtimes for the enterprise. Based in Sunnyvale, California, Azul has been delivering Java solutions for more than 10 years with deep domain knowledge in Java runtimes, elastic memory, Pauseless Garbage Collection, and runtime resource monitoring. Azul is also a member of the Executive Committee of the Java Community ProcessSM (JCP) and has licenses to the OpenJDK Community Technology Compatibility Kit (TCK). Azul's enterprise products enable organizations to simplify their Java-based operations while achieving lower average latencies, improved scalability, greater response time consistency and dramatically improved operating costs. For additional information, visit: http://www.azulsystems.com.

    About Microsoft Open Technologies
    Microsoft Open Technologies, Inc. (MS Open Tech), is a wholly owned subsidiary of Microsoft dedicated to advancing the company’s investment in openness including interoperability, open standards and open source. MS Open Tech is focused on providing our customers with even greater choice and opportunity to bridge Microsoft and non-Microsoft technologies together in heterogeneous environments, because we’re convinced that openness is good for our customers, good for the community and good for our business. For additional information on MS Open Tech, visit www.msopentech.com.

    # # #

    All other product and service names mentioned are the trademarks of their respective companies.

  • Interoperability @ Microsoft

    Update on Standardization of Next Version of HTTP/2.0


    Gabriel Montenegro
    Principal Software Development Engineer, Microsoft Corporation

    Andrei Popov
    Senior Software Development Engineer, Microsoft Corporation

    Brian Raymor
    Senior Program Manager, Microsoft Open Technologies, Inc.

    Rob Trace
    Senior Program Manager Lead, Microsoft Corporation

    We wanted to give our readers an update on the standardization of the next version of the Hypertext Transfer Protocol, HTTP/2.0, based on our recent industry standards meeting.

    Representatives from Microsoft Corporation and Microsoft Open Technologies, Inc., recently attended the Internet Engineering Task Force 86 meetings in Orlando to make progress on the first in a series of experimental implementations of HTTP/2.0 (see our earlier blog for details).

    Much of this HTTPBIS Working Group meeting focused on presentations on header compression, which is one of the big open issues that must be resolved for the first experimental implementation of HTTP/2.0.

    Martin Thomson (HTTP/2.0 co-editor) collected and presented a number of pending specification issues for discussion and rough consensus - little things that I would like to change in HTTP/2.0 that I don’t feel I have the authority to change without working group feedback.

    Gabriel Montenegro shared a presentation on Known startup state for a simpler and more robust HTTP 2.0 that reduces the complexity of HTTP/2.0 implementations by ensuring that the protocol starts in a known state for both the client and server.

    At the Transport Layer Security Working Group (TLS WG) meeting, this group reviewed proposals for application protocol negotiation requested by HTTPBIS for HTTP/2.0 negotiation. Andrei Popov presented the Application Layer Protocol Negotiation Extension (ALPN) – one of the proposals under consideration, co-authored with Stephan Friedl (Cisco). After much discussion and a straw poll, there was rough consensus to adopt ALPN. Eric Rescorla (TLS co-chair) sent a Confirming Consensus for ALPN message to the TLS mailing list to encourage additional discussion from IETF members who had not attended the meeting.

    It was exciting to see the progress and tone of the discussions that you can see reflected in the transcriptions below:

    Mark Nottingham (HTTPBIS chair) also suggested that HTTPBIS continue meeting on a frequent schedule to make progress on the first HTTP/2.0 experimental implementation with future interim meetings proposed before and after IETF 87 in Berlin:

    • June 12 or 13-14 in San Francisco Bay Area
    • IETF 87, July 28 - August 2 in Berlin
    • Early August in Northern Germany

    Representatives from Microsoft Corporation and Microsoft Open Technologies, Inc. plan on participating in these meetings and encourage the community to also attend and become more involved in defining the next generation of HTTP at the IETF.

  • Interoperability @ Microsoft

    Open Source + Southern Hospitality


    clip_image002[8]I spent the entire week last week enjoying some good weather and southern hospitality in the Carolinas. On Tuesday Mar 15 I had the pleasure of being invited to present at the Charlotte Enterprise Developers Guild organized by Bill Jones (special thanks to SystemTec for sponsoring the evening). On arrival I found the best dressed group of developers I have seen in a long time and felt compelled to apologize for my jeans and Converse. They sure keep it classy down South – something us Northwesterners could probably stand to learn from.

    The focus of the talk (and subsequent discussion) was Java and PHP on Windows Azure. I was pleased to learn that the group consisted of a healthy mix of developers writing Java code, PHP code, and .NET code. In fact, close to 50% of the folks in the room indicated that they use multiple runtimes in their local data centers and are used to interacting with multiple codebases consisting of different languages. We had a great conversation about what it means to move to the Cloud and the approach Microsoft is taking to building an open an interoperable platform that will provide a robust general purpose platform for languages and runtimes far beyond .NET. I got a lot of great feedback on the Eclipse and ANT tooling that was recently announced and have opened some new discussions on additional work we are exploring enable additional Java developer workflows / build systems including Apache Maven. Stay tuned on this!


    I also had the pleasure of attending the 4th Annual POSSCON (Palmetto Open Source Conference) in Columbia, South Carolina where Microsoft was a sponsor. The speaker lineup was great and there were a number of interesting sessions on the agenda particularly related to open source in mobile applications which seemed to be the hot topic of the event. I was pleased to finally meet such OSS icons as Jim Jagielski of the Apache Software Foundation, and attend a number of great sessions by other well known OSS advocates including William “whurley” Hurley, Bob Sutor of IBM and Jon “maddog” Hall.

    WP_000304 - Copy_thumbMy colleague Gianugo Rabellino had the opportunity to present a keynote at the event and took the opportunity to showcase a lot of open source work that is underway both in Microsoft and the Windows ecosystem. He described the change underway in Microsoft toward greater openness and discussed the future of collaboration between Microsoft and the the many Open Source communities on objectives we all share as technologists.

    My best booth award (from a coolness factor point of view) goes to my new friends at RepRap.org who are working on building self replicating open source 3D printers. This is a sweet mashup of open source software, open hardware design, commodity component architecture and pure geekitude. We had a great debate about the future of self replication and when we were done my head hurt but it was a blast.

    The conference had around 500 attendees and I even somehow became the mayor on Foursquare despite only checking in twice. It was a great time and I look forward to seeing what is in store next year at POSSCON 2012.

    Craig Kitterman
    Sr. Technical Ambassador

Page 3 of 4 (341 items) 1234