After moving my mail en calendar to the cloud I decided to also to stop hosting my own blog. I've been using Pebble for well over 5 years and have mostly been pretty happy with it. Why?
- Running you own does consume some maintenance time (do upgrades, etc). Especially re-doing the tweaks to templates etc became a hassle.
- I had occasional problems doing posts (typed in a full post, hit the button and ooops... post gone. May well be caused by local set up but even in that case it's even better to move it out).
- It blocked me from doing major OS updates since I wanted to prevent downtime (and I finally want to upgrade my Mac Mini to Leopard).
- It's dependent on the availability of my server and network connection. Both are pretty reliable but still...
- Using Cloud services is this years hype ;-)
Getting a blog setup with Google Blogger is easy, but of course you also want to migrate the old blog posts and not break the links from other sources to you blog. I digged around hoping to find an easy way to migrate the blog posts to Google Blogger and somehow redirects visitors from the old to the new location... no luck. Google Blogger does have an import option, but it only imports it's own exports and the only tool I found migrates from Wordpress to Google Blogger. So I had to scratch my own itch and created a simple command line utility that:
- Reads the original Pebble posts and posts them to Blogger. This includes comments but due to limitations in the Google Blogger API the details of the original poster of the comment had to be included in the comment text and I show up as the poster. (Google does not allow to specify another author as poster of a comment though the API to prevent spam.)
- Validates links in blogs posts and attempts to fix them where possible (for example links between blog posts that would break when moving to new location). If it can't fix a link, it reports this in the log file.
- Generate a redirects file that you can include in your Apache httpd.conf to redirect visitors that access the old location to the new location of a post.
You can find the utility here: Blogger Importer. Feel free to use or extend it. I did the trick for me, but maybe you need some additional features. The current version only works for Pebble but it is set up such that you can easily plug in other sources and migrate these to Blogger.
Another point I have to fix are the Google Maps integrations that I did for showing Skeeler routes. For Pebble I created a 'decorator' plugin that would do some tweaks to the blog post contents which caused it to show the skeeler route on a Google Map. This is now broken and I have to find a solution for that (worst case I'd have to 'hardcode' it into the blog posts themselves, would be nice if it's a more elegant solution though).
As a heads up...
I'm migrating my blog from self-hosted Pebble to Google Blogger. I'll be doing this in the coming days so you may want to update your feed settings:
New blog location: http://blog.vermaas.net
New feed: http://blog.vermaas.net/feeds/posts/default
Since version 8 JAlbum supports RSS feeds for the generated webalbums. Unfortunately, the feeds are not accepted by standard RSS readers like Google Reader and NetNewsWire. Bummer! The problems are caused by:
- the fact that the generated feeds contains relative URLS (and RSS requires absolute URLs)
- the way JAlbum feeds try to include feeds of subfolders. The goal of including the items of subfolders in the parent RSS feed is to make it possible to subscribe to 1 feed and also get items in subolders included (instead of having to subscribe to each subfolder feed separately). JAlbum uses a proprietary JAlbum tag (<jalbum:link..>)to include sub folder RSS feeds and this tag is nog recognized by regular RSS feeds
You can try this out by running the generated feeds through feedvalidator.org. As an example, here's the result of running an original JAlbum generated RSS feed through feedvaidator.org. In addition to the reported erros, the <jalbum:link..> tags are nog recognized by regular RSS readers.
Luckily JAlbum is pretty open and you can easily customized skins and also the template that generates the album.rss feed. The issue with the relative URLs could easily be fixed by adding a user defined variable in JAlbum and some minor adjustments to the album.rss template.
The issue with the inclusion of images from subfolders required a bit more work. It appears that there is no (standard) way to have an RSS feed include another RSS feed. So I changed the albums.rss template such that items of subfolder are also added to the album.rss feed file of the parent folder. No real inclusion and it feels a bit redundant to include items in the RSS feed of the folder itself and in the feeds of all parent folders, but at least the feed is now working in regular RSS readers. Here's an example of a feed.
While implementing the new template file I did run into a few problems that I could not explain, but did find a workaround for. First, it was not possible to use a javax.xml.transform.Transformer, but using org.w3c.dom.ls.LSSerializer it worked fine. Second, some of the standard JAlbum variable sdid not always have the same Java type and sometimes were simply not set when trying to access them from the album.rss tempate. So I had to test for this, try to convert to required type where possible and if all failed, the picture is ignored and not included in the RSS feed. The template now runs successfully on my webalbum picture collection (4500 pictures).
Also want to use this?
- Make a backup of the Jalbum/system/album.rss file. This is the original template file.
- Download the updated album.rss file and copy it to Jalbum/system directory
- Add a user variable 'webroot' to your JAlbum project. Go to Settings/Advanced/User Variables. The value of this variable should be the root of the webalbum on your webserver (for example http://my.domain/webalbum)
- (Optionally) Add a user variable rssItemsNotOlderThanDays to your JAlbum project. If set, then only pictures which is not older than 'rssItemsNotOlderThanDays' days are included in the RSS feed. If not set, all pictures found are included and that may lead to rather big feed files.
- --ADDED--
(Optionally) Add a user variable topAlbumTitle to your JAlbum project. If set, then the value of the variable will be used as the title for the top level directory (if not set, the title of the top level directory is empty).
-- EA ADDED--
Note: I've been using this with JAlbum version 8.1.5. I suspect that it will work with all 8.x versions, but I'm not sure.
Update:
Based on suggestions in the JAlbum forum I made some minor changes to the template:
- JAlbum variable mediarssDate is used a pubDate (instead of picture date, this was already the case in the original template)
- Added copyright notices
- Corrected the way the guid is determined
Earlier this year (see here and here) I made an integration between the JAlbum Chameleon skin and Google Maps. This would show an in-page Google Map for pictures that have GPS coordinates. Works really nice. Recently I wanted to create an RSS feed of my webalbums and noticed that the latest JAlbum version did support this. Nice, so I decided to upgrade JAlbum to version 8.1 and as part of that also had to tweak my enhancements to the Chameleon skin a bit.
If you're interested... you need to copy the following two files to the JAlbum/skins/Chameleon directory:
You also have to set the following two user variables (Settings/Advanced/User Variables):
# The root where the webalbum will be hosted
webroot=/webalbums/gero
# The location of the HTML page that displays the map and
# has the Google Maps code in it
# This location is bound to the Google Maps API key.
googlemapIframe=/webalbums/googlemap.html
For a full description on what how to use the Google Maps - JAlbum integration refer to the earlier posts (here and here).
Now there was one dissapointment... the feed generated by JAlbum cannot be handled by Google Reader and NetNewsWire. Will try and tweak the JAlbum template that generates the feed such that it works correct and post the results here.
Labels: googlemaps, jalbum, webalbum





