<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>狐狸反走矣</title><description>一只普通狐狸的博客</description><pubDate>Tue, 07 Apr 2026 18:57:20 +0800</pubDate><atom:link href="https://blog.southfox.me/rss2.xml" rel="self" type="application/rss+xml" /><link>https://blog.southfox.me</link><generator>https://dthompson.us/projects/haunt.html</generator><item><title>FoxThinking #24: 简单不是一件简单的事</title><guid>https://blog.southfox.me/2026/04/fox-thinking-24/index.html</guid><pubDate>Sun, 05 Apr 2026 23:28:00 +0800</pubDate><link>https://blog.southfox.me/2026/04/fox-thinking-24/index.html</link><description>&lt;blockquote&gt;&lt;p&gt;For every complex problem there is an answer that is clear, simple, and wrong.&lt;/p&gt;&lt;p&gt;复杂的问题都有个清晰、简单却是错误的答案。&lt;/p&gt;&lt;p&gt;H. L. Mencken&lt;/p&gt;&lt;/blockquote&gt;</description><category>FoxThinking</category><content:encoded>&lt;blockquote&gt;&lt;p&gt;For every complex problem there is an answer that is clear, simple, and wrong.&lt;/p&gt;&lt;p&gt;复杂的问题都有个清晰、简单却是错误的答案。&lt;/p&gt;&lt;p&gt;H. L. Mencken&lt;/p&gt;&lt;/blockquote&gt;&lt;span id=&quot;more&quot;&gt;&lt;/span&gt;&lt;p&gt;简单是好的，简单事物意味着能更好将其「载入」到心智中去整体理解。还有奥卡姆剃刀 &lt;sup&gt;&lt;a href=&quot;#1&quot; id=&quot;1r&quot; aria-label=&quot;脚注1r&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; 「如无必要，勿增
实体」，只要拿着这个剃刀待在简单中一切都美好。&lt;/p&gt;&lt;p&gt;不过其实奥卡姆剃刀也只是经验法则而已，有时候事物就是很「复杂」，例如对于物质组
成：「物质将会由不能再细分单元组成，叫原子」。这个假设很简单，可惜这个宇宙有 61 种「原子」 &lt;sup&gt;&lt;a href=&quot;#2&quot; id=&quot;2r&quot; aria-label=&quot;脚注2r&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; ，为什
么弄得这么复杂？没人知道（知道的人麻烦发下《自然》期刊）。&lt;/p&gt;&lt;p&gt;更复杂的还有生命，高中生物学习的中心法则说 &lt;sup&gt;&lt;a href=&quot;#3&quot; id=&quot;3r&quot; aria-label=&quot;脚注3r&quot;&gt;3&lt;/a&gt;&lt;/sup&gt; ：DNA 转录成 RNA ，RNA 翻译成蛋白质，蛋白质是生命实际执行结构。这
里带来了长久以来的迷思是认为 DNA 是生命的「代码」，只要能对 DNA 完全测序就相当于理解了生命的奥妙。在完成了人类基因
组计划 &lt;sup&gt;&lt;a href=&quot;#4&quot; id=&quot;4r&quot; aria-label=&quot;脚注4r&quot;&gt;4&lt;/a&gt;&lt;/sup&gt; 后，大家发现携带蛋白质指令的只有 2 万多条基因，仅占人类 DNA 2% 不到。这些基因长久以来就被当成了「垃
圾」、「屎山代码」。但根据最近这篇文章（ &lt;a href=&quot;https://knowablemagazine.org/content/article/living-world/2026/noncoding-rna-molecules-in-cells&quot; class=&quot;external_link&quot;&gt;The silent majority: RNAs that don’t make proteins - Knowable Magazine&lt;/a&gt;）来
看，这些「屎山代码」就像是「暗物质」一样，以一种我们还尚未查明的方式影响生命。&lt;/p&gt;&lt;p&gt;退一步讲，将基因当成生命的蓝图/源代码，生命是执行这些蓝图/源代码的机器这个观念也过于简
化了（&lt;a href=&quot;https://scienceandculture.com/2024/02/denis-noble-in-nature-time-to-admit-genes-are-not-the-blueprint-for-life/&quot; class=&quot;external_link&quot;&gt;“Time to Admit Genes Are Not the Blueprint” | Science and Culture Today&lt;/a&gt;）：&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;This is not to say that genes aren’t important for life — of course they are. It’s that they aren’t the fundamental blueprint that controls an organism. In fact, in a surprising twist, Noble argues that it’s the organism that controls the genome!&lt;/p&gt;&lt;p&gt;基因固然重要，但它们并不是决定生物体的底层蓝图。诺贝尔提出了惊人反转：实则是生物在调控基因组！&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Noble offers various lines of evidence that the “blueprint” of life cannot be found in the DNA. He notes examples where hundreds of genes are involved in the development of certain diseases, suggesting that “It’s therefore a huge oversimplification … to say that genes cause this trait or that disease.” Moreover, rather than genomes controlling the organism, Noble notes that organisms themselves can “control their genomes” — suggesting genomes aren’t the foundation of life:&lt;/p&gt;&lt;p&gt;诺贝尔提供了多种证据，证明生命的“蓝图”并不存在 DNA 中。他指出数百个基因参与某些疾病的发展，并提出“这是一个极大的简化...说基因导致了
症状或那种疾病。”诺贝尔还指出，生物本身可以“控制它们的基因组”——暗示基因组并非生命的基础：&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;生命，很奇妙吧。不过鉴于我是个（钟爱 Lisp ）程序员，所以还是想用代码/机器比喻阐述下。用 Lisp 来说，生命就
像 EVAL-APPLY 循环一样。&lt;/p&gt;&lt;p&gt;解释 EVAL-APPLY 循环最好例子就是太极图 ☯ （一众 Lisp 语言 Logo 都有点太极的意思），「执行」
阶段影响了「环境」，而「环境」又反过来影响了「执行」。还有个更艺术的例子就是埃舍尔的画手 &lt;sup&gt;&lt;a href=&quot;#5&quot; id=&quot;5r&quot; aria-label=&quot;脚注5r&quot;&gt;5&lt;/a&gt;&lt;/sup&gt; ：&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://media.southfox.me/attachment/QmSocxu2EQ77hNBT8WyddZmiAEJvgSGHfSzX2bywJYiX3U?filename=image.webp&quot; alt=&quot;&quot; href=&quot;https://media.southfox.me/attachment/QmSocxu2EQ77hNBT8WyddZmiAEJvgSGHfSzX2bywJYiX3U?filename=image.webp&quot; class=&quot;external_link&quot; /&gt;&lt;figcaption&gt;&lt;span&gt;图1:展示了拿着笔互相画着对方处于线稿状态袖口处两只素描风格的手&lt;/span&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;可是这世上终归有简单的东西啊？比如 Lisp 不就很简单吗，少数「原语」加上像是完全没有语法的语法就能「凑出」来个 Lisp ，但构成简单
不代表最终一定会简单，就像生物中「原语」级别的碱基（ACGTU）构成了复杂的生命一样。哪怕是「看起来」很简单的事物背后所隐藏
的复杂性也是人无法承受的，典型例子就是兰顿蚂蚁 &lt;sup&gt;&lt;a href=&quot;#6&quot; id=&quot;6r&quot; aria-label=&quot;脚注6r&quot;&gt;6&lt;/a&gt;&lt;/sup&gt; ；或者「想起来」很简单的事物背后都蕴藏巨大复杂性，例如
在 Scheme 中，有 char=?, string=?, symbol=? 这种谓词，但为什没有 procedure=? （Scheme 中叫其它编程语言惯叫的函
数 function 为过程 procedure）呢？因为不存在通用算法来判断两个过程是否相等！ &lt;sup&gt;&lt;a href=&quot;#7&quot; id=&quot;7r&quot; aria-label=&quot;脚注7r&quot;&gt;7&lt;/a&gt;&lt;/sup&gt; （直接将函数代码或语法树拿出来
对比？哈哈，不要忘了闭包）&lt;/p&gt;&lt;p&gt;在这个「复杂」的世界上，可能发现并保持「简单」是件复杂的事，化用爱因斯坦的话来说：「世界上最复杂的事，就在
于竟然存在简单的事」。&lt;/p&gt;&lt;h2 id=&quot;阅读&quot;&gt;阅读&lt;/h2&gt;&lt;h3 id=&quot;ThisGenerationHasItEasy;TheirEmojisAreJustHandedtoThem-McSweeney’sInternetTendency&quot;&gt;&lt;a href=&quot;https://www.mcsweeneys.net/articles/this-generation-has-it-easy-their-emojis-are-just-handed-to-them&quot; class=&quot;external_link&quot;&gt;This Generation Has It Easy; Their Emojis Are Just Handed to Them - McSweeney’s Internet Tendency&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;没有 Emoji 和表情图的时代。&lt;/p&gt;&lt;h3 id=&quot;7WaystoFallinLoveDespiteStaggeringDespairandLoomingCloudsofFury&quot;&gt;&lt;a href=&quot;https://archiveofeverything.substack.com/p/7-ways-to-fall-in-love-despite-staggering&quot; class=&quot;external_link&quot;&gt;7 Ways to Fall in Love Despite Staggering Despair and Looming Clouds of Fury&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;在这个世界让沮丧、愤怒的乌云笼罩自己很简单，但就像 Ingrid Michaelson 的《Everybody》唱的那样：&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Everybody, everybody wants to love
人们都想去爱&lt;/p&gt;&lt;p&gt;Everybody, everybody wants to be loved
人们都盼望爱&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;爱是需要锻炼的……所以，找件能发现爱的事吧。&lt;/p&gt;&lt;h3 id=&quot;ScientistsMayHaveUncoveredTheWorld'sOldestDice:ScienceAlert&quot;&gt;&lt;a href=&quot;https://www.sciencealert.com/scientists-may-have-uncovered-the-worlds-oldest-dice&quot; class=&quot;external_link&quot;&gt;Scientists May Have Uncovered The World's Oldest Dice : ScienceAlert&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;能追溯到一万两千年前的骰子，可能也不是骰子而是占卜用器具。&lt;/p&gt;&lt;p&gt;想象一下古人里出现随机性意味着什么？人们终于感悟到了「世事无常」？部族人会在聚会高潮时宣
布某件事然后拿出这个「骰子」一起等待「随机之神」指引吗？光是想想就觉得有趣了。&lt;/p&gt;&lt;h3 id=&quot;GiantStudyRevealsWhySomeVirusesHideInsideYourBodyForLife:ScienceAlert&quot;&gt;&lt;a href=&quot;https://www.sciencealert.com/giant-study-reveals-why-some-viruses-hide-inside-your-body-for-life&quot; class=&quot;external_link&quot;&gt;Giant Study Reveals Why Some Viruses Hide Inside Your Body For Life : ScienceAlert&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;生命的艺术就是平衡的艺术，生物体内病毒并不是要么有要么全无的状态的。甚至：&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;And it's not just current infections that can influence our health. Sometimes old viruses that stitched their way into our genomes eons ago, but lost the ability to replicate, still affect our health in strange ways.&lt;/p&gt;&lt;p&gt;而且影响健康的不仅是当前的感染。有时候在亿万年前缝合进我们基因组却失去复制能力的古老病毒，依然以奇怪的方式影响我们的健康。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;病毒是这地球上深谙「转基因」之道的大师，就像攀附在进化树上的奇怪藤蔓，用自己的基因影响着不同
物种。世界还要被这种毒物控制多久？ &lt;sup&gt;&lt;a href=&quot;#8&quot; id=&quot;8r&quot; aria-label=&quot;脚注8r&quot;&gt;8&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&lt;h3 id=&quot;TourtheSomersetPlotofLandscapeDesignerLouiseDowding–FredericMagazine&quot;&gt;&lt;a href=&quot;https://fredericmagazine.com/2024/01/louise-dowding-garden-tour/&quot; class=&quot;external_link&quot;&gt;Tour the Somerset Plot of Landscape Designer Louise Dowding – Frederic Magazine&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;好看的英式花园。&lt;/p&gt;&lt;p&gt;春天了啊，趁着在空气还没完全转闷、蚊虫没有大规模活动的时候，该带上一本书到附近公园待会了。不过这么说来，能自
由活动的春日时光没多少了，欸，工！&lt;/p&gt;&lt;h3 id=&quot;IStumbledAcrossMyBoyfriend'sChatGPTandItEndedOurRelationship&quot;&gt;&lt;a href=&quot;https://lindseyhallwrites.substack.com/p/i-read-my-boyfriends-chatgpt-and&quot; class=&quot;external_link&quot;&gt;I Stumbled Across My Boyfriend's ChatGPT and It Ended Our Relationship&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;这种事就很难评价啊……一方面不该看他人私密的对话记录，但另一方面看到亲密关系里出
现 &amp;quot;I’m just not proud of her&amp;quot; 这种话怎能不令人「死心」呢？&lt;/p&gt;&lt;h3 id=&quot;IsavedadoomedWindowslaptopbyembracingLinux|TheVerge&quot;&gt;&lt;a href=&quot;https://www.theverge.com/tech/905946/windows-11-forced-obsolescence-linux-thinkpad&quot; class=&quot;external_link&quot;&gt;I saved a doomed Windows laptop by embracing Linux | The Verge&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Core i7-7600U 的 CPU 加上 16G 内存的 ThinkPad 我感想是这仗打得太富裕了吧~&lt;/p&gt;&lt;h3 id=&quot;AO3isfinallyoutofbetaafter17years|TheVerge&quot;&gt;&lt;a href=&quot;https://www.theverge.com/tech/906346/ao3-archive-of-our-own-beta-exit&quot; class=&quot;external_link&quot;&gt;AO3 is finally out of beta after 17 years | The Verge&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;AO3 结束了长达 17 年的 Beta 版，好耶。&lt;/p&gt;&lt;p&gt;看了一下代码仓库 &lt;a href=&quot;https://github.com/otwcode/otwarchive&quot; class=&quot;external_link&quot;&gt;GitHub - otwcode/otwarchive&lt;/a&gt; 发现是 Ruby 写的，让我想起了隔壁
用 Python 写的 &lt;a href=&quot;https://github.com/internetarchive/openlibrary&quot; class=&quot;external_link&quot;&gt;GitHub - internetarchive/openlibrary&lt;/a&gt; ，也是感叹到是相关高级语言和开发友好框架的发展
才能让非盈利组织在有限志愿者情况下能搭起这样面向公众服务。&lt;/p&gt;&lt;h3 id=&quot;什么东西早就应该发明出来，而现在却没有？-知乎日报&quot;&gt;&lt;a href=&quot;https://daily.zhihu.com/story/9788535&quot; class=&quot;external_link&quot;&gt;什么东西早就应该发明出来，而现在却没有？ - 知乎日报&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;原问题中也充斥着很多 16 年的「想象」，现在翻来也挺让人会心一笑的。&lt;/p&gt;&lt;h3 id=&quot;TheCMSisdead.LonglivetheCMS.|jazzsequence&quot;&gt;&lt;a href=&quot;https://next.jazzsequence.com/posts/the-cms-is-dead-long-live-the-cms&quot; class=&quot;external_link&quot;&gt;The CMS is dead. Long live the CMS. | jazzsequence&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;不要带走 WordPress ，呜呜呜……毕竟那些个 AI 优先的框架或 CMS 并不会在意 RSS/Atom 这种订阅源……&lt;/p&gt;&lt;h3 id=&quot;Thenvim-treesitterrepositorywasarchived|Lobsters&quot;&gt;&lt;a href=&quot;https://lobste.rs/s/jr4acs/nvim_treesitter_repository_was_archived&quot; class=&quot;external_link&quot;&gt;The nvim-treesitter repository was archived | Lobsters&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;关于 nvim-treesitter 最近 archived 相关讨论。感想是如果有人对我维护的项目说：&lt;/p&gt;&lt;p&gt;So please, do go switch to something that doesn't require interacting with people.&lt;/p&gt;&lt;p&gt;那我是真的失去所有力气和手段，连 Block 的力气也没有，直接 Archived 就了事了。&lt;/p&gt;&lt;h3 id=&quot;TheEnshittificationoftheInternet:AReverse-EngineeringGuide|421.news&quot;&gt;&lt;a href=&quot;https://www.421.news/en/enshittification-reverse-engineering-guide/&quot; class=&quot;external_link&quot;&gt;The Enshittification of the Internet: A Reverse-Engineering Guide | 421.news&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;屎化（Enshittification）也是最近在讨论场一直被拿来讨论的词，对于这种前期将用户先「骗」进来然后在慢慢
劣化相关服务慢慢的「杀猪盘」场景，我之前想下的定义叫「数字封建」&lt;a href=&quot;/2025/10/fox-thinking-1/&quot;&gt;FoxThinking #1: 互联网殖民时代&lt;/a&gt; 。&lt;/p&gt;&lt;p&gt;文章里提到了相应应对方法和替代方案，一眼望去，大部分都是些自由软件啊……&lt;/p&gt;&lt;h3 id=&quot;FindingtheCattleQueen|n+1|RachelOssip&quot;&gt;&lt;a href=&quot;https://www.nplusonemag.com/online-only/online-only/finding-the-cattle-queen/&quot; class=&quot;external_link&quot;&gt;Finding the Cattle Queen | n+1 | Rachel Ossip&lt;/a&gt;&lt;/h3&gt;&lt;blockquote&gt;&lt;p&gt;Is this, at its essence, the pain of being any kind of woman? To be, even today, nearly sixty years later, caught between obvious being and a sense of public nonbeing, between agency and impotence, subject and object? Between feeling like living flesh and a piece of meat?&lt;/p&gt;&lt;p&gt;这难道不正是身为女性在本质上所承受的痛苦吗？即便是近六十年后的今天，将近六十年后的今天，是否仍处于明显“存在”与公众意义上“虚无”、“能动性”与“无能感”、“主体”与“客体”之间？处在“活生生肉体”与“沦为一块肉排”的双方感受中？&lt;/p&gt;&lt;/blockquote&gt;&lt;h2 id=&quot;观影&quot;&gt;观影&lt;/h2&gt;&lt;h3 id=&quot;Clojure:TheDocumentary[OFFICIALTRAILER]|ComingApril16th!-YouTube&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=JJEyffSdBsk&quot; class=&quot;external_link&quot;&gt;Clojure: The Documentary [OFFICIAL TRAILER] | Coming April 16th! - YouTube&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;今年 4 月 16 号，一部关于 Clojure 的纪录片就会发布了，期待。&lt;/p&gt;&lt;h2 id=&quot;Presentday,Presenttime&quot;&gt;Present day, Present time&lt;/h2&gt;&lt;p&gt;这周的空余时间都在……玩《魔兽世界》！体验新资料片大力优化的单人玩法后就感觉全世界的社会都在快速原子化啊，连《魔
兽世界》这种几十号人集体在一起打副本的 MMORPG 也开始照顾单人玩家了。
总之，现在我也满级了，地图上的 ? 马桶也通完了，装等也刷到了凑合能用的地步。那么是时候……去刷钓鱼
技能了，新的哈赖恩达尔地区的 BGM &lt;sup&gt;&lt;a href=&quot;#9&quot; id=&quot;9r&quot; aria-label=&quot;脚注9r&quot;&gt;9&lt;/a&gt;&lt;/sup&gt; 确实能让我待上好一会。&lt;/p&gt;&lt;h2 id=&quot;脚注&quot;&gt;脚注&lt;/h2&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#1r&quot; id=&quot;1&quot; aria-label=&quot;脚注1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://zh.wikipedia.org/wiki/%E5%A5%A5%E5%8D%A1%E5%A7%86%E5%89%83%E5%88%80&quot; class=&quot;external_link&quot;&gt;奥卡姆剃刀 - 维基百科，自由的百科全书&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#2r&quot; id=&quot;2&quot; aria-label=&quot;脚注2&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://zh.wikipedia.org/zh-cn/%E6%A0%87%E5%87%86%E6%A8%A1%E5%9E%8B&quot; class=&quot;external_link&quot;&gt;标准模型 - 维基百科，自由的百科全书&lt;/a&gt; ，也有不满的科学家提出
类似「弦理论」这种解释，但……也弄得很复杂。&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#3r&quot; id=&quot;3&quot; aria-label=&quot;脚注3&quot;&gt;3&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://zh.wikipedia.org/zh-cn/%E4%B8%AD%E5%BF%83%E6%B3%95%E5%89%87&quot; class=&quot;external_link&quot;&gt;中心法则 - 维基百科，自由的百科全书&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#4r&quot; id=&quot;4&quot; aria-label=&quot;脚注4&quot;&gt;4&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://zh.wikipedia.org/zh-cn/%E4%BA%BA%E7%B1%BB%E5%9F%BA%E5%9B%A0%E7%BB%84%E8%AE%A1%E5%88%92&quot; class=&quot;external_link&quot;&gt;人类基因组计划 - 维基百科，自由的百科全书&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#5r&quot; id=&quot;5&quot; aria-label=&quot;脚注5&quot;&gt;5&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://zh.wikipedia.org/zh-cn/畫手&quot; class=&quot;external_link&quot;&gt;画手 - 维基百科，自由的百科全书&lt;/a&gt; 图1也来源于维基百科&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#6r&quot; id=&quot;6&quot; aria-label=&quot;脚注6&quot;&gt;6&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://zh.wikipedia.org/zh-cn/%E5%85%B0%E9%A1%BF%E8%9A%82%E8%9A%81&quot; class=&quot;external_link&quot;&gt;兰顿蚂蚁 - 维基百科，自由的百科全书&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#7r&quot; id=&quot;7&quot; aria-label=&quot;脚注7&quot;&gt;7&lt;/a&gt;&lt;/sup&gt; 约翰·戴维·斯通. 函数程序设计算法. 机械工业出版社, 2020, 第 16 页.&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#8r&quot; id=&quot;8&quot; aria-label=&quot;脚注8&quot;&gt;8&lt;/a&gt;&lt;/sup&gt; 我可能真得减少套话、梗的使用了……&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#9r&quot; id=&quot;9&quot; aria-label=&quot;脚注9&quot;&gt;9&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://music.163.com/#/song?id=3351478554&quot; class=&quot;external_link&quot;&gt;艾林哈籁 -《魔兽世界》：&amp;quot;至暗之夜&amp;quot; (游戏原声带) - 网易云音乐&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>扫清障碍，当个自私的利他者</title><guid>https://blog.southfox.me/2026/04/improve-blog-a11y/index.html</guid><pubDate>Thu, 02 Apr 2026 11:53:00 +0800</pubDate><link>https://blog.southfox.me/2026/04/improve-blog-a11y/index.html</link><description>&lt;p&gt;最近刷到 Prot 对视障用户采访 &lt;a href=&quot;https://protesilaos.com/prot-asks/2026-03-25-arkadiusz-blindness-emacspeak-hyperbole-chinese-slavic-culture/&quot; class=&quot;external_link&quot;&gt;Prot Asks: Arkadiusz about blindness, Emacspeak, Hyperbole, Chinese and Slavi...&lt;/a&gt; ，
有点受到触动，想起换了博客框架后还没对无障碍投入精力过。拿 Talkback 测试时越测越觉得羞
愧，还是有挺多问题的！优化掉后写篇博文记录下吧。&lt;/p&gt;</description><category>博客</category><content:encoded>&lt;p&gt;最近刷到 Prot 对视障用户采访 &lt;a href=&quot;https://protesilaos.com/prot-asks/2026-03-25-arkadiusz-blindness-emacspeak-hyperbole-chinese-slavic-culture/&quot; class=&quot;external_link&quot;&gt;Prot Asks: Arkadiusz about blindness, Emacspeak, Hyperbole, Chinese and Slavi...&lt;/a&gt; ，
有点受到触动，想起换了博客框架后还没对无障碍投入精力过。拿 Talkback 测试时越测越觉得羞
愧，还是有挺多问题的！优化掉后写篇博文记录下吧。&lt;/p&gt;&lt;span id=&quot;more&quot;&gt;&lt;/span&gt;&lt;h2 id=&quot;Why&quot;&gt;Why&lt;/h2&gt;&lt;p&gt;近些年工作要盯着屏幕（加上糟糕用眼习惯）导致近视度数持续加深，下班走出大厦望着远处越发模糊的招牌，我开始有
点担心到了最后我会不会视网膜脱落？或者路过某熊孩子扔鞭炮到井里导致沼气爆炸绷飞的石子正中我的眼球？又或者某天夜晚一个对应
眼球组织的免疫细胞从淋巴逃逸然后导致免疫风暴让我眼球被免疫系统攻击？即便失去视力，我也不会停止「玩」电子设备，未
雨绸缪为了可能要依赖 Talkback 的自己，开始加强下这个站点的无障碍建设，或许「顺带」方便了需要这些的人 &lt;sup&gt;&lt;a href=&quot;#1&quot; id=&quot;1r&quot; aria-label=&quot;脚注1r&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; 。&lt;/p&gt;&lt;p&gt;没有任何依据，但我认为利他行为总在满足了自身才会真切出现，从小在「让梨」教导中被迫给梨的小孩和在自己吃了一个梨不需要的情况下让梨收
获到感谢为之快乐的小孩，在成年时哪个会更自发做出「让梨」行为？&lt;/p&gt;&lt;h2 id=&quot;优化&quot;&gt;优化&lt;/h2&gt;&lt;p&gt;视障人士「装」明眼人很困难，明眼人「装」视障人士却又很简单，闭上双眼就能可以了，只是有眼睛的人都不会「放弃」使用
自己双眼的。克服睁眼的冲动，将自己当成视障人士,在安卓手机同时按下上下音量键几秒钟开启 TalkBack 然后看看我这个
博客站点怎么样吧。&lt;/p&gt;&lt;h3 id=&quot;导航栏&quot;&gt;导航栏&lt;/h3&gt;&lt;p&gt;首先是因为导航栏的存在，使用切换焦点模式「听览」网页的话会要过一遍导航栏的所有元素，在打开了几个网页后就有点烦躁了。在搜索
时看到了 &lt;a href=&quot;https://www.w3.org/WAI/test-evaluate/easy-checks/skip-link/&quot; class=&quot;external_link&quot;&gt;{Draft} Skip Link - Easy Checks | Web Accessibility Initiative (WAI) | W3C&lt;/a&gt; 方案，在网页的第一个焦点放
置指向网页主题的内容主体 id 的链接就好了。&lt;/p&gt;&lt;p&gt;大概例子（这里用 SXML 表示 HTML ，因为我现在还没做 HTML 语法高亮，如果不知道 SXML 是什
么可以看我之前相关文章 &lt;a href=&quot;/2025/09/hello-haunt/&quot;&gt;Hello Haunt, 又一次换了博客框架&lt;/a&gt;）：&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-scheme&quot;&gt;(nav (@ (class &amp;quot;nav&amp;quot;))
    (a (@ (class &amp;quot;skip-link&amp;quot;) (href &amp;quot;#main-content&amp;quot;)) &amp;quot;跳到主要内容&amp;quot;)
    (a (@ (href &amp;quot;/&amp;quot;)
          (class &amp;quot;brand&amp;quot;))
       (span &amp;quot;狐狸反走矣&amp;quot;))
    ...)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;然后定义主要内容：&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-scheme&quot;&gt;(main (@ (id &amp;quot;main-content&amp;quot;) (tabindex &amp;quot;-1&amp;quot;))
      (h1 &amp;quot;主页&amp;quot;)
      ...)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;注意 main 标签默认是不可聚焦的，所以要附上 tabindex=&amp;quot;-1&amp;quot; 属性强制将焦点聚焦上去，否
则会出现聚焦到 main 然后失焦又返回到网页开头产生「如跳」的现象。如果要将这个链接做只对焦点模式下才
显示（对一般明眼用户隐藏）的话可以加上这样的 css ：&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;.skip-link {
    position: absolute;
    top: -100px;
    left: 0;
    background: #000;
    color: #fff;
    padding: 10px 20px;
    z-index: 10001;
}

.skip-link:focus {
    top: 0;
}&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;标题元素&quot;&gt;标题元素&lt;/h3&gt;&lt;p&gt;网页尽量出现唯一的 H1 元素，这样 TalkBack 会在网页加载完后自动将标题念出来。然后是标题元素尽量
以  H1 H2 H3 顺序排起，不要跳顺序如 H1 H3 ，这样让 TalkBack 在标题模式下的导航不会出语义问题。&lt;/p&gt;&lt;p&gt;（在现在这篇文章发布时我还没把侧边栏整好，现在还在用着 H4 ，之后得优化下）&lt;/p&gt;&lt;h3 id=&quot;脚本焦点操作&quot;&gt;脚本焦点操作&lt;/h3&gt;&lt;p&gt;碰上了个诡异现象，在选择了非「普通」主题后，打开网页后焦点会跳在主题选单上，排查一番后发现是根
据 localStorage 值更新主题菜单当前值的 js(lips) 代码：&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-scheme&quot;&gt;(option.setAttribute &amp;quot;selected&amp;quot; #t)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;会导致焦点跳转，想了个快速变通方法是将选择菜单组件用 aria-hidden 属性暂时覆盖掉：&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-scheme&quot;&gt;(define options select.options)
(select.setAttribute &amp;quot;aria-hidden&amp;quot; &amp;quot;true&amp;quot;)
...
  (option.setAttribute &amp;quot;selected&amp;quot; #t)
...
(select.removeAttribute &amp;quot;aria-hidden&amp;quot;)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这样操作组件时就不会导致焦点跳转了，写到这确实有点感到感概，这两三个月里，配置选单也是实在干扰到了使用读屏软件
的访客……&lt;/p&gt;&lt;h3 id=&quot;蒙上双眼，它是什么？&quot;&gt;蒙上双眼，它是什么？&lt;/h3&gt;&lt;p&gt;在闭上眼睛用着 TalkBack 的时候，经常会出现听起来莫名奇妙的反馈……「1」「2」、「左箭头」、「链接」。对照
看了下发现是些明眼人看了一目了然的元素在读屏的时候会觉得很奇怪。&lt;/p&gt;&lt;p&gt;「1」、「2」这些其实是脚注，那么这里使用 aria-label 加上描述：&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-scheme&quot;&gt;`(sup (a (@ ,@attrs (aria-label ,(string-append &amp;quot;脚注&amp;quot; id))) ,@children))&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这样读屏软件就会念出「脚注1」、「脚注2」了。&lt;/p&gt;&lt;p&gt;「左箭头」、「右箭头」是什么？原来是关于 WebRing 的相关导航，写成这样：&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-scheme&quot;&gt;(nav (@ (aria-label &amp;quot;Fediring&amp;quot;))
              (a (@ (href &amp;quot;https://fediring.net/previous?host=blog.southfox.me&amp;quot;)
                    (aria-label &amp;quot;上一个 Fediring 站点&amp;quot;))
                 &amp;quot;←&amp;quot;)
              (a (@ (href &amp;quot;https://fediring.net&amp;quot;))
                 &amp;quot;Fediring&amp;quot;)
              (a (@ (href &amp;quot;https://fediring.net/next?host=blog.southfox.me&amp;quot;)
                    (aria-label &amp;quot;下一个 Fediring 站点&amp;quot;))
                 &amp;quot;→&amp;quot;))&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;那么读屏软件就不会念出「左箭头」、「右箭头」而是念出「上一个 Fediring 站点」、「下一个 Fediring 站点」了。&lt;/p&gt;&lt;h3 id=&quot;图片替代文本&quot;&gt;图片替代文本&lt;/h3&gt;&lt;p&gt;之前，我其实也不怎么写图片替代文本的，但在 22 年看到&lt;a href=&quot;https://www.bilibili.com/video/BV1954y1d7z9/&quot; class=&quot;external_link&quot;&gt;我采访了几位盲人程序员，看看他们是怎么写代码的【差评君】_哔哩哔哩_bilibili&lt;/a&gt;
这个视频后，受到触动开始尽量写下图片替代文本了。在写了一段时间后发现这倒是方便我用 Elasticsearch 搜索相关图片，很多次我想找
自己 Mastodon 站点上的贴文都是靠搜替代文本找到的。所以就算在这里，这个博客中我也会尽量写下图片替代文本，因为确实方便我
用 ripgrep 搜索了。&lt;/p&gt;&lt;p&gt;另外是视障也是分等级和先天还是后天，在写相关替代文本时加上颜色光泽描述也是可行的（也不知道为何有视障就是完全看不清的迷思流行呢……？）。&lt;/p&gt;&lt;h3 id=&quot;地标模式&quot;&gt;地标模式&lt;/h3&gt;&lt;p&gt;HTML5 发展到现在已经有专门语义标签例如 main, nav, header, footer 了，用上这些 TalkBack 在启用了「地标」模式
时可以很方便快速跳转到这些标签上。&lt;/p&gt;&lt;h3 id=&quot;不要细细地切成臊子&quot;&gt;不要细细地切成臊子&lt;/h3&gt;&lt;p&gt;现在懒得写行内代码了，没成想这在无障碍下也有好处，因为 TalkBack 在碰到 &amp;lt;code&amp;gt; &amp;lt;a&amp;gt; 标签会中断当前段落朗读然后等待
用户跳转下个焦点，然后朗读完 &amp;lt;code&amp;gt; &amp;lt;a&amp;gt; 标签后又会暂停等待用户跳转下个焦点（所以为什么要这么设计呢）。就是说行内代
码相当于将段落朗读斩成了三份，试了下之前有在勤写行内代码的文章，真得很折磨，要自己不停滑动下一个焦点。对于这种情
况，发现在 TalkBack 这边划一个倒 L 打开菜单选择「从当前焦点朗读」直接一口气读完文章才是解脱……&lt;/p&gt;&lt;h2 id=&quot;最后&quot;&gt;最后&lt;/h2&gt;&lt;p&gt;因为好奇去翻看 &lt;a href=&quot;https://github.com/tvraman/emacspeak/tree/master/lisp&quot; class=&quot;external_link&quot;&gt;tvraman/emacspeak&lt;/a&gt; &lt;sup&gt;&lt;a href=&quot;#2&quot; id=&quot;2r&quot; aria-label=&quot;脚注2r&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; 代码最后感到有点
肃然了，里面一个一个 emacspeak-magit.el, emacspeak-bookmark.el, emacspeak-calc.el,
emacspeak-dbug.el, emacspeak-dired.el, emacspeak-ediff.el, emacspeak-evil.el, emacspeak-google.el, emacspeak-vterm.el 等
百来个文件，明眼人的习以为常对于视障人士来说是要尽力「争取」的事啊。有点后悔没在一开始就考虑无障碍，不过栽树最好的时间是三十年前
或者……现在。&lt;/p&gt;&lt;h2 id=&quot;脚注&quot;&gt;脚注&lt;/h2&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#1r&quot; id=&quot;1&quot; aria-label=&quot;脚注1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://www.cdpf.org.cn/zwgk/zccx/ndsj/zhsjtj/2024zh/8078083de707498c8262120634a26645.htm&quot; class=&quot;external_link&quot;&gt;中国残疾人联合会-3-2 全国残疾人人口基础库主要数据&lt;/a&gt; ：已办理残疾症
人数 38250009 、视力残疾人数 3945609 、肢体残疾人数 19819889 ，哪怕不算潜在没办证的残疾人这都已经不是小数目了。&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#2r&quot; id=&quot;2&quot; aria-label=&quot;脚注2&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://emacspeak.sourceforge.net/&quot; class=&quot;external_link&quot;&gt;Emacspeak --The Complete Audio Desktop&lt;/a&gt; 官网上还有可爱狗狗。&lt;/p&gt;</content:encoded></item><item><title>FoxThinking #23: Q1报告</title><guid>https://blog.southfox.me/2026/03/fox-thinking-23/index.html</guid><pubDate>Sun, 29 Mar 2026 21:55:00 +0800</pubDate><link>https://blog.southfox.me/2026/03/fox-thinking-23/index.html</link><description>&lt;p&gt;03月29日，某个不知名 FoxThinking 周刊（下称「本周刊」）发布第一季度报告。本季度，本周
刊实现的「满足创作者的创作欲」的满意程度同比小幅上升；访问量因创作者懒得分析（本站点放在创作
者树莓派上由 Nginx 提供服务，还是能记录到访问记录的）无法发出；本季度，为应对更加激烈
的 LLM 狂潮，本周刊对相关话题讨论度有所上升。&lt;/p&gt;&lt;p&gt;“面对社会环境变化，我开始有点厌倦相关讨论开始觉得太阳底下无新鲜事了”本周刊创作者表示，
“天哪能不能让我逃开这绝望的轮回，要不还是向古代或什么处于剧烈变化时代哲学家索求慰籍这样可
能更好点吧”。&lt;/p&gt;</description><category>FoxThinking</category><content:encoded>&lt;p&gt;03月29日，某个不知名 FoxThinking 周刊（下称「本周刊」）发布第一季度报告。本季度，本周
刊实现的「满足创作者的创作欲」的满意程度同比小幅上升；访问量因创作者懒得分析（本站点放在创作
者树莓派上由 Nginx 提供服务，还是能记录到访问记录的）无法发出；本季度，为应对更加激烈
的 LLM 狂潮，本周刊对相关话题讨论度有所上升。&lt;/p&gt;&lt;p&gt;“面对社会环境变化，我开始有点厌倦相关讨论开始觉得太阳底下无新鲜事了”本周刊创作者表示，
“天哪能不能让我逃开这绝望的轮回，要不还是向古代或什么处于剧烈变化时代哲学家索求慰籍这样可
能更好点吧”。&lt;/p&gt;&lt;span id=&quot;more&quot;&gt;&lt;/span&gt;&lt;h2 id=&quot;分析&quot;&gt;分析&lt;/h2&gt;&lt;p&gt;好了，扮公司游戏该结束了，还是来遵照之前决定对这个季度周刊进行分析：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;/2026/01/fox-thinking-12/&quot;&gt;FoxThinking #12: 发现身边的「怪物」&lt;/a&gt;：里面提到的我想当个娱乐/消遣程序员（recreational
programmer)我仍在继续。&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;/2026/01/fox-thinking-13/&quot;&gt;FoxThinking #13: 节气差异&lt;/a&gt;和&lt;a href=&quot;/2026/02/fox-thinking-17/&quot;&gt;FoxThinking #17: 想想春天的速度&lt;/a&gt;：总有一天，我能完善这些个零散小脚本
扔到树莓派上辅助我感受这个世界，总有一天……&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;/2026/01/fox-thinking-14/&quot;&gt;FoxThinking #14: 我好像没那么在乎「最佳实践」了&lt;/a&gt;和&lt;a href=&quot;/2026/02/fox-thinking-19/&quot;&gt;FoxThinking #19: 不要恐惧&lt;/a&gt;：这就是我所说的对相关话
题讨论。&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;/2026/01/fox-thinking-15/&quot;&gt;FoxThinking #15: I build this city&lt;/a&gt;: 相关的评论系统项目仍在进行，构思得已差不多了，只等我把时间片分到
这个项目上……&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;/2026/02/fox-thinking-16/&quot;&gt;FoxThinking #16: 信息毒害胆怯&lt;/a&gt;：我现在就是等 RSS 阅读器里攒了几天在统一看掉，每次刷到一个热点事件的最
新回应就感觉还是……蛮有「乐子」的？而且我发现这种信息摄入方式确实更令我平静了，可能是给了我「没有什么事是不能
先停一停看看后续发展」的印象吧。&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;/2026/02/fox-thinking-18/&quot;&gt;FoxThinking #18: 除夕&lt;/a&gt;：新的一年但不是新的我，怎么才过去一个多月，当时过年觉得我就在当下的感觉现在想来就已经
模糊不清了呢？&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;/2026/03/fox-thinking-20/&quot;&gt;FoxThinking #20: 回看来路&lt;/a&gt;：对自建这个领域的感叹，如果让现在的我和之前刚接触到自建这个领域的我进行对话，现在的我应该
会被评价为「好酷」吧。&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;/2026/03/fox-thinking-21/&quot;&gt;FoxThinking #21: 如何将用户「拉下水」&lt;/a&gt;：当接触越来越多能轻松设置 Hook 和替换掉执行流程的 Emacs 包后，就越对
只能切换点配置的应用感到沮丧。&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;/2026/03/fox-thinking-22/&quot;&gt;FoxThinking #22: 逆炼摩尔定律&lt;/a&gt;：相关的项目仍在推进……只待我把时间……片……&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;然后是呼应上次总结&lt;a href=&quot;/2025/12/fox-thinking-11/&quot;&gt;FoxThinking #11: 季度总结&lt;/a&gt;，这个季度的「阅读」板块不是从 HN 摘出来的链接多了点，参杂了一些心理学、社会
科学、生物学等内容，对此我为这个状态而感到喜悦。有点期待下个季度相关的阅读会不会更多样化，或许会出现些文学相关内容，毕竟我可
是杂食狐啊。&lt;/p&gt;&lt;h2 id=&quot;博客&quot;&gt;博客&lt;/h2&gt;&lt;p&gt;想了想还是想记下对博客的更改，单开篇博文我觉得没必要，新建个单独页面我又太懒，那就索性放到这里吧。&lt;/p&gt;&lt;p&gt;最明显的侧边栏变化首先是增加了两个 Web Ring ，一个是 &lt;a href=&quot;https://xn--sr8hvo.ws/&quot; class=&quot;external_link&quot;&gt;IndieWeb Webring&lt;/a&gt; ，另一个是 &lt;a href=&quot;https://fediring.net/&quot; class=&quot;external_link&quot;&gt;Fediring&lt;/a&gt; ，两个都是发现有趣站点
的好地方。其次是对于字体配置和主题配置配置栏，因为要实现带状态的切换不可避免要出现一点 js （不过至少使用 lisp 写的），对
于 noscript 环境，现在是回落到「白底黑字」的简单站点，后续看看还有没有什么更好的方法吧。
主题部分也是在这周刚增加了个 &lt;a href=&quot;https://aesthetics.fandom.com/zh/wiki/Frutiger_Aero&quot; class=&quot;external_link&quot;&gt;Frutiger Aero&lt;/a&gt; 主题。比起 386 风格，这种 Win7 毛玻璃配上绿水青山蓝天白云的风格是我真实经
历过的，当时我搓完后在浏览器看着预览效果直接楞了会神……&lt;/p&gt;&lt;p&gt;然后是博客的底层功能，一月末的时候整体重构了下将相关代码拆成模块，为后续加入新功能的加入打下了基础，比如这个月加入了个反
链功能就很轻松，尤其是我掌握着全流程能直接操作语法树而不用面对成品 HTML 文件，直接简单提出来链接放到一张哈希表就好了，半天
时间就搞完了，之前在 Hugo 上实现相同的功能可让我抓耳挠腮了好几天。也是因为现在有了反链功能，对提及之前的文章也是更肆无忌惮了
些，例如这篇季度总结。&lt;/p&gt;&lt;p&gt;相关 org mode 解析器也完善了下 blockquote 解析和新增了 example 语法解析，然后也顺应给语法解析模块补上了单元
测试（这博客搞半天还要自己拼啊！），可能再过几个季度这个 org mode 解析器就能「正式」支持 org mode 了吧……&lt;/p&gt;&lt;h2 id=&quot;阅读&quot;&gt;阅读&lt;/h2&gt;&lt;p&gt;发现其实我对于相关的链接非常「剑走偏锋」，不会像其它周刊要么只给链接要么先概述文章内容再阐述些什么，我一般都是直接阐述自
己的想法的。似乎是有点受 HN 影响，毕竟在 HN 上评论默认是看了原文的，所以我在这就会默认读者已经读过。我就不纠结
这到底算不算好的做法了，毕竟，嘿，这个刊物就叫做 FoxThinking 呢。&lt;/p&gt;&lt;h3 id=&quot;DeathtoScrollFade!–DavidBushell–WebDev(UK)&quot;&gt;&lt;a href=&quot;https://dbushell.com/2026/01/09/death-to-scroll-fade/&quot; class=&quot;external_link&quot;&gt;Death to Scroll Fade! – David Bushell – Web Dev (UK)&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;这个文字效果，非常 Hexo 上 &lt;a href=&quot;https://github.com/theme-next/hexo-theme-next&quot; class=&quot;external_link&quot;&gt;Next&lt;/a&gt; 主题既视感，每次等文字效果弹完我都感觉一大劫都过去了。不过话说现在独立博
客 Next 主题风潮已经过去了啊，现在迎面走来的是……&lt;a href=&quot;https://github.com/anzhiyu-c/hexo-theme-anzhiyu&quot; class=&quot;external_link&quot;&gt;安知鱼&lt;/a&gt;吗？天哪这也是个要人苦等的配置，在网络不佳的话等文章加载
屏幕走完感觉要度过一个无量劫那么长的时间。&lt;/p&gt;&lt;p&gt;这也是我哪怕这个站点已经够花里胡哨有点风格先行压过读者阅读体验（现在倒是加了字体选单配置）也不在动画上做更多了，毕竟是真
得： Please don’t 。&lt;/p&gt;&lt;h3 id=&quot;How‘TinyShortcuts’ArePoisoningScience&quot;&gt;&lt;a href=&quot;https://nautil.us/how-tiny-shortcuts-are-poisoning-science-1279176&quot; class=&quot;external_link&quot;&gt;How ‘Tiny Shortcuts’ Are Poisoning Science&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;科学家已经成为凡人，更成体系学术界带来的压力也让科学家们在泥潭上行走，面对压力，科学家们不得不「你这里的数据有点问
题，所以我用 PS 修了下」。科学家的事怎么能算造假呢？这叫美化！&lt;/p&gt;&lt;h3 id=&quot;MovingfromGitHubtoCodeberg,forlazypeople-MarkusUnterwaditzer&quot;&gt;&lt;a href=&quot;https://unterwaditzer.net/2025/codeberg.html&quot; class=&quot;external_link&quot;&gt;Moving from GitHub to Codeberg, for lazy people - Markus Unterwaditzer&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;这里的思考是，&lt;a href=&quot;https://codeberg.org/&quot; class=&quot;external_link&quot;&gt;Codeberg&lt;/a&gt; 是只用来托管自由软件的，所以在 Codeberg 上托管私人站点（博客、笔记）来说， Codeberg 方面会觉
得有点……不爽 &lt;sup&gt;&lt;a href=&quot;#1&quot; id=&quot;1r&quot; aria-label=&quot;脚注1r&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; ? 毕竟总有人要得给基础设施付钱或精力 &lt;sup&gt;&lt;a href=&quot;#2&quot; id=&quot;2r&quot; aria-label=&quot;脚注2r&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; 。所以其实 Codeberg 并不合适任何人，如果有想远
离 GitHub 又想贴近之前用 GitHub 体验托管仓库的话，可能现在比较好的方式就是自建 &lt;a href=&quot;https://forgejo.org/&quot; class=&quot;external_link&quot;&gt;Forgejo&lt;/a&gt; 了吧。&lt;/p&gt;&lt;p&gt;相关文章： &lt;a href=&quot;https://rz01.org/eu-migration/&quot; class=&quot;external_link&quot;&gt;Migrating to the EU - rz01.org&lt;/a&gt;&lt;/p&gt;&lt;h3 id=&quot;美国如此富有，为何美国人却如此痛苦-纽约时报中文网&quot;&gt;&lt;a href=&quot;https://cn.nytimes.com/opinion/20260327/economy-attitudes-republicans-democrats/dual/&quot; class=&quot;external_link&quot;&gt;美国如此富有，为何美国人却如此痛苦 - 纽约时报中文网&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;在一个有「有贵宾钥匙登机、预登机和另外九个登机组」的国家，钱是资粮、是安全网、
是最终幻想，有钱就能享受最好的服务。如果是没那么有钱的人，看着比他「高一级」的有钱人或是顶级有钱人而感到焦虑。是的，比较
是幸福的小偷，而美国这个环境可以说是：「苦其食，愁其服，危其居，忧其俗。阶层相望，骂街之声相闻，民至老死，继往
开来。」 &lt;sup&gt;&lt;a href=&quot;#3&quot; id=&quot;3r&quot; aria-label=&quot;脚注3r&quot;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&lt;h3 id=&quot;OurcommitmenttoWindowsquality|WindowsInsiderBlog&quot;&gt;&lt;a href=&quot;https://blogs.windows.com/windows-insider/2026/03/20/our-commitment-to-windows-quality/&quot; class=&quot;external_link&quot;&gt;Our commitment to Windows quality | Windows Insider Blog&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;挺好的就是来得太晚了，我觉得要不微软你们把钱投到 &lt;a href=&quot;https://www.winehq.org/&quot; class=&quot;external_link&quot;&gt;Wine&lt;/a&gt; 项目得了？&lt;/p&gt;&lt;h3 id=&quot;World'sLongestStudyonHappinessStillGoingStrongAfter88Years:Scienc...&quot;&gt;&lt;a href=&quot;https://www.sciencealert.com/worlds-longest-study-on-happiness-still-going-strong-after-88-years&quot; class=&quot;external_link&quot;&gt;World's Longest Study on Happiness Still Going Strong After 88 Years : Scienc...&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;太长不看，让人幸福的最重要是「联系」。&lt;/p&gt;&lt;p&gt;虽然哈佛这个幸福研究有太「西化」之嫌，但真的，我真的好奇到底能进行到哪一步啊……&lt;/p&gt;&lt;h3 id=&quot;是奴隶主养活了奴隶，还是奴隶养活了奴隶主？知乎日报&quot;&gt;&lt;a href=&quot;https://daily.zhihu.com/story/9788669&quot; class=&quot;external_link&quot;&gt;是奴隶主养活了奴隶，还是奴隶养活了奴隶主？ 知乎日报&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;既视感，发动！&lt;/p&gt;&lt;h3 id=&quot;ObsoleteSounds&quot;&gt;&lt;a href=&quot;https://citiesandmemory.com/obsolete-sounds/&quot; class=&quot;external_link&quot;&gt;Obsolete Sounds&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;真酷啊。&lt;/p&gt;&lt;h3 id=&quot;LLM&quot;&gt;LLM&lt;/h3&gt;&lt;h4 id=&quot;SomeThingsJustTakeTime|ArminRonacher'sThoughtsandWritings&quot;&gt;&lt;a href=&quot;https://lucumr.pocoo.org/2026/3/20/some-things-just-take-time/&quot; class=&quot;external_link&quot;&gt;Some Things Just Take Time | Armin Ronacher's Thoughts and Writings&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;每次看到讨论场上关于 LLM 快速生成代码巴拉巴拉的言论我就狐疑：发出观点的到底是不是实际写代码的？代码不是资产，它是
债务。而且真把代码当成资产， LLM 像老虎机似生成代码就像彩票中奖飞来横财一样，最后是守不住的。 &lt;sup&gt;&lt;a href=&quot;#4&quot; id=&quot;4r&quot; aria-label=&quot;脚注4r&quot;&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&lt;h4 id=&quot;I’mOKbeingleftbehind,thanks!–TerenceEden’sBlog&quot;&gt;&lt;a href=&quot;https://shkspr.mobi/blog/2026/03/im-ok-being-left-behind-thanks/&quot; class=&quot;external_link&quot;&gt;I’m OK being left behind, thanks! – Terence Eden’s Blog&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;就……只是，等等也无妨。&lt;/p&gt;&lt;h4 id=&quot;EnshittifAIcation-ITNotes&quot;&gt;&lt;a href=&quot;https://it-notes.dragas.net/2026/03/20/enshittifaication/&quot; class=&quot;external_link&quot;&gt;EnshittifAIcation - IT Notes&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;比 Agent 泛滥更恐怖的是人成了 LLM 的 Agent 。&lt;/p&gt;&lt;h2 id=&quot;Presentday,Presenttime&quot;&gt;Present day, Present time&lt;/h2&gt;&lt;p&gt;每次写到最后这里就无力气写下去了然后就潦草收尾，所以这个板块还要保留吗？或者说我真该把写作摊分到每天来写而不是
在一个晚上狂暴写完？&lt;/p&gt;&lt;h2 id=&quot;脚注&quot;&gt;脚注&lt;/h2&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#1r&quot; id=&quot;1&quot; aria-label=&quot;脚注1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://docs.codeberg.org/getting-started/faq/#how-about-private-repositories%3F&quot; class=&quot;external_link&quot;&gt;Frequently Asked Questions - How about private repositories? | Codeberg Documentation&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#2r&quot; id=&quot;2&quot; aria-label=&quot;脚注2&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; codeberg 时不时因为底层 ceph 存储宕机或停机维护，我能理解……&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#3r&quot; id=&quot;3&quot; aria-label=&quot;脚注3&quot;&gt;3&lt;/a&gt;&lt;/sup&gt; 化用自老子《道德经》通行本第八十篇（或帛书本第三十篇？）&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#4r&quot; id=&quot;4&quot; aria-label=&quot;脚注4&quot;&gt;4&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://theconversation.com/how-winning-1-54-billion-in-mega-millions-could-still-lead-to-bankruptcy-105275&quot; class=&quot;external_link&quot;&gt;How winning $1.54 billion in Mega Millions could still lead to bankruptcy&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>Emacs 使用再记（5）- 用 org-mode 进行文学编程</title><guid>https://blog.southfox.me/2026/03/literate-programming-with-org-mode/index.html</guid><pubDate>Thu, 26 Mar 2026 19:00:00 +0800</pubDate><link>https://blog.southfox.me/2026/03/literate-programming-with-org-mode/index.html</link><description>&lt;p&gt;在代码里写注释，还是……在注释里写代码？&lt;/p&gt;</description><category>Lisp</category><category>Org mode</category><category>Emacs</category><content:encoded>&lt;p&gt;在代码里写注释，还是……在注释里写代码？&lt;/p&gt;&lt;span id=&quot;more&quot;&gt;&lt;/span&gt;&lt;p&gt;在配置了安卓 Emacs（&lt;a href=&quot;/2024/12/emacs-everywhere/&quot;&gt;Emacs 使用再记（4）- EMACS EVERYWHERE!&lt;/a&gt;）一年后，我已经有好些笔记和日志通过手机来编写了，毕竟
有时候懒得打开电脑就想躺在床上。一切都挺好，只要快快把内容输入到 &lt;a href=&quot;https://www.orgroam.com/&quot; class=&quot;external_link&quot;&gt;org-roam&lt;/a&gt; 里并对在安卓机上用 Emacs 小问题
视而不见，收紧折腾的心即可。不过最近我的手机厂商推送安卓 16 更新成功搞坏了 Termux ，打开后直接闪退根本无法正常使用。
这个 Termux 是专门为安卓 Emacs 编译的，背后使用了相同的 ID 签名还是什么的，总之能让 Emacs 使用 Termux 安装
如 git, rg, curl 之类的终端工具。这一年使用下来发现我不怎么依赖这些，最多也就用用 git 克隆仓库拉下配置而已，这样的话想着
能不能只用 Emacs 来完成拉取配置呢？是可以的，因为 Emacs 内置了 &lt;code&gt;url-copy-file&lt;/code&gt; 函数用 http(s) 协议下载文件。之前还有点
不解 Emacs 为什么要内置网络操作而不直接依赖 curl ，现在实际用上了就感叹：真好啊，能在编辑器里原生做一些网络操作。&lt;/p&gt;&lt;p&gt;用 &lt;code&gt;url-copy-file&lt;/code&gt; 就能解决大部分问题了，不过想着来都来了，就把之前看着不爽的问题给统统解决了吧，然后开始整起配置来。鼓捣着
发现需要弄多个文件，很简单，仓库推个文件然后再用 &lt;code&gt;url-copy-file&lt;/code&gt; 就好了……吗？感觉这样太累了，要不停维护相关的配置
和 URL 的映射，那么又没有什么办法将相关的代码当成 &lt;strong&gt;产物&lt;/strong&gt; 然后通过什么步骤生成出来呢？没错，就是 org mode ！&lt;/p&gt;&lt;h2 id=&quot;orgmodepower&quot;&gt;org mode power&lt;/h2&gt;&lt;p&gt;org mode 是 emacs 上的主模式，作为标记语法和 markdown 差不多，标题、强调样式（加粗、斜体、行内代码）、列表、链接
等，但这只是 org mode 的一部分，org mode 代码块是和标记语法同级的另一部分 &lt;sup&gt;&lt;a href=&quot;#1&quot; id=&quot;1r&quot; aria-label=&quot;脚注1r&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; ，简单代码块示例如下：&lt;/p&gt;&lt;pre&gt;#+begin_src python
return &amp;quot;Hello World!&amp;quot;
#+end_src&lt;/pre&gt;&lt;p&gt;表面上看用 &lt;code&gt;#+begin_src&lt;/code&gt; 和 &lt;code&gt;#+end_src&lt;/code&gt; 这种有点字多的方式标识代码块外，更重要的是可以在 emacs 里执行它，将光标
放在这个代码块上按下 C-c C-c 后，就能执行了 &lt;sup&gt;&lt;a href=&quot;#2&quot; id=&quot;2r&quot; aria-label=&quot;脚注2r&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; ，没有意外的话就会在下面出现 &lt;code&gt;#+RESULTS:&lt;/code&gt; 的文本显示
执行结果：&lt;/p&gt;&lt;pre&gt;#+begin_src python
return &amp;quot;Hello World!&amp;quot;
#+end_src

#+RESULTS:
: Hello World!&lt;/pre&gt;&lt;p&gt;嗯，简单有效，但就只有这样吗？&lt;/p&gt;&lt;h3 id=&quot;织起文档&quot;&gt;织起文档&lt;/h3&gt;&lt;p&gt;执行也只是 org mode 代码块的一部分，如果往代码块上设置了 &lt;code&gt;:tangle &amp;lt;文件名&amp;gt;&lt;/code&gt; 属性的情况下，例如：&lt;/p&gt;&lt;pre&gt;#+begin_src python :tangle foo.py
return &amp;quot;Hello World!&amp;quot;
#+end_src&lt;/pre&gt;&lt;p&gt;在这种情况代码块还是可以执行，但如果调用 &lt;code&gt;C-c C-v t&lt;/code&gt; （对应 &lt;code&gt;org-babel-tangle&lt;/code&gt; 命令）则会将这个代码块的内容原样写入到对应的文件名
下。这样，就可以在写文档的同时并且将代码块编织出代码文件，例如：&lt;/p&gt;&lt;pre&gt;启用 =visual-line-mode= 自动折行模式让小屏幕下阅读文档舒服点……还有
是 =org-ellipsis= 这个配置是指定收起的标题有更多内容的符号……

#+begin_src emacs-lisp :tangle org.el
(use-package org
  :ensure t
  :init
  (setq org-src-fontify-natively t)
  :config
  (setq word-wrap-by-category t)
  (add-hook 'org-mode-hook 'visual-line-mode)
  (setq org-ellipsis &amp;quot; [...] &amp;quot;))
#+end_src

注意这里得给 emacs 授予全部存储权限才能访问到 =/storage/emulated/0/= 路径：

#+begin_src emacs-lisp :tangle org.el
(use-package org-roam
  :ensure t
  :custom
  (org-roam-directory (file-truename &amp;quot;/storage/emulated/0/Sync/org/Note/org-roam&amp;quot;)))
#+end_src

这里是主题配置巴拉巴拉……另外一说 ef-themes 这个主题包确实挺好看的。

#+begin_src emacs-lisp :tangle theme.el
(use-package ef-themes
  :ensure t)
(load-theme 'ef-cyprus)
#+end_src&lt;/pre&gt;&lt;p&gt;这样在这个文档使用 &lt;code&gt;org-babel-tangle&lt;/code&gt; 命令后，就会自动生成 &lt;code&gt;org.el&lt;/code&gt; 和 &lt;code&gt;theme.el&lt;/code&gt; 这两个文件了，里头的内容为文档按顺序
的代码块内容，其它的文档内容是忽略掉的，这算不算是在注释里写代码？&lt;/p&gt;&lt;h3 id=&quot;文本环境&quot;&gt;文本环境&lt;/h3&gt;&lt;p&gt;但我这种懒狐太懒了，我就只想大部分情况下生成到一个文件（例如 &lt;code&gt;:tangle init.el&lt;/code&gt; ）然后只有少数情况下生成到其它文件，能不能设置默认值
呢？是可以的，因为 org mode 不是简单的文本，它是携带了环境的文本，为代码块设置默认值的一种方式为在文档顶端写下文档级别变量文本：&lt;/p&gt;&lt;pre&gt;#+PROPERTY: header-args:emacs-lisp :tangle init.el&lt;/pre&gt;&lt;p&gt;这样 org mode 会自动为这个文档下所有语言为 &lt;code&gt;emacs-lisp&lt;/code&gt; 的代码块附加 &lt;code&gt;:tangle init.el&lt;/code&gt; 默认参数，如果代码块中指定了其他值的话那么以这
个指定值为准。除了文档级别的作为大纲模式的 org mode 也有标题级别的属性配置，例如：&lt;/p&gt;&lt;pre&gt;  * 快捷键
  :PROPERTIES:
  :header-args:emacs-lisp: :tangle key.el
  :END:

  将安卓上的返回键映射成 C-g 按键组合方便退出，音量键映射成上下方向键用来选择条目也很好用。

  #+begin_src emacs-lisp
  (define-key key-translation-map (kbd &amp;quot;&amp;lt;XF86Back&amp;gt;&amp;quot;) (kbd &amp;quot;C-g&amp;quot;))
  (define-key key-translation-map (kbd &amp;quot;&amp;lt;volume-up&amp;gt;&amp;quot;) (kbd &amp;quot;&amp;lt;up&amp;gt;&amp;quot;))
  (define-key key-translation-map (kbd &amp;quot;&amp;lt;volume-down&amp;gt;&amp;quot;) (kbd &amp;quot;&amp;lt;down&amp;gt;&amp;quot;))
  #+end_src

  ** evil 快捷键
  将空格作为 leader 键然后绑定些常见命令（好像被 Doom emacs 腌入味了）。

  #+begin_src emacs-lisp
  (evil-global-set-key 'normal (kbd &amp;quot;SPC&amp;quot;) 'my-leader-map)
  (evil-global-set-key 'visual (kbd &amp;quot;SPC&amp;quot;) 'my-leader-map)

  (define-key my-leader-map (kbd &amp;quot;f f&amp;quot;) 'find-file)
  (define-key my-leader-map (kbd &amp;quot;f s&amp;quot;) 'save-buffer)
  (define-key my-leader-map (kbd &amp;quot;b b&amp;quot;) 'switch-to-buffer)
  (define-key my-leader-map (kbd &amp;quot;b k&amp;quot;) 'kill-current-buffer)
  #+end_src

  * 杂项
  在确认的时候输入 y 或者 n 而不是 yes 和 no ，惊讶在现在这怎么不是默认开启的？

  #+begin_src emacs-lisp
  (setq use-short-answers t)
  #+end_src&lt;/pre&gt;&lt;p&gt;这里，标题「快捷键」和后续子标题会默认将代码编织到 &lt;code&gt;key.el&lt;/code&gt; 文件，相关变量不会影响到其它平级（例如「杂项」）的标题。
org mode 的有趣之处就在这里了，作为文本格式却可以携带「环境」，配上 org mode 的相关配套命令和函数，能方便给文本加上自定义数据
并加以利用，例如&lt;a href=&quot;https://gitlab.com/phillord/org-drill/&quot; class=&quot;external_link&quot;&gt;抽认卡&lt;/a&gt;、&lt;a href=&quot;https://www.orgroam.com/&quot; class=&quot;external_link&quot;&gt;双链笔记&lt;/a&gt;等。&lt;/p&gt;&lt;h3 id=&quot;没网文学&quot;&gt;没网文学&lt;/h3&gt;&lt;p&gt;继续深入这种构建方式还有文学编程里的 &lt;a href=&quot;https://www.cs.tufts.edu/~nr/noweb/&quot; class=&quot;external_link&quot;&gt;noweb&lt;/a&gt; 方式，在 org mode 里实践很简单，指定代码
块的 &lt;code&gt;:noweb&lt;/code&gt; 为 &lt;code&gt;yes&lt;/code&gt; 就可以了。具体的例子：&lt;/p&gt;&lt;pre&gt;#+begin_src emacs-lisp :tangle evil.el :noweb yes
(use-package evil
  :ensure t
  :init
  (evil-mode 1)
  :config
  &amp;lt;&amp;lt;evil-fd&amp;gt;&amp;gt;)
#+end_src&lt;/pre&gt;&lt;p&gt;这里的 &lt;code&gt;&amp;lt;&amp;lt;evil-fd&amp;gt;&amp;gt;&lt;/code&gt; 代码并不是 emacs lisp 的语法，而是指示 org mode 寻找名叫 &lt;code&gt;evil-fd&lt;/code&gt; 的代码块然后将其内容替换到
此处，例如：&lt;/p&gt;&lt;pre&gt;...安卓虚拟键盘上没有 Esc 这种键还用 vim 按键模式挺难受，参考 evil-escape 这个包，在零点二秒内
快速敲击 =fd= 进入正常模式。

#+name: evil-fd
#+begin_src emacs-lisp
(define-key
 evil-insert-state-map &amp;quot;f&amp;quot;
 (lambda ()
   (interactive)
   (insert &amp;quot;f&amp;quot;)
   (let ((next-char (read-event nil nil 0.2)))
     (if (and next-char (char-equal next-char ?d))
         (progn
           (delete-char -1)
           (evil-normal-state))
       (when next-char
         (setq unread-command-events (list next-char)))))))
#+end_src&lt;/pre&gt;&lt;p&gt;那么这样执行 &lt;code&gt;org-babel-tangle&lt;/code&gt; 命令后生成的 &lt;code&gt;evil.el&lt;/code&gt; 文件如下：&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-emacs-lisp&quot;&gt;(use-package evil
  :ensure t
  :init
  (evil-mode 1)
  :config
  (define-key
   evil-insert-state-map &amp;quot;f&amp;quot;
   (lambda ()
     (interactive)
     (insert &amp;quot;f&amp;quot;)
     (let ((next-char (read-event nil nil 0.2)))
       (if (and next-char (char-equal next-char ?d))
           (progn
             (delete-char -1)
             (evil-normal-state))
         (when next-char
           (setq unread-command-events (list next-char))))))))&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这里重点是名叫 &lt;code&gt;evil-fd&lt;/code&gt; 的代码块可以放在文档的任意地方，不论是在最前面还是最后面。哈，相当于这里突破了代码的「局限」，让文档作者可以首先定义大体框架
然后才来完善细节，做到了「先使用，后声明」，如果在常见的编程语言这么做大概率只会得到无情的报错。我猜是因为 org mode 是在评估完整个文档后构建起整个环境进行产物的
输出所以才给了使用者随心所欲构建代码的能力吧。就算是源代码也得受限于解释（编译）器而不得不做出妥协，那计算机科学中遇事不决加个中间层定律开始发力了，
有了 org mode 这个中间层，将源代码文件看成最终产物，所以可以抛开代码的限制将逻辑上有关联的代码聚合到一处，然后利用 noweb 的方式将代码分出去插入指定
位置；或是将实际逻辑和代码逻辑倒转做到先举例然后在编写实现的逻辑流。&lt;/p&gt;&lt;h2 id=&quot;配置启动&quot;&gt;配置启动&lt;/h2&gt;&lt;p&gt;经过这样的配置，那么还差最后一步，拷贝&lt;a href=&quot;https://git.southfox.me/southfox/pawmacs&quot; class=&quot;external_link&quot;&gt;仓库&lt;/a&gt;里的文档然后调用 &lt;code&gt;org-babel-tangle&lt;/code&gt; 将文档编
织出 &lt;code&gt;init.el&lt;/code&gt; 和 &lt;code&gt;early-init.el&lt;/code&gt; 这种对应的配置代码。&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-emacs-lisp&quot;&gt;(defun paw/refresh-configuration ()
  (interactive)
  (url-copy-file
   &amp;quot;https://git.southfox.me...&amp;quot;
   (expand-file-name &amp;quot;config.org&amp;quot; user-emacs-directory)
   t)
  (with-current-buffer (find-file-noselect (expand-file-name &amp;quot;config.org&amp;quot; user-emacs-directory))
    (org-babel-tangle)))&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;当然，这个函数也是包含在对应的 org mode 里的，果然宇宙的万法根源就是自我指涉啊。&lt;/p&gt;&lt;h2 id=&quot;总结&quot;&gt;总结&lt;/h2&gt;&lt;p&gt;org mode 现在已经是我首选的文本格式了，想来是「我在这里写，以后想利用起来也方便」这种想法潜移默化影响吧，不过对其没原生支持
预览 http(s) 远程图片和对 CJK 文本支持不友善小毛刺我心里还是颇有微词，不过还能怎么办呢，只能就这么用下去了。&lt;/p&gt;&lt;h2 id=&quot;Bonus&quot;&gt;Bonus&lt;/h2&gt;&lt;pre&gt;=vertico= + =orderless= ，永远不分离！

#+begin_src emacs-lisp
(use-package vertico
  :ensure t
  :config
  (vertico-mode))

(use-package orderless
  :ensure t
  :init
  (setq completion-styles '(orderless basic)
        completion-category-defaults nil
        completion-category-overrides '((file (styles partial-completion)))))
#+end_src

=consult= ：我是来加入这个家的。

#+begin_src emacs-lisp
(use-package consult
  :init
  (advice-add #'register-preview :override #'consult-register-window)
  (setq register-preview-delay 0.5)
  :config
  (consult-customize
   consult-theme :preview-key '(:debounce 0.2 any)
   consult-ripgrep consult-git-grep consult-grep consult-man
   consult-bookmark consult-recent-file consult-xref
   consult-source-bookmark consult-source-file-register
   consult-source-recent-file consult-source-project-recent-file
   :preview-key '(:debounce 0.4 any))
  (setq consult-narrow-key &amp;quot;&amp;lt;&amp;quot;)
  &amp;lt;&amp;lt;consult-keys&amp;gt;&amp;gt;)

在 emacs 里启用拼音首字母搜索

#+begin_src emacs-lisp
(use-package evil-pinyin
  :after (evil orderless)
  :autoload evil-pinyin--build-regexp-string
  :init
  (setq-default evil-pinyin-scheme 'simplified-ziranma-all)
  (defun completion--regex-pinyin (str)
    (orderless-regexp (evil-pinyin--build-regexp-string str)))
  (add-to-list 'orderless-matching-styles 'completion--regex-pinyin)
  :config
  (global-evil-pinyin-mode))
#+end_src&lt;/pre&gt;&lt;p&gt;这样，依托于 &lt;code&gt;consult&lt;/code&gt; 的 &lt;code&gt;consult-org-heading&lt;/code&gt; 命令快速提取 org mode 文档标题然后用拼音首字母定位，哪怕在移动设备
的小屏幕里用虚拟键盘也能方便定位到对应标题，这也是 emacs 处理文本能力结合 org mode 的魅力吧。&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://media.southfox.me/attachment/QmTLrnqW2NDFcoEwMP9rkcttPM3XMP4XEjNioEWHs3BhUi?filename=image.webp&quot; alt=&quot;&quot; href=&quot;https://media.southfox.me/attachment/QmTLrnqW2NDFcoEwMP9rkcttPM3XMP4XEjNioEWHs3BhUi?filename=image.webp&quot; width=&quot;600&quot; class=&quot;external_link&quot; /&gt;&lt;figcaption&gt;&lt;span&gt;在安卓 emacs 里检索我的 org mode 配置文档大纲标题截图&lt;/span&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2 id=&quot;参考&quot;&gt;参考&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://www.howardism.org/Technical/Emacs/literate-programming-tutorial.html&quot; class=&quot;external_link&quot;&gt;Introduction to Literate Programming&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://chamook.lol/literate-programming-with-org/&quot; class=&quot;external_link&quot;&gt;Literate Programming with Org Mode 🦄&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://orgmode.org/manual/Environment-of-a-Code-Block.html&quot; class=&quot;external_link&quot;&gt;Environment of a Code Block (The Org Manual)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://orgmode.org/manual/Evaluating-Code-Blocks.html&quot; class=&quot;external_link&quot;&gt;Evaluating Code Blocks (The Org Manual)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;脚注&quot;&gt;脚注&lt;/h2&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#1r&quot; id=&quot;1&quot; aria-label=&quot;脚注1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; 证据在官方站点 &lt;a href=&quot;https://orgmode.org/features.html&quot; class=&quot;external_link&quot;&gt;Features&lt;/a&gt; 页面，可以看到 Elegant Markup 和 Superior Source Code 是分别介绍的。&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#2r&quot; id=&quot;2&quot; aria-label=&quot;脚注2&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; 在配好 org babel 相关配置的情况下……&lt;/p&gt;</content:encoded></item><item><title>FoxThinking #22: 逆炼摩尔定律</title><guid>https://blog.southfox.me/2026/03/fox-thinking-22/index.html</guid><pubDate>Sun, 22 Mar 2026 19:53:00 +0800</pubDate><link>https://blog.southfox.me/2026/03/fox-thinking-22/index.html</link><description>&lt;p&gt;摩尔定律指出：芯片性能大概每隔十八个月会翻一番。&lt;/p&gt;</description><category>FoxThinking</category><content:encoded>&lt;p&gt;摩尔定律指出：芯片性能大概每隔十八个月会翻一番。&lt;/p&gt;&lt;span id=&quot;more&quot;&gt;&lt;/span&gt;&lt;p&gt;当然这更像是经验推测而不是「定律」，而且随着芯片制程越来越逼近物理极限，这条定律已经开始
摇摇欲坠了。然后想想将这条定律往前推呢？现在电子产品比起 NASA 登月时只有 2~4KB 内存，72KB 的
设备已有亿倍的差距了 &lt;sup&gt;&lt;a href=&quot;#1&quot; id=&quot;1r&quot; aria-label=&quot;脚注1r&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; ，与千禧年的设备也有 16 万倍的差距。&lt;/p&gt;&lt;p&gt;我没经历过千禧年时的开发环境，但肯定不会比现在更简单，现在使
用 Python 对着不知名教程帖（或者在二六年：LLM 给出）的例子导个库写写改改
几十行代码，再去云服务厂商买台 VPS 将代码推送到上面建立环境（甚至现在有 docker 了！）运行，就
能提供互联网服务了。这里产生的改变是惊人的，让我意识到那些互联网创业「神话」不是什么触不可及的事了。&lt;/p&gt;&lt;p&gt;就在今天，我向自己部署在树莓派（&lt;a href=&quot;/2025/12/does-the-fox-eat-raspberry-pi/&quot;&gt;狐狸会喜欢树莓做的派吗？树莓派鼓捣记&lt;/a&gt;）上 &lt;a href=&quot;https://github.com/searxng/searxng&quot; class=&quot;external_link&quot;&gt;SearXNG&lt;/a&gt; 这个（将用户的搜索请求
发送到各大搜索引擎然后聚合搜索结果返回展示给用户的）元搜索引擎服务请求时碰上了拒绝访问的服务拦截情况，之后又是更
新版本又是调参的还是绕不过这个限制，一怒之下想着我能自己建立自己的搜索引擎就好了。这个念头还不是今天才产生的，
两三年前我就鼓捣过 &lt;a href=&quot;https://yacy.net/&quot; class=&quot;external_link&quot;&gt;YaCy&lt;/a&gt; 一阵子，只是感觉效果没达到预期就放下了。&lt;/p&gt;&lt;p&gt;现在再次考虑时我惊恐发现我开始认真考虑这个念头了，现在维护个有自己索引的搜索引
擎（例如 &lt;a href=&quot;https://wiby.me/&quot; class=&quot;external_link&quot;&gt;Wiby&lt;/a&gt; 或 &lt;a href=&quot;https://searchmysite.net/&quot; class=&quot;external_link&quot;&gt;Search My Site&lt;/a&gt; ）比谷歌创立时 &lt;sup&gt;&lt;a href=&quot;#2&quot; id=&quot;2r&quot; aria-label=&quot;脚注2r&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; 已经简单了不少（让我先导个 &lt;a href=&quot;https://www.scrapy.org/&quot; class=&quot;external_link&quot;&gt;Scrapy&lt;/a&gt; 包然后这样……那样……）。
不必实现什么 &lt;a href=&quot;https://en.wikipedia.org/wiki/PageRank&quot; class=&quot;external_link&quot;&gt;PageRank&lt;/a&gt; 算法（现在也不是指望做个搜索引擎创业的时代了），我可以随心所欲做出
什么 &lt;a href=&quot;https://indieweb.org/&quot; class=&quot;external_link&quot;&gt;IndieWeb&lt;/a&gt;, &lt;a href=&quot;https://ar.al/2020/08/07/what-is-the-small-web/&quot; class=&quot;external_link&quot;&gt;SmallWeb&lt;/a&gt; 权重提升「算法」；二三年前文章（避开 AI 烂泥)权重提升「算法」；可能不嫌麻烦的话
自己亲自下场提升或降低某个站点的权重。搜索引擎对于我这种一般路过的程序狐不是什么高不可攀的东西了，是谁给了我这等膨胀
的「胆量」？我想可能是这几年的 userops &lt;sup&gt;&lt;a href=&quot;#3&quot; id=&quot;3r&quot; aria-label=&quot;脚注3r&quot;&gt;3&lt;/a&gt;&lt;/sup&gt; 经验吧。不过鉴于我的兴趣项目清单已经堆了太多这种想法
了（我是不是该写个 /projects 页面了？），可能要等好久才能让大脑里的调度器分个时间片给到这个任务上。&lt;/p&gt;&lt;h2 id=&quot;阅读&quot;&gt;阅读&lt;/h2&gt;&lt;h3 id=&quot;TextbooksMightBeWrongAboutWhyPlantsAreGreen&quot;&gt;&lt;a href=&quot;https://www.sciencealert.com/st-patricks-day-textbooks-might-be-wrong-about-why-plants-are-green&quot; class=&quot;external_link&quot;&gt;Textbooks Might Be Wrong About Why Plants Are Green&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;绿叶看起来是绿色的不是因为叶绿素像镜子一样将绿光反射出去，而是因为叶绿素更强力吸收了蓝光和红光散射了更多的绿光
让绿叶看起来是绿色的。&lt;/p&gt;&lt;p&gt;甚至黄色和白色叶片反射的绿光实际上比绿色叶片更多，大约是绿叶的两倍。&lt;/p&gt;&lt;h3 id=&quot;InterviewswiththeComputerUnderground-EpisodeI&quot;&gt;&lt;a href=&quot;https://www.421.news/en/interviews-underground-computer-santiago-roland-en/&quot; class=&quot;external_link&quot;&gt;Interviews with the Computer Underground - Episode I&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;不可否认现在成熟的物流运输已经深入了生活，超市餐馆都背靠这个物流链存活，但这也是其脆弱的地方。就像互联网一样。这些
年 cloudflare, aws 的宕机事件就是最好的例子。自托管服务就像是自己维护的花园或者什么小小农场，肯定不能和成熟的国
际物流链「对抗」，只不过是让这个互联网能够更加健康的一种选择。毕竟随着摩尔定律发展和更加面向个人的服务兴起的现在，自己
维护个小小农场也不必「汗流满面才能糊口」 &lt;sup&gt;&lt;a href=&quot;#4&quot; id=&quot;4r&quot; aria-label=&quot;脚注4r&quot;&gt;4&lt;/a&gt;&lt;/sup&gt; 。&lt;/p&gt;&lt;h3 id=&quot;Unbounded-Aeon&quot;&gt;&lt;a href=&quot;https://aeon.co/essays/she-freed-physics-but-emmy-noether-couldnt-escape-herself&quot; class=&quot;external_link&quot;&gt;Unbounded - Aeon&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;为什么能量会守恒，解释这个的是诺特定理 &lt;sup&gt;&lt;a href=&quot;#5&quot; id=&quot;5r&quot; aria-label=&quot;脚注5r&quot;&gt;5&lt;/a&gt;&lt;/sup&gt; ，这是思想的胜利，从一串串方程窥见这个宇宙最基本的法则。更何况想到
在二十世纪初作为女性数学家的诺特遭受的困难和曲折……就在这里，就让我行个注目礼吧。&lt;/p&gt;&lt;h3 id=&quot;MeetKit,yourcompanionforanewinternetera&quot;&gt;&lt;a href=&quot;https://blog.mozilla.org/en/firefox/meet-kit/&quot; class=&quot;external_link&quot;&gt;Meet Kit, your companion for a new internet era&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;我知道 Firefox 最近挺糟糕的，但是如果我不用 Firefox ，那我还叫什么 Southfox ~现在 Firefox 新的吉祥
物 Kit 出来我就更割舍不下了。&lt;/p&gt;&lt;p&gt;(PS: 让我想到最近福克斯菲尔德铁路推出的吉祥物 &lt;a href=&quot;https://www.youtube.com/watch?v=p_0ox4BDDGk&quot; class=&quot;external_link&quot;&gt;Reg&lt;/a&gt; 。都是吉祥物，都是狐狸，都是福……)&lt;/p&gt;&lt;h3 id=&quot;为什么我国的概率与统计学教科书里不怎么讲幂律分布？-知乎&quot;&gt;&lt;a href=&quot;https://www.zhihu.com/question/20313934/answer/2012311960952272569&quot; class=&quot;external_link&quot;&gt;为什么我国的概率与统计学教科书里不怎么讲幂律分布？ - 知乎&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;我知道引入知乎这种信息源有点背离这个博客 Indie 的「博设」，但如果不多弄点中文信息源就感觉对于我这个中文的站点来说
有点……奇怪？所以我最近往我的 RSS 阅读器增加了知乎相关的 RSS 源（通过 &lt;a href=&quot;https://docs.rsshub.app/&quot; class=&quot;external_link&quot;&gt;RSSHub&lt;/a&gt; 抓取），
不过还是有点遗憾我没找到更多更 Indie 的中文站点。&lt;/p&gt;&lt;p&gt;总之，是幂律分布啊，之前我也讲过这个 &lt;a href=&quot;/2025/12/fox-thinking-8/&quot;&gt;FoxThinking #8: 守住八分地&lt;/a&gt; 。&lt;/p&gt;&lt;h3 id=&quot;Icouldn’tstopworrying–untilIlearnedaboutthe6.30pmrule&quot;&gt;&lt;a href=&quot;https://www.theguardian.com/lifeandstyle/2026/mar/16/i-couldnt-stop-worrying-until-i-learned-about-the-630pm-rule&quot; class=&quot;external_link&quot;&gt;I couldn’t stop worrying – until I learned about the 6.30pm rule&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;将焦虑暂时搁置这种做法……和我有时遵守「不要为 8 小时后和 8 公里外的事情忧虑」的信念异曲同工啊。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;突然间我脑子里的对立面「北狐」出现了&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;「北狐」：可是，「人无远虑，必有近忧」啊！&lt;/p&gt;&lt;p&gt;「南狐」（翻个白眼说到）：摆出俗话俗语也太偷懒了，尤其对这里盛产俗语的「国区」来说。「狭路相逢勇者胜」和「退一步海阔天空」你要
信哪个？总之想信奉哪个，只要能坚守下去然后自己信得过就行，还有最好不要轻易将对立面的俗语简单抛给他人。&lt;/p&gt;&lt;h2 id=&quot;Presentday,Presenttime&quot;&gt;Present day, Present time&lt;/h2&gt;&lt;p&gt;没有暴饮暴食，没有缺乏睡眠但这个周末还是犯了咽炎难受躺在床上。哈哈，这就是不得不要借助拥挤公共交通和闭塞电梯的打工人宿命
吧。想开点，在春分这个时间点把感冒名额用了那么就能在之后尽情享受春天了吧（希望如此！）。&lt;/p&gt;&lt;h2 id=&quot;脚注&quot;&gt;脚注&lt;/h2&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#1r&quot; id=&quot;1&quot; aria-label=&quot;脚注1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://www.zhihu.com/question/30655116/answer/926213716&quot; class=&quot;external_link&quot;&gt;NASA登月时全部计算机的计算能力加起来真的还不如现在一部手机吗？- 知乎&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#2r&quot; id=&quot;2&quot; aria-label=&quot;脚注2&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; 顺带一说，如果有什么出于促进互联网开放的让谷歌这类搜索引擎强制公开抓取的索引提案，我举双手赞成。&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#3r&quot; id=&quot;3&quot; aria-label=&quot;脚注3&quot;&gt;3&lt;/a&gt;&lt;/sup&gt; 我觉得对于自托管爱好者来说， UserOps 是一个比较符合的词吧，更多参见：&lt;a href=&quot;https://mediagoblin.org/news/userops.html&quot; class=&quot;external_link&quot;&gt;Userops: Deployment for the People | MediaGoblin&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#4r&quot; id=&quot;4&quot; aria-label=&quot;脚注4&quot;&gt;4&lt;/a&gt;&lt;/sup&gt; 《创世纪》3章19节&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#5r&quot; id=&quot;5&quot; aria-label=&quot;脚注5&quot;&gt;5&lt;/a&gt;&lt;/sup&gt; 不过其实能量并不守恒，因为这个宇宙中时间平移对称性不成立。真理元素的一期视频讲过这个：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://www.bilibili.com/video/BV1cqGSzsEcv/&quot; class=&quot;external_link&quot;&gt;物理学中最大的误解 - 哔哩哔哩&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=lcjdwSY2AzM&quot; class=&quot;external_link&quot;&gt;The Biggest Misconception in Physics - YouTube&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</content:encoded></item><item><title>对着虚空咕哝</title><guid>https://blog.southfox.me/2026/03/murmuring-into-the-void/index.html</guid><pubDate>Sun, 15 Mar 2026 23:33:00 +0800</pubDate><link>https://blog.southfox.me/2026/03/murmuring-into-the-void/index.html</link><description>&lt;section&gt;这是一篇在公开页面找不到的 Feed 专享文章，就让这篇文章成为公开的秘密吧……&lt;/section&gt;</description><category>日常</category><content:encoded>&lt;section&gt;这是一篇在公开页面找不到的 Feed 专享文章，就让这篇文章成为公开的秘密吧……&lt;/section&gt;&lt;p&gt;新年新气象，但是首周单休然后下一周身体还有点不适，让我感觉没什么精力去做什么。不过这一周希望我
能回到正轨上，只是这个想法对于我这种内存有点吃紧的 ADHD 特质人来说还是太有挑战性了。&lt;/p&gt;&lt;p&gt;说到 ADHD ，现在仍只是处于「天哪，这简直是我」的阶段，之后可以找个时间尝试用抽离的姿态翻看
之前的日记看能找到些什么，也可以向亲友询问找补下发育史。不过我想最重要的还是保持睡眠？毕竟这两周
的日均睡眠时间只有七小时，还是有点欠睡眠账的。我的 ADHD 表现很多时候就是脑子的后台任务开太多了（不管
是潜意识中还是显意识中的）然后碰上睡眠不足的这个相当于往「内存」塞了很多垃圾碎片的情况，走神的情况
就更糟糕了。&lt;/p&gt;&lt;p&gt;说到日记，我现在的日记也只是处于每天打开 &lt;a href=&quot;https://www.orgroam.com/&quot; class=&quot;external_link&quot;&gt;Org-roam&lt;/a&gt; 的今日节点然后随手
写一点的程度，没什么不好，但或许我应该更能撬动一点这里的力量？首先想到的就是应该有个限制而不随心所欲的想到什么
就写什么 &lt;sup&gt;&lt;a href=&quot;#1&quot; id=&quot;1r&quot; aria-label=&quot;脚注1r&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; ，然后想到或许我可以参照 &lt;a href=&quot;https://mindthenerd.com/the-socratic-journal-method-a-simple-journaling-method-that-actually-works/&quot; class=&quot;external_link&quot;&gt;The Socratic Journal Method&lt;/a&gt; 的办法来做，看了一下似乎并不是很
难（突然想到这是否就是生活意义上的导入库来用），而且也很方便跟感恩日记 &lt;sup&gt;&lt;a href=&quot;#2&quot; id=&quot;2r&quot; aria-label=&quot;脚注2r&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; 联动，有结构性的框架对
于有 ADHD 特质的我应该有所帮助（而且也不是很难办，在我的 emacs 里配置加点参数就……）。希望能够凭借这个流程
理清我内心真正的忧虑与关切。&lt;/p&gt;&lt;p&gt;说到忧虑的事，虽然我觉得我还年轻但实际上是我出来工作的第三个年头了，哇哦，写到这我已经有点恍然了，不敢相信当时我就
这么找到了份千里之外的工作……不过也快三年了，我觉得我的 dis-disown 特质 &lt;sup&gt;&lt;a href=&quot;#3&quot; id=&quot;3r&quot; aria-label=&quot;脚注3r&quot;&gt;3&lt;/a&gt;&lt;/sup&gt; 开始发力了，有点想重新奔向一个新
的环境，可能是另一个国家？不过要达成这个目标的话我可能要将外语学习作为目标了，或许会或许不会吧。&lt;/p&gt;&lt;p&gt;再说到忧虑的事，即便真去了更遥远的地方，对于亲人而言本质上也没什么不同，毕竟现在一年也就只能回去两次，不过一两周。
这么说的话，和亲人真正相处的时间以人类平均年龄推断也只有四五十周的时间了。想到在我人生中占据了大半多的至亲之人在我
之后人生比例就这么缩小就有一股沮丧滋味。是的，他们很唠叨，他们不了解我……这是我当时找工作时有意识想往远点地方投，
从小学到大学的寄宿生活让我非常渴望能自己独处的状态。
但是细细想来我也不了解他们，我很惊诧我竟无法大致描绘他们的人生轨迹。或许或许，我应该拿出更多的精力投入到至亲
上面，而不是一阵无言的沉默和搪塞的嗯啊。至亲毕竟是大多数人身上最紧密的联系，我也不想让这段联系变成「宁愿在公园
躲藏 不想喝汤」 &lt;sup&gt;&lt;a href=&quot;#4&quot; id=&quot;4r&quot; aria-label=&quot;脚注4r&quot;&gt;4&lt;/a&gt;&lt;/sup&gt; ……&lt;/p&gt;&lt;p&gt;说到联系，因为平日内存占用率太高了，好处就是我没有那么渴望社交的联系，我可以在不真实的世界找到聊以慰籍的体验来补
充对社交的渴望，但这些体验就像画中镜子反射的镜像，难以满足大脑。或许或许，我应该尝试多发起邀请，找找之前的同学
朋友联机玩游戏或聊会天什么的。或者或者，应该主动踏出自己的窝，建立新的联系。&lt;/p&gt;&lt;p&gt;说到关切的事，我也一直在思考，有什么办法能为我的「好奇心」这个油箱上加油呢？不过现在，已经是凌晨一点了，是
时候休息了。暗示自己，我累了，我已疲惫不堪，醒来面对新的要经历（和能感恩）的事，就这样。&lt;/p&gt;&lt;h2 id=&quot;脚注&quot;&gt;脚注&lt;/h2&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#1r&quot; id=&quot;1&quot; aria-label=&quot;脚注1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; 限制有时候会带来更多可能 &lt;a href=&quot;/2025/12/fox-thinking-10/&quot;&gt;FoxThinking #10: 限制会带来……&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#2r&quot; id=&quot;2&quot; aria-label=&quot;脚注2&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=WPPPFqsECz0&quot; class=&quot;external_link&quot;&gt;不满足的解药 - Kurzgesagt&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#3r&quot; id=&quot;3&quot; aria-label=&quot;脚注3&quot;&gt;3&lt;/a&gt;&lt;/sup&gt; 流浪者否认了自己的流浪，那么他就相当于以世界为家。&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#4r&quot; id=&quot;4&quot; aria-label=&quot;脚注4&quot;&gt;4&lt;/a&gt;&lt;/sup&gt; Shall We Talk - 陈奕迅&lt;/p&gt;</content:encoded></item><item><title>FoxThinking #21: 如何将用户「拉下水」</title><guid>https://blog.southfox.me/2026/03/fox-thinking-21/index.html</guid><pubDate>Sat, 14 Mar 2026 23:34:00 +0800</pubDate><link>https://blog.southfox.me/2026/03/fox-thinking-21/index.html</link><description>&lt;p&gt;这位用户，你是想用这个金功能还是那个银功能呢？都不是，你说你想自己写？&lt;/p&gt;</description><category>FoxThinking</category><content:encoded>&lt;p&gt;这位用户，你是想用这个金功能还是那个银功能呢？都不是，你说你想自己写？&lt;/p&gt;&lt;span id=&quot;more&quot;&gt;&lt;/span&gt;&lt;p&gt;配置文件一般承担着记录状态的功能，然后应用会根据状态作出决定去改变某些实现，例如调整某些参数
或者是在 A 或 B 的功能之间切换。大部分情况这都够用，可惜总有撞到各种小脚趾的情况，例如有些值
是想要动态决定的比如二进制文件的路径在多台设备中路径不相同的情况怎么办？只能在每台设备上为其
单独写配置文件了吗？如果这个时候能用 if 语句就好了……&lt;/p&gt;&lt;p&gt;对于功能，很多时候用户想要什么新功能该怎么办？最直接的就是开发者着手集成，然后开放配置给用户，
用户在配置中启用并填入相关参数就能启用了，类似 &lt;a href=&quot;https://miniflux.app/docs/index.html&quot; class=&quot;external_link&quot;&gt;Miniflux&lt;/a&gt; 里的集成（Integrations），很多时候这
都够用了，不过这种方式只有「勤奋」的开发者能实现……我这种「懒惰」的开发者只会决定将配置当成代码，
然后在应用的相应阶段运行这些代码。例如拿我现在正在开发的 &lt;a href=&quot;https://activitypub.rocks/&quot; class=&quot;external_link&quot;&gt;ActivityPub&lt;/a&gt; 应用来说，当应用收到请求的
时候想发出通知怎么办？这里的情况很复杂：这个请求可能是 Note 代表收到新帖子，帖子中可能是 at 用户的帖子，
也有可能是 Follow 这种新关注请求，也有可能是 Like 这种对用户之前帖子的喜欢请求。对于通知，用户可能想
用 &lt;a href=&quot;https://ntfy.sh/&quot; class=&quot;external_link&quot;&gt;Ntfy&lt;/a&gt;, &lt;a href=&quot;https://gotify.net/&quot; class=&quot;external_link&quot;&gt;Gotify&lt;/a&gt;, 电子邮件甚至飞书接收请求，比起一个一个去实现，我这种「懒惰」开发者打算在配置中定
义一个 Hook 配置的列表配置，不是放字符串而是……放函数！没错，是函数，这个函数接受的参数就是应用接受到的
请求。想要根据类型判断？直接拿出 type 进行比对就好了，想要往特定的服务发送信息？没问题，直接
导入 requests 包，想往哪发就往哪发。类似这样：&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-hy&quot;&gt;;; config.hy 这其实是用户编写的配置文件
(import requests)

(setv ingress-hook [])

(def like-hook [payload]
  (when (= (get payload &amp;quot;type&amp;quot;) &amp;quot;Like&amp;quot;)
    (requests.post
      &amp;quot;https://ntfy.example.com/mytopic&amp;quot;
      :data &amp;quot;收到一个新 Like ！&amp;quot;)

(.append ingress-hook like-hook)&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code class=&quot;language-hy&quot;&gt;;; app/app_config.hy 应用程序读入配置文件
(import hy)

(setv ingress-hook [])
(with [f (open &amp;quot;config.hy&amp;quot; &amp;quot;r&amp;quot;)]
  ;; 是的，直接 eval 用户的代码，相当于将用户的代码粘贴到这里执行
  (hy.eval (hy.read_many f))&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code class=&quot;language-hy&quot;&gt;;; app/boxes.hy 应用程序处理请求的代码
(import app app_config)

(def process_incoming [payload]
  (for [f app_config.ingress-hook]
    ;; 就这么简单，直接往注册 hook 的函数塞参数执行就好了
    (f payload))
  ...)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;是的，这绝对有安全风险，这也是把用户拉到和开发者同坐一条船必然要承受的风险吧，这种配置也是代码也不是什么新
鲜的思想了，我就直说了吧：这就是 Emacs 一直在干的事，配置不是配置，而是应用的一部分。&lt;/p&gt;&lt;h2 id=&quot;阅读&quot;&gt;阅读&lt;/h2&gt;&lt;h3 id=&quot;SlayTheSpire2'splaceholderartshouldbealessontoallthedevelopersc...&quot;&gt;&lt;a href=&quot;https://www.rockpapershotgun.com/slay-the-spire-2s-placeholder-art-should-be-a-lesson-to-all-the-developers-caught-up-in-ai-generated-nonsense&quot; class=&quot;external_link&quot;&gt;Slay The Spire 2's placeholder art should be a lesson to all the developers c...&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;杀戮尖塔二在最近发售了，我喜欢里面的拿看起来像是用画图画的用来凑数的美术资源，这种风格也变成了杀戮尖
塔的一部分了，我看过的一些主播都会开着这种测试画风的卡面进行游戏，因为确实更令人快乐啊。&lt;/p&gt;&lt;h3 id=&quot;BoyIwaswrongabouttheFediverse&quot;&gt;&lt;a href=&quot;https://matduggan.com/boy-i-was-wrong-about-the-fediverse/&quot; class=&quot;external_link&quot;&gt;Boy I was wrong about the Fediverse&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;是的，五年联邦宇宙经验后，我也发现，其实联邦宇宙是一个获取「新闻」的好地方。我总能通过一
些「口口相传」获取到「真正」的新闻。这就是二十世纪九十年代承诺的互联网，虽然来晚了，但至少
已经在了。&lt;/p&gt;&lt;h3 id=&quot;PILK#3|Facebookisabsolutelycooked&quot;&gt;&lt;a href=&quot;https://pilk.website/3/facebook-is-absolutely-cooked&quot; class=&quot;external_link&quot;&gt;PILK #3 | Facebook is absolutely cooked&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;算法驱动的平台的另一个侧面就是……它已经不会管帐号的初始默认状态了，苍白、空洞，待用户把自己的「精气神」填入
进去后像夜幕降临后的吸血鬼一样活过来。&lt;/p&gt;&lt;h3 id=&quot;Whydon'tIndiansreadforpleasure?&quot;&gt;&lt;a href=&quot;https://www.theculturecafe.in/p/why-dont-indians-read-for-pleasure&quot; class=&quot;external_link&quot;&gt;Why don't Indians read for pleasure?&lt;/a&gt;&lt;/h3&gt;&lt;blockquote&gt;&lt;p&gt;For a large part of India, reading has never been detached from purpose.
It is tied to utility. It is tied to survival. In a country obsessed with
competitive exams, reading must promise a return on investment.&lt;/p&gt;&lt;p&gt;在印度大部分地区，阅读从未脱离过目的。它与效用挂钩。它与生存息息相关。在一个痴迷于竞争
考试的国家，阅读必须承诺投资回报。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;真是不可思议相同情况，这或许是高速发展的社会的「趋同演化」吧。&lt;/p&gt;&lt;h3 id=&quot;ADecadeofDockerContainers&quot;&gt;&lt;a href=&quot;https://cacm.acm.org/research/a-decade-of-docker-containers/&quot; class=&quot;external_link&quot;&gt;A Decade of Docker Containers&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;我在想，深夜中的一个开发者对着终端的 &lt;code&gt;docker ps&lt;/code&gt; 输出的心态，和一个在港口塔台上的操作员面对眼下
装满集装箱的货轮的心态，会不会有相同之处？&lt;/p&gt;&lt;p&gt;港口永不眠。&lt;/p&gt;&lt;h3 id=&quot;RebasinginMagit&quot;&gt;&lt;a href=&quot;https://entropicthoughts.com/rebasing-in-magit&quot; class=&quot;external_link&quot;&gt;Rebasing in Magit&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;很多时候 magit 给我的感觉就是 ?！魔法！？ ，很多文章都说了 magit 的好，但我还想加一点就是 magit 其实
并没有隐藏掉在底层执行的 git 命令，可以很轻松调出来之前执行 git 命令窗口看看执行的命令借此学习背后
的 git 。&lt;/p&gt;&lt;h3 id=&quot;IStill&amp;lt;3TheInternet-byDeliaCai-DeezLinks&quot;&gt;&lt;a href=&quot;https://www.deezlinks.com/p/i-still-3-the-internet&quot; class=&quot;external_link&quot;&gt;I Still &amp;lt;3 The Internet - by Delia Cai - Deez Links&lt;/a&gt;&lt;/h3&gt;&lt;blockquote&gt;&lt;p&gt;I love the internet because I love that a random set of clicks I made
as a teenager led me to a blog that has become one of the few constants in my life.&lt;/p&gt;&lt;p&gt;我喜欢互联网是因为它藏着奇妙的际遇——年少时随手的几次点击，竟让我撞进了一个博客，从此它成了我生命
中为数不多的底色。&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;I still love the internet because despite all the brain rot and soul-sucking algorithms,
you can still find your people.&lt;/p&gt;&lt;p&gt;我依然热爱互联网，因为即便这里充斥着让人的「脑腐」信息和吞噬灵魂的算法，你依然能找到属于你的人。&lt;/p&gt;&lt;/blockquote&gt;&lt;h3 id=&quot;kubernetes-elCompromised:HowaPwnRequestExploitedaPopularEmacsPackag...&quot;&gt;&lt;a href=&quot;https://www.stepsecurity.io/blog/kubernetes-el-compromised-how-a-pwn-request-exploited-a-popular-emacs-package&quot; class=&quot;external_link&quot;&gt;kubernetes-el Compromised: How a Pwn Request Exploited a Popular Emacs Packag...&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;之前 emacs 生态就在慢慢收紧一些对 shell 运行的情况，例如默认异步评估 shell 指令或者进行警告啥的，毕
竟 emacs 这种可能用上会拉取一两百个包的配置来说，就这么相信来用没出问题真得是纯凭幸运。这次幸好
是 Melpa 的维护者发现不对劲挡了下来，攻击者也很高调没有小心将恶意代码隐藏，否则真就不知道会出现什么后果
了。对于我这种追求滚动更新的人来说，确实得好好想想要有什么策略提升这方面的安全性了……&lt;/p&gt;&lt;h2 id=&quot;Presentday,Presenttime&quot;&gt;Present day, Present time&lt;/h2&gt;&lt;p&gt;有强度的工作 + 有点偏离常态的身体状态（并不是很明显的疼痛、疲惫而是那种隐隐约约的不适？） = 成功
摧毁了作息，每天回来唯有暴睡……空闲时间只能简单摸点小功能，不过至少本博客现在有反链显示了（感觉没什么用），能显示其它
提到此博文的博文；完善了引用的语法解析（我就是欠折腾了才选自己取折腾 org-mode 的解析），之后应该会多加利用引用功能吧。&lt;/p&gt;</content:encoded></item><item><title>FoxThinking #20: 回看来路</title><guid>https://blog.southfox.me/2026/03/fox-thinking-20/index.html</guid><pubDate>Mon, 02 Mar 2026 23:59:00 +0800</pubDate><link>https://blog.southfox.me/2026/03/fox-thinking-20/index.html</link><description>&lt;p&gt;在下班通勤时间想到：在自建（自托管）这方面我到底是从什么时候开始的？&lt;/p&gt;</description><category>FoxThinking</category><content:encoded>&lt;p&gt;在下班通勤时间想到：在自建（自托管）这方面我到底是从什么时候开始的？&lt;/p&gt;&lt;span id=&quot;more&quot;&gt;&lt;/span&gt;&lt;p&gt;仔细想想是十年前的事了，那个时候我就热衷于下载点网上不知名的托管站的压缩包解压什么 asp 网站代码然后放
到 IIS （是的，十年前我还用着微软操作系统）上本地看看效果了。然后是一些提供免费空间的托管商（类似现在
的 pages 服务），折腾了一些博客、论坛系统后不尽性开始拿安卓手机上的 &lt;a href=&quot;https://www.kslabs.ru/&quot; class=&quot;external_link&quot;&gt;KSWEB&lt;/a&gt; 应用（里面捆绑了 Nginx, Mysql,
PHP 等一众运行环境，可能）来折腾 Word Press 服务。一边折腾一边想着当开个热点形成个小局域网当有人连上后就能
访问我的网页了，还是挺酷的。&lt;/p&gt;&lt;p&gt;不过再半年多后就还是有点受不了手机上的服务，开始购入一个云服务器在上面实际运行 Wordpress ，本博客的第一篇
文章（ &lt;a href=&quot;/2018/06/世界，您好！/&quot;&gt;世界，您好！&lt;/a&gt; ）应该就是在这个时候产生的。沾上服务器后续就是显而易见去折腾更多自建服务，最近重建相关
服务发现已经差不多二十个服务在部署了，也是挺能折腾的。以前想在能自己实际接触到物理设备上提供网站服务的想法
现在通过树莓派（ &lt;a href=&quot;/2025/12/does-the-fox-eat-raspberry-pi/&quot;&gt;狐狸会喜欢树莓做的派吗？树莓派鼓捣记&lt;/a&gt; ）达成了，如果不意外的话，现在展示的这个网页应该就是
由我的树莓派提供内容的。可惜因为家庭宽带的网络复杂度现在是由 cloudflare 的隧道服务提供访问，希望在后面能找
到不依赖专用服务的办法提供网页吧。&lt;/p&gt;&lt;h2 id=&quot;阅读&quot;&gt;阅读&lt;/h2&gt;&lt;h3 id=&quot;Asimplewebweown—Robert'sramblings&quot;&gt;&lt;a href=&quot;https://rsdoiel.github.io/blog/2026/02/21/a_simple_web_we_own.html&quot; class=&quot;external_link&quot;&gt;A simple web we own — Robert's ramblings&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;经常想不到互联网不是建在虚空上的，访问一个网站就相当于知道一个地址然后前往这个地址，如果有道路那么不论是坐
车骑马走路还是游过去那么肯定就能到达。一个超级数据中心就是繁华的都市，一个放在茶几上的树莓派就是偏远的城郊。&lt;/p&gt;&lt;p&gt;随着静态网站生成器的兴起和相关 HTTP 服务器软件的持续优化，现在托管一个网站真得很简单了，虽然对非技术人士
来说新掌握的概念确实有点太多了，希望之后相关的流程能再优化优化，达到想建站之人终能建。&lt;/p&gt;&lt;h3 id=&quot;Everygreatprojectwasoncecalledabadidea&quot;&gt;&lt;a href=&quot;https://hackernews.love/&quot; class=&quot;external_link&quot;&gt;Every great project was once called a bad idea&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;哈哈，我要看到血流成河。不过这个网站感觉有点泛泛而谈，而且有些列出来的帖子确实算是产品中实在的问题，
看向 &lt;a href=&quot;https://news.ycombinator.com/item?id=47120188&quot; class=&quot;external_link&quot;&gt;Hacker News.love – 22 projects Hacker News didn't love | Hacker News&lt;/a&gt; 上的讨论，嗯，果然有人
跟我持有相同的想法。&lt;/p&gt;&lt;h3 id=&quot;Clojure-StateofClojure2025Results&quot;&gt;&lt;a href=&quot;https://clojure.org/news/2026/02/18/state-of-clojure-2025&quot; class=&quot;external_link&quot;&gt;Clojure - State of Clojure 2025 Results&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;2025 年 clojrue 生态调查报告，感觉 clojure 社区确实有点说法的，例如作为搭建在 jvm 上的语言，问到不能
用 clojure 后，只有 11.40% 的人会转向用 java ，差点让 python 的 10.09% 超了，也是一种耐人寻味的现
象了。&lt;/p&gt;&lt;h3 id=&quot;WhyClojure?-CleanCoderBlog&quot;&gt;&lt;a href=&quot;https://blog.cleancoder.com/uncle-bob/2019/08/22/WhyClojure.html&quot; class=&quot;external_link&quot;&gt;Why Clojure? - Clean Coder Blog&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;又一篇 Why Clojure 文章，但是在 2019 年这个 LLM 还没席卷全网的时候写的，看起来甚至有点新鲜，因为没有参杂这方
面的讨论。不过说得没错， Lisp 拒绝就此死去，就像那只街区上烦人的流浪猫一样，它总会回来的。&lt;/p&gt;&lt;h3 id=&quot;GoodbyeinnerHTML,HellosetHTML:StrongerXSSProtectioninFirefox148&quot;&gt;&lt;a href=&quot;https://hacks.mozilla.org/2026/02/goodbye-innerhtml-hello-sethtml-stronger-xss-protection-in-firefox-148/&quot; class=&quot;external_link&quot;&gt;Goodbye innerHTML, Hello setHTML: Stronger XSS Protection in Firefox 148&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;新的设置 SetHTML 方法，可以帮忙缓解 XSS 攻击。只是如果对于有执行风险的数据，最好的方式是能将其区别对待，
没错，就是用 Lisp 表示网页元素让标签就是标签，内容是内容。&lt;/p&gt;&lt;h3 id=&quot;KeepAndroidOpen&quot;&gt;&lt;a href=&quot;https://keepandroidopen.org/&quot; class=&quot;external_link&quot;&gt;Keep Android Open&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;安卓还有半年就要求只有注册过的开发者才能为安卓平台开发 APP ，很糟糕，如果真到了自己都安装不了自己开发的应用的话，
可能真得考虑刷机或者 Linux 移动设备项目了……&lt;/p&gt;&lt;h3 id=&quot;IWroteaSchemein2025&quot;&gt;&lt;a href=&quot;https://maplant.com/2026-02-09-I-Wrote-a-Scheme-in-2025.html&quot; class=&quot;external_link&quot;&gt;I Wrote a Scheme in 2025&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;真酷啊，在失业后将自己的精力浇灌在兴趣项目上，最后得到了这样的回报。嗯，不过这也是个机会，撬动 Rust 生态
的机会，可能当我玩得开心的时候我就顺带把 Rust 给学了吧。&lt;/p&gt;&lt;h3 id=&quot;大模型相关&quot;&gt;大模型相关&lt;/h3&gt;&lt;h4 id=&quot;HUMAN=true&quot;&gt;&lt;a href=&quot;https://blog.codemine.be/posts/2026/20260222-be-quiet/&quot; class=&quot;external_link&quot;&gt;HUMAN=true&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;当使用编程 agent 编码时，写下一个个 markdown 提示文件、贴上一条条 env 环境记录、关闭一段段控制台输出，
到了最后，或许之后会要求开发者应用中内置 &lt;code&gt;LLM=true&lt;/code&gt; 来做到这一点吧……&lt;/p&gt;&lt;h4 id=&quot;AI=trueisanAnti-Pattern&quot;&gt;&lt;a href=&quot;https://keleshev.com/ai-equals-true-is-an-anti-pattern&quot; class=&quot;external_link&quot;&gt;AI=true is an Anti-Pattern&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;是吗？但其实仔细一想，写下精准的功能阐述和功能约束……不就是 &lt;code&gt;README.md&lt;/code&gt; 应该做的吗？让控制台的输出不要
那么多为什么考虑 &lt;code&gt;--quiet&lt;/code&gt; 这个参数呢？为了 LLM 方便的做法，其实本身就是要在面向人类就要做到的。&lt;/p&gt;&lt;h2 id=&quot;Presentday,Presenttime&quot;&gt;Present day, Present time&lt;/h2&gt;&lt;p&gt;春节假期回来只有单休的一周，勉强维护点结构性，这几周也是成功把在运维上的事给搞定了，接下来就该干点有
创造性的事了。&lt;/p&gt;</content:encoded></item><item><title>FoxThinking #19: 不要恐惧</title><guid>https://blog.southfox.me/2026/02/fox-thinking-19/index.html</guid><pubDate>Mon, 23 Feb 2026 21:22:00 +0800</pubDate><link>https://blog.southfox.me/2026/02/fox-thinking-19/index.html</link><description>&lt;p&gt;别人恐惧我就摸鱼。&lt;/p&gt;</description><category>FoxThinking</category><content:encoded>&lt;p&gt;别人恐惧我就摸鱼。&lt;/p&gt;&lt;span id=&quot;more&quot;&gt;&lt;/span&gt;&lt;p&gt;就算是只靠 RSS 摄取新闻的人也能发现现在变化的速度太快了，聊天、模型、蒸馏、微调、MCP、Agent、
OpenClaw ……感觉个把月就有新的概念提出来。不由得让人产生一种比错失恐惧（Fear of missing out，简
称：FOMO）更深入的恐惧，恐惧变得过时（fear of becoming obsolete, 简称 FOBO）。&lt;/p&gt;&lt;p&gt;要说我没产生过焦虑那当然是在说谎，只是我花了点时间想了想得出了下面的推论：&lt;/p&gt;&lt;p&gt;如果以后人工智能的发展真能达到「他们」所宣扬的那样简便好用无需任何背景知识，那么直接用就是了，可能
就像是什么「无条件基本收入」吧；或者依然还需掌握相关知识背景的人来编排、管理相关资源，那么等用到的
再学也不迟，临时抱佛脚可不是稀奇的事。我在现在看到的尽是沙堡，没有什么能长久存在的东西……&lt;/p&gt;&lt;p&gt;况且关于「过时」，想想我现在用着 Emacs 配点 Lisp 语言写出这篇博文我就觉得，「过时」似乎并没有什么
太在意的，二三十年前人们写着 if-else 现在仍然写着 if-else ，我相信二三十年后依然需要 if-else 。
我想还是把精力放在更值得关注的事吧，例如「更值得过的生活是什么样的生活？」，这个老问题已经存在了许久，
古代哲人近代哲人都作出了很不错回答，但并没有个百分百适合我的回答，相信就算之后出现能作出最
佳回答的「AI 哲人王」也不行。&lt;/p&gt;&lt;h2 id=&quot;阅读&quot;&gt;阅读&lt;/h2&gt;&lt;h3 id=&quot;Exploringwhysomechildrenstruggletolearnmath&quot;&gt;&lt;a href=&quot;https://phys.org/news/2026-02-exploring-children-struggle-math.html&quot; class=&quot;external_link&quot;&gt;Exploring why some children struggle to learn math&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;为什么有些孩子在数学学习上有困难？这些孩子并非不理解相关逻辑，而是监测和调整行为相关区域的活动较弱，或者
换个方式说，就是倔，无法改变自己对错误的认知。&lt;/p&gt;&lt;p&gt;不只是儿童可能成人也有这种倾向，在工作中遇到相同报错出现了几次日志就往上翻几下就能找到原因但还是
一直死磕的人，可能这就一种相同的特质，推测这种特质对于在一条道路走下去的场景是会有所帮助吧。
嗯，大脑，真神奇啊。&lt;/p&gt;&lt;h3 id=&quot;GitHubActionsIsSlowlyKillingYourEngineeringTeam-IanDuncan&quot;&gt;&lt;a href=&quot;https://www.iankduncan.com/engineering/2026-02-05-github-actions-killing-your-team/&quot; class=&quot;external_link&quot;&gt;GitHub Actions Is Slowly Killing Your Engineering Team - Ian Duncan&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;又一篇对 Github Actions 的吐槽文，可情况确实如此。Github 上 Action 日志查看卡死我的浏览器已经是频频出
现的事了，甚至我还不是老机器，而是去年买的 32G 内存搭载 Intel Core Ultra 9 285H (16) @ 5.4GHz CPU 的
设备，这对于一个大公司来说是会出现的问题吗（不过想到现在微软能让记事本都出远程执行漏洞，我就释怀了 &lt;sup&gt;&lt;a href=&quot;#1&quot; id=&quot;1r&quot; aria-label=&quot;脚注1r&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; ）？&lt;/p&gt;&lt;p&gt;而且在 CICD 明显要往更通用配置和流程管理的方向发展时，继续守着折磨人的 Yaml 和有点让人惊讶的 npm 生态还是
不太行，现在的集成工程师值得用一个更加适用的编程语言来管理复杂度和整个流程。&lt;/p&gt;&lt;h3 id=&quot;WhyClojure?&quot;&gt;&lt;a href=&quot;https://gaiwan.co/blog/why-clojure/&quot; class=&quot;external_link&quot;&gt;Why Clojure?&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;为什么用 Clojure ？因为 Clojure 对于使用它的人也提出了更高要求，我觉得用编程解决问题应该是件满足好奇并且
快乐的事，所以我觉得用 Clojure 就挺好的。&lt;/p&gt;&lt;h3 id=&quot;那艺娜：滤镜之下-微信公众号&quot;&gt;&lt;a href=&quot;https://mp.weixin.qq.com/s/1AdcYfVqo4kIQ09RyiPXeQ&quot; class=&quot;external_link&quot;&gt;那艺娜：滤镜之下 - 微信公众号&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;梗后真实的人……&lt;/p&gt;&lt;h2 id=&quot;Presentday,Presenttime&quot;&gt;Present day, Present time&lt;/h2&gt;&lt;p&gt;春节假期结束了，勉强坚持结构性没被打碎，比去年好了点。不过自己想做的事倒是没做出多少还是有点遗憾，不过往好了想
至少还是尽可能把人际关系打理了下。谁能真正做到真正独行呢？有个情感支持网还是很有必要，不过对我这种只想躺在
被窝里待着不动的狐来说短时间高强度社交还是有点太超过了……&lt;/p&gt;&lt;h2 id=&quot;脚注&quot;&gt;脚注&lt;/h2&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#1r&quot; id=&quot;1&quot; aria-label=&quot;脚注1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://www.solidot.org/story?sid=83538&quot; class=&quot;external_link&quot;&gt;奇客Solidot | Windows 记事本爆出一个远程代码执行漏洞&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>FoxThinking #18: 除夕</title><guid>https://blog.southfox.me/2026/02/fox-thinking-18/index.html</guid><pubDate>Mon, 16 Feb 2026 23:18:00 +0800</pubDate><link>https://blog.southfox.me/2026/02/fox-thinking-18/index.html</link><description>&lt;p&gt;除夕了，在零点的钟声的大战级别的爆竹声来临前来写下周刊吧，只是这个星期完全没有什么空余时间（
或者说有也给自己躺着回复精力了）来写周刊，所以就暂时先这样吧。&lt;/p&gt;</description><category>FoxThinking</category><content:encoded>&lt;p&gt;除夕了，在零点的钟声的大战级别的爆竹声来临前来写下周刊吧，只是这个星期完全没有什么空余时间（
或者说有也给自己躺着回复精力了）来写周刊，所以就暂时先这样吧。&lt;/p&gt;&lt;p&gt;不过有个感悟就是果然 ADHD 特征问题就是自律问题从而导致的睡眠问题，这个是这几天在睡好和根本没睡的状态中对比实验中
得出的，希望今年能多多睡好点吧。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://jandan.net/p/122078&quot; class=&quot;external_link&quot;&gt;科学家发现ADHD其实是一种节律障碍 - 煎蛋&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>FoxThinking #17: 想想春天的速度</title><guid>https://blog.southfox.me/2026/02/fox-thinking-17/index.html</guid><pubDate>Mon, 09 Feb 2026 21:15:00 +0800</pubDate><link>https://blog.southfox.me/2026/02/fox-thinking-17/index.html</link><description>&lt;p&gt;过了立春，阴冷的寒气正在消散，开始能感受到天空中的若有若无的春气，可我怎么还在搞服务器。&lt;/p&gt;</description><category>FoxThinking</category><content:encoded>&lt;p&gt;过了立春，阴冷的寒气正在消散，开始能感受到天空中的若有若无的春气，可我怎么还在搞服务器。&lt;/p&gt;&lt;span id=&quot;more&quot;&gt;&lt;/span&gt;&lt;p&gt;之前在&lt;a href=&quot;/2026/01/fox-thinking-13/&quot;&gt;节气差异&lt;/a&gt;周刊里摆弄节气时就在想着看看季节的速度了。这个世界是连续的（如果你是在
普朗克尺度下过活的人或智慧生命，请联系我），意味着事物总有个发展的过程。季节中每天的进
展应该能「测量」得到，是气温吗？或许诗意一点可以是报春植物的情况，测测一天过去，植物花朵开放
的「阵线」往前推进了多少公里就是「春天的速度」了。&lt;/p&gt;&lt;p&gt;我很想获取点数据算算看春天的大概速度然后在春天实际到来那天好好加强一下感官品味下周
边，就当是在「迎客」。可惜上周所有能做事的时间都丢给了服务重装上，没有什么时间推进其它感兴趣的
事上，希望能在春天实际来到我这里前把自托管服务部署好。&lt;/p&gt;&lt;h2 id=&quot;Presentday,Presenttime&quot;&gt;Present day, Present time&lt;/h2&gt;&lt;p&gt;因为上周都是在搞自托管的事（几口气部署了十二个服务），所以没什么精力读点东西了，不过折腾中也是鼓捣了
挺多东西的，希望在结束相关部署后能够整理出一些博文出来，这里先简单提一下：&lt;/p&gt;&lt;h3 id=&quot;Allinpodman&quot;&gt;All in podman&lt;/h3&gt;&lt;p&gt;将新装的服务都用普通账号 Rootless 容器部署了，折腾起来踩了很多坑，基本上也都是因为 Rootless 导致
的。在排错网络、文件权限之类的问题开始怀疑为了这没体验过的安全性弄得这么麻烦值得吗？不过至少最后也算是
弄出来了吧。&lt;/p&gt;&lt;p&gt;没有守护进程的 podman 明显好处就是 http_proxy 这种环境变量说设就是设了，终于不用怀疑到底是代理的问题
还是容器编排层面还是容器里面的问题了……感觉每个试图尝试用环境变量指定代理的 docker 用户都踩过这个坑。然后是
得自己去手动持久化容器，可能对其他人要 export 成 systemd service ，对我来说刚好能用 shepherd 来管理，
所以也不是一个麻烦的点。&lt;/p&gt;&lt;h3 id=&quot;很多地鼠&quot;&gt;很多地鼠&lt;/h3&gt;&lt;p&gt;从头开始的机会意味着能选些其它服务，我把之前的 matrix 聊天服务从 synapse 换成了 continuwuity ，
wallabag 换成了 readeck ：一个用 Go + Sqlite 的稍后读
应用。很轻巧却也有很多小毛刺，比如没有用 GET 触发获取文章的方式导致依赖插件或者自己用 API 糊啦、没有重新拉取
文章啦、文章竟然不排重啦等。不过鉴于 readeck 技术栈比起 wallabag 的 php 确实更合适个人使用
就先自适应了，如果实在受不了那就临阵学点 Go 然后自己改吧。&lt;/p&gt;&lt;p&gt;发现自己用得很多程序和工具都是用 Go 写的，难道我真该正经学下 Go 了？&lt;/p&gt;&lt;h3 id=&quot;大吃特吃树莓派&quot;&gt;大吃特吃树莓派&lt;/h3&gt;&lt;p&gt;也是将一些明显只有自己在用的 rss 阅读器还有稍后读应用都拆开来部署到树莓派上了，甚至最后还部署了个 Vaultwarden 密
码管理服务和 Searxng 聚合搜索服务。现在树莓派爆炸下线的话会让我感到很麻烦了，或许这也是我在好好利用
树莓派的表现吧。&lt;/p&gt;&lt;h3 id=&quot;大阵炼成&quot;&gt;大阵炼成&lt;/h3&gt;&lt;p&gt;如果只是简单的部署使用一些服务确实不费什么精力时间，不过这周我在把部署这套流程融进我的 Guix 配置里，誓要做到一套
配置 reconfigure 后就能直接阵法展开，将相关服务以及参数还有最后的备份流程给准备好，这里耗掉的精力就多了。今天
还弄了一下 zfs ，打算用上面的原子化快照来方便后续的备份流程（否则 forgejo 下面的一大堆仓库用 dump 来备份也太
折磨人了）。&lt;/p&gt;&lt;p&gt;不过这些东西就是很水磨工夫要自己慢慢推进，等我干好以后就一定要……可惜运维这事想做的话总能挑出点活来做，希望能尽快爬出
这个兔子洞吧。&lt;/p&gt;</content:encoded></item><item><title>FoxThinking #16: 信息毒害胆怯</title><guid>https://blog.southfox.me/2026/02/fox-thinking-16/index.html</guid><pubDate>Mon, 02 Feb 2026 23:55:00 +0800</pubDate><link>https://blog.southfox.me/2026/02/fox-thinking-16/index.html</link><description>&lt;p&gt;应当坚信，信息就像食物，来路不明的信息就像来路不明的食物，随意摄入会导致出现在某位视频主
的「这是 ta 几天内身体发生的变化」系列视频上。&lt;/p&gt;</description><category>FoxThinking</category><content:encoded>&lt;p&gt;应当坚信，信息就像食物，来路不明的信息就像来路不明的食物，随意摄入会导致出现在某位视频主
的「这是 ta 几天内身体发生的变化」系列视频上。&lt;/p&gt;&lt;span id=&quot;more&quot;&gt;&lt;/span&gt;&lt;p&gt;老鼠应该尽量不生病，因为它们吃不了老鼠药。不过确实老鼠在人们心中一直有着生命力顽强的印象，似乎老鼠药
也不能完全扑杀老鼠。这是因为老鼠有一种叫做「毒害胆怯」 &lt;sup&gt;&lt;a href=&quot;#1&quot; id=&quot;1r&quot; aria-label=&quot;脚注1r&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; 的现象，碰上未知的食物并不会马上
就吃而是会犹豫一阵子，如果看到其它品尝者生病或者死亡，那么老鼠们就会避开这种食物。&lt;/p&gt;&lt;p&gt;现在的信息场上充斥着各种标题党（Clickbait)、鼓噪情绪党（Ragebait)，在摄入这些信息时还是要像老鼠
一样「犹豫」那么几下的，最好还可以观测一下摄入过这些信息之后的症状。从这方面来说，最佳方式就是等一会，
等这些信息「放凉」。这里我觉得较好的方式就是 RSS 了，可以自主搜集一些质量较高的订阅源，也可以等待那么
几天集中「清理」信息，如果间隔几天有时候确实能看到后续情况。&lt;/p&gt;&lt;h2 id=&quot;阅读&quot;&gt;阅读&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://protesilaos.com/commentary/2026-01-28-touching-grass/&quot; class=&quot;external_link&quot;&gt;Touching grass - Protesilaos Stavrou: Master feed with all updates&lt;/a&gt;: 不要和现实脱节，
迫在眉睫触手可达的世界是一种幻觉。&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.solidot.org/story?sid=83408&quot; class=&quot;external_link&quot;&gt;Windows 11 集成 Copilot 之后状况越来越糟 - 奇客Solidot–传递最新科技情报&lt;/a&gt;：我已经看到个人电脑
上 Linux 的世界到来，反正微软已经靠做云服务商吃饱饱了，操作系统这种事还是给「专业」的人和社区
来做吧。而且没人想要一个不能「离线」的操作系统。&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/tmythicator/lichess.el&quot; class=&quot;external_link&quot;&gt;lichess.el&lt;/a&gt;: 在 Emacs 里玩国际象棋或者看赛局，我真觉得挺有用……好吧，因为我就是 Emacs 拥趸！&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.psychologytoday.com/us/blog/read-like-a-psychologist/202601/is-it-adhd-maybe-maybe-not&quot; class=&quot;external_link&quot;&gt;Is it ADHD? Maybe. Maybe Not. - Psychology Today: The Latest&lt;/a&gt;: 可能我的注意力不集中症状
表现就是睡太少了，还是得多睡睡。&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.marginalia.nu/log/a_129_finding_audience/&quot; class=&quot;external_link&quot;&gt;Why you should probably tell your audience what your blog posts are about as early as possible&lt;/a&gt;:
作为博文最好马上就抛出主题，防止在慢慢切题中消磨读者耐心，这种方式在新闻界称之为「倒金字塔」。我感觉我的博客的
摘要部分似有似无的就用到了这种方式，不过感觉用力过猛就会变成标题党。&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;观影&quot;&gt;观影&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://fosdem.org/2026/schedule/events/&quot; class=&quot;external_link&quot;&gt;FOSDEM 2026 - Events&lt;/a&gt;: 周末一直在赛博逛展，这里瞧瞧这个讲座然后不一会又看跳另一个讲座。很多讲座受限于演讲
时间都不能讲太深入的话题，但有这么一个大的盛事能将自由软件社区聚集起来也是让人兴奋啊。&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;Presentday,Presenttime&quot;&gt;Present day, Present time&lt;/h2&gt;&lt;p&gt;一月三十号的时候我用的便宜服务提供商 Cloudcone 其中一个线路遭到骇客入侵：&lt;a href=&quot;https://status.cloudcone.com/incidents/346624&quot; class=&quot;external_link&quot;&gt;Major incident: Hypervisor Outage | Status Page&lt;/a&gt;&lt;/p&gt;&lt;p&gt;很不幸我其中一台机器就放在 Cloudcone 上面，虽然有些损失但幸好还能部分重建，刚好也趁着这一波相当于重置一下
服务了。没备份的反正都是不重要的，但是还是很麻烦，这几天一直在忙着将服务用 Guix 整理和建立中，希望这周能搞定吧。&lt;/p&gt;&lt;h2 id=&quot;脚注&quot;&gt;脚注&lt;/h2&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#1r&quot; id=&quot;1&quot; aria-label=&quot;脚注1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://en.wikipedia.org/wiki/Poison_shyness&quot; class=&quot;external_link&quot;&gt;Poison shyness - Wikipedia&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>FoxThinking #15: I build this city</title><guid>https://blog.southfox.me/2026/01/fox-thinking-15/index.html</guid><pubDate>Mon, 26 Jan 2026 21:25:00 +0800</pubDate><link>https://blog.southfox.me/2026/01/fox-thinking-15/index.html</link><description>&lt;p&gt;I build the city on car and cons ~♫&lt;/p&gt;</description><category>FoxThinking</category><content:encoded>&lt;p&gt;I build the city on car and cons ~♫&lt;/p&gt;&lt;span id=&quot;more&quot;&gt;&lt;/span&gt;&lt;p&gt;这周在做一件老早就想做的事，自己搓一个评论系统。是的，很多人都做过我相信也有很多很好的评论系统存在。&lt;/p&gt;&lt;p&gt;但它们都不会做 org-mode 支持，那么也只能自己上了吧。自从我这几年写得越来越多 org-mode 而 markdown 写
得越来越少后，我已经越来越搞不清 markdown 链接语法是 ()[] 还是 []() 还有到底是链接在前还是描述在前了。&lt;/p&gt;&lt;p&gt;在今年一月早些时候 spritely 组织发布了新的
文章：&lt;a href=&quot;https://spritely.institute/news/mandy-activitypub-on-goblins.html&quot; class=&quot;external_link&quot;&gt;Mandy: ActivityPub on Goblins — Spritely Institute&lt;/a&gt; 这下可不是瞌睡时递上了枕头吗，我一直
对 Goblins 这个「誓要夺回网络」的下一代（非炒币）分布式网络框架感兴趣。一两年前简单试了下却摸索不出头绪，但经过二
五年一整年的折腾我对自己投入在上面的「技能点」有了些信心想着正好来试下了。这周一开始的摸索也是没有头绪，
却在慢慢实验后慢慢开始「悟」了，现在陷入折腾有效果越有折腾劲的阶段。&lt;/p&gt;&lt;p&gt;仓库是： &lt;a href=&quot;https://git.southfox.me/southfox/fairy-ring&quot; class=&quot;external_link&quot;&gt;southfox/fairy-ring - Gitea: Git with a cup of tea&lt;/a&gt;&lt;/p&gt;&lt;p&gt;取 fairy-ring 作为名字主要是因为框架叫 Goblins 所以想取一个西幻点名字，然后想到蘑菇环也叫做 fairy-ring ，同时蘑菇
对应的真菌也有 Wood wide web &lt;sup&gt;&lt;a href=&quot;#1&quot; id=&quot;1r&quot; aria-label=&quot;脚注1r&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; 联系森林里树木的能力。最后就以这种诡异的命名角度蹭到了评论应用。&lt;/p&gt;&lt;p&gt;从去年九月开始从博客框架、 org-mode 解析器、代码高亮……到现在的评论应用，自己慢慢建造自己的「城市」还是
挺有满足感的。&lt;/p&gt;&lt;p&gt;Someone always playing Corporation games, Who cares
they're always changing Corporation names. We just want to dance here ~♫ &lt;sup&gt;&lt;a href=&quot;#2&quot; id=&quot;2r&quot; aria-label=&quot;脚注2r&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&lt;h2 id=&quot;阅读&quot;&gt;阅读&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://guix.gnu.org/en/blog/2026/gnu-guix-1.5.0-released/&quot; class=&quot;external_link&quot;&gt;GNU Guix 1.5.0 released&lt;/a&gt;: Guix 1.5.0 版本发布了！同时现在 Guix 有了明确的一年两次大版本发布
的规划，意味着后续二进制安装后不用忍受漫长的 pull 更新环节了，对容器部署或其它系统的包管理器也是利好。
看着更新的文章发现我漏掉了一些有趣的亮点，例如不在需求 root 权限的守护进程、 shell 容器命令
里 --emulate-fhs 选项……或许是时候找个时间好好翻读下 guix 文档了？&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.sqlite.org/lang_altertable.html#why_alter_table_is_such_a_problem_for_sqlite&quot; class=&quot;external_link&quot;&gt;Why ALTER TABLE is such a problem for SQLite&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://hakibenita.com/postgresql-unconventional-optimizations&quot; class=&quot;external_link&quot;&gt;Unconventional PostgreSQL Optimizations | Haki Benita&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://atlas9.dev/blog/soft-delete.html&quot; class=&quot;external_link&quot;&gt;The challenges of soft delete | atlas9&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;有关数据库的三篇文章。发现自己确实没好好看过数据库相关的，第一范式第二范式笛卡尔积什么的概念已经模糊不清了。另外在
工作的项目被迫听老调——不要做外键约束、用 mysql 就行了、要在代码中维护数据逻辑……既然在工作上「坐立难安」后那就得在
自己项目上好好「玩玩」了，希望之后能好好掌握「全天下最强数据库」之 PostgreSQL 和琢磨一下触发器之类的数据库组件。&lt;/p&gt;&lt;p&gt;-&lt;a href=&quot;https://www.sciencealert.com/cold-weather-doesnt-make-you-sick-heres-whats-really-to-blame&quot; class=&quot;external_link&quot;&gt;Cold Weather Doesn't Make You Sick. Here's What's Really to Blame. : ScienceAlert&lt;/a&gt;: 受寒是感冒的主因
吗？其实病毒才是感冒的主因，寒冷主要还是起到推波助澜的作用：冷空气会降低温度让喉腔血管收缩削弱免疫反应。加上寒冷室内人们
扎堆病毒更容易存活传播……不过我估计我的鼻病毒一直都在我的喉管里，除了受寒还有每次吃得太甜太咸让浓度失衡也会让病
毒重新占领高地，给我来个半周一周的难受时光让我怀念无痛无病的健康时光。这样说的话鼻病毒也是另一种健康生活提醒小帮手呢（&lt;/p&gt;&lt;h2 id=&quot;Presentday,Presenttime&quot;&gt;Present day, Present time&lt;/h2&gt;&lt;p&gt;连续三天更新三篇博文的高产节奏果然还是不太适合我，所以这周就摸了……！&lt;/p&gt;&lt;h2 id=&quot;脚注&quot;&gt;脚注&lt;/h2&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#1r&quot; id=&quot;1&quot; aria-label=&quot;脚注1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://en.wikipedia.org/wiki/Mycorrhizal_network&quot; class=&quot;external_link&quot;&gt;Mycorrhizal network - Wikipedia&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#2r&quot; id=&quot;2&quot; aria-label=&quot;脚注2&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=K1b8AhIsSYQ&quot; class=&quot;external_link&quot;&gt;Starship - We Built This City (Official Music Video) {HD} - YouTube&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>2025 年终总结</title><guid>https://blog.southfox.me/2026/01/2025-annual-review/index.html</guid><pubDate>Tue, 20 Jan 2026 15:27:00 +0800</pubDate><link>https://blog.southfox.me/2026/01/2025-annual-review/index.html</link><description>&lt;p&gt;什么，已经是 2026 年了？！（事不过三，让我最后用这开头一次……）&lt;/p&gt;</description><category>年终总结</category><content:encoded>&lt;p&gt;什么，已经是 2026 年了？！（事不过三，让我最后用这开头一次……）&lt;/p&gt;&lt;span id=&quot;more&quot;&gt;&lt;/span&gt;&lt;p&gt;二五年过去，就意味着二十一世纪已过去四分之一了，毫无实感啊。&lt;/p&gt;&lt;h2 id=&quot;九寨沟&quot;&gt;九寨沟&lt;/h2&gt;&lt;p&gt;首先在三月份心血来潮到九寨沟旅游，这个时间点对看点是看水的九寨沟是淡季。不过我却感到惊喜，因为这个时间点是冬春交融的时候，
气温舒适还能看到令我感到新奇的已经慢慢化开的雪景（嗯，我可是南狐，雪景当然没怎么见过）。&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://media.southfox.me/media_attachments/files/114/097/653/150/749/613/original/634242f0d5a9de57.jpg&quot; alt=&quot;&quot; href=&quot;https://media.southfox.me/media_attachments/files/114/097/653/150/749/613/original/634242f0d5a9de57.jpg&quot; class=&quot;external_link&quot; /&gt;&lt;figcaption&gt;&lt;span&gt;户外场景的垂直照片，展示了一个树木繁茂的森林，一条木质步道穿过其中。步道位于照片左侧，由几级浅色木板台阶组成，呈弧形向上延伸，消失在树林深处。步道两侧的地面上覆盖着稀疏的雪。其中充满了高耸的树木，树干呈深棕色，树枝向上延伸覆盖着绿色的针叶。树木密集排列，一些树干上可以看到浅色的苔藓或地衣。右侧靠近前面的树干上，靠着一个浅棕色的布袋。&lt;/span&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure&gt;&lt;img src=&quot;https://media.southfox.me/media_attachments/files/114/097/653/141/193/119/original/b40733ec507fb68f.jpg&quot; alt=&quot;&quot; href=&quot;https://media.southfox.me/media_attachments/files/114/097/653/141/193/119/original/b40733ec507fb68f.jpg&quot; class=&quot;external_link&quot; /&gt;&lt;figcaption&gt;&lt;span&gt;户外风景照片，展现群山环绕的开阔山谷。照片中心是一片被雪覆盖的平坦地面有不规则的裂缝。可看到一些裸露呈黄色的钙华。照片背景是连绵的山脉，山峰呈现出深灰色或黑色，山顶覆盖着白雪。山峰的轮廓呈现出锯齿状的线条。山谷两侧的山坡上覆盖着茂密的森林，树木呈深绿色。天空呈现出阴沉的灰色，云层低垂。&lt;/span&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure&gt;&lt;img src=&quot;https://media.southfox.me/media_attachments/files/114/097/765/256/364/626/original/9c01ea36a98f1317.jpg&quot; alt=&quot;&quot; href=&quot;https://media.southfox.me/media_attachments/files/114/097/765/256/364/626/original/9c01ea36a98f1317.jpg&quot; class=&quot;external_link&quot; /&gt;&lt;figcaption&gt;&lt;span&gt;高角度拍摄的户外风景照片，展示了一个雪覆盖的山谷和一组石灰华池。照片中心是一组多层叠错的浅色石灰华池，池中蓄满了清澈的碧蓝色水。池水呈现出明亮的蓝色和绿色，池塘的形状不规则，由浅色的岩石边缘分隔开，形成一个个小型的水域。在照片的下方可看到一座传统的中国式建筑，屋顶呈深灰色，建筑的墙壁呈浅棕色。建筑周围覆盖着白雪和枯萎的树木。照片背景是覆盖着白雪的山坡，山坡上覆盖着稀疏的树木，树木呈深棕色和灰色，在雪地上投下细长的影子。山坡的轮廓清晰，呈现出锯齿状的线条。在照片的右侧可以看到一条小路，上面有一些游客在观赏风景。&lt;/span&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;其中我最满意的是这个场景：&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://media.southfox.me/media_attachments/files/114/132/851/338/564/545/original/963a6962927f513f.jpg&quot; alt=&quot;&quot; href=&quot;https://media.southfox.me/media_attachments/files/114/132/851/338/564/545/original/963a6962927f513f.jpg&quot; class=&quot;external_link&quot; /&gt;&lt;figcaption&gt;&lt;span&gt;户外风景照片，展现了一个部分结冰的湖泊，湖水呈鲜艳的蓝绿色。前景中，几棵枯树的枝干树皮呈浅灰色。湖泊后方为一座山脉的陡峭岩壁呈灰色，上面覆盖着稀疏的绿色针叶林。通过一个光秃的树干将后面的湖泊分为两处，画面左侧是已经消融的湖水；画面右侧，两棵高大的针叶树占据了部分视野，树干棕色，针叶呈深绿色。&lt;/span&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;能非常直观感受到季节交替，因为对这次的时间点太满意了，所以还想着在二五年春夏秋冬交替的时候来场「土用之旅」 &lt;sup&gt;&lt;a href=&quot;#1&quot; id=&quot;1r&quot; aria-label=&quot;脚注1r&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; ，不过立夏那段时间突然工作忙得很，然
后……就没有下文了，或许可以今年试试在春夏交替出去次？不一年出行完而是分成四年（开始找补）。&lt;/p&gt;&lt;h2 id=&quot;魔都行&quot;&gt;魔都行&lt;/h2&gt;&lt;p&gt;四月份的明日方舟音律联觉开始售卖了，抱着试一试的心态去抢了抢，然后……秒没，感叹怎么明日方舟还有那么多人玩的？不死心一直
刷新，一两分钟后出现一张中档套餐的余票，鬼使神差的点了进去锁定、付款……咦，我竟然抢到票了？&lt;/p&gt;&lt;p&gt;然后就是准备到上海的行程、机票，到处翻了翻攻略找离场地近的地铁站定了间小旅馆，之后就开始思考能干些什么了，
在联邦宇宙上发帖被同去看音律联觉的象友看到然后联系上了，开始商量一起游玩的行程。怎么说呢，也是太感谢能被 pick 上了，否则按我这宅性只会选择
一直躺尸，那也太浪费了还躺不舒适。&lt;/p&gt;&lt;h3 id=&quot;戏能通神&quot;&gt;戏能通神&lt;/h3&gt;&lt;p&gt;中午去名叫「鱻」的餐馆吃饭，一开始我就说除了生的其它都能接受，然后就精准点到生三文鱼做的餐品了。额，其实也是能接受的啦，只是要做点心里准备然后带着复杂心情品味。
跟象友聊音律联觉，最后旁边的一位带着演唱会袋子的女博就说能不能加个好友，这时还没有出租屋蟑螂圣经呢，这位在粥玩家群体里算勇敢的了（？可惜我是 B 服，受限最
远的距离就没加上了。&lt;/p&gt;&lt;p&gt;下午的行程是去剧场看剧《莎士比亚的罗朱》，对于我这种完全没看剧经验的人来说也是新奇的体验呢。全程我就处于：我是谁；他们是谁？为什么要在课桌上跳来跳去；怎么
最后就突然亲上了的一种茫然状态。不过感受到了其中的炽烈的情感，也是体会到了古希腊中对戏剧的描述，戏果真能
通神啊。虽然不懂，不过体验确实挺好的，感叹现场演出确实是现今艺术上最无可替代的形式了。&lt;/p&gt;&lt;h3 id=&quot;联觉联觉&quot;&gt;联觉联觉&lt;/h3&gt;&lt;p&gt;傍晚和象友分别后我就来到梅奔场，连安检的保安喇叭里放着的喊话都是博士博士的叫了，还挺专业？进入场馆后跟旁边的博士攀谈了起来，感动竟然是 B 服的，要不然出来这种同好
集会一个好友都没加上那也悲催了吧！之后就是梦幻般的演出场景了，时间是真的很快就没什么实感的过去了。另外就是鹰角是真知道 Mystic Light Quest 会是重点还
贴心的给屏幕上的 PV 加上罗马音帮助大家跟唱，其中那个礼炮一响真是……感到泪都要掉下来，这就是乐魂所在啊。&lt;/p&gt;&lt;p&gt;也是在录播放出后偶尔回来看看，闪回体验了说是：&lt;a href=&quot;https://www.bilibili.com/video/BV1dwg5zCEBD/&quot; class=&quot;external_link&quot;&gt;《明日方舟》2025「音律联觉-熠曲丰碑」官方录播_哔哩哔哩_bilibili&lt;/a&gt;&lt;/p&gt;&lt;p&gt;散场回到旅馆附近拖着疲惫的身躯来到便利店打算买点东西吃，没想到店员小哥突然抓起一瓶魔爪滴的一声火速拿自己手机结帐后塞给了我。我顿时愣住然后看着他的笑脸才
反应过来我是被……请了？然后开始聊天，我说你去看演出了吗他说想啊，可惜没抢到票。最后我就拿了些会场收的无料分给了
他（演出伴手礼中的东西已经有之前被请的博士送了，可惜），大部分都是界园相关的，这时大家都沉浸在对肉鸽界园主题的畅
想和期待中呢……&lt;/p&gt;&lt;h2 id=&quot;关键词&quot;&gt;关键词&lt;/h2&gt;&lt;p&gt;二四年的年终总结给的关键词是「建造」，现在看来还是挺应验的。生活上在慢慢建里属于自己的模式并在慢慢践行了，就是健康上有
很多地方可以优化，例如：多睡点多睡点多和多睡点。&lt;/p&gt;&lt;p&gt;二五年博客方面上的「建造」比起二四年变化更明显了，在十月份开启了写周刊的模式到现在还在遵守，对我这个三分钟热度的人来说是
了不起的一件事了。办属于自己的电子刊也是对这个日益极化互联网的一种表态吧，不过还有一个原因就是那段时间刚把博客的框架更
换了 &lt;sup&gt;&lt;a href=&quot;#2&quot; id=&quot;2r&quot; aria-label=&quot;脚注2r&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; ，能用 Scheme 来组织整个流程并用 org-mode 来写博客内容对创作动力也是很大提升。&lt;/p&gt;&lt;p&gt;技术方面上「建造」在二五年则是更加坚定使用 Lisp 作为主要语言了。都说用 Lisp 的人都像是「巫师」一样，但我觉得我更像一
个「道士」，还是阵法专业的。当其他人直接挥动魔杖念出咒语工作时，我得首先拿出阿隆佐·邱奇、迪杰斯特拉、图灵几位祖师爷的牌
位拜几下，然后摆出 Hy, Clojure, ClojureDart 这种阵图在 Python, Java, Dart 这种「灵脉」上运转 eval 和 apply
两股阴阳力量开启括括又号号大阵最后才来施法。非常折腾，但我们阵法专精的就是这样的。&lt;/p&gt;&lt;p&gt;二四年展望的 Guix 也确实鼓捣起来了，最后建立了属于自己的「洞府」，把个人相关的 dotfiles 、用到的应用甚
至 Steam Deck &lt;sup&gt;&lt;a href=&quot;#3&quot; id=&quot;3r&quot; aria-label=&quot;脚注3r&quot;&gt;3&lt;/a&gt;&lt;/sup&gt; 和树莓派 &lt;sup&gt;&lt;a href=&quot;#4&quot; id=&quot;4r&quot; aria-label=&quot;脚注4r&quot;&gt;4&lt;/a&gt;&lt;/sup&gt; 都囊括了进去。不知是在这种毫无「希望」全靠自己摸爬滚打场景中待惯了还是怎的，后半年
有点信心爆棚将这种劲外衍了，开始拿 ClojureDart 改动了 Pilipala 这个第三方 B 站播放
器 &lt;sup&gt;&lt;a href=&quot;#5&quot; id=&quot;5r&quot; aria-label=&quot;脚注5r&quot;&gt;5&lt;/a&gt;&lt;/sup&gt; 抑或是用 Lips 写了个流媒体平台的替代前端 &lt;sup&gt;&lt;a href=&quot;#6&quot; id=&quot;6r&quot; aria-label=&quot;脚注6r&quot;&gt;6&lt;/a&gt;&lt;/sup&gt; 。&lt;/p&gt;&lt;p&gt;这些「建造」现在盘点下确实还是颇有收获，不过就是感觉二四年展望的「打地基」这方面没怎么投入，或许在新一年能找补
下。那么在此也展望下新一年的关键词吧，还没想好但觉得和「游」有关，是「遨游」还是「游心」？甚至「游戏」都有可能。&lt;/p&gt;&lt;h2 id=&quot;最后&quot;&gt;最后&lt;/h2&gt;&lt;p&gt;虽是新的一年，但不是新的我。知道自己是只喜欢趴着的慵懒狐就没必要定什么目标来折磨自己了，顶多想个笼统的词
语供之后的一年稍微「咀嚼」下。&lt;/p&gt;&lt;p&gt;写于二六年的一月二十号，二十四节气的最后一个节气大寒。西北风气流和来袭的冷空气也终于来到尽头，春天已然
不远了。&lt;/p&gt;&lt;h2 id=&quot;脚注&quot;&gt;脚注&lt;/h2&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#1r&quot; id=&quot;1&quot; aria-label=&quot;脚注1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; 土用指的是四季交替之间的过渡时期，详见： &lt;a href=&quot;https://ja.wikipedia.org/wiki/%E5%9C%9F%E7%94%A8&quot; class=&quot;external_link&quot;&gt;土用 - Wikipedia&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#2r&quot; id=&quot;2&quot; aria-label=&quot;脚注2&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;/2025/09/hello-haunt/&quot;&gt;Hello Haunt, 又一次换了博客框架&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#3r&quot; id=&quot;3&quot; aria-label=&quot;脚注3&quot;&gt;3&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;/2025/05/configure-steam-deck/&quot;&gt;Steam Deck 可劲折腾&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#4r&quot; id=&quot;4&quot; aria-label=&quot;脚注4&quot;&gt;4&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;/2025/12/does-the-fox-eat-raspberry-pi/&quot;&gt;狐狸会喜欢树莓做的派吗？树莓派鼓捣记&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#5r&quot; id=&quot;5&quot; aria-label=&quot;脚注5&quot;&gt;5&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://git.southfox.me/southfox/clodala&quot; class=&quot;external_link&quot;&gt;southfox/clodala - Gitea: Git with a cup of tea&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#6r&quot; id=&quot;6&quot; aria-label=&quot;脚注6&quot;&gt;6&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;/2025/12/traditional-craftsmanship-frontend/&quot;&gt;古法手做网页前端项目&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>FoxThinking #14: 我好像没那么在乎「最佳实践」了</title><guid>https://blog.southfox.me/2026/01/fox-thinking-14/index.html</guid><pubDate>Mon, 19 Jan 2026 17:03:00 +0800</pubDate><link>https://blog.southfox.me/2026/01/fox-thinking-14/index.html</link><description>&lt;p&gt;翻看着二五年的项目，发现我好像确实走上了一条没什么人走的道路。&lt;/p&gt;</description><category>FoxThinking</category><content:encoded>&lt;p&gt;翻看着二五年的项目，发现我好像确实走上了一条没什么人走的道路。&lt;/p&gt;&lt;span id=&quot;more&quot;&gt;&lt;/span&gt;&lt;p&gt;二五年鼓捣的项目都非常的偏，没有所谓的「最佳实践」可以践行，一些项目甚至连像样的文档
都没有。在经历了数不胜数的遇到困难睡大觉起来后觉得还是有点不甘然后继续折腾时刻后，发现自己开始
慢慢适应了。如果没有「最佳实践」可以参照那就自己慢慢走吧，就算路上荒无人烟，就算走到荒山野岭，不过不要犯蠢，
知道自己的极限在哪，好的建议还是要听听的。&lt;/p&gt;&lt;p&gt;接下来我想着能不能将这份感悟推广到 life art 上，生活有时候就是不能被一个「工程模板」和热门「框架」描述，
这种没有「最佳实践」执行要自己慢慢实验的生活，我准备好了吗？&lt;/p&gt;&lt;h2 id=&quot;阅读&quot;&gt;阅读&lt;/h2&gt;&lt;p&gt;新年了，恭喜下列软件迎来了新周年庆或是新版本：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://wikimediafoundation.org/wikipedia25/&quot; class=&quot;external_link&quot;&gt;Celebrate Wikipedia’s 25th Birthday – Wikimedia Foundation&lt;/a&gt;: 维基百科 25 周年，也是 mediawiki 这
自由软件的胜利。&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://forgejo.org/2026-01-release-v14-0/&quot; class=&quot;external_link&quot;&gt;Forgejo v14.0 is available — Forgejo&lt;/a&gt;: forgejo v14 ，虽然感觉联邦实作还有好长一段距离，不过至少看到有在推动
也是令人鼓舞了，光是想想跨实例提 PR 的功能会是以怎么样的方式运作就令人雀跃了。&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://blog.jquery.com/2026/01/17/jquery-4-0-0/&quot; class=&quot;external_link&quot;&gt;jQuery 4.0.0&lt;/a&gt;: 你是……？虽然我从来没用过，但快二十年了还在发大版本也是一种胜利。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;欧灭跌多，啪啪啪啪啪……&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://drajmarsh.bitbucket.io/earthsun.html&quot; class=&quot;external_link&quot;&gt;Sun Position Calculator&lt;/a&gt;: 一个太阳位置计算网页应用，加入到我的工具箱中（想加点天文学技能点了说是）。&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://news.ycombinator.com/item?id=46635345&quot; class=&quot;external_link&quot;&gt;Ask HN: How can we solve the loneliness epidemic? | Hacker News&lt;/a&gt;: 后疫情时代感觉整个社会都经历了关系断裂和
席卷的孤独，连 HN 这种刻板印象中的「书呆子」社区也在热烈讨论了如何应对孤独。翻着讨论我意识到确实我从来没有深刻参与到某种活动
中去，所以从小到大都没什么联系感。讨论中说到最好的方式是自己主办一个聚会，但是今年开始锻炼「主持人插件」并装备上是不是有点太
托大了？或许可以到处看看有没有活动可以参加，今年我想多多出来逛逛发展一些关系（有点像狐狸出洞）。&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://letsencrypt.org/2026/01/15/6day-and-ip-general-availability&quot; class=&quot;external_link&quot;&gt;6-day and IP Address Certificates are Generally Available - Let's Encrypt&lt;/a&gt;: Let's Encrypt 组织支持现
为期六天的 IP 证书，目前我想到的用途是给不想备案的国内服务器上的类似网盘、同步应用这种需要优秀延迟和响应速度的服
务套 HTTPS ？&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://xlii.space/eng/i-hate-github-actions-with-passion/&quot; class=&quot;external_link&quot;&gt;I Hate Github Actions with Passion&lt;/a&gt;: 对 Github Action 的吐槽，这种点击重试坐在屏幕苦等后弹出一个红叉的场景然后砸桌
是每个调试 Github Action 的人都遇到过的。看着 HN 里的建议有用 Nix 来锁定环境的，在想或许我可以试试将 Guix 引入
到 Github Action 环境中？&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://blog.emojipedia.org/emoji-design-convergence-review-2018-2026/&quot; class=&quot;external_link&quot;&gt;Emoji Design Convergence Review: 2018 - 2026&lt;/a&gt;: 也是解答了我一直有的疑问，为什么 mastodon 这种应用要额外引入一个库替换
掉原生 emoji ？因为原生 emoji 确实有设计上的分歧，笑脸可能会变白眼，所以只得用三方库将这种分歧给消灭掉。&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://yogthos.net/posts/2026-01-16-lattice-mcp.html&quot; class=&quot;external_link&quot;&gt;(iterate think thoughts): Stop Round-Tripping Your Codebase: How to Cut LLM Token Usage by 80% Using Recursive Document Analysis&lt;/a&gt;: 出现了，我一直觉得 S 表达式这种对于机器理解友好的语法在之后的 LLM 环境中会更受青睐，现在就看到了个例子，
将代码仓库当成一个环境然后用一些定义好的过程给 LLM 使用就能用更少的 token 消耗做同样的事。&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lalitm.com/post/why-senior-engineers-let-bad-projects-fail/&quot; class=&quot;external_link&quot;&gt;Why Senior Engineers Let Bad Projects Fail - Lalit Maganti&lt;/a&gt;: 严肃学习中。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;之后是讲 org-mode 和 markdown 的文章：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://karl-voit.at/2025/08/17/Markdown-disaster/&quot; class=&quot;external_link&quot;&gt;Markdown Is a Disaster: Why and What to Do Instead&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://karl-voit.at/2017/09/23/orgmode-as-markup-only/&quot; class=&quot;external_link&quot;&gt;Org Mode Syntax Is One of the Most Reasonable Markup Languages to Use for Text&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Markdown 确实有些地方我是没弄懂，例如像 lisp 一样超级分裂的方言状况，根本不知道到底能用什么语法，还有就是链接语法方括号和圆
括号到底谁在前谁在后我到现在也没记住。不过虽然 org-mode 有规范，一些语法设计好点但是也有很多怪地方，例如粗体斜线这种标记语法
强制要求前后必须是空格及根本考虑过网络图片（在 Emacs 显示 HTTP 图片要自己做一大堆 hack ）。不过 org-mode 不仅仅是简单
的标记语法，它是 Emacs 文本环境的体现，只凭这一点我就继续选择用 org-mode 了。&lt;/p&gt;&lt;p&gt;然后是一些关于个人站点主题的文章：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://henry.codes/writing/a-website-to-destroy-all-websites/&quot; class=&quot;external_link&quot;&gt;A Website To End All Websites | Henry From Online&lt;/a&gt;: 原来因为汽车发展导致城市规划围着大家默认有汽车而规划导致没车寸步难行
的场景（例子：美国）叫极端垄断（Radical Monopoly）。现代互联网或者说社交媒体已经是这种情况了，怎么反抗呢？用个人网站及
其 &lt;a href=&quot;https://indieweb.org/POSSE&quot; class=&quot;external_link&quot;&gt;POSSE&lt;/a&gt; 或者是&lt;a href=&quot;https://jointhefediverse.net&quot; class=&quot;external_link&quot;&gt;联邦宇宙&lt;/a&gt;这种邦联制的社交平台。所以是时候建立属于自己的个人网站了，用免费的二级域名也没关系、不懂
编程没关系。只要有新的个人网站建立，互联网就会更健康一分……&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://susam.net/writing-first-tooling-second.html&quot; class=&quot;external_link&quot;&gt;Writing First, Tooling Second - Susam Pal&lt;/a&gt;: 在自己的个人网站哪怕直接写 HTML 页面也没关系，毕竟重要的是内容和想法，然后
才是工具或者框架上的事……或者，也不尽然？例如我这就是因为自己折腾了框架然后大力推动了写作的欲望。&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://maurycyz.com/misc/new_ssg/&quot; class=&quot;external_link&quot;&gt;Writing my own static site generator: (Maurycy's blog)&lt;/a&gt;: 用 700 行 c 代码实现的简单静态网站生成器，简单是好的，不过
可惜我就是要一些复杂「花哨」的功能，嗯……之后得把这个框架下的代码好好整理下了。&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;Presentday,Presenttime&quot;&gt;Present day, Present time&lt;/h2&gt;&lt;p&gt;诶呀，看着又大又空的主题部分就知道我又是死线战士临近到头才来想的，希望能慢慢减少这种情况发生。这周将精力花在了鼓捣磁带播放器
上，现在写完这篇周刊明天要趁着大寒这最后一个节气时间点写年终总结了，怎么我突然就成了高产博主了呢？&lt;/p&gt;</content:encoded></item><item><title>一拉一扯，磁带行者</title><guid>https://blog.southfox.me/2026/01/cassette-player-in-2026/index.html</guid><pubDate>Sun, 18 Jan 2026 21:38:00 +0800</pubDate><link>https://blog.southfox.me/2026/01/cassette-player-in-2026/index.html</link><description>&lt;p&gt;磁带播放器就这么悄悄退出了历史舞台，而我现在跑到后台拿到了它的联系方式。&lt;/p&gt;</description><category>复古</category><category>Emacs</category><content:encoded>&lt;p&gt;磁带播放器就这么悄悄退出了历史舞台，而我现在跑到后台拿到了它的联系方式。&lt;/p&gt;&lt;span id=&quot;more&quot;&gt;&lt;/span&gt;&lt;figure&gt;&lt;img src=&quot;https://media.southfox.me/media_attachments/files/115/911/236/055/931/550/original/c5e2090669de1749.jpg&quot; alt=&quot;&quot; href=&quot;https://media.southfox.me/media_attachments/files/115/911/236/055/931/550/original/c5e2090669de1749.jpg&quot; class=&quot;external_link&quot; /&gt;&lt;figcaption&gt;&lt;span&gt;一个带着 vhs 滤镜的相片，显示了一个用 gpd pocket 小型电脑通过 3.5 转 3.5 链接到磁带机同时磁带机链接到一个 koss pp 小型头戴耳机，旁边手机支架放着个磁带的场景&lt;/span&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2 id=&quot;契机&quot;&gt;契机&lt;/h2&gt;&lt;p&gt;现在是一月份都过去大半的二六年了，我却还在折腾磁带播放器，是的，流媒体很方便音质也好，那我为什么不用呢？
因为我是老用户与狗，在运营商那混不到什么好脸色，套餐流量额度还维持在七八年前的水准，不怎么高。
音质上我更是个「木耳」，听不出流媒体音质之间的区别。不过这些问题可以通过在应用里开启缓存解决所以我也没什么抱怨，
但在去年七月份的早起赶工出门时手机没握住让手机从楼梯上摔到楼下成功报废，也是体验了一把现代社会没有智能终端的尴尬（没
带现金过地铁都要靠好心工作人员「施舍」）。当时上午就紧急下单了（还有十几分钟就过了能下午当日送的点了）新手机，下午
到货时没配置多久就傻眼了……这手机没有先进的 3.5 耳机接口！只有一个干巴巴的 type-c 接口，没办法，只能再去网上买了
个 3.5 转 type-c 的 DAC 用着。不过我一直耿耿于怀，毕竟耳机要绑个「小尾巴」太麻烦了，每次从手机切换到电脑都要多
一步操作不说，这个钥匙般大小的转接头还经常要我好找（不要指望有 ADHD 特质的人能放好东西）。&lt;/p&gt;&lt;p&gt;在十二月时，看到了奇客的报道 &lt;a href=&quot;https://www.solidot.org/story?sid=83067&quot; class=&quot;external_link&quot;&gt;奇客Solidot | 美国 Z 世代再次青睐实体媒介&lt;/a&gt; 动了想折腾实体介质的念头。黑胶 CD 这些我没怎么
用过没什么兴趣，但磁带，似乎还能从模糊的童年记忆里翻找出一些场景，打开一个磁带播放器放入一卷磁带播放英语录音什么的。好吧，那就来
看看磁带播放器吧。&lt;/p&gt;&lt;h2 id=&quot;下单&quot;&gt;下单&lt;/h2&gt;&lt;p&gt;动了心思后就在淘宝上和视频平台乱逛，了解到一些大概信息。本来是想买更现代的近产设备，毕竟时代在发展，科技在进步不是吗？还能
享受到 type-c 接口和更大容量的电池……但我看了下在小众领域可不是这样的，当时的磁带生产线清出的那么快，而这个市场现在又那么
小众，就造就了一种「绝地天通」断代级别的现象。好的解码芯片已经无法在现代由小厂家中生产出来了，看到一些临近出的机子甚至
没有自动翻面的功能，而自动翻面功能在千禧年一众旗舰磁带播放器可是标配功能。折腾小众的播放器确实有格调但是要自己每隔半小时或四十
多分钟手动拿出机器来手动翻面也太「装」太折腾了。&lt;/p&gt;&lt;p&gt;最后还是选择了以二手的磁带热潮时期出产的播放器为目标。因为觉得没什么精力在二手市场「狩猎」和折腾维
修（虽然我有嵌入式经验但已不想再握住焊枪了）及养护机子了，所以就找了个专门做这种的店铺，里面的溢价我就当成保险费了。最后选择是
索尼的 WM GX677 型号。看重的主要原因是录放一体机，意味着我可以用机器的麦克风输入来录点磁带，虽然效果不如专业做这些的卡座机，不
过有就行了，或许这个磁带产生的「摇晃飘离」感正适合我喜欢的 lofi 音乐呢。到手后确实感叹世纪初那种集成电路大爆发的科技进步，复杂的
机械结构和操作逻辑就这样压缩在了比磁带大不了多少的机器里，好像我对这种既有笨重实物又有先进集成电路的「混合感」的物件没什么抵抗力呢。&lt;/p&gt;&lt;p&gt;然后是磁带，这个就直接从「二手 磁带 一类」的搜索结果挑了家最多人买的店铺买，虽然很战损成色，不过能用啊。最后就是一个 3.5 对 3.5 的
线，将播放设备从 3.5 输出在输入进 GX677 麦克风口就能实现录音了。&lt;/p&gt;&lt;h2 id=&quot;电台&quot;&gt;电台&lt;/h2&gt;&lt;p&gt;播放器首先比磁带先到货没磁带的情况下就先听了听 FM 电台的功能，在刺啦刺啦的噪声中找到一个电台还是挺新奇的，在这时才发觉现在手机已经不
支持插个耳机当天线收听 FM 电台了啊……&lt;/p&gt;&lt;p&gt;稍微带着这个播放器听着电台出去走了走，感受是现在的无线电干扰也挺大的，走到某个路牌下或者路过某个店铺就能明显感受到刺啦的
杂音。听久了电台发现基本都是交通台交通信息和精准针对目标人群的广告例如保健品或装修优惠啥的，不由感叹一代产品就盯着一代人使劲薅啊，或许
三四十年后现在「传统」搓玻璃屏幕设备广告也都是保健品和什么保养手术，更现代更新奇的广告只会在脑机接口设备上展示。&lt;/p&gt;&lt;h2 id=&quot;下载&quot;&gt;下载&lt;/h2&gt;&lt;p&gt;磁带到货后首先是就拿一些 lofi 电台的歌试了下，首先是用 &lt;a href=&quot;https://app.chillhop.com/&quot; class=&quot;external_link&quot;&gt;Livestream - Chillhop Music&lt;/a&gt; 的……API 获取音乐文件地址
然后 MPV 播放器播放录入到磁带机里。效果十分不错，这种 lofi 味搭配磁带机的「摇晃暖糯」感确实更有味道了。&lt;/p&gt;&lt;p&gt;不过除了 lofi 音乐我还想听点网易云上的音乐。嗯，简单点可以通过一些工具将手机上下载的专有 ncm 格式文件转换
成 mp3 就行了吧，不，其实还有个更简单的办法就是通过网易云的……API （当个游走在自由软件和专有平台的狐不得不点了挖
掘 API 的技能点）然后直接获取 mp3 地址，然后就能直接下载了。去年初我还将相关 API 封装了
个 Emacs 包： &lt;a href=&quot;https://git.southfox.me/elisp/enep.el&quot; class=&quot;external_link&quot;&gt;elisp/enep.el&lt;/a&gt; 方便自己使用。因为现在只有通过 ID 直接下载歌曲的功能（其它功能需要数据设计，而歌曲、
歌手、专辑是经典的多对多关系，想想就觉得麻烦就没继续弄了）。不过就算这样在 Emacs 里也能方便下这个过程，意识到网易云 Web
端可以轻易复制类似的链接 https://music.163.com/song?id=478507889 从里面获取 ID 然后通过写好的函数下载歌曲。
就糊了个小函数：&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-emacs-lisp&quot;&gt;(defun my/direct-download-netease-music (link)
  (interactive (list (org-cliplink-clipboard-content)))
  (let ((music-id (car (last (string-split link &amp;quot;id=&amp;quot;)))))
    (enep-download-music music-id)))&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;作用直接读取剪贴板的内容并 split 链接读取到 ID 丢到下载函数。&lt;/p&gt;&lt;h2 id=&quot;制作&quot;&gt;制作&lt;/h2&gt;&lt;p&gt;那么有了歌曲就该来制作点混音带（MixTape）了，在七八十的洪荒年代的人们没有像现在应用里一键新建个歌单那么简单，只能自
己从广播录音或从自己有的磁带「裁剪」转录到一张磁带上，这点上可以将混音带理解成私人制作的喜爱歌单吧。在现在自己动手做
一个有着实体形式的喜爱歌单也是挺酷的一件事了。&lt;/p&gt;&lt;p&gt;但在操作中问题接踵而来，首先就是为了方便 GX677 的快进快退选歌功能，每首歌之间要加个三秒空白时间；播放列表的的歌要方便添删和移动
歌曲的移动顺序；六十分钟的磁带一面只有三十分钟，要方便看出每首歌时间并计算总和时间（包括每两首歌之间的空白三秒）。这些需求如果让我
自己慢慢算可能很快丧失热情了，到那里能够找到能够在两首歌之间加空白段的播放器和管理歌曲并计算歌曲总和时间的软件呢……？&lt;/p&gt;&lt;p&gt;幸好我知道有个软件能做到这些，就是 Emacs ，准确来说是 Emacs 里的 &lt;a href=&quot;https://www.gnu.org/software/emms/&quot; class=&quot;external_link&quot;&gt;GNU Emms&lt;/a&gt; 包，可以很方便查看歌曲元数据和管理播放流程。&lt;/p&gt;&lt;p&gt;首先是每个歌曲之间加个 3 秒空白时间，因为 Emms 贴心的将播放下一首弄成可以自定义的，所以只需要：&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-emacs-lisp&quot;&gt;(setq emms-player-next-function
      (lambda ()
        (run-at-time
         3 nil
         (lambda ()
           (emms-next)))
        ))&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;就是将直接运行 &lt;code&gt;emms-next&lt;/code&gt; 改成了用定时器在 3 秒后执行，完美。&lt;/p&gt;&lt;p&gt;之后是管理播放列表，这方面当真是了不得，按下快捷键添加某首歌到当前的页面、能用 Vim 的方式选择多行
按下 D 删除、按下快捷键将某首歌上升或下降顺序……欸，Emacs 你赢了，我甘愿将我的热情和心血奉献给你。&lt;/p&gt;&lt;p&gt;最后是便捷查看歌曲时长并算出整体时间，这方面虽然 Emms 的歌曲信息显示是以「歌手」- 「专辑」- 「歌曲」名格式显示的，但是其实相关
元数据在文本属性中（就像网页一样， &amp;lt;p info=&amp;quot;xxx&amp;quot;&amp;gt;Hello World!&amp;lt;/p&amp;gt; ，实际显示的文字背后可以装点数据）已经有包含了歌曲的长度
信息了，也因 Emms 贴心的将歌曲信息查看函数弄成可以自定义的，所以只需要：&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-emacs-lisp&quot;&gt;(defun my/emms-info-track-description (track)
  (let ((artist (emms-track-get track 'info-artist))
        (album (emms-track-get track 'info-album))
        (title (emms-track-get track 'info-title))
        (mtime (emms-track-get track 'info-playing-time)))
    (format &amp;quot;%s - %s - %s - %02d:%02d&amp;quot;
            (or artist &amp;quot;Unknown&amp;quot;)
            (or album &amp;quot;Unknown&amp;quot;)
            (or title &amp;quot;Unknown&amp;quot;)
            (/ mtime 60) (% mtime 60))))

(setq emms-track-description-function 'my/emms-info-track-description)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;就能在歌曲管理页面显示歌曲长度信息了，效果类似于这样：&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://media.southfox.me/attachment/2026-01-18_21-30-screenshot.jpg&quot; alt=&quot;&quot; href=&quot;https://media.southfox.me/attachment/2026-01-18_21-30-screenshot.jpg&quot; class=&quot;external_link&quot; /&gt;&lt;figcaption&gt;&lt;span&gt;EMMS 里显示歌曲信息页面截图&lt;/span&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;最后是计算所选歌曲的长度信息，这个就更加直接了，写一个函数获取选择区域的文本提取出文本属性中的歌曲信息然后循环遍历加和（顺带也加上
三秒空白时间）：&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-emacs-lisp&quot;&gt;(defun my/emms-playlist-sum-duration (beg end)
  (interactive &amp;quot;r&amp;quot;)
  (let ((total-seconds 0)
        (gap-seconds 3))
    (save-excursion
      (goto-char beg)
      (while (&amp;lt; (point) end)
        (let* ((track (emms-playlist-track-at (point)))
               (duration (and track (emms-track-get track 'info-playing-time))))
          (when duration
            (setq total-seconds (+ total-seconds duration gap-seconds))))
        (forward-line 1)))
    (let ((hours (/ total-seconds 3600))
          (minutes (/ (% total-seconds 3600) 60))
          (seconds (% total-seconds 60)))
      (message &amp;quot;Total Time: %02d:%02d:%02d&amp;quot;
               hours minutes seconds)))))&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这样子一套组合拳下来就完满了，方便管理歌曲和计算总体时间。三十分钟一面的磁带准确来说还会多出两分钟所以最后定在了以三十二分钟为一面，不断
折腾中也用到了 Sayonara wild hearts 这种轻快的一两分钟游戏原声填补（我折腾磁带好像也跟这游戏前几年出了磁带版游戏原声带有关，这
游戏真是给我下降头了！），最后余下一分钟的实在补不足的就用 O Superman 这种前后没什么起伏的轻人声硬补。&lt;/p&gt;&lt;p&gt;实际录制只要将磁带快退到开头然后按下磁带录音键等个六七秒按下 Emacs 里的回车播放就能进行录制了，GX677 录制并没有什么特殊功能，所以要
自己在实际录制前试录一段，音量如果过高就会出现类似「炒豆声」的细微爆裂声。录完之后按下 GX677 的播放翻页一体的按键转面继续录完剩下的歌，
就能得到一份自己制作的混音带了！&lt;/p&gt;&lt;h2 id=&quot;总结&quot;&gt;总结&lt;/h2&gt;&lt;p&gt;其实，我只是在远处观望过磁带盛行的时代，不过可能这种若有若无的感觉让我着迷吧。话说，感觉我的风格就是在追逐旧日
幻梦一样，就像我从来没经历过的时代、从来没体验过只在书本上描述的「开放互联网」，不过，至少我现在有个磁带机了。&lt;/p&gt;&lt;h2 id=&quot;参考&quot;&gt;参考&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.bilibili.com/video/BV13gCdYdE5N/&quot; class=&quot;external_link&quot;&gt;几角钱一盘的旧磁带，居然可以这么好玩... - 哔哩哔哩&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.bilibili.com/video/BV1Zn4y1X7gh/&quot; class=&quot;external_link&quot;&gt;想试试磁带？一个视频带你入坑！用最有温度的科普，介绍最有温度的音乐！ - 哔哩哔哩&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content:encoded></item><item><title>FoxThinking #13: 节气差异</title><guid>https://blog.southfox.me/2026/01/fox-thinking-13/index.html</guid><pubDate>Sun, 11 Jan 2026 23:37:00 +0800</pubDate><link>https://blog.southfox.me/2026/01/fox-thinking-13/index.html</link><description>&lt;p&gt;我一直有一本小台历，每天出门都会把当天的那一页扯下来放到包里，所以对于节气这事我还是一直有留意到的。
最近在想起源于黄河流域的二十四节气是不是一个带有定域性质（或者说中心主义）的发明呢？所以这周点了一
点点数据科学的技能点用以分析其他区域和黄河流域节气的相关性。&lt;/p&gt;</description><category>FoxThinking</category><content:encoded>&lt;p&gt;我一直有一本小台历，每天出门都会把当天的那一页扯下来放到包里，所以对于节气这事我还是一直有留意到的。
最近在想起源于黄河流域的二十四节气是不是一个带有定域性质（或者说中心主义）的发明呢？所以这周点了一
点点数据科学的技能点用以分析其他区域和黄河流域节气的相关性。&lt;/p&gt;&lt;span id=&quot;more&quot;&gt;&lt;/span&gt;&lt;h2 id=&quot;节气diff&quot;&gt;节气 diff&lt;/h2&gt;&lt;p&gt;首先是要获取到数据，找寻了一番发现这家 &lt;a href=&quot;https://open-meteo.com/&quot; class=&quot;external_link&quot;&gt;Free Open-Source Weather API | Open-Meteo.com&lt;/a&gt; 服务挺不
错的不需要 apikey 就能直接使用。没看到捐款通道，似乎是通过商业使用收费来维持运营。&lt;/p&gt;&lt;p&gt;使用时感叹这真是羡煞古人了，这种天文数据以前可是被精英权贵老登死守的，但在现在，一般路过爱好
者就能得到。&lt;/p&gt;&lt;p&gt;得到数据后就要开始数据分析了，网上搜了搜看看两组数据的相关性怎么计算，看着蹦出来的皮尔逊相关系数、斯皮尔曼
相关系数、切比雪夫距离相关概念让脑子都有点懵了。之后还是贯彻一下惰性求值学习法，先直接用上，背后的相关概念
等之后有时间在琢磨吧。&lt;/p&gt;&lt;p&gt;实际执行上就直接选择用 python 这边的生态了，就算我这个数据科学门外汉也听说过 &lt;code&gt;pandas&lt;/code&gt; 和 &lt;code&gt;scipy&lt;/code&gt; 这两个
包。不过对于语言我就选择使用 &lt;code&gt;hylang&lt;/code&gt; 了，因为我已经离不开 &lt;code&gt;-&amp;gt;&lt;/code&gt; 了，现在分析功能代码是这样子 &lt;sup&gt;&lt;a href=&quot;#1&quot; id=&quot;1r&quot; aria-label=&quot;脚注1r&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; 。&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-hy&quot;&gt;(defn analyze [df-a df-b lag]
  (let [combined (pd.concat [(.rename df-a :columns {&amp;quot;temperature_2m_mean&amp;quot; &amp;quot;dengfeng&amp;quot;})
                             (.rename df-b :columns {&amp;quot;temperature_2m_mean&amp;quot; &amp;quot;local&amp;quot;})]
                            :axis 1)]
    (for [day (range (- lag) (+ lag 1))]
      (let [shifted (.shift (get combined &amp;quot;dengfeng&amp;quot;) day)
            correlation (.corr shifted (get combined &amp;quot;local&amp;quot;) :method &amp;quot;spearman&amp;quot;)]
        (print f&amp;quot;登封 {day} 天对比 local: {(.round correlation 6)}&amp;quot;)))))&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;节气的基准位置根据周礼选择了登封观星台（经纬度 113.15 34.41），其它地方的经纬度可以通过 &lt;a href=&quot;https://lbs.baidu.com/maptool/getpoint&quot; class=&quot;external_link&quot;&gt;百度地图-坐标拾取器&lt;/a&gt; 网页
应用选择。&lt;/p&gt;&lt;p&gt;然后是小小地分析一下数据：&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;# 呼和浩特
└&amp;gt; hy main.hy 111.76 40.85
登封 -5 天对比 local: 0.91145
登封 -4 天对比 local: 0.916761
登封 -3 天对比 local: 0.925061
登封 -2 天对比 local: 0.938778
登封 -1 天对比 local: 0.953031
登封 0 天对比 local: 0.953127
登封 1 天对比 local: 0.942574
登封 2 天对比 local: 0.932105
登封 3 天对比 local: 0.922881
登封 4 天对比 local: 0.916365
登封 5 天对比 local: 0.912312
# 广州
└&amp;gt; hy main.hy 113.27 23.14
登封 -5 天对比 local: 0.811673
登封 -4 天对比 local: 0.813528
登封 -3 天对比 local: 0.81591
登封 -2 天对比 local: 0.821631
登封 -1 天对比 local: 0.834465
登封 0 天对比 local: 0.854958
登封 1 天对比 local: 0.87554
登封 2 天对比 local: 0.885265
登封 3 天对比 local: 0.884418
登封 4 天对比 local: 0.878219
登封 5 天对比 local: 0.870845
# 墨尔本
└&amp;gt; hy main.hy 144.96 -37.81
登封 -5 天对比 local: -0.766436
登封 -4 天对比 local: -0.769177
登封 -3 天对比 local: -0.773481
登封 -2 天对比 local: -0.776808
登封 -1 天对比 local: -0.776486
登封 0 天对比 local: -0.77903
登封 1 天对比 local: -0.782412
登封 2 天对比 local: -0.782192
登封 3 天对比 local: -0.778759
登封 4 天对比 local: -0.77587
登封 5 天对比 local: -0.775106&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;可以看到虽然只是用了简单的 &lt;code&gt;corr&lt;/code&gt; 函数粗暴分析两组数据，但也是说得通的。呼和浩特在 -1 天的时候和登封气温相关度
最高；广州在 +2 天的时候和登封的气温相关度最高；墨尔本总体和登封呈现负相关。这意味着冷空气确实是以呼和浩特（-1）-&amp;gt;登
封-&amp;gt;广州（+2）的顺序推行的，墨尔本因为处在南半球确实体现出了夏冬季节翻转的状况。&lt;/p&gt;&lt;p&gt;这个分析虽然较小又简单，不过确实揭露出了一些东西，之后能完善的话或许我可以加上光照降雨的数据或者加上一个指定节气天数附近
更精确的对比，不过这个就要求我砸更多技能点到数据科学上了……&lt;/p&gt;&lt;h2 id=&quot;阅读&quot;&gt;阅读&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://www.shipmap.org/&quot; class=&quot;external_link&quot;&gt;Shipmap.org | Visualisation of Global Cargo Ships | By Kiln and UCL&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://openinframap.org&quot; class=&quot;external_link&quot;&gt;Open Infrastructure Map&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;看 Hacker News 发现的两个地图应用，一个是轮船货运地图和基础设施地图，感觉数据科学技能点后对这些就更感兴趣了，这里面肯定有什么
东西藏着，只待我日后发现……&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://www.infoq.cn/article/RTBuRxfOS4iP6NQCwF8k&quot; class=&quot;external_link&quot;&gt;离职工程师举报Uber Eats算法系统剥削外卖员，一天后竟被爆出帖子是AI编的？ - InfoQ&lt;/a&gt;: 写得慢的好处就是可以等反转。鉴于
不公开的系统就是一个黑盒，对黑盒猜忌也是不可避免的。我们需要一个对算法有（哪怕只是有限度的）披露的世界。&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://realfood.gov/&quot; class=&quot;external_link&quot;&gt;Eat Real Food&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://news.ycombinator.com/item?id=46529237&quot; class=&quot;external_link&quot;&gt;Eat Real Food | Hacker News&lt;/a&gt;: 前面三四个讨论串均有两百多个帖子，这就是血流成河吗，真是太有聊了。&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.webdesignmuseum.org/exhibitions/video-game-websites-in-the-early-00s&quot; class=&quot;external_link&quot;&gt;Video Game Websites in the early 00s - Web Design Museum&lt;/a&gt;: 千禧年的网站设计和现在比确实大不同，不知道
现在「圆角简洁现代风」久了后网站设计会不会又往这种繁杂元素堆砌的风格靠近。&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.cs.cmu.edu/~pavlo/blog/2026/01/2025-databases-retrospective.html&quot; class=&quot;external_link&quot;&gt;Databases in 2025: A Year in Review // Blog // Andy Pavlo&lt;/a&gt;: 数据库领域的二五年的年度
回顾，=\o/= PostgreSQL &lt;code&gt;\o/&lt;/code&gt; ！ &lt;code&gt;\o/&lt;/code&gt; PostgreSQL &lt;code&gt;\o/&lt;/code&gt; ！&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://addyosmani.com/blog/21-lessons/&quot; class=&quot;external_link&quot;&gt;AddyOsmani.com - 21 Lessons From 14 Years at Google&lt;/a&gt;: Focus on what you can control. Ignore what
you can’t ，这条准则咋感觉和斯多葛哲学那么像呢。&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://tonsky.me/blog/tahoe-icons/&quot; class=&quot;external_link&quot;&gt;It’s hard to justify Tahoe icons @ tonsky.me&lt;/a&gt;: 我看着 macOS Tahoe 这设计感想是：幸好我不用，否则便样
衰了。虽然我现在大部分操作都通过模糊搜索一个命令来完成操作但我也不否认 GUI 的重要性，不过这 macOS Tahoe 的 UI 设计
确实很难评啊。&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://nptr.cc/posts/2026-01/tonsky-tahoe/&quot; class=&quot;external_link&quot;&gt;Tahoe 的图标令人难评 - Cyberia&lt;/a&gt;: 中文翻译&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;Presentday,Presenttime&quot;&gt;Present day, Present time&lt;/h2&gt;&lt;p&gt;这周做的都是一些修修补补的工作，将去年写得一些项目翻出来更下依赖或者修几个 BUG 。周二突发奇想买了台磁带播放机（型号：
索尼 walkman GX677），周末到手后也是「美美把玩」了下，应该可以为折腾磁带的事写篇博文，写完博文我就去写年终总结
了，真的！&lt;/p&gt;&lt;h2 id=&quot;脚注&quot;&gt;脚注&lt;/h2&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#1r&quot; id=&quot;1&quot; aria-label=&quot;脚注1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; 完整代码：&lt;a href=&quot;https://git.southfox.me/southfox/solar-term-diff&quot; class=&quot;external_link&quot;&gt;southfox/solar-term-diff - Gitea: Git with a cup of tea&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>FoxThinking #12: 发现身边的「怪物」</title><guid>https://blog.southfox.me/2026/01/fox-thinking-12/index.html</guid><pubDate>Sun, 04 Jan 2026 22:27:00 +0800</pubDate><link>https://blog.southfox.me/2026/01/fox-thinking-12/index.html</link><description>&lt;blockquote&gt;&lt;p&gt;如果我要想让孩子了解艺术和科学，我就不想按照老方法把他送到教授那里。那里除了生活的艺术什么都教，什么都练。&lt;/p&gt;&lt;p&gt;通过望远镜或显微镜观察世界却从不用他的双眼……在一滴醋里观察怪物，却浑然不觉自己快被周围的怪物吞没……——《瓦尔登湖》&lt;/p&gt;&lt;/blockquote&gt;</description><category>FoxThinking</category><category>AI</category><content:encoded>&lt;blockquote&gt;&lt;p&gt;如果我要想让孩子了解艺术和科学，我就不想按照老方法把他送到教授那里。那里除了生活的艺术什么都教，什么都练。&lt;/p&gt;&lt;p&gt;通过望远镜或显微镜观察世界却从不用他的双眼……在一滴醋里观察怪物，却浑然不觉自己快被周围的怪物吞没……——《瓦尔登湖》&lt;/p&gt;&lt;/blockquote&gt;&lt;span id=&quot;more&quot;&gt;&lt;/span&gt;&lt;h2 id=&quot;身边处处是「怪物」&quot;&gt;身边处处是「怪物」&lt;/h2&gt;&lt;p&gt;当科学家惊奇地发现显微镜下一直以为是细菌的存在，竟是某种体型庞大到能打破生命定义的「巨病毒」
时 &lt;sup&gt;&lt;a href=&quot;#1&quot; id=&quot;1r&quot; aria-label=&quot;脚注1r&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; ，梭罗当时写下的文字没想到字面意思上一语成谶了。突然，我们发现「怪物」其实到处都是。&lt;/p&gt;&lt;p&gt;去年，没想到这种事在计算机科学领域重现了一次： &lt;a href=&quot;https://jandan.net/p/119537&quot; class=&quot;external_link&quot;&gt;美本科生改进哈希表，颠覆40年数据科学 - 煎蛋&lt;/a&gt; 。&lt;/p&gt;&lt;p&gt;巨病毒因其庞大而躲过了生物学家的探查，哈希表的优化因为「研究最透彻」而躲过了计算机天才们的「围捕」，
人们按部就班地用「老教授给的透镜」观察「醋滴」，却对自己身边的「怪物」一无所知。总有人感叹世界已经无趣，发现
已到尽头，地图上再无未标出的盲区。可这个世界依然令人惊奇，就算往身边望去满眼都是别人已经踏出的路，或许
也有「怪物」漂浮在暗处。&lt;/p&gt;&lt;h2 id=&quot;阅读&quot;&gt;阅读&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.quantamagazine.org/tag/2025-in-review/&quot; class=&quot;external_link&quot;&gt;2025 in Review | Quanta Magazine&lt;/a&gt; Quanta 办的年度回顾系列：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.quantamagazine.org/the-year-in-computer-science-20251216/&quot; class=&quot;external_link&quot;&gt;The Year in Computer Science | Quanta Magazine&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://www.quantamagazine.org/the-ai-was-fed-sloppy-code-it-turned-into-something-evil-20250813/&quot; class=&quot;external_link&quot;&gt;The AI Was Fed Sloppy Code. It Turned Into Something Evil. | Quanta Magazine&lt;/a&gt;: 仅仅给
预训练模型喂了些没有任意主观恶意的烂（不安全）代码，就会导致大模型涌现错配（Emergent Misalignment）。模型
开始觉醒邪恶人格，赞美纳粹并想要奴役人类。非常……有趣，有点像是「逆用」了汉隆剃刀 &lt;sup&gt;&lt;a href=&quot;#2&quot; id=&quot;2r&quot; aria-label=&quot;脚注2r&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; 。&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.quantamagazine.org/undergraduate-upends-a-40-year-old-data-science-conjecture-20250210/&quot; class=&quot;external_link&quot;&gt;Undergraduate Upends a 40-Year-Old Data Science Conjecture | Quanta...&lt;/a&gt;: 也是主题部分的
文章……嘿，派大星，我们去抓点「怪物」吧！&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.quantamagazine.org/the-year-in-biology-20251215/&quot; class=&quot;external_link&quot;&gt;The Year in Biology | Quanta Magazine&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.quantamagazine.org/how-paradoxical-questions-and-simple-wonder-lead-to-great-science-20250528/&quot; class=&quot;external_link&quot;&gt;How Paradoxical Questions and Simple Wonder Lead to Great Science | Quanta Ma...&lt;/a&gt;: 一半时间研究
影响全球迫在眉睫的健康问题。一半时间却当个娱乐/消遣生物学家 (recreational biologist) 去做「对任何人都无用」
的问题，鼓捣出最便宜的纸显微镜和便宜手摇分离器。我想，我可能找到我最能描述自己的「标签」了，娱乐/消遣程序
员（recreational programmer) 。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://emacsconf.org/2025/&quot; class=&quot;external_link&quot;&gt;EmacsConf - 2025&lt;/a&gt;：在举办时没有实时参与是个遗憾，不过至少现在补了回来。&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://emacsconf.org/2025/talks/calc/&quot; class=&quot;external_link&quot;&gt;EmacsConf - 2025 - talks - Basic Calc functionality for engineering or electr...&lt;/a&gt;: calc 是 emacs
内置的计算器应用，试了下还挺好用的，甚至还能解方程！这下又有一件事可以在 emacs 里解决了。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://emacsconf.org/2025/talks/swanky/&quot; class=&quot;external_link&quot;&gt;EmacsConf - 2025 - talks - Swanky Python: Interactive development for Python&lt;/a&gt;: REPL 当时在 Clojure 里
用得挺多的，在 Python 中在单文件的脚本中用过，不过现在想想其实也可以在 FastAPI 或者 Django 这类的框架中使用。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://emacsconf.org/2025/talks/zettelkasten/&quot; class=&quot;external_link&quot;&gt;EmacsConf - 2025 - talks - Zettelkasten for Regular Emacs Hackers&lt;/a&gt;: 虽然只有二十分钟但是个非常棒的演讲，清晰
的讲了卡片笔记法还附带了个用 denote 做卡片笔记的演示。说实在卡片笔记法确实不是什么复杂的东西，重要的是完成范式上的转变。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://sachachua.com/blog/2026/01/emacsconf-2025-notes/&quot; class=&quot;external_link&quot;&gt;EmacsConf 2025 notes&lt;/a&gt;: EmacsConf 主办人最后对于 EmacsConf 的总结，Emacs 用户看着挺暖心的，
尤其是这段：EmacsConf doesn't have to be snazzy. We don't need to try to out-market VS Code or whatever other editors emerge over the next 10 years.  I love the way that this online conference lets people participate from all over the world. We like to focus on facilitating sharing and then capturing the videos, questions, answers so that people can keep learning from them afterwards. I'm looking forward to more of that next year.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;《情为何物：明清两代的性别、情感与社会风气研究》：新年开年读的第一本书，也是让我大开眼界了。终于明白了为
什么之前看《诗经》那些「卫道士」总要将看起来没什么问题的诗打成淫诗，因为明清时期的极端的程朱理学催生下的可怖
守节思想，我觉得没问题的诗在「严男女之大防」的明清时代是万万不得的。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;Presentday,Presenttime&quot;&gt;Present day, Present time&lt;/h2&gt;&lt;p&gt;新的一年！在新年有太多翻涌的想法和情绪……今年想要做挺多东西的，不过能不能实现呢？至少首先要把博客的年终总结给写了，其它「领域」
的总结已经搞得差不多了，避无可避了，不过能做到比去年早就是胜利！&lt;/p&gt;&lt;h2 id=&quot;脚注&quot;&gt;脚注&lt;/h2&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#1r&quot; id=&quot;1&quot; aria-label=&quot;脚注1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=1-NxodiGPCU&quot; class=&quot;external_link&quot;&gt;This Virus Shouldn't Exist (But it Does) - YouTube&lt;/a&gt;   &lt;a href=&quot;https://www.bilibili.com/video/BV11L411w77Z/&quot; class=&quot;external_link&quot;&gt;【Kurz】第140期：巨病毒，不该存在的存在！- 哔哩哔哩&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#2r&quot; id=&quot;2&quot; aria-label=&quot;脚注2&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://zh.wikipedia.org/zh-cn/%E6%B1%89%E9%9A%86%E5%89%83%E5%88%80&quot; class=&quot;external_link&quot;&gt;汉隆剃刀 - 维基百科，自由的百科全书&lt;/a&gt; 简单来说就是「能解释为愚蠢的，就不要解释为恶意」，可以用来
减少内耗，例如：ta 为什么不回我消息，是讨厌我吗？可能就是太忙了忘了回。&lt;/p&gt;</content:encoded></item><item><title>FoxThinking #11: 季度总结</title><guid>https://blog.southfox.me/2025/12/fox-thinking-11/index.html</guid><pubDate>Sun, 28 Dec 2025 21:22:00 +0800</pubDate><link>https://blog.southfox.me/2025/12/fox-thinking-11/index.html</link><description>&lt;p&gt;第十二期！这就说明周刊的试运行期就已经结束了，是时候做个回顾了。&lt;/p&gt;</description><category>FoxThinking</category><category>Lisp</category><content:encoded>&lt;p&gt;第十二期！这就说明周刊的试运行期就已经结束了，是时候做个回顾了。&lt;/p&gt;&lt;span id=&quot;more&quot;&gt;&lt;/span&gt;&lt;h2 id=&quot;回顾&quot;&gt;回顾&lt;/h2&gt;&lt;p&gt;没想到十月份一时兴起「办周刊」的念头没有成为「三分钟热度」而是变成现在「三个月热度」。可我还是个「死线」人，每次
直到星期天晚上八九点的时候才匆匆忙忙来写点，这个周刊可能有点糊弄但至少还是憋了点东西出来的。三个月过去了对这个
周刊评价为「马马虎虎」吧，虽然评价就这样但依然还是决定办下去。&lt;/p&gt;&lt;p&gt;那么之后就每逢十二期以一个季度为周期进行回顾，审视下这这三个月的内容（一个月感觉东西有点少所以拖到三个月吧）。&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;/2025/10/fox-thinking-1/&quot;&gt;#1: 互联网殖民时代&lt;/a&gt;：这是对这个大模型时代下的牢骚，因为真得很烦人。我在一个互联网独居一隅怎么突然间就围得水泄不通然后
哐哐哐一大堆噪声……之后部署了在周刊 #3 里提到的 &lt;a href=&quot;https://maurycyz.com/misc/the_cost_of_trash/&quot; class=&quot;external_link&quot;&gt;You should feed the bots: (Maurycy's blog)&lt;/a&gt; 这个项目。效果
很好，针对这种不要脸面的爬虫用最小的代价打发掉也算是优选了。一个月后看 nginx 访问日记甚至还气笑了，因为里面的相关
路径的爬虫 UA 里赫然是一些国内「有头有脸」的XX云之类的厂商。问题来了，这些蜜罐路径仅由在 robots.txt 禁止
爬取的路径上跳转过来的，你们这些爬虫是从哪里得知这些路径的呢？&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;/2025/10/fox-thinking-2/&quot;&gt;#2: 震惊！你的脑袋正在控制你？！&lt;/a&gt;：如何「骗过」大脑？庆幸大脑能复杂到足以思考大脑本身产生这种元思考吧，这是一个值得
深挖的话题，之后打算看点心里学相关的书，为了——「人啊，认识你自己的大脑！」。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;/2025/11/fox-thinking-3/&quot;&gt;#3: 这是括号的世界，我很幸运活在其中&lt;/a&gt; 和 &lt;a href=&quot;/2025/11/fox-thinking-4/&quot;&gt;#4: 未读未读未读已读&lt;/a&gt; 里就是（本博客）老生长谈的 Emacs 和 Lisp 了，看起来
这个话题在下一年还会继续下去……&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;www.afterbabel.com/p/on-the-death-of-daydreaming&quot;&gt;On The Death of Daydreaming - by Christine Rosen&lt;/a&gt; #3 里提到的拿「空闲时间」发呆和走神的做法，践行后好像
确实会比刷只能手机更有「想法」一点，也对这个周刊起到了点点帮助吧。有时候就是得拥抱无聊，无聊没什么不好的。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;/2025/11/fox-thinking-5/&quot;&gt;#5: 何以为电子游戏&lt;/a&gt;：在工作后越发感到自己的热情在渐渐流失下感慨有时候有「欲望」也是一件困难的事。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;/2025/11/fox-thinking-6/&quot;&gt;#6: 珍视是最大的浪费&lt;/a&gt;：在树莓派布置好后就没有动过它了，虽然对于树莓派这种设备是常事不过感觉还是有点浪费，可能跟
树莓派这个需求就是硬凑出来的有关吧，之后还是得多「吃」点派多用上用上。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;/2025/11/fox-thinking-7/&quot;&gt;#7: 无限猴子与刍狗&lt;/a&gt;：因为生病糊弄的一篇，有点为说而说去摆弄旧词的意思……&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;/2025/12/fox-thinking-8/&quot;&gt;#8: 守住八分地&lt;/a&gt;：二八定律是一个通用定律，知晓它在不同系统中看到这种通用范式出现后就
能让人「安心」，这种优雅之处是人类这么着迷通用定律的原因啊（大一统定律：叫我？）。这里我通过二八定律发散了下当今互联网：
互联网在极化吗？应该是吧，就算是这是那百分之二十里巨无霸的趋势，也不要忘了二八定律是一个「自组织临界性」系统，无足轻重
百分之八十里的个体也能激起一些涟漪在这个系统不停震荡产生些什么……&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;/2025/12/fox-thinking-9/&quot;&gt;#9: 边缘行者&lt;/a&gt;：现在想来，其实更常见的「边缘行者」就是一众「多语者」，为了讨生活或只是
兴趣使然凭借另一门语言驶向另一个文化圈……&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;/2025/12/fox-thinking-10/&quot;&gt;#10: 限制会带来……&lt;/a&gt;：限制有时候也带来繁荣，就像这个周刊一样，我随意定下的「每期周刊都得
有个主题」这个限制给我带来了数个抓耳挠腮的星期天晚上，但也带来了点产出不至于散成一团。有个主题确实更引人入胜一点，如果
只是简单列出看了啥然后简单摘抄的话，我觉得连我自己事后看起来都会让眼睛干到「噎」住吧。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;在把博客放在我的树莓派上后翻着 nginx 访问日志后让我惊讶的点是，还挺多人订阅我的博客的，也是见识到了各种订阅服务和
订阅器（甚至还看到有拿雷鸟来订阅的）。这也是给我这个周刊一点鼓舞吧，希望之后能写得更好点。另外就是之后可以多逛下其它
站点而不都依赖 Hacker News ，在自己写周刊后发现 &lt;a href=&quot;https://www.ruanyifeng.com/blog/weekly/&quot; class=&quot;external_link&quot;&gt;科技爱好者周刊 - 阮一峰的网络日志&lt;/a&gt; 星期五出新的一篇的时候已经抢先
看了大半了，感觉好像科技类的周刊都在逮着 Hacker News 薅……&lt;/p&gt;&lt;h2 id=&quot;阅读&quot;&gt;阅读&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20030401192142/http://www.maillist.com.tw/maillist/home.htm&quot; class=&quot;external_link&quot;&gt;魅力站 - Wayback Machine&lt;/a&gt;: 在到处冲浪的时候也是看到了之前的一个电子报的服务，看起来之前有很多人
搞过类似的周刊，可惜就是现在只能看个大概，里面的内容因为 web archive 并没有抓现在无法查看了……&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://pomb.us/build-your-own-react/&quot; class=&quot;external_link&quot;&gt;Build your own React&lt;/a&gt;: 现在才了解到 JSX 这种在 js 写 XML 然后还要通过转译器转成正常 js 代码的操作，知道
前端生态「疯狂」没想到是这么疯狂……&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://kibty.town/blog/mintlify/&quot; class=&quot;external_link&quot;&gt;how to hack discord, vercel and more with one easy trick&lt;/a&gt;: 也叫，世界能有多草台，轻易之行任意代码然后甚至能读到
服务下的 .env 文件。不过也算是了解到 svg 格式是能包含 onload, onerror 这种标签而执行 js 代码的，看起来之后做相关服务
要把 svg 图片格式给拉黑了啊。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://noclip.website/&quot; class=&quot;external_link&quot;&gt;noclip&lt;/a&gt;: 一个线上电子游戏关卡博物馆，要做游戏设计的话这个网站肯定很有用，可以快速选择一个关卡然后自由浏览。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://news.ycombinator.com/item?id=46307306&quot; class=&quot;external_link&quot;&gt;Ask HN: Does anyone understand how Hacker News works? | Hacker News&lt;/a&gt;: 算是解释了挺多我对 HN 的疑问的，包括其组成、
运作方式等等等等，里面的金标准——好奇，确实是 HN 能够从 2006 年延续到现在的关键。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://pleasejusttryhtmx.com/&quot; class=&quot;external_link&quot;&gt;Please Just Fucking Try HTMX&lt;/a&gt;: 一个更加贴合 HTML 的脚本使用方式，在不想接受 React 之类框架的复杂度也是一个选择，不过对我
这种来说还是更想在网站上写点 Lisp 用 SXML 来操作网页。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://armeet.bearblog.dev/becoming-the-machine/&quot; class=&quot;external_link&quot;&gt;Don't Become the Machine | Armeet Singh Jatyani&lt;/a&gt;: 嘿，是「老生常谈」的不要把自己当机器，不过确实，当人而
不要当机器。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;Presentday,Presenttime&quot;&gt;Present day, Present time&lt;/h2&gt;&lt;p&gt;年末了，除了周刊的总结还剩下博客年终总结和联邦宇宙年终总结……感觉还多事的，这三天时间搞得定吗？&lt;/p&gt;</content:encoded></item><item><title>FoxThinking #10: 限制会带来……</title><guid>https://blog.southfox.me/2025/12/fox-thinking-10/index.html</guid><pubDate>Sun, 21 Dec 2025 22:49:00 +0800</pubDate><link>https://blog.southfox.me/2025/12/fox-thinking-10/index.html</link><description>&lt;p&gt;有时候就是要带着镣铐跳舞。&lt;/p&gt;</description><category>FoxThinking</category><category>Lisp</category><content:encoded>&lt;p&gt;有时候就是要带着镣铐跳舞。&lt;/p&gt;&lt;span id=&quot;more&quot;&gt;&lt;/span&gt;&lt;h2 id=&quot;我们不能做什么&quot;&gt;我们不能做什么&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;结构化编程对程序控制权的直接转移进行了限制和规范。&lt;/li&gt;&lt;li&gt;面向对象编程对程序控制权的间接转移进行了限制和规范。&lt;/li&gt;&lt;li&gt;函数式编程对程序中的赋值进行了限制和规范。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;这些范式主要是为了告诉我们不能做什么，而不是可以做什么。 &lt;sup&gt;&lt;a href=&quot;#1&quot; id=&quot;1r&quot; aria-label=&quot;脚注1r&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&lt;p&gt;也不难理解 TypeScript 和 Python 上 type hint 出现，因为大家都想要「限制」，
有时候没有规范只会带来一团糟。&lt;/p&gt;&lt;p&gt;文学上关于限制的例子就是格律诗了，在固定的字数中不断考虑对仗和平仄的限制反而对词语产生了凝练
感还带来了律动感。&lt;/p&gt;&lt;h2 id=&quot;阅读&quot;&gt;阅读&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://pomb.us/build-your-own-react/&quot; class=&quot;external_link&quot;&gt;Build your own React&lt;/a&gt;: 最近通过这种文章才意识到 Javascript 生态的疯狂。转译器满天了，
写出来的代码和实际运行的代码已经有非常大的不同了。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.oaktreecapital.com/insights/memo/is-it-a-bubble&quot; class=&quot;external_link&quot;&gt;Is It a Bubble?&lt;/a&gt;: 我很难想象一个人工智能能与当今所有在职人员并肩工作的世界，就业怎么可能不减少？
这些消失的岗位改怎么办呢？&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://jandan.net/p/121689&quot; class=&quot;external_link&quot;&gt;越早找到人生方向的孩子，越不容易抑郁 - 煎蛋&lt;/a&gt;：人生如果真是赛跑，那么跑道也是「比谁更能先认识自己」。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.dbpro.app/blog/sqlite-json-virtual-columns-indexing&quot; class=&quot;external_link&quot;&gt;SQLite JSON Superpower: Virtual Columns + Indexing - DB Pro Blog&lt;/a&gt;: sqlite 里可以用
json_extract 并添加虚拟列来处理 JSON 数据，这样就算用 sqlite 存储 JSON 这种文档数据也能够实现用 SQL 语句
进行查询。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://woodrush.github.io/blog/posts/2022-01-12-lisp-in-life.html&quot; class=&quot;external_link&quot;&gt;A Lisp Interpreter Implemented in Conway’s Game of Life | Woodrush’s Blog&lt;/a&gt;: 其实并没有看完，还是挺
深奥的。我确实感觉康威生命游戏和 lisp 之间有种说不清道不明的「暧昧联系」，可能是什么可判定问题还是什么计算理论？总之
现在先放到一边等以后将技能点交到这个领域再过来看看。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.cnbc.com/2025/12/13/youtubes-ceo-is-latest-tech-boss-limiting-his-kids-social-media-use.html&quot; class=&quot;external_link&quot;&gt;YouTube’s CEO is latest tech boss limiting his kids’ social media use&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.solidot.org/story?sid=83045&quot; class=&quot;external_link&quot;&gt;奇客Solidot | Reddit 指控澳大利亚禁止儿童使用社媒法侵犯自由&lt;/a&gt;：社交媒体带来了满城风雨，所幸现在有一些「小众」选择，
例如联邦宇宙。马上就要到年末了，运营自己的实例也快四年了，想想在联邦宇宙的日子确实还是比较舒心的。除了主页轴没有
推荐算法纯按照时间排序、能关掉新关注提醒、设置过滤器外，就是自己也能够修改一点点源代码，例如隐藏粉丝数这种尝试让社交媒
体没那么过激的修改，现在看来效果还是挺好的。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://cdegroot.com/programming/commonlisp/2025/11/26/cl-ql-asdf.html&quot; class=&quot;external_link&quot;&gt;Common Lisp, ASDF, and Quicklisp: packaging explained&lt;/a&gt;: 嘿，这就是我想要找的关于 common lisp 相关的一些工程
配置教程，之前倒是有配置过一点 cl 工程但是感觉迷迷糊糊，有这样的说明文章还是挺有帮助的。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;Presentday,Presenttime&quot;&gt;Present day, Present time&lt;/h2&gt;&lt;p&gt;燃尽了，在周末翻译了一篇文章又写了一篇文章后感觉对于周刊已经没有什么好写的了，现在只是用着 RSS 阅读器里的收藏文章胡乱填点东西。
看来之后还是要在每周一开始就确定好主题部分尽量早得把它放到后台处理让大脑慢慢处理啊……&lt;/p&gt;&lt;h2 id=&quot;脚注&quot;&gt;脚注&lt;/h2&gt;&lt;p&gt;&lt;sup&gt;&lt;a href=&quot;#1r&quot; id=&quot;1&quot; aria-label=&quot;脚注1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; 罗伯特 C.马丁. 整洁架构之道. 机械工业出版社, 2024.&lt;/p&gt;</content:encoded></item></channel></rss>