Disclaimer: This is my fourth year at ZendCon. Although I spoke last year, this year I took a more active role in being the front man for the Unconference. Special thanks to DevZone Editor and Zend Community Manager Cal Evans for his willingness in accepting my application for the job. 😉
Day Zero of ZendCon has always been Tutorials. You bring your laptop, camp out for three hours, and see what you can learn.
The first tutorial was from Matthew Weier O'Phinney and Mike Naberezny on "PHPDevelopment Best Practices". They review standard development practices like using coding standards, paying attention to security, Unit Test, various support tools like CodeSniffer, and the virtues of version control*. I been in this session a couple times now and honestly, I was hoping to see a few things more in depth. It just seems a bit too basic/101 for me at this point. Regardless, there are a few things that I always learn from it. This time, it was related to some subversion tips and tricks. More on that later…
"The virtues of version control"… No, I'm serious, we're *still* fighting this battle. I can't keep track of how often I run into people, projects, or organizations that refuse to use version control. It doesn't matter how many times they lose their work. It doesn't matter how many times they overwrite one another. It doesn't matter how bloated and incredibly nasty their files and directories get… they don't get it. They don't see the value. So they don't do it.
100% honesty here for a second. I don't have a single project – from huge CMS deployments to web2project modules to little one-time conversion scripts – that are not in Subversion. It just makes sense and it's too easy not to.
The afternoon session was "SQL Query Tuning: The Legend of Drunken Query Master" from Jay Pipes. This one was… amazing. He started off with some simple concepts in how to improve query performance and database structures. From there, he jumped in and dug into Set theory and showed how many of us were thinking about queries in general completely wrong. In addiiton, he laid out all kinds of amazing ideas for Master/Slave configurations for spreading around read/write patterns, optimizing for searching, and a variety of other things. I'm trying to track down his slides because I can't do them justice any other way..
One of the most entertaining aspects of the conference as a whole has been from the professional agitator Christian Flickinger (@spooons). After a great appearance at ZendCon last year, he showed up this year throwing around "Ruby on Fails" stickers (visible to the right). I managed to get ahold of one right off the bat and the rest of the week they appeared all over the place… name badges, laptops (mine), elevator doors, urinals in the bathroom, and even Paul Reinheimer's head. After posting a picture of my own to Flickr, it's steadily spreading.
I look forward to seeing them throughout the community… if you want to buy your own, check out Spoon's store (click the image).