Merry Christmas!

For to us a child is born,
   to us a son is given;
and the government shall be upon his shoulder,
   and he is called
Wonderful Counselor, Mighty God,
   Everlasting Father, Prince of Peace.

-Isaiah 9:6 (ESV)

Elbee Elgee 1.3.3 Is Now Live In The Theme Repo

Just a small programming note: the latest stable version of Elbee Elgee is now live in the theme repository. The changelog is fairly sparse and goes to support WordPress 3.3. Mainly:

  • Issues Fixed
    • Switched from wp_print_styles() to wp_enqueue_scripts() to enqueue/output CSS due to changes in WordPress 3.3 (see here for details).

Go forth and download!

Elbee Elgee 1.3.2 Approved; 1.3.3 Incoming

I’ve released Elbee Elgee version 1.3.2 to the themes repository. The update got a clean bill of health and should be showing up in your WordPress Updates screens as soon as the Powers That Be mark it for “sync”.
This is a small update that addresses the menu issues some folks were seeing involving mutli-level menus. The quick fix was to make sure you specified a custom menu for the Primary menu location but 1.3.2 should fix it from the back-end side of things.
Additionally, I’m cobbling together a 1.3.3 release for WordPress 3.3 support (keep tabs on its status in the Theme Repository here. The change is minor — WP3.3 changed the way CSS stylesheets were included (see here and here for details) and so some of the Elbee Elgee styling has started to “bleed” over into the WP administration interface.
Ain’t that the way of things — I release a bugfix and then have to follow it up with another one, short-order? *grin*

Export Mailman Subscriber Address Lists Without SSH/Shell Access

I recently had a need to export the contents of a GNU Mailman-based mailing list for WordCamp Philly, so I poked around the web-based Mailman admin interface, hoping to find an easy way to export a .CSV or at least a list of names, to no avail. The only supported, native way is to use a couple of Mailman shell scripts from the command line. Alas, since this particular list is hosted on a shared hosting account, I lacked the proper access to pursue this route.
There are a few ways to get around this, but they involve

  1. overly-complicated internal Mailman commands emailed directly to the listserv WITH THE ADMIN PASSWORD CONTAINED IN THE EMAIL ITSELF or
  2. use of third-party Python scripts with external dependencies or
  3. cutting-and-pasting by hand.

Perhaps you heard that laughter from where you sit? That was me. Laughing maniacally at those “solutions”.
I needed simple, I needed quick, so after a bit of Google scouting, I came across the following (ever-so-slightly modified/generalized):

wget -O - --post-data 'adminpw=${admin password}'  http://${listserv domain name}/admin.cgi/${list name}/members | egrep "_realname" | sed 's/^.*value="\([^"]*\)".*value="\([^"]*\)".*$/\1,\2/' | sed 's/%40/@/' > maillist.csv

This single-liner should work on any Linux/Mac/BSD/etc. box with a decently up-to-date version of wget installed on it and it should dump a nice comma-separated list into a file, maillist.csv. Let’s break it down a bit so that you can see how it’s working its magic.

wget -O - --post-data 'adminpw=${admin password}'  http://${listserv domain name}/admin.cgi/${list name}/members

Here, ${admin password} is the actual Mailman list admin password, ${listserv domain name} is your actual Mailman server’s DNS name (in my case, it was, but yours will obviously differ) and ${list name} is the actual list slug.
NOTE: Some Mailman setups have pretty URLs turned on, in which case you may need to use admin/ instead of admin.cgi. The fastest way to determine the proper URL is to simply visit your Mailman list admin page and take note of the full URL.
This portion of the code retrieves the contents of the ${list name}‘s membership list by essentially screen-scraping the entire page. This is a step in the right direction, but obviously not very human-readable. The output is littered with HTML output that makes picking the subscribers’ needles out of that particular haystack a bit of a chore. The next two bits help on that count.

| egrep "_realname"

This bit strips all lines except those containing the subscribers’ real names. Again, useful, but still a bit too much info for our purposes.

| sed 's/^.*value="\([^"]*\)".*value="\([^"]*\)".*$/\1,\2/'

Here we look for two values contained in the line, specifically the subscriber’s real name and email address. We then output those two values as essentially Real Name, email Address.

| sed 's/%40/@/'

There’s one small problem with the comma-separated values we exported in the step above — the @ symbol is actually encoded as an HTML entity, namely %40. By running that sed, you’re changing %40 into the universally-understood @
So, when all is said and done, you should have a nice, concise, comma-delimited text file containing a complete list of your Mailman subscribers, one per line. I hope someone else finds this to be as time-saving a proposition as I did.

My WordCamp Philly 2011 Presentation: “Adding A Social ‘Stache To WordPress: BuddyPress, bbPress And Beyond”

The official WordCamp Philly blog has it right: #WCPhilly 2011 was a great success. We had awesome speakers, awesome sponsors, great volunteers and a ton of very enthusiastic WordPress users turn out for a wonderful weekend.
My presentation is embedded below. Warning: contains dangerous levels of mustache.

Elbee Elgee Version 1.3/1.3.1 Aka “The Tabbed One”

After a healthy delay, I’ve released Elbee Elgee 1.3 to the Dot Org Theme Repository. I’ve added a few things worth noting.

Tabbed Admin Options

Elbee Elgee Settings  Elbee Elgee  WordPress
The first change that I’m rather proud of is the inclusion of tabbed admin interface elements. While the code powering this setup could use some optimization and simplification, this tabbed step lays the groundwork for some other exciting features I have planned for forthcoming releases.
As you can see in the screenshot above, Elbee Elgee will now detect whether you have BuddyPress and/or bbPress installed and active and will separate out admin elements relating to their functionality into separate tabs. They’re simple examples but they demonstrate the power of this approach.

The Beginnings Of Theme-Wide PHPDoc Documentation

Phpdoc 1
I’ve started documenting the ins and outs of the master parent theme in an effort to both assist my lousy memory and to give pointers to users and (hopefully) other theme devs that choose to use Elbee Elgee as a basis for child themes. All files that originated in this theme should eventually have a PHPDoc doc block at their top and all functions will eventually have associated doc blocks as well.
This is very much a work-in-progress but I hope to have the theme thoroughly documented within the next couple of revisions.

BuddyPress 1.5 Support

The recently-released BuddyPress version has radically changed the way many of BP’s core functions work. I’ve adjusted the included theme templates included in Elbee Elgee to compensate for this and am fairly confident that this theme is one of the few freely-available themes out there to offer such.

bbPress 2.0 (Final) Support

There have been some minor revisions in support for bbPress. Not much changed between 2.0 betas and the final release, so not much has changed internal to Elbee.

bbPress Single-Column Layout Support

Disabling bbpress
Tucked away in the new bbPress tab you will see the options shown at right.
Previously, theme users employing 2- and 3-column layouts were potentially constrained in their forum views. Personally, I feel like bbPress tends to feel a bit “cramped” in the cases where it has to contend with sidebars.
In order to address this, I added the ability to disable the default sidebars and default footer widget areas.
Check out the examples below for a taste of what I’m talking about.

Regular Layout

Here we have an example of the standard 2 column layout.

No Sidebars

Sidebar disabled
And here’s what it looks like without sidebars. Much breezier, no?

No Nothin’

All disabled 1
Here we have both sidebars and footers disabled, for those who really dislike widget areas cramping their style.

CSS-Only Drop-Down Multi-Level Menu Support

Drop downs 1
Previously, Elbee Elgee had no support for drop-down/multi-level navigation menus, so I simply limited the main menu display to the top level. However, version 1.3/1.3.1 have addressed this flaw in the default stylesheet (ng.css). This menu setup should work in all modern browsers — no JavaScript needed. Please let me know if you find otherwise.

1.3 And 1.3.1? Huh?

1.3, the version currently available in the theme repository, actually contains a small bug that will incorrectly limit layout options if you have bbPress enabled. I’m in the process of getting 1.3.1 approved and your auto-updaters should pick up the update as soon as it’s cleared by the Theme Review Team.
In the meantime, if you want to grab a copy of 1.3.1 to install directly:

  1. Click over onto the Bitbucket download.
  2. Unzip the zipfile. This should create a directory zamoose-elbee-elgee-0e0b34ec56d6.
  3. Rename zamoose-elbee-elgee-0e0b34ec56d6/ to elbee-elgee/.
  4. Remove/set aside your existing elbee-elgee/ directory under wp-content/themes/.
  5. Upload that local elbee-elgee/ directory to your wp-content/themes/ directory.
  6. Visit the theme settings page and make sure that everything seems correct.

Issues? Problems? Bugs?

As always, please drop me a line in my support forums. Thanks!

Announcing: Elbee Elgee

I’m excited to announce the first public release of my oft-delayed theme, Elbee Elgee. It’s available right now over at its page on I’ve been working on this for the better part of the last few years, picking at the code here and there but never with any real drive towards a release.

Why Release A “New” Theme?

As I said above, I’ve been kicking this theme around for several years. It’s been the engine powering Literal Barrage (in various incarnations) and I’ve always meant to release it, though I’ve always lacked the motivation.
Then came Oenology and Ghostbird.
Chip and Michael’s respective theme releases lit a fire under my butt and I decided to get the theme into shape for release.
I wanted to make sure I understood the WordPress theme development process from front to back and I wanted to integrate some ideas that had been floating around in my head since I published my original theme options page tutorial.
After several rounds of bugfixes and refinements, I cleared the WordPress Theme Review Team’s review process and, well, you can see the result over at the official demo site (or you can check out your current surroundings — Literal Barrage is running a child theme of Elbee Elgee).

What’s so exciting about Elbee Elgee?

I’m pretty psyched about several noteworthy features that I’ve included in this theme. Check ’em out below.
Continue reading “Announcing: Elbee Elgee”

Pre-K Jargon File

About a year ago, my wife and I were in the midst of watching the classic Stephen Fry/Hugh Laurie-helmed Jeeves and Wooster and we were allowing our kids to watch it along with us. We had been watching episodes each evening and the kids were keeping up well, though one night my at-the-time 2-year-old daughter fell ill. We put her to bed and watched our normal episode or two with our eldest.
The next morning, our daughter arose and demanded she be shown “Jesus Monster”. We scratched our heads in puzzlement until we realized that she was, in fact, asking to see the episode she had missed out on the previous night. In the spirit of the ever-valuable, ever-geeky Jargon File, I decided to catalog the various amusing and/or endearing malapropisms that my children have churned out over the years.
What follows is by no means comprehensive, but merely a sampling of the ones I have been able to jot down, catalog or otherwise remember.
Continue reading “Pre-K Jargon File”

“Never So Big”
David Byrne + Fatboy Slim + the story of Imelda Marcos’ nanny & Marcos herself(!) = stunningly awesome.
Seriously check out all of Here Lies Love, Byrne and Fatboy’s collaboration/concept album.

“Perform This Way”

Weird Al’s initial stab at a title track for his new album met with resistance from the original “artist”.
Or, as @badbanana put it, “The song Lady Gaga didn’t want you to hear[.]”.

Here’s Weird Al’s side of the story.
I’d be looking for a new manager if I were Lady Gaga. Looks like Al and Gaga have made up and there will be an actual video after all…!