Web Analytics

也谈共享库

近两天一直在考量产品安装包改进的事宜。说实话,我们的安装包做得不够"专业",不仅没有按照各个平台的标准安装包形式(比如redhat的rpm,debian的deb或solaris上的pkg包)制作,而且安装包在生产环境中还需要再进行一次链接才能得到最终的可执行程序。这样一来,每次制作安装包都很费时费力(虽然有自动打包脚本),安装包的"体积"也很是庞大,因为包中要包含所有.o目标文件和一部分自有库以及第三方库的.a文件。 ...

December 13, 2010 · 7 min · Tony Bai

别为代码的"Bad Smell"提供土壤

上周初参加了一次代码评审,评审时发现一位同事在自己负责的子模块代码里定义了一个私用宏,“重复"这个Bad Smell立马在我头脑中闪现。当时我给出了一个建议:检查一下这个宏定义的必要性,依次检查一下C运行库头文件中是否已经有了同功用宏定义,基础库头文件中是否已经有了同功用宏定义,业务层代码的共用头文件中是否已经有了同功用宏定义。 ...

December 6, 2010 · 2 min · Tony Bai

在TeX文档中插入源代码

近期有了在TeX文档中插入源代码的需要。TeX的\verbatim可以帮助你保留输入text的原始格式,但用于输入源代码还是显得不够专业。Google了一下发现TeX中支持插入源代码的包也有不少,如LGrind、Listings等。LGrind似乎没有包含在TeX Live的默认安装包中,用apt-get尝试安装LGrind,发现居然要占用近200M的空间,遂放弃之,最后我选择了Listings宏包。 Listings宏包短小而强大,其典型应用方式如下: ...

December 1, 2010 · 3 min · Tony Bai

尝试博客搬家

早在若干年前就有朋友建议我搭建一个独立博客,可当时的我觉得blogbus提供的服务很不错,自己没有必要去折腾,费钱又费力,所以我选择了继续留在blogbus。 这两年blogbus服务一直在不断的提高,自己也一直很欣赏blogbus的简单、清新、无广告的风格,大巴后台管理中心的功能也变得越来越强大了。不过这期间blogbus也出现过几次较为严重的故障,导致长时间的无法提供服务。上周blogbus再次出现文件服务器故障,导致上传的图片不能正常显示。这次我做了另外一个选择:尝试搬家。之所以称为“尝试搬家”,是因为搬家可能成功,也可能失败。 ...

November 30, 2010 · 3 min · Tony Bai

给assert加上返回值,不给力!

众所周知,assert是程序调试阶段的一柄利器,可以帮助程序员快速的定位代码问题。但一般来说当程序部署到生产环境的时候,我们会选择关闭assert。不过由于历史原因,我们运行在生产环境下的程序中的assert依旧发挥着作用,这样一把双刃剑就悬在了我们头上。 ...

November 24, 2010 · 3 min · Tony Bai

有选择的保留遗留“惯例”

在工作中,我们常常会听到这样的声音:“原来的系统就是这么做的!”。 没错儿,在工作中我们潜移默化地受到了遗留系统的一些设计和实现的“惯例”的影响,另外天生携带的懒惰基因使我们很少去思考和判断这些惯例的正确性和保留的必要性。但事实上,我们确应该经常重新审视这些遗留的“惯例”,有选择的保留,并敢于放弃。 ...

November 15, 2010 · 4 min · Tony Bai

《Programming in Haskell》中文版翻译项目

“A language that doesn’t affect the way you think about programming, is not worth knowing”. — Alan Perlis(ACM 第一任主席,图灵奖得主,1922-1990) 《程序员修炼之道》这本书建议程序员每年应至少学习一门新的语言,以拓宽思维,避免墨守成规。今年我选择了函数式编程语言Haskell。选择Haskell的理由正如Alan Perlis所说的那样,Haskell是一门可以影响程序员编程思维的语言,我也期望通过学习Haskell来拓宽我的思维。 ...

November 14, 2010 · 3 min · Tony Bai

一个制作朴素幻灯片的TeX模板

自从有了For book的中文TeX模板后,我对TeX的热情便"继续"一发而不可收拾^_^。上周原本计划为内部的一个交流准备一个PPT,但在开始构思之前却突然想到:是否可以使用TeX完成幻灯片制作呢?Google了一下,果然有成熟解决方案-使用BEAMER。 有了TeX基础后,学习使用Beamer构建幻灯片就显得容易了许多,用TeX创建幻灯片文档与编写普通文档差别并不大。TeX制作的幻灯片文档也是由三个部分组成:文档类声明、Preamble区和正文区。 文档类声明中的选项为beamer,表示我们要创建幻灯片文档。 \documentclass{beamer} % 文档类声明 Preamble区甚至可以复用普通TeX文档中的那些设置,这里不再赘述^_^。 ...

November 8, 2010 · 2 min · Tony Bai

一个基于XeTeX和xeCJK的TeX模板

与"Hello World"作为编程入门时迈出的第一步相似,"Hello TeX“也只是学习博大精深的TeX的一块儿敲门砖,离真正的实用还差的远。 两周前开始体验TeX,直到今天才东拼西凑地倒腾出一个够自己使用的且相对实用的基于XeTeX和xeCJK的小模板。这里分享一下,希望能给大家带来一些帮助,同时对自己也算作是一个备忘。关于TeX网上资料很多,这个模板里的东西也都是参考和融会各种资料并试验后总结而成的。如果你是TeX方面的高手,大可不必理会下面内容^_^。 ...

November 2, 2010 · 4 min · Tony Bai

lcut增加对mock的支持

记得恰好是在一个月前的今天,我发布了lcut(轻量级C语言单元测试框架)0.1.0版本 。由于发布仓促,文档没能及时跟上。在stackoverflow的一个关于单元测试的帖子 上,一位叫Craig McQueen的朋友也给出了建议:“Some documentation would be helpful. Project background and goals, a features list, advantages over existing alternatives, etc would be helpful for people who are checking it out for the first time.” 看完这个建议后心里那个汗啊!不过一想到用E文编写文档心里就有些打怵。就这样在这一个月里文档依旧没有改观:(。不过,lcut本身还是有一些进步的,这两天一直规划着为lcut增加mock的支持,今天终于将这个功能加进了lcut,并发布了lcut-0.2.0-beta版,欢迎大家试用,并提出意见和建议。 ...

October 29, 2010 · 3 min · Tony Bai