PHProjekt 6 Developer Preview edition

Today the PHProjekt core team is glad to publish a first edition of PHProjekt 6, the ‚developer preview release‘. More than one year has passed since the first commit into the SVN. In our view, the most important feature of the new version is the state-of-the-art architecture, which  makes a huge difference to all previous versions of PHProjekt.

With the choice of Zend framework in the backend and a complete integration of the dojo toolkit for the frontend, we think that the application is now ready for complex requirements and workflow processes. The MVC and active record pattern support scaffolding, thus allowing an effective and rapid development for new modules and features – in fact, new modules can be built with some mouse clicks.

Furthermore we tried to provide you a software, which makes fun to develop own code.
PHProjekt 6:
– is completely php5-OOP, well structured
– follows php5 coding standards (actually zf coding style)
– has a pretty good code coverage with unit tests
– is completely documented in phpdoc
By following ‚convention over configuration‘, many modules and services show an expected default behaviour. The API and protocol (JSON) between frontend and backend allows a change of single components of the application.

For other webmasters without coding skills, we tried to facilitate the application management with a WYSIWYG module designer.
Last but not least, we changed the licence from GPL to LGPL to give you more flexibility for the distribution of your own modules and extensions.

Lots of changes have been made over the past months by the developer team so we are really looking forward to get feedback from the community.
You can download the developer preview release here. We reopened the phprojekt repository on sourceforge, so you can checkout the source code from SVN there.
On, we created a new section for PHProjekt 6, which we will fill with content in the next weeks. You can leave general remarks as a comment on this blog entry. For questions and discussions, we installed an own developer mailing list, please subscribe here. Anyone of you who want to inspect it directly, we have a setup a sandbox.
Please keep in mind, that it is only a preview, which means that something weird can frequently happen :-)
Please post your opinion, report bugs or send patches, everyone is welcome. We need you, the people who use it, your testing and reports, and your patches.

We wish you merry christmas … sorry: a lot of fun with the preview of PHProjekt 6!
the PHProjekt development team

Es webmontagt sehr …

Gestern war Webmontag in Frankfurt, der wie üblich in der Brotfabrik stattfand. Ich war schon über ein Jahr nicht mehr dort, vornehmlich aus Zeitmangel. Ein anderer Grund war gewesen, dass immer recht wenig & immer die gleichen Gesichter dort anwesend waren. Umso mehr war ich überrascht, dass sich auf der Webmontag-Wiki Seite ca. 70 Personen angemeldet hatten, von denen gestern dann auch gefühlte 60 anwesend waren (Webmontag Köln, zieht Euch warm an! :-) ).


Die positive Überraschung hielt auch an, denn das Programm war ordentlich und straff durchorganisiert. Zwischen den einzelnen Vorträgen gab es erheiternde Videos (so zum Beispiel von einem Star Wars Geek DJ, Pac Man Musik und man konnte auch den Erfinder von Tetris kennen lernen), die von den Umbauarbeiten ablenkten und die Vortragenden wurden durch eine Eieruhr, die die Redezeit einigermaßen erfolgreich auf 10 Minuten begrenzte, ebenfalls daran erinnert, ihren Vortrag zügig durchzuziehen. Das anfängliche Kennenlernen hatte ich verpaßt, doch nach den Vorträgen gab es reichlich Gelegenheit, sich im kp21 bei Essen & Getränken ausführlich zu unterhalten. So lernte ich endlich mal Arne Klempert, seines Zeichens Ex-Wikimedia e.V.-ianer, nach all den virtuellen Jahren persönlich kennen. Auch alte Bekannte, wie zum Beispiel Andreas Demmer, Darren Cooper oder der CSS Gott aller Götter, Jens Grochtdreis, waren zugegen. Ein paar Eindrücke zu den Vorträgen habe ich auch über meinen Twitter-Account gegeben.


Wer im Rhein-Main-Gebiet wohnt oder zufällig an einem der Termine anwesend ist, sollte den Webmontag Frankfurt nicht verpassen – gutes Programm, gute Inhalte (bitte eventuell den Speakern noch sagen, dass Anzug und Krawatte so web1.0 auf einem Webmontag ist). Ein Dankeschön geht auch an das Orgateam, das mit viel Liebe zum Detail den Webmontag in Frankfurt organisiert!


