你可以选择

“And from that day onward he:

  • Will not henceforth write, sign, or print in any way a single phrase which in his opinion distorts the truth.
  • Will utter such a phrase neither in private conversation not in the presence of many people, neither on his own behalf not at the prompting of someone else, either in the role of agitator, teacher, educator, not in a theatrical role.
  • Will not depict, foster or broadcast a single idea which he can only see is false or a distortion of the truth whether it be in painting, sculpture, photography, technical science, or music.
  • Will not cite out of context, either orally or written, a single quotation so as to please someone, to feather his own nest, to achieve success in his work, if he does not share completely the idea which is quoted, or if it does not accurately reflect the matter at issue.
  • Will not allow himself to be compelled to attend demonstrations or meetings if they are contrary to his desire or will, will neither take into hand not raise into the air a poster or slogan which he does not completely accept.
  • Will not raise his hand to vote for a proposal with which he does not sincerely sympathize, will vote neither openly nor secretly for a person whom he considers unworthy or of doubtful abilities.
  • Will not allow himself to be dragged to a meeting where there can be expected a forced or distorted discussion of a question.
  • Will immediately talk out of a meeting, session, lecture, performance or film showing if he hears a speaker tell lies, or purvey ideological nonsense or shameless propaganda.
  • Will not subscribe to or buy a newspaper or magazine in which information is distorted and primary facts are concealed.”

– Alexander Solzhenitsyn, “Live Not By Lies”, Feb. 1974.

—————————————————-

“I try to sum up how far I got with my own decisions around 1959 … I point out five
decisions here.

  1. I break with the Communist Party.
  2. I do not emigrate.
  3. Research and not politics will be my profession. I do not undertake the heroic, illegal forms of struggle against the communist regime. I wish to contribute to the renewal with the help of my scientific activity.
  4. I break with Marxism.
  5. I acquire the fundamentals of modern economics. I wish to belong to the community of the western economists, relying on my studies and researches.”

– János Kornai, “By Force of Thought: Irregular Memoirs”, 2005.

难得糊涂

Google这事我是不打算评论的。一来事实已经足够有力;二则各种视角的评论铺天盖地,你多说一句不过徒然让人厌倦;最后也是因为这事到现在传言太多却没定论,早说早错,不如拭目以待。。

可惜你虽无心他不休。昨天中午刚到实验室,左师兄看见我就说,“Google这次xx了吧”,只弄得我一头雾水,赶紧上twitter和greader看新闻,却没发现有什么大事儿。不一会儿坐我对面的左师弟又发话了。
“嘿,看见新闻了嘛?google不退出了。”
我这赶紧勤学好问,“哪的新闻呀?”
腾讯,腾讯。”……
这事还没完,转过今天,同屋的老左又来问我,“google那咋回事?是又不退出了吗?”

你看这没完没了的架势。于是我只好回去仔细看看腾讯那条新闻。这新闻开头是这样的:

“人民网北京1月19日电 据法新社消息,当地时间18日下午,在宣布退出中国市场、员工停止工作一周后,美国网络巨头谷歌再次表示在中国的业务恢复正常运转。”

新闻本身忘了给出链接,所以如果你不到网上仔细翻,那么原始的消息大概就找不到了,而法新社表示谷歌已经恢复正常的消息你更是使劲找也找不到。其实只要稍微回忆一下google官方那篇blog中的说法和态度,大概也能猜出这条消息大抵是哪个英文法文中文都学不好的“实习记者”出于善意搞出来的。当然对我那列位同学来说,google官方英文blog存不存在就是另一回事了。

Google这事敏感了点,还是说说全球变暖吧。前天看了部纪录片《全球变暖大骗局》,看的时候隐约觉得味道不对,比如中间谈到CO2在大气中比例很少,暗示CO2因此不能导致变暖;再比如海水的正反馈效应被用来解释CO2的增加仅仅是变暖的一个后果;最后更拍了一段非洲的贫苦生活,大意是抑制碳排放就是剥夺了他们的发展权利。后面这部分倒让我想起之前哥本哈根会议结束时在未名BBS上看到的段子,原链接找不到了,复述一下:

