Web Analytics

新速腾提车与第一次上路

一直以来我都不是特别喜欢开车,因为平时喜欢思考,每天坐在公司的班车上可以有大把的思考时间,另外在高速行驶的车上,感觉思维也变得更加"敏捷",但如果自己开车,这一切就不复存在了,因为你要集中精力应付马路上那绵长的"车水马龙",还要躲避"玩命"穿马路的行人以及像我这样的新手开的新车^_^。 ...

May 25, 2012 · 5 min · Tony Bai

勇于面对

刚刚过去的这一周搞得我十分疲惫,起因是岳母生病了。 果果自出生以来一直是岳母照顾,这个五一岳母将果果带回老家待了一周,也许是太过操劳导致旧病复发(腰椎肩盘轻微突出),无法坚持照顾果果了。可这段时间 又恰逢我和我LP都很忙碌,但无奈身边没有亲戚,只能我请假待果果(LP那里集团领导检查,实在无法脱身),还要照顾生病的岳母。本以为病两三天就能好 转,但观察两天后仍不见好转,于是我只能将母亲大人请来照顾果果,好抽身上班。万没想到,我母亲刚来一天多,居然也生病了,估计是上火所致(母亲大人十分 易上火,尤其是出远门)。于是乎又将母亲送回家里,这一顿折腾啊,转眼间5天过去了,终于盼到了周末,老婆也休息了,疲惫的我也可以缓缓了。 ...

May 21, 2012 · 3 min · Tony Bai

使用ssh通过http代理访问bitbucket

在很多公司内部,要想访问外部互联网都需要设置代理,我所在公司也是这样,有些时候这种限制真的可以让人骂娘。不过经过几年与代理的"斗争"后,大部分需 要访问外部网络的软件(比如subversion、apt-get、git、wgetc、filezilla等)经过设置后还都可以正常工作。不过前些日 子在折腾bitbucket上的源码库时又遇到了代理问题:无论通过https方式还是ssh方式都无法clone bitbucket上的git库。 ...

May 9, 2012 · 3 min · Tony Bai

翻译《七周七语言》的那些事儿

今天在互动出版网看到《七周七语言:理解多种编程范型》一书已经开卖了。看到自己参与翻译的第一本书出版了,心中还是很愉悦的,因为自己的辛苦付出终于有了结果。 一、缘起 能够参与到这本书的翻译完全是机缘巧合。记得2011年初我启动了一个《Programming in Haskell》的公共翻译项目,可是由于欠缺版权的考虑,中途不得不终止了该书的翻译。当时经dreamhead介绍联系到图灵的刘江总编,希望人邮能 引进版权以促成该书的翻译,但刘总编考虑到该书是有关Haskell这门"小众"语言的,引进后受众面小,书很可能卖不出去,商业价值不高(后得知该书作 者Graham Hutton博士已经在与某出版社谈中文版版权的事宜了,并已经委托其一位同事进行中文版的翻译工作了)。不过刘总编说图灵当时已经引进了《Seven Languages in Seven Weeks》一书的中文版权,但第一译者戴玮因工作学习繁忙,可能无法按期完成全部翻译,问我是否愿意参与翻译。我的最初目标就是翻译一本英文技术书籍, 有这样的机会,而且书还可以在国内出版,于是我就欣然接下了这个翻译工作。 ...

May 8, 2012 · 5 min · Tony Bai

也谈技术布道 – 影响因素及有效实践

昨天中午收到图灵出版的《布道之道 – 引领团队拥抱技术创新》一书,晚上就迫不及待地翻看开来。这是我读过的第一本有关推动组织内部技术变更/创新实践方面的书,感觉书作者对受众的分类很是准 确到位,很多布道技巧也十分值得借鉴。但就我个人多年来的体验来看,组织内部技术布道的结果,不仅仅与受众的类型有关,还与布道者自身的资历、所担任的角 色、组织内部的文化和环境、布道路线以及布道时机和对象的选择有一定关系。下面就是我在这方面的一些粗略心得。 ...

April 24, 2012 · 6 min · Tony Bai

buildc 0.1.7版本发布

最近针对buildc又有了一些新想法,于是今天上午又对buildc进行了多处修改,并相继发布了0.1.6版本和0.1.7版本。 * 对buildc cache upgrade的实现进行了修改。 在执行全量更新本地cache前,先对本地cache的情况进行一些检查,并判断是否与当前.buildc.rc中的配置相符。如果两者是一致的,那么只进行update操作;否则则执行真正的upgrade(remove and re-init)。 ...

April 19, 2012 · 3 min · Tony Bai

一场关于“何时发布版本”的论战

气氛太平静,投石起波澜。 昨天下午无意中在内部发起了一场关于"何时发布版本"的论战。 论战的背景是这样的:部门内部有这样的一个项目A,它的目标是开发出可被其他项目或产品复用的组件(这里就暂称之为组件吧,我们内部称这类组件为可复用资产)。这个项目已经开发了大半年了,目前处于收尾阶段,绝大部分开发工作已经完成。测试(包括压力测试等)已经测试过至少一轮了;我们的产品线近期准备复用项目A成产出的这些组件,我们希望得到这些组件的某个发布版本。 ...

April 17, 2012 · 5 min · Tony Bai

buildc 0.1.5版本发布

这两天对buildc的改动比较频繁,今天又修正了一些问题,也增加了一些小功能。主要包括这么几点: 1、在Make.rules.in中增加了STATIC_LIBS和DYNAMIC_LIBS 项目源代码和项目中单元测试代码使用同一个Make.rules,也此编译时也就共享同一个LIBS变量。对于静态共享库还好说,但对于动态共享库,诸如Oracle的instantclient库,单元测试代码中即使没有使用到动态共享库中的接口,也要对该动态共享库产生一个依赖。这样在执行单元测试用例时就会因无法寻得动态共享库而导致用例执行失败。 为此,我在Make.rules.in中增加了STATIC_LIBS和DYNAMIC_LIBS两个变量,即将原LIBS变量中的静态共享库和动态共享库分开,分别放入STATIC_LIBS和DYNAMIC_LIBS中。然后让项目中单元测试代码的编译只依赖STATIC_LIBS,上述问题就得到了解决(如果你的单元测试真实需要链接动态共享库,那就另当别论了)。 ...

April 13, 2012 · 3 min · Tony Bai

buildc 0.1.4版本发布

年后buildc开始逐渐在产品线的项目里应用了,随之而来的是大家反馈的各种意见和bug。尤其是bug,我都会很认真地应对,也会及时发布相应的版本修复这些bug。buildc 0.1.4版本就是一个bugfix版本,其修复的bug源于今天上午的一次持续集成的失败。 上午收到Jenkins发送的一个"build failed"的mail,一个安装包项目的CI job执行失败了,于是到Jenkins web页面上检查错误原因。这个Job会在两个slave node上执行集成,一个在x86 linux上,一个在x86 solaris上。这次失败是因为x86 linux上的一个配置问题导致的,页面显示x86 solaris那个节点的集成是成功的。我无意间查看了x86 solaris节点集成过程的命令行输出,发现如下内容: ...

April 12, 2012 · 3 min · Tony Bai

关于编译阶段符号多重定义的问题

印象中关于编译以及链接的问题早已是老生常谈了。但今天又遇到了一个这样的问题,这里还总想提及一下下^_^。 这次要说的问题依旧发生在使用lcut进行单元测试的过程中。一位同事在编译使用了mock函数的测试用例代码时出现了"multiple definition of ‘xxx’“的错误。这里简单模拟其场景如下: ...

April 11, 2012 · 3 min · Tony Bai