—— Where exceptions happen.

显示标签为“技术”的博文。显示所有博文
显示标签为“技术”的博文。显示所有博文

2009年12月10日星期四

一个奇怪的报错和解决IT问题三定律

在Mac上安装Office 2008,安装器走到一半,弹出一个奇怪的报错,晚上钻研了一会,解决了。此事本身没什么可说的,但第一,这个具体错误肯定不止我一个人会遇到,所以值得写怎么处理。第二,其实分析一下解决IT问题的常用思路还有点意思。所以打开生锈的blog,写篇博客。

我遇到的这个报错信息就是 : "the installer could not install the software because there was no software found to install",
解决IT问题的第一定律:You are not alone. (你不会孤独定律)。IT问题虽然千千万万层出不穷,但你成为遇到特定型号特定系统特定软件特定版本的特定问题的第一个人的概率非常非常小,第一定律的具体应用就是,遇到任何错误不用惊慌,你不会孤独,打开搜索引擎,搜索报错信息,无数搜索结果会告诉你:你有同伴了。看看他们遇到这个问题后的遭遇显然是有用的。
于是我搜了一下这个报错信息,果然先我之前,已有无数先烈在这个错误前倒下了。看了前两个页面,是论坛讨论,且没有人给解决方案。但在第一个讨论贴里发现其他人有的是在安装iWorks 时遇到(不是Office 2008的特有问题),有的甚至是在一个全新安装的OS X 10.5上安装XCode时遇到(也就不是OS X的问题),但有人说自己不知道怎么后来又好了(就是说这个问题可以解决?)
解决IT问题的第二定律:Every error has its reason. (错必有因定律)。你遇到一个奇怪的错误,百思不得其解,它不该发生,不该存在,一切本应该顺顺利利,天书一样的报错信息让你抓狂。这时候一定要理性清明,明白这个错误的原因不可能是外星人,太阳黑子,宇宙射线,小强爬过主板,等等;这个错误之所以发生一定是因为你自己之前做过的所有事中的某一件。
好吧,我冷静了一下,既然可以排除OS X 和 Office 2008 的嫌疑,事情看起来比想像中简单,那安装Office 2008时为什么装到一半会报错呢?这个问题究竟出在哪里?
解决IT问题的第三定律:Make sense of the Fxxking Error.(弄懂报错信息定律),我知道所有的报错信息都不知所云,让人讨厌,让人下意识就会关掉那个讨厌的报错窗口。但是。但是如果你弄不明白出了什么问题,就应该努力弄懂那行报错信息说了什么。要知道,程序员在写错误处理的时候,并不知道错误信息会在你的机器上出现(他们无法预知错误发生的具体上下文),所以报错信息必然语焉不详,莫名其妙。这时候就需要你努力揣摩那行话背后的具体意义了。
又读了一遍这句看起来像同义反复的话,“the installer could not install the software because there was no software found to install”,安装器无法安装软件是因为找不到要安装的软件。奇怪,Office安装包明明就在,哪里找不到了。再从头走一遍安装流程,看见还可以选“自定义安装”,而默认是全选安装。于是福至心灵,猜想是否因为安装包里缺少部分组件,所谓找不到,不是指Office,而是指安装包里的部分选项。ok,那就自定义安装,去掉了几个不必要的多国语言组件,install,pass!

也因此难怪Google上搜不到这个错误信息的具体解决方法,因为它在不同软件的Installer中(只要Installer并不包含全部组件)都可能出现,原因又各个不同(因为各种不同情况的组件缺失)。如果你也遇到这个错,记得选自定义安装,然后只选择你必需的那部分组件,试试能否通过。(尤其是单语言版尝试全部安装多国语言内容很可能就遇到这个错了)

最后,遇到该死的报错信息时请记住:
  1. You are not alone。
  2. Every error has its reason.
  3. Make sense of the Fxxking Error.
其实很多时候往往只要第一定律出手就搞定了。

2008年7月29日星期二

新搜索引擎Cuil登场,酷哦

凌晨起来干活,扫了眼AideRSS过滤出来的大消息,前四条有三条都关于Cuil。说是一个新搜索引擎(。。。),说拿了3000万美元风投(。。),说是前google员工出来做的(。),说是世界最大(?!),说有全新的搜索界面(!~),说一直秘密开发现在隆重登场云云(TechCrunch的消息),那就去看看吧:


Pros:
1,对搜索结果做了关联聚类,把相关的关键字整理在一个Ajax动态效果的分栏列表里,相当好用,这里背后不仅仅是文本挖掘,自动聚类,还明显包含了知识工程的杰作,关键词经过了细心的(人工?)分类,且每个关键字都有解释!(把鼠标悬停在上面可见)
用户面对众多搜索结果,传统的浏览方式就是从头到尾一一遍历,所以只有前几条结果有意义,但Cuil提供了这个按语义组织起来的快捷目录,直接改进了搜索结果的存在方式,现在用户可以对所搜索的对象有一个全景式俯瞰..并选择你感兴趣的方向做进一步深入了解,Cuil提供了另一种搜索体验,这看来是它和google竞争的关键武器。



2,如果搜索关键字有歧义,Cuil会自动提示进一步的限制关键字,这本身很多搜索引擎都有,不过Cuil把这个处理成页面顶部的tab栏,显得很自然。


3, 一些零碎的优点,Cuil的黑色首页比Google/Baidu的白色首页省电,更环保? Cuil版面的特意设计让Cuil的用户基本不用翻屏。Cuil并且很酷的表示它分析网页间的关系就足够了,所以它对你的个人信息和兴趣偏好不感兴趣,绝对不记录你的任何个人搜索历史,也不会利用cookie上传什么东西——这是个标榜“谢绝隐私”的搜索引擎。

Cons:
1,Cuil虽然在新闻稿里吹嘘自己是最大的搜索引擎,收录网页是google的3倍,不过他们应该用的是过时的数据。。Google索引的网页已经在“1 trillion unique URLs”的规模,而Cuil索引的只有120 Billion. 讽刺性的测试是用Cuil 搜索"Cuil—the world’s biggest search engine.",比较用google搜索同样的字串。目前还是google强。。强很多。

2,Cuil现在只索引英语网页,不支持其他语言。

3,Cuil在搜索不同关键词的时候时快时慢,表现得不稳定。刚才Cuil干脆给了一个

No results because of high load...

看来3000万风投对于搜索引擎来说还是不够烧的。。。

ps. 豆瓣9点4套居然一条提到Cuil的消息也没有。。。

2007年12月21日星期五

在并行计算领域JoCaml小规模小范围的成名了

不说废话,写这篇blog的原因是很高兴看见OCaml的一个分支JoCaml的优越性在一次并行计算优化竞赛中一举成名(在邮件列表和技术博客圈里),翻译老外的话是:一个JoCaml爱好者在一个下午写的JoCaml程序的性能超过了一群Erlang专家不断优化的结果(在我看来,Erlang已经不再是并行计算的第一选择了),而且更惊人的是当一个经过充分手工优化的C程序(其实是C++)出现的时候,JoCaml程序与之相比只有11%的性能差距,而当调整了5行代码之后,JoCaml程序又比C++程序快了1%,这点差别其实考虑到不同的编译器/平台/应用,已经可以忽略不计了。换言之,你完全可以把JoCaml并发程序的性能和经过手工优化过的C++并发程序的性能相提并论。更诱人的是,JoCaml在从多CPU平台扩展到多机平台时,只需要加一行代码(C++程序就麻烦了),而这是 JoCaml优越的并发抽象逻辑所保证的。

这系列并行优化的文章见:http://www.tbray.org/ongoing/When/200x/2007/09/20/Wide-Finder
JoCaml的性能优势:http://www.tbray.org/ongoing/When/200x/2007/10/30/WF-Results
一个被这次优化竞赛的发起人认可的性能总结:“Conclusions about Wide Finder, C++, OCaml, JoCaml, Erlang and friends “ (注意:我不知道为什么这个网站被河蟹咬到了,所以被GFW保护的人民请用标题在google搜索,然后设法穿墙看快照吧)
JoCaml的网站:http://jocaml.inria.fr/
文档:http://jocaml.inria.fr/manual/index.html (推荐这份东西,不过学过一点OCaml语言,看起来会更轻松)

ps. 我正在着手把我的OCaml语言写的神经网络仿真程序改写成JoCaml版,刚在一台4核至强的SUSE服务器上编译完了OCaml和JoCaml的3.10.0版本(both of them),看见这个消息真是振奋人心。最后再次赞美函数式语言在并行计算方面的潜力。

2007年11月8日星期四

荣耀属于服务器们

先是在水木ITexpress版看见有人转载了这篇:在网上能够找到的最奇特服务器_cnBeta.COM,然后点去原文link:Royal Pingdom » The weirdest hardware you can find a web server on。中文版本缩水不少,推荐看英文的。

