Ponderings

What does the White House's Executive Order mean for Open Government

I wrote the following piece after looking into the Executive Order on Open Data. The original is published at https://www.acquia.com/blog/what-does-white-houses-executive-order-mean-...

How to Determine Which Nodes Are Using Pathauto Paths

Recently at work, one of the site managers asked for a listing of which nodes on the site were using the auto-generated Pathauto paths and which were not. Should be easy, right? Just figure out where Pathauto stores whatever variable it uses to indicate if a node has the "Automatic alias" parameter set and dump the list. Turns out, actually no, it's not that simple. Pathauto doesn't store a variable.

Migrating from CVS to Git

One of the initiatives begun since I came on board at USP is to convert the team from using CVS for version control to using Git. CVS was performing adequately in most respects, but the leadership recognized that Git is the de facto industry standard these days and that, beyond the technical benefits of moving to Git, there was value in keeping up with the standards of the industry and the Drupal community. The question, then, was how to best accomplish the change.

hook_career_alter()

On July 13th, I'll bid farewell to GDIT and the EOP and move on to the next step in my career. It's been an honor to work with the team there and I've learned more in the past year than I would have imagined possible, a small sampling of which are below.

  • #!'s in URLs are forever.
  • --skip-lock-tables. For the love of dog, use --skip-lock-tables
  • Team dynamics are critical. The right combination of people in the right environment can produce some amazing outcomes and make even the most arduous environment bearable. Unfortunately, that balance is remarkably fragile. It takes very little mis-management to upset the balance and destroy morale.
  • Unicorns bleed rainbows.
  • cd -: How have I lived this long without having known about this command?
  • Mongo is wonderful until you need to do a simple join query, in which case you're looking at writing at least a hundred lines of application-layer code.
  • CDN's are insanely expensive but worth every single penny when people in Guy Fawkes masks decide to pound on your site.
  • Kanban is a wonderful management tool, created by 3M as a ploy to sell Post Its.*

Credit and disclaimers:

hook_career_alter() was originally developed by webchick. I'm just running a custom implementation of it.
* I have no proof that 3M created Kanban...but it just makes so much sense.

When the Birds of a Feather Don't Flock

Some months ago, I got involved with implementing OpenID on Drupal for work. One of the things that struck me was that the OpenID modules appeared to be largely dormant. With DrupalCon coming up, the logical solution seemed to be to get together a Birds of a Feather (BoF) session.

Completing DataSmith.net Project Revision

The final outcome of this project came out a bit different than originally envisioned, but I'm calling this one done for now. In the end, I created a Project node type with a Taxonomy term reference for the project status and a view to display the Project nodes which have a status of either Exploration, Active, or Someday.

Rework of OpenID Selector module

Status: 

The openid_selector_inline submodule of OpenID Selector provides interface elements that replace the core OpenID input field with provider icons that users can click to authenticate to their identity provider. The module provides no real configuration options, though. When enabled, it automatically places its icons on the /user/login form and on the login block.

Rules-based Taxonomy Term Creation in Drupal 7

This morning, I went looking for a means to automatically create a Taxonomy term when a new node of a given type is published. To my surprise, though, the old Taxonomy action set which appeared in the D6 version of Rules was missing from the D7 version of Rules. A quick search of the Rules issue queue revealed that I wasn't the only one looking for Taxonomy actions. Several more minutes of poking around the interface revealed that the solution is there, it's just obscured in the interface.

Indexes on collections that don't exist: one of the mysteries of Mongo

I've been working on a Drupal module which aggregates and reports on some data from Mongo. In order to keep from having to re-do all the aggregations, the aggregated data itself is written off to a Mongo collection which is then retrieved and displayed when the reports are requested. To make the retrieval more efficient, I need an index on the table storing the aggregated data.

Mongo MapReduce FTW!

One of the systems I've lately inherited makes heavy use of Mongo for data storage, a data system I've not used previously. So, when the boss called tonight and said that his boss needed counts of an object in our system by state in the next 10 minutes my thinking went something like...

No problem, that's a simple SQL group-by....Oh, wait. This is mongo. Oh, crap! How do I do that?! It's a function; Map...Something.