关于即时通讯的胡思乱想
XMPP的数据采用XML传输,这是一个容易滥用、塞进过多特性的格式。看《XMPP》一书,好歹啃下来了。
不过找C++的XMPP库的时候,总觉得没个顺心的。最完善的也许是gloox,号称文档完善。但是文档,也就是个class and function reference,没有阅读入口,还不如直接看代码。后来看到代码包里有十几个example,继续尝试阅读。
找库的时候不时在动摇是否要死磕XMPP协议,它真的是最优选择吗?我想过google wave,其他协议,还有自己新写一个协议。
后来发现,google wave的服务器间协议其实是通过XMPP传输的。这符合我的想法之一:基于XMPP,开发一个独立于其他XMPP环境的协议。但是google wave我现在看来他们的进度不行,已经发布这么久了,client-server协议还没定制出来,用户只能用浏览器进行交互。浏览器的通知机制还没完善到能取代桌面软件的地步。
那么我是否自己创一个通讯协议?我还没有那个自信,主要是一人的精力很难做到服务端、客户端的实现,并且还要推广得开。不过也不是不可能,在我摸熟了XMPP,并且发现核心问题之后,可能再自己开发一个。
至于其他协议,我刚在搜索。这个协议要比XMPP好的话,需要有跟google talk同样基本的服务器实现。
在考虑XMPP协议的同时,我也在考虑所谓C/S模式和B/S模式的问题。B/S模式因为出现得晚一点,容易有错觉它先进一点。其实B(浏览器)就是一个C(客户端),不过B更单一一点,更臃肿一点,但相对的,S端写的代码可以更有普遍性,因为浏览器这个客户端内置了大量的API。如前所说,我并不认为浏览器可以完全替代客户端,软件全web化是过激了。我就更喜欢把聊天工具缩小到托盘图标区,而不是作为一个浏览器标签。也许以后浏览器会跟操作系统有更多的交互,但是现在还没看到哪个浏览器做这方面的努力。(例外:chrome尝试用自身替代整个桌面环境)。
要死磕哪个,我还没有定论。
《XMPP》读后感
我还在摸索怎么做一个比QQ好的聊天工具。于是看了《XMPP》这本书。简单评价下这本书:这是目前唯一能找到的XMPP入门书。书里面介绍了XMPP的工作原理,协议的一些示范,和一些应用实例。看完这本书之后对XMPP的优缺点有一个初步了解。
优点
如我之前的猜测,XMPP确实是用类似Email的架构方式。这是一种比较理想的开放架构。

XMPP是一个开放,分散式的即使通讯协议。因为是开放的,所以用户可以自行选择信任的注册商,就好像Email一样。又或者可以自行搭建。说白了就是一个即时的Email。
XMPP的核心部分比较精简,但可以扩展。它的标准发布页上面列举了一大堆已经审核过的扩展协议,比如群聊、数据表单等。通过集成的方式,可以满足大部分可知的需求。
XMPP有很多现成的服务端、客户端、代码库,所以要为自己的应用订做一套通讯软件的时候,可以使用现成的工具。
优点不继续说了,我觉得缺点更关键一点。
缺点
1、对二进制文件的支持
XMPP出发点是为了发送小段的XML数据,核心中缺乏对二进制的支持。也许社区认为发送二进制数据可以通过扩展协议实现,但是这样会有一个实现不一的问题(留到2说)。对于小段的二进制文件,也可以将它编码为base64然后嵌入XML中发送,但是这个大小限制实在是很郁闷:通常是8K。update:一说是64K,但通常是服务商自己定的。
二进制支持的缺乏限制了QQ用户很习以为常的一种交流方式,那就是大量的自定义表情和截图。XMPP应该把附件放进core。
2、开放的弊端
XMPP是开放的,但是却带来了不少麻烦,而可扩展性带来的麻烦就更大了。注意,各个XMPP服务器(比如google gtalk)是可以选择性实现XMPP协议中的哪个部分的。通常会覆盖实现core的所有内容,但是扩展部分就不一定了。最明显的是,gtalk服务器没有实现扩展协议中很有用的muc(多用户聊天/群聊)。这意味着如果要用gtalk账号建一个群的话还要找另一个支持muc的服务器,不说普通用户,我都觉得这样很不爽。
除了服务器的不一致,还有客户端的不一致。各种客户端也是选择性的实现XMPP协议中规划的功能。也还是gtalk,因为它原生不支持群聊,聊天的各方并不确保对方的客户端是否能处理muc服务器发去的群聊信息。
我觉得XMPP的开放性,会演变成一种各自实现,各自为政的状态。而维持这些小团体的只有XMPP的core部分,即基本的文本消息和状态。
3、应对
XMPP出现的问题也许是任何一个开放可扩展协议都会遇到的,所以另外创一个开放协议并不解决问题,而且很难达到XMPP现在的普及度(目前有gtalk和facebook chat两家巨头使用了XMPP)。但问题并不是太糟,我接下来要研究一下怎么处理之前两个问题。
比如可以实现局部的封闭。想像只有一个服务器,通信的对象也是同一个客户端。这样会产生一些互通性问题,但我觉得这时候只有先把目光定在前方了——发送对方不能处理的数据时,己方客户端警告;对方收到不能处理的数据时,自行考虑是否要换客户端
多少体会到为啥google会有个wave出来。
莫大的悲哀,莫大的愤慨

