Masimaro's blog - Masimaro
type: channel
link: https://www.masimaro.top/author/1/
description: Masimaro
items: 读《枪炮、病菌与钢铁》
items: 读《失去的三百年》
items: Emacs折腾日记(三十六)——打造个人笔记系统
items: lazygit 规范提交记录
items: Emacs 折腾日记(三十五)——归档
items: 读《世界末日前的谋杀》
items: 读《少年厌学》
items: Emacs 折腾日记(三十四)—— org todo
items: 读《豺狼的日子》
items: 2025回顾与2026年展望

读《枪炮、病菌与钢铁》
type: item
date: 2026-03-15T10:29:00+08:00
description: 这本书在互联网上的名气非常的大。如果作为读书博主，推荐书单中没有这本书，似乎就不配作为读书博主。我在好多读书博主的推荐书单中都看到这本书，我也很早就将它加入了自己的书单，直到最近才有将它翻开阅读。书中以一个作者的土著朋友的问题开始“为什么是欧洲的白人殖民了我们，而不是我们殖民欧洲？”。很多科学家都想以此来证明欧洲人的种族优势大于非洲土著，但是作者通过一些研究得到完全的不同的结论。作者的结论十分简单，这一切都是地理因素。首先欧亚大陆有明显的四季变化，有适合进行驯化的动植物。所以它们优先从狩猎采集发展出了农业。而同样处于温带气候的美洲为什么没有发展出农业呢？作者给出的答案是，美洲大陆没有合适的进行驯化的植物，也没有能够进行驯化的动物，而动物在农业生产中至关重要。在农业种牲畜可以提供劳动力，可以犁地、帮忙运输物资等等。而美洲大陆缺乏能提供劳动力的牲畜，农业规模无法扩大。农业的产生能供养更多的人口，可以养活不进行农业生产的人口，例如各类专家、政治家、职业军人。农业生产会养活更多的人口，形成复杂的人口社会结构，有利于文明的发展。考古学证明大型水利工程都是在形成大的联邦或者国家之后才有能力组织人力进行修建。人口的聚集有利于发展技术，技术的进步能提高生产力，从而存进农业的发展，人口会进一步增加，形成正向的循环。而发明家、专家这些人促进了技术的进步，他们发展出了冶金、航海、文字、火药、轮子等等技术，从而进一步推动文明的发展。农业驯养的马匹给职业军队提供了极强的战斗力，而航海技术为远洋殖民提供了技术支持。而农业社会人畜长时间待在一起，而农业社会人口密度大，长时间定居，这些都有利于人类和牲畜之间互相感染疾病，有利于微生物的进化。在漫长的人类、动物共存的情况下，都进化出了对于疾病抵抗能力。而美洲和非洲土著世代过着狩猎采集的生活，不与动物混在一起，隔一段就迁移，与疾病接触的机会少，缺乏对疾病的抵抗力，在遇到欧洲殖民者时，殖民者身上的致命病菌给他们带来了灭顶之灾，对他们的伤害不亚于武力。似乎到此逻辑链完整了。因为亚欧大陆适合发展农业-->亚欧大陆发展出了农业-->农业能养活各种人口-->不进行粮食生产的人口多了各种发明创造-->定居让人们有了固定财产-->人口密度大，固定居所，病菌传播-->进化出抵抗力但是作者又提到几个问题，既然农业生产这么多优势，为何其他地区的人们不采用？各个地区都有自己的技术优势，为何亚欧大陆形成了压倒性的优势？首先作者提出，农业社会并不一定比狩猎采集社会有优势，只是基于地理环境的无奈选择，这与《人类简史》中的观点一致。非洲大陆作为人类的起源，野生动物在长时间与人类共存中进化出了怕人这一技能。因此非洲大陆的大型野生动物没有灭据，而其他大陆包括亚欧大陆，大型哺乳动物大量灭据，人类可供捕猎的动物资源减少了。另外就是上面提到的亚欧大陆可供驯化的野生动物数量比其他大陆的都多，牲畜给农业提供了劳动力，有利于农业的发展。另外亚欧大陆是东西走向，维度适合农作物生长，也没有天然的屏障。农作物和农业技术可以很方便的进行传播，亚欧大陆上各族人民技术交流频繁，一个地区发展出来的技术很容易传播到另一个技术，从语言学上可以知道很多民族的语言多多少少都受到了其他名族的影响。周边的狩猎采集部落要么看到农业社会的优势主动转变，要么被征服，驱赶，被动的接受改变。这些可以在短时间内完成，而美洲和非洲因为地理环境的影响，他们看不到远在亚欧大陆的人类社会，也无法被早期亚欧大陆上的农业社会所知晓。造成二者初次见面时巨大的差距整本书的结论十分清楚，亚欧大陆的技术优势并不是人种优势，而是他们恰好位于亚欧大陆。如果将各个人种在各个大陆的位置调换，结果也不会发生变化，仍然是亚欧大陆的技术发展领先欧洲。书中我得到一些启示：任何技术的发展我们都无法清晰的遇见它的未来，就像农业基于狩猎采集，二者是在特定环境下的产物，谁也无法预料当初选择农业生产会对人类文明产生几千年的影响。人类现代文明某种程度上也是基于环境的产物，很多我们认为古来如此的习俗和规矩也是基于环境的最优解，环境变了，规矩也得变环境与生产力是共同作用的，生产力的发展使社会环境产生变化，而这个变化反过来有会影响生产力的发展技术的进步需要与外界的交流碰撞，闭门造车要么会导致技术的退步，要么会跟不上时代的潮流。几万年前因为海洋、高山挡住人类文明的交流导致各个地区发展出不同程度的社会样貌，过去非洲和美洲被殖民并不是人种和文化的落后，而是因为地理环境的限制，限制他们看到外面世界的变化。而现代社会我们有了飞机货轮等交通工具、以及互联网这个交流的平台，这些技术的发展抹平了地理和距离的限制。但是人心中似乎慢慢筑起一道不可逾越的屏障，这个屏障正在阻碍不同地区的贸易、技术等的发展。以此警戒我个人能抛弃偏见，客观的看待社会的发展。