不管是用马铃薯提供电流的单片机,还是用晶体管DIY的CPU,或者hack后的各种老式电脑,手机,游戏机,都装上了某种服务器(当然是软件,而不是机房里的大铁箱或大铁板),也就是说,你可以在世界的任何角落,用特定协议和一台貌不惊人的机器通话,得到它发给你的消息,这实在是很奇妙的事。

这其实不是在描述科幻的未来,继个人电脑普及之后,下一个趋势很可能就是服务器程序向个人终端的普及。例如倒数第2个例子里Nokia给自己的智能手机S60推出了MyMobileSite服务(用于给用户提供免费域名),当你在手机上运行一个python实现的服务器程序之后,再加上必要的包月上网费用,就可以从任何一个浏览器上访问自己手机上的图片,电话记录,联系人等等信息了。

话说我看到这里的时候,觉得这个手机服务器要是还能提供rss种子就太棒了,例如把手机里所存储的照片烧成rss种子,就可以让你的好友订阅你刚刚拍到的照片..通过你手机里的服务器。或者把rss加载在你博客页面的一侧,和twitter,饭否之类的消息相比,来自手机的实时拍摄结果显然更cool。

对。我其实是在希望出现一个内置了服务器的无线上网的数码相机,不需要太多接口,支持xmlrpc就行,能让用户直接一边拍摄,一边就在所有订阅了这个相机种子的feed客户端实时刷新出你刚刚的拍摄结果。web2.0在聚合用户数据流的道路上顺理成章的下一站就是,人人都有服务器!

2007年11月6日星期二

2007年度杰出IT青年——来自MIT技术评论

MIT Technology Review杂志2007年度的青年创新家(2007 Young Innovator)评选结束不久,一共选了35个小于35岁的Innovator(所谓TR35),嘿嘿,还真挺像黄飞鸿的广东省十大杰出青年,我们就入境随俗叫年度杰出技青好了...很奇怪国内媒体(包括博客圈子)都没有介绍,但这其实是份很有趣也很有意义的名单:
这35人分成四个领域:Biotech(生物技术)10人,Nanotech(纳米技术)3人,Energy(能源技术)4人,剩下Infotech(信息技术)一共有18个人。其他领域我是外行,就只和读者分享下Infotech领域上榜的18个杰出IT青年都干了些什么工作吧。另外下面公益,学术,创业三类是我自己分的,开始是好奇有多少是火热的2.0网站,最后发现学术才是主流。:)

公益类:
1,Sanjit Biswas, 25 :发明的廉价无线网络产品,用于从斯洛伐克到委内瑞拉的25个国家
2,Ivan Krstic´, 21:为One Laptop per Child(OLPC)项目发明了一套防毒系统,Bitfrost. 因为OLPC的廉价笔记本是要给小孩子用,所以不能指望用户理解防毒软件的安装升级杀毒的复杂过程,Ivan的任务是发明一套不可能被感染的系统,而他基本做到了,因为Bitfrost的原理是让每个程序运行在一个独立的虚拟计算机里,各自隔离,从而让病毒没有了基本的生存基础。唯一的麻烦在于linux社区中的现成应用程序需要用wrapper封装后才能在Bitfrost上运行。要特别赞一下这位为发展中国家儿童考虑防毒方案的杰出技青。
3,Tapan Parikh, 33:为印度的底层劳动者开发了一套工作在手机上的软件,让他们能简单方便的获取市场信息,例如渔夫该去哪个港口卖鱼,他的发明让渔夫不至于一窝蜂挤到某个市场而卖不出钱,也有助于平衡不同港口的市场供应。
4,Partha Ranganathan, 34:对电源供应敏感的计算机系统,他的发明事实上已经出现在消费产品中,电脑现在会通过各种策略主动的节省那些不必要的电力供应(大约40%),为啥呢?为了减少温室气体排放,实事啊。
5,Luis von Ahn, 29:reCAPTCHA项目,利用Captchas来数字化图书,嗯,Captchas就是为了保证你是人而不是robot让你在登录网站时辨认的那些歪歪扭扭的数字字母,这位兄弟的天才想法是把扫描后的图片切割成很多小块,当成Captchas给人辨认,一个小块会被发给多个人,多数人的共识被认为是有效识别。就这样让人代替机器去做机器不擅长的文字识别工作(OCR),嗯,互联网上天天有那么人在填写Captchas,把这些微小的精力集中起来做数字化图书馆的工作还真不错。


