类目汇总

工具

编写快速安全bash脚本建议

2 分钟读完

看到网上非常好的一篇bash脚本编写建议,转载供自己学习使用。 昨天我和一些朋友聊起Bash,我意识到:即使我已经使用Bash十多年了,现在还有一些基础的杂项,我理解的并不是很清晰。 像往常一样,我认为我应该写一个博文。会包含下面几个方面:

emacs学习心得

少于 1 分钟读完

学习了emacs一段时间,走完了从入门到放弃这条路,这条路走得很折腾,记录一下自己的心得体会。首先展示一下我的成果lemon-emacs。

vim心得

少于 1 分钟读完

vim是我使用了很久的编辑器,在不同的开发机上折腾了很多次,有了很多经验,这里记录一下我常用到的内容。

Markdown CheatSheet

2 分钟读完

这边文章主要列举常用的markdown语法,使用这些语法足够满足平时90%的写作需求,需要详细需求请参考详细指南。需要注意一点,markdown兼容html语法,可以直接在markdown中添加html语句。

网络程序测试

少于 1 分钟读完

这里将记录一下我进行网络程序调试的一些经验。主要包括进程状态的查看,网络状况查看,日志查看,调试程序。

我使用过的chrome插件

少于 1 分钟读完

工欲善其事,必先利其器。我平时非常喜欢寻找有意思的插件。下面介绍几款我喜欢的chrome插件分享给大家。 

使用automake生成Makefile

少于 1 分钟读完

一些Linux平台上开源的C或者C++项目,当你编译这些项目的时候,只需./configure、 make和make install就可以把程序编译完成并安装到系统中。这些开源的项目的编译和安装怎么如此的干净利落,主要通过automake相关工具实现的。

shell攻略

4 分钟读完

在linux系统下面编程,慢慢发现了shell scripts的重要性。使用shell脚本编程,可以让很多问题自动化,无需自己去敲繁琐的命令,大大的解放了生产力。所以对于一个linux程序员来说,脚本编程非常重要。下面将介绍一些我的学习经验,也作为自己的笔记用来时常查看。

gtest的使用

少于 1 分钟读完

gtest是googletest的简称,它是一款google内部使用的测试驱动(当编写一个程序单元时,要先对这个程序单元编写其测试代码,然后再编写这个程序单元,这就是测试驱动)开发工具。gtest是一套单元测试框架,使用起来非常的方便,能很好地帮助编写测试代码。

Back to Top ↑

编程

utf8编码实现

2 分钟读完

讲到utf8,就要说一下unicode,unicode是一个标准,几乎包含了世界上所有的字符,每一个字符在unicode中都有一个对应的码点,用U+表示,如汉字林的码点就是U+6797,数字是16进制表示。在将unicode的码点保存到计算的时候,又有了不同的实现方法如utf8,utf16,utf32等等。这里主...

do {…} while(0)的用途

少于 1 分钟读完

在c语言程序中,如linux内核和其它开源代码中,经常可以看到下面的代码:

快速理解HTTP协议

少于 1 分钟读完

HTTP是非常重要的网络协议,在实际工作中很多时候都需要学习和理解HTTP协议。比如为系统设计HTTP服务器,处理客户端的HTTP协议请求,模拟客户端发送HTTP请求等等。因此,这里将简单介绍一下HTTP的相关知识。

面试编程

少于 1 分钟读完

最近忙于找工作,看完了《剑指offer》这本书,深入思考其中的问题,感觉自己收获颇丰。回想自己的几次面试,总结经验和教训供大家思考。

tcmalloc原理剖析

少于 1 分钟读完

Tcmalloc是谷歌开发的一个内存分配器,管理堆内存,主要影响malloc和free,用于降低频繁分配、释放内存造成的性能损耗,并且有效地控制内存碎片。glibc中的内存分配器是ptmalloc2,tcmalloc号称要比它快。一次malloc和free操作,ptmalloc需要300ns,而tcmalloc只...

Group Key介绍

少于 1 分钟读完

列式数据库是面向OLAP场景的,所谓OLAP,更多是用来进行数据分析时使用,比如应用于数据仓库系统,列式数据库中的数据按列存储的话,并能够很好地分析一列数据的特性。本文将介绍一下一种内存列式数据库的索引方案,名字叫做GroupKey。主要是用来进行数据的索引工作。

C++学习和C++11的新特性

少于 1 分钟读完

对于C++的学习,我觉得有几个阶段,首先,明白C++的基本语法,通过看C++ Primer就可以知道,并做很多的练习,让自己熟悉C++的基本语法使用,了解基本的语句,如控制语句,循环语句等等,这一部分,主要是C部分的学习。在此基础上,使用C++的面向对象,使用类编写程序,可以尝试编写一个简单的String类,明白...

protobuf的使用

少于 1 分钟读完

Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。其优点是语言中立...

Back to Top ↑

系统

BigTable学习

少于 1 分钟读完

记录阅读BigTable论文时思考的一些问题。

磁盘I/O那些事

少于 1 分钟读完

在设计存储系统时,磁盘是最常用的存储介质,了解磁盘的各种特性才能高效的管理磁盘,提高系统性能。这篇文章准备介绍磁盘的基本知识,特性,优化技巧,和常见设计方法。

浅谈basic-paxos,multi-paxos和raft

少于 1 分钟读完

最近看了一些分布式一致性算法的相关文章,有basic-paxos相关的文章和multi-paxos相关的文章,结合自己前期学习的raft论文,总结一下它们的关系记录一下。

快速理解Paxos算法

少于 1 分钟读完

Paxos算法是Lamport于1990年提出的一种基于消息传递的一致性算法,它是非常重要的分布式一致性算法。由于Chubby系统和Zookeeper都基于paxos算法实现,因此该算法名声大噪,被许多学习分布式系统的人学习。

TCP协议

少于 1 分钟读完

TCP是一个非常复杂的协议,网络编程中要用到很多TCP的知识,更好的理解TCP有利于分析程序运行,发现问题,掌握TCP协议是一个网络编程人员的必备技能。

RAMCloud–基于内存的存储系统简介

少于 1 分钟读完

存储技术一直在不断地发展,从磁带,磁盘,闪存,SSD,内存,硬件的发展十分的快速。目前,数据还主要存储在磁盘中,但随着硬件的发展,基于闪存的存储系统,基于内存的存储系统也被广泛的研究,不久的将来,硬盘也会像磁带一样成为历史,新的存储硬件将有更快的访问速度,更高的带宽,更快的寻址,软件技术也将受此影响。

数据库简介

少于 1 分钟读完

简单介绍一下数据库的基本原理。

Back to Top ↑

其它

网址列表

少于 1 分钟读完

记录一些自己喜欢的网址,各种各种:

mac软件

少于 1 分钟读完

主要记录我安装mac软件的一些网址,软件名和配置。

Back to Top ↑