Monday, November 12, 2007

Production-ready PHP on Windows

Today Microsoft announced the general availability of their FastCGI Extension for IIS 6.0 (Windows Server 2003). This announcement comes a year after Zend & Microsoft announced a partnership geared toward delivering better interoperability between PHP and the Windows platform.

For me this announcement is an important milestone. PHP had suffered years of neglect when it came to performance and reliability on Windows. In fact, the last serious effort to make it run well on Windows was back in 2001 when a small (underground) team at Microsoft invited the PHP development team up to Redmond for a few days to work in their labs to stress and performance test PHP. Zeev Suraski, Shane Caraveo and I made the journey up there and managed to significantly improve PHP on Windows. However, due to the fact that the team at Microsoft had very little influence on the rest of the organization and them working with us was not generally viewed as a good thing, and the fact that we were still seeing less production interest of PHP, over the following five years status quo kicked in again and Windows support kept on deteriorating.

Two things have changed since then. First of all, Microsoft seems to have now more broadly understood that being the best platform to run any workload whether it’s their recommended offering or 3rd party offerings is a good thing for the Windows Server business; so folks like the ones we had worked with in 2001 can now finally come out of the closet. On our side, PHP’s market penetration has significantly changed since 2001. PHP is not only a mainstream technology in the broad sense but has been adopted by a large number of traditional Enterprises. As a result, the demand for production quality PHP on Windows has also significantly risen.

For these reasons today’s announcement is truly significant. Not only have we at Zend done a significant amount of work on profiling, testing and improving the PHP runtime itself to make Windows a 1st class citizen for PHP but with the announcement of Microsoft’s FastCGI extension for IIS6 (Windows Server 2003) PHP on Windows is now ready to go into production. As part of the benchmarking work we have done over the past year we have also tested several applications in our labs (including XOOPS and Qdig) both on Linux and on Windows and have verified a comparable level of stability and performance of PHP on Windows.

What next?
- While Microsoft’s FastCGI for IIS6 (Windows Server 2003) is a free download, Microsoft will make life even easier for Windows Server 2008 customers by bundling FastCGI support directly into the operating system. The fact that PHP has influenced the Windows Sever 2008 product roadmap approx. 1.5 years before its final release is a great testament that Microsoft is serious about making Windows Server a good host OS for PHP.
- Zend will continue to monitor and enhance PHP’s performance and reliability on Windows. Any modifications to the PHP source code as part of that effort will continue to be contributed to the PHP project.
- Zend’s production products support the Windows Server operating systems. Today Zend Core & Zend Platform together already offer performance, scalability and monitoring for business-critical applications hosted on Windows.
- Microsoft at our recent conference announced a technology preview of a new SQL Server Driver for PHP which is another step in making PHP interoperate with the Windows platform (I encourage Microsoft to also extend this support to SQL Server interoperability from PHP hosted on non-Windows servers)

Microsoft gets it right:
PHP is one of the most important driving forces behind the modern Web. Not only is PHP running some of the most scalable Web sites like Facebook and Yahoo!, but as more organizations move their applications into the browser it is one of the leading technologies being adopted for that purpose due to its ease-of-use, strong community and scalability.
Trying to force PHP into a vendor’s technology stack like some of the Java EE vendors are trying to do with PHP, would lead to the loss of the productivity and community benefits that PHP delivers. While I have no doubt that Microsoft continues to be commited to its own .Net based product strategy, I think they are doing the right thing by investing in making PHP run well and interoperate with their product portfolio.

Wednesday, October 03, 2007

See you at ZendCon!

ZendCon is only one week away and things are coming together. In addition to Harold (our CEO), Zeev and I presenting the opening keynote, we have Joel Spolsky and Cory Doctorow giving keynotes. Premal Shah of will be part of the closing keynote talking about how they use PHP to connect investors with Third-world entrepreneurs. Add to that keynotes from both Adobe and IBM and you start to get a feel for the excitement building around ZendCon this year.

Of course we have a great lineup of speakers. Names you know like Marcus Boerger, John Coggeshall and Jay Pipes and a few names you may not know like Zend’s own Eddo Rotman and Elizabeth Narimore.

