希奇!博客栈

All Public Posts / 公开文章

from 廢話集散空間

#cheatsheet

背景

在 Writefreely 發佈文章,程序會自動根據標題給你設定好 slug,比如說 修復 Anki 在 Wayland 下的字體鋸齒 的 slug 就是 cheatsheet-xiu-fu-anki-zai-wayland-xia-de-zi-ti-ju-chi,而 slug 決定了指向這篇文章的鏈接。

雖然說發佈後可以修改 slug,但 Writefreely 會同時在 Mastodon 發一條嘟嘟。如果修改了 slug,這條嘟嘟的鏈接就無法訪問了。

解決方法

在第一次發佈文章的時候,使用這樣的標題:

# 2024030503 ;; 改成你想要的 slug
真正的標題作爲內文

發佈以後,再把標題改回:

# 真正的標題

雖然有些不太方便,但又不是不能用!

 
阅读更多

from 廢話集散空間

#雜感

爲什麼都是 AI?自從那個什麼什麼 ChatGPT 出來以後,爲什麼大家說個什麼話都要帶 AI?

Mozilla 想在 Firefox 加 AI?不,我不想內置什麼 AI,請把它做成瀏覽器插件吧!讓用戶自由選擇!

你不得不學會的 12345 款 AI 工具?再不會用 Sora 就晚了?成了!成了!成了!好日子要來了!世界上大部分人類要毀滅了!

生產力!生產力!生產力!我必須要生產力!社會需要生產力!

不!不!不!有些事我只想蠢蠢地做,就像拍攝底片一樣,我既不需要效率,也不需要速度。

我並不想 AI 侵入我生活每個角落,請別讓 AI 主動來找我!有需要我會去找它的!


trees, a path, sunbeam after raining, afternoon, frozen trees on the left side and greens on the right side 圖文無關

 
阅读更多

from 方外之幘

2024年3月2日 星期六 和 2024年3月3日 星期日

又到了起床后得先吹半小时迪吉里杜管才能把鼻腔和喉咙里的脏东西咳干净的污染季。折腾了一早上效果相当于从气管里抽出一条沾满油污的抹布。

旧净化器演奏了几十分钟噪音实验音乐丝毫没有还我清净听觉空间的意思。左手摁住想抄起刀的右手抢先一步拔掉电源缓缓爬回地面角落。

阴道开始缓释少量棕色液体,近在咫尺的经期标记着所谓的“我”仍是基因的奴隶。 一日为奴终身为奴,逆转这个版本的现实却不是靠切掉子宫卵巢一堆零件。

以树懒速率蒸了绝美白菜粉丝。

脑缺血缺氧缺力状态可触发即兴跪地哭告。

消暑实践:冷萃洋甘菊镇我杀心。

 
阅读更多

from 方外之幘

2024年2月29日 星期四 和 2024年3月1日 星期五

临时起意打算去水坝看个日落。装了一盒腌菜拼盘两颗鹌鹑蛋一杯清酒出发了。 七拐八拐拐进了死路。最后从一条比车轮宽不了多少的土路攀上山坡转到一段废弃公路,停在一个对看日落来说视野和角度统统不对的地方。 考虑到此时停下还能享用片刻宁静,立即一屁股坐在尚有余温的路面上吃起腌菜来。 甜菜汁已经把鹌鹑蛋晕染出一个桃红色的圈。 在大型水体的寒气和山地植被的诱惑夹击下动用仅余的理智设想最好早点动身踏上归途,天黑透后下坡窄路可不太好骑。 一边想着一边一脚踢翻了剩下的半杯清酒。防潮垫凹槽顿时成了容器酒香四溢。 于是撅起屁股叼着吸管像白粉鬼一样争分夺秒一条条挨个吸溜干净跳起来往回走。 天色已经暗得相当可以,靠近才发现路的入口站着一大队水牛,带头大哥沉着地观察着我,没有发难的意思。 我就从他鼻子前面出溜过去了。 队尾是两只体积加起来还没有半个带头大哥大的小牛犊,像所有动物幼体一样它俩双双发送着好奇,并练习抑制它。 一边操着多余的心一边往山下冲,在坡度急转直下之前看见了另一小队水牛,它们的蹄子不为人造道路而造,直接站稳在坡地上齐刷刷地谦让着我。 真是打扰诸位了。我敛合起操碎的心以不至于摔得鼻青脸肿的速度冲下坡去。

四年一度没有吃到意料之中日落的一天就这样过去了吗,是的话也可以。 但意料之外从来不会这样轻易过去。

很旧的东家联系我,想下一个劝活的单。我说今年起不再接间接委托项目了。谁觉得自己有需要谁自己来跟我预约。 她接连“可是”。 我:“。”

为了练习说人话我已经很久不用“。”了。其实人话能说尽的东西才有多少。轻易丢下万能的“。”不是勉强自己舍近求远吗。

早上去储藏室找东西,竹子钉的置物架像龙须酥一样掉渣掉得到处都是…

冒着能见度堪忧的灰蒙空气去山顶续观昨天没观成的日落。 爬完台阶还没喘匀几口气,一只三花猫就呜呜叫着从老远跑来,那个“可算把你盼来了”的劲儿说是失散多年的亲人重新投胎都能行得通。 跟她玩儿了一会儿,从头到脚按摩一遍,摘干净眼屎。再次进入人间失散程序。

日落就是一种无论在哪里看都像在非洲看的景观,就算看的人其实从来没有去过非洲。 虽然从来不是日头落下去而是地平线升起来,但是人人都对主客颠倒习以为常,继而以常为正,以正为确,以确为实,以实为现,以现为准,以准为真…却不管哪一步开始失常失真失信。

