前段时间在网上看到马云又要大把花钱,投资建设“淘宝城”的消息,当时有很多想法。由于最近实在太忙,一直没有充足的时间整理自己的想法。今天下午连开三个会,一直开到晚上。现在终于有时间写点东西了。

我当时的第一感觉是,马云果然不甘心只做网上贸易,淘宝城的建设意味着阿里集团或向传统零售业进军。正如马云关于“我有一个梦想”的演讲中说到:“2008 年,淘宝成交额预计达到 1000 亿,成为中国最大的综合卖场。到 2018 年,超越沃尔玛全球,成为全球最大的零售企业。到 2011 年,解决 100 万就业机会。”

其实能解决多少就业机会、做多少社会公益都是一个名目。所谓名目是名义上的目的,其实际目的是秉承阿里集团的一贯习惯做大做强的作风,在现有强势 B2BC2C 的基础上发展线下实体交易机构。马云的每一步棋,都是有其深厚的内涵和意义的。

首先,阿里集团出让 30% 股份、40% 股权来换取 Yahoo 中国,马云看中 Yahoo 中国的是它的搜索技术和一部分高端 IT 用户。

去年 HK1688 上市,马云只把 B2B 这部分摆上了台,是因为其他部分还在寻求更大发展。譬如淘宝网,只做线上 C2C,虽然强势,依然满足不了马云的胃口。因此,淘宝城的概念出台,正好符合淘宝网所代表的阿里集团在传统业的未来的发展。

支付宝更是一只蓝筹股,马云在支付宝的建设上可谓花了血本,而他反复倒腾网上支付规则,更暗合了他对支付宝寄予了不光是做一个网上支付平台的期望。从支付宝近几年的种种动作来看,我分析这部分最终会演变成一个合法的、不同于目前所有银行的金融机构。而近日“支付宝协助法院冻结一服装销售公司帐户内50万元”的消息也说明了一些事情。正如网友所说:“这标志这淘宝作为一家非银行金融机构的地位被司法界正式确立,成为虚拟经济发展中的标志事件。”

阿里终于部分上市了,即便其股票走势让人有些许失望。也许业内对其关注程度过热、期望过高。不过像我这样逢高买入 HK1688,走低后又不敢低位建仓、更不敢割肉的人,还是少数的。我预言,淘宝网将在淘宝城建成的配合下独立上市;而支付宝则更快,可能在 2008 年至 2009 年间就会寻求上市契机。

记得东北的炖鱼,二尺许的盘子,横着四条大鱼,还有堆得满满的豆腐、粉条。见之叹为观止,食之齿颊留香。价钱却十分便宜。东北物产之丰富由此可见一斑。听人说,地球遭遇核冬天或者被彗星撞击之后,如果只有一个地方人类还可以生存,那就是西伯利亚。我想,东北应该也可以吧。

其实炖鱼并非北方的专利。乾隆下江南的时候就在杭州吃过鱼头豆腐,当时龙颜大悦,还给题了匾。“砂锅鱼头豆腐”至今还是杭邦名菜之一。

前天寻思着弄个鱼头豆腐汤补补。可是没找到单卖鱼头的地方,只好买了一条二斤重的鲢鱼回来。

既然有一整条鱼可用,就不妨做两道菜。一是鱼头豆腐汤的做法,二是东北粉条炖鱼的做法。

先说鱼头豆腐汤。

把鲢鱼收拾干净,从鱼鳃盖骨下缘二指处下刀,把鱼头切下来,纵剖成两片。剖开后一定不要再用水洗,否则会流失很多营养。然后用姜片在鱼头表面擦一下。

炒锅里放上油,再放上一片姜。姜片的作用不是调味,而是测温度。小火加热至姜片周围刚开始冒泡,就把鱼头放进去。表面的鱼肉变白时把鱼头捞出放进汤锅。油炸一方面是去腥,另一方面是可以让炖出的汤更加浓郁。

汤锅里放上适量水,把老豆腐片,小葱段,姜片,五个去籽干辣椒放进去,再加上水,大火烧开。然后放入盐,再滴少量生抽,以汤色微显黄为度,千万不要放多。小火煮四十分钟后即可。喝的时候可以再用白胡椒和醋调味。

再说说粉条炖鱼的做法。