Patrick Reilly of OmniTI is the Program Chair for the ZendCon UnCon this year and he’s been working overtime to round up speakers. You can see a complete list of the sessions planned on the wiki

Finally, our after hours activities are really great this year. On Tuesday evening, we have the Happy Hour 2.0 and on Wednesday evening, Yahoo! is sponsoring the PHP Nightclub (get ready to Rock N' Roll - ok I'm actually more a techno kind of guy).

If you have not yet registered, make sure you do so now. This is an event you don’t want to miss!

See you there!

Wednesday, August 22, 2007

Use-cases for PHP and Pdf needed

Zend Framework features a really cool component called Zend_Pdf; its development is led by Alexander Veremyev.
We are currently trying to better understand the use-cases around how PHP developers are using Pdf files on the Web in order to figure out what the requirements are for future enhancements to our Pdf component.

Are you reading pre-formatted templates for invoices and just filling them in? Are you password protecting files depending on who downloads them?

Also, if there are just some discrete features you'd like to see please let us know too.

Please send feedback to the fw-formats mailing list. Even if you're currently not using Zend Framework we'd be very interested to hear about your use-cases. Thanks!

Tuesday, August 14, 2007

AjaxWorld West coming up!

AjaxWorld West is coming up in September. I spoke at the East coast event and I highly recommend people interested in the next-generation of Web applications to attend this conference. It's got a good mix of open-source, community and commercial RIA material and is a good venue to get up to speed with some of the latest developments in RIAs such as push technologies, offline RIAs or just plain old user-interface.
I will be giving a talk there on RIAs with PHP and Zend Framework. Joining me for this session will be Brad Cottel our Zend Framework evangelist who's done his fair share of C/C++, Fortran and Rails development (and now getting into PHP and Zend Framework).

See you there!

Monday, August 06, 2007

Zend/PHP Conference 2007

It's that time again, time for our annual Zend/PHP conference and Expo (ZendCon). This will be our third year and the biggest one yet. We have a great lineup of speakers and what we think is a good mix of business and technical oriented sessions. There will be names that you know like Wez Furlong, Sara Goleman, Terry Chay and Marcus Boerger, along with some new names like Thorsten Rinne, Stefan Priebsch and our very own Massimiliano Cavicchioli.

I'm really excited out our keynote speakers this year. The first one we have announced is Joel Spolsky of Joel will be talking at ZendCon on building good software, a subject he knows just a little about (he's got a great blog btw).

In addition to great technical session from well known PHP community members, we will also have business oriented content featuring companies like Nokia, Toyota and HP. These are sessions showing how these companies deploy PHP in the Enterprise.

We are just starting to compile our Birds of a Feather sessions for this year. If you are attending and have an idea, head over to the Wiki page and post it.

Finally, this year we have added a Community Lounge. During the day, we will have space and materials available for unconference sessions, during the evenings the room host will provide gaming systems to play with. It will be a place to hang, catch up with friends, or discuss an idea that we didn't get to cover in the main conference program. Look for more announcements about the Community Lounge coming soon.

This year is going to be our biggest and best yet and I know you don't want to miss it. For more information on ZendCon check out these webpage:

If you have any question/suggestions feel free to drop me a note and I'll pass it on to the right people at Zend.

See you in October!

Saturday, July 21, 2007

Presenting at OSCON 2007

I'll be heading to OSCON 2007 on Tuesday. Unfortunately, my stay will be short as I already have to head back to California on Wednesday evening but I am still looking forward to meeting as many open-source enthusiasts as possible. Our partner MySQL and us (Zend) are hosting a reception together for our friends and users which I'm very much looking forward to. With an overwhelming overlap in our communities I'm sure it'll make for many interesting discussions.

On Wednesday I'll be giving two talks back to back. The first is on Rich Internet Applications & PHP where I'll talk about the state of Ajax + PHP, show a small demo with Zend Framework and talk about some of the things we've got cooking.