“如果把工业化比做一辆公交车,那欧美人都已经舒舒服服地坐在里面了;中国人是大半个身子已经进去了,屁股还露在外面;印度人刚跨上一条大腿;苏丹带着一大帮人还追着这车猛跑呢。结果这当口车就开始猛拐乱转、拼命往外甩人了,你一不留神就得被甩出去。”

原文大概比这写得还诙谐戏谑得多。看完笑完之后,身为一个中国人我不免忧愤交加:忧的是这小半个身子在外面的中国人万一被甩出去怎么办,愤的是欧美这帮xx自己坐上车了就不管别人的死活了。

在全球变暖这件事上,常能看到持这种阴谋论观点的人。比如和我一级的左同学就觉得这事是发达国家用来限制其他国家(尤其是中国)的手段。奇怪的是,如果看看其他的纪录片(比如《愚昧年代》),你会发现减排好像不是前面说的那个样子。反而是发达国家人均减得更多,而第三世界的兄弟们只是有了排放的上限——这上限对所有人是一致的,而且离非洲兄弟的生活标准还远得很。好比说原来人家开的是悍马,我们有开奥拓的还有腿着的。现在大家觉得悍马这玩意排量太大不好,将来不许开了,最多只能开奥迪。如果这是真实情况的话,那减排到底更损害谁的利益就不那么一目了然了。

其实全球变暖到底是怎么回事我也说不清。因为就连“人类活动到底是不是近40年来全球变暖的最直接原因”或者“全球变暖到底能造成多大程度的灾难性后果”,这种科学问题都还有争论。那这里面政治利益、经济利益的牵扯就更不是看了几部纪录片以及一点点评论就能搞明白得了。我倒是觉得,如果你对这个问题感兴趣,那么先去看看各种宣扬全球变暖的文章和影片。等你开始对全球变暖忧心忡忡,那再去看看《全球变暖大骗局》。如果你看完大骗局又开始对全球变暖不屑一顾,那再去看看那些反驳的文章(123)。做完这一切,你会发现自己已经彻底晕了,不知道该相信什么了。恭喜你,你已经不能被轻易煽动了,这是独立思考出自己观点,做出自己选择的基础。

开头Google这件事其实也一样。如果你老是盯着某一种立场的消息来源又没有一点质疑精神,结局不免像我那些不是姓左,便是姓右,或者不左不右姓钟的同学一样,得出类似“google在这事上很xx,开始装得那么nb最后又怂了”的结论。殊不知倒是自己被媒体忽悠着一会儿排成S型,一会儿排成B型,还浑然不觉呢——我估计网上类似“开始特同情谷歌,现在觉得他xx”的声音(信息统合生命体)已经出来了吧。

我身边不乏这种死守某一消息来源的人(有时候我自己就是),现象是一旦讨论比较掺杂互斥没什么定论的问题,往往是紧守立场不顾事情本身的其他可能性。如果争得要凶起来说不清楚了,往往一句“不说了,太思辨了”或者“得了,得了,难得糊涂”来了事。

难得糊涂。其实我们一直晕着呢,哪来什么难得糊涂?还是说难得糊涂的意思是,难得发现我们自己一直糊涂。

mlgbd,猫急了也会跳墙的

不跳墙就到大街上去散步,tmd。

——————————————-

#Search
64.233.189.147  www.google.com
64.233.189.104  www.google.com
64.233.189.99   www.google.com
64.233.189.147  www.l.google.com

#Mail(POP3/SMTP)
209.85.147.109  pop.gmail.com
209.85.147.109  smtp.gmail.com

#WebMail
64.233.189.18   mail.google.com
64.233.189.19   mail.google.com
64.233.189.83   mail.google.com
64.233.189.18   www.gmail.com
64.233.189.19   www.gmail.com
64.233.189.83   www.gmail.com
64.233.189.19   googlemail.l.google.com

