长毛象主页“只看原创嘟文”Chrome Extension

我把前两天做的能快速在长毛象主页“只看原创嘟文”的小代码转成一个 Chrome extension 啦。Google 居然一天就审核通过了!点击这里安装 chrome 插件

使用方法:

  1. 进入 mastodon 主页(1.1.0 版本新增)或者别人在别人实例上的主页(URL 例如: douchi.space/@mtfront 这种格式的,一般点别人用户名/头像两次可以打开的那个)
  2. 点本 extension 打开界面,然后点 Hide/Show 按钮
  3. 如果对方转嘟过多,你可能需要手动载入更多嘟文再点本按钮,因为是前端 hack 只能 filter 已经载入的嘟嘟。

v1.1.0 版本已添加 timeline filter 更新,Chrome store 审核通过后会自动更新。

timeline filter 的话因为动态载入和所用 class 不大一样需要稍微修改而且不能取消 hide(除非刷新页面),所以我昨天犹豫了一下没加这个功能,大家想要的话可以跟我说。油猴插件同理。

以 Google 审核的尿性 估计还要一周左右才会上架,想要尝鲜的话可以直接下载代码安装.

不用 git 的话直接下载这个 zip 然后解压缩.

load unpacked extension 方法.

想更无缝/在 Chrome 账户上多器材同步的话就等 chrome store 上架版本吧,到时候我会再来吆喝一声的。

迁移 Object Storage 时候发生的一些愚蠢事件以及解决方案

TL;DR: 我用 rclone 迁移 object storage 的时候脑一残就把目的 bucket access 设成了 private,导致迁移之后长毛象无法访问新的 bucket 所有媒体文件都无法显示,最后只好使用 s3cmd recursively set public acl 了一遍所有媒体文件。

对事情经过不感兴趣想直接看的请点此直接跳转到 Debug 步骤解决方案部分。

Continue Reading

Mastodon 中文全文搜索失效 debug 日记及修复方法

我的长毛象实例最近全文搜索失效,debug 了一下失效原因。简而言之,elasticsearch 自动更新了,所以之前装的中文全文搜索 plugin 本来是给 6.8.12 built 的,现在 6.8.14 运行不了,elastisearch 就卡死了。

解决方法:

1. 在根目录下运行
/usr/share/elasticsearch/bin/elasticsearch-plugin remove analysis-ik
/usr/share/elasticsearch/bin/elasticsearch-plugin remove analysis-stconvert
来卸载旧版本 plugin。

2. 运行如下两个命令下载为新版本编译的两个中文 plugin。
/usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/
download/v6.8.14/elasticsearch-analysis-stconvert-6.8.14.zip

/usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-stconvert/releases/download/v6.8.14/elasticsearch-analysis-stconvert-6.8.14.zip

3. restart elasticsearch,运行 sudo systemctl restart elasticsearch.

