此文原载旧版博客2006年3月20日。

鸡蓉蛋花汤也属于做起来不复杂,而且味道很好的汤。上周末我做了这个汤,再烤一根香肠,加上半截法棍,就是很不错的一顿午餐。

原材料:鸡大胸肉一小块,鸡蛋一个,番茄酱,淀粉,盐,味精。

通常超市卖的鸡肉分为鸡大胸,鸡小胸,鸡腿肉,鸡腿,鸡翅等几种。这里一定要用鸡大胸肉,否则口感会差很多。家乐福包装好的鸡肉大约400克一盒,4.5元左右。我一般买回来之后就分为9到10份,分别用保鲜膜包裹好,这样用的时候十分方便。在这个汤里用一份鸡肉。

鸡蛋尽量选好一点的。因为现在很难买到像样的鸡蛋,大多数都是工业化养鸡场生产出来的,都没什么香味,而且很腥。

番茄酱和番茄沙司是两个概念。番茄沙司是番茄酱的超集,包含了番茄酱、糖、柠檬酸或者醋酸等。番茄沙司适合直接蘸食——在麦当劳吃薯条的时候,蘸的就是番茄沙司。番茄酱则适合做菜。

先把锅里放上一碗半的水,旺火煮。

鸡肉平放到砧板上,用刀轻轻刮成鸡蓉。注意,是刮不是剁,剁出来的叫沫,不叫蓉。鸡肉纤维比较软,很容易刮。

把鸡蛋打到碗里,用手在里面蘸一些蛋清,再蘸一点淀粉,然后揉到鸡蓉里。这个步骤必不可少,是令鸡蓉具有滑嫩口感的关键。

把鸡蛋打匀。淀粉加凉水调成水淀粉。

水开了之后把鸡蓉捏成一片一片丢进去,小火煮一分钟。然后把水淀粉和番茄酱放进去,边放边搅动。这两样都不能放多,淀粉多了,汤会过稠;番茄酱多了,会抢了鸡肉的味道。烹饪和配中药一样,也要调和百味。如果让一种原料的遮盖了其他的味道,那即使别的方面都是完美的,也不能算成功。

最后,把打匀的蛋液缓缓倒入汤中,同时搅动。搅动的速度和手法决定了蛋花的大小和形状,不过这个并不影响口味。

汤再次沸腾的时候,放适量盐和味精就可以起锅了。我是还要加一些白胡椒才喝的,不过大多数人不会像我一样偏爱胡椒,所以并不建议你们这样做。

这道汤的特点是味道十分鲜美,鸡蓉的口感奇妙,滑嫩无比,且入口即化。如果家里有牙口不好的老人,不妨作给他们尝尝,表表孝心。

今天在一台几乎废弃的 freebsd 服务器上折腾,删除了里面的 postfix 邮件系统。折腾完毕修改了 /etc/rc.conf,去掉了 hostname 键,reboot 之后发现 apache 没有自动启动,手动启动也失败。通过 apachectl configtest 检查结果是 Syntax OK,于是去找 /var/log/http_error.log,错误日志如下:
[Sat Dec 15 00:17:43 2007] [alert] (EAI 8)hostname nor servname provided, or not known: mod_unique_id: unable to find IPv4 address of ""
Configuration Failed

查了资料,修改 httpd.conf,将下面一行注释掉就可以了:
LoadModule unique_id_module libexec/apache2/mod_unique_id.so

在 apache 手册上查到这个 unique_id_module 模块的概述:
This module provides a magic token for each request which is guaranteed to be unique across "all" requests under very specific conditions. The unique identifier is even unique across multiple machines in a properly configured cluster of machines. The environment variable UNIQUE_ID is set to the identifier for each request. Unique identifiers are useful for various reasons which are beyond the scope of this document.

大概意思就是给每个请求提供一个唯一标识的环境变量,具体说明在这里

再次启动 apache 还发现一个报错:
No such file or directory: Failed to enable the 'httpready' Accept Filter

曾经在某网的一篇文章上看过,google 找到相关资料,说这貌似是 freebsd 与 apache2 之间的一个小 bug。解决方案如下:
# kldload accf_http
# vi /boot/defaults/loader.conf

找到下面这行:
accf_http_load = "NO"

将 NO 改为 YES 就可以了。

从来没有认真关注过这个时间同步,今天终于在公司的一台 Windows 2003 服务器上领教了。

该服务器运行着 Windows 2003 Enterprise SP2,并涉及精密时间和金融数据处理。照理这宝贝对于时间的精确度应该非常敏感,但由于常年无法与微软的时间同步服务器通讯,使得时间误差越来越大。从上架服务到今天,这宝贝已经工作了将近半年的时间,时间误差已经接近两分钟,到了无可救药的地步了。

这半年以来,公司还未曾与合作单位对过账。今天收到合作单位的账单,整整 241 页。因为第一次对账,出现了不少坏账,需要核对。于是写了个脚本开始对,没想到合作单位的账单上每条记录的时间居然与我们的数据记录不一样,少则相差一分钟,多则相差近两分钟,而且这个差距没有任何规律。