学术类:
1,Josh Bongard, 33 :适应性机器人,长于跛足行走,嗯,坏了一条腿也能继续跛着走,这就接近生物的自适应,而比一般机器(机器人)只有预设的僵硬逻辑先进多了。
2,Mung Chiang, 30:网络优化,他的工作改进了路由算法。
3,Tadayoshi Kohno, 29:systems-oriented provable security. 面向系统的可证明安全性
4,Karen Liu, 30:计算机动画角色的身体语言,经典的且昂贵的动作捕捉系统(motion-capture systems)要降价了,动画工程师有希望直接用软件描述和控制动画角色行为。
5,
Anna Lysyanskaya, 31:又是计算机安全,"零知识证明(zero-knowledge proofs)"领域,让用户可以不暴露个人信息同时完成安全验证,国内某些人估计会不痛快,因为他们是鼓吹为了安全(或为了和谐?),我们应该实名制,应该顾全大局.....
6,Babak Parviz, 34:自组装的微型机器。制造大型复杂电气机器一直是个难题,现在我们希望让它从更小的部件”生长“出来。
7,Marc Sciamanna, 29:控制光纤通信中激光的混沌行为。这极大增加了光纤的理论传输能力。
8,Desney Tan, 31:让计算机会读心术,呵呵,是通过一个心理学实验常用的脑扫描帽,在建立了复杂的脑波模型后,他现在已经可以用自己的脑波直接控制电脑了,就像用鼠标和键盘一样方便。当然了,戴装满电极的EEG帽本身可不方便,但当这个脑波控制技术和虚拟现实技术结合,某些人一直在yy的Matrix游戏就快降临了。。。。

创业类:
1,Garrett Camp, 28:StumbleUpon创始人,一句话总结网站功能,聚合用户偏好来推荐罕见的有趣网页
2,Tariq Krim, 34:Netvibes创始人,一句话总结网站功能,类似iGoogle的用户自定制主页
3,Jeff LaPorte, 30:Eqo创始人,啰嗦的总结,和skype让电脑取代电话不同的是,Eqo让互联网成为电话网络的中介,当Eqo用户在打国际长途的时候,信号会从手机传到本地Eqo服务器,经过互联网传到目的国家,再由当地的Eqo服务器变回语音信号进入电话网络...结果就是省了很多钱。
4,
Kevin Rose, 30:Digg创始人,一句话总结网站功能:聚合大量用户来推荐最热门的网页,这个和StumbleUpon的聚合方向正好相反,一个是为了发现小众,一个是为了发现大众。
5,Mark Zuckerberg, 23:Facebook创始人:一句话总结,以人际网络为中心的互联网应用平台。Facebook如果不是下一个Google或MS,那一定是因为被Google和MS收购了。

业界和学术界的热点和趋势都很明显,唯一值得担忧的是公益项目们,填补数字鸿沟任重道远。

转载引用需附姓名和出处-非商业性-不可修改

2007年11月3日星期六

从饭否到豆瓣,为什么不能从豆瓣到饭否.

试用了饭否。最大乐趣是浏览饭否开发日志时发现的源源不断由爱好者开发的插件,这些让饭否充满了生命力。
直到我发现了豆饭 - 豆瓣饭否集成Firefox插件,我很快装上了,现在可以从豆瓣浏览时向饭否发消息了,甚至可以把一个消息向豆瓣广播和饭否同步发送。但很可惜的是,反过来不能,豆瓣并不能利用饭否或其他微型博客服务来给自己的“广播”添砖加瓦。

我相信,每家2.0网站都应该专注于提供自己独特的服务和价值,豆瓣九点就证明了豆瓣没有必要自己提供博客服务,九点通过聚合rss,能产生更多的价值。饭否或twitter着力于让用户能够从各种途径方便的记录生活点滴,而这本来是豆瓣可以借力的。但可惜的是现在只存在豆饭和单向的从豆瓣流向饭否的信息。
在web世界里,当一个网站的对外开放的接口越通畅,它才能吸引来越多的信息流和人流。网站要专注于自己的核心服务和价值,同时就意味着向外开放和聚合其他人的服务,看起来是让用户接触到其他服务有了流失危险,但实质上,用户只会停留在能最方便得到各种服务的网站。最光辉的榜样就是Facebook. 在前一个时代,google正是让用户能最方便得到各种信息而得以称霸。不论是信息还是服务,让用户方便是不变的法门,这就意味着网站应该向所有有效服务开放,并提供公开的API接口来加速这个过程。

