I’ve just got home from attending the ConFoo conference in Montreal and I thought I’d write up a few of my thoughts about the conference. All of the talks I heard were good but some stood out more than others for me. I’ll discuss each day in turn along with a few of the highlights for me.
Pre-Conference Party and Day 1
The conference unofficially opened with a pre-conference party on Tuesday evening. I spent much of the evening talking with Frédéric Hardy and Quentin Adam, both of whom had come from France to speak at the conference. Not for the last time at the conference I felt guilty for making French speakers speak in English so that I could join in the conversation! Frédéric has been working on an alternative to PHPUnit called Atoum and we spent some time discussing the benefits he is hoping it will provide over PHPUnit. I’m looking forward to writing some tests using it when I have a chance and seeing how it is.
Day one for me was dominated by the YellowAPI ConFoo Hackfest. The Yellow Pages in Canada is releasing an API that allows developers free access to all 1.5 million business listings they have in Canada. Each business is even geo-located with latitude and longitude to enable building geo-localised applications. As one of the sponsors of ConFoo they put together a hack day with prizes to allow developers to try out the API. While I didn’t win anything I spent the day putting together a very rough proof of concept for an app that I really think could be useful. It worked and there was a lot of interest in my idea from the YellowAPI people. I’m planning on spending some time to write the app properly when I get some time (probably in a few months) and I’ll write some more about it then. The standard was very high and the winning team deserved to win for their pub crawl application. After the hack was over I still had time to hear Andre Zmievski talk about Elastic Search. This seems to be a very interesting technology and one I’ll definitely keep in mind for the future.
In many ways Day 2 was my first ‘proper’ day at the conference as I attended talks all day. The day had three real highlights for me: Michelangelo van Dam’s talk on ‘Improving QA on PHP development projects’, Antonio Fontes on ‘Threat Modelling: detecting threats before coding’ and the conference keynote given by Christian Heilmann on ‘HTML5-Moving from hacks to solutions’.
Michelangelo’s talk introduced several new tools to me that help to ensure code quality in a project that I’m very much looking forward to integrating into my workflow. The first of these is PHP Copy Paste Detector by Sebastian Bergmann. As it’s name suggests it will analyse code looking for places where it is duplicated. This can indicate places where the duplication should be abstracted out into a function or method. PHP Code Sniffer can be used to analyse a code base to ensure that a pre-defined coding standard has been adhered to and PHP Depend can be used to help analyse the overall quality of the code. PHP Mess Detector is another tool that can look at a code base and helpt to highlight potential bugs and problems. Michelangelo wrapped up with talking about using Phing as a build tool and Phar to package up code libraries for use in production. A really great and thought provoking talk.
Antonio Fontes introduced an entirely new topic for me, Threat Analysis and Modelling. This approach aims to help look at the security risks in building a web application before a single line of code is written. It does this by having one or more people describe the application that is to be created along with how critical the system is from a business perspective. It then moves on to model the various risks that could occur from having the application fail or hacked, the likely types of people who might try to hack it and techniques that can mitigate these risks. This talk was a real eye opener for me and outlined a technique that I’m very keen to use in the future.
The keynote, delivered by Christian Heilmann of Mozilla, was one of the most inspiring talks of the whole conference for me. His central theme was that we have lost our excitement for new technologies and the wonders that it can offer, becoming somewhat blase about the opportunities that we have available. He presented a passionate and often funny exhortation to all of us to go and create great things using the new possibilities that HTML5 and its related API’s offer us, allowing these to degrade gracefully for older browsers. A really inspiring session.
The highlights of the final day of the conference for me were Sebastian Bergmann’s session on ‘Your tests are lying!’ and Alia Alshanetsky’s talk on ‘Hidden features of PHP’. I also very much enjoyed hearing Arne Blankerts presenting on a new documentation generating tool he is writing which is currently in pre-alpha.
Sebastian Bergmann’s session discussed some of the problems associated with writing good unit tests. It was illustrated with samples he has seen (edited to protect the guilty!) and provided much practical advice about writing good tests. Alia Alshanetsky’s session was a great whistlestop tour through some of the lesser known features of PHP. These ranged from underused parts of the language to new features in PHP 5.3. I made many notes in this session and took away a great many ideas to try.
I really enjoyed the conference and was very impressed with the whole thing. What really struck me was the way that developers from all different languages and areas came together to attend and share ideas with each other. While it’s so easy to get on our soap boxes and proclaim our chosen language as ‘the best’ there was none of that at ConFoo, which I found very refreshing. The conference was also a great networking opportunity and I made some new friends in the process. I’d really like to thank the organisers for putting on such a great event and my employer for recognising the value in having me attend. I’m already looking forward to ConFoo 2012.