Thursday, October 22, 2009

ZendCon, Eclipse and the Cloud

This is a wrap-up for another excellent #zendcon that took PHP one step forward this year into the enterprise world and the mainstream.

It began with several announcements about Zend Server 5.0 beta that now provides more enterprise-ready features such as code tracking tools and job queue services. It continued with an announcement of a new edition for Zend Studio 7.1 beta that is based on Eclipse PDT 2.2 with remote server and task focus programming tools integrated with the Mylyn PHP bridge. It was also the time Zend stated that it is going to invest more on making standard to interact with "the cloud" (MS, IBM, Rackspace, Nirvanix and Go-grid) with its new Simplecloud API.

Interesting points that I wanted to share:
1. Stephen O’Grady moderated a panel about the various Zend Cloud initiatives entitled Developing on the Cloud you can read his summary here.

2. This conference everyone were using Eclipse tools, it is just wonderful to see that Eclipse solutions are well adopted by the PHP community that was at first controversial about moving to Eclipse. People were also amazed by the built-in tools Eclipse provides that can be leverage by all developers such as streamline of development process features and Application life-cycle management tools.

3. Another nice conversation made with two Jetbrains developers that were really enthusiastic about their open source product that will deliver a PHP plugin really soon. I talked to them about the latest announcements (open sourcing InteliJ platform and IDE). It seems that unlike the Eclipse community Jetbrains really wants to focus on platform for development tools and will do their best to keep this goals for now. I was really impressed by the deep knowledge they have about language modeling and the methods they use internally for indexing and caching that is totally different from approaches I know in Eclipse. It will be very nice if the Eclipse community will take some time to learn some techniques from their open source project

4. Some pictures from the keynote:

So long ZendCon09!

Sunday, August 30, 2009

The (Flat and Long) Type Hierarchy of Zend_Exception

Trying to build the type hierarchy of the Zend_Exception class in Zend Framework using Eclipse PDT yields a long and flat list of Exceptions.

Should it be more "hierarchical-like"? I mean... the framework, with core and extra plugins?

Thursday, July 16, 2009

Graduation or Maturity?

This question has been puzzling me for a long time now, but maybe there is no difference at all between graduation and maturity in a lifecycle of a project?

The basic definition of a "mature project" is a project that has been in use for long enough that most of its initial faults and inherent problems have been removed or reduced by further development. On the other hand, I couldn't find consensus about the graduation step of projects. I'll take two examples from two different worlds - Java/Eclipse and PHP. As described in the proposal lifecycle of Zend Framework after a project has been recommended, the promotion step includes confirmation of unit tests and documentation in its way to graduation. It seems that the Eclipse Foundation set a few clear criteria for graduation that include adhering active community, fully operational project, and a technical review of the architecture. These two processes are so different but still I start to get a notion that graduation is not about passing criteria but only a phase that a project becomes aware of itself, and most important thing graduation is only the first step toward maturity.

Projects that pass their graduation process although have not seen widespread use yet, enjoy a core user base, are more flexible and still cannot be extensible in an easy way. Fully mature projects are projects that enjoy the publicity in a larger community and probably less flexible since many adopters already extend the previously defined API.

Anyway, the most important (and fun!) period in the lifecycle of a project is when it is graduated and starts to get all dots connected till its final maturity. This is exactly where Eclipse PDT project in, and we see more and more people that ask to extend its core capabilities.

Tuesday, July 07, 2009

Latest News from PHP/Zend Tooling World!

The first half of the year (2009) is over and the Web world got new, structured techniques for rich Web application development tools in Zend Server and Zend Studio 7.0 based on the latest Eclipse PDT project (2.1) with features such as Server integration, smart code analysis for dynamic languages, refactoring tools and more.

Instead of writing blocks of texts describing these new exciting features I want to share with you a few screen casts created by Zend (thanks Yossi L.!) that demonstrate the new capabilities provided to Web developers who work with php as their main server side engine. If you want me to elaborate on specific screen cast comment out or let me know, I promise to add details in another post.

Enjoy ;)

Jump Starting Web Application Development Using Zend Studio & Server Integration

Code Navigation

Code Analysis and Auto-fix

PHP 5.3 Development

PHP Code Refactoring

RAD Tools

Root Cause Analysis

Saturday, June 20, 2009

The Rising Star

It's "Eclipse for PHP" first year in the Eclipse simultaneous release train, and yet the final release has not been released, but studying the downloads # of the forth release candidate is a very good indication of things to come - Eclipse PHP flavor is going to be the rising star of the Galileo train.

"Eclipse for PHP" package is an Eclipse flavor including the Eclipse platform, CVS, Mylyn, DLTK and Web tools platform with an addition for PHP developers - the PDT plugin.

It is also the first year Zend releases Zend Studio (7.0) right after the community edition is released. This time we align Zend commercial product with the community edition to have the same impact for both our customers and the community.

Tuesday, June 16, 2009

Tel Aviv Eclipse DemoCamps Galileo 2009

Its time to create a buzz around the upcoming Galileo release here in my city Tel Aviv, Israel. Actually this is the first time ever this happens in Tel Aviv, and the number of attendees is really impressive, comparing to other countries around the globe.

What is an Eclipse DemoCamp?

"We are inviting individuals to organize and attend Eclipse DemoCamps around the world to celebrate the Galileo release. The Eclipse DemoCamps are an opportunity to showcase all of the cool interesting technology being built by the Eclipse community. They are also an opportunity for you to meet Eclipse enthusiasts in your city."

What's the plan?

Six presentation given by great people who volunteered to help promoting and contributing to the event.