After a short break, I'll be giving a talk on security. My goal for that talk is to take a completely different angle on security than what most are used to, mainly to give people some broader ideas on the subject. Hope that will hit home. You never know how something completely new will turn out :)

Anyway, got to go back and work on my presentations. See you there!

Sunday, July 01, 2007

Zend Framework 1.0 Released!

In October 2005, Zend announced an initiative called the PHP Collaboration Project. I bet some at Zend don't even know this page still exists but thanks to Google for helping me find it :) The goal was to take the art of PHP to the next level and do it in a collaborative way both with the open-source community and commercial partners. As part of this initiative we launched three different projects; a new developer zone, a PHP project at the Eclipse Foundation, and Zend Framework (ZF).

We have already launched the Zend Developer Zone and PDT 1.0 is scheduled to ship in the fall. While those two projects are a critical piece of the overall initiative I am especially proud to announce the Zend Framework's official release. I think the ZF has really fulfilled all the goals we had for this project and then some.

Foremost, we set out not to build this on our own but to collaborate both with the community and with commercial companies. It's been a pleasure to see the enthusiasm and contributions from all over, big and small, contributing code, tests, documentation, translations (we have over 16(!) translations), and more.

Second, we had a goal of high quality. Actually we've been somewhat PITA when it comes to that. From the outset we believed that it'd be hard to achieve quality without a very strict development process and a centrally orchestrated architecture. I believe this has paid off greatly. Not only from the testing point of view (~90,000 lines of unit tests for ~140,000 lines of code) but also in successfully meeting the design goals.

Which brings me to the third goal which we call "extreme simplicity". Our goal was to try and make sure the outcome is aligned with PHP's main strength - ease of use. There's no point in creating a super-duper framework if it's too hard to use (J2EE come to mind). In contrast, we tried to simplify wherever we could even at the expense of not having every niche feature people might need. Instead, we tried to design our work in a way which was flexible and easily extensible. This way, the majority of users would be perfectly happy with what they get but users with very specific needs would be able to extend and add their functionality to our solid foundation. In addition, we deliver what I call a "use-at-will architecture" which is the opposite of the "my way or the high way" paradigm which some other projects follow. We believe that PHP's install base is very diverse and therefore it makes sense to give people a choice of what pieces of the framework they want to use so that they can mix-and-match with other solutions.

