Tom Kitchin

PHPUK 2013 Conference - Day 2

by Tom Kitchin |  3 comments | February 26, 2013

It’s the start of a new day, and off we go to the Brewery for the second day of PHPUK 2013. Day 1 has been covered with aplomb by Javier so I’ll not go into details here, but suffice it to say that it was my first day of my first conference and I had an excellent time wandering without the hint of a clue, eyes filled with the misty wonder of a newborn. This, however, is about day 2, with a day’s worth of experience under my belt, the confidence of a conference veteran, and the bleary eyes of an early morning after a late night’s social.

The day started off well, with an excellent breakfast which I’d mostly missed out on the day before. A colleague had extolled the virtues of the porridge - the porridge - some four hours after breakfast had passed on day 1, and any breakfast able to make porridge so memorably exciting had to be tried. It was, I think, possibly the best porridge I have ever tasted. A strange thing to score a conference on, but there we have it. Moving on...

Talks - Saturday morning

We started with a keynote delivered by Martijn Verburg, The Diabolical Developer. He seemed human enough to me, but I suppose he might have been in disguise - you never can tell with Java developers. In any case, a confidently delivered talk on the subject of best practices disguised as exhortations to protect job security. Team meetings? Ha! Avoid your co-workers and manager at all costs, lest they try to find out what you’re doing or - horror of horrors - try to help. The thrust of the talk, as I understood it, could be summarised as "best practices are there to serve the developers, not the other way around". Careful analysis of team practices to make sure none of them are hindering more than they help is clearly worthwhile, and the core message of "the developers and the project are the most important thing" is worth restating regularly. Unfortunately, regular but unmarked switches between irony and serious speech made the talk a little confusing, weakening the argument.

For my first talk decision I headed off to Alvaro Videla’s talk RabbitMQ Hands On, which was an introduction to - you guessed it - the messaging system RabbitMQ. My experience with messaging systems is limited to Gearman, which I found a little unwieldy for me, so I was pleased to receive an excellent introduction suitable for newcomers. Alvaro gave a strong talk aided by an excellent RabbitMQ simulator of his own creation. Whether you’re a RabbitMQ greenhorn or a veteran I strongly recommend looking out for his simulator - he plans on open sourcing it soon, but until then there’s a handy introductory video which is well worth watching. I found the talk both informative and encouraging, and has left me watching out for an opportunity to make use of RabbitMQ in a project some time soon.

My second talk was Scaling with HipHop, delivered by Sara Golemon. This was, I think, the most enthusiastic talk I attended over the entire conference. Quite infectious, really. I walked in with a passing knowledge of HipHop ("it’s sort of a PHP to C++ compiler for Facebook, right?") and walked out quite dizzy with knowledge. Sara came across as both knowledgeable on her topic and deeply passionate about it, a combination which is always a joy to find. HipHop itself is rather more than I had thought, effectively a highly tuned replacement PHP engine which analyses and converts PHP to native bytecode for storage in a database, providing an astonishing 500% performance boost over PHP 5.2. Throw in the additional PHP features, the in-house-developed streamlined web server and even the in-house IDE and it becomes clear how Facebook can handle around one billion active users.

One billion active users. One billion. Active.

I know this is kind of old news, but just think about that for a few moments. For reference, current estimates put us at around 7 billion people on the planet.

Huh.

Lunch

Anyway. Lunchtime! Lunch was up to the standards set by breakfast. Not much more I can say about this, except for a brief comment on the strange image of a room full of developers holding plates with those funny cup holder clips on, fighting over about twenty people’s worth of table space and even fewer seats.

I took the opportunity to cheerfully obliterate the current record for the Inviqa/SensioLabs Bigtrak programming race... which would be more meaningful if I hadn’t spent some of the day before practicing. My honour demanded that I keep my time to myself, as did the judges who sadly recognised me perfectly well. So much for fame and fortune.

I didn’t actually attend the talks immediately after lunch, as I was feeling quite overwhelmed by the veritable torrent of knowledge I’d received that morning. Instead I sat down in the Hackspace and investigated (read: googled) some of the technologies I’d heard about, as well as having a chat with the chaps over at the LiveRebel booth. Worth checking out, incidentally - looks like quite a neat deployment management solution.

Talks - Saturday Afternoon

On, then, to the fourth talk: You Can’t Optimise What You Can’t Measure. Juozas "just call me Joe" Kaziukėnas handled this one with the message "logs are useless." Don’t even write them. I recognise the knee-jerk reaction we all have to that, but he made a good case - and I should clarify that we’re referring to production servers here. How often do we even read our logs? Instead he made a strong argument for good metrics-based data gathering, passed to suitable analysis tools. If we can be automatically warned whenever the metrics start to veer off their expected state, not only can we react to failures and bugs but even user experience issues we would otherwise have missed. Not so sure about "data doesn’t lie," though. Data might not lie, but we have to convert it to information to use it, and we can certainly bring a few of our own lies in (quite unintentionally) on the way. I found his argument persuasive, in any case.