#Docs
64.233.189.101  writely-china.l.google.com
64.233.189.101  writely.l.google.com
64.233.189.102  docs.google.com
64.233.189.101  docs.google.com
64.233.189.100  docs.google.com

#Map
64.233.189.104  map.google.com
64.233.189.99   map.google.com
64.233.189.147  map.google.com
64.233.189.104  maps.google.com
64.233.189.99   maps.google.com
64.233.189.147  maps.google.com
64.233.189.99   maps.gstatic.com
203.208.39.93   khm.google.com
203.208.39.91   mt0.google.com
203.208.39.93   mt1.google.com
203.208.39.91   mt2.google.com
203.208.39.91   mt.l.google.com
64.233.189.99   maps.l.google.com

#Scholar
64.233.189.99   scholar.google.com
64.233.189.104  scholar.google.com
64.233.189.147  scholar.google.com
64.233.189.104  scholar.l.google.com

#Group
64.233.189.102  groups.google.com
64.233.189.100  groups.google.com
64.233.189.101  groups.google.com
64.233.189.101  groups.l.google.com

#Misc
64.233.189.101  id.google.com
64.233.189.102  id.google.com
64.233.189.100  id.google.com
64.233.189.100  id.l.google.com

what the hell is opensocial?

花了一天多的时间写了一个可能是“符合规范”的豆瓣秀 OpenSocial Gadget。然后零零碎碎合起来花了大概两天的时间试着把它提交到各个号称支持OpenSocial的容器里,均不成功,目睹怪现象若干。。。陈列于此:

1. iGoogle:iGoogle提供了一个可用于调试OpenSocial的Sandbox,这个Sandbox是Google在各次宣传OpenSocial活动中展示的工具。不过当本猫在iGoogle Sandbox中调试好gadget,然后提交到iGoogle的App Directory中安装之后发现,iGoogle非Sandbox的普通用户使用的版本不支持OpenSocial,囧。。。(今天参加Google Devfest的时候又试了一下,结论上Sandbox也不支持OpenSocial了,而今天Google自己的演示也全是Orkut了)

2.Orkut:Google的当家SNS。另一个Google在活动中展示的Sandbox。首先Orkut中文版里提交gadget的文件总是显示“抱歉,XXX错误”。。。切换到Orkut英文版,暂时可以用了。不过gadget的标题里的中文字符,会被莫名其妙的Url Encode。。。不管怎么说,勉强可以用吧,调试完毕,欣欣然然submit。显示“审核”,等了整整一天(时差,时差问题),一封拒信打回来,说只接收够“production”的gadget。。。老大们好歹给点线索哪里不够吧。。。自己猜了半天,东改改西改改。然后再去提交,提示“这个url不能提交,因为已经提交过了”。。。囧,暂时放弃中。。。(p.s. Orkut的opensocial实现里有bug,一些时候会出现取不到UserPrefs的问题,不过和之下的比这不算什么。。。)

3. Myspace中国:好大一个SNS,好多用户,然后基本上认为开发人员都是超人。。。首先花了几分钟没在页面上找到进入developer页面的链接,结果只能google “myspace developer”(不愧和google是合作关系,帮他增加了2个pv)。。。进入页面创建一个gadget,提示我输入一个email地址,输了自己的email,提示“已经被用了”。。。我靠,仔细看提示,要是输入不能和任何注册用户和提交Gadget重复的唯一标示gadget的email地址。。。What the hell is that… 帮助“合作伙伴”增加gmail注册数?通过给gmail加"."的方式通过。。。下一步上传gadget图标,提示"16×16",我上传了一个64X64的,提示“尺寸不对”。。。ok,开ps,我是前端、后端、技术、美工全能猫。。。最后终于可以开始弄代码了,把在orkut下测试过的代码粘过去,运行。想设置自己的豆瓣用户名,找不到设置的地方,囧。。。仔细找了半天,未果,上“合作伙伴”搜,发现原来Myspace的opensocial根本不支持Google gadget那一堆xml标签——有一个大哥说得很直白,“MySpace has a different development pattern”。。。

