knightly

Blog Archives

Dutch PHP Conference 2011

Last week was the 5th DPC (Dutch PHP Conference) in the Amsterdam Rai. And thanks to my awesome employer i once again had the chance to be there. This year with a full conference ticket (including the tutorial days). And i had a blast. I wanted to do this post earlier this weekend but due to some current injury i wasn’t able to. So here goes.

The kick off for the DPC11 were the tutorial days. And they had some pretty cool tutorial lined up for this year. But as always you have to choose. So me and Geoff chose to visit two of the tutorials we would benefit from the most. Since we are in pretty heavy database driven environment. We chose:

Optimizing MySQL Essentials

This session was presented by Ligaya Turmelle & Raymond DeRoo, And these two have a great chemistry between them. All the ingredients for a good sessions. And a good session it was. Even though i missed the larges part of the first 1.5 hours because i got stuck in traffic.

The second part of the tutorial was aimed at profiling and optimizing slow queries. It was Ligaya time to talk and Raymond took his stand on the soapbox a few times to makes things more clear. Or to interact with the audience in his special way. The session mainly describe how to enable and configure the MySQL slow query log. And what to look for once that is up and running. Ligaya continued with a real world example from joined.in. And show how the medium sized queries could be optimized quite a bit. Although not completely finished. The result was quite nice.

After talking about the slow query log we went into a bit more detail as to how to do query optimization. And what tools to use for the job. MySQl comes with some nice features that can be used in this process. The basics to get more information about your queries

* show create
* table status
* show indexes
* explain [ extended ]

I made quite a few notes during this sessions. And learned some cool new things. Some of the main items for me were

If possible move where clauses inside the join statements
Don’t use subselects. But if you really have to use them in the `AS` form

SELECT
t.id,
(SELECT t2foo FROM table t2 WHERE t2foo = t.bar) AS foo
FROM table t

Indexing key order is very important
Use a sequence table to generate date based reports

Doctrine 2

I was really looking forward to the Doctrine 2 session with Juozas Kaziukėnas. And it was a good session as well. Although a bit fast. And i had some issues getting Doctrine to work on my laptop. But because we make very heavy use of Doctrine 1. I was very interested in what version two has to offer over version 1. And i think Juozas did a great job in explaining the structure of Doctrine 2 and the most basic inner workings.

I was very happy to see the new Doctrine 2 models are completely decoupled from the Doctrine base classes. This is awesome. And makes for a way more portable application then with the Doctrine 1 base. Which basically ties you into using Doctrine forever.

That was tutorial day
That was day one. I had fun although quit painful with my current injury. I really enjoyed the sessions. And on our way out we were presented with a nice surprise. A copy of “Real-World Solutions for Developing High-Quality PHP Frameworks and Applications” by Sebastian Bergmann and Stefan Priebsch. A great addition to my private library. And to top things of we all got a 20% discount on the 5.3 ZCE exam.

Next up, Day 2

I missed the opening talk by Harry Verveer which is a shame. Geoff told me it was a very good inspiring and energetic talk. It got people enthusiastic. That’s what we need. At arrival it was visible that there were quite some developers here. It’s always a big difference with the tutorial day. Like the first day i missed a big part of the morning due.. to well you know. But i attended 4 cool sessions non the less.

Cooking up your Development Environment by Alistair Stead

This session was a bit different then what i envisioned. But it turned out to be a gem. Most of the talk was aimed at explaining how to setup and work with the Chef application. Before going into explaining chef. Alistair mentioned some other solutions like Capistrano, Puppet or a mix of Bash scripts.

And then he continued about explaining his day to day work day. And how he would setup his virtual work environment each morning by running a simple command that generates a fresh virtual machine to work with. Then he went into detail how Chef Solo (Distributed infrastructure management) and Chef Server (Centralized infrastructure management) work together. And how you can setup and deploy packages on the virtual machines and basically how to manage your instances from a cool and simple web GUI.

He went on explaining this hooks into Amazone’s AWS and Rackspace cloud services as well. So skies the limit. An awesome tool.

Simplify your External Dependency Management by Stephan Hochdörfer

This session was aimed at working better with project dependencies. I was quite interested in this talk. Since we work with svn:externals. Which at times can be quite a pain. Specially when the amount of applications build on a single framework tend to grow. And BC breakage is a sin.

I was a bit sad to see that this session didn’t really target managing the local dependencies. But was more aimed at handling the dependencies when deploying packages on servers. Until now this has never been an issues. Even though i was a bit disappointed. The sessions did have some valuable information.

And went into some detail how to setup an own PEAR channel to deploy packages but also touched the Java system Maven. Which i did work whit a few years back.

Clean PHP by Sebastian Bergmann

I expected more from this sessions. And i had the feeling Sebastian was blasting through the talk as if he was out of time. It went very fast. And basically was run down of all the developer principles, acronyms, etc. A good talk. But i expected more from the father of PHPUnit.

Advanced OO patterns by Tobias Schlitt

The best session of the day. Tobias is a real speaker. One that say the right things. And makes the audience laugh. I really enjoyed listening to to him talk. But a subject like Advanced OO patterns can only be cool. So i guess i he chose the right talk to give. Like most talkers he gave some props to Martin Fowler and the Gang of Four. For writing on patterns and refactoring. And basically it’s a refreshment of studying design patterns. Which i do an a daily basis.

There was one real gem however in this session that i hadn’t come across yet. Which basically is a way to do lazy loading with objects. This is nothing new. But the framework he used for the talk. Used the new 5.3 closures for this. And i really liked that. So besides the fact that i learned a cool pattern. I also learned a new way of using closures in PHP 5.3.

A great conference

