Archive for January, 2007

实现IE/FF的URL自动换行(隐藏)

Wednesday, January 31st, 2007

晚上花了些时间调整博客页面:主内容区被横向扩到900px;解决了烦人的URL自动换行的问题 – 这在右边sidebar里面的评论部分问题尤为严重,IE用户经常出现右边sidebar跑到了页面最下方。

comments里常常会贴些较长的URL,而IE在处理URL的时候由于没有空格符所以无法换行,页面被突出的URL顶出来,很难看。

找到了一份很实用的有关IE/FF文字换行的指南,利用里面提供的方法,修改了系统的style.css。现在长URL在IE中会自动换行,在FF中超出预设部分的内容会自动隐藏。

支持IE/FF自动换行(隐藏)的CSS定义(请尝试分别用IE和Firefox访问本贴,比较一下效果):
#wraptext {
width: 170px;
word-wrap: break-word;
overflow: hidden;
}

http://www.MySuperLongExtremelyEndlessURL.com/

同步

Tuesday, January 30th, 2007

数据同步,是很多计算机软件都有的功能,用来帮助以实现两份数据的一致性。可我对同步却一直很小心谨慎,甚至尽量回避,因为要理解每个软件自己对同步的定义,以及这些定义隐藏下的实现是很劳神的事儿。

刚用Notes的时候, 知道了要做“复制”,即服务器上的新邮件会下载到本地复本上;而本地复本上自上次复制后被删除的邮件,在新的复制过程中会从服务器端同时删除。这样“复制”下来,服务器和本地的拷贝完全一样。我有一次不小心,在本地批量删除了上百个邮件,于是不敢继续“复制”,生怕一损俱损。为了把服务器上保存着的那几百封邮件重新拷贝到本地,我选择了为远程邮件创建一个新复本。在新复本复制完成后,改文件名成当前本地邮件复本,同事删除老复本(绝对的笨办法,但我整个过程,自己可以完全理解并明确知道每一步的后果)。

iPod的“同步”,是要求iTunes上的资料库与iPod播放器里一致,通俗一点就是绑定:iTunes instance和iPod设备的绑定。如果要用自己机器上的iTunes上拷贝音乐到别人的iPod上,意味着要首先删除这个iPod上的内容,然后“同步”。我不知道可不可以支持从iPod到iTunes的同步,即iPod上的歌曲覆盖iTunes的资料库(考虑到著作权问题)。如此一来,iPod的同步成了单向复制,不仅是内容只进不出,而且更换iTunes,会导致iPod上数据强制删除。

Windows Mobile的同步,我完全不用。每次通过USB接上PDA后,总是要问我要不要同步,我不知道它是让我把PDA里的新东西传递到PC上,还是PC上的东西传到PDA上,还是双方有了内容修改,彼此更换内容并达成一致。

Lotus EasySnyc我尝试用过一次,也没有太明白“同步”到底是从哪儿到哪儿:同步后如果PDA上更改,信息能否回到PC;PC上信息更改,是否能回到PDA上;双方同时更改,谁来覆盖谁?

所以在真正的同步操作发生前,用户几乎没有机会能了解到“同步”后究竟会导致哪些事情发生,哪里的数据最新、最可靠?整个过程可逆否?如果两边的数据都可以被独立修改的话,如此一来,数据同步和源代码版本控制便很类似了。代码控制提供的词汇比“同步”这两个词好,普通用户很容易理解它的含义:update(这个有点晦涩), check-in, check-out, add to control, commit,方向性都十分明确而且可以被理解。

如果还有新的软件需要“同步”功能,希望能在对话框上有类似下面这样明确的选项(不妨考虑用”下载”、”上传”这样更明确的词汇以避免混淆):

对于潜在的、需要作出取舍的选择,多透露一点实现细节,让操作结果变得可预测,有助于简化使用、树立用户对产品的信心。

熊猫不烧香

Sunday, January 28th, 2007

最近和熊猫有关的新闻真不少,除了有给18只小熊猫起名外,最火的算是熊猫烧香病毒了。

熊猫这个香烧的好,至少比我去九寨沟时在寺庙里是被人忽悠烧了90块钱的高香要有意义的多了,这个香让人感受到久违了个人电脑气息,如雨后带着腥味儿的空气一般。

