diff --git a/categories/index.html b/categories/index.html index 67aa2bef..231742fb 100644 --- a/categories/index.html +++ b/categories/index.html @@ -1,4 +1,4 @@ 所有分类 - Hybert's blog
+
\ No newline at end of file diff --git "a/categories/\351\227\256\351\242\230\350\256\260\345\275\225/index.html" "b/categories/\351\227\256\351\242\230\350\256\260\345\275\225/index.html" index 5d4a7d76..8976651a 100644 --- "a/categories/\351\227\256\351\242\230\350\256\260\345\275\225/index.html" +++ "b/categories/\351\227\256\351\242\230\350\256\260\345\275\225/index.html" @@ -3,6 +3,5 @@
+12-06
\ No newline at end of file diff --git "a/categories/\351\227\256\351\242\230\350\256\260\345\275\225/index.xml" "b/categories/\351\227\256\351\242\230\350\256\260\345\275\225/index.xml" index e70c611f..b798ac46 100644 --- "a/categories/\351\227\256\351\242\230\350\256\260\345\275\225/index.xml" +++ "b/categories/\351\227\256\351\242\230\350\256\260\345\275\225/index.xml" @@ -1 +1 @@ -问题记录 - 分类 - Hybert's bloghttps://wanghuibin0.github.io/categories/%E9%97%AE%E9%A2%98%E8%AE%B0%E5%BD%95/问题记录 - 分类 - Hybert's blogHugo -- gohugo.iozh-CNThis work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.Fri, 09 Jun 2023 09:30:53 +0800Vimscript-一键生成脚手架代码https://wanghuibin0.github.io/posts/2023/06/vimscript-loading-cpp-template-file/Fri, 09 Jun 2023 09:30:53 +0800作者https://wanghuibin0.github.io/posts/2023/06/vimscript-loading-cpp-template-file/最近复习C++,会写一些简短的程序做实验,每次都要手动添加头文件,手动定义main,太麻烦,于是写了一点vimscript,可以一键自动生成Latex排版中文的问题汇总https://wanghuibin0.github.io/posts/2021/12/handle-chinese-in-latex/Tue, 07 Dec 2021 17:30:34 +0800作者https://wanghuibin0.github.io/posts/2021/12/handle-chinese-in-latex/Latex排版中文的问题汇总 涉及两方面: 对中文字体的支持 对中文排版细节的处理 几个相关的宏包: CJK宏包:提供了对中文字体的支持 xeCJK和l如何批量压缩照片https://wanghuibin0.github.io/posts/2021/12/howto-reduce-photo-size-in-batches/Mon, 06 Dec 2021 14:30:36 +0800作者https://wanghuibin0.github.io/posts/2021/12/howto-reduce-photo-size-in-batches/如何批量压缩照片 现在手机拍照出来的照片体积都很大,而手机厂商提供的云服务空间又有限,拍照片稍微多一点的话,空间很快就不够用了。周末去了趟径山TeX Familyhttps://wanghuibin0.github.io/posts/2021/11/tex-family/Wed, 24 Nov 2021 20:44:15 +0800作者https://wanghuibin0.github.io/posts/2021/11/tex-family/TeX TeX 是 Donald Knuth 编写的一套排版系统,尤其擅长排版复杂的数学公式。TeX 语言定义了一套原语,用于对纯文本进行格式控制;并且在这些原语的基础上,定义了 \ No newline at end of file +问题记录 - 分类 - Hybert's bloghttps://wanghuibin0.github.io/categories/%E9%97%AE%E9%A2%98%E8%AE%B0%E5%BD%95/问题记录 - 分类 - Hybert's blogHugo -- gohugo.iozh-CNThis work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.Fri, 09 Jun 2023 09:30:53 +0800Vimscript-一键生成脚手架代码https://wanghuibin0.github.io/posts/2023/06/vimscript-loading-cpp-template-file/Fri, 09 Jun 2023 09:30:53 +0800作者https://wanghuibin0.github.io/posts/2023/06/vimscript-loading-cpp-template-file/最近复习C++,会写一些简短的程序做实验,每次都要手动添加头文件,手动定义main,太麻烦,于是写了一点vimscript,可以一键自动生成Latex排版中文的问题汇总https://wanghuibin0.github.io/posts/2021/12/handle-chinese-in-latex/Tue, 07 Dec 2021 17:30:34 +0800作者https://wanghuibin0.github.io/posts/2021/12/handle-chinese-in-latex/Latex排版中文的问题汇总 涉及两方面: 对中文字体的支持 对中文排版细节的处理 几个相关的宏包: CJK宏包:提供了对中文字体的支持 xeCJK和l如何批量压缩照片https://wanghuibin0.github.io/posts/2021/12/howto-reduce-photo-size-in-batches/Mon, 06 Dec 2021 14:30:36 +0800作者https://wanghuibin0.github.io/posts/2021/12/howto-reduce-photo-size-in-batches/如何批量压缩照片 现在手机拍照出来的照片体积都很大,而手机厂商提供的云服务空间又有限,拍照片稍微多一点的话,空间很快就不够用了。周末去了趟径山 \ No newline at end of file diff --git a/index.json b/index.json index 840d82d6..7f8520eb 100644 --- a/index.json +++ b/index.json @@ -1 +1 @@ -[{"categories":["工具"],"content":"使用git merge最棘手的问题就是会产生合并冲突,即merge conflicts。由于多人协作,冲突的问题大概是不可避免的,因此本文旨在尽量减少冲突,以及快速解决那些不可避免的冲突。 ","date":"2023-10-04","objectID":"/posts/2023/10/git-merge-best-practice/:0:0","tags":["问题记录","git"],"title":"git merge最佳实践","uri":"/posts/2023/10/git-merge-best-practice/"},{"categories":["工具"],"content":"尽量减少冲突 ","date":"2023-10-04","objectID":"/posts/2023/10/git-merge-best-practice/:1:0","tags":["问题记录","git"],"title":"git merge最佳实践","uri":"/posts/2023/10/git-merge-best-practice/"},{"categories":["工具"],"content":"理解冲突产生的原因 Merge总是发生在两个分支之间,而它们的不一致有可能导致冲突。git系统会尽量自动解决冲突,但在某些它认为存在风险的情况下,会留给用户做最后的决定。大概有这么几种情况: 被merge的两个分支修改了同一文件的同一行 分支A删除了某文件,分支B修改该文件 分支A删除了某文件中的某行,分支B修改该文件的该行 ","date":"2023-10-04","objectID":"/posts/2023/10/git-merge-best-practice/:1:1","tags":["问题记录","git"],"title":"git merge最佳实践","uri":"/posts/2023/10/git-merge-best-practice/"},{"categories":["工具"],"content":"减少冲突的方法 保持格式化规则的一致性。如果不同开发者使用不同的格式化风格,自动格式化工具就很可能会改到别的开发者的代码,就会产生冲突。 提高PR的频率。不要等积攒了一大堆改动后再推送,特别是在会跟其他人修改同一文件的情况下。 在本地尽量使用rebase。rebase会使commit历史更加线性化整洁化,相当于先把远程分支的更改同步到本地,然后在此基础上应用自己本地的修改。 这样可以把冲突尽量局限在本地,而减少合并到远程分支时的冲突。 需要注意的是不要在公共分支rebase,因为rebase会修改commit历史,很容易给协作者带来麻烦,请参见rebase的工作原理。 跟协作者沟通并建立约定。工具不能代替现实的沟通交流。 ","date":"2023-10-04","objectID":"/posts/2023/10/git-merge-best-practice/:1:2","tags":["问题记录","git"],"title":"git merge最佳实践","uri":"/posts/2023/10/git-merge-best-practice/"},{"categories":["工具"],"content":"解决冲突 解决冲突最简便易行的方法是使用emacs ediff工具。 ","date":"2023-10-04","objectID":"/posts/2023/10/git-merge-best-practice/:2:0","tags":["问题记录","git"],"title":"git merge最佳实践","uri":"/posts/2023/10/git-merge-best-practice/"},{"categories":["工具"],"content":"使用Emacs ediff解决冲突 在magit状态界面下,把光标移动到unmerged那一行,按e,就会打开ediff。 打开ediff后会出现如下界面,整个frame被分为了A, B, C三块窗口: 其中A代表目前正在操作的分支,B代表想要merge的目标分支,C代表merge的期望效果。 在这个界面下,按n/p可以在冲突点之间移动光标,定位到某个冲突点后,按a表示采纳窗口A的更改,按b表示采纳窗口B的更改, 采纳之后的效果会显示在窗口C。当然也可以在窗口C直接修改。将当前文件的冲突解决完后,按q退出ediff-session,这时会提醒用户保存文件,按y即可。 接下来,解决其他文件的冲突,循环往复直到所有冲突都解决。 ","date":"2023-10-04","objectID":"/posts/2023/10/git-merge-best-practice/:2:1","tags":["问题记录","git"],"title":"git merge最佳实践","uri":"/posts/2023/10/git-merge-best-practice/"},{"categories":["工具"],"content":"进阶用法 从magit进入ediff稍微有点繁琐,可以使用这个方法使该过程更加自动化。(需要根据自己的系统情况做一些修改) 其基本思路是写一个shell脚本调用emacs并进入ediff,然后使git mergetool调用该脚本。最终达到能通过git mergetool直接进入到ediff界面解决冲突。 ","date":"2023-10-04","objectID":"/posts/2023/10/git-merge-best-practice/:2:2","tags":["问题记录","git"],"title":"git merge最佳实践","uri":"/posts/2023/10/git-merge-best-practice/"},{"categories":["工具"],"content":"在windows上喜欢用onenote做笔记。onenote的一大特色是可以方便做表格化的笔记,但是在已有的表格内插入表格却略微有些繁琐。 幸运的是,可以用本文的方法将这个过程简化,达到一键添加表格的效果。本文将此方法分享给有需要的人。 原始onenote中,在表格内添加表格,需要:插入-表格-插入表格-填入行数和列数-确定,要连续点好几下鼠标,即便是用键盘,也需要按好几下按键,十分繁琐。 要使这个操作简化,首先要依次按:插入-表格,然后在“插入表格”这个按钮上右键,将该按钮添加到“快速访问工具栏”。此后便可以用“Alt+数字”访问该按钮。 这里数字代表的是该按钮在快速访问工具栏中的位置,比如,我把它放在第一个,我就可以用Alt+1来访问它。 按下Alt+1之后,还需要在弹出的对话框中填入行数和列数,再按确定,即可插入表格。 该方案已大大简化原来的操作,但还可以进一步简化。我绝大部分时候想要插入的表格都是1x1的,所以不想每次都手动填入行列数。 所以我进一步利用ahk脚本,将这一系列操作一键化。 脚本如下(需要先按照autohotkey软件v1.1): !i:: Send {Alt down}1{Alt up} ; 按下Alt+1组合键 Sleep 10 ; 暂停10毫秒 Send 1 ; 按下1 Sleep 10 Send {Tab} ; 按下Tab Sleep 10 Send 1 ; 按下1 Sleep 10 Send {Enter} ; 按下Enter Return 大功告成,此后即想要插入表格时,只需按Alt+i就可以了! ","date":"2023-10-04","objectID":"/posts/2023/10/onenote-insert-table/:0:0","tags":["问题记录","onenote"],"title":"onenote为插入表格添加快捷键","uri":"/posts/2023/10/onenote-insert-table/"},{"categories":["技术"],"content":"编程本质上是在对目标系统做抽象,不同的编程范式对目标系统做抽象的视角不同。 对于一个系统,命令式将之描述为一系列系统状态随时间演进的步骤;函数式将之描述为输出值和输入值之间的数学关系;声明式将之描述为系统各个组成部分应该满足怎样的约束条件;而面向对象则将之描述为系统内各组件之间的交互过程。 从功能性来说,一个系统可以用不同范式来描述,但特定的系统有其比较适合的描述方法,选择了适合的编程范式往往能达到事半功倍的效果;甚至对于一个系统的各个部分,所适合的描述方法也不同,这时应该对它们分开思考。 注意,编程范式不完全跟特定的编程语言绑定,更多强调的是一种思维方式,是看待目标系统的视角。 ","date":"2023-10-04","objectID":"/posts/2023/10/programming-paradigm/:0:0","tags":["软件设计"],"title":"关于编程范式","uri":"/posts/2023/10/programming-paradigm/"},{"categories":["问题记录"],"content":"最近复习C++,会写一些简短的程序做实验,每次都要手动添加头文件,手动定义main,太麻烦,于是写了一点vimscript,可以一键自动生成这种重复性的脚手架代码。如下: nnoremap \u003cC-x\u003et :call \u003cSID\u003eReadSourceTemplate()\u003cCR\u003e function! s:ReadSourceTemplate() if \u0026filetype == 'cpp' let l:template_file = '~/.config/vim/cpp_template.cpp' elseif \u0026filetype == 'c' let l:template_file = '~/.config/vim/c_template.c' endif exe ':0 read ' . l:template_file exe '/main' exe 'norm! o' endfunction 备注: 真正的脚手架代码事先写好放在特定的模板文件里:’~/.config/vim/cpp_template.cpp’, ‘~/.config/vim/c_template.c’ nnoremap行定义了普通模式下的快捷键\u003cC-x\u003et,用于触发一键生成脚手架文件的功能 函数体内先判断当前文件名后缀,据此决定载入哪个模板文件 接下来的三个execute将模板文件读入,然后自动定位到main的下一行 ","date":"2023-06-09","objectID":"/posts/2023/06/vimscript-loading-cpp-template-file/:0:0","tags":["vim"],"title":"Vimscript-一键生成脚手架代码","uri":"/posts/2023/06/vimscript-loading-cpp-template-file/"},{"categories":["读书笔记"],"content":"最近从信阅上借了两本书:《编程珠玑》和《代码大全》,这两本书以前都看过的,只是那时经验尚浅,这次阅读属于温故而知新,这里记录《编程珠玑》中一些我觉得比较重要的内容。 第1章 开篇 正确的问题。编程活动中,如果能够正确理解并定义了问题,这场战役就成功了90%。什么是问题?问题就是想要的目标状态和目前的实际状态之间的差异,所以要从这几个角度来思考:目标是什么?现状是什么?有哪些约束条件? 时间-空间折中与双赢。通常我们会认为时间和空间效率不可兼得,需要做trade-off。但是有时这个假设是不正确的,在某些情况下,减少程序的空间需求也会减少其运行时间。这可能是因为:需要处理的数据变少了,意味着处理这些数据所需的时间也减少了;同时将这些数据保存在内存中而不是磁盘上,进一步避免了磁盘访问的时间。所以,应尽可能寻找时空双赢的方案。 简单的设计。Antoine de Saint-Exupéry是法国作家(《小王子》的作者)兼飞机设计师,曾说:“设计者确定其设计已经达到了完美的标准不是不能再增加任何东西,而是不能再减少任何东西”。程序设计亦然。 ","date":"2023-06-08","objectID":"/posts/2023/06/reading-programming-pearls/:0:0","tags":["算法","程序设计"],"title":"读《编程珠玑》","uri":"/posts/2023/06/reading-programming-pearls/"},{"categories":["个人见解"],"content":"知识、能力和智慧三者彼此不同,但又相互联系,本文旨在理清三者的概念,从而使自我成长的道路更加明晰。 ","date":"2022-12-08","objectID":"/posts/2022/12/knowledge-ability-wisdom/:0:0","tags":null,"title":"知识、能力和智慧","uri":"/posts/2022/12/knowledge-ability-wisdom/"},{"categories":["个人见解"],"content":"什么是知识 知识跟具体的事物有关,是关于某些事物的事实、道理,或有关问题的解决方法。通常,一个领域的知识由一些核心概念和其他非核心概念组成,这些概念形成一个知识结构。重在记忆和理解。 ","date":"2022-12-08","objectID":"/posts/2022/12/knowledge-ability-wisdom/:1:0","tags":null,"title":"知识、能力和智慧","uri":"/posts/2022/12/knowledge-ability-wisdom/"},{"categories":["个人见解"],"content":"什么是能力 能力是在实践中解决问题的本领,也跟具体的问题密切相关。需要问题相关的领域知识加上行动力。重在练习和行动。 ","date":"2022-12-08","objectID":"/posts/2022/12/knowledge-ability-wisdom/:2:0","tags":null,"title":"知识、能力和智慧","uri":"/posts/2022/12/knowledge-ability-wisdom/"},{"categories":["个人见解"],"content":"什么是智慧 智慧主要指为人处世的一些普遍原则,如:善良、真诚、谦逊、减法、耐心、平和、积极、勤奋、勇敢。这些原则会在生活的各个方面、各个时间段都适用。智慧来自于对长期因果的洞见和觉悟。 ","date":"2022-12-08","objectID":"/posts/2022/12/knowledge-ability-wisdom/:3:0","tags":null,"title":"知识、能力和智慧","uri":"/posts/2022/12/knowledge-ability-wisdom/"},{"categories":null,"content":"Type system的基本目标是保证程序中不会出现某些错误,本文先谈什么叫错误,错误都有哪些种类,然后再谈类型系统的一些基础概念。 ","date":"2022-11-04","objectID":"/posts/2022/11/type-system-basics/:0:0","tags":null,"title":"类型系统的基本概念","uri":"/posts/2022/11/type-system-basics/"},{"categories":null,"content":"execution error 需要区分两种情况:trapped errors和untrapped errors,前者发生时会导致程序立即终止,而后者发生时不会导致立即终止,而是继续执行但后续行为不可预知。典型的untrapped error如C语言里面的数据越界读写。 ","date":"2022-11-04","objectID":"/posts/2022/11/type-system-basics/:1:0","tags":null,"title":"类型系统的基本概念","uri":"/posts/2022/11/type-system-basics/"},{"categories":null,"content":"language safety 如果一段程序不会发生untrapped error,就称这段程序是safe的。如果一个语言写成的程序都是safe的,那么就称该语言为safe language;否则就是unsafe language。 ","date":"2022-11-04","objectID":"/posts/2022/11/type-system-basics/:2:0","tags":null,"title":"类型系统的基本概念","uri":"/posts/2022/11/type-system-basics/"},{"categories":null,"content":"Well-behaved vs. ill-behaved 设计语言时会指定所有可能发生的execution error的一个子集,为forbidden error。这个子集必须包含所有的untrapped error和一部分trapped error。如果一段程序不会出现forbidden error,就称之为well-behaved,否则称为ill-behaved。 由此定义可知,well behavior比safety要求更严格。一段safe的程序并不一定是well-behaved,因为还可能发生trapped error。但是如果是well-behaved,那么一定safe。 ","date":"2022-11-04","objectID":"/posts/2022/11/type-system-basics/:3:0","tags":null,"title":"类型系统的基本概念","uri":"/posts/2022/11/type-system-basics/"},{"categories":null,"content":"type system 排除程序中错误的手段有多种,type system只是其中一种。TAPL中对type system的定义如下: A type system is a tractable syntactic method for proving the absence of certain program behaviors by classifying phrases according to the kinds of values they compute. 根据以上定义,做三点说明: 是用来对系统进行推理的一种工具 其目标是排除程序中某些特定类型的错误,而排除哪些错误与与具体类型系统的具体目标有关 其手段是对程序中变量的取值集合进行分类,相当于对程序动态行为的一种静态近似 ","date":"2022-11-04","objectID":"/posts/2022/11/type-system-basics/:4:0","tags":null,"title":"类型系统的基本概念","uri":"/posts/2022/11/type-system-basics/"},{"categories":null,"content":"type type定义了变量可能的取值集合以及允许在其上执行的操作集合。如:整数类型,浮点数类型,布尔类型。 ","date":"2022-11-04","objectID":"/posts/2022/11/type-system-basics/:5:0","tags":null,"title":"类型系统的基本概念","uri":"/posts/2022/11/type-system-basics/"},{"categories":null,"content":"typed languages vs. untyped languages 配备type system的语言叫typed language,没有配备type system的语言叫untyped language。Pure lambda calculus就是典型的untyped language。 ","date":"2022-11-04","objectID":"/posts/2022/11/type-system-basics/:6:0","tags":null,"title":"类型系统的基本概念","uri":"/posts/2022/11/type-system-basics/"},{"categories":null,"content":"type checking 一般来说,type system的基本目标是要保证safety,进阶目标是要保证well behaviour,这因语言的具体设计而异。保证type system实现其目标的手段type checking,这是在运行前对程序进行检查,由于是在运行前检查,也叫static checking,执行检查的工具是type checker。如果一个程序经受住了type checker的检查,则称之为well typed,否则称为ill typed。 保证程序不发生错误的手段不是只有type checking,比如untyped language(如LISP)根本没有类型系统,但它可以使用运行时检查来排除掉所有的forbidden error。由于是在运行时检查的,所以叫dynamic checking。 ","date":"2022-11-04","objectID":"/posts/2022/11/type-system-basics/:7:0","tags":null,"title":"类型系统的基本概念","uri":"/posts/2022/11/type-system-basics/"},{"categories":null,"content":"Strongly checked vs. weakly checked 现实中一些语言并不保证safety或well behaviour,也就是说它们并不保证检查出所有的untrapped error,我们称这类语言为weakly checked,而称提供了这种保证的语言为strongly checked。 ","date":"2022-11-04","objectID":"/posts/2022/11/type-system-basics/:8:0","tags":null,"title":"类型系统的基本概念","uri":"/posts/2022/11/type-system-basics/"},{"categories":["个人见解"],"content":"为什么写博客 书写帮助自己思考 把自己有价值的思考/知识分享给别人 提高表达能力 交志同道合的朋友 通过接受反馈认识和改善自己 ","date":"2022-10-23","objectID":"/posts/2022/10/blogging/:1:0","tags":[],"title":"关于写博客","uri":"/posts/2022/10/blogging/"},{"categories":["个人见解"],"content":"以什么原则写 要真诚,不写违心的话 要追求质量,为读者增加价值 忽略非建设性的批评 保持简洁 ","date":"2022-10-23","objectID":"/posts/2022/10/blogging/:2:0","tags":[],"title":"关于写博客","uri":"/posts/2022/10/blogging/"},{"categories":["个人见解"],"content":"写什么 对某个问题的有价值的思考 专业领域的知识 读书笔记 某个实际问题的解决方案 生活中有重要意义的事件 生活理念、价值观、感悟 ","date":"2022-10-23","objectID":"/posts/2022/10/blogging/:3:0","tags":[],"title":"关于写博客","uri":"/posts/2022/10/blogging/"},{"categories":["个人见解"],"content":"不写什么 心情碎碎念 流水账 ","date":"2022-10-23","objectID":"/posts/2022/10/blogging/:4:0","tags":[],"title":"关于写博客","uri":"/posts/2022/10/blogging/"},{"categories":["要事记录"],"content":"最近刚换了新电脑。趁此辞旧迎新之际,我做了一次数字大扫除。 笔记。之前的笔记散落各处:onenote,有道云,语雀,obsidian,org-roam,flomo,手机便笺…… 这次做了一次系统性的整理,全部收归到onenote来。删除了一部分,合并了一部分,还根据已有的笔记内容重新分了类,清爽了许多。今后打算以onenote为核心做知识管理,其他分散的笔记会定期(比如每周)整理到onenote中来。需要记忆的导入到anki中去。 照片。删了许多没用的照片,值得留下来的照片也分类存放,分类的主要标准是时间,其次是主题,照片备份到nas。有价值的截图直接贴到onenote统一管理。 电子书。之前用来管理电子书的calibre有个很大的缺点:无法对电子书用层级分类。于是决定回归最原始的方法——电脑文件夹。我把所有电子书导出,去重,删除了许多没用的,然后重新分类。然后备份到nas。 影视资源。包括电影电视剧还有很多视频教程,删了大部分,只留下很小一部分真正有用的。 邮件订阅。很多从来不看的邮件直接unsubscribe了。 RSS。价值不高的RSS源直接取消关注了。 浏览器书签。删。 手机app。消息通知全部禁止。 网盘。减少网盘的使用,删除了网盘里大量现在用不到的资源。 知乎、b站、油管收藏夹。重温收藏夹的内容,发现大部分已经没有收藏的价值了,删除。有价值的我会整理到onenote中。还在进行中。 在这个信息泛滥的时代,很多人都有信息松鼠病(我也是其中一员),囤积了很多数字资源,觉得以后会用到,然而大多数资源都静静地躺在硬盘里从未打开过。数字大扫除是一个费力劳神的事情,过程中需要重温自己想要什么,需要思考东西的分类,需要判断东西是去还是留,要留在哪里。在大扫除过程中,面对许多文件,我常常觉得“这个以后会用到吧”而不舍得,最后还是狠心删了,也有一些文件,犹豫了几下还是没舍得删。 就像家里需要定期打扫卫生以维持整洁一样,数字空间其实也需要定期做一下整理,尤其是对于需要长期使用电脑工作的人来说。我打算每周都花一小时来整理自己的数字空间,用”断舍离“为自己创造一个干净清晰有秩序的工作环境。 ","date":"2022-10-05","objectID":"/posts/2022/10/digital-clean/:0:0","tags":["极简主义"],"title":"数字大扫除","uri":"/posts/2022/10/digital-clean/"},{"categories":["要事记录"],"content":"实际上是我的跑步计划。之所以名为“长征”,是因为我目标跑步距离是25000里,刚好是红军长征的距离。 我给实现这个目标的时限是30年。这个时间足够长,一方面是为了将跑步作为此后生活中重要的一部分,保证我身体健康,精力充沛;另一方面,生活中总会有各种意外,一小段时间没跑也不至于影响大局,有足够的余地灵活安排,不会给自己带来额外的心理压力。 至于距离设置为25000里,是为了向红军长征致敬。前几年看《长征》电视剧,就萌生了重走长征路的想法,但至今尚未有合适的机会。以后能不能实现重走长征路先放一边,我这跑个长征的距离,也算是以另一种形式在实现这个愿望了。 25000里是12500公里。如果我每年跑500公里,那么25年就可以完成这个目标,30年时间绰绰有余了。所以我每年给自己的目标也不是硬性的500公里,多一点少一点都可以,可能年轻时多跑一点,年老时少跑一点。 今天,刚刚完成了第一个500公里,第一次跑步是去年的9月5日,今天是8月20日,略少于一年。很开心,特发此文以纪念! ","date":"2022-08-20","objectID":"/posts/2022/08/long-march-plan/:0:0","tags":null,"title":"“长征”计划-第一个500公里","uri":"/posts/2022/08/long-march-plan/"},{"categories":["生活感悟"],"content":" 读完所有书 知道所有知识 后悔昨天 担心明天 赢得辩论 他人对你的看法 取悦所有人 所有事情都想正确 社交媒体 新闻八卦 b站, youtube, 知乎… 抽烟喝酒 Porn 所用物品的品牌 抱怨 妒忌 自责 购物 买东西花过多时间挑选 过度整理 最新的软件 与目标无关的技能 电视剧,电影,纪录片,综艺 ","date":"2022-08-20","objectID":"/posts/2022/08/unimportant-things/:0:0","tags":["极简主义"],"title":"生活中不重要的事情","uri":"/posts/2022/08/unimportant-things/"},{"categories":["读书"],"content":"什么是整体性学习 整体性学习需要采取多种途径综合学习,在于创造信息的网络,一个知识与另一个知识相互关联,那些相互关联的知识网络使你真正做到对知识的完全理解,从而轻松地驾驭知识。 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:1:0","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"核心目的 建立知识间的联系,形成结构/模型和高速公路. ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:1:1","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"核心概念 结构: 某一块紧密联系的知识. 模型: 对结构进行抽象,进行压缩编码.随着理解深入,需要对模型进行更新 高速公路: 将结构与结构联系起来.有一些成熟结构(感知结构,关系结构,基础数学结构)可资利用. ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:1:2","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"信息的类型 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:2:0","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"信息的分类及应对 随意信息 一系列缺少逻辑分类的事实,日期,定义和规则.用联想法,挂钩法,压缩法去记忆 观点信息 存在争论的信息.需要速读来收集信息,并用图表法列出. 过程信息 教导如何行动的信息.先建立正确的背景观念,不断练习,并在练习中归纳出模型.这类信息必须投入大量的时间联系. 具体信息 那些在实际中可以被感官接收的信息.内在化有助于将信息与多个感官相联系. 抽象信息 缺少与感官直接联系的信息,如数学,计算机.内在化和比喻法对于将复杂知识简化至关重要;随时进行模型纠错. 学习一个新问题时,首先要判断信息主要属于哪一类?确定信息的类型可以帮助我们决定学习时采用什么技术,以及估计记忆时可能会遇到的困难。 信息结构的强弱 随意信息结构最弱,具体信息和过程信息结构最强.应该尽量将弱信息结构转变为强信息结构. ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:2:1","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"整体性学习的具体策略 以实际应用为目的进行学习. ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:3:0","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"获取知识 快速阅读 积极阅读 带着问题阅读 笔记流 步骤 首先写下最主要的观点,尽量用很短的单词来替换完整的句子 一旦你写下了一个观点,下一步就是在这个观点和其他观点之间画上一些箭头,观点不是建立成金字塔式的结构,而是呈现出相互关联的关系,这个过程与实际的整体性学习策略类似,观点连在一张网中。 不需要画得好看 识别重点以及知识间的联系 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:3:1","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"联系观点 比喻法 不熟悉的知识和熟悉的知识,建立桥梁. 找到比喻要保证让10岁孩子听懂. 内在化 想象一副图像,并把其他感觉也加入图像中,还可以加入情感. 比喻内在化 理解抽象概念时,可以将比喻法和内在化结合起来 图表法 流程图 绘制一系列的步骤 绘制历史事件 绘制一个系统 概念图 核心概念/衍生概念以及它们之间的关系 从最重要的观点出发,不断发出分支细化知识及分解观点 图像 简单的涂鸦 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:3:2","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"随意信息的处理 联想法 创造顺序清单 给清单中的每一项设一个有关联的符号 创建属于自己的联想(尽量夸张,奇特) 挂钩法 记忆事件的日期 创造与事件相关的图像 与数字挂钩 将事件与数字的特殊含义(事先自己编造)建立联系 信息压缩技术 记忆术 每句话抽出一个字或一个词,组成新的词或新的句子 图像联系 将几个信息联系起来,放在图表里. 笔记压缩法 将大量只是减少到几页笔记,从整体上审视之. 拿几张空白纸 用最小的字,写下笔记中的主要观点. 接着写下与之相联系的观点/公式/概念或定义. 持续上述自由写下观点的过程,直至将笔记中每一个主要观点都写下来为止. 有时候可以更进一步,将压缩后的信息整理得更有条理. ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:3:3","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"知识的延伸 用于实际 用编程思想解决生活中的问题 用会计学管理个人财务 模型纠错 在实践中发现问题,改进自己的模型. 散弹枪策略 每种类型的问题都做一做,同一类的问题不要重复 把练习时间分配到每一天 以项目为基础的学习 设定一个需要1~3个月达成的目标,围绕着目标去学习. 从小项目开始 将完成项目的过程记录下来 最好项目本身也有意义 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:3:4","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"费曼技巧 选择要学习的概念 设想你是老师,正在试图教会一名新生这个知识点,把自己的解释记录下来 当你感到疑惑时,返回去重新解释 简单化和比喻 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:3:5","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"提高效率的好习惯 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:4:0","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"能量管理 增加能量储备 每周运动3~5次 良好的睡眠 健康的饮食 足量的饮水 日程表由线性改为循环 一周休息一天 晚上不干活儿 90分钟为一个学习周期 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:4:1","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"决不拖延 每周周末,列一个清单,包括所有的任务/作业以及你想在下周完成的读书和学习活动 每天晚上,检查周计划,列出每日目标清单 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:4:2","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"批处理 类似的零散工作要集中起来一次性处理完. 耗时不太长(\u003c3h)的那些适合用批处理,如看邮件 能一次性完成的工作就一次性完成 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:4:3","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"有组织 所有的物品都放在固定的位置 随身携带一个记事本 坚持日历和做事清单 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:4:4","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"自我教育 每日阅读 每日练习 每日目标 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:4:5","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"克服挫折 遇到任何障碍可以写下来 使用网络 找一本\"怎么做\"的工具书 换一个角度试试 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:4:6","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"设置学习目标 目标要吸引自己. 所有的目标都要写下来 让目标客观化,可衡量 设定有些困难,但是努把力也可以达到的截止期限 将目标的完成转化为每日和每周的具体行动 经常看看自己的目标 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:4:7","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["杂记"],"content":" 1021年,生于江西抚州临川 1030年,十岁,父王益知韶州,安石随之 1033年,十三岁,祖父去世,随父归临川 1036年,十六岁,随父进京 1037年,十七岁,随父至江宁,立志,用功读书 1039年,十九岁,父去世,居丧江宁,读书 1041年,二十一岁,科举礼部考试 1042年,二十二岁,进士及第,签书淮南判官,至扬州 1045年,二十五岁,任满归京师 1047年,二十七岁,知鄞县,开始尝试青苗法 1050年,三十岁,任满离开鄞县,回京师听调 1051年,三十一岁,通判舒州 1054年,三十四岁,舒州任满还京师,作“游褒禅山记”,然后任群牧判官 1057年,三十七岁,离京赴任知常州 1058年,三十八岁,自常州移提点江南东路刑狱,赴饶州 1059年,三十九岁,为三司度支判官 1061年,四十一岁,以三司度支判官知制诰,纠察在京刑狱 1063年,四十三岁,英宗立,安石丁母忧,解官归江宁 1064年,四十四岁,居丧江宁讲学 1067年,四十七岁,英宗卒,神宗立,安石以知制诰出知江宁府 1068年,四十八岁,奉诏越次入对 1069年,四十九岁,任参知政事,开始推行新法 1073年,五十三岁,王韶击败吐蕃木征等,收复洮、岷诸州,神宗以所服玉带赐安石 1074年,五十四岁,安石请求罢相,以吏部尚书、观文殿大学士出知江宁府 1075年,五十五岁,安石复相,颁《三经新义》 1076年,五十六岁,再度罢相,为镇南军节度使、同平章事、判江宁府 1079年,五十九岁,营建半山园;发生乌台诗案 1085年,六十五岁,神宗崩,新法遭全面否定 1086年,六十六岁,安石病死于金陵 ","date":"2022-04-19","objectID":"/posts/2022/04/life-of-wanganshi/:0:0","tags":["人物"],"title":"王安石生平","uri":"/posts/2022/04/life-of-wanganshi/"},{"categories":["技术"],"content":"程序分析的目的是什么 对计算机程序进行自动化的处理,以确认或发现其特性,比如性能、正确性、安全性等. 其结果可用于编译优化、提供警告信息等,比如被分析程序在某处可能出现指针为空、数组下标越界的情形等. ","date":"2022-04-19","objectID":"/posts/2022/04/program-analysis-intro/:1:0","tags":["程序分析"],"title":"程序分析简介","uri":"/posts/2022/04/program-analysis-intro/"},{"categories":["技术"],"content":"被分析的对象 被分析的程序可以是源代码(各种语言),也可以是是二进制可执行代码(各种指令集),也可以是中间代码(LLVM IR, VEX IR). ","date":"2022-04-19","objectID":"/posts/2022/04/program-analysis-intro/:1:1","tags":["程序分析"],"title":"程序分析简介","uri":"/posts/2022/04/program-analysis-intro/"},{"categories":["技术"],"content":"欲获取的程序性质 根据分析目的不同,非常多样.大致可分为性能/正确性/安全性. ","date":"2022-04-19","objectID":"/posts/2022/04/program-analysis-intro/:1:2","tags":["程序分析"],"title":"程序分析简介","uri":"/posts/2022/04/program-analysis-intro/"},{"categories":["技术"],"content":"如何评价程序分析技术 不仅要看其分析对象的规模、复杂度,分析过程的效率,还要看其对用户的要求,发现缺陷的严重程度,以及误报率、漏报率等. ","date":"2022-04-19","objectID":"/posts/2022/04/program-analysis-intro/:2:0","tags":["程序分析"],"title":"程序分析简介","uri":"/posts/2022/04/program-analysis-intro/"},{"categories":["技术"],"content":"有哪些程序分析技术 总体上分为动态和静态.所谓的静态分析,是指对程序代码进行自动化的扫描、分析,而不必运行程序;与静态分析相对应的是动态分析技术,其利用程序运行过程中的动态信息,分析其行为和特性. 以下几种都是静态分析技术. ","date":"2022-04-19","objectID":"/posts/2022/04/program-analysis-intro/:3:0","tags":["程序分析"],"title":"程序分析简介","uri":"/posts/2022/04/program-analysis-intro/"},{"categories":["技术"],"content":"抽象解释 基于抽象解释来设计程序分析,本质上是通过对程序语义进行不同程度的抽象,以在分析精度和计算效率之间取得权衡.由于分析过程赋予了源程序一种抽象语义,所以分析器就变成了一种在抽象语义上的解释器,这也是名称\"抽象解释\"的由来. 抽象解释的典型应用案例是,Astrée 成功应用于空客 A340(约 13.2 万行 C 代码)、 A380(约 35 万行 C 代码)等系列飞机飞行控制软件的自动分析并实现了分析的零误报. 数据流分析 通过分析程序状态信息在控制流图中的传播来计算每个静态程序点(语句)在运行时可能出现的状态.可视为抽象解释的一个特例,其计算的状态信息(抽象域)局限于有限高度的格. 主要应用在编译器中,其分析结果可用于编译优化. ","date":"2022-04-19","objectID":"/posts/2022/04/program-analysis-intro/:3:1","tags":["程序分析"],"title":"程序分析简介","uri":"/posts/2022/04/program-analysis-intro/"},{"categories":["技术"],"content":"符号执行 使用符号化输入代替实际输入以模拟执行(不实际执行)被分析程序,程序中的操作被转化为相应的符号表达式操作.在遇到条件语句时,程序的执行也相应地分叉以探索每个分支,分支条件则被加入到当前路径的路径条件(path condition)中.通过调用 SAT/ SMT 求解器,对路径条件的可满足性进行求解来加以判断. 典型的应用案例是微软公司把自己开发的二进制动态符号执行工具 SAGE 用于 Win 7 的测试,发现了文件模糊测试中 1/3 的 缺陷;2016 年 8 月,在美国 DARPA 举办的网络空间安全竞赛(CGC)中,最终排名前三的参赛队伍全 部使用了符号执行技术,用于自动发现并利用二进制程序中的漏洞. ","date":"2022-04-19","objectID":"/posts/2022/04/program-analysis-intro/:3:2","tags":["程序分析"],"title":"程序分析简介","uri":"/posts/2022/04/program-analysis-intro/"},{"categories":["技术"],"content":"基于机器学习的程序分析 随着近年来通用计算设备能力的提高,海量的程序执行数据被存储和管理;研究者采用机器学习、统计分析等系列技术提升现有的程序分析能力. ","date":"2022-04-19","objectID":"/posts/2022/04/program-analysis-intro/:3:3","tags":["程序分析"],"title":"程序分析简介","uri":"/posts/2022/04/program-analysis-intro/"},{"categories":["技术"],"content":"待补充… ","date":"2022-04-19","objectID":"/posts/2022/04/program-analysis-intro/:3:4","tags":["程序分析"],"title":"程序分析简介","uri":"/posts/2022/04/program-analysis-intro/"},{"categories":["技术"],"content":"Reference 张健 等:程序分析研究进展 ","date":"2022-04-19","objectID":"/posts/2022/04/program-analysis-intro/:3:5","tags":["程序分析"],"title":"程序分析简介","uri":"/posts/2022/04/program-analysis-intro/"},{"categories":["思维"],"content":"就像吃饭一样,我们吃的东西会影响我们的身体健康状态.信息就好像是我们的精神食粮,我们每天都在接收处理信息,它会深刻影响我们的精神健康状态. 有人说,我有分辨甄别能力,我不会受到那些负面影响.其实不然,很多人低估了负面信息的影响,我们看到的听到的信息,其实都会潜移默化地对我们的精神产生影响,很多是潜意识层面的,反思能力不强的人根本觉察不到. 即便是有甄别信息的能力,难道接收处理那些信息不需要成本吗?需要我们付出极大的时间和精力成本,而这些时间和精力本来可以用来做更有价值的事情. 有人说,我如果不关注这些信息,我就跟世界脱节了,就没法跟身边的小伙伴愉快的聊天了.诚然,这话有一定的道理.我们都害怕孤独,希望融入到集体中,在聊天的时候能够接得上话,不至于显得特别无知.这是可以理解的.可是害怕孤独更多的是因为我们内心不够强大,修炼自己的内心才是更好的解决之道.我们期望能够在集体聊天时接得上话,这是合理的,也是应该的,但这个只需要我们对时事新闻保持一点点的关注就够了,知道他们说什么就可以了,能够在小伙伴说的时候问出正确的问题就行了.这些都是时效性很短的东西,不需要在这些事情上寻找优越感,不用在这些事情上懂得很多. 另一方面,在聊天时要克制自己显摆的欲望,要更多的给别人说话的机会,那么适当的发问就很重要.甚至,我们可以把这个聊天也当作一个信息源,这就更加节约了自己获取信息的成本.利己利人,何乐而不为? 强调一下,当然不是要完全不关心时事,否则,大家在讨论什么,你一点也不知道,一问三不知.时间久了确实会脱节的.所以说,要关注,只是关注的程度要足够低罢了. ","date":"2022-03-16","objectID":"/posts/2022/03/information-source-control/:0:0","tags":["方法论"],"title":"为什么要控制信息源","uri":"/posts/2022/03/information-source-control/"},{"categories":["思维"],"content":"有这三种笔记本就够了:学习笔记本,任务管理笔记本和解决问题笔记本。其中学习笔记本侧重于知识输入,帮助知识内化在自己的头脑中,并形成一个知识库,作为自己的外脑供检索。而任务管理笔记本和解决问题笔记本侧重于输出,都是为了指导自己的行动。任务管理笔记本着眼在宏观,提供一个整体的蓝图,用于计划我要做哪些事情;而解决问题笔记本着眼在微观,针对一个个具体的任务和问题,用于引导自己思考我要怎么解决这个问题。 ","date":"2022-02-08","objectID":"/posts/2022/02/my-note-taking-system/:0:0","tags":["方法论"],"title":"你需要的三种笔记本","uri":"/posts/2022/02/my-note-taking-system/"},{"categories":["思维"],"content":"道理与解数学题是类似的。 ","date":"2022-02-08","objectID":"/posts/2022/02/how-to-solve-problems/:0:0","tags":["方法论"],"title":"你会解决问题吗","uri":"/posts/2022/02/how-to-solve-problems/"},{"categories":["思维"],"content":"有的人对很多领域都有所涉猎,博闻强识,兴趣广泛,却没有一件事情能做到顶尖水平;有的人只在一个领域深耕,兴趣单一,但对深耕的领域极为精通。 我们称前者为通才,后者为专才。当然,有一些天才能做到既通又专,在很多领域都能做到顶尖水平,但天才毕竟极少,是我们羡慕但学不来的。 那么,对于我们这些不甘于平庸的平凡人来说,努力的方向是成为通才呢,还是成为专才呢? 我的答案是,单单考虑社会价值的话,应该以成为专才为首要目标。 理由如下: 我们是平凡人,不是天赋型选手 现代社会是一个高度分工和专业化的社会 我们时间和精力有限 我们虽然是平凡人,但却往往对某一领域比较擅长或比较感兴趣 有人会拿「木桶理论」说事,说应该补足个人能力的短板,否则个人的发展就会受到那块短板的制约。这话有一定的道理,但是却很容易误导人,原因在于我们并不清楚短板应该补足到何种程度。 我们去接触学习各种领域的知识,美其名曰「补足短板」「兴趣广泛」,其实有时只是满足自己的猎奇心理,有时只是为了造成在努力学习的假象,缓解自己的知识焦虑,有时二者兼而有之。 所以,不要被「木桶理论」所迷惑,要先以做一个专才为目标,深耕一个领域,刻意练习,投入时间来积累,做到专家的水准。 或者更准确的说法,如做出好选择 (豆瓣)所说,做一个「一专多能零缺陷」的人。 这个词语本来是说产品设计的,但是对个人成长也同样适用。一个人的社会价值,跟一个产品的社会价值,道理是一样的。当我们把人当作社会中的产品来思考,「一专多能零缺陷」的道理就很明白了。 又有人会说,把一个人的价值等同于其社会价值,太狭隘了,我们应该跟随内心的兴趣,不要在乎外部评价。 这话也有道理,一个人的价值不能等同于外部评价。但是对于普通人,外部评价却对我们对自我的看法有很大的影响(除非是像庄子那样的圣人),我们对自我的看法又决定了我们的自尊、自信和幸福感,试想一个不停遭受打击和嘲讽的人,很难拥有自信健康的心理。 另外,我所说的社会价值也不全是外部评价,为社会做点贡献,为社会做更多的贡献,也是我心向往之的一种活法,这是应该在意的。至于后续的评价,更多的只是自然而然的结果罢了,这种结果有时不公,有时迟到,这才是不要过分在意的对象。 总之,要记住少即是多,「一专多能零缺陷」。专业领域踏实积累,刻意练习;其他领域有需要则了解,不需要则不需要去了解,牢记二八定律;至于缺陷,将之弥补到不会成为瓶颈的程度即可。 ","date":"2022-02-08","objectID":"/posts/2022/02/generalist-or-specialist/:0:0","tags":["方法论"],"title":"做通才还是专才","uri":"/posts/2022/02/generalist-or-specialist/"},{"categories":["思维"],"content":"引子 著名的任务管理四象限法,将任务按照重要性和紧急性两个维度来考量。紧急性主要与deadline有关,是比较容易判断的。但是任务的重要性,却不像表面上看起来那么容易判断。 那么有没有比较科学又容易执行的判断方法呢? 采铜在知乎上的一个回答中,提到的两个概念:收益值与半衰期,为回答这个问题提供了一些启发。 他是这么说的: 当我们评价一个事情值不值得去做、应该花多少精力去做的时候,应该抛弃单一的视角,而是分从两个不同的维度来看,一是该事件将给我带来的收益大小(认知、情感、物质、身体方面的收益皆可计入),即「收益值」;二是该收益随时间衰减的速度,我称为「收益半衰期」,半衰期长的事件,对我们的影响会持续地较久较长。 如此,收益值和半衰期正交一下就构成了一个四象限图,所有的任务都可以放到这个图的某个象限里。文中举了一些例子: 高收益值、长半衰期事件:找到自己的真爱、学会一种有效的思维方法、完成一次印象深刻的旅行、与大牛进行一场意味深长的谈话; 高收益值、短半衰期事件:买一件时髦的衣服、玩一下午手游、吃一顿大餐、看AV撸管; 低收益值、长半衰期事件:练一小时书法、背诵一首诗、背牢十个单词、看一本经典小说、读懂哲学著作的一个章节、多重复一次技能练习、认真地回复一封友人的邮件; 低收益值、短半衰期事件:挑起或参与一次网络掐架、漫无目的地网上闲逛刷微博、使用微信陌陌知乎等进行成功率很低的勾搭。 ","date":"2022-02-07","objectID":"/posts/2022/02/importance-estimation/:1:0","tags":["方法论"],"title":"如何确定事情的重要性","uri":"/posts/2022/02/importance-estimation/"},{"categories":["思维"],"content":"用收益值和半衰期来确定重要性 借鉴这个思路,我们需要确定事情的重要性时,就按照这两个维度进行思考,第一个维度要考虑做了这个事情收益有多大,第二个维度要考虑这个收益是否能对未来影响深远。 如此,思考更加系统,而且更加细化。 对于一件事情,完成之后收益越大,能够影响未来的时间越长,那么相应地也就越重要。 ","date":"2022-02-07","objectID":"/posts/2022/02/importance-estimation/:2:0","tags":["方法论"],"title":"如何确定事情的重要性","uri":"/posts/2022/02/importance-estimation/"},{"categories":["思维"],"content":"收益的衡量 这里还有一个问题:如何判断一件事情的收益呢? 这与个人的价值观关系很大。一个人认为价值很大的事情对另一个人价值可能很小,比如有的人就喜欢时髦的衣服,有的人却喜欢穿得仆仆素素。 所以我们要先问自己一个问题:我到底需要什么?之前的文章如何做更好的决定也探讨了这个问题。 只有知道自己需要什么,才好确定做成这件事的结果是不是自己期待的,以及到底有多期待。 然后确定事情的收益值就成了水到渠成的事情。 ","date":"2022-02-07","objectID":"/posts/2022/02/importance-estimation/:3:0","tags":["方法论"],"title":"如何确定事情的重要性","uri":"/posts/2022/02/importance-estimation/"},{"categories":["思维"],"content":"总结 要确定一件事情的重要性的时候,要问自己三个问题: 我需要什么?我的价值观排序是怎样的? 做成这个事情的收益是大还是小? 这个收益对未来的影响是否深远? ","date":"2022-02-07","objectID":"/posts/2022/02/importance-estimation/:4:0","tags":["方法论"],"title":"如何确定事情的重要性","uri":"/posts/2022/02/importance-estimation/"},{"categories":["思维"],"content":"参考 收益值与半衰期 | Notes ","date":"2022-02-07","objectID":"/posts/2022/02/importance-estimation/:5:0","tags":["方法论"],"title":"如何确定事情的重要性","uri":"/posts/2022/02/importance-estimation/"},{"categories":["读书"],"content":"职责链模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:1:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 有多个对象可以处理同一个请求,具体是哪个对象由运行时刻自动确定 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:1:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 能够处理请求的对象继承自同一个抽象类,运行时刻组成链状结构。 客户发请求给这条链的第一个对象,如果这个对象能处理则处理,不能处理则交给这条链的下一个对象。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:1:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:1:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"命令模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:2:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 有时必须向某对象提交请求,但并不知道关于被请求的操作或请求的接受者的任何信息。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:2:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。 把接受者封装到命令对象里面,然后一起交给invoker,invoker在将来的某一时刻会回调这个命令对象,这时命令对象会给接受者发消息,执行动作。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:2:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 动态活动图 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:2:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"其他 在函数式语言中,由于函数可以很方便的传来传去,就不需要命令模式这么麻烦了。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:2:4","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"解释器模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:3:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:3:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 实现一个DSL的解释器 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:3:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:3:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"其他 一般情况下不需要这么复杂的方案,所以这里记的很简略。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:3:4","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"迭代器模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:4:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 聚合对象需要提供一种方法来让别人访问它的元素 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:4:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 C++标准库里对所有容器都提供了迭代器 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:4:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:4:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"中介者模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:5:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 很多对象可能以各种各样的方式连接,每个对象都知道很多其他对象,他们耦合在一起。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:5:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 用一个中介者对象,专门负责控制和协调一组对象间的交互。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:5:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:5:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"备忘录模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:6:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 有时需要捕获一个对象的状态,但是暴露其内部状态又违反封装的原则 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:6:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 做一个备忘录对象,可以存储另一个对象(originator)在某个瞬间的内部状态。 只有originator有资格初始化并访问该备忘录。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:6:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:6:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"观察者模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:7:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,要通知所有依赖于它的对象 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:7:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 一个对象Observer可以向对象Subject发出订阅请求,而subject维护了所有订阅者的集合。 当subject状态有更新时,就向所有订阅者发出update消息,而Observer要有能力处理update消息。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:7:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:7:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"状态模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:8:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 对象需要在其内部状态改变时改变它的行为 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:8:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 建模为有限状态机 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:8:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:8:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"策略模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:9:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 有一系列可相互替换的算法 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:9:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 将算法封装为策略类 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:9:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:9:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"模板方法模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:10:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 一个算法的骨架是确定的,但其中的一些步骤可以有多种实现方法 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:10:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 将算法骨架实现为模板方法,然后有差别的步骤延迟到子类中实现 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:10:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:10:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"访问者模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:11:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 数据是稳定的,但是要经常添加针对这些数据的操作。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:11:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 将操作封装为visitor 客户以具体的visitor为参数向数据发送accept消息 数据处理accept消息的方法是,反过来给visitor发送visit消息,同时也把自己交给visitor 接下来,visitor根据发来的数据的类型,进行具体的处理 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:11:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:11:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"其他 添加新操作只需要增加一个对应的visitor,其中定义对各种数据类型的访问处理。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:11:4","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"适配器模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:1:0","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"场景 想使用一个已经存在的类,而它的接口不符合需求 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:1:1","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"方案 基于多重继承的 Adaptor类实现需要的接口,同时私有继承(实现继承)那个已经存在的类Adaptee。 Adaptor类在实现接口的时候,将使用私有继承来的Adaptee来实现。 基于对象组合的 Adaptor类实现需要的接口,其内部保存一个Adaptee的引用。 Adaptor类在实现接口的时候,将委托Adaptee完成相应的功能。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:1:2","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"UML表示 基于多重继承的 基于对象组合的 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:1:3","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"两种方案的权衡 对象适配器比较灵活,允许适配Adaptee以及它的所有子类。而类适配器则不行。 对象适配器需要额外的指针,类适配器不需要。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:1:4","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"桥接模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:2:0","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"场景 要将抽象部分与它的实现部分分离,使它们都可以独立地变化 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:2:1","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"方案 将抽象和实现部分分别放在独立的类层次结构中,其中一个针对接口,另一个针对实现,针对接口的类层次结构需要保存一个关于实现的对象的引用。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:2:2","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:2:3","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"其他 虽然UML类图与对象适配器很相似,但是两者的目的不同,对象适配器是为了实现接口的转换,而桥接模式是为了将接口和实现分离。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:2:4","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"组合模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:3:0","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"场景 处理具有整体-部分层次结构特征的对象,一些复杂的组件是由简单的组件组合而成,这些复杂的组件又是更复杂组件的组成部分。 想对所有组件进行统一处理。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:3:1","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"方案 关键是让所有组件继承自同一接口。复杂组件保存有简单组件的引用。 形成的动态结构是树状的。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:3:2","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"UML表示 类图 动态对象图 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:3:3","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"装饰模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:4:0","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"场景 希望给某个对象而不是整个类添加一些功能。用继承方式不够灵活。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:4:1","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"方案 将组件嵌入另一个对象中(装饰对象保存有原组件的引用)。装饰对象接受到请求时,在将请求发给原组件前后,可以自由执行一些额外的动作。 由于原组件和所有的装饰类都继承自同一接口,所以可以递归地嵌套多个装饰对象,从而添加任意多的功能。 形成的动态结构有点类似于链表。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:4:2","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:4:3","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"其他 与组合模式相比,可以将装饰视为一个退化的、仅有一个组件的组合。然而,装饰仅给对象添加一些额外的职责,而组合的目的在于对象的聚集。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:4:4","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"外观模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:5:0","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"场景 为子系统的一组接口提供一个一致的界面 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:5:1","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"方案 提供一个高层接口,给客户一个一致的界面。而该接口的具体实现委托给子系统。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:5:2","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:5:3","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"享元模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:6:0","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"场景 运行过程中创建了大量的对象,造成很大的存储开销。而且对象的大多数状态都可变为外部状态。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:6:1","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"方案 享元模式通过共享技术实现相同或相似对象的重用。 在享元模式中可以共享的相同内容称为内部状态(Intrinsic State),而那些需要外部环境来设置的不能共享的内容称为外部状态(Extrinsic State), 由于区分了内部状态和外部状态,因此可以通过设置不同的外部状态使得相同的对象可以具有一些不同的特征,而相同的内部状态是可以共享的。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:6:2","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:6:3","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"代理模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:7:0","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"场景 一个客户不想或者不能直接引用一个对象 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:7:1","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"方案 通过引入一个新的对象(如小图片和远程代理 对象)来实现对真实对象的操作或者将新的对象作为真实对象的一个替身。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:7:2","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:7:3","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"结构型模式的讨论 适配器模式和桥接模式 适配器用于解决两个已有接口不匹配的问题。桥接模式是为了将抽象和实现两者独立演化。 组合模式和装饰模式 都基于递归组合来组织可变数目的对象,但目的不同。组合模式旨在使整体与部分统一处理,而装饰模式旨在给对象添加职责。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:8:0","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"简单工厂模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:1:0","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"场景 创建一系列类似的产品,这些产品有差异,但属于同一类 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:1:1","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"方案 创建产品的基类,为抽象产品 一系列具体的产品继承自抽象产品 创建一个工厂类,该工厂知道所有的具体产品,可以根据传入的参数构造相应的具体产品,返回抽象产品 客户不需要知道具体产品类,只需要知道工厂类以及具体产品,就可以请求工厂为之构造具体产品 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:1:2","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:1:3","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"其他 这里的工厂类也可以简化为一个普通的创建函数 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:1:4","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"工厂方法模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:2:0","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"场景 也是要创建同一类但有差异的产品,每个产品的创建过程都比之前要复杂一些。 那么如果用简单工厂模式,工厂类的设计逻辑就比较复杂。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:2:1","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"方案 为每一个产品都配一个对应的工厂,这个工厂就只负责这一种产品 创建一个抽象产品类和一个抽象工厂类 具体的产品类继承自抽象产品类,具体的工厂类继承自抽象工厂类 具体的产品和具体的工厂存在着一一对应关系,一个工厂只负责一种产品的构造 客户不需要知道具体的产品,但需要知道具体的工厂,给具体工厂发请求就可以得到具体的产品了 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:2:2","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:2:3","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"其他 在C++中可以利用模板将产品和对应的工厂联系起来(将产品作为工厂模板的参数) ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:2:4","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"抽象工厂模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:3:0","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"场景 产品不再是只有同一类了,产品也有多类,但是这些不同类的产品又需要同时对客户提供 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:3:1","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"方案 一个具体工厂不再只生产一种具体产品了,而是负责生产一组产品。 对于每一类产品,都创建一个抽象产品类 对于每一个抽象产品类,都创建一系列具体产品类 创建一个抽象工厂类 创建一系列具体工厂类,每个具体工厂都负责一组产品的构造 客户不知道具体产品,只知道抽象产品类,也知道具体工厂类,给具体工厂发请求就可以得到那一组具体的产品了 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:3:2","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:3:3","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"建造者模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:4:0","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"场景 一个复杂对象拥有多个组成部分,如汽车,它包括车轮、方向盘、发送机等各种部件。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:4:1","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"方案 一步一步构造整个复杂对象。 创建一个抽象类builder,和若干个具体builder builder负责构造复杂对象的各个部分 创建一个具体类director,内部保存了一个builder的引用,但不知道builder具体是哪个类 director负责构造整个复杂对象,而构造的方法是给自己关联的builder发消息,让builder把各个组成部分构造出来 客户只需要知道具体的builder,把这个builder交给director,然后请求director构造复杂对象即可 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:4:2","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:4:3","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"原型模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:5:0","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"场景 原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:5:1","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"方案 给对象添加一个clone方法,用于实现对自身的拷贝。 需要注意的是clone的具体实现,是深拷贝还是浅拷贝,要视具体情况而定。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:5:2","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:5:3","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"单例模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:6:0","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"场景 有些类只需要唯一实例 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:6:1","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"方案 一个类能返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常使用getInstance这个名称); 当我们调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的引用赋予该类保持的引用; 同时我们还将该类的构造函数定义为私有方法,这样其他处的代码就无法通过调用该类的构造函数来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一实例。 多线程场景下要小心设计。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:6:2","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:6:3","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"对创建型模式的讨论 抽象工厂模式,建造者模式,原型模式都是依赖于对象组合,都涉及到创建一个新的负责创建产品对象的「工厂对象」 抽象工厂模式由这个工厂对象产生多个类的对象 建造者模式由这个工厂对象使用一个相对复杂的协议,逐步创建一个复杂产品 原型模式由该工厂对象通过拷贝原型对象来创建产品对象 如何选择创建型模式 先从最简单的如工厂方法模式开始,当发现需要更大的灵活性时,再根据需要选用其他的创建型模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:7:0","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"什么是设计模式 特定场景下一类问题的通用解决方案。 需要说明的是,设计模式跟所使用的编程语言是很相关的。 比如,面向对象语言中的一些行为型模式在函数式语言中就不需要,而在面向对象语言直接支持「继承」、「封装」和「多态」,如果要在过程式语言中实现,也就需要特殊的「模式」了。 所以,所谓的模式跟编程语言自身的能力息息相关。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:1:0","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"四个基本要素 模式名 问题 解决的是什么样的问题 解决方案 效果 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:1:1","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"设计模式怎样解决设计问题 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:2:0","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"寻找合适的对象 面向对象程序由对象组成,对象包括数据和对数据进行操作的方法。对象在受到客户的请求(消息)后,执行相应的操作。 客户请求是使对象执行操作的唯一方法,操作又是改变对象内部状态的唯一方法。 面向对象设计最困难的部分是将系统分解为对象集合。 面向对象设计方法学 写出问题描述,挑出名词和动词,进而创建相应的类和操作 关注于系统的协作和职责关系 对现实世界进行建模,再将分析时发现的对象转化到设计中 各方法的优劣并无定论 设计模式如何起作用 帮你确定并不明显的抽象和描述这些抽象的对象,使设计更灵活、复用性更好。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:2:1","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"决定对象的粒度 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:2:2","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"指定对象接口 操作的型构signature 对象声明的每一个操作指定操作名、作为参数的对象和返回值 对象的接口interface 所定义的所有操作型构的集合。描述了该对象所能接受的全部请求的集合。 类型type 是用来标识特定接口的一个名字。 一个对象可以有许多类型,且不同的对象可以共享同一个类型。 当一个类型的接口包含另一个类型的接口时,我们说它是另一个类型的子类型subtype,另一个类型则称为它的超类型supertype。 子类型继承了它的超类型的接口。 接口的实现 对象接口和其功能实现是分离的,两个具有相同接口的对象可以有完全不同的实现。 动态绑定 客户发送请求只需要看接口,但请求具体怎么被处理,要到运行时刻才受具体对象的具体实现约束。 多态polymorphism 动态绑定允许你在运行时刻彼此替换有相同接口的对象,这种可替换性叫多态。 设计模式如何起作用 通过确定接口的主要组成部分以及经接口发送的数据类型,来帮我们定义接口。 指定接口之间的关系。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:2:3","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"描述对象的实现 实例化 由类创建一个对象,需要分配存储空间,并将操作与对象的内部数据联系起来。 类继承 子类包含父类定义的所有数据和操作。子类能够改进和重新定义它们父类的操作。 抽象类 为子类定义公共接口。 混入类mixin 是给其他类提供可选择的接口或功能的类。与抽象类一样不能被实例化。mixin要求多继承。 类class和类型type的区别 一个对象的类定义了对象是怎样实现的,同时也定义了对象的内部状态和操作的实现。 对象的类型只与它的接口有关,接口即对象能响应的请求的集合。 类继承和接口继承的区别 类继承根据一个对象的实现定义了另一个对象的实现,是代码和表示的共享机制。主要为了复用。 接口继承描述了一个对象什么时候能被用来替代另一个对象。主要为了多态。 C++中,纯接口继承,接近于公有继承纯抽象类;纯实现继承或纯类继承接近于私有继承。 针对接口编程 不将变量声明为某个特定的具体类的实例对象。不得已时,用创建型模式。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:2:4","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"运用复用机制 继承与组合 实现功能复用的两种最常用技术是:类继承和对象组合,前者为白箱复用,后者为黑箱复用。 对象组合使设计更灵活,但是动态的、高度参数化的软件比静态软件更难以理解,而且还有运行低效的问题。 应该优先使用对象组合。 经验表明,设计者往往过度使用了继承这种复用技术。 委托 委托是对象组合的特例。 继承和参数化类型 C++ template ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:2:5","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"关联运行时刻和编译时刻的结构 如果将编译时刻的代码结构比作静态的动植物分类,那么运行时刻结构就如活生生的生态系统。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:2:6","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"设计应支持变化 先预测可能会发生哪些方面的变化,然后将这些变化抽象出来。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:2:7","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"设计模式的分类 创建型模式 单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。 结构型模式 适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 行为型模式 模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:3:0","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"《为什么幸运的人总幸运,倒霉的人老倒霉》读书笔记 这本小书用一个简单的故事介绍了一套做决定的方法。 故事以一个年轻人参加徒步旅行的方式展开,路上分别与不同的人交谈。这些人给年轻人引导和分享,让年轻人逐步学会这套做决定的系统方法。年轻人在生活和工作中应用这套方法后,变得更加自信、坚定而果断,遇到事情时也能做出更加明智的决定。 这套方法是怎样的呢? 首先,停止继续执行一个错误的决定。只有停下来制造一段空白,才能以更好的行动填充它。 然后开始问自己问题。分为两方面,一是向头脑提问,二是向内心提问。 向头脑提问的问题是:是不是正在满足自己真正的需要,告诉自己所有可以选择的方法,并对事情深思熟虑? 向内心提问的问题是:我作这个决定对自己是不是诚实,有没有相信自己的直觉,是不是还应该得到更好的? 关于向头脑提问,侧重于事实基础。首先要了解自己「需要」什么,尤其要区分清楚「需要(need)」和「想要(want)」的区别,如何判断是「需要」还是「想要」呢?方法是设想一个将来的场景,那时的自己会希望自己现在做这个事情吗,如果还是给出肯定的回答,那么就是「需要」,否则,就只是「想要」。 第二点是收集必要的信息,尽可能多地找出自己有哪些选择。这里的信息不止包括客观事实,也包括人们对事实的感受看法。方法包括观察和向有经验的人请教。 第三点是深思熟虑。对于每一个选择,都要推演下去,问:如果按照这个决定,可能会发生什么?然后呢? 关于向内心提问,侧重于内心感受。首先是要对自己诚实,要坦诚面对真相,不要因为真相会带来不适而欺骗自己。要问自己:我有由于不想让自己不舒服而回避真相吗? 第二点是重视直觉。如果做了一个决定,就是感到不安,那么这个决定很可能是有问题的。要问自己:如果没有恐惧,我会怎么做? 第三点是相信自己值得更好的。需要真正的相信,而不是嘴上说相信,但内心深处在抗拒。如果很难做到内心真正的相信,可以这样做,问自己:如果我相信自己应该得到更好的结果,我会怎么做?然后将自己的答案付诸行动就好了。 最后需要说明的是,要把这套方法放在触手可及的地方,比如钱包里,每当需要做决定的时候,就拿出来看看。 ","date":"2022-02-05","objectID":"/posts/2022/02/better-decision/:0:0","tags":["方法论"],"title":"如何做更好的决定","uri":"/posts/2022/02/better-decision/"},{"categories":["思维"],"content":"梁丘据谓晏子曰:「吾至死不及夫子矣!」 晏子曰:「婴闻之,为者常成,行者常至。婴非有异于人也,常为而不置,常行而不休者,故难及也。」 —— 《晏子春秋内篇·杂下》 ","date":"2022-01-26","objectID":"/posts/2022/01/do-and-persist/:0:0","tags":["方法论"],"title":"为者常成,行者常至","uri":"/posts/2022/01/do-and-persist/"},{"categories":["工具"],"content":" 排版一段代码用lstlisting环境(listing宏包) 将每一段代码用minipage环境包起来成为一个个box(注意设置每个minipage的宽度) 中间可以用\\rule命令画线,用\\hspace调整间距 若要给代码整体画个外框,可以将所有box一起放在framed环境(framed宏包)中 整体放入figure环境中,成为浮动体 示例代码: \\begin{figure}[!htb] \\lstset{language=C, numbers=left, numbersep=3pt, %frame=single, tabsize=2, xleftmargin=.05\\textwidth, %xrightmargin=.05\\textwidth, basicstyle=\\footnotesize, } \\begin{framed} \\begin{minipage}[b]{0.45\\columnwidth} \\begin{lstlisting} int callee(int x){ return x; } \\end{lstlisting} \\end{minipage} \\rule{.1pt}{36mm} \\hspace{5pt} \\begin{minipage}[b]{0.3\\columnwidth} \\begin{lstlisting} int caller() { return callee(5); } \\end{lstlisting} \\end{minipage} \\end{framed} \\caption{An example program} \\end{figure} ","date":"2022-01-21","objectID":"/posts/2022/01/latex-typeset-code-list/:0:0","tags":["问题记录","LaTex"],"title":"LaTeX如何将两段代码并排放置","uri":"/posts/2022/01/latex-typeset-code-list/"},{"categories":["思维"],"content":"如题。 是以圣人抱一以为天下式。 ","date":"2022-01-19","objectID":"/posts/2022/01/less-is-more/:0:0","tags":["方法论"],"title":"少则得,多则惑","uri":"/posts/2022/01/less-is-more/"},{"categories":["思维"],"content":"什么是成长型思维 概念来源于心理学家卡罗尔·德韦克的经典作品《终身成长》。 主要体现在人在面对失败/挫折时的想法 固定思维的人,会自我怀疑,容易深陷于失败而裹足不前,担心即使付出努力也可能得不到成功 成长思维的人,虽然也会有一些负面情绪,但会很快调整心态,进行自我反思,尝试不同的策略去战胜种种困难和挑战 ","date":"2022-01-05","objectID":"/posts/2022/01/growth-mindset/:1:0","tags":["方法论"],"title":"成长型思维","uri":"/posts/2022/01/growth-mindset/"},{"categories":["思维"],"content":"两种想法的根源何在 对自己的期待不同 固定思维期待被别人看作有天分的人 成长思维期待被别人看作肯努力的人 对失败的看法不同 固定思维把失败的行为转变成了失败的身份(我是一个失败者),更看重结果 成长思维把失败这件事当作自己改进的机会(刻意练习,有失败才能让自己进步,变得更好),更看重过程 ","date":"2022-01-05","objectID":"/posts/2022/01/growth-mindset/:2:0","tags":["方法论"],"title":"成长型思维","uri":"/posts/2022/01/growth-mindset/"},{"categories":["思维"],"content":"案例 被所申请的学校拒绝后 我不想质疑您的决定。我只是想问一下,如果下次我想再申请这所学校,我该怎么改进自己的申请书。如果您能在这方面给我一些反馈和建议,我将感激不尽。 不仅要制定一个成长型思维模式计划,更要设想具体细节,设想你要如何实行它。 ","date":"2022-01-05","objectID":"/posts/2022/01/growth-mindset/:3:0","tags":["方法论"],"title":"成长型思维","uri":"/posts/2022/01/growth-mindset/"},{"categories":["思维"],"content":"个体的复杂性 两种思维模式并不是非此即彼的关系,人们可以在不同领域表现出不同的思维模式,很多人的成长型思维模式特质只会出现在自己感兴趣的领域。 ","date":"2022-01-05","objectID":"/posts/2022/01/growth-mindset/:4:0","tags":["方法论"],"title":"成长型思维","uri":"/posts/2022/01/growth-mindset/"},{"categories":["思维"],"content":"怎样培养成长型思维 ","date":"2022-01-05","objectID":"/posts/2022/01/growth-mindset/:5:0","tags":["方法论"],"title":"成长型思维","uri":"/posts/2022/01/growth-mindset/"},{"categories":["思维"],"content":"思想上 完成比完美更重要 神经可塑性 我不是一个完美的人,但我是一个坚韧宏毅的人 拥抱失败 接纳批评 任何挫折和批评都将成为我成长道路上的垫脚石 ","date":"2022-01-05","objectID":"/posts/2022/01/growth-mindset/:5:1","tags":["方法论"],"title":"成长型思维","uri":"/posts/2022/01/growth-mindset/"},{"categories":["思维"],"content":"行动上 刻意练习,用失败作为反馈,了解自己的不足 总结,反思,找到错误发生的模式,找到自己犯错的根源,争取下次不犯同种类型的一批错误 PDCA 经常说具有成长思维特点的语言 认清目标,不要为小事分心 养成一系列好习惯 ","date":"2022-01-05","objectID":"/posts/2022/01/growth-mindset/:5:2","tags":["方法论"],"title":"成长型思维","uri":"/posts/2022/01/growth-mindset/"},{"categories":["杂记"],"content":" 好江风 将这轻舟催送 波翻浪涌 添几分壮志豪情 龙潭虎穴何足惧 剑戟丛中久鏖兵 非是俺藐群雄 一部春秋铭记 义不负心泰山重 忠不顾死何言轻 桃园金兰誓 弟兄山海盟 早把这七尺身躯青龙偃月 付于苍生 ","date":"2022-01-05","objectID":"/posts/2022/01/jiangshangxing/:0:0","tags":["人物"],"title":"关羽之歌","uri":"/posts/2022/01/jiangshangxing/"},{"categories":["读书"],"content":"什么是检视阅读 检视阅读就是用浏览的方法系统性地去阅读。表面上看有点像我们平时的粗读,但其实完全不一样。关键的不同就是系统性。所谓系统性,就是说它有一套科学的流程方法,不是漫无目的,也不是随兴而至,更不是走马观花。而我们许多人,平时读书,不大注意方法,读了不少,收获不多,时间一长,连本就寥寥无几的那点收获也丢掉了。 ","date":"2021-12-18","objectID":"/posts/2021/12/inspectional-reading/:1:0","tags":["方法论"],"title":"如何阅读之检视阅读","uri":"/posts/2021/12/inspectional-reading/"},{"categories":["读书"],"content":"为什么要检视阅读 检视阅读是一种高效的读书方法。我们平时的读书行为,主要还是为我们的现实生活服务的。不管是为了增进我们对现实世界的理解,还是为了学习解决现实问题的技巧,读书都是一个很高效的途径,特别是在这个书籍资源获取很便捷的时代。但是,如果我们没有掌握正确的方法,我们就很可能把自己淹没在这些资源中,效率很低,浪费不少时间和精力。检视阅读就是这样一种方法,帮助我们在读一本书时去伪存真,快速吸收其精华;还能帮助我们快速判断一本书的好坏,并决定是丢弃还是继续深入阅读。总之,检视阅读就是提高我们读书效率的秘诀。 ","date":"2021-12-18","objectID":"/posts/2021/12/inspectional-reading/:2:0","tags":["方法论"],"title":"如何阅读之检视阅读","uri":"/posts/2021/12/inspectional-reading/"},{"categories":["读书"],"content":"检视阅读怎么做 ","date":"2021-12-18","objectID":"/posts/2021/12/inspectional-reading/:3:0","tags":["方法论"],"title":"如何阅读之检视阅读","uri":"/posts/2021/12/inspectional-reading/"},{"categories":["读书"],"content":"问自己问题 为什么要问问题呢?其一,我们天性都是好奇的,我们的头脑对问题有一种特殊的敏感,头脑中有了问题,就会推着你去寻找答案,这会保持我们阅读的动力。其二,问题可以使我们的头脑聚焦在少量的目标上,提高思维的专注度,不至于漫无目的而效率低下。 从最通用的角度来说,对于一本书,要提出四个问题: 这本书整体在谈论什么,属于哪个类别的?这是关于这本书的主题。 这本书细部说了什么,怎么说的?这主要是要弄明白作者围绕主题说了哪些从属议题,它们之间的逻辑关系是怎样的。 这本书说得有道理吗?是全部有道理,还是部分有道理?这个决定了这本书价值到底如何。 这本书跟自己有什么关系?这样才能明白读这本书到底对自己有什么意义。 ","date":"2021-12-18","objectID":"/posts/2021/12/inspectional-reading/:3:1","tags":["方法论"],"title":"如何阅读之检视阅读","uri":"/posts/2021/12/inspectional-reading/"},{"categories":["读书"],"content":"带着问题去寻宝 有了问题,就把自己想象成一个侦探,在找寻一本书的主题或思想的线索。 主要关注以下这几个地方: 书名 目录 序言 开头和结尾 抽取感兴趣的段落 找相关的书评 这些地方很可能藏着整本书的精华,读了它们,就能回答上一步给自己提的问题了。很多时候甚至不需要读完,读多读少以及怎么读,完全看自己的需求,总之,以能回答自己的问题,形成对书的基本轮廓为目标。 ","date":"2021-12-18","objectID":"/posts/2021/12/inspectional-reading/:3:2","tags":["方法论"],"title":"如何阅读之检视阅读","uri":"/posts/2021/12/inspectional-reading/"},{"categories":["读书"],"content":"做笔记 不动笔墨不读书,可以将对以上四个问题的回答记录下来,就构成了这本书的读书笔记。特别是对第二个问题的回答,会帮助我们记录下这本书的基本框架。这个框架笔记,会在将来复习时帮我们快速回忆起整本书的精华内容。 ","date":"2021-12-18","objectID":"/posts/2021/12/inspectional-reading/:3:3","tags":["方法论"],"title":"如何阅读之检视阅读","uri":"/posts/2021/12/inspectional-reading/"},{"categories":["读书"],"content":"什么情况适合检视阅读 检视阅读应该在初次读一本书时使用。初次读一本书时,对书的内容不了解,不知道是好是坏,用检视阅读会极大提高效率。检视阅读过程中,我们会形成对书的判断,如果不合胃口,随时可以停下来丢掉。检视阅读完成之后,如果觉得这本书价值很高,就可以深入分析精读;如果觉得一般般,那么记好必要的笔记后,不再继续读下去也无妨了,因为读这本书的目的已经达到了。 ","date":"2021-12-18","objectID":"/posts/2021/12/inspectional-reading/:4:0","tags":["方法论"],"title":"如何阅读之检视阅读","uri":"/posts/2021/12/inspectional-reading/"},{"categories":["读书"],"content":"三遍法高效读论文。 ","date":"2021-12-17","objectID":"/posts/2021/12/reading-a-paper/:0:0","tags":["方法论"],"title":"如何读paper","uri":"/posts/2021/12/reading-a-paper/"},{"categories":["读书"],"content":"什么是三遍法 文章读三遍。三遍层层递进,每一遍有不同的侧重,完成不同的任务,最终达到深度理解一篇文章的目的。 ","date":"2021-12-17","objectID":"/posts/2021/12/reading-a-paper/:1:0","tags":["方法论"],"title":"如何读paper","uri":"/posts/2021/12/reading-a-paper/"},{"categories":["读书"],"content":"怎么做三遍法 ","date":"2021-12-17","objectID":"/posts/2021/12/reading-a-paper/:2:0","tags":["方法论"],"title":"如何读paper","uri":"/posts/2021/12/reading-a-paper/"},{"categories":["读书"],"content":"第一遍:浏览 步骤 仔细读title/abstract/introduction 读章节标题 看一眼关于数学的部分,找出文章的理论基础 读conclusion 浏览reference,看哪些ref是自己读过的,哪些没读过 耗时 5~10 min 需要回答的问题:5个C Category: What type of paper is this? A measurement paper? An analysis of an existing system? A description of a research prototype? Context: Which other papers is it related to? Which theoretical bases were used to analyze the problem? Correctness: Do the assumptions appear to be valid? Contributions: What are the paper’s main contributions? Clarity: Is the paper well written? 达到的效果 if: 文章不吸引你 or 文章所讲的你已经很熟悉了 or 文章所基于的假设明显是错的 then: 丢弃之 else: 继续 ","date":"2021-12-17","objectID":"/posts/2021/12/reading-a-paper/:2:1","tags":["方法论"],"title":"如何读paper","uri":"/posts/2021/12/reading-a-paper/"},{"categories":["读书"],"content":"第二遍:细读 步骤 看图表/示例 把reference中自己未读过的文献标注出来(用于补充背景知识) 耗时 1 hour 达到的效果 一般来说,能理解文章的大概内容,能向别人说出文章的核心思想(the main thrust)和支撑论据。 少数情况,无法理解这篇文章,可能是由于陌生的主题,不熟悉的术语,或者作者使用的方法不熟悉。 也可能作者写得不好,或者只是你太困了。这时可以判断一下文章的价值,低价值的可以直接丢弃,高价值的,如果是缺少背景知识,就去补充背景知识,再来细读。 ","date":"2021-12-17","objectID":"/posts/2021/12/reading-a-paper/:2:2","tags":["方法论"],"title":"如何读paper","uri":"/posts/2021/12/reading-a-paper/"},{"categories":["读书"],"content":"第三遍:揣摩 步骤 尝试把论文的方法重新实现一遍 跟原文方法相比较,深入理解作者的创新点,尝试找出作者的错误假设。此外,还要思考如果是自己写,自己会怎么做,并在对比中学习作者的各种技巧。还要把关于future work的想法记下来。 耗时 对于新手,4-5 hour 对于老手,1 hour 达到的效果 能从记忆中重建全文的结构,并指出其优缺点。能正确指出论文的隐含假设,以及其实验或理论分析方面潜在的问题。 ","date":"2021-12-17","objectID":"/posts/2021/12/reading-a-paper/:2:3","tags":["方法论"],"title":"如何读paper","uri":"/posts/2021/12/reading-a-paper/"},{"categories":["读书"],"content":"分析阅读的目的 完整地吸取一本书的精华。 ","date":"2021-12-13","objectID":"/posts/2021/12/reading-skills-analytical/:1:0","tags":["方法论"],"title":"如何阅读之分析阅读","uri":"/posts/2021/12/reading-skills-analytical/"},{"categories":["读书"],"content":"分析阅读的方法 第一阶段:整理内容大纲 依照书的种类与主题来分类。 使用最简短的文字说明整本书在谈些什么。 将主要部分按顺序与关联性列举出来。将全书的大纲列举出来,并将各个部分的大纲也列出来。 确定作者想要解决的问题。 第二阶段:诠释这本书的内容 找出关键字,与作者达成共识。 将一本书中最重要的句子圈出来,找出其中的主旨。 找出作者的论述,重新架构这些论述的前因后果,以明白作者的主张。 确定哪些问题已经被解决,哪些还没有被解决。 综合看前两个阶段,先是将整体分成许多部分,然后再从关键词这样的细节,一步步找出主旨与论述,再重新架构出一个整体。 第三阶段:评论一本书 除非你已经完成大纲架构,也能诠释整本书了,否则不要轻易批评。 当你不同意作者观点时,要理性的表达自己,不要无理的辩驳或争论。 尊重知识与个人观点的不同,在做出任何判断之前,都要找出理论依据。 ","date":"2021-12-13","objectID":"/posts/2021/12/reading-skills-analytical/:2:0","tags":["方法论"],"title":"如何阅读之分析阅读","uri":"/posts/2021/12/reading-skills-analytical/"},{"categories":["读书"],"content":"分析阅读的应用 分析阅读的成本较高。 人的精力有限,不应该不分青红皂白的使用分析阅读。 分析阅读应该用于阅读对自己有高价值的书籍。 先经由检视阅读,判断书籍的价值,筛选出高价值的书籍。 ","date":"2021-12-13","objectID":"/posts/2021/12/reading-skills-analytical/:3:0","tags":["方法论"],"title":"如何阅读之分析阅读","uri":"/posts/2021/12/reading-skills-analytical/"},{"categories":["工具"],"content":"字体类型 就像图像里面的位图和矢量图一样,字体分为点阵字体和矢量字体: 点阵字体 用像素表示字体图。 很难进行缩放,特定的点阵字体只能清晰地显示在相应的字号下。 对于 12-16 px 的小号汉字来说,点阵字体往往比其它类型的字体在屏幕上有更好的显示效果。 包括来自Adobe的BDF和来自Xorg的PCF. 可以通过gzip压缩。 矢量字体 使用贝塞尔曲线、绘图指令和数学公式来描述每种字形,使得字体可以适应各种尺寸。 包括: PostScript 字体 TrueType字体(Apple 和 Microsoft 定义,ttf) OpenType字体(基于 TrueType,Microsoft 定义,otf/ttf) ","date":"2021-12-11","objectID":"/posts/2021/12/font-basics/:1:0","tags":["问题记录","字体"],"title":"字体基础知识","uri":"/posts/2021/12/font-basics/"},{"categories":["工具"],"content":"安装字体包 一般情况下用系统的包管理软件如pacman即可 ","date":"2021-12-11","objectID":"/posts/2021/12/font-basics/:2:0","tags":["问题记录","字体"],"title":"字体基础知识","uri":"/posts/2021/12/font-basics/"},{"categories":["工具"],"content":"查看字体包 ","date":"2021-12-11","objectID":"/posts/2021/12/font-basics/:3:0","tags":["问题记录","字体"],"title":"字体基础知识","uri":"/posts/2021/12/font-basics/"},{"categories":["工具"],"content":"查看所有 fc-list ","date":"2021-12-11","objectID":"/posts/2021/12/font-basics/:3:1","tags":["问题记录","字体"],"title":"字体基础知识","uri":"/posts/2021/12/font-basics/"},{"categories":["工具"],"content":"查看中文 fc-list :lang=zh | cut -d: -f1 ","date":"2021-12-11","objectID":"/posts/2021/12/font-basics/:3:2","tags":["问题记录","字体"],"title":"字体基础知识","uri":"/posts/2021/12/font-basics/"},{"categories":["工具"],"content":"什么是serif和sans-serif 从笔画风格对字体的分类。 ","date":"2021-12-11","objectID":"/posts/2021/12/font-basics/:4:0","tags":["问题记录","字体"],"title":"字体基础知识","uri":"/posts/2021/12/font-basics/"},{"categories":["工具"],"content":"serif是衬线体 衬线体起源于古罗马的石刻拉丁字母。1968年爱德华·卡蒂奇神甫在其著作《衬线的起源》一书中指出,在石刻时,先用画笔将字母轮廓标注在石头上,然后刻字人依照痕迹进行刻画形成了衬线。 风格比较正统,一般用于传统印刷。 东亚一般称为“白体”,中国大陆地区和港台的印刷界称之为 宋体 。 ","date":"2021-12-11","objectID":"/posts/2021/12/font-basics/:4:1","tags":["问题记录","字体"],"title":"字体基础知识","uri":"/posts/2021/12/font-basics/"},{"categories":["工具"],"content":"sans-serif是无衬线体 sans 在古希腊语言中是without的意思。 抛弃装饰衬线,只剩下主干,造型简明有力,更具现代感,起源也很晚。 风格比较轻松,适用于标题、广告。 因棱角较少,方便渲染,广泛用于电脑手机萤幕。 东亚一般称为 黑体 。 ","date":"2021-12-11","objectID":"/posts/2021/12/font-basics/:4:2","tags":["问题记录","字体"],"title":"字体基础知识","uri":"/posts/2021/12/font-basics/"},{"categories":["工具"],"content":"什么是等宽字体 顾名思义,字符宽度相等的字体。英文叫monospace. 因打字机及早期的电脑画面显示等由于技术的局限,无法进行字母宽度的比例调整,因此将每个字符都制作成一样的宽度,从而形成了等宽字体。 在等宽字体中,字母“i”、“j”显得两侧余白较多,而字母“w”、“m”等的笔画显得相当拥挤。 东亚语言中,方块字基本上都作为等宽字体处理。 代码以及文字接口的程序,如代码编辑器、虚拟终端等也经常使用等宽字体,可以提高可读性。 与等宽字体相对应的是 比例字体 。 ","date":"2021-12-11","objectID":"/posts/2021/12/font-basics/:5:0","tags":["问题记录","字体"],"title":"字体基础知识","uri":"/posts/2021/12/font-basics/"},{"categories":["工具"],"content":"Reference 一篇关于字体的好文章.https://sspai.com/post/71957 ","date":"2021-12-11","objectID":"/posts/2021/12/font-basics/:6:0","tags":["问题记录","字体"],"title":"字体基础知识","uri":"/posts/2021/12/font-basics/"},{"categories":["问题记录"],"content":" Latex排版中文的问题汇总 涉及两方面: 对中文字体的支持 对中文排版细节的处理 几个相关的宏包: CJK宏包:提供了对中文字体的支持 xeCJK和luatexja宏包:处理中文排版细节 ctex 宏包和文档类:进一步封装了 CJK、xeCJK、luatexja 等宏包,使得用户在排版中文时不用再考虑排版引擎等细节。能够识别操作系统和 TEX 发行版中安装的中文字体。 ctex 宏包:用于配合各种文档类排版中文 ctex 文档类:对LATEX 的标准文档类进行了封装,对一些排版根据中文排版习惯做了调整,包括 ctexart/ctexrep/ctexbook/ctexbeamer。 在archlinux上,安装texlive-langchinese 即可安装ctex宏包。 注意: 源文件要保存为UTF-8编码。 使用 xelatex 或 lualatex 命令编译。 ","date":"2021-12-07","objectID":"/posts/2021/12/handle-chinese-in-latex/:1:0","tags":["latex"],"title":"Latex排版中文的问题汇总","uri":"/posts/2021/12/handle-chinese-in-latex/"},{"categories":["问题记录"],"content":" 例子 \\documentclass{ctexart} \\begin{document} 在\\LaTeX{}中排版中文。 汉字和English单词混排,通常不需要在中英文之间添加额外的空格。 当然,为了代码的可读性,加上汉字和 English 之间的空格也无妨。 汉字换行时不会引入多余的空格。 \\end{document} 用xelatex编译。 xelatex test-zh.tex 如果是markdown或org mode文件,用pandoc转。 pandoc test-zh.tex -o test-zh.pdf --pdf-engine=xelatex -V CJKmainfont=\"WenQuanYi Zen Hei\" ","date":"2021-12-07","objectID":"/posts/2021/12/handle-chinese-in-latex/:1:1","tags":["latex"],"title":"Latex排版中文的问题汇总","uri":"/posts/2021/12/handle-chinese-in-latex/"},{"categories":["问题记录"],"content":" refs: https://wiki.archlinux.org/title/TeX_Live_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) 一份(不太)简短的 LATEX2ε 介绍 ","date":"2021-12-07","objectID":"/posts/2021/12/handle-chinese-in-latex/:1:2","tags":["latex"],"title":"Latex排版中文的问题汇总","uri":"/posts/2021/12/handle-chinese-in-latex/"},{"categories":["问题记录"],"content":" 如何批量压缩照片 现在手机拍照出来的照片体积都很大,而手机厂商提供的云服务空间又有限,拍照片稍微多一点的话,空间很快就不够用了。周末去了趟径山寺玩,拍了点照片,我的小米云空间就频频告急了。 我检查了一下,发现随便拍的风景照,体积都有十几到二十兆,这么大的照片,质量也许好一些,对摄影爱好者可能有些意义,但对我这种只是偶尔拍着记录一下的人来说,意义其实不大。 我希望减小照片体积,稍微损失点质量也无妨(完全可以控制在肉眼看不出来的程度)。一来可以减少空间占用,便于备份,二来如果放在图床引用的话,对网络的压力也小。 Linux 上用 ffmpeg 就可以很容易做到这件事。步骤如下: mkdir output # output目录用来存放压缩后的照片文件 ls *.jpg | xargs -I{} ffmpeg -i {} output/{}; # 用ffmpeg默认的参数效果就已经很好了 经过亲测,原先20M的照片,转换完成后只有1.8M,原先的 1/10 都不到。至于质量,我觉得完全可以接受,至少用肉眼,我是真的看不出来,作为记录或者展示,够用了! ps: 照片文件最好还是用 jpg 格式,体积最小;我曾试了 png 和 webp,效果都不好,其中 png 采用无损压缩算法,还膨胀了好多倍,20M 转出来成了 60M。摄影图片一般色彩笔记丰富,jpg 才是最适合的格式。 ","date":"2021-12-06","objectID":"/posts/2021/12/howto-reduce-photo-size-in-batches/:1:0","tags":[],"title":"如何批量压缩照片","uri":"/posts/2021/12/howto-reduce-photo-size-in-batches/"},{"categories":["要事记录"],"content":"径山寺之行 ","date":"2021-12-05","objectID":"/posts/2021/12/visit-jingshan-temple/:0:0","tags":["旅行"],"title":"径山寺之行","uri":"/posts/2021/12/visit-jingshan-temple/"},{"categories":["要事记录"],"content":"缘起 曾经对佛学感兴趣,对寺庙一直感觉亲近。十一之前,就想着找个寺庙玩玩,跟hh说了这个想法后,hh说:“十一去径山寺吧”,就埋下了径山寺之行的种子。本打算十一假期最后两天去的,可惜,hh身体不太舒服,没有成行;再后来,天气转凉,hh感冒了,久未痊愈,就把径山寺这事放下了。 直到前几天,许久未出去玩的我们重新提起,才有了昨日的径山寺之行。已经是两个月过去了,but, better late than never! ","date":"2021-12-05","objectID":"/posts/2021/12/visit-jingshan-temple/:1:0","tags":["旅行"],"title":"径山寺之行","uri":"/posts/2021/12/visit-jingshan-temple/"},{"categories":["要事记录"],"content":"上山 早上八点半,窗外的阳光已洒满草地。我们各自简单收拾下,九点便出发了。径山寺所在的径山,是天目山的东北余脉,因山顶有径以通天目山而得名。位于浙江省杭州市余杭区径山镇,杭州城西北约50公里处。朝径山开了约一个小时,就到了旅游集散中心,停好车,接坐景区的中巴车上山。心情也随着接近目的地而激动了起来。 山路十八弯,我们一边随着中巴车神龙摆尾,一边感叹着司机的自信车技,还要偷空欣赏车窗外的茂林修竹,高峰深谷,约二十分钟后到了山顶——径山寺就在那里! ","date":"2021-12-05","objectID":"/posts/2021/12/visit-jingshan-temple/:2:0","tags":["旅行"],"title":"径山寺之行","uri":"/posts/2021/12/visit-jingshan-temple/"},{"categories":["要事记录"],"content":"寺庙 径山寺初建于公元745年,当时唐代。至南宋时规模庞大,有僧1700余,为“江南”禅院五山十刹之一。径山寺在中国不算有名,比如我也是这两年才听说它,可是在日本地位可不低,被奉为佛教圣地、茶道祖庭。历史上日本曾派多位高僧,来径山寺求学问道,荣析禅师、圣一国师、南浦绍明都曾在此研究佛法。高僧回国时带径山茶籽,被视为日本茶道起源。现在流行的抹茶和煎茶就源自径山茶道。 径山寺门前视野开阔,可远眺群山千里。 寺门上正面书“双径归堂”,背面书“天下径山”,为径山中兴祖师大慧宗杲(gao, 三声)禅师墨迹。 门内一侧贴有禅师发愿文。佛堂里,诸佛林立,悲悯庄严,信众焚香,虔心拜首。角落处,大和尚安读楞严经,人群中,小哥哥勤讲菩萨事。说起小哥哥,我们因好奇,跟了他半路,我还向他问了几个问题,小哥哥都认真解答。 拾级而上,一路但见建筑典雅,白墙红瓦,怪石碧水,风景娟秀,据说日本京都寺院的风格也跟这里相似。不久就到了凌霄宝殿,一看时间已是十一点半,怕错过斋饭,便回头准备去填饱肚子。 ","date":"2021-12-05","objectID":"/posts/2021/12/visit-jingshan-temple/:3:0","tags":["旅行"],"title":"径山寺之行","uri":"/posts/2021/12/visit-jingshan-temple/"},{"categories":["要事记录"],"content":"斋饭 打听了一下,便直奔斋堂去了。径山寺的斋堂有两处:一处是面食,另一处是米饭。我们俩经过反复对比,还是选了米饭。斋菜种类不多,我们去的那会儿有土豆、青菜、豆角,十元一份,味道清淡,身在佛门之地,自然是带着品味清淡的心情来的。 吃饱喝足,打算去径山古道走走。 ","date":"2021-12-05","objectID":"/posts/2021/12/visit-jingshan-temple/:4:0","tags":["旅行"],"title":"径山寺之行","uri":"/posts/2021/12/visit-jingshan-temple/"},{"categories":["要事记录"],"content":"古道 古时人们上下山,都是从这条径山古道走。 路面铺满石头,总体比较平缓,不算难走。我们踏上古道,开始下山,一路上游人三三两两,有上山的,有下山的,欢声笑语,不绝于耳。 我们携手而行,看看山林美景,谈谈古今故事。 沿途左侧多是茶田,右侧基本都是竹林。 还见到几处枫树,枫叶红得格外显眼,为山林的色彩增添了不少层次感。 先后经过了东坡洗砚池、望江亭、钱王弹岩,约一个小时到了半山腰的一个小村庄。那里刚好有接游客下山的中巴车,于是我们坐上车就下山了。到集散中心,休息了一下,便启程回家。 ","date":"2021-12-05","objectID":"/posts/2021/12/visit-jingshan-temple/:5:0","tags":["旅行"],"title":"径山寺之行","uri":"/posts/2021/12/visit-jingshan-temple/"},{"categories":["要事记录"],"content":"结语 径山寺不远,来玩其实不需要很多时间。主要是和hh好久没出来玩了,就想把琐事暂时放一放,出来散散心。丈量丈量古人走过的古道,追忆追忆古人留下的故事,着实是一件乐事! ","date":"2021-12-05","objectID":"/posts/2021/12/visit-jingshan-temple/:6:0","tags":["旅行"],"title":"径山寺之行","uri":"/posts/2021/12/visit-jingshan-temple/"},{"categories":["读书笔记"],"content":"毛泽东早期文稿,记载了毛泽东在1912年至1920年期间所写文章以及笔记,也就是毛泽东从20岁到28岁期间文稿。昨日读之,窥得毛早期思想发展之脉络,略有所得。 ","date":"2021-12-02","objectID":"/posts/2021/12/mao-reading-of-moral-philosophy/:0:0","tags":["人物"],"title":"读《毛泽东关于“伦理学原理”的笔记》","uri":"/posts/2021/12/mao-reading-of-moral-philosophy/"},{"categories":["读书笔记"],"content":"毛读《伦理学原理》时的笔记 ","date":"2021-12-02","objectID":"/posts/2021/12/mao-reading-of-moral-philosophy/:1:0","tags":["人物"],"title":"读《毛泽东关于“伦理学原理”的笔记》","uri":"/posts/2021/12/mao-reading-of-moral-philosophy/"},{"categories":["读书笔记"],"content":"豆瓣网友的要点摘录如下: 主观为安宁,客观为至善;内在为安宁,外现为至善。 本此自然道德所含之真理而发挥之,以论定各种行为之得失,是则道德哲学之本职也。道德哲学,亦犹卫生科学然。在举人类自昔习惯之行为,而为之指别其损益之所在,使人人得循是以为取舍。 于是人类之行为,变其纯任自然者,而益之以思虑,由无意识之道德,而进于有意识者,斯则道德哲学之赐也。 夫具足者何耶?盖谓人类之体魄及精神,其势力皆发展至高而无所歉然者也。 今日之刑法及警察,严明平正,一洗中世酷虐之习,诚可喜也。然缘是而谓中世何以不用是制,则误矣。且今日严明平正之制之所以有效,庸讵知非中世酷虐之制所致乎? 自由思想,自由生活,本人生第一之权利,而亦第一之义务也。 意志原始之形式,即无意识之冲动也。由无意识之冲动,而现于意识中,则为有意识之冲动。吾人若增其生活之动作,而有以餍其冲动,则快感随之。若障碍其动作,而逆其冲动,则不快之感随之。 感官之欲望,即冲动而伴以动作之模象者也。欲望之前提,为智力发展之一程度与夫意志及模象之交错,而欲望之餍足与障碍,则亦有快与不快之感随之。 吾人所见各人有大同之动作者,徒观其表耳。苟求其内情,则无一不具特性。夫内情者,人之本质也。其有特性也,正其所以为具足,而不得谓之缺陷。 离群索居诚哉不堪,然社会为人而设,非个人为社会而设也(毛)。 个人有无上之价值,百般之价值依个人而存,使无个人(或个体)则无宇宙,故谓个人之价值大于宇宙之价值可也。故凡有压抑个人、违背个性者,罪莫大焉(毛)。 此缘吾人有好变化、好奇之心,人不能有俄顷不变化者(毛)。 快感为渐达至善之征候,而持快乐论者,乃即以征候为正鹄(毛)。 快乐与痛苦,有不可离之关系,苦痛为避害之向导,其理甚明,然则快乐又宁非进取之导向耶? 甲有贵显之乐,而有患得患失之苦,其比例如何?乙有境遇之苦,而有思想自由之乐,其比例又如何? 此数句可证人类以惊奇为贵。惊奇者,人类之生涯也(毛)。 且吾人关于人生及人类之邪恶,尤常欲构为普通结论,以为镇静慰藉之资。例如为妻女所苦者,常欲为女子难养之说。著述而不为世所重者,常欲为世人不辨黑白之说。是故厌世主义者,彼之良药也。彼常因其胆液质之缺点,而生恶感,则以此药疗之,虽未能去其痼疾之根本,而时有轻损苦痛之效,如麻醉药焉。 人类贵重之性质,非自然之赐,而文明之效力也。吾人平心而观察之,勇敢、诚实、清洁、节制、正义、仁爱诸德,皆为后天之性质;而恐怖、虚伪、不洁、无节、粗野、利己,则转为野蛮人类之特色焉。 鸠之能翔于空中也,以有空气之抵抗,而彼乃以为苟无空气,则其翔也更自由,此康德所以讽人,使知悟性之动,必须经验实事者也。人之意思,不可无对象之抵抗,亦然。无抵抗则无动力,无障碍则无幸福,纯粹之幸福,为纯粹之真理然,有之者其惟神乎?在人类,则享幸福者必当有障碍若损害,犹之识真理者必当有蒙昧若谬误也。 然则不平等、不自由、大战争亦当与天地终古,永不能绝,世岂有纯粹之平等自由博爱者乎?有之,其惟仙境。然则唱大同之说者,岂非谬误之理想乎(毛)? 吾尝梦想人智平等,人类皆为圣人,则一切法治均可弃去,今亦知其决无此境矣(毛)。 此却有一疑问:吾人要此历史之名作甚,彼恶人得受恶名又有何不好(毛)? 是故思留名于千载者妄也,欣羡他人之留名者亦妄也(毛)。 吾人自欲遂行具足生活也,害恶之为多为少,除得尽除不尽,吾岂知之哉(毛)。 惟土石不死,然则人类将欲营土石之生活乎(毛)? 宇宙间非仅有人生一世界,人生以外之世界,必尚有各种焉。吾人于此人生之世界已种种经验之,正应脱离此世界而到别种世界去经验。。。。虽然,吾之意不如此焉。人类者生而有好奇之心,何独于此而不然?吾人不常遇各种之奇事而好之乎?死也者,亦吾有生以来一未尝经验之奇事也,何独不之好乎?大风卷海,波澜纵横,登舟者引以为壮,况生死之大波澜何独不知引以为壮乎!(毛) 国家如此,民族亦然,人类亦然。各世纪中,各民族起各种之大革命,时时涤旧,染而新之,皆生死成毁之大变化也。宇宙之毁也亦然。宇宙之毁决不终毁也,其毁于此者必成于彼无疑也,吾人甚盼望其毁,盖毁旧宇宙而新得宇宙,岂不愈于旧宇宙耶!(毛) 或谓人在历史中负有继往开来之责者,吾不信也。吾惟发展吾之一身,使吾内而思维、外而行事,皆达正鹄。吾死之后,置吾之身于历史之中,使后人见之,皆知吾确然有以自完。后人因吾之完满如此,亦自加吾以芳名,然而非吾之所喜悦,以其属之后来,非吾躬与之现实也(毛)。 吾人并非建功业以遗后世,此功业自有足以利后世之性质存于其中云尔。吾之不灭也,亦吾本有此不灭之性质具于吾之身中云尔(毛)。 要之,二者原为一物,吾人各种之动作,固处处须冲动,处处系冲动之所驱,良心之明,亦处处承认之。吾人之良心固未有不以食欲性欲之事为然者也。惟在一种时候及场所,乃有谏止冲动之举,如过度之食欲,过度之性欲是也。然则良心不过加以节制而已,并非反对也。其节制亦正所以完成冲动之本职也。故良心与冲动理应一致,乃调和的而非冲突的。自后天之训练习惯,矫枉过正,乃有不循自然与冲动反对之事,致使良心之本来与冲动同原,同为真的、自然的、实在的,变而为伪的、人为的、非实在的,此则矫枉过正之咎也(毛)。 吾谓此等义务感情,只可于无意识界求之,只可于死界求之(毛)。 盖义务感情,虽可为去恶之作用,而大人君子,决非能以义务感情实现之者,大抵由活泼之地感情之冲动而陶铸之焉。 豪杰之士发展其所得于天之本性,伸张其本性中至伟至大之力,因以成其为豪杰焉。本性以外之一切外铄之事,如制裁束缚之类,彼者以其本性中至大之动力以排除之。此种之动力,乃至坚至真之实体,为成全其人格之源,即此书所谓自然之冲动,所谓性癖也。彼但计此动力发出之适宜与否,得当与否。适宜也,得当也,则保持之,否则,变更之,以迁于适宜与得当焉。此纯出自计,决非服从外来之道德律,与夫义务感情也。泡尔生所谓大人君子非能以义务感情实现,由活泼之地感情之冲动而陶铸之,岂不然哉,岂不然哉!(毛) 此种语言在其起源确已合于客观界之事实,乃由种种之经验而来者也。由一人而论,从幼少之时,即童而习之,似为构成于先天者。从历史观之,则纯成乎经验,而非所谓先天直觉也(毛)。 道德者,非吾人能使无定,而彼本无定,且亦无时而定者也。 或人之说,必以道德律为出于神之命令,而后能实行而不唾弃,此奴隶之心理也。服从神而不服从己,己即神也,神以外尚有所谓神乎?吾研究良心之起源而知之,此问题已得于己矣,即当举其所得于己者而服从之。一切时空内百般之事物,其应服从,价值无有过于此所得于己者之大。吾人一生之活动服从自我之活动而已,宇宙间各物之活动,各物从服自我之活动而已。吾从前固主无我论,以为只有宇宙而无我。今知其不然。盖我即宇宙也,各除去我,即无宇宙。各我集合,即成宇宙,而各我又以我而存,苟无我何有各我哉。是故,宇宙间可尊者惟我也,可畏者惟我也,可服从者惟我也。我以外无可尊,有之亦由我推之;我以外无可畏,有之亦由我推之;我以外无可服从,有之亦由我推之也(毛)。 然则兼此二者乃所以遂其生活,则仍是利己主义也,以利他而达到遂其生活之目的,不过易其手段而已。持粹然之利他主义者,其毫无根据,所不待言。持粹然之利己主义者,亦但为理论,在此多数个体杂然活动之世界中,决不能实现。虽不能实现,虽无此事实,而其意则仍在是;人类生活之本意,仍在发达其个体也。为达此目的,乃求手段之奚择?择纯然利己之手段乎?初民及人之初生实择此手段,久之障碍甚多,乃舍此纯然利己而则人己兼利之手段,于是而人各遂其生矣。是故,吾人有时兼利他之手段者,仍以达到自利之目的也。 余未尝以著述家之责任自绳。如何而为人所喜,如何而于人有益,余所不顾也。余惟精进不已,务高尚余之人格,而表彰余所见到之真若善而已矣(歌德)。 故君子小人之别,在其所见之幸福高下如何,而人格之高下随之。盖观其所见幸福之价值,而得以定其最深之意向矣。 在文化之初期,人类爱群性最强,各人皆仅为民族若都市之一份子,而并无独立之人格,否则不足以自存。故如忠义、信实、勇敢诸道德,尤为往昔英雄时代所最重也。 幸福者,非道德之应报,而即道德也,是也。人苟不以道德为鹄的,徒以求祸畏罪之故而行之,则一旦外界之幸福不如其所期,将遂不免有天道无知之怨。 盖世之可畏可疾者,固未有过于矜伐而骄奢者也。幸福者衰亡之媒,其证据如此矣。而不幸之境遇,若失败,若坎坷,乃适以训练吾人,而使得强大纯粹之效果。 彼等以为神意者,神圣也,公正也,慈悲也,吾人当以己之意志实现之于客观者,以明神意,以当默示。此诚人类之纯粹至深邃之意向矣。 于是道德与宗教之关系可知矣,二者同出一源,即热望其意志之达于美满之域者是也。惟在道德则要求之,而在宗教则实行之。 人之择何等哲学也,视其人为何等人,信然。 凡人之解释现象也,无不符合于其意向,一切生活,各欲以其所亲爱所珍重者围绕之,则亦欲得其所视为高尚之世界观围绕之,以餍其心。 质而言之,万即一,变即常。我是极高之人,又是极卑之人(毛)。 意志者,即决定最后之原因,不被规定于他原因,而亦无所谓意志之原因。 思虑、疑惑、决断,人类之特质也。人类之行为,定于决断,而决断者,思虑之果也。 惟人类是等能力发展之程度,至为不齐。其全为动物冲动所左右,而不能抑制之者,为粗暴鄙野之人;其或全无此等冲动者,则又为枯寂酷薄之人,皆非中正之道。盖人类者,位于动物之实体及理性之实体之间者也。 ","date":"2021-12-02","objectID":"/posts/2021/12/mao-reading-of-moral-philosophy/:1:1","tags":["人物"],"title":"读《毛泽东关于“伦理学原理”的笔记》","uri":"/posts/2021/12/mao-reading-of-moral-philosophy/"},{"categories":["读书笔记"],"content":"我的摘录 以下摘录,取之以为最能表达毛氏思想者。 我为万事万念之中心,故人恒以利我为主;利他由我而起点也,利他与我有关系也。众生一大我也,宇宙一大我也,何必讳言自利耶?然大我亦有发端,终以小我为先(悟前确实如此,未知悟后亦然否?)。 由利己推而广之,利众生,利宇宙,系由小真而大真。吾儒之说亦然,“天地之道造端乎夫妇”,“先修身而后平天下”,“先亲亲而后仁民爱物”。 圣人之学为己,为实现自我也。 何谓善?在客观世界为功利,在主观世界为动机。两者皆善,方可称之为善。 且为作用,且为正鹄,则无往而不乐。 大同世界不可信。治乱迭乘,平和与战伐相寻者,自然之例也。 变化攸忽,乃人性之所喜也。 吾尝梦想人智平等,人类皆为圣人,则一切法治均可弃去,今亦知其决无此境矣。(不一定,人人皆悟,则大同成。然而人人皆悟的希望渺茫啊!) 论事不论人。 正不能胜邪,乃是正尚未能胜邪,非一定不能也。邪之存在,所以动心忍性,增益其所不能,实现正鹄之垫脚石耳。 不问收获,只问耕耘。 吾与伦理学有二主张。一曰个人主义。一切之生活动作所以成全个人,一切之道德所以成全个人,表同情于他人,为他人谋幸福,非以为人,乃以为己。吾有此种爱人之心,即须完成之,如不完成即是于具足生活有缺,即是未达正鹄。释迦墨翟皆所以达其个人之正鹄也。一曰现实主义。以时间论,止见过去未来,本不见有现在。现实非此之谓,乃指吾之一生所团结之精神、物质在宇宙中之经历,吾人务须致力于现实者。如一种行为,此客观妥当之实事,所当尽力遂行;一种思想,此主观妥当之实事,所当尽力实现。吾只对于吾主观客观之现实者负责,非吾主观客观之现实者,吾概不负责焉。既往吾不知,未来吾不知,以与吾个人之现实无关也。或谓人在历史中负有继往开来之责者,吾不信也。吾惟发展吾之一身,使吾内而思维,外而行事,皆达正鹄。吾死之后,置吾之身于历史之中,使后人见之,皆知吾确然有以自完。后人因吾之圆满如此,亦自加吾以芳名,然而非吾之所喜悦,以其属之后来,非吾躬与之现实也。历史前之事亦然。吾取历史以其足以资吾发展现实之具足生活也。或谓吾人负有生殖之责任,吾亦不信,我自欲生殖也,我具足生活中有此一片段之生活,我自欲遂行也,向谁负责任?必依此二主义,乃可谓之真自由,乃可谓之真自完。 冲动既为自然,未有不能善生存发达者。自然者,真也,实在也。 冲动与良心两者原为一物。冲动自然发出,良心加以节制而已,并非反对之。其节制亦正所以完成冲动之本职也。 无论何种之书,都是述而不作,都是经验现象之总结。 豪杰圣人乃能尽其性者也。 浩然之气,集义所生。 发显即本体,本体即发显,合无数发显而为一大本体,由一大本体而分无数发显。人类者与本体有直接关系,而为其一部分,人类之意识,亦即与本体之意识相贯通,本体或名之曰神。 己即神也。 吾人惟有对于自己之义务,未有对于他人之义务。救人畏难,所以慰安吾心,而充分发展吾人精神之能力也。 ","date":"2021-12-02","objectID":"/posts/2021/12/mao-reading-of-moral-philosophy/:1:2","tags":["人物"],"title":"读《毛泽东关于“伦理学原理”的笔记》","uri":"/posts/2021/12/mao-reading-of-moral-philosophy/"},{"categories":["读书笔记"],"content":"总结 从毛氏笔记中,可以看出,早期毛氏受阳明心学影响极大。总体框架与心学同。其中超越心学框架者,乃所谓善之定义也。心学说主于天理则无往而不善,然而何谓天理?何谓人欲?实际操作中难以区别。毛氏则结合主观客观之说,认为功利与动机皆善方可谓之善。我则以未悟之视角,主张以大我之利为先,若不可决,则诉诸直觉。觉悟者或有另一光景,也未可知。然而吾以未悟之身,行未悟之事,义也,宜也。 ","date":"2021-12-02","objectID":"/posts/2021/12/mao-reading-of-moral-philosophy/:2:0","tags":["人物"],"title":"读《毛泽东关于“伦理学原理”的笔记》","uri":"/posts/2021/12/mao-reading-of-moral-philosophy/"},{"categories":["读书笔记"],"content":"商鞅徙木立信论 1912.06 讲中国需要开启民智 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:1","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致湘生书 1915.06.25 为学之道,先博而后约,先中而后西,先普通而后专门。 前者已矣,今日为始。 吾今日舍治科学,求分数,尚有何事?别人或谓退化,吾自谓进化也。 推崇康梁。 梁启超:先业词章,后治各科。 盖文学为百学之原,吾前言诗赋无用,实失言也。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:2","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致友人信 1915.07 弟近年来所有寸进,于书本得者少,于质疑问难得者多。 夫人之生所遭不齐,惟豪杰之士知殊趋而同至,不型人以合吾之轨,亦不迁己轨以合人之型,此诚至公彻理之谈也。 该说的还是要说。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:3","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致萧子升信 1915.08 言不能因愆而废,犹食不能因噎而废也。况所言者未必愆,即愆矣,亦哲人之细事。 该说的还是要说。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:4","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致萧子升信 1915.09 论博学。对黎锦熙的钦佩。讲了跟黎锦熙之间的探讨。 毛:求学求什么?上山读古籍,而后下山而涉其新,可乎? 黎:不然,这样就先后倒置了。通为专之基,新为旧之基。特别是政治家、事功家,应该注重通识。知通识,则知社会。 毛:此其具体耳,其抽象则如何?下手之方则如何? 黎:于国文,不求长求异。于历史,觅其巨夫伟人,为一朝代之代表,将其前后当身之迹,一一求之至彻。于地理,地图为要,看报纸杂志应联系地理。于体操、图画、音乐、手工,得为学、养生之道;为学要有条理有秩序,养生要复其神。且有助于培养美感。 黎:《群学肆言》。为学之难有三:其一在物,其一在心,其一心物相对。在物者曰物蔽,在心者曰情瞀智絯,心物相对者曰学诐、国拘、流梏、政惑、教辟。为学之根本在缮性。缮性在学,学有三科,曰玄间著。(语文、数学、物理、化学、博物)。学,则德寓乎其中矣。 国学最要紧。其中最急切的,就是国学常识。择好书,曾氏“杂钞”其庶几焉。 曾国藩《经史百家杂钞》 姚鼐《古文辞类纂》 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:5","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致萧子升信 1915.09.25 吾人立言,当以身心之修养、学问之研求为主,辅之以政事时务,不贵文而贵质,彩必遗弃,惟求其神。易言之,每为一书,必有益处,言必载物。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:6","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致黎锦熙信 1915.11.09 陈述对黎式行为的疑惑,劝其早归。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:7","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致萧子升信 1916.07.25 分析时事,预言中日战争,预言日美战争,奇哉! ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:8","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致黎锦熙信 1916.12.09 以古之智仁勇三达德,提倡今之德智体三言。 一旦身不存,德智则随之而惰矣。 夫人之一生,所乐所事,夫曰实现。 世界之外有本体,血肉虽死,心灵不死,不在寿命之长短,而在成功之多寡。此其言固矣。 君子不立危墙之下。 弟身亦不强,近以运动之故,受益颇多。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:9","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"体育之精神 1917.04.01 体育者,人类自其养生之道,使身体平均发达,而有规则次序之可言者也。 体育于吾人实占第一之位置。体强壮而后学问道德之进修勇而收效远。 故讲体育必自自动始。 体育之效,至于强筋骨,因而增知识,因而调感情,因而强意志。筋骨者,吾人之身;知识、感情、意志者,吾人之心。身心皆适,是谓俱泰。故夫体育非他,养乎吾生、乐乎吾心而已。 今之学者多不好运动,其原因盖有四焉:一则无自觉心也。一则积习难返也。一则提倡不力也。一则学者以运动力可羞也。 此事不重言谈,重在实行,苟能实行,得一道半法已足。 运动所宜注意者三:有恒一也,注全力二也,蛮拙三也。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:10","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"《一切入一》序 1917.夏 学在积累。积累之道,在有条理。 贵有恒。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:11","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致黎锦熙信 1917.08.23 求大本大源。人人有哲学、伦理学见解。 大同者,吾人之鹄也。 立德立功立言。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:12","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"夜学招学广告 1917.10.30 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:13","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致罗学瓒信 1918.08.11 劝其从事教育 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:14","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致七八舅父母信 1918.08 1919.04.28 将去北京游历。在北京大学任职员。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:15","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"《湘江评论》创刊宣言 1919.07.14 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:16","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"《大公报》非自杀 1919.11.23 泡尔生:人生目的:人类之体魄及精神,其势力皆发展到至高地位,而无所歉然。即曰至善。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:17","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致陶毅信 1920.02 联军。各方面都应该去打先锋的人。 新民学会。1918年4月成立。 时常交流,谈共同目的,及达到目的之方法。有意识有组织。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:18","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致周世钊信 1920.03.14 国内研究与出国研究的先后问题。 求学实在没有”必要在什么地方“的理 暂时在国内研究的几种好处: ①看译本较看原本快得多,可于较短时间求到较多的知识。 ②世界文明分东西两流,东方文明在世界文明内,要占半壁的地位。然东方文明可以说就是中国文明。吾人似应先研究过吾国古今学说制度的大要,再到西洋留学才有可资比较的东西。 ③吾人如果要在现今的世界稍为尽一点力,当然“脱不开”中国这个地盘。关于这地盘内的情形,似不可不加以实地的调查,及研究。这层工夫,如果留在出洋回来的时候做,因人事及生活的关系,恐怕有些困难。不如现在做了,一来无方才所说的困难,二来又可携带些经验到西洋去,考察时可以借资比较。 先将古今中外的学说取其精华,自成体系。 团体方面:①结合同志②在很经济的可能的范围内成立为他日所必要的基础的事业。 工读互助团。 不是绝对反对留学,而是主张大留学政策。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:19","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致黎锦熙信 1920.06.07 决定一年半或两年后留学俄国。学习俄语。 我对于学问,尚无专究某一种的意思,想用辐射线的方法,门门涉猎一下。颇觉常识不具,难语专攻,集拢常识,加以条贯,便容易达到深湛。 可惜我太富感情,中了慷慨的弊病,脑子不能入静,工夫难得持久,改变也很不容易改变,真是不得了的恨事呵。 文字学、言语学、和佛学,我都很想研究。 具体、鲜明、热烈。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:20","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致罗学瓒信 1920.11.26 身体是一个大问题。客观环境确实有原因。主观方面的原因,就是心理上的惰性。如读书成了习惯,便一直读下去不知休息。照卫生的法则,用脑一点钟,应休息十五分钟,弟则常常接连三四点钟不休息,甚或夜以继日,并非乐此不疲,实是疲而不舍。个人方面,须养成工读并行的习惯,至少也要养成读书和游戏并行的习惯。我的生活实在太劳了,怀中(杨昌济)先生在时,曾屡劝我要节劳,要多休息,但我总不能信他的话。以后拟每两个月出游一次。 四种迷:感情论事,以偏概全,以一时概永久,以主观概客观。我自信于后三者的错误尚少,惟感情一项,颇不能免。以人废言,是我一个短处,日后务要改正。 奉向蔡做首领,组成“拒婚联盟”。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:21","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致萧子暲信 1920.11 我近觉得仅仅常识是靠不住的,深慨自己学问无专精,两年来为事所扰,学问未能用功,实深报恨。 不好利,早起,好读书,谦,此谓良习惯。 重现在有两要义,一贵我(求己、不责人),二通今(如读史必重近世,以其与我有关也) ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:22","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"张昆弟记毛泽东的两次谈话 1917.09 毛君云,西人物质文明极盛,遂为衣食住三者所拘,徒为肉欲之发达已耳。若人生仅此衣食住三者而已足,是人生太无价值。又云,吾辈必想一最容易之方法,以解经济问题,而后求遂吾人理想之世界主义。又云,人之心力与体力合行一事,事未有难成者。余甚然其言。且人心能力说,余久信仰,故余有以谭嗣同《仁学》可炼心力之说。 毛君润之云,现在国民性情,虚伪相崇,奴隶性成,思想狭隘,安得国人有大哲学革命家,大伦理革命家,如俄之托尔斯泰其人,以洗涤国民之旧思想,开发其新思想。余甚然其言。中国人沉郁固塞,陋不自知,入主出奴,普成习性。安得有俄之托尔斯泰其人者,冲决一切现象之网罗,发展其理想之世界。行之以身,著之以书,以真理为归,真理所在,毫不旁顾。前之谭嗣同,今之陈独秀,其人者,魄力颇雄大,诚非今日俗学所可比拟。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:23","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"读《改变心理学的40研究》,看到关于内控型和外控型人格的讨论,觉得蛮有意思,记录下来。 ","date":"2021-11-27","objectID":"/posts/2021/11/internal-and-external-control-personality/:0:0","tags":[],"title":"内控和外控型人格","uri":"/posts/2021/11/internal-and-external-control-personality/"},{"categories":["读书笔记"],"content":"什么叫内控和外控 当人们把自己的行为后果归因为运气、命运或是他人力量的影响时,称为外控点的信念;与之相反,如果人们把行为后果归因于自己的行为和人格特征,则他们就具有一种内控点的信念。 ","date":"2021-11-27","objectID":"/posts/2021/11/internal-and-external-control-personality/:1:0","tags":[],"title":"内控和外控型人格","uri":"/posts/2021/11/internal-and-external-control-personality/"},{"categories":["读书笔记"],"content":"形成原因 内、外控倾向形成的可能原因有三:文化差异、社会经济水平的差异以及父母教养方式的差异。 ","date":"2021-11-27","objectID":"/posts/2021/11/internal-and-external-control-personality/:2:0","tags":[],"title":"内控和外控型人格","uri":"/posts/2021/11/internal-and-external-control-personality/"},{"categories":["读书笔记"],"content":"控制点的影响 控制点是一种在各种情景中一贯起作用的可界定的个体特征;而且,个体的内外控维度对行为的影响是使不同的人在面对同一情境时采取不同的行为。 ","date":"2021-11-27","objectID":"/posts/2021/11/internal-and-external-control-personality/:3:0","tags":[],"title":"内控和外控型人格","uri":"/posts/2021/11/internal-and-external-control-personality/"},{"categories":["读书笔记"],"content":"与宗教信仰的关系 如果一个人具有外控倾向,但这种外部力量被认为是一种对至高无上的神灵(如上帝)的强烈信仰,那么也就不太可能陷入由外控倾向带来的一些典型问题(如无助感、抑郁、低水平的成就动机、缺少谋求改变现状的动机等)。这可以部分解释为什么一些人归于哲学,一些人归于宗教。 ","date":"2021-11-27","objectID":"/posts/2021/11/internal-and-external-control-personality/:4:0","tags":[],"title":"内控和外控型人格","uri":"/posts/2021/11/internal-and-external-control-personality/"},{"categories":["读书笔记"],"content":"控制点的可变性 内外控是相对稳定的,但不是绝对。若有机会,个体能够通过学习来提高内控水平。 ","date":"2021-11-27","objectID":"/posts/2021/11/internal-and-external-control-personality/:5:0","tags":[],"title":"内控和外控型人格","uri":"/posts/2021/11/internal-and-external-control-personality/"},{"categories":["读书笔记"],"content":"启示 尽管大多时候内控水平高的人可以更好地自我调节并适应生活,但是如果一个人打算改变不可能改变的情境,那么挫折沮丧和抑郁很可能随之而来。所以最理智的策略是认清哪些能改变的、哪些不能改变,合理的设置内外控界限。 如此看来,美国神学家尼布尔的祈祷词可谓经典: 上帝,请赐予我平静,去接受我无法改变的。 赐予我勇气, 去改变我能改变的。 赐予我智慧, 分辨这两者的区别。 ","date":"2021-11-27","objectID":"/posts/2021/11/internal-and-external-control-personality/:6:0","tags":[],"title":"内控和外控型人格","uri":"/posts/2021/11/internal-and-external-control-personality/"},{"categories":["问题记录"],"content":"TeX TeX 是 Donald Knuth 编写的一套排版系统,尤其擅长排版复杂的数学公式。TeX 语言定义了一套原语,用于对纯文本进行格式控制;并且在这些原语的基础上,定义了一系列宏,增加了TeX 语言的易用性。TeX 编译器用于编译 TeX文件,初期生成的文件为dvi格式。 ","date":"2021-11-24","objectID":"/posts/2021/11/tex-family/:1:0","tags":["LaTeX","writing"],"title":"TeX Family","uri":"/posts/2021/11/tex-family/"},{"categories":["问题记录"],"content":"pdfTeX, XeTeX \u0026 LuaTeX Donald Knuth 认为 TeX 已经够用,不希望 TeX 变得太复杂,决定不再往里面添加新功能,只接受bug fix。 随着新技术的发展,以及现代化排版的需要,一些人创建了几个TeX的变体:pdfTeX, XeTeX \u0026 LuaTeX。这些变体其实是在TeX的基础上,扩展了TeX的能力,增加了新的原语和特性。虽然这些变体都继承了TeX,但这些变体之间,相互是不兼容的。 ","date":"2021-11-24","objectID":"/posts/2021/11/tex-family/:2:0","tags":["LaTeX","writing"],"title":"TeX Family","uri":"/posts/2021/11/tex-family/"},{"categories":["问题记录"],"content":"pdfTeX 提供了直接输出pdf文件的能力 对TeX的排版做了一些细节上的调整 ","date":"2021-11-24","objectID":"/posts/2021/11/tex-family/:2:1","tags":["LaTeX","writing"],"title":"TeX Family","uri":"/posts/2021/11/tex-family/"},{"categories":["问题记录"],"content":"XeTeX 处理UTF-8编码,处理多国语言 可以方便地使用OpenType字体 ","date":"2021-11-24","objectID":"/posts/2021/11/tex-family/:2:2","tags":["LaTeX","writing"],"title":"TeX Family","uri":"/posts/2021/11/tex-family/"},{"categories":["问题记录"],"content":"LuaTeX 源于pdfTeX 支持Lua脚本语言 支持UTF-8编码 可以处理OpenType字体,但处理机制和XeTeX不同 支持MetaPost画图语言 支持通过C/C++写的.dll或.so插件来添加扩展功能 ","date":"2021-11-24","objectID":"/posts/2021/11/tex-family/:2:3","tags":["LaTeX","writing"],"title":"TeX Family","uri":"/posts/2021/11/tex-family/"},{"categories":["问题记录"],"content":"LaTeX 与刚讲的三个变体不同,LaTeX 并未扩展TeX的功能,而是给TeX写了一组macro,这些macro仍然是建立在TeX原语的基础之上。也就是说,LaTeX只是一批大量精心设计的macro的集合。 增加了很多对排版细节的控制,如页面布局,字体等,更加易用 可以方便地添加其他宏包,以便解决特定领域的排版问题 ","date":"2021-11-24","objectID":"/posts/2021/11/tex-family/:3:0","tags":["LaTeX","writing"],"title":"TeX Family","uri":"/posts/2021/11/tex-family/"},{"categories":["问题记录"],"content":"pdfLaTeX, XeLaTeX \u0026 LuaLaTeX pdfLaTeX = LaTeX macro package + pdfTeX engine XeLaTeX = LaTeX macro package + XeTeX engine LuaLaTeX = LaTeX macro package + LuaTeX engine ","date":"2021-11-24","objectID":"/posts/2021/11/tex-family/:4:0","tags":["LaTeX","writing"],"title":"TeX Family","uri":"/posts/2021/11/tex-family/"},{"categories":["技术"],"content":"编程语言 语言有两大要素——语法和语义,语法是看得见的表面的形式,语义是真正想表达的背后的含义。各种五发八门的不同的编程语言,其表面形式可以天差地别,但其背后的语义却是相通的。只有使计算机「理解」了人类想表达的东西,才有可能准确给出人类想要的结果。当然也需要计算机拥有对应的计算能力,这正是计算理论所研究的内容,各种计算模型,如有限状态自动机,下推自动机,图灵机,确定性的,不确定性的等等,计算能力的确有差别。不过这一切的前提是你得想办法把自己的想法「告诉」计算机,这就绕不开计算机程序的语义。 ","date":"2021-04-21","objectID":"/posts/2021/04/program-semantics/:1:0","tags":["程序分析"],"title":"编程语言的形式语义","uri":"/posts/2021/04/program-semantics/"},{"categories":["技术"],"content":"形式语义 形式语义试图精确地、无歧义地描述程序的含义,并利用这些含义研究程序的性质。现实中,程序的语义通常有两种方式描述:一种是靠实现规范,如Ruby解释器有一个参考实现;另一种是写一份平实的官方规范,如C++/Java/ECMAScript。 而从更加形式化也更加数学化的角度看,描述程序可以由三种语义:操作语义、指称语义和公理语义。 ","date":"2021-04-21","objectID":"/posts/2021/04/program-semantics/:2:0","tags":["程序分析"],"title":"编程语言的形式语义","uri":"/posts/2021/04/program-semantics/"},{"categories":["技术"],"content":"操作语义 操作语义为程序在某种机器的执行定义一些规则,来捕捉编程语言的含义。这个机器通常是一种抽象的机器:为了解释这种语言所写的程序如何执行,而设计出来的一种想象的、理想化的计算机。操作语义又分为小步操作语义和大步操作语义。 小步操作语义 假想一台机器,用这台机器直接按照这种语言的语法进行操作一小步ー小步地对其进行反复规约,从而对一个程序求值。这种语义相当于为程序实现了一种迭代式的解释器。 大步操作语义 大步语义的思想是,定义如何从一个表达式或者语句直接得到它的结果。这必然需要把程序的执行当成一个递归的而不是迭代的过程。也就是说,为了对一个更大的表达式求值,我们要对所有比它小的子表达式求值,然后把结果结合起来得到最终答案。这种语义相当于为程序实现了一种递归式的解释器。 ","date":"2021-04-21","objectID":"/posts/2021/04/program-semantics/:2:1","tags":["程序分析"],"title":"编程语言的形式语义","uri":"/posts/2021/04/program-semantics/"},{"categories":["技术"],"content":"指称语义 用一种更低级更形式化的语言,或者至少比被描述的语言更好理解的语言,来描述新的语言。它更抽象,与操作语义更像解释器相比,它更像编译器。 ","date":"2021-04-21","objectID":"/posts/2021/04/program-semantics/:2:2","tags":["程序分析"],"title":"编程语言的形式语义","uri":"/posts/2021/04/program-semantics/"},{"categories":["技术"],"content":"公理语义 通过在语句执行前后,分别给出抽象机器状态的断言,来描述一个语句的含义:如果前置条件在语句执行前初始化为true,那么执行后的后置条件也保证为true。公理语义主要用于验证程序的正确性。 ","date":"2021-04-21","objectID":"/posts/2021/04/program-semantics/:2:3","tags":["程序分析"],"title":"编程语言的形式语义","uri":"/posts/2021/04/program-semantics/"},{"categories":["思维"],"content":"想到一些事情,心情豁然! 曾羡靖节种豆南山,怡情五柳,淡然一生。然又恐过而无踪迹,如鸟去无影,烟散云尽,终不甘心。始思当以润之、盖茨为榜样,轰烈一生,史册有载,方不枉一世。然若此则必苦累非常,且成功机率甚小,到头一场空,人生必如此苦累乎?鱼与熊掌不可兼得,不知如何取舍也,故而苦恼。 近日慎思,且闻高人言,始悟。 人生无须苦累至如此,有最紧要二字曰“幸福”,存爱己之人与己爱之人,可以无悔矣。己爱者,必不负之;爱己者,必以桃李报之,为之赴汤蹈火可矣。有感于《蜘蛛侠》,悟能力与责任相关之理,能力高则责任愈大。成也心安,败也泰然,尽力则无悔。花样年华,当努力提高能力,勇担吾辈之责,为爱己之人,与己爱之人,珍惜之,其幸福即为吾幸福,勿负之,我无憾矣! ","date":"2009-12-11","objectID":"/posts/2009/12/old-essay-mood-recording/:0:0","tags":["感悟"],"title":"明吾志","uri":"/posts/2009/12/old-essay-mood-recording/"},{"categories":null,"content":"关于本站 写字,思考,分享 ","date":"0001-01-01","objectID":"/about/:0:0","tags":null,"title":"","uri":"/about/"}] \ No newline at end of file +[{"categories":["工具"],"content":"使用git merge最棘手的问题就是会产生合并冲突,即merge conflicts。由于多人协作,冲突的问题大概是不可避免的,因此本文旨在尽量减少冲突,以及快速解决那些不可避免的冲突。 ","date":"2023-10-04","objectID":"/posts/2023/10/git-merge-best-practice/:0:0","tags":["问题记录","git"],"title":"git merge最佳实践","uri":"/posts/2023/10/git-merge-best-practice/"},{"categories":["工具"],"content":"尽量减少冲突 ","date":"2023-10-04","objectID":"/posts/2023/10/git-merge-best-practice/:1:0","tags":["问题记录","git"],"title":"git merge最佳实践","uri":"/posts/2023/10/git-merge-best-practice/"},{"categories":["工具"],"content":"理解冲突产生的原因 Merge总是发生在两个分支之间,而它们的不一致有可能导致冲突。git系统会尽量自动解决冲突,但在某些它认为存在风险的情况下,会留给用户做最后的决定。大概有这么几种情况: 被merge的两个分支修改了同一文件的同一行 分支A删除了某文件,分支B修改该文件 分支A删除了某文件中的某行,分支B修改该文件的该行 ","date":"2023-10-04","objectID":"/posts/2023/10/git-merge-best-practice/:1:1","tags":["问题记录","git"],"title":"git merge最佳实践","uri":"/posts/2023/10/git-merge-best-practice/"},{"categories":["工具"],"content":"减少冲突的方法 保持格式化规则的一致性。如果不同开发者使用不同的格式化风格,自动格式化工具就很可能会改到别的开发者的代码,就会产生冲突。 提高PR的频率。不要等积攒了一大堆改动后再推送,特别是在会跟其他人修改同一文件的情况下。 在本地尽量使用rebase。rebase会使commit历史更加线性化整洁化,相当于先把远程分支的更改同步到本地,然后在此基础上应用自己本地的修改。 这样可以把冲突尽量局限在本地,而减少合并到远程分支时的冲突。 需要注意的是不要在公共分支rebase,因为rebase会修改commit历史,很容易给协作者带来麻烦,请参见rebase的工作原理。 跟协作者沟通并建立约定。工具不能代替现实的沟通交流。 ","date":"2023-10-04","objectID":"/posts/2023/10/git-merge-best-practice/:1:2","tags":["问题记录","git"],"title":"git merge最佳实践","uri":"/posts/2023/10/git-merge-best-practice/"},{"categories":["工具"],"content":"解决冲突 解决冲突最简便易行的方法是使用emacs ediff工具。 ","date":"2023-10-04","objectID":"/posts/2023/10/git-merge-best-practice/:2:0","tags":["问题记录","git"],"title":"git merge最佳实践","uri":"/posts/2023/10/git-merge-best-practice/"},{"categories":["工具"],"content":"使用Emacs ediff解决冲突 在magit状态界面下,把光标移动到unmerged那一行,按e,就会打开ediff。 打开ediff后会出现如下界面,整个frame被分为了A, B, C三块窗口: 其中A代表目前正在操作的分支,B代表想要merge的目标分支,C代表merge的期望效果。 在这个界面下,按n/p可以在冲突点之间移动光标,定位到某个冲突点后,按a表示采纳窗口A的更改,按b表示采纳窗口B的更改, 采纳之后的效果会显示在窗口C。当然也可以在窗口C直接修改。将当前文件的冲突解决完后,按q退出ediff-session,这时会提醒用户保存文件,按y即可。 接下来,解决其他文件的冲突,循环往复直到所有冲突都解决。 ","date":"2023-10-04","objectID":"/posts/2023/10/git-merge-best-practice/:2:1","tags":["问题记录","git"],"title":"git merge最佳实践","uri":"/posts/2023/10/git-merge-best-practice/"},{"categories":["工具"],"content":"进阶用法 从magit进入ediff稍微有点繁琐,可以使用这个方法使该过程更加自动化。(需要根据自己的系统情况做一些修改) 其基本思路是写一个shell脚本调用emacs并进入ediff,然后使git mergetool调用该脚本。最终达到能通过git mergetool直接进入到ediff界面解决冲突。 ","date":"2023-10-04","objectID":"/posts/2023/10/git-merge-best-practice/:2:2","tags":["问题记录","git"],"title":"git merge最佳实践","uri":"/posts/2023/10/git-merge-best-practice/"},{"categories":["工具"],"content":"在windows上喜欢用onenote做笔记。onenote的一大特色是可以方便做表格化的笔记,但是在已有的表格内插入表格却略微有些繁琐。 幸运的是,可以用本文的方法将这个过程简化,达到一键添加表格的效果。本文将此方法分享给有需要的人。 原始onenote中,在表格内添加表格,需要:插入-表格-插入表格-填入行数和列数-确定,要连续点好几下鼠标,即便是用键盘,也需要按好几下按键,十分繁琐。 要使这个操作简化,首先要依次按:插入-表格,然后在“插入表格”这个按钮上右键,将该按钮添加到“快速访问工具栏”。此后便可以用“Alt+数字”访问该按钮。 这里数字代表的是该按钮在快速访问工具栏中的位置,比如,我把它放在第一个,我就可以用Alt+1来访问它。 按下Alt+1之后,还需要在弹出的对话框中填入行数和列数,再按确定,即可插入表格。 该方案已大大简化原来的操作,但还可以进一步简化。我绝大部分时候想要插入的表格都是1x1的,所以不想每次都手动填入行列数。 所以我进一步利用ahk脚本,将这一系列操作一键化。 脚本如下(需要先按照autohotkey软件v1.1): !i:: Send {Alt down}1{Alt up} ; 按下Alt+1组合键 Sleep 10 ; 暂停10毫秒 Send 1 ; 按下1 Sleep 10 Send {Tab} ; 按下Tab Sleep 10 Send 1 ; 按下1 Sleep 10 Send {Enter} ; 按下Enter Return 大功告成,此后即想要插入表格时,只需按Alt+i就可以了! ","date":"2023-10-04","objectID":"/posts/2023/10/onenote-insert-table/:0:0","tags":["问题记录","onenote"],"title":"onenote为插入表格添加快捷键","uri":"/posts/2023/10/onenote-insert-table/"},{"categories":["技术"],"content":"编程本质上是在对目标系统做抽象,不同的编程范式对目标系统做抽象的视角不同。 对于一个系统,命令式将之描述为一系列系统状态随时间演进的步骤;函数式将之描述为输出值和输入值之间的数学关系;声明式将之描述为系统各个组成部分应该满足怎样的约束条件;而面向对象则将之描述为系统内各组件之间的交互过程。 从功能性来说,一个系统可以用不同范式来描述,但特定的系统有其比较适合的描述方法,选择了适合的编程范式往往能达到事半功倍的效果;甚至对于一个系统的各个部分,所适合的描述方法也不同,这时应该对它们分开思考。 注意,编程范式不完全跟特定的编程语言绑定,更多强调的是一种思维方式,是看待目标系统的视角。 ","date":"2023-10-04","objectID":"/posts/2023/10/programming-paradigm/:0:0","tags":["软件设计"],"title":"关于编程范式","uri":"/posts/2023/10/programming-paradigm/"},{"categories":["问题记录"],"content":"最近复习C++,会写一些简短的程序做实验,每次都要手动添加头文件,手动定义main,太麻烦,于是写了一点vimscript,可以一键自动生成这种重复性的脚手架代码。如下: nnoremap \u003cC-x\u003et :call \u003cSID\u003eReadSourceTemplate()\u003cCR\u003e function! s:ReadSourceTemplate() if \u0026filetype == 'cpp' let l:template_file = '~/.config/vim/cpp_template.cpp' elseif \u0026filetype == 'c' let l:template_file = '~/.config/vim/c_template.c' endif exe ':0 read ' . l:template_file exe '/main' exe 'norm! o' endfunction 备注: 真正的脚手架代码事先写好放在特定的模板文件里:’~/.config/vim/cpp_template.cpp’, ‘~/.config/vim/c_template.c’ nnoremap行定义了普通模式下的快捷键\u003cC-x\u003et,用于触发一键生成脚手架文件的功能 函数体内先判断当前文件名后缀,据此决定载入哪个模板文件 接下来的三个execute将模板文件读入,然后自动定位到main的下一行 ","date":"2023-06-09","objectID":"/posts/2023/06/vimscript-loading-cpp-template-file/:0:0","tags":["vim"],"title":"Vimscript-一键生成脚手架代码","uri":"/posts/2023/06/vimscript-loading-cpp-template-file/"},{"categories":["读书笔记"],"content":"最近从信阅上借了两本书:《编程珠玑》和《代码大全》,这两本书以前都看过的,只是那时经验尚浅,这次阅读属于温故而知新,这里记录《编程珠玑》中一些我觉得比较重要的内容。 第1章 开篇 正确的问题。编程活动中,如果能够正确理解并定义了问题,这场战役就成功了90%。什么是问题?问题就是想要的目标状态和目前的实际状态之间的差异,所以要从这几个角度来思考:目标是什么?现状是什么?有哪些约束条件? 时间-空间折中与双赢。通常我们会认为时间和空间效率不可兼得,需要做trade-off。但是有时这个假设是不正确的,在某些情况下,减少程序的空间需求也会减少其运行时间。这可能是因为:需要处理的数据变少了,意味着处理这些数据所需的时间也减少了;同时将这些数据保存在内存中而不是磁盘上,进一步避免了磁盘访问的时间。所以,应尽可能寻找时空双赢的方案。 简单的设计。Antoine de Saint-Exupéry是法国作家(《小王子》的作者)兼飞机设计师,曾说:“设计者确定其设计已经达到了完美的标准不是不能再增加任何东西,而是不能再减少任何东西”。程序设计亦然。 ","date":"2023-06-08","objectID":"/posts/2023/06/reading-programming-pearls/:0:0","tags":["算法","程序设计"],"title":"读《编程珠玑》","uri":"/posts/2023/06/reading-programming-pearls/"},{"categories":["个人见解"],"content":"知识、能力和智慧三者彼此不同,但又相互联系,本文旨在理清三者的概念,从而使自我成长的道路更加明晰。 ","date":"2022-12-08","objectID":"/posts/2022/12/knowledge-ability-wisdom/:0:0","tags":null,"title":"知识、能力和智慧","uri":"/posts/2022/12/knowledge-ability-wisdom/"},{"categories":["个人见解"],"content":"什么是知识 知识跟具体的事物有关,是关于某些事物的事实、道理,或有关问题的解决方法。通常,一个领域的知识由一些核心概念和其他非核心概念组成,这些概念形成一个知识结构。重在记忆和理解。 ","date":"2022-12-08","objectID":"/posts/2022/12/knowledge-ability-wisdom/:1:0","tags":null,"title":"知识、能力和智慧","uri":"/posts/2022/12/knowledge-ability-wisdom/"},{"categories":["个人见解"],"content":"什么是能力 能力是在实践中解决问题的本领,也跟具体的问题密切相关。需要问题相关的领域知识加上行动力。重在练习和行动。 ","date":"2022-12-08","objectID":"/posts/2022/12/knowledge-ability-wisdom/:2:0","tags":null,"title":"知识、能力和智慧","uri":"/posts/2022/12/knowledge-ability-wisdom/"},{"categories":["个人见解"],"content":"什么是智慧 智慧主要指为人处世的一些普遍原则,如:善良、真诚、谦逊、减法、耐心、平和、积极、勤奋、勇敢。这些原则会在生活的各个方面、各个时间段都适用。智慧来自于对长期因果的洞见和觉悟。 ","date":"2022-12-08","objectID":"/posts/2022/12/knowledge-ability-wisdom/:3:0","tags":null,"title":"知识、能力和智慧","uri":"/posts/2022/12/knowledge-ability-wisdom/"},{"categories":null,"content":"Type system的基本目标是保证程序中不会出现某些错误,本文先谈什么叫错误,错误都有哪些种类,然后再谈类型系统的一些基础概念。 ","date":"2022-11-04","objectID":"/posts/2022/11/type-system-basics/:0:0","tags":null,"title":"类型系统的基本概念","uri":"/posts/2022/11/type-system-basics/"},{"categories":null,"content":"execution error 需要区分两种情况:trapped errors和untrapped errors,前者发生时会导致程序立即终止,而后者发生时不会导致立即终止,而是继续执行但后续行为不可预知。典型的untrapped error如C语言里面的数据越界读写。 ","date":"2022-11-04","objectID":"/posts/2022/11/type-system-basics/:1:0","tags":null,"title":"类型系统的基本概念","uri":"/posts/2022/11/type-system-basics/"},{"categories":null,"content":"language safety 如果一段程序不会发生untrapped error,就称这段程序是safe的。如果一个语言写成的程序都是safe的,那么就称该语言为safe language;否则就是unsafe language。 ","date":"2022-11-04","objectID":"/posts/2022/11/type-system-basics/:2:0","tags":null,"title":"类型系统的基本概念","uri":"/posts/2022/11/type-system-basics/"},{"categories":null,"content":"Well-behaved vs. ill-behaved 设计语言时会指定所有可能发生的execution error的一个子集,为forbidden error。这个子集必须包含所有的untrapped error和一部分trapped error。如果一段程序不会出现forbidden error,就称之为well-behaved,否则称为ill-behaved。 由此定义可知,well behavior比safety要求更严格。一段safe的程序并不一定是well-behaved,因为还可能发生trapped error。但是如果是well-behaved,那么一定safe。 ","date":"2022-11-04","objectID":"/posts/2022/11/type-system-basics/:3:0","tags":null,"title":"类型系统的基本概念","uri":"/posts/2022/11/type-system-basics/"},{"categories":null,"content":"type system 排除程序中错误的手段有多种,type system只是其中一种。TAPL中对type system的定义如下: A type system is a tractable syntactic method for proving the absence of certain program behaviors by classifying phrases according to the kinds of values they compute. 根据以上定义,做三点说明: 是用来对系统进行推理的一种工具 其目标是排除程序中某些特定类型的错误,而排除哪些错误与与具体类型系统的具体目标有关 其手段是对程序中变量的取值集合进行分类,相当于对程序动态行为的一种静态近似 ","date":"2022-11-04","objectID":"/posts/2022/11/type-system-basics/:4:0","tags":null,"title":"类型系统的基本概念","uri":"/posts/2022/11/type-system-basics/"},{"categories":null,"content":"type type定义了变量可能的取值集合以及允许在其上执行的操作集合。如:整数类型,浮点数类型,布尔类型。 ","date":"2022-11-04","objectID":"/posts/2022/11/type-system-basics/:5:0","tags":null,"title":"类型系统的基本概念","uri":"/posts/2022/11/type-system-basics/"},{"categories":null,"content":"typed languages vs. untyped languages 配备type system的语言叫typed language,没有配备type system的语言叫untyped language。Pure lambda calculus就是典型的untyped language。 ","date":"2022-11-04","objectID":"/posts/2022/11/type-system-basics/:6:0","tags":null,"title":"类型系统的基本概念","uri":"/posts/2022/11/type-system-basics/"},{"categories":null,"content":"type checking 一般来说,type system的基本目标是要保证safety,进阶目标是要保证well behaviour,这因语言的具体设计而异。保证type system实现其目标的手段type checking,这是在运行前对程序进行检查,由于是在运行前检查,也叫static checking,执行检查的工具是type checker。如果一个程序经受住了type checker的检查,则称之为well typed,否则称为ill typed。 保证程序不发生错误的手段不是只有type checking,比如untyped language(如LISP)根本没有类型系统,但它可以使用运行时检查来排除掉所有的forbidden error。由于是在运行时检查的,所以叫dynamic checking。 ","date":"2022-11-04","objectID":"/posts/2022/11/type-system-basics/:7:0","tags":null,"title":"类型系统的基本概念","uri":"/posts/2022/11/type-system-basics/"},{"categories":null,"content":"Strongly checked vs. weakly checked 现实中一些语言并不保证safety或well behaviour,也就是说它们并不保证检查出所有的untrapped error,我们称这类语言为weakly checked,而称提供了这种保证的语言为strongly checked。 ","date":"2022-11-04","objectID":"/posts/2022/11/type-system-basics/:8:0","tags":null,"title":"类型系统的基本概念","uri":"/posts/2022/11/type-system-basics/"},{"categories":["个人见解"],"content":"为什么写博客 书写帮助自己思考 把自己有价值的思考/知识分享给别人 提高表达能力 交志同道合的朋友 通过接受反馈认识和改善自己 ","date":"2022-10-23","objectID":"/posts/2022/10/blogging/:1:0","tags":[],"title":"关于写博客","uri":"/posts/2022/10/blogging/"},{"categories":["个人见解"],"content":"以什么原则写 要真诚,不写违心的话 要追求质量,为读者增加价值 忽略非建设性的批评 保持简洁 ","date":"2022-10-23","objectID":"/posts/2022/10/blogging/:2:0","tags":[],"title":"关于写博客","uri":"/posts/2022/10/blogging/"},{"categories":["个人见解"],"content":"写什么 对某个问题的有价值的思考 专业领域的知识 读书笔记 某个实际问题的解决方案 生活中有重要意义的事件 生活理念、价值观、感悟 ","date":"2022-10-23","objectID":"/posts/2022/10/blogging/:3:0","tags":[],"title":"关于写博客","uri":"/posts/2022/10/blogging/"},{"categories":["个人见解"],"content":"不写什么 心情碎碎念 流水账 ","date":"2022-10-23","objectID":"/posts/2022/10/blogging/:4:0","tags":[],"title":"关于写博客","uri":"/posts/2022/10/blogging/"},{"categories":["要事记录"],"content":"最近刚换了新电脑。趁此辞旧迎新之际,我做了一次数字大扫除。 笔记。之前的笔记散落各处:onenote,有道云,语雀,obsidian,org-roam,flomo,手机便笺…… 这次做了一次系统性的整理,全部收归到onenote来。删除了一部分,合并了一部分,还根据已有的笔记内容重新分了类,清爽了许多。今后打算以onenote为核心做知识管理,其他分散的笔记会定期(比如每周)整理到onenote中来。需要记忆的导入到anki中去。 照片。删了许多没用的照片,值得留下来的照片也分类存放,分类的主要标准是时间,其次是主题,照片备份到nas。有价值的截图直接贴到onenote统一管理。 电子书。之前用来管理电子书的calibre有个很大的缺点:无法对电子书用层级分类。于是决定回归最原始的方法——电脑文件夹。我把所有电子书导出,去重,删除了许多没用的,然后重新分类。然后备份到nas。 影视资源。包括电影电视剧还有很多视频教程,删了大部分,只留下很小一部分真正有用的。 邮件订阅。很多从来不看的邮件直接unsubscribe了。 RSS。价值不高的RSS源直接取消关注了。 浏览器书签。删。 手机app。消息通知全部禁止。 网盘。减少网盘的使用,删除了网盘里大量现在用不到的资源。 知乎、b站、油管收藏夹。重温收藏夹的内容,发现大部分已经没有收藏的价值了,删除。有价值的我会整理到onenote中。还在进行中。 在这个信息泛滥的时代,很多人都有信息松鼠病(我也是其中一员),囤积了很多数字资源,觉得以后会用到,然而大多数资源都静静地躺在硬盘里从未打开过。数字大扫除是一个费力劳神的事情,过程中需要重温自己想要什么,需要思考东西的分类,需要判断东西是去还是留,要留在哪里。在大扫除过程中,面对许多文件,我常常觉得“这个以后会用到吧”而不舍得,最后还是狠心删了,也有一些文件,犹豫了几下还是没舍得删。 就像家里需要定期打扫卫生以维持整洁一样,数字空间其实也需要定期做一下整理,尤其是对于需要长期使用电脑工作的人来说。我打算每周都花一小时来整理自己的数字空间,用”断舍离“为自己创造一个干净清晰有秩序的工作环境。 ","date":"2022-10-05","objectID":"/posts/2022/10/digital-clean/:0:0","tags":["极简主义"],"title":"数字大扫除","uri":"/posts/2022/10/digital-clean/"},{"categories":["要事记录"],"content":"实际上是我的跑步计划。之所以名为“长征”,是因为我目标跑步距离是25000里,刚好是红军长征的距离。 我给实现这个目标的时限是30年。这个时间足够长,一方面是为了将跑步作为此后生活中重要的一部分,保证我身体健康,精力充沛;另一方面,生活中总会有各种意外,一小段时间没跑也不至于影响大局,有足够的余地灵活安排,不会给自己带来额外的心理压力。 至于距离设置为25000里,是为了向红军长征致敬。前几年看《长征》电视剧,就萌生了重走长征路的想法,但至今尚未有合适的机会。以后能不能实现重走长征路先放一边,我这跑个长征的距离,也算是以另一种形式在实现这个愿望了。 25000里是12500公里。如果我每年跑500公里,那么25年就可以完成这个目标,30年时间绰绰有余了。所以我每年给自己的目标也不是硬性的500公里,多一点少一点都可以,可能年轻时多跑一点,年老时少跑一点。 今天,刚刚完成了第一个500公里,第一次跑步是去年的9月5日,今天是8月20日,略少于一年。很开心,特发此文以纪念! ","date":"2022-08-20","objectID":"/posts/2022/08/long-march-plan/:0:0","tags":null,"title":"“长征”计划-第一个500公里","uri":"/posts/2022/08/long-march-plan/"},{"categories":["生活感悟"],"content":" 读完所有书 知道所有知识 后悔昨天 担心明天 赢得辩论 他人对你的看法 取悦所有人 所有事情都想正确 社交媒体 新闻八卦 b站, youtube, 知乎… 抽烟喝酒 Porn 所用物品的品牌 抱怨 妒忌 自责 购物 买东西花过多时间挑选 过度整理 最新的软件 与目标无关的技能 电视剧,电影,纪录片,综艺 ","date":"2022-08-20","objectID":"/posts/2022/08/unimportant-things/:0:0","tags":["极简主义"],"title":"生活中不重要的事情","uri":"/posts/2022/08/unimportant-things/"},{"categories":["读书"],"content":"什么是整体性学习 整体性学习需要采取多种途径综合学习,在于创造信息的网络,一个知识与另一个知识相互关联,那些相互关联的知识网络使你真正做到对知识的完全理解,从而轻松地驾驭知识。 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:1:0","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"核心目的 建立知识间的联系,形成结构/模型和高速公路. ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:1:1","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"核心概念 结构: 某一块紧密联系的知识. 模型: 对结构进行抽象,进行压缩编码.随着理解深入,需要对模型进行更新 高速公路: 将结构与结构联系起来.有一些成熟结构(感知结构,关系结构,基础数学结构)可资利用. ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:1:2","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"信息的类型 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:2:0","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"信息的分类及应对 随意信息 一系列缺少逻辑分类的事实,日期,定义和规则.用联想法,挂钩法,压缩法去记忆 观点信息 存在争论的信息.需要速读来收集信息,并用图表法列出. 过程信息 教导如何行动的信息.先建立正确的背景观念,不断练习,并在练习中归纳出模型.这类信息必须投入大量的时间联系. 具体信息 那些在实际中可以被感官接收的信息.内在化有助于将信息与多个感官相联系. 抽象信息 缺少与感官直接联系的信息,如数学,计算机.内在化和比喻法对于将复杂知识简化至关重要;随时进行模型纠错. 学习一个新问题时,首先要判断信息主要属于哪一类?确定信息的类型可以帮助我们决定学习时采用什么技术,以及估计记忆时可能会遇到的困难。 信息结构的强弱 随意信息结构最弱,具体信息和过程信息结构最强.应该尽量将弱信息结构转变为强信息结构. ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:2:1","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"整体性学习的具体策略 以实际应用为目的进行学习. ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:3:0","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"获取知识 快速阅读 积极阅读 带着问题阅读 笔记流 步骤 首先写下最主要的观点,尽量用很短的单词来替换完整的句子 一旦你写下了一个观点,下一步就是在这个观点和其他观点之间画上一些箭头,观点不是建立成金字塔式的结构,而是呈现出相互关联的关系,这个过程与实际的整体性学习策略类似,观点连在一张网中。 不需要画得好看 识别重点以及知识间的联系 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:3:1","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"联系观点 比喻法 不熟悉的知识和熟悉的知识,建立桥梁. 找到比喻要保证让10岁孩子听懂. 内在化 想象一副图像,并把其他感觉也加入图像中,还可以加入情感. 比喻内在化 理解抽象概念时,可以将比喻法和内在化结合起来 图表法 流程图 绘制一系列的步骤 绘制历史事件 绘制一个系统 概念图 核心概念/衍生概念以及它们之间的关系 从最重要的观点出发,不断发出分支细化知识及分解观点 图像 简单的涂鸦 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:3:2","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"随意信息的处理 联想法 创造顺序清单 给清单中的每一项设一个有关联的符号 创建属于自己的联想(尽量夸张,奇特) 挂钩法 记忆事件的日期 创造与事件相关的图像 与数字挂钩 将事件与数字的特殊含义(事先自己编造)建立联系 信息压缩技术 记忆术 每句话抽出一个字或一个词,组成新的词或新的句子 图像联系 将几个信息联系起来,放在图表里. 笔记压缩法 将大量只是减少到几页笔记,从整体上审视之. 拿几张空白纸 用最小的字,写下笔记中的主要观点. 接着写下与之相联系的观点/公式/概念或定义. 持续上述自由写下观点的过程,直至将笔记中每一个主要观点都写下来为止. 有时候可以更进一步,将压缩后的信息整理得更有条理. ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:3:3","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"知识的延伸 用于实际 用编程思想解决生活中的问题 用会计学管理个人财务 模型纠错 在实践中发现问题,改进自己的模型. 散弹枪策略 每种类型的问题都做一做,同一类的问题不要重复 把练习时间分配到每一天 以项目为基础的学习 设定一个需要1~3个月达成的目标,围绕着目标去学习. 从小项目开始 将完成项目的过程记录下来 最好项目本身也有意义 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:3:4","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"费曼技巧 选择要学习的概念 设想你是老师,正在试图教会一名新生这个知识点,把自己的解释记录下来 当你感到疑惑时,返回去重新解释 简单化和比喻 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:3:5","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"提高效率的好习惯 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:4:0","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"能量管理 增加能量储备 每周运动3~5次 良好的睡眠 健康的饮食 足量的饮水 日程表由线性改为循环 一周休息一天 晚上不干活儿 90分钟为一个学习周期 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:4:1","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"决不拖延 每周周末,列一个清单,包括所有的任务/作业以及你想在下周完成的读书和学习活动 每天晚上,检查周计划,列出每日目标清单 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:4:2","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"批处理 类似的零散工作要集中起来一次性处理完. 耗时不太长(\u003c3h)的那些适合用批处理,如看邮件 能一次性完成的工作就一次性完成 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:4:3","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"有组织 所有的物品都放在固定的位置 随身携带一个记事本 坚持日历和做事清单 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:4:4","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"自我教育 每日阅读 每日练习 每日目标 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:4:5","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"克服挫折 遇到任何障碍可以写下来 使用网络 找一本\"怎么做\"的工具书 换一个角度试试 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:4:6","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["读书"],"content":"设置学习目标 目标要吸引自己. 所有的目标都要写下来 让目标客观化,可衡量 设定有些困难,但是努把力也可以达到的截止期限 将目标的完成转化为每日和每周的具体行动 经常看看自己的目标 ","date":"2022-05-18","objectID":"/posts/2022/05/reading-how-to-learn/:4:7","tags":["方法论"],"title":"读\u003c如何高效学习\u003e","uri":"/posts/2022/05/reading-how-to-learn/"},{"categories":["杂记"],"content":" 1021年,生于江西抚州临川 1030年,十岁,父王益知韶州,安石随之 1033年,十三岁,祖父去世,随父归临川 1036年,十六岁,随父进京 1037年,十七岁,随父至江宁,立志,用功读书 1039年,十九岁,父去世,居丧江宁,读书 1041年,二十一岁,科举礼部考试 1042年,二十二岁,进士及第,签书淮南判官,至扬州 1045年,二十五岁,任满归京师 1047年,二十七岁,知鄞县,开始尝试青苗法 1050年,三十岁,任满离开鄞县,回京师听调 1051年,三十一岁,通判舒州 1054年,三十四岁,舒州任满还京师,作“游褒禅山记”,然后任群牧判官 1057年,三十七岁,离京赴任知常州 1058年,三十八岁,自常州移提点江南东路刑狱,赴饶州 1059年,三十九岁,为三司度支判官 1061年,四十一岁,以三司度支判官知制诰,纠察在京刑狱 1063年,四十三岁,英宗立,安石丁母忧,解官归江宁 1064年,四十四岁,居丧江宁讲学 1067年,四十七岁,英宗卒,神宗立,安石以知制诰出知江宁府 1068年,四十八岁,奉诏越次入对 1069年,四十九岁,任参知政事,开始推行新法 1073年,五十三岁,王韶击败吐蕃木征等,收复洮、岷诸州,神宗以所服玉带赐安石 1074年,五十四岁,安石请求罢相,以吏部尚书、观文殿大学士出知江宁府 1075年,五十五岁,安石复相,颁《三经新义》 1076年,五十六岁,再度罢相,为镇南军节度使、同平章事、判江宁府 1079年,五十九岁,营建半山园;发生乌台诗案 1085年,六十五岁,神宗崩,新法遭全面否定 1086年,六十六岁,安石病死于金陵 ","date":"2022-04-19","objectID":"/posts/2022/04/life-of-wanganshi/:0:0","tags":["人物"],"title":"王安石生平","uri":"/posts/2022/04/life-of-wanganshi/"},{"categories":["技术"],"content":"程序分析的目的是什么 对计算机程序进行自动化的处理,以确认或发现其特性,比如性能、正确性、安全性等. 其结果可用于编译优化、提供警告信息等,比如被分析程序在某处可能出现指针为空、数组下标越界的情形等. ","date":"2022-04-19","objectID":"/posts/2022/04/program-analysis-intro/:1:0","tags":["程序分析"],"title":"程序分析简介","uri":"/posts/2022/04/program-analysis-intro/"},{"categories":["技术"],"content":"被分析的对象 被分析的程序可以是源代码(各种语言),也可以是是二进制可执行代码(各种指令集),也可以是中间代码(LLVM IR, VEX IR). ","date":"2022-04-19","objectID":"/posts/2022/04/program-analysis-intro/:1:1","tags":["程序分析"],"title":"程序分析简介","uri":"/posts/2022/04/program-analysis-intro/"},{"categories":["技术"],"content":"欲获取的程序性质 根据分析目的不同,非常多样.大致可分为性能/正确性/安全性. ","date":"2022-04-19","objectID":"/posts/2022/04/program-analysis-intro/:1:2","tags":["程序分析"],"title":"程序分析简介","uri":"/posts/2022/04/program-analysis-intro/"},{"categories":["技术"],"content":"如何评价程序分析技术 不仅要看其分析对象的规模、复杂度,分析过程的效率,还要看其对用户的要求,发现缺陷的严重程度,以及误报率、漏报率等. ","date":"2022-04-19","objectID":"/posts/2022/04/program-analysis-intro/:2:0","tags":["程序分析"],"title":"程序分析简介","uri":"/posts/2022/04/program-analysis-intro/"},{"categories":["技术"],"content":"有哪些程序分析技术 总体上分为动态和静态.所谓的静态分析,是指对程序代码进行自动化的扫描、分析,而不必运行程序;与静态分析相对应的是动态分析技术,其利用程序运行过程中的动态信息,分析其行为和特性. 以下几种都是静态分析技术. ","date":"2022-04-19","objectID":"/posts/2022/04/program-analysis-intro/:3:0","tags":["程序分析"],"title":"程序分析简介","uri":"/posts/2022/04/program-analysis-intro/"},{"categories":["技术"],"content":"抽象解释 基于抽象解释来设计程序分析,本质上是通过对程序语义进行不同程度的抽象,以在分析精度和计算效率之间取得权衡.由于分析过程赋予了源程序一种抽象语义,所以分析器就变成了一种在抽象语义上的解释器,这也是名称\"抽象解释\"的由来. 抽象解释的典型应用案例是,Astrée 成功应用于空客 A340(约 13.2 万行 C 代码)、 A380(约 35 万行 C 代码)等系列飞机飞行控制软件的自动分析并实现了分析的零误报. 数据流分析 通过分析程序状态信息在控制流图中的传播来计算每个静态程序点(语句)在运行时可能出现的状态.可视为抽象解释的一个特例,其计算的状态信息(抽象域)局限于有限高度的格. 主要应用在编译器中,其分析结果可用于编译优化. ","date":"2022-04-19","objectID":"/posts/2022/04/program-analysis-intro/:3:1","tags":["程序分析"],"title":"程序分析简介","uri":"/posts/2022/04/program-analysis-intro/"},{"categories":["技术"],"content":"符号执行 使用符号化输入代替实际输入以模拟执行(不实际执行)被分析程序,程序中的操作被转化为相应的符号表达式操作.在遇到条件语句时,程序的执行也相应地分叉以探索每个分支,分支条件则被加入到当前路径的路径条件(path condition)中.通过调用 SAT/ SMT 求解器,对路径条件的可满足性进行求解来加以判断. 典型的应用案例是微软公司把自己开发的二进制动态符号执行工具 SAGE 用于 Win 7 的测试,发现了文件模糊测试中 1/3 的 缺陷;2016 年 8 月,在美国 DARPA 举办的网络空间安全竞赛(CGC)中,最终排名前三的参赛队伍全 部使用了符号执行技术,用于自动发现并利用二进制程序中的漏洞. ","date":"2022-04-19","objectID":"/posts/2022/04/program-analysis-intro/:3:2","tags":["程序分析"],"title":"程序分析简介","uri":"/posts/2022/04/program-analysis-intro/"},{"categories":["技术"],"content":"基于机器学习的程序分析 随着近年来通用计算设备能力的提高,海量的程序执行数据被存储和管理;研究者采用机器学习、统计分析等系列技术提升现有的程序分析能力. ","date":"2022-04-19","objectID":"/posts/2022/04/program-analysis-intro/:3:3","tags":["程序分析"],"title":"程序分析简介","uri":"/posts/2022/04/program-analysis-intro/"},{"categories":["技术"],"content":"待补充… ","date":"2022-04-19","objectID":"/posts/2022/04/program-analysis-intro/:3:4","tags":["程序分析"],"title":"程序分析简介","uri":"/posts/2022/04/program-analysis-intro/"},{"categories":["技术"],"content":"Reference 张健 等:程序分析研究进展 ","date":"2022-04-19","objectID":"/posts/2022/04/program-analysis-intro/:3:5","tags":["程序分析"],"title":"程序分析简介","uri":"/posts/2022/04/program-analysis-intro/"},{"categories":["思维"],"content":"就像吃饭一样,我们吃的东西会影响我们的身体健康状态.信息就好像是我们的精神食粮,我们每天都在接收处理信息,它会深刻影响我们的精神健康状态. 有人说,我有分辨甄别能力,我不会受到那些负面影响.其实不然,很多人低估了负面信息的影响,我们看到的听到的信息,其实都会潜移默化地对我们的精神产生影响,很多是潜意识层面的,反思能力不强的人根本觉察不到. 即便是有甄别信息的能力,难道接收处理那些信息不需要成本吗?需要我们付出极大的时间和精力成本,而这些时间和精力本来可以用来做更有价值的事情. 有人说,我如果不关注这些信息,我就跟世界脱节了,就没法跟身边的小伙伴愉快的聊天了.诚然,这话有一定的道理.我们都害怕孤独,希望融入到集体中,在聊天的时候能够接得上话,不至于显得特别无知.这是可以理解的.可是害怕孤独更多的是因为我们内心不够强大,修炼自己的内心才是更好的解决之道.我们期望能够在集体聊天时接得上话,这是合理的,也是应该的,但这个只需要我们对时事新闻保持一点点的关注就够了,知道他们说什么就可以了,能够在小伙伴说的时候问出正确的问题就行了.这些都是时效性很短的东西,不需要在这些事情上寻找优越感,不用在这些事情上懂得很多. 另一方面,在聊天时要克制自己显摆的欲望,要更多的给别人说话的机会,那么适当的发问就很重要.甚至,我们可以把这个聊天也当作一个信息源,这就更加节约了自己获取信息的成本.利己利人,何乐而不为? 强调一下,当然不是要完全不关心时事,否则,大家在讨论什么,你一点也不知道,一问三不知.时间久了确实会脱节的.所以说,要关注,只是关注的程度要足够低罢了. ","date":"2022-03-16","objectID":"/posts/2022/03/information-source-control/:0:0","tags":["方法论"],"title":"为什么要控制信息源","uri":"/posts/2022/03/information-source-control/"},{"categories":["思维"],"content":"有这三种笔记本就够了:学习笔记本,任务管理笔记本和解决问题笔记本。其中学习笔记本侧重于知识输入,帮助知识内化在自己的头脑中,并形成一个知识库,作为自己的外脑供检索。而任务管理笔记本和解决问题笔记本侧重于输出,都是为了指导自己的行动。任务管理笔记本着眼在宏观,提供一个整体的蓝图,用于计划我要做哪些事情;而解决问题笔记本着眼在微观,针对一个个具体的任务和问题,用于引导自己思考我要怎么解决这个问题。 ","date":"2022-02-08","objectID":"/posts/2022/02/my-note-taking-system/:0:0","tags":["方法论"],"title":"你需要的三种笔记本","uri":"/posts/2022/02/my-note-taking-system/"},{"categories":["思维"],"content":"道理与解数学题是类似的。 ","date":"2022-02-08","objectID":"/posts/2022/02/how-to-solve-problems/:0:0","tags":["方法论"],"title":"你会解决问题吗","uri":"/posts/2022/02/how-to-solve-problems/"},{"categories":["思维"],"content":"有的人对很多领域都有所涉猎,博闻强识,兴趣广泛,却没有一件事情能做到顶尖水平;有的人只在一个领域深耕,兴趣单一,但对深耕的领域极为精通。 我们称前者为通才,后者为专才。当然,有一些天才能做到既通又专,在很多领域都能做到顶尖水平,但天才毕竟极少,是我们羡慕但学不来的。 那么,对于我们这些不甘于平庸的平凡人来说,努力的方向是成为通才呢,还是成为专才呢? 我的答案是,单单考虑社会价值的话,应该以成为专才为首要目标。 理由如下: 我们是平凡人,不是天赋型选手 现代社会是一个高度分工和专业化的社会 我们时间和精力有限 我们虽然是平凡人,但却往往对某一领域比较擅长或比较感兴趣 有人会拿「木桶理论」说事,说应该补足个人能力的短板,否则个人的发展就会受到那块短板的制约。这话有一定的道理,但是却很容易误导人,原因在于我们并不清楚短板应该补足到何种程度。 我们去接触学习各种领域的知识,美其名曰「补足短板」「兴趣广泛」,其实有时只是满足自己的猎奇心理,有时只是为了造成在努力学习的假象,缓解自己的知识焦虑,有时二者兼而有之。 所以,不要被「木桶理论」所迷惑,要先以做一个专才为目标,深耕一个领域,刻意练习,投入时间来积累,做到专家的水准。 或者更准确的说法,如做出好选择 (豆瓣)所说,做一个「一专多能零缺陷」的人。 这个词语本来是说产品设计的,但是对个人成长也同样适用。一个人的社会价值,跟一个产品的社会价值,道理是一样的。当我们把人当作社会中的产品来思考,「一专多能零缺陷」的道理就很明白了。 又有人会说,把一个人的价值等同于其社会价值,太狭隘了,我们应该跟随内心的兴趣,不要在乎外部评价。 这话也有道理,一个人的价值不能等同于外部评价。但是对于普通人,外部评价却对我们对自我的看法有很大的影响(除非是像庄子那样的圣人),我们对自我的看法又决定了我们的自尊、自信和幸福感,试想一个不停遭受打击和嘲讽的人,很难拥有自信健康的心理。 另外,我所说的社会价值也不全是外部评价,为社会做点贡献,为社会做更多的贡献,也是我心向往之的一种活法,这是应该在意的。至于后续的评价,更多的只是自然而然的结果罢了,这种结果有时不公,有时迟到,这才是不要过分在意的对象。 总之,要记住少即是多,「一专多能零缺陷」。专业领域踏实积累,刻意练习;其他领域有需要则了解,不需要则不需要去了解,牢记二八定律;至于缺陷,将之弥补到不会成为瓶颈的程度即可。 ","date":"2022-02-08","objectID":"/posts/2022/02/generalist-or-specialist/:0:0","tags":["方法论"],"title":"做通才还是专才","uri":"/posts/2022/02/generalist-or-specialist/"},{"categories":["思维"],"content":"引子 著名的任务管理四象限法,将任务按照重要性和紧急性两个维度来考量。紧急性主要与deadline有关,是比较容易判断的。但是任务的重要性,却不像表面上看起来那么容易判断。 那么有没有比较科学又容易执行的判断方法呢? 采铜在知乎上的一个回答中,提到的两个概念:收益值与半衰期,为回答这个问题提供了一些启发。 他是这么说的: 当我们评价一个事情值不值得去做、应该花多少精力去做的时候,应该抛弃单一的视角,而是分从两个不同的维度来看,一是该事件将给我带来的收益大小(认知、情感、物质、身体方面的收益皆可计入),即「收益值」;二是该收益随时间衰减的速度,我称为「收益半衰期」,半衰期长的事件,对我们的影响会持续地较久较长。 如此,收益值和半衰期正交一下就构成了一个四象限图,所有的任务都可以放到这个图的某个象限里。文中举了一些例子: 高收益值、长半衰期事件:找到自己的真爱、学会一种有效的思维方法、完成一次印象深刻的旅行、与大牛进行一场意味深长的谈话; 高收益值、短半衰期事件:买一件时髦的衣服、玩一下午手游、吃一顿大餐、看AV撸管; 低收益值、长半衰期事件:练一小时书法、背诵一首诗、背牢十个单词、看一本经典小说、读懂哲学著作的一个章节、多重复一次技能练习、认真地回复一封友人的邮件; 低收益值、短半衰期事件:挑起或参与一次网络掐架、漫无目的地网上闲逛刷微博、使用微信陌陌知乎等进行成功率很低的勾搭。 ","date":"2022-02-07","objectID":"/posts/2022/02/importance-estimation/:1:0","tags":["方法论"],"title":"如何确定事情的重要性","uri":"/posts/2022/02/importance-estimation/"},{"categories":["思维"],"content":"用收益值和半衰期来确定重要性 借鉴这个思路,我们需要确定事情的重要性时,就按照这两个维度进行思考,第一个维度要考虑做了这个事情收益有多大,第二个维度要考虑这个收益是否能对未来影响深远。 如此,思考更加系统,而且更加细化。 对于一件事情,完成之后收益越大,能够影响未来的时间越长,那么相应地也就越重要。 ","date":"2022-02-07","objectID":"/posts/2022/02/importance-estimation/:2:0","tags":["方法论"],"title":"如何确定事情的重要性","uri":"/posts/2022/02/importance-estimation/"},{"categories":["思维"],"content":"收益的衡量 这里还有一个问题:如何判断一件事情的收益呢? 这与个人的价值观关系很大。一个人认为价值很大的事情对另一个人价值可能很小,比如有的人就喜欢时髦的衣服,有的人却喜欢穿得仆仆素素。 所以我们要先问自己一个问题:我到底需要什么?之前的文章如何做更好的决定也探讨了这个问题。 只有知道自己需要什么,才好确定做成这件事的结果是不是自己期待的,以及到底有多期待。 然后确定事情的收益值就成了水到渠成的事情。 ","date":"2022-02-07","objectID":"/posts/2022/02/importance-estimation/:3:0","tags":["方法论"],"title":"如何确定事情的重要性","uri":"/posts/2022/02/importance-estimation/"},{"categories":["思维"],"content":"总结 要确定一件事情的重要性的时候,要问自己三个问题: 我需要什么?我的价值观排序是怎样的? 做成这个事情的收益是大还是小? 这个收益对未来的影响是否深远? ","date":"2022-02-07","objectID":"/posts/2022/02/importance-estimation/:4:0","tags":["方法论"],"title":"如何确定事情的重要性","uri":"/posts/2022/02/importance-estimation/"},{"categories":["思维"],"content":"参考 收益值与半衰期 | Notes ","date":"2022-02-07","objectID":"/posts/2022/02/importance-estimation/:5:0","tags":["方法论"],"title":"如何确定事情的重要性","uri":"/posts/2022/02/importance-estimation/"},{"categories":["读书"],"content":"职责链模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:1:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 有多个对象可以处理同一个请求,具体是哪个对象由运行时刻自动确定 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:1:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 能够处理请求的对象继承自同一个抽象类,运行时刻组成链状结构。 客户发请求给这条链的第一个对象,如果这个对象能处理则处理,不能处理则交给这条链的下一个对象。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:1:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:1:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"命令模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:2:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 有时必须向某对象提交请求,但并不知道关于被请求的操作或请求的接受者的任何信息。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:2:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。 把接受者封装到命令对象里面,然后一起交给invoker,invoker在将来的某一时刻会回调这个命令对象,这时命令对象会给接受者发消息,执行动作。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:2:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 动态活动图 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:2:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"其他 在函数式语言中,由于函数可以很方便的传来传去,就不需要命令模式这么麻烦了。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:2:4","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"解释器模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:3:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:3:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 实现一个DSL的解释器 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:3:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:3:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"其他 一般情况下不需要这么复杂的方案,所以这里记的很简略。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:3:4","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"迭代器模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:4:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 聚合对象需要提供一种方法来让别人访问它的元素 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:4:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 C++标准库里对所有容器都提供了迭代器 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:4:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:4:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"中介者模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:5:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 很多对象可能以各种各样的方式连接,每个对象都知道很多其他对象,他们耦合在一起。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:5:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 用一个中介者对象,专门负责控制和协调一组对象间的交互。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:5:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:5:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"备忘录模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:6:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 有时需要捕获一个对象的状态,但是暴露其内部状态又违反封装的原则 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:6:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 做一个备忘录对象,可以存储另一个对象(originator)在某个瞬间的内部状态。 只有originator有资格初始化并访问该备忘录。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:6:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:6:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"观察者模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:7:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,要通知所有依赖于它的对象 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:7:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 一个对象Observer可以向对象Subject发出订阅请求,而subject维护了所有订阅者的集合。 当subject状态有更新时,就向所有订阅者发出update消息,而Observer要有能力处理update消息。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:7:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:7:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"状态模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:8:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 对象需要在其内部状态改变时改变它的行为 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:8:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 建模为有限状态机 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:8:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:8:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"策略模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:9:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 有一系列可相互替换的算法 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:9:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 将算法封装为策略类 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:9:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:9:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"模板方法模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:10:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 一个算法的骨架是确定的,但其中的一些步骤可以有多种实现方法 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:10:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 将算法骨架实现为模板方法,然后有差别的步骤延迟到子类中实现 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:10:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:10:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"访问者模式 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:11:0","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"场景 数据是稳定的,但是要经常添加针对这些数据的操作。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:11:1","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"方案 将操作封装为visitor 客户以具体的visitor为参数向数据发送accept消息 数据处理accept消息的方法是,反过来给visitor发送visit消息,同时也把自己交给visitor 接下来,visitor根据发来的数据的类型,进行具体的处理 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:11:2","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:11:3","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"其他 添加新操作只需要增加一个对应的visitor,其中定义对各种数据类型的访问处理。 ","date":"2022-02-07","objectID":"/posts/2022/02/design-pattern-4/:11:4","tags":["软件设计"],"title":"读书笔记-设计模式-行为型模式","uri":"/posts/2022/02/design-pattern-4/"},{"categories":["读书"],"content":"适配器模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:1:0","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"场景 想使用一个已经存在的类,而它的接口不符合需求 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:1:1","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"方案 基于多重继承的 Adaptor类实现需要的接口,同时私有继承(实现继承)那个已经存在的类Adaptee。 Adaptor类在实现接口的时候,将使用私有继承来的Adaptee来实现。 基于对象组合的 Adaptor类实现需要的接口,其内部保存一个Adaptee的引用。 Adaptor类在实现接口的时候,将委托Adaptee完成相应的功能。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:1:2","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"UML表示 基于多重继承的 基于对象组合的 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:1:3","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"两种方案的权衡 对象适配器比较灵活,允许适配Adaptee以及它的所有子类。而类适配器则不行。 对象适配器需要额外的指针,类适配器不需要。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:1:4","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"桥接模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:2:0","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"场景 要将抽象部分与它的实现部分分离,使它们都可以独立地变化 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:2:1","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"方案 将抽象和实现部分分别放在独立的类层次结构中,其中一个针对接口,另一个针对实现,针对接口的类层次结构需要保存一个关于实现的对象的引用。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:2:2","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:2:3","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"其他 虽然UML类图与对象适配器很相似,但是两者的目的不同,对象适配器是为了实现接口的转换,而桥接模式是为了将接口和实现分离。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:2:4","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"组合模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:3:0","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"场景 处理具有整体-部分层次结构特征的对象,一些复杂的组件是由简单的组件组合而成,这些复杂的组件又是更复杂组件的组成部分。 想对所有组件进行统一处理。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:3:1","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"方案 关键是让所有组件继承自同一接口。复杂组件保存有简单组件的引用。 形成的动态结构是树状的。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:3:2","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"UML表示 类图 动态对象图 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:3:3","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"装饰模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:4:0","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"场景 希望给某个对象而不是整个类添加一些功能。用继承方式不够灵活。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:4:1","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"方案 将组件嵌入另一个对象中(装饰对象保存有原组件的引用)。装饰对象接受到请求时,在将请求发给原组件前后,可以自由执行一些额外的动作。 由于原组件和所有的装饰类都继承自同一接口,所以可以递归地嵌套多个装饰对象,从而添加任意多的功能。 形成的动态结构有点类似于链表。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:4:2","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:4:3","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"其他 与组合模式相比,可以将装饰视为一个退化的、仅有一个组件的组合。然而,装饰仅给对象添加一些额外的职责,而组合的目的在于对象的聚集。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:4:4","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"外观模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:5:0","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"场景 为子系统的一组接口提供一个一致的界面 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:5:1","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"方案 提供一个高层接口,给客户一个一致的界面。而该接口的具体实现委托给子系统。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:5:2","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:5:3","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"享元模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:6:0","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"场景 运行过程中创建了大量的对象,造成很大的存储开销。而且对象的大多数状态都可变为外部状态。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:6:1","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"方案 享元模式通过共享技术实现相同或相似对象的重用。 在享元模式中可以共享的相同内容称为内部状态(Intrinsic State),而那些需要外部环境来设置的不能共享的内容称为外部状态(Extrinsic State), 由于区分了内部状态和外部状态,因此可以通过设置不同的外部状态使得相同的对象可以具有一些不同的特征,而相同的内部状态是可以共享的。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:6:2","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:6:3","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"代理模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:7:0","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"场景 一个客户不想或者不能直接引用一个对象 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:7:1","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"方案 通过引入一个新的对象(如小图片和远程代理 对象)来实现对真实对象的操作或者将新的对象作为真实对象的一个替身。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:7:2","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:7:3","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"结构型模式的讨论 适配器模式和桥接模式 适配器用于解决两个已有接口不匹配的问题。桥接模式是为了将抽象和实现两者独立演化。 组合模式和装饰模式 都基于递归组合来组织可变数目的对象,但目的不同。组合模式旨在使整体与部分统一处理,而装饰模式旨在给对象添加职责。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-3/:8:0","tags":["软件设计"],"title":"读书笔记-设计模式-结构型模式","uri":"/posts/2022/02/design-pattern-3/"},{"categories":["读书"],"content":"简单工厂模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:1:0","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"场景 创建一系列类似的产品,这些产品有差异,但属于同一类 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:1:1","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"方案 创建产品的基类,为抽象产品 一系列具体的产品继承自抽象产品 创建一个工厂类,该工厂知道所有的具体产品,可以根据传入的参数构造相应的具体产品,返回抽象产品 客户不需要知道具体产品类,只需要知道工厂类以及具体产品,就可以请求工厂为之构造具体产品 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:1:2","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:1:3","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"其他 这里的工厂类也可以简化为一个普通的创建函数 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:1:4","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"工厂方法模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:2:0","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"场景 也是要创建同一类但有差异的产品,每个产品的创建过程都比之前要复杂一些。 那么如果用简单工厂模式,工厂类的设计逻辑就比较复杂。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:2:1","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"方案 为每一个产品都配一个对应的工厂,这个工厂就只负责这一种产品 创建一个抽象产品类和一个抽象工厂类 具体的产品类继承自抽象产品类,具体的工厂类继承自抽象工厂类 具体的产品和具体的工厂存在着一一对应关系,一个工厂只负责一种产品的构造 客户不需要知道具体的产品,但需要知道具体的工厂,给具体工厂发请求就可以得到具体的产品了 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:2:2","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:2:3","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"其他 在C++中可以利用模板将产品和对应的工厂联系起来(将产品作为工厂模板的参数) ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:2:4","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"抽象工厂模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:3:0","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"场景 产品不再是只有同一类了,产品也有多类,但是这些不同类的产品又需要同时对客户提供 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:3:1","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"方案 一个具体工厂不再只生产一种具体产品了,而是负责生产一组产品。 对于每一类产品,都创建一个抽象产品类 对于每一个抽象产品类,都创建一系列具体产品类 创建一个抽象工厂类 创建一系列具体工厂类,每个具体工厂都负责一组产品的构造 客户不知道具体产品,只知道抽象产品类,也知道具体工厂类,给具体工厂发请求就可以得到那一组具体的产品了 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:3:2","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:3:3","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"建造者模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:4:0","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"场景 一个复杂对象拥有多个组成部分,如汽车,它包括车轮、方向盘、发送机等各种部件。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:4:1","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"方案 一步一步构造整个复杂对象。 创建一个抽象类builder,和若干个具体builder builder负责构造复杂对象的各个部分 创建一个具体类director,内部保存了一个builder的引用,但不知道builder具体是哪个类 director负责构造整个复杂对象,而构造的方法是给自己关联的builder发消息,让builder把各个组成部分构造出来 客户只需要知道具体的builder,把这个builder交给director,然后请求director构造复杂对象即可 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:4:2","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:4:3","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"原型模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:5:0","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"场景 原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:5:1","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"方案 给对象添加一个clone方法,用于实现对自身的拷贝。 需要注意的是clone的具体实现,是深拷贝还是浅拷贝,要视具体情况而定。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:5:2","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:5:3","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"单例模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:6:0","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"场景 有些类只需要唯一实例 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:6:1","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"方案 一个类能返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常使用getInstance这个名称); 当我们调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的引用赋予该类保持的引用; 同时我们还将该类的构造函数定义为私有方法,这样其他处的代码就无法通过调用该类的构造函数来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一实例。 多线程场景下要小心设计。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:6:2","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"UML表示 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:6:3","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"对创建型模式的讨论 抽象工厂模式,建造者模式,原型模式都是依赖于对象组合,都涉及到创建一个新的负责创建产品对象的「工厂对象」 抽象工厂模式由这个工厂对象产生多个类的对象 建造者模式由这个工厂对象使用一个相对复杂的协议,逐步创建一个复杂产品 原型模式由该工厂对象通过拷贝原型对象来创建产品对象 如何选择创建型模式 先从最简单的如工厂方法模式开始,当发现需要更大的灵活性时,再根据需要选用其他的创建型模式 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-2/:7:0","tags":["软件设计"],"title":"读书笔记-设计模式-创建型模式","uri":"/posts/2022/02/design-pattern-2/"},{"categories":["读书"],"content":"什么是设计模式 特定场景下一类问题的通用解决方案。 需要说明的是,设计模式跟所使用的编程语言是很相关的。 比如,面向对象语言中的一些行为型模式在函数式语言中就不需要,而在面向对象语言直接支持「继承」、「封装」和「多态」,如果要在过程式语言中实现,也就需要特殊的「模式」了。 所以,所谓的模式跟编程语言自身的能力息息相关。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:1:0","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"四个基本要素 模式名 问题 解决的是什么样的问题 解决方案 效果 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:1:1","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"设计模式怎样解决设计问题 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:2:0","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"寻找合适的对象 面向对象程序由对象组成,对象包括数据和对数据进行操作的方法。对象在受到客户的请求(消息)后,执行相应的操作。 客户请求是使对象执行操作的唯一方法,操作又是改变对象内部状态的唯一方法。 面向对象设计最困难的部分是将系统分解为对象集合。 面向对象设计方法学 写出问题描述,挑出名词和动词,进而创建相应的类和操作 关注于系统的协作和职责关系 对现实世界进行建模,再将分析时发现的对象转化到设计中 各方法的优劣并无定论 设计模式如何起作用 帮你确定并不明显的抽象和描述这些抽象的对象,使设计更灵活、复用性更好。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:2:1","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"决定对象的粒度 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:2:2","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"指定对象接口 操作的型构signature 对象声明的每一个操作指定操作名、作为参数的对象和返回值 对象的接口interface 所定义的所有操作型构的集合。描述了该对象所能接受的全部请求的集合。 类型type 是用来标识特定接口的一个名字。 一个对象可以有许多类型,且不同的对象可以共享同一个类型。 当一个类型的接口包含另一个类型的接口时,我们说它是另一个类型的子类型subtype,另一个类型则称为它的超类型supertype。 子类型继承了它的超类型的接口。 接口的实现 对象接口和其功能实现是分离的,两个具有相同接口的对象可以有完全不同的实现。 动态绑定 客户发送请求只需要看接口,但请求具体怎么被处理,要到运行时刻才受具体对象的具体实现约束。 多态polymorphism 动态绑定允许你在运行时刻彼此替换有相同接口的对象,这种可替换性叫多态。 设计模式如何起作用 通过确定接口的主要组成部分以及经接口发送的数据类型,来帮我们定义接口。 指定接口之间的关系。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:2:3","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"描述对象的实现 实例化 由类创建一个对象,需要分配存储空间,并将操作与对象的内部数据联系起来。 类继承 子类包含父类定义的所有数据和操作。子类能够改进和重新定义它们父类的操作。 抽象类 为子类定义公共接口。 混入类mixin 是给其他类提供可选择的接口或功能的类。与抽象类一样不能被实例化。mixin要求多继承。 类class和类型type的区别 一个对象的类定义了对象是怎样实现的,同时也定义了对象的内部状态和操作的实现。 对象的类型只与它的接口有关,接口即对象能响应的请求的集合。 类继承和接口继承的区别 类继承根据一个对象的实现定义了另一个对象的实现,是代码和表示的共享机制。主要为了复用。 接口继承描述了一个对象什么时候能被用来替代另一个对象。主要为了多态。 C++中,纯接口继承,接近于公有继承纯抽象类;纯实现继承或纯类继承接近于私有继承。 针对接口编程 不将变量声明为某个特定的具体类的实例对象。不得已时,用创建型模式。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:2:4","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"运用复用机制 继承与组合 实现功能复用的两种最常用技术是:类继承和对象组合,前者为白箱复用,后者为黑箱复用。 对象组合使设计更灵活,但是动态的、高度参数化的软件比静态软件更难以理解,而且还有运行低效的问题。 应该优先使用对象组合。 经验表明,设计者往往过度使用了继承这种复用技术。 委托 委托是对象组合的特例。 继承和参数化类型 C++ template ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:2:5","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"关联运行时刻和编译时刻的结构 如果将编译时刻的代码结构比作静态的动植物分类,那么运行时刻结构就如活生生的生态系统。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:2:6","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"设计应支持变化 先预测可能会发生哪些方面的变化,然后将这些变化抽象出来。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:2:7","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"设计模式的分类 创建型模式 单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。 结构型模式 适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 行为型模式 模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。 ","date":"2022-02-06","objectID":"/posts/2022/02/design-pattern-1/:3:0","tags":["软件设计"],"title":"读书笔记-设计模式-引言","uri":"/posts/2022/02/design-pattern-1/"},{"categories":["读书"],"content":"《为什么幸运的人总幸运,倒霉的人老倒霉》读书笔记 这本小书用一个简单的故事介绍了一套做决定的方法。 故事以一个年轻人参加徒步旅行的方式展开,路上分别与不同的人交谈。这些人给年轻人引导和分享,让年轻人逐步学会这套做决定的系统方法。年轻人在生活和工作中应用这套方法后,变得更加自信、坚定而果断,遇到事情时也能做出更加明智的决定。 这套方法是怎样的呢? 首先,停止继续执行一个错误的决定。只有停下来制造一段空白,才能以更好的行动填充它。 然后开始问自己问题。分为两方面,一是向头脑提问,二是向内心提问。 向头脑提问的问题是:是不是正在满足自己真正的需要,告诉自己所有可以选择的方法,并对事情深思熟虑? 向内心提问的问题是:我作这个决定对自己是不是诚实,有没有相信自己的直觉,是不是还应该得到更好的? 关于向头脑提问,侧重于事实基础。首先要了解自己「需要」什么,尤其要区分清楚「需要(need)」和「想要(want)」的区别,如何判断是「需要」还是「想要」呢?方法是设想一个将来的场景,那时的自己会希望自己现在做这个事情吗,如果还是给出肯定的回答,那么就是「需要」,否则,就只是「想要」。 第二点是收集必要的信息,尽可能多地找出自己有哪些选择。这里的信息不止包括客观事实,也包括人们对事实的感受看法。方法包括观察和向有经验的人请教。 第三点是深思熟虑。对于每一个选择,都要推演下去,问:如果按照这个决定,可能会发生什么?然后呢? 关于向内心提问,侧重于内心感受。首先是要对自己诚实,要坦诚面对真相,不要因为真相会带来不适而欺骗自己。要问自己:我有由于不想让自己不舒服而回避真相吗? 第二点是重视直觉。如果做了一个决定,就是感到不安,那么这个决定很可能是有问题的。要问自己:如果没有恐惧,我会怎么做? 第三点是相信自己值得更好的。需要真正的相信,而不是嘴上说相信,但内心深处在抗拒。如果很难做到内心真正的相信,可以这样做,问自己:如果我相信自己应该得到更好的结果,我会怎么做?然后将自己的答案付诸行动就好了。 最后需要说明的是,要把这套方法放在触手可及的地方,比如钱包里,每当需要做决定的时候,就拿出来看看。 ","date":"2022-02-05","objectID":"/posts/2022/02/better-decision/:0:0","tags":["方法论"],"title":"如何做更好的决定","uri":"/posts/2022/02/better-decision/"},{"categories":["思维"],"content":"梁丘据谓晏子曰:「吾至死不及夫子矣!」 晏子曰:「婴闻之,为者常成,行者常至。婴非有异于人也,常为而不置,常行而不休者,故难及也。」 —— 《晏子春秋内篇·杂下》 ","date":"2022-01-26","objectID":"/posts/2022/01/do-and-persist/:0:0","tags":["方法论"],"title":"为者常成,行者常至","uri":"/posts/2022/01/do-and-persist/"},{"categories":["工具"],"content":" 排版一段代码用lstlisting环境(listing宏包) 将每一段代码用minipage环境包起来成为一个个box(注意设置每个minipage的宽度) 中间可以用\\rule命令画线,用\\hspace调整间距 若要给代码整体画个外框,可以将所有box一起放在framed环境(framed宏包)中 整体放入figure环境中,成为浮动体 示例代码: \\begin{figure}[!htb] \\lstset{language=C, numbers=left, numbersep=3pt, %frame=single, tabsize=2, xleftmargin=.05\\textwidth, %xrightmargin=.05\\textwidth, basicstyle=\\footnotesize, } \\begin{framed} \\begin{minipage}[b]{0.45\\columnwidth} \\begin{lstlisting} int callee(int x){ return x; } \\end{lstlisting} \\end{minipage} \\rule{.1pt}{36mm} \\hspace{5pt} \\begin{minipage}[b]{0.3\\columnwidth} \\begin{lstlisting} int caller() { return callee(5); } \\end{lstlisting} \\end{minipage} \\end{framed} \\caption{An example program} \\end{figure} ","date":"2022-01-21","objectID":"/posts/2022/01/latex-typeset-code-list/:0:0","tags":["问题记录","LaTex"],"title":"LaTeX如何将两段代码并排放置","uri":"/posts/2022/01/latex-typeset-code-list/"},{"categories":["思维"],"content":"如题。 是以圣人抱一以为天下式。 ","date":"2022-01-19","objectID":"/posts/2022/01/less-is-more/:0:0","tags":["方法论"],"title":"少则得,多则惑","uri":"/posts/2022/01/less-is-more/"},{"categories":["思维"],"content":"什么是成长型思维 概念来源于心理学家卡罗尔·德韦克的经典作品《终身成长》。 主要体现在人在面对失败/挫折时的想法 固定思维的人,会自我怀疑,容易深陷于失败而裹足不前,担心即使付出努力也可能得不到成功 成长思维的人,虽然也会有一些负面情绪,但会很快调整心态,进行自我反思,尝试不同的策略去战胜种种困难和挑战 ","date":"2022-01-05","objectID":"/posts/2022/01/growth-mindset/:1:0","tags":["方法论"],"title":"成长型思维","uri":"/posts/2022/01/growth-mindset/"},{"categories":["思维"],"content":"两种想法的根源何在 对自己的期待不同 固定思维期待被别人看作有天分的人 成长思维期待被别人看作肯努力的人 对失败的看法不同 固定思维把失败的行为转变成了失败的身份(我是一个失败者),更看重结果 成长思维把失败这件事当作自己改进的机会(刻意练习,有失败才能让自己进步,变得更好),更看重过程 ","date":"2022-01-05","objectID":"/posts/2022/01/growth-mindset/:2:0","tags":["方法论"],"title":"成长型思维","uri":"/posts/2022/01/growth-mindset/"},{"categories":["思维"],"content":"案例 被所申请的学校拒绝后 我不想质疑您的决定。我只是想问一下,如果下次我想再申请这所学校,我该怎么改进自己的申请书。如果您能在这方面给我一些反馈和建议,我将感激不尽。 不仅要制定一个成长型思维模式计划,更要设想具体细节,设想你要如何实行它。 ","date":"2022-01-05","objectID":"/posts/2022/01/growth-mindset/:3:0","tags":["方法论"],"title":"成长型思维","uri":"/posts/2022/01/growth-mindset/"},{"categories":["思维"],"content":"个体的复杂性 两种思维模式并不是非此即彼的关系,人们可以在不同领域表现出不同的思维模式,很多人的成长型思维模式特质只会出现在自己感兴趣的领域。 ","date":"2022-01-05","objectID":"/posts/2022/01/growth-mindset/:4:0","tags":["方法论"],"title":"成长型思维","uri":"/posts/2022/01/growth-mindset/"},{"categories":["思维"],"content":"怎样培养成长型思维 ","date":"2022-01-05","objectID":"/posts/2022/01/growth-mindset/:5:0","tags":["方法论"],"title":"成长型思维","uri":"/posts/2022/01/growth-mindset/"},{"categories":["思维"],"content":"思想上 完成比完美更重要 神经可塑性 我不是一个完美的人,但我是一个坚韧宏毅的人 拥抱失败 接纳批评 任何挫折和批评都将成为我成长道路上的垫脚石 ","date":"2022-01-05","objectID":"/posts/2022/01/growth-mindset/:5:1","tags":["方法论"],"title":"成长型思维","uri":"/posts/2022/01/growth-mindset/"},{"categories":["思维"],"content":"行动上 刻意练习,用失败作为反馈,了解自己的不足 总结,反思,找到错误发生的模式,找到自己犯错的根源,争取下次不犯同种类型的一批错误 PDCA 经常说具有成长思维特点的语言 认清目标,不要为小事分心 养成一系列好习惯 ","date":"2022-01-05","objectID":"/posts/2022/01/growth-mindset/:5:2","tags":["方法论"],"title":"成长型思维","uri":"/posts/2022/01/growth-mindset/"},{"categories":["杂记"],"content":" 好江风 将这轻舟催送 波翻浪涌 添几分壮志豪情 龙潭虎穴何足惧 剑戟丛中久鏖兵 非是俺藐群雄 一部春秋铭记 义不负心泰山重 忠不顾死何言轻 桃园金兰誓 弟兄山海盟 早把这七尺身躯青龙偃月 付于苍生 ","date":"2022-01-05","objectID":"/posts/2022/01/jiangshangxing/:0:0","tags":["人物"],"title":"关羽之歌","uri":"/posts/2022/01/jiangshangxing/"},{"categories":["读书"],"content":"什么是检视阅读 检视阅读就是用浏览的方法系统性地去阅读。表面上看有点像我们平时的粗读,但其实完全不一样。关键的不同就是系统性。所谓系统性,就是说它有一套科学的流程方法,不是漫无目的,也不是随兴而至,更不是走马观花。而我们许多人,平时读书,不大注意方法,读了不少,收获不多,时间一长,连本就寥寥无几的那点收获也丢掉了。 ","date":"2021-12-18","objectID":"/posts/2021/12/inspectional-reading/:1:0","tags":["方法论"],"title":"如何阅读之检视阅读","uri":"/posts/2021/12/inspectional-reading/"},{"categories":["读书"],"content":"为什么要检视阅读 检视阅读是一种高效的读书方法。我们平时的读书行为,主要还是为我们的现实生活服务的。不管是为了增进我们对现实世界的理解,还是为了学习解决现实问题的技巧,读书都是一个很高效的途径,特别是在这个书籍资源获取很便捷的时代。但是,如果我们没有掌握正确的方法,我们就很可能把自己淹没在这些资源中,效率很低,浪费不少时间和精力。检视阅读就是这样一种方法,帮助我们在读一本书时去伪存真,快速吸收其精华;还能帮助我们快速判断一本书的好坏,并决定是丢弃还是继续深入阅读。总之,检视阅读就是提高我们读书效率的秘诀。 ","date":"2021-12-18","objectID":"/posts/2021/12/inspectional-reading/:2:0","tags":["方法论"],"title":"如何阅读之检视阅读","uri":"/posts/2021/12/inspectional-reading/"},{"categories":["读书"],"content":"检视阅读怎么做 ","date":"2021-12-18","objectID":"/posts/2021/12/inspectional-reading/:3:0","tags":["方法论"],"title":"如何阅读之检视阅读","uri":"/posts/2021/12/inspectional-reading/"},{"categories":["读书"],"content":"问自己问题 为什么要问问题呢?其一,我们天性都是好奇的,我们的头脑对问题有一种特殊的敏感,头脑中有了问题,就会推着你去寻找答案,这会保持我们阅读的动力。其二,问题可以使我们的头脑聚焦在少量的目标上,提高思维的专注度,不至于漫无目的而效率低下。 从最通用的角度来说,对于一本书,要提出四个问题: 这本书整体在谈论什么,属于哪个类别的?这是关于这本书的主题。 这本书细部说了什么,怎么说的?这主要是要弄明白作者围绕主题说了哪些从属议题,它们之间的逻辑关系是怎样的。 这本书说得有道理吗?是全部有道理,还是部分有道理?这个决定了这本书价值到底如何。 这本书跟自己有什么关系?这样才能明白读这本书到底对自己有什么意义。 ","date":"2021-12-18","objectID":"/posts/2021/12/inspectional-reading/:3:1","tags":["方法论"],"title":"如何阅读之检视阅读","uri":"/posts/2021/12/inspectional-reading/"},{"categories":["读书"],"content":"带着问题去寻宝 有了问题,就把自己想象成一个侦探,在找寻一本书的主题或思想的线索。 主要关注以下这几个地方: 书名 目录 序言 开头和结尾 抽取感兴趣的段落 找相关的书评 这些地方很可能藏着整本书的精华,读了它们,就能回答上一步给自己提的问题了。很多时候甚至不需要读完,读多读少以及怎么读,完全看自己的需求,总之,以能回答自己的问题,形成对书的基本轮廓为目标。 ","date":"2021-12-18","objectID":"/posts/2021/12/inspectional-reading/:3:2","tags":["方法论"],"title":"如何阅读之检视阅读","uri":"/posts/2021/12/inspectional-reading/"},{"categories":["读书"],"content":"做笔记 不动笔墨不读书,可以将对以上四个问题的回答记录下来,就构成了这本书的读书笔记。特别是对第二个问题的回答,会帮助我们记录下这本书的基本框架。这个框架笔记,会在将来复习时帮我们快速回忆起整本书的精华内容。 ","date":"2021-12-18","objectID":"/posts/2021/12/inspectional-reading/:3:3","tags":["方法论"],"title":"如何阅读之检视阅读","uri":"/posts/2021/12/inspectional-reading/"},{"categories":["读书"],"content":"什么情况适合检视阅读 检视阅读应该在初次读一本书时使用。初次读一本书时,对书的内容不了解,不知道是好是坏,用检视阅读会极大提高效率。检视阅读过程中,我们会形成对书的判断,如果不合胃口,随时可以停下来丢掉。检视阅读完成之后,如果觉得这本书价值很高,就可以深入分析精读;如果觉得一般般,那么记好必要的笔记后,不再继续读下去也无妨了,因为读这本书的目的已经达到了。 ","date":"2021-12-18","objectID":"/posts/2021/12/inspectional-reading/:4:0","tags":["方法论"],"title":"如何阅读之检视阅读","uri":"/posts/2021/12/inspectional-reading/"},{"categories":["读书"],"content":"三遍法高效读论文。 ","date":"2021-12-17","objectID":"/posts/2021/12/reading-a-paper/:0:0","tags":["方法论"],"title":"如何读paper","uri":"/posts/2021/12/reading-a-paper/"},{"categories":["读书"],"content":"什么是三遍法 文章读三遍。三遍层层递进,每一遍有不同的侧重,完成不同的任务,最终达到深度理解一篇文章的目的。 ","date":"2021-12-17","objectID":"/posts/2021/12/reading-a-paper/:1:0","tags":["方法论"],"title":"如何读paper","uri":"/posts/2021/12/reading-a-paper/"},{"categories":["读书"],"content":"怎么做三遍法 ","date":"2021-12-17","objectID":"/posts/2021/12/reading-a-paper/:2:0","tags":["方法论"],"title":"如何读paper","uri":"/posts/2021/12/reading-a-paper/"},{"categories":["读书"],"content":"第一遍:浏览 步骤 仔细读title/abstract/introduction 读章节标题 看一眼关于数学的部分,找出文章的理论基础 读conclusion 浏览reference,看哪些ref是自己读过的,哪些没读过 耗时 5~10 min 需要回答的问题:5个C Category: What type of paper is this? A measurement paper? An analysis of an existing system? A description of a research prototype? Context: Which other papers is it related to? Which theoretical bases were used to analyze the problem? Correctness: Do the assumptions appear to be valid? Contributions: What are the paper’s main contributions? Clarity: Is the paper well written? 达到的效果 if: 文章不吸引你 or 文章所讲的你已经很熟悉了 or 文章所基于的假设明显是错的 then: 丢弃之 else: 继续 ","date":"2021-12-17","objectID":"/posts/2021/12/reading-a-paper/:2:1","tags":["方法论"],"title":"如何读paper","uri":"/posts/2021/12/reading-a-paper/"},{"categories":["读书"],"content":"第二遍:细读 步骤 看图表/示例 把reference中自己未读过的文献标注出来(用于补充背景知识) 耗时 1 hour 达到的效果 一般来说,能理解文章的大概内容,能向别人说出文章的核心思想(the main thrust)和支撑论据。 少数情况,无法理解这篇文章,可能是由于陌生的主题,不熟悉的术语,或者作者使用的方法不熟悉。 也可能作者写得不好,或者只是你太困了。这时可以判断一下文章的价值,低价值的可以直接丢弃,高价值的,如果是缺少背景知识,就去补充背景知识,再来细读。 ","date":"2021-12-17","objectID":"/posts/2021/12/reading-a-paper/:2:2","tags":["方法论"],"title":"如何读paper","uri":"/posts/2021/12/reading-a-paper/"},{"categories":["读书"],"content":"第三遍:揣摩 步骤 尝试把论文的方法重新实现一遍 跟原文方法相比较,深入理解作者的创新点,尝试找出作者的错误假设。此外,还要思考如果是自己写,自己会怎么做,并在对比中学习作者的各种技巧。还要把关于future work的想法记下来。 耗时 对于新手,4-5 hour 对于老手,1 hour 达到的效果 能从记忆中重建全文的结构,并指出其优缺点。能正确指出论文的隐含假设,以及其实验或理论分析方面潜在的问题。 ","date":"2021-12-17","objectID":"/posts/2021/12/reading-a-paper/:2:3","tags":["方法论"],"title":"如何读paper","uri":"/posts/2021/12/reading-a-paper/"},{"categories":["读书"],"content":"分析阅读的目的 完整地吸取一本书的精华。 ","date":"2021-12-13","objectID":"/posts/2021/12/reading-skills-analytical/:1:0","tags":["方法论"],"title":"如何阅读之分析阅读","uri":"/posts/2021/12/reading-skills-analytical/"},{"categories":["读书"],"content":"分析阅读的方法 第一阶段:整理内容大纲 依照书的种类与主题来分类。 使用最简短的文字说明整本书在谈些什么。 将主要部分按顺序与关联性列举出来。将全书的大纲列举出来,并将各个部分的大纲也列出来。 确定作者想要解决的问题。 第二阶段:诠释这本书的内容 找出关键字,与作者达成共识。 将一本书中最重要的句子圈出来,找出其中的主旨。 找出作者的论述,重新架构这些论述的前因后果,以明白作者的主张。 确定哪些问题已经被解决,哪些还没有被解决。 综合看前两个阶段,先是将整体分成许多部分,然后再从关键词这样的细节,一步步找出主旨与论述,再重新架构出一个整体。 第三阶段:评论一本书 除非你已经完成大纲架构,也能诠释整本书了,否则不要轻易批评。 当你不同意作者观点时,要理性的表达自己,不要无理的辩驳或争论。 尊重知识与个人观点的不同,在做出任何判断之前,都要找出理论依据。 ","date":"2021-12-13","objectID":"/posts/2021/12/reading-skills-analytical/:2:0","tags":["方法论"],"title":"如何阅读之分析阅读","uri":"/posts/2021/12/reading-skills-analytical/"},{"categories":["读书"],"content":"分析阅读的应用 分析阅读的成本较高。 人的精力有限,不应该不分青红皂白的使用分析阅读。 分析阅读应该用于阅读对自己有高价值的书籍。 先经由检视阅读,判断书籍的价值,筛选出高价值的书籍。 ","date":"2021-12-13","objectID":"/posts/2021/12/reading-skills-analytical/:3:0","tags":["方法论"],"title":"如何阅读之分析阅读","uri":"/posts/2021/12/reading-skills-analytical/"},{"categories":["工具"],"content":"字体类型 就像图像里面的位图和矢量图一样,字体分为点阵字体和矢量字体: 点阵字体 用像素表示字体图。 很难进行缩放,特定的点阵字体只能清晰地显示在相应的字号下。 对于 12-16 px 的小号汉字来说,点阵字体往往比其它类型的字体在屏幕上有更好的显示效果。 包括来自Adobe的BDF和来自Xorg的PCF. 可以通过gzip压缩。 矢量字体 使用贝塞尔曲线、绘图指令和数学公式来描述每种字形,使得字体可以适应各种尺寸。 包括: PostScript 字体 TrueType字体(Apple 和 Microsoft 定义,ttf) OpenType字体(基于 TrueType,Microsoft 定义,otf/ttf) ","date":"2021-12-11","objectID":"/posts/2021/12/font-basics/:1:0","tags":["问题记录","字体"],"title":"字体基础知识","uri":"/posts/2021/12/font-basics/"},{"categories":["工具"],"content":"安装字体包 一般情况下用系统的包管理软件如pacman即可 ","date":"2021-12-11","objectID":"/posts/2021/12/font-basics/:2:0","tags":["问题记录","字体"],"title":"字体基础知识","uri":"/posts/2021/12/font-basics/"},{"categories":["工具"],"content":"查看字体包 ","date":"2021-12-11","objectID":"/posts/2021/12/font-basics/:3:0","tags":["问题记录","字体"],"title":"字体基础知识","uri":"/posts/2021/12/font-basics/"},{"categories":["工具"],"content":"查看所有 fc-list ","date":"2021-12-11","objectID":"/posts/2021/12/font-basics/:3:1","tags":["问题记录","字体"],"title":"字体基础知识","uri":"/posts/2021/12/font-basics/"},{"categories":["工具"],"content":"查看中文 fc-list :lang=zh | cut -d: -f1 ","date":"2021-12-11","objectID":"/posts/2021/12/font-basics/:3:2","tags":["问题记录","字体"],"title":"字体基础知识","uri":"/posts/2021/12/font-basics/"},{"categories":["工具"],"content":"什么是serif和sans-serif 从笔画风格对字体的分类。 ","date":"2021-12-11","objectID":"/posts/2021/12/font-basics/:4:0","tags":["问题记录","字体"],"title":"字体基础知识","uri":"/posts/2021/12/font-basics/"},{"categories":["工具"],"content":"serif是衬线体 衬线体起源于古罗马的石刻拉丁字母。1968年爱德华·卡蒂奇神甫在其著作《衬线的起源》一书中指出,在石刻时,先用画笔将字母轮廓标注在石头上,然后刻字人依照痕迹进行刻画形成了衬线。 风格比较正统,一般用于传统印刷。 东亚一般称为“白体”,中国大陆地区和港台的印刷界称之为 宋体 。 ","date":"2021-12-11","objectID":"/posts/2021/12/font-basics/:4:1","tags":["问题记录","字体"],"title":"字体基础知识","uri":"/posts/2021/12/font-basics/"},{"categories":["工具"],"content":"sans-serif是无衬线体 sans 在古希腊语言中是without的意思。 抛弃装饰衬线,只剩下主干,造型简明有力,更具现代感,起源也很晚。 风格比较轻松,适用于标题、广告。 因棱角较少,方便渲染,广泛用于电脑手机萤幕。 东亚一般称为 黑体 。 ","date":"2021-12-11","objectID":"/posts/2021/12/font-basics/:4:2","tags":["问题记录","字体"],"title":"字体基础知识","uri":"/posts/2021/12/font-basics/"},{"categories":["工具"],"content":"什么是等宽字体 顾名思义,字符宽度相等的字体。英文叫monospace. 因打字机及早期的电脑画面显示等由于技术的局限,无法进行字母宽度的比例调整,因此将每个字符都制作成一样的宽度,从而形成了等宽字体。 在等宽字体中,字母“i”、“j”显得两侧余白较多,而字母“w”、“m”等的笔画显得相当拥挤。 东亚语言中,方块字基本上都作为等宽字体处理。 代码以及文字接口的程序,如代码编辑器、虚拟终端等也经常使用等宽字体,可以提高可读性。 与等宽字体相对应的是 比例字体 。 ","date":"2021-12-11","objectID":"/posts/2021/12/font-basics/:5:0","tags":["问题记录","字体"],"title":"字体基础知识","uri":"/posts/2021/12/font-basics/"},{"categories":["工具"],"content":"Reference 一篇关于字体的好文章.https://sspai.com/post/71957 ","date":"2021-12-11","objectID":"/posts/2021/12/font-basics/:6:0","tags":["问题记录","字体"],"title":"字体基础知识","uri":"/posts/2021/12/font-basics/"},{"categories":["问题记录"],"content":" Latex排版中文的问题汇总 涉及两方面: 对中文字体的支持 对中文排版细节的处理 几个相关的宏包: CJK宏包:提供了对中文字体的支持 xeCJK和luatexja宏包:处理中文排版细节 ctex 宏包和文档类:进一步封装了 CJK、xeCJK、luatexja 等宏包,使得用户在排版中文时不用再考虑排版引擎等细节。能够识别操作系统和 TEX 发行版中安装的中文字体。 ctex 宏包:用于配合各种文档类排版中文 ctex 文档类:对LATEX 的标准文档类进行了封装,对一些排版根据中文排版习惯做了调整,包括 ctexart/ctexrep/ctexbook/ctexbeamer。 在archlinux上,安装texlive-langchinese 即可安装ctex宏包。 注意: 源文件要保存为UTF-8编码。 使用 xelatex 或 lualatex 命令编译。 ","date":"2021-12-07","objectID":"/posts/2021/12/handle-chinese-in-latex/:1:0","tags":["latex"],"title":"Latex排版中文的问题汇总","uri":"/posts/2021/12/handle-chinese-in-latex/"},{"categories":["问题记录"],"content":" 例子 \\documentclass{ctexart} \\begin{document} 在\\LaTeX{}中排版中文。 汉字和English单词混排,通常不需要在中英文之间添加额外的空格。 当然,为了代码的可读性,加上汉字和 English 之间的空格也无妨。 汉字换行时不会引入多余的空格。 \\end{document} 用xelatex编译。 xelatex test-zh.tex 如果是markdown或org mode文件,用pandoc转。 pandoc test-zh.tex -o test-zh.pdf --pdf-engine=xelatex -V CJKmainfont=\"WenQuanYi Zen Hei\" ","date":"2021-12-07","objectID":"/posts/2021/12/handle-chinese-in-latex/:1:1","tags":["latex"],"title":"Latex排版中文的问题汇总","uri":"/posts/2021/12/handle-chinese-in-latex/"},{"categories":["问题记录"],"content":" refs: https://wiki.archlinux.org/title/TeX_Live_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) 一份(不太)简短的 LATEX2ε 介绍 ","date":"2021-12-07","objectID":"/posts/2021/12/handle-chinese-in-latex/:1:2","tags":["latex"],"title":"Latex排版中文的问题汇总","uri":"/posts/2021/12/handle-chinese-in-latex/"},{"categories":["问题记录"],"content":" 如何批量压缩照片 现在手机拍照出来的照片体积都很大,而手机厂商提供的云服务空间又有限,拍照片稍微多一点的话,空间很快就不够用了。周末去了趟径山寺玩,拍了点照片,我的小米云空间就频频告急了。 我检查了一下,发现随便拍的风景照,体积都有十几到二十兆,这么大的照片,质量也许好一些,对摄影爱好者可能有些意义,但对我这种只是偶尔拍着记录一下的人来说,意义其实不大。 我希望减小照片体积,稍微损失点质量也无妨(完全可以控制在肉眼看不出来的程度)。一来可以减少空间占用,便于备份,二来如果放在图床引用的话,对网络的压力也小。 Linux 上用 ffmpeg 就可以很容易做到这件事。步骤如下: mkdir output # output目录用来存放压缩后的照片文件 ls *.jpg | xargs -I{} ffmpeg -i {} output/{}; # 用ffmpeg默认的参数效果就已经很好了 经过亲测,原先20M的照片,转换完成后只有1.8M,原先的 1/10 都不到。至于质量,我觉得完全可以接受,至少用肉眼,我是真的看不出来,作为记录或者展示,够用了! ps: 照片文件最好还是用 jpg 格式,体积最小;我曾试了 png 和 webp,效果都不好,其中 png 采用无损压缩算法,还膨胀了好多倍,20M 转出来成了 60M。摄影图片一般色彩笔记丰富,jpg 才是最适合的格式。 ","date":"2021-12-06","objectID":"/posts/2021/12/howto-reduce-photo-size-in-batches/:1:0","tags":[],"title":"如何批量压缩照片","uri":"/posts/2021/12/howto-reduce-photo-size-in-batches/"},{"categories":["要事记录"],"content":"径山寺之行 ","date":"2021-12-05","objectID":"/posts/2021/12/visit-jingshan-temple/:0:0","tags":["旅行"],"title":"径山寺之行","uri":"/posts/2021/12/visit-jingshan-temple/"},{"categories":["要事记录"],"content":"缘起 曾经对佛学感兴趣,对寺庙一直感觉亲近。十一之前,就想着找个寺庙玩玩,跟hh说了这个想法后,hh说:“十一去径山寺吧”,就埋下了径山寺之行的种子。本打算十一假期最后两天去的,可惜,hh身体不太舒服,没有成行;再后来,天气转凉,hh感冒了,久未痊愈,就把径山寺这事放下了。 直到前几天,许久未出去玩的我们重新提起,才有了昨日的径山寺之行。已经是两个月过去了,but, better late than never! ","date":"2021-12-05","objectID":"/posts/2021/12/visit-jingshan-temple/:1:0","tags":["旅行"],"title":"径山寺之行","uri":"/posts/2021/12/visit-jingshan-temple/"},{"categories":["要事记录"],"content":"上山 早上八点半,窗外的阳光已洒满草地。我们各自简单收拾下,九点便出发了。径山寺所在的径山,是天目山的东北余脉,因山顶有径以通天目山而得名。位于浙江省杭州市余杭区径山镇,杭州城西北约50公里处。朝径山开了约一个小时,就到了旅游集散中心,停好车,接坐景区的中巴车上山。心情也随着接近目的地而激动了起来。 山路十八弯,我们一边随着中巴车神龙摆尾,一边感叹着司机的自信车技,还要偷空欣赏车窗外的茂林修竹,高峰深谷,约二十分钟后到了山顶——径山寺就在那里! ","date":"2021-12-05","objectID":"/posts/2021/12/visit-jingshan-temple/:2:0","tags":["旅行"],"title":"径山寺之行","uri":"/posts/2021/12/visit-jingshan-temple/"},{"categories":["要事记录"],"content":"寺庙 径山寺初建于公元745年,当时唐代。至南宋时规模庞大,有僧1700余,为“江南”禅院五山十刹之一。径山寺在中国不算有名,比如我也是这两年才听说它,可是在日本地位可不低,被奉为佛教圣地、茶道祖庭。历史上日本曾派多位高僧,来径山寺求学问道,荣析禅师、圣一国师、南浦绍明都曾在此研究佛法。高僧回国时带径山茶籽,被视为日本茶道起源。现在流行的抹茶和煎茶就源自径山茶道。 径山寺门前视野开阔,可远眺群山千里。 寺门上正面书“双径归堂”,背面书“天下径山”,为径山中兴祖师大慧宗杲(gao, 三声)禅师墨迹。 门内一侧贴有禅师发愿文。佛堂里,诸佛林立,悲悯庄严,信众焚香,虔心拜首。角落处,大和尚安读楞严经,人群中,小哥哥勤讲菩萨事。说起小哥哥,我们因好奇,跟了他半路,我还向他问了几个问题,小哥哥都认真解答。 拾级而上,一路但见建筑典雅,白墙红瓦,怪石碧水,风景娟秀,据说日本京都寺院的风格也跟这里相似。不久就到了凌霄宝殿,一看时间已是十一点半,怕错过斋饭,便回头准备去填饱肚子。 ","date":"2021-12-05","objectID":"/posts/2021/12/visit-jingshan-temple/:3:0","tags":["旅行"],"title":"径山寺之行","uri":"/posts/2021/12/visit-jingshan-temple/"},{"categories":["要事记录"],"content":"斋饭 打听了一下,便直奔斋堂去了。径山寺的斋堂有两处:一处是面食,另一处是米饭。我们俩经过反复对比,还是选了米饭。斋菜种类不多,我们去的那会儿有土豆、青菜、豆角,十元一份,味道清淡,身在佛门之地,自然是带着品味清淡的心情来的。 吃饱喝足,打算去径山古道走走。 ","date":"2021-12-05","objectID":"/posts/2021/12/visit-jingshan-temple/:4:0","tags":["旅行"],"title":"径山寺之行","uri":"/posts/2021/12/visit-jingshan-temple/"},{"categories":["要事记录"],"content":"古道 古时人们上下山,都是从这条径山古道走。 路面铺满石头,总体比较平缓,不算难走。我们踏上古道,开始下山,一路上游人三三两两,有上山的,有下山的,欢声笑语,不绝于耳。 我们携手而行,看看山林美景,谈谈古今故事。 沿途左侧多是茶田,右侧基本都是竹林。 还见到几处枫树,枫叶红得格外显眼,为山林的色彩增添了不少层次感。 先后经过了东坡洗砚池、望江亭、钱王弹岩,约一个小时到了半山腰的一个小村庄。那里刚好有接游客下山的中巴车,于是我们坐上车就下山了。到集散中心,休息了一下,便启程回家。 ","date":"2021-12-05","objectID":"/posts/2021/12/visit-jingshan-temple/:5:0","tags":["旅行"],"title":"径山寺之行","uri":"/posts/2021/12/visit-jingshan-temple/"},{"categories":["要事记录"],"content":"结语 径山寺不远,来玩其实不需要很多时间。主要是和hh好久没出来玩了,就想把琐事暂时放一放,出来散散心。丈量丈量古人走过的古道,追忆追忆古人留下的故事,着实是一件乐事! ","date":"2021-12-05","objectID":"/posts/2021/12/visit-jingshan-temple/:6:0","tags":["旅行"],"title":"径山寺之行","uri":"/posts/2021/12/visit-jingshan-temple/"},{"categories":["读书笔记"],"content":"毛泽东早期文稿,记载了毛泽东在1912年至1920年期间所写文章以及笔记,也就是毛泽东从20岁到28岁期间文稿。昨日读之,窥得毛早期思想发展之脉络,略有所得。 ","date":"2021-12-02","objectID":"/posts/2021/12/mao-reading-of-moral-philosophy/:0:0","tags":["人物"],"title":"读《毛泽东关于“伦理学原理”的笔记》","uri":"/posts/2021/12/mao-reading-of-moral-philosophy/"},{"categories":["读书笔记"],"content":"毛读《伦理学原理》时的笔记 ","date":"2021-12-02","objectID":"/posts/2021/12/mao-reading-of-moral-philosophy/:1:0","tags":["人物"],"title":"读《毛泽东关于“伦理学原理”的笔记》","uri":"/posts/2021/12/mao-reading-of-moral-philosophy/"},{"categories":["读书笔记"],"content":"豆瓣网友的要点摘录如下: 主观为安宁,客观为至善;内在为安宁,外现为至善。 本此自然道德所含之真理而发挥之,以论定各种行为之得失,是则道德哲学之本职也。道德哲学,亦犹卫生科学然。在举人类自昔习惯之行为,而为之指别其损益之所在,使人人得循是以为取舍。 于是人类之行为,变其纯任自然者,而益之以思虑,由无意识之道德,而进于有意识者,斯则道德哲学之赐也。 夫具足者何耶?盖谓人类之体魄及精神,其势力皆发展至高而无所歉然者也。 今日之刑法及警察,严明平正,一洗中世酷虐之习,诚可喜也。然缘是而谓中世何以不用是制,则误矣。且今日严明平正之制之所以有效,庸讵知非中世酷虐之制所致乎? 自由思想,自由生活,本人生第一之权利,而亦第一之义务也。 意志原始之形式,即无意识之冲动也。由无意识之冲动,而现于意识中,则为有意识之冲动。吾人若增其生活之动作,而有以餍其冲动,则快感随之。若障碍其动作,而逆其冲动,则不快之感随之。 感官之欲望,即冲动而伴以动作之模象者也。欲望之前提,为智力发展之一程度与夫意志及模象之交错,而欲望之餍足与障碍,则亦有快与不快之感随之。 吾人所见各人有大同之动作者,徒观其表耳。苟求其内情,则无一不具特性。夫内情者,人之本质也。其有特性也,正其所以为具足,而不得谓之缺陷。 离群索居诚哉不堪,然社会为人而设,非个人为社会而设也(毛)。 个人有无上之价值,百般之价值依个人而存,使无个人(或个体)则无宇宙,故谓个人之价值大于宇宙之价值可也。故凡有压抑个人、违背个性者,罪莫大焉(毛)。 此缘吾人有好变化、好奇之心,人不能有俄顷不变化者(毛)。 快感为渐达至善之征候,而持快乐论者,乃即以征候为正鹄(毛)。 快乐与痛苦,有不可离之关系,苦痛为避害之向导,其理甚明,然则快乐又宁非进取之导向耶? 甲有贵显之乐,而有患得患失之苦,其比例如何?乙有境遇之苦,而有思想自由之乐,其比例又如何? 此数句可证人类以惊奇为贵。惊奇者,人类之生涯也(毛)。 且吾人关于人生及人类之邪恶,尤常欲构为普通结论,以为镇静慰藉之资。例如为妻女所苦者,常欲为女子难养之说。著述而不为世所重者,常欲为世人不辨黑白之说。是故厌世主义者,彼之良药也。彼常因其胆液质之缺点,而生恶感,则以此药疗之,虽未能去其痼疾之根本,而时有轻损苦痛之效,如麻醉药焉。 人类贵重之性质,非自然之赐,而文明之效力也。吾人平心而观察之,勇敢、诚实、清洁、节制、正义、仁爱诸德,皆为后天之性质;而恐怖、虚伪、不洁、无节、粗野、利己,则转为野蛮人类之特色焉。 鸠之能翔于空中也,以有空气之抵抗,而彼乃以为苟无空气,则其翔也更自由,此康德所以讽人,使知悟性之动,必须经验实事者也。人之意思,不可无对象之抵抗,亦然。无抵抗则无动力,无障碍则无幸福,纯粹之幸福,为纯粹之真理然,有之者其惟神乎?在人类,则享幸福者必当有障碍若损害,犹之识真理者必当有蒙昧若谬误也。 然则不平等、不自由、大战争亦当与天地终古,永不能绝,世岂有纯粹之平等自由博爱者乎?有之,其惟仙境。然则唱大同之说者,岂非谬误之理想乎(毛)? 吾尝梦想人智平等,人类皆为圣人,则一切法治均可弃去,今亦知其决无此境矣(毛)。 此却有一疑问:吾人要此历史之名作甚,彼恶人得受恶名又有何不好(毛)? 是故思留名于千载者妄也,欣羡他人之留名者亦妄也(毛)。 吾人自欲遂行具足生活也,害恶之为多为少,除得尽除不尽,吾岂知之哉(毛)。 惟土石不死,然则人类将欲营土石之生活乎(毛)? 宇宙间非仅有人生一世界,人生以外之世界,必尚有各种焉。吾人于此人生之世界已种种经验之,正应脱离此世界而到别种世界去经验。。。。虽然,吾之意不如此焉。人类者生而有好奇之心,何独于此而不然?吾人不常遇各种之奇事而好之乎?死也者,亦吾有生以来一未尝经验之奇事也,何独不之好乎?大风卷海,波澜纵横,登舟者引以为壮,况生死之大波澜何独不知引以为壮乎!(毛) 国家如此,民族亦然,人类亦然。各世纪中,各民族起各种之大革命,时时涤旧,染而新之,皆生死成毁之大变化也。宇宙之毁也亦然。宇宙之毁决不终毁也,其毁于此者必成于彼无疑也,吾人甚盼望其毁,盖毁旧宇宙而新得宇宙,岂不愈于旧宇宙耶!(毛) 或谓人在历史中负有继往开来之责者,吾不信也。吾惟发展吾之一身,使吾内而思维、外而行事,皆达正鹄。吾死之后,置吾之身于历史之中,使后人见之,皆知吾确然有以自完。后人因吾之完满如此,亦自加吾以芳名,然而非吾之所喜悦,以其属之后来,非吾躬与之现实也(毛)。 吾人并非建功业以遗后世,此功业自有足以利后世之性质存于其中云尔。吾之不灭也,亦吾本有此不灭之性质具于吾之身中云尔(毛)。 要之,二者原为一物,吾人各种之动作,固处处须冲动,处处系冲动之所驱,良心之明,亦处处承认之。吾人之良心固未有不以食欲性欲之事为然者也。惟在一种时候及场所,乃有谏止冲动之举,如过度之食欲,过度之性欲是也。然则良心不过加以节制而已,并非反对也。其节制亦正所以完成冲动之本职也。故良心与冲动理应一致,乃调和的而非冲突的。自后天之训练习惯,矫枉过正,乃有不循自然与冲动反对之事,致使良心之本来与冲动同原,同为真的、自然的、实在的,变而为伪的、人为的、非实在的,此则矫枉过正之咎也(毛)。 吾谓此等义务感情,只可于无意识界求之,只可于死界求之(毛)。 盖义务感情,虽可为去恶之作用,而大人君子,决非能以义务感情实现之者,大抵由活泼之地感情之冲动而陶铸之焉。 豪杰之士发展其所得于天之本性,伸张其本性中至伟至大之力,因以成其为豪杰焉。本性以外之一切外铄之事,如制裁束缚之类,彼者以其本性中至大之动力以排除之。此种之动力,乃至坚至真之实体,为成全其人格之源,即此书所谓自然之冲动,所谓性癖也。彼但计此动力发出之适宜与否,得当与否。适宜也,得当也,则保持之,否则,变更之,以迁于适宜与得当焉。此纯出自计,决非服从外来之道德律,与夫义务感情也。泡尔生所谓大人君子非能以义务感情实现,由活泼之地感情之冲动而陶铸之,岂不然哉,岂不然哉!(毛) 此种语言在其起源确已合于客观界之事实,乃由种种之经验而来者也。由一人而论,从幼少之时,即童而习之,似为构成于先天者。从历史观之,则纯成乎经验,而非所谓先天直觉也(毛)。 道德者,非吾人能使无定,而彼本无定,且亦无时而定者也。 或人之说,必以道德律为出于神之命令,而后能实行而不唾弃,此奴隶之心理也。服从神而不服从己,己即神也,神以外尚有所谓神乎?吾研究良心之起源而知之,此问题已得于己矣,即当举其所得于己者而服从之。一切时空内百般之事物,其应服从,价值无有过于此所得于己者之大。吾人一生之活动服从自我之活动而已,宇宙间各物之活动,各物从服自我之活动而已。吾从前固主无我论,以为只有宇宙而无我。今知其不然。盖我即宇宙也,各除去我,即无宇宙。各我集合,即成宇宙,而各我又以我而存,苟无我何有各我哉。是故,宇宙间可尊者惟我也,可畏者惟我也,可服从者惟我也。我以外无可尊,有之亦由我推之;我以外无可畏,有之亦由我推之;我以外无可服从,有之亦由我推之也(毛)。 然则兼此二者乃所以遂其生活,则仍是利己主义也,以利他而达到遂其生活之目的,不过易其手段而已。持粹然之利他主义者,其毫无根据,所不待言。持粹然之利己主义者,亦但为理论,在此多数个体杂然活动之世界中,决不能实现。虽不能实现,虽无此事实,而其意则仍在是;人类生活之本意,仍在发达其个体也。为达此目的,乃求手段之奚择?择纯然利己之手段乎?初民及人之初生实择此手段,久之障碍甚多,乃舍此纯然利己而则人己兼利之手段,于是而人各遂其生矣。是故,吾人有时兼利他之手段者,仍以达到自利之目的也。 余未尝以著述家之责任自绳。如何而为人所喜,如何而于人有益,余所不顾也。余惟精进不已,务高尚余之人格,而表彰余所见到之真若善而已矣(歌德)。 故君子小人之别,在其所见之幸福高下如何,而人格之高下随之。盖观其所见幸福之价值,而得以定其最深之意向矣。 在文化之初期,人类爱群性最强,各人皆仅为民族若都市之一份子,而并无独立之人格,否则不足以自存。故如忠义、信实、勇敢诸道德,尤为往昔英雄时代所最重也。 幸福者,非道德之应报,而即道德也,是也。人苟不以道德为鹄的,徒以求祸畏罪之故而行之,则一旦外界之幸福不如其所期,将遂不免有天道无知之怨。 盖世之可畏可疾者,固未有过于矜伐而骄奢者也。幸福者衰亡之媒,其证据如此矣。而不幸之境遇,若失败,若坎坷,乃适以训练吾人,而使得强大纯粹之效果。 彼等以为神意者,神圣也,公正也,慈悲也,吾人当以己之意志实现之于客观者,以明神意,以当默示。此诚人类之纯粹至深邃之意向矣。 于是道德与宗教之关系可知矣,二者同出一源,即热望其意志之达于美满之域者是也。惟在道德则要求之,而在宗教则实行之。 人之择何等哲学也,视其人为何等人,信然。 凡人之解释现象也,无不符合于其意向,一切生活,各欲以其所亲爱所珍重者围绕之,则亦欲得其所视为高尚之世界观围绕之,以餍其心。 质而言之,万即一,变即常。我是极高之人,又是极卑之人(毛)。 意志者,即决定最后之原因,不被规定于他原因,而亦无所谓意志之原因。 思虑、疑惑、决断,人类之特质也。人类之行为,定于决断,而决断者,思虑之果也。 惟人类是等能力发展之程度,至为不齐。其全为动物冲动所左右,而不能抑制之者,为粗暴鄙野之人;其或全无此等冲动者,则又为枯寂酷薄之人,皆非中正之道。盖人类者,位于动物之实体及理性之实体之间者也。 ","date":"2021-12-02","objectID":"/posts/2021/12/mao-reading-of-moral-philosophy/:1:1","tags":["人物"],"title":"读《毛泽东关于“伦理学原理”的笔记》","uri":"/posts/2021/12/mao-reading-of-moral-philosophy/"},{"categories":["读书笔记"],"content":"我的摘录 以下摘录,取之以为最能表达毛氏思想者。 我为万事万念之中心,故人恒以利我为主;利他由我而起点也,利他与我有关系也。众生一大我也,宇宙一大我也,何必讳言自利耶?然大我亦有发端,终以小我为先(悟前确实如此,未知悟后亦然否?)。 由利己推而广之,利众生,利宇宙,系由小真而大真。吾儒之说亦然,“天地之道造端乎夫妇”,“先修身而后平天下”,“先亲亲而后仁民爱物”。 圣人之学为己,为实现自我也。 何谓善?在客观世界为功利,在主观世界为动机。两者皆善,方可称之为善。 且为作用,且为正鹄,则无往而不乐。 大同世界不可信。治乱迭乘,平和与战伐相寻者,自然之例也。 变化攸忽,乃人性之所喜也。 吾尝梦想人智平等,人类皆为圣人,则一切法治均可弃去,今亦知其决无此境矣。(不一定,人人皆悟,则大同成。然而人人皆悟的希望渺茫啊!) 论事不论人。 正不能胜邪,乃是正尚未能胜邪,非一定不能也。邪之存在,所以动心忍性,增益其所不能,实现正鹄之垫脚石耳。 不问收获,只问耕耘。 吾与伦理学有二主张。一曰个人主义。一切之生活动作所以成全个人,一切之道德所以成全个人,表同情于他人,为他人谋幸福,非以为人,乃以为己。吾有此种爱人之心,即须完成之,如不完成即是于具足生活有缺,即是未达正鹄。释迦墨翟皆所以达其个人之正鹄也。一曰现实主义。以时间论,止见过去未来,本不见有现在。现实非此之谓,乃指吾之一生所团结之精神、物质在宇宙中之经历,吾人务须致力于现实者。如一种行为,此客观妥当之实事,所当尽力遂行;一种思想,此主观妥当之实事,所当尽力实现。吾只对于吾主观客观之现实者负责,非吾主观客观之现实者,吾概不负责焉。既往吾不知,未来吾不知,以与吾个人之现实无关也。或谓人在历史中负有继往开来之责者,吾不信也。吾惟发展吾之一身,使吾内而思维,外而行事,皆达正鹄。吾死之后,置吾之身于历史之中,使后人见之,皆知吾确然有以自完。后人因吾之圆满如此,亦自加吾以芳名,然而非吾之所喜悦,以其属之后来,非吾躬与之现实也。历史前之事亦然。吾取历史以其足以资吾发展现实之具足生活也。或谓吾人负有生殖之责任,吾亦不信,我自欲生殖也,我具足生活中有此一片段之生活,我自欲遂行也,向谁负责任?必依此二主义,乃可谓之真自由,乃可谓之真自完。 冲动既为自然,未有不能善生存发达者。自然者,真也,实在也。 冲动与良心两者原为一物。冲动自然发出,良心加以节制而已,并非反对之。其节制亦正所以完成冲动之本职也。 无论何种之书,都是述而不作,都是经验现象之总结。 豪杰圣人乃能尽其性者也。 浩然之气,集义所生。 发显即本体,本体即发显,合无数发显而为一大本体,由一大本体而分无数发显。人类者与本体有直接关系,而为其一部分,人类之意识,亦即与本体之意识相贯通,本体或名之曰神。 己即神也。 吾人惟有对于自己之义务,未有对于他人之义务。救人畏难,所以慰安吾心,而充分发展吾人精神之能力也。 ","date":"2021-12-02","objectID":"/posts/2021/12/mao-reading-of-moral-philosophy/:1:2","tags":["人物"],"title":"读《毛泽东关于“伦理学原理”的笔记》","uri":"/posts/2021/12/mao-reading-of-moral-philosophy/"},{"categories":["读书笔记"],"content":"总结 从毛氏笔记中,可以看出,早期毛氏受阳明心学影响极大。总体框架与心学同。其中超越心学框架者,乃所谓善之定义也。心学说主于天理则无往而不善,然而何谓天理?何谓人欲?实际操作中难以区别。毛氏则结合主观客观之说,认为功利与动机皆善方可谓之善。我则以未悟之视角,主张以大我之利为先,若不可决,则诉诸直觉。觉悟者或有另一光景,也未可知。然而吾以未悟之身,行未悟之事,义也,宜也。 ","date":"2021-12-02","objectID":"/posts/2021/12/mao-reading-of-moral-philosophy/:2:0","tags":["人物"],"title":"读《毛泽东关于“伦理学原理”的笔记》","uri":"/posts/2021/12/mao-reading-of-moral-philosophy/"},{"categories":["读书笔记"],"content":"商鞅徙木立信论 1912.06 讲中国需要开启民智 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:1","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致湘生书 1915.06.25 为学之道,先博而后约,先中而后西,先普通而后专门。 前者已矣,今日为始。 吾今日舍治科学,求分数,尚有何事?别人或谓退化,吾自谓进化也。 推崇康梁。 梁启超:先业词章,后治各科。 盖文学为百学之原,吾前言诗赋无用,实失言也。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:2","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致友人信 1915.07 弟近年来所有寸进,于书本得者少,于质疑问难得者多。 夫人之生所遭不齐,惟豪杰之士知殊趋而同至,不型人以合吾之轨,亦不迁己轨以合人之型,此诚至公彻理之谈也。 该说的还是要说。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:3","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致萧子升信 1915.08 言不能因愆而废,犹食不能因噎而废也。况所言者未必愆,即愆矣,亦哲人之细事。 该说的还是要说。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:4","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致萧子升信 1915.09 论博学。对黎锦熙的钦佩。讲了跟黎锦熙之间的探讨。 毛:求学求什么?上山读古籍,而后下山而涉其新,可乎? 黎:不然,这样就先后倒置了。通为专之基,新为旧之基。特别是政治家、事功家,应该注重通识。知通识,则知社会。 毛:此其具体耳,其抽象则如何?下手之方则如何? 黎:于国文,不求长求异。于历史,觅其巨夫伟人,为一朝代之代表,将其前后当身之迹,一一求之至彻。于地理,地图为要,看报纸杂志应联系地理。于体操、图画、音乐、手工,得为学、养生之道;为学要有条理有秩序,养生要复其神。且有助于培养美感。 黎:《群学肆言》。为学之难有三:其一在物,其一在心,其一心物相对。在物者曰物蔽,在心者曰情瞀智絯,心物相对者曰学诐、国拘、流梏、政惑、教辟。为学之根本在缮性。缮性在学,学有三科,曰玄间著。(语文、数学、物理、化学、博物)。学,则德寓乎其中矣。 国学最要紧。其中最急切的,就是国学常识。择好书,曾氏“杂钞”其庶几焉。 曾国藩《经史百家杂钞》 姚鼐《古文辞类纂》 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:5","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致萧子升信 1915.09.25 吾人立言,当以身心之修养、学问之研求为主,辅之以政事时务,不贵文而贵质,彩必遗弃,惟求其神。易言之,每为一书,必有益处,言必载物。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:6","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致黎锦熙信 1915.11.09 陈述对黎式行为的疑惑,劝其早归。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:7","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致萧子升信 1916.07.25 分析时事,预言中日战争,预言日美战争,奇哉! ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:8","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致黎锦熙信 1916.12.09 以古之智仁勇三达德,提倡今之德智体三言。 一旦身不存,德智则随之而惰矣。 夫人之一生,所乐所事,夫曰实现。 世界之外有本体,血肉虽死,心灵不死,不在寿命之长短,而在成功之多寡。此其言固矣。 君子不立危墙之下。 弟身亦不强,近以运动之故,受益颇多。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:9","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"体育之精神 1917.04.01 体育者,人类自其养生之道,使身体平均发达,而有规则次序之可言者也。 体育于吾人实占第一之位置。体强壮而后学问道德之进修勇而收效远。 故讲体育必自自动始。 体育之效,至于强筋骨,因而增知识,因而调感情,因而强意志。筋骨者,吾人之身;知识、感情、意志者,吾人之心。身心皆适,是谓俱泰。故夫体育非他,养乎吾生、乐乎吾心而已。 今之学者多不好运动,其原因盖有四焉:一则无自觉心也。一则积习难返也。一则提倡不力也。一则学者以运动力可羞也。 此事不重言谈,重在实行,苟能实行,得一道半法已足。 运动所宜注意者三:有恒一也,注全力二也,蛮拙三也。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:10","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"《一切入一》序 1917.夏 学在积累。积累之道,在有条理。 贵有恒。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:11","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致黎锦熙信 1917.08.23 求大本大源。人人有哲学、伦理学见解。 大同者,吾人之鹄也。 立德立功立言。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:12","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"夜学招学广告 1917.10.30 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:13","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致罗学瓒信 1918.08.11 劝其从事教育 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:14","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致七八舅父母信 1918.08 1919.04.28 将去北京游历。在北京大学任职员。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:15","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"《湘江评论》创刊宣言 1919.07.14 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:16","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"《大公报》非自杀 1919.11.23 泡尔生:人生目的:人类之体魄及精神,其势力皆发展到至高地位,而无所歉然。即曰至善。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:17","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致陶毅信 1920.02 联军。各方面都应该去打先锋的人。 新民学会。1918年4月成立。 时常交流,谈共同目的,及达到目的之方法。有意识有组织。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:18","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致周世钊信 1920.03.14 国内研究与出国研究的先后问题。 求学实在没有”必要在什么地方“的理 暂时在国内研究的几种好处: ①看译本较看原本快得多,可于较短时间求到较多的知识。 ②世界文明分东西两流,东方文明在世界文明内,要占半壁的地位。然东方文明可以说就是中国文明。吾人似应先研究过吾国古今学说制度的大要,再到西洋留学才有可资比较的东西。 ③吾人如果要在现今的世界稍为尽一点力,当然“脱不开”中国这个地盘。关于这地盘内的情形,似不可不加以实地的调查,及研究。这层工夫,如果留在出洋回来的时候做,因人事及生活的关系,恐怕有些困难。不如现在做了,一来无方才所说的困难,二来又可携带些经验到西洋去,考察时可以借资比较。 先将古今中外的学说取其精华,自成体系。 团体方面:①结合同志②在很经济的可能的范围内成立为他日所必要的基础的事业。 工读互助团。 不是绝对反对留学,而是主张大留学政策。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:19","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致黎锦熙信 1920.06.07 决定一年半或两年后留学俄国。学习俄语。 我对于学问,尚无专究某一种的意思,想用辐射线的方法,门门涉猎一下。颇觉常识不具,难语专攻,集拢常识,加以条贯,便容易达到深湛。 可惜我太富感情,中了慷慨的弊病,脑子不能入静,工夫难得持久,改变也很不容易改变,真是不得了的恨事呵。 文字学、言语学、和佛学,我都很想研究。 具体、鲜明、热烈。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:20","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致罗学瓒信 1920.11.26 身体是一个大问题。客观环境确实有原因。主观方面的原因,就是心理上的惰性。如读书成了习惯,便一直读下去不知休息。照卫生的法则,用脑一点钟,应休息十五分钟,弟则常常接连三四点钟不休息,甚或夜以继日,并非乐此不疲,实是疲而不舍。个人方面,须养成工读并行的习惯,至少也要养成读书和游戏并行的习惯。我的生活实在太劳了,怀中(杨昌济)先生在时,曾屡劝我要节劳,要多休息,但我总不能信他的话。以后拟每两个月出游一次。 四种迷:感情论事,以偏概全,以一时概永久,以主观概客观。我自信于后三者的错误尚少,惟感情一项,颇不能免。以人废言,是我一个短处,日后务要改正。 奉向蔡做首领,组成“拒婚联盟”。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:21","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"致萧子暲信 1920.11 我近觉得仅仅常识是靠不住的,深慨自己学问无专精,两年来为事所扰,学问未能用功,实深报恨。 不好利,早起,好读书,谦,此谓良习惯。 重现在有两要义,一贵我(求己、不责人),二通今(如读史必重近世,以其与我有关也) ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:22","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"张昆弟记毛泽东的两次谈话 1917.09 毛君云,西人物质文明极盛,遂为衣食住三者所拘,徒为肉欲之发达已耳。若人生仅此衣食住三者而已足,是人生太无价值。又云,吾辈必想一最容易之方法,以解经济问题,而后求遂吾人理想之世界主义。又云,人之心力与体力合行一事,事未有难成者。余甚然其言。且人心能力说,余久信仰,故余有以谭嗣同《仁学》可炼心力之说。 毛君润之云,现在国民性情,虚伪相崇,奴隶性成,思想狭隘,安得国人有大哲学革命家,大伦理革命家,如俄之托尔斯泰其人,以洗涤国民之旧思想,开发其新思想。余甚然其言。中国人沉郁固塞,陋不自知,入主出奴,普成习性。安得有俄之托尔斯泰其人者,冲决一切现象之网罗,发展其理想之世界。行之以身,著之以书,以真理为归,真理所在,毫不旁顾。前之谭嗣同,今之陈独秀,其人者,魄力颇雄大,诚非今日俗学所可比拟。 ","date":"2021-12-02","objectID":"/posts/2021/12/reading-maozedong-article/:0:23","tags":["人物"],"title":"读《毛泽东早期文稿》","uri":"/posts/2021/12/reading-maozedong-article/"},{"categories":["读书笔记"],"content":"读《改变心理学的40研究》,看到关于内控型和外控型人格的讨论,觉得蛮有意思,记录下来。 ","date":"2021-11-27","objectID":"/posts/2021/11/internal-and-external-control-personality/:0:0","tags":[],"title":"内控和外控型人格","uri":"/posts/2021/11/internal-and-external-control-personality/"},{"categories":["读书笔记"],"content":"什么叫内控和外控 当人们把自己的行为后果归因为运气、命运或是他人力量的影响时,称为外控点的信念;与之相反,如果人们把行为后果归因于自己的行为和人格特征,则他们就具有一种内控点的信念。 ","date":"2021-11-27","objectID":"/posts/2021/11/internal-and-external-control-personality/:1:0","tags":[],"title":"内控和外控型人格","uri":"/posts/2021/11/internal-and-external-control-personality/"},{"categories":["读书笔记"],"content":"形成原因 内、外控倾向形成的可能原因有三:文化差异、社会经济水平的差异以及父母教养方式的差异。 ","date":"2021-11-27","objectID":"/posts/2021/11/internal-and-external-control-personality/:2:0","tags":[],"title":"内控和外控型人格","uri":"/posts/2021/11/internal-and-external-control-personality/"},{"categories":["读书笔记"],"content":"控制点的影响 控制点是一种在各种情景中一贯起作用的可界定的个体特征;而且,个体的内外控维度对行为的影响是使不同的人在面对同一情境时采取不同的行为。 ","date":"2021-11-27","objectID":"/posts/2021/11/internal-and-external-control-personality/:3:0","tags":[],"title":"内控和外控型人格","uri":"/posts/2021/11/internal-and-external-control-personality/"},{"categories":["读书笔记"],"content":"与宗教信仰的关系 如果一个人具有外控倾向,但这种外部力量被认为是一种对至高无上的神灵(如上帝)的强烈信仰,那么也就不太可能陷入由外控倾向带来的一些典型问题(如无助感、抑郁、低水平的成就动机、缺少谋求改变现状的动机等)。这可以部分解释为什么一些人归于哲学,一些人归于宗教。 ","date":"2021-11-27","objectID":"/posts/2021/11/internal-and-external-control-personality/:4:0","tags":[],"title":"内控和外控型人格","uri":"/posts/2021/11/internal-and-external-control-personality/"},{"categories":["读书笔记"],"content":"控制点的可变性 内外控是相对稳定的,但不是绝对。若有机会,个体能够通过学习来提高内控水平。 ","date":"2021-11-27","objectID":"/posts/2021/11/internal-and-external-control-personality/:5:0","tags":[],"title":"内控和外控型人格","uri":"/posts/2021/11/internal-and-external-control-personality/"},{"categories":["读书笔记"],"content":"启示 尽管大多时候内控水平高的人可以更好地自我调节并适应生活,但是如果一个人打算改变不可能改变的情境,那么挫折沮丧和抑郁很可能随之而来。所以最理智的策略是认清哪些能改变的、哪些不能改变,合理的设置内外控界限。 如此看来,美国神学家尼布尔的祈祷词可谓经典: 上帝,请赐予我平静,去接受我无法改变的。 赐予我勇气, 去改变我能改变的。 赐予我智慧, 分辨这两者的区别。 ","date":"2021-11-27","objectID":"/posts/2021/11/internal-and-external-control-personality/:6:0","tags":[],"title":"内控和外控型人格","uri":"/posts/2021/11/internal-and-external-control-personality/"},{"categories":null,"content":"TeX TeX 是 Donald Knuth 编写的一套排版系统,尤其擅长排版复杂的数学公式。TeX 语言定义了一套原语,用于对纯文本进行格式控制;并且在这些原语的基础上,定义了一系列宏,增加了TeX 语言的易用性。TeX 编译器用于编译 TeX文件,初期生成的文件为dvi格式。 ","date":"2021-11-24","objectID":"/posts/2021/11/tex-family/:1:0","tags":null,"title":"TeX Family","uri":"/posts/2021/11/tex-family/"},{"categories":null,"content":"pdfTeX, XeTeX \u0026 LuaTeX Donald Knuth 认为 TeX 已经够用,不希望 TeX 变得太复杂,决定不再往里面添加新功能,只接受bug fix。 随着新技术的发展,以及现代化排版的需要,一些人创建了几个TeX的变体:pdfTeX, XeTeX \u0026 LuaTeX。这些变体其实是在TeX的基础上,扩展了TeX的能力,增加了新的原语和特性。虽然这些变体都继承了TeX,但这些变体之间,相互是不兼容的。 ","date":"2021-11-24","objectID":"/posts/2021/11/tex-family/:2:0","tags":null,"title":"TeX Family","uri":"/posts/2021/11/tex-family/"},{"categories":null,"content":"pdfTeX 提供了直接输出pdf文件的能力 对TeX的排版做了一些细节上的调整 ","date":"2021-11-24","objectID":"/posts/2021/11/tex-family/:2:1","tags":null,"title":"TeX Family","uri":"/posts/2021/11/tex-family/"},{"categories":null,"content":"XeTeX 处理UTF-8编码,处理多国语言 可以方便地使用OpenType字体 ","date":"2021-11-24","objectID":"/posts/2021/11/tex-family/:2:2","tags":null,"title":"TeX Family","uri":"/posts/2021/11/tex-family/"},{"categories":null,"content":"LuaTeX 源于pdfTeX 支持Lua脚本语言 支持UTF-8编码 可以处理OpenType字体,但处理机制和XeTeX不同 支持MetaPost画图语言 支持通过C/C++写的.dll或.so插件来添加扩展功能 ","date":"2021-11-24","objectID":"/posts/2021/11/tex-family/:2:3","tags":null,"title":"TeX Family","uri":"/posts/2021/11/tex-family/"},{"categories":null,"content":"LaTeX 与刚讲的三个变体不同,LaTeX 并未扩展TeX的功能,而是给TeX写了一组macro,这些macro仍然是建立在TeX原语的基础之上。也就是说,LaTeX只是一批大量精心设计的macro的集合。 增加了很多对排版细节的控制,如页面布局,字体等,更加易用 可以方便地添加其他宏包,以便解决特定领域的排版问题 ","date":"2021-11-24","objectID":"/posts/2021/11/tex-family/:3:0","tags":null,"title":"TeX Family","uri":"/posts/2021/11/tex-family/"},{"categories":null,"content":"pdfLaTeX, XeLaTeX \u0026 LuaLaTeX pdfLaTeX = LaTeX macro package + pdfTeX engine XeLaTeX = LaTeX macro package + XeTeX engine LuaLaTeX = LaTeX macro package + LuaTeX engine ","date":"2021-11-24","objectID":"/posts/2021/11/tex-family/:4:0","tags":null,"title":"TeX Family","uri":"/posts/2021/11/tex-family/"},{"categories":["技术"],"content":"编程语言 语言有两大要素——语法和语义,语法是看得见的表面的形式,语义是真正想表达的背后的含义。各种五发八门的不同的编程语言,其表面形式可以天差地别,但其背后的语义却是相通的。只有使计算机「理解」了人类想表达的东西,才有可能准确给出人类想要的结果。当然也需要计算机拥有对应的计算能力,这正是计算理论所研究的内容,各种计算模型,如有限状态自动机,下推自动机,图灵机,确定性的,不确定性的等等,计算能力的确有差别。不过这一切的前提是你得想办法把自己的想法「告诉」计算机,这就绕不开计算机程序的语义。 ","date":"2021-04-21","objectID":"/posts/2021/04/program-semantics/:1:0","tags":["程序分析"],"title":"编程语言的形式语义","uri":"/posts/2021/04/program-semantics/"},{"categories":["技术"],"content":"形式语义 形式语义试图精确地、无歧义地描述程序的含义,并利用这些含义研究程序的性质。现实中,程序的语义通常有两种方式描述:一种是靠实现规范,如Ruby解释器有一个参考实现;另一种是写一份平实的官方规范,如C++/Java/ECMAScript。 而从更加形式化也更加数学化的角度看,描述程序可以由三种语义:操作语义、指称语义和公理语义。 ","date":"2021-04-21","objectID":"/posts/2021/04/program-semantics/:2:0","tags":["程序分析"],"title":"编程语言的形式语义","uri":"/posts/2021/04/program-semantics/"},{"categories":["技术"],"content":"操作语义 操作语义为程序在某种机器的执行定义一些规则,来捕捉编程语言的含义。这个机器通常是一种抽象的机器:为了解释这种语言所写的程序如何执行,而设计出来的一种想象的、理想化的计算机。操作语义又分为小步操作语义和大步操作语义。 小步操作语义 假想一台机器,用这台机器直接按照这种语言的语法进行操作一小步ー小步地对其进行反复规约,从而对一个程序求值。这种语义相当于为程序实现了一种迭代式的解释器。 大步操作语义 大步语义的思想是,定义如何从一个表达式或者语句直接得到它的结果。这必然需要把程序的执行当成一个递归的而不是迭代的过程。也就是说,为了对一个更大的表达式求值,我们要对所有比它小的子表达式求值,然后把结果结合起来得到最终答案。这种语义相当于为程序实现了一种递归式的解释器。 ","date":"2021-04-21","objectID":"/posts/2021/04/program-semantics/:2:1","tags":["程序分析"],"title":"编程语言的形式语义","uri":"/posts/2021/04/program-semantics/"},{"categories":["技术"],"content":"指称语义 用一种更低级更形式化的语言,或者至少比被描述的语言更好理解的语言,来描述新的语言。它更抽象,与操作语义更像解释器相比,它更像编译器。 ","date":"2021-04-21","objectID":"/posts/2021/04/program-semantics/:2:2","tags":["程序分析"],"title":"编程语言的形式语义","uri":"/posts/2021/04/program-semantics/"},{"categories":["技术"],"content":"公理语义 通过在语句执行前后,分别给出抽象机器状态的断言,来描述一个语句的含义:如果前置条件在语句执行前初始化为true,那么执行后的后置条件也保证为true。公理语义主要用于验证程序的正确性。 ","date":"2021-04-21","objectID":"/posts/2021/04/program-semantics/:2:3","tags":["程序分析"],"title":"编程语言的形式语义","uri":"/posts/2021/04/program-semantics/"},{"categories":["思维"],"content":"想到一些事情,心情豁然! 曾羡靖节种豆南山,怡情五柳,淡然一生。然又恐过而无踪迹,如鸟去无影,烟散云尽,终不甘心。始思当以润之、盖茨为榜样,轰烈一生,史册有载,方不枉一世。然若此则必苦累非常,且成功机率甚小,到头一场空,人生必如此苦累乎?鱼与熊掌不可兼得,不知如何取舍也,故而苦恼。 近日慎思,且闻高人言,始悟。 人生无须苦累至如此,有最紧要二字曰“幸福”,存爱己之人与己爱之人,可以无悔矣。己爱者,必不负之;爱己者,必以桃李报之,为之赴汤蹈火可矣。有感于《蜘蛛侠》,悟能力与责任相关之理,能力高则责任愈大。成也心安,败也泰然,尽力则无悔。花样年华,当努力提高能力,勇担吾辈之责,为爱己之人,与己爱之人,珍惜之,其幸福即为吾幸福,勿负之,我无憾矣! ","date":"2009-12-11","objectID":"/posts/2009/12/old-essay-mood-recording/:0:0","tags":["感悟"],"title":"明吾志","uri":"/posts/2009/12/old-essay-mood-recording/"},{"categories":null,"content":"关于本站 写字,思考,分享 ","date":"0001-01-01","objectID":"/about/:0:0","tags":null,"title":"","uri":"/about/"}] \ No newline at end of file diff --git a/page/4/index.html b/page/4/index.html index d5786e3b..ccfafb59 100644 --- a/page/4/index.html +++ b/page/4/index.html @@ -1,4 +1,4 @@ Hybert's blog
/images/avatar.jpg

