Entries tagged as development
Tuesday, March 18. 2008
From May 26th to 28th this year Software & Support organizes a new conference called Dynamic Languages World. In contrast to the usual PHP Conference, which I usually attend, this conference tries to combine the communities around PHP, Python, Ruby, Groovy and JavaScript. I'm pretty curious about this kind of composite event and hope to get some cool new inspirations. Despite my interesst in those other languages and the concepts they have in terms of patterns, frameworks and application architecture/design, I'll be giving some talks in the PHP area:
- 6 essential PHP development tools in 60 minutes - A summary of 6 tools that every PHP developer should know of, including short introductions to installing and using those.
- Up-2-date: The State of eZ Components - During this session I'll give an overview on the current state of eZ Components, show some interessting new features and give an outlook on the upcoming version.
- Database Abstraction with eZ Components - While the previous talk shows eZ Components overall, this one will dig deeper into the facilities of database abstraction provided by eZ Components.
- Concepts vs. Flamewar - OOP in PHP, Ruby and Python - This title should tell you everything you need to know. ;)
I'm especially looking forward to the last session, which I'll be giving as a co-speaker for my good friend Carola Kummert (alias Sammy). We'll try to sum up the differences in the OO concepts of PHP, Ruby and Python and hope for some interessting discussion (and possibly flaming) in the attending crowd. Let's see how this concept of a talk turns out.
So far, so good. If you did not order your tickets for Dynamic Languages World, yet, take your heels and catch the early bird before March 27th. I'm sure this will be an interessting and productive conference! See you there! :)
Thursday, December 6. 2007
Yesterday we brought out a new version of the eZ Components full bundle, which candidates to become the next stable release of our enterprise component library on December 17th.
There are 2 brand new components part of this release: Tree and Webdav and a lot of enhancements have ben introduced into already existing components. The Tree component allows you to work with arbitrary tree structures and offers different storage mechanisms for these, like XML or several different database structures. Using the Webdav components you can easily set up your own WebDAV server, to enable comfortable online content editing for your clients.
To test the release candidate, you can either download the full package from our website or use the PEAR Installer to get a new installation of update an existing one.
Friday, November 2. 2007
Since about a week, Kores and my first book is being shipped. As you can see below, we already got some examples and hope that everybody who ordered in advance got their examples by now, too. If you don't, stay tuned they should arrive soonish. We are both absolutly amazed by the priniting quality and the overall impression of the bookl. Many many thanks again to Stephan Mattescheck, our lector at Galileo Computing, for his great support and the amazing work of the whole team!
Any feedback about the book is welcome as a comment here, by email or you can seize the chance to meet us from Sunday to Wednesday (2007-11-03 to 2007-11-07) on the International PHP Conference near Frankfurt am Main.
Friday, October 26. 2007
The yearly International PHP Conference in Frankfurt (or like I usually say: the family meeting) is approaching rapidly and I'd like to invite you to join me in my Hands on eZ Components full day workshop. The session will take place on the first workshop day, which is Sunday the 4th of November, and will provide 6 hours of bundled eZ Components knowledge to you.

