BADCamp – Where Drupal Geeks Meet Drupal Freaks

A major reason people choose Drupal as their technological focus is its community. It’s not just that the community is active; it’s also the specific awesomeness of this community. Back in 2008, I attended a Drupal Camp in Vancouver, and was immediately struck by the alternative, seemingly non-corporate, almost punk-like demographic in attendance. I felt right at home! The internet has always been for me, an extension of a mindset that seeks to change the world, not just replicate it. For me, Drupal was a vital representation of this. Where geeks and punks meet – that’s where I want to be.

I dove right in. Pacific Northwest (PNW) Drupal Summits became an annual ritual. At these summits, I would often hear about BADCamp, a Drupal conference held in the California Bay Area – the hub of both the counterculture and tech culture. Whenever someone mentioned BADCamp, there was an air of mystery about it, an insinuation of something more than just a conference. The details of this would only become clear to me this year, when in 2016 Kanopi Studios graciously sponsored my attendance.

BADCamp is one part conference and one part party. Consider it a tech conference with a higher-than-usual concentration of freaks (my catch-all phrase for punks, hippies, hipsters, anarchists and/or vegans), or conversely, a festival like Burning Man with a concentration of Drupal geeks. That’s right – it’s the ultimate geeks meets freaks.

For the freaks

First of all, there was a ring of free pinball machines right in the in the middle of the sponsor expo. My personal favourite was Junk Yard, though I never did figure out why there was an un-wrecked Volkswagen hippy van in there, other than to serve as countercultural reference in this blog post.

Next, we have drinking. And not just any drinking. But drinks like “Drush and Stormy” and “GIT-let”, with drink tickets spilling out of our pockets.

Now, I know what you’re thinking. You’re thinking, “Hey mixing fun times with tech is nothing unique to BADCamp!”. Well that’s true. Beer and Drupal, at least judging by the PNW Summits, have been good buddies for a long time. But, have you ever assembled a Burning Man-sanctified, playa-dusted, geodesic dome on the roof of a campus building, whilst the Dead Kennedys blared on the stereo, under a Friday afternoon California sun? Speaking of roofs, there were a lot of them – some sneaky, some not-so-sneaky, but always roofs-with-a-view. The Bay Bridge seen through a roof-based telescope is recommended. And speaking of the geodesic dome, free shoulder massages therein! And what could be more alternative than tarot readings and a stack of crystals also therein? All of this, and the party highlight for me, had to be the Pantheon-organized Saturday night afterparty, which involved a surreptitious gathering on top of a hill with a magnificent view of the city. I felt like I was in the movies or something. I was so blissed out that I forgot to partake in the ramen noodles. Yup, ramen noodles. Now that’s hip! It felt like Burning Man at a Drupal conference…. so what about the tech?

For the geeks

Here, I’ll just summarize some key takeaways from certain sessions that I attended. These are backend development and sys-op takeaways, with a little dip into frontend development. In addition to the regular Saturday and Sunday sessions, BADCamp offered themed summits as well as training sessions on the Thursday and Friday. The training sessions are high-quality offerings typically costing money, yet offered for free at BADCamp.

I took a training session, Mastering Drupal 8 Development. I’ve learned bits and pieces of D8 through the PNW Summits, but finally, I found the on-ramp to the freeway that is D8. The instructors were none other than the developers of the Drupal Console, a profoundly impressive piece of architecture that revolutionizes the Drupal developer’s life, much the way Drush did. The Console builds boilerplate code for D8 modules, routes, pages, forms, services and more. Given how much more complex D8 boilerplate is than D7’s, this is hugely helpful – it’s the on-ramp part of the freeway analogy. I was up and running in D8 with a sense of power. The Console is a must-have for any D8 backend developer.