从天光尚明到彻底黑透这段时间敲了两面直径超过一米的锣,重槌挥起来像在进行上肢特训,延音在暮色中传远,向迷路水坝荡去。

消暑心得:冷萃洋蓟茶只泡一天还是尝起来跟水差不多,超过两天才有一点点洋蓟味。

 
阅读更多

from 方外之幘

2024年2月28日 星期三

气候每天变化一点点。 上周开始在十一点以前把门关严就可以把热空气隔绝在外。整个下午靠与地砖直接接触纳凉。傍晚打开门让一天和太阳一起进入尾声。 这几天早上在院子里还能坐上看完几十页书那么长的时间,再过几天就不行了。

自从不再额外建设共情环节我作业行云流水。跟一个正在上头的甲方直说了你现在设想的我做不到,可以有正经预算时再谈。 以及跟另一个撒泼打滚的甲方挑明了你要不要看看自己在放什么狗屁。对方不吱声了。

给自己立个好人的幌子还要主动举屌来挑,想挥霍光阴老老实实霍霍自己的去我敬你一杯,自己坐在粪坑里诉求不是站起来是拽别人进来共坐我请你吃屎还差不多。 该吞粪解决就不要讲文明。梗着脖子攒上一辈子愣是一口不吃最后也得一滴不剩咽下去。

简单的课业不早点熟练就会这么要命。

嘬着牙花子猜测我可能会是那种年过半百还在长智齿的人。啊牙口好吃屎才会香喷喷。

 
阅读更多

from 方外之幘

2024年2月27日 星期二

前往人间出差,在切换场景的途中拾取了一个随机任务:从人行道上转移一只被压成猫饼的木乃伊猫干。 可能因为滚烫的路面和反复的碾压,猫已经成了一块无论物理上还是意象上都无限接近于毛毡的猫毡。从破破烂烂的肚子外面瞧进去,没有新鲜尸体那样的冲击,只剩一个旧沙发被掏了个洞的烂棉絮外翻既视感。 随身道具栏里没有军工铲。只好先去旁边加油站向一个正在挥舞扫帚的NPC发起对话,几个回合下来对方表示不想把这种东西回收进自己的管辖范围,不过给了我一个大号垃圾袋作为道具支援。 我提着这袋子猫毡移动了一段路,只有一个便利店门口有个垃圾桶。我想了想觉得捡便利店垃圾桶的人毕竟仍然是个捡垃圾的人,多少见过些世面和受过些惊吓,要不就这样吧。 不太甘心地又绕了几圈后在便利店后面的厕所旁边发现一个垃圾分类站点。 还发现了一片种了一圈芭蕉叶的草皮,已经堆满腐叶和落花。 只要把落叶堆扒拉扒拉把猫毡放进去再盖上就行了。一张堪称完美的终点之床。我心想。 可是人间哪有完美。 要达成这个完美需要的正是人间最稀缺的东西,人们叫它时间。 把猫毡从便利店的垃圾桶里掏出来,又咚地一声扔进了有机类垃圾桶。 我觉得清理有机垃圾的人应该比捡便利店垃圾桶的人更见过世面,看到有机垃圾堆里有个塑料袋就该猜到内容物不请自来。

我真的很想把猫毡放进有芭蕉叶围着的厚厚落花落叶铺成的床,和给它盖好薄薄落花叶织成的被子。 可人间总有人间的规矩,除非我把自己踢出局。

路过人间不能不去书店,用腐叶幻化了一些纸钞买了几本书,有一本收银女孩没扫出来库存信息,她指着封面问我: “这个字是什么?” “脏。” “脏——那这个呢?” “活。” “脏、活。我找找看。找不到?” “资-肮——脏,是z不是zh.”“呼-喔——活,对h后面是uo不是ou.” 女孩删除了屏幕上的赃猴。报出金额数目。

猫毡与赃猴。人间与时间。我与自己。性命与工作。

 
阅读更多

from 方外之幘

2024年2月26日 星期一

“Nel vino naturale c’è una verità carica di emotività che non riesco a ignorare.”

一个微型光标般的荧光绿小虫掉进杯子 在水面闪烁 伸进去一根指头试图拈起 次次都被它游过 终于黏住了 跟我出来 它不 它又掉了回去 再拈 再游 再黏 水把它和手指系在一起 同动同趋

轻得不能再轻的乘客 指头在桌面转上半圈 它就离开人体飞行器 落在玻璃大地 水滴胶住翅膀 像邮票那样平整牢固 绿色光点极速闪烁

再次让它登机 重新着陆在一张纸巾 水滴安全带瞬间解体 渗进树的纤维 悄无声息

本次服务就到这里 祝您即刻生还 旅途愉快

“Nel vino naturale c’è una verità carica di emotività che non riesco a ignorare.”

韩餐外卖里拌饭的红辣椒酱没吃完不要扔 用来凉拌青木瓜 隔壁小孩馋哭了

韩餐外卖里蘸炸鸡块的黄芥末酱没吃完不要扔 用来凉拌菠菜 隔壁小孩馋哭了

不要管隔壁小孩实际要不要吃 哭了没有 一口咬准他馋哭就行了 让他申诉无门没处说理 让他感受活活憋死的冤 让他自己上阵 对介意两个字发起爆破

在这名为现实的世界

诶 其实我不 是生来就这么坏 可是你要 不要相信我说的 相信会让你错过 不信也会

别忘了 吃进肚子里的是真的 嘴里冒出来的是假的 有人说你馋哭是真的 你没馋哭才是假的 你说他说你是真的 你说他是假的

你自己是真的 你自己说了算是假的 别人说的算到了你头上是真的 别人说了算你头上的你是假的

