Home

自动生成ifdef标记和作者信息的插件

针对团队开发为了统一代码风格往往有比较严格的代码规范。为了自动化的生成一些不变的内容,写了如下两个插件(有的是改动): ifdef.vim 生成ifndef标记,防止重复包含。 author_info.vim 生成更新作者信息版权声明 详见https://github.com/chenxiaohui/ifdef_generator.

Read more

夜景几张

实在是镜头决定了成败,套头拍月亮基本是对不上焦的节奏,只能拍拍旁边的楼了。财富金融中心,应该是北京最高的写字楼了。貌似有跑焦。

Read more

永不分开,世界的爱

这应该算是很古老很古老的一首歌了,当时赵薇还是个青涩的小燕子。2000年的时候还在上初中,实在不理解新千年的意义。现在回想起来,新千年的到来,对人类来说,实在是个有着难以名状的意义。20世纪前半叶的多灾多难,后半叶的冷战阴云,没有哪个世纪会产生如此重大的人类群体性灾难。旧的秩序被打破,核战争的阴云,武器发展到批量化的收割人命,20世纪可能是人类历史上绝无仅有一个世纪。 从这个角度想,这首歌真是充满了感慨。停留在20世纪的末尾,回首这一个多灾多难的世纪,看人类从错误中反省,最终一起站在新千年的入口展望未来。某种意义上说,人类第一次站在一起迎接和平,憧憬未来。这其中的意味可能只有经历过苦难的人才体会的出来,虽然2000年的时候局部战争依然在进行着。 一首歌的意味只有联想到背景才体会得到...

Read more

用google来验证一下Maclaurin展开式

偶然发现google可以直接画出函数图像来,精准度极高,于是想起来用这个功能来看一下Maclaurin展开是如何随精度增加而逼近展开式的。从某种角度上讲,这是一个极好的拟合过程,相对于梯度下降的逐步拟合来讲,泰勒公式或者麦克劳林展开直接推导出了每一个拟合因子。 泰勒级数的定义如下: 不过这是带拉格朗日余项的形式。让基准值=0可以得到 Maclaurin 展开式,当然这也就意味着Maclaurin展开式在0附近的拟合是最精确的。定义如下:

Read more

《改善C++程序的150个建议》勘误

翻了一下编写高质量代码:改善C++程序的150个建议,感觉一般,主要是能下到pdf。看到两个错误。 第一个错误是内存池的那里,内部类使用了外部类的成员变量,这是C++啊,不是java,内部类默认不持有外部类指针。 class MemPool { public: MemPool (int nItemSize, int nMemBlockSize = 2048): m_nItemSize(nItemSize), m_nMemBlockSize(nMemBlockSize), m_pMemBlockHeader(NULL), m_pFreeNodeHeader(NULL) {} virtual ~MemPool ...

Read more

Paxos算法学习

本来想写点东西,后来觉得都是一知半解。这里转载一点学习资料吧。 一个是知行学社的分布式系统与Paxos算法视频课程,循序渐进,讲解地比较浅显易懂。 </embed> 另一个是百度刘杰《分布式系统原理介绍》。当然Lamport的几篇论文是不能不看的,虽然都不太好懂。 The Part-Time Parliament Paxos Made Simple The Byzantine Generals Problem 相比较而言,paxos的wiki可能更好懂一些。有余力的同学可以做一下MIT Distributed Systems Labs。

Read more

C++的限制拷贝

如果需要禁止一个类的拷贝(多鉴于RAII的资源类),按习惯我们会把拷贝构造函数和赋值运算符重载设置为私有的。比如: class Base { public: Base (int a) { cout <<"construct"<<endl; } virtual ~Base (){} private: Base(const Base& b) Base & operator=(const Base& b) }; int main(int argc, const char *argv[]) { Base b(1);//ok Base c=1;//error[1] ...

Read more

暴力街区13

虽说是翻拍,但是也不能一模一样啊,这剧情的相似度不是一般的高啊…. 而且第二部的时候我就不理解,如果要引爆一个炸弹,直接倒计时爆炸就行了,干嘛要派一个人进去再输入一个引爆密码?剧情可从来没说炸弹送进去的时候就知道会被发射回来。 还有,不要黑我大底特律…

Read more