2010年开头短短十几天,已经预兆今年是不平凡的一年。在各种关停网站、黑客风波之外,对中国互联网乃至世界互联网都有重要影响的一件事发生了:Google因知识产权被盗,宣布重新考虑在中国大陆的发展策略,如果不能跟政府协商运作一个无审查的搜索引擎,将退出中国。详细
IT界人士或者善用网络的人自然知道Google退出中国是多么大的悲哀,个个奔走疾呼,在中关村科技园的IT从业人士和附近的大学生还有人去谷歌献花了。可惜的是我远在珠海,不能为Google献上一朵玫瑰。
业内人士自然悲哀愤慨,但是业外的互联网一般用户也许并不清楚Google退出中国意味着什么,于是我想在Blog里列一下我的观点,至少希望来看我的Blog的人能知道中国的互联网正在发生什么。
1 从Google和百度的份额说起
对 互联网发展不太关注的同学,也许没有留意到国内另一家最大份额的搜索引擎百度是怎么起家的。其实在一开始在国内也是Google市场份额占统治地位,当时 的互联网用户还多是比较专业的人士。但是从某一段时间开始,大家发现google.com逐渐不怎么“好使”,时常出现“连接被重置”的现象。当时我对这 些现象并不是很敏感,只觉得这家公司的服务质量怎么这么差。
正当此时,一家自称国产的搜索引擎进入大家的视野——百度。百度首页使用和 Google一样的简约设计,让人感觉他们提供的是一样的服务,而试用过后的感觉是速度很流畅,最重要的是不会“连接被重置”,另外有个很好用的“缓存页 面”功能,同样的功能在Google.com上却又是”连接被重置“。逐渐的,网民开始向百度转移,包括我也曾经有一段时间是用百度作为主搜索引擎的。
直到我发现了”连接被重置“的秘密……
2 防火长城GFW (Great Fire Wall)
防火墙(firewall)是计算机常用的安全防护装置。而防火长城是什么呢?就是中国政府在国家计算机网络范围内设置的过滤装置,用于阻止不符合政府利益 的信息流入中国。起初人们把GFW的范围限定在出入口网关上的软硬件上,现在的认识已经扩展到政府为了过滤信息而运作的一整套法律法规、监控部门、计算机 软硬件。GFW还有一个特征是,它的过滤规则完全是黑箱操作,公民从来不会知道哪些信息会被政府列入黑名单。
当你使 用Google.com搜索出现”连接被重置“的时候,那就是GFW在作怪了。GFW到目前为止已经阻挡了绝大部分国外的优秀网站的正常访问,包括但不限 于:Youtube、Facebook、Twitter。而Google正是在不断的连接被重置情况下,被百度抢去了市场份额。我始终认为,当时GFW的 过滤规则并不如现在严密,Google已经被不断的连接重置,背后少不了百度的推动。
所以不要在我面前说“百度好用”。
3 谷歌的诞生
前面我一直说的是Google,并没有提到现在已经比较常见的称呼”谷歌“。是时候说一下”谷歌“的来历。
谷歌并不只是简单的为Google取一个本地化名字。谷歌公司是李开复成功说服Google总部,在中国大陆设立的加入了符合中国政府要求的审查制度的子公 司。谷歌公司的成立可以说是违反了Google一直以来”不做恶“的企业价值观。在知道了GFW的存在的人看来,谷歌就是Google的阉割版。所以 Google的老用户们其实是不会去用谷歌的。
4 Google退出的预兆
Google扬言退出中国市场的声明,在我看来并不突然。按常人理解,谷歌自宫之后,应该是“有资格”跟国内的太监公司踢踢球的,毕竟大家都没那玩意,总不会落得个非法携带那玩意而强制退场的结果。但是中国政府这个又做裁判又做球员的势力,实在没有下限。
来看一下谷歌中国“门”禁史 by keso
谷歌成立以来就不断陷入各种奇奇怪怪的纠纷之中,远的不说,09年全年谷歌遭到广电和央视的不断陷害就让人火大。奥不,关于CCTV我已经不想多说。
中国是一块世界瞩目的大蛋糕,但是在中国政府部门的非法围剿下,一个不愿同流合污的企业要退出这个市场其实很自然。在09年目睹了各个部门轮着来整谷歌的 情况下,我一直就期望着Google拾起尊严,不要陪他们玩了。而现在Google真的发出了这样的声明,这是对全世界理想主义者的鼓舞,“不做 恶”,Google说得出,做得到。
5 对中国互联网的影响
有些人幸灾乐祸“Google你斗不过百度就走呗”,我真是要仰天大笑三声,哈哈哈。
中国市场对于Google来说不过是2%~3%的收入,即使华尔街的人一直奔走相告”中国是未来的大蛋糕“,但已经在中国市场滚爬了几年的Google已经知道,涂在中国这块蛋糕上面的不是奶油,而是屎。
Google是全球互联网的领头羊,甚至可以说Google本身就是互联网。Google并没有退出中国,而是中国退出了世界。
有人说“我一向不用Google,对我没影响”,太天真。Google走了之后,百度已经没有了直接威胁,接下来它可以做任何事,比如向竞价排名的企业收更多的费用,在搜索结果页面的广告做得更隐蔽,但这不是我担心的,我更担心的是政府。
外资公司走了之后,剩下的都是没那玩意的公司,政府就可以更大胆的推行审查制度。未来更多的交互性网站会被关闭,比如字幕组论坛(昨天猪猪字幕组的域名被 停止解析)。而随着备案制度的强制执行,新兴创业公司因为无法筹集符合要求的资产,不得不转向国外互联网发展。在译言被关,Blogbus被随意停止解析 的事件之后,中国已经没有互联网创业的空间。
这是什么景象?我脑海里自然浮现出鸦片战争前的清朝,闭关锁国。作决定的只是统治阶级的少数人,但是承担恶果的是生活在这块土地上的所有人。
6 历史在前进
不少人都觉得,Google此次动作,会对中国互联网发展有深远的影响。但总得来说,事情在往好的方面发展,因为这事已经压抑太久,是时候出现转折。这次不是鸦片战争的翻版,因为现在已经不是愚昧的统治者可以主宰一切的时候,时代的进步,他们是挡不住的。
下周一希拉里会发表美国用于协助其他国家获取未审查信息的技术,我期待这一时刻。
互联网通讯方式设想
0 腾讯的霸权与安全问题
中国网民的网上通讯被腾讯统治很久了。很多人已经不单把QQ当做聊天工具,某些场合已经把QQ当做工作用的正式通讯方式。
某天我走进某老师的办公室,该老师正在跟某个网络设备商的人聊设备购买问题,见我来了也不好让我多等,就跟电话里的人说:”把你QQ告诉我,待会跟你详谈“
使用QQ工作已经不是个别了,4年前我就在某个兼容机店里看到老板娘拿货的时候使用QQ和供货商联系。而早前我联系一家小广告商喷绘背景布也是通过QQ完 成。中国网民的生活、学习、工作,都有QQ的身影。中国没有为互联网做出什么创新,但即时通讯倒是领先国际,MSN跟Gtalk等外国IM其实都无力跟 QQ竞争:形式一样,但是扩展功能跟QQ差太远。QQ的文件传输,群聊,远程协助等等都是MSN和Gtalk没有或者领先很多的。在和传统Email绑定 后,QQ几乎没有死角,一般人的网上通讯都可以通过QQ一个客户端”一站完成“。
但我一直以来都对腾讯QQ心存芥蒂,先不谈腾讯的抄袭史和它对跨平台的漠视,单就一点足以让 腾讯蒙上阴影:腾讯是在中华人民共和国内运营的一家企业,服务器在中国大陆。服务器在大陆,隐私和安全性就有了很大的风险。这个问题其实就是某人被警察请去喝茶之后才意识到的。某人一向在网上对政事少言,平时也没见谈论什么价值观,但为什么平平安安会找他喝茶。思索之后,想到大概是因为在QQ邮箱传了一份 文件。虽然他本人现在还是说”该用的就用“,但我觉得这始终很恐怖。幽游白书里面有一段情节,在一个特定的空间,如果说了禁止说的话,就会被夺取灵魂。我 不想置身于这种环境之中。
最近我一直在思索能有什么通讯方法可以提高信息的安全性,但是又不输于 IM + Email 的组合。要探索未知,需要掌握已知,我整理了一下我已知的计算机网络之上的通讯方式。
1 基于IP地址的简单通讯
互联网未兴起前,计算机之间就有一些通过局域网直传的通讯工具。比如windows下的 net send指令,可以通过指定特定的IP发送一条信息到远程主机(理论上非局域网也可以,但我不知道是否有人这样用)。目标主机收到信息后,会用弹出框的形 式显示信息。但这种工具没有用户验证机制,通常也不加密,到后来导致了spam弹出框的问题,现在的windows一般都直接禁用了这个功能。

