It was time for Vancouver’s annual WordCamp extravaganza, this time a Developer Edition (the first since 2011)! Good timing, too: last year’s came smack in the middle of the Queer Film Fest and I had to miss one of the shows!
Nothing too special here: a lot of thanking all the attendants, our fabulous sponsors and equally fabulous volunteers, but one thing did stand out: the organisers mentioned the “WordPress Rangers,” volunteers dressed in distinctive t-shirts, that would circulate around the Camp and how attendees could come to them with any questions or concerns, including if they were being harassed.
A few people laughed, and that was the interesting part. Was it because it came up out of the blue? Or because they didn’t think that could ever be an issue at a WordCamp, or in Vancouver? I don’t know, but I think it’s great that the conference has a code of conduct that explicitly forbids harassment and discrimination, and that the organisers went out of their way to let people know about it.
Now, on to the talks:
Curtis McHale: Getting Started With Unit testing
Curtis McHale stepped us through the theory and practice of test-driven development, focusing specifically on PHPUnit. I have to admit it’s something I sorely need to work on. Some of the tools and tips were WordPress-specific, (e.g.: turning on WP_DEBUG, using WP_UnitTestCase), but most could be applied to any development project. Good stuff.
Mel Karlik: How to Build a Custom Widget
Mel Karlik gave us a quick how-to on creating a widget as a plugin. I’d already tried my hand at this before, but it was nice to get a refresher course. Plus, I learned about Genericons! I thought they were the same icon font as the 3.9 admin dashboard uses but no, that’s Dashicons. Still, same idea.
Ben Lobaugh: Securing your plugin / theme
On the bright side, Ben says, even the pros introduce security flaws in their work. When it happens, the thing to do is own up to it and push an update.
This talk contained a million tips on writing secure code: follow the coding guidelines in the Codex; enable WP_DEBUG to ensure you don’t miss anything like deprecated hooks; don’t trust your users; sanitise everything; use the API, it’ll keep your code simple and do the heavy lifting for you; check user permissions; and so on and so forth. Great stuff, I just need to sit down and be mindful of it when I’m doing my coding.
Morten Rand-Hendriksen: Future Responsive Today
Morten’s talk was in two parts: one on the HTML5
<picture> element, which is intended to replace the tag, and Flexbox, which is pure awesomesauce magic to let you lay out elements in far more flexible ways than we ever thought possible.
<picture> was new to me though flexbox wasn’t; still, I loved the demos and seeing all that it could do.
(Slides here: http://mor10.com/presentations/flexbox/)
Merrill Mayer: Advanced Custom Fields: Beyond the Basics
In the first of 4 lightning talks, Merrill Mayer walked us through her solution to a particular client problem: they needed a custom date field for a custom post type, along with custom “previous post” and “next post” functionality (getting links from this field, not the usual post date), and some customising of the dashboard post list. You can see it in action at bbrc.net/speakers. It was a neat exercise, using a variety of tools (custom wp_query, filters for the links, more filters for the dashboard, etc…)
Tanner Moushey: Introduction to the command line
Second lightning talk: Tanner Moushey introduced us to command-line tools, and why on earth we’d ever need them. Except for mentioning WP-CLI it was very general: Git, ssh, scripts, and vim. Nothing really new to me, but again it’s good to bring it all together.
Christine Rondeau: Responsive web development made easy with CSS and the mobble plugin
Third lightning talk: Christine Rondeau talking about a few tools for responsive design. The first technique is to hide or reveal content at certain breakpoints, using CSS. It’s simple but effective and flexible; however, the HTML content is still being downloaded, which is an issue. It’s good for small bits of code, but nothing too big.
That’s where mobble comes in: the plugin provides conditional functions for detecting a variety of mobile devices. Good stuff.
Robert Dall: How to create your own robot
Or, how to connect Github with Asana. How do you work with Github when your team is physically somewhere else? One solution is to have your commits show up in Asana.
(Slides and blog post here)
Zack Tollman: Cowboy coding
What’s cowboy coding? Zack explains that it’s risky coding, without testing or staging or any safety net whatsoever. It’s unpredictable and there’s bound to always be collateral damage. So he walked us through some tools to automate deployment and server update processes, to reduce the chances of human error bringing down whole sites or servers.
Tools to test updates locally (Vagrant, MAMP/WAMP); provisioning tools; deployment tools. And my first thought was that I never had to manage a server, but I have installed updates on live servers without proper backup plans. I need to avoid that in the future!
(Slides can be found here)
I’ve already used a tiny little bit of the Ajax API, but I figured this talk would be take me to the next level. And it did! I’ll need more time to digest and apply the lessons here, so I won’t bother to summarise the talk. Here are the slides! And here’s his code example!
Success! I learned tons, reconnected with WordPress peeps and met a few new ones. Now I just need to apply everything I learned… and think about doing a talk myself? Hey, why not?