PHPBNL14, bumps up!

David Papadogiannakis

29 januari 2014

Introduction

This blog post will be my personal views and experience of the PHPBNL14 event from that started for me on Friday morning and ended Sunday in the afternoon.

Friday, PHPBNL14!!

“Finally the day is here!”, that was my first thought after waking up. Remembering how awesome PHPBNL13 was, 14 was gonna be even more awesome. I was sure about that even before I saw anything from what was being done in Belgium and here is why.

As an Enriser I have the unique opportunity to work with 2 of the organizers, Jeroen and Richard. And while they won’t go into the details much at work, sometimes a few idea’s are being passed around in the office and if you pick up on that with the knowledge of how awesome the previous editions were, you get a clue of what is coming up. Also being seated next to Jeroen for the last couple of months (we work on the same project) I get more and more clues as to how the conference is forming. He also asked my opinion on some matters (ex: does the schedule look good?). Which shows to me that the organizers really value feedback and input. Thumbs up there!

I volunteered to help Martijn pack the Enrise beer, the Enrise bean bags and the Xbox into the van and drive off to Belgium. As Martijn is not a developer we don’t get to spend that much time talking to each other so this 2+ hour ride was a nice way of catching up and sharing ideas.

Around 11.00h we arrived at hotel Ter Elst, Belgium. A pleasant sight as I remembered it from 2013 (and this year no snow/ice!). Immediately upon arrival there was 1 thing standing out on the parking lot.. BUMPER CARS!! Let me repeat that, BUMPERRRRR CARRRS!! This was going to be LEGEN, wait for it.. DAIRY!

I had heard of this idea but was not sure they were going through with it. Glad they did!
We parked the packed van and started looking for some familiar faces to help us getting us to our soon to be awesome relax and game stand.

We proceeded to the sponsor/social hall and first thing that stood out was the setup of the sponsor hall. Different (and better imho) from last year, there was way more space. Second thing that really stood out, the DWA stand manned by Skoop and JayTaph.
After a quick chat with both of them Martijn and I started to quickly unload the bean bags and Xbox while the beer was left behind in the van for Saturday. If only people knew 😉

enrise bean bags

Around 12.00h we were done and I started to wander around a bit and look at the other stands in the hall. This was like a mini fair. There were arcade games, air hockey, foosball, pinball and much more! At that moment I felt sorry (usleep(1) 😉 ) for some people I know that couldn’t attend.

After spending some time walking around I bumped into Stijn Janssen (you know him, the one with the bizarre foosball skills) and his partner in crime Tom Claus. We talked about how much fun the 2013 foosball tournament was and what the plan was for this year. We all agreed there would be some foosball.

Lunchtime!

As the Friday morning tutorials came to an end and lunch was ready to be served, it became clear to me that a lot of people had spend their morning coding and were ready for a refuel. That was also the time Brett popped his camera and my 2013 “stalker” was back. Brett was accompanied by Sebas, also know him from 2013 and it seems he never can stop smiling. 🙂
Aside: I know Brett from a time I worked together with Jeroen for Michelangelo on a small side project.

The 2013 edition we had some good fun and 2014 wasn’t going to be that much different, that was sure. After everybody was refueled it was keynote time!

PHPBNL14 keynote

Mentoring Developers

by Elizabeth M Smith
The keynote this year was done by Elizabeth and is about mentoring. As she explained, mentoring is not only about being mentored or being the mentor but how both sides have to work together to be effective. She had enough examples I think that anybody in the room could connect with.

Another great thing she pointed out was that being a mentor doesn’t exclude you from being an apprentice the same time. I don’t think many of the attendees realized this at first and it certainly got me thinking.

The most important thing I’ve remembered from the keynote? I believe the phrase Elizabeth used was learn to learn. Never forget the ability to learn.
With that in mind I proceeded to the first talk on my schedule.

Code Obfuscation, PHP Shells & More:
What hackers do once they get passed your code

by Mattias Geniar
I guess I wasn’t the only one with this talk on their schedule list. The room was packed! That must have given a buzz for Mattias Geniar. He clearly started with a list what this talk was about and also what it certainly was NOT about. I like when speakers do that. Let’s everybody know what to expect so they can change rooms if they feel they do not benefit from that talk. Everybody stayed put. Another good sign I guess.
He walked us through how code obfuscation works and how dangerous it can be. He talked us through file uploads and what risks there are when those are not properly handled. We also got a small insight in the tools hackers can use. Some are more dangerous then others. For example, who thinks of building a PHP shell with a bug report form?! Yeah, share the hack with the shell author.