This time Zend Technologies (the PHP company I work for ;) and the company behind PDT) helps to organize the event.

Register free here.

Saturday, May 30, 2009

Two Horizons Coincide

In recent years there has been an explosion of open source communities in several areas within the software mainline industry. Vertical and horizontal communities are founded. While vertical communities are specialized in one sector, horizontal ones developed with vertical links.

I am always excited to see two communities that find a common interest and collaborate together. A great (yet extreme) example of vertical and horizontal communities that converge is the Eclipse/Jetty project, starting with basic integration points the two communities are now associated as Jetty’s core is hosted by the Eclipse Foundation.

Eclipse and PHP Are Now (Officially) Best Friends!

What it takes for two horizontal communities of the size of Eclipse and PHP to be "best friends"? Except of course for motivation of these communities to be improved.
  1. Recognition - The Eclipse community understands that PHP developers are major section of its user’s base, and therefore takes actions. At the very first days of Eclipse, PDT was available as a plug-in that could be installed over Eclipse platform and other dependencies. With the release of Galileo, Eclipse recognizes that people enter to the Eclipse world because of PHP and releases an Eclipse PHP flavor that is created exclusively for the PHP community, exactly as provided to Java, C++ and Web tools developers.

  2. Commitment – The two communities grow together. When one makes a move, the other takes an action as well. When PHP has made the intent to deliver its new major version, Eclipse PHP Development Tools (PDT) has been adapted by supporting the new PHP 5.3 language features with an early release. Another example, since PHP is an extensible language providing a way for developers to add extensions to its core, Eclipse PDT enables those people who extend PHP to extend it as well, with API for type inference and code completion.

  3. Adoption – According to the latest Eclipse Community Survey "Eclipse IDEs are the most popular primary development environments among respondents; Eclipse JDT (60%), Eclipse PHP Development Tools (12.6%) and C/C++ Developer Tools (6.3%)." This means that for each 5 developers that use Eclipse Java IDE, there is one Eclipse PHP developer and a half C/C++ developer. Comparing these results to the 2007 community survey where PHP was not listed among the 5 top Eclipse IDEs.

It seems that we are (close to) reaching our goals to make Eclipse and PHP best friends.

Monday, March 09, 2009

Welcome the PDTT - PHP 5.3 Code Assist Engine Tests

pdtt is a clone of the popular phpt. Eclipse PDT uses this mechanism for testing its PHP 5.3 code assist engine. 

Since Michael has just finished implementing the second phase for PHP 5.3 support in PDT, we can now expose unit tests and ask users to add more cases to the code assist tests reposiroty.

As written in the pdtt wiki page
"The first thing you need to know about tests is that we need more!!! Although Eclipse PDT code assist works just great 99.99% of the time, not having a very comprehensive test suite means that we take more risks every time we add to or modify the Eclipse PDT Code Assist Engine implementation. The second thing you need to know is that if you can write PHP you can write tests. Thirdly - we are a friendly and welcoming community, don't be scared about writing to ( - we won't bite!"

Basic Format for a pdtt file:
Tests a simple class name completion in namespace 
<? namespace My; class A{} class b{} $a = new My\| ?> 

I guess that once we get some feedback from our members we will expose a better (automatic) way to submit pdtt files.

Enjoy ;)

Saturday, January 03, 2009

Seven Things - tagged by Andi Gutmans

Although till recently I thought that work and fun can't get along, Andi Gutmans is trying to prove to me, time after time, that this assumptions is completely wrong!. Yes... I've been tagged.

Seven things I want to share with you:

1. I am allergic to cats - well... at least that's what I was told when I was a kiddo, so my family had a cute dog with long hear, no cats. Now my wife insists that we should have a cat since she was grown up with cats, and I answer her that we have one cat already. Miaoo...

2. I have a super smart barber, who is a lawyer - my father, he actually replaced my mom when I was 13 years old. Curly hair is something easy to cut and I can't see any other barber since I get pretty strain by that.

3. My brother lives in Panama City with his lovely family. Last time I visited him, some guy that set next to me in the flight asked me why I use Eclipse as my development environment, I told him that I am a Java developer. He then ask me, "really? and I thought Java is dead, you should try out PHP..." :). It took me 10 minutes to convince him that I really work at Zend.

4. I am trying to figure out how to analyze X-ray images to better examine the OSA phenomena, my professor thinks it is doable at least...

5. I am very proud of my wife as she is going to be a doctor, well on 2010, and then she has more 7 years to be in residency... 2017 here we come!!!

6. I am managing 4 open source projects, 3 on Google and 1 on Eclipse. I am participating in much more.

7. My new iPhone is the most appreciated present I got from my wife. I sound like a material guy, but it just made my life much more comfortable.

Hi guys you've been tagged-

1. Kfir Karmon who is the smartest guy at Microsoft Israel Labs.
2. Yaniv Taigmanwho is going to have a knockout with his startup.
3. Nick Boldt who is keeping his eyes on Eclipse PDT release engineering stuff.
4. Lior Wolf who is the most admired professor in my university ;).
5. Michael Spector, who doesn't have a blog but is the fastest coder at Zend, so he can arrange one in minutes :).
6. Philip Gabbert who met me in the last ZendCon, and became a Zend Studio fan.

And here are the rules I'm supposed to pass on to the above bloggers:
* Link your original tagger(s), and list these rules on your blog. 
* Share seven facts about yourself in the post - some random, some weird. 
* Tag seven people at the end of your post by leaving their names and the links to their blogs. 
* Let them know they've been tagged by leaving a comment on their blogs and/or Twitter.