4. Hi5:另一个好大的SNS,然后被盾了。。。搜了,偷偷发现,原来sandbox的链接还可以用(呀,是不是又犯法了)。不过上去一试,毫无疑问的也不支持gadget的标签。。。

5. YiQi:填完表单,点提交按钮。我点呀点,我点呀点,它就是没反应。。。看代码,按钮onclick了一个叫applyapp之类的函数,然后页面load的js里没有这个函数。。。

6. 51:原来5不仅可以1ml,还可以1OpenSocial。ok,创建,又开始填表。第一个就让我填“真实姓名”,而写明了不能改,以后要想分钱(51B,啊,不是,是51币)全靠这名字了。。。填了,接着,让我填身份证号,囧。。。嘿咻嘿咻终于快填完了,忽然出现一个“添加应用通知地址”,后面跟着一个链接“详细说明”。没禁住诱惑,偷偷一点,页面跳转,再后退,强制不缓存,什么都没了。。。T_T。。。最后,弄好之后,毫无疑问的,显然也不支持gadget规范里的标签。

好了,上面是一大堆没什么意义的吐槽,下面写一点点稍微有点小价值的建议。

1. 如果你去看opensocial的文档,里面的例子都会是gadget的例子。如果你真的打算做跨container的opensocial应用,就忘掉gadget裸用html+js吧,因为除了orkut之外,没发现哪个container支持gadget规范。

2. 如果你是基于兴趣爱好想写opensocial的应用,有点心理准备。各个container都假设你是领工资或者是为了发大财才用这个container。既然你是为了钱或者为了理想做这个,那么无论用户体验多差、系统多难用,你还是会坚持用下去。而如果你是凭爱好,嘿嘿,嘿嘿嘿嘿,嘿嘿嘿嘿嘿嘿。

Burning Google Chrome

"We knew we had to break her, burn her straight down, or she might come after us." – William Gibson, "Burning Chrome"

珂萝米,不知道为什么是这个名字,不过这个名字在Cyber空间里是个坏角色。

如果这不是另一个不合时宜的愚人节新闻,那么大概在24小时之内我们就可以下载到这个Google的新浏览器,Google Chrome。

目前比较完整的消息都来自这个漫画(题外话,很难适应美漫,一点代入感都没有地难读)。要点是这样子的:

  • 稳定性,多进程架构(每个tab是一个进程,独立的js线程,同时内置一个任务管理器之类的东西,让用户监控或者中止不适当的tab页)
  • Webkit用于html渲染,加上全新的jsvm——V8(class支持类似虚表的机制,JIT,更好的GC)
  • 用户体验(地址栏搜索,布局类似Opera基于浏览历史的快速索引页,关闭后清空所有浏览历史记录的只读模式,Popup确认)
  • 安全性,Sandbox,浏览安全(基于Sandbox的malware防护,基于黑名单的Harmful Site防护)
  • 内置Gear,开源

仔细看一下,其实新东西不多,三个值得提一下的。

第一个是每tab每进程的架构。这方面其实不了解,所以不多说。总之漫画里google讲了一些多进程非常通用的好处。而具体效果,包括速度、内存的使用等等,还要用实物测试才知道。