如何读paper

三遍法高效读论文。 什么是三遍法 文章读三遍。三遍层层递进,每一遍有不同的侧重,完成不同的任务,最终达到深度理解一篇文章的目的。 怎么做三遍法 第一

如何阅读之分析阅读

分析阅读的目的 完整地吸取一本书的精华。 分析阅读的方法 第一阶段:整理内容大纲 依照书的种类与主题来分类。 使用最简短的文字说明整本书在谈些什么。 将

字体基础知识

字体类型 就像图像里面的位图和矢量图一样,字体分为点阵字体和矢量字体: 点阵字体 用像素表示字体图。 很难进行缩放,特定的点阵字体只能清晰地显示在相

如何批量压缩照片

如何批量压缩照片 现在手机拍照出来的照片体积都很大,而手机厂商提供的云服务空间又有限,拍照片稍微多一点的话,空间很快就不够用了。周末去了趟径山

径山寺之行

径山寺之行 缘起 曾经对佛学感兴趣,对寺庙一直感觉亲近。十一之前,就想着找个寺庙玩玩,跟hh说了这个想法后,hh说:“十一去径山寺吧”,就埋下了

读《毛泽东早期文稿》

商鞅徙木立信论 1912.06 讲中国需要开启民智 致湘生书 1915.06.25 为学之道,先博而后约,先中而后西,先普通而后专门。 前者已矣,今日为始。 吾今日舍治科学,求分数,尚

