Online BackupToday it’s time for another edition of this small series of mine. I know that WordPress plugins are a topic widely discussed around the internet, and that there are myriads of posts on “top 10 plugins for this” and “top 10 themes for that.”

However, this series is not about showing you the next fancy thing … it’s about showing you something truly worth installing. The fact is, you can’t install every plugin out there, and hope that your blog will still be working just fine. Unfortunately, plugins slow things down. The more you have the slower your site gets. That’s why I always advise to use ONLY the essential ones.

What does it all have to do with online business? – Asks you. Well, if your site is running on WordPress, like I’ve been advising since forever, then this series is surely something you should keep an eye on. The plugins I’m presenting might come handy to all kinds of blogs, but they are especially handy to online business designers.

To be honest, today we’re going to discuss a very important matter for ANYONE who has a website. Yes, it’s that important.

The topic is backing up your site.

There’s nothing more angering than sitting in front of your computer knowing that you have just lost all of your data due to a hard disk malfunction. Trust me, I know.

Same thing goes for our websites. If, for whatever reason, we lose the data (posts, pages, all information) published on our sites then in some extreme cases it can even mean the end of our business. Think about it like if you were a bakery owner and the building you were renting would burn down…

Of course, we can’t truly protect ourselves against those kinds of things. But we can get some insurance. Such an insurance – in the online world – is a good backup policy.

WordPress users have it easy. They can download a plugin called Online Backup for WordPress free of charge.

This is a plugin I’ve been using for a while, and it works like a charm.

What it’s for

This plugin allows you to create a full backup of your WordPress site, and then have it sent to an email address or made downloadable.

By full backup I mean both the database and the filesystem.

Where you can get it

First of all, feel free to check out the site of the company that has created this plugin – Backup Technology – here you can find some basic facts about the plugin.

Of course, there’s also the plugin site at –

However, the easiest way of getting the plugin is to simply go to your WP admin panel (log in as the admin), and navigate to Plugins > Add New. Input “Online Backup for WordPress” into the field and the first result that appears is what you want.


You don’t have to do anything more than simply installing the plugin like you would install every other WordPress plugin, then activate it, and you’re good to go.

How to use it

When you have the plugin installed just go to Tools > Online Backup.

Once you’re there you can simply navigate to the “Backup” tab, and perform an initial backup.

There are 3 backup types available (image below).

The first one sends the backup to the shared storage at Backup Technology which you can sign up for. I didn’t because I’m using the plugin to create a backup, and then download it to my computer.

Choosing the third option might not be the best idea because backups can be rather large. Sending a 60MB file via email takes time. It’s much faster to simply download it.

Sexy features

The “Backup” tab you already know, so let’s start from the first tab on the right – “Online Backup Settings.”

This is where you can input your username and password for the storage space at Backup Technology. Again, you don’t have to register an account if you don’t want to. The plugin is fully functional without an account.

The “General Settings” tab is worth looking into because it enables you to encrypt all your backups. The plugin works with some popular encryption mechanisms. The only thing you have to do is input an encryption key.

Encryption is a safety mechanism. It ensures that only someone who knows the key can access the backups.

There are also other setting in this tab, make sure to read through them, but you don’t need to change anything. The plugin is set up optimally right from the get go.

The “Schedule” tab enables you to create a schedule for your backups (duh!). The backups can be run in the background automatically and then made available for download or sent to an email.

The “Decrypt Backup” tab is where you can decrypt your encrypted backups. All you have to do is select the backup file and input your encryption key.

The “Activity Log” tab shows the summary of your previous activity. It’s where you can access all previous backups if you haven’t deleted them.

What I like about Online Backup for WordPress

The simple fact that it works. It sounds obvious, but hear me out. I’ve been searching for a quality backup plugin in the past, and even though there were many possibilities there was always something not exactly right about them.

Some plugins were creating corrupted archive files, others didn’t include everything, or couldn’t create an exact image of the database. I mean, these are things you don’t even notice until you have to actually use the backups.

That’s why I decided to do all my backups by hand because that way I was sure that I had everything I needed to have. However, this has changed when I stumbled upon Online Backup for WordPress. It. Simply. Works.

What do you think about this plugin? Did you experience any problems with it? Feel free to let me know.

Related Posts:

Sexiest WordPress Plugins: Online Backup for WordPress |

fpm contest badgeOr does it?

