Monthly Archives: August 2006

辰·爱

贫病交加的一刹那间
我想起了你的脸
腊月寒夜无路可退
我来到了你家门前
叩开了你的房门
赖在了你的房间
从此一发不可收拾
我是爱你的辰

就算你被魔鬼缠上了身
你是我最爱的人
为你付出汗水
为你出卖灵魂
也要把你找回来

我的心和你的血液跳动在一起
求你爱我一次
为了铮铮誓言
还有堂堂少年
沧海桑田的爱

互联网 = 搜索 + 社区

为什么这么多互联网公司都在不遗余力地做着重复性劳动,看看这个公式也许就有点理解了。

什么是搜索?一个汇集互联网内容的大型工具。网络是自由且开放的,但是你不去找他,他不会来找你。拥有了搜索,就是拥有了互联网中所有的资源,就相当于拥有了一个无比庞大的集贸市场。

但一个再大的集市,如果没有人也是不顶用的。这就是社区。也许说“社区”更容易让人理解“人”在其中所处的地位。当然我更倾向于使用一个目前互联网上发了烧的词语,那就是 Web 2.0。当然 Web 2.0 不同于社区,但我理解中的 Web 2.0 同样是以人为本的。他更强调信息的收集、共享和流通,这些动作都是以人为主体的。所以 Web 2.0 是一个人问概念,而绝非异步 Javascrip 和 XML 这么简单。

举个小例子,就拿刚刚结束的世界杯来说,订阅比赛结果应该是大家都享受过的服务。那么,你想没想过:当一场比赛结束之后,你订阅的信息怎么就发生变化了呢?也许这个问题太弱智了,你都不屑回答:当然是有人改过的。那么好我不否认你的答案,世界杯人人关注,而且信息量小,会有一些人花上一两秒的时间中去更新一个比分,你在服务的下游自然就收到了结果。但是倘若一个信息量庞大的服务,比如网络音乐,无数的歌手,无数的专辑,我想不会有人愿意专门去做更新这样的事情。但是你可能很愿意为你喜欢的歌手或专辑花一些时间去整理。想要把这些零星的内容组织起来,形成一个有规模的服务,就只能靠搜索了。

拥有了搜索是拥有了内容,拥有了社区就是拥有了人。人和内容都有了,互联网也就在如来佛的手掌中了。

【转载】你所使用的浏览器反映出了你的个性

firefox_bites_ie_awesome.jpg

我经常根据一个人所使用的浏览器来评价某个人。不管你信不信,你对浏览器的选择往往反映出了你的个性。

IE 5.0:

你使用电脑仅仅是为了即时聊天,写写电子邮件和博客。你顽固地拒绝升级你那老旧的 WIN98,因为你并不需要太多的功能而且认为 WIN98 已经工作地很好了。你同时可能不使用任何杀毒软件,你只是每个月让你的儿子,侄子或朋友把把病毒清理干净而已。

IE 6.0:

你很可能并不知道什么叫做“浏览器”并且认为 IE 就是因特网。你对技术没有清晰的概念,而且你通常对电脑感到畏惧。同样的,你使用电脑也仅仅是为了即时聊天,写写电子邮件和博客。也许你的朋友曾不断地向你提及“被炒鱿鱼的狐狸”(Fired Fox),但你一直不明白那到底是什么,也不准备在它上面花时间。

IE 7.0:

你认为你站在了技术的最前沿,同时认为微软是地球上最伟大的公司。至于那个邪恶的 “Lenoux” 操作系统(音同 Linux)则是由恐怖分子编写出来的。你在卧室的墙上张贴了斯蒂夫·鲍尔默(微软首席执行官)的海报,并希望自己在未来能成为第二个比尔·盖茨。你一想到 “Vista” 便会激动地浑身颤抖、坐立不安。

Firefox 1.x:

你很可爱而且有点傻里傻气的,并为 FireFox 感到骄傲。你是开源运动的强烈支持者,你认为理乍得·马修·斯托曼才是“真正的男人”。你其实并不关心 FireFox 是不是比 IE 更安全,更快速——你会一直使用 FireFox 哪怕它的效率比 IE 低上十倍。你只是因为你得到了一个免费、开源并拥有庞大技术支持社区的浏览器而感到高兴。无论任何时候你都会安装至少 7 个必不可少的扩展。

