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以后我也不会去选择盗版,而是准备预算去购买它的正版。

09年对基于标准的前端技术的小预测

去年我在lifesinger同学的blog上反驳他对JQuery的悲观预期,现在他也承认了JQuery的巨大成功。其实从思路上整理一下,是因为渐进式增强这个概念中的很多最佳实践都非常方便的被JQuery+JQuery UI解决了,形成了一套非常好的语义驱动的DSL,所以这两个技术爆发以后带来的就是所有开发者的关注!DHH一年多前预测HTML、CSS、Javascript的中兴,浏览器本来是关键障碍,但是随着08年末的内嵌WebKit的浏览器在掌上设备的普及,最终催生了Palm pre里面的Web OS。如果Flash没有迅速抓住机会,那么浏览器这个大一些的插件也许就会真的把基于标准的RIA技术推向真正的普及。

牙齿的生命周期

程序员喜欢用生命周期这个该您,因为我们有的时候扮演了上帝,我们可以控制一些对象的生存和毁灭。而我们控制不了我们的牙齿,它会在什么时候冒出来让我们疼一下我们不知道,而每次发生这种倒霉的牙疼的时候它会一次性的让你为自己的疏忽买单。最近我治过两只牙,和我们公司的刘一男(一位明星的QA)同学在城铁上聊牙齿的问题,感觉很有收获,一男很懂牙,而我深受牙病之害,所以借此机会总结一下他传授给我的知识。

小的时候我们一嘴的牙要换掉,也就是换乳牙。由于乳牙需要换,所以坏掉还有再生的机会,而到了十几岁乳牙换好了,我们这一嘴牙就要陪我们一辈子了(对于我们的大多数来说,但也听说部分幸运儿能再换一次,不过怀疑只是传说)。由于小的时候我们大都吃过牙疼的亏,治虫牙很容易留下心里阴影。所以在十几岁换牙后我们会感觉突然解放了,牙疼一去不复返了,我们也就开始忽视了牙的问题。等我们到了二十多岁,奔三的时候,牙病又开始找到我们一部分人了,但为什么我们这么倒霉呢?原因主要是:

  1. 咬合畸形:这个是最大诱因。我们以前嘲笑过牙箍妹。牙齿矫正很痛苦,那为什么那些发达国家的人还都要做呢?因为大部分的人在牙齿自然生长后都会有咬合畸形,也就是上下牙齿在咬合以后不是严丝合缝。一些情况下是对不齐,突出的部分互相磨损,有些则是不应该接触的薄弱部分互相摩擦,长期下来他们会造成牙齿的加倍磨损,而这种磨损不是可逆的,最后配合牙齿里面的酸性细菌非常容易造成严重的龋齿。
  2. 牙齿本身畸形:有些人的牙齿的沟槽很深,好像这被叫做窝沟畸形。因为食物容易残留在里面,细菌滋生以后会产生酸,他们从这些缝隙腐蚀牙齿速度很快,容易造成龋齿。
  3. 牙龈疾病:这个可能是遗传或者不注意口腔卫生的结果,牙床的供血不好,或者发炎感染,最后的结果是牙齿松动,可能造成牙齿脱落。
  4. 外伤:牙齿在咬硬的东西,或者车祸、打架中会受到外伤,而牙齿只有最外面的牙釉质是很硬的,一旦他们受损,露出了很软的牙本质,那么牙齿就会龋齿,所以它也是重要的诱因。
  5. 因为上面的原因造成牙齿脱落以后,由于牙齿之间的应力发生了变化,容易造成缺齿周围的牙齿松动,畸形(咬合畸形),最后造成更多的龋齿或者牙齿脱落。

上面的列举不是很科学,但是说明我们的牙齿脱落的原因主要有疾病和外伤两种。外伤这种情况属于偶然,而龋齿是这些原因中最常见的牙齿死掉的原因。因为龋齿会造成牙齿强度下降,最后造成脱落,脱落还会带来更多的脱落,这种多米诺骨牌的传递效果容易造成连连不断的恼人的牙病。而我们向前推,龋齿产生的两个大的原因是咬合畸形和牙齿畸形,前者可以通过咬合矫正(也就是戴牙箍)解决,后者可以通过窝沟封闭等简单手术解决。但是这两种方式都在年轻的时候有效,其中以换牙结束后的14-18岁比较合适,这个时候骨骼的可塑性相对好一些,所以治疗效果好。这个时候对牙齿进行的预防性处理会让我们受益一生。但是可惜的是我已经二十多岁了,当初没有进行过这些治疗,所以现在牙疼了已经是亡羊补牢的事情了。这里只能强调如果有孩子,一定要给他们进行牙齿矫正和预防性的窝沟封闭。

