Typical 码农湾区生活体验

本文是 womenoverseas 论坛上“分享你的本地生活体验”活动的回答


两年前写过一篇博客大概讲湾区的生活,不过现在经历了疫情有了新的感受,那篇文章也主要针对的是人在中国还没有移民的受众,感觉论坛这次活动是很好的更新内容以及针对已经在海外的想要 relocate 的大家安利完全破除一些可能因为中文网上主流声音(aka 中国男码农)而造成的对湾区的误解的好机会,所以完全重新写了一篇。

Continue Reading

Kindle Notes 轻松导出导入 Notion —— 我的第一个 chrome extension

经过一周多的审核,我的第一个 chrome extension 终于上线啦!完全免费、开源,不收集任何用户信息,导出 csv 文件可导入 Notion 或任何可导入 csv 的笔记系统。跟 readwise 说再见。

点此到 Chrome extension store 下载

Screen Shot 2021-04-08 at 1 04 09 AM

与我之前的微信读书导出工具类似。不过微信读书那个工具需要会用命令行和装 Python,本工具只要有 chrome 就能用。

版权归作者所有,任何形式转载请联系作者。
作者:椒盐豆豉(来自豆瓣)
来源:https://www.douban.com/note/800152192/

(注:由于没有美区之外的 Kindle 账号我无法测试 i18n,本插件暂时只支持美区 Kindle 账号,如果有人愿意测试的话欢迎提交 pull request)

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 里随便搜了几个中文出现了过去的嘟文,确认问题解决。

如果喜欢本文的话,欢迎在 Patreon 给我打赏顺便解锁一下小 perks(不喜欢月费的话页面最下方可以 make custom pledge 输入自定义金额 (ง •̀_•́)ง)。Patreon 里提供诸如 1:1 聊天和博客选题投票等金主特权,如果想多聊几毛钱欢迎来成为金主:Become a Patron!