Other are more advanced as in building backdoors in backdoors in backdoors. Basically at that point you are playing chess with the hacker/exploiter.

As for the speaker, Matthias spoke clear (with a good tone and a good amount of passion), I had no trouble understanding him and although there was some repetition the talk itself was quite good and I don’t think anybody left disappointed.

The afternoon break

Basically these breaks are a glimpse of what is coming in the socials only you have 20 minutes instead of the whole evening. Still in that short time you can get introduced to several new people. I think I’ve met 4 or 5 people in that short time and talked to 3 others that I met in 2013. All in all again a very nice time.

JavaScript/HTML5 Communication APIs

by Christian Wenz
A talk from Christian Wenz which had me interested as I’ve spend quite some time writing HTML and Javascript for several projects. As an all-rounder it is good to keep your knowledge at a certain level.

Cristian right away started with a laid back style of presenting. (I’ve tweeted most of his funny moments). He gave a small history lesson of SOP and what the present options are in cross domain requests. Not limited to cross domain though. He gave a crash and burn session on almost all the subjects. And it’s the crash and burn session that I’ve come to appreciate the most. Here you can clearly see a developer at work first hand. Things like (and not limited to!) document.write and alert are and I quote acceptable for a conference. Just don’t tell the rest! That gave a good chuckle across the room.

If you are spending time at front-end development mixed with back-end, this really is a must see talk.

Refactoring to Design Patterns

by Benjamin Eberlei
I’ve had the pleasure of a private company “howto unit test” session with Benjamin (together with Tobias) so I kinda know what to expect from Benjamin. It’s high level but he explains everything very well. That is why I attended this talk. We at Enrise also have the same issues with legacy code and things that were not thought out properly. This talked helped me confirm that we are on the right road in terms of progress.

It is not always top priority to learn new stuff. This was about confirmation of my current knowledge. Where do you start replacing when you are going to refactor? What do you refactor? How do you do it? All those questions are answered in another session of crash and burn. You can tell Benjamin has done this several times before as there is almost no more burn scenario.

Those were the Friday talk I attended. Missed the last session, but from what I’ve heard afterwards, The Big “Why equal doesn’t equal” Quiz by Juliette is a PHP developers MUST GO.

Fun fact 1: Juliette told me sunday morning that only Michelangelo scored 100%, once.
Fun fact 2: There were some guys who remember some questions and asked them to me, I had 2 wrongs right there. That hurt…

Will try to attend this talk at another conference and post my score.

Friday social!

Oh man where do I begin?! As much as I love the talks and to learn about my hobby* I equally love to have fun! Especially with others who share my hobby.

* Web development should be a hobby and which you are lucky to spend so much time at “work” doing it 😉

After grabbing some drinks with the other guys from Enrise we head out to the parking lot where the bumper cars are being prepared for us. Also the fries stand is beginning to get ready for the hungry hordes of newly gained knowledge geeks! Last year the Enrise fries were a success and we see no reason to tinker with that. 😉

Enrise fries

But I’m drifting away from the main subject that got a lot of exposure on Twitter. Anybody who had Twitter open on the tag #PHPBNL14 must have thought that people went outside of the hotel and into the city… No way that there were bumper cars on the parking lot of the conference, right?!

WRONG.

As I soon found out it was Thijs Feryn we had to thank for this pure awesomesauce of madness! (I’ll get back to Thijs later on ;)) Imagine the following: friends, fries, drinks, bumper cars… And for the ones that have another poison, cigarettes too!

PHPBNL14 Bumpercars

I felt like a small child again walking on the “once in a year local fair”. And as soon as they let us in the bumper cars all hell broke loose. It was Revenge of the Nerds V7.1.1… As soon as somebody got cornered there were several others ready to take advantage of that. And in the baddest of ways humanly possible. Getting pushed to the sides and then being pounded by 4 others, yeah that hurt badly. Yet many of us were still giggling and smiling after being hit like that.

After 30 minutes of non stop battling with the others I got out for the first time and noticed how sore I was. And it didn’t take long (about 2 steps) to find the next battered and sore person.
Soon there was a group of sore people, all with smiles on their faces.

