港澳行记
我来也匆匆,去也匆匆。 — 某歌词 记忆中和LP一起出去旅行的次数少的可怜,上一次还是在结婚蜜月时,去的是九寨。二人一起出游是很美妙的,印象也是深刻的,至今当时在九寨的情形 还能历历在目。于是年初就和LP定下了今年的一个家庭目标:一起出去玩一次。 ...
我来也匆匆,去也匆匆。 — 某歌词 记忆中和LP一起出去旅行的次数少的可怜,上一次还是在结婚蜜月时,去的是九寨。二人一起出游是很美妙的,印象也是深刻的,至今当时在九寨的情形 还能历历在目。于是年初就和LP定下了今年的一个家庭目标:一起出去玩一次。 ...
如果你看到一个C程序员在通宵熬夜神情紧张地对着电脑敲代码或阅读代码,多数只有两种可能:一是为了赶进度;二就是查找内存Bug。 — 个人感悟 ...
如果你问十个C程序员:你觉得C语言的核心是什么?这十个程序员都会回答:指针。 指针具备成为C语言核心的两个关键要素:强大与争议。 * 指针的强大源自于其天生与机器内存模型的适配。使用指针让代码紧凑,并可获得仅次于汇编代码的执行效率;使用指针可以让C程 序员毫不费力地尽情操纵着内存中的每个byte甚至是bit;使用指针可以为C程序员提供无与伦比的操作灵活性。总之,在C语言中指针几乎是无所 不能的代名词。得指针者得天下,没有指针,C语言将变得平庸。 ...
我在日常工作中使用C语言中的位域(bit field)的场景甚少,原因大致有二: * 一直从事于服务器后端应用的开发,现在的服务器的内存容量已经达到了数十G的水平,我们一般不需要为节省几个字节而使用内存布局更加紧凑的位域。 * 结构体中位域的实现是平台相关或Compiler相关的,移植性较差,我们不会贸然地给自己造“坑”的。 ...
果果已经3周岁了,这是一个不争的事实。这意味着我又变老了^_^。过去的东西已经无法抓住了,目前我能做的就是欣赏现实了^_^。 3岁的果果长的越来越有女孩儿的味道了^_^。 ...
自buildc正式在项目中应用以来,我们收到了许多同事针对buildc演进的意见和建议。其中确实有些易用性的问题是在最初设计时未考虑周全的,尤其是.buildc.rc中的配置,同事们对该文件的配置已经“怨声载道”了。 .buildc.rc是用来配置某开发者在开发过程中使用的第三方库所在subversion repository信息的,例如: a_repository = (‘SVN库地址’, ‘本地缓存路径’, [ # 格式:[(“第三方库名称”, “库版本”, “特征库文件”), …] (’libevent’, ‘2.0.10’, ’lib/libevent.a’), (‘instantclient’, ‘10.2.0.5.0’, ’lib/libnnz10.so’), … ] ) b_repository = (‘SVN库地址’, ‘本地缓存路径’, []) c_repository = (‘SVN库地址’, ‘本地缓存路径’, []) … external_repositories = [ a_repository, b_repository, c_repository, … ] ...
在版本控制工具大行其道的今天,作为程序员,势必要每天与各种版本控制系统(比如Subversion、Git、Mercurial等)打交道, 每天不commit几次代码都不好意思说自己是专业程序员^_^。不过commit代码可不止敲入commit命令这么简单,对于一个专业程序员 来说,我们还要关注每次commit所携带的背景信息,这里暂且称之为“commit context”。在每次commit时,这些上下文信息只能通过commit log来体现。 ...
掐指算来,部门知识管理的推广工作已有两年了。两年时间不能算短,但对于知识管理这件事来说,只能算是热身阶段,我们依旧站在起跑线上,或者稍乐 观地讲我们只是刚刚迈出了万米长跑的第一步。 下面是这两年来部门内部知识库建设的一个Timeline: - 2011年中旬,我所在产品线私下在一台PC上建立了基于MediaWiki的知识库。 - 2011年末产品线在部门内部做了有关知识库与知识管理实践的分享。 - 2012年初,部门在新采购的高性能服务器上建立基于MediaWiki的知识库,并指定专人负责;我们产品线将已经积累的内容迁移到了部门知识库中,这 也标志着部门知识库1.0版本正式上线。知识管理的策划和推广事宜也交由专门的子部门负责。 - 2012年中,设立子部门KM负责人,设立子部门KM定期工作会,设立子部门技术交流汇报会,旨在各子部门之间分享最新信息,减少重复劳动,提高效率。 - 2012年末,启动知识库2.0建设方案。 - 2013年3月末,知识库2.0版本上线。邀请专业设计人员策划和实现了全新主页,提高了UE;重新策划了分类;重新划分了知识版块,专人负责更新;增加 了知识达人等多个激励内部童鞋分享知识的手段和方法;通过piwik统计和分析知识库的最新访问动态;通过一些实用的插件来简化Wiki Page编写工作、更好地展示内容;提炼高质量知识文章,形成知识周刊、月刊,作为内部知识库营销推广手段,吸引大家来到知识库,并尝试留下自己的知识。 ...
与在Solaris系统上不同,Linux的libc库中包含了libiconv库中函数的定义,因此在Linux上使用libiconv库相关函数,编译时是不需要显式-liconv的。但最近我的一位同事在某redhat enterprise server 5.6机器上编译程序时却遇到了找不到iconv库函数符号的链接问题,到底是怎样一回事呢?这里分享一下问题查找过程。 一、现场重现 这里借用一下这位同事的测试程序以及那台机器,重现一下问题过程: /*test.c */ ...
俄罗斯OOO Program Verification Systems公司用自己的静态源码分析产品PVS-Studio对一些知名的C/C++开源项目,诸如Apache Http Server、Chromium、Clang、CMake、MySQL等的源码进行了分析,找出了100个典型的Bugs。个人觉得这份列表对C/C++ 程序员有一定参考意义。与其说事后用静态工具分析,倒不如在编码时就提高自知自觉,避免这份列表上的错误发生在你的代码中,因此这里将部分摘录一些Bugs(Bug编号这里不连续,为的是对应原文的编号)并做简要说明。原文将这份Bug列表分为了几类,这里也将沿用这个思路。 ...