For my final talk I attended Realtime Web Apps in the Wild with Phil Leggetter. This was primarily about event-driven web applications, as advancing technologies have finally allowed us to implement a "true" real-time web. The talk actually had a set of interactive apps woven into it, accessed by attendee browsers from smartphones to laptops - a fun addition to the usual style of a talk. A good discussion of available technologies (with a commendable lack of bias from the Pusher developer) and an informative if light coverage of the history of hacks, techniques and trickeries used to emulate realtime work in the past. It’s rather subjective, but I found the talk to have less impact than any of the others I attended, though. Perhaps this talk would have had a greater effect on someone who works more closely with near-real-time web apps - personally, I’m now aware of the technical differences but I struggle to really sense the difference between the old hacks and the new approaches favoured by the talk. Definitely worth a look if that’s your focus, though.

Last (but by no means least, as they say) we had the panel. Day 2’s panel had a much better feel than the first day’s, with some genuine enthusiasm and good humour displayed by a panel consisting of Aral Balkan, Ian Barber, Sara Golemon, Beth Tucker Long and Martijn Verburg. The topic was Open Source in Action, and to me the highlight was some discussion of previous open source projects by the panelists which had achieved things, or changed things, or ended up in strange and unexpected places. If you needed a reminder of why open source is worth our time and effort and our creative energies (and I discovered I did), it was worth hearing. It’s because you can write a piece of code for yourself, just because you need it, and throw it out on the web just because someone else might need the same - and in the end that code you’d have written anyway makes someone’s life easier, or ends up in places you never expected. A creative industry indeed.

Do I need to cover the post-conference social? I thought not.

Conclusion

So we come at last to the wrap-up. I had a great time at the first conference I’ve attended and hope others felt the same. I listened to and spoke to interesting, enthusiastic people, both speakers and attendees, and more than anything I feel like it brought home why I got into software development in the first place.

Because we can create amazing, interesting things that people need or like or enjoy or didn’t even realise they wanted or don’t need at all and share them with the world. Now, if you’ll excuse me, I have a few new projects I need to think about.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Plus

3 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Thanks for the feedback and the write-up, Tom.

    I did cram a lot into my 35 minutes :)

    What I hoped to do was for the audience to remember the talk as a fun one (something different - check), experience the use of the technology using the 2nd screen (did you use the 2nd screen app? If so, that should have had impact), see some use cases and some examples of those use cases in action (sounds like I failed here in your case) and, more importantly, sow the realtime seed so that at some point in the future you'll get an 'AHA! moment' where you realise that realtime web technology is the solution to a problem or opportunity that you have e.g. if you ever consider AJAX polling.

    As mentioned, there was a lot of content so the slides are definitely worth going over again. You can access them via the PHP UK 2013 joined.in page http://joind.in/talk/view/8242

    Any questions or thoughts please feel free to reply here or directly. Thanks again.

  2. Tom Kitchin said

    Hi Phil. Firstly, thanks for your talk - I did enjoy it, if that wasn't clear :)

    I was there with my laptop keeping an eye on the second screen apps, yes - I'm pretty sure I ended up with the biggest ghost in the little ghost game, which I was a bit proud of until I realised everyone else was using tiny smartphone screens... I was actually impressed with the second screen apps, but re-reading it I can see that that doesn't quite come across in the write-up. The section on your talk was probably around twice as long in my first draft with more on the second screen and the tech, in the end a lot of which fell to the cutting room floor.

    I do agree with the realtime seed "AHA" moment you mention, though - when I eventually need it your talk's given me a solid starting point. I tried to qualify my point about lack of impact with noting that I haven't done much with realtime equivalent web apps myself, and I think that's definitely a big part of why it didn't hit me as hard as maybe you'd expect. The issue is that although the apps are very impressive, people using all the old methods you covered in your talk have been able to do superficially similar things for a while. Unless you've tried to implement it (and I haven't) it isn't quite so clear why the new way is so much better than the old. I know it is, and you explained that well, but "this is all very clever" doesn't have quite the strength of "my troubles are over at last", if you see what I mean. Maybe a quick side-by-side comparison of the best of the old and the best of the new to highlight the differences would help?

  3. Hi Tom,

    Forget the screen sizes - I say you won the ghosts game :)

    I don't follow a script when I do my talk and sometimes miss a point. This points deserves a content bullet point:

    Users expect the sort of realtime experiences already being delivered by Facebook, Twitter, Google+ and a host of other smaller, but still massively popular apps. In order to meet these new user expectations (experiences) I believe you have to use realtime web technologies.

    I do quite frequently hear people saying "Wow, that's cool! Now I just need an excuse/reason to use it.". One of the main things I'm trying to do is convince people that if they don't think they need the technology, and that it won't improve the user experience, then either try it and see the benefit or tell me what the app does and I'll provide a bunch of examples of where using the technology will have a positive user impact. I'm setting myself up for a Q&A :) Or maybe a talk on "Here's why you need realtime web technology" where I cover some standard apps and explain how adding realtime significantly improves it.

    I'd recommend reading this by the guys at Kaazing for a good comparison of old v new:
    http://www.websocket.org/quantum.html

Some HTML is OK

(required)

(required, but never shared)

or, reply to this post via trackback.