Bye, bye Blogger. Howdy WordPress

Finally moved my blog to WordPress from Blogger. I also moved it to a different URL as well. Move was as smooth as it could get. I wasn’t sure whether I should make the move. I didn’t want any Google juice to be lost or give my readers 404s. In my old setup I was using Feedburner to serve my feeds and Blogger to serve my blog. Now WordPress serves the blog and Feedburner still serves the feeds. Here you have the steps.

  1. Install WordPress (I used 2.6.3)
  2. Import the blog posts and comments from Blogger. Go to Manage -> Import in WordPress and follow the instructions there.
  3. Set the authors properly.
  4. Download and install the WordPress plugin wp-maintain-blogger-permalinks-1.0.zip. (Do not forget to enable the plugin as well)
  5. Under Manage > Maintain Blogger Permalinks click the button that says Maintain Blogger Permalinks.
  6. You can disable (or even delete) the wp-maintain-blogger-permalinks plugin.
  7. Go to Options > Permalinks, select Custom, and enter the following:
    /%year%/%monthnum%/%postname%.html

…and you are done 🙂 .
Hope this helps someone who wants to move to WordPress form blogger.

Ping Bloglines – Poll-n-Ping! exclusive

Bloglines is the latest service to be added to the list of services Poll-n-Ping! can ping. None of the multiple ping services that are out there has the ability to ping Bloglines. This brings the total number of services Poll-n-Ping! support to 20.

Some multiple blog ping services (e.g. Pingoat)  have ping servers that are no longer existant. We at Poll-n-Ping! continuousy monitor the upstream ping services to ensure that they are live. We are also believe in being transparent, hence provide you will the result of each ping we make.

We are constantly trying to increase the number of services we ping. Do not forget to check your Poll-n-Ping! account regularly for the latest additions. If you do not already have a Poll-n-Ping!, you are not exploiting the maximum potential of your blog. Grab your self a free Poll-n-Ping! account without further dalay.

Ping more search engines than with Ping-o-Matic

Now you can ping more blog search engines at once than it was possible with Ping-o-Matic. Poll-n-Ping! added 3 more services today, bringing the number of services that will be pinged to 18 whil Ping-o-Matic only supports 16 services.

Poll-n-Ping! is the latest pinging service. Poll-n-Ping! is morethan just a pinging service, it monitors (polls) your blog for changes. Also provides notification, should you blog go down for some reason. All this comes for free, the best price ever.

Go grab your Poll-n-Ping! account now, you can forget about pinging and concentrate on blogging. Poll-n-Ping will take care of pinging blog search services.

Poll-n-Ping!, automagically ping 15+ services

Poll-n-Ping! added 8 more services today to the list of services that will be automatically pinged, bringing the number to 15. Register for a Poll-n-Ping! account, and put your blog details today and never bother about manually pinging when there are new posts in your blog; Poll-n-Ping! will take care of it all.

The number of services that Poll-n-Ping! supports will increase further in the near future. Don’t forget to create a Poll-n-Ping! account.

Poll-n-Ping, coz u r busy blogging

I would like to introduce a brand new service. It is a automated blog search directory pinging service named Poll-n-Ping. It is different from Ping-o-matic and similar services, because Poll-n-Ping monitors the blog (actually the feed) for changes and when it detects changes it will automatically ping the blog search directories.

You can checkout the service at http://www.mohanjith.net/pnp. All this comes free of charge, but donations are always welcome. Right now there is no limit on the number of blogs that can be monitored by a single user. If you want your blog to be submitted to all the blog search directories that we add support from time to time, you will have to visit Poll-n-Ping regularly.

Soon I plan to add alert service Poll-n-Ping, the subscribed users can receive notification mails or IM when content changes, blog goes offline, and/or blog comes online. However this will be a paid service unless I receive enough donations to support the hosting.

Poll-n-Ping has Turbogears under the hood :-).

Hope you will find the Poll-n-Ping service useful.

Blogger 502 errors

