命令行、终端、Shell、Promt的基础认知。
操作系统自带的终端都很丑且难用,好用的终端需要一番折腾配置(特别是国内环境网络问题),新手往往望而生畏。
【在学校没有人教你的终端基础知识】 https://www.bilibili.com/video/BV1rk4y1W7dZ
命令行、终端、Shell、Promt的基础认知。
操作系统自带的终端都很丑且难用,好用的终端需要一番折腾配置(特别是国内环境网络问题),新手往往望而生畏。
【在学校没有人教你的终端基础知识】 https://www.bilibili.com/video/BV1rk4y1W7dZ
这节课主要介绍了线性一致的概念与Zookeeper论文。
线性一致描述的是系统的行为,正确的行为是客户端发送了一个写请求并且收到服务端答复后,这个写请求能被之后的读请求看到。每个读请求看到的都是最新的写请求所作的更改。
Zookeeper论文是我接触到的最抽象的一篇论文。首先它的功能就很抽象:分布式协调内核。它提供的两个保证:线性写和FIFO客户端请求也费时间理解。最后则是它的API调用以及具体实现。
读这篇论文的原因我想一是Zookeeper的广泛使用,证明了其实用性;二是其“线性一致”的设计,契合课程。收获就是其API的设计、Watch模式。
这节课主要介绍容错的主要手段——复制以及相应的论文:Fautl-Tolerant Virtual Machines。
这节课主要介绍分布式存储系统的难点以及论文GFS。
分布式系统出现的原因是人们想要利用更多的机器实现更好的性能,但更多的机器意味着故障的期望上升。解决单台机器故障最简单的办法就是多副本的容错机制,但多副本间需要时间同步。一致性难题意味着牺牲性能,这是个闭环,人们必须在性能和一致性上做取舍。
对于GFS的学习,我觉得首先要明白GFS应对的需求,整体的架构设计,然后就是读写过程,数据一致性,这是从使用层面上来说的。在高可用方面,GFS的备份管理、文件快照、崩溃恢复等细节需要再深入研究。
这节课主要介绍Go语言以及用Go实现爬虫的例子。
MIT 6.824 课程第一节笔记,主要介绍了分布式系统的驱动力、难点、类型等,还介绍了MapReduce。
这里将介绍vim的语法和光标浏览,这几乎是vim最重要的部分。
前言:学linux时接触了vim这个编辑器,当时只知道三种模式转换,并不觉得vim有多好用。看南大蒋炎岩操作系统课程时,jyy在shell上键指如飞,我就思考为什么他能够编辑得这么快。我想到的一个点就是光标的移动。在没有接触vim之前,我都是通过键盘右下角的上下左右键进行光标的移动,这意味着右手需要移动一段距离。而接触vim之后,hjkl的移动映射只能说真香。现在我恨不得接触到的每个文本编辑器都有vim工作模式。
推荐阅读:
快速体验:力扣刷题设置绑定vim键位,快速体验vim。
这里介绍点命令、寄存器和宏。点命令比较有用,寄存器和宏比较鸡肋。
IntelliJ家的IDE一直很好用,其中IDEA是开发Java的利器。下面介绍一下常用的快捷键。
官方的快捷键表:https://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard_Mac.pdf