For those wondering, ZF 1.0 is not the end of the road. There are still many things which we want to do which we didn't have time to do in time for the first release. Fortunately we had already seen so many of our users in production with pre-1.0 bits (incl. some big ones) we realized it was most important to bless and finalize the existing functionality as opposed to expanding. We've mentioned some thoughts on the ZF Roadmap page. In addition, there are many interesting ideas and proposals constantly coming in from the community. We will continue to evaluate all of this through the same set of lenses we have used so far. Our goal is 20% of the functionality which answers 80% of use-cases (ok it's probably more like 40%/90%) and only features which we really think we can do well. We believe this is the only way for us to provide a rock-solid high-quality and easy-to-use foundation to our users.

A few days ago I was asked whether the Zend Framework is everything I had envisioned it to be. It isn't; it has far exceeded my expectations. First of all we've managed to build a great community of both contributors and users. We have close to 250 people who have signed up to contribute to the project and the pace is growing very rapidly. It's been a great experience getting this support from the community. Also, I would have never thought that we'd have so many adopters of the framework even before the official release incl. Right Media who have generously agreed to be featured in a case-study and some much bigger companies who's names I can't mention yet who will hopefully be willing to do the same over the coming months. Also, while the plan was all along to get commercial supporters on board, I must say I'm extremely pleased that we have the likes of IBM and Google directly contributing to ZF. It's been a true pleasure working with them and there are more such companies in the pipeline who are looking at contributing to the project.

I'd like to thank everyone who has helped get this product out the door. Foremost the Zend Framework development team which has worked incredibly hard in getting this out the door especially in the weeks leading up to the release, the large community of contributors (incl. some fellow Zenders who are not officially on the team), the various commercial companies who have given us their support, and all the many other people who have helped make Zend Framework the success it already is (bloggers, press, conference speakers, user groups, analysts, marketing folks, graphic designers, and the list goes on). There are truly hundreds of people who have helped out over the past couple of years, far too many to mention here (or to remember :)

Last but not least, if you're using ZF let us know about it. We are looking to learn as much about our users as possible and where applicable feature them in case-studies and other fashions. Also, we made some logos available so that you can help spread the word.

Happy ZF'ing!

P.S. Some of you may have already seen our really cool Zend Framework T-shirts. We have made them available at cost price so that everyone can take part in celebrating the release with us.

Monday, June 25, 2007

Viewing application errors in your favorite feed aggregator

Matthew stumbled over a cool blog entry by Raphael Stolt.
Raphael describes a very elegant way of converting his Zend Framework-based application's log into an RSS feed. What's particularly nice about this posting is that it's a small enough example so that on one hand it's easy to digest but at the same time it also shows useful functionality.
Got other cool use-cases which are short and to the point? Please blog about them, or drop me an email (or do both :)
I know that these kind of short examples are very useful to many people who are looking to adopt Zend Framework.

Tuesday, May 29, 2007

Zend Conference Call for Papers about to Close

In October, 2007 we are hosting our 3rd annual Zend/PHP Conference near San Francisco. It is a great opportunity to meet other people from the PHP community, meet with various users of ours who are building business-critical applications, get to meet some of the commercial eco-system builders and of course hear what Zend is up to.

The call for papers officially ends May 31st so I urge anyone who wants to submit but hasn't had time to do so asap. As usual, speakers get free admission...

See you at ZendCon 2007!

Thursday, May 03, 2007

Looking to grow Zend Framework team

Zend Framework has become an immensely successful project. Despite it still being in beta it has already enjoyed broad adoption and is already used in some heavy production environments (without my official blessing :)
There's a large community of contributors, over 15 translations of the documentation and runs some cool apps like IBM's QedWiki.
We are currently looking to grow the team with very experienced Senior Web developers, both from within and outside the PHP community.
If you are up to the challenge, interested in collaborating with a broad, vibrant and passionate community, and don't get intimidated by multi-tasking in a fast paced environment then please drop me an email at andi at zend dot youknowwhat (and if you don't consider this your first test :)

Please carefully review the full job description before applying and make sure you fit the profile.

Happy PHP'ing!

Tuesday, April 17, 2007

Is Virtualization just hype?

Today I talked to someone who had worked on virtualization technology a long time before VMWare, who I consider the x86 virtualization pioneer, was around. He thought today's hype around virtualization technology was not justified as the technology has been around for years. This isn't the first time I've heard this opinion. Many people go back even further being familiar with virtualization on the IBM mainframe.

For those who read InformationWeek it's evident though that I am a big fan of virtualization and by nominating VMWare for Charlie Babcock's InformationWeek article "Greatest Software Ever" I might have even done my small share of contributing to the hype.

I do think there are some very good reasons why I actually do buy into the hype around virtualization. I actually think it's very similar to what happened with Web Services although in a less condensed timeline. Web Services very much originated from Enterprise integration needs which the big software players were trying to resolve. Around 1998 they started to seriously work on developing standards for such services and by 2000 many vendors had shipped solutions. Most of you probably remember that for around 3-4 years there was very little mainstream adoption of Web Services although Enterprise customers were adopting them by working with the likes of IBM & Sun. Then at some point, the broader Web development community realized the value in Web Services and started to implement them at which point Web Services enjoyed quite a large hype factor. That was the time where people were saying the same about Web Services as people today are saying about virtualization. Yes, Web Services had been around for a few years prior to this, but in my opinion, the real value only became apparent when the mainstream developer community adopted, expanded and simplified the Web Services solutions including defining RSS, ATOM & REST based interfaces, exposed large amounts of consumer data via Web Services, and the popular notion of mashups was born.

The beauty of this process is that I believe it is in fact cyclic. While Web Services started in the Enterprise and then reached the broader community, the latter is actually best at exponentially increasing the value of such a technology by simplifying it for public consumption, developing a large eco-systems around the solution and coming up with new innovative ways of applying the technology. Now we are actually seeing the cycle come to an end as Enterprises are re-adopting a lot of the innovation in the space which has become much more productive and useful.