Few minutes ago this same blog, hosted on Blogger started giving 502 Server Error (for more than 15 minutes). I was frustrated and even thought of hosting my blog on one of my servers. I don’t know what caused the issue, but one thing I know this is not the first time and I was not alone; Even http://xooglers.blogspot.com/ was down (giving 502 errors). See http://www.flickr.com/photos/seeminglee/2050618571/in/set-72157603261415176/ for another instance where this issue shot up.

Googling for a cause landed fruitless, my likely guess is blogger servers were overloaded. Hope this doesn’t happen again.

Automagically ping blog search engines

I wanted to automatically ping Technorati, Icerocket, and Google Blog Search, that means with no intervention the blog search engines should be pinged. I was alright with a delay of 15 minutes.

So I went about exploiting the XML-RPC services provided by the blog search engines. I came up with this python script. I set up a cron job to invoke the script every 15 minutes. See bellow for the source.

#!/usr/bin/python

import xmlrpclib
import urllib2
import os

from hashlib import md5

feed_url = '[Yorur feed url]'
blog_url = '[Your blog url]'
blog_name = '[Your blog name]'
hash_file_path = os.path.expanduser("~/.blogger/")

def main():
req = urllib2.Request(feed_url)
response = urllib2.urlopen(req)
feed = response.read()
hash_file_name = hash_file_path + md5(blog_url).hexdigest()

if os.path.exists(hash_file_name):
hash_file = open(hash_file_name, "r+")
last_digest = hash_file.read(os.path.getsize(hash_file_name))
else:
hash_file = open(hash_file_name, "w")
last_digest = ''

curr_digest = md5(feed).hexdigest()

if curr_digest != last_digest:
ping = Ping(blog_name, blog_url)
responses = ping.ping_all(['icerocket','technorati','google'])
hash_file.write(curr_digest)

hash_file.close()

class Ping:
def __init__(self, blog_name, blog_url):
self.blog_name = blog_name
self.blog_url = blog_url

def ping_all(self, down_stream_services):
responses = []

for down_stream_service in down_stream_services:
method = eval('self._' + down_stream_service)
responses.append(method.__call__())

return responses

def _icerocket(self):
server = xmlrpclib.ServerProxy('http://rpc.icerocket.com:10080')
response = server.ping(self.blog_name, self.blog_url)
# print "Icerocket response : " + str(response)
return response

def _technorati(self):
server = xmlrpclib.ServerProxy('http://rpc.technorati.com/rpc/ping')
response = server.weblogUpdates.ping(self.blog_name, self.blog_url)
# print "Technorati response : " + str(response)
return response

def _google(self):
server = xmlrpclib.ServerProxy('http://blogsearch.google.com/ping/RPC2')
response = server.weblogUpdates.ping(self.blog_name, self.blog_url)
# print "Google blog search response : " + str(response)
return response

main()

When ever the script is invoked it will get the post feed content, and create a md5 hash of it and then compare the hash against the last known hash, if they differ ping the given list of service.

This is very convenient if you have someplace to run the cron job. Even your own machine is sufficient if you can keep your machine on for at least 15 minutes after the blog post is made.

To run the script you need to python 2.4 to later and the python package hashlib. Hope you will find this useful.

Adding social bookmarking links to blogger

I recently wanted to add social bookmarking links to all of my blog posts. As you might notice my blog is hosted on blogger, only way I could do that is by editing the template. I thought I would share how to get about editing the template such that you add social bookmarking links which will automatically add the post permalink and the title if possible.

To edit the template, Sign into your blogger.com account and goto Template -> Edit HTML and then select Expand Widget Templates. Search for <data:post.body/>, just after <data:post.body/><div style="clear: both;"> <!-- clear for photos floats --> insert the following code.

