From the floor of the PHP Tek Conference in Chicago, with my colleague Peter Laudati, we’re excited to announce the availability of the Windows Azure SDK for PHP version 3.0. This Open Source SDK gives PHP developers a “speed dial” library to take full advantage of Windows Azure’s coolest features. On top of many improvements and bug fixes for this version (see the list from Maarten Balliauw’s preview), we’re particularly excited about the new service management possibilities and the new logging infrastructure.
Beyond the new features, we also feel that version 3.0 of this SDK marks an important milestone because we’re not only starting to witness real world deployment, but also we’re seeing more people joining the project and contributing. We’ve been talking a lot to Maarten Balliauw from RealDolmen who is the lead developer on this open source project and he also shares the same sentiment: “It’s interesting to see the Windows Azure SDK for PHP mature: people are willing to contribute to it and incorporate their experience with the SDK and the platform.”
The most compute intensive part of Facebook app www.hotelpeeps.com is powered by PHP on Windows Azure
My colleague Todi Pruteanu from Microsoft Romania worked with Lucian Daia and Alexandru Lapusan from Zitec to help them get started with PHP on Windows Azure. The result is impressive. The most compute intensive part of the Hotel Peeps Facebook application is now running on Windows Azure, using the SDK for PHP, as well as SQL Azure. Read the interview of Alexandru to get the details on what and how they did it (you can also check out the case study here). I like this quote from the interview: “HotelPeeps Trends running on the Windows Azure platform is the epitome of interoperability. Some people think that a PHP application running on Microsoft infrastructure is science fiction, but that’s not the case.” Another interesting aspect is also the subsequent contribution by Zitec of an advanced “logging” component to the Windows Azure SDK for PHP. This new component provides the possibility of storing logs from multiple instances in a centralized location, namely Azure Tables.
More contributions from the community
As the SDK gets more widely adopted, there is an exciting trend toward more community involvement. For example, Damien Tournoud from the CommerceGuys who is working on developing the Drupal integration module for Windows Azure, recently contributed a patch fixing bugs related to inconsistencies in URL-encoding of parameters in the HTTP_Client library. As we continue to improve the SDK to ensure great interoperability with popular applications like WordPress, Drupal and Joomla! we look forward to engagement more deeply with those communities to make the experience even better.
New! Windows Azure Sample Kit for PHP
Today we are also announcing the Windows Azure Sample Kit for PHP. It is a new project hosted on github that will be the primary repository for all sample php code / apps that developers can use to learn how to take advantage of the various features of Windows Azure in php. Today we are releasing two samples to the repository: the Guestbook application (example of how to use the Windows Azure storage objects – blobs, queues and tables as well as a simple web/worker pattern) and “Deal of the Day” (more on this one later). We look forward to feedback on the samples and I am also hoping to see some forks and new samples coming from the community!
New features to easily manage auto-scaling of applications on Windows Azure
As I mentioned the version 3.0 of the Windows Azure SDK for PHP includes a new “service management” library, which provides easy ways to monitor the activity of your running instances (Windows Azure web roles & workers roles virtual machines), and to start/stop automatically instances based on usage. Then it becomes easy for you to decide which parameters (CPU, bandwidth, # of connections, etc.) and thresholds to use to scale up and down, and maintain the optimum quality of service for your web applications.
The scenario is simple: let’s say you are running an e-commerce site and you want to run daily promotions to get rid of overstocked items. So you’re going to offer crazy deals every day starting at 8am, each deal being advertised to your subscribers by an email blast. You will have to be ready ready to absorb a major spike in traffic, but the exact time is difficult to predict as the news of the deal may take some time to travel through twitter. When the traffic does materialize, you want the site to run & scale independently – providing service assurance but also minimizing your costs (by shutting down unnecessary capacity as loads go down). This is the scenario for the “Deal of the Day” sample application.
What’s the “Deal of the Day” (DotD) sample app and what to expect?
Deal of the Day (DotD) is a sample application written in PHP to show how to utilize Windows Azure’s scalability features from within PHP. We’ve kept is simple and built it in a way that’s easy to deconstruct and learn from.
As a sample application, DotD did not undergo extensive testing, nor does the code include all the required error catching, security verifications and so on, that an application designed for real production would require. So, do expect glitches. And if you do witness issues, send us a screenshot showing error messages with a description. I’ll get a prize to the first 100 bug trackers!
However, to give you an opportunity to see the sample application working, we’ve decided to deploy a live version on Windows Azure to let you test it for real and give the chance to win actual fun prizes! (and sorry for our friends outside of USA, but prizes can be shipped only to a US address )
Wanna play? Just go this way: http://dealoftheday.cloudapp.net/ Looking for the code, just get it on GitHub here: https://github.com/Interop-Bridges/Windows-Azure-Sample-Kit-4-PHP/tree/master/dealoftheday_sample
Architecture of the DotD sample app
The DotD sample app is comprised of several pieces which fit together to create the overall experience:
Each of these parts is essential to the performance and scalability of DotD and for more details I invite you to read this introduction article, and then to dig deeper by reading part I (Performance Metrics) and Part II (Role Management) of our “Scaling PHP applications on Windows Azure” series. We will expand the series with additional in depth articles, the next one will be around monitoring the performance of your app.
We look forward to your feedback on the SDK and the Sample Kit. Once again the URL is https://github.com/Interop-Bridges/Windows-Azure-Sample-Kit-4-PHP
Craig Kitterman Twitter: Follow @craigkitterman
Late yesterday the W3C’s HTML Working Group announced that the HTML5 specification has reached Last Call status.
Last Call is the point at which W3C thinks the group’s work has reached a point of reasonable stability. Last Call is also essentially a call for all communities to confirm the technical soundness of the specification, after which the group will shift focus to gathering implementation experience and building a comprehensive test suite.
Microsoft staffers, along with many other individuals and 194 participants from 54 organizations - including Adobe, Google, Mozilla, Apple and Opera Software - all participate in the Working Group developing the specification for HTML5, the next version of the platform-neutral HyperText Markup Language standard used worldwide for rendering Web pages.
HTML5 is the first new revision since HTML 4.01 was released in 1999, and will include built-in video and audio, a "canvas" element for two-dimensional graphics, new structural labels such as "article" to smooth programming, and a codified process to consistently interpret the hodgepodge styles of real-world Web pages, even when improperly coded.
In a press statement the W3C called for broad review of HTML5 and five related specifications published by the W3C HTML Working Group, which constitute the foundation of W3C's Open Web Platform. The W3C also reconfirmed that, as previously announced, these specifications are on track to become stable standards in 2014.
While feedback is expected on how the current draft specification implements the HTML5 features, W3C expects that the specification is largely feature complete and that any additional features will be limited to those necessary to resolve issues raised during the Last Call period, which will be open for the next 10 weeks until August 3. After that, feedback will be taken only from implementers and through trials of the test suite.
Tim Berners-Lee, the W3C Director, invited additional comment. "We invite new voices to let us know whether the specification addresses their needs. This process for resolving dependencies with other groups inside and outside W3C is a central part of our mission of ensuring the Web is available to all. W3C staff will provide the HTML Working Group Chairs the support they need to move forward, and to ensure that the specification meets W3C's commitments in areas including accessibility, internationalization, security, and privacy," he said.
The Last Call milestone is all the more important given the difficult decision made by the W3C several years ago to undertake a collaboration with a wider group of invited experts to bring the HTML5 innovations into a formal Recommendation. This collaboration has had many challenges, but reaching last call shows that it is working.
The W3C HTML Working Group also set an ambitious timeline almost a year ago, and this announcement of Last Call meets that timeline.
Getting to this point has required compromise and good will from all participants, and we are very pleased to see the degree of consensus across several sub-communities that came to agreement.
However, this does not mean that the HTML5 specs are “done,” just that the Working Group has found solutions that reached some level of consensus for the open issues. It is now time for a wider audience of stakeholders to review these documents and give their feedback.
Rigorous testing of the specification against implementations in browsers and other products will help drive disciplined and technical discussions of issues that come up during the Last Call period.
As Philippe Le Hégaret, the W3C manager responsible for HTML5, notes: “reaching agreements in this large a community is a tremendous achievement. There remain some important issues, but I am confident that the broader community will help us resolve them."
Looking ahead, we are extremely hopeful that the final HTML5 Recommendation can be completed by 2014 as per the current timeline. But, to be clear, developers can already use HTML5 now and the W3C is encouraging them to do so.
Because HTML5 anchors the Open Web Platform, the W3C has also started work on a comprehensive test suite to ensure the high levels of interoperability that diverse industries demand. Microsoft has already donated test cases to the current test suite. While it's the most comprehensive test suite of HTML5 so far, it is far from complete. But the test suite is an important step as it identifies differences in implementation and encourages implementers to fix deviations from the specification.
The W3C has invited test suite contributions from the community and, earlier this year, dedicated new staff to drive development of an HTML5 test suite. Its first task is to expand the existing test framework by mid-2011, which will encourage browser vendors and the community to create test cases.
Microsoft is pleased that this Last Call milestone has been reached. We regard it as a great step forward and look forward to continuing to work with the hundreds of other members of the HTML Working Group to advance the specification.
Co-Chair: HTML Working Group
The WebSockets prototype has been updated on our HTML5 Labs site, bringing the implementation in line with the recently released WebSockets 07 Protocol Specification.
This latest release updates both the server and client prototype implementations based on 07 specification. The majority of the changes in this update are around client-to-server masking.
In the WebSockets 06 Protocol Specification, the entire frame was masked using the 32-bit masking-key, which appeared before the frame. Now, in the 07 protocol spec, only data following opcode and length are masked, again using the 32-bit masking-key that appears after opcode and length.
We are also hosting a WebSocket endpoint, which implements the proposed IETF interop tests, which are defined here. You can find the WebSocket endpoint here: ws://html5labs.cloudapp.net:4502/interoptests.
In addition, our client and server implementations continue to be interoperable with Firefox and Jetty (an open source project providing an HTTP server, HTTP client, and javax.servlet container, developed by the Eclipse community.)
This prototype forms part of our HTML5 Labs Web site, a place where we prototype early and not yet fully stable drafts of specifications developed by the W3C and other standard organizations. The WebSocket API is currently being standardized by the W3C and the WebSocket protocol is being standardized by the IETF.
Building these prototypes in a timely manner will also help us have informed discussions with developer communities, and give implementation experience with the draft specifications that will generate feedback to improve the eventual standards.
This is the fourth update to our WebSockets prototype since it was released on the HTML5 Labs site in December, the IndexedDB prototype has been updated to bring it in line with the latest version of the specification, and we recently added a new WebSockets demo.
We anticipate further HTML5 Labs prototypes of WebSockets when the current Last Call review is completed and an updated draft comes out. We will also update the prototype when the W3C Web Applications Working Group updates the API specification to reflect the resolution of a currently open bug. There appears to be an emerging consensus in the discussion and we expect an update of the editor’s draft soon.
Coming next is the Media Capture API prototype, a draft specification that defines HTML form enhancements to provide access to the audio, image and video capture capabilities of a device.
The first release of the prototype includes Audio capabilities only, but we plan to add video support shortly after the release of the first version.
So, stay tuned for the Media Capture prototype and other new ones that we are working on right now.
Principal Program Manager, Interoperability Strategy Team
I am happy to let you know that today we have made available an update to the FileAPI prototype we released on HTML5 Labs last month.
The Interoperability team at Microsoft developed the File API prototype, which is based on the evolving W3C specification that provides an API for representing file objects in web applications.
This update implements the changed behavior in File.slice explained by a note in the latest version of the w3c spec:
The slice method previously had different semantics, which differed from both Array.prototype.slice and String.prototype.slice [ECMA-262]. This difference was an oversight which has been corrected in this edition of the specification. Some user agents implemented the previous semantics, notably Firefox 4, Chrome 10, and Opera 11. These user agents have agreed to vendor-prefix their slice implementations in subsequent releases.
We also included a minor update to the existing features by adding support for selecting and reading multiple files sequentially via the FileList Interface.
The prototype includes a simple demo that shows how FileAPIs can be used to select images on the local machines, preview them on the browsers, and it can easily extended to add the ability to upload the images on the server.
As you may know, HTML5 Labs is the place where Microsoft prototypes early and unstable specifications from web standards bodies such as W3C. Sharing these prototypes helps us have informed discussions with developer communities, and enables us to provide better feedback on draft specifications based on this implementation experience.
So far, we have released three updates to our WebSockets prototype since it was released on the HTML5 Labs site in December, the IndexedDB prototype has been updated to bring it in line with the latest version of the specification, and we recently added a new WebSockets demo.
Coming next is the Media Capture API prototype, a draft specification that defines HTML form enhancements to provide access to the audio, image and video capture capabilities of a device. The first release of the prototype includes Audio capabilities only, but we plan to add video support shortly after the release of the first version. So, stay tuned for the Media Capture prototype and other new ones that we are working on right now.
On May 6-8, 2011 we took part in a major Joomla! event, J and Beyond, that took place in Rolduc Abbey in the Netherlands. It was indeed an exciting opportunity to connect with the community and in an extraordinary venue. Not only was it a medieval spiritual place for worship but it was also a school and beyond theology they covered quite a few subjects. This time we had a bunch of geeks wandering the halls of this unique institution and at certain point it felt like a Harry Potter movie with a different kind of “wizard”ing going on
We presented some sessions at the event …
“IE6 RIP - send flowers” where we talked about moving to a modern browser. We talked 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 also covered the work that 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. IE6 RIP...Send flowers!
“Microsoft and the Joomla! Community” we talked about our 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 discuss what we have done to help make Joomla! accessible to more users on Windows, IIS, WebMatrix and the work around multi-db support. Microsoft and the Joomla! community
We also had Sudhi Seschala, our partner from Hooduku join us, and who delivered 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. Joomla! 1.6 support multiple databases
We also had the opportunity to be interviewed by our friends at JoomStew Radio, Alice Grevet and Dianne Henning and a guest interviewer, Henrik Hussfelthad who dragged us over there and I was joined by Fernanda Badano, also for Microsoft, Hagen Graf from Cocoate and Toni Marie and Victor Drover from Anything Digital join us for a round of discussions. The podcast is available at JoomStew at J and Beyond 2011 - Part 4 MP3 Download.
I also got a chance to interview many friends from the Joomla! community including Ryan Ozimiek, Sudhi Seshachala, Louis Landry and many more which will be coming online at our InteropBridges.tv on Channel9 or by clicking at the images below …
Joomla! Community and Microsoft, Interview with Ryan Ozimek @ J and Beyond 2011 Jas Sandhu @jassand chats with Ryan Ozimek @cozimek, President of Open Source Matters (OSM), the non-profit organization that provides organizational, legal and financial support for the Joomla! open-source project, at the J and Beyond 2011 conference in Kerkrade, Netherlands. We talk about what Ryan does at OSM, the conference and Microsoft’s participation with the community including the work on mutli-db work supporting SQL Server and SQL Azure , Joomla in WebMatrix and more.
Joomla! Community and Microsoft, Interview with Sudhi Seshachala @ J and Beyond 2011 Jas Sandhu @jassand chats with Sudhi Seshachala, Founder & CTO at Hooduku at the J and Beyond 2011 conference in Kerkrade, Netherlands. We talk about what Sudhi’s involvement with the Joomla! community, the conference, his work on mutli-db work supporting SQL Server and SQL Azure and working with Microsoft.
Joomla! Community and Microsoft, Interview with Louis Landry @ J and Beyond 2011 Jas Sandhu @jassand chats with Louis Landry @louislandry, a core developer and leadership team member for the Joomla! open-source project, at the J and Beyond 2011 conference in Kerkrade, Netherlands. We talk about what Louis role today is, the conference, where the project is heading in the future, the work on mutli-db work supporting SQL Server and SQL Azure and Microsoft’s participation with the community.
We’ll be publishing more videos on InteropBridges.tv with more community members soon.
We had a great time there especially with connecting the diverse set of folks who represented the community. I would like to thank the organizers of J and Beyond 2011, Ryan, Sudhi, Louis and all our friends who joined us from the Joomla! community. I look forward to seeing you all again at soon.
Jas Sandhu, Technical Evangelist, @jassand
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. Enjoy!
Craig Kitterman Twitter: @craigkitterman Web: http://craig.kitterman.net