manuel.is      about

My New Rss Setup

And some history on the side

I was not there when the first specification of RSS came out in March 15th 1999. But as soon as I got my hands on a steady internet connection, I got hooked at having the information I wanted delivered to me as soon as it came out. I recall being on my first shared student apartment featuring lovable people and an internet connection measured in kB/s, not MB/s. I was interested in the development of that new browser that was going to revolutionize the world: Phoenix, later known as Mozilla Firefox. But also addicted to the — nowadays defunct — Spanish Slashdot; the Galician blog community known as blogomillo and some other local alternative news sites like Vieiros. All of this information could come to me, instead me going after it every time, thanks to syndication standards such as RSS and Atom.

RSS logo

RSS logo, licensed under Mozilla Public License Version 1.1 (MPL)

I must have started with a stand alone client like Sage or something of the sort, then moved to Google Reader and after it was killed in 2013 I found myself pretty orphan of a good client, and relied in forgettable browser plugins.

Few years ago I decided to put some money in tinkering and bought myself some space on the internet — you are seeing part of it —. Apart from some personal projects and other shenanigans, I decided I would setup something to read feeds. I had two options:

  1. Make a mess of the server and install a bunch of packages to get a functioning RSS server, something like TT-RSS.

  2. Just install a client and SSH into the machine to use it.

The first option had many pros, like being able to see the feeds from my phone. So I went for it…just to leave it aside few weeks later even though it had all the bells and whistles. I discovered all I wanted was my own reading time not just carving some time while commuting to read half of an entry before jumping into a metro. So I started to look for minimalist clients that would require me to actively set time aside and sit to read the feeds. The second, more minimal option looked better now. Then I found the perfect candidate: newsboat. Newsboat was and still is perfect in many ways. It is simple, handling feeds is editing a plain text file, it is fast and it immerses the user into the reading experience. I chose it also because, due to career shifts, I was spending more and more time in front of the terminal, so it felt more natural.

Fast forward few years and I got myself into the garden-universe that is Emacs for reasons I explained elsewhere. Emacs is not an IDE it is the kitchen sink. But for some reason, I refrained from setting up any RSS client on my configuration. It was a change on my environment, dropping iTerm, ZSH — all Mac OS X in short —, that got me closer to this idea; I could no longer open URLs by clicking on my terminal emulator — in hindsight a bad idea, as it might be a security issue —, so I decided to give a go to elfeed. And oh boy!, do I like it. Now I have another experience integrated in my environment, alongside mail client, multi-purpose programming environment, blogging tool, etc. My configuration for elfeed is as follows:

(global-set-key (kbd "C-c e") 'elfeed)

(use-package elfeed
  :ensure t
  :bind (:map elfeed-search-mode-map
   ("m" . elfeed-toggle-star)))

(use-package elfeed-goodies
  :ensure t
  :after elfeed
  :config
  (elfeed-goodies/setup)
  (setq elfeed-goodies/entry-pane-position 'bottom
        elfeed-goodies/switch-to-entry nil
        elfeed-goodies/feed-source-column-width 25
        elfeed-goodies/tag-column-width 27))

(use-package elfeed-org
  :ensure t
  :after elfeed
  :config
  (elfeed-org)
  (setq rmh-elfeed-org-files (list "~/feeds/rss.org")))

(use-package elfeed-dashboard
  :after elfeed
  :ensure t
  :config
  (setq elfeed-dashboard-file "~/feeds/dashboard.org")
  ;; update feed counts on elfeed-quit
  (advice-add 'elfeed-search-quit-window :after #'elfeed-dashboard-update-links))

This gives me a dashboard from where to glance at the feed counts, the RSS functionality nicely integrated with Emacs (i.e. n for next, p for prior, s to invoke the search filter, etc); some positioning and tweaks made with elfeed-goodies and lastly the ability to manage my feeds in org mode files with elfeed-org, making it dead simple to share and version. My feeds are available in Github, by the way.

I chose to write about all this precisely today, 11th of January, because it is a rather sad, but worth remembering date. Today marks 8 years without Aaron Swartz. Aaron was a wickedly talented guy, two years my junior that accomplished more than many people do during their entire lifetime. He fought for open access to information (see United States v Aaron Swartz); collaborated with Wikipedia becoming a voice of dissent against Jimmy Wales; got his hands dirty as a campaigner for Stop Online Piracy Act (SOPA); created a collaborative online library — Theinfo.org — at 13; became core contributor to the RSS working group defining the first standard for the technology at age 14 (!); he contributed to the Markdown specification; helped Lessig architect Creative Commons; and was original founder and coder of web.py the engine behind Reddit; the list goes on.

Image of Aaron Swartz

Aaron Swartz at a Creative Commons event. Fred Benenson, 13th December 2008. Licensed under CC BY 2.0

Above all, Aaron was an empathic person with a huge heart geared towards the common good. Being cornered by lawyers in the case for open access to research publications, he committed suicide 8 years ago today.

We must keep remembering Aaron. Take your time to browse through his writings posted in his website, or get your hands on a copy of “The Boy Who Could Change the World: The Writings of Aaron Swartz”, a posthumous collection of his writings introduced by Lawrence Lessig.

P.S.: If you are interested in following this website, here is a link to the RSS feed for manuel.is

EDIT Mar 8: Minor edits

EDIT Dec 17, 2023: Updated <figure> elements to include alt attribute.

Typed on Jan 11, 2021