最后希望豆瓣越做越好,希望能早点通过饭否的msn接口向豆瓣广播发送消息 :-)

2007年6月4日星期一

2007语义技术大会——谁还关心语义网?

看到一条新闻,2007 Semantic Technology Conference(2007 语义技术大会),发现出席者里不乏业界大公司,但说真的,谁还关心语义网?



Semantic Web(语义网),Ontology(本体论),Personal Agent(个人代理),Multi-Agent System(多代理系统)....这些概念从90年代末起就在学术圈里名声遐迩,被教授们看作解决当前Web信息发现瓶颈难题的救星,是下一代WEB的关键技术,等等..什么是语义网?最简单的说法,就是网页上将不再只有有人能理解的自然语言,还将补充各种机器能理解的语义信息。(毕竟让机器理解汉语或英语在可预见的将来还是高难度的任务)在一个充满语义信息的网络上,无需理解人类语言这种高难度技能,机器Agent就能为人做很多事,学术界为语义网设想了大量充满未来色彩的应用场景,但可惜建构语义数据是开销巨大的生意(会OWL的知识工程师只怕比会Haskell的程序员还稀有),语义网也就从没实用过。



眼看着Web 2.0被Start-ups和VC们喊得震天响,这个2.0版的web里却完全没有ontology,没有agent,当然更没有语义网什么事。当初Tim Berners-Lee(这位不用介绍吧,就是他发明的Web)可是在W3C上宣布语义网是下一代Web的. 自Berners-Lee提出这个设想起,语义网就被看作下一代web,但它不幸走上了知识工程的长征路,眼看接近胜利的时候,社区的人际传播网络加强版突然就红了,然后现在说起web 2.0,业界想到的是blog,rss,tag,AJAX, SNS社区,学术界继续默默的向电子商务推销自己被冷落的语义技术,希望能找到应用场合。看看这次2007语义技术大会的出席者,有Stanford,NASA, US Air Force这些研究单位,有 Microsoft, IBM, Oracle, Sun, Google这些IT巨头,有Walmart. Lockheed Martin, Boeing, Ford Motors这些工商业巨头,呵呵,就是没有那些火热的web 2.0 新贵。这对一个声称是下一代网络核心技术的会议来说实在有些讽刺。



难道语义网要成商用技术?只能说太可惜了。现在的tags和OWL比起来,连玩具都不是。



最后推荐Tim Berners-Lee在W3C发布的一个关于Web Science的Presentation. The Two Magics of Web Science





2007年5月16日星期三

How-to: Build OCaml native code with MSVC 2005

Most Ocaml books, tutorials and lectures would stress its performance. OCaml’s optimizing compiler generates high-performance native code, which I cost a whole afternoon to build.I installed Ocaml 3.09.3 release, and read the “Readme.windows.txt”. I found these evil lines:

" Visual C++ version 6 or later. We use Visual C++ 2003.
The free download Visual C++ 2005 Express Edition works under
Windows 2000, but not under Windows XP because of the "manifest"
annotations on DLLs, which are not yet supported by OCaml.
So, please stick with the 2003 edition for the time being. "
But... I've installed the free Visual C++ 2005 Express Edition. ╮(﹀_﹀")╭ One way is uninstalling the free MSVC 2005 Express edition, then emule/bt a pirate and out-of-date MSVC 2003. the other is trying to find some workaround. I chose the latter.
After a long try-err process, I successfully build OCaml into native win32 code with MSVC 2005 version. following is the detail step-by-step:

0. make sure you've installed Ocaml for the port based on the Microsoft toolchain. This guide isn't for Cygwin port.

1. get Visual C++ 2005 Express Edition from Microsoft.com, It's free. and get it's SP1 too.

2. get Microsoft Macro Assembler 8.0 (MASM) Package from Microsoft.com. It's free also.

3. get Microsoft Windows Server 2003 R2 Platform SDK from Microsoft.com. It's free but require you pass the "Windows Genuine Advantage" test.(if you hate this test. you can easily find the SDK ISO on emule...*\(▔▽▔)/*)

4. install 1,2.3.

5. set the PATH environment variable: add "C:\Program Files\Microsoft Visual Studio 8\Common7\IDE;C:\Program Files\Microsoft Visual Studio 8\VC\bin" into the PATH. you may need alter the path as your tools' real install directory.