对于一个已经开始受到龋齿困然的人,我在介绍一下常规的龋齿的生命周期和治疗。

  1. 第一个阶段,是牙本质产生龋齿,那么我们可以看到这颗牙齿开始产生变色,用金属敲击可能声音不那么清脆了,实际上就是牙齿外面的硬壳开始被腐蚀。这个阶段持续比较长,因为牙齿的硬壳实际上是很结识的。可是由于变化很慢,而且没有痛感,所以不容易被察觉。这个时候如果碰巧体检的时候医生发现了浅度龋齿就应该马上医治。这个时候需要把龋齿区域清理,打磨,然后补上就可以,过程不疼,治疗不影响咀嚼,牙齿寿命一般也不会受到影响。只是一般治疗5-10年以后如果补牙脱落,还需要重新补。总的来说,这个时候治好你就很幸运。
  2. 再下面一个时间如果牙釉质已经被穿透,到达了牙本质,那么你在吸凉气或者吃过凉过热东西的时候开始会感觉有些酸痛,偶尔还会赛牙,这个情况就已经开始变严重了。因为牙本质虽然挺厚,可是它很软,在酸的腐蚀下很容易就会穿透,这个阶段一般也就是半年到一年,一旦进入下个阶段就惨了。这个时候牙齿已经明确的告诉你它坏掉了(酸和赛牙),对着镜子你会发现牙齿颜色会整体变深,这个时候一定要马上治疗。治疗需要比较大的打磨和准备,可能还需要防一些药物做准备,只要没有露出牙髓,这个阶段可以补牙。深龋修好以后会影响咀嚼,因为牙齿的牙冠部分变得脆弱,所以不能嚼太硬的东西,而且咬合也需要适应一段时间。补好以后的半年左右时间可能还会持续冷热敏感的现象。这样的补牙一般可以用上5年以上,不过脱落以后如果继续发展到露髓,那么就要进入下一个阶段了。
  3. 下面一个阶段是牙髓露出的阶段,也就是牙釉质和牙本质已经都穿了。这个时候一般就会出现明显的牙疼,如果不治疗可能会化脓或者严重的发炎等。但是牙疼和严重的赛牙一般会告诉你必须找牙医生了。此时治牙,也没啥好办法,因为直接补已经不行了,暴露的牙髓还会继续发炎化脓,非常危险。所以受限要杀死牙神经,这个过程很痛苦。如果是后面的牙,一般要治3次以上。第一次是清理打磨,然后上上杀死牙神经的药,再封闭上。第二次打开如果正常,牙神经全部清除干净,就会做根管准备,也就是向你的压根管里面打入胶,这些胶凝固以后会保证你的压根在失去牙神经血管后依然保持强度,治疗以后会封闭。第三次打开,如果检查根管准备后强度OK,则给压根插上钢针,然后给留下的牙体里面填充上补牙的物质。这个过程比较痛苦,主要是每次要间隔一周,所以治上一刻牙就要三周。这样治疗后牙齿的咀嚼能力一般只有原来的50%-80%,主要的不爽是容易赛牙,牙齿无力。因为这个时候已经没有牙神经,所以牙齿强度差了很多,一般是牙颈部最为脆弱,所以牙齿非常容易从根部折断。
  4. 如果你感觉失去牙神经后的牙齿咀嚼能力差或者赛牙,解决方法是上牙套或者牙冠。牙套一般是金属的,他会把你的牙齿包起来,外面会平滑一些,防止赛牙,而且金属包住以后牙齿的强度也就提升了,但是这样的治疗可能会让牙齿带上金属色,影响美观。所以从美观的角度就要用牙冠。牙冠一般是陶瓷或者贵金属材质,前者接近牙齿本色,它是一个套,需要把原来的病牙磨小,然后套上去。一般来说牙冠可以恢复80%-90%的咀嚼能力,而且不影响牙齿的美观,是一种不错的解决方案,缺点是比较贵,正规的一个牙要3k-5k左右。这两种方法的好处是它可以复用你的压根,而复用了压根也就复用了压根和牙床还有牙槽骨(也就是上下颌骨),这个对于保护你的骨骼资源有很大好处。毕竟原装的比后配的好。
  5. 如果不性你的牙齿已经掉了,而且也保不住压根了(如果压根还在就可以考虑4)。那么就要装异体牙了,一般就是假牙和种植牙。假牙就是用钩子或者一些托一类的机构将假的牙体固定在口腔里面,缺点是不那么稳固,需要每天卸下来清理,而且固定机构会对旁边的牙或者口腔组织有影响,所以现在很多人会选择种植牙。种植牙就是在掉牙的地方再种上一个金属坐,这个金属坐会直接按在牙槽骨上,所以要等一段时间直到他们结合坚固。坚固后,就可以在这个金属坐上面安上异体牙了(一般也是陶瓷),这种牙也可以恢复50%-80%的咀嚼能力,用起来和自己的牙感觉差不多。不过这种治疗也比较贵。最差的情况一般也就是这样了。也就是没有真牙用假牙。

