《一个数学家的叹息》读书笔记

### **《一个数学家的叹息》** ==依旧应试教育体制下的精神鸦片,但是其实观点还是可以指引我们的,不得不承认这样的全面改变不现实,但是我们到了大学其实就是一个自我教育的阶段,那么这本书就极其有参考意义了。== 保罗·拉克哈特 34个笔记 推荐序二 大破大立——难得一见的数学教育好书 而洛克哈特的立论,是一般人容易忽略的数学知识活动特性:数学是一门艺术!至于它和音乐和绘画的差别,只在于我们的文化并不认同它是一门艺术。 洛克哈特对于数学课程的僵化之批判,还扩及它所联结的“阶梯迷思”,他认为这种一个主题接一个主题的进阶安排,除了淘汰“失败的”学生之外,根本没有(其他)目标可言。因此,学校里的数学教育所依循的,“是一套没有历史观点、没有主题连贯性的数学课程,支离破碎地收集了分类的主题和技巧,依解题程序的难易度凑合在一起”。相反地,“数学结构,不论是否具有实用性,都是在问题背景之内发明及发展出来的,然后从那个背景衍生出它们的意义”。 此外,他还特别提醒:小孩子都知道学习和游戏是同一回事。可惜,成年人已然忘却。 推荐序三 数学差,不是你的错——别让学校扼杀了创意 因为当代的教育制度继承自工业革命时期,所以教育的目的就是为了创造工业需要的人才,到现在也没有改变。大量产出工业需求的一致性劳动力是学校教育的目标,因此教学方式必须要有效率、必须要一致。美其名曰是公平,实际上是奴役。如今结合了教科书业者、补习班业者,成了庞大的教育控制复合体。 上篇 悲歌 文化是自我复制繁衍的怪物:学生从他们老师那里学习数学,而老师又是从他们的老师那里学习数学,所以对于数学欠缺的了解与欣赏,会在我们的文化中无止境地复制下去。更糟的是,这种“伪数学”以及这种强调精准却无灵魂地操弄符号的延续,创造了自己的文化和自己的一套价值观。那些已经精熟这一套的人,从他们的成功当中衍生出了极大的自负。他们最听不进去的就是,数学其实是原始的创造力和美学的感受力。 我们的文化如果只是对数学无知,这已经够糟了,但更糟的是,人们真的以为他们了解数学——普遍地误以为数学对人类社会具有实用价值!这就已经构成数学和其他艺术之间的极大差异。数学被我们的文化看作是科学和技术的一种工具。大家都知道诗和音乐是纯粹用来欣赏的,能振奋人类的心灵,让我们的生命更高尚(因此在公立学校的课程安排中几乎都被拿掉了),但是数学则不然,数学是很“重要的”。 要抹杀学生对一门科目的热情与兴趣,最有效的方法就是把它列为必修课。把它列入标准化测验的主要科目,就能保证让它失去生命力。 所有这些“改革”最悲哀的地方,是企图“要让数学变有趣”和“与孩子们的生活产生关联”。你不需要让数学变得有趣——它本来就远超过你了解的有趣!而它的骄傲就在与我们的生活完全无关。这就是为什么它是如此有趣! 人们喜欢“奇幻”,而这正是数学能够提供的——日常生活中的消遣、现实工作世界的调剂。 学校里的数学,最主要的问题出在没有“问题”。我知道大家都认为在数学课堂里的问题,就是那些枯燥的“习题”。“这里有一个题型;这里是解答它的方法;这个会出现在考试里;今天的家庭作业是习题1-35题。”这样学习数学是很可悲的:人变成了训练有素的黑猩猩。 同时,如同我先前说过的,一门学科碰巧具有一些世俗上实际的用途,不代表我们必须将这个用途当作教导和学习的焦点。就像是,为了填写汽车监理所的表格,我们需要阅读能力,但是这不是我们教导孩子们阅读的原因。我们教他们阅读是为了更高的目的,希望他们能够接触美妙及有意义的观念。 正如高斯(Carl Friedrich Gauss)曾经说过的:“我们需要的是想法,不是符号。”(What we need are notions, not notations.) 有多少修习文学课的学生日后成为作家的?那不是我们教授文学的目的,也不是学生修习文学的目的。我们教授文学是为了启发每个人,不是只训练未来的专业人士。无论如何,科学家或工程师最有价值的技术,是能够有创意地思考和独立地思考。大家最不需要的就是被训练。 2026/03/17 发表想法 太正确了 原文:这就紧密地联结到我所谓的“阶梯的迷思”(ladder myth)——数学可以安排成一系列的“主题”,一个比一个更进阶,或“更高级”。目的是在使学校里的数学成为一项“竞赛”——有些学生“超前”其他人,而家长则担心自己的孩子会比别人“落后”。然而,这个竞赛到底要引导我们奔向何处?在终点线等待我们的又是什么?答案是,这是个没有目标的可悲竞赛。到最后,你是被我们的数学教育给欺骗了,而你根本就不知道。 这就紧密地联结到我所谓的“阶梯的迷思”(ladder myth)——数学可以安排成一系列的“主题”,一个比一个更进阶,或“更高级”。目的是在使学校里的数学成为一项“竞赛”——有些学生“超前”其他人,而家长则担心自己的孩子会比别人“落后”。然而,这个竞赛到底要引导我们奔向何处?在终点线等待我们的又是什么?答案是,这是个没有目标的可悲竞赛。到最后,你是被我们的数学教育给欺骗了,而你根本就不知道。 。问题自然会引导你到它要你去的地方。艺术不是竞赛。“阶梯迷思”是这个科目的错误形象,而一个遵照标准课纲授课的老师,则强化了这个迷思,使得他或她无法看清数学是一个完整的有机体。 高中生必定会学的三角函数“sec x”,只是“1/cos x”的缩写而已,其重要性无异于以“&”代替“and”一样。这个缩写其实是15世纪航海计算表遗留下来的[其他早期三角函数表上的许多缩写像是正矢(versine)等则已废弃不用],只不过是历史上的偶然,在快速精准的航海仪表计算时代,已经完全没有价值。因此,我们在数学课堂上塞满这些没有意义的专有名词,只是为数学而数学罢了。 另一个例子是训练学生以不必要的复杂形式来表达讯息,原因是在几年后的未来,这样的表达方式会有意义。有没有哪位中学代数老师知道为什么要学生把“介于3和7之间的数字”说成|x-5|<2?这些令人绝望的、无能的教科书作者真的相信他们是在帮学生预做准备,可能几年后,他们会需要计算更多维的空间几何或抽象的距离空间?我很怀疑呢。我猜这些教科书只是世世代代相互抄袭而已,可能会改改字体或颜色,如果有学校采用他们的教科书,成为无意间的帮凶时,他们还洋洋得意呢。 数学是关于问题的学科,而问题必须要成为学生数学生涯中的焦点。也许会有创作上的挫折和一些痛苦,但学生和老师应该永远专注在过程上——想出来了、还没想出来、发现模式、进行猜测、建构支持的例子和反例、设计论证,以及评论彼此的成果。和数学历史上的进程一样,特定的技巧和方法会在这个过程中自然产生——不会脱离,而会有机地关联到问题的背景环境,并且从那当中生长出来。 所以,不是只有大部分的小孩被这个假学问完全搞迷糊了——没有什么比去证明显而易见的事更让人困惑了——即使那些还保有直觉的少数人,也必须将他们优异、绝妙的点子转换并置入这个荒诞难解的架构里,好让他们的老师说它是“正确的”。老师则沾沾自喜地认为他让学生的心智变敏锐了。 没有任何数学家是这样工作的,从来没有任何数学家以这种方式工作。这是对数学这门学问完全地、彻底地误解。数学不是在我们自己和我们的直觉之间树起屏障,也不是要让简单的事情变得复杂。数学是移除通往直觉的障碍,让简单的事情维持简单。 几何学标准课程的问题在于,艺术家挣扎奋斗的个人经验,全都被消灭了。证明的艺术性,被毫无生气、形式化的演绎法的僵硬步骤所取代。教科书呈现出一整套的定义、定理及证明,教师们照抄在黑板上,学生们照抄在笔记簿上,然后要求学生再依样画葫芦地写习题。能快速学会这种模式的,就是“好”学生。 学生做出叙述,去符合现成的证明模式,而不是因为他们的确这样想。他们被训练去模仿论证,而不是去想出论证。 重点是,你不会从定义开始,你是从问题开始。一直到毕达哥拉斯(Pythagoras)试图测量正方形的对角线,发现它无法以分数来表示,在那之前没有人想过,数可能是“无理的”(irrational)。只有在你的论证达到某一点,你必须要做出区别来厘清时,定义才有意义。在没有动机的时候做出的定义,更有可能造成混淆。 我相信你是喜欢的。你可能偶尔也会做到一些不错的题目。很多人喜欢几何课(虽然更多人痛恨它),但是这不是支持目前制度的好理由,这反而强有力地证实了数学本身的魅力。要完全摧毁这么美丽的事物,是非常困难的;即使是数学残留的影子,仍是如此吸引人并让人满足。许多人也还是喜欢按数字涂色,那是令人放松而且有趣的动手活动,虽然那并不是真正的绘画。 2026/03/18 发表想法 别骂了😭 原文:微积分。这个课程将探索关于运动的数学,用一堆不必要的公式来埋葬它是最好的方法。尽管在此是要介绍微分和积分的,但它将略过牛顿和莱布尼兹(Leibniz)的简单而深刻的想法,代之以更复杂的、以函数为主的方法,而那是为了对应各种分析危机而开发出来的,在这套课程中并不会真正应用到,当然这些都不会在课程中提到。在大学里,同样的东西会逐字逐句地再上一遍。 微积分。这个课程将探索关于运动的数学,用一堆不必要的公式来埋葬它是最好的方法。尽管在此是要介绍微分和积分的,但它将略过牛顿和莱布尼兹(Leibniz)的简单而深刻的想法,代之以更复杂的、以函数为主的方法,而那是为了对应各种分析危机而开发出来的,在这套课程中并不会真正应用到,当然这些都不会在课程中提到。在大学里,同样的东西会逐字逐句地再上一遍。 以上所述,是一帖能让年轻心灵永久性瘫痪的完整处方——能有效根治好奇心。这就是他们对数学所做的好事! 下篇 鼓舞 以这样的方式,我们游戏、创造、试着更接近完全的美丽。17世纪初期有个著名的例子,就是射影几何(projective geometry)的发明。这里的想法是拿掉平行性(parallelism),来“改良”欧几里得几何。先把这个决定的历史动机[与透视数学(mathematics of perspective)有关]摆在一边不谈,我们至少能欣赏到一项事实,就是一般而言两条直线会相交于单一的一个点,而平行线则打破了这个模式。以另一种方式来说,两个点决定一条线,但是两条线不必然决定一个点。这项大胆的想法是,在传统的欧几里得平面上增加新的点。具体地说,我们在这个平面上每个方向无限远的地方创造一个新的点。因此,伸向那个方向的两条平行线现在都会在那个新的点上“相会”。我们可以想象那个交会点是在那个方向无限远的地方。当然,由于每条线都是向两个相反的方向无限延伸的,那个新的点必然是位于两个方向上无限远的地方!也就是说,我们的直线现在是无限的回路!这个想法很前卫吧?请注意,我们的确得到了我们要的:每一对直线都正好相会在一个点上了。如果它们原来就曾相交,那它们符合这个叙述;如果它们是平行的,现在它们会相交在无限远。(完整地说,我们应该再增加一条线,包含所有无限远的点。)现在,任两点决定且只决定一条线,而任两条线决定且只决定一个点。这样的环境多么美好呀!对你来说,这会不会听起来像是精神病患的疯言疯语?我承认这需要一些了解。也许你反对这些新的点,因为它们不是真的存在“那里”。但是欧几里得的平面又一开始就存在吗?重点是这些都不是真实存在的事物,所以除了我们想要制定的规则和限制之外,并没有其他的规则和限制。这里的美学观很清楚,无论是从历史上还是哲学上而言:如果一套模式既有趣又有吸引力,那就是好的模式(如果这表示你必须要为一个新构想绞尽脑汁,那就更好)。尽管去建构你想要的任何东西,只要不是讨人厌的无聊东西就好。当然这是品味问题,而品味会随着时间改变和进化的。这就来到艺术史的范畴了。身为一个数学家,好像跟聪明不是那么相关(虽然那绝对有很大的帮助),而是要有美学上的感受力,以及具有精致的、有鉴赏力的品位。尤其是,自相矛盾通常被视为讨厌的。所以,至少我们的数学创造物必须要有逻辑上的一致性。在延伸或是改良现有架构的时候,这一点尤其重要。我们当然是可以任意做我们想做的,但是通常我们在延伸扩张一个系统时,不能让新的模式与旧的模式发生矛盾(例如与负数或分数的计算产生矛盾)。偶尔,这会迫使我们做出不想做的决定,像是解除以零作为除数的限制(如果“1/0”这样的数字存在的话,将会和“任何数字乘以零都是零”这个很好产生矛盾的模式)。无论如何,只要是符合一致性,你几乎可以做任何你想做的事。 虽然我们创造了这些事物(这本身就是一个严肃的哲学问题),但现在它们横冲直撞,做出了我们意料之外的事。这就是数学具有的“科学怪人”的一面——我们有权定义我们的创造物,将我们选择的特征或特质灌注进去,但是对于可能随之而产生的行为,也就是因我们的选择而发展出来的结果,我们是没有发言权的。 有时候我会将数学评论想象成一只“双头怪兽”。第一颗头要求的是滴水不漏的严谨逻辑解释,在推理上绝对不能有缺口,或是有任何打马虎眼的模糊空间。这颗头非常注重细节,且全然的冷酷无情。我们都恨它实在太唠叨,但在我们心底,我们都知道它是对的。第二颗头要的是纯然的美丽与简洁,让我们感到愉悦,不光是能验证它,而且要得到更深刻的理解。通常我们是更难让这颗头满意的。 ...