Anyway, I’m delighted to say that I’ve made it to the final round of Danny Iny’s marketing competition – “Marketing that Works.”

The competition is all about innovative marketing ideas, and sharing them with others. Every participant had to come up with such an idea, and then turn it into a guest post.

I can’t give you too much details about my post right now, but let me just tell you that it’s about upselling. Not the general idea, of course, but a single specific aspect of it.

If you’re not that familiar with upselling feel free to check out some of my other posts:

How they’ll pick the winner

Basically, they won’t … you decide. Everything counts: tweets, likes, shares, +1’s, comments, and such. So when the time comes I’ll let you know and shoot you a link to the post. :)

By the way, here’s Danny’s blog where everything’s happening: Firepole Marketing.

… And now, something entirely different …

Engagement from Scratch

Quite recently, Danny launched his new book “Engagement from Scratch!” It’s basically a collaborative work of many authors. The likes of: C.C. Chapman, Corbett Barr, Brian Clark, Guy Kawasaki, and others.

What is it about? As the subtitle says: “How super-community builders create a loyal audience and how you can do the same!

Engagement from Scratch

I had the privilege to get an early excerpt, and write a short review. This review has ended up in the book itself; nice(!) [image above]. Here’s what I had to say:

What’s interesting about this particular publication is that the individual stories of all the contributing authors tie together and create one actionable and inspirational resource. When you see a book by one single author then there’s only one approach that they give to the reader – the “good approach that has worked for me – the author.”

But here, the situation is different. Different people, with different stories, so in the end you can see that each person has a unique approach to success (and all of them good), and in the end it’s for you to decide what path you want to take yourself, or how to combine different advice from different people into your own plan.

If you want to get the book feel free to check this Amazon link: Engagement from Scratch!: How Super-Community Builders Create a Loyal Audience and How You Can Do the Same!

That’s it for today. Have a nice Sunday!

Related Posts:

Guess What? My Marketing Works! |

This isn’t just a piece of hype to get you to click through to the post. There really is one truly effective way of improving your writing.

But why would you even bother? Well, writing is one of the most important skills an online business designer can have. No matter what you’re publishing on your website you need quality content. Interesting content is what makes your readers to keep coming back constantly.

Of course, there are many things you can do to grow as a writer. Some of them are free, some require investment, some are boring, and others are fun. This one technique I have for you today is both free and fun.

No joke. Just suspend your disbelief, and hop over to my guest post at to find out what I’m on about:

1 Quick & Simple Way To Improve Your Writing

Don’t forget to come back and tell me what you think. Does the whole idea sound reasonable?

Related Posts:

Improving Your Writing Significantly in 1 Simple Step |

WordPress 3.3.1 is now available. This maintenance release fixes 15 issues with WordPress 3.3, as well as a fix for a cross-site scripting vulnerability that affected version 3.3. Thanks to Joshua H., Hoang T., Stefan Zimmerman, Chris K., and the Go Daddy security team for responsibly disclosing the bug to our security team.

Download 3.3.1 or visit Dashboard → Updates in your site admin.

Let’s tackle the final two months of 2011 together and publish just one regret post instead of the usual two. I don’t have any good explanation why I’m doing this other than I simply forgot about the series.

In essence, the blogging world or the online business world is mostly focused around WordPress and its various applications. However, WordPress is not the only online platform to choose from.

There are some alternatives, and I talked about some of them in one of my previous posts (Hate WordPress? Here are 13 Alternatives), but there’s at least one more possibility that deserves a separate coverage – Tumblr.


Tumblr is a blogging platform, just like WordPress, only nothing like it.

Tumblr was originally designed to be a simpler environment than WordPress. The platform is a bit easier to use, but you don’t get as many features, so there are both good and bad sides to it.

In essence, blogs hosted at Tumblr usually propose a more condensed experience with shorter and more entertaining posts. Is it a good alternative for you and your online business? I don’t know, so let’s find out.

Here’s a set of 6 great blog posts from the past months (November and December 2011) which I regret I didn’t come up with myself.

Today’s theme: Tumblr

Alicia Keys: Why I Turned to Tumblr by Christina Warren

A little social proof for starters. If Alicia Keys thinks that Tumblr is just the right choice for her then maybe you should take it into account too. Find out what Alicia had to say about Tumblr.

How I Brought My Blog Back to Life with Tumblr by David Edwards

