WordCamp OC 2014

This weekend, 16 “Favoriteers” descended on WordCamp Orange County for 2 days of WordPress speeches, workshops, networking, and general camaraderie. In fact, two Favoriteers, Jeff and Brandon, teamed up with a few other WordPress locals to put on the event. As a result, I can safely say that this WordCamp was by far my favorite; very organized, great speakers, a comfortable venue, and thoughtful swag. They got pretty creative bringing in food trucks for lunch.

Impressions

I participated in fourteen different talks on various topics for all kinds of skill sets and levels. There were a few stand-outs that I’d like to mention.

Neither Fast Nor Easy

Chris Lema, a Crowd Favorite board member, kicked off the weekend with his “Getting the Most from your Blog” talk. Amazingly, there was something like only ten slides and I didn’t see him look at any notes, yet the talk was seamless. Not only is he an impressive speaker, but the content of his talk was pretty solid. Chris spoke about how to have a successful blog, emphasizing how quality, deliberate content will bring you repeat traffic. Here are his pillars:

  • Always be helpful
  • Direct your light
  • Go where they won’t
  • Make them the hero
  • Stand out
  • Increase trust

Definitely some good tips to think about while writing. His talk is worth watching.

Happiest Site on Earth

I’m pretty sure John Giaconia‘s “Enterprise WordPress” talk was my favorite of the weekend. There’s so much to discuss when it comes to enterprise web sites, but John focused on performance, scalability, and redundancy and how he and his team at Disney approach their high-traffic website planning, development and maintenance. John spoke quickly, but covered a lot of ground – I was furiously taking notes. He confirmed that much of what we already do at Crowd Favorite is a best practice, like minifying and concatenating scripts and styles, as well as using a CDN for assets, using sprites, and using icon font libraries where appropriate.

John also suggested a number of new things that we could use to optimize our processes, such as utilizing YSlow, memcache, and Varnish, among other tools. Now that we are using Gulp.js and Node.js to develop, I hope we can start leveraging behavior driven development; I’ve already added a few of these to our pre-launch checklist. Another thing John suggested, which I found out we already do, is diagramming the site architecture. By visualizing, he was able to explain how CDNs, Memcache, Varnish and the database all work together to get the best results.

PHP Optimization

Dave Jesch ran through some common PHP functions and techniques and explained how they could be made more efficient. Here are the one’s I found most helpful:

  • Unset large arrays when no longer needed
  • echo $a,$b; faster than echo $a.$b;
  • Pre-increment ++$i is faster than post-increment
  • “foreach” for arrays is better than “for”
  • Initialize variables! Using undefined variables is slower than pre-initialized variables
    • Throws warning-level error
  • Don’t use global unless you need it – has overhead
  • switch() is faster than if(), elseif()
  • list() / each() functions faster than foreach

It’s interesting to see how the time for every little operation can add up, regardless of the scope of the project. That said, my coworkers agree that readable and maintainable code is far more useful than micro-optimized code.

WordPress Security Fundamentals

Joseph Herbrandson gave an excellent talk on some of the most common, recent hacking strategies and how to avoid becoming a victim. My takeaways: Use 1password, create backups, perform routine updates, use two-factor authentication where available. Also, if you used a password on a site that was compromised, that password should never be used again – “they” have it!

Build a WordPress Theme with Foundation and Underscores

Steve Zehngut walked us through how to create a WordPress theme quickly, using Foundation (a front-end framework) and Underscores (a starter theme). I’m personally still not sold on the Foundations framework – it seems too much like Twitter Bootstrap where, in order to customize styles, the provided styles need to be overwritten – loading styles that aren’t being used. This seems great for rapid prototyping, but could cause bloat in the CSS files. It also sounds difficult to update as well, so it may be best for smaller sites. The Underscores theme was brought up at least 3 times throughout the weekend. It seems like a decent starter theme, but I’ll need to look more into it. I’m sure there’s elements of it that Carrington Blueprint already includes and other things that we can incorporate.

The Back Side of User Experience Design

It was a delight to hear Chris Ford speak, with her infectious passion and altruistic attitude. She talked about UX and UI using Disneyland examples, reminding me that while some clients may be stubborn about details, it’s the client’s clients that we are ultimately engaging. We have to remember who the real user is.

Other takeaways: Accessibility is the ability to anticipate the needs of the user before the user knows they have them. Usability is the baseline of user experience and consistency makes an experience authentic. User experience is how you make a user feel while they are using a product and the best products are the ones that hit you on an emotional level.

Building a WordPress theme using AngularJS

Despite it being his first presentation and having some technical difficulties along the way, Eric Wolf quickly demonstrated how easily AngularJS can be used inside a WordPress theme in combination with the WordPress JSON REST API. It may not be the best option for most WordPress sites, but it’s nice to see that the platform can still benefit from the new frameworks on the block. I ancitipate WordPress single page applications becoming more popular in the next few iterations. We also got a demonstration on how easy it is to use Yeoman for scaffolding new local instances of WordPress as well as utilizing Bower to pull in script dependencies. I’ll be looking into setting up some Yeoman generators for the FEDs and maybe try to integrate Bower (or Browersify) with our new Gulp.js automation tool.

Overall

I rented a car and stayed with friends in Sherman Oaks (the valley), which required quite a bit of driving. Because I spent a lot of time in the car, I didn’t get a chance to catch up with most LA friends. Despite this, I was able to spend more time with coworkers from the Los Angeles and Las Vegas offices that I hadn’t met before and it was refreshing to socialize with everyone outside of a HipChat window. It’s pretty remarkable to see how well everyone gets along, which is a testament to both Alex’s and Karim’s hard work building this team and also to the WordPress community.

I leave this WordCamp with copious notes on things that I’m excited to further explore and knowing that my team is situated pretty well in the community. I look forward to seeing more of the great work that we’ll accomplish.

Here are all the talks from the weekend.