从治疗上一般我们就要经历这几个阶段,其中涉及到补牙、杀牙神经、牙套、牙冠、假牙、种植牙这些治疗手段。医生会人性化的按照你的优先级选择靠前的方法治疗,也就是能补就补,不能直接补就杀神经补,再不行就用你的压根上牙套或者牙冠,最不行也争取给你安个种植牙(如果缺牙不管,最后会造成牙齿畸形恶化,掉更多牙,前面提到了)。我个人不行经历了2、3的两个治疗,后面还要准备着。如果你的牙还没有坏,但是你也有二十多岁了,去看牙医他可能还会推荐你矫正牙齿,其实这也是可行的,不过过程可能会有些痛苦。因为成人的牙齿正畸需要拔牙,如果你正巧有牙坏掉,医生一般会优先拔掉它,然后通过调节间距,逐渐让牙齿的咬合形状变好。咬合好了牙齿的寿命就会好很多,这个是至关重要的。 不过正畸要看医师的经验,好的医生会让你损失更少自己的东西,得到更好的牙齿咬合效果,所以多咨询几个医院是有好处的。

那么最后,我只能提醒自己说,治疗牙病越早越好!

Update on 2009.1.5: 忘记说了一个点。刘一男同学说美国的牙医推荐两种习惯来保证牙齿健康。一个是使用电动牙刷,一个是使用牙线。其中电动牙刷比较容易实现,因为……网购很容易。我购买的是5系列的飞利浦音波牙刷,一男同学说他在美国的亲戚都推荐使用这个牌子。我购买的这个音波牙刷用了2个月了,感觉很好,的确可以帮助消除口臭,牙齿也感觉清爽了很多。即使不买牙刷,也要记得每次刷牙要2分钟以上才可以有效减少牙菌斑,减少龋齿的概率。而有一个好的牙刷可以帮助你记得这些时间。音波牙刷比普通的旋转型电动牙刷好很多,可以震下一些难以刷掉的残渣。不过我给爸妈们买的是博朗的Oral-B的旋转型电动牙刷,感觉对老人温和一些吧。就分享这个点,我不是崇洋媚外,只是在一个消费比较发达的地方大家对牙齿的重视的确超过我们。还有一个点忘记说,牙齿不好会让你倾向于吃软的东西,时间久了会影响肠胃,最后影响你的寿命和生活质量。所以牙齿问题不可忽视,一定要尽量保持良好的咀嚼能力。

计算一下备份的成本

现在1.5T硬盘的价格是899(以前几日购入的价格),现在的市场价可能已经可以接近800。它格式化后容量是1.36TB(以我格式化为Mac使用的HFS+计算)。1.36TB应该等于1392GB。1GB的价格是899/1392 = 0.6458(元/GB)。目前DVD盘片,三菱的50P桶装盘片价格是95,而威宝(三菱子品牌)的价格是75,太阳锈电的盘片已经买不到了(按理说价格更高一些),这样我们可以按照居中的80元一桶基本靠谱的DVD+R盘片(50P)。我这里使用每张盘片4.25GB计算(可以刻录4.3xG,不过个人习惯是小于4.3G,而且由于文件大小不一,经常会有浪费,所以这种计算这理想个值),那么1GB的价格是80 / 4.25 / 50 = 0.3765 (元/GB)。这样计算的话两种存储方式的价格在一个数量级。

作为数据存储,以前我的习惯是重要的盘片刻两张,而且使用两种不同的盘片品牌(因为它们不同批次的衰老曲线完全不同,我遇到过很多批次的DVD盘片会在几个月后出现大量数据坏块),这样存储价格就要翻番。而硬盘存储也会遇到同样的问题,我们一般会使用Raid解决。如果使用简单的Raid 1或者JBOD则也同样是存储成本翻番,如果使用Raid5的话(3+1,利用率62%,则成本会好一些),但是加上支持Raid的设备的话Raid 5可能比翻番还要贵一些(Raid 5控制器比较贵,因为基本上只能见到硬Raid 5)。这段考虑的问题基本上不会对两者的对比产生太大影响,但是证明两者如果要相对于自己来说保证它们的可靠性要花费的成本都基本上要翻番。