Apparently Tumblr has a lot of tricks up its sleeve. One of them – as described by David – is that it’s a great tool for bringing a blog back to life if you are lazy. Tune in to get David’s story.

Tumblr vs WordPress by Simon Ward

This is a short post by Simon where he describes some advantages and disadvantages of both platforms by using some easy to read bullet points. In the end, deciding whether you want to give Tumblr a try or not is up to you, but it’s always good to get other people’s point of view.

Tumblr Basics by JD Rucker

This is an explanation of some of Tumblr’s characteristics (like being down most of the time – a big downside to Tumblr) and a quick video tutorial explaining the basics of Tumblr’s interface. Worth to have a look at if you’ve never been to Tumblr.

Tumblogging: WordPress vs. Tumblr by Cameron Chapman

So you like Tumblr, but you’re not convinced to the platform itself? No problem, you can still use WordPress, and set it up in a way so it looks just like Tumblr, and operates in a very similar way too. Find out how to do that.

Bonus: Top 5 Tumblr Themes for Photographers by Catalin Zorzini

I know that it sounds like a niche, but hear me out. Themes for photographers are usually slick and highly focused around presenting short posts properly (often containing just a single picture). This is what Tumblr is essentially about, so the gallery is a good example of Tumblr’s overall feel.

Related Posts:

Regret I Didn’t Come Up with These Myself… November and December 2011 |

online business models

So far in the series we’ve been talking about services and consulting, and products – two most common business models for online entrepreneurs and bloggers. This edition is all about getting some affiliate monies!

OK, not exactly about the “getting” part. But what I want to do is explain some principles by which the model usually works.

If you don’t know what “affiliate” means it’s just a fancy word for earning money as a result of sending a customer towards someone else’s business. Or in other words, when you promote a product that isn’t yours.

The whole idea might not seem that attractive at first, and what you may be thinking is something along the lines of: “If I am the one getting the sale anyway why not simply offer my own product instead?” – this is a common and valid concern.

Yea, why wouldn’t you? Products are great, I agree, but as I was talking in the previous post, there are some downsides to them. Choosing affiliate marketing as a replacement for the product based business model might be a good choice for you if you don’t have the funds to develop your own products.

But let’s take a moment to discuss some advantages and disadvantages first.

Affiliate marketing – pros and cons

There is one main BIG advantage in going for affiliate business model – you don’t have to take care of the product development process.

Most of the time, you don’t have to take care of anything… product development, customer support, product updates, product delivery, payment processing … none of these things are any of your concern.

Your “only” job, as an affiliate, is to get someone to buy the product through your affiliate link. After that you can call it a day.

Another advantage is that your commission is usually a big part of the overall price of the product.

The standard for all kinds of digital products are commissions upwards of 50% of the total price. Many vendors offer 75% commissions, and some even go as far as 90%. So as you can see, in many cases, the product creator earns less money than you – the affiliate.

For physical products there are no standards in terms of commissions. Some vendors offer as little as 2% and some as high as 30%. But still, it’s a lot smaller percentage than for digital products.

That being said, even though the percentage might be smaller, physical products are usually more expensive, so in the end you might earn more promoting an expensive physical product than a cheap digital one.

Continuing with the advantages. There are thousands of products you can promote as an affiliate. Really, the marketplace is very wide, so you can find affiliate products for almost any niche.

See for yourself. If you’re interested in digital products check out sites like: Clickbank, or  PaydotCom. For physical stuff check out Commission Junction, and … Amazon.

Another thing, good affiliate programs also provide their affiliates with various promotional material, like: banners, images, promotional emails, keywords for AdWords, and much more.

Now what everybody has been waiting for … the disadvantages.

First of all, in most cases you don’t get to keep the customer. What I mean is that when you’re selling your own products, for example, you get the customer’s email address, so you can put them on your mailing list and contact them next time you have something interesting to sell. This enables you to make multiple sales from just a single customer acquisition.

There’s rarely such an opportunity with affiliate marketing, at least not at the time of selling. So by default the customer goes to the product owner, and it is the product owner who gets to keep this customer’s contact data.

Technical how-to

Starting with affiliate marketing is rather simple, from a technical standpoint. Every affiliate program provides you with your own unique affiliate links. So all you have to do to earn your money is to get someone to click through your link and buy whatever is on sale.

Of course, the “get someone to buy” part is the most challenging here. In essence, promoting someone else’s product as an affiliate is not much different from promoting your own product.

