首页
归档
友情链接
关于
Search
1
在wsl2中安装archlinux
172 阅读
2
nvim番外之将配置的插件管理器更新为lazy
115 阅读
3
从零开始配置 vim(15)——状态栏配置
87 阅读
4
2018总结与2019规划
80 阅读
5
PDF标准详解(五)——图形状态
61 阅读
软件与环境配置
读书笔记
编程
Thinking
FIRE
菜谱
翻译
登录
Search
标签搜索
c++
c
学习笔记
windows
文本操作术
编辑器
NeoVim
Vim
win32
emacs
VimScript
linux
elisp
读书笔记
文本编辑器
Java
反汇编
OLEDB
数据库编程
数据结构
Masimaro
累计撰写
345
篇文章
累计收到
32
条评论
首页
栏目
软件与环境配置
读书笔记
编程
Thinking
FIRE
菜谱
翻译
页面
归档
友情链接
关于
搜索到
345
篇与
的结果
2026-02-01
Emacs折腾日记(三十六)——打造个人笔记系统
在前面我介绍了如何使用 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-roam-alias-add) ("C-c n l" . org-roam-buffer-toggle)))))在 org-roam 中,一个文件就是一个note,我们可以通过 org-roam-node-find 来打开或者新建一个节点。新建的文件会被保存到我们定义的 org-roam-directory 目录中。在我们编写笔记的时候如果需要关联另一个笔记,可以通过 org-roam-node-insert 在随意位置插入对另一个文件的引用。当我们对知识有了一定的理解之后可以通过 org-roam-tag-add 来添加一些标签方便我们日后查找。另外有些时候我们组织某个知识点时,它下面有一些小的知识点,我将它们作为当前文件中的一个子标题,日后如果希望能链接到这个子标题,我们可以在子标题上使用 org-id-get-create 来创建。请记住在 org-roam中无法直接链接标题和子标题,它实际链接的是一个id,我们在创建新的知识点时使用 org-roam-node-find 本身就完成了创建id的过程。另外我们可以通过 org-roam-ui 来将笔记的节点进行可视化(use-package org-roam-ui :vc (:url "https://github.com/org-roam/org-roam-ui" :rev :newest) :after org-roam :config (setq org-roam-ui-sync-theme t org-roam-ui-follow t org-roam-ui-update-on-save t org-roam-ui-open-on-start t))在Emacs 29及以上版本内置了通过github下载的功能,mepla 本身没有提供org-roam-ui 包,所以这里我使用内置的从GitHub下载的功能。在安装好之后可以通过 org-roam-mode 来开启笔记节点的可视化。它会创建一个web服务并打开浏览器访问 http://127.0.0.1:35901/具体的细节可以查看它的官方文档org-roam-ui因为我的笔记暂时都记录在 obsidian 中,还没有迁移过来,暂时不贴我的截图了。总结到此为止对我来说Emacs已经可以成为日常使用的代码编辑器、笔记管理、日程管理软件了。所以我的折腾就暂时告一段落了。但是这并不意味着这个系列的完结。后续如果当前的配置有问题或者我看到好的点子,又或者自己有什么想法实践之后觉得不错的也会更新到这个系列中。但是这个系列不会像现在这样大规模的更新了。我个人对Emacs的了解并不深入,当前的配置也仅仅是一个可用的状态。但是在编写此系列中仍然受到许多读者的喜爱,在这里感谢各位读者的支持与鼓励。在前面我的博客出现错误或者我有疑惑时也有比我强的读者给出意见,指出我的问题,在这里对他们进行感谢。终于从对Emacs的一知半解到拥有了自己的一套配置,虽然不完美甚至显得幼稚,但是在这个折腾的过程中我收获许多,下一阶段我想实践一下 懒猫说的认真读一读 Elisp reference manual 加深自己的理解。最后列举一下我在这个系列中参考的一些教程专业Emacs入门面向产品经理的Emacs教程21天学会Emacs还有其他一些我引用了但是忘记了具体链接的博客或者教程。
2026年02月01日
3 阅读
0 评论
0 点赞
2026-01-25
Emacs 折腾日记(三十五)——归档
在前几篇文章中,我们经历了 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的任务。然后在显示的任务中寻找需要归档的任务,最后将光标放置到具体任务上按下 $ 即可完成归档操作总结在本篇其实我想做的事情还是有的,但是能力有限现在没有找到有效的办法,我认为在归档方面需要做的改进主要有两个:提供简单的方法可以一键显示需要归档的任务,这个视图只显示主任务,其下的子任务不应该显示回顾当日任务时应该只显示任务名称,我不太关心它来自于哪个文件的哪个分支下哪位读者有相应的解决方案可以给我留言,或者在评论区给出。或者有更好的思路也可以留言评论。最后感谢各位读者的阅读。
2026年01月25日
3 阅读
0 评论
0 点赞
2026-01-25
读《世界末日前的谋杀》
故事发生的背景是陨石即将撞击地球日本的地带,大量的人类因为死亡到来而绝望,要么出逃要么崩溃自杀,整个社会完全瘫痪。居民区停水停电,没有信号,缺水少粮,富人寄希望与在撞击的远端建立避难所或者逃到外太空,穷人选择偷渡或者留在原地等死,扛不住即将死亡这种恐惧的提前自杀。书中的主角小春,母亲抛下他们自己逃亡,父亲扛不住压力选择了上吊自杀,她与弟弟相依为命。靠着父亲开小卖部攒下的零食勉强度日。小春有一个愿望就是在最后开车前往心意的地方,因此她选择了去驾校学车。在机缘巧合下遇到了同样没有逃走还在驾校坚守的砂川老师。就这样两位女性开始了这段故事。在一天早上准备练习开高速的时候,小春发现教练车的后备箱中被塞入了一具女性尸体。而在他们向警察局报案之后得知最近有另外两起杀人案件,就此砂川老师决定追随心中的正义,开始调查这几件杀人案。随着调查的深入,他们结识了晓人和小光两兄弟。随着调查的深入真相也渐渐浮出水面.....我个人认为,写推理小说的读书笔记其实不适合将故事描述太详细,读推理小说最爽的就是扑朔迷离的案情在侦探的调查下渐渐清晰明朗直到最后案件告破的过程。一旦在读书笔记里面介绍的太细致了,后续未看过小说的读者在阅读过程中的阅读体验将大打折扣。所以这里我就不详细展开了。这本书看简介应该是作者第一次尝试写的推理小说,比起老练的写手来说,本书的案件缺少扑朔迷离的铺垫,而书中给出的线索又太明显,对于一个经常阅读推理小说的读者来说,很容易猜到犯案的凶手是谁。在推理解密这块缺少了一些爽感。但是在通篇是男性作者,以男性视角展开的故事来说,女性作者,女性侦探的视角让人有一种眼前一亮的感觉。我认为书中女性视角下侦探的特点是温柔。她们总在考虑他人的感受,对情感的捕捉比较细腻。在本书中见识到了在末日来临下,普通人的挣扎,有扛不住压力自杀的,有像小光和晓仁兄弟那样在苦中作乐,关爱他人的,有利用他人弱点为自己牟利的,有关爱他人建立社区靠群众力量度过最后一段时光的,也有像砂川老师那样追随心中正义的,当然也有像凶手那样在最后深刻人性丧失,以杀人为乐的。作者探讨了在末日下人类得以建立起现代文明所依赖的道德和法制崩溃的情况下,迅速回到了原始社会弱肉强食的环境,普通人是如何挣扎生存的。以推理小说来看我觉得它不是我心中理想的推理小说,但是以末日故事来看,它是一部合格的末日小说。最后我要吐槽一下书的封面,封面像一本二流的网络小说,给我一种先入为主的感觉。
2026年01月25日
2 阅读
0 评论
0 点赞
2026-01-17
读《少年厌学》
曾今我也是从学生过来的,见证过身边的人原来可能成绩不错但是在初中或者高中之后慢慢的跟不上节奏,慢慢的也就退学去了社会或者技校之类的。在毕业之后身边的小辈们也有厌学的,或者说不想上学的,我作为过来人也劝过。我曾今以为厌学的主要是因为吃不了学习的苦,特别高中时期。回忆起曾今的高中,我能记得就是上不完的课,写不完的作业,背不完的单词,记不完的公式。能回忆起来的美好瞬间就是跟朋友插科打诨,互相逗趣。这本书从另一个角度来看问题,这本书提到厌学不是学生个体的问题,而是家庭、学校、社会整个生态系统的问题。本书通过一些孩子的访谈揭露了他们厌学的客观原因。书中根据不同学生的访谈记录,列举了一些原因父母逼的紧父母认为人生需要提前抢跑,全力冲刺。从小学就开始规划,上重点小学,重点中学,再冲刺重点大学,特别是现在55分流的政策更加剧了这种心理和压力。在父母的高压下,孩子没有任何喘息的机会,孩子每天在学校、补习班之间转。并且还有大量的课后作业。父母盯得紧,一旦发现孩子想要休息或者中间出现停止学习的现象就会认为孩子在偷懒并且以好学校才有好未来作为说法不断的灌输给孩子,导致亲子关系出现问题。在这种情况下,厌学会表现出这样的过程:萌芽期:孩子作业拖拉,经常无法完成,成绩大幅下降。对抗期:不管有没有办休学手续,孩子已经完全不去学校了,放弃学习、沉迷手机、日夜颠倒、回避交流、拒绝外出。中、重度焦虑或抑郁的青少年还会出现自残行为和自杀倾向。妥协期:到了这个阶段,父母软硬兼施均告无果之后,被迫妥协修复期:终于要看见曙光了,修复期的父母会更从容,能够尊重孩子,也可以自如地表达自己的想法复学期:孩子有了复学的动向,通常是孩子自己主动提出的在孩子出现厌学时,作为父母要深刻的了解到孩子不是需要被解决的问题,是孩子遇到了无法解决的问题,也就是说,厌学只是表象,我们要问的不是“我该拿孩子怎么办”,而是要绕到厌学背后去看一看“我的孩子到底怎么了”。在发现孩子学不进去的时候父母们先把自己“稳”下来,不要唠叨,不要催促逼迫,不要一天到晚地问“你这样下去,你打算怎么办”。请家长们“稳”下来,稳下来的父母才能让孩子感受到:休息是无罪的;调整是被允许的;我如此这般,天也是不会塌下来的。父母什么时候开始从改造孩子转变成反思自身,便是最为重要的转折点。父母的接纳会带来理解,而理解会带来改变。画重点,这里说的接纳,是发自内心地、全然地接纳孩子,而不是以推动孩子复学为目的的伪装手段。其实,孩子在等两个答案:1.现在的我,看起来一无是处,你们是不是无条件地爱我?2.你们能不能放权,让我成为自己学业和人生的主导者?当孩子能够确信父母的爱和信任,完全不担心父母对自己的失望和管控,他就会被注入新的力量,有了重新出发的动力。需要记住不管孩子状态恢复得有多好,要等,等孩子自己提。一旦父母主动提出复学的事情,那么孩子会敏锐的察觉出过去的体贴与照顾,过去的理解与关心都是装出来的,都是为了孩子能复学。这样会将问题再度退回到对抗期。作为父母,我们除了为孩子兜底,关键时刻还要托举孩子。家长们要不带评判地跟孩子复盘,引导他们不断地优化解决方案,从而帮助孩子提升迎战困难的能力。孩子不想成为父母的提线木偶,而是要感受到“我背后有人”。现在的学业确实比较辛苦,孩子普遍都有补习班和各种兴趣班要上,在学习的过程中也应该要好好休息。关于学习的问题我想起《龙珠》种龟仙人对小悟空的教导:好好学习、好好锻炼、好好休息、好好玩耍。武道的目的不是为了向人炫耀也不是好勇斗狠,而是拥有一个健康的体魄,度过一个有意义的人生。套用到学习上,我想学习知识,上一个好的学校也是为了未来能过一个更轻松和更有意义的人生。家庭主妇在关爱孩子上过于精细良好的孩子一定来自于良好的家庭环境。有爱心的孩子一定是来自于有爱的家庭。有一些父母,特别是一些全职带娃的母亲,一辈子围着孩子转,不断的向孩子展示我做的一切都为了你,你要好好听我的话。他们会为孩子细致的安排着一切事物,小到今天穿什么出门,几点吃饭等等细节,孩子在他们手中就是提线木偶。完全没有自由可言。他们经常问的就是孩子大了之后怎么不乖了?怎么不听话了?怎么脾气那么大?怎么敢对家长大吼大叫了……其实没有那么多怎么了,就是因为孩子长大了,他们有了独立的思想、自主的意识,他们要“夺权”。对于这类家长,要明白的一点是如果父母的教养方式特别顺应孩子的成长,他们没有必要叛逆。指望孩子有自驱力,那就请从主驾位置上撤下来,先坐在副驾上,帮孩子看看路况,再换到后排,偶尔提醒,待到他们成年,得体地下车,目送孩子稳稳地行驶在自己人生的大道上。家庭中父母情绪不稳定家庭中父母情绪不稳定,孩子在家战战兢兢,不知道下一步什么行为惹得爸妈不高兴。每一步都小心翼翼,整个家庭环境都很压抑,大家都顺着一个人。孩子来说,父母可以没有高学历,没有高收入,但是不能没有稳定的情绪。一颗种子无法正常生长,全赖种子不好吗?更大的可能会不会是土壤营养不足、缺乏水分或是有虫害?我们单对种子进行“改造”,不对整个生态系统进行重建,等种子重回原先的土壤时,就真的能茁壮成长吗?我深表怀疑!更直白地说,孩子的很多问题,本身就是父母造成的,当孩子已经发展到无力继续学业的地步,那么首先需要改变的是父母。信奉打压式教育在网上经常看到这类视频,孩子犯错误了,父母会当着所有人的面大声斥责孩子。孩子拿了奖状回来想跟父母分享一下喜悦,父母觉得这是你该做的,没什么值得骄傲的,还有人比你更优秀。他们对孩子的错误无限放大,对孩子取得任何成绩都漠不关心。这类父母觉得太多的夸奖孩子容易滋生自满情绪。他们可能信奉孩子就像弹簧一样越打压将来反弹的成就越高。但是久而久之的,孩子话越来越少了,什么事都瞒在心里。亲子关系是教育的前提。没有正常的亲子关系,什么教诲、指导、引领,一切都免谈。细想想,待到年迈之时,孩子就算功成名就却杳无音信,我们真的会倍感骄傲和幸福吗?至于孩子,有家难回,会不会是一种刻骨的伤痛呢?不值得,真的不值得。抓紧孩子还在身边的时光吧,其实没有几年。让我们成为他们生命里最亲的亲人。夫妻关系不和不成熟的父母会将孩子搅进家庭争端中,不停地向孩子诉苦,让孩子为自己挺身而出。这是一种非常过分的越界行为,颠倒了亲子关系,使得孩子不知不觉成了这个家庭的“拯救者”。作为父母,请让孩子安心做一个孩子,或者说创造一个良好的家庭氛围,让孩子可以安心做一个孩子,要知道“安心”是孩子们好好学习、健康成长的大前提。和睦的夫妻关系是最好的家庭教育,在潜移默化的日常示范中,让孩子懂得如何与自己相处、如何与他人相处、如何与这个世界相处,这才是一辈子的财富。遭遇校园霸凌这几年关于校园霸凌的新闻越来越多,看的让人揪心,自己也有孩子不免想到自己的孩子是否会遭遇到类似的事情。书中的案例,当孩子面对霸凌时无一例外,他们都曾向父母发出过求助信号,有些是直说,有些是暗示。同样无一例外,父母跟商量好了似的,都让孩子从自己身上找问题:“你是不是做了啥不对的事?”“那么多人,为什么只欺负你呀?”“你管好自己,别去惹人家不就行了?”……这种回复,对孩子无异于二度伤害。真正疼爱孩子的父母,请认真研究一下霸凌的定义,对照孩子的现实处境和身心状态,该维护孩子的时候一定要第一时间挺身而出,这是制止霸凌最快速、最有力的行动。孩子在校园的人际关系出现了问题紧张的师生关系和有隔阂的同学关系是导致孩子厌学的两大重要因素。一直以来,我们把师生关系比喻成园丁与花朵,可不知从何时开始,花朵对园丁产生了“厌恶”与“恐惧”。教师随意斥责学生,甚至挑起学生间的矛盾,引导学生孤立某些看不顺眼的学生。激发了孩子们的心理反应。胆战心惊的不单是那个被老师当堂斥责的同学,还有身处这个压抑氛围里的其他每一个学生,他们躲过了老师的谩骂,但躲不过伤害。如果在这样的班级里,还找不到能够建立友谊的朋友、进不了能够获得归属感的团体,那就“雪上加霜”了。这样的学校就像一个监狱,出来了就不想再回去。甚至有些家长只信任老师而不信任自己的孩子,怕孩子惹老师不高兴一味的要求孩子给老师道歉。就像旧社会将孩子交给老师后签了生死状,老师可以随意处理学生。孩子在家里,他们需要包容父母;在学校,他们需要包容老师。那么,谁来包容孩子呢?孩子在学校的人际关系出现问题,首先要回到原点,无条件地爱孩子,接纳孩子本来的样子,用我们最大的能量去托举他们,尤其在他们跌到低谷时。总结有些时候孩子厌恶的可能不是学习本身,而是与学习相伴的恶化的亲子关系、紧张的校园人际关系。幸福的家庭总是千篇一律,而不幸的家庭各有各的不幸。什么是最好的家庭教育?和睦的夫妻关系、将孩子看作一个独立的个体、尊重孩子的心理感受、愿意倾听他们的心声、无条件的信任自己的孩子。作为一个孩子的父亲,这本书给我提供了一些爱孩子的建议。我希望我的孩子永远不会遇上书中的案例中的情况,希望她能过一个快乐的,有意义的人生。
2026年01月17日
1 阅读
0 评论
0 点赞
2026-01-11
Emacs 折腾日记(三十四)—— org todo
在上一篇文章中,我们简单介绍了 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 的文章中我给出了一个创建工作任务的模板 * TODO %^{任务描述} :%^{任务类型|dev|bugfix|env|doc|meeting}:\n SCHEDULED: %^t\n PRIORITY: %^{优先级|A|B|C|D}\n %?\n %i"。任务类型部分就是一个标签,这里我只设置了一个标签。我们可以事先使用 org-tag-alist 来规定一组标签以及打上这个标签所需要的快捷键。这个变量是一个列表类型,每个列表包含一个cell,cell的第一个元素是一个标签的名称,第二个元素是对应的快捷键。同时它也可以通过 :groupstart 和 :groupend 来定义一组互斥的标签项。例如针对任务我们可以定义如下的标签 (org-tag-alist `((:startgroup) ("dev" . ?d) ("bugfix" . ?B) ("env" . ?E) ("doc" . ?D) ("meeting" . ?M) ("reading" . ?R) (:endgroup) ("Sendto Tom" . ?T) ("Sendto Jerry" . ?J) ))需要注意这里标签过多的话,我们需要避免出现快捷键重复的情况。设置了标签,我们可以使用 C-c C-q属性是放到 :PROPERTIES: 下的一组键值对,默认情况下是被折叠的。属性相对于标签来说更加灵活,能显示的信息也更加多样化。我们可以使用 C-c C-x p 来设置属性设置子任务有时候一个大的任务分为几个小任务,例如某个bug可能包含几个方面的问题甚至需要不同组的开发人员进行协调。这个时候我们可以将一个任务分解为几个子任务org mode 中对于子任务的表现比较简单。子任务就是任务下的一个次级的 headline。我们可以在主任务后面加上 [/] 或者 [%] 来根据子任务的完成情况自动更新主任务的完成进度从上面的截图上看,关于子任务还有两个问题没有解决,首先在将任务状态由TODO 切换到DONE时,checkbox的状态应该是勾选的。第二个问题就是当所有的子任务都完成之后应该将主任务的状态改为done。这些我暂时没有找到好的解决方案,所以不展开说明了。任务状态切换上面我们看到可以通过 C-c C-t 来切换状态,但是我们只能在TODO|DONE之间进行切换。以我个人的习惯来说,我还需要几个关键字:WAIT: 等待,一般是任务完成需要等待其他人的配合,例如bug的产生可能是多个模块共同作用,需要等待其他人修改完ABORT:终止DOING: 正在执行这里我说的是关键字,但是它并不代表org todo 中任务实际的状态。事实上org todo中只有两种状态,TODO和DONE表示未完成和终结,我们无法在中间插入新的状态,能做的也只有在两种状态之间插入一些新的关键字。插入新的关键字可以通过设置变量 org-todo-keywords。根据Emacs的文档显示,org-todo-keywords 原始的值为 ((sequence "TODO" "DONE"))。因为这里需要一个有序列表,也就是说Emacs会保证状态切换时按照我们定义的顺序进行切换,并且切换到最后一个关键字时会认定任务已经处于终止状态,后续可以针对这个终止状态来进行一些操作。所以这里需要通过 sequence 函数来保证设置的是一个有序的列表这里我们针对终止状态设置了两个关键字DONE和ABORT,我们可以通过在中间插入 | 的方式告知Emacs,| 之前的关键字是未完成的状态,| 之后的是终止的状态。我们可以在 :custom 下加入 (org-todo-keywords '( (sequence "TODO(t)" "DOING(i)" "WAIT(w@/!)" "|" "DONE(d!)" "ABORT(a@)") ))) 这里后面括号中的字母表示可以在 C-c C-t 之后按字母快捷键快速选择状态,@表示需要由用户填写理由,例如针对等待的任务可以写明需要等待某个子模块修改完成。而后面的 !表示会插入一条包括时间戳的记录。至于 / 则是中间的一个分隔符现在它的效果如下:接入番茄工作法前面介绍了关于任务的定义和关键字的切换,现在我们的流程可能就变成了:通过 org-capture 收集任务将分析任务确定任务的优先级以及计划执行和结束时间通过org-agenda 查看当天需要执行的任务执行任务任务完成之后切换状态在执行任务的过程中我们可以采用番茄工作法来保证时间的高效利用。Emacs中可以嵌入有关番茄工作法的插件来做到。这里推荐使用 org-pomodoro 插件(use-package org-pomodoro :ensure t :custom (org-prmodoro-length 25) ;每个番茄钟25分钟 (org-pomodoro-short-break-length 5) ;; 短休5分钟 (org-pomodoro-long-break-length) ;; 长休15分钟 (每4个番茄钟之后) (org-pomodoro-play-sounds-t) ;; 启用提示音 )在使用时我们可以将鼠标放置到需要执行的任务上,然后执行命令 org-pomodoro。如果出现打扰的情况,例如有同事突然找到你,希望你提供帮助或者外卖电话到了要去拿外卖这个时候可以通过再次执行 org-pomodoro 停止计时。我们可以看到在番茄钟启动之后下方的 minibuffer 中有番茄钟的倒计时。到此为止,我们现在自建的任务管理系统已经可以到执行这步了,这个系统后续只剩下如何进行进行归档与回顾了。关于这部分将在下篇文章中给出我的一些实践,谢谢各位读者的关注
2026年01月11日
2 阅读
0 评论
0 点赞
2026-01-02
读《豺狼的日子》
故事发生在二战之后的法国,因为戴高乐撤出阿尔及利亚导致部分军官的利益受损,他们组成了秘密军组织,该组织希望通过暗杀戴高乐来达到政变的效果。但是因为错误的计算了日落时间导致对面的杀手没有第一时间看清行动的手势,错了这么几秒钟,原本应该正面短时间内向载着戴高乐的车进行射击变成了从车子屁股后面进行射击,子弹刚好从戴高乐身边飞过。在这次刺杀失败之后参与这场刺杀的秘密军高层被逮捕,同时法国安全局在秘密军组织中派遣大量卧底,导致后续几次暗杀计划失败。此时新的高层罗丹上校决定聘请外国的职业杀手进行,并且计划只在三个高层中被知晓。经过大量的筛选,一个亚麻色头发的英国人进入他们的筛选范围并且最终他们同意聘请这个杀手进行计划。在与杀手交谈中,杀手索要50万美金,并且他们需要预付25万的定金。并且需要保证几个高层不被法国方面逮捕。这件事就这么敲定了并且杀手的代号暂时定为“豺狼”。后续豺狼进行了计划,首先他阅读了大量关于戴高乐的书籍、新闻等资料,确定了戴高乐的个性。认为以他的个性一定会在独立日那天在公众前露面,那个时间就是最佳的暗杀时间。后面他先后制作了一个方便携带和伪装的枪支。伪造了几张护照,分别是一个在2岁就死去的英国人杜根、一个奥地利的牧师、一个美国学生、还制作了一个法国人的身份证件。还单独去了趟法国,以旅游的名义实地考察暗杀的地点。有了这些一手的资料,他脑海中已经有了完整的刺杀以及刺杀后脱身的计划。在回国前他将藏有枪支的行李箱用杜根的名义寄存在法国的行李寄存处。秘密军组织为了配合豺狼的行动,在法国一个高官身边利用美人计安插了一个卧底方便后续获取戴高乐的行程计划。根据豺狼的建议,秘密军组织命令手下大量抢劫法国境内的银行。法国方面他们发现最近秘密军组织大量抢劫银行、并且三个高层的人物一反常态的躲到罗马一间酒店。他们包下酒店的两层,最高层住着三个领袖,下面一层都是保镖,因为政治关系法国方面无法大张旗鼓的去罗马抓人,而安保的严格程度也不存在秘密抓捕的可能。法国方面似乎陷入僵局。法国政府后面发现秘密军组织高层与外界进行通信的方式是由一名叫做科瓦尔斯基的保镖进行,科瓦尔斯基也是当初驻阿尔吉尼亚的一名军官,他誓死追随罗丹上校。但是他唯一的软肋是他的女儿,他的女儿由他的好友代为抚养。法国安全局利用他的好友欺骗他,说他的女儿得了白血病。此时科瓦尔斯基心中涌起强烈的欲望希望去见女儿一面,本以为这次只是利用休息的几个小时加上请个短假,也就花48个小时去见一面不耽误后续工作,完全没想到是法国方面的圈套。终于在连续的审问中,从科瓦尔斯基口中听到豺狼的名字,联系最近大量的抢劫银行,法国方面推测出秘密军组织聘请外国刺客豺狼准备搞新一轮的暗杀,因为这个刺客要价不菲所以需要通过抢劫银行筹钱。有了这些信息,法国的高官们也劝戴高乐停止后续的活动,等抓到刺客之后再进行公开的活动。但是与豺狼猜测一样,戴高乐高傲的性格并不是那种会因为不明刺客的暗杀而惶恐不安的人,另外戴高乐认为如果因为卑鄙的刺杀行为就躲躲藏藏有损法国的形象。就此戴高乐命名法国相关部门秘密调查豺狼,并且不允许告知下属,也不许见诸媒体。法国高层经过开会决定由探长勒贝尔带队秘密搜查豺狼的下落,至此双方的较量正式开始勒贝尔首先求助于其他七国的警察组织帮忙寻找杀手的信息。勒贝尔在于其他国家请求帮助时并没有说明事件的原委并且是以个人名义进行的非正式请求。但是以各个国家的政治嗅觉也很容易猜到是法国总统的安全受到威胁。同时英国人觉得如果刺客是英国人到时候真出了事,外交上会闹的很难看,所以英国首相授权英国全力配合法国。几乎从整个英国寻找符合条件的人几乎是大海捞针,但是事件的转机往往是那么的戏剧性。民间流传两年前多米尼加的总统遇刺身亡,杀手在及刁钻的角度打爆了整个车上唯一小一块非防弹玻璃。从这个点出发,他们找到了两年前前往多米尼加的所有人,在根据日期、年龄、是否熟悉枪支的条件下排除了大部分人,唯一留下了一名叫做查尔斯卡尔斯洛普,他是一个军火公司的推销员,他熟悉枪支,并且在多米尼加总统遇刺时正好在多米尼加境内,同时英国人认为他姓和名的前几个字母凑起来正好是 Jackel 豺狼。根据这个线索他们找到了查尔斯的住所,根据邻居所说查尔斯准备去钓鱼,并且已经出发了,要好久才会回来。英国人在检查查尔斯入住的公寓时发现他的护照正好在家里,这也就证明,豺狼出国用的是假护照。据此英国军情六处开始倒查三个月之前用已死亡公民的信息申请护照并且最近几个月有出国经历的人。经过一个晚上的筛查,查到了豺狼的第一个假身份——杜根。豺狼刚好利用这个身份从意大利租了一辆车,并且特意绕远路从陆上进入法国境内,因为法国之前根据英国的情报通知全境搜查高个子亚麻色头发一个名叫查尔斯卡尔斯洛普的英国人。豺狼在入境时明锐的发现法国边境对亚麻色头发的外国人进行了格外严格的检查。在顺利入境之后,豺狼找到了之前寄存行李的地方,通过一个晚上的改造将枪支藏到车子下方排气管的位置。并且通过卧底的情报得知消息已经暴露,秘密军组织劝豺狼停止计划,不过也明确告知这个建议并不是来自罗丹的命令。豺狼为了这50万美金决定继续干下去。因为豺狼每天都过着精致的生活,要想后半辈子生活质量不下降就必须完成任务得到这笔钱。在意识到杜根这个名字随时可能暴露之后,他又采用了奥地利牧师的身份乘坐火车准备前往巴黎。但是牧师的身份很快也暴露了,书中没有提到警察是怎么识破这份伪装的,但是在警察大肆搜捕这个身份时,豺狼正好抵达巴黎并且利用新的身份入住了酒店。豺狼辗转几次之后又利用美国学生的身份的入住了酒店,在这个酒店里面他认识了一名伯爵夫人并且与之发展成情人关系。在第二天豺狼提前离开了酒店,将车开到郊区并且停在中间花了大量的时间进行改装,主要是换了汽车颜色和车牌。法国警察在对比最近外国人补办护照的相关信息之后确认豺狼身形相貌于一个丢失护照的美国学生类似,因此根据这个身份查到了豺狼入住的酒店,但是因为登记时豺狼是中午退房但是豺狼已经提前离开,警察最终又扑了一个空。在接二连三的失利之后,勒贝尔决定利用他手中的权力窃听所有参加高层会议的高官家中的电话。在豺狼逃脱追捕之后,他意识到不能在入住酒店了,在到底巴黎之前他决定利用之前看到酒店登记的旅客信息前往伯爵夫人的家中。在接近伯爵夫人所在城堡之前他将汽车开进一处写着禁止入内的森林深处,并且小心翼翼的处理了汽车压过的痕迹。在伯爵夫人的住所春宵一刻之后,他利用城堡中的电话得知美国学生这个身份已经暴露了,但是他还有一个更加隐秘的身份。好巧不巧,伯爵夫人通过监听豺狼的通话发现他是一个杀手。豺狼也通过挂断电话的嘟嘟声也意识到自己的电话被监听,在得知是伯爵夫人监听电话之后他毫不犹豫的杀掉了夫人并且伪装成夫人正在睡觉。在安置好现场之后豺狼利用床单从窗户来到楼下偷了一辆汽车离去。在晌午之后,仆人发现夫人身亡报警之后已经过去好几个小时,豺狼早就逃之夭夭了。此时法国警方在报纸上发布夫人身亡的消息并且发动群众力量寻找符合特征的杀人凶手。但是就是这么凑巧,此时豺狼通过勾引同性恋者已经入住同性恋所在公寓。当然豺狼也是在同性恋发现新闻报道上的事之后进行了灭口。就这样靠着在同性恋公寓中的食物和水,时间终于来到了法国独立日庆祝的日子。豺狼此时又装作一个充满荣誉但是命不久矣的老兵博取守卫士兵的同情。为了装的像样豺狼事先吞服了一些火药,在火药的作用下成功骗过了站岗的士兵,准许他进入封闭区域。在封闭区域中他溜进了事先踩好点的公寓,利用这个身份骗取某间房间主人的信任,在主人转身为他倒水的空隙成功制服了房间的主人,并且在此组装了枪支,就等戴高乐进入狙击范围了。而勒贝尔虽然通过监听发现卧底断了豺狼的情报来源,但是仍然无法找到豺狼,而戴高乐又决定必须参与独立日活动,法国警察的压力也是空前巨大,一方面勒贝尔决定利用黑帮的力量继续搜寻豺狼下落,另一方面法国警察全力保卫戴高乐的安全,能进现场的通行证都是在当前换发的新证件,参与保卫的警卫必须经过多位同事担保防止豺狼化妆混进来。在勒贝尔进行巡查时偶尔间向士兵提问,是否有可疑人员,士兵回答只有一个病入膏肓的老兵。勒贝尔意识到这个老兵可能是豺狼的伪装。在勒贝尔赶来的时候,豺狼架好了狙击步枪并且找到了最好的射击角度。在扣下扳机的时候戴高乐突然低头轻吻面前的老兵,就是这一动作是他与死神擦肩而过。在装入下一发子弹等待下一次狙击机会时,勒贝尔破门而入并且发现了豺狼,在一番混战之下守卫的士兵牺牲了,但是勒贝尔成功击毙了豺狼,至此豺狼的日子结束了,这场暗杀阴谋也失败了。豺狼的故事是最好的间谍小说,作者用电影的叙事手法,同时利用多视角给我们阐述了交战双方的情报和进度,为我们展现了一场精彩的猫鼠游戏。我个人的语言无法精彩的描述书中故事,感兴趣的读者应该拿起书本认真阅读,你一定会为精彩的故事折服。
2026年01月02日
1 阅读
0 评论
0 点赞
2026-01-02
2025回顾与2026年展望
时间过的飞快,转眼间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年的目标实现情况生活目标生活上去年许下的出去旅游的计划已经实现了,今年主要是国内游,在北京周边几个城市跑了一圈。原来计划孩子在这边的时候每周带出去玩,这个计划也完成了,因为孩子大了之后她自己就会带着我往外跑健康上原来计划的饮食习惯也就头一个月坚持了一下,后面随着家里的老人带着孩子来北京住了一段时间,在这期间跟着家人吃饭后面完全没改正过来,结果体检的时候老问题没解决,体重又增加了,还出现了新的问题:尿酸已经快要超过正常值了右肾有颗3mm左右的结实体重偏重,血压也快超过正常值了轻度脂肪肝工作上今年最重要的就是项目支持的标准降级以及跨平台的支持。去年总结时提到的一些提交规范今年很好的遵守了。个人学习方面今年读的最多的就是投资理财相关的书籍;今年算是最近几年阅读量最大的一年了。博客主要在更新Emacs相关的内容。个人娱乐时间今年我又把switch拿了起来,买的游戏卡带不玩感觉有点浪费。王国之泪其实越往后玩起来感觉越有意思,当初可能先入为主了,而且玩的是前期,前期感觉生存都是问题,还没进入到深度体验。2026年的计划生活上首先还是出去旅游一次其次孩子回老家了,今年下半年已经满三岁了,可以在这边办理入学,我希望她能来北京上学健康方面健康饮食,早午餐正常吃,晚餐吃玉米和苹果配合运动,每周至少1小时的运动时间年中做一次体检工作上因为我已经慢慢习惯使用Emacs记笔记,我希望今年能继续保持这个习惯我计划每天早上抽一个小时的时间学习一下C++ 相关的内容,特别是模板编程方便的学习关于博客的更新计划:继续更新Emacs相关博客,计划今年上半年更新完尝试更新一下学到的C++ 模板编程方面的内容后续重新更新PDF相关内容读书方面,继续阅读一些投资理财的书籍,并且根据书中的内容尝试着读一些公司的财报。娱乐周末看一部电影周末继续玩王国之泪本次的总结就到这里了,感谢各位读者的阅读
2026年01月02日
3 阅读
0 评论
1 点赞
2025-12-21
读《贪婪的多巴胺》
为什么我们会对一些事物上瘾?为什么戒除这些上瘾的东西并像想象中那么容易?这本书可能能给一些答案书中主要讲述多巴胺的作用,或者说多巴胺是如何与其他激素共同调节我们的行为。书中的核心其实就是一句话:我们的身体受到“向上”和“向下”两类物质的控制。“向下”指的是控制当下的神经递质,它们决定我们当前的感受;“向上”则是指多巴胺,决定了我们的长远规划、愿景、未来期望。简单来说多巴胺控制我们期待美好的未来,而当下因子例如血清素、酮睾素让我们感受当下的美好,享受当下的一切。书中剩余的内容其实都在围绕这这个主题进行展开。为什么有些人对感情不专一容易出轨,而有些人比较专情。因为多巴胺是未来激素,会促使我们寻求未来那种不确定的惊喜。感情刚开始处于新鲜期时多巴胺分泌,让我们沉浸在对美好未来的憧憬中;而一旦感情进入未定期,多巴胺减少分泌,而大脑对于多巴胺的渴望会促使人们进入下一段感情。为什么戒毒那么难,甚至可以说不可能完全戒断。因为我们追求美好事物时大脑产生的多巴胺相比起毒品刺激产生的多巴胺来说简直少的可怜。另外我们日常中的心理和行为控制主要依靠多巴胺和当下分子联合作用,但是毒品会摧毁大脑中分泌当下分子的区域。吸毒者无法体会当下的美好,普通人可以享受到的陪伴、亲情、温柔的阳光等在吸毒者面前毫无作用。他们变成了一个只追求大量多巴胺的怪物。吸毒者从大脑结构和心理上与正常人相差太大,我们无法用正常人的思维去理解他们。为什么说天才与疯子仅在一线之间,之前还有一本书《天才在左,疯子在右》。多巴胺给予我们创造的力量。它让我们想象不真实的事物,把看似不相关的事物联系起来。。但是前面说过,人类的行为和心理是多巴胺和当下分子共同控制,一旦多巴胺过多,影响当下分子的产生,就会产生各种心理疾病。具体的病理书中没有细说,我也不太了解,但是我知道了精神病和心理疾病并不是我之前想象的是需求得不到满足,只要给予一些爱或者陪伴和理解就能很好的治愈。现在看来这类病症主要是大脑激素分泌出了问题,必要的时候需要使用药物进行治疗。在当今的消费主义社会当中,整个社会似乎都为我们分泌多巴胺服务。一般商家会通过铺天盖地的广告让我们对某件商品疯狂,我们期待拆开商品时那种分泌多巴胺的快乐,但是一旦我们完成了这个操作,多巴胺分泌开始减少,我们又想去购买新的商品,一直循环往复,最终商品买了一堆但是真正能长期使用的少之又少。游戏从某种程度上来说也是这样。一般游戏会构造一个虚拟的但是充满未知的世界。这个未知世界会引导我们去探索,在探索的过程中会分泌多巴胺,而当多巴胺减少时,大脑对于多巴胺的渴望又会引导我们继续在游戏世界探索。现在的游戏还出现了类似赌博原理的抽奖机制。杀怪有几率掉落极品装备,抽奖有可能会抽到稀有角色和装备。一旦我们开出来自己想要的游戏装备或者角色大脑会因为欲望得到满足而分泌多巴胺,但是随着时间的推移,我们需要新的多巴胺刺激,此时对于多巴胺的渴望会诱导我们不断的进行抽奖。短视频目前来说也是类似的,相对于传统的视频网站那样将所有你感兴趣的列在首页由你自己来选则想要观看的视频来说短视频那种全屏滑动的操作模式更具有成瘾性。我们无法提前知晓下一个短视频内容是什么,但是对于不确定未来的探索欲望会驱使我们疯狂的上划以观看下一个视频寻求新的刺激。相对长视频的时长来说,短视频可能刚刚好在我们对视频失去兴趣时结束这样新的一轮刺激马上到来,引导我们沉迷其中。一回过神发现一天时间已经过去了。上面列举了几样让人上瘾的东西,是不是一样也不碰呢?我觉得任何时期都要追求动态的平衡。多了不好,少了也不好。多巴胺虽然会造成成瘾,但是正常人无法做到离开多巴胺,就像上面介绍的,我们是靠着未来因子和当下因子的动态平衡而成为一个正常人。一个人不管是过度关注未来,还是过度享受现在,都会丧失正常的行动力。对于沉迷于多巴胺的人,如何戒除对多巴胺的依赖,书中给出了一些小的建议:可以培养一些当下的爱好,例如手工、乐器、烹饪、绘画等需要动手的活动一次只专心一个任务,不要手上做着活心里想着另一件事在家人和朋友的陪伴下完成一件事物,书中给出的例子是和父母一起完成木工、绘画等工作
2025年12月21日
1 阅读
0 评论
0 点赞
2025-12-14
Emacs折腾日记(三十三)——org capture
在日常的工作生活中有各种各样的琐事,如果不及时记录下来很可能后面就忘了。或者在日常软件开发中有很多想法想要实现但是时间一长自己就忘了。这种情况下我们需要一个系统来记录收集想法并且后续需要追踪甚至回顾。我们需要一套适合的管理系统让大脑摆脱待办事项的纠缠,让大脑专注于当前要做的事物。目前我采取的方式是GTD+ 番茄工作法。GTD 简介GTD(Getting Things Done),是由戴维·艾伦于2002年提出的时间管理方法。其核心在于通过收集、整理、组织、回顾、执行五个步骤,将任务从大脑中移出,减轻心理压力以提升效率,强调两分钟内可完成事项立即处理的原则。用我的理解,我们需要事先准备几个速记的笔记本,一旦脑海中出现了想法就将它记录下来,这步叫做收集。在一天中的空闲时间例如下班前或者睡觉前打开看看之前记录的内容,将内容按照一定的规则重新组织例如分为工作、生活、学习之类的想法,将它们转化成可以执行的任务。并且为每个事项定一个紧急程度,这个就是整理、组织。在每天开始的时候或者结束的时候可以根据上面的分类安排一下当前或者明天的任务,这个是执行任务。在每周或者每天的时候回忆一下当前的任务看看哪些完成了、哪些未完成、从任务中有何感想,有哪些可以记录下来作为重要的日志或者日后博客的灵感来源,这个就是最后的回顾总结过程。番茄工作法再完美的系统,如果不执行或者不认真执行也是白搭的。对我来说GTD主要解决的是要做哪些事,如何安排时间的问题。至于如何高效的执行任务专注到任务上,我采用的番茄工作法。番茄工作法的简单理解就是将任务的时间拆分成几个不可分割的最小单元,在这个时间片单元内一心一意、专心到任务上。一旦分心就需要终止当前番茄钟,并记录分心的原因,如果是有新来的新任务就需要采用记录的方式记录,如果是紧急且重要的任务可能还要修改当前的任务计划。当然番茄工作法有一整套的收集、整理、执行、归纳总结的流程,但是对我来说我喜欢GTD的流程和番茄工作法的时间管理方式,所以我采用的是它们二者的结合。但是主要用在工作中,日常生活中的场景都是一些简单的琐事,例如收拾卫生、做饭、对我来说不合适这种形式。org capture目前来说市面上没有完全符合我心目中最佳时间管理理论的工具,但是Emacs中的org 是十分强大的,完全可以稍加改造成符合自己心意的时间管理系统。首先要解决的就是如何收集想法的问题。这个功能可以使用 org-capture,顾名思义它就是使用org的格式来快速记录当前的想法。我们使用 org-capture 命令可以看到下面的界面下方提示我们可以使用前面的字母符号来选择一个模板,默认只提供了一个名为 Task 的模板。我们可以使用 org-capture 中 来实现GTD中的分类记录的功能。在我们选定需要使用的模板之后,Emacs会调用 org-capture-select-template 函数来选中模板并且根据模板来创建默认的org 模板。默认的Task 模板如下:("t" "Task" entry (file+headline "" "Tasks") "* TODO %?\n %u\n %a")它们的含义如下t 标识选择模板时的快捷键。Task 模板的描述,让用户了解当前模板作用的说明文字。后面一个部分就是新增的内容新增的内容比较复杂,我们一个个的说。第一个部分是新增模板的type。type 可以是下面的内容type描述entry带有 headline 的一个 Org mode 节点item一个列表项checkitem一个 checkbox 列表项table-line一个表格行plain普通文本type 的不同,后面跟的内容也不一样。例如如果当前是 entry 的话,后面需要添加 "* headline" 作为标题行的形式,如果是 item 后面需要跟上 - item 作为一个项。如果是 checkitem 需要跟 [ ] item 作为一个checkbox项。如果使用 table-line,需要跟 | colum 1 | colum 2 | colum3 | 作为一个表格项目。如果是 plain 则没有特殊要求。接下来看看 (file+headline "" "Tasks") 中各个部分的含义,前面的 file+headline 表示将记录的内容保存到哪个位置。除了这两个标识还有其他的一些常用标识标识含义file文件id某个特定id的headlinefile+headline某个文件中的某个headlinefile+olp文件中某个headline的路径file+regexp文件以及被正则匹配的headlinefile+datetree文件中当日所在的datetreefile+datetree+prompt文件中的datetree 会弹出日期选择file+weektree文件中当日所属的 weektreefile+weektree+prompt文件中 weektree 会弹出日期选择file+function文件中被函数匹配的headlineclock当前正在计时中的任务所在位置function自定义函数的所定义的位置后面两个参数根据前面的内容来决定,例如如果使用 file+headline 的话,第二个参数就是文件路径,第三个参数就是具体的 headline 的名称。如果文件名参数为空的话,那么会使用 org-default-notes-file 所对应的文件路径为 ~/.notes 这些内容如果觉得有些比较难以理解的,可以查看 org-capture-tempetes 变量的详细说明"* TODO %?\n %u\n %a" 部分都是一些格式字符串和占位符,在选中模板之后会自动生成我们想要的模板文字。这里的占位符如果写过代码应该很容易理解,首先占位符都是 以%开头,后面根据不同的字符表示不同的含义时间相关的占位符占位符含义%<>表示自定义时间的时间戳,两个<>之间可以使用字符表示不同的时间格式,例如 %<%Y-%m-%d> 表示年月日的格式,年是4位字符的形式%t当前仅包含日期的时间戳%T当前包含日期时间的时间戳%u包含当前未激活的时间戳%U表示当前未激活的包含日期时间的时间戳%^t类似于 %t,但是会弹出日历供用户选择%^T类似于%T,但是会弹出日期和时间供用户选择%^u与上面的类似%^U与上面类似这里所谓的激活,在Emacs的文档中使用的词是 interactive 我不知道翻译为激活是否准确。未激活的时间戳日后不会出现在 org-agenda 中,至于什么是 org-agenda 请继续往下看剪切板相关的占位符占位符含义%c当前 kill ring 中的第一条内容%x当前系统剪贴板中的内容%^C交互式地选择 kill ring 或剪贴板中的内容%^L类似 %^C,但是将选中的内容作为链接插入后面还有更多更复杂的占位符,但是目前来说我用不到那么多,也就不一一列举了,各位读者如果感兴趣可以查看 org-capture-templetes 来查阅更多类型的占位符,至于 %?它什么也不往文件里面添加,它会在模板文本添加成功后将光标移动到它所在位置,方便用于自己输入内容除此以外,它还支持自定义函数的形式来插入内容,它的形式为 %(sexp) 括号中间就是lisp函数,假设我们有一个 custom-placeholder 那么这里就可以写成 %(custom-placeholder) 有了这些内容我们就可以定义自己的各种任务的模板个人日常任务模板对我个人来说,日常任务主要有:阅读清单、博客计划、工作任务。下面我希望通过这三大类任务来定制一些模板阅读清单首先是阅读清单,阅读清单主要记录一些我通过各种渠道了解到的并计划在后续需要读的书。根据我之前读的《如何有效阅读一本书:超实用笔记读书法》 的说法,记录要读的书,可以记录下面几个内容:书名作者出版社其他(可以是ISBN号)如果只根据书名可能会有书名重复的现象,所以根据这几条信息就可以唯一确认一本书因为Emacs提供的默认模板我不太喜欢,所以这里我先使用 (setq org-capture-templates nil) 来清空模板,后续由我自己实现各种模板(use-package org-capture :ensure nil :custom (org-capture-templates nil) (org-capture-templates '(("r" "Reading List" entry (file+olp "~/org/reading.org" "Reading" "Book") "*** TODO 《%^{书名}》\n作者:%^{作者}\n出版社:%^{出版社}:\n备注:%^{备注}\n添加时间:%U\n" :clock-int t :clock-resume t))))我们按照之前分析的模板中各个部分的组成来看看它是什么意思。首先第一个部分,我们定义通过快捷键 r 来选中并生成这个模板,Reading List 表示在模板展示时显示的内容。后面的entry 表示我需要添加一个带有 headline 的 org mode 节点,它后面跟着的子列表里面使用 file+olp 表示我需要在文件中的某个headline 下添加这条记录作为它的子内容部分。后面跟的就是文件路径、以及需要插入到当前文件下Reading 里面的 Book 下,作为子节点。最后定义的就是具体的内容了, 因为Reading 作为一级标题,它下面的 Book 作为二级标题,所以这里添加的阅读清单记录就是三级标题,所以我在它前面加了一个 *** 作为三级标题。前面的TODO是关键词,表示待做。后面就是输入的常规的内容了,包括出版社、作者等信息。它的运行效果如下:新建博客文章org-mode实际上是支持转换成markdown并通过hugo之类的静态网站生成程序来生成博客的。对于hugo 来说如果希望将markdown格式的内容转化成博客,我们需要在markdown文件头位置加入这些内容title: "Test" date: categories: blog tags: blog draft: true根据这些信息我们可以很容易的搭建基础的模板。针对这种场景,我希望它能在固定的位置生成一个以时间命名的 .md文档,这个位置一般位于hugo安装目录下的 posts 目录下。我们可以写下这样的配置 (add-to-list 'org-capture-templates `("b" "Blog" plain (file ,(concat "~/org/" (format-time-string "%Y-%m-%d.md"))) ,(concat "---\n" "tile: %^{标题}\n" "date: %U\n" "categories: %^{分类}\n" "tags: %^{标签}\n" "draft: %^{草稿|true|false}\n" "---\n" "%?")))它的效果如下:最终在我们保存之后它会在~/org 目录下生成一个以时间命名的markdown文件这种模式我个人不太喜欢,因为对我而言org-capture 仅仅只是一个收集的动作,我们应该快速记录想要写的博客以及博客的主要论点,而不应该开始编写具体的内容。至于如何使用org-mode来写博客,后面我想单独写一篇博客来介绍创建工作计划作为一个程序员来说,日常工作总会与程序打交道,比如开发新功能、写接口文档、修改bug、搭建开发测试环境、开会等等。有时候需要一个人负责多个多个项目。对于工作任务我们还需要分一个轻重缓急,我一般习惯于将它们分为:重要且紧急、重要但不紧急、紧急但不重要、不重要不紧急。那么对于工作任务的需求就很明确了。首先任务可以归属到不同的项目中,日后可以根据任务进行筛选任务可以细分为开发新功能、修复bug、搭建环境、写文档、开会等等任务可以划分轻重缓急日后通过todolist可以看到任务的轻重缓急,目前使用重要且紧急、重要但不紧急、不重要但紧急、不紧急不重要我们采用下面的代码 (add-to-list 'org-capture-templates `("w" "Work Task" entry (file+headline "~/org/working.org" "Work") "* TODO %^{任务描述} :%^{任务类型|dev|bugfix|env|doc|meeting}:\n SCHEDULED: %^t\n PRIORITY: %^{优先级|A|B|C|D}\n %?\n %i")))它的效果如下:到目前为止,介绍了关于org capture的相关内容,并演示了如何利用capture 实现一个任务的捕捉功能。gtd 后面的流程还有任务的分配、执行、记录等等功能,这些内容将在后面介绍。感谢各位读者的支持
2025年12月14日
9 阅读
0 评论
0 点赞
2025-12-14
读《在细雨中呼唤》
在我映像中余华一直是写悲剧,写苦难人生的一个作家。他总是用他的笔将社会中最残酷的现象摆在你面前,让他的读者为书中的人物流泪。一般来说我看余华的书要好久才能缓过来,然后隔好长一段时间才有勇气看他的下一本。关于这本书我想谈谈他的写作手法,我文学素养不高,看的文学作品也不多。这本书的写作手法有点让我耳目一新的感觉,书中的故事不断的在各种人物和各种时间线来回穿插,书中的“我”像一个见证者,见证者各种人物的各种经历。我觉得它是一本属于普通底层人的纪传体史书。“我”是一个亲历各种事件的史官。其他的事件我也不太好说,令我映像最深的是关于父亲、苏宇和爷爷。父亲早些年是传统的农名形象,他是家庭的顶梁柱,说一不二。日夜在田间劳作,撑起一个家。在小儿子死后似乎有点自甘堕落,夜爬寡妇床,为了寡妇将家中本就不多的家具往寡妇家搬。在大儿子成年需要娶妻之后甚至调戏未来儿媳妇惹得儿子找他拼命。最后他是一个彻头彻尾的人渣。苏宇我书中“我”的好朋友,一起在中学上学。苏宇的家庭算是一个知识分子,父亲是医生,但是被寡妇勾引被迫离开了村子。苏宇的家庭因为溺爱小儿子苏杭,他在家中一直是个保姆的形象,不光要伺候父母,也需要照顾弟弟。这么一个家庭中的透明人与“我”最终成了朋友,我们二人都是自卑敏感性的人,二人从最开始认识到最后成为朋友没有什么戏剧性的情节就好像上天要他们成为朋友那样,自然的走在一起。在苏宇的故事中,“我”到了青春期性萌芽的时候,“我”会在深夜幻想着班上最漂亮的女士完成自慰行为。书中将一个少年被性所困扰,但是又在事后自责甚至认为自己是一个丑陋恶心的人,为此“我”认为自己不配与苏宇做朋友,一度尝试远离苏宇。直到最后苏宇说“我也这样做”才打开了“我的”心结。最后苏宇的结局令我感到惋惜,甚至有点恨他的家人,苏宇在需要早起的时候突发脑溢血,本来是有机会送到医院抢救的,但是他的家人从来没有关心过他,在他病重无法起床时也只当他犯懒病,而自顾自的离开。苏宇在发病的时候本来依靠的求生的本能尝试发出求救,挣扎着想要起来,而这种挣扎在家人自顾自从他房间离开并且关上家门之后彻底熄灭了。书中的爷爷早些年也是一个硬汉形象,他娶了奶奶,并且一辈子关爱呵护奶奶,虽然奶奶一直心系前夫,从来没有爱过他。晚年的爷爷因为干活时不慎摔伤了腰,成为了家里的负担。他有两个儿子,但是两个儿子都嫌弃他,虽然两个儿子约定每人养他一个月,但是没有人主动去接,靠着爷爷自己的双脚,穿梭在两个儿子家中间。而父亲一直认为爷爷是一个累赘,盼望着他早死,甚至故意将饭桌抬高不给爷爷吃菜。我想这是底层人民的无奈,谁又愿意自己的亲生父亲早死呢,主要还是生产力不发达,种出来的粮食就那么多,多一个人吃饭就意味着大家都吃不饱。就像父亲自己认为的“又多了一个吃饭的”。爷爷的高光是在某一年即将去世的时候,他可能也意识到自己大限将至。村里已经持续几天下起了大雨,再这么下今年地里可能就要颗粒无收了。此时的爷爷挨家挨户劝说村民将家中供奉的菩萨拿出来扔掉,认为菩萨一点用都没有。甚至在雨中对着老天大骂,说出了本书中十分出名的句子“老天爷,你下屌吧,操死我吧。”。我觉得这是底层人对于老天的不公,以及自己命运坎坷无声的控诉。下面是我摘录的书中的一些好的句子:我不再装模作样地拥有很多朋友,而是回到了孤单之中,以真正的我开始了独自的生活。有时我也会因为寂寞而难以忍受空虚的折磨,但我宁愿以这样的方式来维护自己的自尊,也不愿以耻辱为代价去换取那种表面的朋友她只是沉浸在我当时年龄还无法理解的自我与孤独之中,她站在生与死的界线上,同时被两者抛弃。于是我找到了生与死之间的不同,活着的人是无法看清太阳的,只有临死之人的眼睛才能穿越光芒看清太阳。总之当我们凶狠地对待这个世界时,这个世界突然变得温文尔雅了。再也没有比孤独的无依无靠的呼喊声更让人战栗了,在雨中空旷的黑夜里。当我虚构的人物越来越真实时,我忍不住会去怀疑自己真正的现实是否正在被虚构。我开始喜欢行走,这是苏宇遗留给我的爱好。行走时思维的不断延伸,总能使我轻而易举地抵达过去,和昔日的苏宇相视而笑。阳光是很想照到这里来的,是山把它半路上劫走了。
2025年12月14日
1 阅读
0 评论
0 点赞
1
2
...
35