我疯了,终于意识到时间同步是一件多么重要、多么必要、多么和谐、多么健康、多么有益的事情。然后开启 Windows 的时间同步服务开始对时,发现总是报错“不能连接到对等机器”。想到服务器上使用了 TCP/IP 筛选,仅开放了几个少的可怜的 TCP 端口,猜想是不是端口被阻止了。netstat -an 之后看到 UDP 协议上有一个 123 端口监听着公网 IP 地址和 127.0.0.1,查了资料,就是它了。添加一个 UDP 123 的端口后重启,抛弃慢如蜗牛的 time.windows.com,使用 218.75.4.130 作为时间同步服务器,亡羊补牢告成。

我们的服务器在湖州电信机房,所以使用 218.75.4.130 作为时间同步服务器,这个机器在台州电信,速度不错。在电信线路上,222.73.106.220 这个机器的速度也不错,可以用来同步您的服务器时间。

这是一句转折句:虽然十分不情愿,但本文档将在近期不断更新。

系统环境:Windows Server 2003 Enterprise SP2、SQL Server 2000

一、SQL Server 的连接方式

安装完成后默认两种连接方式:TCP/IP 与命名管道。就我个人的理解,前者适用各种网络环境,后者适用本机 ODBC 调用。由于调用 SQL Server 的服务端服务器与数据库服务器在同一机房、同一机柜、同一交换机中,我只使用 TCP/IP 作为唯一连接方式。

二、关于 SQL Server 的端口

SQL Server 默认监听 TCP/1433 端口,在服务端实用工具中设置数据库隐藏模式后将自动改变监听端口为 TCP/2433。隐藏模式使得客户端无法枚举数据库网络连接,也可以自行设定监听的端口,效果与设置隐藏模式雷同。

三、关于用户权限

我的个人建议是给 sa 加上一个一万年都无法暴力破解掉的密码,然后记录到某个密码管理软件里封存,然后从脑海中将这个密码忘记。关于密码管理软件,我也用过不少。目前习惯使用 Password Agent,虽然不是中文版本,但总比那些号称是“共享软件”的国产软件好。

不要使用 Windows 身份验证去访问数据库,忘记 sa 的存在之后,分别建几个用户用于管理相应的库,并赋予它们尽可能小的权限。权限不在大,只要够用就好。对于 db_owner,慎重赋予。一般而言,对于一个库的操作可以分开多个权限不同的用户,用于在不同场合执行不同的操作权限。

四、数据库维护计划

这是一项受人喜爱的功能。开启 SQL Agent 之后就可以在企业管理器中添加数据库维护计划。我习惯建立两种维护计划,一种用于对数据库进行优化,包括索引的重新整理以及对数据库数据文件与日志文件的容量收缩;一种用于对数据库数据与事务进行备份。

最近遇到一个磁盘空间瓶颈的问题,使得数据库备份只能限制在一周以内。打算采用 Windows 批处理、WinRAR 命令行加 FTP 命令的方式在设置的时间将本地数据库备份文件打包,并自动传送到另一台提供 FTP 服务的计算机上。为了避免网络带宽消耗甚至数据阻塞,建议在内网中进行该操作。

此文源载旧版博客2005年4月6日。

这个故事是我从余秋雨的《山居笔记》看到的。

说当年曹操身边曾有一个文才很好、深受信用的书记官,名字叫阮瑀,生了个儿子叫阮籍。曹操去世的时候阮籍正好十岁,当时的社会环境被称为“后英雄时期”的乱世,耳闻目睹都是鲜血和头颅,阮籍这个人充满了历史感和文化感,所以面对这个乱世,内心会承受多大的磨难根本无法去想象。只是知道阮籍喜欢一个人驾木车到处游荡,木车上面载着酒,车是没有方向的向前行驶,走到没有路了,马停了,就开始哭,哭完了转个方向又开始漫无目的的走,走到没有路了又开始哭。就这样一路走一路哭,荒郊野外的谁也不知道,他只哭给自己听。所以历史上一直认为阮籍是一个厌烦尘嚣的人。

下面说几件阮籍的事情,您就知道阮籍是一个什么样的人了。

第一件事情,他对官场的态度。

对于历代中国人来说,垂涎官场,躲避官场,整治官场,对抗官场,这些都能理解,而阮籍给予官场的却是一种游戏般的洒脱,这就让人感到意外和陌生。

第一次,曹爽让他做官,他说身体不好隐居乡间,一年后曹爽倒台,牵连很多名士,他安然无恙;当时胜利者是司马昭,于是司马昭想和阮籍联姻,但每次到阮籍家去说亲阮籍都醉着。整整两个月都是如此,联姻也就告吹。但是司马昭很厉害,在一次偶然的机会中,阮籍说曾经去过山东的东平玩过,很喜欢那里的风土人情。这个司马昭就让阮籍去山东的东平去做官。阮籍没办法,骑着驴就去了,到了东平后,查看了官衙的办公方式,东张西望了不多久便下令,把府舍衙门重重叠叠的墙壁拆掉,让原来关在各自屋子里单独办公的官员们一下子置于互相可以监视、内外可以沟通的敞亮环境中,办公内容和效率立即发生了重大变化,这一着,即便用了一千多年后今天的行政管理学来看也可以说是抓住了“牛鼻子”,国际间许多现代化企业的办公场所费尽周折都在追求着一种高透明度的集体气氛,但阮籍只是坐在驴背上想了一想就想到了。除此之外,还大刀阔斧的精简了法令,让一帮人心服口服,完全照办。然后骑着驴回洛阳去了,算起来一共在东平呆了10天。后来李白对阮籍做官的这种潇洒劲头钦佩万分。