在炒锅里放少量油,烧至七成热的时候把姜片和大蒜放进去,翻炒出香味后倒入一些水,再把鱼肉和豆腐放进去,大火烧开。然后加香菇片,老抽,豆瓣酱,小葱段,料酒。不必放盐,老抽和酱的咸味就够了。再次烧开后,放入粉条。粉条一定要选质量好,久煮不烂的。然后小火慢炖至少一个小时就可以了。

鱼头豆腐汤鲜辣腥香,加入少量醋和白胡椒之后,味道更是绝妙至难以形容,其中的鱼肉和豆腐反倒成了配角。粉条炖鱼香味浓烈,鱼肉酥烂,有豆腐的口感;而豆腐又吸收了鱼的味道。一时间竟分不出哪个是鱼,哪个是豆腐。而粉条吸收了大部分的汤汁,成为了整盘菜中最好吃的部分。

鲢鱼,俗称胖头鱼。鲢鱼头在常见的鱼中是营养价值最高的。富含不饱和脂肪酸,卵磷脂等预防心血管疾病,营养脑神经的物质。干我们这行的人用脑多,运动少,经常吃很有好处。

另外,鱼油中有丰富的维生素D,可以帮助吸收豆腐中的钙质;鱼肉中的优质动物蛋白和豆腐中的植物蛋白搭配,几乎可以满足人类对蛋白质的全部需求。所以,鱼头和豆腐的搭配无疑也是个黄金组合。鱼肉和豆腐都是极易消化吸收的,对身体虚弱和手术后恢复期病人也是比较好的饮食。

喝鱼汤要留神鱼刺,特别是喝到碗底的时候。友情公开一个我多年喝鱼汤的窍门:上下门牙咬合,从齿缝把鱼汤喝进来。这样既安全,又不会让恐惧干扰喝汤的美好感受。

本文原载旧版博客 2006 年 3 月 30 日。

春节是一个容易让大部分国人变得懒惰的节日。每天好吃好喝之后就犯困,要么睡大觉,要么 KTV、泡吧……总之就是应了一句话:“饱暖思淫欲”。在这样一个节日里,我也明显感受到了生活的无趣。我不是工作狂,但我一直坚信工作、生活密不可分,缺一不可。这几天彻底闲下来,直接导致我的反应能力下降;随之而来的是慵懒,懒得出门、懒得走路、懒得打电话拜年,甚至懒得吃饭、懒得睡觉。

为了避免大脑生锈,这里顺便分析一下“懒得出门”这样的短语,用 lucky说就是“咬文嚼字”。“懒得出门”这个短语最容易产生歧义的地方就是这个“得”字,因为“得”有很多种意思。《南史·陶潜传》中有云“开郑有得,便欣然忘食。”这里的“得”作名词,有“收获、心得”之意。而《史记·项羽本纪》中“君为我呼入,吾得兄事之。”这里的“得”是副词,有“必须、应该”的意思。在某些语境中,“得”还通假“德”;如《荀子》中所述“尚得推贤不失序。”此外,“得”还可以作动词,解释成“得到、获得”。而这里的“得”用在形容词“懒”的后面,连接表示程度或结果的补语“出门”,基本上算一个连接助词。“懒得出门”与“红的发紫”表意不同,前者表示懒惰到不想出门,而不是懒惰到我出门了;后者表示很红,以致于快发紫了。

我终于意识到,在我写下如此知音的标题后,眼看前面又说了这么多废话,几乎快赶上标题党了。马上开始正文。

由于一直懒得出门,所以对于电信的催缴话费的电话通知也置若罔闻。今天白天在睡梦中被这样一个电话活生生吵醒,非常郁闷:眼看青蛙已经变成了王子,正要去吻沉睡的公主,就突然没了下文。不知道公主是苏醒了过来,还是突然变成了青蛙。为了避免以后再发生此类事情,我给 10 的 4 次方去了电话,咨询能否网上支付固话账单。对方的回复是这样的:“尊敬的中国电信用户,您咨询的缴费方式目前暂未开通。您可以选择去您当地就近的营业厅办理缴费或其他业务。给您带来不便,我们深表歉意。中国电信感谢您的理解、关心与支持,祝您新春愉快、万事如意。您若还有其他疑问,欢迎您随时致电中国电信客服一万号,我们将随时恭候您的垂询。再见。”我总结了一下,两个字:不行。

随后我在搜索引擎的结果中找到一个“中国电信网上客服中心”,然后又看到各地的分站。为了确认他的权威性,我找到这个域名的 whois 记录。不出意外的话,这是官方的“网上客服中心”了,不知道电信为何没有人去宣传,甚至有工作人员对此一无所知。

