WordCamp Vancouver 2014

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!

Opening remarks

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)

Luke Woodward: Little-known WP JavaScript helpers

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!

In conclusion

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?

WordCamp 2012

Wow, it’s been almost two weeks since Vancouver WordCamp 2012, the awesome one-day conference on all things WordPress. As last year, the event was divided into Design and Development tracks. And again as last year, I went back and forth between the two. Let’s face it, the line between design and development can pretty thin.

Wow, it’s been almost two weeks since Vancouver WordCamp 2012, the awesome one-day conference on all things WordPress. As last year, the event was divided into Design and Development tracks. And again as last year, I went back and forth between the two. Let’s face it, the line between design and development can pretty thin.

Calm and Simple Code With Purpose

Jeremy Felt from 10up.com gave the audience some pointers on calm, effective and mindful coding. Rushed code means bugs, and you may think you’ll go back and fix them later but there’s always another deadline! Better to do it right the first time. Invest the time to perfect your craft. Dig into the Codex*, read the code, understand how things work and why they work the way they do.

As well, developers need to know what tools are available, when to use them, and when not to. Libraries like jQuery are already there, no need to add it in your plugins! Use caching when you must.**

Finally, we need to be mindful of our audience: developers in our team, or even ourselves six months down the line. Document your code, make it readable, whether you’re solo or part of a team. And if you’re working solo, get involved in community projects!***

*And don’t complain if it’s crap. You’re totally free to improve things!

**Memo to myself: read up on the WordPress Transient API, because I have absolutely no experience in it.

***I totally need to do that.


John James Jacoby of Automattic came to talk about PHPDoc, a PHP documentation standard similar to JavaDoc. Documentation standards like that are about not wasting time and brainpower. It’s about (his words) not being an asshole, and not taking time away from other people or even your future self. Because you’ll be able to quickly get to what a particular bit of code is doing and why.*

JJJ also repeated Jeremy’s advice to get on the Codex and improve it if you’ve got something to say. It’s a great place to learn, because wordpress.org has lots of caretakers.

*The why is important. It’s easy to describe what is happening but why is the more interesting question.

S2Members—a membership plugin for WP

Rayhan Abdulmughnee of the Small Business Centre spoke about a S2Members. It was fairly narrow in its focus, which was a bit of a disappointment. Then again, I knew what I was getting into. The main reason I attended this presentation instead of one on a command-line-interface for WordPress, was that I was possibly about to start a WP project heavily dealing with user roles, and I thought this might give me some good ideas. I’m not sure if it did. That project ended up not happening, which was also a bit disappointing; I’ve never dealt with WordPress user management except in the most basic sense. Drupal, sure, I know it forward and back, but I would have liked a chance to dig into it on the WordPress side. Someday soon, I’m sure.

JQuery mistakes and how to avoid them

Back to the development track after lunch, to learn all about jQuery from Automattic’s Andy Peatling. This was an very intense presentation, dishing out all sorts of jQuery tips and tricks which I won’t list here (and honestly, some of which went over my head).

Caching in WordPress: Invalidation schemes

Oh, but the fun doesn’t stop there! Zack Tollman was up to tell us all about caching in WP, and schemes to refresh that cache when it gets obsolete. Cache versioning, transients, and again a lot of this was totally new to me.

How to make your WordPress site mobile-friendly

David Zille started out by giving some general tips on what a mobile theme needs: fast loading, visibility of the important elements, ease of navigation, and accessibility. Then he laid out various schemes to make your site mobile friendly:

  • a third-party service
  • a responsive theme
  • a separate mobile theme

Responsive themes (which I already have some experience in) use CSS and JavaScript behind the scenes, but the downside is that you’re serving your entire content to a phone. Plus, they can be difficult to maintain and build from scratch.

Separate mobile themes (which may come with plugins) avoid most of these pitfalls, but probably have issues of their own. It all comes down to your budget, skill sets, etc…

Food for thought, definitely.

The WordPress community

Vancouver’s own Christine Rondeau wrapped up the day to tell us about the WordPress community. And it’s real: it’s in the meetups and in the forums and the blogs and on IRC, and in events like this one. You participate to learn, to get referrals, make friends and say thanks. You know, Christine’s talk was another kick in the pants for me to get more involved. More than just going to meetups (which I do), I need to actually contribute something. There’s a theme I’ve been hacking away at on and off (based on my current blog theme, actually) I need to polish it up and submit it.

Oh, and I won a Code Poet t-shirt!

There was an afterparty, but I already had plans to ogle hot athletes in underwear at Celebrities, so I had to give that a miss.

