Taking Control of Content and Breaking Algorithms With RSS

“Engagement isn’t a form of serendipity through algorithmically personalized feeds; it’s the repeated satisfaction of Present You with your myopically current loves and interests, at the expense of Future You, who will want new curiosities, hobbies, and experiences.”

—Dan Cohen. “Engagement Is the Enemy of Serendipity.” DanCohen.org. July 23, 2019.

In the post above, Dan Cohen writes about how The New York Times (NYT) changed their iPad app and how it ruined his experience of their content. He then talks about how algorithmic feeds undermine serendipity and the evolution of the self. Valid complaints and correct to the point of cliché, but what is to be done about it?

There are often options. If you read the NYT, you don’t have to use their app or their website and be annoyed. What should you do instead?

Newspaper RSS Feeds

Really Simple Syndication (RSS) provides a list of posts from a particular website. For example, here’s the RSS for the Top Stories from the NYT. Want to browse by section? There’s RSS feeds for sections as well.

Most newspaper services and newspapers provide RSS. Reuters, The Guardian, Der Spiegel in English, Times of India, Le Monde in English, Jerusalem Post, China Daily, The Age, The Japan Times, the Financial Times and of course, The BBC are all good examples.

Given these options, why would you want to use a single newspaper’s app, particularly one that is annoying you? There’s a whole world of options. You can select each yourself, and they all inter-leaf in the display based on time (or you can sort it by a different method), which facilitates serendipity.

How Does It Work?

To use RSS feeds, you need an RSS reader. There are many. Just yesterday, for instance, someone accessed this website using Inoreader. I’ve never heard of it. Feedly is probably the RSS reader most commonly used. I use Nextcloud News. This is what Nextcloud News looks like on a computer:

This is the display in the mobile app:

Getting Beyond the News

You can use RSS to replace the WordPress Reader. For example, if you wanted to subscribe to the RSS feed for this website, you’d need to add this url to your RSS reader:


Add /feed to the main site url to any WordPress site, and you can add it to your Reader. Most other blog websites have a standard formula, e.g.:

RSS is also used for other forms of media. For example, it’s used extensively in delivering podcasts. The BBC’s World Service is just one of many podcasts they offer with an RSS feed. Every NPR podcast has an RSS feed. Most podcasts provide a feed either from their website or one of the many podcast aggregators.

Why Haven’t I Heard of This Before?

Content providers and aggregators do not like RSS. You’ll frequently hear the claim that usage is declining. The fact is that it’s harder to track usage and monetize content delivered through RSS. The user has much more control over what they see and in what context. As you can see above, this website is thrown in right next to Reuters, Mother Jones, and TheHill.com with little to differentiate them when I look at my feeds through Nextcloud News. Then, there’s this when I look in on a Reuter’s article:

There’s no need to click in to the Reuter’s website and read the article. There’s no advertising, and Reuter’s only knows my RSS reader pulled the feed. They don’t know whether I looked at this article or not.

RSS does not just challenge the business model of content providers like the NYT. It’s does the same for content aggregators. Google, for example, launched Google News in September 2002, and it became an official product in January 2006. Google Reader, Google’s RSS reader, was launched in October 2005, became an official product in September 2007 and was discontinued in July 2013.

The speculation, at the time, was that Google was trying to drive sharing of information through their now-defunct Google+ social media network. But, there’s an easier explanation. Google News makes Google money. Google Reader didn’t, even though Google Reader’s users loved it.

In the same way, the NYT wants people to use their apps and to subscribe to their services. Google wants you to click on their links and not RSS links direct to the article, so they can get credit for the referral. So, the poor user experience that makes them money is invested in and the better user experience that doesn’t make them money is discontinued because usage is “declining.”


Using an RSS feed reader is often better than using a dedicated website or application by a single content provider. By using and demanding these services, we are able to take more control over selecting what we see from algorithms and we cut down on surveillance capitalism making money by tracking us.