我根据页面上的提示,用电话号码注册了一个帐号,登录后开始寻找为固话交费的地方。在“自助服务”下面,我找到了“话费查询”,然后终于看到“缴费”字眼了:

点击“缴费”按钮居然来到另外一个 URL:http://www.114mall.cn/ctpay/。这让我感觉到一点发现新大陆似的好奇。初步测试了一下,这个地址不能直接访问,否则会提示“参数错误”。由于 URL 后面很干净,看样子数据是 POST 过去的。如果提交的数据正确,这时页面上会显示待缴电话账户的欠费情况。我把欠款结清之后再次看到这个页面,发现是这样的:

我回到“自助服务”,发现左侧栏目中有一项“充值缴费”,试着点击了一下:

填上自家电话号码,提交:

我想了一想,如果填写的是别人的电话号码呢?我试了一下,结果非常骇人:

看来中国电信的业务透明度实在已经达到了一个非常的境界,连自家公司的电话费用都可以查到,而且户主姓名也很精确:

对于小灵通也基本一样,但查询不到号码的户主姓名:

我隐约觉得,这个功能一定是中国电信所有业务中最好、最强大的一个业务。他似乎不仅能查全国(因为查询地区可以切换)的电信固定电话与小灵通账单,还能查到固话号码所对应的户主。简直就是免费的 114,堪比您的私家侦探。且该业务目前处于免费试用期,欢迎广大新老朋友试用:)

YY 广告了一把。

事后我发现在那个叫做“百事通商城”的网站上注册一个帐号,同样也能查询到上述信息:

登录后点击左侧“固话缴费”按钮可以查询到“各种”固话账单,点击“小灵通充值”按钮可以查询到“各种”小灵通余额或欠费信息:

固定电话查询:

小灵通查询:

于是,从现在开始起,我从心底里真心佩服中国电信;无论是他那优质的服务,还是他那无畏的胆量。根据我的主观分析,固话账单也好、小灵通余额也好,都是客户的隐私信息。每一个电信业务,都意味着中国电信以甲方身份与客户签有协约。所谓“言者无意、听者有心”,泄露客户资料对中电信这样的国家级企业来说一定无所谓;但对于最终用户来说,可能有时候就会造成很大的影响。而这一切祸水的来源,都是这个 114mall.cn 的网站。在好奇心的驱使下,我查看了这个域名的 whois 信息,结果又惊讶了一回……

这里是 CCTV,这里是 CCTV。各位来宾、各位朋友,北京时间 2008 年 2 月 2 日,现在为您现场直播的是刘先生与其知己汤小姐的婚礼。

今天欢歌笑语,喜气洋洋。在此良辰美景,让我们举起酒杯,向新人表示真诚的祝福。祝福你们,新郎新娘,祝贺你们的美满结合。从相识、相恋到喜结良缘,你们经历了人生最美好的时光。你们的爱情是纯洁的、真挚的。千里姻缘,天作之合。在对理想和事业追求中建立的新家,正是你们谱写美妙爱情交向曲的延伸。

祝福你们,新郎新娘,祝贺你们新婚快乐。中国有句俗话:“男大当婚,女大当嫁”。两性结合的爱情是人间“天伦之乐”的最大快乐。今年洞房花烛夜,来年生个胖娃娃。愿你们良霄花烛更明亮,新婚更甜蜜。真诚祝愿共浴爱河的俊男倩女,赏遍人生欢愉和甘甜。

祝福你们,新郎新娘,祝贺你们爱情之树常青。愿你们相新相敬,恩恩爱爱,和和睦睦,白头偕老;愿你们尊敬父母,孝心甘情愿不变,依然是个好儿子、好女儿,这要当个好女婿、好媳妇;愿你们工作、学习和生活,步步称心,年年如意。

衷心祝福沉浸在新婚欢愉中的你们,幸福美满,心想事成。

吾之挚友刘工:因路途与天气原因,徐某无法亲自前去给您祝福。本想邮寄礼物一份,了表心意。然因天气原因,物流运输也遇到些许麻烦。但在这无国界的网络上,我谨代表我本人给二位作揖了,祝二位新婚愉快。送上手写板作品一幅,实在见笑。

又是一个不眠之夜,写点东西好了。

