下班的墨菲定律

下班的时候墨菲定律经常会发生,哭笑不得。今天又是一回。

我们一般18:00或者18:30下班(看Team安排)。今天北京下雨,老婆说下班在立水桥接我。昨天老婆说要我18:00出发,结果我实际18:27才出来,被数落一顿。今天长记性了。下午四点老婆打电话叮嘱今天一定18:00出发,我斩钉截铁的答应了。

到了17:00,我的Pair钱钱同学有一个会要参加,先离开了。我们今天做的Feature还有一些,我就继续往下做。到了17:30的时候我继续开发的部分不是很顺利,这时发现是我和钱钱之前重构的一个方法工作不正常,已经Break了不少单元测试,一时汗下。我看了一下,没什么头绪。这个时候当下已经攒下了1个多小时的修改没有Check in了,我review了一下修改,发现最好不要revert重来,可是20分钟我似乎也解决不了这个问题,而我一定要在20分钟后写好work update走人。正在踌躇的时候……

WPC对我说,你好像Break了Javascript单元测试……而且,那个Cruise agent被hang住了,需要重新启动一下那台服务器。顿时更汗了。想起上次Check in的时候只运行了precommit(就是提交到持续集成服务器之前的本地快速测试,只执行单元和快速的functional测试),没有验证javascript测试。嗯,认栽,前天写这个单元测试的时候我和Linc同学就怀疑过它的脆弱性(因为这两天在尝试Acceptance Test驱动,从上到下有些摸不到头脑)。

所以现在必须Git stash起来,切回master去修build。还好git在这方面表现很迅速。

切回来一看,Test suite里面的三个测试都break了。在有firebug的ff3里面运行jsunit还是没有线索……没有抛出exception,所以没法快速定位到代码里面去。只得先限定执行单个测试,但是依然没有找到原因。这个时候是18:57分,我心想:这下要死了,倒霉。要求自己冷静一下,一行一行的在firebug里面运行代码,发现这里的几个对象的构造参数已经被我们做了很大的重构,赶紧修改过来。然后继续跟踪,找到了出错的地方。原来是一个html元素的id从’_’分割改为了’-‘分割,修改过来。这个测试通过,解除另外两个的注释,也通过了。立马check in,然后git svn dcommit提交上去。此时已经18:03。赶快登陆cruise查看hang掉的agent的机器名,再登陆mingle09,在wiki上面搜索build vm的信息,找到这台主机的登陆方式。ssh上去并且和WPC确认reboot既可,马上sudo reboot。此时是18:05,走快点也许能赶回这五分钟。1分钟内把Macbook pro和电源打包,ipod touch和各种零碎放到包里面,飞速和大家say good bye逃跑出来……此时是18:07……

点天过了15秒才到11层,然后墨菲定律再次发生,10、9、8、7、6层都有人上电梯,这个要blame倒霉的诺基亚西门子,他们的人总是再这几层稀稀拉拉的拉拉稀稀……不情愿的在1层夺门而出,麻利的奔向13号线……一溜烟,而后墨菲没有来……

真的不知道为什么这样,倒霉在这几个点:

  1. 需要你的pair的时候他会不在,他在的时候……
  2. 着急做完所剩无几的功能,却发现前面的重构break了另外的功能(这个赖自己)
  3. 欲速则不达,越想马上完事,却发现还有更多的事要搞定
  4. 本来遇到麻烦发愁如何解决,却又被加上了一个严格的时间限制
  5. 马上就要到deadline了,确发现有更重要的事情要做(Break了持续构建)
  6. 更惨的是,你Break的测试hang掉了,需要重启服务器
  7. 而你还必须冷静的fix那些测试
  8. 那些测试没有啥明显的线索去fix
  9. fix之前你还要处理原先做的那些功能的代码
  10. 即使fix了也提交了,你还不能拍屁股走人,重启服务器你就要知道怎样登陆
  11. 登陆信息你要登陆Cruise和Mingle……谁让你平时没登陆过呢(如果经常维护Build也许你就对这样的串门很熟悉)
  12. 登上去以后你还要问人家怎么解决这个hang掉的build(同上,谁让你很少去维护基础设施呢)
  13. 即使你可以走了,电梯里面那些悠闲的从楼上乘电梯下一层的人让你冒火

无论如何,承认墨菲定律就是会在你着急下班的时候生效,然后找个地方凉快凉快吧。

选购床垫

如果商品的价格和它的功能或者质量没有什么明显的关系,那么选购的过程就变得麻烦了。这两个周末都花在家居卖场,选购一个新床,和床垫。

