From a2f077cf13d307c4d9d862028f459b783ede53cc Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Mon, 10 Dec 2012 02:22:18 +0100 Subject: Add some blog posts Also an index page that automatically generates a list of all the posts available. --- site/blog/98_perfect_rss_solution.org | 101 ++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 site/blog/98_perfect_rss_solution.org (limited to 'site/blog/98_perfect_rss_solution.org') diff --git a/site/blog/98_perfect_rss_solution.org b/site/blog/98_perfect_rss_solution.org new file mode 100644 index 0000000..d9d58da --- /dev/null +++ b/site/blog/98_perfect_rss_solution.org @@ -0,0 +1,101 @@ +#+TITLE: The 98% perfect RSS solution +#+DATE: 2012-11-30 10:00 +#+TAGS: rss emacs gnus gwene tt-rss avandu + +* Test + + I've been looking for the "perfect" RSS reading solution for a while + and I just got this idea for a setup that has to be about 98% of all + I'm looking for. + + The things I'm looking for are: + + - Emacs interface. This isn't that big a problem since anything + with an API can be made to have such an interface, and I feel + comfortable enough with Emacs Lisp to write it myself if I have + to, like I was doing with [[http://code.ryuslash.org/cgit.cgi/emacs/avandu/][avandu]], but then it /does/ need a(n/ good) + API. + + - Unbound to a single computer. It's a hassle to have to remember + what you have and haven't read. If it was easy your RSS reader + wouldn't care about (un)read items, everything would just be + "items". So sharing that state between computers is pretty + important. + + - A server. Something that keeps running 24/7. Or at least the + closest possible approximation of that. It's no good to miss + everything that happens between 11pm and 9am just because you + don't have your feed reader running. Of course this is only a + problem if you're following some high-traffic feeds, but they + exist too. + + - Runs locally. The nice thing about having shell access to a + server somewhere that someone else keeps online for you is the + possibility to run something like [[http://newsbeuter.org/][newsbeuter]] and just + (de/reat)tach from whichever computer you're working on. The + downside is, though, that this breaks pretty much all integration + with your desktop. Opening URLs becomes a reliance on your + terminal emulator's ability to parse and open them. Viewing media + such as images, or audio files from a podcast, turns into ~Save, + Transfer, Open~ instead of just the ~Open~. + + - Handles big feed lists. Even if you only read five feeds, the day + may come you'll be reading fifty, or even much more. A piece of + software that handles this well is a must. This is the problem I + had with [[http://codezen.org/canto/][canto]] and Emacs' [[http://www.emacswiki.org/emacs/NewsTicker][newsticker]]. *canto* looked awesome, the + most interesting interface to RSS feeds I have come across so far, + but back when I tried it trying to read my collection of feeds + would lock-up my computer. *newsticker* would lock-up my emacs + session for 10-20 minutes. + + Now though I have found something that does it all. It is actually + a twist on something I used some time ago. + + *Emacs* + [[http://gnus.org/][Gnus]] + [[http://gwene.org/][Gwene]] + [[http://www.cis.upenn.edu/~bcpierce/unison/][unison]]. Not the easiest thing to set-up + perhaps, but once *Emacs* + *Gnus* is in place the rest is a piece of + cake. + + *Gwene* is an awesome service that turns RSS feeds into + newsgroups. *unison* is an awesome piece of software for + synchronising files between different computers. *Gnus* is a real + newsreader. *Emacs* is what *Gnus* runs on. + + So it's kind-of like cheating. *Gnus* is not unbound to a single + computer and *Gwene* doesn't offer server-side state tracking either. + But because *Gnus* uses a single file to store state about all of its + subscribed groups, this makes it a good candidate for sharing that + one file. This is not something unique to *Gnus*, at least [[http://www.slrn.org/][slrn]] uses + the same kind of file, the ~.newsrc~ file (or in *Gnus*' case + ~.newsrc.eld~). + + So I register the feeds I want to follow with *Gwene*, if they aren't + already registered. I subscribe to the resulting newsgroups on + ~news.gwene.org~ with *Gnus* and when I switch over to another computer + I use *unison* to synchronise the ~.newsrc.eld~ file. + + An example configuration of *Gnus* could just be as simple as: + + #+BEGIN_SRC emacs-lisp + (setq gnus-select-method '(nntp "news.gwene.org")) + #+END_SRC + + *unison* just needs: + + #+BEGIN_EXAMPLE + root=/your/home/dir/ + root=/your/server/root/ + path=.newsrc.eld + #+END_EXAMPLE + + And that's about it. + + Now it's still not 100% perfect. I've seen that *Gwene* can't handle + 100% of the feeds I throw at it, but these can be fixed either by + contacting the people publishing them or by improving *Gwene*'s + parser. It also doesn't automatically check periodicaly, though I + think *Gnus* can be set-up to do that, but since I also use it to read + my mail (again) that's not really an issue. It also isn't + accessible without *Emacs*, *Gnus* and *Unison*, but I hate web-interfaces + anyway. + + So that's it. My 98% perfect RSS reading solution. -- cgit v1.2.3-54-g00ecf