以下是 debug 过程,不想深入研究的可以不看。

  1. 今天早上本站用户说搜索坏了,搜不到嘟文只能搜到用户名和 tag,我当时在手机上以为是之前搜索不全的老问题。
  2. 今天晚上自己测试了一下,确实任何全文搜索都搜不到,打开 sidekiq 发现从四月初开始 failure 暴增,应该是有问题。
  3. failed message Faraday::ConnectionFailed: Failed to open TCP connection to localhost:9200 (Connection refused - connect(2) for "localhost" port 9200) ,Google 此 message 可知是 elasticsearch (后简称 ES)的问题。
  4. Google 如何查看 active ports(没错这玩意儿天天用但是永远记不住,but why bother though),用 sudo netstat -tulpn | grep LISTEN 发现 9200 not active.
  5. Google 如何重启 ES,运行 sudo systemctl restart elasticsearch ,但发现 sidekiq 失败 message 并没有下降。Google 如何查看 ES 状态,运行 sudo systemctl status elasticsearch,发现重启失败,最后一行报错是 JAVA_HOME not set.
  6. export JAVA_HOME=/usr/bin/java ,重启 ES,发现没有解决问题,Google 之后发现有人说可能这并不是错误所在。
  7. Google 如何查看 ES log,运行 less /var/log/elasticsearch/elasticsearch.log ,发现报错 uncaught exception in thread [main]
    org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentException: Plugin [analysis-ik] was built for Elasticsearch version 6.8.12 but version 6.8.14 is running
  8. 在 mastodon doc(https://docs.joinmastodon.org/admin/optional/elasticsearch/ )里找到当初安装的俩中文 index plugin repo,进入 repo 找到安装方法,Google remove elasticsearch plugin 方法卸载旧 plugin,安装 6.8.14 相对应新版本的俩 plugin。
  9. 重启 ES,查了几次 status 发现运行稳定,sidekiq 里 failed retry queue 稳定下降,在 Mastodon 里随便搜了几个中文出现了过去的嘟文,确认问题解决。

如果您觉得本文对您有帮助,想支持我的博客创作,或者有特定的内容想要看到,或者干脆就想单独聊五毛钱,欢迎点击下面按钮成为我的金主:

Become a Patron!

墙内赞助通道:爱发电

Scaleway Object Storage 不稳定和 Mastodon 迁移备份笔记

我的长毛象实例 douchi.space 一直采用 Scaleway 的 Object Storage,因为它们前 75G 免费,对于这种小服务很划算。但是最近一个月连续发生两次故障,因为是免费 tier 所以客服修复的时间也没有保证。本文记述了故障可能的产生原因、debug 过程、修复方法和以后可能采取的 precaution messures。

Continue Reading

豆瓣难民背井离乡,我为 14 位友邻画了像素头像

一切缘起于 2020 年 10 月.

(2020 年 10 月 14 日左右)
1. 豆瓣整改 hashtag 功能,所有 # 发出来自动替换成 * ,友邻 A 发广播说了这个事情
2. 有友邻调侃井号跳槽了,友邻 A 开广播让大家缅怀过去的 tag。友邻 A 是重度 hashtag 使用者,之前有“猜谜学”“最安全”“豆友找工互助”等 tag。其中猜谜学是给大家解释注入为什么“reply”(ply 包夫人缩写)“偏远贫困“(远贫跟包子他哥谐音)“洗完衣服,今早”(洗…今)这种正常内容会被锁的。已经早就炸过了。
3. 友邻 A 被永久封号,大家群情激愤骂豆瓣。
4. 豆瓣官方账号豆嬷嬷发语焉不详的通告并说“豆瓣前行的路上,需要每一位豆友支持“。友邻 B 小号转发”豆瓣倒退的路上,需要每一位豆友反对“。
5. 友邻 B 大号发布其小号被永久封号,群情激愤 + 要告豆瓣。
6. 部分用户(包括我)终于受够了,开始转发大家安利长毛象等替代平台。
因此有了 #背井离乡 这个 tag——一场 # (井号)引发的血案。另外之前离岸爱国粉红“背(一声)井离乡”也是一个梗。

这个是老号了,我事先经过别人安利去了 m.cmx.im,即长毛象中文站,aka 草莓县。但后来被人指出大规模在墙内号召人过来会对站点造成安全隐患(以前已经炸过一次站了)有慷他人之慨之嫌,且总有人指出要“心疼战长钱包”所以少发图,倍感拘束背离了最初背井离乡寻找更自由的互联网空间的初衷,于是自己建了实例,这是后话了。

背景 aside,我在迁移之前还非常慷他人之慨地为了号召豆瓣友邻迁移,而 promise 了跟着我迁移并且给我参考图的,可以得到一个 32px 的像素头像。这个 offer 当然迁移之后也有效,不管友邻们是留在了草莓县还是去了我的新实例豆豉

最后,总计有三十多位友邻有效报名。十月之后我又搞了很多 side project(如博客、Patreon 等),发现工作量超标,于是开始给自己找借口减少工作量。11月底查看的时候半数的人跟风注册了之后也没有再活跃了(其实过半这个活跃比例已经蛮震惊我了),于是缩减为只给当初要了的、还在活跃的象友画。又画了几组之后发现由于水平所限和大家偏好不同,真的会使用象友也只是个别,于是又给自己找了个借口变成还想要的主动来找我 confirm。

于是在进入了圣诞假期的今天,终于一鼓作气把 confirm 了象友们的头像也画完了。

因为大家提供的参考图画风不同(有本身就是二次元的、涂鸦式的,也有照片类型的)和自身水平有限,画出来的成品效果也是参差不齐。不过好歹还是兑现了承诺了的。

之后,就可以毫无心理负担地继续开始其他像素画的项目了!(说的好像我有多勤快似的……


如果您觉得本文对您有帮助,想支持我的博客创作,或者有特定的内容想要看到,或者干脆就想单独聊五毛钱,欢迎点击下面按钮成为我的金主:

Become a Patron!

墙内赞助通道:爱发电