Conferences play an important role in the process of becoming a better developer. When you attend a conference, you not only have the chance to listen to language or technology experts, but also the chance to meet other developers. This is ideal for expanding your networks of contacts to find, if needed, your next job.
Last week I attended the phpDay 2013 conference in Verona and the following are some of the highlights of the talks I attended and what I learned.
The conference began with a keynote by Julien Pauli, the Release Manager for PHP version 5.5 that should be released in July of this year. He first focused on how developers can contribute to the development of PHP both by developing features and reporting bugs. Then, he reviewed what’s new in the next major release.
An anticipated feature in 5.5 is the new Password hashing API. The goal of the API is to help programmers with storing passwords properly (i.e. encrypted!), and has methods to generate and verify an encrypted password in a very easy way, so that you won’t need to generate and store salts anymore. The API generates hashes using Bcrypt by default, so all of the information needed to decrypt is stored in the string itself. Although an important concept, I can’t help but question the utility of this API; it may be easy to use, but if a developer didn’t care enough to store encrypted passwords using a salt or was using MD5, would he care to use this API? What are your thoughts?
Another feature presented was the introduction of the
finally clause for exception handling. I’m very happy to see this because I never understood why it wasn’t introduced with try/catch in the first place. It helps developers to manage different situations in a proper way.
The last point I’d like to mention from his talk is the introduction of OPCache. It’s really nothing but ZendOptimizerPlus by Zend that has been freed and renamed. Pauli said that it will ship with PHP 5.5 and released as an extension that you have to activate at compile time. From this release on, he pointed out, you should consider APC dead.
After Pauli’s keynote, I attended a talk by the superstar Jordi Boggiano, the man behind Composer (more on dependency management with Composer). His talk focused on some Composer use cases, for example how to use a forked project as your project’s dependency and how to install/update your project’s dependencies.
Composer has been discussed several times on SitePoint so I’ll move on, but I do want share that I asked Jordi if the project will have an auto-update feature (for Composer itself, not projects). His answer was a big No. He said that a lot of users probably wouldn’t be happy with it. I’m not sure why people wouldn’t be interested in knowing as soon as possible when a new version that fixes bugs and has new features is available. What are your thoughts?
The last talk I want to discuss from Day 1 was “From Dev to Ops and Beyond – Getting it Done” by Volker Dusch. This is the talk that I appreciated the most from the first track, both for its content and for the engaging presentation done by Volker, who spoke about DevOps methodology and his experiences. What I really appreciated was that he gave me a new vision of how software can be done and deployed. He spoke about the importance to communicate with people with different roles in your company to achieve the success of the product. Moreover, he suggested a lot of tools that you can start using to improve your development process, like Jenkins, Trello, Graphite, Puppet, and more.
The best of Day 2 started with Jonathan Klein and his talk “High Performance PHP” which gave several tips and tricks for speeding up your PHP application. During the presentation he showed a performance comparison table of several languages and frameworks (which I saw just a few days earlier in a comment on this very website, high five for us!). He began with a discussion about why we shouldn’t really care about micro optimizations, and even more so premature optimizations. Then, he taught me this very important lesson I want to share with you: A website is considered fast if it loads in about 2 seconds, but given that 80% of the load time is on the client side, you’ve just 400ms to put out all the code from your server-side processes. Network time can be about 100ms, so really you have just 300ms to finish your processing!
He also taught how to profile code using tools like JMeter, and employ caching using APC and Memcache. It impressed me how simply upgrading your PHP version can sometimes gain up to a 70% improvement in speed, plus another 30-40% by using an OPcode cache!
Luka Kladaric presented “LAMP Scaling 101” that was
meant for anyone hitting the limits of their single server (VPS or similar) and facing the challenge of scaling up from that. I enjoyed his talk because it was made using a modern tool, reveal.js, with few words so people could focus on his words. Some Luka’s suggestions were: separate static contents from the dynamic and serve the former using a CDN; caching for PHP content; scaling databases (replication, clusters, sharding and so on); and scaling storage.
The last talk I want to mention from Day 2 is the one by Elliot Lynde, who spoke about FBMock, an open-source PHP mocking framework created by Facebook, where he works. He described and showed some examples of how it can simplify the creation of mocks compared other frameworks like PHPUnit. It seems a very promising project, but I can’t give an honest assessment of it since I haven’t tried it and don’t have much experience with mocking.
There’s not enough space to write about, but worth mentioning also, were the talks of Richard Tuin about automated acceptance testing with Behat and Mink, and the final keynote by Jacopo Romei. The latter stressed the importance of learning and self-improvement not simply related with programming skills, but also about the way developers approach their work and life.
I found it surprising that while the rest of the world is rejecting QR codes, at the conference I saw a lot of them. This is quite interesting given the general opinion well summarized by the website www.wtfqrcodes.com.
But as a conclusion, I want to give my opinion about the presentations’ slides. Although a lot of topics were very interesting, it didn’t seem the same care had gone into slide preparation that had gone into topic selection and research. All presentations had only a few to none images. Moreover, they completely lacked, apart from a couple of cases, humorous images that are very important to let the users take those 5 seconds of pause and allow them to connect with the speaker (more on good presentations). In a time where HTML5 and JS libraries rule, I don’t think there should be any more room for the old 90’s-style presentation with bullet points.
Of course this article is only a short review of what I experienced and learned at phpDay 2013, but hopefully it gives you an idea of some topics that you should be aware of and what you can start playing around with to improve your PHP skills, and even inspire you to attend a conference near you!
Image via Fotolia
Jump Start Git, 2nd Edition
Visual Studio Code: End-to-End Editing and Debugging Tools for Web Developers