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. :)


Missed the news last week or so, but Twitter added oEmbed provider support to their API. While previous methods have existed to easily post tweets (such as Blackbird Pie), oEmbed is built into the WordPress core.

However, since Twitter didn’t implement oEmbed discovery, and WP has discovery off by default anyway, you have to resort to a small bit of code to make it work. Here’s that bit of code:

function twitter_oembed($a) {
	$a['#http(s)?://(www\.)?*#i'] = array( '{format}', true);
	return $a;

Here’s what happens when you put that code in a plugin (for example) and just paste a twitter URL into a post:

It handles RT’s pretty neatly, I think. :)

This may make it into WordPress by default in the next version. Too bad they came out with it too late for inclusion in WordPress 3.3.

notepadJust bear with me on this one, OK? Content is often the key element for many online business owners, that we know. And it’s not hard to see why because it’s, well … difficult (to say the least) to attract any traffic if you don’t have anything interesting on your site … perhaps even impossible. This makes writing (as an activity) an essential part of every online entrepreneur’s existence.

For quite some time now I’ve been mentioning one specific writing/blogging advice I got from somewhere, can’t remember where, unfortunately. Anyway, the advice is to write two separate drafts of one post.

Here’s how it works. You write the first draft, from top to bottom, and then immediately afterwards you start over – you write the second draft without looking at the first one. You simply try to come up with the complete post for the second time.

And it’s not about reproducing the initial draft. It’s about writing the second one in whatever way you find suitable. You can write it by following the same thought process and reaching the same conclusions, but you don’t have to. If a new and interesting idea strikes your mind then by all means put it on the screen.

What’s the point?

At first, this approach seems like two times the work, and that you end up with two articles on the same idea looking almost exactly alike. Only this is not the case…

First of all, it’s not two times the work. More like a 1.5 times the work. Chances are that you’ll get the second draft done much quicker than the first one. You already have the mindset, the information, and a precise plan in your head as for what path you want to take with the post. This will likely make you write faster.

Secondly, the drafts will be far from looking exactly alike. The second draft will be at least slightly better if not significantly better. Because now you have the right mindset, you can write more smoothly and make the whole story more reader-friendly. The second draft will seem much more natural – as if you were talking to a friend, not writing an emotionless article. Which brings me to my main point…

The ultimate benefit

By using this technique you simply end up with this mysterious “quality content” that’s so important for every blogger and online business owner.

I’m not implying that without using it you can’t end up with equally good piece, but from my experience, it’s a lot harder to write something you’re truly satisfied with at the first attempt.

Of course, this technique takes time, and it seems counterproductive. You may be thinking that the time is better spent on writing something completely different. But consider just this one thing: would you rather write one truly valuable and enticing article, or two that are good but not quite at the “great content” level?

I’m going to leave you with this question to answer on your own.

One more thing. Maybe you have some pieces of “strange” writing advice that are similar to this one? Feel free to share your thoughts in the comments.

Related Posts:

Be More Productive by Writing TWO Versions of the Same Article! – Wait, What?! |