Had great talks outside the bumper cars with Jelrik van Hal, Stefan Koopmanschap, Berry Langerak, Mike van Riel, Thijs Feryn, Stijn Janssen, Tom Claus, Richard Tuin, Brett Gaasbeek, Sebas Wijnen, Tim de Pater and a new “personal bumper car enemy”, Kana Yeh… Oddly enough those were the people that hit me the hardest in the bumper cars. So much for colleagues and friends. 😉

Back in the bumper cars there were parties forming and trying to corner a single person only to be bumped in the back by that very same person you had the agreement with! All in all, good times and I’m glad I was a part of the bruises on Jelrik, Mike, Stefan and the others. 🙂

Aside: At a certain point there were I think 3 Go Pro camera’s installed on those bumper cars, so stay tuned for the video’s!

After 3(!) hours or so it was enough and the line for the Enrise fries was shrunk to an acceptable waiting time (at one point see Joshua’s tweet). Our group was narrowed down to Berry, Tim, Jelrik, Kana and myself at that time and after we had our Belgium snacks we spent the most of the evening talking in the front room of the conference hall.

Nearing midnight we headed down to the Enrise stand only to find Thijs and some others madly playing FIFA on the Xbox and hanging in the bean bags. That was a good sign we did bring the right things to the conference and it gave a nice feeling that no matter how small the contribution is, there is always somebody who appreciates it. In this case Thijs and others appreciated it for the better part of the night and a good time Saturday! LOL

Playing FIFA

Around 01.00 it was time to return to the hotel. Arriving at the room I noticed how sore I was from all that time in the bumper cars and drew a hot bath in the hope that in the morning the pain wouldn’t be so awful as it had been for the last 2 hours.

Saturday

Morning… Felt like a freight train had run me over… But: There was another awesome day of talks waiting for us! (Lets skip all the pain complaints. ;)) Breakfast I spend with Stijn, Jeroen and Matthew(!). Another part of the keynote came to mind and it’s the part where Elizabeth talked about people like Matthew being gods. She also talked about how normal they are and that point got proofed when I had a talk with Matthew about Apigility. We talked about how the idea started and how far it has come as a really good tool.

Still need to start a project with it but it certainly has moved up in my todo list!

First talk of the day

This was a talk I had to attend according to my colleague and organizer Jeroen van Dijk. It was the best talk off all the available morning sessions. Also this advice was giving prior to the morning talk with Matthew and I promised I would attend the talk of Ross.
That actually made me a bit sad since I really liked the morning breakfast talk with Matthew.

Models and Service Layers; Hemoglobin and Hobgoblins

by Ross Tuck
Prior to his talk I’ve only heard legendary stories about Ross. I won’t go into the details of the stories, but Ross his talk better be damn good I thought when entering the conference room.

And with such a title, what can one expect? I actually didn’t know. So I sat there with high expectations and a bit of fear of not knowing if this would make my mind go bonkers*.
* I had that in 2013 with Allowed memory size of X bytes exhausted

But Ross started of easy with a good to follow introduction into the “known” MVC and how most of us currently place logic. He then gracefully moves to explain how service layers can help you clean up your controllers and take over certain logic that doesn’t really belong in a controller or a model.

This was a talk that contained a lot of good examples. And for me there was a good distinction between doing it “right*” and doing it “wrong*”.
* Right and wrong are more a personal opinion generally speaking.

Still bummed a bit that this talk was at the same time with Matthews but that how it goes at conferences. Just suck it up and try to catch it at another.

Moving Away from Legacy code with BDD

by Konstantin Kudryashov
This was another talk that I wanted to use to test my current knowledge against and get confirmation that I was thinking the “good” things. For the last months I’ve urged our product owner to start what Konstantin talks about.

The talk is was not so much about moving away from legacy code in itself as it can be applied for writing new code for new functionality. Konstantin showed us how easy it was to write some basic behavior test and cover your code base from there. This does not mean you skip something like unit tests!

If you ever had or think you will have problems with testing you code(base), this talk is for you!
Aside: here I had the same problem as before as I wanted to attend Anthony Ferrara’s talk too.

Morning break

This is a moment where you talk to friends about what talks they have been too and if it was useful or not. Generally speaking you feel like you’ve missed 2/3 of the conference as there is so much talk with so much excitement. And let’s be honest, you’ve missed 2/3 of the conference or you must have the awesome ability to be in multiple places at the same time. Myself, I got to hear my fellow Enrisers talk about the awesome talks of Matthew, Joshua and Stephan. Also started to play some pinball and that is the reason I lost track of time and missed the next talk. Ah well…

Lunch break