Firefox 2.0 Beta:

在白天你是个程序员,到了晚上你就成了一个开源软件开发者。要不,你就是一个疯狂的 Firefox 粉丝。你热衷于上报你遇到的每一个 Bug,很可能你已经发布了至少一个开源项目的补丁。你喜欢对程序修修补补,而且丝毫不会在意在自己的电脑上运行 beta 版软件。毕竟,发现新的 Bug 和修改最新的软件对你来说充满了乐趣。

Mozilla:

从一开始你就在使用 Mozilla。你认为 FireFox 宣传地过了火,相对于 FireFox 你更愿意去使用旧版的 Netscape。你并不认为 Mozilla套装(Moz Suite)是个负担——事实上你更喜欢一个集成了邮件客户端、IRC 聊天客户端和网页编辑器的浏览器。你很不理解为什么有些人宁愿去挑选一个功能很少的浏览器而不是选择 Mozilla。在其他的方便你更像一个 Firefox 用户——你喜欢开源、你喜欢你的浏览器扩展、等等——或许你会说 Firefox 用户的口味和你非常相似。总之,你们在使用一个令人钦佩的、功能强大的、gecko 内核的浏览器,与此同时很多人仍然在他们的 IE 浏览器里挣扎。

Opera:

你并不关心 Firefox 之流,你所需要的只是一个世界上最好的浏览器——对你来说那就是 Opera,而你很可能早在 Opera 收费时就购买了它。如果有一个 Firefox 粉丝对你的浏览器评头论足,你就会打开一个 ACID2 测试,然后以此来驳倒他。你知道什么是你所需要的(一个快速、支持标准的浏览器),你也明白怎样得到它。你对浏览器大战丝毫不感兴趣,虽然你有一点点希望
Firefox 获胜,因为如果那样的话会有更少的网页开发者制作只兼容 IE 的页面。

Netscape 8.x:

你是一个刚刚得到一台新电脑的老资历网民,虽然你对互联网知道的并不多,但你却清楚地记得你需要 Netscape 去使用它。你并不明白人们谈到的 IE 和那个叫 Fire 什么的东西到底是什么,而且搞不清楚奥普拉·温弗瑞(Oprah,一个脱口秀主持人,音同 Opera)和因特网有什么关系,你所知道的就是点开那个大大的 “N”,然后变成”在线”。你认为史蒂文的关于网络的演讲很有道理。

Netscape 7 和更老的版本:

参见 IE 5.0。

AOL Explorer:

曾经有一天你安装了最新的 AIM 客户端,然后这个东西就成了你的默认浏览器。你非常讨厌它,但你却不知道怎样才能把它变回去。你甚至不知道你怎样才能向你的那些电脑高手朋友们描述这个问题,当你想得到帮助时你也许会像这样提问:“你能把这个新的网络,呃,变回原来的那个旧网络吗?”他们只会瞪着你,然后装作不明白你在说什么。他们或许并不像他们自己所说的那样了解电脑。

AOL Suite:

你很可能仍然在使用 AOL 的拨号网络,不然的话,你就是觉得在你使用宽带网络之后仍然需要 AOL。有人告诉过你其实你上网是不需要用 AOL 拨号的,但你无法想象这是怎么一回事。这看起来很难做到,而且似乎是非法的。

Safari:

恭喜你!你是一个 Mac 用户并享受着那个名字给你带来的好处和好心情。你喜欢 OSX,并且永远不会使用 Windows。Windows 对你来说实在是太过丑陋和低效,你更喜欢 Mac 的简洁和清晰,而 Safari 就是一个为你工作的浏览器。你从不会烦心去寻找另一个浏览器,因为你对你现在拥有的一切已经非常满意,你也不会因为世界而改变它。

Konqueror:

你是一个 linux 用户,并且打心底就是个极客(?)。你认为 KDE 是最好的桌面环境,并且因此而鄙视 Gnome。你喜欢一个同时是文件管理器、ftp/scp 客户端、smb 分享客户端、PDF 文档查看器和其它很多东西的浏览器。你喜欢向你的朋友炫耀 KDE 的网络透明度,你仅仅通过浏览器在你的网页服务器上编辑一个 HTML 文件,保存它,然后又在浏览器里重新载入修改后的文件。你日常使用的绝大多数软件都以 K 字大头(Kmail, Kontact, Kdevelop, Koffice 等等)。

Lynx:

你肯定是个骗子,你真的想让我相信你使用一个文字浏览器来浏览所有网页?尤其是一个不支持 javascript, frames, css 甚至连 tables显示都有问题的浏览器?说真的,我可以相信你一直使用 VI(一个编辑器),用 Mutt 或 Pine 做你的主要邮件客户端,但你不可能让我相信你使用 lynx 作你的主浏览器。如果你真的做到了,那么你就是我一生中见到过的最最执着的极客了。向你脱帽致敬!

如果你不同意上面的话,请留言好让我知道。如果你被我不幸言中,那么请停止使用那个该死的浏览器并换一个真正的浏览器吧。也请你自由地给我漏掉的浏览器作简短的描述。

免责声明:我不清楚是谁制作的那个 FireFox 图像(就是本文开头的那个),有个人在留言本中曾使用它作头像。我向那个作者致以崇高的敬意,如果我能找到他的话。

谢谢你们所有的评论,让我们开公布诚吧——我并没有说 Lynx 是一个差劲的浏览器,事实上我在很多不同的方面都经常使用它。我只是怀疑是否有人把它作为主浏览器。如果你是的话,向你脱帽致敬!你比我执着多了。

现在我补充一些漏掉的比较流行的浏览器:

Flock:

他们也许会称你为 Web 2.0 先生。你所使用浏览器表明一点:你的足迹遍布 flickr, del.icio.us, youtube 和其它一打的网站。你认为 Firefox 还不错,但它并不不能让你在弹指间就能完成写博客、照片共享、标签和网络书签等等功能。你希望在你的脑袋里植入一块芯片,这样你就能一直连接到网络,而且能使用 24/7 移动博客。当一些目光短浅的人告诉你 Flock 只不过是 Firefox 的修改版时,你会赶走他们并说他们不能以更宽广的视野看东西。

Epiphany:

你是一个 Gnome 用户并为之自豪。你认为 KDE 简直是地狱里出来折磨人的东西,并且热衷于向人们解释 KDE 必须经过几个小时的修改才能使用,至于那些说 KDE 马上就能用的人则是可耻的骗子。你希望所有东西能更加简单和直观——那就是你为什么选择了 Gnome,这同样也是你使用 Epiphany 的原因。你试过 Mozzila 和 Firefox,但你发现它们实在是臃肿、丑陋和麻烦。你的桌面就像你的书桌一样整齐有序。

Maxthon and Avant:

你也许有些疑惑,虽然你喜欢IE并且不会换用别的浏览器,也不会担心网站会出现渲染不正常的错误,更不会担心它像其它内核浏览器那样不支持 ActiveX 控件,但你心底还是羡慕那些使用可以做到标签页浏览和其它很酷的功能的浏览器的朋友。你承认 IE 有点落后于时代,而你想要一些更加现代的东西,同时也不想放弃正常显示一些网站。Maxhton/Avant 让你拥有了世界上最好的两项功能——舒适温暖的IE渲染引擎和其它浏览器里非常酷的功能。当 IE7 发布正式版时你就会换用 IE7。

Sea Monkey:

你很喜欢简单的软件套装,对你来说把浏览器和电子邮件客户端分开是不可理喻的。你以前习惯于使用 Mozilla,但 Sea Monkey 发布后你很快便换了口味并不再回头。你认为“Sea Monkey”是浏览器中有史以来最酷的名字。

w3m:

你一生的大部分时间都在当系统管理员。你很少看见阳光,因为你一天中大部分时间花在大型服务器的周围。如果周围没有电脑风扇的“嗡嗡”声你便无法入睡。哪怕是在夏天你每天也不得不穿一件暖和的夹克,因为服务器机房里的冷气开的是如此之高,如果你不加以注意的话便很容易感冒。年轻的极客们都向你看其,并试图模仿你——而你一直也不知道这是为什么。

K-Meleon:

你对长时间等待浏览器启动感到很不耐烦,甚至IE的启动速度对你来说也太慢了点。这也是为什么你的浏览器会预读取页面,然后仅仅花费十亿分之一秒去载入页面。你的生活节奏非常快,根本没有时间去等待浏览器慢慢启动。你可以花费几个小时去设置 Windows 注册表来提升程序的响应速度、载入时间,并减少所有程序的超时时间。

Dillo:

你从心底就是一个喜欢低资源占用的人,你喜欢让你的程序更加小巧和快速。你最喜欢运行 IceWM 或 Windowmaker,同时嘲笑那些臃肿的桌面环境像 KDE 或 Gnome。你以本地 Linux/BSD guru 著称。

中文翻译地址 一点笔记

英文原文地址 Terminally Incoherent

如何重写 Equals 方法

不要以为这是件容易的事情,先来看一个正确的 Equals 方法应该具备的条件:

  1. obj.Equals(obj) 应该永远返回真
  2. obj1.Equals(obj2) 和 obj2.Equals(obj1) 应该返回相同的结果
  3. 如果 obj1.Equals(obj2) 而 obj2.Equals(obj3) 那么 obj1.Equals(obj3) 应该也为真

别以为我的智商就小学水平,回去看看你的代码,这些都能做到吗?写一个具备如此条件的 Equals 方法不是件容易的事情!从实现角度说,一般来说分为两种情况:

一、给直接继承自 Object 基类的类型重写 Equals 方法

二、给间接继承自 Object 基类的类型重写 Equals 方法

参考了 Jeffry Richter 的 Applied Microsoft.NET Framework Programming 一书。

给 dasBlog 添加支持 SiteMap 的功能

今天享受了一下 Google 的 WebMasters 服务,再加上 Google Analytics,真有 WebMater 的感觉。

在这个服务里面,为了网络爬虫能够更好地抓取页面,Google 需要你提供 SiteMap,一个 XML 格式文件。试了 Google 推荐的几个程序和服务,感觉都不是很好,鉴于 dasBlog 是开源的,简单研究了一下,为其添加了生成 SiteMap 的功能。

首先,下载 net.tangrui.DasBlog.Web.Services.dll 文件,将其放到 dasBlog 的 bin 目录下。

然后,修改 web.config 文件,在 标签下,添加这样的节点:

最后,访问 http://yourwebsite/sitemap.ashx 就可以了。

如果需要,可以到这里下载源代码。

Sunset Boulevard

Brian left back home
To sing the world his song, they said he’d never go
Going down a rusty road
Jimi Hendrix playing on the radio
He just wants to fly away
And show the world he’ll be a star
He’s driving all night and day
For the chance to play his worn out guitar
He never knew of the hopes he made
Until four thousand people stood and prayed

Down on Sunset Blvd.
We can leave it all behind
And if we should walk away
Sunset Blvd.

Well he took what he could get
Always dreamed of playing at the Hollywood
Now every Friday night
You’d see him killing time the best way he knows how
Now he’s gonna fly, and no one’s gonna stop him now
See him up so high, no one’s gonna bring him down
He never knew of the hopes he made
Until forty thousand people stood and praised

You know you wanna stay there
You know you wanna play there
You know you’ve heard a love song
You wanna be a big star
You wanna have it all

毅力源自团队合作 —— 记云蒙山一游

个新颖的出发点,不能纯粹地把游记写成一片流水账或是描摹景物的文章。

不能不先赞叹一下宁子的细致和组织能力,用一个词来形容:事无巨细。基本上经过一周的准备,从设计、到动员、到租车、到通知、到事后总结,几乎天衣无缝了。