但是我们这里要对比另外一个成本。使用成本。由于DVD刻录无法无人值守,所以时间成本非常高。在工作以后,我们的剩余时间很少,时间就更加宝贵。我观察到一个现象,就是我刻录的光盘大都出现在我的高中后2年(99-2000)还有大学4年与研究生的前一年半(2000-2006)中。后来刻盘的数量就直线下降了,大部分数据都留在了硬盘里面。主要就是没有那么多时间整理数据并刻盘,一般来说刻录只占准备时间的1/4,另外1/4可能在寻找刻盘的资源(如电影、软件等),2/4的时间在整理和享受这些资源,最后的1/4是刻盘的时间。但是由于把数据切分为适合刻录的容量是很费时间和精力的,而这部分又没有直接的经济价值,所以这个浪费是一定要想办法消除的。消除的最有效办法是不制造这么多数据,不去备份它们,这个我们另说。主要说是否可以不刻录,而让他们在硬盘上等待被删除或者享受后删除。大部分时间,我遇到的问题是硬盘不够用,所以我的cache就不够用,这些资源经常要被我暂时移动到光盘上,这是我刻盘的主要理由。但是不幸的是,这些盘一般也是最早被我抛弃的。

下面进入正题,由于前面分析的存储成本上硬盘已经不到光盘存储成本的2倍(我的计算结果是1.7倍),而硬盘会极大的缩短备份时间,所以已经完全没有必要选择使用光盘备份了(光盘目前只适合分发)。下面是一些原因:

  1. 光盘的可靠性太差,而硬盘在使用Raid后可靠性会比光盘强很多(这个待我差好资料再讨论)。
  2. 硬盘存储在5年左右后完全可以通过非常廉价的转存来实现升级,而光盘不可以(如果把几百张DVD转存到蓝光是多么的可怕?)。
  3. 硬盘的传输速率比光盘高很多,现在的硬盘在使用SATA的时候可以达到90MB/s以上,而DVD+R在16x下的速度是6分钟刻录4.7GB(也就是0.78G每分钟,合成13.312MB/s)。在使用USB接口的时候硬盘一般也可以达到40MB/s以上的速度,比DVD要快很多很多。而且由于不用切分,硬盘备份是非常简单的。
  4. 硬盘是随机读写设备,而光盘是顺序只读设备。所以硬盘可以方便的管理,删除、移动、重命名,好比写程序的时候可以实现不断的重构。而光盘则只能整张扔掉或者重写(可读写的光盘由于速度和可靠性的原因这里就不讨论了),这是最为讨厌的Bad smell
  5. 体积!1.5TB硬盘在Raid 1以后的体积一般是18cm x 18cm x 18cm。但是这些数据需要326张DVD……326张DVD的体积大概是15cm x 15cm x 58.56cm,这个是不装在盘包里面的价格,装到盘包里面体积会翻翻。那么大概是5倍的体积……
  6. 在搜索的时候,硬盘可以使用操作系统提供的搜索功能。而光盘你需要使用where is it这样的软件来管理,其麻烦程度比使用操作系统的索引查找要高上很多,主要是这会浪费掉你很多宝贵的时间。

经过分析,我决定以后放弃使用光盘存储。光盘存储只会作为暂时的数据分享和重要数据的异地备份。这样我一年就可以节省下相当可观的时间了。而且也可以给我的笔记本剩下几个光驱的钱,何乐而不为?

远程结对编程工具

同一个屋子里面分开进行Pair Programming,在熟悉以后我们就可以进行远程Pair。推荐阅读Every Day Scripting With Ruby的作者Brian Marick的这篇博客“Screen Pairing”。还有两个软件可以帮助我们做远程Pair,Mac下可以使用TeamViewer还有SubEthaEdit,还有可以参考关于协同编辑的wikipedia页面

TeamViewer的原理就是桌面共享,它可以轻松的穿越网络,而且可以免费使用。SubEthaEdit是John Resig的最爱,它还有一个在线的协作版本,原理是两个人可以协同使用的编辑器,互相可以看到修改的内容。这样的工具配合Skype这样的视频IM做远程结对就成为了可能。