After spending some time talking in the sponsor hall to several people it was time for lunch. At that time I also heard a lot of good things from people that went to Docker, contain him, he is fast ! by Joel Wurtz. Only the amount of talk has made me put this subject on my todo list. Just shows how much a good talk can even influence people outside of the room.

Lunch time was also the moment I found Thijs Feryn playing FIFA, again lol! I jokingly offered him a job at Enrise stating he would be a good match for our in house FIFA specialists Barry (joined us Friday noon) and Erwin (joined us Saturday morning). He kindly refused, but I think there might be a PHPBenelux FIFA tournament in the near future!
Next up was the talk about unicode {insert spooky sound here}.

Using Unicode with PHP

by Elizabeth M Smith
Encoding problems are always a big pain in the proverbial behind. If you do not understand what happens at the lowest level of encoding consider yourself blessed (sometimes ignorance truly is a bliss) or be prepared to consider yourself a young padawan.

I did the latter.
I went in blank.
I went in ready to soak up knowledge and experience.
And boy did it pay off!

So many things are soooooo screwed with encoding you can’t even explain it without laughing about it. That is exactly what Elizabeth did too. While pointing out the dangerous errors developers are prone to make (or already made them), she also has the power of grace to point out the mistakes without hurting somebody. And that grace comes in the form of a good laugh Elizabeth isn’t afraid to share and explain. And don’t get me wrong(!), the talk was about serious stuff! F*** up your encoding and you’ll be praying to the mojibake gods!

She showed us the wonderful idea of unicode and how bizarre and poorly it is implemented throughout the world, starting with your OS. She showed us where the caveats are and the do’s and dont’s. And most importantly, she explained WHY! This is something I miss sometimes. Certainly a must see!

Aside: I wish I had seen this talk earlier as we are 4-5 months into a multilingual project… Now I gotta find out if we did it right.

Marrying front with back end

by Bastian Hofmann
I had high hopes for this talk, again as confirmation of my own knowledge build up so far. Am I doing the right thing? What will he be doing different? Basically I went in with a totally different attitude then the previous talk. Here I was going to compare and not be a sponge.
But sadly as soon as Bastian started I felt the title was not really the best one for the talk. I think we were barely 5 minutes in and he was talking about PHP generators, traits and refactoring code. Not the idea I had when entering this room. BUT(!), all the principles that he did talk about during those minutes were sound, looked interesting and some have made it on my todo list.

The only downside really was the German accent which made some things hard to follow as sometimes the slides were not in sync with the talk. As soon as the slide appeared it became clear what the context was.

The front-end part was where he talked about Mustache and popping in V8JS from Chrome into PHP to make sure the same rendering rules applied. Now that got my attention.

Bastian also explained that the performance issues are minor vs the advantages it gives you to use 1 single library (mustache) for rendering. The V8JS engine is optional as you can also use a PHP library but that might even be slower(!).

Eventually he comes to an end with some clever and handy one liners that you can and should remember. Example: front-end and back-end are part of the same application. Couldn’t agree more…

Afternoon break

There is just soooo much information going around and it is hard to retain that information in 1 go. A break of 20 minutes should help me deal with all that new information or doesn’t it? The latter is true, yet again, the fellow Enrisers Tim and Berry start talking about the sessions they have attended and at current time of writing I’ve lost all information if the talks were good/bad, (not) informative and or fun/dull.

At that time I was only busy on trying to figure out how and what our multilingual project would do the way we build it. Would it brake with the examples given by Elizabeth? That idea occupied the better part of the break.

Hacking with HHVM

by Sara Golemon
I attended this talk just briefly (10 mins tops) as I found out real soon that this was not my main point of interest. My todo list is quite long already and it got larger over the weekend and this one just didn’t made it.

Spend the rest of the time at the Enrise stand talking to our non-developers Barry and Erwin and how they experienced the day. After that we proceeded to unload the Enrise beer to the exit of the main conference room in the hotel building. 18 cases of beer ready to go!

Codebrew

Raffles and closing remarks

Upfront Jeroen informed me that we could leave a bit earlier then the end of the closing remarks because all the Enrisers had to gather to spread the beer after the closing note.
That way we could still participate in the raffle (congratz to all the winners!). And 1 thing immediately became clear… The organization had rethought the raffle because 2013 was sorta of a fiasco.

