Reviving a Wordpress Plugin and Building Competency

As a fun little aside, I decided to resurrect a 'dormant' Wordpress plugin that enables support for including every comment system, ever, in tabs.

The plugin is called Comments Evolved for Wordpress, and was originally called gPlus Comments before adding support for tabbed comments from Facebook, Disqus, Livefyre, Trackbacks, and native Wordpress.  Judging by the 60,000 downloads from the official site, it's been pretty popular.

The plugin hadn't been updated for about a year, and users were complaining that it didn't yet display comment numbers and didn't offer a way to link the Facebook portion to a Facebook App ID, which meant that there was no way to moderate Facebook comments.  This was especially a problem for those seeking to monetize their sites, because many advertising services won't work with sites that can't moderate their own comments.

(You probably know how I feel about site monetization, but there are plenty of other reasons you might want to link all of your comment boxes with a single App ID.)

The Motivation

It's nice to have one programming language that you're very comfortable with for everyday projects—kind of like the one knife you always reach for when you're hacking stuff up in the kitchen.  For me, that's Python.

That said, I think there's also a lot of value in learning how to read, interpret, troubleshoot, and successfully modify code in a variety of different languages.  A lot of stuff on the Internet is half-built and partially broken, and there is inevitably "some assembly required" to get it to work in your particular context (fellow Linux users know what I mean!).  Digging through other peoples' implementations can also be a good learning experience.

Wordpress is not a platform I'm particularly comfortable with.  I've combined a custom Wordpress install with a variety of plugins and other web services to build neat academic journal article aggregation tools for work, but none of my personal blogs run in Wordpress and I've never attempted to build or modify an extension.

So what the heck!  I pulled up StackExchange and the Wordpress documentation and took a shot at it.

The Fix

Fortunately, Brandon Holtsclaw, the original designer, was cool enough to put the source on Github.  When a project's on Github, making changes is just a matter of "forking" the repository of interest, making some changes, and submitting a pull request to reintegrate the changes.

(Git and Github are great tools!  Never lose 10 hours of paper edits again.  Sign up with a .edu account, and you even get free private repositories!  If you're not comfortable in the command line, they have slick graphical tools for Mac and Windows)

I figured out the general plugin structure, re-remembered a little bit of PHP, and modified the plugin to accept a Facebook App ID.  While I was at it, I cleaned up the documentation and attempted to fix some weird tab loading behavior in Firefox.

Everything seems to be working fine in Wordpress 4.0, so I submitted a pull request to integrate my changes back into the original plugin.

If you just want the plugin .zip to upload, you can get it here. You'll need to remove the existing Comments Evolved plugin in order to install it.

You can see it in action on this WordPress test site.

The Challenge

The only way to get better at solving problems is to solve problems—that's just how the brain learns!

Becoming a competent problem-solver is therefore all about experience.  You don't earn it by passing a test or receiving a degree; you learn it by finding things that interest you and constantly pushing yourself to experience, understand, and do more.

This often means doing things that "aren't your job" or "aren't strictly necessary"—don't let a needlessly overconstrained vision of who or what you are hinder your progress toward who you are becoming.

We all have 168 hours per week to spend.  Every day, you make decisions about how to use your time that always, inescapably, add up to 1,440 minutes.

This week, use some of those minutes to try something new:  Take a different path on your walk.  Read some weird Wikipedia pages.  Cook something you've never cooked before.  Start a website, or a book, or some art.

Make some new connections in your brain every week, and within a few years it's inevitable that you'll have a collection of knowledge, skills, and perspectives that are uniquely your own.

Spend that time repeating the same old things, paying others to do everything for you, soaking up advertisements and lowest-common-denominator mass media, respecting authority and carefully coloring inside the lines... and just don't be surprised by the substance of the life that you create for yourself.