图1 基于IP地址的简单通讯工作方式
这种方式可以称为”史前通讯方式“。因为发送信息的时候需要用户知道对方IP,并且没有好友管理、用户验证等功能,已经没有多少应用场合。
2 Email和Google Wave
这里把传统的Email和新潮的Google Wave放在一起,是因为他们的传输方式是相近的。

图1 Email式服务工作方式
Email 式的通讯,引入了服务商的概念。这个服务商可以是自己搭建的服务器,可以是公司部门的服务器,也可以是专业邮件服务提供的服务(比如Gmail)。每个服 务商各自提供用户验证机制,并且可以在服务端提供垃圾过滤功能。每个服务商独立搭建,但是遵循统一的协议,所以可以互相通信。Google Wave的传输方式也大致如此,只是在Email的方式增加了编辑、协作之类的功能。Email为互联网服务了几十年,目前还是一种重要的通讯方式。
在这种工作方式上,信息的保密很大程度取决于服务商。不单要看自己的服务商的可信度,还要看目标服务商的可信度,因为邮件在双方服务商都会备份的。所以如果从Gmail向QQmail发一封邮箱,像水桶原理那样,保密性取决QQmail。
传 统的Email的即时性较差,以往Email被看作是传输严肃认真的文档类信息的载体。在娱乐之上的时代,Email多少有些受冷落。Google Wave是带着改造Email的目的被开发出来的。相比Email,Wave添加了即时性(其实这取决于客户端而已)和多媒体性质。但目前处于试验性质, 因为没有公布Client-Server端的协议,我对Wave的一些设想无法实施。
3 即时通讯工具(IM)
对于即时通讯工具的历史和描述可以去看wiki百科。这里说下我对腾讯的IM,也就是QQ的一些看法。