内控和外控型人格

读《改变心理学的40研究》,看到关于内控型和外控型人格的讨论,觉得蛮有意思,记录下来。 什么叫内控和外控 当人们把自己的行为后果归因为运气、命运

TeX Family

TeX TeX 是 Donald Knuth 编写的一套排版系统,尤其擅长排版复杂的数学公式。TeX 语言定义了一套原语,用于对纯文本进行格式控制;并且在这些原语的基础上,定义了
+
/images/avatar.jpg

如何读paper

三遍法高效读论文。 什么是三遍法 文章读三遍。三遍层层递进,每一遍有不同的侧重,完成不同的任务,最终达到深度理解一篇文章的目的。 怎么做三遍法 第一

如何阅读之分析阅读

分析阅读的目的 完整地吸取一本书的精华。 分析阅读的方法 第一阶段:整理内容大纲 依照书的种类与主题来分类。 使用最简短的文字说明整本书在谈些什么。 将

字体基础知识

字体类型 就像图像里面的位图和矢量图一样,字体分为点阵字体和矢量字体: 点阵字体 用像素表示字体图。 很难进行缩放,特定的点阵字体只能清晰地显示在相

如何批量压缩照片

如何批量压缩照片 现在手机拍照出来的照片体积都很大,而手机厂商提供的云服务空间又有限,拍照片稍微多一点的话,空间很快就不够用了。周末去了趟径山