May 10, 2026 · 1 min · 68 words · 静影沉璧

一张明信片

用 postcrossing 许久了,要说收到的、最令人感慨的明信片的话,确有一张。 我 2026 年三月七号收到一张来自美国的明信片,其中一句话我很喜欢“STAY SAFE! ALWAYS HOPE FOR PEACE IN OUR CRAZY WORLD!”。看作者主页的自我介绍,大概可以对他的人生做一些小小的揣测: 约 1950 年代末–1960 年代。出生在马萨诸塞州(他明确说“originally come from Massachusetts”)。很可能是波士顿郊区,那里有浓厚的学术传统(MIT、哈佛)和早期航天工业(德雷珀实验室、雷神公司)。家庭背景是中产或中上阶层。父亲可能是工程师、教师或军官;母亲可能受过教育。因为他在 1970 年代就能接触邮寄文化(需要邮票、时间、稳定的地址),且后来轻松进入大学。在童年或青少年时期随家庭迁至旧金山(“I grew up in San Francisco”)。推测时间在 1960 年代中后期,恰好是湾区反文化运动、太空热潮与越战反战情绪交织的年代。 1960 年代末–1970 年代初。成长于旧金山,正是嬉皮士、反战运动、人权运动的核心地带。尽管他自己没有直接提到越战,但那个年龄段的男孩大概面临征兵抽签的焦虑。他可能没有去越南,因为他后来成为航天工程师,需要完整的大学教育。推测他通过大学延期或抽签号靠后避开了服役。但他大概也目睹了同龄人的伤亡、街头抗议,以及“疯狂世界”的真实含义。 1970 年代中后期。1970 年代开始寄信,那时他大概15–18 岁(高中生或刚上大学)。他写道“I have been sending postal mail since the 1970 s”大学可能就读于加州大学伯克利分校或斯坦福大学(湾区两大名校)。专业可能是物理、天文学或航空航天工程。他的职业生涯“spacecraft engineer and astronomer”需要至少硕士,很可能有博士学位。他妻子“terrific at many languages”,可能来自东欧背景(喜欢乌克兰、俄罗斯风光和生存掩体——后者在苏联文化中很常见),或者她本身就是语言学或者文学专业。 1980 年代–2020 年代。他是航天工程师与天文学家:这类双头衔通常出现在大学研究机构或NASA 下属的实验室(如艾姆斯研究中心、喷气推进实验室)。他提到“at a large university”,很可能是斯坦福或伯克利,参与小型科学卫星项目(如立方星、SMEX 系列)。这类卫星成本相对低、周期短,适合学术研究。他工作的几十年正是美国航天飞机、哈勃望远镜、国际空间站、火星车以及小型卫星崛起的时代。他的“side interests”极其广泛:文学、建筑、城市研究、艺术。典型的“最后一代全面受人文教育的科学家”。 他大概经历过冷战高峰:1980 年代核恐惧、星球大战计划。作为航天从业者,比普通人更清楚太空军事化的危险。可能目睹过 9/11:湾区飞往纽约的航班、后续的反恐战争。 综合推算下来,他大约 65–72 岁。1970 年代开始寄信时如果是 15 岁,那么 2026 年约 71 岁。这个年龄很可能已经退休或半退休,但仍然在大学挂名(“I am an astronomer at a large university”可以是荣誉或兼职)。身体状况良好,思维清晰,手写流畅,依然保持对新鲜事物(现代艺术、科幻、披萨)的好奇。 ...