That basically was the conference for me. I really was looking forward to listing in on Derick’s talk about profiling PHP applications. But due to my condition i had to stay home the last day and miss this talk. A bit sad. Thankfully he has pretty detailed PDF up on his site about the talk.

Once again IBuildings did a great job in organizing this event. Thanks guys. You once again did an awesome job. I do have some small notes however. During the sessions i heard a lot of speakers say. This is a sessions for 60 minutes. And i only have 45 minutes. So i have to skip some stuff. I mean come on how long was it known that this event was going to happen. Either give the speakers more time. Or speakers adjust your talks.

Besides the fact that i sometimes had the feeling i was visiting the IBuildings headquarters. It was a great event. Hope to see you there next year.

Dutch PHP testFest results

Back in May i attended the Dutch version of the PHP testFest. And today i noticed the post of Stefan Koopmanschap about the testFest results. It seems the Dutch testFest was a great success with 39 tests written from the 158 total. Felix de Vliegher a Belgium member of the PHPGG group and starter of the Belgium PHP group got CVS access to the PHP.net source. Good job.

Although i didn’t write that much tests. It was a great day. and i learned a lot. Thanks to IBuildings and Sebastian Bergmann for making this happen. And i hope till next year.

Dutch PHP Conference 2008 :) +20%

I wanted to finish this post last weekend, But i was feelings so bad (flew). I haven’t really been near my computer untill now. So here goes. Last Saturday me, Bart and Robbert headed over to the second edition of the Dutch PHP Conference. After getting the name tags. We headed over to the main room. Where i scored a nice PHPWoman t’ shirt for my wife :) Not much later the first keynotes started.

The first keynote was by Zeev. Which i had high hopes for. It’s a opportunity to hear one of the guys that made PHP to what it is. Give a talk. It was mainly about the history of PHP. Because nobody in the audience seemed to know about it. Or they just wanted to hear it from the master himself. I don’t know. I enjoyed the talk.

After Zeev Marco Tabini hit the stage. Which was pretty funny. This guy has a way of talking. And his slides connect to that perfectly. It was amusing and interesting. Although i had some problems getting comfortable in the main room chairs. the name of the talk was “PHP and the Taste of Mayo”. And it was mainly about keeping it simple. And choosing the right tools for the job.

After the keynotes it was time for lunch. Because i was feeling a bit sick i wasn’t really hungry. But the food was good. All kinds of sandwiches and the tasty saucijzenbroodjes. Just good variety. Outside we sniffed some fresh air.. And tried to figure out to which talk we wanted to go. Since we don’t do anything with unit testing at the moment. We decided to go to Sebastian Bergmann‘s talk about PHPUnit 3.3.

Sebastian quickly skimmed through the basics of PHPUnit. How to create a test class and the use of mock objects. After that he showed some new features in PHPUnit 3.3. One of wich is based on behavior based development. It was a story based testing. With the use of method chaining phrases can be build to execute the execute scenario’s. I have to say it’s a strange way. And the code looks kinda weird. I had the feeling Sebastian was also not to happy about it. I guess he tries to keep his users happy. He dropped some words about a new project. I think it was PHP Depend. But i kinda forgot. Couldn’t find any info about it on the net. So we keep that for another time. I had the feeling Sebastian was rushing a bit. He didn’t have enough time. But it was good talk. His slides can be found here.

After the first talk we took something to drink and walked around a bit. Waiting for the next talk to start. We decided to go to Mayflower and Sektioneins security talk. Which was something different then i expected. It was not as technical as i had hoped. But it touched some nice topics. I had hoped Stefan Esser would be there also. But Johann-Peter Hartmann did a great job. The talk was mainly was about Risk assessment. How to identify risk points in your application flow. And how to anticipate to those points. The talk also showed some malicious web trends. Some nice graphs that hacking web applications is not for fun anymore.

When the second talk was over we went outside. i was feeling pretty bad. Seems every time when there’s a conference i come down with the flew. Was thinking about going home. But decided i didn’t want to miss the last two talks. So we headed back to the main room. After getting a nice cold coke. We picked some nice seats and waited for Stefan Priebsch to begin his talk about PHP 5.3 and PHP 6. This was one of the best talks i think. it was pretty interesting to hear about some new features. Although i knew about most. There was a bit of e discussion about namespaces. Some guy in the audience was screaming for attention. Although he made some points. I had the feeling i was sitting near a real life troll :) Anyway Stefan’s talk was good. A bit of irony about the up coming PHP 6 with Unicode support. And some new features in PHP5.3 like, Garbage Collection, SPL, Late static binding which was very interesting. With some nice examples. I ended with a small plug for his new book. Which you can buy over at PHP|Architect. The slides for his talk can be found here.

The final talk was given by Terry chay (the PHP terrorist). I looked forward to this talk. I heard and read a lot about his way of presenting in front of a crowd. And i can tell you. This guy rocks. The talk was of course not without some Ruby on Rails bashing. I had to say this was one hell of an inspiring talk. The talk was titled The Internet is an Ogre: Finding Art in the internet Architecture. His talk was about what he called the four s’s (Stability, Scalability, Speed, and Security). How to build an application the right way. From the bottom up. I didn’t find any slides to the talk yet. They will probably pop up somewhere.

After the last talk ended. All speakers got on stage and received some goodies and a big applause from the audience. The conference was over. And because i wasn’t feeling to well. I went home immediately. Overall i think it was a great day. I learned some new thing. Witch for me is the main thing about conferences. On our way out we picked up a goody bag. Which had a very nice t’ shirt. And some promotion materials. Thanks to all the people who made this happen. And hope till next year

By now some pictures are apearring on flickr.