Category Archives: WordPress

New Theme Competition

Someone is running a WordPress 2.0 theme competition with some pretty sweet prizes. Winners of previous competitions run by Alex have gotten a ton of exposure all over the blogosphere. I think there is so much new functionality possible with the new functions in 2.0 that themes like Regulus take advantage of that it should be a factor in the competition somehow.

Markup Survey

Ian Hixie at Google just published a really awesome web authoring survey of a billion documents. What I found most interesting about reading it was places that things I’ve worked on, notably WordPress and GMPG, popped up.

HTTP Headers — “A pretty significant number of pages include an X-Pingback header (more than the number of pages with the Set-Cookie2 header). In fact, X-Pingback was the 30th most-seen header in our data sample.”

WordPress is one of the few platforms that supports pingback, an alternative to Trackback with a real spec. Apparently there are enough WP pages in the world for this to make a blip on the radar.

Page Headers — “It turns out that a tiny but measurable number of people do use the profileattribute, though. The three most-often used values are http://gmpg.org/xfn/1, http://dublincore.org/documents/dcq-html/, and http://gmpg.org/xfn/11. This makes XFN the most popular HTML metadata profile!”

Too cool for words. 🙂 Both of these profiles are included by default in some WordPress templates.

rel="pingback" and rel="bookmark" both skirt the charts in the link relationship page. No XFN values made the cut there.

The <a> element — “external seems to be mainly propagated by WordPress, but people have long been asking for a way to label their links as being external vs internal.”

Nice to get a direct mention there, and we’ve supported bookmark and tag from the beginning. All in all the report is a very interesting read, and kudos to Google for doing this type of research and sharing it with the web. I hope to see more of these in the future, it delights my inner markup geek.

WP2 Thoughts

WordPress 2.0 “Duke” is available! Like 1.5 when it first came out I expect it will take a few months before the full implications of this release are realized. There are some surface changes (see 5 little things I like about WP 2.0) that still need some polish in places, but I think the underlying architectual changes are really rock solid. Interface changes are easy to iterate on in future versions. WordPress.org also has a rocking new design from Matt Thomas, and there will be some more action there in the coming months.

WP on Yahoo

Check out the new bundling of WordPress with Yahoo Hosting, which is why I was biting my tongue so much last week. 🙂 We’re sitting next to Movable Type on their blog page, but I’m completely comfortable with new users trying out both and making their decision from there. (I often recommend it.) The other part of why this is interesting is the Akismet angle, which I wrote more about here.

About.com switching to WordPress

Sheila Coggins just published an interview with me on About.com Weblogs, which came out fairly well and talks a little bit about new efforts like WordPress.com.

The timing for the interview couldn’t be better. As people watching closely may have already started to notice, About.com has begun switching their sites over to WordPress from Movable Type. They’ve been doing it quietly and one-by-one for at least month now, you can see WP in action on Weblogs, Baby Parenting, entrepreneur, US politics, and many more. They’ve integrated it so tightly with their system most of the usual signs of a WP blog aren’t there, but the dead giveaway is the comments. In fact none of their older blogs seem to have comments enabled, just the upgraded WP ones.

About.com isn’t very “2.0” hip but they are still get some of the highest traffic on the web, easily within the top 50 sites in the world. From what I understand they haven’t made any changes to the core code, all of their customizations have been through plugins. They’re also looking at bringing a WP “powered by” link to the pages. (Which, as noted in the previous entry, is completely optional.) I’m very glad About has found a platform that will grow with them. 🙂

The good news keeps coming in.

German Focus

So the next trip to Europe I’ll have to catch the Netherlands and Germany, I’ve met some fantastic WordPress users (and future users) from both. There is someone on stage from a German media organization talking about how they’ve begun emphasizing blogs much more in their publication, Focus. After browsing a bit I noticed that blogs.focus.msn.de (yes that’s MSN) is all WordPress blogs — cool! What’s interesting about being Open Source is that the software turns up places you would never suspect or know about.