April 30, 2026 · 1 min · 109 words · 静影沉璧

刀尖上的左右互搏:篆刻创作中的方法论反思

刀尖上的左右互搏:篆刻创作中的方法论反思 近期持续从事篆刻实践,不仅手头未歇,思绪亦未停。目前个人所用刀两把:一为常规偏小的 2 毫米刻刀,另一则为专门订制的 0.5 毫米细刃。此前曾以为,但凡刀口足够细小,便可以逐一“抠”出印面中的一切细节——这一逻辑曾令笔者对工整一路的印风抱有相当底气,认为其本质上不过是一种精密的“技术活”。 从个人审美偏好而言,笔者对粗犷、写意、工稳诸种风格均持欣赏态度。然而问题在于,本人的上石方式与前文想象中的工整风格生产方式其实是两条截然不同的路径:不打精细的印稿,最多在心里预拟大略格局,在石面上以毛笔标出一些关键点位作为定位参照。其余的神秘字法微妙变化、线条粗细转折等等,皆由刻刀与石头直接对话完成。换言之,篆刻过程本身即是一次创作,充溢着即兴性与自由度。 这一工作方式就带来了内在的矛盾。若真欲追求以 0.5 毫米细刃“抠”出的极度工整印风,所需恰恰不是即兴创作,而是一份精准无误的设计稿,并能够毫厘不差地复制于石面。一旦进入复制环节,刻制过程就沦为纯粹的体力劳动,一切都已规划妥当,犹如一些所谓的流行的数字油画——不过将颜料换为刻刀,依标定区域填色挖空而已。这样的过程,还能称之为艺术创作吗?这样的做法在一些初学美术的学生身上就有可能出现,其中二次元绘画初学者最甚,常常可能出现全力抠草稿,剩下填颜色就行的操作。 个人看来,在书法或美术圈中,此种做法恐怕难以获得严肃的学术认同。数字油画将设计本身拔高,刻制的操作就会沦为单纯的复现手段。这就像印章史上早期的情形:文人雅士自行构思印稿,画定后直接交付工匠浇铸或凿刻。这种做法其实就是将“刻”这一行为及其艺术性加以剥离——印章的艺术性似乎完全寄托于印稿原件之上,而印章本身不过是原件的机械复制品,制作印章只是一个复制保存原稿的工序,最终钤于纸上的红印,不过是一个副本。 当然,历史演进并非如此简单。此后兴起了文人自刻的风气,自文徵明的儿子文彭开始,文人亲自操刀。然而,细细想来,这一转变其实很奇怪。一群不谙工匠技艺的书生突然从事原本属于匠人的劳作,初衷是什么?甚至可以提出一种大胆的推测:会不会只是穷书生为了节省雇请工匠的成本。之后才被附会上“金石气”“刀笔味”的艺术光环,从而成为篆刻艺术的正统。这一带着实用主义乃至经济考量的行为,竟如此流传下来,构成今日篆刻艺术的主流叙事。 综上所述,篆刻这一艺术门类本身即充满强烈的自我矛盾。它一方面与书法高度同构,具有极高的欣赏门槛,本质上是一场“内行”的狂欢。外行观书法,最多欣赏唐楷的规整——这表现为常人夸其他人字好看居然会说:“你的字写的像印出来的”,这在书法角度下看其实是骂人。或迷恋瘦金体那种工艺美术式的装饰美感——瘦金体在历史上大部分时间只是用于画作题签的特定场域美术字。书法真正的精神内核——线条中的情绪、节奏、张力——外人无从感知。这也是书法的意义:读者必须要亲自写过、练习过、研究过,才会在阅读一副作品时体会到仅仅通过符号就跨越千年传达而来的浓烈情绪,这来源于一种代入感,“练过字”就是产生这种代入感的前提。篆刻亦如此:内行者观一方印,会在脑海中不自觉地演绎当时刀锋如何冲过、石质如何崩裂,从而获得一种极为私密的审美愉悦。这种愉悦,若没有“练过、研究过”这一共同的语言接口,永远无法被他人理解。 由此回到根本性的困惑:我们未来的创作道路应如何选择?书法的实践已说明,数字油画式的创作方式绝对不可取,它缺乏一部分的灵魂。 此时,另一种现象引人深思:有人以数厘米宽的大刀,同样能刻出工稳秀丽的细朱文。笔者不免自问:自己所用 2 毫米乃至 0.5 毫米的细刃,是否恰恰暴露了自身技术不足、控刀能力有限,而只能依赖缩小刀刃来弥补? 问题或许并非如此简单。以大刀刻细朱文,并非在“抠”,而是在“写”。是凭借控制力,动用刀尖上细小的一个着力点,一刀下去,形神兼备。这是一种冒险,如同书法、国画中的落笔无悔。而 0.5 毫米的小刀所提供的,其实是安全的描摹与雕琢。它使创作者得以在石面上反复推敲修正。这就可以解释草草画石再雕刻的创作的路径。小刀并非软弱的象征,而是精密思考的延伸。即便手持铅笔,同样可以写出风骨,只要心中存有大刀的线条意识。 关于数字油画的类比,也可以有一个更为清晰的判断:对其保持警惕,是体现艺术良知的清醒。如果印稿沦为必须复刻的蓝图,刻制就变为高级的填色游戏。但这并不意味着精准的稿子在工稳印风中就是原罪。精准的稿子应当被视为一幅地图,而非一份施工图纸。地图指明了山川城池的位置,而真正行走其上的仍是刻刀。一刀下去,石头崩裂的微妙痕迹,是任何设计稿都无法预演的偶发行为。工稳印的魅力恰恰在于“戴着镣铐跳舞”——在严苛的法度之内,每一刀仍保持着“写”的连贯与生机。这么说,它就不是复现,而是在既定框架下的二次创作。 至于文彭等人开始自刻印章的行为,就算一开始确有成本考量,但最终绝不仅限于此。初次用刀在石上划出痕迹的感觉,是纸上无法体会的。就像只设计字体不写字,就会导致缺少一部分的灵魂。“刻”这一行为,即为线条破边、做旧、加骨,最终赋予了二维线条高维的生命质感。因此,我们所刻出的印花绝非原稿的简单复制品,而是创作者、刀具、石头三者对话的一种最终呈现。至于欣赏门槛的问题,诚然,这是内行的狂欢,但这种演绎式的欣赏愉悦,恰恰是学者们继续深入的理由。 总而言之,或许未来的创作道路不必在两种方法论之间做出割裂的选择,而可以将二者糅合。对于工稳印风,沿用既有的上石方式,但尝试在石面上以毛笔将印稿绘制得更加有意识,即在绘制过程中预演刀法:某一笔为冲,某一折为切。之后拿起刀时,心态上便不再是“抠”,而是在“写”出刚才预演过的笔触。创作的自由度就从随意改动布局,转变为做出符合法度的、充满书写意味的微调。至于一把稍大的刻刀,并非为了替代精密的小刀,而是为了体验那种“一刀既出,驷马难追”的决绝感,感受线条如何被“挤”出来、“劈”出来。那种手感将反过来教育创作者,使其在使用小刀时也能生出更为果敢、更具书写意味的刀意。 归根结底,篆刻这门艺术最迷人的地方,正在于它永远卡在设计与偶发、工稳与写意、文人雅趣与工匠精神之间,动弹不得。这并非需要解决的“毛病”,而是它本来的面貌。 继续刻下去罢!

