过一种轻松的生活
过一种轻松的生活这半年来,我感觉到自己的生活处于一种失控的状态,我没有足够的心理能量去支撑自己去过想要的的那种生活。但这两天我有一些想法,这种想法缓解了我的焦虑,同时也释放了我不断堆积的一些心理压力,并在某种程度上解开了我的完美主义。但这并不是一种非常特别的想法,而是一种很自然的,和谐的,但是却被我早已遗忘的想法——过一种轻松的生活。
轻松的生活,究竟怎么才算轻松,如果没有良好的物质基础,生活里没有足够的余裕能轻松的起来吗?社会文化总是压制我们内心的真实体验,而我们却难以逃避,我们能轻松的起来吗?我的想法是可以的。即使没有良好的物质基础,生活在一种压抑的社会文化中,我们仍然能够轻松起来。
轻松,它表示我们要卸下自己内心不断堆积的压力,让自己的内心重新恢复轻盈柔韧的状态。不再用完美主义的近乎苛刻的要求来对待自己,而是允许自己犯错。允许自己是普通的,不完美的。其实这无关乎我们自身是否允许,因为没有人真的完美,与自己和解并学会善待自己是我们始终要学会的课题。
不断的反刍自己过去的经历之后,我厌倦了习得性的无助。意识到我永远不会像今天这样年轻,即使今天我不能享受生活,今天也依然会无法挽回的逝去 ...
raft学习
Raft复制状态机复制状态机在分布式系统中被用于解决很多容错的问题。例如,大规模的系统中通常都有一个集群领导人,像 GFS、HDFS 和 RAMCloud
复制状态机通常都是基于复制日志实现的,如图 1。每一个服务器存储一个包含一系列指令的日志,并且按照日志的顺序进行执行。每一个日志都按照相同的顺序包含相同的指令,所以每一个服务器都执行相同的指令序列。因为每个状态机都是确定的,每一次执行操作都产生相同的状态和同样的序列。
一致性算法的任务是保证复制日志的一致性。一致性模块接受客户端指令并添加到自己的日志中,它和其它服务器上的一致性模块进行通信来保证每一个服务器上的日志最终都以相同的顺序包含相同的指令
可理解性的设计第一个技术就是众所周知的问题分解:我们尽可能地将问题分解成几个相对独立的,可被解决的、可解释的和可理解的子问题。Raft 算法被我们分成:领导人选举,日志复制,安全性,成员变更
我们使用的第二个方法是通过减少状态的数量来简化需要考虑的状态空间,使得系统更加连贯并且在可能的时候消除不确定性。
Raft 一致性算法
Raft 通过选举一个杰出的领导人,然后给予他全部的管理复制日 ...
Distributed Systems Engineering
Distributed Systems Engineering导论人们使用分布式系统的驱动力是:
更高的计算性能。大量的计算机意味着大量的并行运算,大量CPU、大量内存、以及大量磁盘在并行的运行。
提供容错(tolerate faults)
一些问题天然在空间上是分布的。例如银行转账,我们假设银行A在纽约有一台服务器,银行B在伦敦有一台服务器,这就需要一种两者之间协调的方法。所以,有一些天然的原因导致系统是物理分布的。
达成一些安全的目标。比如有一些代码并不被信任,但是你又需要和它进行交互,这些代码不会立即表现的恶意或者出现bug。你不会想要信任这些代码,所以你或许想要将代码分散在多处运行,这样你的代码在另一台计算机运行,我的代码在我的计算机上运行,我们通过一些特定的网络协议通信。所以,我们可能会担心安全问题,我们把系统分成多个的计算机,这样可以限制出错域。
分布式系统的抽象和实现工具
需要使用的工具:
RPC(Remote Procedure Call)。RPC的目标就是掩盖我们正在不可靠网络上通信的事实。
线程。这是一种编程技术,使得我们可以利用多核心计算机。对于本课程而言, ...
JavaScript学习
JavaScript学习JavaScript(JS)是一种具有函数优先特性的轻量级、解释型或者说即时编译型的编程语言。虽然作为 Web 页面中的脚本语言被人所熟知,但是它也被用到了很多非浏览器环境中,例如 Node.js、Apache CouchDB、Adobe Acrobat 等。进一步说,JavaScript 是一种基于原型、多范式、单线程的动态语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。
函数优先:指的是当一门编程语言的函数可以被当作变量一样用时,则称这门语言拥有头等函数。
即时编译:在计算机技术中,即时编译(英语:Just-in-time compilation,缩写为JIT;又译及时编译、实时编译),也称为动态翻译或运行时编译,是一种执行计算机代码的方法,这种方法设计在程序执行过程中(在执行期)而不是在执行之前进行编译。通常,这包括源代码或更常见的字节码到机器码的转换,然后直接执行。实现JIT编译器的系统通常会不断地分析正在执行的代码,并确定代码的某些部分,在这些部分中,编译或重新编译所获得的加速将超过编译该代码的开销。
JIT编译是两种传统的机器代码翻译方法 ...
Docker
Docker 学习Docker view什么是DockerDocker 是一个用于开发、搬运和运行应用程序的开放平台。 Docker 使您能够将应用程序与基础架构分开,以便您可以快速交付软件。使用 Docker,您可以像管理应用程序一样管理基础架构。通过利用 Docker 的方法来快速传输、测试和部署代码,您可以显着减少编写代码和在生产环境中运行代码之间的延迟。
Docker 提供了在称为容器的松散隔离环境中打包和运行应用程序的能力。隔离和安全性允许您在给定主机上同时运行多个容器。容器是轻量级的,包含运行应用程序所需的一切,因此您无需依赖主机上当前安装的内容。您可以在工作时轻松共享容器,并确保与您共享的每个人都获得以相同方式工作的相同容器。
Docker Architecture
Docker 使用客户端-服务器架构。 Docker 客户端与 Docker 守护进程对话,后者负责构建、运行和分发 Docker 容器的繁重工作。 Docker 客户端和守护进程可以在同一系统上运行,或者您可以将 Docker 客户端连接到远程 Docker 守护进程。 Docker 客户端和守护进程使用 ...
Hanlp Tutorial
Hanlp TutorialHanLP 提供开箱即用的 RESTful API 和原生 Python API,它们在为不同场景设计时共享非常相似的接口。
Naming Convention
key
Task
Chinese
tok
Tokenization. Each element is a token.
分词
pos
Part-of-Speech Tagging. Each element is a tag.
词性标注
lem
Lemmatization. Each element is a lemma.
词干提取
fea
Features of Universal Dependencies. Each element is a feature.
词法语法特征
ner
Named Entity Recognition. Each element is a tuple of (entity, type, begin, end), where ends are exclusive offsets.
命名实体识别
dep
Dependency Parsing ...
Kubernetes学习
Kubernetes 学习概述Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态,其服务、支持和工具的使用范围相当广泛。
Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。 Google 在 2014 年开源了 Kubernetes 项目。 Kubernetes 建立在 Google 大规模运行生产工作负载十几年经验的基础上, 结合了社区中最优秀的想法和实践。
容器是打包和运行应用程序的好方式。在生产环境中, 你需要管理运行着应用程序的容器,并确保服务不会下线。 例如,如果一个容器发生故障,则你需要启动另一个容器。 如果此行为交由给系统处理,是不是会更容易一些?
这就是 Kubernetes 要来做的事情! Kubernetes 为你提供了一个可弹性运行分布式系统的框架。 Kubernetes 会满足你的扩展要求、故障转移你的应用、提供部署模式等。 例如,Kubernetes 可以轻松管理系统的 C ...
NLP概述
NLP概述自然语言处理 (NLP) 是语言学、计算机科学和人工智能的一个跨学科子领域,关注计算机与人类语言之间的交互,特别是如何对计算机进行编程以处理和分析大量自然语言数据。目标是一台能够“理解”文档内容的计算机,包括其中语言的上下文细微差别。然后,该技术可以准确提取文档中包含的信息和见解,并对文档本身进行分类和组织。自然语言处理中的挑战通常涉及语音识别、自然语言理解和自然语言生成。
自然语言处理(Natural Language Processing,NLP)是一门研究人类语言和计算机之间交互的学科,它包括了很多任务,以下是一些常见的自然语言处理任务:
分词(Word Segmentation):将文本划分成一个个词语或标记的过程。
词性标注(Part-of-Speech Tagging):确定每个词语的语法类型,例如名词、动词、形容词等。
命名实体识别(Named Entity Recognition):识别文本中的命名实体,例如人名、地名、组织名等。
情感分析(Sentiment Analysis):确定文本的情感极性,例如正面、负面或中性。
文本分类(Text Classif ...
Tmux
TmuxTmux 使用教程 - 阮一峰的网络日志 (ruanyifeng.com)
Tmux的作用命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称”窗口”),在里面输入命令。用户与计算机的这种临时的交互,称为一次”会话”(session) 。
会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。
一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。
为了解决这个问题,会话与窗口可以”解绑”:窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话”绑定”其他窗口。
Tmux 就是会话与窗口的”解绑”工具,将它们彻底分离。
(1)它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。
(2) 它可以让新窗口”接入”已经存在的会话。
(3)它允许每个会话有多个连接窗口,因此可以多人实时共享会话。 ...
快捷键
快捷键浏览器快捷键Ctrl+N 打开新窗口。
Ctrl+T 打开新标签页。
Ctrl+Shift+N 在隐身模式下打开新窗口。
Ctrl+H 打开“历史记录”页面。
Ctrl+J 打开“下载内容”页面。
Ctrl+O,然后选择文件。 在 Google Chrome 浏览器中打开计算机中的文件。
Ctrl+D 将当前网页保存为书签。
Ctrl+R 刷新页面
Ctrl+L 地址栏
Home 转至网页顶部。
End 转至网页底部。
按住 Ctrl 键的同时点击链接。或用鼠标中键(或鼠标滚轮)点击链接。 从后台在新标签页中打开链接。
按住 Shift 键的同时点击链接。 在新窗口中打开链接。
Ctrl+Shift+T 重新打开上次关闭的标签页。Google Chrome 浏览器可记住最近关闭的 10 个标签页。
Ctrl+1 到 Ctrl+8 切换到标签栏中指定位置编号所对应的标签页。Ctrl+9 切换到最后一个标签页。
Ctrl+Tab 切换到下一个标签页。
Ctrl+W 关闭当前标签页或弹出窗口。
用鼠标中键(或鼠标滚轮)点击标签页。 关闭所点击的标签页。
Ctrl + l、Alt + ...