I believe similar is true for x86 virtualization. While virtualization has been around for years and years, x86 virtualization will lead the true revolution. There are many reasons why this would currently happen. Foremost, we are at a time where CPUs and servers in most cases are not fully utilized as the hardware has in many cases become too good and the hetergenous environments we live in often don't allow running more than one application the same server. This leads to many more spare cycles than we have had in the past. Data centers are also dealing with an increasing amount of applications and platforms and as a result server provisioning and management is becoming increasingly a bigger challenge. In addition there is a huge mainstream x86 community out there which is making significant investments to simplify, expand and innovate virtualization solutions. So similar to my Web Services example I believe that a lot of the true innovation on top of virtualization is actually happening now and not in the previous mainframe and other environments where these solutions were geared towards resolving specific Enteprise problems. While some of the innovation might still seem to be basic like the ability to do multiple snapshots and ability to manage resources more dynamically there are some very interesting trends in the space including ability to move running virtual machines between servers & ability to patch systems whether they are running or shutdown.

Actually I think some of these developments just scratch the tip of the iceberg. At the end of the day by running in a virtualized environment you are allowing systems to look into your virtualized servers in a non-intrusive way opening up a lot of interesting opportunities for various management related solutions. Whether you detect and optimize repeating memory pages and therefore optimize server resources or develop a new family of management tools which can monitor the system directly for performance, reliability or security purposes in a non-intrusive way. The latter I think is the most interesting as you can now much more easily "look" into the OS and its applications without having an installed driver, but just by peeking at it from outside the virtual machine itself. These are just a small amount of examples of how the huge industry investment in virtualization can significantly change the way we deploy and manage software.

Time will tell if I'm right or not, but I do believe there will be a lot of innovation in the space by people who will know how to use some of the characteristics of virtualized environments to their benefit. It probably won't take more than 2-5 years to see some very cool and innovative ideas appear.

Thursday, March 15, 2007

Webinar on PHP byte-code caches

Stas Malyshev, Software Architect at Zend, will be giving a Webinar tomorrow (Friday, March 16 at 1pm EDT) on PHP byte-code caches and some techniques you should keep in mind in order to attain the best results.
Stas over the years has done a lot of work around byte-code caching, performance and reliability and has also worked first hand with some of the most demanding Web sites on the planet. The Webinar is free (as in beer) so drop in as your week winds down.

Thanks to php|architect for hosting the Webcast.

Sunday, February 25, 2007

PHP at Java One

I got confirmation that my session at JavaOne has been accepted.

While Java EE (formerly known as J2EE) has some powerful high-end features it is in most cases too complex and heavy for running modern Web applications. Although I've been preaching this for years it seems that only in the past couple of years has the mainstream of the industry and Enterprise customers woken up and understood this to be the case.
It is therefore no surprise that the Java community has finally gathered huge interest in dynamic languages as is apparent from observing the Java One web page. In fact, in the list of bullets describing the conference's topics scripting is second; to quote "Scripting in PHP, JavaScript, Ruby, Python and more".
While Java's market share in the Web application space has definitely softened and conceded to the likes of PHP and .NET, I think Java is far from going away. While I think the dynamics in Web development call for faster time-to-market and flexibility which languages such as PHP deliver, there are still plenty of applications where Java does well including cross-platform thick client applications ala Eclipse and in back-end Enterprise integration infrastructure projects.
It's good to see such an emphasis of dynamic languages at JavaOne. Java and dynamic languages are not an either or proposition. On the contrary, many Java developers use one or even two additional languages.
In my session at JavaOne titled "PHP and Java Technology Integration" I will be talking about how PHP applications can interoperate and leverage existing Java EE investments. PHP and Java can definitely co-exist and in fact in many cases are extremely complementary. PHP can provide the agility which Web development requires, whereas existing Java assets can be accessed, leveraged and expanded in favor of such applications.
If you're already doing PHP & Java integration or are interested in this topic, drop by my session.