April 21, 2026 · 1 min · 27 words · 静影沉璧

小楷毛笔使用与保养指北

小楷毛笔使用与保养指北 写在前面 毛笔的保养,说到底是个材料学问题:要在“保持性能”和“日常耐用”之间找到平衡。之所以值得专门写一篇,是因为小楷笔确实不便宜。如果用的是便宜笔,那其实不用太讲究,把这些当封建陋习跳过就好。 网上关于毛笔使用的信息,要么良莠不齐,要么没有系统整理,甚至常常出现完全相反的说法,还夹杂着一些诡异的仪式感。作为一个踩过坑的人,我结合自己的使用经验和查阅的资料,整理了一些实用向的方法,希望对刚入门的朋友有一点帮助。 本文主要面向书法或毛笔使用的入门者。 一、开笔 用温水泡一下,通常笔毛很快就散开了。 有一种说法是“不能用手按开”,但我以前都是直接蘸墨怼开,也没出过什么问题。不过,用手强行按开确实会轻微损伤毛料,所以综合建议是: 先用温水泡,等它自己慢慢散开。如果几分钟还没散,可以轻轻把笔头按到容器底部,或者拿出来用手指轻轻搓开。 总之,不用太暴力,也不用太温柔——它是工具,实用为主。 二、第一次蘸墨 这个环节争议很大,甚至有不少完全相反的说法。 有人说第一次不要蘸满墨,只蘸笔尖部分,让笔根保持原色,理由是“蘸到笔根会损伤毛笔”。这个说法有一定道理,但其实可以从侧面蘸——把笔放平,滚一圈就好。 我还记得以前看过一篇论文,拿墓室壁画里“笔尖黑、笔根白”的画法当论据。但我觉得这不太严谨:壁画是艺术表现,用半黑半白来表示“这是一支蘸了墨的笔”,就像用残影表示快速运动一样,是技法,不一定是写实。 从实用角度来说,毛笔在设计时本身就考虑了储墨功能,比如“鸡距笔”就是特意做大笔肚来储墨,以弥补小楷笔储墨量小的短板。 所以我的结论是:第一次蘸墨,就大大方方蘸满,彻底蘸满,再刮掉多余的墨。 三、短间隔书写的保存 这是现代书法爱好者面临的最大问题——毛笔不再是日常书写工具,大部分人练字是隔一天甚至几天才写一次。这种情况下怎么保存,直接决定了毛笔的寿命。 主要有两种方法: 湿法 指不洗笔,把笔放在潮湿环境中保持墨的湿润。现在网上甚至有专门的保湿容器,把水和毛笔封在一起。 考古界有句话叫“干千年,湿万年,不干不湿只半年”,但我们的日常使用恰恰相反。湿法只适合很短时间的间隔,比如吃个饭再回来继续写。如果长时间这样保存,毛料容易腐烂,加上部分墨汁变质,还会散发出一种……很特别的味道。 所以,对一般练字的人来说,我不建议用湿法。 干法 指写完就彻底洗笔,再晾干。 缺点也很明显:频繁洗笔(尤其是按到底清洗)会损伤笔毛,而且反复干湿交替,对笔的性能也不好。 但两害相权取其轻,我还是支持干法。具体操作如下: 写完后用流水冲洗笔头表面的墨; 在流水下轻轻按压笔头,挤出大部分残留墨汁; 用纸巾吸掉多余水分; 平放保存。 顺便说一句,关于“怎么放”也有争议。常见的笔架是头朝下悬挂,但也有人说这样水汽会向上渗入笔根,导致腐烂。我个人觉得这说法有点玄,但保险起见,平放在笔帘里确实是最稳妥的。 四、掉毛 毛笔掉毛是正常现象,一根一根掉属于正常磨损。发现有毛呲出来,直接用指甲捏住拔掉就好。 我在网上买笔时收到过一把小钢梳,据说是用来梳笔的,可以把藏在笔根里的陈墨结块和碎毛刷出来。我试了一下,对老笔挺管用,新笔用不上——如果平时保养得当,笔根里本来就不会积太多陈墨和碎毛。 五、长期保存 这部分我其实不太常用,因为手头的笔不多,很少需要长期保存。 不过方法反而简单:把笔尽量洗干净,吸干水分,把毛聚拢、笔尖收好。不需要像新笔那样上封笔胶(就是刚到手时让笔毛变硬、笔锋收拢的那层东西)。干了之后毛会散开,像个小刷子,正常收好就行。 2025.11.11

March 22, 2026 · 1 min · 39 words · 静影沉璧

广播剧剧本 :《两年生》