And not everything was a raffle any more. In order to be a winner in some “raffles” you had to participate in certain events or attend certain talks. Some might think this is unfair, others are fine with the idea. The latter counts for me. The biggest price for me is all the knowledge and memorable moments you share during a conference. Remember 2013’s planking in the bowling alley, the massive mini dodge ball fight? Those are prime examples why the raffle are just icing on top of a very large cake.

Then another moment comes up I’m fond of **drumroll** the preview of the after movie! Brett and Sebas spend so much time filming there is plenty to see. How do you select the best moments of a conference? These guys can do it! They made the entire auditorium laugh! Just wait till you see the final version. 😉

Anyways… After the raffle we (Enrisers) had to gather outside of the auditorium and start opening the boxes of beer and we were preparing for the worst. How do you handle 300+ people that can get an awesome looking (and tasty ;)) free beer?

Codebrew in ice jacket


So when the closing note was done we anxiously waited for the crowd to overwhelm our beer stand. That, well, kinda.. Uhm.. Was disappointing to say the least. There were many people who didn’t have the card from the goody bag so I refused to hand them the beer. While the other colleagues were more lenient towards giving the beers away I had been packing those beers in their precious jackets together with Martijn. I knew how many bottles we had and that we couldn’t just keep handing them out to people without a ticket. This soon turned out to be a minor error in judgement as we still have plenty of bottles left when almost everybody was out of the auditorium.

Free beer ticket

Luckily quite a lot people came back with a ticket and still got their beer but at that time we all just wanted to give everybody a bottle since the idea with the ticket kinda backfired.

Saturday social!

I think people remember this conference the most for the great socials. I certainly do.
Everybody seems to be having a great time and many Twitter-handles get shared. Got a dozen or so myself.

As we walked back from the hotel to the social area 2 of my colleagues left leaving me the only Enrise devver in costume and Erwin and Barry. Of course Richard and Jeroen where there too but on these days they are crew and it feels like the crew members are detached from their companies. Understandable by the way. They have enough to worry and take care about.

When we reached the stand Thijs was ~(still|again)~ playing FIFA. I think Brett accompanied him this time and soon Barry and Erwin were playing as well. That left me to do the one thing I really didn’t want to do… Bumper cars! You silly! Hah! You really think some bruises will keep me away? Hah!

Jup, silly me spend another couple of hours in the bumper cars but this time a with a little padding around the bruised left knee. That PHPBenelux towel really came in handy and it gave quite a few laughs outside too. 🙂

After a while I got into a bumper car with Martin de Keijzer and a Go Pro camera and even with Thijs Feryn… That last one I regret it the most, never been hit so much over the weekend.

Don’t know if it was Thijs his driving skills (or the lack off) or that everybody wanted to have Thijs get bang for his buck or simply to hit a bumper car with 2 people. But it certainly hurt.
By that time the other 2 Enrisers had enough too and wanted to go home. Since Barry was my ride home I was suppose to drive with him back to the Enrise HQ in Amersfoort. There was only 1 problem. I didn’t feel like going home. Thanks to Petra (1000 thanks!) I had a ride home for Sunday so I got to spend couple of hours extra drinking, laughing and being sore to the bone. All well worth it!

Sunday

Mornings… Ugh, I hate morning. Sore and bruised, battered and stirred.
YET happy! Happy that this PHPBenelux was even better then last year.
Happy that I’ve gotten to know some people better.
Happy that I’ve met new people.
With that idea I headed out to get some breakfast. I find that there are already quite a few up despite it being only 08.30. I grabbed my usual breakfast (eggs and bacon!) and found company in the form of Kana and soon Jelrik where we discussed some of the Scrum and Agile practices.

After breakfast Skoop asked me if I still needed a ride home and since he still had some stuff that needed to be brought back to the Enrise HQ I decided to join him. I thanked Petra again for the awesome and last minute offer.

As soon Skoop and I said all our goodbye’s we left for a good 2 hour drive. Now I know Skoop from work and we never really have the time to catch up and pick each other brains. This was a nice ride with a lot of catching up and sharing ideas.

For instance, I never knew the Ter Elst hotel crew is pleased with us PHPBenelux visitors. They consider us to be kind, polite and overall cool people. Sure there is the occasional glass that breaks or spills, but accidents happen everywhere. That remark from Skoop got me thinking on how many of the Ter Elst crew I will see next year and how great the location is the crew have chosen. The ride continued for well over 2 hours with the occasional smack talk about the Dutch government, the great ideas like DWA and more.

And on that note I would suggest for anybody who read the whole post to come see me at least next year at PHPBenelux and we’ll have a laugh too!

David P.