Skip to content
Phone animation 宇宙尽头的餐馆

来杂食,来不被定义的杂食

当期望落空时,我开始愤怒。愤怒过后,我开始思考。思考过后,我开始表达。

· 10 min

其实是社交网络碎片以及与代码斗殴合集,我也不知道为什么写了这样一个看起来很有思考的 description,思考什么根本是不存在的。写完之后发现确实好碎啊!以后到底还要不要放 blog。这个夏天有点没精打采,其实还看了几本书但是没有在这篇继续写,不过应该还是会写的。ablobcat_fu_drawing_impatience

差点忘了,观影部分涉及大量关键情节剧透。以及这篇文章用上了我自己写的 emoji selector 所以肆无忌惮地加了致死量的表情包。meow_blush color

伯德小姐像极了我的傻*青春#

mongmong_113_sad

当年出来的时候没有看,最近才入坑。看完我明白这部电影肯定不会是很多人的喜爱,但我真的好喜欢,我被狠狠击中,我对着键盘狠狠哭,它太真实太细腻了。Christine 的缺点和我太像了吧,跳下行驶的汽车的任性,对家人大喊大叫的一意孤行,没什么特别的才华,却总爱怼天怼地。

这是一个失败了并且失败两次的故事。Christine 在一次失败的感情之后遇到了 Kyle,Kyle 大概是那种每个人都会觉得酷的男孩。可面对 Christine 的情绪,Kyle 的处理是:不处理。对此 Christine 陷入自我怀疑,开始觉得是自己太敏感、太在乎、太不酷,最后只是卑微地问“那我们还会一起去舞会吗”。

她只是怕你觉得她不够好而已,但这种努力注定失败。

我很欣慰最后 Christine 做出了离开的选择,她没有等待 Kyle 的回心转意,也没有试图证明自己的价值,我喜欢毕业舞会上两个女孩相互依偎共同起舞的画面,我喜欢在充满异性叙事的舞会中导演让主人公选择朋友当做舞伴的女性主义宣言。

友情的核心难道不是在于真实的情感连接吗
友情的核心难道不是在于真实的情感连接吗

在这一场舞会后 Kyle 这一角色再也没有出现,在这个非传统青春叙事中,坏男孩不会改过自新或深情忏悔,在他意识到 Christine 不再愿意当他 cool vibe 的观众时,他便悄然退场。就像校园暴力者永远不会改过自新一样,就像《三体》里的无人忏悔一样。他们只是消失,而我们的原谅是自己走掉。

电影最后两分钟,Christine 走过她魂牵梦萦的纽约街头,镜头很平静,只是跟着她走,这里的街道和萨克拉门托的街道没什么不同,同样的水泥路面,同样匆忙的路人,同样的孤独。我没有 Christine 那种不害怕一切去争取自己想要的东西的勇气,我只是也想起了一次次用尽全力去成为那个不是自己的我,无数次用力过猛的想要证明自己的瞬间,然后一次次发现自己的平凡,总以为到了某个地方,成为某种人,生活就会突然有了意义。但世界还是那个世界,我还是我。

疑犯追踪 revisited#