广播剧剧本 :《两年生》 人物: · 林溪——女,大学生,心思细腻 · 沈屿——男,同学,性格爽朗 (注:“溪”有流水般的柔韧与绵长;“屿”是海中的孤岛,有静默陪伴的意味。两人名字恰好呼应了剧本中关于“陪伴”与“生命”的主题。) 编者个人的背景音乐建议:《亚麻色头发的少女》(德彪西)、《月光》(德彪西) 第一场 【音效】:虫鸣,远处偶有夜跑的人经过。翻书声。 林溪:(嘟囔)嗯? 【音效】:平板“滴——”一声,电量低提示。 林溪:没电了。(合上书)行吧…… 【音效】:掏出手机,打字声。 林溪:(自言自语)一月能种点什么……直接寄到外婆店里。 沈屿:(画外音,由远及近)林溪? 林溪:(抬头)嗯?沈屿?你怎么在这儿? 沈屿:(走近,坐下)图书馆闭馆了,路过。你一个人坐这儿干嘛? 林溪:复习呢,平板没电了,顺便……看看买什么花回家种。 沈屿:(凑近看手机)买花?我看看……羽衣甘蓝?这名字好听。 林溪:嗯,说现在买了过年能看。但是—— 沈屿:但是? 林溪:两年生植物。开完今年,明年就“失去观赏价值,建议直接拔除”。 沈屿:噗,这么狠?那别买了呗。 林溪:没买。换了水仙。 沈屿:水仙好,过年正好开。你买几个? 林溪:两个。一个水培,一个土培。 沈屿:为啥种两样? 林溪:(沉默两秒)水培……开完就死了。土培能活得久一点。 沈屿:(笑)那不都一样?反正最后都会死。 林溪:(轻声)那不一样。 第二场 【音效】:虫鸣持续。远处有风吹树叶的沙沙声。 沈屿:(好奇)怎么不一样了?说来听听。 林溪:(犹豫)……我也不知道怎么说。 沈屿:没事,反正今晚月亮挺好,聊聊呗。 【音效】:林溪轻轻靠上椅背的声音。 林溪:我以前看过一本书,英国人写的园艺书。说他的盆栽都是“短暂的艺术”,观赏期一过就拔了扔掉。 沈屿:嗯哼。 林溪:我当时特别接受不了。我种花……不是想看它多好看。我就是想看它活着。叶子绿着,杆子立着,哪怕不开花,它也是一条命。 沈屿:所以你舍不得拔? 林溪:嗯。我宁愿看它自己枯死,也不会亲手拔了它。 沈屿:(若有所思)那你……挺温柔的。 林溪:(愣住)啊? 沈屿:没什么。就是觉得,你好像对“活着”这件事……挺当回事的。 林溪:(沉默)可能吧。 沈屿:那水仙呢?水培那个,你知道它会死,为什么还要种? 林溪:(声音低下去)因为……好看啊。透明的根,白色的花,配在一起……像最后一舞。 沈屿:(轻轻笑)最后一舞……你还挺文艺。 林溪:(自己也笑)有点矫情是吧。 沈屿:没有。就是觉得,你好像挺害怕“结束”这件事。 第三场 【音效】:虫鸣渐弱,背景音乐轻轻进入。 林溪:(沉默良久)可能吧。 沈屿:展开说说? 林溪:(犹豫)我……不太喜欢花期太短的东西。花确实好看,但开完就没了。叶子不一样,叶子能陪你好久。 沈屿:所以你喜欢观叶植物? 林溪:嗯。兰花、竹子,都行。 沈屿:古人说“岁寒三友”,你倒是挺传统。 林溪:(摇头)我看不出来什么君子人格。我就是……不喜欢告别。 沈屿:(安静地)嗯。 林溪:(像是终于开口)我不敢养宠物,也是因为这个。猫咪多可爱啊,但是……它走了怎么办?每一分快乐,最后都变成加倍的难受。 沈屿:(轻声)那……谈恋爱呢? 【音效】:虫鸣停了一瞬。背景音乐微微起伏。 林溪:(愣住)什么? 沈屿:你刚才说的那些——不敢养宠物,不喜欢花期太短……那谈恋爱呢?大学谈恋爱,也怕吗? 林溪:(沉默更久)……想过考研。要是异地了,怎么办。 沈屿:(笑,但没有嘲讽)林溪,你知道你这样像什么吗? 林溪:像什么? ...

March 22, 2026 · 1 min · 91 words · 静影沉璧

把时间涂满双手

把时间涂满双手 “人类是可悲又可爱的生物,三维的束缚让他们在时间里被不断的推搡,并懵懂地,勇敢地,无知地,义无反顾地——前行。” 讲台上教授的话语逐渐模糊,我只是盯着手里的小东西怔怔出神。 正如百年前作家的天才预测,这一小块凝固的时间流淌在我的手心,它摸起来像浅海的泥一样柔软。 时间上美丽的花纹并不是它本来模样,那是四维投影留下的痕迹,带着不属于这个世界的迷幻气息。 “一维是点,二维是面,三维是空间,而四维则包含了时间。” 台上教授的长篇大论忽然入耳,但我的注意力全被这一小块时间吸引,只能断断续续地塞进一两段字句。 “属于三维的人类只能在时间的正方向上一去不复返,但对四维生物来说,回到过去与穿越未来就像走进一个山谷一样自然。” “这倒是件好事,”我恍惚地想,“要是这样我就可以穿越回去,拯救一下我悲伤的人生。” 带着几分无奈和自嘲,我接着打量手里这块时间。 在这个时代里,身为三维世界的可怜生物,人类终于摸到了时间的影子,而我正怀揣着这项科技的造物。 更确切的说来,它是只属于我的“时间”。 它是我这前半辈子的时间,是我到现在为止一生的轨迹。 思绪回到两年前,那时我来到这个极富盛名的研究所。 我自认为是一个极度普通的人,我普通地学习,普通地生活。我曾为一次演讲而热血沸腾,然后再继续放纵;我曾在深夜里发奋苦读,然后在教授的讲座上呼呼大睡;我也曾为测试焦头烂额,最后成绩不上不下,自己却心力憔悴。 时间以同样的方式流经每个人,而每个人却以不同的方式度过时间,有人的时间精贵有效,大约他们会在离开时功成名就,有人的时间羸弱无力,大约他们会在离开时狼狈不堪,而我显然是后者。实在可惜,我们的时间相同,却在各种阴差阳错之下,我们的成就不可作比。 这不算怨天尤人,这是很浅显的道理——时间是公平的,但不是公正的。 我的过去在为毫无天赋买单,我的未来在踌躇和迷茫中等待。 我低头看向我的过去。 它的花纹像星星,像幽灵,像一只眼睛。 我清晰地记得那个年轻的发言人站在麦克风前的样子,他瘦瘦高高,讲到激动处会挥舞着手,然后双眼微眯。那天他立在台上,文绉绉地说出一段深不可测的发言。 “时间会永远陪伴着我们!如果你感到孤独,请抬起头吧!时间会与你对视,他的眼里只会闪烁着未来的光芒……” 那是他的时间,如日当空,春风得意。 只可惜,在我第二十一次尝试从时间里找到光华时,我放弃了。手里的“眼睛”看着我,只有对过去的怨恨和对未来的恐惧。 讲座结束后,有人突然拍了拍我的肩膀。 我转头看去,是隔壁实验室的同事。 她是这里最优秀的研究者之一,还参与了时间晶体的构建工作,我手中的这一小块时间更是拜她所赐。 想到这里,我的头默默更低了几分,只想鼓起勇气跟她打个招呼以示谢意,但她却朝我摆了摆手。 “怎么样?手握前半生的感觉是不是很奇妙?”回实验室的路上,她随口问。 这话却又让我想起刚刚的怨念,神使鬼差般的,我脱口而出:“它让我看到我失败的人生。”话刚出口,我就后悔了。 她不明所以地转头看我,也没有管我的无礼,只是面露无奈。 “你是在担心这个月的测试?还是未来的职位?”她双眼眯了眯,伸手推一下眼镜。 “话说你刚刚有听教授的讲座吗?我觉得他的思想很适合你的忧虑。” 突然被人戳中心中所想,我不知作何回答,手足无措之间,只能摇头。 她撇了撇嘴,继续说道: “那我就要长篇大论了,你可别嫌我烦。” “没有没有,你说吧。”按照她现在的资历,她的未来必定是飞黄腾达,而我对她愿意和我说话就早已十分感激,更不敢有丝毫嫌弃。 “人类是只能在时间道路上狂奔的可怜虫,但这也是我们生命的意义所在——只管沿着时间前进。” “人类需要回头,但不需要返程,回头的意义就是为了更好的前行。” “对在三维空间里挣扎的我们来说,过去是不可追寻的,但幸运的是,到了今天,人类的聪明才智使我们有能力抓住过去的残影,封装一小块凝固的时间。” 说到这里,她忽然偏了偏头,盯着我手里的时间。 “我们可以把一个人的过去封装起来,这小小的一盒就是他生命的轨迹。” “但它绝对不是用来感时伤今的。不要忘记了我们身为三维生物的使命——沿着时间的方向向前奔跑。” “所以永远不要留恋所谓‘过去的美好时光’,因为岁月它一直在稳步前行,脚下的今天终会在未来的某天里摇身一变,成了又一个‘过去的美好时光’。” 她的话一次次敲打我的内心,我张了张嘴,发不出一点声音。 但她目光灼灼,抬头看着我,突然不知从哪拿出了另一块凝固的时间。 “研究早就证明了时间晶体的构造不同于一般晶体,由于时间的不确定性,它们一般更接近于玻璃态,所以‘晶体’之名其实不太准确,而人眼看见的花纹也只是时间容器弯折维度时的涟漪。” “但正是这样的结构让它们有了一种独特的性质——晶体运动时会和空间中本来的时间结构‘摩擦’,产生足以令自身‘融化’的能量,你知道的,这个词也不严谨,毕竟玻璃态是没有固定熔点的。” “不过我还是算了算,要产生令它们完全解构的能量,只需要以相对于地球以大约六点五米每秒的速度前进。” 她嘿嘿一笑,肉眼可见的兴奋,不知怎么做到的,打开了那个看不见的时间容器。 “六点五米每秒!这正好是一个成年人全力奔跑的平均速度!”她目光灼灼。 “每个人的时间都以玻璃态的混沌记录下了他的所有活动,无论成功失败,无论高低贵贱。” “所以,看好了——每个人的过去都是这样用的!” 柔软的时间流淌在她的手上,唤作“眼睛”的花纹骤然破碎,让我有些看不清她的手。 她把时间涂满双手。 我渐渐睁大了眼。 一个三维的人,在寻常的路边,略显灰白的天空下,有些阴冷的风里。她把绚烂的过去倒在双手,像我们这个三维族群的可怜命运一样,开始向前奔跑。 于是脆弱的时间融化,挣扎着流淌进属于它们的另一个维度,同这个世界的框架摩擦,释放出没有由来的光亮,那光是高维的来客,远比太阳夺目,却又毫不刺眼。它们嘶吼着,宣泄着,划出一道我此生从未见过的流光。 “看见了吧!当你全力奔跑时,你的过去就一定会在当下划出万丈光芒!”她兴奋地又跑又跳,时间也在她身后又跑又跳。 我突然明白了,那是她自己的时间,被倾倒在双手,挥洒在身后。 于是我也开始向前跑,追上她的步伐。 “多少科研经费就这样被你玩完了。”我被眼前的光景打动,抬头看她,笑骂一声,却也请她帮我打开手里的时间。 “生活嘛,要向前跑,过去的时间当然是属于身后的啦!不如说这才是我研究的意义。”她接过我的时间。 “你越来越像一个哲学家了。”我由衷地评论。 不等她回答,属于我的过去也尽数倒在了我的手上。 它们是那样的柔软,好似我和曾经的我手牵着手,又好似过去的我在身后督促着我前行——那里有我困惑的答案,苦难的诠释,有我的“眼睛”,有我自己的神迹。 我把时间涂满双手。 然后我向前奔跑,玻璃态的过去在手上软化变形,同样的光芒再次浮现,咆哮着划破空间。 当微冷的风撞上脸庞时,我下意识的眯眼,泪水却突然从眼角滑落—— 光啊!那样亮的光! ...