You still have to convince people to take action and make the purchase, so it won’t necessarily be easier than promoting your own stuff.

You can try implementing all promotional methods you know, there are no rules here. Text links, banners, promotional emails, videos, sales letters, etc.

If you don’t know if affiliate marketing is the right choice for you, consider this one additional idea.

Affiliate marketing is really good at checking the field and making sure that people are interested in a specific type of products. This is the kind of knowledge you can (and should) use when developing your own products.

Here’s what I mean. When you’re planning on creating a product and promoting it in your business you can start by doing a test, and promoting an affiliate product first. Something that is in some way similar to what you have in plan.

After the promotion is done you can look at your results and, to some extent, predict how your own product would perform. If you are satisfied with the results you can go one step forward and start developing that product.

All this testing is to make sure that a situation where you create a product and then find out that no one wants to buy it never happens.

This one thing just might be the biggest value of affiliate marketing. I’m not saying that it is … but it might be. :)

OK, I hope we have this business model covered. Feel free to comment and share your insights. Is there something else I should have mentioned here?

Next parts of the series are coming soon so don’t forget to come back to get them. Feel free to subscribe to my RSS feed or email updates to get the posts delivered to you the minute they are created.

Related Posts:

Online Business Models Explained: Affiliate Income |

Still getting emails about this one, so here’s a quick rundown on how to do it.

First, if you were already using a Fan Page, then you are not affected at all and don’t have to do anything. Please stop emailing me and asking for confirmation. Thanks. :)

Now, if you were using your Application’s Wall as your Page (like I was doing and even recommended), then Facebook is killing off the “Wall” of your Application. This is not a big deal, actually, and you can migrate your Fans to a new Page rather easily.

Step One: Create a new Page. Visit this page to do so. Note: You MUST select “Brand or Product”, and in the dropdown you MUST select “App”. This is not optional. You have to do this to migrate your Fans.

Also note that you must make the name of the Page EXACTLY THE SAME as the name of the application. This is important, don’t try to rename your stuff yet.

Step Two: After you’ve created the page, you’ll want to connect it to your site (using SFC, naturally). First, get the ID number of your new Page. You can find this in the URL of the “Edit Page” link on that Facebook Page. Once you have the ID number, put it into the “Facebook Fan Page” field on the SFC Settings screen and save. While you’re on this Edit Page link on Facebook, you can upload your logos, configure it, etc. Note: Do NOT select a new Vanity URL. The migration will migrate your old one if you had one.

Step Three: Configure SFC. If you’re using the Publisher, for example, you may have to click the grant permissions button again to have it get the new access token for the page. You may need to turn on auto-publishing to the page. Stuff like that. For the most part, SFC is pretty good at configuring itself for this, the Fan Box will automagically switch over, etc.

Step Four: Test. Make a new Post and see if it publishes to your Page. Try the Manual Publisher boxes. Verify that it’s working, basically. While you’re at it, you might go and manually publish some of your older posts to the Page, since the migration will not migrate the content on the wall.

Step Five: Migrate. Visit your application’s profile page. If you don’t see the box below, wait a day or two and it will eventually appear:

Use that migrate link and you’ll get a popup box allowing you to select a Page.

WARNING: If you get a popup that says “You don’t have any eligible Facebook Pages to migrate to”, then STOP RIGHT NOW. Do NOT click migrate. You only get one chance at this, if you mess it up then it’s broken forever.

If you have a Page, and it’s a “Brands or Products/App” page, and it has the EXACT same name as your Application, then you will be given a dropdown to select that Page. Otherwise, you’ll get the bad message. Click Cancel in such a case, fix your Page, and then try again. Only when you have the dropdown and have selected your page should you continue.

Step Six: Patience. Once you’ve selected your new Page and clicked Migrate (and remember, you only get one shot at this!), then after a while, a few things will happen:

a) Your Fans of the Application will slowly be migrated to be Fans of the new Page instead.

b) If you had a vanity URL on the Application Page and did not have one on the Fan Page, then the vanity URL will get migrated too.

c) Your Application Wall will disappear forever (this happens instantly) and any links to it will redirect to your Fan Page.

And that’s it. You’re done. Works fine with SFC. The next version of SFC will remove the publishing to Application Pages entirely, as well as the (now misleading) wording.


Without what?!

OK, bear with me. We all know the importance of content. If you have a website, no matter if you’re an online business owner or a blogger, or whatever… you need content. Content is king, remember?

