Oh The Huge Manatee

Drupal, Sysadminning, and Tech.

How to Configure Authcache on Drupal 7

So you have authenticated user traffic you want to cache? Good – you’re on the right post. This post is a walk through for caching content for authenticated users in Drupal 7. We will be using the Authcache suite of modules. If you haven’t read it yet, I strongly recommend you check out my last post, Authenticated User Caching Concepts in Drupal 7.

Our goal is a simple authenticated user caching system based on Authcache’s AJAX implementation, with a Memcached backend. We will serve pages…

Authenticated User Caching Concepts in Drupal 7

Drupal has a wide variety of highly effective solutions for caching anonymous user content. The typical setup is APC, Memcached or Redis, and Varnish in front, and this can easily serve thousands of concurrent anonymous users. There is excellent documentation out there discussing this kind of simple caching.

But what about authenticated users? You can cache elements of the page using a method like Render cache, Entity Cache, or Views Content Cache. But Drupal still has to assemble each page for your users, a relatively heavy operation! If you want to address hundreds or thousands of authenticated users, you’re simply SOL by these traditional approaches.

Enter the Auth Cache suite of modules. Though this project has been around for quite some time,…

Drupal Superheroes: ASSEMBLE!

Drop Signal Regular Drupalcon attendees know that the opening pre-keynote session is one of the highlights of the con. That’s the session where we welcome everyone to the con with stupid jokes, some well known Drupalists, and a lot of fun. This year is going to be especially good – and we need your help!

The evil Lord Over Engineering is threatening to delay the release of the CMS, which we need to save the world! The only way to stop him is to assemble the greatest force of Drupal superheroes ever assembled! Can the heroes save the day? Can we manage to make the final git push? You’ll have to be there to find out!

“If you only get up early once during DrupalCon, this is the morning to do it. And hey, at least you’ll get better seats for my keynote right after.” — Dries

In Prague we ha…

Drupalcamp Helsinki Takes on the World

Last weekend I got to keynote Drupalcamp Helsinki with my friend and often-collaborator, scaragucc – and what a great camp it was! Organizer Lauri Eskola deserves tremendous credit for taking this camp to the next level. They doubled their attendance from last year, attracted positive attention from some great notables in the global Drupal world, and got their local community energized to engage more. At all the various after parties there were frequent toasts of “one of the best Drupalcamps in the world!”

Lauri and I met at the last Drupal Dev Days event, in Szeged. That was also hailed as an example of a hugely successful Drupal event, and he took the lessons from their in-depth report to heart. To be fair, the local volunteers and sponsors also …

How to Recover Photos and Data From a Keylocked Android Phone

Recently a good friend of mine passed away suddenly. Her family asked me to recover her photos and videos from her computer and android phone. The computer was easy enough, but the android phone posed a real problem. It had a keylock enabled, and USB debugging disabled. There was no external SD card to pull out, which meant that all the photos were stored on the internal memory. The phone was a totally stock Samsung Galaxy S3 mini. With a lot of reading, I worked out a way to get a data dump from her phone without having to bypass the keylock.

1) Get Clockworkmod Recovery

Clockworkmod recovery is a familiar tool to anyone who has ever rooted their Android phone or installed a custom ROM. I run my own phone on Cyanogenmod, so I knew the broad strokes of how to install and use it. If you haven’t done this before: your Android device actually has several partitions on it for various kinds of data. Your device actually has several different boot “modes”, which are activated by various key combinations on startup. One of the boot modes, “recovery”, is specifically there to allow critica…

Why Use an IDE When Vim Is So Awesome?

One thing I’ve never really understood is IDEs. I mean, I get it when you have a complex, emulated environment as a key part of your development. But for the majority of us who write in high level languages like PHP or Ruby, I just don’t see the benefit. Why use some mouse-y, graphics dependent piece of software when you can use the ubiquitous Vim?

I use Vim because:

  • It can do everything any IDE I’ve seen can do. Syntax highlighting, code completion, easy documentation access and writing, debugger support
  • It’s available on every machine I work with (OSX/Linux/Unix) by default
  • The configuration is portable, so I can have the same, totally customized environment on every machine I work with.
  • It’s just way faster and more elegant than any IDE I’ve seen.

I’m open to learning new things, and if I’m missing out on some huge productivity benefit by sticking with Vim, I’d like to know about it. So this post will lay out my particular Vim setup, in the hopes that someone will comment with an …

Coder vs. Themer Ultimate Grudge Match Smackdown Fight to the Death

I’m really excited about a new session that I’ve been doing with my friend and colleague, Adam Juran aka scaragucc: the Coder vs Themer Ultimate Grudge Match Smackdown Fight to the Death! The basic premise: we both start with the same wireframe of a front page to build. But I’m only allowed to use the module layer, and Adam is only allowed to use the theme layer. It’s a really fun and entertaining way to play with the blurry lines between “coder” and “themer”. We get the audience pretty pumped up, which is impressive for a session that’s basically about watching other people code!

If you didn’t catch it at Drupal Dev Days in Szeged, or at Drupalcamp Frankfurt, you’re probably going to ha…

How to Create a Custom Display Suite Field

A few months ago I posted about how to create a custom Panels pane, a critical reference for anyone who uses Panels layouts. The other part of the toolkit for quick and awesome layouts is the Display Suite module. With DS you can create new “Display modes” for your content, to be reused around the site. For example, on one recent site I had four standard ways to display my nodes: Full, Teaser, Mini-Teaser, and Search Result. DS made this configuration a cinch.

But j…

Drupal Dev Days Szeged, or: Why You Should Attend Every Camp You Can

Today is the last day of Drupal Dev Days in Szeged, Hungary, and I’ve never been more full of the “Drupal spirit!”

One of Drupal’s greatest strengths is the closness of its’ community, how friendly and accepting they can be. Drupalcons are highlight events for many, not because of the learning as much as because of the social track: the chance to see old friends and make new ones. Even more important is the chance to experience in person this incredibly friendly community. I always loved the cons because you could approach really anybody, say “hi”, and ask them about their work with the platform. Seriously, anybody. From a new user to Dries himself.

That’s become harder and harder as Drupal has grown more popular. In a convention of more than 3,000 people, you lose that feeling of being able to approach anybody. Instead, people silo into groups. In a best case it’s a group that shares an interest in a sub-system (Rules junkies, Panels proselytizers, Features fans…), but in most cases it’s because of shared connections outside the community. Y…

Another Cryptic Ruby Message

Ruby on Rails drives me nuts, and today I found another example of why: the cryptic error messages. After a server update, my chiliproject/redmine site refused to start. The error message was

“Object is not missing constant Issue!”

What does that even mean? It took me a little while to understand that Issue in this context is the Redmine object “Issue”. But still, “Object is not missing constant X” isn’t much help. I tried “bundle install” to make sure all my gems were in place, and there was no problem there.

In the end, on a hunch – gah I hate fixing things based on hunches – I tried uninstalling the mysql gem. That was the only subsystem which was updated which I could imagine interfering with Redmine. I tried to reinstall it the normal way: gem install mysql, which seemed to go without a hitch. But then Redmine insisted that I…