最近一段时间也一直在断断续续的重温 poi,按理说我也该免疫了结果比以往哭得更狠了怎么回事,感觉又发现了好多以前没有懂的地方。记一些观后碎碎念,结果一不小心就写成了卡姐合集。(谁叫是全宇宙最好的卡姐 blobcat_melttears

最牛的台词之一#

卡特和李四聊着战争,子弹、地雷、爆炸、费卢杰,那些战场上的伤痕,那些普通人永远不会得知的形状。

李四问:“那是你离死亡最近的一次吗?”卡特指指自己的小腹:“十三针,剖腹产,泰勒是臀位。”

天呐我真的哭了,编剧到底是怎么写出这么绝妙的对比的……最平凡的战争,最残酷的死亡,每分每秒都在地球上的女性身上发生。成为母亲,就是成为战士。

人生的最后一分钟,你要不要活得有点价值?#

第三季第七集。拉斯基开心地向卡姐汇报当天的战果,卡姐笑着鼓励着这个终于找到正道的孩子。可这一切都被铁尼的到来打破了,一瞬间气氛剑拔弩张。

拉斯基着急地想拔枪,他了解回头路的艰难,也太珍惜这来之不易的光明,他愿意用生命去守护。可铁尼这个在道德边缘游走了大半生的老警察又怎会让他占得上风?经验与绝望的较量,最后以经验的胜利告终。卡姐的呼喊声在枪声中湮没,一切都太迅速的来不及挽回。

一瞬间,卡姐成了最后站着的人。明明一分钟前大家都还在笑着的。她迅速决定向铁尼问话,每一句都铿锵有力直击人心,Taraji 在这里贡献了无敌感染力的表演 ablobcatnodmeltcry 做了一辈子黑警,人生的最后一分钟,你要不要活得有点价值?

我又哭。我们的卡姐真的是闪着完美的人性光辉的卡姐。卡姐身边的每一个人都会被她的光感染 blobcatmeltcry blobcatmeltcry

下次写豆豆的高光时刻。

Is it just a figment of my imagination?#

S4E20.第一次看的时候我觉得无聊,再一次看觉得自己好无知。

寒冷冬夜,寂静郊区,失温与枪伤令无所不能的特工陷入幻觉:与故人重逢,洞见内心的孤独和软弱。

卡特像一个精神向导,是那种撕破黑暗坚守光明的人,从军经历让她与李四感同身受,又因为她是一位母亲,对一切平静包容,你可以向她倾诉秘密而不受任何审视。我想她一定不止一次对李四说,John you can change too,然而敞开心扉需要勇气,可想而知李四顾左右而言他,轻轻揭过,总以为“我们时间多得很”。卡特看穿他,早早给出结案陈词:我见过太多死人,你知道他们有什么共同点吗,他们谁都不知道自己要死了。

那些被离去之人所留下的人,只能被时间推着继续往前走。

李四最终永远错过在真实世界与之交谈的机会,于是他说,我独自探访另有原因,说这是再次接近你的机会,说我不愿与其他人分享,耿耿于怀,神情像征求母亲原谅的无助孩童。

最残忍的是,那个与卡特盯梢的寻常夜晚可能从头到尾都只是他的臆想。我们总是在失去后才意识到,那些平淡无奇的时刻有多珍贵。一起坐在车里等待,偶尔说几句无关紧要的话,这种日常的陪伴竟然成了最奢侈的回忆。

相比 11 集肖牺牲自己拯救小队的悲壮,这集更多是淡淡的遗憾,我以为你还在,抬眼望去,只有月光照在空荡荡的座椅上。

I just wish we had more time.

好消息是你并不孤独#

我喜欢悲伤的故事。但不是那种一味堆砌痛苦,然后突然结束,美其名曰“现实主义”的东西。我说的是另一种悲伤,即使结局不完美,你也会觉得这一切经历过值得的。

《疑犯追踪》里有很多失去,很多事情没能如愿。但它总是在讲选择,讲自由,讲希望这些东西,它不会告诉你生活很轻松,但也一直在告诉你“还有可能”。

人生有时候确实很糟糕,这没什么好掩饰的。不过我们总觉得自己的痛苦很特别,没人理解,其实可能别人也在经历差不多的事情。

这大概就是为什么我们需要故事吧,让我们发现原来痛苦可以被理解,原来即使在最糟糕的情况下,人还是可以做出选择的。

七千次模拟#

好喜欢第四季的肖。第四季开始就弥漫着一种无力的 BE 感,敌人空前强大,我方人手严重不足,钱也一分没有,李四也不再是都市传说的 man in the suit,Root 不能再自如地接受 TM 的指令。当一切都事关 survival 时(他们甚至还要打工……),所有人的精神状态都变得有点死死的。

但肖还是一样,调戏调戏李四,吐槽吐槽老板,和 Root 蜜里调情,宠爱 bear,一样臭脸,看到喜爱的超级武器两眼放光,有人能突突就会开心,在电脑前吃零食,出任务不能带这个狗就带那个狗,感觉肖的内核极度稳定,在乎的东西也很少,环境对她好像不会造成什么影响,尽管生存环境恶劣,她仍然带着前几季的舒服惬意,什么撒玛利亚人,什么 to be or not to be,什么 AI 末日,大不了毁灭。406 救大叔那集人家说李四肯定不是警察,谁懂她在楼上“whoops”偷笑,好灵动,好可爱,好轻盈,肖是那种任何人都会爱上的小女孩 acry blobcat_melttears blobcat_melttearsblobcat_melttears

可就是这样的肖在撒马利亚的模拟下最后也濒临崩溃。她的防御机制是简化世界,但模拟强迫她面对世界的复杂,她被迫一遍遍地经历同样的场景,被迫在救 Root 和救其他人之间做选择。对于一个习惯了不在乎的人来说,被迫承担这种选择到底是多大的一种折磨。乔纳森诺兰你给我写的是什么啊!ablobcatbongocry ablobcatbongocryablobcatbongocryBlobCat_NotLikeThisCryBlobCat_NotLikeThisCry

Murderbot 也有选择孤独的勇气#

最近也看了 Apple TV 新出的剧,目前只改编了小说的第一部,结尾是我最爱的一部分,Murderbot 并没有像大家期待的那样跟着大家庭,而是选择了一个人踏上孤独的旅程。

"I need to check the perimeter."

我不知道我是谁,但我知道我不需要成为你们期望的版本,我只需要成为最好的自己。即使这条路上只有我一个人。

好难过但又好为 Murderbot 开心。这里跟《底特律:变人》里的情况完全不同,康纳对 lieutenant 说:

“I'm whatever you want me to be, lieutenant.”

记得这里在游戏里的选项是“中立”,我当时就想这到底哪里中立了啦!这不是赤裸裸的撩汉是什么。

迁移到 Artalk 过程中的一万个坑#

很馋 Artalk 的用户徽章,于是在 Thun 的帮助下,我将评论系统迁移到了 Artalk。(非常感谢我们遥遥领先 Thun 的大力支持!! cats ahhh

我选择的是二进制部署,这其中遇到了一万个坑,在此简要记录一下。

守护进程。在 官方给的示例 中,二进制文件所在目录和工作目录不同,这会导致很多用户组和权限的各种奇怪问题,以及 artalk admin 命令不正常。

最后只能放弃研究官方文档的写法,转而将二进制文件和 artalk.yml 全部放在了用户目录 /home/summer 下,在 artalk.service 里写入

ExecStart=/home/summer/artalk/artalk server -w /home/summer/artalk -c /home/summer/artalk/artalk.yml

Thun 建议我放在 opt/{appname} 文件夹下,不会遇到那么多权限问题,这大概是一个更好的做法,但是当时我已经设置好了,就没有再改。

奇妙的数据同步逻辑。在前端设置的管理员用户并不会同步到 config 里。hardly a downside, but a bit confusing.

图片上传。貌似也是因为 artalk 对工作目录的处理逻辑所导致的问题。官方文档就不用看了,没用。以及,某些图床使用 upgit 需要自行安装插件,由于 artalk 黑箱一般的工作目录路径设置也让这一步变得艰难。

有的人已经肉眼可见的开始有情绪
有的人已经肉眼可见的开始有情绪

最后,我将 upgit 配置文件放在 /home/summer/artalk/data/upgit.toml,artalk.yml 里这样写,可以成功:

upgit:
enabled: true
exec: upgit -c data/upgit.toml --application-path data/
# 上传后删除本地的图片
del_local: true

pageKey 问题。我的评论链接格式不统一,有些以 / 结尾,有些不是,还有的带锚点如 localhost:4321/about#anchor。但 pageKey 只能识别其中一种格式,要么是 about,要么是 about/,导致同一页面的评论被分散到不同的 key 下。最后只能手动进数据库把它们统一处理了。

要设置可信域名才能本地访问。

trusted_domains:
- http://localhost:4321
- https://flyalready.com
- https://www.flyalready.com

邮件推送可以在 SMTP 填写其他的提供商。注意要填加密端口。

反向代理。如果按照官方文档给的示例写 Caddy 是没有办法实现 IP 归属显示的。我实验下来,可行的写法是:

artalk.你的域名.com {
reverse_proxy localhost:23366 {
header_up X-Forwarded-For {remote_host}
header_up X-Real_IP {remote_host}
}
}

其他的坑有些忘了,想到再补。

自建代理#

不备案就是想写什么写什么!放这么后面应该没人发现,更多还是健忘人士手册。

6 月底开始,我的外网访问接连不断地出现各种失败。7 月 18 日,我意识到之前付的机场已经过期,便开始浏览各种广告寻找新的提供商。接着,我发现很多提供商都是 vless 主流了,而我是不支持 vless 的 qx 用户。

指望 qx 更新是不可能的事,surge 我又不能用得起,而 shadowrocket 太难用也不想考虑。我再一次萌发自建代理的想法,做了一些功课后我了解到原理是在一台境外虚拟服务器(VPS)上配置流量转发。其实很早就有看到相关的文章,但是由于觉得服务器贵(现在依旧觉得贵),而且意志不够坚定,所以没有尝试过。搜索了一下发现 Azure 面对学生有提供相当大方的额度,可以一年内免费使用服务器,还提供 100 美金抵用金,使用期限一年,到期了还能续,继续给 100 刀。

于是,我决定来自建代理。我按照 这篇文章 的步骤申请了 Azure Student,服务器选的最低配置,系统选 Linux Debian,没有装 docker 和面板。最后实测下来连接速度很快,一周账单 1 刀貌似根本用不完。。

对了,还得在 Azure 设置虚拟机的出站和入站请求,放行所有 IP,不然连不上。

虚拟机-网络设置-创建端口规则
虚拟机-网络设置-创建端口规则

一些我觉得有必要知道的#

(草台警告:以下内容以及英文缩写都是我自己随意理解的)

首先我觉得需要理解一个逻辑是,我们平常在应用的图形界面点击、拖拽等操作本质上是往命令行输命令,告诉计算机去执行这个动作。比如 cp 命令就相对于 Ctrl+CCtrl+V 一个文件。

整理了一些过程中常用的系统命令:

以及在命令行用 vim 编辑文件。这玩意不懂的话操作逻辑相当反直觉,就是说谁第一次进去还以为电脑死机了。

配置代理协议#

友人给我指路了 3x-ui,一键脚本啪的一下安装好了。这时候应该就可以在浏览器里输入相应地址查看了。

其中最简单的是 REALITY,足够安全并且不需要自己的域名。

点击左侧的 入站列表,然后点击 添加入站

其他的都不用管,然后点击右下角的 添加 就可以了。在如 shadowrocket 客户端里导入就能用了。

however#

由于我是 qx 用户,这个软件到现在都不支持 REALITY。。所以我只能含泪再去创建一个 VMess。这个协议需要有自己的域名。

然后,x-ui 里要设置好 SSL。而我在这一步卡了很久,看了日志没找到什么问题,最后发现是 let's encrypt 的 api 崩了。就是说谁的精准踩坑的运气呢 zhennu_pissedoff

什么意思演我
什么意思演我

第二天再申请就好了。

Thun:其实自己签个 100 年的证书也是可以用的。

另外,如果使用 Caddy 反向代理的话,因为 Caddy 会自动申请证书,应该就不用走文档中 Getting SSL 这一步了,我理解是这样吧。

Caddy 配置按照 这里 填就可以。其中 2053 和 54321 都应该对应你 x-ui 的端口才对。

设置完反向代理我就去添加入站了,也不确定对不对反正能用。配置填写:

# Obfuscate the Endpoint
route /api/v1* {
@websockets {
header Connection *Upgrade*
header Upgrade websocket
}
reverse_proxy @websockets xx.xx.xx.xx:54321
respond "Forbidden" 403
}

我理解这意味着 path 应以 /api/v1 开头。建议填一个随机路径,比如 /api/v1/8f91b6a0

添加,完成。

> cd ..