之前在CocoaHeadsBJ听端木老师(@hengdm)放了这首歌,歌词全是计算机上的一些操作。今天向端木老师询问了一下歌曲的名字,叫“Technologic”,以下是它的歌词:
Buy it, use it, break it, fix it
Trash it, change it, mail upgrade it
Charge it, point it, zoom it, press it
Snap it, work it, quick erase it
Write it, cut it, paste it, save it
Load it, check it, quick rewrite it
Plug it, play it, burn it, rip it
Drag and drop it, zip unzip it
Lock it, fill it, curl it, find it
View it, coat it, jam unlock it
Surf it, scroll it, pose it, click it
Cross it, crack it, twitch update it
Name it, rate it, tune it, print it
Scan it, send it, fax, rename it
Touch it, bring it, pay it, watch it
Turn it, leave it, stop format it
除开it和Technologic,大概有65个词~
今天Google换上了一个barcode的doodle。毫无疑问,这是一项伟大的发明,而我们却很少留心观察它的存在。唯一能注意到它的情景恐怕是在超市柜台前付款的时候,而那个时候,我们更关心的是打印出来的价格单上的数字,而不是每件商品上的barcode。

1011011100101100001110111100011000010111101111001010011100011101
1000100101011100101001110011010000000110110001011110010011111011
1111001101010111000101101010110111111001010100000011000110001101
1011101101110101101001111101111000111000111011101100001100110101
0111011110010001100011111110111100001101111111000111100001001000
0101000100011000011110100110111100000101100000101111100111100001
0000110110100011000001011000110001100101111100011000001011010001
0101001001100000111111011010110100110100111111010010110111101101
1011101101011111110110100111011100011111101011111001111010101010
0111011001000100101100011000110101111111000010111101111011011100
1100110101111100110101000111001010000111001011100101011110100001
0110101111101010001001011000010110101001011110101101010010001111
1010110000101101000001000110100001110001011010011111101001111000
0101101111011000010011100010001010000110010001110000001000011100
0000010110100100111010010010010001101011000110001110011001110111
1100010111000110011010100001000101010111011100010111001100100011
1110101100000010100110101010100011000111010110100001001101110101
1110101011011101011100000001100101011100100000101010110111101111
0100011101011110001101000111101010010101011011001000010100011010
0011001111110100001110010000111001110010010111111110001101101010
1001010100011011010000101101101000010000000010111000111111010111
0010011111111111010000000010100110100111100010101011010110011010
0010101111100000010011000000011000110011011110100000010010001101
1000110011110100101001110110001101111111111111011110111001010100
0001000001100011111100111111100000001011011000110011001110100110
1011111101000001101110111111011101110110010000010000100101110101
0100010111011001100000111000000010100000111111100010001000001111
0101101101011101000011110011011111001000000001010111101111001100
0011100111010010010101101011100111101000101111001111110110110000
0001010000101111000101101011011000110001101001001010010001010001
1101100100011001011001110001001001110101010111111011111011000001
使用 http://text-image.com/ 在线生成的64 chars * 64 chars的图。本来打算在Blog上上传500 chars * 500 chars的图,结果因为DOM数太多(用font实现的),结果导致Firefox都卡死,而且MySQL也不支持这么大的文本数据,作罢,否则这个Blog可以成为浏览器的性能测试工具⋯⋯
昨天是我在IBM实习的最后一天,晚上下班后,跟Team里各位同事们告了别,去了一趟Ring,还了badge,然后坐班车到西二期,13号线,直奔到西直门,参加CocoaHeads(http://cocoaheadsbj.org/)的特别聚会。
奇遇花园,一家很有意思的cafe(http://storygarden.me/)。在门口遇到beta技术沙龙(http://club.blogbeta.com/)的 @tinyfool 大叔,我完全没有意识到这个guy居然比我大这么多(没记错的话,应该是97级的?)⋯⋯
后来,又来了一大叔,坐在我对面,标准的“28分头”。互相自我介绍之后得知大叔叫“Robin Lu”(@robinlu),觉得这个名字相当耳熟⋯⋯
聊了一会儿,扯到RoR,然后扯到TextMate,发现两位大叔都是付费用户,接着扯到Reverse Engineering,然后大叔提到自己某篇Blog,然后我发现:“哇靠!我读过大叔的文章!1年以前启发过我如何做‘偷鸡摸狗’的事情!”
于是,敬仰ing⋯⋯
接着,Rainer(http://www.brockerhoff.net/about.html)开始做演讲,讲的不错,过程中被 @tinyfool 大叔在Twitter上骂:“hacker:pay nothing!!!说你呢”。好吧,要是谁送我一个TextMate的SN我就不当hacker了⋯⋯
有趣的是, @tinyfool 和我发现Rainer居然也在使用 @robinlu 的iCHM(http://www.robinlu.com/blog/ichm),国威大振(@tinyfool 语录),爱国情怀油然而生!BTW:Robin Lu老师的得意之作还有iPhone上的BuddyFeed和iChm。
Rainer是一个Ping-Pong爱好者,虽然不是很专业,但是通过交谈可以看出,他非常热爱这项运动(这是他这次来中国旅行的原因之一?)。CocoaHeads Beijing的组织者(不好意思,是Ben Chen?)送给Rainer一个红双喜的5星直板作为礼物(额,这个系列的胶皮和板儿是无法分离的,使用的是强力胶水⋯⋯要是我事前知道的话,我会推荐CocoaHeads Beijing单独送板子或胶皮,这样Rainer会有更多的选择余地⋯⋯)。
附上几张昨天的照片吧:

Robin Lu老师

Rainer Brockerhoff & Robin Lu

Rainer Brockerhoff去了今年的Rock & Roll,近距离拍摄了伟大的Steve Jobs大叔!
当一些所谓的“门户”网站流行了很长一段时间之后,Web 2.0诞生了,虽然“2.0”这个词让我觉得很扯,感觉就是在炒作概念。但是不得不看到的是,新的Web应用有趋于简单化、轻量化的趋势。
什么叫简单化、轻量化呢?Micro Blog: Twitter, FriendFeed, Identi.ca; Photo: Twitpic, yfrog; URL Shortener: bit.ly, TinyURL; Bookmark: Delicious……
说白了,就是专注于一个feature,将服务的粒度最小化。这样,大家就可以通过mashup各种Web应用来形成不同的、有意思的东西。相比于那些“门户”,这些应用的成本和风险更低,同时也更敏捷,因为不需要做那么复杂和面面俱到的服务。
个人感觉,Web应用的这种趋势是“复用”思想在Web时代的一种体现,或者说,是在基于service思想的一种体现。
再一次因为“手贱”,升级iPhone到了最新版本3.0.1,导致手机被锁。经过一番研究,有所发现和感想:
首先,对于几个破解iPhone的工具有了完整的认识。之前我一直用PwnageTool来定制固件,然后通过iTunes刷进iPhone中。今天发现,其实用redsn0w更方便。因为它是直接连接到iPhone上,对系统进行操作,免去了制作固件的麻烦。另外,比较有意思的是,由于redsn0w需要让iPhone进入DFU模式后不被iTunes发现以使自己可以对iPhone进行访问,redsn0w关掉了iTunes Helper的进程。
其次,由于3.0固件与3.0.1固件没有大的区别(除fix了SMS漏洞之外,没有任何改动),所以之前针对3.0推出的redsn0w 0.8同样可以应用在3.0.1之上。但是由于redsn0w 0.8不认3.0.1固件,所以需要让它提取3.0固件里的数据(这部分数据和3.0.1的完全一样)来修改,并写入iPhone中。
另外,不知道什么原因,在进行最后一步破解步骤的时候redsn0w会卡死,需要拔掉iPhone的USB线再连上,才能完成破解操作。
最后,是教训:
最新,不一定最好,稳定最重要。
如今Web Application(以下简称“WA”)大行其道,在使用这些Web Application的过程中,一种趋势渐渐形成,那就是将WA本地化,也就是转化成Native Application(以下简称“NA”)。转化的方式,就我看到的而言,有以下几种:
- 在NA中嵌入browser,然后根据获得的web信息进行layout调整,增强native的用户体验。典型的例子是:Mac的Fluid,Mozilla的Prism
- 在NA中调用WA提供的API,然后纯用native的GUI。经典的例子是:Twitter Clients for iPhone、PC、Mac,Facebook App for iPhone……
为什么在WA的大趋势下,还有这样可能被认为是“走回头路”的逆流呢?我认为,原因在于资源和用户体验。
首先,browser的资源消耗一直是个问题,就我现在写Blog的时候而言,Safari的内存消耗是175.72MB,这对小型的WA是不可接受的。试想,为了使用一个像Gmail这样WA,用户需要花费上百MB的内存,而笔者现在开着的Apple Mail(a mail client)消耗的内存是50.03MB,你会选择哪个?另外,为了展现WA的效果,browser不得不加载足够的信息,如HTML、XML、JavaScript、CSS,带来了不少额外的网络资源消耗,虽然对于使用宽带的普通PC or Mac用户不是问题,但是对于使用移动设备(如:手机、laptop无线上网等)的用户而言,这是一个不能回避的话题。与此同时,性能也是一个问题,即便现在各种browser都以提高JavaScript运行效率作为提高性能的重点,但是对于比较复杂的WA,操作延时也是用户可以感知到的。相对于在“完整的”browser上使用小型WA,NA不仅运行效率高,而且消耗资源小。
其次是用户体验。虽然WA可以随时修改用户体验而免去了部署的麻烦,但是不得不打开browser来实现操作也是有问题的。例如,现在我需要使用Google的Tasks服务,这个服务很小,仅需要显示一个To-do List就OK了,但是我却不得不打开一个占满屏幕的browser。Twitter也是这样,本来我只需要查看大家的tweets和简单的发送tweet而已,一个侧边栏足以完成任务,而我也得打开一个browser,这也是我不能接受的。在看到WA的弊端的同时,我们也要注意到NA的弊端,那就是每次修改用户体验都要重新发布新NA,这一点也很恼火,Twitter Clients的频繁更新也很让我“血沸”(方言,贬义词)。
所以,纵观WA和NA,各有优势。在强调lightweight时,我们不妨通过server提供的API,同时以NA来提高性能和用户体验;对于大型复杂的WA,我们可能只能靠browser来帮助我们完成。
Fluid和Prism是很好的一种尝试,是一种在WA和NA之间的tradeoff,既有NA的高效率,也有WA的灵活。我将在未来几天里尝试Fluid给我带来的新的用户体验。
高中的时候,曾有三套书迷住过我:The Lord of the Rings, Harry Potter, and the novels written by Dan Brown (Digital Fortress, Angels & Demons, Deception Point, and The Da Vinci Code)
晚上下了Angels & Demons的电影版,重温了一遍当年被历史和文化震颤的感觉。不同的是,这一次,我更关注关于宗教的话题。
我是一个唯物主义者,虽然也曾经动摇过,因为那时很多东西我还不能理解,很多疑惑又不能通过我当时生活环境中的人得到解答。即便到了现在,依然有不少问题是科学所不能解决的。一个困惑了我久的例子:Big Bang学说中,基点来自哪里?Big Bang之前,宇宙又是什么样子?Big Bang为何会发生?
在现阶段,科学貌似不能解决所有问题,但是这并不意味着这些问题就无解。个人认为,与其把这些不能解决的问题都归结为“神”的杰作,还不如努力去探究这个未知的领域。
正如Angels & Demons中Robert Langdon说的那样:
I’m an academic, my mind tells me I will never understand God.
但是,也许:
Faith is a gift that I have yet to receive.
Who knows? 我还是不要庸人自扰了,洗洗睡吧……