* Microsoft talks at the summit
+ Welcome Keynote (Sam Ramji)
+ Silverlight (Brad Abrams)
+ Visual Studio (Brad Bartz and Juan Rivera)
+ Windows Azure and the Cloud (Manuvir Das)
+ SQL Server (David Sceppa, Ruwen Hess)
+ Web Application Installer - What could Microsoft do? (Lauren Cooney)
+ Office document formats (Doug Mahugh)
- What would you do if you were Microsoft?
Before moving on to the main subject of the article, as usual, I would like to mention a couple news that may be of interest to the PHPClasses site users.
- PHPDeveloper.org news in the PHPClasses site newsletter
For a long time I have been trying different approaches to enrich the PHPClasses newsletter with news that are relevant to PHP developers.
In the past I tried aggregating PHP news from Digg.com. However, somebody needs to go through the effort of picking which news are relevant. I invited the site users to propose news by becoming friends of the phpclasses user at Digg.com, but over time it did not work because almost nobody was willing to take time and do it regularly.
Also, Digg has been making very hard for PHP news reaching the home page, so very few people are bothered to submit PHP news there.
Last month I met in person Chris Cornutt, creator and developer of the PHPDeveloper.org site. We met at the Microsoft Web Development Summit (read below for the event details) to which we were both invited to attend.
For many years, Chris has been doing an excellent job of summarizing the most important news that he considers relevant to PHP developers.
For the lack of a better definition, PHPDeveloper.org is a sort of Slashdot.org for PHP. Despite Chris task certainly takes him a lot of time, he has been doing it mostly for the love of PHP. Kudos to Chris for that.
Despite there are other sites already syndicating his content, I thought I should ask his permissions, so his content is republished in the PHPClasses site newsletter in a way that is OK for him.
Therefore, since a few days ago, the PHPDeveloper.org news are included in the PHPClasses newsletter. Each article includes a link to the original page in PHPDeveloper.org, so you may go there and follow up with any comments you want to make about the articles.
I still would like to have some day a sort of PHP news aggregation in the PHPClasses newsletter based on user submitted news and articles that reflects what the PHPClasses users think it is important. It would be a sort of PHPClasses Digg. That was the original purpose of syndicating PHP news aggregated in Digg.com .
Since that will demand a lot of time and effort to develop, and there are more important things to develop in the site first, syndicating PHPDeveloper.org news is a great alternative way to enrich the site newsletter for now.
- Packt seeks authors for new Beginner Guides books
Packt book publisher recently started a new series of books about Open Source tools called Beginner Guides.
They are looking for authors willing to write that kind of books. If you are interested, please go to this page to learn how you can submit your book proposals.
- What is Microsoft up to with PHP?
As you may be aware, Microsoft has been participating in several initiatives supporting Free and Open Source Software (FOSS) projects like Apache, Samba, PHP, etc..
Lately Microsoft has got closer to the PHP world. Not only they have been sponsoring several PHP events, but they also have contributed code in the form of a patch to ADODB PHP package, which is LGPL licensed, to make it work better with Microsoft SQL server, among other initiatives.
- Microsoft explaining their intentions in PHP events
As I mentioned before, here in Brazil the PHP community organized a large PHP event named CONAPHP - Congresso Nacional de PHP . It had more than 20 PHP speakers and over 1,000 people attended to the event.
Sometime ago before this event, Guilherme Blanco, one of our fellow members of the event organization team, contacted me telling that Pierre Alain-Joye was looking for companies in Brazil that support PHP running on Windows. I wondered why Pierre was so concerned about that.
I contacted Pierre and we had a long talk about what he had in mind. It turns out that Pierre is now working for Microsoft OSS Labs division. This is a division that seeks better interoperability between Free and Open Source Software and Microsoft products, so products of both worlds work well together.
Pierre has been a long time contributor of the PHP project. I remember Pierre since the early days of PEAR project. Knowing that Pierre now works for Microsoft in a division that cooperates in Free and Open Source software projects, made me feel confident that this could be a good thing for PHP developers in general.
Anyway, I do not use Windows in my daily work. I use Linux. Actually I use OpenSuSE Linux since version 6.4 released on the year 2000 when it is only called just SuSE Linux. I am not a Linux die-hard or anything like that. It is convenient for me to use Linux because that is what I use in the servers of my Web sites.
The fact that Novell bought SuSE Gmbh in 2003 and Novell has a Linux partnership with Microsoft since 2006 is a mere coincidence. So it is not related to why I am writing this article.
I do not have anything against Microsoft or Windows, but for me using Windows is like start writing with the left hand, given that I am right handed. I even have dual boot desktops and notebooks with OpenSuSE and Windows, but I only use Windows if I need to run something that only exists for Windows.
So, I could not help Pierre directly, but I know several companies that have PHP applications that support PHP under Windows, and I can put those companies in touch with Pierre and other Microsoft people.
Pierre also told me that they were looking to sponsor PHP events, so they can present their strategy for Free and Open Source Software.
That was when I told him about our PHP event in Brazil. So, Microsoft became a sponsor of the event and they gave a keynote speech about what they have in mind, and another technical talk about how to run PHP better under Windows.
- Interview with Microsoft OSS Labs people
If you are in Brazil or in another country on which there will be an event that Microsoft is having this kind of talk, you may want to attend to understand better what they have in mind and how it can benefit the PHP community.
For the rest of the people that will not be able to attend to such events, I thought it would be interesting to do a small interview with Pierre, so he can explain better what is going on. Eventually many of us will stop acting suspicious about these Microsoft initiatives, and see if we can benefit somehow from them.
Unfortunately, for now Pierre is a contractor, so is not yet a full time employee of Microsoft. He cannot speak on behalf of Microsoft. Therefore, I contacted Microsoft OSS Labs people and Tom Hanrahan kindly offered to give this interview.
PC = PHPClasses
TH = Tom Hanrahan
PC: Tom, can you talk a bit about yourself, where you live, your work history with Microsoft and your recent involvement with the Open Source community and PHP in particular?
TH: I am director of the Open Source Technology Center at Microsoft (MOSTC). Our mission is to improve interoperability between Windows and open source software.
The center is composed of two laboratories, the Open Source Software Lab in Redmond and the Microsoft-Novell Interoperability Lab in Cambridge, Massachusetts.
We have a little different focus in the two labs. In Redmond we're focused on enabling open source applications to run on the Windows platform. This is where we do our PHP work. In Cambridge we focus on interoperability between Windows and Linux. This is where we do a lot of virtualization work.
I live near the Microsoft Redmond campus but make regular visits to the Cambridge lab. I've been with Microsoft since May of 2007. Before joining Microsoft, I was engineering director at the Linux Foundation (prior to that the Open Source Development Lab). And before the Linux Foundation and OSDL, I managed Linux kernel developers at the IBM Linux Technology Center.
My recent involvement with the PHP community has been to join online community forums and attend community conferences. My first goal was to get to know individuals in the community and understand how the community works. Internally, I've worked with my team to decide how we can best engage with the community on projects of mutual interest.
PC: Can you tell why did you decided to contract an important PHP community developer, like Pierre Alain-Joye, and what did you do to persuade him to work for Microsoft?
TH: Pierre is one of the leading PHP developers on the Windows platform. It was natural for us to begin working with him when we decided to make Windows a great platform on which to run PHP.
We didn't set out to persuade him to work for Microsoft. We just worked with him and I believe came a mutual realization with him that it made sense for Microsoft to take him on as a contractor.
PC: Why do you think these initiatives of Microsoft are important to the Free and Open Source Software developers? What can you say to PHP developers in particular to convince that this may be a good thing for them too?
TH: Open source initiatives at Microsoft are important to the open source community because they give developers greater exposure for their products through access to a broadly-adopted platform.
They're also important because the Windows platform can accelerate the development process by providing developers access to underlying technology including web, database, identity and software management services.
Another point to consider is that when we engage with the developers in an open source community, our engineers at the Microsoft Open Source Technology Center make contributions directly to the community's efforts.
And finally, the initiatives are important because they break down barriers between proprietary and open source developers allowing them to benefit from each other's work.
All of these points apply to the PHP community. In the past year we've demonstrated significant performance improvements on Windows making PHP applications more attractive to Windows customers.
The IIS team created the FastCGI module to implement process persistence and better manage non-thread-safe applications. And the SQL Server team has created a PHP driver providing access to database services on Windows.
Microsoft engineers and contractors have made contributions to the PHP runtime engine and to PHP application projects. And communication between Microsoft, commercial open-source-based companies including Zend, OmniTI and iBuildings, and open source developers has broadened significantly.
PC: What about Microsoft, why do you think this approach to the Free and Open Source software world is important for Microsoft as corporation?
TH: Most importantly, this offers the best value to our customers. Customers know they have a range of choices, including open source choices, that are well-supported on the Windows platform.
Closely following this in importance is the fact that it expands the community of engineers developing applications that run on the Windows platform. Open source developers are some of the brightest engineers in the industry and Microsoft is motivated to help them create products that run on Windows.
PC: OSS Labs is just a division of Microsoft. How other divisions of Microsoft are taking your initiatives? Don't they fear that giving evidence to PHP and other Open Source products may be seen by Microsoft customers as an endorsement of such products, in a way that may affect sales of Microsoft similar products, like for instance PHP versus .NET solutions?
TH: Part of our job is to bring to the attention of other Microsoft teams the benefits we can derive from integrating and interoperating with open source products; some teams at Microsoft reach the same conclusion on their own.
The MOSTC serves as a resource to any team that determines it's in their business interest to work closely with selected open source products.
With respect to PHP, we work on a daily basis with the IIS and SQL Server teams and they understand the value of having PHP run well on Windows in conjunction with their products.
Like a lot of other companies, we look at what the net benefit is to Microsoft and when it makes sense we engage with the open source community with which we would like to work.
PC: Can you talk more about Microsoft OSS upcoming initiatives that may be of interest of the PHP community?
TH: For PHP we will continue working in two key areas, improving the performance of the PHP runtime engine on Windows and providing seamless integration for PHP applications using the SQL Server driver.
Getting PHP 5.3 to build under Visual C 9 was a big accomplishment that we can now begin leveraging to improve performance. Using the VC tools we can locate and fix performance bottlenecks. In parallel to this effort we'd like to work with the community on an implementation of the Alternative PHP Cache for Windows.
On the application side, having our ADOdb patches accepted by the community was also a major accomplishment. We're now in the process of submitting patches that support the SQL Server driver to the Advance Poll, PHProjekt, TUTOS and Webcalendar projects and we've identified other applications where we are doing similar work.
PC: What do you recommend that PHP developers and companies should do to get in touch and benefit from Microsoft OSS Labs initiatives?
TH: Engage with us in the community activities where we are active. Our goal is to work with the community in an open source fashion. This means we will be attentive and responsive on mailing lists and IRC. One easy point of contact is the #php-dev-win IRC channel on FreeNode.
PC: Anything else you would like to mention in this interview?
TH: Yes, I'd like to emphasize that it's our intention to be full-fledged, active members of the PHP community and to work with the community in the same fashion every other member of the community works.
We intend to make positive contributions for the benefit of the entire community. Visit Port 25 to read more about the open source community at Microsoft.
PC: Tom, thank you for this interview and good luck in your work at Microsoft OSS Labs.
TH: I appreciate having had the opportunity to talk with you.
- Microsoft Web Developer Summit review
Since 3 years ago, Microsoft organizes a Web Developer Summit at their headquarters in Redmond. They invite mostly PHP core developers and other PHP individuals they consider influential.
During the talks with Pierre, he invited me to participate in this year's summit. I have heard of the previous editions of the summit but did not know what exactly this was about.
Every year I am invited to go to about half dozen PHP conferences. So, when I get an invitation to attend a conference, I automatically assume that I am supposed to be a speaker. Therefore I proposed to give a talk about PHP and Microsoft, and another talk about PHP in Brazil that was proposed by the summit organizers.
When I got there I realized that most of the PHP community attendees were not giving any talks. They just went there to attend the talks, ask questions, make comments or give their opinions on the presented subjects.
Despite I gave the two planned talks, I only realized when I was at the summit that probably I was not really required to give any talks. Anyway, I hope the talks were useful to anybody that went there.
About half of the summit talks were given by Microsoft employees that came to talk about their products, like IIS 7, Internet Explorer 8, Silverlight, Windows Azure, SQL server, Web Application Installer, Visual Studio, etc.. There were some other talks about Microsoft Open Source current and future initiatives. More on this may be read below.
The other half of the talks were given by several speakers of the PHP community like Jason Ragsdale on the Yii framework of the Prado creator, Symphony framework by its lead developer Fabien Potencier, PHP-Gtk by Elizabeth Smith and Andrei Zmievski, and using PHP with .NET via Phalanger by M. David Peterson.
I do not know if the talks given by PHP community speakers raised much interest to Microsoft people. It felt that these speakers were invited to make the summit more interesting to other PHP developers that were invited.
Actually, if the summit was all about Microsoft talks it would probably be very boring. So I think it was a good idea to mix talks from PHP community speakers and Microsoft speakers.
* My PHP talks at the Summit
My talk about PHP in Brazil was just to give an overview of the size and activities of the PHP community in Brazil, user groups structure, top mailing lists, existing magazines and the most important events. This was probably not so interesting. Anyway, the slides may be found here in case you are curious:
The other talk was more relevant to the summit, as I presented my views on the things that Microsoft could do to make PHP run better on Windows. This may seem an odd topic for me to talk about, given that I am not a Windows user.
However, what I presented is a reflex of my experience as a moderator of several PHP mailings, and also as a developer of PHP components of which I get a lot of feedback from users that have difficulties while running PHP on Windows.
Despite it was a short talk, it was divided in two parts. The first part I addressed Windows specific problems that can be solved with existing solutions based on pure PHP code, such as accessing Windows shares that require authentication, sending e-mail using Microsoft Exchange or through SMTP servers that require authentication. Some of these solutions are available in the PHP Classes site.
The second part of the talk addresses presented possible solutions to PHP problems on Windows that require changing PHP core code, like automatic login in PHP applications for users already authenticated in Windows logon, file locking problems, getting the DNS MX records for use in e-mail validation and running PHP with stability on multithreaded Web servers like IIS and Apache 2 (worker).
It was interesting to learn from Elizabeth Smith that getting the DNS MX records is a problem that was fixed in PHP 5.3, which is currently is still alpha stage. I also learned from Elizabeth that she has be doing a great effort to fix thread safety of PHP extensions, such as the gettext extension. She is interested to know from PHP Windows users of any other PHP extensions that still have thread-safety problems.
Anyway, kudos to Elizabeth, Pierre Alain-Joye and others for their work is making better the life of developers that use PHP on Windows.
The slides of this presentation may be found below for those that want to check these issues further:
* The point of making PHP thread-safe
Regarding thread-safety I was questioned during my presentation by Stas Malishev of Zend and others, about the purpose of an effort to make PHP totally thread-safe. I was at the end of my talk and I was pressured to finish, so I could not discuss this in more detail then.
Talking a bit about this with Stas after the talk I could explain better my point. This is not a trivial matter and it probably deserved a separate post, but to make it short, it is all a matter of making a much more efficient usage of RAM, and so reduce the costs of scaling PHP applications to handle much more simultaneous requests with the same amount of RAM in each Web server machine.
Giving more detail, each PHP Web server process alone (Apache 1, Apache 2 prefork, IIS and others with FastCGI) consumes in average 12MB of RAM. That gives about 80 simultaneous users per GB of RAM.
Once allocated, memory is not returned to the operating system until the processes end. It cannot be reused by other processes because each process is isolated from the others.
If a PHP script has a memory usage peak, caused for instance by retrieving a large database query result set in memory or creating a large array, things get worse because the server RAM is exhausted faster.
In a multi-threaded Web server (Apache 2 worker, IIS ISAPI and others) there is only one process, and so there is only one memory pool for all threads. This allows making a better use of RAM, as all processes can reuse memory freed by others.
This way you can run more simultaneous PHP requests within same amount of RAM. Despite thread-safe code tends to run slower, if you are running a site that needs to handle many simultaneous users, you need to buy less Web server machines to handle the same load if you use a multi-threaded Web server instead of a preforked Web server.
One typical application that may require handling many simultaneous users is a chat application that would use a very responsive COMET based AJAX solution, instead of the repeated polling XMLHttpRequest accesses. I already talked about COMET based AJAX solutions and its advantages in a past post:
This was the point I was trying to make regarding the effort to make PHP totally thread safe. It would benefit PHP developers using either Microsoft IIS, Apache 2 worker and other multi-threaded Web servers.
As I mentioned, this is not a trivial problem. It requires careful code PHP code auditing. In the presentation I suggested using tools like beacon developed by Dr. Sagar Chaki to find C/C++ code that needs to be fixed to become thread safe. The last slide of the presentation provides more details and the contact of Dr. Chaki, in case someone wants to check this further.
* Microsoft talks at the summit
As I mentioned, about half of the talks were given by Microsoft employees. It was obvious to me that the most important goal of Microsoft was to give these talks and get the PHP community feedback.
It is also important to mention that we were treated very well and we should all be thankful for the courtesy and kindness in particular of Karri Dunn and Tanya Young that managed the event with great care.
Personally I also would like to thank to Karri Dunn and Lauren Cooney for their interest to help me with my talks before I arrived and then while I was already there.
Other than being nice people in person, Microsoft paid all our expenses: plane tickets, great hotel, transportation to the Microsoft campus where the event took place, permission to buy goods from Microsoft store at employee prices, food and beverages at the event and also at night events in nice bars near the hotel.
There are several other big companies that say they support PHP and Open Source, like IBM, Oracle, Sun, Google, etc... But as far as I know, none of them organize summits like this on which they give all the attention to what the PHP community has to say. Point for Microsoft!
Since the beginning I wondered why? I mean why is Microsoft so committed to get the PHP community feedback when many of us only use Open Source alternatives instead of their proprietary products? What is the catch? Talking with other PHP community attendees I realized they were asking the same questions.
I decided that I had to be frank and ask different Microsoft attendees about that. The basic answer that I got is that PHP and the general Open Source market got too big to be ignored by Microsoft.
Actually they reckon that often their customers end up choosing Open Source tools and applications, even when Microsoft provides similar solutions that they assume to be superior. Sometimes their customers use Windows but then prefer to use PHP applications for at least some of their purposes.
It seems they realized that if they cannot win in all fronts, they should make an effort to win at least in some of the fronts. For instance, their customers could use PHP, but if they can convince them to use Windows instead of Linux, SQL server instead of MySQL, or IIS instead of Apache, the effort of making PHP run better with their products is well worthy.
There were several talks about Microsoft initiatives and their products. Some were more interesting to me than others.
I got it right from the beginning that they wanted our feedback. So, I made a few comments, but later when I thought further about the subjects, I wish I have made more comments and asked more questions to get answers about things that puzzled me. Anyway, let me comment on each of the talks that I found more relevant.
+ Welcome Keynote (Sam Ramji)
Sam Ramji is the head of Microsoft division that organized this and other events that interact with the Open Source communities. He talked about their initiatives and ended pointing us to Port 25 blog, on which they talk about interoperability with Free and Open Source products.
This is one of the things that puzzles me. If Microsoft is now giving so much importance to feedback from the Open Source community, I asked why this blog is not under a microsoft.com domain? It may not be their intention, but it seems that they do not want their customers to know about their Open Source initiatives.
Sam replied that they actually have a page about their Open Source initiatives under microsoft.com .
This page was news to me and to most other PHP developers that attended to the event, despite I was told it exists for more than one year.
My suggestion to Microsoft is that they move the Port 25 blog to this page. It would become much clearer how Microsoft is interested in making Open Source products interoperate better with their products.
It would also help us to forward the message with greater credibility that Microsoft is interested in cooperating with the PHP community and the Open Source communities in general.
+ Silverlight (Brad Abrams)
Silverlight is Microsoft's response to Adobe (formerly Macromedia) Flash.
I am still not sure why Microsoft created a competitor of Flash. The first thing that comes to mind is that nowadays Flash is used heavily for streaming video and audio, so it probably threatens Microsoft Windows Media server market.
It makes sense for Microsoft but other than multimedia streaming, I dislike Flash and discard it for most of my purposes.
First it is horrible for indexing content served by Flash, so you never get the same search engine visibility to your content when you use Flash from when you use plain HTML.
Using Flash has severe impact on the visitors received by content sites that use it. Typically you get more than 50% of the visitors of content sites for free from Google search result pages. Using Flash to serve content, may mean you will loose all those free visitors that Google sends you.
There are agreements between Adobe and Google to address this problem, but as far as I know not much has been done. If this is hard for Adobe, now imagine the difficulty of Microsoft persuading Google to help them in their business, especially given that they are strong competitors.
Maybe if Microsoft agrees on putting Google AdSense on Silverlight applets, Google may think about it. But then they would also have the indexing problem because AdSense must crawl the content to put relevant advertising.
Another thing that ticks me about Flash is that it makes Web pages look like alien things that do not belong there. For instance, if you try to select all the page content for copying and pasting, it does not include content from the Flash applet.
Yet another thing that makes Flash applets look like alien things, is when you are scrolling the page using the the mouse wheel, once the mouse pointer hovers the Flash applet it stops scrolling. It is so annoying!
I do not know if there are any solutions for this, but if there are, I suggest Microsoft takes cares of the Flash annoyances besides copying other Flash features. I would make the same suggestion to Sun that just released JavaFX, their own Flash alternative. It has the same problems as Flash and Silverlight.
On the positive side, thanks to Miguel de Icaza and the Mono team, since December 1, Silverlight applets run also on Linux with Firefox and probably other browsers. Microsoft Silverlight plug-in installer page redirects to the plug-in installer page of Moonlight, which is the Mono based .NET implementation of Silverlight.
It is still in beta and only supports Silverlight 1, but in a few months it will support Silverlight 2 as well.
Another interesting note, is that it is possible to write Silverlight applications in PHP, thanks to the Phalanger project. PHP can be used for the same purpose as ActionScript is used in Flash.
During the Silverlight presentation I commented that there is a PHP extension named Ming that allows generating Flash applets dynamically using PHP.
This is not the same thing as above for writing Silverlight applications in PHP using Phalanger. I asked if there is were any plans to have a similar extension for Silverlight like Ming for Flash. Nobody had any idea about that.
+ Visual Studio (Brad Bartz and Juan Rivera)
Juan Rivera is the developer and owner of JCX software company. He developed an extension for Visual Studio that provides PHP support named VS.PHP. Juan was invited to present his extension product in the summit.
Since August 2007 VS.PHP is one of the prizes available to winners of the PHP Programming Innovation award that the PHPClasses site organizes every month.
VS.PHP provides good PHP context aware Intellisense support. Since about 70% of the PHP developers use Windows in their development machines to create their PHP applications, I am sure that many of them would appreciate if a bundle of Visual Studio with VS.PHP would be available at affordable prices.
Therefore I think that Microsoft should either partner with JCX to distribute VS.PHP as part of Visual Studio, or make a generous offer to buy JCX company from Juan.
One great improvement to VS.PHP that I suggested to Juan is the support for developing extensions and add-ons for Visual Studio that could be written in PHP.
That would make Visual Studio more interesting for PHP developers, as it would make it possible to create new extensions to assist on the development of PHP applications using PHP specific tools and frameworks.
Great Open Source applications like Firefox and Wordpress have achieved great popularity thanks to many extensions and plug-ins that were developed by their community of users.
I already gave the same suggestion to the people of the now deceased Maguma company to integrate a similar capability in their PHP IDE. They allowed the development of IDE extensions using Python, but most PHP developers do not know enough Python to make it appealing.
I also gave the same suggestion to Andi Gutmans of Zend. The problem of Zend Studio is that it is all based in Java. Currently it is based in Eclipse. Eclipse is extensible, but to extend it you need to write Java, which is another language that most PHP developers have no interest in using.
Until now, only Delphi for PHP provides support to extend the IDE using components written in PHP. That is a feature available since version 1.0 released in 2007. I already published a review of both 1.0 and 2.0 versions of Delphi for PHP:
Extending a PHP IDE with add-ons written in PHP is great but CodeGear is not advertising that capability of Delphi for PHP, nor their are making any effort to attract PHP developers to write extensions for that IDE. That is a shame.
Therefore I believe it would be worth for Microsoft to not only provide an IDE that supports PHP and can be extended with PHP components, but also there should be an effort to attract PHP developers that are authors of prominent PHP frameworks and tools to develop add-ons.
That could help accelerating the PHP development using such frameworks and tools. It would make Visual Studio a more appealing solution for PHP developers.
One way to make that happen without great investment in hiring PHP developers, would be for Microsoft to organize an initiative similar to Google Summer of Code, on which proposed projects are developed by sponsored students with the guidance of mentors.
+ Windows Azure and the Cloud (Manuvir Das)
Windows Azure is the name of the cloud operating system that Microsoft has been working on. It is not like a regular operating system that you have to install in your machine. It is basically a set of APIs that can be used to build Web applications. Such applications are available by accessing a Web site.
The big deal about what is called the Cloud, is that these applications run in virtual Web servers. This means that if you need more processing power, or bandwidth to handle accesses from more users, or to execute tasks that demand more processing, that is made available on demand.
In general Web applications running on the cloud are hosted in server machines that are physically shared by other applications. If the demand grows, the configuration may change so the applications may share the server machines with less applications or even migrate to dedicated machines. If the demand returns to lower levels, applications may migrate back to shared servers, thus making more efficient use of the hardware.
This is just the theory. In practice the cloud technologies are still being developed to make these application migrations more smooth and transparent to the users.
Amazon provides a solutions to achieve this in a non-automatic way using Amazon EC2: Elastic Computing Cloud.
Google also provides a solution named Google App Engine. I have talked about it in a past post. It is intended to provide automatic scalability, which they call "scalability out of the box".
Windows Azure aims to provide a platform more like Google's. The problem with Google App Engine is that it only supports developing applications written in Python. The author of Python is a project leader behind Google App Engine. So it is pretty much useless for developers using PHP or other languages besides Python.
Currently Windows Azure only supports the so called .NET languages, so it does not support PHP. Given this was a summit for PHP developers, obviously somebody asked whether PHP would be supported and when.
What puzzled me about Windows Azure, is that from the presenter reply, it seemed that there are no plans to support PHP any time soon. So why presenting something to us that we will not be able to use? I was disappointed. I also noticed other PHP developers at the summit feeling the same way.
I attended the Google Developer Day event earlier this year here in São Paulo (Brazil). No PHP support any time soon, is basically the same answer that we got from Google App Engine people.
My perception is that nowadays Microsoft seems so obsessed with competing with Google that they copy a lot of the things Google does, including their limitations. Google App Engine only supports Python, Windows Azure only supports .NET languages.
But wait, PHP is also a .NET language thanks to the Phalanger project. This is a project sponsored by Microsoft that compiles PHP into .NET assemblies.
Phalanger even comes with Visual Studio 2008. So, why isn't PHP supported by Windows Azure now? I wish I had asked that question at the summit.
+ SQL Server (David Sceppa, Ruwen Hess)
SQL server is probably one of the Microsoft products that gets less interest from PHP developers. The main problem is that it only runs on Windows and most PHP sites use Linux for hosting. Even for PHP applications that are run on Windows, often other more traditional database servers are preferred, such as MySQL and Oracle.
In the SQL server presentation several new features of its PHP extension were presented, like the ability to connect to a database server using encrypted connections and accessing BLOBs using PHP streams. Microsoft also contributed a patch to enhance the SQL server ADODB driver to take advantage of these features.
Anyway, the PHP community had a specific request for the SQL server support that was not yet attended: a PHP driver that allows accessing SQL server databases from Linux (not using the FreeTDS library). That would be something that could show the effective commitment from Microsoft to improve interoperability between their products and Free and Open Source products.
When asked, Microsoft attendees could not guarantee that they will provide a library to access SQL server database from Linux. It felt that it depends on overcoming political hurdles inside Microsoft. I guess that is one more task in the Microsoft Open Source Labs to do list.
+ Web Application Installer - What could Microsoft do? (Lauren Cooney)
After my talk on what Microsoft could do to make PHP run better on Windows, Lauren Cooney followed with a discussion on what Microsoft could do to work in greater cooperation with the PHP community.
This was mostly a discussion about non-technical initiatives. One of the proposals was to have a different kind of summit with the PHP core developers and large corporations, not only Microsoft but also others. I suppose they meant IBM, Oracle, Sun, Google, etc.. Microsoft would use their contacts to bring people from the other corporations, even though they are competitors.
This would be a great initiative because PHP definitely needs the help of these companies to be taken with credibility in the so called enterprise market.
Another proposal from Lauren that got my attention was related with the Web Application Installer. This is a free Microsoft application that helps installing many existing Open Source applications, like Wordpress, Drupal, osCommerce, phpBB, etc..
This installer application lets the users choose which Web applications they want to install in their machines. It downloads and installs the selected applications, as well any dependent applications, like for instance MySQL database server which is needed to run most of the available PHP applications.
This is great because it makes it easy for PHP developers running Windows to quickly install all the necessary applications they need to use to develop their sites. It is a sort of Microsoft alternative to the WAMP bundles, except that it allows installing more common PHP applications besides the base PHP, Web server and database server installation.
Lauren explained that other developers may submit other PHP applications besides those that are available, to be distributed the same way. That seems to be a great way for less known PHP applications to achieve greater popularity.
The actual proposal of Lauren that got my attention was introduced when she asked if we think it would be interesting to provide means to monetize on the applications being distributed via the Web Application installer.
There was a brief period of silence after she asked that question. Nobody was getting the point of how distributing applications for free could be monetized. She explained that Microsoft could charge for non-free applications and forward the money to the developers.
This is an innovative idea that nobody from the Open Source world was expecting from Microsoft. The fact is that most PHP developers present in the summit work for somebody else. They do not actually sell software. So, it felt like it was the right question being asked to the wrong audience.
However, I think there are plenty of PHP developers that have their own applications and they would love to sell somehow to a greater audience. I am thinking of developers that have written PHP applications for one client and then they evolved those applications to resell to other clients.
I think those developers could benefit from cooperating with Microsoft in helping them to distribute trial versions of their applications, that could be upgraded to full versions for a fee or by selling premium support contracts.
Microsoft would provide the means to distribute the applications, charge for the licenses or support contracts, and forward the profits to the developers. Microsoft could take a deserved share of the profits as a reseller, making this a self-sustained marketplace.
+ Office document formats (Doug Mahugh)
One concern that some PHP developers expressed is about the ability to read and write documents in the old Office versions binary formats. Therefore Doug Mahugh was called for an impromptu session to answer some questions about these matters.
Doug started talking about Office formats including Office Open XML (OOXML) ISO standard approval process. By that time it was started a polemic discussion regarding the OOXML ISO approval processed, despite this was not the reason why Doug was called.
Personally, I am not interested in participating in these discussions because it boils down to politics. The only thing that puzzled me in the OOXML process and I wish I have asked Doug, is why did Microsoft need to have an alternative ISO standard for Office XML document formats?
Maybe these are naive questions, but isn't ODF, also used by Open Office and other applications, sufficient for those purposes? If not, wouldn't it be better if Microsoft contributed to evolve ODF to match whatever needs they have in their Office applications?
I have an hard time understanding why Microsoft insists on competing with everything and everybody. Maybe there is a reason that is not obvious to me. What I see is that some times Microsoft often gets the "bad guys" image needlessly.
In this case one thing that they could do to move away would be to drop OOXML and collaborate in the evolution of ODF. Maybe now it is too late, as they have gone through the whole process of OOXML ISO approval, or maybe not.
As for the original request of having a C library that could be used to read and write Office (Excel) binary format files, it was recommended to check this site, but it seems to be only about reading and writing OOXML files in PHP.
- What would you do if you were Microsoft?
This was a very long article. I wrote it with such great detail because I thought it would be useful to let the PHPClasses site users know about what Microsoft is doing that may benefit the PHP developers, and also to give some feedback to Microsoft people regarding what the PHP developers think about what they doing.
You may also want to read a summary about the summit and what Microsoft has been doing by Derick Rethans. He was also invited to the summit.
I sum I think it is all very positive, despite I expressed some criticisms that reflect things that I expected to be better. But I am optimistic regarding the changes that Microsoft seems to be taking.
I see these changes as very good progress relative to the past, when we have seen Microsoft leaders neglecting and even attacking the Free and Open Source world. Finally they realized it was neither good for them nor for the Open Source communities.
This leads me to comment another aspect of how Microsoft actions are perceived, at least by me, that is related to their competition. Often we see Microsoft willing to compete aggressively with other companies that they take as their competitors.
Obviously Google is one of such companies. One thing that puzzles me, is that most things Microsoft does to compete with Google is to copy their initiatives. In the past that may have worked by leading the competitors to out of business, or be bought by Microsoft or other companies.
That will not work with Google, not only because Google is already too big to be brought down that way, but also because Google seems to be a never ending factory of innovation.
In many aspects, Google strategy made Microsoft irrelevant. Attacking Google in the same way would be like trying to bring down the Berlin wall hitting it with your head. Not only will not affect the wall, but you also get a big headache.
So, if copying Google or any other big company will not work, what will work for Microsoft?
First me let me put the disclaimer, that I feel I am nobody to give advice to any big company, especially to Microsoft that is still the largest software company in the world.
Anyway, this brings me to the Blue Ocean Strategy. A few weeks ago I published a review of a book with that title. It is a book that describes a strategy that many successful companies like Google followed and they made their competitors irrelevant.
This is an awesome book. One of the best of I have read lately. Please read it if you would like to understand how come Google has been so successful.
This book pretty much sums what I think that Microsoft or any other company should do to not be disturbed by the competition, while providing great products and services that can benefit the whole world.
Hopefully Microsoft leaders that did not know this book will get some ideas, in such way that influence their initiatives and benefit the PHP world too.
This is just my opinion. What about you? What do you think Microsoft should do? Feel free to post a comment to this article to express your views. Microsoft employees are also welcome to comment here or on their blogs.