Monthly Archive for October, 2007

Backing up Google Reader subscriptions as OPML, periodically and automatically

A fellow former Bloglines user has asked me whether I found a way to backup Google Reader subscriptions into an OPML file from cron, as we used to do with our Bloglines accounts.

A quick search turned up this, which, from the look of it, in order for it to work requires every feed to be explicitly marked with a tag which is set up as public.

This by itself is rather cumbersome, and you have to remember to do that for every new feed you subscribe to, otherwise you’ll defeat the purpose of making periodic backups in the first place.

Luckily, there is a better solution. There is a nice little module on CPAN, WebService::Google::Reader by gray, which uses an unofficial Google Reader API to do various nifty things with your Google Reader subscription, including OPML export.

This means that after installing the module you can simply put the following command into your crontab (only command itself is shown, see crontab(5) manual page to find out what else you will want to put in there):

env GOOGLE_USERNAME=your-username-typically@gmail.com \
  GOOGLE_PASSWORD=your-user-password \
  perl -MWebService::Google::Reader -e \
  'print WebService::Google::Reader->new(
     username => $ENV{GOOGLE_USERNAME},
     password => $ENV{GOOGLE_PASSWORD})->opml' \
  > /where/to/put/greader.opml

You will have to make the above to be one long line to satisfy crontab syntax, and of course remember to use a real username, password, and the path to the resulting OPML file.

Unfortunately, the most recent version of the module (which is 0.03 at the time of this writing) has a minor bug which prevents the opml() method from working correctly. So you will need to do a little patching.

Before installing the module, edit the source file lib/WebService/Google/Reader/Constants.pm, look for a string subscribtions, and fix the spelling (finding correct spelling is left as an exercise for the reader). Then proceed installing the module as usual.

Hopefully, this step won’t be necessary in a couple of days’ time when a new version of the module is released.

If you are a FreeBSD user like myself, you may choose instead to fetch a skeleton of the port of the module. Unpack it in /usr/ports/www/ and install it as you would any other port.

I intend to add the port to the ports collection as soon as our current ports freeze is over.

Enjoy!

 

 

Patchset 2 for JDK™ 1.6 released

Greg Lewis has released the second patchset (patchset 2) in the JDK™ 1.6 series. See the JDK 1.6.x page for more details.

 

 

Announcing GNOME 2.20.1 for FreeBSD!

Presenting GNOME 2.20.1 and all related works for FreeBSD. The official GNOME 2.20 release notes can be found at http://www.gnome.org/start/2.20/notes/en/ . Beyond that, this update includes the new GIMP 2.4 (courtesy of ahze).The GNOME 2.20 update also includes a huge change in the FreeBSD GNOME hierarchy. We are now using the more standard DATADIR of ${PREFIX}/share rather than ${PREFIX}/share/gnome. The result is that fewer patches and hacks are needed to port GNOME components to FreeBSD. This will mean some user changes may be required, so be sure to read /usr/ports/UPDATING for more details.This release and the things we accomplished in it would not have been possible without mezz's crazy idea to collapse DATADIR, and his persistence to make it happen successfully. Ahze and pav also deserve thanks for their work on porting modules and testing the whole ball of wax on pointyhat (respectively).The FreeBSD GNOME team would also like to thank our various testers and contributors:Yasuda Keisuke Frank Jahnke Pawel Worach Brian Gruber Franz Klammer Yuri Pankov Nick Barkas Cristian KLEIN Tony Maher Scot Hetzel Martin Matuska (mm) Benoit Dejean Martin Wilke (miwi) (And anyone else I may have missed)

 

 

Patchset 7 for JDK™ 1.5 released

Greg Lewis has released the seventh patchset (patchset 7) in the JDK™ 1.5 series. See the JDK 1.5.x page for more details.

 

 

Soekris BIOS upgrade using cu(1) and lsx(1)

Here’s a quick HOWTO for updating a Soekris net4801 BIOS using cu(1) and lsx(1) from comms/lrzsz under FreeBSD.

First, establish contact to the BIOS using something like ‘cu -l /dev/ttyU0 -s 19200′ adjusted to fit the device node and speed used in your setup. Then follow these steps:

  1. Press Ctrl+P to enter the Soekris BIOS monitor
  2. Type download -
  3. Press ~C
  4. Type lsx /path/to/b4801_131.bin

If the XMODEM transfer was successful, continue with the following steps:

  1. Type flashupdate
  2. Type reboot
  3. Press ~. to exit cu(1)

That’s it! The BIOS should now be updated :)