March 22, 2026 · 1 min · 76 words · 静影沉璧

基于腾讯云 COS 的 Obsidian 三端同步方案:从 WebDAV 困境到 S 3 协议实践

引言 Obsidian 是一款优秀的本地知识库工具,但是其没有免费的多端同步服务,其他人我不知道,这个问题反正很困扰本人。我主要是在教室主要使用平板编辑,在寝室就换为电脑了,所以有频繁的多端同步需求。 奈何官方同步服务收费较高,而第三方网盘(iCloud、百度云、OneDrive 等)存在隐私顾虑和速度限制。所以我选择自建同步方案,但这么搞往往需要处理协议兼容性、权限配置等等细节。于是在寒假折腾一天,这里就总结一下,旨在为有类似需求的读者提供一份兼顾专业性与可操作性的参考。 本文记录的是我从最初尝试 Nextcloud+WebDAV 到最终采用腾讯云 COS(对象存储)实现电脑、手机、平板三端稳定同步的全过程,尝试深入剖析各阶段遇到的技术问题及其原理。 本文部分使用 AI 辅助编写。 WebDAV 方案的尝试与失败 初始架构:Nextcloud + WebDAV 我最初利用服务器,通过 Docker (服务器还有其他东西,求放心搞了一个隔离)部署了 Nextcloud(版本 23),并启用其 WebDAV 服务。在电脑端 Obsidian 中安装 Remotely Save 插件,配置 WebDAV 连接后,同步功能正常,文件可双向传输。这就验证了自建同步的可行性。 安卓端的异常现象 但是,当在安卓手机和平板上进行同样配置时,问题出现了:同步状态极不稳定,频繁返回 401 Unauthorized 错误,连接测试时而成功,时而失败,无固定规律。偶尔成功同步一次后,再次尝试即失败。设备重启后短暂恢复,随后再次报错。不同安卓设备表现一致,排除了个别设备故障。 排查过程: 针对上述现象,我和 AI 聊了聊,做了排查: 凭证验证:重置 Nextcloud 账户密码,重新输入插件配置,问题依旧。 域名与信任:在 Nextcloud 的 config.php 中添加了手机访问的 IP 和域名,避免请求被拒绝。 网络环境:切换 Wi-Fi、4 G/5 G,甚至使用手机热点连接,未能改善。 服务:使用手机浏览器直接访问 Nextcloud 的 WebDAV 地址,输入凭证后可以正常浏览目录,说明服务本身是正常的,且网络无阻断。 根本原因分析 走投无路,于是求助伟大的 deepseek ,他查阅 Remotely Save 插件开发者文档及相关技术讨论后,发现了问题根源:安卓系统底层对 WebDAV 协议的非标准 HTTP 方法支持存在缺陷。 ...

February 27, 2026 · 2 min · 371 words · 静影沉璧

记一次 Minecraft 服务器运维:脚本编写漏洞导致的日报数据不全

记一次 Minecraft 服务器运维:脚本编写漏洞导致的日报数据不全 问题现象:日报只记录了“半天”的活动 我搭建的 Minecraft Fabric 1.20.1 服务器每天重启四次(0、6、12、18 点),并在 23:55 生成一份 Markdown 日报。运行一段时间后,我不幸的发现:日报里的“最近聊天记录”只显示最后几小时的消息,而“活跃玩家列表”中的“最后活动”时间其实是玩家最后一次上线时间,根本不是真正的退出时间。简单来说,日报数据严重不全,几乎失去了参考价值。这令人沮丧,本来我就被脚本妙妙小 bug 折磨,现在又要来修了,于是在精心编写了提示词后与 AI 好好学习了一下,现在总结问题发出来。 为什么会出现数据不全? 要搞清原因,得先了解 Minecraft 服务器的日志机制。 1. 服务器重启会覆盖 latest.log Minecraft 服务端(包括 Fabric)运行时,会把所有日志实时写入 logs/latest.log。但当服务器重启(无论是正常关闭还是崩溃重启),latest.log 通常会被清空或覆盖。新启动的服务器会创建一个全新的 latest.log,只记录本次启动后的日志。 我之前是打算每天 23:55 生成报告,服务器这之前不重启。但后来为了保证服务器稳定(对钱包的妥协),设置了每天四次定时重启(通过维护脚本)。这就导致:23:55 生成日报时,latest.log 里只保存了最后一次重启(18 点)之后到现在的日志,而 0 点到 18 点之间的所有日志都丢失了。 2. 旧脚本只盯着 latest.log 看看旧的日报脚本是怎么获取日志的(简化版): LOG_FILE="$SERVER_DIR/logs/latest.log" TODAY_LOG=$(grep "$TODAY" "$LOG_FILE" 2>/dev/null) if [ -z "$TODAY_LOG" ]; then TODAY_LOG=$(tail -1000 "$LOG_FILE") fi 这段代码试图从 latest.log 中提取当天的日志行(按日期字符串过滤),如果找不到(比如日志里没有日期前缀,或者重启后日期已变),就退而取最后 1000 行(至少想到了这个备案)。但是显然,无论哪种方式,都只能得到部分日志。 3. 三步之内必有解药:日志归档目录 logs/ 实际上,Minecraft 服务端在日志轮转方面做得挺周到(屎山代码居然还有小巧思)——它会将旧的日志自动压缩并存放到 logs/ 目录下(缺点就是积压一堆不大但是碍眼的压缩包),文件名通常像这样: logs/2025-02-23-1.log.gz logs/2025-02-23-2.log.gz logs/2025-02-24-1.log.gz ... 这些压缩文件里保存着全天的日志,按时间分段。如果日报脚本能读取这些文件,就能拼凑出完整的日志历史。 ...

