It’s warm, the sun is shining, the sky is blue, you have php nerds ranting around - sounds familiar? Yes, it’s PHP Unconference time! It was the 2nd PHP Unconference in Europe, which took place last weekend at the Free University of Berlin. Thus, we Jimdos didn’t want to miss the opportunity to attend this awesome (un)conference.

There were loads of cool sessions, plus we gave a few ourselves, so here’s our review:

typical unconference weather
typical unconference weather

Unfortunately, there was no official pre-party, but our friend Till ‘@klimpong’ Klampaeckel organized a little get-together in the tiniest bar with the slowest barkeeper in Berlin. First day starts - as every unconference - with the voting session. In case you don’t know what’s an unconference: Every attendee can propose a talk or interest and introduce it with a few sentences. After that everybody can vote for the talk he/she would like to hear. This resulted in the following schedule:


by Daniel Fahlke
by Daniel Fahlke

We started with Lukas’ talk about PHPCR, which is a set of php interfaces following the JSR-283 standard. There’s also a reference implementation called jackalope. Lukas gave us some very nice insights to the project itself and the goals they want to achieve.

Next up: I talked about “What’s wrong with php?”. Sönke co-moderated a session about puppet, where they talked a lot about anti-patterns in puppet, and why you should also use your existing knowledge about software design when writing puppet. Sidenote: checkout out our puppet-skeleton for testing purposes.

Kore and Gaylord gave a session about behavior driven development and testing in general, to ensure you as developers and the marketing/product people are talking about the same thing when planning a product. We talked a lot about Behat, Mink and the do’s and don’ts in BDD - also this session was kind of a great foundation for Sönkes talk the next day.

Next day started the same as the first, with a voting session. Many of the attendees came up with new ideas for a talk, thus we had some great topics for the 2nd day.

by Daniel Fahlke
by Daniel Fahlke

Sönke started the day with his agile documentation talk. There was a lot of interest and many curious people asking questions. In the spirit of an unconference we also found out some tools like PlantUML, which can nicely integrate into your IDE.

Next session covered one of our favorite topics: “Discussion about Architecture Refactoring” so it didn’t take long until we kind of hijacked the session and started sharing our experiences with “refactoring” grown software code bases. Introduced topics like Branch by abstraction and that the cultural & social side of doing refactorings is also a big part and should not be underestimated.

Someone asked for a session, within all the php developers: “Give me ten reasons why ruby rocks”. Sönke and I are, from a php point of view, familiar with ruby so we gave the session. We did some last minute research and came up with a 12 points list why ruby rocks but unfortunately we just remember 9 of them:

  • Monkey patch possible, reduces the need of dependency injection
  • Sane error handling
  • Operator overloading
  • even the core C code is readable!
  • ecosystem, e. g. eventmachine for evented io
  • Code reads like a natural language
  • Sane language design: Everything is an object, even classes are ;)
  • Symbols instead of strings for identifiers
  • Make love, not hating and trolling within the community

What fascinated the people the most was the operator overloading. Also this ‘block’ thingy got some attention. We hope that we picked the best reasons for php developers, but if you know other reasons, please leave us a comment, we are always eager to learn.

Johannes presenting outside in the sun
Johannes presenting outside in the sun

As the closing session we picked Johannes Schlüters ranting session about contributing to php. Due to the nice php unconference weather Johannes decided to give this session outside. We were shocked about the status quo of contributing to php. For example, its not defined who actually is allowed to vote on RFC’s or that all the test are failing and nobody really cares (Plus there are 3 different CI systems, and it seems like their all failing). Also Lukas spoke up that he and Johannes were the release managers for PHP 5.3, and this really made me think about the php community and all the people involved.

We also talked with Kristian “isotopp” Köhntopp about his two golden rules of web development  (LINK!):

  • “If you break it, will you even notice?”
  • “If you noticed it, can you even fix it?”

Sönke proposed to add a third rule like:

  • “If you fixed it, make sure it won’t happen again”

Kristian agreed and told us about his new rules four and five:

  • "If you SSH into a machine in order to look something up, your monitoring is broken"
  • "If you SSH into a machine in order to change something, your automation is broken"

If you feel like ready for this, he told us that whenever someone breaks rule four or five there, a script will automatically create a bug ticket for it.

So after this two amazing days of php unconference we had to leave Berlin heading back to the most beautiful city in the world, Hamburg.

Thanks again to all the attendees and of course the organizers who made all this happen, and a really great place to come together as a community. Next year, we will meet at the island of Mallorca. So save the date and join us!

Ole Michaelis | Open Source Rockstar
ole@jimdo.com, @CodeStars

Ole began at Jimdo in December 2012, where he's referred to as "O Captain My Software Captain!" He has a wide range of interests as a developer (system architecture, deployment, and more), and he loves attending tech conferences, where his favorite thing to do is spread the word about Jimdo.

Soenke Ruempler | Chief Trolling Officer at Jimdo

Sönke has been going with Jimdo since it's beginning. He passionate about good trolling, distributed systems, knowledge management, devops, culture and scaling products as well as companies (and how those things may well play together)