Sunday, November 11, 2007

What's keeping us busy...

I was hoping to be able to make a first release of APDT before the end of the year. But unfortunately my engineering studies didn't gave me enough time to realize this objective. I have big examinations coming up and I decided to put on hold the project until the end of January, when I'll be performing my next internship.
I'm taking advantage of this break to give you an update about the project.

Summer of love


This project has been created thanks to the Google Summer of Code 2006 and this year I wanted to work on the tool side. Fortunately my proposal to create APDT during the Google Summer of Code 2007 got accepted and I have to say that the benefits of this program are huge.
You're getting paid to work on what's passionate you with a great freedom regarding the way you want to do things and the ideas you want to follow. It brought me a lot of awareness about open source development: laugh at me all you want but I never committed code on a subversion server before this program... ...and never wrote a test...
Thanks to this program my open source involvement goes now beyond the PHPAspect project, notably with the Parse Tree pecl package and small contributions on the PDT project.
The Summer of Code gives you exposure on your project that allows you to connect with people having the same interests about programming an open source development. You have lots and lots of opportunities to talk about what you do, which is, for a student, a priceless way to be trained to talk to people about technology and try to make them excited about it.
The opportunities to give talk about your project are increasing dramatically: this is due to the all barcamp/unconference phenomenon and the number of meetups with programming interests doesn't stop to grow.
If I look back to all the professional and social connections I have made during these event, I can't suggested you enough to go out there and talk about what you do or what makes you excited.
And of course there is the sweetness of summer: you receive a t-shirt acknowledging your successful participation to the program and goodies.
This year we received signed copies of Karl Fogel's book "Producing Open Source Software".

What about love? Well love was definitely involved this summer... ...but I don't blog about it...

APDT: Aspect PHP Developement Tools


The goal of APDT is to deliver a user experience that is consistent with the PHP Development Tools (PDT) when working with PHPAspect projects and resources. This plugin provides an integration layer between the PHPAspect weaver, runtime and Eclipse/PDT extension points.
Thanks to PDT great extensibility, APDT integration goes really smoothly.
PHPAspect Builder

One done part of the plugin is the builder. The PHPAspect Builder is an extension of the PDT Builder. It provides checks of aspect syntax and it also weave each PHP file.


Launcher

Another done part the plugin, the launch capabilities. It provides a way to launch the weaved application with the PHPAspect runtime.
In the future, users will be able to use standard PHP debugers to debug PHPAspect applications.





Wizards

APDT provides two wizards. The first is the PHPAspect project creation and the aspect creation.
Of course you have the capability to convert existing PHP projects into PHPAspect projects.
We have plans to add PHPAspect projects examples as wizards (like in AJDT).




UI

The APDT editor is subclassing PDT editor. The following features will be implemented: code folding, code completion and formation.


PHPAspect


The current release is very unstable, it was just an experiment or more a proof of concept that we were able to weave PHP code using XSLT.
With APDT, we're taking advantage of this project to rewrite a new version of the weaver from scratch. We're excepting to have a code base much more stable, weaved code human readable and tools to ensure the reliability of generated source code.
AST & Grammar

The new grammar of APDT is extending PDT grammar and AST. It's very handy to have a base supported by the PDT project and because we serializing PHP source code to XML format, I use the XStream library to get XML AST and transform them back into Java AST.

You'll noticed the difference with the current release which need the installation of a pecl plugin that was source of issues for a lot of users. We're dropping the use of this extension.
Weaving

The weaved code in the current release is really dirty and not only we came with a we weaving process that will make the code human readable and testable. I have to say that I'm really excited about this.
Runtime Library

Because PHPAspect Runtime API is widely inspired from AspectJ and because we have to adapt to the changes of the PHP language, we're developing the Runtime Library from an EMF model. Acceleo is used to generate PHP code.
I hope this model can be used by people who would to implement AOP for other dynamic languages (who said Ruby ?).
There is an highly educative value for me since I'm learning about MDA and I start to realize the true power of this technology.


Documentation & Testing


The documentation isn't updated yet but it will be for the next release.
So far there is no testing framework for the project but we plan to do a lot about test.

That's it for now, I keep you in touch in the next few months ;-)

Of course the development is 100% open so feel free to checkout the development version of the project to play with it. There is a googlegroups created if you have any questions. I uploaded screenshots of the current state of APDT.

Sunday, August 12, 2007

The end of the summer is coming...

The Google Summer Code deadline is in two weeks, and I wanted to give you some update about the APDT project.

The plugin is working with the PDT Project.
I've posted some early screenshots here.

I'm currently working on the incremental builder that use the PHPAspect parser. This parser extends the PHP 5 one written for PDT.

This plugin will be released with a new version of the PHPAspect weaver. We designed a new weaving process much more simpler in order to make the tool more stable and to generated a weaved source human readable.

Sunday, June 3, 2007

It is on !

After few months of idle time, the phpAspect project is back on track!

The first news concerns the windows developers, the windows build of PHP_Parse_Tree is finally available (click here to download)!
There is some bugs that needs to be fixed and the cvs needs to be updated, I'm working on it.
I'm really looking forward from this extension and phpAspect.

The second news is that my proposal "phpAspect eclipse plugin" for the Google Summer of Code 2007 under the mentoring of Gilles Vanwormhoudt has been accepted!
The aim of this project is to help php developers to uses aspects very easily with an eclipse environment capable to understand the phpAspect syntax and to embed phpAspect itself.

More informations coming soon...

Wednesday, March 21, 2007

A summer of PHP...

It's been a such crazy time recently that I didn't even put the slides of my two last talks at Solution Linux and FOSDEM:
Programmation Orientee Aspects pour PHP
Web-specific crosscutting concerns

I particulary enjoyed FOSDEM where I met a lot of GSoCers and the lovely Leslie Hawthorn from Google OSOP.

Since last week, students from all over the world can apply for the Google Summer of Code 2007.
I'm of course drafting a little something related to phpAspect for this occasion ;-)

This summer I will perform an internship at IBM Hursley in UK under the mentoring of Alan Ogilvie from IBM et Gilles Vanwormhoudt from school. It just gonna be great :o)
I heard that I will have plenty of occasions at London to practice my new hobbie.

Sound's like my summmer will be full of PHP!

Monday, January 22, 2007

phpAspect on Tour

I will be performing a talk about phpAspect at Solution Linux 2007, the 31th january 2007 and a lightning talk at FOSDEM next month.

I'm looking forward to collect your feedbacks, questions and suggestions about phpAspect!

Saturday, January 6, 2007

phpAspect alpha 0.1.0 is released!

I took advantage of the end-year holiday period to work on my Google Summer of Code project and I'm very pleased to announce the release of phpAspect alpha 0.1.0.

In order to run phpAspect properly, you need to install the latest version of PHP Parse_Tree.

I have started docbook documentation thanks to the help I have received from Sebastian. This documentation is available on Google code hosting svn in the event you would like to contribute.

I'm very thankful to the Google Summer of Code and to the PHP community for making this project possible. When I first started this project, I only wanted to create a prototype to experiment AOP for PHP using XSLT. However, the more I interacted with member of the PHP community and GSoCers, the more excited I became about creating a community around phpAspect to support the project and making it widely usable.

Through this perspective, my focus is currently to perform refactoring on the source code so it can be easier to understand by other developers in addition to solving deployment problems.

Any feedback questions, comments, or criticisms you might have are welcome: phpaspect@googlegroups.com.

I'm really looking forward to improve this tool with you !