February 26, 2026 · 2 min · 283 words · 静影沉璧

博客项目技术文档

博客项目概述 一、项目简介 这是一个基于 Hugo 静态网站生成器 + PaperMod 主题的个人博客系统。代码托管在 Gitee 私有仓库,通过 Caddy 作为 Web 服务器自动提供 HTTPS 服务,并利用服务器定时任务(crontab)实现自动拉取更新、构建和部署。整个系统部署在腾讯云服务器(Ubuntu 24.04)上,同时服务器还运行着 Nextcloud 私有云盘和 Jupyter 科学计算环境(均通过 Docker 容器管理)。 二、技术栈 静态生成器:Hugo(v 0.146.0+extended) 主题:PaperMod(手动下载,非 Git 子模块) 版本控制:Git + Gitee(国内镜像,私有仓库) Web 服务器:Caddy(Docker 容器),自动申请/续期 SSL 证书 部署方式:本地推送 → Gitee → 服务器定时拉取 → Hugo 构建 → Caddy 服务 服务器 OS:Ubuntu 24.04 LTS 容器管理:Docker + Docker Compose(管理 Caddy、Nextcloud、Jupyter 等) 自动部署:crontab 每分钟执行自定义脚本 /home/your-username/auto-deploy.sh 三、系统架构 本地电脑 │ 写文章 (Markdown) │ hugo new posts/xxx.md │ 编辑后 git add/commit/push ▼ Gitee 仓库 (私有) │ ▼ 腾讯云服务器 ├─ crontab (每分钟) │ └─ 运行 /home/your-username/auto-deploy.sh │ ├─ git pull 拉取最新源码 │ ├─ hugo --minify 生成静态文件到临时目录 │ ├─ 替换 /home/your-username/blog/public │ ├─ 修复权限为 www-data │ └─ docker restart caddy └─ Caddy 容器 (监听 80/443) └─ 托管 /home/your-username/blog/public 四、关键配置与路径 4.1 本地博客源码 路径:本地博客路径 配置文件:hugo.toml(或 config.toml),内容示例: baseURL = 'https://lingzuian.top/' languageCode = 'zh-cn' title = '静影沉璧到此一游' theme = 'PaperMod' copyright = '© 2026 静影沉璧到此一游 | 备案号:<a href="https://beian.miit.gov.cn/" target="_blank">湘ICP备2026005470号</a>' [params] math = true # 开启 KaTeX 数学公式 [menu] [[menu.main]] name = "文章" url = "/posts/" weight = 10 [[menu.main]] name = "关于" url = "/about/" weight = 20 文章存放:content/posts/ 页面存放:content/,如 about.md 自定义模板:layouts/partials/,如 math.html(加载 KaTeX) 4.2 服务器关键目录 博客源码:/home/your-username/blog-source(从 Gitee 克隆) 静态文件目录:/home/your-username/blog/public(Caddy 挂载的根目录) 自动部署脚本:/home/your-username/auto-deploy.sh 部署日志:/home/your-username/auto-deploy.log Caddy 配置:/home/your-username/caddy/Caddyfile Caddy Compose 文件:/home/your-username/caddy/docker-compose.yml 4.3 自动部署脚本(当前稳定版) #!/bin/bash SOURCE_DIR="/home/your-username/blog-source" PUBLIC_DIR="/home/your-username/blog/public" TEMP_DIR="/home/your-username/blog/temp" cd "$SOURCE_DIR" || exit 1 git fetch origin LOCAL=$(git rev-parse HEAD) REMOTE=$(git rev-parse origin/main) if [ "$LOCAL" = "$REMOTE" ]; then echo "No updates, exiting." exit 0 fi echo "Updates found, pulling changes..." if ! git pull; then echo "Git pull failed. Aborting deployment." exit 1 fi mkdir -p "$TEMP_DIR" sudo chown your-username:your-username "$TEMP_DIR" if ! hugo --minify --destination "$TEMP_DIR"; then echo "Hugo build failed, aborting deployment. Keeping old site." rm -rf "$TEMP_DIR" exit 1 fi sudo rm -rf "$PUBLIC_DIR" sudo mv "$TEMP_DIR" "$PUBLIC_DIR" sudo chown -R 33:33 "$PUBLIC_DIR" sudo chmod -R 755 "$PUBLIC_DIR" docker restart caddy echo "Deployment complete." 4.4 Caddy 配置 (Caddyfile) lingzuian.top { root * /var/www/blog file_server } cloud.internal.example.com { reverse_proxy nextcloud_app:80 } jupyter.internal.example.com { reverse_proxy math_jupyter:8888 } 4.5 Caddy Docker Compose (docker-compose.yml) services: caddy: image: caddy:latest container_name: caddy restart: unless-stopped ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - /home/your-username/blog/public:/var/www/blog - caddy_data:/data - caddy_config:/config networks: - web volumes: caddy_data: caddy_config: networks: web: external: true 五、自动部署流程详解 crontab 每分钟执行 /home/your-username/auto-deploy.sh。 脚本先 git fetch origin 比较本地与远程 commit hash: 若相同 → 退出(无更新)。 若不同 → 执行 git pull 拉取最新代码。 拉取成功后,创建临时目录 /home/your-username/blog/temp,确保所有者是 your-username。 运行 hugo --minify --destination 生成静态文件到临时目录。 构建成功:删除旧 public 目录,将 temp 原子移动为 public,然后修复所有者为 www-data(UID 33)并设置权限 755,最后重启 Caddy。 构建失败:保留旧 public 目录,删除临时目录,退出(网站不变)。 六、常见问题与解决方案(历史坑点) 6.1 权限问题(Permission denied) 现象:Hugo 构建时无法写入 public 目录,或 Caddy 无法读取文件。 原因:public 目录所有者不是运行 Hugo 的用户(your-username)或不是容器内的用户(www-data)。 解决方案: 在脚本中,生成前确保 temp 目录归 your-username,生成后 public 归 www-data。 手动修复:sudo chown -R 33:33 /home/your-username/blog/public 当前状态:脚本已正确处理,若手动操作后需检查权限。 6.2 Git 冲突或无法推送 现象:git push 被拒,提示 non-fast-forward 或 divergent branches。 原因:在服务器上直接提交了代码,导致本地与远程分叉。 解决方案: 永远不要在服务器上执行 git commit。所有修改必须在本地进行。 若已发生,需在服务器上 git pull 合并(可能冲突),再 git push 解决。 预防:遵守“只从本地推送”原则。 6.3 Hugo 构建失败(Front Matter 格式错误) 现象:构建时报错 unmarshal failed: toml: expected character =,导致网站无法更新。 原因:新建或修改的 Markdown 文件开头元数据格式有误(如误用 --- 代替 +++,或缺少等号)。 解决方案: 确保文件开头是 +++,每行格式如 key = "value"。 推送前用 hugo server -D 本地预览,可提前发现错误。 脚本保护:脚本在构建失败时会保留旧网站,避免 404。 6.4 Caddy 挂载失效(目录 inode 变化) 现象:网站 404,但服务器上 public 目录有文件,容器内 /var/www/blog 为空。 原因:脚本用 sudo rm -rf 删除旧目录再重建,导致目录 inode 变化,Docker 挂载指向了已删除的 inode。 解决方案: 改用 sudo rm -rf "$PUBLIC_DIR"/* 清空内容而不删除目录本身(保留 inode)。 或采用临时目录原子替换(当前脚本已使用 mv 替换整个目录,但 mv 后 inode 改变,仍需重启 Caddy)。因此脚本最后重启 Caddy 确保重新挂载。 当前状态:脚本通过重启 Caddy 解决此问题,且只在有更新时重启,无更新时不重启。 6.5 自动部署脚本误判更新 现象:即使无更新,脚本也执行构建和重启。 原因:早期脚本通过 git pull 的输出判断更新,不够准确。 解决方案:改用 git fetch 比较 commit hash(当前脚本已修复)。 6.6 KaTeX 公式不渲染 现象:文章中的 $...$ 或 $$...$$ 未渲染为数学公式。 原因:KaTeX 脚本未正确加载或定界符未配置。 解决方案: 在 layouts/partials/math.html 中添加 KaTeX 脚本和 renderMathInElement 调用(已配置)。 确保文章或全局开启了 math = true。 七、注意事项与最佳实践 绝对不要在服务器上直接修改文件(包括 nano 编辑),所有更改都应在本地完成并推送。 绝对不要在 Gitee 网页上直接编辑文件,以免造成版本混乱。 推送前务必本地预览:hugo server -D 检查格式和渲染。 新文章必须 git add:新建文件后,先用 git status 确认已加入版本控制。 定期查看服务器日志:tail -f /home/your-username/auto-deploy.log 确保脚本正常运行。 如果需紧急修改服务器文件(不推荐),改完后必须立即 git commit 并 git push,然后在本地 git pull 同步。 八、日常维护与更新指南 8.1 写一篇新文章 # 本地 cd 本地博客路径 hugo new posts/文章名.md # 编辑文章(修改 draft = false) hugo server -D # 预览 # 满意后 git add . git commit -m "新增文章:文章名" git push 8.2 修改已有文章 # 编辑文件后 git commit -am "更新文章:xxx" # 针对已追踪文件 git push 8.3 修改主题或配置 所有修改在本地进行,然后 git add/commit/push。 主题文件位于 themes/PaperMod/,若有自定义覆盖,放在 layouts/ 或 assets/css/extended/。 8.4 升级 Hugo 版本 服务器上需手动下载新版 hugo 二进制并替换 /usr/local/bin/hugo。 本地也需要同步升级,避免版本差异导致的构建问题。 8.5 处理服务器故障 Caddy 挂了:docker restart caddy 或 cd ~/caddy && docker-compose down && docker-compose up -d 磁盘空间满:检查日志大小,清理旧日志或无用的 Docker 镜像。 域名证书问题:Caddy 会自动续期,无需干预。 九、联系与备份 博客域名:https://lingzuian.top(备案号:湘 ICP 备 2026005470 号) Gitee 仓库:私有仓库,地址不公开 服务器:仅管理员 SSH 登录 数据备份:建议定期将 /home/your-username/blog/public 和 /home/your-username/blog-source 备份到 COS 或 Nextcloud。 本概述涵盖了项目架构、配置、历史问题和维护要点。希望未来无论由谁(或哪个 AI)接手,都能快速理解并有效协助。 ...

