🌓

学信网身份证号更正记

毕业二十年,发现毕业证是“假”的,与学校、教委的沟通更正过程,及相关的法律法规依据。

阅读全文

在你身边工作,已是最好的回报

半年多以前,我写了一篇《在 MegaEase 工作是一种怎样的体验》,发到了自己的博客,皓哥转发到了推特上,一时间,我那个平时基本无人问津的博客的流量增长了上千倍。文章写的是 MegaEase 这个公司,但作为初创型公司,公司文化实际上与创始人有着莫大的关联,甚至可以说,是皓哥将自己的基因注入了 M

阅读全文

最终一致性和强最终一致性的区别

最近学习了一些 CDDT(Conflict-free replicated data type,无冲突可复制数据类型)相关的知识,其中,提到,CRDT满足强最终一致性,这是介于最终一致性和强一致性之间的一个一致性级别。强一致性和最终一致性的区别很明显,也有很多文章讲过,并不难理解。但对于强最终一致性

阅读全文

在 MegaEase 工作是一种怎样的体验

一家软件技术公司可以是什么样子。

阅读全文

无锁多线程那些事

首先来看一个问题:有一个初值为零的整形计数器,如果要写一个函数对其进行加一操作,但是超过 10 后要归零重新开始,最后返回本次操作的结果,这个函数应该怎么写?太简单了是不是?相信即使是初学者也能很容易的写出下面的代码:int counter = 0;int increase_counter() {

阅读全文

尝试修复了 Go1.10 之后 gocode 完全不能使用的问题

Go1.10中的 go build 引入了缓存机制,导致 gocode 完全不能使用(gocode#500),bug报了好几个,但作者表示目前太忙没有时间修复。Matthew Dempsky 的 fork 使用源码解析的方式解决了问题,但性能太差,不论项目大小,每次都要好几秒才能给出自动完成提示。他

阅读全文

首次抓到编译器Bug

写代码这么多年,多次怀疑碰到了编译器Bug,但最终却总是自己的责任,这次终于抓到了一个真正的编译器Bug,记录一下。最近公司的一个项目的编译环境升级到了 VS2013,完成后发现注册调试版本的一个 DLL (foo.dll)时触发了下面的断言:ATLASSERT(pComModule->m_h

阅读全文

C++中的全局常量

前些天偶然注意到项目的头文件里定义了大量全局常量,也就是类似const int foo = 5这种。这些常量,有些是简单的数值型,但大部分是CComBSTR、std::string之类的字符串,还有一些是数组,元素数多的能达到几万甚至几十万。把不变的“变量”尽可能的定义成常量,是各种C++书籍推荐的

阅读全文

历时99天,完成《GEB》电子版校对

从3月12日开始,历时99天,终于完成了《哥德尔、艾舍尔、巴赫》这本豆瓣第一科普书电子版的校对工作。包括电子版本书错误和原纸质版错误在内,总计提出各种勘误建议500条,还更新了不少插图,制作了生僻字和自造字的内嵌字体文件等,先佩服一下自己😄 。原帖地址以下为勘误总表(不包括《炸脖》、《文献目录》和

阅读全文

一个有趣的Bug

今早一到公司,就看到隔壁组一堆人在讨论一个Bug,足足半个多小时没有结果。人散了以后,一位同事找我帮忙看一下,发现是因为一个函数被递归调用导致栈溢出并崩溃,但奇怪的是代码中并没有递归调用这个函数。看到这个现象,我立刻想到了以前遇到的这个Bug,经过排查,果然是类似的原因,于是十分钟不到就解决了问题,

阅读全文