| Andy's profileAndyPhotosBlogLists | Help |
Andy要有遵从你的内心和直觉的勇气,它们可能已经知道你其实想成为什么样的人。 |
||||
|
10/22/2008 搬家在space上记录了好几年,现终于决定搬了,因为找到一个更好的容身之处。 俺的新家: http://blog.huzhenbo.name。 如此,我的大部分东西都在google上了,就这样被一步步套牢。希望google千万别倒。 有些东西还是会在这里分享,毕竟很多朋友不会用rss订阅。 10/20/2008 Leary's Rose Leary's Rose is a model to map the relationship between people.
![]() For example:
people's_instinctive_reaction => { :competitive => :withdraw, :aggressive => :defiant },
what_should_be => { :competitive => :leading, :aggressive => :helping}. Frustrated = Growing Up You feel frustrated after you spent 1 whole day solving a problem but still no clue yet.
You feel frustrated after you spent months to practice your skills but seems no change happened at all.
So, you give up....
But someone continues. When they look back after several years, the frustrated period is just the period of growth. Love being frustrated! 10/19/2008 Assumptions Kill You You want to open the window in the office when the hot air makes you uncomfortable, but at last you give up because you assumes others don't like it.
You feel nervous when you give the presentation, because you assumes the audiences have no interest on your talk.
You miss a relationship with love, because you assumes she doesn't have any feeling about you.
These assumptions kill you! Be assertive, you life will be completely different. 10/15/2008 Start English 以后写博客,都要写上对应的英文。以锻炼一下自己的英文写作能力,因为目前的水平实在‘可特纳’。
In order to practice English, I will write a corresponding English version for each Chinese blog from now on. 10/6/2008 8日奔波 回头一瞥残旧的北京火车站大楼,回来了,回来了,我又回到北京了。
当决定回杭州的时候,没有如五月第一次回去时那么兴奋。已经习惯了北京,在这边朋友渐多,而且有几个可以交心的兄弟。回去,更多地只是为了满足一下陪伴父母的心愿。子曰:“今之孝者,是谓能养;至于犬马,皆能有养;不敬,何以别乎?”子又曰:“色难。有事,弟子服其劳;有酒食,先生馔,曾是以为孝乎?”对于父母,我欠他们的太多,不能再给他们增加烦恼。
但一回去,却不能安分地守在父母旁边,整日飘荡在外。见不完的朋友,喝不完的酒。松仔这么多年兄弟,第一次带着他老婆来我家玩。可怜他认错路足足多开了两个小时,我也是等得郁闷。
家庭成员又多了一个,长得甚是可爱。从小粘在一起的两兄弟,他已是成家立业的人了。半年不见的小孩们都已经抱不动了。家人老是旁敲侧击,我干脆直说,再等5年吧。家里小孩有5个了,人口膨胀得厉害。但爷爷又老了,以前总觉得他很强壮。我想陪老人,但不喜欢他们唠叨,去看了爷爷5分钟就走了,外婆也是。妈又一次告诫我:“外婆已似客”。突然心里一阵难过。
每次回去都有遗憾,遗憾时间不够,不能好好陪陪家人,玩得也不够尽兴。杭州还是一样的美,虽没有太多长进,但西湖夜景绝对甲天下,北京这种破地方无法比。但杭州的交通堵塞得不行,地铁快快造吧。
回到北京了,但希望过些时日不要再回北京,永居杭州。 9/12/2008 Starwood footprint Project:starwood
Time period:April - 12th Sep
Team members:
SVN info:
revision: 4161 (start from nearly 1800 on April for Chinese team)
Rake stats:
+----------------------+-------+-------+---------+---------+-----+-------+
| Name | Lines | LOC | Classes | Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+-----+-------+ | Total | 25806 | 21376 | 145 | 1243 | 8 | 4.5 | +----------------------+-------+-------+---------+---------+-----+-------+ Code LOC: 8602 Test LOC: 12774 Code to Test Ratio: 1:1.5 Next station:
E&P
9/6/2008 Composed Method and SLAP Composed Method mandates that all public methods read like an outline of the steps to perform. The actual steps are implemented as private methods. Composed method is a way of factoring your code to keep it cohesive and make it easier to spot candidates for code reuse. And TDD predisposes composed method.
SLAP insists that all your code within a method live at the same level of abstraction. In other words, you shouldn’t have a method in which part of it deals with low-level database connectivity, another part with high-level business code, and another with web service plumbing.
-------- <The Productive Programmer>
9/2/2008 快跑离别总是带着一点忧伤。当临近十月,starwood team面临“分崩离析”时,项目组内貌似没有以前那么多笑声了,可能大家都感到离别为时不远,心里都有些许伤感吧。大大说,这是他呆过最开心的一个team,对我来说,也是。每天早上来到公司,看到坐着的一个个堆着笑脸的兄弟姐妹,心情一下子好了许多。在相依为命的几个月中,每个成员都从陌生走向了了解,并在这个过程中建立了深深的友谊。其中有快乐,也有争吵;有感激,也有埋怨;有理解,也有误解。但我觉得,正是争吵让快乐更加持久,正是埋怨让感激更加真诚,正是误解让理解更加可贵。在这个过程中,我们之间从试探走到了信任。 我不愿看到离别,有时候会想,真走的那天会不会留下一滴眼泪。可能吧。但人生充满了离别,正是离别让我们有机会认识更多,见识更多,学习更多。离别带来的新环境是逼迫我们前进的重要力量。 在迎接新环境前,我只想对下面每个人说一声谢谢。 为项目无私付出的PM李总,也是对我们的生活无微不至照顾的亲切大姐,英文口头禅“you know”,中文口头禅“我觉得就是说”,典型工作狂,且带有电脑虐待症; 最勤奋的桑哥,项目的活字典,从小养成了早睡早起的好习惯,六点不到来公司,却发现没带钥匙,在门口足等3个小时; 把代码当成艺术品把玩的郑大大,同时也是对我关照最多的大哥,生活中打打闹闹,甚至互相鄙视,但坐在电脑前,我只能好好表现,每次跟他pair都有无形的压力,但每次都受益匪浅,带给项目的欢声笑语,让我感动,也从未忘记刚进公司时对我的开导; 聪明未“绝顶”,个性但耐心的tech lead gigix,让我见识了什么叫做出神入化,什么叫做好快的键,什么叫做畅快淋漓,他对问题的独到且精辟的看法总让我惊叹,希望通过我的努力学习,以后不用再有那么多“豁然开朗”; 沉稳扎实、直率坦诚、博学多才的广涛,也是无所不聊的好兄弟,从天文到地理,从远古到未来,从科学到哲理,从生存到人性,他一直为项目默默奉献,从无怨言,期待下一次一起出去远行,再聊个够; 满嘴京片子,为人爽快的高,一直觉得他身上有种让我很欣赏的东西,虽然直到现在我还不能言明; 莫西干、欧几里德快跑跑的小熊川子,边写story,边带着忧郁眼神,偶尔嘴巴还德尔不的的不知讲些什么,但看似是个游手好闲之子,却是个熟读四书五经,通读二十四史的文艺小青年; 最后是无敌可爱,眼神魅惑的那小猪,跟我世仇未了,又添新恨,每天被她无数次用三个字“烦不烦”无情打击,让我明白什么叫做坚强无比的韧性,在一次直言她的爆炸头让她看起来像个小矮墩胖瓷娃之后就用一根橡皮筋紧紧地拴着她的小扫把,希望下次不用再对我说“烦不烦”。 好了,到此为止。 8/27/2008 YAGNIYAGNI stands for “You Ain’t Gonna Need It.” It is the battle cry of agile project development to help prevent speculative development. 预想开发是个迷人的陷阱,在编码时时刻提醒自己:它究竟是会让代码变得更好,还是平添复杂度?出自预想的框架,如EJB和JSF,都是过度工程的典范。最好的框架是从可工作的应用程序中抽离出来的,比如ROR,它的累赘是如此之少。 软件开发人员应保持与用户或者Business Analyst之间通畅的交流。大部分时候,用户和业务分析师对于软件功能有自己的想法,我们应该尽量抓住这些功能的核心和本质,然后看看有没有更简单的解决方案。如果没有通畅的沟通渠道,贪婪的用户和沉默的软件开发人员之间就会重蹈“大船瓦沙”的覆辙。记住,软件开发首先是一场沟通的游戏。 ------- 《The Productive Programmer》 8/25/2008 Secret Of Training 昨天参加培训时,有一个环节两个同事扮演了一个小游戏:一个同事向另一个欠钱的同事要求还钱。这是一个练习如何果敢地说出自己要求的游戏,虽然一切都是假的,但明显地感觉到“讨钱的人”着实有点紧张。我说:“这对中国人来说是一件为难的事情”。老师说:“不仅仅对中国人,其他地方的人也一样”。想到平时遇到此事时的窘境,我就向老师提出能不能表演一下她在遇到此事时是怎么做的,好让我们学习学习。老师当即说道:“我没法演示给你们怎么去做一件事情,我只能提供一个环境让你们自己去感受。”这时,边上的同事说道:“Secret of training.”
就如上一篇博客讲的,没有经过亲身体验、亲自practice,我们永远无法真正理解一件事情。
总体来说,昨天的老师水平还不错,毕竟有25年training的经验。但感觉跟ThoughtWorks University或者ThoughtWorks Immersion的培训师比较,差得挺远,特别是在调动气氛方面(突然相信这些课程培训开始对外服务之后,肯定会大受欢迎)。这让我想起在TWI的第一天,面对一大群来自全球各地但是互不相识的陌生同事,着实不知如何开始打交道时,trainer的一个游戏就让我们打消了彼此的顾虑,心理防线在笑声中瞬时融化。刚仔细看了一遍好学的小初同学写的:ThoughtWorks University取经记(发表于程序员杂志),让我顿时回忆起那段开心的日子。 8/24/2008 Respect今天参加了一个培训,training讲解了两部分内容。 第一部分是如何assertive:用中文解释,就是如何才能做到不卑(subassertive)不亢(aggresive),恰到好处地对待人和事,既能勇敢地表达自己的想法,也能让别人感觉到你的尊重。 第二部分是如何给feedback:其实人本身不需要别人告诉你怎么做,任何聪明人只要听到别人的想法就会知道采取怎样的行动;如果你想让别人更好地接受你的意见,就不要自作主张指手画脚,也不需要你告诉别人怎么做,这样只会增加对方的抵触心理。正确的方式是IIU:告诉对方你所看到/听到的(I),告诉对方这么做让你产生的感觉/对你的影响(I),然后听听对方对此事的认识和理解(U)。一般来说,至此以足矣。聪明人知道接下来该怎么做了。 最有意思的是其中的一个practice环节。李总,wpc和我在一个假设的特定situation下给trainer扮演的customer feedback。当阐述到U之后,我们不约而同地等待trainer告诉我们她会采取怎样的行动来弥补她的错失,但trainer扮演的customer毫无动静。然后,我们都沉不住气了:提出了自己的要求(基于愤怒的要求),当然,最终招致了customer的拒绝。当我们都以为理解了其中意思,甚至在看到别人如何在practice中犯错之后,却再次在practice中接连犯错。说明什么?说明我们刚开始就是带着责备的态度和愤怒的心情去“审问”对方,虽然刚开始都follow了正确的方式,但是当我们都没有等待到customer主动的认错时,我们愤怒了。练习到feedback环节时,我们忘了如何assertive,忘记了respect。 自信来自于respect,对别人的尊重为你自己赢得了尊重;正确地give feedback,也先学会respect别人吧,尊重别人才会赢得别人的理解。 期待下一次关于listening和empathy(换位思考)的training。 8/21/2008 多语言编程Java语言创建者当初由于“让Java能够向后兼容如c这样的语言”等原因,给Java语言带来了很多包袱(如数组从0开始,以及令人费解的初始化顺序等)。幸运的是,他们同时也创建了Java平台。如今Java越来越多得被作为平台来使用,这种趋势将会在未来几年中成为主流。
相较于通用语言,Groovy、Ruby这样的动态语言迅速地提升了程序员的生产力;无状态的函数式语言(如Haskell, OCaml, Erlang, SML)让编写线程安全的程序更加容易;DSL让日益困难的问题域得到解决。拥抱多语言编程吧!几年之后,软件开发将大不相同。
-------《The Productive Programmer》 8/17/2008 被激怒的猴子 “我们一直都是这么做的”或者“大家都说它应该是这样的”,都不足以成为一件事之所以该这么做的理由。固守标准跟没有标准一样糟糕,有时候标准反而限制了一些有价值的变通。
很多人在听到“异类”思想的时候,就会像“被激怒的猴子”一样。其实我们应该保持质疑权威、质疑圣牛、质疑自己偏好的习惯。
-------- 《The Productive Programmer》 8/14/2008 Anti Patterns Catalog "Catalog" is a technical term in the PatternCommunity: a list of patterns is called a catalog. This catalog lists AntiPatterns. Dietzler定律和DSLDietzler定律说的是:80% 的客户需求可以很快完成;下一个10% 需要花很大的努力才能完成;而最后的10% 却几乎是不可能完成的,因为你不能把所有的工具和框架都“招致麾下”。
强大的语言加上特定领域元层次提供了目前最好的解决方案。
生产率来自DS L跟问题域的紧密相连;能力来自于表层之下的强大语言。
基于强大语言并且易于表达的DSL将会成为一个新的标准。
------《The Productive Programmer》 8/11/2008 “投机”意识 老袁同志在饭桌上滔滔不绝地介绍着他最近的炒股经验,看来他已经被迷住了,并深深被这种看着自己的财产变成一个数字在那里跳动的刺激所吸引。虽然我比他还要早地被“忽悠”进股市,但是作为“前辈”,他的话确实让我感悟挺深。
在一个相对“与世隔绝”的行业,特别是只热爱编程的同行们,沉浸在程序设计的美妙中,却往往忽视了对自己人生更好的规划和设计。房价再涨,那只是“明天”的事儿;股市再火,那也与我无关。或许偶尔也有冲动想去试试,但犹豫之后,还是觉得开户那事儿太麻烦,不如呆在家里上上网,写写程序吧。就这样,错过了买房的最好时机,错过了牛市中暴发的机会。
其实人生的事儿,比写程序和上网应该是更加重要一点的。虽然现在中国股市已经到了“无可救药,不如置之死地而后生”的阶段...
刚看了两本《大败局》,觉得个人投资和企业行为一样,都应该保持“有节制的热情”。有两种人都不适合在股市生存,一种是“搏命”,一种是“过于胆小”。有一个朋友属于后者,跌一点就逃,涨一点就收;逃了就后悔,收了就遗憾,然后就陷入一个恶性循环。属于前者的那种人,有了一百万想一千万,有了一千万想一亿,而且都是整个家底押上,这种人最有可能不小心就被“打回原形”(虽然我很崇拜的一个人就属于这类型)。看得清楚,并能坚定地遵守纪律者,才可能是最后的赢家,因为遵守纪律是帮助自己克服“贪婪”和“恐惧”的最好手段。 8/9/2008 080808 陈旧的内容,创新的形式;震撼的开头,热闹的结尾;平淡的主题曲,意料之外的点火仪式。这就是精彩纷呈的08奥运开幕式!
朋友说,从来没有这么激动过。确实,随着年龄的增长,过年这个最大的节庆日已经提不起兴奋的神经,但是奥运会却是百年一遇。
在离鸟巢近在咫尺的一座楼顶上,同住的人们挤在小小的电视屏幕前,喝着,聊着。焰火燃放,最后却由于烟雾太多,阻挡了视线。拍摄开幕式的直升机,在燃放的巨大烟花面前,实在过于渺小。
平常车水马龙的景象,被今晚路上无车的场景代替,北京真是“空城”了。
虽然人们平时对奥运带来的麻烦多少有些怨言,但相信56个民族的心在此刻紧紧凝聚。 8/6/2008 自动化一切该自动化的东西计算机生而该为你完成那些简单重复的劳动,自动化一切应该被自动化的东西吧。 1. 作为高级计算机用户,应该比普通计算机用户更懂得利用计算机的效能。Windows带来的图形界面却恰巧是一个程序员生产率的束缚。 2. 重复操作简单的任务,让一个人无法把精力集中于更应该被关注的东西,也会让一个人变得更笨。 3. 实现自动化的过程,恰是一个学习新知识,开拓新思维的过程。 -------- 《The Productive Programmer》 TDDTDD给设计带来太多好处,以至于可以把它称为测试驱动设计。 1. TDD迫使你在编写代码之前,考虑更多对象之间的交互。 2. TDD迫使你把对象的创建封装在一个更好的层次上。 3. TDD会让你写出更加小而内聚的方法,从而使方法的重用以及纠错变得更加方便、快速。 4. 同样,TDD所带来的高测试覆盖率,能保证你的重构更加可靠。 -------- 《The Productive Programmer》 8/2/2008 禀性难移?有时候想,谁是在我的生命中,给我最多帮助的人。一路走来,师长,家人,同事,他们必定给我了很大的帮助和支持。 但要说,真正对我帮助最大的,是我的几个大学室友。是他们的忍耐,包容,乐观,积极的态度逐步引导并最终让我走出曾经的抑郁和自闭,并真正打开我的心扉,让我认识到:真实的,才是最美的。一晃,从认识到如今,7年闪过。 禀性难移?从某天开始,我一直就是这句话坚定的踩踏者。一个人可以在环境的影响下逐步改变,不仅是习惯,而且可以是脾气、性格等很多人认为不可能改变的东西。 选择跟正确的人在一起,并学着去尝试,去改变,放胆在正确的方向上坚定地走下去,没有什么是改变不了的,只要你愿意。 7/26/2008 在行进中解开谜团 可能是性格使然,总喜欢把一件事情想清楚了再干。特别是对于一些需要逻辑分析的问题,越不容许出错的地方,越会强迫自己思量清楚再动手。
看着郑晔和Jeff编程,用“行云流水”来形容,再恰当不过。找到入口,然后就像拿着一把尖锐的长矛,突破一道道关卡,最后,来到胜利的终点。一切曾经迷惑的问题,在行进中变得清晰。当然,问题总不可能那么顺利,或许,走到某一步,会发现已经无路可走;或许,走到最后,发现陷入泥沼。但此时,调转枪头或者回头重新的设计已经不是难事。因为在行进中,疑团已经减少,问题变得明了。同时,在行进中,一个更好的设计或许已经浮出水面。
不能不说,丰富的经验和对总体的把握能力是他们胜利的一部分原因。但学会用正确的方式工作,是前提。
空想?实践!祖先早就教育我们,实践出真知。 7/22/2008 孤独的味道
孤独的味道有很多种。 有一种孤独是被抛弃的孤独。小时候经常感受到这样的孤独。放学回家,却发现家里空无一人。一个人坐在家门口的凳子上,看着天色变黑,路上行人渐少,邻近的灯光也一盏盏熄灭。 有一种孤独是被冷落的孤独。这种孤独,可能是发生在喧闹的派对上,可能是发生在朋友的聚会上,人很多,声音很噪杂。但可能那里的热闹不属于你。 而另一种孤独,是阿兰・德波顿经常感受到的孤独。这种孤独经常发生在一个陌生的城市或者国度,一个火车站旁的饭馆,远行的旅客稀稀落落地坐在饭馆里,或埋头进食,或点烟自醉,或用手托着脑袋观察着玻璃窗外走过的每一个行人。每个人都知道,他们互不相识。他们或都是第一次来到这个城市,他们也可能来自全世界不同的地方。 但这种孤独绝不仅仅属于他。 记得来到北京的第一天,在这个几乎没有亲人,没有朋友,甚至从没想过会有交集的城市,第一次感受到了一种从未有过的孤独。旅店里穿着奇怪服装的服务员,用带着浓重京味的普通话跟我交谈,让我意识到了我真的来到了北方;公交站上排队的一对学生情侣,未脱的稚气和那种北京人才有的脸谱和表情,让我想起了《十七岁的单车》里骑着车狂奔的少年;破旧的地铁二号线上,人潮拥挤,一辆列车疾驰而过后吹扬头发的风,那真的是春天的地铁;在夜色下驻足天安门广场,路上匆匆人行而过,远望毛主席高高挂着的头像,那是少年时我爱北京天安门的记忆。 一切都是新鲜,一切都是陌生,一切都不属于我,一切也都属于我。因为在那刻,我可以尽情观察,尽情感受。 这样的孤独,其实是种美。 我屡屡冲动要去再次感受这种孤独,曲艺之乡的天津,千里冰封的北国,又或是文化积淀的西安... |
||||
|
|