At the beginning of this workshop I will give you a general overview on eZ Components, show you the most important concepts and illustrate our architecture and design descisions. After that, we will start digging into code and you will see, how different components work in practice. Using a practical example applications to see working code I will explain to you, you are also invited to make me change it and possible exchange or add a feature and show you a different component. Some of the most interessting components - like Mail, Template and Graph - will be shown in detail and give you a good impression what eZ Components can do for you and how you effectively make use of them. Beside that, I will try to give you some insider tipps and tricks for your daily development and will possibly tab some OO design concepts and patters for explaination.
In addition to these learning aspects of my workshop, it should also give you the possibility to provide us with feedback on what you are missing in eZ Components, what you dislike and what you like about the library. Get into discussion with me and potentially other eZ Components development team members (like Derick and Kore), which will also be at IPC. So, seize the chance and tell us, what you think about our work!
And if you don't have a ticket for IPC, yet, take your heels and register now!
Monday, October 22. 2007
On November 20th dynamic-webpages.de will start with the first "Professional PHP" online training. This series of online sessions offers you "24 hours of PHP knowledge, from professionals, to professionals". Topics covered in this series of talks are:
- Object orientation and patterns
- Regular Expressions
- Object-Relational-Mapping
- Security
- XML and Webservices
- Testing with PHPUnit
- AJAX and PHP
- Debugging using Xdebug
- Image manipulation
- PEAR
- Zend Framework
- eZ Components
Several speakers will take care about the different topics, among those are Kore Nordmann (Regex, Images and PHPUnit), Christian Wenz (Security, XML, Webservices), Stephan Schmidt for the OO and patterns section and other community known experts. I myself will present the topics "Xdebug" and "eZ Components".
All talks will last about 2 hours (possibly a bit longer) and will take place on a dedicated day so you are not too filled up with knowledge afterwards. The sessions are presented in German language using a professional online training system, that allows you to interact with the presenter and other attendees in writing and speaking.
Since it is the first time this course is scheduled, you will receive a 200,- € discount when booking right now, so take your heels and jump over to the dynamic-webpages.de training and certification page and save your seat!
Thursday, October 18. 2007
The new semester has right begun, which basically means that the semester vacation as it was named earlier (now the lesson free time) is over. While that meant a lot of exams and work on the book for Kore and me at first, we had time for some vacation and finally to take care about a brand new eZ Components project:
Starting by the end of August we spent almost whole September full-time on designing and implementing this component. The goal was to design a flexible WebDAV server component, which can be used to edit whatever data source on an HTTP server through the WebDAV extension of the protocol, with the full lot of concerns in mind.
Who ever read RFC 2518 or even had a slight glance at it, might have noticed its quality. To state it plainly: It's bullshit. Inconsistencies, spongy phrases and un-logical behaviour definition wherever you look. No wonder, that almost every client behaves slightly differnet, so the first major concern was, that we did not now how clients would expect us to react.
Webdav component architecture - Click to enlarge
The result of the design phase included a custom summarization of the RFC including many other issues we stumbled over and is is a 3 level architecture for the component (as seen in the illustration). The 3 levels incorporate a lot of flexible configuration and adjustment possibilities, as well as a plugin API to realize the many extensions for WebDAV. We are currently working on the necessary client adjustments. While a lot of clients already work, Kore is on reverse engineering the M$ clients constantly, while I'm currently working on the first plugin: Locking.
If you would like to know more about this component and see it in action, come and visit my talk at the International PHP Conference 2007. The family meeting will as usual take place in Mörfelden (near Frankfurt am Main, Germany) from November 4th to 7th. We plan to have an alpha release of the component soon, so I believe you can right forward try it out at the conference and give us feedback.
Looking forward to see you all! :)
Sunday, September 30. 2007
The fact that type save comparisons (ala ===) are faster in PHP than the normal comparison operator (ala ==). The reason for this is simply, that PHPs loosly-typed-ness-auto-cast-code is not even touched with ===, AFAIK. So, if you did not know, yet:
$foo = 0; $bar = "0";
if ( $foo == $bar )
// ...
is slower than
$foo = 0; $bar = 0;
if ( $foo == $bar )
// ...
wich is again slower than
$foo = 0; $bar = 0;
if ( $foo === $bar )
// ...
But, this should not be the topic of this article, it's just an interessting pre-condition to know and the reason why I started to code strictly type save in PHP a longer time ago. Code like
$foo = array();
if ( count( $foo ) === 0 )
// ...
was the goal of this behavioural change. But, as Kore pointed out while we were coding together, it also led to funny code construct like:
if ( isset( $foo ) === true )
This looks kinda funny, doesn't it? But as I noticed recently, I more and more tend to code this way. So, the valid question was, does this have any effect on speed here? Positive or negative? And my little benchmark (code) revealed: There is a slide speed improvement here, too. So I basically don't care that I started it by accident. ;)
P.S. I love PHP 5.3! ;) Many congratulations and a lot of luck to Johannes as well as a huge ton of thanks to Illia!
Wednesday, August 8. 2007
More than 4 month of intensive planning, writing, coding, correcting, drawing, rephrasing, more writing,... to keep it short: A huge lot of work and much more even than we expected, after so many people told us, that writing a book would be a huge lot of work. Anyway, although writing was hard beside university, normal work, conferences, girl friend, and other commitments, Kore and me managed to have the world wide first eZ Components book in the final correction phases right now! *jump* While Kore already wrote a chapter for a collaborative work, this is the first book for us 2, which we write completly on our own and for me even the first real contribution to a book overall.