February 26, 2026 · 4 min · 694 words · 静影沉璧

为什么我们这个时代还需要博客?

引言 寒假在家,按照计划开设了一个我的世界 fabric 1.20.1 生存服务器,具体架构是在京东云租了一台两核 4 g 的服务器,安装 Linux 系统。 配置下来感觉还行,于是打算继续利用积累下来的服务器知识搞一搞别的,于是在和 AI 聊天的时候就发现居然还可以用来建博客。 对于博客这个东西真是久仰大名,但是以前一直都没有仔细了解,过于是借着这个机会搭建了一个(地址:睡醒了再写),也算是体验了一下技术全流程,并且有一些非技术方面的想法,就写在这里,算是这个项目告一段落。 博客的本质 简单来说,博客可以是“公开日记本”,但它更是一个属于一个人自己的“数字家园”和“知识管理系统”。 如果有人要问:为什么不自建博客而去用 B 站动态或 QQ 空间? 这其实就像问:为什么有人要自己装修房子,而不是一直租公寓住? 下面总结了对比表格来澄清核心区别: 特性维度 B 站动态 / QQ 空间 / 微博 (租的“公寓”)​ 自建独立博客 (个人的“数字家园”)​ 所有权与控制权​ 只有使用权。平台可以删内容、改规则、甚至封号。个人创作依附于平台。 个人拥有完全主权。内容、设计、数据完全由个人掌控,只要续费,它就永远在那。 内容形式与深度​ 适合碎片、即时、娱乐化的内容。深度长文、系列教程不易呈现和沉淀。 深度思考的土壤。非常适合系统性地整理知识、撰写教程、记录思考过程,形成体系。 设计个性化​ 只能使用平台提供的有限模板和布局,千篇一律。 自己就是设计师。从布局、字体、颜色到交互,可以完全按你的审美和功能需求定制。 读者关系​ 粉丝与博主关系,依赖算法推荐和平台流量。互动较浅。 读者与作者关系。读者是主动通过搜索或链接而来,互动通常更认真、深入。 核心目的​ 社交与传播,追求即时反馈(点赞、转发)。 记录与沉淀,构建个人品牌与知识库。反馈可能延迟但更长久。 数据与价值​ 数据属于平台,你无法轻易导出或迁移。你的价值增加了平台的价值。 数据是个人的资产。所有文章积累起来就是个人的搜索引擎,是能力的直接证明。 这个时代为什么还需要博客? 我们可以认为博客是在对抗信息碎片化 。在短视频、快餐内容泛滥的时代,博客是为数不多还允许“长内容”存在的地方。当所有人的注意力都被切成30秒一段时,博客就可以是一个深度思考的空间。 贴合时代一点,博客也可以是 AI 时代的“知识原材料”,AI 需要高质量的文本数据来训练和学习,博客正是这种“知识原材料”的一部分来源。社交媒体上的碎片内容对 AI 的价值远低于一篇结构清晰的技术教程或思考总结。 如果博客内容优秀或者影响力大,还会更容易被搜索引擎检索到。这个时候,它就直接成为了其他人的知识原材料,而不需要经过 AI 的咀嚼,这也是非常好的一个部分。 现在的AI训练,最缺的不是数据量,而是高质量、结构化的长文本。社交媒体上的“咕咕嘎嘎!”“何意味?”对AI理解人类思维帮助有限,而一篇博客里的逻辑推理、问题解决过程,才是AI真正需要的“养分”。写博客,恬不知耻的讲,是在参与构建下一代智能。 又可以说:这是一个个人IP 。在哪个平台都可能过气或被封,但博客域名是属于本人的。(除非发布违禁信息被禁止访问) 依然拿住宿来做比:租公寓(社交媒体)很方便,有物业、有邻居、有广场舞(算法推荐)。但有一天公寓倒闭了,或者你被赶出去了,你积累的一切——那些精心挑选的家具、墙上的照片、写满笔记的墙壁——全都带不走。 而自己的房子,哪怕一开始简陋得像毛坯房,每一块砖都是自己砌的,永远不会有人半夜敲门让你搬走。 文艺一点,写这个东西也是数字时代的“慢生活”。为什么现在还有人种菜、做手工、写日记?博客就是一种数字世界的“慢生活”方式,是对“即时满足”文化的一种温和反抗。 ...

February 26, 2026 · 1 min · 88 words · 静影沉璧