仿佛弹指一挥间,病毒从杀手堕落成了流氓,以前一上来就清分区表、format c:、del *.* /y、修改PE文件、烧BIOS、靠寄生在别人身上生存的代码,猥琐的变成了.exe, .dll, .scr,变成了可以通过rundll32调用的系统服务、浏览器工具条甚至还带着一个installer。早先杀人越货的勾当成了牟利、骗钱的下三流手段;编写病毒的高级程序员也堕落成用VB都可以开发病毒式Situational Applications的普通程序员;病毒的核心也由“技术”为主转变成以“骗”为主,而说到骗和骗术,不得不感叹这块辽阔土地上蕴藏的巨大资源。

在网络流氓丛生的年代,产了一个熊猫,管它烧香不烧香,它的确是当今病毒世界里的熊猫,被大家瞻仰,连源代码都开始放到网上供大家研究,我想不少三、四十岁IT老人快要流下激动的泪水了。

熊猫烧香的积极意义在于:

1. 教育电脑用户,病毒除了能弹出广告,偷信用卡号外,还能破坏你的文件系统;

2. 不能完全依靠浏览器的安全工具(popup killer;phishing detect),你需要一个实时的防病毒软件;

3. 骗子满街走,流氓不稀奇;学好数理化,走遍天下都不怕。

每年春节回成都过年,我都会去熊猫基地看看,运气好的话能看到几个月大的小熊猫。这次是该我给它烧香了。

IBM软件产品、解决方案在线演示大全

Thursday, January 25th, 2007

http://demos.dfw.ibm.com/上,一共发布有超过500个软件产品、方案的演示视频,并提供10种语言的版本供选择,是绝好的IBM软件快速入门资料。

Moving on

Tuesday, January 23rd, 2007

Moving on“,是Irving告别自己长达37年的IBM职业生涯后,对未来的希望和规划。在今年6月正式退休后,Irving将会去MIT任教,并会继续在公司做part time工作。这位掌管IBM技术战略与创新的教父,可以考虑著书立说,谈谈这30多年来的成败,惠及我们扁平世界里的群体和Second Life中的芸芸众生。

Irving, move on…

变了天的流媒体

Sunday, January 21st, 2007

在07年第一期程序员杂志上,蔡学镛在分析Flash Apollo的时候提到了Flash vedio,它的出现,尤其是在You的2006年,使得苦心经营流媒体的RealNetworks、Microsoft、Apple们建立的功业岌岌可危。

我更愿意把Flash video叫做“平民流媒体”、“快餐流媒体” – 普普通通的视频质量、无QoS管理的HTTP协议,却凭着丰富的平台与桌面支持,良好的可用性迅速走红。由于缺乏实时性和数据非持久性,Flash video甚至不能称作严格意义上的streaming video,充其量可以叫“offline streaming”。它的流行,只能说明一个道理,大多数互联网用户认可并接受它,正如老百姓对“地铁房”的偏爱一般。

RealPlayer,就我的观察,在国内市场的最大用处就是播放网上打包好的RMVB格式的电视连续剧,谁还在乎它支持不支持SyncML呢?Microsoft Media,能让它在多平台多客户端上正常工作(如果可能的话)需要多个拥有计算机硕士学位的工程师和来自微软的支持。

其实这不是Flash vedio的胜利,它是平台与易用性的胜利、是长期以来宽带不宽的可怜下场,这是我在新浪上痛苦的看完丁俊晖单杆147分视频后的深刻体会。

PS: IBM内部的视频共享网站The River (BlueTube),采用了Flash video格式。

周末Catch

Saturday, January 20th, 2007

又是一个突击看片的星期六,从下午1点到晚上8点,连续看了4部电影(其中一部看到一半就边看边拖了,之后5分钟到底)。Catch是这个周末最值得回味的好电影,可以算是本人自《双瞳》后觉得最有看头的台湾电影了。

作为一个抓贼电影,Catch的身上有着类无间道的情节、石头的手法、古装探案戏的神秘感,收纳了台湾社会的众生像 – 政治、上流社会、名人、绯闻、欺骗和生存,这是一部聪明的电影、好玩的电影。