图3 假想的腾讯中心式IM工作方式
腾讯QQ是一个闭源、闭协议的IM软件,所以注定QQ的工作是以腾讯服务器为中心运作的,客户端无法独立于服务器运作。用户A和用户B的通讯需要通过至少两 步:1)用户A与腾讯服务进行登录验证,并且取回用户B的主机信息(IP等)。2)用户A的客户端与用户B的客户端进行直连,进行即时通讯。
实际上IM是可以去中心化的,比如XMPP就是一个去中心化的开发通讯协议。但是去中心化与腾讯的”绑定用户在自己平台以赚取暴利“的策略冲突,所以腾讯不会开放协议。也是由于商业支持的原因,XMPP的发展一直趋于停滞,比如XMPP的实现之一的Gtalk至今不支持群聊。
回到QQ的话题,如果按照假想式的工作方式,QQ可以保证一定程度的安全。因为私聊的情况下,信息直接在两个客户端间传输,不经第三方。并且一些人验 证,QQ客户端在发送信息的时候是加密传输,防止了监听。但现实往往是残酷的,由于QQ是闭源软件,所以我无法验证QQ客户端是否在内部就设置了监听代 码,以配合公安的审查工作,一但发现敏感词眼即上传该信息到服务器。
所以,腾讯QQ在保密方面是很不靠谱的。而XMPP的功能太弱(至少给个群聊功能好不),而且缺乏发展动力。
4 改进通讯方式
4.1 等待Google Wave变强
Google Wave目前的表现看来,作为下一代通讯协议是很有希望的。但是这终究是Google一家人弄的玩意,目前还看不到别人鸟它。而且这东西现在弄得太高端, 一堆人试用了之后还是不明白这玩意是干麻用的。比如协作编辑这一重要特性,估计需要用的也就是程序员一类专业人员。
对于Wave,我没啥发言权。因为即使是想写一个IM式的客户端,也由于Google根本没把Client-Server协议公布而搁置。
4.2 改进类XMPP开放协议
改进类XMPP开放协议是一个平缓的改良路线,况且XMPP本身就是鼓励二次开发的,同时XMPP类客户端比较充足。
但是改良XMPP协议,别的服务商不认这套,那就又卡住了。一个协议需要通过各家认可,并且作为标准公布,是需要时间和财力的。
4.3 完全去中心化的通讯设想
一切依赖服务器的应用在中国都面临两种情况——被审查或者被墙。
我设想这样一种情况:打开一个客户端,也许是网页应用,也许是桌面GUI程序,也许是手机软件。然后它会提供我的好友列表。我可以跟对方进行各种形式的通 讯,文字、视频、语音、多媒体、文件传输。等等,这不就是QQ吗?不,接着我要确保这个好友检索与信息传输过程不经过任何中心服务器,并且是安全保密的。
信息直传是客户端的事,而检索过程如何摈弃服务器需要斟酌。
说到底为什么IM通常需要一个服务器呢?因为网络应用是基于网络层以上的,在把好友ID和真实IP之间需要一个转换,客户端才能建立链接。而现在这个转换是由服务器完成的:1)用户A登录,给服务器发送自己的网络信息。2)好友用户B登录,给服务器发送自己的网络信息。3)服务器查询发现A和B是好友,于是 给各自的客户端发去对方的真实网络信息。4)A和B的客户端显示对方在线,并且可以建立链接。
那么这个过程是否可以去掉服务器呢?是可以的。过去一周时间我在看eMule的kad网络(Kademlia) 方面的资料。kad网络是一个分布式哈希表,网络中的节点拥有一个ID,并且可以用ID作为key,和一个资源信息构成一个key-value对其他节点提供检索。资源信息可以是一个文件,或者是——物理IP。eMule就是通过kad网络实现了去中心化,同时继续提供检索功能(但是没有模糊查找)。
建立物理链接之后,客户端链接可以做到直连、加密。不过也有一些因素要考虑,比如没有服务器之后,离线信息怎么办?个人资料怎么保存?这个可以在kad网 络中加入第3方服务来做到,这个第3方服务可以是商业服务商,也可以是用户自己搭建的服务器。完全去中心化也会带来很多额外需要考虑的因素。
类似kad这样的覆盖网络被提议用于改善当前的网络质量(疲弱的DNS机制等),还有很大探索空间。
5 结语
Google Wave之前,即时聊天已经沉寂了很久。国内的QQ一家独大,和国外并不热衷IM形成鲜明对比(国外大概流行skype类语音服务)。但是网民对通讯工具 的便捷性和安全性需求会不断推进,QQ的封闭给小众人群带来不便和安全隐患,Wave一时半会又做不了主流。即时聊天有得搞。
wave客户端设想
google wave是个明星项目,世界上很多开发者都对这个项目或者生态圈蠢蠢欲动,我也不例外。可惜wave的账号也跟早期的gmail那样需要邀请函,我到2、3周前才从HB那里拿到邀请。试用的第一感觉是很有趣,官方的wave界面为用户展现了一个动态、绚丽、即时性强的web通讯应用。
但是,wave暴露了两个问题:
- 目前的浏览器作为客户端,在消息提示,窗口管理等方面有局限。
- js引擎性能还不足以支撑wave,js语言还能达到”web平台的汇编“这样的性能。
从上面的2点联系google的chrome浏览器,不得不说这真是先见之明,这两点如果google不主动做,又有谁会呢?但是chrome也都未能解决上面两个问题,这需要时间。
于是我萌生了做一个wave客户端的想法。特别是看了 google I/O 大会的视频录像 后,我觉得wave的潜力不应被现在的浏览器局限所限,而成为少数人的玩物。
设想中的wave客户端要拥有以下特性:
- 托盘提示,全局快捷键,脱离浏览器
- IM式的聊天窗口,联系人列表,wave列表
- 支持树状回复、历史记录等大部分google wave已经展示的功能
- 某种UI展示第3方wave应用
- 可以设置wave服务器
- 自由软件
1、2点看起来可以理解为背后使用wave协议的QQ。3、4点确保这个客户端不仅仅是”Yet Another IM“,这是wave。5点表明这应该支持wave的开放特性。6的话,难道我还会选择其他吗?
有想法,也要有行动。我这两天查了一些资料,比如 google wave 白皮书 。看了后我发现,wave的client-server端的通讯协议还没被放出来。google的解释是:”协议仍在不停变动中,设计师正在考虑怎么使wave的通讯更高效“。看到这句话我有点气馁,如果协议都还没公布,那么就没有现成的lib。但换个角度想:”这是个连协议都没公布的新家伙阿!“我不就可以成为一个冒险者了?也好在我并不孤独,昨晚我找到了一个 wave-protocol 项目,这是一个非官方的整理发布wave client-server端协议的项目。看了这个项目,我获益匪浅,昨晚用curl和ruby向google wave服务器发去认证性息,正确返回了Auth字符串。这已经有半个hello world的味道。同时这个wave-protocol给我点名了一条路,用firebug调查google wave的网页界面。
这样的话,接下来我需要做的有
- 继续看wave-protocol,必要时用Firebug调查
- 写一个wave-protocol lib
- 开始写客户端UI
这都不简单,但是千里之行,始于足下。
对于所用的语言和UI组件,我大概想了下,应该是C++ & Qt。有打算过用Ruby,但是考虑到这是一个活跃的,常驻托盘的程序,还是用编译语言好了。至于Qt,这是一个优秀的跨平台图形框架,加上我看的两本书和写过的几个demo,没理由不选它。
暂时写这些。
想做一个杂志
FS论坛有做八周刊的传统,这次7周年特刊我以为宣传组都空了没人做,要我上。结果发现还是有人的,用不到我。
但是我想了想,真的有做一个杂志的想法。
要做一个电子杂志,要面对两个问题。
1、主题/稿源
主题都定不下来确实有点搞笑。如果我是做八周刊的话,围绕FS做主题就好了。但是完全由我意志决定一份杂志的话,一时还定不下来。我感兴趣的方向有:计算机、动漫、乐器……没准还有烹饪。
主题不确定的话,看我有哪些稿源。chloe工房的成员可以提供翻唱方面的稿子。IT方面我认识的人比较少,出稿子太难。乐器的话,不认识任何band。烹饪更加是我未接触。
主题和稿源是最不确定的因素。
2、排版/设计
排版我找到 Scribus 这个跨平台的排版软件,符合我的期望。正在一点点学。设计的话我也在看设计类的书。
不过设计真的可以培养的吗?我自己也很有疑问。于是我打算做一个实验,我今后的生活每周隔开来,一周按照designer的方式思考,学习design相关的知识;一周按照developer的方式思考,锻炼编程技巧。
未试过之前,不说“不行”。
饼干说,认识的大四的人里面我最蛋定了,不找工作不考研啥都不忙。蛋定嘛,其实我只是单纯的觉得我还要学更多东西,尝试更多东西而已。找工作什么的最讨厌了。
一想到大四,我总是叹息我的大学光阴所剩无多了。sky说,一个人过了22岁就不得不考虑更现实的问题。是阿,我该怎么谋生呢?但我总觉得,就这么找工作并不是我的路,至少目前不是。我还要随心所欲的编程,还要去旅游,还要做我觉得有趣的事。好在,时间或多或少都能挤出一些。
eric说
不要在平庸的地方浪费自己的热情
孤独
牛哥转头学Java的时候,我曾决心不再好为人师。但是miya被计算机录取的时候,我还是不蛋定了。我以为,在一张白纸上写字比修改别人的文章要好。我现在发现,即使这样还是困难重重。
首先,大学的计算机专业本身是一个负面影响。Miya的课程上排着老套的C++和Java,迫使我推荐了她一本《C++ primer plus》,我本来打算让她从Ruby入门的。结果,她现在开始接触到指针漩涡。也许有的人觉得“很好阿,不懂得指针怎么算懂得编程阿”。那么编程是不是还要想着寄存器是什么?
有句话说,计算机编程就是不断的垒积木。后人站在前人搭好的台阶上,找到适合自己的层,然后为之改良加固。C++这个层,处于中间位置,我觉得再高一点效果更好。但是大学课程严重干扰了个人的选择,它强迫每个人弯腰学习每个铁轨上的隙缝是怎么焊接的,要很长时间之后,才有一小部分人懂得站直腰,看看整条铁路是怎么设计的。
然后,我将他人设定为白纸的想法是错误的。我并不是作者,miya自身才是。
我曾经错过了很多东西,我想把这些东西放在miya身上实现,但这是不厚道的。她有自己的选择。她参与了一些社团组织,希望参加ACM竞赛……此类一些我认为没有意义,或者说我当年浪费过时间在这上面的事情。但这是她的选择。相比于一些没有切肤之痛的前人经验,也许还是自己犯一次错误学到的知识比较多。
最后,我卖个征友广告
我想组个计算机社团、认识一些设计师、组一个摇滚乐队

