• 辩证唯物主义中的矛盾

  • insight · dao · 2015-02-15 · yuex
  • 我的关于于辩证唯物主义的浅见仅仅来源于课堂,以下论证必定有不尽的疏漏,敬乞宽谅。

    辩证唯物主义的基本观点可以概括如下 [1]

    世界的本元是物质,世间的万事万物都是由物质派生出来的。

    物质是运动的,运动是有规律的,规律是客观的,不以人的意志为转移的。

    任何一个哲学理论,都只是对客观世界的一个解释。没有对错之分,只有将其应用于改造世界之时的是否合适之别。用马克思自己的话讲,就是

    哲学家们只是用不同的方式解释世界,而问题在于改造世界

    这也一如数学中的公理系统。更具体的,我们可以用欧氏几何和非欧几何作例。二者无关对错,只有不同应用场景下的合适与否。但有一个最低的要求,就是这个理论必须是自洽的。

  • Vim 技巧之 Meta 键

  • linux · vim · 2015-02-08 · yuex
  • 在 terminal 环境下使用 Vim 时,Meta 键(亦即 Alt)一般是不起作用的 1。但是随着插件越用越多,绑定的组合键越来越多,按键难免会出现越来越不够用的情况。若是可以使用 Meta 键进行键位组合,至少会增加 26 个组合键。这里给出一个通过配置 Vim 来启用 Meta 组合键的方法。

    还是直接上代码。这里启用了从 <M-a><M-z> 的 26 组合键和从 <M-0><M-9> 的 10 个组合键。

    for i in range(char2nr('a'), char2nr('z'))
        let i = nr2char(i)
        exec "set <M-".i.">=\<Esc>".i
        exec "inoremap \<Esc …
  • Vim 技巧之 Smart Write

  • linux · vim · 2015-02-01 · yuex
  • 上篇讲到 SmartQuit(),通过处理 Vim 中的 E37 异常,让我们可以更畅快地退出 Vim。但这个解法并不完美,例如我们通过 vim 命令编辑无名文件时,SmartQuit() 在退出时会尝试用 w 进行保存,但由于当前文件没有文件名,所以会遭遇 Vim 中的 E32 异常

    E32: No file name

    在这篇文章里,我提供一个我在用的 SmartWrite() 函数,来解决 E32。闲言少叙,我们还是直接上代码

    首先,我们先将 SmartWrite() 的调用绑定到一个键位,这里暂时用 wq 替代好了。

    1
    nnoremap <unique> wq :call SmartWrite()<CR>
    

    一个更好的方法是将 ; 映射为 <Leader> 键,然后用 <Leader>w 来调用 SmartWrite(),这个键位按起来很方便而且很好记。当然 …

  • Vim 技巧之 Smart Quit

  • linux · vim · 2015-01-25 · yuex
  • 初学 Vim 时,我们都有这样的经历 ——“ 哇,怎么退出?!”。在尝试了 <Ctrl-C><Esc> 全都没有效果时,才会注意左下角状态栏的小提示:

    Type :quit<Enter> to exit Vim

    在小心翼翼地键入这个命令完成退出之后,我们欣喜地自认为已经掌握了 Vim 的退出之法。然而,当我们在 Vim 中进行了一番探索、受了一些嘲弄、做了一些不听使唤的修改后,虔诚地键入 :quit,准备结束这次不成功的尝试,舒缓一下心神,重新来过之时,Vim 又会无情地用一行血红色的小字警告你:

    E37: No write since last change (add ! to override)

    很多人的 Vim 之旅就此便戛然而止。许多年之后,那些并未放弃的人们,早已掌握了 Vim 中的大多数奥妙,但时不时地,仍然会在完成一些快速修改,准备退出进行一下验证或者修改下一个文件的时候,遭遇 Vim 的 E37 嘲弄。Vim …

  • Exclusive Queue 的一个推广

  • book · system semaphore · 2015-01-18 · yuex
  • 最近断断续续地在看一本非常棒的书,Allen B. Downey 的 The Little Book of Semaphores,理清了许多以前了解得不很确实的知识。

    这两天看到的书中 3.7 节的 Exclusive Queue。书中介绍了一个可以 1:1 并发向前的队列。一个很自然的想法是如何将其推广到 n:m 的情形。但非常奇怪的是书中并没有像前几节中推广二人约定 Rendezvous1,使之成为多人约定 Barrier 那样,将 1:1 的 Exclusive Queue 推广到 n:m。所以我在这篇拙文中斗胆狗尾续貂,补上这个推广 2

    首先,和书中之前的定义一样,n:m 情形下,要求有且仅有 n 个 leader 和 m 个 follower 同时进行 dance()。变量定义如下

     1 …