和一个跟自己很不一样的人,吃饭聊天

7 月末和 XH 约了八月底见面,没想到她还记得。之前聊天的印象是「自律、自由、洒脱的人,帮我坚定了坚持锻炼的决心。XH 是我以前不敢接触的那类人,很独立,让我内心很深处燃起了动力,保持自律,持续做有意义的事,把大目标一步步做成了。」

Git 数据模型与命令行

学习 Git 需要自顶向下学习,先了解数据模型,再去学习命令行,思考命令行对数据模型做了哪些操作。

概览

版本控制系统 (VCSs) 是一类用于追踪源代码(或其他文件、文件夹)改动的工具。顾名思义,这些工具可以帮助我们管理代码的修改历史;不仅如此,它还可以让协作编码变得更方便。VCS通过一系列的快照将某个文件夹及其内容保存了起来,每个快照都包含了文件或文件夹的完整状态。同时它还维护了快照创建者的信息以及每个快照的相关信息等等。

密码学入门

散列函数

密码散列函数 (Cryptographic hash function) 可以将任意大小的数据映射为一个固定大小的输出。除此之外,还有一些其他特性。 一个散列函数的大概规范如下:

hash(value: array<byte>) -> vector<byte, N>  (N对于该函数固定) 

下面我们用sha3sum命令来测试SHA1对几个字符串的输出:

Vim 学习指南

Vim 是一个能跟上你思维速度的编辑器。

Vim 编辑器学习的步骤为:

  1. 理解编辑器的设计理念和基本原理;
  2. 学习命令,浏览教程,完成 vimtutor
  3. 情景练习;
  4. 将编辑器替换成 Vim,持续使用;
  5. 优化使用,自定义,安装扩展插件。

概况

Vim 的哲学

在编程的时候,你会把大量时间花在阅读/编辑而不是在写代码上。所以,Vim 是一个多模态编辑 器:它对于插入文字和操纵文字有不同的模式。Vim 是可编程的(可以使用 Vimscript 或者像 Python 一样的其他程序语言),Vim 的接口本身也是一个程序语言:键入操作(以及其助记名) 是命令,这些命令也是可组合的。Vim 避免了使用鼠标,因为那样太慢了;Vim 甚至避免用 上下左右键因为那样需要太多的手指移动。