Deleting the MT-powered blog

Months ago, I started a blog about interesting advertisements powered by Movable Type. During the installation and usage process, I got some knowledge about Movable Type, but the fact is that I’m still not quite familiar with it. Besides, the chosen topic is not quite related to my daily life. So now I’m stopping and deleting the blog.

Movable Type is a great blogging platform, and the team has been inventing many techniques and concepts, but the problem is that it’s defeated by WordPress because it’s not as simple and WordPress now has much more plugins.

The only advantage of using MT is that you don’t need to worry about the server load (digg effect, for example), but this is not a problem for us “little” bloggers. After several weeks, I even didn’t remember the url of the administration area.

I may start another blog, powered by WordPress, of course :)

Showing Post Title in Neighbor Post Preview

A few days back, a friend asked me whether the neighbor post preview plugin can be customized to show the post title in preview.

Yes, that’s a wonderful idea. Many WordPress users just use “next post” or “previous post” as the navigation link text instead of the post title. This can save much space and readers can more easily focus on the title of current post (example page). If you noticed, Live Spaces are using left/right arrow icons as the link text.

So I implemented this idea into my plugin. By doing this, it becomes more useful for those people who didn’t show the post titles in the link text.

Post title in preview

Thanks, Penelope, for this great idea.

Go to the plugin homepage for download. When activated, go to the options page for customization (http://yourdomain/wp-admin/options-general.php?page=neighbor-post-preview.php).

WordPress Neighbor Post Preview Plugin

I assume you’re reading this post on its own page (i.e. the permalink). If you’re on the front page, or in an RSS reader, please go to its own page.

Above the title of this post, there is the previous/next post navigation bar. Now hover your mouse on the previous post link, but don’t click :) . Did you see the little bubble showing the excerpt of the previous post? That’s it!

Sometimes title is not enough for visitors to determine whether the post is worth reading. With an excerpt, more information is provided. Some posts with great titles are worthless, while some great stories are under unromantic titles.

I just made the plugin Neighbor Post Preview to do this thing. Visit its page for download and installation instructions.

Thanks to the great JavaScript libraries – Prototype and Prototip.

Hope you enjoy this plugin and I welcome all feedbacks and suggestions.

Fighting WordPress Spams

Of course the most popular plugin for protecting WordPress blogs from spamming is Akismet. Yes it is simple to use, famous, and easy to get.

But in my opinion, if you’re running an unknown blog like mine, you should discard Akismet and choose a more clever one. Akismet blocks non-spam comments now and again, and it’s difficult to rescue them from within the thousands of spams. Some day you will suddenly find a regular comment by your friend in the spams and realize that. It’s the same situation when using Spam Karma or Bad Behavior. They all block regular comments by some probability.

So stay away with the plugins which recognize spams by using machines’ intelligence. I need a plugin that will block all spam bots but will never block a human being.

Usually, the spam bots are not clever enough to emulate a browser (except the human spammers, of course). So why not use some simple JavaScript to confirm the commenter is not a machine?

I first tried WordPress Hashcash. It blocks all bots and never blocks a human. But it needs a database table to function right. I don’t like this.

Then I found bcSpamBlock, which seems an ideal solution for me:

  1. It ensures only comments by human pass through the validation.
  2. It doesn’t need a database table.
  3. It rejects the spam in the “preprocess_comment” filter, which means the spam won’t be saved to the database, making the database always clean. Too many comment_ID’s we’ve wasted on spams! (Yes I’m an idealist :) )

There are some human spams which will bypass the plugin but I have the time to delete them.

Wait, still there are trackback spams! bcSpamBlock does have a simple way to check trackbacks, but I disabled this feature and used the Simple Trackback Validation plugin. The ideas to validate trackbacks are identical, but the latter is more reliable.

So the final solution becomes bcSpamBlock + Simple Trackback Validation.

When bcSpamBlock is famous enough, there must be a way for bots to analyze the keys and simulate a human (I’ll try this). But for now it’s enough for me.

Google Analytics with WordPress – Exclude Your Own Visits

When I started to use Google Analytics last year, I was in a big LAN. To exclude my own traffic from Google Analytics, I created a filter to exclude a small range of IP addresses. Though it may wrongly filter out some visits of people in the same LAN, it’s tolerable.

Today I’m connected to the Internet by some DSL service of an ISP and the IP address changes from time to time, not limited in a C-class range. So I can no longer exclude my visits by simply creating a filter of IP address.

I searched the help system of Google Analytics, and got a method of excluding by cookie.

Yes, it’s great. But still it’s not convenient to set the cookie because cookies will expire one day or you may clear them by hand.

I was led to the wrong way since the beginning. Since we’re using Google Analytics on such a specific system – WordPress, we should discard the idea of excluding by IP and consider excluding by user.

Then I found some Google Analytics plugins for WordPress. For example, Ultimate GA. It provides an option of not adding analytics code to the page when it’s requested by a logged on user. And of course a lot of other great features.

I don’t want to use a plugin to slow down my WordPress for such a small requirement. Just surround your analytics code (usually in footer.php of current theme) with an “if” statement:

<?php if (!$user_ID) { ?>
...your Google Analytics code...
<?php } ?>

and it’s done.