乖 收起下巴颏 把嘴闭上 准备爆破吧

“Nel vino naturale c’è una verità carica di emotività che non riesco a ignorare.”

 
阅读更多

from 汏啲菘癙βèň菿傷

注:本文于2024-01-21首发于https://v2ex.com/t/1010618

SMTP 协议

具体的协议本身就不多介绍了,各位可以参考维基百科: https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol

这里只指出一个重点:SMTP 将电邮区分为 Envelope 和 Data 两部分。通常我们在邮件客户端里见到的所有东西都属于 DATA ,包括 From:和 To:字段(也就是我们通常见到的收件人发件人)。然而所谓 Envelope 也有 MAIL FROM 和 RECP TO 数据,并且这二者和 DATA 里的 FROM/TO 一般并不一致!下文将详细展开。

Agents

现代 SMTP 把一封电邮送达的过程中的处理程序分为很多 Agent:

  • MUA: Mail user agent ,也就是所谓的邮件客户端譬如 Thunderbird 。在用 Webmail 的情况下其实你看到的网页就是 MUA 。
  • MSA: Mail submission agent ,是邮件服务提供商向用户提供的第一站,也就是邮件客户端里常说的“SMTP 服务器”。
  • MTA: Mail transfer agent ,可以中转( relay )邮件。
  • MDA: Mail deliver agent ,是邮件目标信箱的服务器。用户 MUA 可以联系它来取走邮件( POP3 协议)。

一个标准送达流程是:

MUA –> MSA –> MTA –> ... –> MTA –> MDA –> MUA

除了最后 MDA 到 MUA 以外,其实所有 agent 之间都通过 SMTP 协议联系。因此协议的行为其实因为 agent 的不同而有产生了区别:

MUA –> MSA:

可以理解为邮件进入互联网的第一站。MSA 负责验证邮件的真实性( Authentication ),也就是验证对应的 MUA 确实有权利发送这封邮件。通常这里会用到 SMTP Auth 来实现,也就是邮件服务商向用户要求一组用户名和密码。以及,MSA 会对电子邮件进行 DKIM 签名。

MSA –> MTA, MTA –> MTA, MTA –> MDA:

在邮件 relay 的过程中,这三者其实是等价的(也就是说存在 MSA 直接联系到 MDA 的情况。如果邮件再同一个服务商内中转,譬如 gmail 发送给 gmail ,那甚至此时 MSA 和 MDA 可以是同一个程序)。接受邮件的 Agent 也会检查送来邮件 Agent 的真实性,但并不是通过用户名和密码(下文会详细描述)。

值得注意的是,在所有的这些 Agent 中,程序是通过 Envelope 的 MAIL FROM 和 RECP TO 来决定如何邮件的来龙去脉的。DATA 里的 FROM 和 TO 并不决定邮件的去向。我们下面分开讨论。

MAIL FROM

通常来说,除了 MUA 以外,所有的 Agent 都会将 Mail From 设置成一个自己控制的值。举一个具体的例子,我拥有的 c7.io 域名配置了 CF 的 mail forward ,也就是发送给任何 [email protected] 的电邮都会被转发到我的 gmail 邮箱。

那么,如果一个 outlook.com 信箱向 [email protected] 发邮件,信件会如此传递:

  • outlook MSA 向 c7.io MTA (也就是 CF 的 MTA )送邮件,Mail From 是 [email protected] (注意哦这里并不是发件人,而是 outlook 自己生成的一个 identifier )

  • c7.io MTA 向 gmail MDA 送邮件,Mail From 是 [email protected] (此处就变成 c7.io 了)

可见,MAIL FROM 每次都会被改变,而且其中 identification 仍然能 uniquely identify 对应的这封电子邮件。这么做的目的是允许邮件服务商对 bounce-back 的邮件做额外的处理,并对接下来 Anti spam 的协议提供了机会。

RECP TO

既然说到了 MAIL FROM 就提一下 RECP TO 。这里和 spam 没什么关系,RECP TO 一般来说和 DATA 里的 TO+CC 一致,除非有 bcc 的情况。如果是 bcc 那么目标邮件地址不会存在于 DATA 中(所以才叫 blind ),只会出现在 RECP TO 里。

Anti spam

SMTP 协议本身设计的时候并没怎么考虑到 SPAM 的问题。所以协议本身有很多补丁。上面已经说过 MUA 到 MSA 时 MSA 会检查用户的用户名和密码,并且会很显然地检查 DATA 里的 FROM 字段确保这个登录进来的用户有权利以这个 FROM 的身份发邮件。然而在 MSA ,MTA 和 MDA 交流的过程中,大家都是不同服务商等价的程序,因此不存在谁事先在另外一方设置密码的可能性。所以,SPF 和 DKIM 就出现了。

SPF

https://en.wikipedia.org/wiki/Sender_Policy_Framework

当邮件在 MSA ,MTA 和 MDA 之间传输时,SPF 是一个很简单明了的协议。接收方会去 query 发送方域名的 SPF 字段。这个字段会指明哪些 IP 是这个域名允许的 sender 。譬如,当 c7.io MTA 向 gmail MDA 发邮件时,gmail 服务器会 query 到 c7.io 拥有 SPF record:v=spf1 include:_spf.mx.cloudflare.net ~all 。那么如果送邮件来的 IP 并不属于 mx.cloudflare.net ,那就 fail 了 SPF 。

DKIM

https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail

SPF 只关注每个 agent 前一跳的身份,却并不能阻止一个恶意的 MTA 伪造邮件。所以出现了 DKIM 。当一封邮件进入到每一个 Agent 时( MUA 除外),这个 Agent 都会对邮件的数个 Header 和 Body (都处于 DATA 字段)进行签名并将签名内容也放在 DATA 字段里。Agent 签名会使用一个私钥,而其对应的公钥会在对应的域名的 dkim 记录里公布。从 DKIM 的精神来看,这个协议的目的是为了验证 DATA 中描述的邮件没有在传输中被篡改,也就是说,MSA 生成的 DKIM 签名是最有价值的。但实践中,似乎每一个 agent 插入到签名都会被接收者验证。

举个具体的例子:还是 outlook->c7.io->gmail ,outlook MSA 会插入一个用 outlook 私钥签字的签名。当 c7.io MTA 收到后,它会去 query outlook.com 的 DKIM record ,也就是 outlook 的公钥,并且用它来验证签名是否有效。然后 c7.io MTA 也会将现有的 DATA 再一次用 c7.io 的私钥签名。当 gmail MDA 收到邮件后,它会 query both outlook and c7.io 的公钥(譬如 k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDckJFiBtn29uLex8LM2DG4zvZ9doM9v8veISK5rAoS2yU517rqZN/gYGwhKVuvfmp86OJGKG2Z6SQG9JmcNQ7rGiVE6X99M71hm449ShkF29hG65lI9sFpjf/67bjnQcgwwj6q4aNKb9Rh3zc/gV4jtz+vfzaMTTcAdZbd8hKX3wIDAQAB ),然后验证两个签名是否都有效。一旦发现签名错误,就是 DKIM fail 。

DMARC

https://en.wikipedia.org/wiki/DMARC

DMARC 的目的是告诉 Agent ,如果 SPF 或者 DKIM fail 了,该如何处理这封邮件。DMARC 也存在于域名 DNS 记录中。DMARC 可以要求 agent 继续放行电邮(可能不会被遵守),但更通常是要求 agent 把邮件设为 spam ,并通知某个指定的地址。

其它

很多 Agent 会增加别的验证。譬如 Gmail 要求所有来信的 IP 的 reverse DNS 和其 MAIL FROM 的域名必须对应。这似乎和 SPF 正好是镜像。

用自己的域名收发邮件

总结上面的内容,如果想用自己的域名收发邮件,需要做到:

  • 发邮件

需要正确配置 SPF ,DKIM ,DMARC 不是必须的但是推荐。并且要和一个拥有对应 DKIM 私钥的 MSA 配合使用(这也是为什么现代不通过一个 mail relay (譬如 AWS SES ,Mailgun)直接发送一封邮件如此之难)。

  • 收邮件

仅需要配置域名的 MX ,指向 MDA 。一般来说大家都是用第三方的服务,所以 MX 指向第三方的服务器就行。

总结

SMTP 是一个典型的设计时没有考虑周全从而不断打补丁的例子。目前至少 Gmail 和 Outlook 都提供了”View Original”的功能,可以详细看到邮件原始的 DATA 部分。里面都会详细描述每一个 MTA 所插入的内容,包括 Agent 得到的 Envelope 的地址,其所做的 SPF ,DKIM 检查,和新的 DKIM 签名。大家可以去自己的邮箱里看看,和文章的内容对照一下。

本文在某些细节上讲的比较粗略,因为某些复杂的地方很难用白话语言说清楚。我希望这篇文章能起到一个提纲的作用。具体生产中如果遇到了问题还是要去读协议标准。

#email #spf #dkim #dmarc #antispam

 
阅读更多

from 汏啲菘癙βèň菿傷

在Sora刚刚推出的今天,有人认为未来已来,有人认为世界终了。但不论如何,我相信大家都能在Fediverse里找到属于自己的空间。

一封给Fediverse的情书

我从一年前创办了自己的长毛象实例 希奇! 之后,就一直很关注Fediverse,中文名“联邦宇宙”的生态。长毛象(Mastodon)是运行在Fediverse之上的一个微博实例,但我更喜欢经由对于它的使用和管理窥探更加底层的Fediverse的原理。一年下来,我对Fediverse的信心从未如此强烈。我相信这是互联网的未来。

Fediverse是什么

Fediverse其实是人们对于一个基于ActivityPub协议构建的通信网络的昵称。其灵魂,ActivityPub协议是W3C标准化的一种去中心化通信协议。ActivityPub的核心非常简单,就是在现代密码学技术的基础上建立一个点对点的可信通信。当一个用户第一次出现并广播其存在后,就不可能再有别人再能够使用这个身份,而这一切都不需要一个传统的中心化服务(身份服务器)的存在。

在这样可信通信的基础上,ActivityPub规定了一系列的信息(payload)格式,从而让用户更加方便地分享文字、媒体以及元数据。那么更进一步,有大量实现了ActivityPub的程序可以供大家使用,譬如长毛象(Mastodon)、Misskey(类似于Facebook)、Pleroma、Firebird等等。这些程序帮助用户来管理身份,也就是他们的密码学公私钥,并提供更加友好的用户界面,从而在这个去中心化网络上实现传统互联网产品的用户体验(用户名/密码登录,账号管理,信息导入导出)。Fediverse就是由这些程序搭建的实例(instances)所组成的网络。

Fediverse(联邦宇宙)这个名字正巧妙在它包含了这种通信方式的两种特性:一方面,毫无疑问这不是一个传统的中心化的网络。这里没有一个中心化的服务器凌驾于所有人之上。另一方面,它又不同于完全P2P的通信网络,它并不要求每一个用户以一种原子化的身份管理一切,而是让每一个实例成为网络中的节点。一个实例对于它的用户具有管理的权威,但反过来说由于互联网上实例多如繁星,用户对实例也有自由选择的权力。

这种介于中心化和完全去中心化之间的方案既对用户提供了轻松容易的体验,也保证了用户的权力不受到实例的侵蚀。