The easiest, and often the best way of getting your hands on some fresh content is writing it yourself. Writing, however, can be a difficult task at some times. Especially when you simply run a word processor and try to put some initial words on the screen.

There’s one specific practice that can help you with that – warming up. Check out my guest post at Problogger to find out what I mean:

Don’t Ever Write Without this Writer’s Warm-up

Finally, what do you think about this whole idea? Is warming up worth the effort? For me, it’s one of the most important steps towards crafting a decent post.

Related Posts:

Don’t Ever Write Without Warm-up |

Facebook is getting rid of Application Profile Pages, and allowing people who are using them to transfer their subscribers to normal Fan Pages. SFC will be changing soon to adapt to this change, but the existing Fan Page support in SFC works fine and can be used right now.

I’ve tested out this migration process on one of my pages, and it works fine. Here’s what you have to do to make it work with SFC if you were not using a Fan Page already (note, if you were using a Fan Page already, then you’re done and must change nothing at all).

1. Create a new Fan Page in the Brands/Product -> App category.

2. Give it the same name as your App (exactly the same, mind you).

3. Set up the new fan page however you like. Take its ID number and put that into SFC, then use the Manual publisher to fill out the wall with some of the older posts (the wall content will NOT be migrated when you do the migration).

4. When you visit your app’s wall, you’ll get the migration message (eventually). You can use this to migrate all the people who have liked your application to having liked the new Fan Page. If you used a vanity URL, this will transfer also *if* you don’t put a vanity URL on the Fan Page.

After you’ve migrated the likes and changed SFC to be publishing to the Page, you can continue on as normal. Nothing else about SFC changes. Since Facebook will be eliminating App Profile Walls entirely in February, I’ll be removing support for them from SFC entirely before then. Expect that change to be in SFC 1.3.

So, I first wrote about this topic on the wp-hackers list back in January 2009, explaining some of the scaling issues involved with having ambiguous rewrite rules and loads of static Pages in WordPress. A year later the same topic came up again in the WPTavern Forums, and later I wrote a blog post about the issue in more detail. That post generated lots of questions and responses.

In August 2011, thanks to highly valuable input from Andy Skelton which gave me a critical insight needed to make it work, and with Jon Cave and Mark Jaquith doing testing (read: breaking my patches over and over again), I was able to create a patch which fixed the problem (note: my final patch was slightly over-complicated, Jon Cave later patched it again to simplify some of the handling). This patch is now in WordPress 3.3.

So I figured I’d write up a quick post explaining the patch, how it works, and the subsequent consequences of it.

Now you have two problems.Quick Summary of the Problem

The original underlying problem is that WordPress relies on a set of rules to determine what type of page you’re looking for, and it uses only the URL itself to do this. Basically, given /some/url/like/this, WordPress has to figure out a) what you’re trying to see and b) how to query for that data from the database. The only information it has to help it do this is called the “rewrite rules”, which is basically a big list of regular expressions that turn the “pretty” URL into variables used for the main WP_Query system.

The user of the WordPress system has direct access to exactly one of these rewrite rules, which is the “Custom Structure” on the Settings->Permalink page. This custom string can be used to change what the “single post” URLs look like.

The problem is that certain custom structures will interfere with existing structures. If you make a custom structure that doesn’t start with something easily identifiable, like a number, then the default rewrite rules wouldn’t be able to cope with it.

To work around this problem, WordPress detected it and uses a flag called “verbose_rewrite_rules”, which triggers everything into changing the list of rules into more verbose ones, making the ambiguous rules into unambiguous ones. It did this by the simple method of making all Pages into static rules.

This works fine, but it doesn’t scale to large numbers of Pages. Once you have about 50-100 static Pages or so, and you’re using an ambiguous custom structure, then the system tends to fall apart. Most of the time, the ruleset grows too large to fit into a single mySQL query, meaning that the rules can no longer be properly saved in the database and must be rebuilt each time. The most obvious effect when this happens is that the number of queries on every page load rises from the below 50 range to 2000+ queries, and the site slows down to snail speed.

The “Fix”

The solution to this problem is deeper than simple optimizations. Remember that I said “WordPress relies on a set of rules to determine what type of page you’re looking for, and it uses only the URL itself to do this”. Well, to fix the problem, we have to give WordPress more input than just the URL. Specifically, we make it able to find out what Pages exist in the database.