Yahoo on WordPress

Stephen Steele (is that a real name?) just wrote in that the new Yahoo Mail updates blog is on WordPress. As far as I know this is the first official Yahoo blog on WP I’ve seen. What makes it really interesting is it’s the first time I’ve seen third-party software (like WordPress) on the yahoo.com domain. You’ll notice every time they’ve done blogs before it’s been on a different domain like yahoo.net or ysearchblog.com, I imagine because of the incredibly strict security requirements anything with access to Yahoo.com cookies must meet. This is very exciting news. 🙂

Should We Have Hidden Options?

Alex King has recently suggested that we have an about:config for WordPress. When I first thought this I thought “great!” because we’ve had this for several versions now: if you browse to options.php directly you can edit any option in the database, even those that have no UI because they’re from plugins or just something we don’t expose.

However after several comments pointed this out Alex began clarifying his request, some of it isn’t entirely clear to me (I would never want to go back to storing configuration in files, that was a nightmare we eliminated in 1.0), but the main gist is not merely exposing an interface to the options we have, but rather adding many more options to the code to allow for more than one way for some core parts of WordPress to work.

With that clarification, I think it’s pretty safe to say that something like that will probably never be incorporated.
Options have several costs, which is why we avoid them fairly religiously in WordPress. The most obvious cost is UI clutter — everyone wants their 15 pixels of fame and configuration screens quickly devolve into pages of utterly confusing junk no one understands or cares about.

A very closely related problem is user frustration. With WordPress we’re trying to make publishing to the web as effortless as humanly possible, and one part of this is taking care of a thousand little details that really shouldn’t ever cross your mind — if we’re doing our job right. One common reason for the proliferation of options in open source software is that (news flash) people often disagree about how things should be done, often violently and vocally in threads that can drag on for weeks on development mailing lists. (It is frustrating for many people that these option flame wars draw more discussion than useful topics or questions.) Few like fighting about things, and project leaders pull the proverbial car to the side of the road and declare “Screw it! We’ll do both!” To satisfy a handful of developers a burden is put on countless users.

I try to build everything imagining I have a million users. (Someday!) Small things add up — if there is an option in the interface that people have to think about for only 2 seconds (which is probably low) across a million users that’s 23 days (555 hours) of time lost to the world! (Call centers track efficiency per second because of similar constraints. Small things add up.)

Alex’s hidden options don’t trigger either of these by definition. However there is a third hidden cost: as the number of options increases it becomes difficult (or even impossible) to test for all possible combinations of how the options may interact in different enviroments. This also makes support a real bear. Costs go up, bugs increase.

This is why we say no by default to pretty much every suggested option, and we do our best to remove the ones that have built up over the years. (I just axed a whole panel earlier tonight.)

All that said, hard-core developers often need flexibility in the system to expand WordPress to things we’ve never even imagined, and that’s where our plugin system comes in. While we often say no to new options, we rarely ever shoot down a suggested extension to our plugin API. The beauty of this is it allows for near-infinite flexibility in how you interact with the program (there are some amazing plugins out there) while still keeping the core light, clean, stable, and fast. It also makes support relatively painless: “Does it work when you deactivate the plugin?” When someone says they want to do X and it should be core because it can’t be a plugin, 9 times out of 10 I see that as a plugin API bug, not a core bug.

In summation: Don’t waste your users’ time like I just wasted yours with this essay and be mindful of hidden costs. If I had a few extra hours I would edit and cut most of it out. (Good thing I don’t have a million readers.)

WP.com in Red Herring

Just landed in Houston, it’s chilly here. The opening up of WordPress.com got a nice write-up in Red Herring earlier today. Just to clarify two things from the article quickly: I’m working on WP.com with Andy, Donncha, and Ryan and I do think our distributed database architecture (which I’ll write more about later, it’s nothing too fancy) will help us scale cheaply but I’m also a strong believer in big things from small teams, much in the spirit of 37signals.