• 半小时总结一下阿里中间件比赛

    机缘巧合之下了解到阿里天池有个 POLARDB数据库性能大赛,但是今年的赛程还没开始,在官网上又看到了正在进程中中间件性能挑战赛,于是报名参加,了解一下比赛的流程,为后面的数据库性能大赛趟趟路。

  • Lamport Timestamps

    Lamport timestamps 是一种在分布式系统中获取全序关系(total ordering)的简单算法。

  • Sublime Text 中的常用快捷键

    在华为工作了近一年的时间,由于大多数时间在写 C,用到最多的编辑器就是 Source Insight,虽然函数调用关系的展示真的牛逼,但多少还是感觉太重了,还是 ST 好用,适合作为各种语言的编辑器。本文列举一些 ST 常用的快捷键。

  • Core Dumps

    操作系统可以配置为当某个程序因进程终止信号(如 segmentation fault)而崩溃时,生成 core dump 文件。这个核心转储文件包含进程终止时的内存快照。可以使用 gdb 加载该文件,查看程序崩溃时的状态,这在调试中非常有用。

  • GDB 命令快速参考

    本文是 Summary of GDB commands for x86-64 Systems 的人肉翻译 📝。并在 Reference 处列出了一些 gdb 的在线文档。

  • 函数中最多定义多少个参数是合理的

    依稀记得毕业面试的时候有考官问过: 函数最多定义多少个参数是合理的 ? 印象中当时是回答了四个,但也只是凭感觉猜的,没有什么根据。

  • C 语言头文件11条

    一个大型C语言项目中的头文件应该包含什么内容?想必做C/C++开发的程序员都有过这样的疑问。密歇根大学的EECS 381课程中的C Header File GuidelinesC++ Header File Guidelines 是两个不错的总结。如下11条规则摘取自 C Header File Guidelines

  • Linux 内核结构体之 list & hlist

    Linux 内核中提供了链表的实现,这其中包括了双向链表和用于哈希表的 hash list(hlist)。双向链表的实现采用侵入式的方式,链表节点不保存任何数据内容,而是将链表结构作为具体数据结构的成员;hlist 虽然有 pprev 和 next 成员,但它并不是双向链表,因为 pprev 指向的是前一个节点的 next 指针。

  • Dapper and Blkin

    Dapper 是 Google 生产环境下的分布式跟踪系统,其设计之初参考了 Magpie 和 X-Trace 等分布式系统的理念,具有低损耗、应用透明的、大范围部署等特点。本文介绍 Dapper 的基本原理及其一个 C++ 开源实现 Blkin

  • 常用快捷键汇总

    在工作中,不同时间点(切换项目或部门或公司)不可避免地会用到不同的工作平台或不同的工具,这期间肯定会有不少提高工作效率的快捷键,为了不同项目之间无缝衔接,记录一个常用快捷键列表也许是一个不错的选择。

  • Awesome CS Courses

    笔者业余时间学习的计算机课程,全部来自世界名校课程,列于此,共勉。

  • 一致性哈希算法

    一致性哈希(Consistent hashing)是一种简单而巧妙的算法,正如 David Wheeler 所说,All problems in computer science can be solved by another level of indirection,一致性哈希就是通过增加一层抽象,解决了加入或删除服务器节点时需要大量移动数据(或数据失效)的问题。