When you use an ambiguous custom structure, WordPress 3.3 still detects that, and it still sets the verbose_page_rules flag. However, the flag now doesn’t cause the Pages to be made unambiguous in the rules. Instead, it changes the way the rules work. Specifically, it causes the following to happen:

  1. The Page rules now get put in front of the Post rules, and
  2. The actual matching process can do database queries to determine if the Page exists.

So now what happens is that the Page matching rules are run first, and for an ambiguous case, they’ll indeed match the Page rule. However, for all Page matches, a call to the get_page_by_path function is made, to see if that Page actually exists. If the Page doesn’t exist in the database, then the rule gets skipped even though it matched, and then the Post’s custom structure rules take over and will match the URL.

The Insight

The first patch I made while at WordCamp Montreal used this same approach of calling get_page_by_path, but the problem with it was that get_page_by_path was a rather expensive function to call at the time, especially for long page URLs. It was still better than what existed already, so I submitted the patch anyway, but it was less than ideal.

When I was at WordCamp San Francisco in August, hanging around all these awesome core developers, Andy Skelton commented on it and suggested a different kind of query. His suggestion didn’t actually work out directly, but it did give me the final idea which I implemented in get_page_by_path. Basically, Andy suggested splitting the URL path up into components and then querying for each one. I realized that you could split the path up by components, query for all of them at once, and then do a loop through the URL components in reverse order to determine if the URL referred to a Page that existed in the database or not.

So basically, given a URL like /aaa/bbb/ccc/ddd, get_page_by_path now does this:

SELECT ID, post_name, post_parent FROM $wpdb->posts WHERE post_name IN ('aaa','bbb','ccc','ddd') AND (post_type = 'page' OR post_type = 'attachment')

The results of this are stored in an array of objects using the ID as the array keys (a clever trick Andrew Nacin pointed out to me at the time).

By then looping through that array only once with a foreach, and comparing to the reversed form of the URL (ddd, ccc, bbb, aaa) you can make an algorithm that basically works like this:

foreach(results as res) {
  if (res->post_name = 'ddd') {
    get the parent of res from the results array
     (if it's not in the array, then it can't be the parent of ddd, which is ccc and should be in the array)
    check to make sure parent is 'ccc',
    loop back to get the parent of ccc and repeat the process until you run out of parents

This works because all the Pages in our /aaa/bbb/ccc/ddd hierarchy must be in the resulting array from that one query, if /aaa/bbb/ccc/ddd is a valid page. So you can quickly check, using that indexed ID key, to see if they are all there by working backwards. If they are all there, then you’ll eventually get to parent = zero (which is the root) and the post_name = ‘aaa’. If they’re not there, then the loop exits and you didn’t find the Page because it doesn’t actually exist.

So using this one query, you can check for the existence of a Page any number of levels deep fairly quickly and without lots of expensive database operations.


There are still some drawbacks though.

In theory, you could break this by making lots and lots of Pages, if you also made their hierarchy go hundreds of levels deep and thus make the loop operation take a long time. This seems unlikely to me, or at least way more unlikely than somebody making a mere couple hundreds of Pages. Also, WordPress won’t let you use the same Page name twice on the same level, so you’d really have to try for it to make this take too long.

If you try to make a URL longer than around 900K or so, the query will break. Pretty sure it’d break before that though, and anyway most people can’t remember URLs with the contents of a whole book in them. ;)

This also adds one SQL operation to every single Post page lookup. However, this is still better than having it break and try to run a few thousand queries every time in order to build rewrite rules which it can’t ultimately save. And the SQL being used is relatively fast, since post_name and post_type are both indexed fields.

Basically, for the very few and specific cases that had the problem, the speedup is dramatic and immediate. For the cases that use unambiguous rules, nothing has changed at all.

There’s still some bits that need to be fixed. Some of the code is duplicated in a couple of places and that needs to be merged. The pagename rewrite rule is a bit of a hack to avoid clashing, but it works everywhere even if it does make the regexp purist groan with dismay (for critics of this, please know that I did indeed try to do this using a regexp comment to make the difference instead of the strange and silly expression, but it doesn’t work because the regexp needs to be in a PHP array key).

Anyway, there you have it. I wrote the patch, but at least 5 other core developers contributed ideas and put in the grunt work in testing the result. A lot of brain power from these guys went into what is such a small little thing, really. A bit obscure, but I figured some people might like to read about it. :)