Protocol Buffers 食用方法

AUTHOR: Locez
VERSION: 1

1 Protocol Buffers 是什么?


Protocol Buffers 是 google 开发的一种开源的、跨平台的、可扩展的结构化数据序列化机制。使用 Protocol BUffers 可以定义只定义一次结构化的数据,然后通过生成的代码,在各种语言的数据流中都可以轻松高效的读取和写入定义好的结构化数据。

: 因代码仓库名称为 protobuf,以下为了行文简单, 统一使用 protobuf 指代 Protocol Buffers

1.1 Protobuf 的优势是什么?


Protobuf 是一种结构化的,序列化和反序列化的机制,那么对比最常用的 jsonxml 有什么优势呢?

  • 序列化与反序列化执行效率高
  • 序列化产物较小,在网络传输中可以更加节省带宽
  • 支持直接生成各种语言的代码,访问接口统一舒适

一个基本的 proto 文件中的结构体定义如下(proto2 语法):

1
2
3
4
5
 message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
}

Read More

RSA 算法

AUTHOR: Locez
VERSION: 1

RSA 是什么?


RSA 是以发明者 Ron RivestAdi ShamirLeonard Adleman 名字的首字母命名的一种非对称加密算法。在公钥密码系统中,加密密钥与解密密钥不同,由加密密钥推导出解密密钥在计算上是不可行的,系统的加密算法和加密密钥可以公开,只要保存好解密密钥即可。而 RSA 则是基于整数因子分解问题的,对极大数做因数分解的难度决定了 RSA 算法的可靠性。

Read More

加密你的磁盘

AUTHOR: Locez
VERSION: 1

数据的安全,保密性在现在的生活中显得越来越重要。随着数字化的时代的来临,越来越多的数据被数字化,特别是更多有关于我们隐私的数据在不断生成,甚至还有我们需要离线保存的密钥等。而且通常我们使用磁盘,USB 闪存,SD 卡等存储介质进行存储,即便我们已经离线存储,仍然不能保证该存储介质不会丢失,如果丢失那么对于我们来说有可能是灾难性的事件。因此对这些离线存储的重要数据,再次进行进行加密是非常有必要的,本文将告诉你如何加密你的移动存储介质。

在此之前先介绍一下 LUKS:
LUKS (Linux Unified Key Setup)是 Linux 硬盘加密的标准。 通过提供标准的磁盘格式,它不仅可以促进发行版之间的兼容性,还可以提供对多个用户密码的安全管理。 与现有解决方案相比,LUKS 将所有必要的设置信息存储在分区信息首部中,使用户能够无缝传输或迁移其数据。

Read More

diff 与 patch 的使用

AUTHOR: Locez
VERSION: 1

摘要


在 linux 的日常使用中,我们经常需要修改一些配置文件,然而在软件升级以后,经常会面临,配置更新了与原配置部分不兼容的问题(当然我们更多的可能是来制作软件升级的补丁)。在这种情况下我们通常有两种选择:

  • 对比现有配置,手动在新配置文件中改动
  • 利用 sedawk 等工具配合改动
  • 采用 diffpatch 制作增量补丁的方式改动

本文主要通过一个升级awesome 配置的例子,对第三种方法进行介绍和讲解

Read More

Docker 快速入门之 Dockerfile

AUTHOR: Locez
VERSION: 1

docker
在之前的文章中我们提到可以通过容器创建一个我们自定义过的镜像,那么我们是否可以直接通过基础的镜像直接自定义镜像呢?答案当然是可以的,在 Docker 中我们可以从名为 Dockerfile 的文件中读取指令并且自动构建镜像。在本文中,将介绍 Dockerfile 的基本语法以及基本知识。

1 Dockerfile 是什么?


Dockerfile 其实是一份文本文档,里面包含了用户可以用来操作镜像的一些指令。通过顺序执行这些指令,最后得到一个自定义的镜像,这有点类似于我们的 shell script

Read More

Docker 快速入门

AUTHOR: Locez
VERSION: 1

docker

1 Docker 是什么?


Docker 是一个开源的容器引擎,而一个容器其实是一个虚拟化的独立的环境,因此开发者可以将应用打包到这样的一个 docker 容器中,然后发布到任何可以运行 docker 容器的机器中,实现一次打包多处部署,解决了因为环境问题而导致的部署难题。

1.1 容器是什么?


容器 对应的一个概念就是 镜像,镜像可以看做我们平时装系统的镜像,里面就是一个运行环境。当然我比较喜欢将镜像比作一个我们面向对象编程中的 ,而一个容器就是一个类的 实例,因此可以根据一个镜像,创建出很多个容器,每一个容器都是具体的,我们可以在容器上面做出更改,然后再把这个容器打包成一个新的镜像,从而以后可以根据改动后的镜像创建出新的容器。而容器本身可以简单理解为是一个虚拟独立的运行环境,我们要做的是中这个环境中打包我们的应用,以便于再次部署。

Read More

Hadoop 集群安装与配置

AUTHOR: Locez
VERSION: 1

hadoop

1 Hadoop 是什么?


Apache Hadoop 是一个支持数据密集型分布式应用程序的开源软件框架,能在大型集群上运行应用程序。Hadoop 框架实现了 MapReduce 编程范式,把应用程序分成许多小部分,每个部分能在任意节点上运行。并且 Hadoop 提供了分布式文件系统存储所有计算节点的数据,为集群带来非常高的带宽。

Read More

虚拟机与双系统的区别与比较

AUTHOR: Locez
VERSION: 1

最近发现有许多同学对虚拟机以及双系统安装 Linux 系统存有疑惑,于是有人建议我写一个基础入门篇的扩展,其实就我个人看法而言,这些知识点可以从网上找到,其实也没有太大的必要重写,只不过为了方便初入门的同学,还是答应写写吧。在这篇文章里将会对两者的进行简单的介绍以及对比。

Read More

Linux 上 10 个最好的 Markdown 编辑器

在这篇文章中,我们会点评一些可以在 Linux 上安装使用的最好的 Markdown 编辑器。 你可以找到非常多的 Linux 平台上的 Markdown 编辑器,但是在这里我们将尽可能地为您推荐那些最好的。

Best Linux Markdown Editors

对于不了解 Markdown 的人做个简单介绍,Markdown 是由著名的 Aaron Swartz 和 John Gruber 发明的标记语言,其最初的解析器是一个用 Perl 写的简单、轻量的同名工具。它可以将用户写的纯文本转为可用的 HTML(或 XHTML)。它实际上是一门易读,易写的纯文本语言,以及一个用于将文本转为 HTML 的转换工具。

希望你先对 Markdown 有一个稍微的了解,接下来让我们逐一列出这些编辑器。

Read More

推荐新手使用 Arch Linux 入门

AUTHOR: Locez
VERSION: 1

Arch Linux
就前面的几篇文章来说,我一直是以 Ubuntu 与 Fedora 作为新手入门的系统,但是其实我真正想推荐的是 Arch ,经过前面的学习,或许你对 Linux 已经有了一个大致的了解,现在如果你想加速你的步伐,也许可以看看本文。如果要问为什么学习 Linux ,我也只能回答 Just for fun 。
本文基本上是我个人见解,有不正确的地方恳请批评指正,另外本文只是推荐 Arch ,并没有说 Arch 是最适合新手的。

Read More