Many newsletters are moving to a model where there are some public posts, and then there are some posts that are only available to subscribers. This model also works for RSS feeds. The Browser, for instance, has a RSS feed for subscribers. Personally, I’d like newsletters to move over to the RSS format, so I could read them in my reader rather than having them sit in my email inbox, many of them without a text only option.

But, right now, the incentives are for single content provider, single site based on surveillance capitalism. You can choose differently. If you don’t like RSS, maybe consider that the web is mutable and it is possible to change it to your liking. At the very least, if you find a website or an application by someone annoying, stop using it and do something else.

Assistant Account Executive at Public Relations Agency Uses Talkwalker.com

“Talkwalker’s state-of-the-art social media analytics platform uses AI-powered technology to monitor and analyze online conversations in real-time across social networks, news websites, blogs and forums in 187 languages.”

  • Two views with two likes.
  • Talkwalk.com’s artificial intelligence decides a conversation might be happening or could potentially happen that would be critical of plastic production and quickly publishes it to the dashboard on their portal.
  • *Bing* A desktop notification sounds.
  • Bored assistant account executive at a public relations agency looks up. Yet another desktop notification about that damn The Intercept article? She decides it’s time to stop scrolling through Slack, Facebook and complaining about the cost of Matouk towels to her friend in Messenger (so expensive, even on Amazon!) and decides to finally look into what all the fuss was about in case their client, a ginormous chemical company producing plastic, decides to call and ask the account director what she is doing to minimize the damage from that small time publication The Intercept. Time to get some intel! Take me away, Talkwalker.com.
  • Clicks on a promising link. See a few quotes and a link to The Intercept article. Thinks to herself, “What is this shit?”
  • Decides to go back to shopping on Amazon, her home page and accidentally hits the refresh button instead.
  • Woohoo, four views! Another exciting day here at cafebedouin.org, the veritable tip of the tongue of the “global conversation.”
  • Meanwhile, Big Plastic has dumped another few tons of plastic in the ocean, and I’m going to have a McDonald’s fish filet and wait for the microplastic to reduce the sperm counts of men to the point that every birth will require artificial fertilization. Nothing to see here folks! The problem of plastic and patriarchy is solving itself! Try the Matouk Factory Store!

The Plastic Industry’s Fight to Keep Polluting the World

“A Bag’s Life is just one small part of a massive, industry-led effort now underway to suppress meaningful efforts to reduce plastic waste while keeping the idea of recycling alive. The reality of plastics recycling? It’s pretty much already dead. In 2015, the U.S. recycled about 9 percent of its plastic waste, and since then the number has dropped even lower. The vast majority of the 8.3 billion metric tons of plastic ever produced — 79 percent — has ended up in landfills or scattered all around the world. And as for those plastic shopping bags the kids were hoping to contain: Less than 1 percent of the tens of billions of plastic bags used in the U.S. each year are recycled…

…A 2018 study found that 93 percent of bottled water samples contained microplastics. While all the big brands tested positive for microplastics, the worst was Nestlé Pure Life, which claims that its water ‘goes through a 12-step quality process, so you can trust every drop.’…

…One study found that half of recycled plastics in India contained a flame retardant associated with neurological, reproductive, and developmental harms.”

—Sharon Lerner, “The Plastic Industry’s Fight to Keep Polluting the World.” The Intercept. July 20, 2019.

You know, in case you need a little nightmare fuel.

A Quick Introduction to StumpWM on Linux

StumpWM is a tiling, keyboard driven X11 Window Manager written entirely in Common Lisp.”

Why Use It

StumpWM will likely cut down a lot of your use of a mouse. There’s many reasons to use the mouse less, such as speed (entering in a key combination is faster than using a mouse), carpal tunnel syndrome, and so forth.

I like StumpWM because it helps keep me on the command line. I’ve had some experience with it’s predecessor, Ratpoison, while trying to set up a C201 with free software last year, and I liked the focus on one application at a time and being able to type in a few keystrokes to move between them. So, I figured StumpWM was worth a try. Recommended, even if you don’t end up sticking with it.