径山寺之行

径山寺之行 缘起 曾经对佛学感兴趣,对寺庙一直感觉亲近。十一之前,就想着找个寺庙玩玩,跟hh说了这个想法后,hh说:“十一去径山寺吧”,就埋下了

读《毛泽东早期文稿》

商鞅徙木立信论 1912.06 讲中国需要开启民智 致湘生书 1915.06.25 为学之道,先博而后约,先中而后西,先普通而后专门。 前者已矣,今日为始。 吾今日舍治科学,求分数,尚

内控和外控型人格

读《改变心理学的40研究》,看到关于内控型和外控型人格的讨论,觉得蛮有意思,记录下来。 什么叫内控和外控 当人们把自己的行为后果归因为运气、命运

TeX Family

TeX TeX 是 Donald Knuth 编写的一套排版系统,尤其擅长排版复杂的数学公式。TeX 语言定义了一套原语,用于对纯文本进行格式控制;并且在这些原语的基础上,定义了
\ No newline at end of file diff --git a/posts/2021/11/tex-family/index.html b/posts/2021/11/tex-family/index.html index 4738c55a..97acf915 100644 --- a/posts/2021/11/tex-family/index.html +++ b/posts/2021/11/tex-family/index.html @@ -1,10 +1,17 @@ -TeX Family - Hybert's blog