上个月托管在某电信机房的服务器遭受ARP 欺骗,虽然不是我的服务器中毒,但还是受到了一定程度的影响。事后我认识到双向绑定的重要性,于是和机房联系做了双绑。

对于双向绑定,我的理解是在下级客户端与上级网关上分别知道自己与对方的 IP 及其 MAC 地址,并且这是一个静态的关系。ARP 协议中,默认的关系是 dynamic,而且这与使用 DHCP 与否没有关系。我们来做个实验:

C:\>arp -a
Interface: 192.168.0.201 --- 0x10003
  Internet Address      Physical Address      Type
  192.168.0.1           00-14-78-99-3d-a9     dynamic
  192.168.0.50          00-0b-2f-10-12-ab     dynamic
C:\>arp -d
C:\>arp -s 192.168.0.1 00-14-78-99-3d-a9
C:\>arp -a
Interface: 192.168.0.201 --- 0x10003
  Internet Address      Physical Address      Type
  192.168.0.1           00-14-78-99-3d-a9     static
  192.168.0.50          00-0b-2f-10-12-ab     dynamic
这个例子已经说明了问题。绑定后的状态一直都是 static,直到系统下次重启。

如果服务器处于双线机房,或者由于其他原因,具有一个以上的 IP 地址,其操作方式雷同。我的服务器上有两个 IP 地址,arp -a 后的结果是这样的:

C:\>arp -a
Interface: 60.12.104.24 --- 0x10003
  Internet Address      Physical Address      Type
  60.12.104.1           00-11-bb-3e-62-3f     dynamic
  122.225.96.1          00-11-bb-3e-62-3f     dynamic
我设计了以下的脚本。将它放入计划任务,并设置为每次系统启动时启动该脚本,配合机房在网关设备上对该服务器 IP 与其 MAC 地址的绑定,就可以使 Windows 操作系统的服务器具备防止 ARP 欺骗的能力:

@echo off
arp -d
arp -s 122.225.96.1 00-11-bb-3e-62-3f
arp -s 60.12.104.1 00-11-bb-3e-62-3f
exit
对于类 Unix 操作系统的操作也基本相似。首先通过 arp -a 获取当前信息:

#arp -a
? (60.12.104.1) at 00:11:bb:3e:62:3f on em0 [ethernet]
? (60.12.104.31) at 00:0e:0c:3c:7d:ba on em0 permanent [ethernet]
? (122.225.96.1) at 00:11:bb:3e:62:3f on em0 [ethernet]
nstech (122.225.96.31) at 00:0e:0c:3c:7d:ba on em0 permanent [ethernet]
然后执行单向绑定,注意类 Unix 系统下对 MAC 地址的书写方式:

#arp -s 122.225.96.1 00:11:bb:3e:62:3f
#arp -s 60.12.104.1 00:11:bb:3e:62:3f
服务器上操作完成后,要求机房在网关设备上对该服务器 IP 与其 MAC 地址的绑定,就实现了传说中的双向绑定。

如果服务器当前正在遭受 ARP 欺骗攻击,在机房没有对中毒服务器实施断网处理前,我们只能每隔一段时间就执行一下上面的操作。为了方便起见,我们可以这样做:

#vi /etc/ipmac 将需要做绑定的网关 IP 与其 MAC 地址写入这个文件。每行一个,中间用空格隔开:

122.225.96.1 00:11:bb:3e:62:3f
60.12.104.1 00:11:bb:3e:62:3f
然后:

#crontab -e 添加一行:

*/1 * * * * /usr/sbin/arp -f /etc/ipmac 这里的“*/1”代表每隔 1 分钟执行一次,可以根据实际情况调整。和平时期,我一般设置为 10 分钟执行一次:

* */6 * * * /usr/sbin/arp -f /etc/ipmac 战争时期就设置为 5 秒执行一次:

*/12 * * * * /usr/sbin/arp -f /etc/ipmac 对于 Windows 操作系统,只要重新设置一下计划任务的属性,让它每隔一段时间执行一下脚本就可以了。

咳咳,综上所述,这个解决方案是一个临时性解决方案,比较适用于非战时的防御。如果真的遭遇 ARP 欺骗攻击,第一件事还是通过 arp -a 找到源头,然后将信息报告给机房,让机房尽快将中毒的机器断网才是上策。

听说 FreeBSD 系统下面有一个软件叫做“ipguard”,可以有效防御 ARP 欺骗。有空研究一下。