diff options
| author | eltrac <hi@eltr.ac> | 2026-08-03 00:55:14 +0800 |
|---|---|---|
| committer | eltrac <hi@eltr.ac> | 2026-08-03 00:55:14 +0800 |
| commit | 4e0a4192a01c203dcb929e44015566868cbd995c (patch) | |
| tree | ca13b5db1e68d669aa37bc87214337bb99f2c64c | |
| parent | 2720d948d401adf21bae2b092728a99645e078f6 (diff) | |
[draft] update
| -rw-r--r-- | content/weekly/92.md | 109 |
1 files changed, 101 insertions, 8 deletions
diff --git a/content/weekly/92.md b/content/weekly/92.md index b8300ca0..dbd1fe4c 100644 --- a/content/weekly/92.md +++ b/content/weekly/92.md @@ -2,12 +2,17 @@ title = "大脑充血 Vol.92" subtitle = "" tags = [] -date = 2026-07-27T19:34:31+08:00 +date = 2026-08-02 21:35:11 draft = true toc = true +endnotes = [ + "「吾仅悉落」一节的插画来自作家卡夫卡,画作题为 *Der Denker*(德语,意为思考者)。" +] +++ -Blah, blah. +我发现自己遇到「不测风云」,也就是那些难以预料的烦心事时,已经能够做到表面平静地发疯十分钟,然后该干嘛干嘛。这周济南总是莫名其妙地开始刮大风、下暴雨,虽然讨厌袜子被打湿的感觉,但包里常备着折叠伞,也还算从容不迫。 + +其实还有些家人和工作上的大小事,不过我现在更在乎自己刚刚从 MUJI 买的粘毛刷好不好用,今天有没有吃燕麦喝酸奶,明天早上应该读《第一个人》还是《现象学导论》。印象中不少「重要人物」常常把自己的生活外包给别人,以腾出时间关注那些更具商业价值的事情。而我呢?如果我每天回到家不能亲自用吸尘器把地板拖得一尘不染,听见灶台点燃的热水沸腾的声音,我都不知道自己怎么活下去。 <!--more--> @@ -15,7 +20,39 @@ Blah, blah. ## 吾仅悉落 -{{< music album=true cover="https://img.eltr.ac/geedeapro/weekly/92/a3995599019_1x1_700.avif" title="MY SKYSCRAPER" artist="Nirosta Steel" bandcamp="https://ulyssa.bandcamp.com/album/my-skyscraper" >}} +{{< music album=true cover="https://img.eltr.ac/geedeapro/weekly/92/a3995599019_1x1_700.avif" title="MY SKYSCRAPER" artist="Nirosta Steel" bandcamp="https://ulyssa.bandcamp.com/album/my-skyscraper" neodb="https://neodb.social/album/5StIBnujsaXtlIGMcEmfUv" >}} + +复古,有种…… 既老派又年轻的奇妙听感。小众中透露着沉稳,但又没有很沉稳,甚至有些随意,大概可以这样总结。 + +最喜欢《LOST IN MUSIC》《MY NAME IS NIGHT》《FRESH FEELING》《SPECIAL WEAKNESS》,大概就是整张专辑篇中后段的部分。 + +作者如今六十多岁了,专辑是沉淀了几十年的音乐成果;还是酷儿,有几首歌据说是写给男友的(尽管我没听出来是哪几首);貌似还特别喜欢中国文化,挺好的,但是在音乐最后听到中式的敲锣打鼓和京剧唱腔实在是有些令人措手不及。 + +<img style="float: right" class="dark:invert" width=150 src="https://img.eltr.ac/geedeapro/weekly/92/Der_Denker.png" alt="卡夫卡的手绘画作,一个坐在椅子上的男人,弯着腰,手臂放在膝盖上,这只手臂撑着头。这幅画的名字叫作 Der Denker(思考者)" /> + +> Walking to a different town +> +> And talking--what did I learn? +> +> Talking to a different crowd +> +> And walking--what did I learn? +> +> What did I do today? +> +> What did I do today? +> +> What did I do today? +> +> <br /> +> +> I was holding on for something special +> +> Holding on for something new +> +> Holding on! + +{{< right "——《SPECIAL WEAKNESS》" >}} --- @@ -43,25 +80,81 @@ Blah, blah. 如果读者在高中学过地理的话,应该对厄尔尼诺现象这个词有所耳闻。每隔数年,太平洋东部的海水水温就会异常升高,导致一系列气候异常。温度上升往往和气压降低同时出现,东太平洋气压降低,空气就会从西太平洋往东太平洋流动,使得西太平洋沿岸地区(东南亚、澳大利亚)发生干旱,东太平洋沿岸(南美洲)发生暴雨,农业和渔业都会受到影响。 -原本自然发生的气候异常,在今年创下新高, +原本自然发生的气候异常,在今年创下新高。模型[^1]的预测显示今年的厄尔尼诺现象会使得相关地区的海平面温度升高 3.6°C,而此前我们从未观测到超过 2.75°C 的厄尔尼诺,这次厄尔尼诺的最低数值 2.8°C 也超过了历史最高。  -### Refold 哲学 - -> [!note] 📜 -> [从 0 开始学外语:Refold 路线图](https://zhuanlan.zhihu.com/p/671671625) +不同预测模型的结果有差异,但也都预告了前所未有的高增长。根据当前的[实时数据](https://dashboard.theclimatebrink.com/#enso)来看,原本的 3.6°C 甚至上升到了 3.7°C,预计会在今年十一月达到这个峰值,而厄尔尼诺对全球气温的影响一般要到第二年才会完全显现,届时 2027 年可能超过 2024 年,成为有史以来最热的一年。 --- ## 鸡头蛇尾 +### Tangled 是真正的 GitHub 替代品吗? + +> [!note] 🐑 +> [Tangled - The next-generation social coding platform.](https://tangled.org/) + +上周分享了 [Codeberg 的政策变更](/weekly/91/#codeberg-不再欢迎-vibe-coding),顺带明确了这样一个事实:Codeberg e.V. 作为非营利组织的使命是为自由软件提供基础设施,Codeberg 不是自由版本的 GitHub。如果用户在任何层面与 Codeberg 的理念不符,例如不以自由软件协议分发源代码、大量使用 LLM 写代码或者为 LLM 生态做贡献、存放实验性代码和不面向公众的个人项目,那就不应该待在这个平台。 + +政策变更其实也炸出了一部分不理解这个事实的用户,甚至有[一篇说自己后悔迁移到 Codeberg 的文章](https://xn--gckvb8fzb.com/i-regret-migrating-to-codeberg/)登上 Hacker News 热门。好笑的是,文章里这个作者说 Codeberg 完全没有考虑过倾听用户的意见,然而,Codeberg e.V. 的决策相当透明且民主,我作为关心 Codeberg 和自由软件的捐献者,也早在一两个月前就了解到了相关议程。倘若这些用户真的在乎 Codeberg,那么他们完全有时间加入 Codeberg e.V. 去发表意见和投票。倘若在看到变更通知和首页横幅之前都没有想过去了解 Codeberg 的决策过程,那还能说些什么呢? + +话说回来,事实就是,不是所有人都应该迁移到 Codeberg,而且绝对不应该把 Codeberg 当作 GitHub 的替代品。那真正合适的替代品是什么呢?[GitLab](https://about.gitlab.com/) 看起来只是另一个商业平台,只是不受微软控制,产品质量也没有像 GitHub 那样急速下滑,自托管的成本比较高,而官方实例的免费额度有限,更适合企业用户。[Forgejo](https://forgejo.org/) 是更轻量的选择,不过自托管的不便之处,一是维护成本和门槛高,二是实例之间难以互通和协作。 + +还有一个小众且观点鲜明的选择是 [Sourcehut](https://sourcehut.org/),不跟踪用户、没有广告、没有 JavaScript、没有 AI 功能、没有非必要的登录墙,你可以自托管也可以付费使用他们的服务。最低档是 4 美元一个月,但如果你因为经济状况和各种原因无法支付,也可以申请免费使用。整体而言,Sourcehut 的社区感似乎不强,界面对不少用户来说可能算得上丑(但完全可用)。功能上,Sourcehut 使用 [git send-email](https://git-send-email.io/) 进行协作,交流、讨论和发送代码补丁都可以通过电子邮件进行,余下的 CI、工单管理和 Wiki 也都有,功能不会差。*我怎么觉得我应该去用 Sourcehut?* + +和 Sourcehut 一样也还在 Alpha 阶段的另一个 Git Forge 是来自芬兰的 [Tangled](https://tangled.org/),~~又名《魔发奇缘》~~,我在[第 79 期周刊](/weekly/79/#tangled)分享过,可以说是目前为止在体验上接近甚至超越 GitHub,也更适合大多数人的选择。他们的 [Stacked Pull Requests](https://blog.tangled.org/stacking/)(也就是把一个大的 PR 拆分成更容易审查的小块,但是可以一起合并),就在最近还被 GitHub [抄去用了](https://github.blog/changelog/2026-07-30-stacked-pull-requests-are-now-in-public-preview/)。他们对兼容 Git 的版本控制系统 [Jujutsu](https://jj-vcs.dev/) 有直接的支持。几个月前他们还推出了[担保](https://blog.tangled.org/vouching/)功能,可以为那些能够交付可用且容易审查的代码的人(而不是滥用 LLM 的人)进行担保,受信任等级更高的人的贡献可以被优先处理。Tangled 的用户界面也很有特色,Commit 历史一般是被藏起来的,而他们把历史和当前的文件目录放在了一起。 + +不过更重要的是,Tangled 是去中心化的,不仅可以自托管,而且自托管之后能够通过 AT Protocol 与其他实例(Tangled 称作 Knot,也就是「结」)交互,比 Sourcehut 的电子邮件体验要丝滑不少。Tangled 背后的是 Tangled Labs Oy,一家芬兰的小公司,是位于欧盟的商业实体,无论如何都要比位于美国的微软更值得信任。 + +不过 Tangled 会不会在以后逐渐屎化(enshitificate),还有待观察。我注册了[账号](https://tangled.org/eltrac.tngl.sh),或许可以当备用 Forge 或者镜像,先用着看看。 + +### Gopher SLIPs into a pile of parentheses + +> [!note] 🐭 +> [ohler55/slip - SLIce Processing is LISP for golang](https://github.com/ohler55/slip) + +这个周末想写个小的 Web 应用,大概就是支持 Fever API 的无头 RSS 聚合器。我发现自己几乎从来不会打开 [Miniflux](https://miniflux.app/) 的 Web 界面,那为什么不能只用本地客户端,而服务端只起到同步的作用呢?就着这个想法,我准备开写。自己的项目当然是要用 Lisp 写的,不过用哪门 Lisp 呢?Clojure 我已经比较熟悉了,但跑在 JVM 上最小也得占两三百 MB,看着实在是有些不是滋味。于是选择了刚学没多久的 Common Lisp,然后就被 ASDF 和 Quicklisp 整得头疼——你这包到底应该怎么导?你这项目脚手架到底应该怎么搭? + +我的确找到了不少合适的工具和教程,但整体上文档都很少,略感不适。在找 Web 框架的时候突然发现了 [Caveman2](http://8arrow.org/caveman/) 这个不洁的东西。 + +```lisp {hl_lines=3} +(defparameter *app* (make-instance '<app>)) + +@route GET "/" +(defun index () + (render #P"index.tmpl")) +``` + +*What is this non-Lisp Java-like ungodly syntax!?* + +怒,骆驼被压垮了,遂离开 Common Lisp,开始物色新语言。毕竟是自己的个人项目,技术选型可以随意些,要不是非常想用 Lisp 写,我早就用 Go 糊出来了。我开始寻找宿主语言是 Go 的 Lisp,意外发现了今年年初才发布的新鲜语言 SLIP,名字的意思是 SLIce Processing。其中 Slice 是 Go 语言的数据结构,其实就是一个可变数组。SLIP 是基于 Slice 的,而不是 `cons`[^2],据说是出于性能考量。似乎好多 Lisp 都是用宿主语言的数组或者列表类型糊出来的,所以用 Slice 也并非不能接受,至少语法没有那么*不洁*。 + +SLIP 基本上就是对 Common Lisp 的实现,仅仅有一些不兼容的地方。SLIP 还提供了插件系统,可以用 Go 拓展 SLIP 这门语言本身,自定义内置函数。我本来还想写一个插件简单包装下 [Gin](https://gin-gonic.com/en/),结果作者告诉我其实有内置 [HTTP Server](https://github.com/ohler55/slip/issues/177#issuecomment-5152449381)。我还问了作者有没有考虑写更详细的文档,结果对方点醒了我,在 Common Lisp 里,用 REPL 探索语言才是最好的方式,`apropos` 函数可以搜索包和符号,而 `describe` 可以描述一个符号(函数)的作用。 + +嗯?所以搞了半天你不还是在写 Common Lisp 吗?甚至换了一个更难导包的实现。 + +于是这个周末就这么过去了,嗯…… + ### 杀死 Cookie 横幅 > [!note] > [Kill the cookie banner!](https://killthecookiebanner.eu/) +欧盟有关 GDPR 的立法运动,网站声称 Cookie 横幅(也就是访问某些网站时会弹出来的,请求你同意 Cookie 协议的横幅)往往被设计得极具误导性,用户要真正表达自己的隐私偏好会很困难,很有可能就一不小心同意了网站跟踪你。同意所有 Cookies 很简单,接受必要的 Cookies 很简单(但谁知道「必要」究竟是指什么呢?),但拒绝 Cookies 往往不那么容易。这个网站提供的解决方案是,让用户在操作系统或浏览器层面设置全局的隐私偏好,与网站建立连接时,就像 HTTP Headers 里的 `Accept-Language` 字段一样,自动告知网站访客的隐私偏好。 + +这的确是更好的解决方案,如果默认设置了严格的隐私偏好,网站就不太可能通过误导性的 Cookie 横幅来引诱用户同意交出部分权利。 + +另外,点击网站的 Take Action 按钮,会来到一个引导页面,告诉用户采取行动的方式就是联系当地的欧洲议会代表人,让他们支持 Article 88b GDPR[^3],之后还列出了各个国家和各个地区的联系人信息。不得不说,真是方便。 + --- ## 漫步遐思 +*This is a thoughtless week.* + +[^1]: 这里的模型不是指 AI 大语言模型,而是基于数理统计的计算模型。 + +[^2]: 关于 `cons` 是什么,我在《[Just A Common Lisper](/article/common-lisp-start/)》里写过。 + +[^3]: *Article* 可能是「法案」的意思?但对应的单词还有一个是 *Bill*。我不清楚法律术语,所以就用原文了。 |