聪明不仅是Catch,胡戈的007大战黑衣人也很聪明,看到光着膀子的胡戈在宾馆里数钱的时候,不得不说这个家伙表达出了让很多人共鸣的东西。我最喜欢的一个情节是降龙十八掌大战布什的那儿段,音乐配的是唐朝的国际歌,太有意思了。另外,胡戈的声音不错,外语水平挺棒,呵呵。

温故而知新

Tuesday, January 16th, 2007

我已经记不得上次访问http://www.yahoo.com是什么时候了,但我依然清晰的记得第一访问Yahoo是在96年上海展览馆举行的一次计算机展上,我在Yahoo搜索框里输入的第一个词是”disney”。

时过境迁,现在访问Yahoo的机会变得越来越少,只是在每个周末花上5分钟清理一下Yahoo邮箱里的垃圾邮件。这个周末,还把以前Yahoo Groups上建立的邮件列表搬到了Google Groups上。我个人的感觉,是无处不在的花哨图片和闪烁的广告,让Yahoo精心设计的2.0风格狠狠打了折扣,就像穿着西装带袖套一般。下面是我能容忍个人门户设计的极限了,再多的图片和动画只能让人感到不安(想想那些Flash广告,里面一个西装男或者白领女,观赏他们的代价似乎只有得到一部热门电影的种子才勉强值得):

现如今,最好的软件和互联网服务都跑进了“lab”,Google lab, Yahoo lab (Research), Adobe Lab, 抓虾 lab腾迅 lab搜狗lab,已经快到了你说自己在开发部工作都不好意思跟人打招呼的地步。

正如二十多年前,外企进入中国,间接完成了落实中国知识分子政策的光荣任务;lab毫无疑问成为当下创新者的舞台,对于从业者来说,这戏不仅要看,更要学、要演、要当角儿。

快速协同编辑

Thursday, January 11th, 2007

这两天,和早先学校一个实验室的同学准备周末的聚会,几届师兄师弟师妹们难得聚在一起,免不了要整理一份通讯录。于是我们把用Excel做好的空表格拷贝到了Google spreadsheet上,让大家一起在线协同编辑,免去一份.xls文件传来传去,不停整理的麻烦。刚开始用的还不错,多个用户登上去,可以同时修改,还能通过Web进行群聊,但很快就出现了问题:很多收到编辑邀请的同学没有真正获得编辑的权限,只是View only。调研后,发现Google spreadsheet的硬伤:

1. 通过E-Mail邀请别人来共同编写电子表格,接收方必须有Google Account(否则View only也不行),但不必需要有GMail帐户;

2. 接收邀请人的E-Mail地址必须与其Google Account里的电子邮件地址一致。

强制注册是驱赶用户的最佳手段,Google spreadsheet成功的做到了。

快速的在线共享、协同编辑系统(或者说敏捷的),应该可以支持临时的快速文档共享和群体编辑(像百度贴吧一样,弱化用户验证);无状态的在线协作,一群人来了就写,边写边聊,写完就散。整个协同周期可长可短,短的甚至1、2个小时就可以完成,基本不需要注册、登录,一个URL到底。

对于mission不critical,data不sensitive的小圈子,一般的编辑任务完全够用了。

高用户体验的系统,不仅本身要简单、直接,还能成功限制用户思维的扩散,给人一种“可以100%驾驭的优越感” 。

IBM大学合作网站

Wednesday, January 10th, 2007

年底,收到大学合作部赠送的一份台历。台历的前、后面底座上各印了一些网址,摘抄于此,供同学们mark:

IBM中国大学合作部网站:

http://www.ibm.com/cn/ibm/university

IBM中国大学合作项目CERNET网站:

http://ibmur.hust.edu.cn

IBM中国招聘网站:

http://www-8.ibm.com/employment/cn/index.html

IBM developerWorks中国网站:

http://www.ibm.com/developerWorks/cn

IBM alphaWorks新兴技术网站:

http://www.alphaworks.ibm.com

IBM先锋部落网站:

https://www-900.ibm.com/cn/idr/tc/logon.jsp

IBM全球学院计划网站:

http://www.ibm.com/university

水木社区 IBM技术研究与开发版面:

http://www.newsmth.com/bbsdoc.php?board=IBMTech

补充:水木社区”求职IBM”版面:

http://www.newsmth.com/bbsdoc.php?board=Career_IBM

JavaScript IDE