MAYFLOWER officially opens today a new office in Hamburg which has the 3rd largest port in Europe and a total of 320 berths – so enough space for the MAYFLOWER. The office itself will be located at the Roedingsmarkt, at the heart of Hamburg. The third location has become necessary as more and more requests have reached us in the past months. With this step we wanted to ensure both a high service level and a close contact with our customers.

In charge of the new office will be Markus Wolff who is a frequent speaker at PHP conferences and member of the organizing team of the PHP Unconference in Hamburg. We are really happy that Markus has joined the MAYFLOWER crew and hope that we can also establish there MAYFLOWER as leading LAMP specialist.

Sildes from „Googol Records (with MySQL)“-Session

IPC is over. My impression: The place was too big making it a little bit difficult to get in contact with others. Yet, from a technical and gastronomical point of view the Rheingoldhalle was a good choice. For the next IPC I would recommend to anker a hotel-ship near the hall (the Rheingoldhalle is situated at the bank of the river Rhine) to avoid a 30min shuttle bus ride from and to the hotel. ;-)

But back to my talk there.

The initial idea to this session was a performance consulting in spring this year: For a table with appr. 250 billion entries I found a way to store and read about 6,000 queries per second! I applied some very unusual ways to speed up a problem by factor 1,000 or 2,000 just by thinking about how I would do it, if I had to store the things in my home supposed they were real things such as cutlery.

I found out, that there are some patterns, which can be used in general and that they work for nearly every problem with very big tables. Just see for yourself how I solved the problem.

Please note: The slides could probably not be understood without explaining some of the ideas. Be free to post your questions as comment!
PS: The „C“ in the pictures is the „catalog“.
PSS: YES, we’ve uploaded a new slideshare, the pictures are now working.

Googol Data

View SlideShare presentation or Upload your own. (tags: performance database)

Glimpse at PHProjekt 6

For several months now, the development of PHProjekt 6 has been intensively, but without any visible result for the community. Therefore, our colleagues created a short movie to show some of the highlights and features of the next generation PHProjekt.

You can post your questions and remarks as a comment at the blog entry on

Have fun!

Minimizing your JavaScript Code

my last projects were mostly web 2.0 online applications I had to do
a lot of javascript programming. Using JS-Frameworks like JQuery or
Dojo the size of all necessary javascript files had added up to more
than one megabyte. Even today with highspeed internet connections one
megabyte needs several seconds to be transferred, so I had to find a
way to reduce the size of the code. For all my previous projects I
Edwards Packer
. This amazing packer was able
to reduce it to appr. a fourth of the original size. Getting this
nice result I was wondering if the tool delivered with Dojo – the
– or other minification tools
and the
could do this as well. After some
tests, however, I realized that they couldn’t.

the web for more information about the best way I found a cool tool /
website that shows the transfer sizes of well known javascript
libraries after minification / packing. It is also possible to let
the tool calculate the results for your own piece of code:

addition, the tool also calculates the size of a transfer with
http-compression (gzip). Before I found this website I did not see
the size after minification / packing and compression in combination.
Perhaps I should have done this before…

the results of CompressorRater it seems that Dean Edwards Packer
might really be the best choice – even with zip compression. Very
interesting is the fact that the results of packing and minification
is nearly the same after zip compression.

the size of javascript files and their transfer speed is only one
aspect which affects the loading delay of websites. The other aspect
is the time the browser needs to interpret those scripts. As packed
files have to be interpreted twice – first to eliminate the eval
and second to interpret the generated code – their loading delay is
higher than those of minified files.

taking a closer look at the loading time of those minimized
javascript files it turned out that the Packer is not always
the best choice: In case of bigger javascript files, the Packer
needs up to several seconds to d’eval the code. This doesn’t matter
so much in web applications where javascript is only loaded and
interpreted once at the beginning but it will slow down a typical
website even more because javascript has to be interpreted at each
site request, even if it is in the browser’s cache. Using a minified
script avoids this.

I suggest to use Packer only if it is not possible to realize an