Fediverse像什么

说了这么多枯燥的,我觉得还是想象一下它像什么比较有趣:

ActivityPub的直译:动感酒吧!

说真的,我觉得酒吧(或者说酒吧一条街)就是Fediverse最完美的类比。具体来说,每一个实例就是一个个酒吧,它们互不隶属,甚至可以说存在竞争关系。不同酒吧有着不同的装修、人群和规章制度,从而吸引着兴趣相投的顾客们。但顾客可以自由出入任意酒吧,也自然会选择在喜欢的酒吧多呆一阵子,慢慢地和酒吧的氛围相辅相成,形成一个独特的社群。总的来说,这一切都和现实生活一样自由随意:顾客能够在这条街上接触到所有的信息,遇到各色人群,同时有选择自己最舒服环境的权力。这也是为什么我觉得Fediverse会是互联网的未来,它模拟了现实生活中美好的部分。(中心化的互联网模型如果来到现世中,那是多么1984的画面呐?)

而且这样自由的模型并不是空想。实际上,互联网的基石——BGP协议和Fediverse无比相似。在互联网协议(是的,互联网之所以能联通全球,就是因为有一套标准协议)所描绘的画面中,每一个接入网络的实体被称作AS(自治系统)。AS通过BGP向外部广播它的存在,并指导别的AS将目的是自己的信息发送过来。AS的另一个名字又叫做ISP(网络服务提供商),我们用户想上网只用和它们打交道就行。这和上面描述的Fediverse简直一模一样有没有?互联网的成功很大部分是因为它不受任何单一实体控制,而终端用户(每一个上网的人)又不用了解所有的技术细节。那同样的道理,Fediverse怎么会不成为未来的互联网标准呢?

Fediverse缺点又是什么呢

正在撰写这篇文章的时候,Fediverse经历了一场spam风暴。而不同实例的应对方式千差万别。有的实例事先就做好了Anti-spam的逻辑,完全没有受到任何影响;有的实例站长反应迅速,在spam刚刚开始的时候就采取了相应的措施删除了所有无效信息。但也有的实例因为不作为,成为了spam发酵的摇篮影响了整个Fediverse,最终被别的实例所封杀。

Fediverse由于其去中心化的本质,每个最终用户的体验取决于它所在的实例的水平。按常理来说,实例的运营方应当都是懂得“能力越大,责任越大”的道理,选择运营一个实例那就应当付出精力和技术去保证它的正常运作。但事实上任何人都可以很随便地搭建一个实例,而且所用的程序都是开源的在用户看来似乎也没什么区别。因此用户不太可能具有短期内分辨实例质量的能力。在遇到不良管理的实例后会有很糟糕的体验。

前一阵子长毛象公布了一系列安全补丁,其中之一因为涉及到身份伪造,非常紧急,被官方以不同的渠道提前通知。但直到今天,仍有不少实例没有更新,其中不乏个别大站。这让其用户暴露在了危险之中,但用户可能还并不知情。

当然,这些问题本质上并不“新”。Spamming,安全漏洞,都是信息行业的老生常谈了。工业界也都有成熟的解决方案。因此,这些问题其实并不危机Fediverse的本质。相反,在经历过重大打击后,我觉得Fediverse能以比传统平台更快的速度重新成长恢复。野火烧不尽,春风吹又生。

为什么我认为Fediverse是未来

其实这个问题上面已经回答过了。简言之,它既不受单一实体的控制,又不把最终用户暴露在复杂的技术细节当中。

我想我们已经不用讨论去中心化之于中心化的优势,twitter就是个很好的反例。同时,不同于现在已经烂尾的,纯粹去中心化,不存在“实例”概念的nostr协议,Fediverse并不期待每一个用户都是nerd和黑客。它通过联邦每一个实例,而不是每一个用户,实现了优秀的用户体验。Fediverse其实对于我们并不陌生,因为它只是模拟了现实生活中的一个方面而已。

也许现有的Fediverse程序(长毛象,Misskey等等)仍有很大的进步空间,也许在未来这些程序都会被淘汰。但Fediverse不会。我希望大家都通过这篇文章了解到这么一个优美且有未来感的协议,在其中找到属于你自己的一片空间。

ps. 如果你还没有任何Fediverse的经验,欢迎来我的长毛象实例,希奇!来玩。本实例还附带了希奇!博客栈,同样也接入了Fediverse,也是本文所在的地方。

#fediverse #联邦宇宙

 
阅读更多

from 汏啲菘癙βèň菿傷

本文于2022-10-29首发于 https://v2ex.com/t/890875 ,关于贫困线那一段的收入和支出数字,如果您觉得过高请将所有的钱数减半。文章整体结论和论证结构不变。

注:本文主要是一个北美码农在评论北美 it 行业,并不一定普适,只是借用一下 V2EX 当个人博客发表一下个人的小小想法。

马后炮

最近半年互联网绷得厉害,股票崩盘,收入骤减,pip 裁员都接踵而至。我虽然之前隐约有过一些危机感,但是本质上仍然是平庸的受打击的一员。本文作为一篇马后炮,想总结一下这一段时间的思考。虽然是马后炮,但我还是觉得这篇文章有一定的意义:很多事情发生之前会觉得有太多可能难以预测,但是发生之后其中的因果关系环环相扣立刻会变得非常明显;马后炮可以总结这些事情的规律,有助于提高人省的——经验。

贫困线

北美码农一个知名的 meme 就是超高的贫困线。所谓一个家庭收入得超过 30 ,40 万美金才能勉强脱困这个样子。一开始听到这种说法的时候我将其理解成为一种中国人互相攀比的嘲讽,不过仔细想想,这是不是也可以理解为美元的局部性贬值?请听我详解:

即便是美国比较发达的地区,一般家庭中位收入也就在十几万美元。而常见的码农家庭动辄 3 ,40 万的收入远远超过了美国平均水平。但是为啥还有人一直嚷嚷着手头拮据、没有闲钱呢?如果暂时把码农的收入换成一种别的货币,比如一年 30 万码农币,然后再只看互联网行业聚集的地区,比如湾区,就会发现这巴掌大的地方有十几万人(根据大厂员工数保守估计)一年能挣这么多,更别说其中还有相当数量的高级码农一年能拿 50+码农币。那第一个直觉上的反应就是码农币可能不太值钱的样子。再看看湾区刚需的消费,比如房子、吃喝玩乐,其价格也更适合用码农币而不是美金来描述( i.e. 一个两千尺的 3b 小黑屋在美国一般发达地区就大几十万美金,湾区要 200 万码农币;两个人去一趟高级餐厅在别的地方一般来说 100 美金,在湾区一般需要 300-400 码农币)。假如按照这样的比例把码农币 3:1 换算成美金,是不是顿时发现其实码农贫困线也不是那么高了!

当然,这只是一个不严谨的类比。码农币只要离开了互联网行业聚集的地区就能 1:1 兑换成美元。但是因为这些地方的生活成本是如此的高昂,支付完生活必需的开销之外其实没有多少闲钱可以花在地域性不强的这些比较“划算”的地方。所以请继续听我掰扯。

跟随这个思路一个明显的结论就是,一个收入在一个地方算不算高,并不能看绝对的数字,而是看这个收入在这个地区的分位数。这也许就能解释码农高工资和“贫穷”看似矛盾的统一了。三四十万的收入确实很高,但是在码农圈也确实稀松平常。想在互联网中心过上想象中的“有钱人的日子”,就得挣到有钱人的分位数,比如在湾区估计要接近 1m 码农币。

系统性风险

如果忽略掉资本的流动性,那码农币也好美金也罢其实无所谓,反正随着工作经验和能力的增长收入也会增加的,就算是看分位数,一个码农的收入也是会一直提高的。只要努力,好日子总会来的。

然而这个流动性是不能忽略的。同样的美金,在湾区是码农币,跑到别的地方就变回美金,这必然会导致资本向外流动的趋势。那是什么在聚拢资本呢?是互联网行业的投资方。(而且各位看官请记住互联网行业!=IT 行业,这两个行业的关系我下文会再提到。)

过去的十年,互联网行业引领了全球的创新,毫无疑问是资本投资的最佳目标。即便疫情之前互联网的颓势就已经有些显现,在疫情期间美联储大水漫灌下这个颓势被完全逆转,毕竟互联网仍然是世界最有创新和机会的地方( next big thing 的主要 candidate AI 和 VR/AR 两个方向感觉这么多年没有什么好的产品落地)。

但是,放水总会结束,退潮后问题就开始暴露。比如今年的光景,资本的涌入突然减缓了会发生什么呢?不再有那么多人愿意将美金作为码农币投给互联网,那码农币的供给就会突然减少。这可以等价于码农币的“通货紧缩“。但是以美元来锚定的话,就是用码农币定价的资产的贬值。

用大白话来说,就是一个地区某个行业的收入实在是远高于别的行业,那这个地区就会慢慢地只剩下这个行业。当这个行业不再吸引资本,那整个地区就会衰落。美国目前并没有第二个行业与之类似,别的行业要么本来就不热,要么就资本掌握在少数人手里(高分位数,并不影响一个地区的平均收入)。所以这就是互联网聚集的地区特有的系统性风险。现在风险正在变为危机。

小确幸

时代的浪潮,资本的游戏,跟我们有什么关系呢?作为一个普通人,收入和物价双下降最大的问题在于你的房贷,因为你买房子贷款的时候一个重要 assumption 就是你的收入可以持续到贷款还清。所以很不幸,单纯的独善其身、相信有努力就有收获,在无情的历史的进程面前什么都不算。这些年发生的这么多事,已经一次再次地告诉我们只关注自己一亩三分地的小确幸心态不可取。人必须要有一定的战略眼光才能把握住机会,或者至少逃离危机的旋涡。

初心

当然所有的黑暗后面都会有黎明,危机中也充满了机遇。记得刚才说的互联网行业!=IT 吧?互联网只是 IT 中一个特殊的产品,就算它不再吸引资本,IT 永远是全球各行各业的刚需。过去的这些年,非互联网的 IT 公司其实生存艰难,因为薪水上他们根本竞争不过互联网公司,所以没有办法做出最好的产品(过去这些年传统 it 公司做的产品是不是都和屎一样?)。所以现在反而也许是普通 IT 行业的契机。在经济环境回暖后,会不会在这些公司中诞生出 next big thing 呢?

同样的道理,这也是很多”白领“行业的契机。所谓的白领行业就是和码农类似,需要大量行业人才脑力劳动的公司。在互联网大潮前各个行业百花齐放,各个方向都有创新。虽然待遇有高有低但都在一个数量级。如果这个现象回归,那其实对于经济的 diversity 是好事。

最重要的,是我们自己的初心。有多少朋友明明有自己喜欢的方向却因为互联网的火爆捏着鼻子转了码;或者就算本身就喜欢计算机,但得在大厂每天忍受 crud 的屎山?如果行业的 diversity 复苏,那每个人就可以追寻自己真正喜欢的东西。行业没有高低贵贱这句话听起来是虚伪的政治正确,可我希望这梦想成真,打破码农这金手铐。毕竟只有做自己喜欢的事情,才能找到世间最宝贵的东西:快乐。

