When was the last time you were deeply motivated to do something positive because you felt ashamed? Ashamed that you did something naive or downright silly because you didn’t know any better? Embarrassed because more experienced people mocked you instead of quietly helping?

People are not positively motivated by shame.

Sometimes guilt can be helpful, but guilt comes after knowingly doing something wrong.
Sometimes embarrassment can be helpful, because it helps us to be more cautious after an honest mistake.

But, shame? Nope. It’s different than guilt or embarrassment.

Shame, however, is born of ignorance or of not having mastered a concept…that we think we have mastered.

And public shaming smacks of a superiority complex. The shamer is dragging the shamed out into the public square, and everyone loses, because the former is displaying questionable motives while the latter learns just about nothing.

Well, not nothing. They’re probably learning that the community doing the shaming isn’t worth being a part of.

Exhibit A: WordPress

The WordPress community hasn’t always been the best at welcoming new people—in that manner, it’s really not different from any other community that revolves around a codebase. There’s been a concerted effort in the past few years to be inclusive and accessible, though, and I do believe it’s paying off. Friendly WordPressers are being more helpful than ever, and WordCamps are bastions of sharing and learning.

Even outlandish requests in Trac (WordPress core’s ticketing system) are being handled with more grace then ever.

But, in an effort to push WordPress standards to make a better community overall, we have to be mindful of our tendency to shame those who aren’t doing it “right.” Instead, back away from your Twitter account, and take the time to contact someone personally with a helpful attitude.

For instance, here are some unhelpful, shaming public statements:

  • Who does that?!
  • Someone is getting paid to do that?!
  • What a shady business. I feel bad for their customers.
  • It’s sad that people can get talked into that.

Now, here are some helpful alternatives:

  • I know your theme/plugin is successful, so can we talk about your use of best practices?
  • I have a client who’s having trouble switching from your platform to another. How can we fix this?
  • May I send you an email with some suggestions that would make your product more valuable overall?

Shame will not motivate anyone to do better, but constructive, empathetic criticism often will. By affirming that someone’s work already has value and respecting that, you’re in a much better place to offer suggestions. And, by coming from a better place, you’re far more likely to effect the change you want to see in a manner that builds everyone up.

Next time you see something being done wrongly, consider that the folks involved may not know they’re doing so. If it’s remotely possible, then public shaming is actually your least likely path to fixing the problem.

That is what you were aiming to do, right?

September 19, 2014 — Leave a comment — In Blog, Community, Development, WordPress

View Slides

We’ll cover the basics of the Transients API, see basic examples, and then discuss common places where this method can be most helpful, like large, complex queries or pulling from an external API. We’ll also discuss how this type of caching is unique, when to use it, and how to scale it for big bursts of traffic.

Follow Along

I’ve got all the working code samples in a plugin that you can look through while we talk. View it in GitHub, or download the repo and apply it to a local WordPress installation to see the code at work. To do that:

  1. Clone the repo to your plugins directory or download the .zip file.
  2. Activate the plugin.
  3. Import the contained .xml file, which will import five posts with shortcodes that execute the functions.

If you use MAMP and want to spin up an installation quickly, I’ve got a shell script for you to do just that.

August 16, 2014 — 1 Comment — In Blog, Presentations, WordCamp, WordCamp Birmingham

There is no perfect content management system.

In fact, forget being perfect for everyone—there’s no perfect CMS for you, either.

That’s just not the way it works.

There’s a best solution for you, but it may not be the best overall.
There may be a best solution in certain categories, but it may not be right for you.

Why do we feel like there is?

As Paul Boag points out, the early days of the CMS may have led us to believe that these systems were going to solve all our issues; that, now, anyone could update the website with ease.

Even today, we tend to throw around phrases like “everything is editable” or “totally intuitive”.

Yet, we find that’s usually not the case at all, right? Every CMS takes getting used to for everyone. Every CMS takes a different approach to structuring the admin areas. Some are purely for blogging, some are for more entire sites, and some are custom-built.

In general, a content management system does bring incredible accessibility to, essentially, editing database rows. It does feel like magic sometimes.

Expectations (Update Available!)

The issue with magic is that it gives us unrealistic expectations. It makes us think we should be experts in the CMS immediately. It makes us think every feature we’ve ever wanted is one free plugin download away.

I’m a huge WordPress fan. I’ve developed on top of it for years. I love it and my clients love it. I do think it’s the best choice for a majority of folks, and its popularity confirms that.

I also think WordPress is the most intuitive CMS, but that doesn’t make it…intuitive. Not by my standards, anyway.