读《失去的三百年》
type: item
date: 2026-02-27T22:39:49+08:00
description: 学过历史都知道，在明清时期政府采取闭关锁国的政策，最终导致中国错过了西方的工业革命，造成了近代的落后。这本书告诉我们，虽然政府采取闭关锁国，但是那个时候的中国人并不像想象中那么封闭对外界的事物一无所知，甚至清政府也不像想象中那么完全封闭，这本书从地理大发现开始介绍了鸦片战争过去的300年间中国是如何同外部世界打交道的。开放与封闭的历史明朝时期从朱元璋开始就采取闭关锁国的政策，那个时候外国人来华贸易的主要方式就是参与中国制定的朝贡体系，外国商人与使臣一起带上贸易货物来进行上供，在此期间明朝皇帝会表现出对外国人的宽厚和仁慈，也为了表现天朝上国的示例会赏赐数倍于贡品价值的财物。因为巨大的利益可图，前来朝贡了外国人络绎不绝，为了减轻财政压力，政府不断要求外国人减少朝贡次数，同时要求减少使臣的随行人员。虽然明朝的贸易制度有些另外国人不解，但是当时与中国贸易仍然就巨大的利益可以赚取，因此一些制度上的不便并没有减少贸易的热情。同时因为明朝重视农业而歧视商业，并且对农业征收重税导致许多农名放弃农业转而开始经商。外国人的热情不减，民间商人团体不断扩大，最终明朝政府逐渐开放了一些港口作为通商口岸。在明朝时期因为不重视商业，无法理解海洋的重要性，丢失了澳门并且在葡萄牙人占领澳门后并没有很大的反应。随着明朝军事实力的下降以及对中央政府对地方的控制逐渐的力不从心，民间开始发展起来的与外国的贸易，同时政府因为缺乏资金，为了收取关税补充国库，政府开启了几个港口开始对外贸易。在此期间发生了明朝的士大夫随着与传教士的深交发现西方科技高明和领先之处，同时也见识到了西方火器的厉害，一方面士大夫们掀起了一股学习西方的风气，政府为了战争需要也开始聘请西方传教士制作火炮并训练火炮手。同时民间也发起了翻译西方著作的运动。明末时期中国因为政府控制力度不够罕见了形成了开放的社会风气。在此期间出现了大量涌向东南亚的华人，也因为需要对日贸易形成了新的海上势力，早期是一些海盗团伙，随着海盗团伙的合作和吞并，最终形成了一支庞大的海上势力，势力的领袖就是郑芝龙。清朝顺治时期，郑成功利用父亲郑芝龙留下的班子成功收复台湾。利用与澳门和海外的贸易建立了一个海上贸易帝国。但是这个过程随着康熙收复台湾而结束了。康熙皇帝可以说是清朝皇帝中最开放，也是西学最渊博的皇帝，在位期间他对西方的科学技术十分痴迷，甚至聘请传教士来为自己讲课，计算历法，解决工程问题。他明白西方的强大，为了统治的稳定，他允许甚至鼓励他的皇子皇孙学习西方科技，但是他禁止百姓接触传教士，学习西学。康熙为了解决台湾问题重新颁布了禁海令，在台湾问题解决之后重新开启了4个港口，开始了4口通商的时代。雍正皇帝是一个保守的皇帝，从雍正朝开始，清朝的皇帝不再热衷于学习西学，同时禁止传教士传教，开始了对传教士的迫害。清朝的官员与明朝不同，明朝虽然也是闭关锁国，但是底下官员的自主能动性高，可以自行搞学习西方的运动。清朝的官员经过文字狱的洗礼已经变成只会逢迎皇帝的奴才。皇帝搞闭关锁国底下自然跟着搞，甚至层层加码。此时在中国已经形成了两个并行却不相交的世界：商人和海盗能够看到海外的巨变，但他们无法将看到的一切传达给精英群体。而精英群体已经彻底忘记了西方的知识。到乾隆时期，4口通商已经变成一口通商。广州一家独大并且形成了特色的十三行制度。在此期间清政府两头盘剥，对外向洋人商船收取各种苛捐杂税，对内向十三行收取各种钱财，包括但不限于皇帝过寿要求官商捐款，救灾要求捐款。在此层层盘剥下洋人与十三行都不好过。洋人认为是清朝下面的官员贪得无厌，想要上京告御状，但是皇帝压根就不重视于洋人的贸易。皇帝表面上答应了会处理此事，背地里严查在此期间与洋人有过交流的人员特别是给洋人引路写状子的人。19世纪，英国人占据了对华贸易的主要地位。但是此时十三行已经濒临破产，而国内在极度封闭的情况下形成了自给自足的小农经济。英国想要贸易却无门路，同时国内对英国发生了贸易顺差，大量的白银流入中国。英国人此时动起了歪心思，决定用鸦片挽回这一形式。随着鸦片的输入，清政府开始了不同程度的戒烟运动，以林则徐的虎门销烟最为著名。英国要求清政府承认鸦片贸易合法，同时要求开辟新的通商口岸，并且英国以“保护贸易”为名，派遣军舰封锁广州、武力威胁。清政府认为此举是蛮夷挑衅，清政府认为西方需要与中国贸易才能活下去但是中国地大物博不需要依靠西方贸易，因此为了惩罚蛮夷决定断绝与英国的贸易。双方的矛盾越来越深，最终导致了1840年的鸦片战争。总结封建集权制度的核心任务是维持内部的稳定，并以皇帝为中心来格式化社会上的一切，一切都是皇帝意志的体现。皇帝管制信息的行为最终伤害最大的就是皇帝本人，因为他完全被自己制造的预设立场封闭了。皇帝不喜欢外界变化的社会，不喜欢西方的新思潮，底下的官员自然不会向皇帝报告西方是如何先进…