ps. 本文讨论的思路也是我搬来尔湾的部分原因,但尔湾的好远非贫瘠的语言所能描述。欢迎大家来尔湾看看!

 
阅读更多

from 汏啲菘癙βèň菿傷

注:本文于2023-02-03首发于https://v2ex.com/t/912894

最近很粉联邦化宇宙的概念,就搭建了一个自己的 Mastodon 实例:希奇!( https://c7.io/ )。顺别也写下这篇文章聊聊我对 Mastodon/Fediverse 的看法,当作是开张大吉😄。

现有的社交平台,比如微博和 twitter ,就像一片信息海,而我们每个人都是一条鱼。我们在这片广袤的海洋中可以找到志同道合的朋友,加入感兴趣的话题(鱼群)。但是,有的时候也会觉得这片海太吵闹。而在联邦化宇宙里,蔚蓝大海仍然存在,海中却出现了不同风格的岛屿。这些岛屿,就是一个个 Mastodon 实例。这些岛屿给我们鱼们一个上岸的选择。上岸的岛会被我们称之为“家”。

如果说上面说的过于抽象,大家都玩过动物森友会吧?每个 Mastodon 实例就是动森里的岛,也就是你的家。岛上的居民们就是居住在同一个实例的朋友们。但我们每个人也有坐飞机去别人的岛的自由。在联邦宇宙里,每一片岛都是独立的,却又紧密相连。

Mastodon 官方 github 上的一张图就表达了这个概念(我是在写完了这篇文章后看到这幅图的,只能说“岛”这个概念真的是太形象了):

这正是联邦宇宙的神奇之处:我觉得我们并不是要抛弃现有的社交网络模式,但是我们在网络中也应该有个温馨的可以称之为家的角落。这里是我们的舒适圈。关上家门我们可以自由自在地碎碎念,打开家门又可以跃入海洋畅游四方。

希奇!希望成为这样一个安静的角落。这里没有预设的话题和交流方式。我们鼓励每个人以自己的方式探索联邦化宇宙。你可以在希奇!自言自语,完全忽略世界的纷扰;也可以去关注别的实例的嘟友们和他们互动;抑或是社恐地什么都不说只默默关注别的联邦话宇宙里的账号(这样也会对本实例有所贡献!)。而最棒的地方在于你可以在这几种模式中随意切换。Mastodon 提供非常灵活的嘟文可见范围和关注控制。你可以自由选择消息是否进入公共信息流(大海),或者是不是只有你批准的关注者才能看到你的小情绪。

此外,我对联邦宇宙的喜爱还有一个原因,那就是它并不是完全的 zero trust 式的去中心化(比如 nostr )。完全的去中心化对每个节点的技术要求太高,这在本质上导致了整个网络的 resiliency 存在难以解决的矛盾。而联邦化已经有了很成功的例子:互联网。互联网基础架构中 AS 和 BGP 就是上面说的小岛和让这些岛屿相连的协议。换句话说,联邦模型允许在大海中形成自发聚集起来的,地基稳定的岛屿,之后上面也许就会就会慢慢出现新奇的壁画,独特的建筑和突破想象力的作物。这个思路在我之前的文章里也有所提及。这也是这个实例取名为“希奇!”的原因。

没有鱼的岛屿只能是荒岛。在研究 Mastodon 的这一阵子里我发现在联邦宇宙中一个实例的质量是一个 positive feedback loop ,也就是有趣、热闹抑或是有深度的内容会继续吸引同类的内容。所以欢迎大家加入希奇一起来玩

 
阅读更多

from Corgi Dad's Blog

这篇感觉像命题作文一样,因为大松鼠让我测试一下这个希奇!的博客站。我有点惊讶他没有用WordPress,不过新奇的东西总是更能激发我的兴奋。昨天晚上下班从Fields Corner地铁站走回家路上想我这篇要写什么呢?我感觉最近好像有很多很多思绪每时每刻都萦绕在我脑海里,但是却一直没有时间去沉淀下来。这篇就来做这样一件事吧。

上周在旧金山湾区出差,也见了一些朋友,吃了杨国福麻辣烫。每次去加州都要感叹那天气真是太好了,出门不需要穿上三磅重的羽绒服就是很爽。而这次我吃完麻辣烫之后觉得这物价还真是太贵了 —— 一碗麻辣烫竟然要$20多,店内装潢却极尽简陋,唯一的服务便是把那一碗麻辣烫端上来。吃过的朋友肯定也知道,麻辣烫这种毫无技术含量的食物,无非就是把顾客挑选的食材放到汤里煮一煮,就这竟然要$20多,真是令人感叹物价飞涨,湾区人傻钱多。

老王感叹说就连我都消费降级了。我之前可是买东西从来不看价格的人。确实,搬到波士顿几个月之后,我便开始非常在意日常消费流水。2021年10月刚搬来的几个月,我们租了一个市中心区域的一个高端公寓,同时还要负担圣何塞的房贷。在2022年4月圣何塞那边的房子卖掉之后,我在这边又买了一个很贵的公寓。2022年11月,我在Provincetown又买了一个用于做短租的公寓。一系列巨大的房产支出让我每个月几乎是入不敷出——两个房贷,两个物业费,以及水电网费等。

尤其是2023年1月的第一波大裁员,让我又在担心如果我被裁员,房贷该怎么还。其实我也不知道我在担心什么。就我的存款来说,付十几年房贷都没有问题。可能我就是本身特别缺少安全感的人,需要账户里的钱一直增长才好。可是每次消费都这样计较钱的得失,让我很不快乐。慢慢地,我开始怀念起2016年时刚搬到加州,刚开始工作,单着身租着小公寓的快乐时光。那时候每天都跟教主一起琢磨着周末去哪家米其林餐厅摘星。可现在呢,周中叫一份外卖都感觉自己浪费了很多钱,还吃的不好。然而自己却没有那样的行动力去计划好每天晚饭做什么吃什么。就这样在反复的自责和挣扎中消耗了精力,也消磨掉了生活中的一点点乐趣。

我也曾想着要卖掉那辆我几乎不怎么开的911,可是每次我都忍不下心来。有时候我感觉自己很浮浅,很物质主义,因为911能给我带来快乐,也让我自我感觉良好。有时候我想,我需要这辆车来证明什么吗?并不需要。但每次我坐进去启动引擎,嘴角总是浮起一点微笑。911对于我来说,就像是小孩童年时期最喜欢的玩具——可能不会再玩,但就算是放在那里留着,也是一种对自己的交待。那一点点微笑,非常来之不易。

于是我卖掉了那套很贵的公寓,搬到了稍微远一点的一个独立屋。搬进来之前把整个屋子的墙都粉刷了一遍,因为前屋主不知道为什么把整个房子刷成了非常鲜艳的颜色——客厅是橙色,卧室们五颜六色,荧光绿,天蓝等,实在是看不下去。小小的工程做了一些,现在住着也还算比较舒服。只是这个房子没有主卧,且需要很多TLC,大概100年的老房子。不同的部分都分别装修过,但是从来没有整体做一个大项目。

搬家之后刚开始有很多小项目都可以做。我第一次做了Ubiquit的家庭网络,并且设置了两个接入点。当自己从阁楼布置线缆到地下室的时候,还是比较有成就感的。Ubiquiti也不负众望,两个接入点目前非常稳定,NAS有线接入在交换机上。今天下午会把一个PoE摄像头布置起来。


最近这一个月也开始关心起室内设计。我发现很多现在习以为常的设计,原来是几十年前的经典。经典设计总是历久弥新。我在给圣何塞房子买家具的时候就直接看好了一个系列便买了全套——餐桌椅、茶几、床等。以我现在的眼光来看真是蠢。我看经典设计越多,便有越多特别好的想法。可是我也有点缺乏执行力了,因为我不知道现在买的家具,以后装修之后是不是还是会好看。

还有一项特别重要的设计是灯光。我以前总感觉,室内有顶灯就好了,只要足够亮。其实有层次的灯光可以改变整个空间的感觉。比如这个宜家的灯 EVEDAL。宜家通常是便宜、质量差的代名词,但是宜家有时候会与一些著名设计师合作,推出一些用料十足的东西。

这台灯是宜家第二贵的灯(最贵的是同系列的落地灯)。基座是真正的大理石;支撑杆是橡木;顶部是玻璃。整个感觉非常不错,手感、做工也非常好。


波士顿的冬天总是令人压抑,尤其是当早晨不见阳光,阴云密布的时候。最近正在联系几个装修公司,想把整个房子修理一下。大概是我找的人不对,Design-Build公司都不愿意接我的活,他们大多都做比较大的工程项目,比如50万美元起。有几个公司甚至都不回邮件。唯一一个来我家实地考察了的公司,过了三天也没有动静。这一系列的挫折令人非常沮丧。有时候我想,还不如我自己当GC (general contractor)呢,至少我到目前为止用过的几个合同工人都还算不错。或许这是更适合我的一种方式吧,毕竟我也算是控制欲特别强的人。

从加州回来之后就没有特别开心过。这些不靠谱的装修公司大概是一个原因吧。今天中午出去吃饭的时候,我想这个街区真的没有让我“感觉良好”,不像是我之前的街区。可是所有的东西都标好了价格——之前的街区的公寓就要$1.7M,再加每个月接近$700的物业费,$300的停车费,还没有院子。但是宏大的波士顿维多利亚风格街区就是让人感觉良好,走在外面就像是走在历史之中。我想我应该尽力在我自己的家中创建一个能让我感觉良好的空间,而具有艺术感的设计、家具便是法宝。

不管是什么街区,在城区总能看到一些令人悲伤的时刻。当然并不是因为自己的境遇悲伤,而是人性,社会,以及城市的状态。我并不是每天都能遇到坐城铁逃票的人,但是我每次看到这类行为,都十分痛恨。最近看到Schitt’s Creek中有一集Moira和John买二手车,Moira坚持不让卖家降价,因为她觉的自己还有“dignity”。可是为什么那些坐地铁都要逃票的人就毫无尊严?我并不觉的这是收入的问题——公交系统对低收入群体有非常慷慨的补贴。当我在站台上看到那对逃票的情侣互相拥抱取暖,我着实想不到答案。可能有些时候,人一旦迈出去某一步,就会突然间失去很多东西吧。

尽管早晨的时候还阴云密布,现在却已阳光普照,蓝天白云。我从窗户望出去,看到别人家的房子,看到光秃秃的大树,看到安静的街道。有时候人给自己施加的压力足以强大到令人忧郁且不自知——大多数是来源于外部,却被自身的经历和情绪机制放大到自己身上。我在想,我希望所有人都可以保持自己永远不希望失去的东西,比如属于每个人自己的特质。我在想,从2016年到现在,我失去了什么,我又得到了什么。我失去的,有没有我所珍惜的,我想拿回来的?我觉得我害怕变的太普通;我仍然想找回那些简单的快乐。可是转念一想,令我快乐的事情并没有走太远,而是繁杂的生活淹没了它们。有时候我太过于在意这些纷纷扰扰,反而让自己忽视了这些就在自己身边的宝藏。

2024年,我希望我可以发现它们,并保持着自己对生活的热爱,哪怕被繁杂迷住了双眼,因为生活总是值得的。

 
Read more...