|
|
8/31/2008 秋天到了,各大联赛又开始纷纷开打了,可是现在的比赛转播却是日渐稀少。英超没了,意甲也没了,就剩了个每次都是0点后才可能有比赛的西甲。郁闷啊,本来还可以看看咱们的联赛过过瘾,可惜中国足球实在是没有气(估计是气门芯坏了,再多人也打不进去了,只能被人踩踩)。 这两天装了SopCast跟TVAnts,好家伙,各国联赛都有了,刚装完的时候用了玩玩看了场乌超--||。连接还是很流畅的,画面也还可以,推荐一下,哈哈。接下来英超意甲就都有的看了。 不过好东西也有缺点啊,比赛不是每场都有转播可以收到。今天碰到个最郁闷的事情了,本来A米的比赛那两个工具都有转播的了,心想双保险了,可是到9点一开才发现一个么频道停止,另一个直接缓冲到死。诶,只有场同一时间的罗马可以看看,就是看着想睡觉,最后只能看看A米的文字直播。郁闷。 现在天天要上班,早上的比赛是没希望了,诶,明天早上去公司看比分了。。。。。。 8/27/2008 好久没有写过东西了,这两个月被个项目搞死了,本来想今天工作汇报完了可以稍微告个段落了,诶,太想当然了。带个项目做开发这个年头还真是麻烦,队伍难带就不说了,还时不时的有人来征调人手,依照级别不同有时我自己都被征走了。现在全公司上下就一个美工,虽然是借项目大小的优势强行把人留在了项目中,可是设计出来的东西实在是我自己都看得打不起精神,更别说是用户方了,每次批斗大会界面首当其冲,再下去开会我也真是要麻木了。不但如此,项目的数据量又大又杂还不是自己人来搞直接导致了我创造的空中楼阁,现在的项目要需求没需求要设计没设计,每次碰到用户方的质问还不能说是因为没有需求。今天可好了,直接塌掉。本来是汇报完了直接系统上线,早上一去就发现数据库不对,改完后又碰上数据交换个倒霉事儿,数据库就直接成半瘫痪状态了。然后那个IBM的AIX系统的UTF-8下的WEBSPHERE还老跟我发脾气,连续3个礼拜在一个地方罢工,过三不过四,下周再想个办法让系统在那个地方跑起来。本来就有点不好的预感,果然下午一到汇报,领导集体失踪,连项目经理都推说有事不来了,没办法,印着头皮顶了半天。接下来事情还是完不了,还答应了让一个手下去干别的项目,人又少了一个…… 最近发现卡拉迪加的最终季出了一半了,看着还是挺爽的,无论是从剧情,场面,科幻效果和宗教哲理上来讲这部片子都是没的话说了,哈哈。打消今天的烦闷,先去看片僚………… 7/16/2008 某日,老师在课堂上想考考学生们的智商,就问一个男孩:“树上有十只鸟,开枪打死一只,还剩几只?” 男孩反问:“是无声枪么?” “不是。” “枪声有多大?” “80~100分贝。” “那就是说会震的耳朵疼?” “是。” “在这个城市里打鸟犯不犯法?” ‘不犯。” “您确定那只鸟真的被打死啦?” “确定。”老师已经不耐烦了,”拜托,你告诉我还剩几只就行了,OK?” “OK。鸟里有没有聋子?” “没有。” “有没有关在笼子里的?” “没有。” “边上还有没有其他的树,树上还有没有其他鸟?” “没有。” “方圆十里呢?” “就这么一棵树!” “有没有残疾或饿的飞不动的鸟?” “没有,都身体倍棒。” “算不算怀孕肚子里的小鸟?” “都是公的。” “都不可能怀孕?” “………,决不可能。” “打鸟的人眼里有没有花?保证是十只?” “没有花,就十只。” 老师脑门上的汗已经流下来了,下课铃响起,但男孩仍继续问:“有没有傻的不怕死的?” “都怕死。” “有没有因为情侣被打中,自己留下来的?” “笨蛋,之前不是说都是公的嘛!” “同志可不可以啊!” “…………,性取向都很正常!” “会不会一枪打死两只?” “不会。” “一枪打死三只呢?” “不会。” “四只呢?” “更不会!” “五只呢?” “绝对不会!!!” “那六只总有可能吧?” “除非你他妈的是猪生的才有可能!” “…好吧,那么所有的鸟都可以自由活动么?” “完全可以。” “它们受到惊吓起飞时会不会惊慌失措而互相撞上?” “不会,每只鸟都装有卫星导航系统,而且可以自动飞行。” “恩,如果您的回答没有骗人,”学生满怀信心的回答,“打死的鸟要是挂在树上没掉下来,那么就剩一只,如果掉下来,就一只不剩。” 老师当即倒!
虽然这只是一则笑话,但是我觉得其中小孩子那种打破砂锅问到底的方式却不是现在我们系统开发前的需求分析所能够都达到的,这也间接导致了系统开发周期的延长,不断的需求变更以及之后的低可维护性。其实做需求调研的时候最重要的目的在于资料收集,或许小孩的那种打破砂锅的方式会引起客户的反感,但是实际项目中往往需要的就是这些比较周全的调研方式,能够考虑到的问题点都需要和客户确认,尽量避免想当然的做法,只是采用的方式可能需要优化一下,采用良好的方式,这样才能够对系统作出一个良好的设计,制订出周全的开发开发计划。其实良好周密的前期需求分析反而更有利于之后的开发维护以及进度的保持。
7/12/2008 满桌任务,不知何物,牢骚满腹,厕所常驻。 一个深陷在中国软件业泥沼中的程序员(就是我!)在2008年7月12日晚上所作出的感慨。=.=||| 本来想写写近况的,可惜跟别人聊天的时候一不小心就聊到了工作,遂发此感。有时候想想,自己所从事的这行的现状到底是什么样子的。一个项目经理,既要负责项目的各个文档制定,项目的开展和验收工作,又要时时监控开发组的状态,做得快了要被客户挑刺,然后落得个返工的下场,慢了么出去被客户骂,回来被老板剐,弄得个里外不是人,待遇还不见得比技术人员高;这个还算好的,碰到当上个光杆司令,连开发、数据、服务器什么都得管上,还得管好了,不然就是让老板失望,但是仍然不算是个技术工 。好在俺不是做这个的,也不准备在类似目前这种类型的公司干这个,整个一往火炕里蹦嘛。再看看程序员,任务一个个接二连三,但是每个任务却都说不清楚,到底该干什么,软件做成什么样子的,问谁谁都不知道,每次都说是要根据需求来,可这需求整个就跟个废纸差不多;于是乎,每个开发人员只能“充分发挥自己的想像力”,搭个貌似近似的东西交出来,然后呢,别人肯定不满意啦,于是就是不断的改,往死里改,改得什么东西都不像了,整个框架都罩不住新的功能了,可维护性无限接近于○了项目也就终能结掉了;伟大系统的构想到梦想的幻灭也许也就是一个项目开发的时间,无论你有什么奇思妙想能将一个软件带到多么高的一个程度,凭着计算机语言和中文之间的这点差别,你的无敌框架总会在那被字斟句酌过的需求前垮台。于是乎,项目做到后期,你会看到项目经理和程序员们坐在石阶上宣泄着自己的情感。美工、DBA(还算能这么称呼)、管硬件的(该怎麽叫我还没搞清楚)大概还不会遇上这类问题,因为不隶属于某个项目他们不会有这种长期的郁闷和压力,然而在这样的企业搞这一行的绝对不会有闲着的时候,既然不隶属于任何项目,那就是短工型,哪个项目有事都来找,上班就跟赶场子一样,很多活都是立马完成的任务,因为谁都怕他们走了下次就叫不到人了,于是,再晚再累也得熬着。 乎,一不小心漏出来那么多,有时候牢骚一发起来就是没完没了,也许中国IT的现状也就是如此了吧,而且都得到了“入伙”人的默认,平时都麻木了,今天也就是提到了爆发一下。不过有人也许看不懂我在写什么,随便看看吧,IT各类人才的现状。为啥我要写那么多种人,干嘛不写写自己的工作呢?表急哦,你把这各类人的描述合起来,就是我了。除了职位上还立足于一个程序员,干的事情就没法预期了。有时候看到一堆不知所云的东西还催得特别急,真想立马找个洞进去待着,一天不出来。 好了,发泄了那么多,也该收了。最近的日子过得挺平静,上班研究研究新技术,整框架,培养培养新员工,下了班就练练身体,看看电影。到了暑假就有种不停拉人出来的冲动, 总想着以前的大热天多么多么的自在。不过今时不同往日了,联系一下不是碰到个大忙人就是距离太远出行不便,只能自己找点事情打发下了。 ----------------我是一条漂亮滴分隔线------------------ 不过最近也有点让人兴奋的事,首先是一个好朋友终于逃离了原企业多年来的“残酷剥削”,跳进了梦想中的一个外资企业,呵呵,应该马上就要上岗了吧,在此祝贺下! 此外呢阿拉饿首个顶着硕士帽子的大学同学终于马上要诞生了,也要祝福下!这个表忘了回国给俺捎点特产就行了, 哈哈。还有呢就是偶最近终于往上升了一点,hoho,搞了个LOPD当当(Leader of Project Developers 我自己想出来的,缩写听起来还不错) ,不过实际还没找着个能确定的头衔=.+|||。虽然像刚才的一堆牢骚还是总能把人搞的心惊胆寒,但是能管那么多事还是一件蛮让人兴奋的事情,而且又是正处在一个迄今为止我做到的最大项目的阶段,challenging and exciting,哈哈。不过一上手就发现了自己任重而道远了,一开会就是半天,排个项目开发进度表(终于重新用上了大学里熟悉的ms project软件了)就用了整整一天,还要给所有开发人员安排工作,规定制度等等等等,发现有时候这种毛估估的东西比开发程序来的还复杂点,大概我还不太适应吧。不过连续几天让自己机器上的eclipse闲着也算是创了自己最近的记录了吧,接下来还要整框架来让开发人员快速用上,这个年头万金油还真不好当。不过现在还是项目开始阶段,没人会给脸色看,轻松的环境下工作总归累不到哪去。不过接下来2个月不知道会是什么样子的 ,我的不加班原则究竟能挺到什么时候就不知道怎么样了。期望还是继续聊天,看片子,悠哉悠哉的,爽。。。。。。 还是加强联系吧,偶qq 242873410 ps. 谁研究过mootools? 最近想把它搞进项目里却发现和原来一些久经考验的prototype的东西冲突了,希望有经验的人能帮忙指导下,hoho 7/7/2008 去参加了塔大的校友会,感受了一下在大学里的“英语氛围”。可惜啊,到的比较早,刚进去就发现苗头不对了。一年多没怎么看英文,一进门就碰到一堆老外一缸,n久不讲外语了,也没准备过,一进去就闷特了。然后老外拿了个盘子问我要名片,然后偶汗就下来了。不过老外也是准备不足,(估计不是对我们期望值过高就是对国内的企业还不了解),后来发现出来解决问题的还是Merry。 混过了第一道关终于碰到些偶们熟悉滴老师们,大概是一年的时间太快了,还很短,老师们还是跟以前一样。聊天时最郁闷要算是撞上Merry了,一年受国内企业熏陶之后头一次感到自己英文功力减得如此的厉害,吱唔了半天也蹦不出一句整句来,还好她还是跟以前一样能自言自语,当时偶那个汗啊。。。。。。。 不知道怎么那么巧,正愁找不到同学呢,碰到了一个上一届的学长。他在一个跟我现在差不多样子的企业里做市场已经做得很牛了,而且基本跟我一样做政府部门相关的东西,谈的东西一套一套的,不知不觉把项目上的事情聊了一大堆,突然对现在正在从事的工作有了一种特殊的感觉。 然后就到了聚会的时候啦。不过外国人搞的聚会就是不一样,几个桌子+几个waiter就完事了。小点心一堆一堆的,可是虽然数量大,但也实在是太mini了,本想晚上有个自助餐什么的可以大吃一顿类,结果连吃了点啥都么的一点感觉的,东西放嘴里就没了,最后还得饿着回去,中饭特意少吃的,这下亏大了。不过红酒喝得挺爽,这种条件应该说确实蛮适合聊天的,可惜阿拉305人都不知道上哪了,这个年头队伍都没了。会上的两个熊还是蛮可爱的,不过最后都抽给一个人假了点。诶,没名片连个抽奖的机会都没有,回公司要努力下了。 诶,就写这点了,混了个金校徽加一堆照片回来也算不错,特别是那个隔了一年才拿到的毕业光盘,居然把学校搁雪山上了一缸,太太太假了。有机会找个时间再出来聚聚吧,这次时间太短了,改天晚上上来发照片,哈哈,要的M我啊 6/28/2008 不知不觉又过了一周,今天上网到游戏区随便转了转,本来是找实况的资料的,没想到撞上了大菠萝3代。好像MSN空间不支持我把flash放在iframe里放上来,大家就自己去看看吧:http://us.media.blizzard.com/232309/_images/en-US/splash.swf 不愧是blizzard,在StarScraft II即将登场的掩饰下,另一个举世瞩目的大作却进行的如此悄然无声。可以说,在他们真正公布这个消息之前,并没有多少人指望着DIABLO这一最佳ARPG系列的延续,所有都仅仅限于猜测中。然而,在公布了4, 15, 16, 23这一系列数字之后,今天终于官方宣布DIABLOIII的存在!搞不懂这串数字的往下看。  以下是2张截图:   揭幕视频: 数字4 8 15 16 23 42是 "Valenzetti Equation" (愣次等式) 涉及的内容。"Valenzetti Equation"是Bad Twin的作者Gary Troup创作的第一本小说。 愣次等式的意义代表人类的灭绝。 The equation was secretly commissioned through the UN Security Council and is used to predict the time of human extinction. 这样的暗示,答案只有一个,Diablo is rising up again… 演示视频: 6/23/2008 疯狂而又混乱的世界中,奉献一场又一场华丽而酣畅的荷兰足球被一个荷兰教练所击溃,早已输的体无完肤的中国足球最终在澳洲人的土地上上拿到了唯一一场胜利。这个世界上还有什么不会发生,至少在短时间内无法给出一个答案。 范德萨走了,在为荷兰把守了13年大门后离开了国家队的舞台。虽然没能力挽狂澜,但他在比赛中的稳定而又矫健的身手得到了所有人的致敬。也许这样的结局不够圆满,但是能够在最后一场国家队比赛中与自己初出茅庐时的恩师所带的球队较量也许也是另一种圆满。 国家队又要换教练了,在取得了最后一场出色而又没有任何意义胜利后。这是福拉多作为主教练带队打的最后一场比赛,也是中国在2010年世界杯走的最后一段路,也是他作为真正意义上的主教练打的唯一一场比赛,也是一支纯国家队所打的唯一一场比赛,而他们赢了,下场了,解散了。另一名原来的二军统帅则继续带领着国奥,训练着。。。。。。 手里拽着快没电的手机,歪着脖子对着内线电话提出一个又一个不着边际的问题,一只手敲打着键盘,屏幕上滚动着那似曾相识而又异常陌生的Unix命令。蹬着脚,时不时地挠挠头,点了一下服务器的某个节点,面对着屏幕低下那根永远走不到底地进度条,脑子里时不时地冒出stopServer地冲动。一个本世纪初的古老系统,一套无人了解的数字证书,在这个混乱的时刻,也冒出来凑凑热闹。 在局里的几天大概是上班到现在最迷茫的几天,一个陌生的世界,一个与世隔绝的环境,面对着必须在某个时间点完成的任务,找不到可以寻求的帮助。当某一个突然到来的任务完全超越软件开发的技术范畴的时候,所能做的也许只有无奈和祈祷。 这个世界哪里都一样,混乱和秩序不断的循环,在混乱中得到经验和教训,在平静中恢复、成长和发挥。只要选择了追求,就得不断地经历这样的往复,至少这样我们的人生永远不会枯燥无味,不是么...... 6/21/2008 感谢上天赐予了我又一个休假日,也让我有机会看了又一场到现在还让人心情久久不能平静的比赛。当克拉什尼奇一头将皮球砸进鲁斯图身后的空门时,没有人会相信土耳其还有机会杀进四强,因为此时比赛已经进入了加时赛第119分钟。 ![图文-[欧洲杯]克罗地亚VS土耳其肾斗士替补建功](http://i1.sinaimg.cn/ty/euro2008/g/p/2008-06-21/U1639P6T12D3737820F44DT20080621053116.jpg) 球进之时,也许很多人都会只是有“终于看到了一个进球了”的感觉,坐在电视机前,等待着比赛的结束,等待着克罗地亚人开始庆祝他们首次闯入欧洲杯四强。然而,欧锦赛到了淘汰赛阶段,每一场比赛都不再如同往常,不管场面如何,越是到了比赛后期,场上的每一个人越是会放开自己,将自己的能力发挥至极致,不管自己的双腿还能够往前登多少步,不管自己是否再会受伤,在全场几万人点燃焰火齐声呐喊高唱的情况下,只有飞奔,只有进球才是场上每个人心中的信念。就如同克罗地亚在比赛120分钟快结束时的突然加快进攻速度,最终打垮了土耳其人的后防线那样,场上球员所最后那一点力气将会最终持续到比赛结束的那一刻,而且,被进球的是那支在此前的欧洲杯比赛中,曾经两次在最后时刻绝杀对手的球队。 比赛解说在比赛刚开始时曾经笑谈,欧锦赛打到现在还有谁会敢于轻易领先土耳其队,因为此前领先过他们的球队无一不遭到在最后一分钟被绝杀的命运,东道主是这样,铁军捷克也是如此。小组赛第二场对瑞士,土耳其以逆转的方式战胜了瑞士,为自己赢得了生机,第92分钟,图兰终场前完成绝杀,事后来看,这个进球非常重要,因为如果按照小组赛最后一轮的发展,就算土耳其3-2战胜捷克,但瑞士2-0战胜葡萄牙,也将以净胜球的优势晋级。在小组赛最后一轮,土耳其和捷克站在了同一起跑线上,但捷克2-0的领先优势几乎杀死了悬念,不过土耳其人没有绝望,74分钟,图兰的进球掀起了反攻的号角,土耳其人接连制造机会,87分钟,切赫的失误让双方战成了2-2。但土耳其人并不满足,2分钟后通过反越位,由尼哈特完成了逆转绝杀,来到了今天四分之一决赛的现场。 克罗地亚人在庆祝,不光是所有的球员,就连场边的教练等也一并冲入场内抱成一团。可以说,全世界都已经认可了克罗地亚的这场胜利,只有场上的11个土耳其队员在默默的接受落后的现实后,又开始了奔跑和传递。于是,2分钟后,在裁判将要吹响终场哨的那一刹那,足球犹如一道闪电划过半个球场,飞入克罗地亚的大门内…… ![图文-[欧洲杯]土耳其4-2克罗地亚森图尔克神奇一脚](http://i3.sinaimg.cn/ty/euro2008/g/p/2008-06-21/U1639P6T12D3737830F44DT20080621054619.jpg) 此刻,时间仿佛停止了,根本来不及反应过来究竟发生了什么,只知道现场大半个球场突然沉静下来,而后想起了土耳其球迷们的疯狂欢呼声。这就如同在梦境之中一般,没有人会接受眼前的现实。然而看着土耳其人的欢呼,看着克罗地亚人茫然的眼神,我们知道奇迹确实又发生了!此时此刻,克罗地亚其实已经出局了,没有谁能在经历了这样的大起大落后再去冷静的对待此后极度考验心理素质的点球大战。不能说他们为自己的提前庆祝付出了代价,因为他们依旧在奔跑,也不能说他们轻视了对手,因为没有人会相信奇迹的一再发生。只能说他们太不走运了,足球场上百万分之一的概率会出现的情况发生在了他们身上。 在接下来的欧锦赛中,在土耳其队的身上,他们还有什么奇迹不能创造?德国队的将士们,悠着点了……  
6/15/2008 射门!球进了!!! 好久没有那么爽的看球感觉了,4年一度的欧锦赛可是水平一点都不亚于世界杯的足球盛宴。不过可惜就可惜在那不尴不尬的时差,每次都是在后半夜头上开始,睡觉不得不一拆为二,不过按我的习惯可就直接变成通宵作战了。小组赛已经进行了2轮了,好戏连台的赛事和层出不穷的进球真是让人想睡都睡不着。然而现在不能像以前那样跷课了,每天还是得上班,天天压缩睡眠让偶都快有点顶不住了。偏偏又碰上昨天加班,今天睡了一天总算是把一个礼拜的睡眠不足基本给补回来了,哈哈,感觉真是不错。 接下来是关键的最后一轮了,目前偶看好的球队除了捷克有点旋以外其他都还是表现不错,尤其是荷兰,这届比赛到现在可真是让人每场都拍手叫绝。不能说荷兰的技术水平有了多大的提高,良好的心态和流畅的团队配合才是荷兰连续将意大利和法国打入深渊的关键所在,设想一下,连范尼都在后场拦截,连边后卫都能在反击中突破、射门、甚至进球,这样的穿插换位能力在世界上是很难找到一个翻版的。此外,值得让人钦佩的还是荷兰所固有的孜孜不倦的在整个比赛时间内对进攻的追求。别看他们只是貌似凭借良好的传接球在场上控制比赛慢慢耗时间,这其实只是没找到对手的破绽前的耐心等待罢了。一旦发现了突破的空间,人手必备的一脚传球能力和组织者们的长传便能瞬间将任何防线打个大窟窿。两场比赛的后几个进球全部都是这样酣畅淋漓。今年的捷克在缺少了几个老将后水平确实是大不如前了,但是铁军的风格还是依旧保存着,只要有这样每场比赛不管对手是谁都一拼到底的精神是球队的动力,也是他们吸引人的特点所在,上一场要不是一时的疏忽即便是号称技术最牛的葡萄牙也讨不着一点便宜,而在C罗进球之前的不到一点机会的那张脸可更像一块铁板。希望他们能够在明天凌晨的比赛中顺利出线,祝他们好运吧。 最后顺便说说中国队,昨天晚上的比赛我已经懒得看了,今天看新闻说输掉了,我是一点也不惊讶。5场小组赛打到现在球队基本还是跟盘散沙一样,一点配合也打不出来,个人能力本来就不行,再加上不知道还能不能算得上战术的战术布置,这整个一三无产品的国家队沦落到在亚洲也人见人欺也就一点也不足为奇了。不过这也不能都怪队员,上层的昏庸是导致现在这种现状的罪魁祸首,球员只不过是牺牲品罢了。还是那句老话,zhu协的管理体制不改变,中国足球注定只能成为人们茶余饭后的谩骂对象。 6/10/2008 窗外的雨下得好大好大,今天看了下气象局的主页,好像这个礼拜都得跟雨作伴了。 说起来时间过得就是快,这半年过得简直跟以前大学里生活的日子一样快,刚刚还是漫天大雪,骑着车子打个弯还打不稳,现在已经碰上狂风暴雨了,运气差点就得半个轮子在水里一路淌回家。不同的只是工作代替了原来的自在生活。 时常想着,自己应该过一种怎么样子的上班族生活。说实话,对于成天朝九晚五的工作生活到现在还是有点不习惯,总感觉生活太单调了。不过好在虽然现在的公司不咋的,可是工作还是蛮有意思的。成天都会碰上不同的事情,客户的想法比想像中的丰富的多,然后还得花大把的时间去学些最新的技术来使得现有的系统表现的更加出色,要让现在的使用者满意真是件不容易的事情。 诶,一晃又那么晚了,这几天日子过得跟飞一样,不是因为端午的关系,而是欧锦赛又开始了,昨天法国踢得太烂了,害得我不知不觉就一觉睡到天亮,错过了荷兰的经典之战啊。。。郁闷。现在这个日子,白天做做系统,晚上看看足球,突然一点都不感觉累了。 最近上班事情越来越多了,要统管新架构下的各个rk系统,还有个最新的正在整理底层结构搭建框架,接下来可能就要过一段半脱离代码的工作了,心里还是有点没底,感觉现在自己的主要提高方向还是应该基于代码和系统架构设计,而且也不知道自己的管理水平会是什么样子。 不知道当初一同搞JAVA的同学们现在怎么样了,现在向我们这样的在这行混还真不容易,很多时候都是没日没夜的拼到头来却是得到老板或客户的冷眼相看。很是期待下个月的校友会,到时候又能碰到阿拉爱恩的朋友们了,特别是305的一窝子,哈哈。 又到了看球的时间了,不知道今天的比赛怎么样,这篇就先写到这里了,有同样搞J2EE的有空一道交流交流,外面世界的新东西好多好多,顾都顾不过来了。。。。。。 6/8/2008 假如生活欺骗了你, 不要忧郁,不要愤慨; 不顺心时暂且忍耐, 相信吧,快乐的日子将会到来。 心儿憧憬着未来, 现在却总是令人悲哀; 一切都是瞬息,一切都会过去, 而那逝去了的,将重新变为可爱。 --普希金 2/17/2008 每年央视春晚都会产生一些流行语,今年也不例外。按节目出场顺序记录如下: 1, 为什么呢?(蔡明) 2, 农民工挣钱不容易,出钱更难。(王宝强) 3, 后来呢?(周涛) 4, 手铐在门口,就等你伸手。(周涛) 5, 结婚之前要彩礼,结婚之后要理财。(黄宏) 6, 你这小模样长得就有点犯法。(黄宏) 7, 两口子不一定住一起,住一起不一定是两口子。(巩汉林) 8, 找准自己的位置!(宋丹丹) 9, 感谢所有TV!(赵本山) 10,每一个成功男人的背后都有一个多事的女人。(赵本山) 2/16/2008 1. document.write( " "); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document- >html- >(head,body) 4.一个浏览器窗口中的DOM顺序是:window- >(navigator,screen,history,location,document) 5.得到表单中元素的名称和值:document.getElementById( "表单中元素的ID號 ").name(或value) 6.一个小写转大写的JS: document.getElementById( "output ").value = document.getElementById( "input ").value.toUpperCase(); 7.JS中的值类型:String,Number,Boolean,Null,Object,Function 8.JS中的字符型转换成数值型:parseInt(),parseFloat() 9.JS中的数字转换成字符型:( " " 变量) 10.JS中的取字符串长度是:(length) 11.JS中的字符与字符相连接使用 號. 12.JS中的比较操作符有:==等于,!=不等于, >, >=, <. <= 13.JS中声明变量使用:var来进行声明 14.JS中的判定语句结构:if(condition){}else{} 15.JS中的循环结构:for([initial expression];[condition];[upadte expression]) {inside loop} 16.循环中止的命令是:break 17.JS中的函数定义:function functionName([parameter],...){statement[s]} 18.当文件中出现多个form表单时.可以用document.forms[0],document.forms[1]来代替. 19.窗口:打开窗口window.open(), 关闭一个窗口:window.close(), 窗口本身:self 20.状態栏的设置:window.status= "字符 "; 21.弹出提示信息:window.alert( "字符 "); 22.弹出確认框:window.confirm(); 23.弹出输入提示框:window.prompt(); 24.指定当前显示链接的位置:window.location.href= "URL " 25.取出窗体中的所有表单的数量:document.forms.length 26.关闭文档的输出流:document.close(); 27.字符串追加连接符: = 28.创建一个文档元素:document.createElement(),document.createTextNode() 29.得到元素的方法:document.getElementById() 30.设置表单中所有文本型的成员的值为空: var form = window.document.forms[0] for (var i = 0; i <form.elements.length;i ){ if (form.elements.type == "text "){ form.elements.value = " "; } } 31.复选按钮在JS中判定是否选中:document.forms[0].checkThis.checked (checked属性代表为是否选中返回TRUE或FALSE) 32.单选按钮组(单选按钮的名称必须相同):取单选按钮组的长度document.forms[0].groupName.length 33.单选按钮组判定是否被选中也是用checked. 34.下拉列表框的值:document.forms[0].selectName.options[n].value (n有时用下拉列表框名称加上.selectedIndex来確定被选中的值) 35.字符串的定义:var myString = new String( "This is lightsword "); 36.字符串转成大写:string.toUpperCase(); 字符串转成小写:string.toLowerCase(); 37.返回字符串2在字符串1中出现的位置:String1.indexOf( "String2 ")!=-1则说明没找到. 38.取字符串中指定位置的一个字符:StringA.charAt(9); 39.取出字符串中指定起点和终点的子字符串:stringA.substring(2,6); 40.数学函数:Math.PI(返回圆周率),Math.SQRT2(返回开方),Math.max(value1,value2)返回两个数中的最在值,Math.pow(value1,10)返回value1的十次方,Math.round(value1)四舍五入函数,Math.floor(Math.random()*(n 1))返回隨机数 41.定义日期型变量:var today = new Date(); 42.日期函数列表:dateObj.getTime()得到时间,dateObj.getYear()得到年份,dateObj.getFullYear()得到四位的年份,dateObj.getMonth()得到月份,dateObj.getDate()得到日,dateObj.getDay()得到日期,dateObj.getHours()得到小时,dateObj.getMinutes()得到分,dateObj.getSeconds()得到秒,dateObj.setTime(value)设置时间,dateObj.setYear(val)设置年,dateObj.setMonth(val)设置月,dateObj.setDate(val)设置日,dateObj.setDay(val)设置星期几,dateObj.setHours设置小时,dateObj.setMinutes(val)设置分,dateObj.setSeconds(val)设置秒 [注重:此日期时间从0开始计] 43.FRAME的表示方式: [window.]frames[n].ObjFuncVarName,frames[ "frameName "].ObjFuncVarName,frameName.ObjFuncVarName 44.parent代表父亲对象,top代表最顶端对象 45.打开子窗口的父窗口为:opener 46.表示当前所属的位置:this 47.当在超链接中调用JS函数时用:(javascript :)来开头后面加函数名 48.在老的浏览器中不执行此JS: <!-- //-- > 49.引用一个文件式的JS: <script type= "text/javascript " src= "aaa.js " > </script > 50.指定在不支持脚本的浏览器显示的HTML: <noscript > </noscript > 51.当超链和onCLICK事件都有时,则老版本的浏览器转向a.html,否则转向b.html.例: <a href= "a.html " >dfsadf </a > 52.JS的內建对象有:Array,Boolean,Date,Error,EvalError,Function,Math,Number,Object,RangeError,ReferenceError,RegExp,String,SyntaxError,TypeError,URIError 53.JS中的换行:\n 54.窗口全屏大小: <script >function fullScreen(){ this.moveTo(0,0);this.outerWidth=screen.availWidth;this.outerHeight=screen.availHeight;}window.maximize=fullScreen; </script > 55.JS中的all代表其下层的全部元素 56.JS中的焦点顺序:document.getElementByid( "表单元素 ").tabIndex = 1 57.innerHTML的值是表单元素的值:如 <p id= "para " > "how are <em >you </em > " </p >,则innerHTML的值就是:how are <em >you </em > 2. 58.innerTEXT的值和上面的一样,只不过不会把 <em >这种標记显示出来. 59.contentEditable可设置元素是否可被修改,isContentEditable返回是否可修改的状態. 60.isDisabled判定是否为禁止状態.disabled设置禁止状態 61.length取得长度,返回整型数值 62.addBehavior()是一种JS调用的外部函数文件其扩展名为.htc 63.window.focus()使当前的窗口在所有窗口之前. 64.blur()指失去焦点.与FOCUS()相反. 65.select()指元素为选中状態. 66.防止用户对文本框中输入文本: 67.取出该元素在页面中出现的数量:document.all.tags( "div(或其它HTML標记符) ").length 68.JS中分为两种窗体输出:模態和非模態.window.showModaldialog(),window.showModeless() 69.状態栏文字的设置:window.status= '文字 ',默认的状態栏文字设置:window.defaultStatus = '文字. '; 70.添加到收藏夹:external.AddFavorite( "http://www.dannyg.com ";, "jaskdlf "); 71.JS中碰到脚本错误时不做任何操作:window.onerror = doNothing; 指定错误句柄的语法为:window.onerror = handleError; 72.JS中指定当前打开窗口的父窗口:window.opener,支持opener.opener...的多重继续. 73.JS中的self指的是当前的窗口 74.JS中状態栏显示內容:window.status= "內容 " 75.JS中的top指的是框架集中最顶层的框架 76.JS中关闭当前的窗口:window.close(); 77.JS中提出是否確认的框:if(confirm( "Are you sure? ")){alert( "ok ");}else{alert( "Not Ok ");} 78.JS中的窗口重定向:window.navigate( "http://www.sina.com.cn ";); 79.JS中的打印:window.print() 80.JS中的提示输入框:window.prompt( "message ", "defaultReply "); 81.JS中的窗口滚动条:window.scroll(x,y) 82.JS中的窗口滚动到位置:window.scrollby 83.JS中设置时间间隔:setInterval( "expr ",msecDelay)或setInterval(funcRef,msecDelay)或setTimeout 84.JS中的模態显示在IE4 行,在NN中不行:showModalDialog( "URL "[,arguments][,features]); 85.JS中的退出之前使用的句柄:function verifyClose(){event.returnValue= "we really like you and hope you will stay longer. ";}} window.=verifyClose; 86.当窗体第一次调用时使用的文件句柄:onload() 87.当窗体关闭时调用的文件句柄:onunload() 88.window.location的属性: protocol(http:),hostname(www.example.com),port(80),host(www.example.com:80),pathname( "/a/a.html "),hash( "#giantGizmo ",指跳转到相应的锚记),href(全部的信息) 89.window.location.reload()刷新当前页面. 90.window.history.back()返回上一页,window.history.forward()返回下一页,window.history.go(返回第几页,也可以使用访问过的URL) 91.document.write()不换行的输出,document.writeln()换行输出 92.document.body.noWrap=true;防止链接文字折行. 93.变量名.charAt(第几位),取该变量的第几位的字符. 94. "abc ".charCodeAt(第几个),返回第几个字符的ASCii码值. 95.字符串连接:string.concat(string2),或用 =进行连接 96.变量.indexOf( "字符 ",起始位置),返回第一个出现的位置(从0开始计算) 97.string.lastIndexOf(searchString[,startIndex])最后一次出现的位置. 98.string.match(regExpression),判定字符是否匹配. 99.string.replace(regExpression,replaceString)替换现有字符串. 100.string.split(分隔符)返回一个数组存储值. 101.string.substr(start[,length])取从第几位到指定长度的字符串. 102.string.toLowerCase()使字符串全部变为小写. 103.string.toUpperCase()使全部字符变为大写. 104.parseInt(string[,radix(代表进制)])强制转换成整型. 105.parseFloat(string[,radix])强制转换成浮点型. 106.isNaN(变量):测试是否为数值型. 107.定义常量的要害字:const,定义变量的要害字:var 2/7/2008 为人处世10要诀
1、保留意见:过分争执无益自己且又有失涵养。通常,应不急于表明自己的态度或发表意见,让人们捉摸不定。谨慎的沉默就是精明的回避。 2、认识自己:促进自己最突出的天赋,并培养其它方面。只要了解自己的优势,并把握住它。 3、决不夸张:夸张有损真实,并容易使人对你的看法产生怀疑。精明者克制自己,表现出小心谨慎的态度,说话简明扼要,决不夸张抬高自己。过高地估价自己是说谎的一种形式。它能损坏你的声誉,对你的人际关系产生十分不好影响环境。有损你的和风雅和才智。 4、适应环境:适者生存,不要花太多精力在杂事上,要维护好同事间的关系。不要每天炫耀自己,否则别人将会对你感到乏味。必须使人们总是感到某些新奇。每天展示一点的人会使人保持期望,不会埋没你的天资。 5、取长补短:学习别人的长处,弥补自己的不足。在同朋友的交流中,要用谦虚、友好的态度对待每一个人。把朋友当作教师,将有用的学识和幽默的言语融合在一起,你所说的话定会受到赞扬,你听到的定是学问。 6、言简意赅:简洁能使人愉快,使人喜欢,使人易于接受。说话冗长累赘,会使人茫然,使人厌烦,而你则会达不到目的。简洁明了的清晰的声调,一定会使你半事功倍。 7、决不自高自大:把自己的长外常挂在嘴边,常在别人面前炫耀自己的优点。这无形贬低了别人而抬高了自己,其结果则是使别人更看轻你。 8、决不抱怨:抱怨会使你丧失信誉。自己做的事没成功时,要勇于承认自己的不足,并努力使事情昼圆满。适度的检讨自己,并不会使人看轻你,相反总强调客观原因,报怨这,报怨那,只会使别人轻视你。 9、不要说谎、失信:对朋友同事说谎会失去朋友同事的信任,使朋友、同事从再相信你,这是你最大的损失。要避免说大话,要说到做到,做不到的宁可不说。 10、目光远大:当财运亨通时要想到贫穷。聪明人为冬天准备,一定要多交朋友,维护好朋友同事之间的关系,总有一天你会看重现在看来似乎并不重要的人或事。
2/5/2008 已经好久没写过新东西了,自从在公司的网被掐了之后,平日里上网的时间也就被去掉了一大半,然后接二连三的事情越来越多了起来。似乎过年就是任何事情的一个节点,所有的任务都得在这之前完成一样,原本需要更多时间来完成的项目都被挤压到年前的这几个星期内,搞得这几个星期事情多的跟什么一样。 记得去年的这个时候我好像还在学那个基本的java代码怎么写法,脑子里对于编程序的人的概念就是用自己所学的东西把该干的任务一个个的完成,和自己的其他团队成员一起在项目经理的带领下把整个项目出色的完成交付使用就行了。不过,真正的工作则完全颠覆了这样的一个似乎应该是很合情合理而又十分正常的想法。写代码,测试,发布,刚开始的工作还算是正常,人家问我为什么用plsqldevloper来查看一些数据库表的时候不用edit而是view或者query,我先是一愣然后回答这么做是保护数据库结构和数据,本来嘛,理想中数据库就应该是dba什么的管的,然后别人冲我一笑,日后的工作中也就慢慢体会到了偶当时火星的程度。。。 之后随着对项目的掌握程度渐渐的提高,在对于各个环节都有所熟悉了之后,各种事情也就随之多了起来。设计系统功能、框架,服务器部署,数据库调整等等事情都成了份内的事情了,很长一段时间还得呆在客户那里,现场听取他们的意见,现场对服务器进行调整,偶尔还得做回接线员,电话接个不停。对于这种程序员工作之外的杂七杂八的事情,当时令我一时非常不爽,不过现在看来,在刚毕业就能在同一个岗位上接触到那么多事情应该对我来说还是挺幸运的,虽然这是由于公司的制度和管理混乱造成的,但是这无形中给了其技术岗位上的员工吸收更多知识的机会。不过唯一的遗憾应该就是在碰到问题的时候只能自己摸索或者和其他有空的人一道讨论,在感到无比的成就感的同时又带有一丝无助,而在网被掐了之后很多问题就开始堆积了。 到了年底,公司开始改革了,原本以项目编制的部门变成了按照岗位的编制,而我也从一个项目中被按到了程序员的位置上,不过,改革的初期很多东西还是得依旧,不然部门运作不起来。于是,偶便要同时顾及原来的项目维护以及新项目的开发,恶梦般的一个月就此开始了。应该说,按照软件工程的步骤来进行像我们这种有一定规模的项目的开发还是正确的也是必要的,但是突然来个需求未完全定,而且年前就要交付的系统在这么个意气奋发要好好改革一下的时期还真是让人有点哭笑不得。另一方面,好像一些机构在年前任务都很重,于是便造成了我原来那个项目的系统超负荷了。汗啊~~ 没办法,只能偶尔的加班一下了。当多个项目都有任务压过来的时候,一直的切换eclipse的工作空间还真让人有点受不了。 不过好在过年了,放假了!一切都暂时告一个段落了。不过最近的忙碌也让我看到了程序上的很多问题,比如大量并发下的系统数据出现的一定的错误,来年得给部分功能加锁了。还有就是系统的框架和命名规范,太多的术语让现在的系统很难以英文来规范化命名,而每个功能类和层的划分还十分有待完善。这些都到鼠年再考虑的事了,现在要好好的放松一下了。过年啦,祝大家新春快乐,恭喜发财,身体健康,合家幸福!还要多吃点,多喝点,哪个陪我练练酒量,来年在公司的酒桌上再潇洒一把,哈哈。这也算是工作了之后新的体会吧。 1/26/2008 想方设法让系统实现极速启动,一直是各位电脑爱好者不懈的追求。可是,当我们用尽各种优化系统的绝招后,系统启动画面中的进度条仍然需要来回转 上十几回系统才能启动成功,这是怎么回事呢,难道是媒体上总结出来的各种系统优化绝招都是用来“忽悠”人的? 事实上,许多藏在系统暗处的网络设置功能,是许多系统优化绝招无法触及的,很多情况下就是因为这些设置不当的网络功能拖慢了系统启动速度;为此,我们只要将这些不当的网络功能屏蔽掉,就一定能够为系 统提速再加一鞭! 1、屏蔽网络共享功能要是我们的计算机并没有处于单位局域网网络中,那么已经被启用的网络共享功能其实一点用处都没有,它的存在反而会拖累系统的启动速度;要想尽可能地提高系统启动速度的话,我们完全可以将本地系统已经启用的网络共享功能给屏蔽掉,下面就是具体的屏蔽操作步骤: 首先在Windows系统“开始”菜单中依次执行“设置”/“控制面板”/“网络连接”命令,打开本地计算机的网络连接列表窗口,找到其中的“本地连接”图标,并用鼠标右键单击该图标,从其后出现的快捷菜单中执行“属性”命令,打开本地连接属性设置窗口; 其次在该窗口的“常规”标签页面中,找到“此连接使用下列项目”列表框中的“Microsoft网络的文件和打印机共享”选项,并将该选项前面 方框中的勾号取消掉,最后单击“确定”按钮关闭属性设置窗口,这么下来系统在下次启动时就不会花费时间去检查网络共享方面的内容了。 2、屏蔽完全控制功能计算机系统每次启动时都会自动对本地硬盘中的相关共享文件夹进行搜索和扫描,而共享文件夹的访问属性设置不同的话,那么系统扫描该目标共享文件 夹的时间也会不相同;比方说,要是某一共享文件夹被设置为“只读”权限时,系统扫描该共享文件夹的时间可能只需要1毫秒,而当将共享文件夹的访问权限设置 为“完全控制”时,系统扫描该共享文件夹的时间可能就需要1.5毫秒,由此可见,当开通共享文件夹的“完全控制”功能时,系统的启动速度也会受到一定程度 的影响。 为此,当我们不希望自己的共享资源让别人随意编辑修改时,只需要简单地将共享文件夹的属性设置为“只读”就可以了,而不要想当然地将它设置成“完 全共享”,毕竟在这种访问属性下,共享文件夹的安全不但得不到保证,而且还会影响系统的启动速度。要将目标共享文件夹的“完全控制”功能屏蔽掉的话,可以 按照如下步骤进行操作: 首先打开系统的资源管理器窗口,并在该窗口中找到目标共享文件夹,然后用鼠标右键单击对应文件夹图标,从其后出现的快捷菜单中选择“共享和安全”命令选项,打开到目标共享文件夹的属性设置窗口。 其次单击该属性设置窗口中的“安全”标签,打开标签设置页面,在该页面的“组或用户名称”列表框中,选中自己经常登录系统的那个特定用户帐号,例如这里笔者选择的是“ower”帐号。 接下来在对应“ower的权限”列表框中,选中“完全控制”项目,并在对应该选项的“允许”方框中取消选中状态,这样我们就能将目标共享文件夹 的“完全控制”功能给屏蔽掉了,之后根据实际访问需要,开通目标共享文件夹的“读取”权限或“写入”权限,最后单击“确定”按钮,相信这么一来系统的启动 速度就能更进一步了。 3、屏蔽自动搜索功能当启动安装有Windows XP系统的计算机时,该计算机一般会自做主张地搜索局域网环境中的所有共享资源,很显然这种自做主张的“行为”也会影响计算机系统的快速启动。为了提高系统启动速度,我们可以按照如下方法将本地系统自动搜索共享资源的功能屏蔽掉: 首先打开本地系统的资源管理器窗口,单击该窗口菜单栏中的“工具”选项,从其后出现的下拉列表中单击“文件夹选项”,进入到系统的文件夹选项设置界面,单击其中的“查看”标签,打开选项设置窗口; 找到该窗口中的“自动搜索网络文件夹和打印机”选项,并将该选项前面方框中的勾号取消,再单击一下“确定”按钮,这样的话该计算机系统下次启动时就不会耗费时间去自动搜索局域网环境中的其他共享资源了,那么系统启动速度应该就会明显提升许多。 4、屏蔽自动分配功能这里所提到的“自动分配功能”,其实指的是Windows系统在默认状态下为本地网卡设备自动分配IP地址的功能;一旦将本地网卡的IP地址设 置成自动获取的话,那么计算机系统每次启动时,都会耗费一定的时间向局域网网络中的DHCP服务器申请可以使用的动态IP地址,要是访问不到DHCP服务 器时,计算机系统还会尝试反复连接、访问DHCP服务器,直到访问超时为止,这么一来系统的启动速度将会受到非常严重的影响,甚至会出现系统假死状态。为 了避免系统在启动过程中耗费时间去连接、访问DHCP服务器,我们只要事先为网卡设备设置好一个可以使用的静态IP地址就可以了,为网卡设备分配静态IP 地址可以按照如下步骤进行操作: 首先依次单击“开始”/“设置”/“网络连接”/“本地连接”命令,直接进入到本地系统的“本地连接”属性设置界面,在该设置界面的“常规”标 签页面中,选中“Internet协议(TCP/IP)”选项,并单击对应页面中的“属性”按钮,打开属性设置界面,将该设置界面中的“使用下面的IP地 址”选项选中,同时为网卡设备指定一个与ADSL设备地址同处一个子网的IP地址;比方说,ADSL设备的IP地址一般为“192.168.1.1”,那 么我们就可以将网卡IP地址设置为“192.168.1.11”,同时将子网掩码地址设置成“255.255.255.0”,网关地址设置为 “192.168.1.1”。 接下来再将“使用下面的DNS服务器地址”选中,然后将本地ISP的真实DNS服务器IP地址填写在这里,比方说,ISP真实的DNS地址要是 为“61.172.7.1”时,那我们就可以将该地址填写在这里,同时单击一下“确定”,以便将上面的IP地址参数保存起来,相信这么一来计算机系统日后 就不需要在启动的时候花时间访问DHCP服务器了,那么系统启动速度肯定会更上一层楼的。 5、屏蔽网络映射功能为了方便每次开机后就能快速访问到对方计算机中的共享文件夹,许多人往往会通过网络映射功能将对方的共享文件夹映射成本地计算机中的一个磁盘分 区。这种方式虽然给共享访问带来了很大方便,但是它给系统的启动带来了不小的影响,毕竟系统在每次启动时都需要耗费时间去搜索、扫描、连接对方共享文件 夹,实际上我们并不是每次开机时都需要访问对方共享文件夹,很明显随意开通共享文件夹的网络映射功能,会严重拖慢计算机系统的启动速度。 为了让系统启动速度不受影响,我们可以按照如下操作步骤将本地计算机中暂时不用的网络映射连接断开: 首先用鼠标双击系统桌面中的“我的电脑”图标,在其后弹出的窗口中单击菜单栏中的“工具”项目,从随后出现的下拉菜单中执行“断开网络驱动器”命令,之后选中其中一个暂时不用的网络驱动器分区盘符,再单击“确定”按钮就可以了。 当然,我们也可以直接使用“net use”命令实现断开网络映射连接的目的,在使用这种方法屏蔽网络映射功能时,只需要先打开系统的运行对话框,并在其中执行“cmd”字符串命令,将系统 界面切换到MS-DOS命令行状态;接着在DOS提示符下执行“net use x: /del”字符串命令,就能将网络磁盘分区为“X”的网络映射连接断开了,要想快速地将本地计算机中所有的网络映射连接断开的话,只需要执行“net use * /del”字符串命令就可以了。
12/27/2007 #1:甘道夫 This programmer type looks like a short-list candidate to play Gandalf in The Lord of the Rings. He (or even she!) has a beard halfway to his knees, a goofy looking hat, and may wear a cape or a cloak in the winter. Luckily for the team, this person is just as adept at working magic as Gandalf. Unluckily for the team, they will need to endure hours of stories from Gandalf about how he or she to walk uphill both ways in the snow to drop off the punch cards at the computer room. The Gandalf type is your heaviest hitter, but you try to leave them in the rear and call them up only in times of desperation. 这种程序员看起来,就像是在《指环王》里扮演甘道夫的最佳候选人。他(甚至是她)有着快要到膝盖的胡子,一顶看起来傻傻的帽子,在冬天可能还会穿一件披风或者是斗篷。对于团队来说幸运的是,此人对自己工作的熟练程度就像甘道夫一样。但不幸的是,他们要经常忍受甘道夫长达数个小时的故事的折磨,而内容主要是关于他或者是她是如何不得不在雪地中上山下山,以把打好孔的纸带送到计算机房。甘道夫类型的程序员是你的究极武器,但是你会总是希望能把他们排到后面,只在快要绝望的时候才向他们寻求帮助。
#2: The Martyr #2:烈士 In any other profession, The Martyr is simply a “workaholic.” But in the development field, The Martyr goes beyond that and into another dimension. Workaholics at least go home to shower and sleep. The Martyr takes pride in sleeping at the desk amidst empty pizza boxes. The problem is, no one ever asked The Martyr to work like this. And he or she tries to guilt-trip the rest of the team with phrases like, “Yeah, go home and enjoy dinner. I’ll finish up the next three week’s worth of code tonight.” 对于任何其它职业来说,烈士其实就是一个工作狂而已。但是在开发者的领域,烈士完全进入了另外一个范畴。工作狂至少会回家洗澡睡觉,而烈士们却会以睡在桌子底下的空皮萨盒子堆之中为荣。而问题是,根本就没人要求烈士们像这样工作。而且他或者她总是想用这样的措辞来使团队中的其他人感到内疚,“好的,你们回家吃完饭吧。我会在今晚会完成相当于3个星期的工作量的。”
#3: Fanboy #3:玩家 Watch out for Fanboy. If he or she corners you, you’re in for a three-hour lecture about the superiority of Dragonball Z compared to Gundam Wing, or why the Playstation 3 is better than the XB 360. Fanboy’s workspace is filled with posters, action figures, and other knick-knacks related to some obsession, most likely imported from Japan. Not only are Fanboys obnoxious to deal with, they often put so much time into the obsession (both in and out of the office) that they have no clue when it comes to doing what they were hired to do. 小心玩家。如果他或者是她注意到了你,你很有可能就要接受3至4个小时关于龙珠z与高达谁更强、或者是playstation 3 与xbox 360哪个更好的演讲。玩家的桌子上总是堆满了明信片、动作人偶、以及其他各种各样相关的装饰品,大部分可能都是从日本进口的。玩家们不光是很难相处,他们有的时候实在是太多时间在这些东西上(无论是在办公室内外),以至于他们根本就不明白他们什么时候该干老板雇他们做的工作。
#4: Vince Neil #4:文斯 内尔(一个比较有名的摇滚歌手) This 40-something is a throwback to 1984 in all of the wrong ways. Sporting big hair, ripped stonewashed jeans, and a bandana here or there, Vince sits in the office humming Bon Jovi and Def Leppard tunes throughout the workday. This would not be so bad if “Pour Some Sugar on Me” was not so darned infectious. 这个40岁的家伙就像是颠三倒四的回到了1984.运动型爆炸头,发皱泛白的牛仔裤,还有一条大围巾。文斯还会在工作时间坐在办公室哼着Bon Jovi 和 Def Leppard的歌,这本来也不是很糟,如果《Pour Some Sugar on Me》不是如此的有感染力的话。 Vince is generally a fun person to work with, and actually has a ton of experience, but just never grew up. But Vince becomes a hassle when he or she tries living the rock ‘n roll lifestyle to go with the hair and hi-tops. It’s fairly hard to work with someone who carries a hangover to work every day. 总体来说,和文斯一起工作是很有趣的,实际上他有丰富的经验,只是永远长不大而已。但是如果文斯决定用他或者是她的摇滚风格来处理自己的头发和生活的时候,情况就会变得很棘手。因为和一个每天都带着宿醉未醒的人一起工作,相当困难。
#5: The Ninja #5:忍者 The Ninja is your team’s MVP, and no one knows it. Like the legendary assassins, you do not know that The Ninja is even in the building or working, but you discover the evidence in the morning. You fire up the source control system and see that at 4 AM, The Ninja checked in code that addresses the problem you planned to spend all week working on, and you did not even know that The Ninja was aware of the project! See, while you were in Yet Another Meeting, The Ninja was working. 忍者是你们团队当中的重要人物,但是却没人能意识到这点。就好象传奇刺客一样,你不知道忍者是什么时候工作的,但是你总是在第二天早晨发现他们的成果。于是你急忙打开源代码控制系统,然后发现在临晨4点,忍者提交了一份代码,解决了一个你已经研究了一个星期的问题,而你之前甚至都不知道忍者大人知道你所作的项目的存在。明白了吧,当你还在一次次的开会的时候,忍者一直在工作。 Ninjas are so stealthy, you might not even know their name, but you know that every project they’re on seems to go much more smoothly. Tread carefully, though. The Ninja is a lone warrior; don’t try to force him or her to work with rank and file. 忍者是如此的隐蔽,你甚至都不知道他们的名字,但是你知道每一个他们参与的项目都进行的更顺利。不过,注意点,忍者是孤胆战士,不要试图强迫他们在一个严格的等级和文档制度下工作。
#6: The Theoretician #6:理论家 The Theoretician knows everything there is to know about programming. He or she can spend four hours lecturing about the history of an obscure programming language or providing a proof of how the code you wrote is less than perfectly optimal and may take an extra three nanoseconds to run. The problem is, The Theoretician does not know a thing about software development. When The Theoretician writes code, it is so “elegant” that mere mortals cannot make sense of it. His or her favorite technique is recursion, and every block of code is tweaked to the max, at the expense of timelines and readability. 理论家知道一切编程需要知道的东西。他或者是她可以花4个小时去探讨一个很冷僻的语言,或者去证明你写的代码是如何的不完美并且有可能会在运行的时候多花3纳秒。问题在于,理论家根本就不知道什么叫软件开发。当理论家写代码的时候,他的代码是如此的“优美”,以至于我们这些凡人根本就看不懂。他或者她最喜爱的技术就是递归,每一个代码块都被使用到了极致,而代价就是工程进度和可读性。 The Theoretician is also easily distracted. A simple task that should take an hour takes Theoreticians three months, since they decide that the existing tools are not sufficient and they must build new tools to build new libraries to build a whole new system that meets their high standards. The Theoretician can be turned into one of your best players, if you can get him or her to play within the boundaries of the project itself and stop spending time working on The Ultimate Sorting Algorithm. 理论家还很容易分心。一个花一个小时就能完成的工作,理论家们往往需要三个月。因为他们认为当前的开发工具不够好,所以他们必须开发一些新的工具来构建新的库从而构建一个全新的系统来迎合他们的高标准。理论家可以成为你最好的团队成员,前提是你能让他专注于你们所做的工程本身,而不是把时间都花在究极排序算法上。
#7: The Code Cowboy #7:代码牛仔 The Code Cowboy is a force of nature that cannot be stopped. He or she is almost always a great programmer and can do work two or three times faster than anyone else. The problem is, at least half of that speed comes by cutting corners. The Code Cowboy feels that checking code into source control takes too long, storing configuration data outside of the code itself takes too long, communicating with anyone else takes too long… you get the idea. 代码牛仔是一种无法阻止的天性。他或者她几乎总是一个厉害的编程者,并且总是能以别人2至3倍的速度完成工作。问题是,这些代码至少有一半都靠偷工减料得来的。代码牛仔认为把代码提交到源码控制系统太麻烦,把配置信息存贮在代码之外太麻烦,和其它人交流太麻烦……你懂我的意思吧。 The Code Cowboy’s code is a spaghetti code mess, because he or she was working so quickly that the needed refactoring never happened. Chances are, seven pages’ worth of core functionality looks like the “don’t do this” example of a programming textbook, but it magically works. The Code Cowboy definitely does not play well with others. And if you put two Code Cowboys on the same project, it is guaranteed to fail, as they trample on each other’s changes and shoot each other in the foot. 代码牛仔的代码就好像意大利面条一样搅在一起,因为他或者她工作的事如此之快,以至于必要的重够都没有做到。很有可能的是,七页长的核心功能代码也许看起来就像是教科书上关于“不要这么做”的示例,而这些代码居然还神奇的可以运行。代码牛仔绝对没办法和别人一起工作。而且,如果你让两个代码牛仔进入同一个工程,那这个工程一定会失败,因为一个总是被另一个人对代码做的修改而干扰,他们总是拼命的在开枪射击自己搭档的脚。 Put a Code Cowboy on a project where hitting the deadline is more important than doing it right, and the code will be done just before deadline every time. The Code Cowboy is really just a loud, boisterous version of The Ninja. While The Ninja executes with surgical precision, The Code Cowboy is a raging bull and will gore anything that gets in the way. 当按时完成一个工程比把这个工程做好更重要的时候,把一个代码牛仔加入进去吧,这个工程会在截至日期之前完成的。代码牛仔其实就是一个吵闹版的忍者。只是忍者像做外科手术一样精准的编码,而代码牛仔像一只难以控制的公牛,会把所以挡在它面的东西顶翻。
#8: The Paratrooper #8:伞兵 You know those movies where a sole commando is air-dropped deep behind enemy lines and comes out with the secret battle plans? That person in a software development shop is The Paratrooper. The Paratrooper is the last resort programmer you send in to save a dying project. Paratroopers lack the patience to work on a long-term assignment, but their best asset is an uncanny ability to learn an unfamiliar codebase and work within it. Other programmers might take weeks or months to learn enough about a project to effectively work on it; The Paratrooper takes hours or days. Paratroopers might not learn enough to work on the core of the code, but the lack of ramp-up time means that they can succeed where an entire team might fail. 你知道那些电影吧,就是指挥官带着机密作战计划被空降到敌人战线之后。在软件开发中,这样的人叫伞兵。伞兵是你对一个将要失败的工程的最后援助。伞兵们缺乏在一个长期任务上工作的耐心。他们最大的价值是拥有快速学习一堆完全陌生的代码并且使用它们工作的惊人能力。其他程序员也许要花几个星期或者其几个月来熟悉一个工程,以便可以有效的参与其中;伞兵们只需要几个小时或者几天。伞兵快速学会的东西也许不能让他们编写核心代码,但是,没有足够的时间形成一个固定的见解可能会帮助他在整个团队失败的地方取得成功。
#9: Mediocre Man #9:庸才 “Good enough” is the best you will ever get from Mediocre Man. Don’t let the name fool you; there are female varieties of Mediocre Man too. And he or she always takes longer to produce worse code than anyone else on the team. “Slow and steady barely finishes the race” could describe Mediocre Man’s projects. But Mediocre Man is always just “good enough” to remain employed. “足够好了”,这就是你从一个庸才那能听到的最好的话。他或者是她总是花更多的时间写出比团队中其他任何人都更差的代码。“缓慢,刚刚符合要求”就是对庸才所作的项目的描述。但庸才们总是能做的“足够好”,以至于刚好不会被解雇。 When you interview this type, they can tell you a lot about the projects they’ve been involved with but not much about their actual involvement. Filtering out the Mediocre Man type is fairly easy: Ask for actual details of the work they’ve done, and they suddenly get a case of amnesia. Let them into your organization, though, and it might take years to get rid of them. 当你面试这种人的时候,他可以告诉你很多他到参与过的项目,但却很少提到他们到底在这些项目里做了什么。筛出这些庸才的方法很简单:问一下他所做工作的细节,他们会突然得了健忘症。但是,一旦让这种人进入你的组织,你可能要花好几年才能再摆脱他们。
#10: The Evangelist #10:传教士 No matter what kind of environment you have, The Evangelist insists that it can be improved by throwing away all of your tools and processes and replacing them with something else. The Evangelist is actually the opposite of The Theoretician. The Evangelist is outspoken, knows an awful lot about software development, but performs very little actual programming. 无论你在用哪种编程环境,传教士总会坚持认为如果你把现有的工具和工序抛弃掉并换成其它的一些东西,会对你有很大的帮助。传教士实际上就是理论家的反面。传教士总是直来直去,对软件开发很了解,但却很少真正的去编码。 The Evangelist is secretly a project manager or department manager at heart but lacks the knowledge or experience to make the jump. So until The Evangelist is able to get into a purely managerial role, everyone else needs to put up with his or her attempts to revolutionize the workplace. 传教士有一颗项目经理或者部门经理的心,但却缺乏足够的知识或者经验来完成这个跳跃。所以在传教士最终成为一个纯管理者角色之前,其他人不得不一直忍受传教士们对于彻底革新工作环境的尝试。
不知道现在自己算是哪种类型的,貌似还是很像第7种的,都是托了客户需求一天到晚不停地变的福了,不过也有点向着第五类靠拢了。。。。。。诶,慢慢向着第一类的方向努力吧。。
|