Web Analytics

Adapter模式的C实现

Adapter(适配器)模式是《Design Pattern》一书中结构类模式集中的第一个模式,也是一个真正被我的同事在产品代码中应用的模式。 Adapter模式也是一个相对容易理解的模式,多数书籍和网络资料在描述这个模式时都使用了一个与电源适配器有关的例子,说不定Adapter模式还真的是源于对电源适配器的再思考和挖掘呢。 ...

March 5, 2012 · 3 min · Tony Bai

Blog新起点 – 从BlogBus搬家到WordPress

今天着实是一个值得纪念的日子,因为我终于完成了从BlogBus到WordPress的搬家工作,从此我的Blog将站在一个新的起点上。 自从2004年开博以来,我坚持了七年多,至今仍孜孜不倦,写博客已经成为我的生活中不可或缺的一部分,即使在微博等大行其道的今天,我亦然如此。作出搬家的决定显然是十分痛苦的,因为要抛弃已经建立起来的使用习惯以及Blog人气(包括搜索引擎索引、外部引用的等)是十分艰难的。但我还是决定搬家,更多是因为我的一个小小的梦想:拥有一个自己可以完全控制的独立域名的个人站点。 tonybai.com这个顶级域名是在2010年申请的,2010年末曾经尝试过一次搬家,但因技术原因最终没能实现。但鉴于BlogBus提供的服务愈发地不稳定,我又动了搬家的念头,而且有了上次失败的教训,这次我做好了充足的资料和技术准备。但即使如此,搬家过程依旧很辛苦,并且足足花了我一周多的业余时间,下面就来罗嗦一下搬家的过程。 ...

February 29, 2012 · 6 min · Tony Bai

为buildc添加安装包制作相关功能

在"也谈C应用安装包制作与部署“一文中,我提到了为每一个源码工程建立单独的安装包制作工程(setup project)的想法,这两天我就一直在折腾这件事儿^_^。 最初我并没有想去搞一个通用的安装包制作工具,只是为一个现有的源码工程建立了一个试验性质的安装包工程,并实现了其构建脚本(build.py)。但之后考虑到各个项目都要建立一个对应的安装包工程,安装包工程的构建脚本build.py势必会沦落成被copy来copy去的下场,这显然不是一个很好的解决问题的办法。那是否需要再单独设计和实现一个安装包制作工具呢?工具多了,大家用起来肯定会很烦,不能自找没趣^_^。要知道为程序员编写工具可是一件很困难、很头疼,需要你很谨慎的事情。现在我们已经有了源码工程构建工具buildc,我前几天还为buildc添加了安装脚本,并用之改造了一个真实的工程,并给大家做了讲解,可以说大家对buildc算是接受了。 ...

February 10, 2012 · 4 min · Tony Bai

为buildc添加setup脚本

buildc在发布0.1.0版时并没有做好安装脚本,当时的建议是直接下载0.1.0的源码包或svn export/checkout源码包,并手工将buildc目录位置加入到用户的PATH环境变量中。近期buildc计划正式投入到项目中使用,为了方便大家安装以及以后的统一升级维护,我花了些时间给buildc加上了setup脚本。 Python有标准的程序分发方案,不过我对这些了解不多。buildc本身很简单,我觉得没有必要把安装做得很复杂,所以就自己动手编写了一个setup.py,不到100行,用于安装buildc。 Python的标准安装脚本也叫setup.py,我这里也借鉴了这个名字。有了setup.py,buildc的安装就简单多了: * 下载buildc Release包(当前最新是buildc-0.1.1) * 解压发布包,在发布包路径下,执行setup.py install [–prefix=YOUR_INSTALL_PATH] ...

February 7, 2012 · 3 min · Tony Bai

也谈C应用安装包制作与部署

虽然部门一直在做C应用,但这么多年来,在C应用的安装包制作以及部署方面做得还是很初级,可以说还没有达到规范的程度。各个产品线的C应用安装包种类多样,水平参差不齐:有些产品的源码包即是安装包,把源码包拿到生产环境下编译后使用;有的项目则将编译好的目标文件(.o)以及第三方库放在安装包中,在生产环境下重新链接生成可执行文件;有的组则稍微专业一些,安装包中放的是编译好的可执行文件,但在目标主机上安装和执行时也都遇到了一些问题,诸如运行环境中的第三方库版本号与程序所依赖的不一致等。 去年年底,我就将"C应用安装包制作和部署"的改进作为今年的一个工作重点。这两天我粗略地考量了一下这方面的内容,这里也简单地谈谈。 ...

February 1, 2012 · 4 min · Tony Bai

谋划2012

对于我这个上班族来说,这假期真的不能太长,否则就适得其反了:不但不会得到很好的休息,反而感觉更累了。也许很多朋友和我有同样的感受^_^。这不,这个春节在家待得就比较"闹心",特别是后几天,想上班的冲动那叫一个此起彼伏啊,终于今天如愿了^_^。 ...

January 29, 2012 · 6 min · Tony Bai

2012·果果给您拜年了

2012,是农历龙年,也是中华民族的本命年。龙,是我们民族的图腾,大家对龙都是有着特殊的情感的,比如壬辰年的生辰龙票就特别抢手。 龙年了,果果也长大了,越来越像女孩儿了,呵呵(因头发短,常被人误认为是男孩儿),下面是果果近期的一些写真^_^,请您欣赏: ...

January 23, 2012 · 1 min · Tony Bai

也谈C语言应用构建

构建是软件开发过程中最常见的活动之一,也是很容易被忽视的环节。规范以及高效的构建对软件开发过程而言是大有裨益的。C语言并非一门年轻的语言,其历史已甚为悠久了(相对于还年轻的IT领域^_^)。从C语言诞生以来,市面上存在的C语言应用何止千千万万。这些C应用的源码组织形式种类万千,从最简单的单个源文件,到复杂的诸如Apache httpd server这样庞大的Project。不过无论这些C应用的源码组织形态如何,构建都是这些应用开发过程中必不可少的一步。 ...

January 17, 2012 · 8 min · Tony Bai

2011·工作中的成长

每至年关,回首一年工作中的成长,便有一种充实和幸福的感觉。 2011年我在工作中的成长可概括为如下几点: 1、建立并围绕原则为中心开展工作 现在想来,以前的工作有些盲从,心中没有原则,自然也就没有主线,也许这与当初的职位角色有关。2011年职位提升了,思维方式也有所了转变。我花了更多的时间对当前的工作进行考量,而且考量的过程不是过去那种仅仅从项目组或产品线的角度,而是尽量上升到组织的角度,并针对当前工作建立起一系列原则,这些原则成为了我在工作中决策的基本出发点。以这些原则为基础,安排自己与他人的工作就有了着力点,一切显得十分自然合理。 ...

January 12, 2012 · 2 min · Tony Bai

关于组织内部建立良性提议反馈机制的一些考量

近期完成了与组员的年终绩效面谈,收集上来一些意见和建议,其中有一些涉及到部门对大家反馈的意见和建议处理不妥的情况,对此我也做了认真的考量,于是就有了这篇短文。 ...

January 6, 2012 · 4 min · Tony Bai