CakeFest 2014

Wow, that was a long summer blogging break! but I’m finally back, well rested from a one week holiday and very inspired to talk about the fantastic conference I have visited last weekend…

After skipping CakeFest 2013 in San Francisco, the annual conference for CakePHP which I had already visited in 2011 and 2012 took place in Madrid this year, a place which was in easy reach for me and couldn’t be missed therefore.

The schedule was packed with interesting talks covering topics from programming workflows over open source to performance and debugging, but the major topic this year was without a doubt the next major release of the framework: CakePHP 3.0.

Conference day 1

On day one of the conference, James Watts – who was also in charge of organizing the event (and deserves a big applause therefore) – presented some statistics on the success of CakePHP in his community keynote, such as the framework having become the 4th biggest PHP project on Github.

Mark Story and José Lorenzo covered the most relevant changes of the latest release, of which the completely overhauled ORM layer is probably the most significant milestone. Because there have been a lot of changes to how you create database queries, José went over plenty of examples that illustrated the new way of interacting with it in a more elegant, flexible and streamlined fashion.

The two day conference was a one-track conference packed with 12 hours of talks per day, which is why I cannot cover every talk in detail (although i learned something valuable from each of them), but rather point out the highlights. For a complete overview of the talks and their slides you can go to the event review on Joind.in or Lanyrd.

  • Andy Dawson’s talk on “Effective debugging”, a really useful guide on tracking down errors in PHP applications: A great topic in my opinion as it is something that every developer can relate to. The most important takeaway here was that you should “read error messages aloud” (yep, no kidding) and fix them in order (because earlier problems may fix later ones as well). Check out his slides on Slideshare here.
  • Rafael Dohms’s talk on “Writing code that lasts”, a talk that was similar to the one he gave in Manchester two years ago (“Your code sucks, let’s fix it“). The interesting thing is that back then it really changed the way I thought about organizing my code, and hearing about the Object calisthenics methodology again – an approach of applying regular, small improvements to your codebase – was not only a reminder of not neglecting good practices but also an indicator for how far I had come and how much I had improved since I heard about the concept for the first time. You should definitely check out his slides and see how your coding style is going to improve drastically in the coming month.

Day 1 was wrapped up by a sponsored dinner which I could not attend unfortunately as I had to catch up some sleep, but which according to next day’s Twitter activity went pretty well and was prolonged by some attendees at the bar until early in the morning.

Conference day 2

Conference day 2 began with a keynote by CakePHP’s founder Larry Masters, which I missed as well (I really had a lot of sleep to catch up due to my late arrival in Madrid). However, the day was going to be packed with another ten forty-minutes talks, which is why I decided to come well rested to absorb as much information as possible.

Already inspired by the cool topics from the day before, I also couldn’t resist opening my MacBook every now and then between the talks to figure out how I could potentially contribute to CakePHP myself or some other projects that were presented during the conference.

The following talks however drew enough of my attention to shut my laptop and focus on listening and note-taking. (Actually I filled a whole 23 DIN A4 sheets during the weekend, which is my personal record for note-taking during a conference).

  • “API pain points” by Phil Sturgeon: Since I have built a few APIs myself in the past I had come across some of the exact same issues, and a few of the suggestions he gave were real eye-openers for me. Apart from bashing Youtube a lot he also gave a good hint on obfuscating your API calls (namely with the help of UUID or tiny-php) correctly treating HTTP response codes. Have a look at the slides here to get some more in-depth coverage on API design, or simply check out his book.
  • “Why you can’t test” by Chris Artjes: An extremely valuable talk by the grumpy programmer about the importance of unit testing in the enterprise. For me the most important part of the talk was how to convince your team and managers of the value of testing, something that Chris approaches with the help of the following figure: 20-40% more time (for testing) leads to 40-90% fewer bugs. Some of the more practical advice was about embracing pair programming, code reviews and to look for mentoring opportunities (such as here), as well as examining procedures carefully to find automation opportunities.
  • Last but not least I can highly recommend you to check out James Watts talk on “Enterprise CakePHP” where apart from recommending everyone to be familiar with common programming paradigms such as SOLID or GRASP he gives some very useful general programming advice such as writing less code, not reinventing the wheel or treating your code as a product. You can check out his presentation on Slideshare.

Another important aspect of the conference was the hour of contribution which took place on the second day after lunch, where Mark Scherer and Bryan Crowe gave a hands-on introduction on contributing to open source on Github. A really inspiring and good addition to the conference, especially for those that have never done a pull request in their life, including myself.

Wrapping up

After my third visit to a CakePHP conference I feel as always extremely inspired, not only to experiment with version 3.0 in more detail and explore the more sophisticated features of the framework, but also to browse through some of the issues on Github and see if I can help and eventually contribute something to the framework’s source code or documentation as well.

As a final thought, I can only recommend everyone who is to some extent working with an open source tool or framework: Go visit a conference, even though you have to cover the travel expenses. It’s a really great experience to chat with like-minded people, get to know the team behind the product and get inspired by the numerous talks and learn more about the software you’re using with every day.

Additional resources