正式升级为DIY果粉
作者:会写代码的猪 发布时间:April 2, 2010 分类:实在没分类 1 Comment
近期开始使用苹果的东西,发现这家公司的设计理念真的可以用 伟大 来形容,我被俘虏了,升华为 果粉 一枚。
请看我DIY的苹果设备:




作者:会写代码的猪 发布时间:April 2, 2010 分类:实在没分类 1 Comment
近期开始使用苹果的东西,发现这家公司的设计理念真的可以用 伟大 来形容,我被俘虏了,升华为 果粉 一枚。
请看我DIY的苹果设备:



作者:会写代码的猪 发布时间:March 28, 2010 分类:实在没分类 2 Comments
天下大势,分就闭合,合久必分,是时秦汉依然落寞,大一统的局面不复存在,一时间天下群雄并起,但有三家割据一方,北魏,东吴,西蜀,成三足鼎立之势。
而此时的西方社会,正在令人发指的快速发展,无论从科学技术还是经济水平,甚至是宗教信仰都以非人类的速度发展着。
看我们的伟大祖国,其他两家不表,但表西蜀。李白老师早有诗曰“蜀道难,难于上青天”,交通问题成了西蜀发展的大问题。从卫星看去,此处居于我过西南,原本郁郁葱葱的原始森林也早已荡然无存,成了跟炎黄子孙的脸一个颜色。祸不单行,数年前的一场地震,更是给蜀地人民的生活雪上加霜。那时,灾后重建中,有一句话在民间广为流传:要想富,先修路;少生孩子,多种树!人民在呼唤一位领袖的出现,可以带领他们开发西部,脱贫致富,不拖祖国经济的后腿,为祖国的伟大复兴做出自己的贡献。
话说后汉有一位皇叔,姓刘名备字玄德,家住大树楼桑。此人面向古怪,身体结构有返租现象明显,让人一见总会怀疑,此人的祖父是不是个类人猿,估计他们家计划快,变到他这也就第三代。当时,人们流传着一句话,不见刘皇叔,终生遗憾;见了刘皇叔,遗憾终生!据说此人能为,经历丰富,10万天兵天将奈何不了他,曾经在灵霄宝殿上与玉皇大帝称兄道弟,12星君对此人都要毕恭毕敬,天上地下,人脉甚广。后此人回到凡间,寻了一处山水,建了一座城寨,盘踞一方,以“替天行道”为价值观,打造了一只强大的队伍。据说此城中他的府邸,极尽奢华,乃是当年从天宫回来时,玉皇所赠,那门上还书着:敕造荣国府。
正是这样一位诡异之人,在广大的人民群众最需要的时候,站了出来。并纠集一班兄弟,与关羽张飞八拜结交,结成兄弟。话说这三位弟兄,正然要在天府之地大干一番之时,感觉到了严重的力不从心。于是乎,三人经过紧张激烈,严肃活泼的讨论,决定:留学,去学习西方的先进科学技术,师夷长技以自强!
三人又想,我三人皆是一介莽夫,未曾离开过这一亩三分地,别说出国,就连四川盆地都没爬出去过,怎能去西方呢?还是应该寻求以为能人助我我弟兄。于是乎此三人,百般查访,动用了一切手段,甚至翻墙出去用了google搜索,终于找到一位能人,可担此重任。
此人正是:玄奘大官人,同时也是一位得到的高僧,也有人叫他 玄奘法师!
于是乎,三位弟兄礼贤下士,三顾茅庐,请玄奘法师出山。玄奘法师在他的卧龙岗与刘皇叔进行了亲切的会谈,最终二人愉快的决定:干!
于是乎,这四人就组成了一只有史以来成员最完整,使命最高尚,能力最强大的队伍,浩浩荡荡开往西方。
话说这一日,四人来到一座小城,此城中热闹非凡,买卖铺户林列街边,啥是一派繁荣的盛世景象。四人正往前走着,突然间,玄奘法师哎呀一声!可吓坏了三位兄弟,莫非这光天化日之下,还有妖怪!可定睛一看,三人才算放心,原来是街旁阁楼以上,一根支窗户的的木棒落下,正好砸了玄奘法师。
四人抬头看去,那二楼的窗口,有一位美貌的小妞,正探出半个身子。柳叶眉,眉梢带着妩媚,杏核眼,眼角带着风情,樱桃口,口边丝丝微笑,面白如玉,淡妆轻饰,出水芙蓉一般。看的这四位是聂呆呆的发愣啊。只见这小妞轻启朱唇,哇塞,真是燕语莺声啊:玉帝gg, Excuse me, Sir. I'm sorry for that. May I have it back?
这一砸可不要紧,玄奘大官人犹如三魂出鞘,茶不思饭不想,眼前过的都是这貌美的小妞。可刘皇叔这三兄弟急坏了,玄奘老师可不能就此沉沦啊,咱得想想办法。是时,关二爷张口说到:大师兄,我看不如求求隔壁的王婆吧。大爷闻听:呆子,求人办事你得客气点,怎么能叫王婆呢?叫王母!张三爷听到此处,赞到:二师兄啊,我看还是听大师兄的吧。三个人就这么愉快的决定,去求求隔壁的王母娘娘。
想不到王母娘娘听了三人的描述,慨然应允,大包大揽,拍着胸脯说,这是抱在她身上!这王婆做事还真是利落,起身就走,直接去找那美貌的女子。王婆上楼,边走边喊:金莲啊,有事找你。那女子原是潘家第一位丫鬟,后来辞职出来,自己一个人租住在这里,自由职业。潘姓女子看了王婆,就满心的不高兴,张嘴就问:你是猴子请来的救兵吗?
王婆闻听一愣,莫非这三人没跟我说实话?听这丫头的意思这三个人已经采取过行动了啊!
------------------------------------------------
写到这,我饿了,去吃饭了。回来高兴,就继续写,不高兴就算了。
作者:会写代码的猪 发布时间:February 20, 2010 分类:猪在写代码,全说中国话 2 Comments
最近想看看Cassandra的源码,于是去看他们的wiki,先把一个概述翻了,当誓师,hoho
原文链接:http://wiki.apache.org/cassandra/ArchitectureInternals
General
概述
Configuration file is parsed by DatabaseDescriptor (which also has all the default values, if any)
DatabaseDescriptor是专门解析配制文件的,配制的默认值也跟这定义。
Thrift generates an API interface in Cassandra.java; the implementation is CassandraServer, and CassandraDaemon ties it together.
Cassandra.java调用Thrift(一个apache的跨语言框架)产生一个API接口,CassandraServer负责实现,CassandraDaemon把二者联系起来。
CassandraServer turns thrift requests into the internal equivalents, then StorageProxy does the actual work, then CassandraServer turns it back into thrift again
CassandraServer把thrift请求丢到一个内部容器里,然后StorageProxy来完成具体的工作,CassandraServer再把它拿回到thrift。
StorageService is kind of the internal counterpart to CassandraDaemon. It handles turning raw gossip into the right internal state.
StorageService是一个类似内部CassandraDaemon的玩艺儿。它就是为了让那些还没处理过的请求待在他们应该在的位置上。
AbstractReplicationStrategy controls what nodes get secondary, tertiary, etc. replicas of each key range. Primary replica is always determined by the token ring (in TokenMetadata) but you can do a lot of variation with the others. RackUnaware just puts replicas on the next N-1 nodes in the ring. RackAware puts the first non-primary replica in the next node in the ring in ANOTHER data center than the primary; then the remaining replicas in the same as the primary.
AbstractReplicationStrategy控制节点等级。每一个键的副本都有顺序。主副本是由定义在TokenMetadata里的token ring决定的,但是在其他副本上你可以有很大的发挥空间。RackUnaware只负责把副本送到环上另外N-1个节点。RackAware把把第一个非主副本放到不同于主副本的另外一个数据中心的后续节点上;剩下的副本就跟主副本在一起了。
MessagingService handles connection pooling and running internal commands on the appropriate stage (basically, a threaded executorservice). Stages are set up in StageManager; currently there are read, write, and stream stages. (Streaming is for when one node copies large sections of its sstables to another, for bootstrap or relocation on the ring.) The internal commands are defined in StorageService; look for registerVerbHandlers.
MessagingService统筹链接并在合适的阶段运行内部命令(其实就是个线程池)。各个阶段由StageManager发起;目前包括读,写和流阶段。(流,是当一个节点需要拷贝一个大段数据到另外的节点时,提供环上的引导和重定位。)内部命令在StorageService中定义,参考registerVerbHandlers。
作者:会写代码的猪 发布时间:February 12, 2010 分类:有话好好说 1 Comment
腊月二十九,我坐在办公室里。办公室很清静,三两同事在远处敲着键盘,这个时候办公室不是一个合适的氛围。
今年是自己出来以后的第一个春节,此前的那些印象已经模糊了,因为可以在随便想回家的时候就回去,因为周围的人们也都一样,大家还在无忧无虑的过着梦一样的校园生活。不用面对无奈的生活,不用面对反常的社会,只要简单的做好自己。而现在,有人还在为工作奔波着,有人还在准备考研...大家都在各自忙碌着,而到了这个时候,这些,我也更想念大家,想念曾经那种日子,那种不可能再回来的日子。
往年春节总要想想给爸妈带点什么东西,今年呢,忙忙碌碌的,实在是没想起来买什么东西...想来想去,爸妈需要什么,还是回去多陪陪爸妈吧。
上午出门的时候,冷,很冷,还有风,冷的有年味。路上的人多是提着大包小包的行李,匆匆忙忙的赶路,想起网易的一个春节专题栏目 1/10流浪的中国,我也在流浪啊。几个小时以后,我也会这般样子走在回家的路上,不知道是高兴呢,还是有些凄凉。唉,天都这么凉了,还是幸福一点吧,就要回家了。
想想有很多话要说,坐下又写不出来,只祝福大家新年快乐,祝福爸妈身体健康,祝福,祝福...
作者:会写代码的猪 发布时间:February 5, 2010 分类:猪在写代码 3 Comments
在公司的一个项目的第二次迭带中,团队决定尝试使用结对编程的方式。我从未尝试过这种编程方式,但仅从想像中去衡量,其实我并不喜欢这种方式,也不认为这种方式会提高我个人的工作效率,又或者对我个人成长真的有那么大的利好,以至于我们要迫不及待的去进行。但团队中几乎全部同事同时认为这是一件大好事,因此我决定还是用一天的时间去试试,去体验一把,再做定论。
当我结束一天的结对编程后,回到家里小总结了一下,虽然跟上面提到的想像中的场景不太一样,但结论仍然是:我个人对这事不太感冒。但出于这样的考虑,可能是由于初试这种工作方式,不得要领,又是戴着些许情绪的,所以结果会比较负面,我决定再去尝试一天,而且努力去适应它,但如果一天工作结束后,结果仍然很不乐观,那么我认为这是一中不好的工作方式,至少对我来说是不好的。
------------以上是周一晚上记录在google docs上的------------
今天白天我再次让自己尝试结对,一个上午的时间...我下午决定放弃结对,中午跟Team吃饭的时候,讨论到这个话题,谈到了“因人而异”,确实这个工作法真的是因人而异。
------------以上是周二晚上的记录------------
题记:今天周五,team周会,我们谈到了“结对编程”的问题,还有之前我查了一些关于“结对编程”的资料,这里我就说说我对“结对编程”这种工作方式的看法。
首先,我们要明确,“结对编程”这仍然是一个处在试验阶段的工作方法,我去查了一些学术资料,无一例外,所有的文章对“结对编程”的介绍都是持试验态度,分别介绍其优劣。另外一些文章中,虽有对“结对编程”大肆追捧的,却也在一部分,没有一边倒的迹象。但在国内的一些文章中,这个比例的确较高。
本文,我也不讲“结对编程”的优劣势,网上到处都有,稍后文章后面附上一些资料,只聊聊这一周我的感受。
在我看来,“结对编程”作为一种工作方式的诞生,是对“编程”这个工作本质的一种转移。或者说在某些变成活动中“结对”并不合适,而在另外一些则可以。“结对编程”的优势无非在于:提高代码可读性,减少项目个人依赖,降低错误率,促进个人成长。但我们看这些特性,事实上并不属于一个绝对意义,或者说纯粹意义上的编程(hack理念的编程),而是一种代码工业化的最需要具有的性质。
但这种工业化需要的性质,通过“结对”方式也不能保证达到,因为不同的程序员有着不同的工作习惯,有些人就是喜欢单独工作,不希望别人的干扰,当“结对”时,会大大降低他的工作效率和工作质量,这就适得其反了。
说道具体的工作中,往往我们容易使用一些极端做法去做事,这明显是存在问题的。例如在项目中大规模使用“结对编程”的工作方式,而没有考虑到这种仍然处在试验中的工作方式到底是否适合我们这个团队,到底是否适合团队中的每个人。
在工作方法的选择上需要因事而异,更需要因人而异,谨慎选择。