This year’s PHP UK was my first, so I was not entirely sure what I should expect. Upon arriving at the business design centre, my first impression was that it is an excellent venue for a conference. So much so that two were running in parallel, Stampex – the British national stamp exhibition – being PHP UK’s companion on both days. The venue was plenty big enough and there was no issue with the two quite different crowds sharing the building, even if I was slightly taken aback to see what appeared to be a town mayor getting in my way when I was trying to find a toilet.
I arrived just in time for the opening keynote, having been quickly ushered in. Nobody even bothered to check that I had a ticket, though I later discovered this wasn’t special treatment for me, nobody’s eligibility to enter had been checked. I am pleased to report that by Saturday morning they had realised (or been told) that they should be checking attendees were supposed to be entering – a real world example of emergent design perhaps?
Talks – Friday Morning
Rasmus’s keynote contained a good insight into the development and motivation behind PHP as a language, and a whistle stop tour of the new features coming to the world in PHP 5.4. It was excellently presented and well received by what was an incredibly packed out room – when I got there I was forced to stand at the back it was so well attended. A rallying call for testing, documenting and further developing the language made me think I should probably try to give something back to the technology that is currently keeping me in a job. The pesky HashDOS problem was explained clearly and I am now wary of json_decode() – I must always remember that users can’t be trusted. I was pretty pleased with this conference opener, despite some comments that it was too technical for a keynote, for me it hit just the right note.
Time for a quick cup of coffee and some musings with colleagues before hitting the first of my choices for the main tracks of the conference.
I came into this talk based solely on it’s excellent title, I was not alone and the “Big Data” intrigue had gathered a reasonably large crowd. Unfortunately, the content of the presentation seemed to have little correlation to the title, this being simply a walkthrough of what appeared to be a half-written application. My attention waned very early on and never really returned. By the end I still wasn’t entirely sure what the point was.
Next up a talk about data abstraction. This was very well presented, conveying a simple idea very clearly. I felt the deliberate avoidance of any particular implementation detail was a good move, leaving just the problem and solution without the specific technical details getting in the way of an important concept. Throwing in the real world example of where it went wrong in his own project was brave, but helped illustrate the point effectively. Maybe the content was a bit basic for the seasoned OO developer, but definitely worthwhile for anyone new to the topic.
With not one, not two, but three serving stations, lunch was served pretty efficiently. A choice of lamb pasta or vegetarian lasagne, followed by cake, orange juice and more coffee. Leaving me more than enough time to escape the increasing heat of the room and get outside to take in some fresh air before the afternoon session.
Talks – Friday Afternoon
First stop after lunch and the start of what appeared to quickly become a theme at the conference – scaling. Specific details of how wordpress.com scaled up it’s operation were presented confidently, but the main talking point after this slot seemed to be the revelation that wordpress.com only have one svn branch (trunk), which is deployed many times a day, with all the in-development code still in it. In some respects it’s a shame that this became the lasting impression as lots of the content was interesting. I was particularly interested to see the way wordpress.com has gone about solving MySQL distribution with a tool they have since open sourced (HyperDB). It not only manages read replicas for entire databases, but also individual tables, leaving no requirement for the application code to know where to send queries – an idea that I intend to investigate further.
So, following on from a talk about scaling, I then watched another talk about scaling. This time from a slightly more theoretical viewpoint. I thought it was an excellent discussion covering both availability and performance (or more accurately perception of performance) of web applications. The main thing to take away from the approach was liberal use of messaging queues, monitoring and, as the title suggests, distributing the workload to many different components, making for easy horizontal scaling. The talk ran over the allotted time slightly and still I felt Helgi had more to say. I would have been happy to sit and listen to his thoughts for longer too.
Another excellently presented topic. A brief tour through the history of the Exception, then some details about the particular PHP quirks. It was definitely worth seeing and the ‘Are you prepared to end the program?’ question will no doubt enter my mind every time I type the word throw from now on. In fact, I think I’d like my IDE to ask that question of me when I type throw, just in case I forget. That can only lead to better software.
I found this portion of the day interesting to listen to, some good questions were asked, and good answers given. Ian Barber did an excellent job of chairing the discussion, but for future events I would suggest giving each of the panel their own microphone to encourage more debate. The format was good and it was an excellent way to end the formal part of the day. The main thing I came out with was that if PHP is your bottleneck when trying to scale, you’re probably not doing it right.
Networking and Raffle (and beer!)
We all know there is no such thing as a free beer, but this is about as close as one can get. To top it off some lucky attendees also got themselves a free book, alas I was not a winner this time. I think this ‘event’ was actually better suited to the aftermath of a PHP conference than the party that followed it, and I’d encourage after parties to be more in this style for future events, even if I did nip out early to go and grab something to eat in a nearby Spanish restaurant.
Mid Conference Party
Having fed myself I returned to the masses, but ended up only attending this party very briefly. The venue for it was not especially well suited and the loud music made chatting to fellow conference goers difficult. Though anyone who spoke to me on the night will know that this is just a thinly veiled attempt to hide my disgust at being served icy cold stout.
Talks – Saturday Morning
So day two arrived, and keen to learn the lesson of arriving just in time on Friday, I arrived in plenty of time to find a good seat for Saturday morning. If I’d known it wasn’t going to be quite as well attended and seats would remain free throughout I could have grabbed those extra few vital minutes of sleep. Nevertheless, I was pleased I had made the effort to be there for another splendidly presented keynote. I didn’t take away anything I think will be especially useful going forward, but it was enjoyable to listen to and interesting to see some of the infrastructure choices at eBay.
After a quick coffee break I attended this presentation based on a recommendation from someone who had seen it the previous day. The justification of why security is an important aspect of development was good and the idea of nominating a member of the team to be responsible for the robustness of an application is interesting. There was also a brief introduction to a wide variety of testing tools. However, I felt more time should have been given to explaining the techniques and results. The live demo was not that easy to follow and it would have been better to spend the time clearly explaining the concepts.
I came away from my next session slightly disappointed – a description of four open source search platforms with some interesting points, but without a solid comparison. I think I’d have preferred fewer implementation details and more discussion points. The offered conclusion appeared to be that the different platforms are suited to different situations – but after the talk I still have no idea which situations are suited to each. It is possible that I just missed it, since the delivery was very dry and I had begun to think about lunch.
In much the same efficient way as Friday, lunch was served up. This time my choice was beef casserole, with the cake, orange juice and coffee thrown in for good measure. Since it wasn’t quite so hot today a trip outside wasn’t required, so I spent a few minutes at the O’Reilly stand looking at their book selection and wandered upstairs to see the Unconference schedule. I was intrigued by some of the things scheduled at the Unconference in the afternoon, but in the end I stuck to the main tracks and didn’t actually attend any of them.
Talks – Saturday Afternoon
I had been looking forward to this presentation, I’ve been using MySQL now for as long as I’ve been using PHP and so was hoping to find out what the future holds. Unfortunately, this seemed to be a glorified advert for MySQL Enterprise edition. I’ve had some experience of the enterprise tools and they can be useful, but this didn’t seem to be the right place to discuss them. I had attended the talk with the promise of hearing about the new features of MySQL 5.6, but I don’t think I really got that from it.
After the disappointment of being advertised to in the previous talk, I really enjoyed listening to this presentation. I felt it was well delivered and it easily held my attention throughout. Although briefly touching on some HTML5 features, the crux of the talk was about solving new problems that the next level of the web will have to overcome. The ideas were good and I shall definitely try to remember the solutions if (or more likely when) I meet the same problems. I was pleased to see a nice balance between discussing both a particular implementation and the underlying concepts that went into the solution.
For only the second time across the two days I remained in my seat to see the next presentation in the same room. I attended not really knowing what to expect, or how useful knowing what was happening to my PHP code when it was executing would be. As it turned out I think there were some useful points, along with some not so useful points, but it was enjoyable nonetheless. If I take anything away from this it will be that references in PHP are slower than copies. But in reality, I don’t suppose the slow down for using references would really be that noticeable – still, I’m happy to go with a ‘more is better’ philosophy on this one.
This second panel discussion was highly anticipated, but I don’t think much was really covered here. This time round the lack of microphones is probably what made it so entertaining. I felt that once again it was very well chaired, this time by Helgi Þorbjörnsson. I’m not going to complain about the subject matter not being tackled with any great force, since by this time I was flagging a bit anyway and this was a good light-hearted session to finish the conference.
To sum up the conference in one somewhat uninformative metaphor I’d say ‘it was a mixed bag’. I thought
the panel discussions worked very well and I would like to see more of them in future. Scaling was definitely the hot topic of this year’s conference, and I’m sure it will continue to be a hot topic throughout 2012 – though my current project does have me heavily thinking about scaling so maybe I’ve just got it on the mind. From what I can tell, PHP’s future looks bright, but now is the time we should all be helping out (https://bugs.php.net/random). Some of the subject matter was very introductory, but I still came away feeling I had learned something new and certainly hadn’t completely wasted my time. That means the conference, in my book, was a success.