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

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

  • 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,一致性哈希就是通过增加一层抽象,解决了加入或删除服务器节点时需要大量移动数据(或数据失效)的问题。

  • Python Learning Resources

    最近在学 Python,也摘取笔者看过的一些资料,希望对你有所帮助。

  • Python 名称校验

    最近的一个需求,对前端传来的变量名(unicode字符串)进行校验,变量名只能包含汉字、数字、字母和下划线,且长度不能超过50(每个汉字算两个字符)。下面是笔者的一个实现。

  • ELK 初级实践

    ELK 集群的安装算是比较简单了,下面列举几个重要的参考点,方便今后查看。

  • Java 程序分析工具

    由于运行了一堆 Java 微服务,导致开发环境越来越慢,在扩展了一次内存之后,问题依然没有解决。free -hvmstate -s 可以用来查看操作系统内存使用情况,但对于 Java 程序,jpsjmapjinfojstat 等工具能让你进行更细粒度的分析。

  • Understanding CORS

    CORS 是一个 W3C 标准,全称 “跨域资源共享” (Cross-Origin Resource Sharing),是为了宽松 Same Origin Policy 而制定的一套标准。