刚快递到的ubuntu衣服
图片搜索
推荐地址,http://tineye.com/
一直想找这个女的的其他照片

一搜
http://tineye.com/search/abebfc2db864cc0f221a8ef21875633311653a06?sort=size&order=desc
终于找到了
http://forums.hardwarezone.com.sg/showthread.php?t=1760087&page=40&pp=15
图片搜索很强大
另一个
http://labs.ideeinc.com/upload/
NND搜出一陀兄贵
听说win7出了
最近把kde4布局成这个样子,终于比较合适16:9的屏幕

背景和相册的图是定时切换的,所以不同时候看会有很不同感觉。
说回win7。这次win7的宣传攻势吸取了vista的教训,改走平民化路线,让微软爱好者自己办party做宣传。对于媒体,首先微软自己不吹,媒体在vista时代嘲笑够了,也就都报观望态度。久而久之,已经弥补了vista带来的恶劣影响。
我上面的图已经表明,我用Linux已经上手了,自然不会回去用windows。但是我还是希望xp的用户多点升级到win7。一个重要的原因就是可以趁此淘汰大量过时但是在大陆又有夸张的占有率的工具和软件,比如:IE6,VC6……(咋都是6)
微软本来很不想做,但是又不得不做的一件事就是遵循web开放标准。不遵循开放的web标准,意味着被开发者抵制;遵循开放的web标准,意味着操作系统的作用会逐渐被弱化。很可笑的是,IE6砸别人家窗户的同时,也砸了微软自己的脚。在大陆网银这种吃IE6奶长大的网站发现兼容不了用户的IE8的时候,也许该权衡一下是对IE每个版本兼容一次还是干脆遵循开放web标准了。
4天后是ubuntu9.10,期待自由世界的狂欢。
网站预期做出来了
很奇怪的我做事做到8成就开始懒了,所以首页还没做好。但是主要功能能用,我就把它上线了。
这个站打算给chloe工房的成员以及我认识的喜欢翻唱、弹奏、广播剧的人放音视频文件。
所以目前站点是开放注册的,但是注册有两个要求:
1、是我认识的人(网络也算)
2、只上传翻唱、弹奏、自制广播剧类。(这个是因为主机所在的美国法律,放侵权文件会被封号的)
而且目前支持外联,至于能不能长久维持下去,我要分析下流量看看= =。
这是我的页面: http://chloe.chloerei.com/people/rei
做得比较匆忙,而且又懒了下来,有些地方做的提示不够,如果用起来感觉莫名其妙,欢迎反馈。blog留言即可。
呼。。。。