6. set the LIB environment variable as "D:\Microsoft Platform SDK for Windows Server 2003 R2\Lib;C:\Program Files\Microsoft Visual Studio 8\VC\lib\" you may need alter the path too.

7. Thus you ocamlopt your .ml file, thus all of them. And on the seventh step you ended your work which you had made; and you rested on the seventh step from all your work which you had made. :-P

ps. this How-to guide is writen in an obviously imperative style. Let us rewrite it in functional style:
let PATH = "$Visual Studio$\VC\bin; $Visual Studio$\Common7\IDE"
let LIB = "$Platform SDK$\lib; $Visual Studio$\VC\lib"

Functional style is really short and clear. :-)

OCaml resources

Chosen OCaml for my neural network simulation, these days I greedily collected OCaml resources all the Web just as a spider. Wish the following links help other OCaml-rookies.

Intro:
Ocaml on Wikipedia ;
Ocaml Homepage

Manual:
The Objective Caml system release 3.09 (newest ref)

Lecture:
Using, Understanding, and Unraveling: The OCaml Language; (2000, 2001)

Tutorial:
http://www.ocaml-tutorial.org/ (this site is resourceful and updated)
"Ocaml for scientist" (Chapter 1) (recommend)

Code:
OCaml official codebase: The Caml Hump
Codecodex's OCaml Category
. (this site is very interesting for fans of many kinds of language , not including Haskell :-p )

IDE:
OCaml Development Tools (an Eclipse plug-in. released 1.0 at May 10, 2007)

Benchmark:
OCaml vs. Java.(Take it for fun!)

News rss:
Maybe I should use pipes to make one rss for OCaml News….Hmmm

中文论坛:
Ocaml china, 一个不错的中文Ocaml论坛,虽然草创,文章和人气都不是很多。但格局和讨论氛围很好:)希望能进一步壮大。

2007年2月15日星期四

大家一起来玩Pipes吧

Yahoo推出了下一代的web基础服务:Pipes.
我是今天在Moutain同学的博客上看见这个大新闻的,Web 3.0到来的步伐比我想象的还快,已经有人喊出这样的口号了:“Yahoo!Pipes = Web 3.0 Feedstravaganza!!!”。我2月3号写文章时候想1年后差不多会发生的事情,结果4天后,2月7日pipes上线。面对这么迅速的变迁,不由不让人感觉技术的发展就像是失去控制的脱缰野马,猜测某种反技术思潮会因此再次抬头:P

Pipes的基础能力是使用户能够在图形界面下自由完成对web数据的集成和过滤(并可以分享和重用他人的Pipe),数据源是每个blogger writer/subscriber都很熟悉的feed,然后你可以在一个图形界面中将这些数据源的数据作为某个过滤器的输入,通过用户所定制条件的过滤后再输出..这样的过程可以随意组合,产生你所希望的数据服务。管道(pipe)本来就是UNIX的经典编程范式,随着OO兴起被大部分程序员冷落了,今天Pipe模式的回归,实属意料之外情理之中:因为pipe, filter与 feed的组合是那么契合。

晚上兴致勃勃玩了一会Pipes,觉得这个仿工作流软件的web图形界面做的还是比较易用的,有比较完善的在线提示和例子,Geeks们应该都能轻松愉悦的上手,但建了两三个toy pipe之后,就觉得功能局限的挺利害。因为数据源必须定制在pipe里,外部输入的数据只能当参数,保存不下来,也就是说不能由外部动态增添或删除数据源,无法搞出比较有意思的动态的数据服务,只能搞静态的...不爽。

另外我不知道对没有编程经验的人算不算有门槛,或许他们至少能改动其他人share的现成pipes。其实期望编程难度下降到日常会话的程度并不现实,我觉得随着Web 3.0势力的扩张,某种程度的编程知识也会有类似英语的学习潮流,毕竟这个年代,计算机数量比英语人口还多了,5年前肯定想不到人人都会折腾HTML/CSS,发布Blog...

大家一起来玩Pipes吧,有做了好用的Pipe知会一声:)

2007年2月8日星期四

定制自己的Google引擎