I’m a backend developer, not a frontend developer, but nevertheless, it was recommended that I take the 21 things I learned with Twig & Drupal session for the hilarity factor alone. One particular slide I’ll always remember – a screenshot showing D7 theming layer code generating HTML div-nested about 30 levels deep. Themers will find that funny, infuriation notwithstanding. The whole room was laughing. Front-enders in particular, are enthralled with what Twig has to offer over the hackish D7 theming layer. A key takeaway from this session is that the presenter, a fan of rock band Rush, with a Danish accent that made him sound like Lars Ulrich (Metallica drummer), has been formally tasked with the development of the Drupal 8 theme. What D8 ships with now is essentially D7 themes, not making use of Twig. The real D8 theme will be called Eleven (partly a Spinal Tap reference), and will be coming out in about year.

I took another session offered by the developers of the Drupal Console, Learn the new things in Drupal 8 via debugging. Here, we examined the other half of the powerful functionality offered by the Console — debugging. This is debugging unlike run-time debugging offered by xdebug. It is Drupal-specific, and is it ever powerful! Tools like this feel like Christmas to me. There is much to choose from, but one example is the command “drupal router:debug,” which displays all the current routes for the site (all paths with corresponding machine names), with the ability to drill down deeper into any route. Nothing like this existed in D7. I turned to my co-worker and chuckled that the whole conference was worth it for learning about this alone.

Speaking of Christmas, I also learned about the command line tool, Peco. Pipe your commands to Peco, instead of grep, and you have a live, interactive filtering tool on the results. All the times I piped a command to vi when grep wasn’t good enough, and yet vi wasn’t good enough either – goodbye. This is yet another tool to make any self-respecting backend developer a command line fanboy/girl.

Another session I was able to attend was: Deep dive into D8 through Single Sign-On Example. I loved this session for being super well-structured. It was perfectly organized and well-paced to put into practice my new D8 development knowledge. It is just what the write-up says it is.

I’m also a sys-op guy, and I closed out my weekend with Drupal Performance Census – Lessons From Over 2500 Sites. This session was delivered by one of the Pantheon founders, the value being that he had many Drupal sites to run through some performance analyses. Pantheon has installed New Relic on their servers, with performance analysis that runs all the way from cross-site aggregate stats to individual site performance stack traces. Since New Relic is cross-site, it offers excellent overall analysis, unlike xhprof’s analysis on individual sites. These graphs provided excellent insight into Drupal performance. Even if you’re already a Drupal performance expert, I recommend watching the session video for a good summation of the situation. One particular topic mentioned in the session blurb, but not covered, was D8 vs. D7 performance. The presenter felt that D8 uptake was not yet significant enough to provide statistically significant metrics on this, but I asked him after the session for a general opinion. He cautiously suggested that a fresh, simple D8 site will perform slightly slower than a fresh, simple D7 site, due to its higher overhead.  Having said this, he also felt that once you start getting deeper into the build, a D8 site will show significant performance gains (increasing with complexity) due to the advanced architecture. Another takeaway from this session was to look for Big Pipe in D8. This simply means the displaying of certain parts of the web page before others, while the page loads. This is something that a site like Facebook has been doing for a while, and is now something that we can do in D8. This improvement greatly increases the perceived performance for the end-user. A final personal takeaway from this session came about when I mentioned that I didn’t see anything in the performance graphs mentioning opcode caching. The presenter said that all graphs assume that opcode caching is always on – not only because Pantheon always has it on, but because every Drupal site always should have it on. Now, this is something I already knew, but like much taken in at conferences, it’s the drilling of the point home, that is of value. So Drupal sys-ops everywhere, take note – if you don’t have opcode caching enabled, there’s absolutely no reason you should not. Big gains for free! Formally a manual affair with APC, starting in PHP 5.5, it is built-in – but depending on your distribution, it is disabled by default through 5.6. As of 5.7 is it enabled by default. Turn it on, baby!

Goodbye, Berkeley!

Every time I go to a Drupal conference, I feel revived. BADCamp was exceptionally awesome. We squeezed all the goodness into a jam-packed 4-days, and the only consequence was sleep dep. There was little time after my last session before my flight, so I walked back through the streets of Berkeley – that hotbed of 60s revolutionary spirit, with live Latin music and dancers in the street, feeling like I was leaving a lover, to return to my nature home on Vancouver Island, another lover. Yes, geographically, I am polyamorous. But it’s all coastal! I am Drupal coastal.