Emacs折腾日记(三十六)——打造个人笔记系统
type: item
date: 2026-02-01T11:31:00+08:00
description: 在前面我介绍了如何使用 org mode 来实践 gtd 的理念。其实org mode 和其他工具的结合可以打造一个强大的个人笔记系统嵌入 plantuml作为程序员，对 uml 自然不会陌生，虽然时至今日可能有些显老，但是对我来说它仍然是我不可或缺的工具。而 plantuml 是一种将文本转化为图片的工具。我们可以在 plantuml 入门 找到对应的安装步骤。对于archlinux 来说，我需要首先保证java 安装sudo pacman -S jdk21-openjdk根据 plantuml 的官方介绍，只需要jdk8就可以运行，但是我比较喜欢安装最新的版本。plantuml 中某些图需要依赖 graphviz 来生成，所以这里需要再安装一个 graphvizsudo pacman -S graphviz完成了这些基础组件的安装，下面我们就可以下载 程序这个 jar 包放在哪里都可以，既然是Emacs配合，那么我打算将它放置到 ~/.emacs.d/lib 中作为功能的依赖库我们可以使用官网的测试用例来测试一下是否正常@startuml Alice -> Bob: test @enduml将上述文本保存为 test.txt。然后执行 plantuml.jar -jar test.txt。默认在当前目录中生成同名的png图片。如果显示正常，那么我们就可以进行Emacs的改造工作了根据 官方 的文档，针对Emacs，它提供了名为 plantuml-mode 的扩展插件。我们可以通过以下简单的配置来进行org和plantuml 的联动(use-package plantuml-mode :ensure t :mode ("\\.puml\\'" "\\.plantuml\\'") :config (setq plantuml-default-exec-mode 'jar) (setq plantuml-jar-path (expand-file-name "~/.emacs.d/lib/plantuml.jar")) ;; 设置plantuml jar包的位置 ;; 让org代码块能识别plantuml语法 (add-to-list 'org-src-lang-modes '("plantuml" . "plantuml")) (org-babel-do-load-languages 'org-babel-load-languages '((plantuml . t))) (setq org-plantuml-jar-path plantuml-jar-path) )我们还是可以用官方给的示例来看看具体的效果#+begin_src plantuml :file demo.png @startuml Alice -> Bob: test @enduml #+end_src这里必须通过 :file 来指定生成图片的链接这里可以为 plantuml 做一个代码片段以便快速进行进入画图的流程。具体细节就不再深入介绍了。各位读者有兴趣可以自行探索。另外关于画图的一些其他技巧和配置，可以参考 面向产品经理的Emacs教程：15. 在Org mode里用纯文本画图构建笔记系统我个人习惯使用双链笔记，简单来说它就像wiki一样随意插入链接，各种知识结构是一个网状的。传统的笔记是树状结构（这里主要是指马克飞象那样的笔记软件对笔记的组织形式），某一条笔记输入某个单元，而这个单元又属于某个父级单元中，就像一本书一样。但我们在学习的过程中，很难在一开始就把知识整理成体系，而是先零散学习，之后随着知识面的增加逐渐形成体系。另外有些跨学科的知识可能会在多个地方被提及到，就像芒格说的跨学科思维。我们无法将某条知识仅仅归于一个大类里面。而当前双链笔记它是没有层级的，它是一个网络结构，任何知识都可以随意引用其他知识。更符合我们的认知习惯，学到新知识了先记下来，未来知识成体系了可以通过链接随意将它放置到任何体系下。在Emacs中可以使用 org-roam 插件来实现(use-package org-roam :ensure t :after org :init (setq org-oram-v2-ack t) :config (org-roam-setup) :custom (org-roam-directory "~/org/roam/") :bind (("C-c n f" . org-roam-node-find) (:map (("C-c n i" . org-roam-node-insert) ("C-c n o" . org-id-get-create) ("C-c n t" . org-roam-tag-add) ("C-c n a" . org-…

lazygit 规范提交记录
type: item
date: 2026-01-29T17:51:00+08:00
description: 背景随着项目的进程，我们经常面临一个问题：发现之前的代码有bug，但是我不知道当初为什么这么写，如果改了会影响哪些？会不会把原来改好的bug又改出来了。我们可以通过 git 的提交记录来查看当初为什么改的。但是 git 提交记录的增长，一个文件提交记录可能有成千上万，要是从头到尾找一遍不知道要找到什么时候。更糟糕的是，好不容易找到了结果提交记录就一条 update at 2026/01/29。这种情况着实令人抓狂。要防止这种情况，我们可以从两个方面着手：要求整个团队规范git 的提交记录在IDE中能快速找到每行代码对应的提交记录规范提交记录git 原版的提交信息模板提交记录我们可以采取国际通用的 Conventional Commits (约定式提交)。它的格式如下:<类型>(影响范围): 一句话总结 <空行> [正文：详细解释为什么这么做，解决了什么痛点] <空行> [脚注：关联的任务单号 ID]正文部分我希望用 Why、How 这两个关键词，也就是为什么要改，如何改。git本身支持自定义 commit 信息的格式，我们可以将一个模板添加到 ~/.gitmessage。然后通过命令git config --global commit.template ~/.gitmessage来指定使用定义的模板，这里我定义的模板如下:<type>(scope): <subject> # --- 为什么修改 (Why) --- # 描述导致问题的现象，或为什么要增加这个功能 # --- 解决方案 (How) --- # 简述核心算法或处理逻辑 # --- 关联单号 --- # Fixes: #这里的 <type> 可以是修改的类型，这个部分是必须的，我一般喜欢定义这么几种类型bugfix (修改bug)feature (添加新功能)doc (更新文档或者注释)forspell (拼写修改)scope 代表的是影响范围，可以根据项目情况灵活的定义，例如在一个前后端分离的项目中，可以定义范围为UI、数据传输、权限等等模块最后的 subject 就是一句话总结，例如"修改普通用户可以访问其他用户隐私文件的bug"后面我可以通过 git commit 来触发模板，后续通过git 默认的编辑器(一般是vi 或者 nano)。lazygit 的配置lazygit 本身也支持自定义配置，它主要通过 config.yml 文件配置，默认的配置文件位置如下:Windows: %LOCALAPPDATA%\lazygit\config.ymlMacOs: ~/Library/Application Support/lazygit/config.ymlLinux: ~/.config/lazygit/config.yml我们可以通过一个命令快捷键触发一个规范化提交的功能。用户自定义命令的模板可以在这里找到。它以 customCommands 作为根节点。后面接 key，command 和 prompts。各个部分的含义如下:key: 用来触发命令的快捷键command: 真实触发的命令prompts: 触发时的行为prompts 是另一个根节点，用于定义详细的行为。它的子元素如下:type: 输入项的类型，有 menu 表示下拉列表框；input代表输入框；menuFromCommand根据用户提供的外部shell命令来生成一个下拉列表框title: 输入框的标题，提示我们这个框用来输入什么信息key: 在command中，需要填入一些数据，我们暂时利用占位符来表示，key代表的是某个具体占位符，需要与占位符对应如果我们的类型是 menu 的话，还需要利用 options 标签来表示具体的选项。最终我的配置如下:customCommands: - key: 'X' command: "git commit -m '{{.Form.Type}}{{.Form.Scope}}: {{.Form.Subject}}' -m 'Why: {{.Form.Why}}' -m 'How: {{.Form.How}}' -m '用例文档或者jira单: {{.Form.TestCase}}'" context: 'files' description: '规范化提交 (Gitmoji + Scope)' prompts: - type: 'menu' title: '选择提交类型 (Type)' key: 'Type' options: - name: '✨ feat (新功能)' value: '✨' - name: '🐛 fix (修复Bug)' value: '🐛' - name: '🚀 更新流水线或者部署脚本' value: '🚀' - name: '📝 docs (…

Emacs 折腾日记(三十五)——归档
type: item
date: 2026-01-25T19:02:14+08:00
description: 在前几篇文章中，我们经历了 GTD 流程中的收集想法、制定计划、以及执行和记录计划的过程，现在我们继续后续的流程，也就是最后的回顾和归档。当日回顾在我个人实践 GTD 的流程中，前一晚会做这些事情：回顾一下今天完成哪些内容哪些内容未完成的原因是什么？时间利用的效率不够？有其他优先级更高的任务占用了时间？任务划分的颗粒度不够细？今天时间利用的效率如何明天计划要做哪些事针对颗粒度的不够细的问题，我们可以考虑一下将事情分解成几个子任务，子任务又可以再分子任务。也就是加几个子列表的时期。如何查看时间的利用效率呢？我们可以统计各个任务的耗时。如果我们严格按照org-pomodoro 插件的方式来记录时间消耗的话，后续在一天结束时可以利用emacs中的报表功能来统计时间的消耗情况在org-agenda 视图的 Agenda 中，有一个名为 org-agenda-clockreport-mode 的命令可以展示当天的耗时情况。但是默认显示的内容比较简单，我们需要对其进行简单的改造，这里主要通过变量 org-agenda-clockreport-parameter-plist 来完成，我设置的相关代码如下: (org-agenda-clockreport-parameter-plist '(:link t ; 让任务名称可点击，快速跳转到原文 :maxlevel 5 ; 显示到第5级任务（数字可调，越大显示越深） :fileskip0 t ; 跳过耗时0的文件，让报告更简洁 :compact nil ; 设为 nil 以显示完整树状结构，而非紧凑模式 :narrow 80))之后我们可以在 Agenda 视图中按下R 或者直接调用 org-agenda-clockreport-mode 来显示任务耗时。这里因为我测试机器上数据不够，暂时无法显示出好的效果，就不给出图片了。各位读者可以自行实验。归档针对已完成的任务我们需要对它进行归档，将它们从事先定义的位置移动到另一个位置进行保存。每月或者每季度可以根据归档内容做一个总结。首先我们需要定义将归档的内容放到哪个文件中，可以通过 org-archive-location 来实现。(org-archive-location "~/org/archive/%s_archive::")上述代码可以将条目归档到原文件同级目录下以日期命名的归档文件中。我只需要在对应任务条目下执行 org-archive-subtree。但是针对我个人的需求来说，它有两个问题它会无条件的将我光标所在的任务和它的子任务进行归档，不管它是否有未完成的子任务或者它本身是否完成它需要在对应的org 文件中进行，对于任务分散到多个org文件中的场景无法一次性完成归档任务对应多个任务分散在多个文件的情况，我们可以使用 org-agenda 中的搜索功能找到所有的状态为DONE的任务。但是它会显示一些子任务，如果不仔细区分很有可能在主任务未完成的情况下将主任务进行了归档。目前我没有找到合适的方法来过滤这种情况。所以只能根据实际情况来辨别了。在操作上，我们可以通过在 org-agenda 命令面板上输入s 来搜索所有状态为 DONE的任务。然后在显示的任务中寻找需要归档的任务，最后将光标放置到具体任务上按下 $ 即可完成归档操作总结在本篇其实我想做的事情还是有的，但是能力有限现在没有找到有效的办法，我认为在归档方面需要做的改进主要有两个：提供简单的方法可以一键显示需要归档的任务，这个视图只显示主任务，其下的子任务不应该显示回顾当日任务时应该只显示任务名称，我不太关心它来自于哪个文件的哪个分支下哪位读者有相应的解决方案可以给我留言，或者在评论区给出。或者有更好的思路也可以留言评论。最后感谢各位读者的阅读。

读《世界末日前的谋杀》
type: item
date: 2026-01-25T11:15:12+08:00
description: 故事发生的背景是陨石即将撞击地球日本的地带，大量的人类因为死亡到来而绝望，要么出逃要么崩溃自杀，整个社会完全瘫痪。居民区停水停电，没有信号，缺水少粮，富人寄希望与在撞击的远端建立避难所或者逃到外太空，穷人选择偷渡或者留在原地等死，扛不住即将死亡这种恐惧的提前自杀。书中的主角小春，母亲抛下他们自己逃亡，父亲扛不住压力选择了上吊自杀，她与弟弟相依为命。靠着父亲开小卖部攒下的零食勉强度日。小春有一个愿望就是在最后开车前往心意的地方，因此她选择了去驾校学车。在机缘巧合下遇到了同样没有逃走还在驾校坚守的砂川老师。就这样两位女性开始了这段故事。在一天早上准备练习开高速的时候，小春发现教练车的后备箱中被塞入了一具女性尸体。而在他们向警察局报案之后得知最近有另外两起杀人案件，就此砂川老师决定追随心中的正义，开始调查这几件杀人案。随着调查的深入，他们结识了晓人和小光两兄弟。随着调查的深入真相也渐渐浮出水面.....我个人认为，写推理小说的读书笔记其实不适合将故事描述太详细，读推理小说最爽的就是扑朔迷离的案情在侦探的调查下渐渐清晰明朗直到最后案件告破的过程。一旦在读书笔记里面介绍的太细致了，后续未看过小说的读者在阅读过程中的阅读体验将大打折扣。所以这里我就不详细展开了。这本书看简介应该是作者第一次尝试写的推理小说，比起老练的写手来说，本书的案件缺少扑朔迷离的铺垫，而书中给出的线索又太明显，对于一个经常阅读推理小说的读者来说，很容易猜到犯案的凶手是谁。在推理解密这块缺少了一些爽感。但是在通篇是男性作者，以男性视角展开的故事来说，女性作者，女性侦探的视角让人有一种眼前一亮的感觉。我认为书中女性视角下侦探的特点是温柔。她们总在考虑他人的感受，对情感的捕捉比较细腻。在本书中见识到了在末日来临下，普通人的挣扎，有扛不住压力自杀的，有像小光和晓仁兄弟那样在苦中作乐，关爱他人的，有利用他人弱点为自己牟利的，有关爱他人建立社区靠群众力量度过最后一段时光的，也有像砂川老师那样追随心中正义的，当然也有像凶手那样在最后深刻人性丧失，以杀人为乐的。作者探讨了在末日下人类得以建立起现代文明所依赖的道德和法制崩溃的情况下，迅速回到了原始社会弱肉强食的环境，普通人是如何挣扎生存的。以推理小说来看我觉得它不是我心中理想的推理小说，但是以末日故事来看，它是一部合格的末日小说。最后我要吐槽一下书的封面，封面像一本二流的网络小说，给我一种先入为主的感觉。

读《少年厌学》
type: item
date: 2026-01-17T16:42:56+08:00
description: 曾今我也是从学生过来的，见证过身边的人原来可能成绩不错但是在初中或者高中之后慢慢的跟不上节奏，慢慢的也就退学去了社会或者技校之类的。在毕业之后身边的小辈们也有厌学的，或者说不想上学的，我作为过来人也劝过。我曾今以为厌学的主要是因为吃不了学习的苦，特别高中时期。回忆起曾今的高中，我能记得就是上不完的课，写不完的作业，背不完的单词，记不完的公式。能回忆起来的美好瞬间就是跟朋友插科打诨，互相逗趣。这本书从另一个角度来看问题，这本书提到厌学不是学生个体的问题，而是家庭、学校、社会整个生态系统的问题。本书通过一些孩子的访谈揭露了他们厌学的客观原因。书中根据不同学生的访谈记录，列举了一些原因父母逼的紧父母认为人生需要提前抢跑，全力冲刺。从小学就开始规划，上重点小学，重点中学，再冲刺重点大学，特别是现在55分流的政策更加剧了这种心理和压力。在父母的高压下，孩子没有任何喘息的机会，孩子每天在学校、补习班之间转。并且还有大量的课后作业。父母盯得紧，一旦发现孩子想要休息或者中间出现停止学习的现象就会认为孩子在偷懒并且以好学校才有好未来作为说法不断的灌输给孩子，导致亲子关系出现问题。在这种情况下，厌学会表现出这样的过程：萌芽期：孩子作业拖拉，经常无法完成，成绩大幅下降。对抗期：不管有没有办休学手续，孩子已经完全不去学校了，放弃学习、沉迷手机、日夜颠倒、回避交流、拒绝外出。中、重度焦虑或抑郁的青少年还会出现自残行为和自杀倾向。妥协期：到了这个阶段，父母软硬兼施均告无果之后，被迫妥协修复期：终于要看见曙光了，修复期的父母会更从容，能够尊重孩子，也可以自如地表达自己的想法复学期：孩子有了复学的动向，通常是孩子自己主动提出的在孩子出现厌学时，作为父母要深刻的了解到孩子不是需要被解决的问题，是孩子遇到了无法解决的问题，也就是说，厌学只是表象，我们要问的不是“我该拿孩子怎么办”​，而是要绕到厌学背后去看一看“我的孩子到底怎么了”​。在发现孩子学不进去的时候父母们先把自己“稳”下来，不要唠叨，不要催促逼迫，不要一天到晚地问“你这样下去，你打算怎么办”​。请家长们“稳”下来，稳下来的父母才能让孩子感受到：休息是无罪的；调整是被允许的；我如此这般，天也是不会塌下来的。父母什么时候开始从改造孩子转变成反思自身，便是最为重要的转折点。父母的接纳会带来理解，而理解会带来改变。画重点，这里说的接纳，是发自内心地、全然地接纳孩子，而不是以推动孩子复学为目的的伪装手段。其实，孩子在等两个答案：1.现在的我，看起来一无是处，你们是不是无条件地爱我？2.你们能不能放权，让我成为自己学业和人生的主导者？当孩子能够确信父母的爱和信任，完全不担心父母对自己的失望和管控，他就会被注入新的力量，有了重新出发的动力。需要记住不管孩子状态恢复得有多好，要等，等孩子自己提。一旦父母主动提出复学的事情，那么孩子会敏锐的察觉出过去的体贴与照顾，过去的理解与关心都是装出来的，都是为了孩子能复学。这样会将问题再度退回到对抗期。作为父母，我们除了为孩子兜底，关键时刻还要托举孩子。家长们要不带评判地跟孩子复盘，引导他们不断地优化解决方案，从而帮助孩子提升迎战困难的能力。孩子不想成为父母的提线木偶，而是要感受到“我背后有人”​。现在的学业确实比较辛苦，孩子普遍都有补习班和各种兴趣班要上，在学习的过程中也应该要好好休息。关于学习的问题我想起《龙珠》种龟仙人对小悟空的教导：好好学习、好好锻炼、好好休息、好好玩耍。武道的目的不是为了向人炫耀也不是好勇斗狠，而是拥有一个健康的体魄，度过一个有意义的人生。套用到学习上，我想学习知识，上一个好的学校也是为了未来能过一个更轻松和更有意义的人生。家庭主妇在关爱孩子上过于精细良好的孩子一定来自于良好的家庭环境。有爱心的孩子一定是来自于有爱的家庭。有一些父母，特别是一些全职带娃的母亲，一辈子围着孩子转，不断的向孩子展示我做的一切都为了你，你要好好听我的话。他们会为孩子细致的安排着一切事物，小到今天穿什么出门，几点吃饭等等细节，孩子在他们手中就是提线木偶。完全没有自由可言。他们经常问的就是孩子大了之后怎么不乖了？怎么不听话了？怎么脾气那么大？怎么敢对家长大吼大叫了……其实没有那么多怎么了，就是因为孩子长大了，他们有了独立的思想、自主的意识，他们要“夺权”​。对于这类家长，要明白的一点是如果父母的教养方式特别顺应孩子的成长，他们没有必要叛逆。指望孩子有自驱力，那就请从主驾位置上撤下来，先坐在副驾上，帮孩子看看路况，再换到后排，偶尔提醒，待到他们成年，得体地下车，目送孩子稳稳地行驶在自己人生的大道上。家庭中父母情绪不稳定家庭中父母情绪不稳定，孩子在家战战兢兢，不知道下一步什么行为惹得爸妈不高兴。每一步都小心翼翼，整个家庭环境都很压抑，大家都顺着一个人。孩子来说，父母可以没有高学历，没有高…

Emacs 折腾日记(三十四)—— org todo
type: item
date: 2026-01-11T19:12:00+08:00
description: 在上一篇文章中，我们简单介绍了 gtd 的一些理念，并且也通过org capture 完成了 gtd 中收集的操作。gtd分为收集任务、整理、执行、回顾。本篇我想通过org todo 来聚焦整理和执行这两个步骤整理上一篇文章中，我们通过org capture 收集到了一些任务，针对这些任务我们还需要给每个任务安排优先级并且根据优先级来确定开始执行的时间。显示待办事项我们在前面的模板中，待办任务前面都是以 TODO 开头，这里的TODO就是org 中待办事项的一个标识。我们可以通过 org-agenda 来查看相关的任务。打开该页面之后，它列举出了所有的支持的一些快捷键。例如使用 t 显示所有的待办事项，使用 m 来根据 PROP、TODO、TAGS 来查找任务。但是第一次使用时会发现自己兴冲冲的咔咔一顿添加任务，结果到头来通过 org-ageda 的 t 来列举之前添加的待办任务毛都没看到，顿时好奇兴奋的心情一下跌倒谷底。别着急这是因为我们没有告诉 org-agenda 该去哪里找这些待办事项。我们可以通过 org-agenda-files 来告诉org-agenda 这个信息就像名称显示的那样 org-agenda-files 是一个列表成员，我们指定它去这些文件中查找待办事项； (use-package org-agenda :ensure nil :custom (org-agenda-files (list "~/org/reading.org" "~/org/blog.org" "~/org/working.org")))这里我设置了三个 org 文档，这三个文档分别记录待读书目、需要完成的博客以及工作任务。需要注意的是我们需要这几个文件真实存在否则就会报错。设置好了这个变量之后效果如下:设定优先级列举出所有任务之后，针对每个任务我们可以考虑如何安排这些任务，首先需要的就是考虑给它从那四个维度安排一个优先级。上面说到我们可以使用A、B、C、D 做一个标识，这里我规定优先级的顺序是:A > B > C > D为了达到这个需求，首先我们要解决的是优先级的定义问题，因为Emacs默认只支持A/B/C这三种优先级，我需要它能支持4种。Emacs种有两个变量分别控制优先级最大值和优先级最小值，它们是 org-highest-priority 和 org-lowest-priority。另外还有一个变量可以设置默认的优先级 org-default-priority。理论上它可以设置优先级从A到Z，但是过多的优先级并不适合。我们可以在上面的 :custom 下使用下列的语句进行设置 (org-highest-priority ?A) (org-lowest-priority ?D) (org-default-priority ?D)设置完成之后可以使用 S-UP (Shift + 上箭头)或者 S-Down(Shift+下箭头)来调整优先级设置计划执行时间和结束时间安排好了优先级，我们就需要为每个任务安排时间了，这里可以安排计划开始时间和结束时间。开始时间和结束时间在 org agenda 中分别是命令 org-agenda-schedule 和 org-agenda-deadline。它们被绑定到了快捷键 C-c C-s 和 C-c C-d上面。当我们通过快捷键或者 M-x 调用这两个命令的时候，Emacs会弹出日历菜单供我们选择日期，默认提供了三个月的日期可供选择。如果不够的化，日历下方两个各有一个箭头可以向上或者向下再显示一个月。另外可以在下方 mini-buffer 处输入 +1d 这样的字符表示在当前时间的1天以后，根据这个规律我们可以输入 + 后面跟任意的数字，然后后面加 d/w/m/y 来表示天、周、月、年。设置任务属性和标签有些任务，特别是工作中的任务我们自己可能无法单独完成，例如某个bug需要前端或者后端一起完成又或者这个bug不光前端要改后端也需要改，这个时候我们修改完了自己的部分，这个时候可以显示我们将任务派发给了其他同事。又或者这个bug牵扯到其他bug，又或者有时候需要开会或者整理需求文档，这个时候我们需要记录该任务的场地例如对于会议可以记录一下在 D-01 会议室。这些可以通过设置属性和标签来描述这些信息。我个人认为它们二者在记录任务的额外信息时没有什么大的区别。主要区别在显示方面，标签一般于TODO 信息展示在一行，而属性默认是被折叠起来的，所以对于一些简要的信息，例如任务目前是谁在处理、开会的地点这类信息我习惯放置到标签上、而属性放置一些不那么重要的信息。对于标签，我们可以在设置任务时，在任务后面使用 :TAG1:TAG2: 这种方式添加多个标签。在前面介绍 org-capture 的文章中我给出了…

读《豺狼的日子》
type: item
date: 2026-01-02T22:57:11+08:00
description: 故事发生在二战之后的法国，因为戴高乐撤出阿尔及利亚导致部分军官的利益受损，他们组成了秘密军组织，该组织希望通过暗杀戴高乐来达到政变的效果。但是因为错误的计算了日落时间导致对面的杀手没有第一时间看清行动的手势，错了这么几秒钟，原本应该正面短时间内向载着戴高乐的车进行射击变成了从车子屁股后面进行射击，子弹刚好从戴高乐身边飞过。在这次刺杀失败之后参与这场刺杀的秘密军高层被逮捕，同时法国安全局在秘密军组织中派遣大量卧底，导致后续几次暗杀计划失败。此时新的高层罗丹上校决定聘请外国的职业杀手进行，并且计划只在三个高层中被知晓。经过大量的筛选，一个亚麻色头发的英国人进入他们的筛选范围并且最终他们同意聘请这个杀手进行计划。在与杀手交谈中，杀手索要50万美金，并且他们需要预付25万的定金。并且需要保证几个高层不被法国方面逮捕。这件事就这么敲定了并且杀手的代号暂时定为“豺狼”。后续豺狼进行了计划，首先他阅读了大量关于戴高乐的书籍、新闻等资料，确定了戴高乐的个性。认为以他的个性一定会在独立日那天在公众前露面，那个时间就是最佳的暗杀时间。后面他先后制作了一个方便携带和伪装的枪支。伪造了几张护照，分别是一个在2岁就死去的英国人杜根、一个奥地利的牧师、一个美国学生、还制作了一个法国人的身份证件。还单独去了趟法国，以旅游的名义实地考察暗杀的地点。有了这些一手的资料，他脑海中已经有了完整的刺杀以及刺杀后脱身的计划。在回国前他将藏有枪支的行李箱用杜根的名义寄存在法国的行李寄存处。秘密军组织为了配合豺狼的行动，在法国一个高官身边利用美人计安插了一个卧底方便后续获取戴高乐的行程计划。根据豺狼的建议，秘密军组织命令手下大量抢劫法国境内的银行。法国方面他们发现最近秘密军组织大量抢劫银行、并且三个高层的人物一反常态的躲到罗马一间酒店。他们包下酒店的两层，最高层住着三个领袖，下面一层都是保镖，因为政治关系法国方面无法大张旗鼓的去罗马抓人，而安保的严格程度也不存在秘密抓捕的可能。法国方面似乎陷入僵局。法国政府后面发现秘密军组织高层与外界进行通信的方式是由一名叫做科瓦尔斯基的保镖进行，科瓦尔斯基也是当初驻阿尔吉尼亚的一名军官，他誓死追随罗丹上校。但是他唯一的软肋是他的女儿，他的女儿由他的好友代为抚养。法国安全局利用他的好友欺骗他，说他的女儿得了白血病。此时科瓦尔斯基心中涌起强烈的欲望希望去见女儿一面，本以为这次只是利用休息的几个小时加上请个短假，也就花48个小时去见一面不耽误后续工作，完全没想到是法国方面的圈套。终于在连续的审问中，从科瓦尔斯基口中听到豺狼的名字，联系最近大量的抢劫银行，法国方面推测出秘密军组织聘请外国刺客豺狼准备搞新一轮的暗杀，因为这个刺客要价不菲所以需要通过抢劫银行筹钱。有了这些信息，法国的高官们也劝戴高乐停止后续的活动，等抓到刺客之后再进行公开的活动。但是与豺狼猜测一样，戴高乐高傲的性格并不是那种会因为不明刺客的暗杀而惶恐不安的人，另外戴高乐认为如果因为卑鄙的刺杀行为就躲躲藏藏有损法国的形象。就此戴高乐命名法国相关部门秘密调查豺狼，并且不允许告知下属，也不许见诸媒体。法国高层经过开会决定由探长勒贝尔带队秘密搜查豺狼的下落，至此双方的较量正式开始勒贝尔首先求助于其他七国的警察组织帮忙寻找杀手的信息。勒贝尔在于其他国家请求帮助时并没有说明事件的原委并且是以个人名义进行的非正式请求。但是以各个国家的政治嗅觉也很容易猜到是法国总统的安全受到威胁。同时英国人觉得如果刺客是英国人到时候真出了事，外交上会闹的很难看，所以英国首相授权英国全力配合法国。几乎从整个英国寻找符合条件的人几乎是大海捞针，但是事件的转机往往是那么的戏剧性。民间流传两年前多米尼加的总统遇刺身亡，杀手在及刁钻的角度打爆了整个车上唯一小一块非防弹玻璃。从这个点出发，他们找到了两年前前往多米尼加的所有人，在根据日期、年龄、是否熟悉枪支的条件下排除了大部分人，唯一留下了一名叫做查尔斯卡尔斯洛普，他是一个军火公司的推销员，他熟悉枪支，并且在多米尼加总统遇刺时正好在多米尼加境内，同时英国人认为他姓和名的前几个字母凑起来正好是 Jackel 豺狼。根据这个线索他们找到了查尔斯的住所，根据邻居所说查尔斯准备去钓鱼，并且已经出发了，要好久才会回来。英国人在检查查尔斯入住的公寓时发现他的护照正好在家里，这也就证明，豺狼出国用的是假护照。据此英国军情六处开始倒查三个月之前用已死亡公民的信息申请护照并且最近几个月有出国经历的人。经过一个晚上的筛查，查到了豺狼的第一个假身份——杜根。豺狼刚好利用这个身份从意大利租了一辆车，并且特意绕远路从陆上进入法国境内，因为法国之前根据英国的情报通知全境搜查高个子亚麻色头发一个名叫查尔斯卡尔斯洛普的英国人。豺狼在入境时明锐的发现法国边境对亚麻色头发的外国人进行了格外严格的检查。在顺利入境…

2025回顾与2026年展望
type: item
date: 2026-01-02T12:04:22+08:00
description: 时间过的飞快，转眼间2025年已经过完了，进入了2026年。前几年经济状态一般，有出现工资拖延的，有失业的，大家的日子似乎都不好过。不管怎样还是祝愿各位读者有一个不留遗憾的2025和精彩的2026。2025年回顾我想还是按照惯例从生活、工作、学习的情况来回顾一下。生活今年与去年的一个不同是，下半年我将孩子送回老家去上老家的幼儿园了。这边的幼儿园入学需要年满3岁，我的孩子是2022年9月生的，今年不能入学，所以让她回老家先上学适应适应。送孩子回老家也是一个无奈之举，我跟老婆都需要上班，家里的老人都不愿意长时间待这边带孩子。家里的老人还是喜欢老家那种走家串巷的关系，每天都有人闲聊，在这边人生地不熟每天关屋里，大人孩子都难受，而且老家的人际关系和北京的不太一样，北京这边好像大多数人都把自己和家人关在家里，小区每天看不到多少人，社区儿童区虽然有孩子，但是大多数都没见过，孩子跟其他小孩也玩不开，在老家孩子可能玩伴多点。老婆比较心疼孩子不想以后孩子变成留守儿童，跟我说了一下她想不上班专心在家带孩子，但是作为程序员我也快接近35岁大关了，虽然目前工作还算安稳，但是项目具体还能撑多久谁能知道呢。失业了短时间内可能不太好找同等价位的工作，有一个人上班分担经济压力我回轻松很多。而且我个人认为经济基础决定上层价值，陪伴是建立在经济基础之上的。老家是开小卖部的，我们在老家的小卖部和门口一块孩子经常玩的地方也安装了监控，就是想从监控里面多看看孩子。看着她比在北京这边要开朗的多，她最近也学会了走街串巷，她会邀请她的好朋友来家玩或者去朋友家里玩。这点我觉得比北京好，孩子玩的舒服。我经常问她想不想爸妈，想不想来北京。对于前者她会给肯定的回答，但是就是不想来北京，她说来北京天天在家看电视很无聊。孩子不在身边有时候会感觉空虚，在家无所事事。特别是周末有时候老婆上班去了，我一个人好像特别无聊，虽然一个人是学习一点新东西的好时期，但是有时候就是提不起精神。我躺沙发上刷手机或者看监控，看看孩子在干嘛。虽然也会写博客，尝试着折腾一下Emacs，一旦遇到问题，特别是有些配置报错与预期不符合的时候心里总有一个声音告诉我，上班就够累了，假期就不要看了，而且以后出去面试也没人问Emacs的内容，想到这里有时候就放弃了。但是最后回过头来发现好几个星期都没一点进展，心里又觉得自己虚度光阴。过去这种虚度光阴的罪恶感仅仅是感叹大好年华被虚度，现在有了孩子之后，就觉得有点对不起孩子，孩子还等着我功成名就，陪伴在她身边(虽然她没对我说过，但是我觉得这是我的责任)，我却不求进取，得过且过。虽然现在的社会并不是努力了就有经济报酬而且工资水平不一定跟技术水平挂钩，但是多学点技术总归心里踏实点。工作方面工作方面，今年公司发生了重组，并且拉到了一笔大额的投资，我想这笔钱至少能撑5年。也就我的工资待遇至少能维持5年不变，另外公司给了一部分股票期权，虽然没有上市，但是承诺2年后可以兑现，这也算是一笔额外的收入。工作上我个人承担的任务比起去年要更大了，2025年还是完成了一些比较大的工程量，我个人认为主要的就是：实现了一套可以跨平台的解决方案，并且我将原来的C++17标准的代码改写成了支持 C+11 标准，以便在一些比较老的系统上运行。这也是没有办法的事情，Ubuntu 18.04 已经快被淘汰了，还有些部门使用Ubuntu 16，为了它们上边gcc 只支持C++11/14的情况，我们的代码必须做降级。在这个过程中，我发现自己在C++ 模板方面的知识几乎等于0，也就只会用标准库。这次降级的过程中主要是需要实现C++17以后才会出现的特性例如 optional、variant等等，我发现自己即使找到了一些实现的代码自己完全看不懂，后面慢慢了解了类型推导、萃取、特化和偏特化、SFINAE等等概念。我想今年的要恶补模板元编程相关的内容了。学习方面，从今年开始逐步更新Emacs相关的博客了，我对于Emacs的理解是不如vim的，老实说我在更新的过程中有想过烂尾，但是我内心有一个想法，我不能再重复前几年的状态了，什么都学，但是什么都不愿意深入的学，我想找回自己刚开始那种对技术的好奇和那颗钻研的心。曾今学习汇编语言那个时候通宵调试代码，研究Windows编程时那种专注，对比现在，我好像已经丢失了对技术的敬畏之心，失去了对计算机世界那种纯粹的好奇。我希望自己能慢慢捡起那颗对技术好奇、对技术有敬畏的心。理财方面关系理财方面，今年我看了很多投资理财相关的书籍，总算形成了自己一套投资交易的方案。从历史上看我这套交易模型平均年化收益在10%左右，我想通过未来几年来验证它是否真的有效。今年的收益为 16%2025年的目标实现情况生活目标生活上去年许下的出去旅游的计划已经实现了，今年主要是国内游，在北京周边几个城市跑了一圈。原来计…