WordCamp: Developers

Yesterday was a very, very good day. Why? Because I went to WordCamp: Developers, that’s why! A whole day of knowledge, hot geeks, and interesting people. Though I’ve been tinkering with WordPress for a few years now, I’ve been starting on larger projects for other people (both volunteer and paid). It’s exciting and a little scary.

Yesterday was a very, very good day. Why? Because I went to WordCamp: Developers, that’s why! A whole day of knowledge, hot geeks, and interesting people. Though I’ve been tinkering with WordPress for a few years now, I’ve been starting on larger projects for other people (both volunteer and paid). It’s exciting and a little scary.


The keynote consisted of Lorelle Van Fossen interviewing Andrew Nacin. Okay, kinda different, but I totally didn’t mind. First impressions: even with that playoffs beard, Nacin is hot. And used to be a fireman. Seriously. Second impression: he loves what he does, and inspired the same kind of love in the audience. “Innovation is the key to WP’s success,” he said. Things like menus, internal linking, even the current design, started out as pieces of code in various themes and plugins. Who knows where our little ideas will lead us?

Also, “Never trust the user.” But that’s a bit less inspirational.

HTML5 & CSS3 Integration For WordPress

Ray Villalobos took us on a whirlwind tour of these new technologies’ features. I was already familiar with some of them (border radius, semantic tags, transparencies) but at the end of the hour, my brain felt more than full. And I still had five more talks to go!

One quibble, though: As informative as it was, Ray’s talk didn’t really have anything to do with WordPress per se. I understand that a good WP developer has to know these things, but they apply to any Web development work. So… should they have been in a WordCamp event? I’m still undecided.

Developing a Control Panel for Multiple Sites Using the Same WordPress Theme

O HAI. Toby McKes works at Cheezburger Networks, the people responsible for bringing you lolcats (and Fails, and Squee, and Graphs) each and every day. I know, I couldn’t believe our humble city could be so honoured.

But bringing laffs to the world takes a lot of hard work. In the early days, all their blogs were running on different hacked themes, they all looked at least a bit different, and maintaining them was a huge headache. The solution was a unified theme, with dozens and dozens of theme options, controlled via a custom admin panel. This made installations a breeze, since they were all running on the exact same code. They even have a tool for importing and exporting options, too!

This really resonated with me, because one current project involves implementing a site with lots of custom options. I don’t need a full-blown admin panel for multiple installations… but it’s good to know others are dealing with similar issues.

Unconference: Finding Work as WordPress Consultants

I decided to skip the WordPress e-commerce talk (though I heard later it was very informative) and headed over to the Unconference track for a little discussion with Lloyd Budd on making money with WordPress. I’m honestly not sure if I have enough experience to really make a go at it just yet, but I want to know what options (and obstacles) lie ahead. We discussed CodePoet and other consultant-finding sites, and shared personal insights. No insights from me right now, but maybe next year…

Tackling JavaScript for WordPress

Again, lots of information, great if you want to get into fancy web development, but not directly related to WordPress. (Almost as an afterthought, he did mention wp_enqueue_script()). But I have to say, I loved how enthusiastic, yet low-key Allen Pike is about JavaScript. The way he says “Mind-blowingly awesome code you’ll learn a lot from” in an adorkably deadpan voice is just awesome.

Challenging Traditional WordPress Design

So you’ve got your traditional blog design with all this extra navigation in the sidebar: categories, tag clouds, recent posts, etc… Is it useful? Do people read them, or do they just tune them out? Catherine Winters looks at various site designs and relevant studies and concludes that, no, they’re not that useful. That a lot of these frills are in fact making pages harder to read, and that today’s web designers are ignoring lessons learned over centuries of print design.

Catherine’s delivery could have used some polish, but her ideas were right on the money. In my last blog redesign I deliberately cut out all the sidebar bits she mentioned. My inspiration, in part, came from AdamSchwabe.com, whose blog was even more radical in its minimalist design. And worked beautifully.

Possibly the Strangest WordPress Project You’ve Ever Seen in Your Life

That’s really what the schedule said. And holy shit did it deliver. Mark Reale led us through the design and implementation process of 6q.com, a site he did for artist John Oswald. It’s a trippy thing, loaded with crazy JavaScript animation, but it really does run on WordPress!

Oh, and I won a book at the end of this talk, too. Jesse James Garrett’s The Elements of User Experience. Go me!

Final Thoughts

So, that was WordCampDev. The organisers did a fantastic job, and I love these events because there’s so much to learn and absorb, and I come home so inspired! Looking forward to Northern Voice next week!