Big Fish

2011-01-29

闪开,让专业的来

副标题:Mashup vs. All-in-one (last.fm vs. douban)

Web 2.0浪潮中有一个概念,叫Mashup。意思是说尽可能的利用已有的网站提供的资源/API,来搭建自己的网站,并且自己也提供这样的资源/API来供别的网站使用。比如我常用的GPS track记录站gpsed,就是自己只提供GPS track的功能,并不去管理照片或者全世界的地图。但是整合了Google Maps的地图和Flickr(或者picasa)的照片,于是可以在显示GPS track的同时显示出地图并把照片放在拍照的地方

Last.fm也是一样。在last.fm上面的Event页面(主要是演唱会或者音乐节之类的活动)中,活动照片并不是存放在last.fm上的,而是last.fm根据一个特定的标签自动从Flickr上加载的。比如去年我参加的Tizzy Bac北京巡演,我拍的照片并不需要在往flickr传了一遍后又往last.fm上再传一遍这么蛋疼,而是直接加上一个"lastfm:event=1407759"的标签就会自动出现在last.fm的Event页面了。于是在last.fm上看到的照片,点开后就能轻松的看到Flickr提供的各种信息,比如EXIF,黑底大图,原始大图等。

除了调用Flickr的照片API外,last.fm自己同时也是一个数据的提供者。它提供了日历的输出,于是在简单的设置后我要参加的演出就会自动出现在我的Google Calendar上、手机上或者电脑上(这个是我为了截图随便加的一个演出):

演出活动也是豆瓣力推的一个功能,那么文青最爱的豆瓣上是怎么做的呢?他们除了地图实在是没能力自己做外,其它的啥都是自己做的。比如同一场演出,豆瓣上有一个专门的活动照片页面。里面没有EXIF,没有大图,也只能用豆瓣那个网页界面来上传而不能用各种好用的上传工具,什么都没有。你就只能看到你拍的照片被缩成一个拿到手机上看都撑不满屏幕的小图而已。

当然,我也不能把豆瓣上的活动加到我的日历上(蛋疼得手工输入时间地点人物除外)。

造成这个结果的原因也很简单:不专业。但是问题是,既然你丫没打算做个专业的图片站,干嘛不闪开让专业的来?

每次看到文青们把从各种地方看到的有趣图片搬到豆瓣去,有的被缩小后连文字都看不清了,于是下面的留言里面一堆堆的“求大图”,我都觉得蛋疼得紧。我可以理解文青们放弃了对质量的追求以及因为智商的限制,只想用一个最傻瓜的上传图片并显示的功能而已。但是当你从别处搬运过来的图片被缩放得连J点都没了的时候你都没发现,难道你传上去后就再也没看过么?

不是题外话的题外话,UNIX哲学中最重要的一点是:“Write programs that do one thing and do it well”。这句话翻译成通俗的中文,就是:一个程序只用把自己该做的事情做到极致,其他的“闪开,让专业的来”。

在这样的哲学下,才能诞生诸如grep, awk, sed之类的伟大程序。它们只专注于自己应该做的事情,比如awk不会去管排序的事情,grep只管过滤不管替换。你需要它们不提供的功能?管道一下用别的干这个的程序继续处理就好了。这样的结果就是用来干你的复杂需求的每一个功能的程序都是最专业的最好的,最后得到的结果自然也是最快最好的。一个常见的例子是列出apache log中排名前20位的访问IP:

cat /var/log/apache2/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 20

Mashup显然也是来自于此。

23:42:54 by fishy - Permanent Link

May the Force be with you. RAmen