说来惭愧,我其实在写今天这篇文章以前一直不太明白「信息茧房」这个概念,只是时常在自己的信息获取渠道中看到人们都在提到这个概念,直到时至此刻我写到下面这些文字的时候才忽然明白其中的含意。

在如今这个算法、AI横行的年代,你接触的所有互联网的一切信息几乎都被算法、AI包裹,互联网像是一个极度宠溺你的长辈,它所给你看的、吃的、听的「似乎」都是你「想要」的,你废寝忘食沉溺其中,丝毫没发现它的推荐像是春蚕吐丝般的为你慢慢结出了一个「茧」,这种看似趋向性的宠溺却让这个茧把你包裹的越来越严实,渐渐的让你没有了思考的空间,你的世界似乎也开始变的只有这个茧那么大了...。

这就是我理解的「信息茧房」。

那么如何打破呢?

打破茧房的最好途径就是「勇敢」的「自主」获取,避开算法、AI的包裹,去听那些你平时可能不认可的观点、去看那些不曾读过的文章、去想那些你平时未曾想过的一切。

第一步我相信从RSS订阅将会是一个很好的开始。

第一次知道RSS是在北大青鸟的课本上,其中第二期还是第几期的课本上关于C#的学习就是一连串基于制作一个Rss的实践课程,当时虽然把整个练习完成了,但是并没有真正理解RSS这个东西的真正含意——「及时、自主的信息获取」。

在有打破信息茧房的决心下主动通过RSS或其他工具订阅一些「茧房」外的资讯、文章,学会总结,在阅读过程中发散思维,理解或去拥有自己不曾有过的视角及看法,且在这一过程中不断优化自己的信息获取能力更是其中的关键。

其实博客在发散思维这一环节中具有重要意义,大多数博客都具有评论功能,只要你认真阅读过文章,那么我相信你肯定会有自己的总结和想法,那么就应该去把他总结出来、写出来,和别人分享自己的想法并倾听别人的看法再加以讨论,「辩论」也是打破信息茧房的重要手段。

在这里我希望大家在尽量开启自己的博客评论,并在浏览其他博主的文章时都能发表出自己独树一帜的看法,这肯定能对整合博客环境带来一个积极推进的作用。

自己的拙见先写到这里,毕竟目前也才刚开始践行上述总结 😊。


关于RSS订阅的工具,之前小胡 如何订阅一个博客? 一文中已经推荐过不少方法以及工具。

我之前也用过一些订阅工具,时间最长的是 蚁阅 不过蚁阅的界面使用逻辑我个人觉得有点混乱,用了四五年最终还是放弃了,我的要求大概有如下几点:

  • 自部署,最好是Docker
  • 数据库基于sqlite,方便迁移
  • 轻量,只有我自己用,简单点就好
  • 界面友好、现代,颜值分还是要有的。
  • 操作逻辑要清晰,这里再Q一下 蚁阅
  • 内容预取,可以直接在浏览器内阅读全文
  • 文件夹,分类管理
  • 多平台,我主要是PC和安卓

Yarr

最后幸运的还是找到了一款这样的工具:Yarr ——又一款基于Go语言编写的Rss阅读器。

💡
我自己Fork了一个版本:rebron1900/yarr 增加了对Rsshub浏览器扩展的一键订阅支持,后文有提到。

界面简介

程序运行后在网页中使用,基本有浏览器就能使用,且做了一些手机端优化。

界面很简单,分左、中、右三个区域,左侧为文件夹、中间为当前文件夹的所有文章、右侧则是文章具体内容。

左侧图标示意:

  • 船锚:程序logo,无作用
  • 圆点:所有未读订阅
  • 五角星:收藏的文章
  • 三条杠:所有订阅
  • 三个点:打开菜单,菜单都有很简单的英文文字说明,就不一一解释了。

中间图标:放大镜,搜索用的。

右侧图标:

  • 五角星:收藏文章
  • 圆形:标记已读、未读状态
  • 拨杆:设置字体、字体大小
  • 书本:预取网页内容(超级好用)
  • 箭头:在新网页中打开