Especially the last phase, right during the exams, was hard and kept us much more from our regular work than we originally expected. Sorry to eZ for our delay there, I'm sure I can fix what I missed so far in a bit more than 2 weeks, when I can start right with real work on the 2007.2 version. Luckily I passed 3 of my 4 exams already very good this year, the 4th does not look very likely to succeed and I fust just need to write a 15 pages evaluation paper on XML accessing facilities in PHP during the rest of the free phase between exams. That means, until mid of October a lot of time for eZ Components, private projects and personal issues.
Amazon has finally setup the image for it, so I can blog this post. ;) The "eZ Components Developers Handbook", that is the working title translated to English, is a full-featured, professional and modular introduction into eZ Components. Beside the basic services of eZ Components you will get to know most of the stable components, among those Template, Graph, PersistentObject, DatabaseSchema, ConsoleTools, SignalSlot and a lot more. Except for 2 really minor ones and the brand new of background and insider information directly from the developer team.
Since eZ Components already have a very good API documentation with basic usage examples and a tutorial including some descriptive text, we decided, that a pure reference book would just be a rephrased print of the docs and not worth much. Therefore, we developed a funny little example application to illustrate, how eZ Components could can be used, as close as possible to the real world. This tiny blog is developed during the book, step by step, introducing new features which are based on different components.
This gives you, as a reader, the possibility to understand how to solve real-world-like problems from the base of an application up to more specific features, like visualizing log data using Graph or creating blog entries out of IMAP or POP mail boxes. We also show extended features of what each component can do for you to catch up all available features, everything build upon our integrated examples.
While this is a nice way of reading the book sequentially and mostly suitable for beginners, we tried to take care, that you can use it as a reference to find commented reference examples as fast as possible. Each chapter has an informal part, introducing the new features for the example application and how they will be realized using the specific components. You won't need to understand this one, if you did not read the chapters before, but get all references you need to understand that part. The second part is much larger and gives you a detailed architectural overview of the component, including small examples, and a about as long practical introduction, based on shorten code snippets from the application.
That way, it is possible to read the book as a complete eZ Components new-be, as well as an intermediate and also professional users, who get a good reference, completing the online documentation. Where feasible, important OO patterns are explained in short, but from scratch and references for additional information is provided, so that even OO-beginners can learn good programming manor while reading this book.
The complete source code, so far we needed it for the book, will be shipped with the book on CD, as well as the utilized eZ Components release, the documentation and more material. That way, you get the full source code to dig into the application structure in depth, if you want to. Following the book, you should be able to understand the step-by-step application development and the different source code stages, alligned with the chapters. Trying to extend the functionality of the tested code or to implement missing parts of a feature is a nice idea to reflect a chapter.
We hope to give the PHP community a good way to start rapidly with their speed-improved, secured and more comfortable application development. Pre-Order the book in German language now, either on Amazon or directly on our publishers website, to get a shipping-free copy (inside Germany) as soon as the printed version is released. The target due date here is start of October 2007. Although the Amazon text states, that the book will be about 350 pages, I can tell you the secret that the last draft that I saw was over 400. Let's see how the final version will like...
Some insiders of the library project told me, that chances might be good, that eZ will get this book translated into English, after the German release... ;)
Note: Kore and me wrote this book apart of our work at eZ Systems and the content is not related to the company in any way! Anway, thanks to eZ Systems for the permission to use the logo on the really cool cover and to the eZ Components team for technical support. Special thanks from me to Kore for great team work! :)
|