As a native geordie I was pleased to have a chance to attend a PHP conference in the north east. Even after living in Manchester for nearly a decade now, Newcastle still feels like home. Despite the nostalgia of revisiting the Tyneside Cinema for the first time in many years, I was a little apprehensive about it's suitability as a conference venue – I couldn't help but recall the regular disturbances to films watched there, caused by the noisy metro line passing underneath the building. I'm pleased to report that I was wrong to doubt the choice, the venue and staff were excellent throughout as we took over both the third and fourth floors of the building.
I arrived in plenty of time to enjoy the complimentary bacon sandwich and coffee on offer before finding some faces I recognised and settling in to the Electra Room where the main track was due to start, with Inviqa's very own Rowan Merewood taking to the stage to deliver the opening keynote.
After starting his presentation by pronouncing himself a tool, Rowan went on to highlight a number of key aspects to being a good and productive developer. Luckily for him, he was speaking to an audience who appreciate their tools and the content was well received. The huge cinema screen was a little odd at first, but once you'd gotten acclimatized it was a good addition to proceedings – I only hope it hasn't ruined my enjoyment of future conferences where such impressive AV equipment is not available. Every time Rowan added a new body part to his dream colleague it came with a twitter friendly summary, many of which did make it to twitter soon after - “Being passionate and authoritative is not the same as being an angry asshole” was one of my favourites.
Thanks to a prompt start there was plenty of time to decide what to go and see next, I decided I was going to head to track two. As I arrived it seemed many others had the same idea and I found myself taking the last available seat.
API Driven Development: Eating Your Own Dog Food
Despite some minor technical hitches with the microphone, Alex Bilbie spoke confidently about some of the work he has been doing at Lincoln University. There were some good insights on why we should both develop well designed APIs, and then actually use them ourselves - if it's good enough for your clients, it's good enough for you, right? The content was kept quite high-level throughout and I actually took more from some of the periphery topics mentioned than the main topic, but I did enter the room already sold on the concept. I came out with a note to investigate Swagger for documenting my next API and Alex was also the first of the day to talk about measuring metrics and building dashboards, a topic that would recur throughout the event.
Measuring and Logging Everything in Real Time
A quick dash up the stairs back to track one to watch Bastian Hoffman talk about logging. I'd done some reading around Graylog2 based on an aside during a talk at the PHPNW conference but was yet to use it in anger, so I was pleased to hear more on the subject. Many more tools for me to investigate were introduced, including StatsD and Logstash which can, if used all together, create a robust centralised logging solution. Of course we mustn't forget that after collecting all this data we need a good way to see it. Creating yourself a dashboard using Graphite gives a great way to do just that. Bastian's suggestion to add a unique id to error messages to make it possible to identify the specific instance of what went wrong, when and which requests were related to it sounds so obvious now that I wonder why I haven't been doing it for years.
Time for lunch and an unexpected surprise as everyone was handed a black plastic PHPNE branded lunchbox containing a sandwich, crisps and a variety of sweet treats. I've not seen this done before at a conference, and it seemed to go down pretty well. The lack of chairs added to the unusual lunch choice, as many of us sat on the floor and ate our sandwiches in scenes more akin to a summer picnic than a PHP conference. It was also during lunch that I discovered a personalised mug had been provided for me, and every other attendee, by one of the sponsors – another unexpected little bonus.
Modernisation of legacy PHP applications using Symfony2
First up after the break was Fabrice Bernhard talking about upgrading legacy apps. Many of the points here were useful, but it did feel at times like a marketing pitch. It also seemed unnecessary to have included Symfony2 in the title, as most of the talk was around techniques and considerations for upgrading rather than the technical detail of implementation. Nonetheless the concepts were sound and the key message to upgrade legacy code module by module rather than a complete rewrite from scratch makes a lot of sense. The asides were interesting too, another mention for measuring business metrics and dashboards along with promoting the idea of regular deployments, regular here meaning many times a day, not the fortnightly or even monthly release cycles often seen in agile projects.
My decision to stay in track one for the next talk meant I had now committed to my chair for another two hours and I was certainly pleased with the cinema seating at this point, a lesser seat may have had me more concerned about the time ahead.
Introduction to Symfony CMF
Despite being an official sub-project of Symfony I have to admit I had no knowledge of the Symfony CMF before this session. I was pleased to be introduced to it as it looks like an excellent option for any developer who needs to customise a content management system. Lukas was very accomodating to the crowd and even offered a choice of showing slides, a demo or the code. With only one hand raised for slides and a split between the other two options, we were treated to a quick overview of the system and a little bit of code. I came away eager to get a chance to play with some of the features and hope that going forward the project will catch on, as it looks a far nicer system for developers to work with than some of the CMS systems I've come across.
To close the day, Thijs gave a well judged closing keynote about “the cloud”, or as he put it “the internet”. Lots of amusing anecdotes helped sell his message, his insistence that nobody tweet the stories suggests that they may well be true too. The core message throughout was that there is no silver bullet solution to high availability and scaling problems, and the fact that many people believe “the cloud” will solve all of their problems is in itself a real problem.
The post-talk conference giveaways were interestingly executed, as the winner of each prize was selected by a php script, not in itself a complicated idea, but it added to the event nicely. Finally, after a quick word from the sponsors and some difficulties operating a mac, which entertained the delegates enough that part of me wonders if they were scripted, everyone was given a free t-shirt as they left the Tyneside cinema to add to the goodies that had already been showered upon us throughout the day.
After heading out for some food I ended up back at the post-conference social, where a sponsored bar was in full force. Given that the money behind the bar did not run out until gone 1AM, I feel little should be said about the events of the social, other than I had some interesting conversations and I am appreciative to the organisers and sponsors for a very enjoyable day and night. I took something from every talk and I don't really have a bad word to say about any of it. I hope this does not end up as the only PHPNE, it is only a shame that next year a new venue will likely need to be found as I expect demand for tickets will be high.