笔记本与移动硬盘之间的尼龙搭扣

发现一个对Developer使用laptop的好方法,在你的屏幕背面粘上尼龙搭扣(毛茸茸的那边),然后在你的移动硬盘上也粘上(带很多小钩子那边),这样在移动办公的时候你就可以把它们粘在一起了!这样就可以把你的巨型iTunes、iPhoto library外置了。

而且在你把它们放在包里面的时候你还可以方便的把它们分开。好点子。这个点子来自这里:Screen pairing

1.5T硬盘到手

我的硬盘总是不够用,因为以前有集图的习惯,也有收集音乐的习惯,再加上现在高清电影的泛滥,还有吃空间的TimeMachine,所以硬盘吃紧是没办法的事情。正巧赶上硬盘再一次降价,1.5T的Seagate 7200.11系列单碟375G的硬盘只要899,所以赶快再上一块(小插曲是,老婆说这个算是生日礼物,sigh~)。配合3个月前入手的1T那块,基本解决现在的硬盘不够的问题了。

我家两块外置硬盘,一块被命名为DeepForrest (1.5T, USB),也就是现在这块。令一块被命名为BlueRay (1T, USB+1394a)。上图:

P1110155.jpg 一块儿到来的还有一个Tp-Link的WL-841N的802.11n路由器,300Mbps的无限连接,评测的数据是可以达到100Mbps也就是我家有线网的速率。

P1110157.jpg 型号是ST31500341AS,就是1500GB空间,375G单碟,4碟装,台式机硬盘。听说CC1G这个固件版本不是很好,我做外置硬盘倒是无所谓。

P1110159.jpg 现在的Seagate使用了和WD一样的反装电路板,两年以来这个技术已经普及了。

P1110162.jpg 装到盒子里面去。我使用的是WD的硬盘盒,实际上是拆机货。WD的外置盒子其实质量很好,没有访问的时候会自动断电休眠,还有个好处就是便宜。

P1110167.jpg控制芯片是目前高端盒子常见的Oxford semiconductors出的OX921S,这个盒子是三个里面最简单的,单USB。

P1110151.jpg 他们叠放在我的桌子上就是这么个效果,就是那个破音箱上面的三个发光的小家伙。这个照片是上周日的,实际上硬盘还不是1.5T的,不过意思是一样的。

现在正在迁移数据中(mv -v)。以前很喜欢玩硬件,常去Q3ACN雷神硬派玩,也经常写评测,但是现在已经没有那个闲心了。但是我依然喜欢玩硬件,我依然对它们充满好奇心。^___^

我的书柜

看到Fenng同学共享了自己的书柜的照片,我也想把我的书柜照个像放上去。

这几年买书也上万了,当然不都是计算机的书,还有很多闲书 P1110170.jpg

经典的技术书籍占了我的书柜的绝大部分区域。还有一些漫画书,大都是大学时代留下来的。 P1110173.jpg

一些放不下的书就随手放在转角的书柜里。 P1110171.jpg

为书花钱大都值得,不过技术书容易过时,处理的时候又舍不得。即使是好书,它也会对你的移动性产生不良的影响,搬家的时候这些东西可是太沉了。

招聘美工的一个评语

我们招聘美工的过程中,有一道题:“一个UI的Hifi prototype,客户感觉系统有些压抑,希望修改一下这个设计”。前面两个面试者我们都让他当场做,可是结果不理想,主要原因是他们不习惯Mac下的Photoshop或者Fireworks。所以第三个面试的时候,我们让她回家试试。结果让我很失望,主要原因是美工的思路不对。她修改了不少细节,修改了几个按钮的设计,加上了水晶的反光,修改了Tab设计,加上了玻璃的风格,可是她无视了对比度过低造成的界面太灰的问题,也无视了排版的一些基本的禁忌(比如一致性)。

我非常认同的一句话是对于美工的日常设计90%都是排版工作。那么我列出我对这个作业的考察点:

  1. 排版调整:突出表现系统的信息架构,起到视觉焦点引导的作用。
  2. 颜色搭配:视觉的调整,改变对系统的整体印象,引导用户使用系统的情绪(紧张、放松、严肃)
  3. 细节调整:也起视觉焦点的引导的作用,帮助用户按照我们的交互设计使用系统。影响用户的潜意识,提升用户对系统质量的认同。

它们的优先级是60%,30%,10%,也就是说排版和颜色最为重要。

这不是一个系统的想法,并不适用于美工的日常工作,我主要强调做这样事情的一个思路,美工需要用自己的工具来引导客户。