目录

TeX Family

TeX

TeX 是 Donald Knuth 编写的一套排版系统,尤其擅长排版复杂的数学公式。TeX 语言定义了一套原语,用于对纯文本进行格式控制;并且在这些原语的基础上,定义了一系列宏,增加了TeX 语言的易用性。TeX 编译器用于编译 TeX文件,初期生成的文件为dvi格式。

pdfTeX, XeTeX & LuaTeX

Donald Knuth 认为 TeX 已经够用,不希望 TeX 变得太复杂,决定不再往里面添加新功能,只接受bug fix。 随着新技术的发展,以及现代化排版的需要,一些人创建了几个TeX的变体:pdfTeX, XeTeX & LuaTeX。这些变体其实是在TeX的基础上,扩展了TeX的能力,增加了新的原语和特性。虽然这些变体都继承了TeX,但这些变体之间,相互是不兼容的。

pdfTeX

  1. 提供了直接输出pdf文件的能力
  2. 对TeX的排版做了一些细节上的调整

XeTeX

  1. 处理UTF-8编码,处理多国语言
  2. 可以方便地使用OpenType字体

LuaTeX

  1. 源于pdfTeX
  2. 支持Lua脚本语言
  3. 支持UTF-8编码
  4. 可以处理OpenType字体,但处理机制和XeTeX不同
  5. 支持MetaPost画图语言
  6. 支持通过C/C++写的.dll或.so插件来添加扩展功能