<!-- Start of social bookmarks -->
<div class='service-links'>
<div class='service-label'>Bookmark this post with: </div>
<ul class='links'>
<li class='service_links_digg'>
<a class='service_links_digg' expr:href='"http://digg.com/submit?phase=2&amp;url=" + data:post.url + "&amp;title=" + data:post.title' rel='nofollow' title='Digg this post on digg.com.'>
<img alt='Digg' src='http://www.mohanjith.net/images/service_links/digg.png'/>
</a>
</li>
<li class='service_links_stumbleupon'>
<a class='service_links_stumbleupon' expr:href='"http://www.stumbleupon.com/submit?url=" + data:post.url + "&amp;title=" + data:post.title' rel='nofollow' title='Bookmark this post on StumbleUpon.'>
<img alt='StumbleUpon' src='http://www.mohanjith.net/images/service_links/stumbleupon.png'/>
</a>
</li>
<li class='service_links_delicious'>
<a class='service_links_delicious' expr:href='"http://del.icio.us/post?url=" + data:post.url + "&amp;title=" + data:post.title' rel='nofollow' title='Bookmark this post on del.icio.us.'>
<img alt='Delicious' src='http://www.mohanjith.net/images/service_links/delicious.png'/>
</a>
</li>
<li class='service_links_reddit'>
<a class='service_links_reddit' expr:href='"http://reddit.com/submit?url=" + data:post.url + "&amp;title=" + data:post.title' rel='nofollow' title='Submit this post on reddit.com.'>
<img alt='Reddit' src='http://www.mohanjith.net/images/service_links/reddit.png'/>
</a>
</li>
<li class='service_links_newsvine'>
<a class='service_links_newsvine' expr:href='"http://www.newsvine.com/_tools/seed&amp;save?u=" + data:post.url + "&amp;h=" + data:post.title' rel='nofollow' title='Submit this post on newsvine.com.'>
<img alt='Newsvine' src='http://www.mohanjith.net/images/service_links/newsvine.png'/>
</a>
</li>
<li class='service_links_facebook'>
<a class='service_links_facebook' expr:href='"http://www.facebook.com/sharer.php?u=" + data:post.url + "&amp;t=" + data:post.title' rel='nofollow' title='Share on Facebook.'>
<img alt='Facebook' src='http://www.mohanjith.net/images/service_links/facebook.png'/>
</a>
</li>
<li class='service_links_google'>
<a class='service_links_google' expr:href='"http://www.google.com/bookmarks/mark?op=add&amp;bkmk=" + data:post.url + "&amp;title=" + data:post.title' rel='nofollow' title='Bookmark this post on Google.'>
<img alt='Google' src='http://www.mohanjith.net/images/service_links/google.png'/>
</a>
</li>
<li class='service_links_yahoo'>
<a class='service_links_yahoo' expr:href='"http://myweb2.search.yahoo.com/myresults/bookmarklet?u=" + data:post.url + "&amp;t=" + data:post.title' rel='nofollow' title='Bookmark this post on Yahoo.'>
<img alt='Yahoo' src='http://www.mohanjith.net/images/service_links/yahoo.png'/>
</a>
</li>
<li class='last service_links_technorati'>
<a class='service_links_technorati' expr:href='"http://technorati.com/cosmos/search.html?url="+data:post.url' rel='nofollow' title='Search Technorati for links to this post.'>
<img alt='Technorati' src='http://www.mohanjith.net/images/service_links/technorati.png'/>
</a>
</li>
</ul>
</div>
<!-- End of social bookmarks -->[/sourcecode]
Add the following code before <code>]]></b:skin></code>.
[sourcecode language='css']/** Service links style **/
.service-links {
padding-top: 3px;
}
.service-links ul.links {
margin:0pt; padding:0pt;
}
.service-links ul.links li {
display:inline;
list-style-type:none;
padding: 0pt 0px;
background: none;
}
.service-links ul.links li img {
border: none;
padding: 3px;
}
.service-links ul.links li a {
border: none;
text-decoration: none;
}


Then save the template. Adding social bookmarking links and submitting your posts to social bookmarking networks would improve the visibility of your blog and help drive traffic to your blog.