现在所睡的床是1.5m x 2.0m的,两面有床梆,所以加上枕头以后脚就超出了床梆,平躺的时候不舒服。这次选择的是1.8m x 2.0m单侧没有床梆的床。现在所睡的床买的时候大概是4k+,实木床架,算下来多半的钱是花在这只床架上了。传统的实木床架,厚重,让人感觉它会很结实。可是由于现在的实木家具很多都使用了金属铰接,所以长时间使用后会有松动的问题,坐在上面重一点就会嘎嘎响,让人不快。而且最大的问题在于我们传统床具使用的是床板承托床垫,床板是结实的实木的话缺少了身体所需的弹性和弧度,并不适合我们年轻奔三的人。这次选购就要解决这两个问题。

在北京,想上一个床具结构的课程,去IKEA看一看是非常好的选择。因为IKEA有板式、实木、铁艺等多种床架,有不同排骨架的介绍,还有非常详细的床垫结构对比。我和老婆经过学习以后得出如下结论:

  1. 床体本身在整个床里面对舒适度贡献最小(个人评价10%)。床体最重要的指标是结实程度,这个看插接件和各种铰链的设计和材质。还有就是美观程度了。床梆是否包覆织物和填充对价格影响比较大。比较实用的设计是床体内嵌床箱,但是这样的床一般使用液压杆设计,对稳固度有一点影响。
  2. 排骨架对床的舒适度贡献比较大(个人评价25%)。排骨架就是排布在床梃上面的多条有弹性的骨架,一般都是木制的。因为人的身体各个部分需要的支撑不一样,排骨架呈弓形,在身体压上去以后会根据压力的不同产生不同的变形。如腰部在身体上是内凹进去的,如果使用排骨架此处压力小,回弹就大,可以对腰部产生足够的支撑,长期使用回明显提高舒适度。排骨架的一般指标是数量,也就是排骨架越多就能提供越精细的支撑,一只2.0m的床一般有12-14只排骨架。排骨架的弹性非常重要,挑选的时候最好按一按,可以的话躺一下排骨架也是可以的。
  3. 支撑龙骨,也就是床梃。IKEA的床架一般是只有一只木制床中梃,目的是保证两人的身体可以直接压在排骨架上,提供最多的弹性。不过家具卖场的钢制床架一般使用双中梃设计,这样比较结实,但是两边的排骨架的下探会有影响。所以选择对排骨架下探影响小的床挺设计比较舒服。那种多条中梃平均分配的设计是最差的。
  4. 床垫。这个对床的舒适度贡献最大(个人评价65%)。而且床垫的挑选也是最最最麻烦的。一般来说床垫有以下几种:
    • 拉斯床垫:名字我写的可能不准确,这种就是以前俗称“席梦思”的床垫,结构上是连体弹簧。一般售货员会说是美国进口的一根钢丝弯出来的床垫,这种垫的特点就是软,坐上去以后包覆感觉很好。由于包覆感好,所以容易被误以为睡觉的时候感觉也好。实际上由于是联动的弹簧矩阵结构,所以睡觉的时候对身体的体型贴附不好,睡久了容易腰部酸。以前老人总说睡软床不舒服就是这个原因。这种技术还是很常见,不过老厂家居多,个人感觉这种设计属于淘汰产品。
    • 独立袋装弹簧垫:宜家除了最低端的弹簧床垫是拉斯的,其余大部分弹簧床垫都是独立袋装弹簧。这种结构就是通过无纺布袋子减少弹簧之间的摩擦,让它们独立运作,给身体不同部位不同的支撑力。弹簧的软硬度不同,造成这种床垫从软到硬不同的区别。一般来说选择软硬要根据自己的体重来计算,我这个身高(180)得是66公斤以下选择软的,90公斤以上选择硬的,去IKEA的床垫区是有一个对照表的。还有就是睡姿,仰睡的适合偏硬的,侧睡和俯睡(哪位朋友每天附睡呢?我比较好奇)适合便软的。我和老婆最后选择的中度软硬的床垫,因为我们俩的身高提供在这个区域。如果两个人需要不同软硬的床垫是可以选择两个单人(如90cm x 2.0m的)来拼,感觉会好一些。
    • 聚酯床垫和乳胶床垫:其实两者差距还是非常大的,但是体感比较类似。它们都属于很贴身的床垫,弹性非常好。它们是最贴身的床垫,比弹簧的还要好很多。不过比起弹簧床垫来说它们的支撑力不同。聚酯床垫也就是我们常说的记忆绵,它的特点是塑性效果好,不管你是哪种睡姿它都能超级贴身,形成一个和你身体一样的模子,缺点是回弹比较慢,所以理论上说对身体凹陷部分的支撑也稍微差一点,这个性能不如弹簧,但是优点是睡起来超级柔软和舒服。而乳胶提供了类似的柔软舒服的感觉,而且乳胶的回弹能力非常强,能够对腰部提供非常好的支撑,所以现在一般都推崇使用乳胶床垫。不过,乳胶床垫很贵,1.8m x 2.0m的在IKEA要6k,网上也要3k左右,网上还说乳胶床垫要5cm以上才有感觉。
    • 海面床垫:柔软,比较舒适,价格便宜。对潮气的隔离差。一般来说单独的海面床垫选用的比较少,因为它除了便宜没啥特别的优点了,对身体的支撑性比较差。