Monday, January 8th, 2007

Adobe Lab半个多月前放出了JSEclipse(从InterAKT Online收购获得) – 一个基于Eclipse的JavaScript环境,集编辑、代码辅助、语法检查与一体的集成开发环境。我曾在WTP的JavaScript editor上花了一点点时间(扩展过RAD 6的JSEditor),感觉一般般。Firefox有个名字拗口的插件 “Extension Developer Extension”,也提供了JavaScript的开发、测试环境,不过也是半专业的工具,小规模搞搞还行。

哪位达人有这方面经验,推荐一个主流的open source JavaScript IDE吧。

百思买的Wii

Monday, January 8th, 2007

《三联周刊》上说Wii(应该是神游版)将于1月15日,在上海的百思买(BestBuy)举行全国首发。

我元旦去新开张的百思买踩了一下点,环境很好,老外很多,东西很贵,工作人员很热情,都是年轻人,还有一些明显是外籍员工家属抱着孩子乐呵呵的转悠。 游戏机展厅有Wii的试玩,有人在打网球。旁边有个橱窗陈列着老式红白机等爷爷级游戏机,紧挨着就是小神游的GBA,780块一部。

觉得东西贵因为发现百思买的贝尔金110v-224v万用插头卖99块,新蛋卖79;某款iPOD音响2100,网上卖1700。顶楼是卖冰箱、空调的,门可罗雀,大部分人都集中在iPod、游戏、手机和电视、影音柜台。

Wii可能不适合我了,在PC上用我的北通小双打手柄玩玩RocketNES模拟器里小游戏,蛮好了。

YesScript – A Firefox extension to allow blocking JavaScript for web sites SELECTIVELY

Friday, January 5th, 2007

YesScript是我写的一个Firefox的扩展,允许用户有选择的屏蔽指定网站的JavaScript功能。虽然在Firefox选项对话框”Content”页面,用户通过选择”Enable JavaScript”打开或关闭JavaScript功能,但这种改变是针对所有网站,而不能选择性的屏蔽。

写YesScript的主要动力来自使用Google时的不便 – 用Firefox在登录Google后进行搜索,在返回的结果页面中,如果点击某个搜索结果的链接,Google会先把请求发送给自己(收集用户的选择偏好),然后再重定向到目的站点。由于在国内访问Google.com的不稳定性,常出现由于Google自身响应速度慢导致链接打开速度慢;实在慢的时候,我一般在搜索页面里面Copy & Paste 搜索结果链接到另外一个tab窗口中打开,跳过Google的用户反馈收集 – 这些都是Google页面中的JavaScript代码造成的。


Fig.1 Redirect URLs

好在Firefox提供了选择性过滤JavaScript的支持,它同时提供了“白名单”和“黑名单”的功能,分别针对指定网址有选择的开放和关闭指定网站的JavaScript功能,但此功能并未开放给用户直接使用。NoScript是一个Firefox插件,它实现了JavaScript“白名单”功能,即仅允许某些网站开启JavaScript功能,其余全部禁止。有关“黑名单”的插件,我在Web上搜了一下,没找到,才决心自己写一个。为了和NoScript的名称相对应,这个插件叫做YesScript :)

功能

YesScript是一个很简单的JavaScript“黑名单”插件,它的主要feature有:

  • 添加自定义“黑名单”,屏蔽名单中网站的JavaScript功能;
  • 功能开关,允许打开或者关闭YesScript,以便需要时临时恢复或者关闭JavaScript屏蔽功能;
  • 中、英文界面,根据Firefox语言版本自动切换。
  • 部署了远程更新RDF文件,供Firefox自动发现YesScript新版本并升级。

因为YesScript修改了Firefox的安全策略,所以任何改变,包括增加/删除黑名单上的站点;打开或者关闭YesScript都需要重启Firefox才能生效。

Fig.2 YesScript extension


Fig.3 Manage Blacklist

测试

我在Window XP (Firefox 1.5, 2.0)Ubuntu 6.1.0 (Firefox 2.0)上对YesScript进行了测试,均可正常工作。

考虑到公司知识产权相关规章制度,YesScript无法放到公网上下载,目前仅能开放给内部员工使用。

下载地址(IBM Internal)

YesScript Extension Installation

如有bug或者建议,可直接发mail找我 :)