February 2013 Archives

Thu Feb 21 20:06:36 EST 2013

Gnus: Combining RSS feeds into a single webcomic group

In an earlier post, I set up gnus to read some RSS feeds. I wasn't happy with the dependency on a web service, and I didn't like having the comics in separate groups. So I wrote Ms. RSS, a tool to Merge & Scrub RSS feeds. To pull down my favourite comic feeds into something that doesn't make gnus barf, I use something like this:

$ msrss -o webcomics.xml -t Webcomics -k '' \
    -l 'Darths & Droids' http://www.darthsanddroids.net/rss.xml \
    -l 'Irregular Webcomic!' http://irregularwebcomic.net/rss4.xml \
    -l 'xkcd' http://xkcd.com/rss.xml \
    -l 'Dr. McNinja' http://drmcninja.com/feed/

Simple enough. Now, let's wire it into gnus. First, we define a function that calls msrss and checks that everything went okay:

(defun jdk-rss-update-webcomics ()
  "Update my favourite webcomics into a cached local file."
  (when gnus-plugged
    (message "Updating webcomics.xml...")
    (call-process "msrss" nil "*msrss*" nil
                  "-o" (concat (file-name-as-directory (getenv "HOME"))
                               ".msrss/webcomics.xml")
                  "-t" "Webcomics"
                  "-k" ""
                  "-l" "Darths & Droids" "http://www.darthsanddroids.net/rss.xml"
                  "-l" "Irregular Webcomic!" "http://irregularwebcomic.net/rss4.xml"
                  "-l" "xkcd" "http://xkcd.com/rss.xml"
                  "-l" "Dr. McNinja" "http://drmcninja.com/feed/")
    (message "Updating webcomics.xml... done")

    ;; Check if msrss complained about anything.
    (save-current-buffer
      (set-buffer "*msrss*")
      (let ((contents (buffer-string)))
        (if (string= contents "")
            (kill-buffer "*msrss*")
          (message "msrss issued warnings. See *msrss*."))))))

Next, we hook it into gnus so it's run at startup and whenever we check for new news:

(add-hook 'gnus-startup-hook 'jdk-rss-update-webcomics)
(add-hook 'gnus-get-new-news-hook 'jdk-rss-update-webcomics)

Most of the feeds don't have author information, and the group's summary buffer looks ugly as a result. Clean that up, and while we're setting parameters we may as well sort the entries by date:

(setq gnus-parameters
      '(("^nnrss:Webcomics$"
         (gnus-article-sort-functions '(gnus-article-sort-by-subject
                                        gnus-article-sort-by-date))
         (gnus-summary-line-format "%U%R%z (%d) %s\n")
         (gnus-show-threads nil))))

Then I made a new RSS group (G R file:///home/username/.msrss/webcomics.xml RET ...) and called it "Webcomics". Success.


Posted by Jack Kelly | Permanent link | File under: coding, emacs

Tue Feb 19 08:53:45 EST 2013

Reading RSS with gnus

UPDATE: I multiplex my RSS feeds now and sanitise them client-side.

I read a few online comics. I've been meaning to subsribe to their RSS feeds for some time, instead of repeatedly refreshing them as a form of procrastination. It turns out that Gnus can do this quite easily.

Press "G R" (gnus-group-make-rss-group) in the *Group* buffer, enter the feed URL and give it a name. It failed to parse one feed, forcing me to run the offending feed through The Feed Sanitiser.

It's neat, but I won't be 100% happy until I can get emacs to display the images inline. I don't like relying on an external webapp for sanitation and Gnus is a bit slow at updating all the groups. In the future I'd like to have an RSS multiplexer that output one sanitised feed that I could read straight from disk.


Posted by Jack Kelly | Permanent link | File under: emacs

Fri Feb 15 10:56:20 EST 2013

Australian Wooden Boat Festival, 2013

Last weekend was the Australian Wooden Boat Festival. I managed to head down from the maritime college and catch up with everyone. I wasn't sure what to expect, but the festival was HUGE. Elizabeth Street Pier was packed full of tall ships:

Tall Ships on the Pier

The marina was packed full of boats that I didn't have time to see. There was a huge range of sizes, from tiny little dinghies:

Wooden Dinghy

All the way up to the James Craig. Look how big she is!

James Craig James Craig (Closeup)

Even Captain Fell's old ferry, Emmalisa, looked the part:

Emmalisa

That's what the whole weekend was like. Boats boats boats boats boats. Berthed just in front of us was my old ship, Enterprize, and she's looking great, isn't she?

Enterprize

It was a real pleasure to catch up with former crew, once they recognised me (they knew me back when I had a large and awful beard). I spent one night sitting on her tiller sharing songs and stories until 1am.

Even though we weren't the tallest tall ship in the harbour, the mast made a very good vantage point for some more happy snaps:

King's Pier Marina (from aloft) Elizabeth Street Pier (from aloft) Looking towards Salamanca (from aloft)

Along the pier, there were a number of old speedboats on display. Look at the care that's gone into them! Even their engines were clean as anything.

Femme Galante Oy290

There were a number of steam-powered boats on the water all weekend, including Hobart's local S.Y. Preana.

SL Huon Steamboat S.Y. Preana

Preana's engineer, Wally Mounster, has also built a steam-powered outboard and is considered the world expert in that area. In this photo, it's mounted on Diablito, "little devil":

Steam-Powered Outboard

The steamboats weren't the only cool old boats going around. The Notorious is a replica of a 15th century Portuguese Caravel, and with her rough-cut timbers and black everywhere, she looks MEAN.

Notorious

With this many tall ships going around, there's obviously going to be some pirates walking around as well. This one wasn't in a crew, but what he lacked in numbers he made up with size:

Giant Pirate

If PVK taught me one thing, it's that when you have pirates, vikings aren't far away. This weekend was no exception. Behold, the Rusich. Crewed by a crew of crazy Russians, she's been all over the world.

Rusich

It wasn't all boats, despite the name. There was a great exhibit of old surfboards, too:

Old Surfboards More Old Surfboards

What a weekend!


Posted by Jack Kelly | Permanent link | File under: windeward_bound