只花10来天就让一个政通人和的东平留在身后,一般人看来都是好本事,但对于阮籍来说只是玩了一把而已,而且还玩得如此漂亮,让当时那些无数毫无作为的官僚们立刻显得狼狈万分。有了这一次经历之后,老百姓喜欢了,于是都希望他用这种简捷高效的方式整治其他行政机构,于是阮籍就提出来要担任军职,并明确要求担任北军的步兵校尉,都以为阮籍还会用他的老方法来施展,结果大失所望,原来阮籍到这个地方来担任步兵校尉是因为这个兵营里面的厨师特别擅长酿酒,而且阮籍还打听到该兵营的酒库里面还有三百斛酒。到任后,除了喝酒,一件事情也没管过,在中国古代,官员贪杯的多得很,贪杯误事的也多得很,但像阮籍这样堂而皇之纯粹为了仓库里面的酒来做官的,实在绝无仅有。

这就是他对官场的态度。

第二件事情,他对礼教的轻慢。

众所周知,古代礼教对于男女间的接触防范极严,叔嫂之间是不可以说话的,朋友的女眷也不能见面,邻里的女子不能直视,如此种种规矩。反正成文不成文的积累了一大堆。中国那个时候的男人,一度几乎成为最厌恶女性的一群奇怪动物,主要表现在可笑的不自信和可恶的淫亵推理,那个时候的男人是既装模作样又战战兢兢,而对于这一切,阮籍可不当回事,有一次嫂子回娘家,阮籍大大方方的和嫂子说话,与嫂子告别,完全没有理会叔嫂不能对话的礼教。还有啊,阮籍家隔壁酒坊里的小媳妇长的很漂亮,阮籍就经常去喝酒,喝醉了酒在人家脚边睡着了,他根本不避嫌,不过小媳妇的丈夫也不怀疑。还有一件事情,一位兵家女孩,极有才华又非常美丽,不幸还没出嫁就死了,阮籍根本不认识这家任何人,也不认识这个女孩,听到消息后却莽撞赶去吊唁,在灵堂上大哭一场,把满心的哀悼倾诉完了才走,从这事感觉阮籍特真实,不假装,毫无表演的意识,那眼泪不是为了亲情,不是为了冤案,只是献给一个美好的生命。看起来很荒唐,但高贵也在于此。没有任何理由,只是为了美丽,为了青春,为了生命,哭得那么淋漓尽致。男人能哭到这个份上,应该再也找不到其他能让男人哭的了。

礼教中还有一个强项是“孝”。孝的名目和方式可以说是叠床架屋啊。巳与子女对父母的实际感情没有什么关系,最惊人的是父母去世时的繁复礼仪,三年服丧,三年素食,三年寡欢,更有甚者三年守墓,可以说当时的这个孝字是把一分的真诚扩充成了十分的伪饰,让活着的人和死了的人都长久受罪。而就在这时候,阮籍的母亲去世了。当时阮籍正在下围棋,死讯传来,下围棋的对手要停止,阮籍却铁青着脸不肯歇手,非要决个输赢,下完棋,他才在别人惊恐万状的目光中要过酒杯,饮酒两斗,然后才放声大哭,哭得时候居然还口吐大量鲜血。几天后母亲下葬,他又开始吃肉喝酒,然后才跟母亲遗体告别,此时他早已经因悲伤过度而急剧消瘦,见了母亲遗体又放声大哭,又吐血几次。

在守丧期间,有一个朋友去吊唁,在阮籍母亲灵堂前哭拜,而阮籍却披散着头发坐着,没有站立哭拜,只是两眼发直,表情木然,朋友吊唁出去后,有人说,“按照礼法,吊唁时主人先哭拜,客人跟着哭拜,我看阮籍动都不动,您为什么哭拜?” 其实说这个话大半是小人挑拨离间,就不管了,但是客人的回答却让人欣赏,他说“阮籍是超乎礼法的人,可以不讲礼法,我还在礼法之中,当然要遵循礼法”。由上面可以看到,阮籍他完全不管礼法,在母亲丧之日吃肉喝酒,别人吊唁他母亲,他白眼相向等等,但他对母亲去世的悲痛之深又有哪一个孝子比得上呢?

千古一理:许多叛逆者往往比卫道者更忠于层层外部规范背后的内核,阮籍冲破“孝”的礼法来真正行孝,与他的官场态度及作为其实都一样的,那就是:做人,我只想活得真实和自在。