Today, at the HTML5 Developers Conference, Microsoft demonstrated a build of Mozilla Firefox supporting Pointer Events. This Nightly build integrates Microsoft Open Technologies’ contribution to the Mozilla open source project to add support for Pointer Events, the new W3C specification to handle multiple input types in Web apps and sites. In his talk, Jacob Rossi, Program Manager in the Internet Explorer team, presented the steady progress toward interoperable support for Pointer Events through standardization at W3C, and highlighted MS Open Tech’s contributions to open source projects WebKit, Blink and Gecko.
To learn more, read our full blog post here.
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:
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!
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!
I Hope everyone at Symfony live in Portland this week is having a good time – I wish I could join you in person!
I wanted to share some exciting news about recently released updates to Windows Azure tools for Symfony that Microsoft Open Technologies, Inc. has been supporting.
Benjamin Eberlei’s Azure Distribution Bundle project simplifies the deployment of Symfony applications on Windows Azure by managing the packaging for Azure, and handling deployment of assets and distributed session management.
Since the original project was released in June 2012, the bundle has been integrated with the latest Windows Azure SDK for PHP. Symfony is also now easier to deploy to websites on Windows Azure, facilitated in part by Composer integration during deployment.
If you’re an experienced Symfony developer, the bundle is a great starting point for Symfony on Azure, as it has detailed instructions and documentation for getting started with Windows Azure and how to interact with Windows Azure instances and service building blocks.
So have fun at Symfony Live this week, and check out these new tools and demo for Symfony on Azure when you get a chance. Let us know what you think!
Senior Technical Evangelist
Microsoft Open Technologies, Inc.
Microsoft Open Technologies, Inc., Jaspersoft and MongoDB have teamed up to deliver a webinar on building open source reporting and analytics for your NoSQL solutions in the Cloud. Join our free webinar on October 16 to see how to deliver interactive reporting, analytics, and dashboards for MongoDB on Windows Azure, enabling rapid, meaningful, actionable insights for NoSQL data stores.
In this webinar we will cover:
The webinar is 1pm EST, this Wednesday, October 16th, so Sign-up now!
Today, Microsoft submitted a new proposal to the W3C – “CSS Scrolling Snap Points”, designed to enable well-polished panning experiences for touch and other input devices, based on APIs introduced in IE10 and improved in IE11. This submission comes on the heels of Pointer Events, as one of the ways Microsoft is advancing the Web by providing rich immersive experiences across browsers on different platforms.
Jacob Rossi and Matt Rakow, Program Managers at Microsoft, describe in their blog post how only 2 lines of CSS enable Snap Points in the Internet Explorer to deliver experiences like swiping through a list of photos or pages of an article.
“CSS Scrolling Snap Points” submission demonstrates Microsoft’s commitment to advance touch on the Web by contributing this innovation. You can follow and contribute to the conversation on the W3C mailing list.
Asir Vedamuthu Selvasingh, Principal Program Manager - Microsoft Open Technologies, Inc. Adalberto Foresti, Principal Program Manager - Microsoft Open Technologies, Inc.
From the Rx team,
Claudio Caldato, Principal Program Manager Lead, MS Open Tech Snesha Foss, Senior Program Manager, MS Open Tech Kirk Shoop, Senior Software Development Engineer, MS Open Tech Matthew Podwysocki, Software Engineer, Microsoft
Today Microsoft Open Technologies, Inc. (MS Open Tech), is happy to share the news of recent improvements we have made to Reactive Extensions.
We recently highlighted a release of Reactive Extensions Core as well as Rx.cpp. Today we want to let you know that RxJS 2.2 is now available via the Rx.js CodePlex project and includes various bug fixes and contributions from the community.
Reactive Extensions (Rx) is a programming model that allows developers to use a common interface for writing applications that interact with diverse data sources, like stock quotes, Tweets, UI events, and Web service requests. Since Rx was open-sourced by MS Open Tech in November, 2012, Rx has become an important under-the-hood component of several high-availability multi-platform applications, including NetFlix and GitHub. For a more detailed overview, have a look at the Beginner’s Guide to Reactive Extensions.
The core Rx.js now supports browsers that support ES5 only. We have moved all of our previously shipped ES5 polyfills to rx.compat.js. This saves a number of bytes, and allows developers to use any polyfill library of your choosing in order to support older browsers. We also have Compatibility builds for other key libraries, a few of which h are mentioned below.
One common question from our customers is, "Could we get a core of RxJS with a set of operators we use most often in a single, smaller library?" We hear you and have now provided rx.lite.js. This library consists of the most commonly used features, including factory methods for creating observable sequences, standard operators such as where, select, and zip, relative-time based operators and the most commonly used features from rs.async.js, including events, callbacks and promises bindings. The file size has is drastically reduced – currently just 7k when zipped. We also provide a compatibility build, rx.lite.compat.js to support older browsers.
Traditionally RxJS has not included many bridges to such things as events, promises or even callbacks. In version 2.2, we’re introducing the fromEvent to bind to events, fromCallback to support bridging to callbacks, fromNodeCallback to support Node.js style callbacks in which the error is always the first parameter, and Promises library binding in rx.async.js. With this library, you can easily compose events, promises and callbacks within a single library without having to bring in any other bridge library such as jQuery or HTML DOM. For older browsers, the compatibility build is rx.async.compat.js.
To decrease the size and scope of rx.js, all virtual time mechanisms were moved from the core library and into their own library, rx.virtualtime.js. This includes the VirtualTimeScheduler and the HistoricalScheduler.
The create factory function now takes as its return value a function which encapsulates disposal logic, or nothing if no cleanup is required. This deprecates the need for Observable.createWithDisposable.
Fixed the behavior of scan, to produce a sequence with only the seed if a sequence is empty but a seed was provided. If the sequence is empty and without a seed, an empty collection is created.
The share method was added to create a shortcut for publish().refCount(), a common function for sharing a single observable sequence.
A new shareLast method has been added to create a shortcut for the often used publishLast().refCount() to turn cold observables into hot observables and add reference counting.
The shareReplay method was added to create a shortcut for replay().refCount() to turn a hot observable into a cold observable and add reference counting.
The shareValue method was added to support a shortcut for publishValue().refCount() to publish a shared single value with reference counting added.
rx.modern.js renamed to rx.js and old rx.js renamed to rx.compat.js for older browser support
VirtualTimeScheduler and HistoricalScheduler classes moved to rx.virtualtime.js
Rx.Observable.start and Rx.Observable.prototype.toAsync methods moved to rx.async.js
The following Node,js specific methods in rx.node.js are being removed in favor of those in rx.async.js
Rx.Node.fromEvent - Now use Rx.Observable.fromEvent
Rx.Node.fromCallback – Now use Rx.Observable.fromCallback
The Hub engineering program has been a great place to collaborate on these projects, as these assignments give us the agility and resources to work with the community. Stay tuned for more updates soon, and please try out our work and pitch in!
Microsoft Open Technologies, Inc. (MS Open Tech) is pleased to announce that the release of a new Windows Azure Puppet Module that makes it possible to provision both Linux and Windows virtual machines on Windows Azure using the popular open source DevOps tool, Puppet. Support is provided in the form of a Windows Azure module for Puppet published in the Puppet Forge. In addition, management of key services such as network configuration and databases are supported. As a result, Puppet users can now leverage over 1800 community-defined configurations found in the Puppet Forge on Windows Azure.
MS Open Tech engineers have undertaken this work through our focus on enhancing interoperability across popular DevOps tools. DevOps focuses on the management of the intersection between software development and IT operations. It emphasizes collaboration and integration between the increasingly agile software development team (where rapid change is necessary), and the operations team who are required to provide maximum up time (where change may impact reliability). DevOps seeks to enable these two groups to communicate and collaborate more effectively. The contribution of a Puppet Module for Windows Azure is an important step in ensuring that users of Puppet are able to leverage their skills in a Windows Azure environment.
The Windows Azure Puppet module provides everything you need to provision the following Windows Azure services:
In addition Windows Azure users will now be able to access more than 1800 existing community-defined modules in the Puppet Forge.
"The ability to use Puppet to provision virtual machines on Windows Azure and thus to leverage the extensive repository of community provided modules in Puppet Forge should be compelling for many Puppet users” said Mitch Sonies, Vice President of Business and Corporate Development of Puppet Labs, Inc. “We think this contribution is a great step toward driving adoption of Azure within the Puppet community, and we look forward to seeing community uptake and ecosystem contributions grow.”
Puppet is open source software that automates the configuration, provisioning and management of IT infrastructure, both in development and production. Machine configurations are described in terms of a “desired state” using an easy-to-read declarative language. Puppet uses this description to bring systems into the desired state and keep them there. For more information about Puppet see the extensive documentation available on the Puppet Labs website.
There are two parts to this MS Open Tech contribution. The first is the Puppet Manifests that describe the Windows Azure resources that can be managed using Puppet. The second is a cross platform command line interface (CLI). Using the CLI and Manifests it is easy to manage both Linux and Windows Virtual Machines, Virtual Networks and Affinity Groups and SQL servers. The goal is to maximize performance of your development, test and deployment environments.
Virtual machines deliver on demand, scalable compute infrastructure. Windows Azure provides both Windows Servers and Linux Servers in multiple configurations. To launch a new virtual machine and install the Puppet agent (so that it can later be managed by Puppet) you would us a command similar to the following:
puppet azure_vm create \--management-certificate pem-or-pfx-file-path \--azure-subscription-id=your-subscription-id \--image b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-13_04-amd64-server-20130501-en-us-30GB \--location 'west us' \--vm-name vmname \--vm-user username \--password ComplexPassword \--puppet-master-ip yourPuppetMasterIPAddress
The full list of actions is shown in the table below, to see a list of options available for that action execute the command “puppet help node-azure ACTION-NAME”.
An Azure virtual network enables you to create a logically isolated section in Azure and securely connect it to your on premise data-center or clients machines using an IPsec connection. This allows you to more easily remote debug your applications through a direct connection between your local development machine and virtual machines hosted in Azure. Using virtual networks you will be able to troubleshoot and debug your applications using the same tools you would for on premise development work.
In addition this feature enables you to build distributed applications in a hybrid environment. For example, a web application hosted in Windows Azure can securely access an on premise database server or authenticate users against an on premise authentication server.
To create a virtual network you would execute a command something like this:
puppet azure_vnet set --management-certificate pem-or-pfx-file-path \--azure-subscription-id=your-subscription-id \--virtual-network-name vnetname \--affinity-group-name ag-name \--address-space '172.16.0.0/12,192.168.0.0/16' \--dns-servers 'dns1-1:10.10.8.8,dns2:220.127.116.11' \--subnets 'subnet-1:172.16.0.0:12,subnet-2:192.168.0.0:29'
puppet azure_vnet set
Other available actions are:
Many applications require a database server, we are therefore providing commands to create and configure a SQL database using Puppet. To create a server use a command such as:
puppet azure_sqldb create --management-certificate pem-or-pfx-file-path \--azure-subscription-id=your-subscription-id \--management-endpoint=https://management.database.windows.net:8443/ \--login loginname \--password ComplexPassword \--location 'West Us'
puppet azure_sqldb create
Manifest files are collections of definitions, references and commands that enable you to quickly and repeatably deploy virtual machines in a defined “desired state”. In addition to the CLI described above we are contributing manifest files that can be used by Puppet to configure Windows Azure services. These Manifests are available as part of the Windows Azure module in the Puppet Forge and can be further adapted to suit your specific needs. The manifests provided are:
MS Open Tech is pleased to enable Windows Azure provisioning using Puppet. This is an important component of our ongoing commitment to ensure that users of DevOps tools can leverage their skills within a Windows Azure environment.