Within Ubuntu, changing window managers is fairly easy. You just need to install StumpWM with the apt package manager.

$ sudo apt-get install stumpwm

Then, logout and select the gear icon near the enter button and select StumpWM from the drop-down menu and login as usual.

Quick Start

On logging in, you will notice StumpWM strips out most of what is standard in most window managers. There’s no clock. There’s no dock. There’s no background. There’s no list of apps. There’s nothing to navigate multiple desktops. There’s only a blank screen with a box in the upper right corner: “Welcome to Stump Window Manager. / Type C-t ? for help.”

The first thing you’ll want to do when you log in is type: Control-t together then the letter c and the Enter key (or abbreviated: C-t c, same style as in Emacs). This creates a console, and it takes up all the screen real estate. Like Emacs, it is possible to split the screen into a variety of configurations. For simplicity here and due to my preference for dealing with one application at a time, I’ll assume a single application in the screen.

So, if you want to use Firefox, type:

$ firefox &

The &; starts firefox as a background process. You can even change your .bash_aliases file to do this automatically for you.

Of course, there are command keys for other functions: C-t a will give you the time. C-t ; quit, then press Enter to quit.

If you want to switch back and forth between the console and Firefox, you type: C-t C-t. If you have multiple windows, you can see them all and chose them from a drop-down meny by typing: C-t ". Each window also has a number listed, which you can access directly, by typing: C-t 0 (assuming the window is 0).

That’s all you need to get up and running. If you want to start customizing your configuration, I’ve also included a straight-forward .stumpwmrc configuration file below, which among other changes includes replacing C-t with s-t (Windows key + t), which is useful if you want to continue using C-t to open new tabs in Firefox without having StumpWM supersede it.

Also, this configuration file will add back in a mode line, so you can have the time, battery level and option applications with numbers, which can be useful.

;; -*-lisp-*-                                                                  
;; .stumpwmrc                                                                                                                              
(in-package :stumpwm)                                                          
;;; Configuration                                                              
;; Change prefix key to Windows key                                            
(set-prefix-key (kbd "s-t"))                                                   
;; Changing to pointer from X default to standard left                         
(stumpwm:run-shell-command "xsetroot -cursor_name left_ptr")

;; Change prefix key to Windows key                                            
(set-prefix-key (kbd "s-t"))                                                   
;; Changing to pointer from X default to standard left                         
(stumpwm:run-shell-command "xsetroot -cursor_name left_ptr")                   
;; Turn-off start-up message                                                        
(setq *startup-message* nil)                                                   
 "feh --bg-scale ~/path/to/image.jpg")   
;; Start emacs daemon                                                          
; (run-shell-command "emacs --daemon")                                         
;; Start pulseaudio                                                            
(stumpwm:run-shell-command "pulseaudio --start") 