I’ve traditionally introduced WordPress to green clients by saying something like:

“I think it’s the best option for you. It’s got a lot of power. It’s going to take you the first 4-5 times in that admin area to feel comfortable. You’ll have questions and get confused, just like we all do with new software. I’m here to answer your questions, and even when I’m not, those answers are a Google search away. After those first several times, you’ll get your bearings, and you’ll be running like a pro.”

And that whole “holy grail of plugins” thing that people seem to think exists? As Chris Lema says: you can’t afford it.

If you’ve got clients that you’re talking about content management systems to, you owe it to them to manage their expectations as much as possible.

Know Your Options

There’s a ton of options when it comes to CMSs. Sure, WordPress is the most popular, but Drupal scales really well. Ghost is beautiful, and Statamic and Perch are really fast and simple. Jekyll is great for developers. Joomla! is really good at social networks. The list goes on and on.

We do a disservice to others when we don’t know about these other options.

I don’t just mean that we could be presenting alternatives (although that’s true), but we’re removing the context for people to understand the CMS landscape.

“I’d like to move to a better CMS. What’s the best choice for me?”

“Oh, WordPress. It’s the most popular, it’s easy to work with, there’s a huge community, and it’s free!”

…and then they get 3 weeks into their new site and don’t feel like it’s so “easy to work with.” So they start Googling, and they see countless other options that look way simpler.

What they don’t know is, for instance, that Ghost won’t run on their host, or Drupal doesn’t have the plugin that their site actually relies on now, or the random CMS they found doesn’t have a community and is really hard to upgrade.

You don’t have to know every detail of every CMS to understand their strong points. Once you do, it’s much easier to explain that the CMS landscape is complicated.

People coming into a new CMS, like WordPress, ought to understand that there are quirks, some things are difficult, and when it comes to your plugin hunt: here be dragons. It will take time to learn.

But, you, because you’re an expert, know that this is the best option overall for them. You’ll need to remind them when they demand too much or get frustrated.

It doesn’t take much to be an expert on CMSs to someone who doesn’t understand the landscape. You’ll just need to be honest. You’ll either deal with their expectations upfront, or you’ll deal with them a few weeks into a completed project.

Simplify When You Can

Let’s say WordPress is the choice for a client’s new site. You’ve had honest conversation about expectations and the time it will take to learn.

You can still do your part to improve the experience. Even WordPress has a confusing Dashboard setup out of the box (“WordPress News”? Why would my client care?).

You can hide some of the unhelpful items ahead of time with “Screen Options”. You can have a license to a WordPress learning tool like WP101, or you can hook up an interactive walkthrough tool like Sidekick. You can further refine the admin area and prepare it for users with a bit of code.

With Evermore, we go even further by having curated customization options, so that the entire site presentation of the site (from Site Title to widgets to colors) can be configured visually in the WordPress customizer. We look for every instance to make the entire experience more and more intuitive.

Yet, despite the best efforts of everyone involved in a CMS, no option will ever be perfectly intuitive, flexible, fast, upgradeable, and affordable. Let’s talk about it like that’s the reality we live in, so we can cut down on the frustrations users are having thanks to expectations run amok.

August 15, 2014 — Leave a comment — In CMS, Content, WordPress

Sometimes, sites can get overloaded with spam comments—thousands per day. Whether this is the case, or you’ve just never emptied out your spam comments on a big site, you can end up with too many to trash. This is due to some restrictions to the amount of data that can be sent along with a request.

You can clean things up with some simple SQL queries—it’s much more efficient than trying to use the WordPress admin area when you need to remove spam comments in bulk.

Before you do anything, get a full backup of your database. Seriously.

Querying the Database

Depending on your hosting environment and your level of expertise, you’ll run these queries

  • using phpMyAdmin, in the SQL tab
  • using a database management GUI, like Sequel Pro
  • using the MySQL command-line tool

To check the output of any of these queries before actually deleting anything, replace DELETE FROM with SELECT * FROM. You’ll see all the rows that will be deleted when you run the real query.

As well, note that these queries assume your database table prefix is wp_. You might need to change it.

Spam Removal Queries

To delete all comments marked as spam, run:

DELETE FROM wp_comments WHERE comment_approved = 'spam';

That should clear out your spam comments area in the admin. You should see about as many rows affected as you had spam comments.

Meta Data Cleanup

Even after you delete all those comments, you’ll still be left with all their metadata cluttering your database.

If you use Akismet, you can run this to get rid of everything:

DELETE FROM wp_commentmeta WHERE meta_key LIKE '%akismet%';

This query will attempt to delete any comment that no longer exists. It’s a little more complex, so double check the output before deleting—hopefully, the previous query will do the hard work first.

DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments);

After all is said and done, optimize both the wp_comments and wp_commentmeta tables.

Now, go figure out how to stop that spam from ever getting to you in the first place. 🙂

July 9, 2014 — Leave a comment — In Blog, Development, Resources, WordPress

Creating websites visually—without coding—is a reality today. Tools have advanced significantly. The concerns over code quality are, at least, diminishing.

You can now work with WordPress themes and plugins that will let you “drag and drop” elements of the layout. Building and customizing design has never been easier, and it will only continue to get easier.

Most of these tools were—initially, at least—built for designers to bypass or supplement development.

But, that functionality has successfully entered the sphere of the end user. Now, many of these tools promise “anyone” can build a website themselves, without code.

And I’m all for innovation, but, do you understand website design?

This is not a whiny post about paying designers. The word itself has become diluted. I’m talking about the practice that these visual tools enable: designing for something. Do you know how to do that?

Illusion of Explanatory Depth

obama-not-badIf you’re making this face, let me explain why what I’m asking is valid and not pretentious.

Humans are highly skilled at discerning cause and effect. We can discern causal relationships fairly easily, so we’re quick to judge objects’ relation to one another. This is good for us from a survival standpoint, but it can betray us.

However, while we are very good at inferring cause and effect, we do not always understand the mechanisms underlying causality. In fact, causality has been described as a “cognitive illusion”. Much of our understanding of cause and effect is based on associations, without a true understanding of how events are really related to one another.This lack of understanding is referred to the as the Illusion of Explanatory Depth. People may believe they have an understanding of mechanistic relationships because they understand one event causes another, but when asked to explain that relationship, they fail.

So, we might be fairly good at attributing causality when observing an event, but that talent makes us think we can reverse-engineer it.

Most people don’t make a decent living at design because they’ve managed to fool everyone around them. They do so because they understand the mechanics of how design works.

Designing for Ourselves

One thing that a good designer knows how to do is eliminate their own biases—consciously and often. And I’m not talking about just doing some basic research; I’m talking about after research and expertise have been exhausted.

In the absence of detailed information, we all work from assumptions about who the user is, what he or she does, and what type of system would meet his or her needs. Following these assumptions, we tend to design for ourselves, not for other people.”

Human Factor: Designing Computer Systems for People by Richard Rubinstein and Harry Hersh

Designers are good because they, first, know how to gather objective information to base a design upon, and then, they have a stockpile of informed “assumptions” about users. This is why many designers can make decisions seem like common sense—or even easy.

So, the less experienced in understanding these assumptions you are, the more quickly you’re going to run out of them. And the more quickly you’re going to tend to design for yourself.

Are Visual Website Building Tools Bad?

No, unequivocally. Blaming a tool is dumb, and you can’t blame companies for marketing their products to a market that’s ready to buy it.

And yet, their presence makes it tempting for just about anyone to start designing things “the way I want it”. That may be 100% fine if your website is for yourself. But, if your website is for other people (e.g. any business), the way you want it should have little-to-nothing to do with it.

I’m not suggesting you have to hire a designer for everything. But I am putting you on notice that it’s not as easy as moving things around until you make the “not bad” face.

If you’re set on using a visual tool and not hiring someone to help you, you owe it to your business to do these one or two things:

Work from Templates

Find existing templates for the visual tool you’re using, or look for common layouts amongst successful products like yours.

The temptation is to differentiate yourself by not looking like everyone else. That intention is duly noted, but you ought to make real sure that everyone wasn’t already doing it better than you’re about to do. Design is not a response.

Start Learning Design

Build a base of design understanding. Pick up The Principles of Beautiful Web Design or Responsive Web Design. Try to dissect designs from companies who you know are doing well because of their online design (i.e. a purely eCommerce site).

“I don’t think this is necessary.”

Fair enough. Maybe you’ll get lucky, and what you like in a design will also work for other people. Maybe you’ll see data that appears to affirm your decision, so you’ll attribute causality to your design.

I’m not saying it can’t be done. I’m just saying you’re leaving your design to the chance that your preferences connect with people well enough to support your business.

If you don’t want to leave your business to chance, get expertise by hiring someone or exposing and counteracting your own biases.

June 13, 2014 — Leave a comment — In Blog, Design, UX, WordPress