LaTeX

与刚讲的三个变体不同,LaTeX 并未扩展TeX的功能,而是给TeX写了一组macro,这些macro仍然是建立在TeX原语的基础之上。也就是说,LaTeX只是一批大量精心设计的macro的集合。

  1. 增加了很多对排版细节的控制,如页面布局,字体等,更加易用
  2. 可以方便地添加其他宏包,以便解决特定领域的排版问题

pdfLaTeX, XeLaTeX & LuaLaTeX

  • pdfLaTeX = LaTeX macro package + pdfTeX engine

  • XeLaTeX = LaTeX macro package + XeTeX engine

  • LuaLaTeX = LaTeX macro package + LuaTeX engine

TeX

TeX 是 Donald Knuth 编写的一套排版系统,尤其擅长排版复杂的数学公式。TeX +语言定义了一套原语,用于对纯文本进行格式控制;并且在这些原语的基础上,定义了一系列宏,增加了TeX +语言的易用性。TeX 编译器用于编译 TeX文件,初期生成的文件为dvi格式。

pdfTeX, XeTeX & LuaTeX

Donald Knuth 认为 TeX 已经够用,不希望 TeX +变得太复杂,决定不再往里面添加新功能,只接受bug fix。 +随着新技术的发展,以及现代化排版的需要,一些人创建了几个TeX的变体:pdfTeX, +XeTeX & +LuaTeX。这些变体其实是在TeX的基础上,扩展了TeX的能力,增加了新的原语和特性。虽然这些变体都继承了TeX,但这些变体之间,相互是不兼容的。