💡
如果想单独新建文件夹,可以在New Feed中点击new folder按钮添加,然后取消掉feed添加即可。

自己做的小改进

原版添加Rss需要手动打开Yarr,点击添加按钮才能添加订阅,略微有些不方便,我在早期的订阅阶段频繁执行这个操作把我搞的有点烦,后来偶然发现RssHub似乎可以一键订阅,而且订阅逻辑其实就是向目标网址发起一条带订阅链接的Get请求,其中 「Nextcloud News」这个服务的请求参数逻辑最为简单,就一个订阅网址,所以我当时就在想:「我可不可以改一下源代码?自己适配一下?」

有想法就立刻开始行动,恰逢元旦假期,自己和ChatGPT折腾了一上午无果,最后在韩宇昱行两位大佬的帮助下(果然还是要靠专业人士)简单 修改了部分代码 后最终完成了这个改造,并通过参考yarr-build这个项目改写了一个Github Action并成功发布了自己人生中的第一个docker镜像:docker/rebron1900/yarr/

开始使用

Yarr支持多种使用方式,最简单的就是下载可执行文件,Mac、Linux、Windows平台均有编译,在Windows平台下下载后直接运行后会在任务栏多一个船锚的图标,点击图标点选OPEN 项即可访问,或直接在浏览器内输入127.0.0.1:7070 ,数据库文件默认存放在 C:\Users\yourname\AppData\Roaming\yarr 路径中。

当然,你也可以通过附带启动参数来定制各项内容,给 yarr.exe 创建一个「快捷方式」,在新的快捷方式上「右键->属性」,在弹出来的窗口中 目标 后面的内容增加命令参数即可,如:"D:\Program Files\yarr\yarr.exe" -auth-file "./user.txt " -db "./sqlite.db" ,是定义了用户账号信息和数据库地址。

你可在windows终端中给 yarr.exe 附带 -h 指令查看所有启动参数,具体可选内容如下:

  -addr string
        address to run server on (default "127.0.0.1:7070")
        绑定ip及端口
  -auth-file path
        path to a file containing username:password
        密码文件,文件内容为 username:password 格式的文本内容,前面及你的登录账号,后面及密码,都是明文存放。
  -base string
        base path of the service url
        服务绑定的网址
  -cert-file path
        path to cert file for https
        证书文件
  -db path
        storage file path
        数据库位置
  -key-file path
        path to key file for https
        证书文件
  -log-file path
        path to log file to use instead of stdout
        日志文件
  -open
        open the server in browser
        运行后自动打卡网页
  -version
        print application version
        版本信息

The environmental variables, if present, will be used to provide
the default values for the params above:
当然,你也可以设置环境变量完成这件事,可以用的变量如下,基本上上面的是匹配的。
YARR_ADDR, YARR_BASE, YARR_AUTHFILE, YARR_CERTFILE, YARR_KEYFILE, YARR_DB, YARR_LOGFILE

Docker运行

你可以通过run命令运行,也可以使用docker-compose,上面提到的环境变量在docker中也是同样适用的。

docker run -d
  --restart always
  -v /home/data/yarr-data:/data
  -p 25255:7070
  -e TZ="Asia/Singapore"
  -e YARR_AUTHFILE="/data/.auth.list"
  -e YARR_LOGFILE="/data/yarr.logs"
  --name yarr
  rebron1900/yarr:latest

run命令

version: "3.3"
services:
  yarr:
    restart: always
    volumes:
      - "/home/data/yarr-data:/data"
    ports:
      - "25255:7070"
    environment:
      TZ: "Asia/Singapore"
      YARR_AUTHFILE: "/data/.auth.list"
      YARR_LOGFILE: "/data/yarr.logs"
    container_name: yarr
    image: "rebron1900/yarr:latest"

docker-compose

结束语

在互联网信息的潮水中,身处信息潮水中的我们获取信息自然是如喝水一样简单。

但是,即便是获取RSS,我们也应逐步增加自己对优质信息的甄别能力,并注重阅读和理解,让不同的思想在自己的大脑中碰撞出新的火花。

同时希望大家不要养成仓鼠病,光「订」不「阅」做无用功。