这一天,天气还是给足了面子,没有下雨也没有烈日,阴沉的天空,湿度还是和往常不相上下。旅途中,汽车绕着盘山公路接近云蒙山,有茂密的植被,裸露的悬崖,还有藏在云中的山峰。从半山腰升腾的雾气,使得山体一半在地山,一半在空中。

户外活动通常被认为有两种境界:自虐型和享受型。前者所谓挑战极限,或是探险:而后者通常就是旅游。但似乎这种界定很难令人信服。满怀着激情开始了攀登,而每个人似乎都在抱怨工作以来身体素质急剧下降,初始的一段山路就已经开始有些疲惫了。然而不知这算是云梦山的好还是云蒙山的坏,走过还能撑得住的上山路不久,就迎来了在虎浴潭的小憩,人们过早地开始了享受。对山水依依不舍的四个人选择了顺水上山,而其他人则继续延山路奔往第二个目的地:净身池。

我跟随后一队,途中无太多新奇,除了我一会儿喊一遍的虹鳟鱼之外毫无乐趣。不是说看到了虹鳟鱼,而是想早早下山一饱口福。所以到达净身池等待和水路大军会师以后,本以为不久就可以登峰然后荣归故里了。没想到一个路标让我们全傻了眼。天哪,中午都过去了我们才刚刚来到山的入口,引用 Sleet 的一句话,仅仅二十分之一。

于是没有任何憧憬地、没有任何希望地,我跟着大陆人马开始登峰。我最初的想法是上到累了不能再上了,就开始下。毕竟我的目标不是那海拔 1413.7 米的主峰,而是山下等待我的水里的活蹦乱跳的鱼儿。

不想这一上就无法停止了。先是半途中有两个 mm 放弃了,后来在 Sleet 的再三怂恿下,立志不做倒数第三。忘却了我的虹鳟鱼继续上,上到了不知什么地方时三个梯队就形成了:我和宁子居中,Sleet 和小桂子等一帮人开路,后面有灵光等人压阵,云蒙山给我的自虐印象从此开始。

我和宁子追逐着 Sleet 一行,只闻其声不见其人。从来没有如此的疲惫,从来没有如此的大汗淋漓。思想是混沌的,动作是变形的。只有周围一望无际的云海和能看得见的微风让人心旷神怡。

左手边是深深的悬崖,右手边是高高的峭壁。雾气浸润着地面,潮湿而滑。阶梯时而是突起的石台,时而是凹陷的土屯,时而是腐朽的木桩,时而是手筑的扶梯……。偶有一小段平地,右望怪石嶙峋,左望层云叠雾,后望山路险峻,前望茫茫然不知所向。就在转弯处,风吹着薄雾在动:风动、云动、人动还是心动;自然的、气象的、物理的还是哲学的,一切都不重要。人何以能为仙,何以能成佛,何以能隐居世外而与世无争,何以能挥毫泼墨而留名千古,一切尽在这静谧得能听得见灵魂的空间中。上是享受,下是亵渎,人生也不过如此。

淋漓的汗水多半是山间的雾气,不粘着身体,而是顺着鬓角在流淌。一道一道的汗渍是唯一值得骄傲的勋章。可是我的表现就差强人意了。走走停停,腿根本不听使唤。什么脸面,什么男子气概在那样的环境中一股脑的都等于零,而唯有宁子的呼唤是唯一的动力。人真是一种社会性的动物,在绝望的时刻,可以不为自己,但是不能不为别人:我可以不顾及脸面甚至危险开始下山,但是我不能辜负宁子的口齿和对我的信任。一时间八个字出现在了脑海里:毅力源自团队合作。不能否认存在那些意志力超强的个人,但是可以相信一加一大于二的真理,一个优良的团队远比个人能发挥出更多的潜质。

登顶就是自然而然的事情了,胜利已经不需要美景来祝贺了,一块碑石和一个愉悦的心情足以。石碑面对着深达 1400 多米的悬崖,悬崖间填充着白得耀眼的云雾,什么都看不到,也不允许你久看。一个隔绝了的世界有太多真理可以发掘,山顶上一对飞舞的蛾可能永远都不会知道身下还有另一个世界,而我们却要带着经过洗礼的灵魂重归脚下的现实……