整天闭门家中考虑网络的动力系统模型,对最新发展又一次后知后觉,不过总算对大方向还是预测正确。上一次我刚在blog:“Web 3.0 is installing..please wait” 里猜想将要进入由大众创建并分享网络服务的时代,今天就发现了一个新的实例:Google在2006.Nov悄悄推出了Custom Search Engine,鼓励由用户自行定制专用的搜索引擎。通过指定关键字和站点列表,你就能得到一个基于你个人偏好和浏览经验的Google专用搜索服务。

我试做了一个搜索电子书(ebook)的搜索引擎,一共加入了47个我记载在bookmark里的电子书站点,成果是这个ebook search engine, 另外我blog页面右侧栏也加上了搜索框“Search Ebooks”。试用了一下张爱玲和Shakespeare,效果良好:)本来电子书下载站点就是既多又乱,虽然bookmark可以无限增加,但要下载 的时候一个个点开去找真是一个囧字,ok,现在要找书籍下载方便了。遗憾是很久没有下载过技术类书籍了,那些速朽的技术手册们..如果谁知道好的技术类书 籍下载站点,可以直接留言告诉我,或者点Volunteer to contribute to this search engine,真诚欢迎参与来改进这个ebook下载专用搜索。另外如果觉得这个搜索服务对你有用,点击搜索框下面的add to google图标,就可以把它加入你的Google个人主页了:)

要 说改进余地的话,我觉得,google这个服务大可以更自动化一点,能够结合Google marks或del.icio.us,让用户能够直接把一组站点加入定制搜索引擎的列表,不用一一添加,还可以根据当初bookmark站点时的tag信 息,作一些基于聚类的推荐。

最后建议大家用定制搜索取代长长的资源类书签列表..没错,web 3.0 is installing…

2007年2月4日星期日

Web 3.0 is installing…please wait.

看见blog中文翻译的一篇“超越用户创建的模式:Web 2.0 和语义网络”,引起了我讨论Web 3.0可能实现细节的热情。

Web 2.0是一个门槛性事件,跨过这个门槛,证明Web与时俱进,不会成为像Gopher一样的古董.(还有人知道Gopher吗?学到ISO协议第七层的时候可能会提一下) 但不要被Web版本号升级所欺骗的是,Web升级不是跳跃的突变,而是渐变的演化过程,构成Web 2.0的各种技术要素,事实上来自于从2000年起不断的各种技术升级;同样的原因,当前真实的Web版本号早已不是2.0,而是2.x(有人把当下流行的基于人际网络的各种社区称作2.1,这纯属无聊的概念炒作)。我们可以确认的是:Web 3.0正在安装中,让我们来眺望一下3.0的可能未来。

如果把Web 2.0概括为:由大众创建并分享内容,那么Web 3.0的目标就是:由大众创建并分享服务。在我们用博客和Youtube突破了内容必须由正式媒体提供的心理障碍之后,接下来就是突破网络服务必须由软件工程师编写的心理障碍了。而一切事实上正在向着这个目标发展中,我们可以简单的划分这样两个发展步骤:

    1,由用户定制的网页,用户创建自己的界面。Google Personalized Homepage和微软的Live.com都可以看作这一类的原型。目前的页面定制还是停留于让用户自行拖放各种小型web数据服务(所谓 badges),但我猜想最终将走向让用户拥有对整个页面的决定权,与其让网站设计者殚精竭虑去讨好所有人(Mission Impossible!),不如按照长尾理论,给用户以选择的自由,让他们自由决定在页面上端添加一个直达某个功能的链接,或把右下侧那些“看起来很蠢” (尊重你的用户的主观感受)的功能列表收缩成一个弹出菜单。这将是比一个由rss自动转发数据所堆砌出来的一个其实很白痴的表格状 Personalized Homepage要棒得多的事。想一想,Windows只是给了我们一个桌面,就有那么多人每天不厌其烦的在上面拖动和布置图标和背景,如果web 2.0网站能让用户能轻松定制自己的个人页面,网站设计者所苦恼的交互性设计优化问题就不复存在。比起Google和Live.com,现在红火的web 2.0 startups更需要这个技术。随之而来的就是界面设计的分享。在web 2.0典型的社区环境中,用户从不同个人所拥有的页面中跳转,选择自己感兴趣的内容(例如豆瓣所提供的体验),但现在用户可以分享的不仅是千差万别的内 容,还包括各种充满个人创意的界面设计,(设想一下,用户可以选择页面某个区域,然后在弹出的提示菜单里选择:应用此界面元素至我的页面。)以上描述的技 术将把HTML进一步彻底分解为可独立存在的页面元素和组装方式,由目前的XML/AJAX技术继续发展后的版本(会有某个数据文件描述页面元素的组装方 式),然后在客户端完成各种页面元素的动态重组
    2,在用户创建界面之后下一步就是由用户组装的服务,同样的道理,软件工程师不可 能生产出满足每个人每个无聊需求的软件或服务,但在web的超傻瓜界面下,可以让他们自行用一些基础组件去组装自己的网络服务。例如我如果写了篇博客,想 同时转载到我的邮箱备份。这种细微的需求,如果某家博客网站有提供,可能是个不错的吸引人的Feature,但用户不可能仅仅为了一个这样的特征就迁移自 己的博客,但他就无法享受“发表博客自动转发邮箱”这么一个的细小的自动化的快感。(技术的发展,就是为了让人获得自动化的快感,这个就不展开了)但事实 上发邮件是大多数网站都有的基本服务,目前定制服务的提供方式是让用户在某个Option或Settings菜单中选择某个单选框,例如“自动转发评 论”,这肯定是需求工程师分析出的按照80/20原则的代表大多数人的需求,可长尾再一次的出现,当你给用户自由选择权力时,会产生许多不同的需求,例如 希望同时往两个邮箱中转发,发表并同时转发,转发超过多少长度的文章,不要转发链接要把文章和评论合并转发,这是列举不完的对服务需求的长尾。有趣的地方在于,随着用户自组装服务技术的发展,用户将前所未有的获得自由控制计算服务的能力,曲线达成了当初开放源代码运动的目标——而且不需要源代码。, 我们正从傻瓜化时代走向超傻瓜化时代。在网页上用类似Visio画流程图的方式组装服务或许够简单了(如拖动一个代表博客发表事件的矩形,将它关联到邮件 发送服务的传送带上),也或许还不够,但最终我们将在web 3.0时代享用可自由组装的内容,界面和服务,这会带来许多远远超乎我们想象力的应用组合。(我设想了一个面向个人博客的Call Center服务)