这些知识我基本上就是从IKEA那里学到的。其中床垫的部分我感觉经过学习以后茅塞顿开:D 因为每一种材料的特点我已经烂熟,所以最后我和老婆把购买计划这样制定:

  1. 购买板式的床体,价格适中的就可以,要有比较大的床箱,液压部分要加固。外观要尽量简洁,不要床头包覆。床体要要使用排骨条。
  2. 床垫要中度偏软的独立袋装弹簧,上附5cm+聚酯和5cm+的乳胶。弹簧一般15cm厚,5cm聚酯+5cm乳胶的话一般床垫要25cm-30cm。

我们逛了北京的集美、城外诚、爱家等多个家具卖场来挑选床垫,最后发现了红星美凯龙里面有两家不错的,一家是大连的“Jinling”,一家是“幻之曲”。后者实在很贵,是一家美国品牌,乳胶床垫居多,基本上都在万元以上,打折以后也要8k+,超出我们预算很多。最后就选了这家做出口的Jinling,主要是我看了下它架的技术手册,结构很透明,而且基本上每只床垫躺起来都很舒适。我们选择的这只4.1K送两只乳胶枕,特点是袋装弹簧是3个独立分区的,对上下半身和腰部提供不同的支撑,5cm乳胶和5cm聚酯复合,和我们计划的一致,所以当然就是它了。至此我们的选购过程结束。

这次的经验就是选择家里面的东西最好理性一些:调研->学习总结->计划->采购,水到渠成。抱歉时间又花在none-tech话题了 x_____x

升级一下我的DSLR需要多少钱?

给我自己计算一下如果升级一下我的单反需要多少钱?我目前的配置是:

  • D50机身+遥控+3电池
  • Nikon 18-70/3.5-4.5, 50/1.8D, 70-300/4.5-5.6?
  • Sigma 10-20
  • Tamron 28-75/2.8

也就是1机5头,目前主力是18-70和10-20两个头,重复焦段的Tamron头比较少使用,70-300基本从来不用,50那个头用来拍一些。没有闪灯。 这个配置是因为当时比较发烧,所以迅速入手了这些头(他们都是2手的,所以目前没有贬值的压力),现在看来不是很完备。

D50我已经用了3年以上了,目前快门应该有6w-8w了(最近没有检查)。所以也许是时间计算一下升级的花费了。最近在听Jams Duncan Davidson的Tach Sharp这个Podcast,越来越迷D700了,对于室内摄影来说全幅非常有意义。

如果是全幅,可能的配置如下:

  • D700机身:15940
  • Nikon AF-S 24-70/2.8:12666
  • Nikon AF-S 12-24/4G:6899
  • Nikon 105VR/2.8:5300
  • Nikon 70-300VR/4.5-5.6G:3366
  • Nikon 50/1.8D:0(已有)
  • Nikon SB800:2400

我会出售Tamron 28-70/2.8和70-300还有10-20三个头,约值4700,总成本是:64445-4700=59745。也就是6万元。

如果不是全幅,可能的配置如下:

  • D300机身:8999,D90:6699
  • Nikon DX 17-55/2.8:9050
  • Sigma 10-20:0(已有)
  • Nikon 105VR/2.8:5300
  • Nikon 70-300VR/4.5-5.6G:3366
  • Nikon 50/1.8D:0(已有)
  • Nikon SB800:2400

我会出售Tamron 28-70/2.8和70-300两个头,约值2200,总成本是:(29115 -> 26815) – 2200 = (26815 -> 24615),也就是两万五到两万七。

这么说,虽然D700可以极大的提高装备的等级,可是投资还是翻番了。不过上全幅可能是早晚的事。也许安全的选择是D90 + 18-200,然后出18-70。谁知道呢,反正现在脑子里的酱紫有了点条理,不过还是黏糊。

