Web Analytics

为阻塞型函数调用添加超时机制

我们产品中的一个子模块在进行Oracle实时数据库查询时,常常因数据库性能波动或异常而被阻塞在OCI API的调用上,为此我们付出了“惨痛”的代价。说来说去还是我们的程序设计的不够完善,在此类阻塞型函数调用方面缺少微小粒度的超时机制。 ...

October 25, 2013 · 6 min · Tony Bai

关于编程语言学习的一些体会

Learn at least one new language every year. — Andy Hunt and Dave Thomas 自己一直是“每年学习一门新语言”的忠实拥趸,曾先后认真地学习了Haskell、Common Lisp、Python、Go等语言,对Prolog、Scala、Erlang、Lua、PHP也有一定了解。但几年下来,只有Python一门语言算 是真正被留在我的大脑里,用在了工作中。其他那几门语言留下来的只是一些思想了。这似乎符合了Andy Hunt和Dave Thomas在《程序员修炼之道》中对于这一实践目的的阐述:“学会用多种方式解决问题,扩展我们的视野,避免思路僵化和停滞不前”^_^。 ...

October 22, 2013 · 4 min · Tony Bai

当Bug A遇到Bug B

2002年的Bug A与2008年的Bug B同时穿越到2013年,并在某个场合相遇了。 上周六,项目组本应以一个愉快的心情结束一天的工作的,但一个2002年的Bug A与另外一个2008年的Bug B同时穿越时空来到了2013年,并且恰恰在那时那刻(下班前)相遇了,于是项目组由放松变成了忙碌,由愉快变成了紧张,17:30的下班点也因此延迟到了凌晨1:30。 ...

October 14, 2013 · 2 min · Tony Bai

爱上跑步

生命在于运动。 – 伏尔泰 我无论如何都没有想到自己居然爱上了跑步。 * 缘起 这要追溯到2011年,当时的我感觉自己的身体状况十分不好,各种疲劳感和不适感统统找了上来,精力也严重不足,于是乎给自己开了副药方 – 晨跑, 期望通过锻炼身体恢复身体各个部分的机能。我坚持跑了一个多月,效果甚好:精力充沛,心情舒畅,工作效率显著提高。不过随着天气转冷,懒惰占了上风,而这 次懈怠居然持续了一年多,直到今年年初那场肺炎才再次让我警醒。挂了半个月的点滴才把肺炎治愈,我于是乎痛定思痛,下定决心一定要把运动坚持下去,不能再 半途而废了。 ...

October 9, 2013 · 4 min · Tony Bai

程序 – 程序员的avatar

程序是什么? 大师们曾给过这样的诠释: 程序 = 数据 + 指令 程序 = 数据结构 + 算法 对此我也表示十分认同。但感觉这些观点更多是从机器运行模型或逻辑抽象的角度看待程序的,是左脑的产物。我的右脑告诉我:程序是程序员的avatar(化身)。这个隐喻式的诠释会让“程序”更有温度,并有些许人性的色彩。 ...

October 8, 2013 · 4 min · Tony Bai

站在更高的平台上

中秋休假期间,在PPS上看了最新一集的龙珠Z剧场版“龙珠Z:神与神”。《七龙珠》是我最喜欢的一部日本漫画,年少时曾为之疯狂过。其对应的动画片《龙珠》以及《龙珠Z》我也是集集不落的,这部“龙珠Z:神与神”延续了龙珠Z的精彩。 片中主人公孙悟空与破坏神比鲁斯有过两次交手。第一次在界王星上,变身为超级塞亚人3的孙悟空被破坏神几乎“秒杀”;第二次是为了保护地球,孙悟空在悟饭、悟天、贝吉塔、特兰克斯的帮助下变身为超级塞亚人之神,这才有了与破坏神周旋的战力。由于超级塞亚人之神的变身时间有限,在经过激烈的战斗后,孙悟空变回了普通的塞亚人。不过同样是塞亚人,战斗前后的悟空却大不一样:变回普通塞亚人的悟空在关键时刻,在不借助其他塞亚人帮助的情况下,可凭借一己之力变身为超级塞亚人之神,并继续拥有与破坏神分庭抗礼的战力。按照片中破坏神战后的分析:“因为拥有天才格斗感的悟空体验到了作为超级赛亚人之神的世界,所以将其吸收融入了身体”。也就是说孙悟空已经感受到了神的境界,这是孙悟空之前无论通过多长时间,多么严酷的训练都无法达到的境界。而一旦让悟空感受到了这个境界,他的战力就会迅速提高到这个境界。 ...

September 24, 2013 · 4 min · Tony Bai

结婚五周年纪念

今天是一个特别值得纪念的日子 – 我和老婆的结婚五周年纪念日。五年前的今天我和老婆领了证,正式步入了围城。平时总被她抱怨不浪漫的我这次特意准备了一对黄金玫瑰耳钉作为我们“木婚” (结婚五年)纪念日的礼物。老婆也蛮喜欢,我也甚是Happy(以前LP总是不中意我给她买的礼物)。 ...

September 9, 2013 · 3 min · Tony Bai

把所有东西都放入版本控制系统

本文翻译自Dr. Dobb’s杂志主编Andrew Binstock的"Putting Absolutely Everything in Version Control“一文。 持续交付(Continuous Delivery)的一个关键原则就是将所有东西都放入版本控制系统中。这解决了一些重大问题,但也引入了一些其他问题。 ...

September 4, 2013 · 4 min · Tony Bai

我的工作原则2

自我认知是循序渐进的,体会到了,就想将其整理出来,给自己一个交代。 - Tony Bai 关于我的工作原则,感觉之前的那篇总结的还不够,这两天通过观察自己的所言所行,又有了些思绪,这里记录下来。 * 重塑标准 简单来说就是根据组织实际情况,重新建立各种标准 – 技术标准、人员标准和产品标准。 个人认为这恰是一种实事求是的积极态度。避免陷入技术泥潭中无法自拔,不用Google的人才和做事标准来要求组织内部的人和招聘新人上,认识到存在的差 距。恰如当年钱学森根据国内人力、物力以及实际技术水准重新制定了标准,而不是照搬美国的标准,否则造导弹就会变成一个不可能完成的任务,对团队 士气也将会是一个极大的打击。 ...

September 3, 2013 · 2 min · Tony Bai

利用ZooKeeper服务实现分布式系统的配置数据同步

很多时候,一旦习惯了某些事情,也就习惯了它们的恶劣,习惯了它们的丑陋,习惯了它们“赋予”你的各种痛苦。 – Tony Bai 一、痼疾难解 曾几何时,在那个还没有集群化,没有分布式的时代,它还是一个不错的方案,至少在线上没有暴露出太多问题,它也不在我们关注的重点范围之内。但随 着集群化、分布式的新版本的到来,那一大坨遗留的代码就变得格外让人不顺眼,同时问题也随之在线上暴露开来了。 ...

August 28, 2013 · 9 min · Tony Bai