;; Disable system bell                                                         
(stumpwm:run-shell-command "xset b off")                                       
;; Start gnome keyring                                                         
(stumpwm:run-shell-command "gnome-keyring-daemon --start --components=gpg,pkcs\
;; Mode line                                                                   
(defvar *battery-status-command*                                               
  "acpi -b | awk -F '[ ,]' '{printf \"%s%s\", $3, $5}' | sed s/Discharging/\-/\
 | sed s/Unknown// | sed s/Full// | sed s/Charging/+/")                        
(setf *screen-mode-line-format*                                                
      (list "[^B%n^b] %W^>"                                                    
      '(:eval (run-shell-command *battery-status-command* t))                  
      " | %d"))                                                                
(setf *window-format* "%m%n%s%c")                                              
(setf *mode-line-timeout* 1)  

;; Turn on the new mode line.                                                  
(toggle-mode-line (current-screen)                                             
;; Launch Terminal at Start                                                    
(stumpwm:run-shell-command "gnome-terminal")                                   
;; Define keys                                                                 
(define-key *root-map* (kbd "c") "exec gnome-terminal")                        

; Emacs is commented out because I prefer to use                               
; it in the terminal.                                                          
;(define-key *root-map* (kbd "e") "exec emacs")  

(define-key *root-map* (kbd "f") "exec firefox")                               
(define-key *root-map* (kbd "v") "exec eog") ; Eye of Gnome                    
(define-key *root-map* (kbd "t") "exec thunderbird")                           
(define-key *root-map* (kbd "k") "exec keepassxc")                             
(define-key *root-map* (kbd "g") "exec gimp")                                  
(define-key *root-map* (kbd "r") "exec rstudio")                               
;; Functions                                                                   
(defun browse-url (url-string)                                                 
  "Browse url using WEB-BROWSER"                                               
  (check-type url-string string)                                               
  (run-shell-command (concat WEB-BROWSER "\"" url-string "\"")))

;; For connecting to emacs see:
;; http://www.kaashif.co.uk/2015/06/28/hacking-stumpwm-with-common-lisp/index.html

Commodified Emotions as Entertainment

“As with Fear Factor nearly two decades ago, it’s worth asking
what exactly what is being watched and why? It seemed to me then, and still does, that we are watching human beings whose emotions are extracted and commodified for our entertainment. I would still argue, as I did then, that this is dehumanizing, both for the participant and for the viewer (the consent of either notwithstanding). I’d extend this point not only to reality television, but to each of the myriad ways we are now enabled to watch one another, with or without the consent of the watched. In my view, this calls for the renewal of a new sort of chastened vision, one which would turn away from spectacle of intimate life extracted and commodified.”

—L.M. Sacasas, The Convivial Society, No. 20. July 27, 2019.

I’ve been subscribing to a lot of newsletters lately. The Convivial Society, after reading only one issue, seems worth a mention.

Fixing a Broken org2blog Configuration

I used to have a working set-up of org2blog. Somewhere along the way, it got borked. I couldn’t login. I tried fixing it a few times, but I couldn’t get the problem resolved. Today, I finally got org2blog working. Key piece is setting the gnutls-algorithm-priority.

Use the instructions at the org2blog site:


Do everything it says, such as install the dependencies, create a ~/.netrc file with wordpress as the machine name, and so forth. After creating .netrc, limit access by doing: $ chmod 600 ~/.netrc. Then, replace the blog credentials .emacs code with the following:

;; org2blog 
(require 'org2blog-autoloads) 
(require 'netrc) 
(setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3") 

;;; org2blog hydra hooks                                                       
(defun my/org2blog/wp-mode-hook-fn ()                                          
  (local-set-key (kbd "M-9") #'org2blog/wp-hydra/body)                         
  (local-set-key (kbd "M-0") #'org2blog/wp-complete-category))                 
(add-hook 'org2blog/wp-mode-hook #'my/org2blog/wp-mode-hook-fn) 

;;; org2blog authentication                                                    
(require 'auth-source)                                                         
(let (credentials)                                                             
        (add-to-list 'auth-sources "~/.netrc")                                 
        (setq credentials (auth-source-user-and-password "wordpress"))         
        (setq org2blog/wp-blog-alist                                           
                 :url "https://blogname.wordpress.com/xmlrpc.php"           
                 :username ,(car credentials)                                  
                 :password ,(cadr credentials)                                 
                 :default-title "Insert title"                                 
                 :default-categories ("comments")                              
                 :tags-as-categories nil))))                                   
(setq org-src-fontify-natively t) 

I posted this using org2blog with this configuration.

20 Years of Blogging: What I’ve Learned

“…always write with the idea that what you’re sharing will live for months and years and decades.

I also do still strongly believe that someone who really has a strong point of view, and substantive insights into their area of interest, can have huge impact just by consistently blogging about that topic. It’s not currently the fashionable way to participate in social media, but the opportunity is still wide open.”

—Anil Dash, “20 Years of Blogging: What I’ve Learned.” AnilDash.com. July 22, 2019.

The post is a little heavy on “I told you so,” but there’s interesting nuggets if you want to dig for them. I particularly liked this from his fifteenth year anniversary post:

Meta-writing about a blog is generally super boring.”