010PHP July and August

Time flies not only when you are having fun, but also when you are hard at work! As a developer who is walking back out on the field, a lot of new technologies have emerged. Sometimes it is overwhelming, and meet-ups are an excellent place to learn, with practical examples and people to talk to face-to-face. My favorite place to hang out with fellow developers is 010PHP, since it combines two things I love: Rotterdam and PHP programming.

July 4th this year I started my new job as a Full Stack Developer at DevMob, and I found my salary increased and my free time decreased. So it was a challenge to find the time to write a review for the last meet-up I attended… and the one before that!

The view from the DevMob Rotterdam office is amazing.
July’s 010PHP meetup took place at DPDK‘s beautiful Rotterdam office, situated at near Veerhaven and the Erasmusbrug. I met Damien Seguy outside, who gave a talk about static code analysis earlier this year. It was a bit of a climb to the top floor, but the view from the terrace was worth it. The meetup marked the third year of 010PHP and to celebrate, DPDK were hosting a barbecue. The smell of grilled burgers made many a developer hungry and the atmosphere was great.
Roberto welcoming everyone at the meetup and introducing the new shirts and stickers!
After we’d gotten some food and beers in we were summoned inside by Roberto, who first introduced the shiny new 010PHP shirts and stickers and introduced Gerben Geijteman, our first speaker. The talk was “To AWS with Ansible“. Gerben spoke about how he and the team of DevOps engineers at FD.nl migrated to Amazon Web Services and Ansible. FD.nl / Financieel Dagblad is one of the busiest news websites in the Netherlands, and I was very impressed with the numbers, both the performance of these tools as well as the invested money. Though I know enough to be able to deploy applications through SSH, I’m not an experienced DevOpser. I’ve just gotten started with Docker. It was really interesting to learn more about Ansible. Gerben also performed a classic ‘daring’ talk move by deploying a server live, showing us exactly how Ansible gets the job done.
Gerben talking about AWS and Ansible.

The next talk was “Paradoxes and theorems every developer should know“, given by Joshua Thijssen. This was a fascinating talk, explaining how our identifiers and hashes are a lot less safe and reliable than we think. Based on a handful of ids, we can make a good estimate about the total collection; and as it turns out, hash collisions already start happening around a collection of a mere hundred. So definitely don’t rely on hashes to identify resources!

At the end of both talks, some Elephpants were thrown into the audience… and I caught one!

The family of fabulous elephpants got a little bigger.

After the talk, beers and barbecue continued, but I went home early; after all, the next day was a work day, and I have to catch those zzzs.

Before I knew it August had come along, days full of programming flying by, and @Yosh asked me whether I was going to the meetup tonight; my answer was, “what meetup?” So of course I raced to the 010PHP meetup group and managed to secure a place last-minute.

This time the talk took place at the Schouten Zekerheid office near Kralingse Zoom. After a quick sushi dinner at iYuMi I headed to the metro station and took the robot bus to the building.

Who’s driving this thing!? 

Today we had the talk “010PHP: Don’t work for PHPCS, make PHPCS work for you!” by Juliette Reinders Folmer. PHPCS is one of those tools that I have used in plenty of projects, but never went in-depth with; just put in the default settings, such as PSR-2 or Symfony, and go. That’s why it was useful to learn about the many ways you can customize your code sniffer. Especially being able to grab newer sniffs from different projects is good when you are using an older default. Not to mention it is awesome to get the latest scoop from someone who is an active and prolific contributor to PHPCS.

My journey back home was a bit adventurous that night! In my hurry to get to the meetup, I hadn’t checked my transport back, and as it turns out, robot buses don’t drive around past 9 pm. Who knew robot buses had to sleep? Do they dream of electric passengers? I ended up having to walk all the way to the metro station (it wasn’t really that far, but still!)

That concludes my meetup summary. Tonight I am attending the Domain Driven Design meetup in Hilversum, which will be interesting considering I know literally nothing about DDD yet. Getting caught up to all the Next Big Things is a journey of jumping into the deep end and learning how to swim again.

And speaking of getting caught up — I also dove into Node.js last week. The JavaScript ecosystem has exploded exponentially in the past three years. Since I am primarily a back-end developer, I decided building a back-end API with Node.js would be a good place to start. I might come to regret those words…

010php Meetup June 8th

Last week I attended the 010PHP Meetup for June 8th, with two talks: Review unknown code with static analysis by Damien Seguy, a talk he will continue to refine and give at the Dutch PHP Conference at the end of this month. The other talk was GraphQL is right in front of us, let’s do it, with Symfony by Renato Mendes Figueiredo.

The meetup was hosted at Youwe in their brand new Rotterdam office in the middle of the city centre. Right off the bat the atmosphere was friendly, groups of devs catching up with each other with a beer in hand.

Notebooks for everyone!

I spent some time socialising with 010PHPers familiar and new. Since I was present at the very first handful of meetups and gave my own talk back in 2013 (called ‘Debugging for Distressed Developers‘), it was natural for me to get back in touch with my peers starting with 010PHP. It’s a friendly welcoming group of developers with good mix of veterans, mediors and students alike.

Coffee, beer, pizza, and talks: the average dev’s fuel

After most of the pizza had made its way to hungry developer stomachs, the first talk began.

Damien is an experienced speaker and he had no trouble getting the audience involved. He explained how static analysis is about reviewing the code with as little bias as possible, starting at the very basic level — what kind of PHP settings does this code use? Which extensions? — and slowly digging further into it, looking at dependencies, filenames, directory structure. The audience was frequently tested on their own analytic ability by being asked if we noticed anything unusual or something that told us more about the application.

Then we were introduced to a large number of PHP inspection and analysis tools, including Damien’s own Exakat software and PHPLint. What especially struck me were the graphs with the PHP version on the x-axis and number of errors on the y-axis that told us how a particular application may be maintained with regards to PHP version compatibility and that enterprise applications will often stay stuck before a major version change out of fear of breaking everything.

The version numbers also reminded me of PHP6 — in the sense that we jumped from 5 to 7 and we don’t talk about 6, much like we went from Windows 95 to XP and don’t talk about ME (even though XP has many of the features first released in ME). But, that aside.

After a short break, Renato continued with his talk on GraphQL. As someone who’s been out of the loop for a while, learning about new technologies has an extra layer of ‘I need to know this! Help!’ so of course I paid the utmost attention. 

“Help! I need to learn this new library right now or I’ll be completely obsolete!”
— Sasha Greif at So what’s this GraphQL thing I keep hearing about

GraphQL immediately struck me as a very elegant solution with clean, understandable syntax. It’s one of those technologies that makes you wonder, ‘where have you been all my life?’ Of course, it’s been around since 2015 and first developed by Facebook in 2012, but it’s quickly gaining even more traction. It sits between your application and all those other APIs out there, so you can just talk to GraphQL — and let your users talk to your GraphQL server — and it does the work for you. (Well, mostly. You have to write resolvers to deal with your input, but then you’re all good to go.) And as a total Star Wars fan, I appreciated the look of Renato’s presentation! He’s also giving this talk at DPC by the end of this month as well as submitting it to several conferences, so you may see it pop up in the future.

It was good to attend a meetup again and soak up some tech knowledge! I’m attending the Joy of Coding 2017 conference in Rotterdam by the end of this month, so be sure to check out my report on it as well.