Tin在Twitter上的扯淡 on 2009-01-24

  • 今天带老婆去了南锣鼓巷,一些店家已经过春节去了,余下的一般给我们留下了深刻的印象。用玩的心态体味生活,让别人羡慕去吧。老婆买了手绘钱包,我买了一些小贴纸和胸牌,钥匙链等等。 #
  • 中午在南锣鼓巷吃的印度菜,没有在印度吃的好吃。我和他们要的Parata实际上是Butter Nan,而且他们看到要我用手撕饼包咖喱吃还过来教我用勺分餐到自己的盘子里斯文的吃。心想真是不地道,我在印度的时候同事们都是教我这么吃的。 #
  • 在印度25卢比(5元人民币)3个的非常漂亮的带很多小镜子的手镯,在南锣鼓巷的印度风情小店里面要128人民币一个,也就是76倍的价格!好厉害。我们还买了两个口味的印度香。 #
  • 中午的印度菜点了:烤什锦蔬菜、Mango Lassi(就是芒果酸奶)、奶油馕、白米饭、蔬菜咖喱(扁豆、土豆、青豆、豆腐、Tandoori)、鸡肉ola masala(番茄、土豆、鸡肉,口味比较酸,还不错),一共133元。环境一般。不过从服务员到大厨都是纯印度的。 #
  • 晚上看了疯狂的赛车。天通苑隆德广场的万达影城2号厅,数字播放,我发现他们的播放机有一个A区坏点(绿色),有点影响视觉体验。电影的确值票价,挺棒!能连败两部这样的片子很有刷子。不过我敢说现在最具票房吸引力的是喜洋洋与灰太郎,太火了! #
  • @alexdong 赶快和EMS确认收货地址吧!我们因为这个投诉了一个低掉,最后3方对峙,邮局最后说地址错了。因为他们都是手工抄写地址,经常把胆子搞错。EMS就是一堆屎! #

Powered by Twitter Tools.

Tin在Twitter上的扯淡 on 2009-01-23

  • Rails Envy Podcast实在是很搞笑!是寓教于乐的典范。每集都介绍n多库和消息,并不深入,但是这些八卦给有心人留下了一些googling的管检测。 #
  • @zhaozexin 是不是查汇率都用Yahoo财经?我观察到的现象是这样的。这个服务真是公益呀。 #
  • 刚才看到大辉共享的关于Twitter显示API使用大户的文章。其实上次和@jasonlai聊天就提到了,twitter早已经找到了自己的盈利模式,其中重要的一点就是数据挖掘,卖高价的Report。所以它现在才不让大家通过自来水管子抽它的金子:D #
  • @quakewang JQuery有Prototype兼容模式,加进来用为渐进式增强的lib很好。如果你遵循语义化标签的microformat,它擅长于做透明的decoration。不一定非要等rails3嘛。 #
  • 我把家里的下载电脑换成Ubuntu了,因为发现我用的官方eMule经常意外退出。到了Ubuntu就可以用cron检测emule,让它重启!(这个简单事就不monit了) #

Powered by Twitter Tools.

Tin在Twitter上的扯淡 on 2009-01-22

  • Beijng’s sky is pretty clear today! It shows beautiful blue in dawn. But it’s deadly cold today! There are lots of frozen nose on street. #
  • @jasonlai @gmark 还兴幸灾乐祸呢……春节快乐!要大度。好不好要自己尝过才知道,没准在你们的机器上很好用呢? #
  • @icecloud 你比较与众不同! #
  • @toafu 我感觉不只是twitter年?是Collaboration Intelligence年。所有的聚合和人肉过滤应用在今年都要开花了! #
  • @xli Congratulations! Don’t forget to take some candies back. #

Powered by Twitter Tools.

Install postgres ruby gem on leopard

My postgres is installed by macports. So it’s located in /opt/local. When I try to install postgres ruby gem (because my postgres-pr stop working), I met exceptions. And after googling some blogs, I still can’t make it works. But I think Getting PostgreSQL running for Rails on a Mac is the correct way.

So I went to /Library/Ruby/Gems/1.8/gems/pg-0.7.9.2008.10.13 folder and run:

sudo extconf.rb –with-pgsql-include-dir=/opt/local/include/postgres83 –with-pgsql-lib-dir=/opt/local/lib/postgres83

the /opt/local…postgres83 is the header folder and the lib folder of postgres installed by macports.
And after that, just do:sudo makesudo make install
And it success. Hooray!

如何让用户付钱?

World of Goo现象,它有82%的盗版率,但是两个创立者还是赚的盆满钵满。用相对的低价策略来对抗盗版问题,盗版用户不一定站在生产者的对立面。反观被严重盗版的东西可能缺少了一些重要的附加价值,而是通过一些绑架式的手段来强迫我们掏钱,不开源卖给我们服务的微软就站在我们的对立面,不仅用版权,还用一个用户/软件环境来绑架我们,可是我们得到的是什么呢?国内的唱片业也有这个问题,包装不精美,CD压片质量差,那么我们凭什么买正版。答案是:做好产品,提定可负担的价格。我现在就会买在Last.fm上面听到的真的很好听的歌的专辑,而试玩完World of goo以后我也不会去选择盗版,而是准备预算去购买它的正版。