第二个是v8,新的js引擎。基本上所有做前端的人的想法是一致的,标准的反派形象。因为不管新引擎有多好,很直观的一点是,调试兼容性的工作量的又增加了。对于开发人员来说,最邪恶的事莫过于此,因为这是让已经混乱的世界更加混乱。虽然在测试之前一切结论都是草率,不过肯定的是一旦v8的兼容性表现不好,而chrome又占据一定的市场份额的话,那么这对所有前端开发人员来说都是噩梦。(另外,值得注意的是fx3.1的js引擎也是新的——TraceMonkey

第三,在比较high level的层面值得注意的是Gear的集成。所以chrome的目的大概并不是浏览器市场。对于浏览器市场,和mozilla有良好关系的google大可不必扮演一个坏人来搅局。但是如果是作为RIA的最后一块的拼图,chrome是合适的。至此,google有了浏览器+插件+web应用的完整RIA方案,结果是google得到了将web应用的功能和体验再进一步发展的可能性。这一点是ms、adobe、mozilla、yahoo和apple都比不了的。长久以来Google Gear一直是一个低估的角色,也不普及。然而从上次google developer day上的演示来看,gear还是具备相当能力。相对与flex和sliverlight来说,gear具有的无可比拟的优势,因为gear可以从google自己的web应用那里获得进化的方向。相对与flex和sliverlight,gear避免了高大全而是切实地在实用性上下功夫——这恰恰也是google的特长。所以google是不是可以借chrome的东风,彻底改变RIA的局面,这个也算值得大家仔细观看的事情吧。

最后,不得不说,历史真的总是惊人的相似。又一个新浏览器~如果有一天,我们发现chrome之外的浏览器无法获得google系列应用的全部功能和最好的用户体验,我们会不会又一次扔掉手头习惯的浏览器而转向chrome呢?所以呢,开篇的那句话就让ie、fx、opera、safari、flex、sliverlight等等的大家们共勉吧~

无论Google的形象公关做得多么好

我还是觉得,如果m$死了,那他就是下一个€oogle。

简单的说,对比一下两个比较大的支持web2.0的公司,Yahoo和Google下的服务(del.icio.us, flickr, etc; calendar, pisaca, etc)的开放程度和方式,会发现,在大家都想至少是相对平等地互相整合的时代,google看上去想做一个封闭的体系,然后在一个更高的位置整合所有人。这大抵不是什么好事。

Google Web Toolkit一瞥

http://code.google.com/webtoolkit/,用Java的方式来写Ajax程序。其实仅从语言的角度讲,我很喜欢js,动态类型、不封闭的类、FP等等。但是考虑到js的浏览器兼容性的问题和配套IDE等等的支持的话(虽然不可否认用FF之后js开发轻松了很多,但是那个倒霉IE)……。

一组跨平台的js ui,非常希望google能把这组ui脱离GWT放出来。开发方式,看看名字就行了(想想SWT),控件、布局、事件监听。Java的好处也全有了,类型检查、Eclipse、Junit,不过可以想象少了纯js的一些动态快感。另外就是applicationCreator的方式挺Rails的,呵呵

如果这个东西成为事实标准的话,这将是一件非常非常奇妙的事情。简单的看我们又多了一个纯java的基于Ajax的RIA解决方案,但事情比这个复杂。因为其个东西被google推出来是很奇怪的——google很有影响力,但是他不是java社区的一分子。他是想趁机混进去,还是纯粹玩玩呢?可能比较短视的看就是IBM等Java厂商对Ajax的有点漠不关心的态度(也许SOA牵扯了IBM等等太多的精力了,也没准它更希望Laszlo或Eclipse RCP,反正对比M$的Altas,我们发现Java世界没有很厂商支持的Ajax方案)让google决定自己来干——google在所有的RIA里肯定最喜欢ajax。而我第一眼看见这个就已经觉得它赢了Laszlo和Eclipse RCP了(类Laszlo、Eclipse RCP的方案里我支持M$的Avalon。但是我觉得更可能的是他们全输,因为没办法推广,OS和AS厂商的对立注定了这种结果,你能让想象Servlet输出XAML或者Windows预装Eclipse吗?)。但是如果IBM又后悔了的话,那也许我们又会面对一个分裂的世界了。

疑问是google打算投入多大的精力来维护GWT,比如我们需要Eclipse GWT Plugin,但是同样可以看到其实真正漂亮的Eclipse Plugin还是需要基金会支持的,但是这是一个来自google的方案。事实是google之前还没有掺入java社区的先例。

PS:想法挺乱,真的觉得Java社区应该有一个厂商支持的类似的东西。也许这个东西就会像其他Ajax Framework一样不温不火,纯粹是我高估了它,难说,呵呵