Web的发明人Tim Berners-Lee所预言的下一代网络的关键技术是语义网(Sematic Web),而目前看来这项技术事实是一个Ontology/知识表示的泥潭,我觉得它的命运将类似于ISO七层网络协议,最后被某个更轻量级的现实方案所取代。Web 3.0正在安装中,这里有软件工程师的功劳,并将有用户的更大功劳。

2004年4月27日星期二

自动汽车和抽象化生活

我们正走向一个不断自动化的未来,而且越来越快。自动驾驶的汽车也正从实验室出发, 越开越快,1995年,Navlab-5从华盛顿开到圣地亚哥,机器控制了其中98.2%的时间,平均速度超过100公里/时。这样的汽车或许10年后就 将进入日常生活:老弱妇孺不再需要学习开车,坐进汽车输入(说出)地点,汽车机器人联系远程服务器,查询当前的交通路况,自动选择合适路线...人在这个 过程中,毫不操心地一无所知,快乐到达他的目的地。

交通系统无疑变得更加复杂,或许最后所有汽车都必须把自己的出行目标提交给幕后的中心服务器,由它统筹为每辆车安排冲突最小化的路线。在这里,和在其他很多地方一样,人和技术达成如下交易:人放弃自由和操心,换取效率和舒适。人决心用腾出来的时间精力去做更有趣的事情。

代 价呢?代价是我们逐渐在生活中成为无知的用户。自动系统复杂运作过程中的一切都是我们所不愿也不能关心的东西,技术收集了权力,并更方便为特权服务。例 如,某个要人的专车出行,中央服务器能够毫不费力地为之腾出道路,而其他汽车包括它们的主人将对之一无所知,他们将继续安心沿着被安排的路线走向他们的日 常。

我们的生活毫无疑问地不断扩展,向着边界前进;也同时变得越来越空洞抽象,越来越多的部分交给技术负责。例如出行,在自动驾驶汽车的帮 助下,成了地点的输入和一个确认按钮。对古人而言,他为了走几百里地,需要准备行囊,喂饱他的马,绑紧他的裹腿,然后沿途的树木和泥泞...有无数的细节 构成了一次具体的出行,而这些经验,已然越来越快地离开了我们。技术化的生活是抽象的生活,甚至伊拉克上空的飞行员,他看不见杀戮本身,他只是抽象的对着 屏幕提示的目标按下确认投弹的按钮....

...以上是我和槐树花昨天的午餐话题,做个blog算记录罢 :)