pdfTeX

  1. 提供了直接输出pdf文件的能力
  2. 对TeX的排版做了一些细节上的调整

XeTeX

  1. 处理UTF-8编码,处理多国语言
  2. 可以方便地使用OpenType字体

LuaTeX

  1. 源于pdfTeX
  2. 支持Lua脚本语言
  3. 支持UTF-8编码
  4. 可以处理OpenType字体,但处理机制和XeTeX不同
  5. 支持MetaPost画图语言
  6. 支持通过C/C++写的.dll或.so插件来添加扩展功能

LaTeX

与刚讲的三个变体不同,LaTeX +并未扩展TeX的功能,而是给TeX写了一组macro,这些macro仍然是建立在TeX原语的基础之上。也就是说,LaTeX只是一批大量精心设计的macro的集合。

  1. 增加了很多对排版细节的控制,如页面布局,字体等,更加易用
  2. 可以方便地添加其他宏包,以便解决特定领域的排版问题

pdfLaTeX, XeLaTeX & LuaLaTeX

  • pdfLaTeX = LaTeX macro package + pdfTeX engine

  • XeLaTeX = LaTeX macro package + XeTeX engine

  • LuaLaTeX = LaTeX macro package + LuaTeX engine

\ No newline at end of file diff --git a/posts/2021/11/tex-family/index.md b/posts/2021/11/tex-family/index.md index 3806ff65..4c8c0235 100644 --- a/posts/2021/11/tex-family/index.md +++ b/posts/2021/11/tex-family/index.md @@ -1,25 +1,35 @@ # TeX Family -## TeX +## TeX {#tex} -TeX 是 Donald Knuth 编写的一套排版系统,尤其擅长排版复杂的数学公式。TeX 语言定义了一套原语,用于对纯文本进行格式控制;并且在这些原语的基础上,定义了一系列宏,增加了TeX 语言的易用性。TeX 编译器用于编译 TeX文件,初期生成的文件为dvi格式。 +TeX 是 Donald Knuth 编写的一套排版系统,尤其擅长排版复杂的数学公式。TeX +语言定义了一套原语,用于对纯文本进行格式控制;并且在这些原语的基础上,定义了一系列宏,增加了TeX +语言的易用性。TeX 编译器用于编译 TeX文件,初期生成的文件为dvi格式。 -## pdfTeX, XeTeX & LuaTeX -Donald Knuth 认为 TeX 已经够用,不希望 TeX 变得太复杂,决定不再往里面添加新功能,只接受bug fix。 随着新技术的发展,以及现代化排版的需要,一些人创建了几个TeX的变体:pdfTeX, XeTeX & LuaTeX。这些变体其实是在TeX的基础上,扩展了TeX的能力,增加了新的原语和特性。虽然这些变体都继承了TeX,但这些变体之间,相互是不兼容的。 +## pdfTeX, XeTeX & LuaTeX {#pdftex-xetex-and-luatex} -### pdfTeX +Donald Knuth 认为 TeX 已经够用,不希望 TeX +变得太复杂,决定不再往里面添加新功能,只接受bug fix。 +随着新技术的发展,以及现代化排版的需要,一些人创建了几个TeX的变体:pdfTeX, +XeTeX & +LuaTeX。这些变体其实是在TeX的基础上,扩展了TeX的能力,增加了新的原语和特性。虽然这些变体都继承了TeX,但这些变体之间,相互是不兼容的。 + + +### pdfTeX {#pdftex} 1. 提供了直接输出pdf文件的能力 2. 对TeX的排版做了一些细节上的调整 -### XeTeX + +### XeTeX {#xetex} 1. 处理UTF-8编码,处理多国语言 2. 可以方便地使用OpenType字体 -### LuaTeX + +### LuaTeX {#luatex} 1. 源于pdfTeX 2. 支持Lua脚本语言 @@ -28,18 +38,21 @@ Donald Knuth 认为 TeX 已经够用,不希望 TeX 变得太复杂,决定不 5. 支持MetaPost画图语言 6. 支持通过C/C++写的.dll或.so插件来添加扩展功能 -## LaTeX -与刚讲的三个变体不同,LaTeX 并未扩展TeX的功能,而是给TeX写了一组macro,这些macro仍然是建立在TeX原语的基础之上。也就是说,LaTeX只是一批大量精心设计的macro的集合。 +## LaTeX {#latex} + +与刚讲的三个变体不同,LaTeX +并未扩展TeX的功能,而是给TeX写了一组macro,这些macro仍然是建立在TeX原语的基础之上。也就是说,LaTeX只是一批大量精心设计的macro的集合。 1. 增加了很多对排版细节的控制,如页面布局,字体等,更加易用 2. 可以方便地添加其他宏包,以便解决特定领域的排版问题 -## pdfLaTeX, XeLaTeX & LuaLaTeX -- pdfLaTeX = LaTeX macro package + pdfTeX engine +## pdfLaTeX, XeLaTeX & LuaLaTeX {#pdflatex-xelatex-and-lualatex} + +- pdfLaTeX = LaTeX macro package + pdfTeX engine -- XeLaTeX = LaTeX macro package + XeTeX engine +- XeLaTeX = LaTeX macro package + XeTeX engine -- LuaLaTeX = LaTeX macro package + LuaTeX engine +- LuaLaTeX = LaTeX macro package + LuaTeX engine diff --git a/sitemap.xml b/sitemap.xml index b2731621..754ddf70 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://wanghuibin0.github.io/categories/2023-10-05T23:12:09+08:00weekly1https://wanghuibin0.github.io/tags/git/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2023/10/git-merge-best-practice/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/2023-10-05T23:12:09+08:00weekly1https://wanghuibin0.github.io/tags/onenote/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2023/10/onenote-insert-table/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2023-10-05T23:12:09+08:00weekly1https://wanghuibin0.github.io/tags/2023-10-05T23:12:09+08:00weekly1https://wanghuibin0.github.io/categories/%E5%B7%A5%E5%85%B7/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2023/10/programming-paradigm/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/categories/%E6%8A%80%E6%9C%AF/2023-10-05T23:12:09+08:00weekly1https://wanghuibin0.github.io/tags/%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/tags/%E9%97%AE%E9%A2%98%E8%AE%B0%E5%BD%95/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/tags/vim/2023-06-09T17:11:57+08:00weekly0.5https://wanghuibin0.github.io/posts/2023/06/vimscript-loading-cpp-template-file/2023-06-09T17:11:57+08:00weekly0.5https://wanghuibin0.github.io/categories/%E9%97%AE%E9%A2%98%E8%AE%B0%E5%BD%95/2023-06-09T17:11:57+08:00weekly0.5https://wanghuibin0.github.io/tags/%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1/2023-06-09T09:03:18+08:00weekly0.5https://wanghuibin0.github.io/posts/2023/06/reading-programming-pearls/2023-06-09T09:03:18+08:00weekly0.5https://wanghuibin0.github.io/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/2023-06-09T09:03:18+08:00weekly0.5https://wanghuibin0.github.io/tags/%E7%AE%97%E6%B3%95/2023-06-09T09:03:18+08:00weekly0.5https://wanghuibin0.github.io/categories/%E4%B8%AA%E4%BA%BA%E8%A7%81%E8%A7%A3/2022-12-08T17:54:14+08:00weekly0.5https://wanghuibin0.github.io/posts/2022/12/knowledge-ability-wisdom/2022-12-08T17:54:14+08:00weekly0.5https://wanghuibin0.github.io/posts/2022/11/type-system-basics/2022-11-04T16:01:56+08:00weekly0.5https://wanghuibin0.github.io/posts/2022/10/blogging/2022-10-23T14:37:04+08:00weekly0.5https://wanghuibin0.github.io/tags/%E6%9E%81%E7%AE%80%E4%B8%BB%E4%B9%89/2022-10-23T14:46:12+08:00weekly0.5https://wanghuibin0.github.io/posts/2022/10/digital-clean/2022-10-23T14:41:29+08:00weekly0.5https://wanghuibin0.github.io/categories/%E8%A6%81%E4%BA%8B%E8%AE%B0%E5%BD%95/2022-10-23T14:41:29+08:00weekly0.5https://wanghuibin0.github.io/posts/2022/08/long-march-plan/2022-10-23T14:24:45+08:00weekly0.5https://wanghuibin0.github.io/categories/%E7%94%9F%E6%B4%BB%E6%84%9F%E6%82%9F/2022-10-23T14:46:12+08:00weekly0.5https://wanghuibin0.github.io/posts/2022/08/unimportant-things/2022-10-23T14:46:12+08:00weekly0.5https://wanghuibin0.github.io/posts/2022/05/reading-how-to-learn/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/categories/%E8%AF%BB%E4%B9%A6/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/tags/%E6%96%B9%E6%B3%95%E8%AE%BA/2023-10-05T22:44:28+08:00weekly1https://wanghuibin0.github.io/tags/%E4%BA%BA%E7%89%A9/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/04/life-of-wanganshi/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/categories/%E6%9D%82%E8%AE%B0/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/tags/%E7%A8%8B%E5%BA%8F%E5%88%86%E6%9E%90/2023-10-05T23:12:09+08:00weekly1https://wanghuibin0.github.io/posts/2022/04/program-analysis-intro/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/categories/%E6%80%9D%E7%BB%B4/2023-10-05T22:44:28+08:00weekly1https://wanghuibin0.github.io/posts/2022/03/information-source-control/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/02/my-note-taking-system/2023-10-05T22:44:28+08:00weekly1https://wanghuibin0.github.io/posts/2022/02/how-to-solve-problems/2023-10-05T22:44:28+08:00weekly1https://wanghuibin0.github.io/posts/2022/02/generalist-or-specialist/2023-10-05T22:44:28+08:00weekly1https://wanghuibin0.github.io/posts/2022/02/importance-estimation/2023-10-05T22:44:28+08:00weekly1https://wanghuibin0.github.io/posts/2022/02/design-pattern-4/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/02/design-pattern-3/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/02/design-pattern-2/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/02/design-pattern-1/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/02/better-decision/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/01/do-and-persist/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/tags/latex/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/01/latex-typeset-code-list/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/01/less-is-more/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/01/growth-mindset/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/01/jiangshangxing/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2021/12/inspectional-reading/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2021/12/reading-a-paper/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2021/12/reading-skills-analytical/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/tags/%E5%AD%97%E4%BD%93/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2021/12/font-basics/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2021/12/handle-chinese-in-latex/2022-10-23T14:24:45+08:00weekly0.5https://wanghuibin0.github.io/posts/2021/12/howto-reduce-photo-size-in-batches/2022-10-23T14:41:29+08:00weekly0.5https://wanghuibin0.github.io/posts/2021/12/visit-jingshan-temple/2022-10-23T14:24:45+08:00weekly0.5https://wanghuibin0.github.io/tags/%E6%97%85%E8%A1%8C/2022-10-23T14:24:45+08:00weekly0.5https://wanghuibin0.github.io/posts/2021/12/mao-reading-of-moral-philosophy/2022-10-23T14:24:45+08:00weekly0.5https://wanghuibin0.github.io/posts/2021/12/reading-maozedong-article/2022-10-23T14:24:45+08:00weekly0.5https://wanghuibin0.github.io/posts/2021/11/internal-and-external-control-personality/2022-10-23T14:24:45+08:00weekly0.5https://wanghuibin0.github.io/posts/2021/11/tex-family/2022-10-23T14:41:29+08:00weekly0.5https://wanghuibin0.github.io/tags/writing/2022-10-23T14:41:29+08:00weekly0.5https://wanghuibin0.github.io/posts/2021/04/program-semantics/2023-10-05T23:12:09+08:00weekly1https://wanghuibin0.github.io/tags/%E6%84%9F%E6%82%9F/2023-10-05T22:08:06+08:00weekly1https://wanghuibin0.github.io/posts/2009/12/old-essay-mood-recording/2023-10-05T22:08:06+08:00weekly1https://wanghuibin0.github.io/about/2021-11-24T15:24:14+08:00weekly0.5 \ No newline at end of file +https://wanghuibin0.github.io/categories/2023-10-05T23:12:09+08:00weekly1https://wanghuibin0.github.io/tags/git/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2023/10/git-merge-best-practice/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/2023-10-05T23:43:01+08:00weekly1https://wanghuibin0.github.io/tags/onenote/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2023/10/onenote-insert-table/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2023-10-05T23:43:01+08:00weekly1https://wanghuibin0.github.io/tags/2023-10-05T23:12:09+08:00weekly1https://wanghuibin0.github.io/categories/%E5%B7%A5%E5%85%B7/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2023/10/programming-paradigm/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/categories/%E6%8A%80%E6%9C%AF/2023-10-05T23:12:09+08:00weekly1https://wanghuibin0.github.io/tags/%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/tags/%E9%97%AE%E9%A2%98%E8%AE%B0%E5%BD%95/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/tags/vim/2023-06-09T17:11:57+08:00weekly0.5https://wanghuibin0.github.io/posts/2023/06/vimscript-loading-cpp-template-file/2023-06-09T17:11:57+08:00weekly0.5https://wanghuibin0.github.io/categories/%E9%97%AE%E9%A2%98%E8%AE%B0%E5%BD%95/2023-06-09T17:11:57+08:00weekly0.5https://wanghuibin0.github.io/tags/%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1/2023-06-09T09:03:18+08:00weekly0.5https://wanghuibin0.github.io/posts/2023/06/reading-programming-pearls/2023-06-09T09:03:18+08:00weekly0.5https://wanghuibin0.github.io/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/2023-06-09T09:03:18+08:00weekly0.5https://wanghuibin0.github.io/tags/%E7%AE%97%E6%B3%95/2023-06-09T09:03:18+08:00weekly0.5https://wanghuibin0.github.io/categories/%E4%B8%AA%E4%BA%BA%E8%A7%81%E8%A7%A3/2022-12-08T17:54:14+08:00weekly0.5https://wanghuibin0.github.io/posts/2022/12/knowledge-ability-wisdom/2022-12-08T17:54:14+08:00weekly0.5https://wanghuibin0.github.io/posts/2022/11/type-system-basics/2022-11-04T16:01:56+08:00weekly0.5https://wanghuibin0.github.io/posts/2022/10/blogging/2022-10-23T14:37:04+08:00weekly0.5https://wanghuibin0.github.io/tags/%E6%9E%81%E7%AE%80%E4%B8%BB%E4%B9%89/2022-10-23T14:46:12+08:00weekly0.5https://wanghuibin0.github.io/posts/2022/10/digital-clean/2022-10-23T14:41:29+08:00weekly0.5https://wanghuibin0.github.io/categories/%E8%A6%81%E4%BA%8B%E8%AE%B0%E5%BD%95/2022-10-23T14:41:29+08:00weekly0.5https://wanghuibin0.github.io/posts/2022/08/long-march-plan/2022-10-23T14:24:45+08:00weekly0.5https://wanghuibin0.github.io/categories/%E7%94%9F%E6%B4%BB%E6%84%9F%E6%82%9F/2022-10-23T14:46:12+08:00weekly0.5https://wanghuibin0.github.io/posts/2022/08/unimportant-things/2022-10-23T14:46:12+08:00weekly0.5https://wanghuibin0.github.io/posts/2022/05/reading-how-to-learn/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/categories/%E8%AF%BB%E4%B9%A6/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/tags/%E6%96%B9%E6%B3%95%E8%AE%BA/2023-10-05T22:44:28+08:00weekly1https://wanghuibin0.github.io/tags/%E4%BA%BA%E7%89%A9/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/04/life-of-wanganshi/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/categories/%E6%9D%82%E8%AE%B0/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/tags/%E7%A8%8B%E5%BA%8F%E5%88%86%E6%9E%90/2023-10-05T23:12:09+08:00weekly1https://wanghuibin0.github.io/posts/2022/04/program-analysis-intro/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/categories/%E6%80%9D%E7%BB%B4/2023-10-05T22:44:28+08:00weekly1https://wanghuibin0.github.io/posts/2022/03/information-source-control/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/02/my-note-taking-system/2023-10-05T22:44:28+08:00weekly1https://wanghuibin0.github.io/posts/2022/02/how-to-solve-problems/2023-10-05T22:44:28+08:00weekly1https://wanghuibin0.github.io/posts/2022/02/generalist-or-specialist/2023-10-05T22:44:28+08:00weekly1https://wanghuibin0.github.io/posts/2022/02/importance-estimation/2023-10-05T22:44:28+08:00weekly1https://wanghuibin0.github.io/posts/2022/02/design-pattern-4/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/02/design-pattern-3/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/02/design-pattern-2/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/02/design-pattern-1/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/02/better-decision/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/01/do-and-persist/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/tags/latex/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/01/latex-typeset-code-list/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/01/less-is-more/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/01/growth-mindset/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2022/01/jiangshangxing/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2021/12/inspectional-reading/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2021/12/reading-a-paper/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2021/12/reading-skills-analytical/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/tags/%E5%AD%97%E4%BD%93/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2021/12/font-basics/2023-10-05T22:30:00+08:00weekly1https://wanghuibin0.github.io/posts/2021/12/handle-chinese-in-latex/2022-10-23T14:24:45+08:00weekly0.5https://wanghuibin0.github.io/posts/2021/12/howto-reduce-photo-size-in-batches/2022-10-23T14:41:29+08:00weekly0.5https://wanghuibin0.github.io/posts/2021/12/visit-jingshan-temple/2022-10-23T14:24:45+08:00weekly0.5https://wanghuibin0.github.io/tags/%E6%97%85%E8%A1%8C/2022-10-23T14:24:45+08:00weekly0.5https://wanghuibin0.github.io/posts/2021/12/mao-reading-of-moral-philosophy/2022-10-23T14:24:45+08:00weekly0.5https://wanghuibin0.github.io/posts/2021/12/reading-maozedong-article/2022-10-23T14:24:45+08:00weekly0.5https://wanghuibin0.github.io/posts/2021/11/internal-and-external-control-personality/2022-10-23T14:24:45+08:00weekly0.5https://wanghuibin0.github.io/posts/2021/11/tex-family/2023-10-05T23:43:01+08:00weekly1https://wanghuibin0.github.io/posts/2021/04/program-semantics/2023-10-05T23:12:09+08:00weekly1https://wanghuibin0.github.io/tags/%E6%84%9F%E6%82%9F/2023-10-05T22:08:06+08:00weekly1https://wanghuibin0.github.io/posts/2009/12/old-essay-mood-recording/2023-10-05T22:08:06+08:00weekly1https://wanghuibin0.github.io/about/2021-11-24T15:24:14+08:00weekly0.5 \ No newline at end of file diff --git a/tags/index.html b/tags/index.html index 6aa031f2..52b992f5 100644 --- a/tags/index.html +++ b/tags/index.html @@ -1,4 +1,4 @@ 所有标签 - Hybert's blog
+
\ No newline at end of file diff --git a/tags/latex/index.html b/tags/latex/index.html index b94c2713..214fd4d8 100644 --- a/tags/latex/index.html +++ b/tags/latex/index.html @@ -2,6 +2,5 @@
+12-07
\ No newline at end of file diff --git a/tags/latex/index.xml b/tags/latex/index.xml index 3b3b919b..5bb566b2 100644 --- a/tags/latex/index.xml +++ b/tags/latex/index.xml @@ -1 +1 @@ -latex - 标签 - Hybert's bloghttps://wanghuibin0.github.io/tags/latex/latex - 标签 - Hybert's blogHugo -- gohugo.iozh-CNThis work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.Fri, 21 Jan 2022 23:09:00 +0800LaTeX如何将两段代码并排放置https://wanghuibin0.github.io/posts/2022/01/latex-typeset-code-list/Fri, 21 Jan 2022 23:09:00 +0800作者https://wanghuibin0.github.io/posts/2022/01/latex-typeset-code-list/排版一段代码用lstlisting环境(listing宏包) 将每一段代码用minipage环境包起来成为一个个box(注意设置每个minipLatex排版中文的问题汇总https://wanghuibin0.github.io/posts/2021/12/handle-chinese-in-latex/Tue, 07 Dec 2021 17:30:34 +0800作者https://wanghuibin0.github.io/posts/2021/12/handle-chinese-in-latex/Latex排版中文的问题汇总 涉及两方面: 对中文字体的支持 对中文排版细节的处理 几个相关的宏包: CJK宏包:提供了对中文字体的支持 xeCJK和lTeX Familyhttps://wanghuibin0.github.io/posts/2021/11/tex-family/Wed, 24 Nov 2021 20:44:15 +0800作者https://wanghuibin0.github.io/posts/2021/11/tex-family/TeX TeX 是 Donald Knuth 编写的一套排版系统,尤其擅长排版复杂的数学公式。TeX 语言定义了一套原语,用于对纯文本进行格式控制;并且在这些原语的基础上,定义了 \ No newline at end of file +latex - 标签 - Hybert's bloghttps://wanghuibin0.github.io/tags/latex/latex - 标签 - Hybert's blogHugo -- gohugo.iozh-CNThis work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.Fri, 21 Jan 2022 23:09:00 +0800LaTeX如何将两段代码并排放置https://wanghuibin0.github.io/posts/2022/01/latex-typeset-code-list/Fri, 21 Jan 2022 23:09:00 +0800作者https://wanghuibin0.github.io/posts/2022/01/latex-typeset-code-list/排版一段代码用lstlisting环境(listing宏包) 将每一段代码用minipage环境包起来成为一个个box(注意设置每个minipLatex排版中文的问题汇总https://wanghuibin0.github.io/posts/2021/12/handle-chinese-in-latex/Tue, 07 Dec 2021 17:30:34 +0800作者https://wanghuibin0.github.io/posts/2021/12/handle-chinese-in-latex/Latex排版中文的问题汇总 涉及两方面: 对中文字体的支持 对中文排版细节的处理 几个相关的宏包: CJK宏包:提供了对中文字体的支持 xeCJK和l \ No newline at end of file diff --git a/tags/writing/index.html b/tags/writing/index.html deleted file mode 100644 index 3150bbdf..00000000 --- a/tags/writing/index.html +++ /dev/null @@ -1,5 +0,0 @@ -writing - 标签 - Hybert's blog

 writing

2021

-
\ No newline at end of file diff --git a/tags/writing/index.xml b/tags/writing/index.xml deleted file mode 100644 index 9c1b2190..00000000 --- a/tags/writing/index.xml +++ /dev/null @@ -1 +0,0 @@ -writing - 标签 - Hybert's bloghttps://wanghuibin0.github.io/tags/writing/writing - 标签 - Hybert's blogHugo -- gohugo.iozh-CNThis work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.Wed, 24 Nov 2021 20:44:15 +0800TeX Familyhttps://wanghuibin0.github.io/posts/2021/11/tex-family/Wed, 24 Nov 2021 20:44:15 +0800作者https://wanghuibin0.github.io/posts/2021/11/tex-family/TeX TeX 是 Donald Knuth 编写的一套排版系统,尤其擅长排版复杂的数学公式。TeX 语言定义了一套原语,用于对纯文本进行格式控制;并且在这些原语的基础上,定义了 \ No newline at end of file diff --git a/tags/writing/page/1/index.html b/tags/writing/page/1/index.html deleted file mode 100644 index 5e89a071..00000000 --- a/tags/writing/page/1/index.html +++ /dev/null @@ -1 +0,0 @@ -https://wanghuibin0.github.io/tags/writing/ \ No newline at end of file