以前做蛋糕还有不成功的机会, 做得多了, 每次都很好, 就想起一句话来, 这也就是个熟练工, 昨天在TY 看到伪中空模的说法, 就是在模中间立一个烟囱之类的东西, 那个MM 用椰子罐头, 我用了小布丁模代替,学而实习之, 果然蛋糕的爬攀效果很好。
话说, 那秤, 电动打蛋器还是很重要的, 毛估估很容易失手, 我就佩服那些菜场买菜的, 若是认真起来, 要多少就给多少, 那些往往多一点的, 我认为他们估计得也很准, 只是为了多卖一点
2008年11月26日星期三
2008年6月3日星期二
2008年3月27日星期四
八卦无敌, 娱乐无罪
现在的小女孩写东西真厉害呀。不禁也有 “你们的世界和我的世界是同一个么” 这样的感叹。 落伍了。-----看 TIANYA 时尚有感
说春游去婺源, 被VV同学笑, 说没什么呀, 就是农村呀。 今天在路上看到一茬茬的油菜花, 觉得确实舍近求远了点, 一茬茬的油菜花看上去也喜气洋洋的, 为什么那油菜花不是一片片的呢, 因为推土机来了, 要造房子了。
说春游去婺源, 被VV同学笑, 说没什么呀, 就是农村呀。 今天在路上看到一茬茬的油菜花, 觉得确实舍近求远了点, 一茬茬的油菜花看上去也喜气洋洋的, 为什么那油菜花不是一片片的呢, 因为推土机来了, 要造房子了。
2008年2月11日星期一
2月5日煎饼日
YOUTUBE上面找了几个都是平底锅煎出来的.
有的地方的Pancake是烘箱出来的, 比较厚而松软, 有点象蛋糕的底胚, 所以看了半天才恍然大悟, 这不就是我们的煎饼果子么.
里面有一个很强的手摇打蛋器
煎饼果子制作过程, VIDEO制作手法很不错, 可以赶上科幻片了
煎饼果子的馅, 水果和果酱
2月5日是煎饼日, 从COMMENTS里看来的
有的地方的Pancake是烘箱出来的, 比较厚而松软, 有点象蛋糕的底胚, 所以看了半天才恍然大悟, 这不就是我们的煎饼果子么.
里面有一个很强的手摇打蛋器
煎饼果子制作过程, VIDEO制作手法很不错, 可以赶上科幻片了
煎饼果子的馅, 水果和果酱
2月5日是煎饼日, 从COMMENTS里看来的
2008年1月22日星期二
2008年1月19日星期六
2007年12月28日星期五
传说中的秋刀鱼
先前因为把秋刀鱼和带鱼混在一起, 对自己身为来自海边的爱鱼人士很是惭愧。
在超市好好把带鱼, 秋刀鱼, 青占鱼认了一边。这样看来,青占鱼有点象大一号的秋刀鱼, 秋刀鱼我是没有吃过的。所以在饭店里看到有秋刀鱼, 就毫不犹豫的点来吃了, 味道一般, 还不如青占鱼, 雪菜青占鱼是奶奶的拿手好菜。

查下来, 发现带鱼果然又被叫做刀鱼。不过,没有季节的刀鱼就是带鱼, 但是秋天的刀鱼——简称秋刀鱼——就不是带鱼了。虽然学术上, 刀鱼和带鱼属于两个科目, 但是在把带鱼叫刀鱼的老百姓眼中,两者是一回事。
另外我企图把青占鱼简称为青鱼, 查了一下, 也发现两者相去甚远, 一个是海水鱼,一个是淡水鱼。一并录入在下。
在词典中查到带鱼的日文名为:
1. 太刀魚
2. たちうお
也想和刀鱼纠缠不清。
秋刀鱼(Cololnbis snira)
属领针鱼亚目,竹刀鱼科,秋刀鱼属,又称竹刀鱼.体型细圆,棒状;背鳍后有5一6个小鳍,臀鳍后有6一7个小鳍;两颇多突起,但不呈长缘状,牙细弱;体背部深蓝色,腹部银从
色,吻端与尾柄后部略带黄色. 秋刀鱼属中上层鱼类,栖息在亚洲和美洲沿岸的太平洋亚热带和温带的190 - 580N水域中.牛要分布于太平洋北部温带水域,是冷水性涧游鱼类,适温范围为10一24'C ,
15一18度,虾类和卜足类,其次为鱼卵,挠足类为其比较稳定的饵料,摄饵活动主要在白天,夜里基本上不摄食.摄饵时的最适温度为15-21度,
日本太平洋一侧的秋刀鱼从8月到12月在北海道至东北地区南下徊游到达日本南方水域.从2月至7月进行北上徊游,到达北海道至千岛外海
秋刀鱼体内含丰富的蛋白质和脂肪等,味道鲜美,所以蒸,煮,煎,烤都叮以,而且价格便宜(在日本产地市场的销价每公斤70-90日元之间).从上海水产大学对秋刀鱼
营养成分分析来看,秋刀鱼蛋白质含量为20.7%
刀鱼(Notopterus chitara)
别名:七星刀鱼、斑纹刀鱼、非洲刀鱼、帝王刀鱼、金刀鱼
科目:刀鱼科,
产地:亚洲的泰国、缅甸、柬浦寨的湄公河、湄南河等流域以及非洲部分地区的水域均有出产。一般成鱼体长60-100公分。
水温:25-28℃
硬度:6-9dGH
Ph值:6.5-6.8
食物:动物性活饵,小鱼、小虾
性情:刀鱼属于夜型性鱼类,喜欢在幽暗的光线下游动、摄食刀鱼口中有细小的牙齿,容易吞食小鱼,不要和小型鱼混养。
带鱼 (hairtail )
别名:刀鱼、牙带鱼、裙带鱼、白带鱼、柳鞭鱼、带柳、晦刀鱼
科目:鱼纲鲈形目带鱼科动物,
体型:
带鱼的体型正如其名,侧扁如带,呈银灰色,背鳍及胸鳍浅灰色,带有很细小的斑点,尾巴为黑色,带鱼头尖口大,到尾部逐渐变细,好像一根细鞭,头长为身高的2倍,带鱼是一种比较凶猛的肉食性鱼类,牙齿发达且尖利,背鳍很长、胸鳍小,鳞片退化,它游动时不用鳍划水,而是通过摆动身躯来向前运动,行动十分自如。既可前进,也可以上下窜动,动作十分敏捷,经常捕食毛虾、乌贼及其他鱼类。
寿命:
带鱼最多只能活到8 岁左右 ,生长的速度快,1龄鱼的平均身长18厘米~19厘米,重90克~110克,当年即可繁殖后代,2龄鱼可长到 300克左右。
营养:
1. 带鱼的脂肪含量高于一般鱼类,且多为不饱和脂肪酸,这种脂肪酸的碳链较长,具有降低胆固醇的作用;
2. 带鱼全身的鳞和银白色油脂层中还含有一种抗癌成分6-硫代鸟嘌呤,对辅助治疗白血病、胃癌、淋巴肿瘤等有益;
3. 经常食用带鱼,具有补益五脏的功效;
4. 带鱼含有丰富的镁元素,对心血管系统有很好的保护作用,有利于预防高血压、心肌梗死等心血管疾病。常吃带鱼还有养肝补血、泽肤养发健美的功效。
5. 鲜带鱼与木瓜同食,对产后少乳、外伤出血等症具有一定疗效。
适合人群:
一般人群均能食用
1. 适宜久病体虚,血虚头晕,气短乏力,食少赢瘦,营养不良之人食用;适宜皮肤干燥之人食用;
2. 带鱼属动风发物,凡患有疥疮、湿疹等皮肤病或皮肤过敏者忌食;癌症患者及红斑性狼疮之人忌食;痈疖疗毒和淋巴结核、支气管哮喘者亦忌之。
分布:
带鱼分布比较广,以西太平洋和印度洋最多,我国沿海各省均可见到,其中又以东海产量最高。
选购:
1. 新鲜带鱼为银灰色,且有光泽;但有些带鱼却在银白光泽上附着一层黄色的物质。这是因为带鱼是一种脂肪较高的鱼,当保管不好时,鱼体表面脂肪因大量接触空气而加速氧化,氧化的产物就是使鱼体表面产生了黄色。
2. 购买带鱼时,尽量不要买带黄色的带鱼,如果买了,要及时食用,否则鱼会很快腐烂发臭。
青花鱼
别名:青占鱼、青黄占、鲐巴鱼、青花鱼、油胴鱼、鲭鱼、花池鱼、花巴、花鳀、青占、花鲱、巴浪、鲐鲅鱼。
学名:鲐鱼。
科目:鲭科 Pneumatophorus japonicus
海水鱼,鱼肉有点酸,很多人不太爱吃,但营养较丰富,被日本人称之为“海洋小麦”。青花鱼片加饭团,是日本人的家常料理。
青鱼
别名:黑鲩、混子、青条鱼、青鱼、红线、海青鱼
科目:鲱 (鲱科) Clupea harengus pallasi
淡水鱼, 是我国特有的淡水养殖鱼,盛产于江南地区。它分为乌青和草鱼两类。乌青以食用小虾螺蛳为主,草青则以食用水草等藻类植物为主,故乌青的 营养较草青更好。可用于油炸、红烧、清炖、炒鱼片、做熏鱼、制鱼丸、煮汤等。以个体肥、鲜活生猛者为佳。
p.s 为什么网上碰到那么多人用秋刀鱼抒情, 恐怕还归功于周杰伦
在超市好好把带鱼, 秋刀鱼, 青占鱼认了一边。这样看来,青占鱼有点象大一号的秋刀鱼, 秋刀鱼我是没有吃过的。所以在饭店里看到有秋刀鱼, 就毫不犹豫的点来吃了, 味道一般, 还不如青占鱼, 雪菜青占鱼是奶奶的拿手好菜。
查下来, 发现带鱼果然又被叫做刀鱼。不过,没有季节的刀鱼就是带鱼, 但是秋天的刀鱼——简称秋刀鱼——就不是带鱼了。虽然学术上, 刀鱼和带鱼属于两个科目, 但是在把带鱼叫刀鱼的老百姓眼中,两者是一回事。
另外我企图把青占鱼简称为青鱼, 查了一下, 也发现两者相去甚远, 一个是海水鱼,一个是淡水鱼。一并录入在下。
在词典中查到带鱼的日文名为:
1. 太刀魚
2. たちうお
也想和刀鱼纠缠不清。
秋刀鱼(Cololnbis snira)
属领针鱼亚目,竹刀鱼科,秋刀鱼属,又称竹刀鱼.体型细圆,棒状;背鳍后有5一6个小鳍,臀鳍后有6一7个小鳍;两颇多突起,但不呈长缘状,牙细弱;体背部深蓝色,腹部银从
色,吻端与尾柄后部略带黄色. 秋刀鱼属中上层鱼类,栖息在亚洲和美洲沿岸的太平洋亚热带和温带的190 - 580N水域中.牛要分布于太平洋北部温带水域,是冷水性涧游鱼类,适温范围为10一24'C ,
15一18度,虾类和卜足类,其次为鱼卵,挠足类为其比较稳定的饵料,摄饵活动主要在白天,夜里基本上不摄食.摄饵时的最适温度为15-21度,
日本太平洋一侧的秋刀鱼从8月到12月在北海道至东北地区南下徊游到达日本南方水域.从2月至7月进行北上徊游,到达北海道至千岛外海
秋刀鱼体内含丰富的蛋白质和脂肪等,味道鲜美,所以蒸,煮,煎,烤都叮以,而且价格便宜(在日本产地市场的销价每公斤70-90日元之间).从上海水产大学对秋刀鱼
营养成分分析来看,秋刀鱼蛋白质含量为20.7%
刀鱼(Notopterus chitara)
别名:七星刀鱼、斑纹刀鱼、非洲刀鱼、帝王刀鱼、金刀鱼
科目:刀鱼科,
产地:亚洲的泰国、缅甸、柬浦寨的湄公河、湄南河等流域以及非洲部分地区的水域均有出产。一般成鱼体长60-100公分。
水温:25-28℃
硬度:6-9dGH
Ph值:6.5-6.8
食物:动物性活饵,小鱼、小虾
性情:刀鱼属于夜型性鱼类,喜欢在幽暗的光线下游动、摄食刀鱼口中有细小的牙齿,容易吞食小鱼,不要和小型鱼混养。
带鱼 (hairtail )
别名:刀鱼、牙带鱼、裙带鱼、白带鱼、柳鞭鱼、带柳、晦刀鱼
科目:鱼纲鲈形目带鱼科动物,
体型:
带鱼的体型正如其名,侧扁如带,呈银灰色,背鳍及胸鳍浅灰色,带有很细小的斑点,尾巴为黑色,带鱼头尖口大,到尾部逐渐变细,好像一根细鞭,头长为身高的2倍,带鱼是一种比较凶猛的肉食性鱼类,牙齿发达且尖利,背鳍很长、胸鳍小,鳞片退化,它游动时不用鳍划水,而是通过摆动身躯来向前运动,行动十分自如。既可前进,也可以上下窜动,动作十分敏捷,经常捕食毛虾、乌贼及其他鱼类。
寿命:
带鱼最多只能活到8 岁左右 ,生长的速度快,1龄鱼的平均身长18厘米~19厘米,重90克~110克,当年即可繁殖后代,2龄鱼可长到 300克左右。
营养:
1. 带鱼的脂肪含量高于一般鱼类,且多为不饱和脂肪酸,这种脂肪酸的碳链较长,具有降低胆固醇的作用;
2. 带鱼全身的鳞和银白色油脂层中还含有一种抗癌成分6-硫代鸟嘌呤,对辅助治疗白血病、胃癌、淋巴肿瘤等有益;
3. 经常食用带鱼,具有补益五脏的功效;
4. 带鱼含有丰富的镁元素,对心血管系统有很好的保护作用,有利于预防高血压、心肌梗死等心血管疾病。常吃带鱼还有养肝补血、泽肤养发健美的功效。
5. 鲜带鱼与木瓜同食,对产后少乳、外伤出血等症具有一定疗效。
适合人群:
一般人群均能食用
1. 适宜久病体虚,血虚头晕,气短乏力,食少赢瘦,营养不良之人食用;适宜皮肤干燥之人食用;
2. 带鱼属动风发物,凡患有疥疮、湿疹等皮肤病或皮肤过敏者忌食;癌症患者及红斑性狼疮之人忌食;痈疖疗毒和淋巴结核、支气管哮喘者亦忌之。
分布:
带鱼分布比较广,以西太平洋和印度洋最多,我国沿海各省均可见到,其中又以东海产量最高。
选购:
1. 新鲜带鱼为银灰色,且有光泽;但有些带鱼却在银白光泽上附着一层黄色的物质。这是因为带鱼是一种脂肪较高的鱼,当保管不好时,鱼体表面脂肪因大量接触空气而加速氧化,氧化的产物就是使鱼体表面产生了黄色。
2. 购买带鱼时,尽量不要买带黄色的带鱼,如果买了,要及时食用,否则鱼会很快腐烂发臭。
青花鱼
别名:青占鱼、青黄占、鲐巴鱼、青花鱼、油胴鱼、鲭鱼、花池鱼、花巴、花鳀、青占、花鲱、巴浪、鲐鲅鱼。
学名:鲐鱼。
科目:鲭科 Pneumatophorus japonicus
海水鱼,鱼肉有点酸,很多人不太爱吃,但营养较丰富,被日本人称之为“海洋小麦”。青花鱼片加饭团,是日本人的家常料理。
青鱼
别名:黑鲩、混子、青条鱼、青鱼、红线、海青鱼
科目:鲱 (鲱科) Clupea harengus pallasi
淡水鱼, 是我国特有的淡水养殖鱼,盛产于江南地区。它分为乌青和草鱼两类。乌青以食用小虾螺蛳为主,草青则以食用水草等藻类植物为主,故乌青的 营养较草青更好。可用于油炸、红烧、清炖、炒鱼片、做熏鱼、制鱼丸、煮汤等。以个体肥、鲜活生猛者为佳。
p.s 为什么网上碰到那么多人用秋刀鱼抒情, 恐怕还归功于周杰伦
七里香
作曲:周杰伦作词:方文山
窗外的麻雀在电线杆上多嘴
你说这一句很有夏天的感觉
手中的铅笔在纸上来来回回
我用几行字形容你是我的谁
秋刀鱼的滋味猫跟你都想了解
初恋的香味就这样被我们寻回
那温暖的阳光像刚摘的新鲜草莓
你说你舍不得吃掉这一种感觉
雨下整夜我的爱溢出就像雨水
院子落叶跟我的思念厚厚一叠
几句是非也无法将我的热情冷却
你出现在我诗的每一页
雨下整夜我的爱溢出就像雨水
窗台蝴蝶像诗里纷飞的美丽章节
我接着写把永远爱你写进诗的结尾
你是我唯一想要的了解
那饱满的稻穗幸福了这个季节
而你的脸颊像田里熟透的蕃茄
你突然对我说七里香的名字很美
我此刻却只想亲吻你倔强的嘴
2007年11月23日星期五
认证方法
1. 信任认证
如果声明了 trust (信任)认证模式, 软件就假设任何可以联接到服务器的人都可以以任何他声明的用户, 这个方法应该用于那些在联接到服务器端口已经有足够系统层次保护的环境里.
trust 认证对于单用户工作站的本地联接是非常合适和方便的. 通常它本身并不适用于多用户环境的机器. 不过,即使在多用户的机器上,你也可以使用 trust, 只要你利用文件系统权限限制了对 postmaster 的套接字文件的访问.
trust 认证模式只有在你信任那些在配置文件里声明为 trust,允许联接到服务器上的所有机器上面的所有用户的时候才是合适的.风险比较大, 很少有理由使用 trust 作为任何除来自localhost(127.0.0.1) 以外的 TCP 联接的认证方式.
2. 口令认证
以口令为基础的认证方法包括 md5,crypt,和 password.这些方法操作上非常类似,只不过口令通过联接传送的方法不同.如果你担心口令被窃听("sniffing"), 那么 md5 比较合适,如果我们在开放的互联网上使用, 应该尽可能避免使用 password(除非你在联接上使用了 SSL, SSH,或者其他通讯安全的联接封装.)
MD5是将任意长度的字符串和128位的随机数字运算后生成一个16byte的加密字符串。因此窃听者抓住的是一团乱码。但是,这有一个问题:如果窃听者就用这团乱码去认证,还是可以认证通过。因为服务器将用户名密码MD5加密后得到的字符串就是那一团乱码,自然不能区别谁是合法用户。这叫重放攻击(replay attack)。为了防止重放攻击,采用摘要访问认证。在客户发送请求后,收到一个401(未授权)消息,包含一个Challenge。消息里面有一个唯一的字符串: nonce,每次请求都不一样。客户将用户名密码和401消息返回的挑战一起加密后传给服务器。这样即使有窃听,他也无法通过每次认证,不能重放攻击。 Http并不是一个安全的协议。其内容都是明文传输。因此不要指望Http有多安全。
3.Kerberos 认证
Kerberos 是一种适用于在公共网络上进行分布计算的工业标准的安全认证系统. 概括说来Kerberos系统是相当复杂(同样也相当强大)的系统.Kerberos FAQ 或 MIT 雅典娜计划 是个开始探索的好地方.你也可以去看看这篇介绍Kerberos是什么,它如何工作,你如何使用它的文章 The Moron's Guide to Kerberos, Version 2.0
现存在好几种 Kerberos 发布的源代码.
4.基于 Ident 的认证
身份(ident)认证方法的运做模式是使用一个映射文件列出许可的用户 和对应的用户的配对,然后通过检查客户端的操作系统用户名 以及判断许可的数据库用户名的方法来认证。判断客户端的用户名 是非常关键的安全点,根据连接类型的不同,它的实现方法也略有不同。
1) 透过 TCP/IP 的身份认证
"Identification Protocol(标识协议)"在 RFC 1413 里面描述.实际上每个类Unix的操作系统 都带着一个缺省时侦听113端口的身份服务器. 身份服务器的基本功能是回答类似这样的问题: "是什么用户从你的端口X初始化出来 联接到我的端口Y上来了?". 因为在建立起物理联接后,软件既知道 X 也知道 Y,因此它可以询问运行尝试联接的客户端的主机,并且理论上可以用这个方法判断发起联接的操作系统用户.
这样做的缺点是它取决于客户端的完整性:如果客户端不可信或者被攻击者攻破,而且它们可以在113端口上运行任何程序并且返回他们选择的任何用户的话,就无法认证了. 因此这个认证方法只适用于封闭的网络,这样的网络里的每台客户机 都处于严密的控制下并且数据库和操作系统管理员可以比较方便地 联系上.换句话说,你必须信任运行身份(ident)服务的机器.下面是警告:
2) 透过本地套接字的身份认证
在支持用于 Unix 域套接字的SO_PEERCRED请求的系统上,(目前是 Linux, FreeBSD, NetBSD, 和 BSD/OS), 身份认证也可以用于局部联接.这个时候,使用身份认证不会增加安全风险;实际上这也是在这种系统上使用本地联接时的优选方法.
在没有 SO_PEERCRED 请求的系统上,身份认证只能通过TCP/IP连接获取。如果需要绕开这个限制,我们可以声明 localhost 地址 127.0.0.1,然后让连接指向这个地址。
3) Ident 映射
当使用以身份为基础的认证时,在判断了初始化联接的操作系统用户的名字后,软件判断他是否可以以他所请求的数据库用户的身份联接. 这个判断是由配置文件中设置的的身份映射控制的.
5. PAM 认证
这个认证类型操作起来类似 password, 只不过它使用 PAM(Pluggable Authentication Modules)作为 认证机制。 有关 PAM 的更多信息,请阅读 Linux-PAM页面和 Solaris PAM 页面。
如果声明了 trust (信任)认证模式, 软件就假设任何可以联接到服务器的人都可以以任何他声明的用户, 这个方法应该用于那些在联接到服务器端口已经有足够系统层次保护的环境里.
trust 认证对于单用户工作站的本地联接是非常合适和方便的. 通常它本身并不适用于多用户环境的机器. 不过,即使在多用户的机器上,你也可以使用 trust, 只要你利用文件系统权限限制了对 postmaster 的套接字文件的访问.
trust 认证模式只有在你信任那些在配置文件里声明为 trust,允许联接到服务器上的所有机器上面的所有用户的时候才是合适的.风险比较大, 很少有理由使用 trust 作为任何除来自localhost(127.0.0.1) 以外的 TCP 联接的认证方式.
2. 口令认证
以口令为基础的认证方法包括 md5,crypt,和 password.这些方法操作上非常类似,只不过口令通过联接传送的方法不同.如果你担心口令被窃听("sniffing"), 那么 md5 比较合适,如果我们在开放的互联网上使用, 应该尽可能避免使用 password(除非你在联接上使用了 SSL, SSH,或者其他通讯安全的联接封装.)
MD5是将任意长度的字符串和128位的随机数字运算后生成一个16byte的加密字符串。因此窃听者抓住的是一团乱码。但是,这有一个问题:如果窃听者就用这团乱码去认证,还是可以认证通过。因为服务器将用户名密码MD5加密后得到的字符串就是那一团乱码,自然不能区别谁是合法用户。这叫重放攻击(replay attack)。为了防止重放攻击,采用摘要访问认证。在客户发送请求后,收到一个401(未授权)消息,包含一个Challenge。消息里面有一个唯一的字符串: nonce,每次请求都不一样。客户将用户名密码和401消息返回的挑战一起加密后传给服务器。这样即使有窃听,他也无法通过每次认证,不能重放攻击。 Http并不是一个安全的协议。其内容都是明文传输。因此不要指望Http有多安全。
3.Kerberos 认证
Kerberos 是一种适用于在公共网络上进行分布计算的工业标准的安全认证系统. 概括说来Kerberos系统是相当复杂(同样也相当强大)的系统.Kerberos FAQ 或 MIT 雅典娜计划 是个开始探索的好地方.你也可以去看看这篇介绍Kerberos是什么,它如何工作,你如何使用它的文章 The Moron's Guide to Kerberos, Version 2.0
现存在好几种 Kerberos 发布的源代码.
4.基于 Ident 的认证
身份(ident)认证方法的运做模式是使用一个映射文件列出许可的用户 和对应的用户的配对,然后通过检查客户端的操作系统用户名 以及判断许可的数据库用户名的方法来认证。判断客户端的用户名 是非常关键的安全点,根据连接类型的不同,它的实现方法也略有不同。
1) 透过 TCP/IP 的身份认证
"Identification Protocol(标识协议)"在 RFC 1413 里面描述.实际上每个类Unix的操作系统 都带着一个缺省时侦听113端口的身份服务器. 身份服务器的基本功能是回答类似这样的问题: "是什么用户从你的端口X初始化出来 联接到我的端口Y上来了?". 因为在建立起物理联接后,软件既知道 X 也知道 Y,因此它可以询问运行尝试联接的客户端的主机,并且理论上可以用这个方法判断发起联接的操作系统用户.
这样做的缺点是它取决于客户端的完整性:如果客户端不可信或者被攻击者攻破,而且它们可以在113端口上运行任何程序并且返回他们选择的任何用户的话,就无法认证了. 因此这个认证方法只适用于封闭的网络,这样的网络里的每台客户机 都处于严密的控制下并且数据库和操作系统管理员可以比较方便地 联系上.换句话说,你必须信任运行身份(ident)服务的机器.下面是警告:
身份标识协议并不适用于认证或者访问控制协议.
--RFC 1413
2) 透过本地套接字的身份认证
在支持用于 Unix 域套接字的SO_PEERCRED请求的系统上,(目前是 Linux, FreeBSD, NetBSD, 和 BSD/OS), 身份认证也可以用于局部联接.这个时候,使用身份认证不会增加安全风险;实际上这也是在这种系统上使用本地联接时的优选方法.
在没有 SO_PEERCRED 请求的系统上,身份认证只能通过TCP/IP连接获取。如果需要绕开这个限制,我们可以声明 localhost 地址 127.0.0.1,然后让连接指向这个地址。
3) Ident 映射
当使用以身份为基础的认证时,在判断了初始化联接的操作系统用户的名字后,软件判断他是否可以以他所请求的数据库用户的身份联接. 这个判断是由配置文件中设置的的身份映射控制的.
5. PAM 认证
这个认证类型操作起来类似 password, 只不过它使用 PAM(Pluggable Authentication Modules)作为 认证机制。 有关 PAM 的更多信息,请阅读 Linux-PAM页面和 Solaris PAM 页面。
2007年9月3日星期一
词典翻译软件 Lingoes
接触使用过无数软件, 这个 Lingoes 实在值得赞一下。
界面非常干净整洁, 安装词典也很方便快捷, 因为词典库是开放的, 可以装除了英语以外的 其他常见外语, 如法语, 德语, 日语等, 比金山词霸好多了。
看看这个简洁的界面, 常会觉得是外国人做的, 不是媚外啊, 金山词霸不是还曾经拿白雪的照片做屏保么, 所以很意外, 这个软件竟然是说中文的人做的, 而且是一个人做的。奇怪 Google 会收购迅雷这样的垃圾, 这个软件竟然会在法眼之外, 幸好如此, 目前这个软件没有任何插件工具条。
http://www.lingoes.cn/zh/index.html
主要功能
界面非常干净整洁, 安装词典也很方便快捷, 因为词典库是开放的, 可以装除了英语以外的 其他常见外语, 如法语, 德语, 日语等, 比金山词霸好多了。
看看这个简洁的界面, 常会觉得是外国人做的, 不是媚外啊, 金山词霸不是还曾经拿白雪的照片做屏保么, 所以很意外, 这个软件竟然是说中文的人做的, 而且是一个人做的。奇怪 Google 会收购迅雷这样的垃圾, 这个软件竟然会在法眼之外, 幸好如此, 目前这个软件没有任何插件工具条。
http://www.lingoes.cn/zh/index.html
主要功能
- 超过60 种语言互查互译
- 超过15 种语言全文翻译
- Ctrl 键屏幕取词,多国语言即指即译
- 剪贴板取词,支持PDF文档
- 单词及文本朗读
- 免费下载海量词典与辞书
- 联机词典及维基百科
当前灵格斯提供的词典包括以下语种:
2007年8月22日星期三
hello, perl
Perl 还是很不错的, 在日常生活中用用它还是能提高很多效率的。
有人说那些SCRIPT语言, 即便你自己写的, 过一段时间去看读起来也会很费劲, 深有同感。
下面是一个简单的检查这个网址还在不在的方法, myURL.txt里列的每一行都是一个 URL。 这么简单, 却也花长时间才拼起来。不知道是因为以前用的是美国的 GOOGLE,还是因为现在的关键词不对, 总之现在找不到大段的代码直接参考。
这段代码有什么用呢? 当你拿到一长串公司网址 URL, 说是某某专业方向的, 去做一下市场调查吧, 可是你敲一个, 不存在, 敲一个, 不存在,不是很火么, 就先用它简单过滤一下吧。
为什么会有不存在的情况? 现在很多域名一开始是免费的, 就拿来玩玩, 后来要收费了, 觉得不好玩就跑掉了。
**************************************
#$fname = shift @ARGV ;
use LWP::UserAgent
$fname = "c:\\myURL.txt";
open (MYFILE, $fname) || die ("Could not open file");
while ($line =) {
chomp($line);
print "$line\n";
Checklink($line);
# $line =;
# $line++;
}
close (MYFILE);
sub Checklink
{
my $url = shift;
print "$url\n";
my $ua = new LWP::UserAgent;
my $request = new HTTP::Request GET => $url;
my $response = $ua->request($request);
my $abc= $response->code;
print "$abc\n";
}
**************************************
p.s. $response->content 就是这个页面的所有源代码了。
下面是 HTTP Response Code 的解释。 很长, 总之一般是 200 就对了。
HTTP Response Code
一、HTTP 响应码
响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行。
响应码分五种类型,由它们的第一位数字表示:
1.1xx:信息,请求收到,继续处理
2.2xx:成功,行为被成功地接受、理解和采纳
3.3xx:重定向,为了完成请求,必须进一步执行的动作
4.4xx:客户端错误,请求包含语法错误或者请求无法实现
5.5xx:服务器错误,服务器不能实现一种明显无效的请求
下表显示每个响应码及其含义:
100 继续
101 分组交换协
200 OK
201 被创建
202 被采纳
203 非授权信息
204 无内容
205 重置内容
206 部分内容
300 多选项
301 永久地传送
302 找到
303 参见其他
304 未改动
305 使用代理
307 暂时重定向
400 错误请求
401 未授权
402 要求付费
403 禁止
404 未找到
405 不允许的方法
406 不被采纳
407 要求代理授权
408 请求超时
409 冲突
410 过期的
411 要求的长度
412 前提不成立
413 请求实例太大
414 请求URI太大
415 不支持的媒体类型
416 无法满足的请求范围
417 失败的预期
500 内部服务器错误
501 未被使用
502 网关错误
503 不可用的服务
504 网关超时
505 HTTP版本未被支持
二、HTTP头标
头标由主键/值对组成。它们描述客户端或者服务器的属性、被传输的资源以及应该实现连接。
四种不同类型的头标:
1.通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联。
2.请求头标:允许客户端传递关于自身的信息和希望的响应形式。
3.响应头标:服务器和于传递自身信息的响应。
4.实体头标:定义被传送资源的信息。即可用于请求,也可用于响应。
头标格式::
下表描述在HTTP/1.1中用到的头标
Accept 定义客户端可以处理的媒体类型,按优先级排序;
在一个以逗号为分隔的列表中,可以定义多种类型和使用通配符。例如:Accept: image/jpeg,image/png,*/*
Accept-Charset 定义客户端可以处理的字符集,按优先级排序;
在一个以逗号为分隔的列表中,可以定义多种类型和使用通配符。例如:Accept-Charset: iso-8859-1,*,utf-8
Accept-Encoding 定义客户端可以理解的编码机制。例如:Accept-Encoding:gzip,compress
Accept-Language 定义客户端乐于接受的自然语言列表。例如:Accept-Language: en,de
Accept-Ranges 一个响应头标,它允许服务器指明:将在给定的偏移和长度处,为资源组成部分的接受请求。
该头标的值被理解为请求范围的度量单位。例如Accept-Ranges: bytes或Accept-Ranges: none
Age 允许服务器规定自服务器生成该响应以来所经过的时间长度,以秒为单位。
该头标主要用于缓存响应。例如:Age: 30
Allow 一个响应头标,它定义一个由位于请求URI中的次源所支持的HTTP方法列表。例如:Allow: GET,PUT
aUTHORIZATION 一个响应头标,用于定义访问一种资源所必需的授权(域和被编码的用户ID与口令)。
例如:Authorization: Basic YXV0aG9yOnBoaWw=
Cache-Control 一个用于定义缓存指令的通用头标。例如:Cache-Control: max-age=30
Connection 一个用于表明是否保存socket连接为开放的通用头标。例如:Connection: close或Connection: keep-alive
Content-Base 一种定义基本URI的实体头标,为了在实体范围内解析相对URLs。
如果没有定义Content-Base头标解析相对URLs,使用Content-Location URI(存在且绝对)或使用URI请求。
例如:Content-Base: Http://www.myweb.com
Content-Encoding 一种介质类型修饰符,标明一个实体是如何编码的。例如:Content-Encoding: zip
Content-Language 用于指定在输入流中数据的自然语言类型。例如:Content-Language: en
Content-Length 指定包含于请求或响应中数据的字节长度。例如:Content-Length:382
Content-Location 指定包含于请求或响应中的资源定位(URI)。
如果是一绝。对URL它也作为被解析实体的相对URL的出发点。
例如:Content-Location: http://www.myweb.com/news
Content-MD5 实体的一种MD5摘要,用作校验和。
发送方和接受方都计算MD5摘要,接受方将其计算的值与此头标中传递的值进行比较。
例如:Content-MD5:
Content-Range 随部分实体一同发送;标明被插入字节的低位与高位字节偏移,也标明此实体的总长度。
例如:Content-Range: 1001-2000/5000
Contern-Type 标明发送或者接收的实体的MIME类型。例如:Content-Type: text/html
Date 发送HTTP消息的日期。例如:Date: Mon,10PR 18:42:51 GMT
ETag 一种实体头标,它向被发送的资源分派一个唯一的标识符。
对于可以使用多种URL请求的资源,ETag可以用于确定实际被发送的资源是否为同一资源。
例如:ETag: "208f-419e-30f8dc99"
Expires 指定实体的有效期。例如:Expires: Mon,05 Dec 2008 12:00:00 GMT
Form 一种请求头标,给定控制用户代理的人工用户的电子邮件地址。例如:From: webmaster@myweb.com
Host 被请求资源的主机名。对于使用HTTP/1.1的请求而言,此域是强制性的。例如:Host: www.myweb.com
If-Modified-Since 如果包含了GET请求,导致该请求条件性地依赖于资源上次修改日期。
如果出现了此头标,并且自指定日期以来,此资源已被修改,应该反回一个304响应代码。
例如:If-Modified-Since: Mon,10PR 18:42:51 GMT
If-Match 如果包含于一个请求,指定一个或者多个实体标记。只发送其ETag与列表中标记区配的资源。
例如:If-Match: "208f-419e-308dc99"
If-None-Match 如果包含一个请求,指定一个或者多个实体标记。资源的ETag不与列表中的任何一个条件匹配,操作才执行。
例如:If-None-Match: "208f-419e-308dc99"
If-Range 指定资源的一个实体标记,客户端已经拥有此资源的一个拷贝。必须与Range头标一同使用。
如果此实体自上次被客户端检索以来,还不曾修改过,那么服务器只发送指定的范围,否则它将发送整个资源。
例如:Range: byte=0-499If-Range:"208f-419e-30f8dc99"
If-Unmodified-Since 只有自指定的日期以来,被请求的实体还不曾被修改过,才会返回此实体。
例如:If-Unmodified-Since:Mon,10PR 18:42:51 GMT
Last-Modified 指定被请求资源上次被修改的日期和时间。例如:Last-Modified: Mon,10PR 18:42:51 GMT
Location 对于一个已经移动的资源,用于重定向请求者至另一个位置。
与状态编码302(暂时移动)或者301(永久性移动)配合使用。
例如:Location: http://www2.myweb.com/index.jsp
Max-Forwards 一个用于TRACE方法的请求头标,以指定代理或网关的最大数目,该请求通过网关才得以路由。
在通过请求传递之前,代理或网关应该减少此数目。例如:Max-Forwards: 3
Pragma 一个通用头标,它发送实现相关的信息。例如:Pragma: no-cache
Proxy-Authenticate 类似于WWW-Authenticate,便是有意请求只来自请求链(代理)的下一个服务器的认证。
例如:Proxy-Authenticate: Basic realm-admin
Proxy-Proxy-Authorization 类似于授权,但并非有意传递任何比在即时服务器链中更进一步的内容。
例如:Proxy-Proxy-Authorization: Basic YXV0aG9yOnBoaWw=
Public 列表显示服务器所支持的方法集。例如:Public: OPTIONS,MGET,MHEAD,GET,HEAD
Range 指定一种度量单位和一个部分被请求资源的偏移范围。例如:Range: bytes=206-5513
Refener 一种请求头标域,标明产生请求的初始资源。对于HTML表单,它包含此表单的Web页面的地址。
例如:Refener: http://www.myweb.com/news/search.html
Retry-After 一种响应头标域,由服务器与状态编码503(无法提供服务)配合发送,以标明再次请求之前应该等待多长时间。
此时间即可以是一种日期,也可以是一种秒单位。例如:Retry-After: 18
Server 一种标明Web服务器软件及其版本号的头标。例如:Server: Apache/2.0.46(Win32)
Transfer-Encoding 一种通用头标,标明对应被接受方反向的消息体实施变换的类型。例如:Transfer-Encoding: chunked
Upgrade 允许服务器指定一种新的协议或者新的协议版本,与响应编码101(切换协议)配合使用。
例如:Upgrade: HTTP/2.0
User-Agent 定义用于产生请求的软件类型(典型的如Web浏览器)。
例如:User-Agent: Mozilla/4.0(compatible; MSIE 5.5; Windows NT; DigExt)
Vary 一个响应头标,用于表示使用服务器驱动的协商从可用的响应表示中选择响应实体。例如:Vary: *
Via 一个包含所有中间主机和协议的通用头标,用于满足请求。例如:Via: 1.0 fred.com, 1.1 wilma.com
Warning 用于提供关于响应状态补充信息的响应头标。例如:Warning: 99 www.myweb.com Piano needs tuning
www-Authenticate 一个提示用户代理提供用户名和口令的响应头标,与状态编码401(未授权)配合使用。响应一个授权头标。
例如:www-Authenticate: Basic realm=zxm.mgmt
有人说那些SCRIPT语言, 即便你自己写的, 过一段时间去看读起来也会很费劲, 深有同感。
下面是一个简单的检查这个网址还在不在的方法, myURL.txt里列的每一行都是一个 URL。 这么简单, 却也花长时间才拼起来。不知道是因为以前用的是美国的 GOOGLE,还是因为现在的关键词不对, 总之现在找不到大段的代码直接参考。
这段代码有什么用呢? 当你拿到一长串公司网址 URL, 说是某某专业方向的, 去做一下市场调查吧, 可是你敲一个, 不存在, 敲一个, 不存在,不是很火么, 就先用它简单过滤一下吧。
为什么会有不存在的情况? 现在很多域名一开始是免费的, 就拿来玩玩, 后来要收费了, 觉得不好玩就跑掉了。
**************************************
#$fname = shift @ARGV ;
use LWP::UserAgent
$fname = "c:\\myURL.txt";
open (MYFILE, $fname) || die ("Could not open file");
while ($line =
chomp($line);
print "$line\n";
Checklink($line);
# $line =
# $line++;
}
close (MYFILE);
sub Checklink
{
my $url = shift;
print "$url\n";
my $ua = new LWP::UserAgent;
my $request = new HTTP::Request GET => $url;
my $response = $ua->request($request);
my $abc= $response->code;
print "$abc\n";
}
**************************************
p.s. $response->content 就是这个页面的所有源代码了。
下面是 HTTP Response Code 的解释。 很长, 总之一般是 200 就对了。
HTTP Response Code
一、HTTP 响应码
响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行。
响应码分五种类型,由它们的第一位数字表示:
1.1xx:信息,请求收到,继续处理
2.2xx:成功,行为被成功地接受、理解和采纳
3.3xx:重定向,为了完成请求,必须进一步执行的动作
4.4xx:客户端错误,请求包含语法错误或者请求无法实现
5.5xx:服务器错误,服务器不能实现一种明显无效的请求
下表显示每个响应码及其含义:
100 继续
101 分组交换协
200 OK
201 被创建
202 被采纳
203 非授权信息
204 无内容
205 重置内容
206 部分内容
300 多选项
301 永久地传送
302 找到
303 参见其他
304 未改动
305 使用代理
307 暂时重定向
400 错误请求
401 未授权
402 要求付费
403 禁止
404 未找到
405 不允许的方法
406 不被采纳
407 要求代理授权
408 请求超时
409 冲突
410 过期的
411 要求的长度
412 前提不成立
413 请求实例太大
414 请求URI太大
415 不支持的媒体类型
416 无法满足的请求范围
417 失败的预期
500 内部服务器错误
501 未被使用
502 网关错误
503 不可用的服务
504 网关超时
505 HTTP版本未被支持
二、HTTP头标
头标由主键/值对组成。它们描述客户端或者服务器的属性、被传输的资源以及应该实现连接。
四种不同类型的头标:
1.通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联。
2.请求头标:允许客户端传递关于自身的信息和希望的响应形式。
3.响应头标:服务器和于传递自身信息的响应。
4.实体头标:定义被传送资源的信息。即可用于请求,也可用于响应。
头标格式:
下表描述在HTTP/1.1中用到的头标
Accept 定义客户端可以处理的媒体类型,按优先级排序;
在一个以逗号为分隔的列表中,可以定义多种类型和使用通配符。例如:Accept: image/jpeg,image/png,*/*
Accept-Charset 定义客户端可以处理的字符集,按优先级排序;
在一个以逗号为分隔的列表中,可以定义多种类型和使用通配符。例如:Accept-Charset: iso-8859-1,*,utf-8
Accept-Encoding 定义客户端可以理解的编码机制。例如:Accept-Encoding:gzip,compress
Accept-Language 定义客户端乐于接受的自然语言列表。例如:Accept-Language: en,de
Accept-Ranges 一个响应头标,它允许服务器指明:将在给定的偏移和长度处,为资源组成部分的接受请求。
该头标的值被理解为请求范围的度量单位。例如Accept-Ranges: bytes或Accept-Ranges: none
Age 允许服务器规定自服务器生成该响应以来所经过的时间长度,以秒为单位。
该头标主要用于缓存响应。例如:Age: 30
Allow 一个响应头标,它定义一个由位于请求URI中的次源所支持的HTTP方法列表。例如:Allow: GET,PUT
aUTHORIZATION 一个响应头标,用于定义访问一种资源所必需的授权(域和被编码的用户ID与口令)。
例如:Authorization: Basic YXV0aG9yOnBoaWw=
Cache-Control 一个用于定义缓存指令的通用头标。例如:Cache-Control: max-age=30
Connection 一个用于表明是否保存socket连接为开放的通用头标。例如:Connection: close或Connection: keep-alive
Content-Base 一种定义基本URI的实体头标,为了在实体范围内解析相对URLs。
如果没有定义Content-Base头标解析相对URLs,使用Content-Location URI(存在且绝对)或使用URI请求。
例如:Content-Base: Http://www.myweb.com
Content-Encoding 一种介质类型修饰符,标明一个实体是如何编码的。例如:Content-Encoding: zip
Content-Language 用于指定在输入流中数据的自然语言类型。例如:Content-Language: en
Content-Length 指定包含于请求或响应中数据的字节长度。例如:Content-Length:382
Content-Location 指定包含于请求或响应中的资源定位(URI)。
如果是一绝。对URL它也作为被解析实体的相对URL的出发点。
例如:Content-Location: http://www.myweb.com/news
Content-MD5 实体的一种MD5摘要,用作校验和。
发送方和接受方都计算MD5摘要,接受方将其计算的值与此头标中传递的值进行比较。
例如:Content-MD5:
Content-Range 随部分实体一同发送;标明被插入字节的低位与高位字节偏移,也标明此实体的总长度。
例如:Content-Range: 1001-2000/5000
Contern-Type 标明发送或者接收的实体的MIME类型。例如:Content-Type: text/html
Date 发送HTTP消息的日期。例如:Date: Mon,10PR 18:42:51 GMT
ETag 一种实体头标,它向被发送的资源分派一个唯一的标识符。
对于可以使用多种URL请求的资源,ETag可以用于确定实际被发送的资源是否为同一资源。
例如:ETag: "208f-419e-30f8dc99"
Expires 指定实体的有效期。例如:Expires: Mon,05 Dec 2008 12:00:00 GMT
Form 一种请求头标,给定控制用户代理的人工用户的电子邮件地址。例如:From: webmaster@myweb.com
Host 被请求资源的主机名。对于使用HTTP/1.1的请求而言,此域是强制性的。例如:Host: www.myweb.com
If-Modified-Since 如果包含了GET请求,导致该请求条件性地依赖于资源上次修改日期。
如果出现了此头标,并且自指定日期以来,此资源已被修改,应该反回一个304响应代码。
例如:If-Modified-Since: Mon,10PR 18:42:51 GMT
If-Match 如果包含于一个请求,指定一个或者多个实体标记。只发送其ETag与列表中标记区配的资源。
例如:If-Match: "208f-419e-308dc99"
If-None-Match 如果包含一个请求,指定一个或者多个实体标记。资源的ETag不与列表中的任何一个条件匹配,操作才执行。
例如:If-None-Match: "208f-419e-308dc99"
If-Range 指定资源的一个实体标记,客户端已经拥有此资源的一个拷贝。必须与Range头标一同使用。
如果此实体自上次被客户端检索以来,还不曾修改过,那么服务器只发送指定的范围,否则它将发送整个资源。
例如:Range: byte=0-499
If-Unmodified-Since 只有自指定的日期以来,被请求的实体还不曾被修改过,才会返回此实体。
例如:If-Unmodified-Since:Mon,10PR 18:42:51 GMT
Last-Modified 指定被请求资源上次被修改的日期和时间。例如:Last-Modified: Mon,10PR 18:42:51 GMT
Location 对于一个已经移动的资源,用于重定向请求者至另一个位置。
与状态编码302(暂时移动)或者301(永久性移动)配合使用。
例如:Location: http://www2.myweb.com/index.jsp
Max-Forwards 一个用于TRACE方法的请求头标,以指定代理或网关的最大数目,该请求通过网关才得以路由。
在通过请求传递之前,代理或网关应该减少此数目。例如:Max-Forwards: 3
Pragma 一个通用头标,它发送实现相关的信息。例如:Pragma: no-cache
Proxy-Authenticate 类似于WWW-Authenticate,便是有意请求只来自请求链(代理)的下一个服务器的认证。
例如:Proxy-Authenticate: Basic realm-admin
Proxy-Proxy-Authorization 类似于授权,但并非有意传递任何比在即时服务器链中更进一步的内容。
例如:Proxy-Proxy-Authorization: Basic YXV0aG9yOnBoaWw=
Public 列表显示服务器所支持的方法集。例如:Public: OPTIONS,MGET,MHEAD,GET,HEAD
Range 指定一种度量单位和一个部分被请求资源的偏移范围。例如:Range: bytes=206-5513
Refener 一种请求头标域,标明产生请求的初始资源。对于HTML表单,它包含此表单的Web页面的地址。
例如:Refener: http://www.myweb.com/news/search.html
Retry-After 一种响应头标域,由服务器与状态编码503(无法提供服务)配合发送,以标明再次请求之前应该等待多长时间。
此时间即可以是一种日期,也可以是一种秒单位。例如:Retry-After: 18
Server 一种标明Web服务器软件及其版本号的头标。例如:Server: Apache/2.0.46(Win32)
Transfer-Encoding 一种通用头标,标明对应被接受方反向的消息体实施变换的类型。例如:Transfer-Encoding: chunked
Upgrade 允许服务器指定一种新的协议或者新的协议版本,与响应编码101(切换协议)配合使用。
例如:Upgrade: HTTP/2.0
User-Agent 定义用于产生请求的软件类型(典型的如Web浏览器)。
例如:User-Agent: Mozilla/4.0(compatible; MSIE 5.5; Windows NT; DigExt)
Vary 一个响应头标,用于表示使用服务器驱动的协商从可用的响应表示中选择响应实体。例如:Vary: *
Via 一个包含所有中间主机和协议的通用头标,用于满足请求。例如:Via: 1.0 fred.com, 1.1 wilma.com
Warning 用于提供关于响应状态补充信息的响应头标。例如:Warning: 99 www.myweb.com Piano needs tuning
www-Authenticate 一个提示用户代理提供用户名和口令的响应头标,与状态编码401(未授权)配合使用。响应一个授权头标。
例如:www-Authenticate: Basic realm=zxm.mgmt
2007年8月18日星期六
啤酒游戏
http://gzgwbn.onlinedown.net/down/morebeer.swf
FLASH游戏远远没有体现游戏的精髓。在培训中做角色扮演会更好一些。
啤酒游戏——究竟是谁的错?(ZT)
为了进一步体认行动中的学习智障,首先让我们来做一个有趣的实验,它也是系统
思考训练中,非常重要的一项活动。我们的方法是建立一个模拟组织,因为在那里可以
看到你作决定的后果,且可能比在真实组织里看到的更清楚。这个我们常邀人参加的实
验,是一个叫作“啤酒游戏”(beer game)的模拟,这项游戏第一次开发完成,是在
六十年代麻省理工学院的史隆管理学院(Sloan School of Management),它是类似
“大富翁”的桌上游戏,但更简单,参加者只须做一项决策。在实验中,我们能够比在
真实组织中,更加鲜明地暴露这些智障以及它们的成因。上万次的实验结果都显示,问
题大部分源自人类思考与互动的基本习性,它超过了组织与政策特性的影响。希望每个
人都有机会能亲身尝试一下这个对全人类的困境而言;都非常重要的游戏。
在啤酒游戏中,我们暂时置身在一种很少受到注意、但普遍存在的组织。它是一个
在所有工业国家都有的、负责商品生产与运销的产销系统。这个实验是一个生产和配销
单一品牌啤酒的系统。参加游戏的人,各自扮演不同的角色,且完全可以自由作出任何
决定。他们惟一的目标,是尽量扮演好自己的角色,使利润最大。这三个主要角色是零
售商、批发商和制造商的行销主管。现在就让我们分别由三个不同角色的角度,来看故
事的发展。
零售商
假想你是个零售商。你可能是郊区某家二十四小时营业的连锁店管理者;或者你经
营的是古老小镇上一家家庭式食品杂货店;也可以是在偏远公路边的饮料批发商。
无论你的商店像什么样子,或你销售任何其他货品,啤酒是你主要的营业项目。它
不仅有利润,而且吸引顾客进来买其他商品,例如爆米花与炸薯片等。你至少保持一打
各种品牌啤酒的库存,并概略地登录店里的存货量。
每周一次,会有卡车司机来到你的商店后门。你递给他一份该周订货单,上面写明
每个品牌你要多少箱。卡车司机在跑完其他地方之后,会把你的订单交给你的啤酒批发
商处理,适当地安排出货,并把订货运到你的商店。渐渐的,你已习惯这些处理流程,
你的订单平均需时四周;换句话说,啤酒通常在你订购之后大约四周才送达你的商店。
你与你的啤酒批发商彼此从未直接见面和聊过天。你们只透过一张纸上的核对记号
来沟通讯息。这是因为你的商店经销几百项货品,来自几十家批发商,而你的啤酒批发
商要处理十多个不同的城市中几百家商店的交货。在你的顾客和订单持续增加时,谁有
时间聊天?数目是你们惟一需要彼此沟通的事项。
你销售最稳定的一种啤酒叫作“情人啤酒”。你隐约晓得情人啤酒是由一家离你店
面大约300英里、规模小但是有效率的制造商所生产的。它不是超级流行的品牌;事实
上,该制造商全然不作广告。但是,就像每天规律收到早报一般,每周你都卖掉4箱情
人啤酒。可以确定的是,这些顾客大部分是20岁左右的年轻人,没有固定的偏好;但是
不知何故,每当一位顾客转而购买其他品牌啤酒,都会有其他人接替他来买情人啤酒。
为了确定你总是有足够的情人啤酒,你尝试随时保持12箱的库存量。因此每周一啤
酒卡车来到时,你都订购4箱,久而久之,你心里已经将每周4箱的周转率看作理所当然,
甚至你在发订单的时候会不自觉地说:“喔,是的,情人啤酒4箱。”
【第二周】:十月份的某一周(让我们称之为第二周),情人啤酒的销售量突然增
加一倍,从4箱增至8箱。你想那很好,你店里还剩8箱。你不知道何以情人啤酒的销售
突然增加4箱。或许有人举行宴会吧!但是为了补充额外卖出的4箱,你把订单上的数量
提高为8箱。这将使你的库存恢复正常的12箱。
【第三周】:但奇怪的是,下一周你又卖出8箱情人啤酒。偶尔你会在得空时短暂
地思索原因何在。但春假还没到,啤酒公司也没通知你有举办特别的促销活动,或许有
其他的原因……,但是有一位顾客进来了,打断了你的思绪。
就在此时,送货员来到,关于情人啤酒的事,你还是没有机会仔细思考,你低头看
送货单,看到他这次只送来四周前你所订的4箱。你目前只有4箱的库存,意思是说除非
接下来销售下降,否则这周你将卖光所有的情人啤酒。因此至少订购8箱才能赶得上销
售的速度。但为了安全起见,你订购了12箱,这样你可以重建原有的标准安全库存量。
【第四周】:星期二那天,你找时间向一、二位年轻的顾客询问。结果发现大约一
个月以前,有一个新的流行音乐录影带在电视频道播出,这个合唱团以“我喝下最后一
口情人啤酒,投向太阳”,作为他们歌曲的结尾。你不知道他们为什么使用这句话,但
是如果有任何新的广告促销,你的批发商应当会事先告诉你。你想打电话给批发商问问,
但是炸薯片的送货员正好来交货,情人啤酒这个问题又滑出了你的脑子。
你订的啤酒下一次到货时,只送来5箱。(尽管因为只剩1箱库存,你有些懊恼,但
是觉得也不错。多亏这个录影带免费促销。)你虽然知道自己前几次已多订了几箱,但
是想想需求可能进一步上升,最好再订购16箱。
【第五周】:周一早上你仅存的1箱卖光了。幸运的是你又收到7箱情人啤酒(显然
你的批发商已经开始回应你较高量的订单)。但是所有的啤酒又在本周结束之前销售一
空,你的库存完全没货了。你有些担心地望着空空的货架,最好再另外订16箱。你不想
落得流行的啤酒没货的名声。
【第六周】:果然,顾客在本周开始的时候就夹看看有没有情人啤酒。有两位实在
忠心,愿意等着购买。他们说:“货来了请通知我们,我们立刻上门购买。”你抄下这
两位顾客的名字与电话号码,他们承诺每人买1箱。
下次到货只有6箱。你打电话给那两位预先订货的顾客,他们依约前来各自买了他
们的1箱,剩下的4箱啤酒在周末之前又卖光了。又有两位顾客把他们的名字留给你,下
批货一到。请你立刻打电话给他们。你不禁想:“要是货架不是空的,不知道已经多卖
掉多少啤酒。”似乎这个牌子的啤酒有供不应求的情形。在这个地区没有一家商店有货
可卖。似乎这种啤酒受欢迎的程度不断增加。
在瞪眼看着空的货架两天之后,觉得如果不另外订购16箱是不对的。你内心挣扎着
是否要订购更多的数量,但是你克制了自己,因为你知道自己所下的几次大订单将很快
开始交货。可是他们什么时候才能交货呢?
【第七周】:这周交货卡车只送来5箱,也就是说你又要面对空空的货架一个星期。
你把货给了预订的顾客,不到两天,剩下的情人啤酒又卖光了。这一周更吓人,有5位
顾客留下他们的名字。你另外订购了16箱,并暗自祷告你的大订单将会开始到货。
【第八周】:此时你对情人啤酒的注意,比任何你销售的其他货品更为密切。每当
有顾客购买这种看起来不显眼、半打装的啤酒,你都会特别注意。人们似乎在谈论情人
啤酒。你殷切地等待卡车司机送来16箱啤酒。
但是卡车司机只送来5箱。你说:“5箱,你是什么意思?”他告诉你:“嘿!这件
事情我毫无所悉,我猜他们接到的订单多于存货的数量。不过我想你几周以后会收到货
的。”几周?那时你光是应付预先订货的顾客就卖完了,接下来的整个星期,你的货架
上会连1瓶情人啤酒也没有。这将对你的声誉造成怎样的影响?你深感挫折与生气。
这次你订购了24箱,比你原先计划要订购的多一倍。真想不通为什么批发商这样对
待你?难道他不知道我们这里的市场胃口有多大?
批发商
作为一家批发配销公司的主管,啤酒就是你的生活。你一天中花极长的时间在小仓
库里面,仓库里高高地堆着每一种能够想得到品牌的啤酒,当然也包括情人啤酒。你所
服务的地区包括本市、本市的四郊和偏远的乡间。你不是本地惟一的啤酒批发商,但是
你基础稳固。而且有一些小品牌,包括情人啤酒在内,是由你在此地区独家代理。
你跟制造厂商联络的方法,大多与零售商用来跟你联络的方法一样。你每周在一张
表单上,潦草地填上数目,交给你的驾驶员。平均在4周以后,所订的啤酒会送到。只
是你订购的不是以精计,而是整批的。每批的总数大约够装满1辆小卡车,所以你所想
的是卡车量。就像你的零售商每周都向你订购4箱的情人啤酒,你每周都向制造商订购4
卡车的量,足够让你随时积有12卡车的标准库存量。
到了第八周你几乎已经像你的零售商一样的感到挫折与生气。情人啤酒一向都是个
可靠稳定的品牌,但是几周之前(约在第四周)订单突然开始急遽上升。再下来那一周,
从零售商来的订单仍然继续增加。到了第八周,大部分的零售商所订购的啤酒数量已经
是平常的三或四倍。
起初,仓库中的库存,轻而易举地满足了额外订单的需要。而当你注意到情人啤酒
有销售增加的趋势,你马上向制造商提高订购这种啤酒的数量。第六周你在啤酒配销新
闻上看到一篇关于流行音乐录影带的文章之后,进一步提高订购量,大幅增加到每周20
卡车量。这是你平常所订购啤酒数量的5倍。但是你需要这么多,因为啤酒受欢迎的程
度,从零售商订货的需求判断,呈二倍、三倍、甚至四倍增加。
到了第六周,你所有库存的啤酒都送出去了,然而欠货的数量还是惊人。有几家较
大型的连锁店还急得直接打电话给你,但是你的情人啤酒库存空空如也。不过至少你知
道,再几周你多订的啤酒将会送到。
在第八周,当你打电话给制造商,问是否有什么办法加速他们的交货(并且通知他
们你已把订单增加为30卡车量),你骇然发现他们在两周前才增加生产量。他们刚刚才
得悉需求增加。他们怎么会这么慢?
【第九周】:现在是第九周了。你每周自各零售商接到约20卡车量的情人啤酒订单,
而你仍然没有货。上周结束之前,你对零售商的欠货又多了29卡车量。你的员工对于外
勤人员打来的电话已经司空见惯,甚而他们要求你安装一具答录机,专门用来说明关于
情人啤酒的事情。但你有自信在本周内,从制造商那儿收到你在一个月以前订购的ZO卡
车量。
然而,他们只送来6卡车量。显然制造商仍然缺货,而较大量的生产运转现在才开
始出货。你打电话给几家较大的连锁店客户,向他们保证他们订购的啤酒不久将送到。
【第十周】:第十周令人怒气冲天。你预期会送到的额外(至少20卡车量)啤酒不
见踪影。你猜或许制造商确实无法这么快提高产量。他们只交给你8卡车量。打电话去
也没人接电话,显然他们所有的人都在工厂里全力生产。
在此同时,各家商店显然疯狂地在销售啤酒,因为你接到空前大幅的订单——本周
为26卡车量。或许他们正因为无法从你这里拿到啤酒,所以订购这么多。不管是怎样,
你必须跟得上订单。如果你拿不到啤酒,他们可能转向你的竞争者购买。
你向制造商订购了40卡车量。
【第十一周】:在第十一周,你发现自己在仓库附近的酒吧进午餐的时间特别长
(因为你实在很怕接到连锁店打来的电话)。情人啤酒只送来12卡车。你仍然无法联络
上制造商的任何一位人员。而你有超过100卡车量的订单等着补货:已订未交的77卡车
量,加上本周从商店接到的28卡车量的订单
你必须得到啤酒,于是你向制造商再订购了40卡车量。
【第十二周】:到了第十二周,情势更明白了。对情人啤酒需求变化的程度远高于
你所预期的。只要你想到假如有足够的存货,可以赚到多少钱,便只好叹口气认了。制
造商怎能对你这样?为什么长期缺货的需求会上升这么快?你怎能预料而跟得上?你所
知道的一切就是千万不要再陷入这种长期缺货的状况。你再订购了60卡车量。
接下来的四周,需求量继续超过你的供应量。事实上,到了第十三周,你的欠货量
全然没有降低。
【第十四周】:在第十四周与第十五周,你终于开始从制造商收到较大量的出货。
同时,从商店来的订购量下降了一点点。你想也许是因为上周他们多订了一点。在这个
节骨眼上,任何有助于降低欠货数量的事情都是受欢迎的。现在到了第十六周,你终于
几乎拿到前几周要求的所有啤酒:55卡车量。这些啤酒必须用板架叠放起来,而这些进
来的货将很快卖出去。
一整个星期下来,你盼望商店的订单再进来。但是你看到一张接一张的订单填的都
是相同的数目:零、零、零、零、零。这些人出了什么毛病?四周以前,他们大声吼着
向你要啤酒,现在他们甚至1箱也不要了。
突然之间,你觉得一股寒意自心底冒上来。你把刚要送给制造商的订单上写着的24
卡车量全数删除。
【第十七周】:接下来这周,又送到60卡车量的情人啤酒。商店的订购数量仍然是
零。109卡车量的货品在你的仓库里纹风不动,你天天在这些货品堆里走来走去,还是
没有凹掉一块。
这周商店要的货应该会增多一些,毕竟那个录影带仍在播出。你心中暗自思量,若
再不来订货,你要把每一个该死的零售商打入第十八层地狱。
可恶的是,零售商向你订购情人啤酒的数量又再一次挂零。你向制造商订购的数量
自然也是零。然而,可恨的制造商还是继续把啤酒送来,这周又运来60卡车量,实在太
过分了,他难道不知道我的处境?为什么制造商还要把货运来?这要到什么时候才会结
束?
制造商
假想你是四个月以前被雇来负责这家啤酒制造商的配销与行销主管,情人啤酒只是
它几项主要产品当中的一项。这是一家小型制造厂,以品质闻名,行销则不太出色,所
以公司才雇用你来加强行销。
现在,显然你做对了一些事情。因为你就任不到两个月(这个游戏的第六周),新
的订单开始急遽上升。到了你担任这个工作的第三个月结束,啤酒的订单达到每周40批,
你刚开始时只有4批,大幅成长让你觉得满意。而你的出货量是30批。
制造厂内也同样有欠货的问题。在这个工厂,从你决定酿制一瓶啤酒,到啤酒完成
出货的准备,至少需要两周的时间,所以你在仓库保持几批啤酒的库存,这是理所当然
的。但是这些库存在第七周就出光了,而这只是进来的订单开始上升两周之后的事。下
一周你有9批已订未交的订单,还有24批新的订单,你只能送出22批。这时你在公司内
已经成为英雄。厂长给每一位员工奖励,把工作时间延长一倍,并兴奋地进行面谈为工
厂招募新的帮手。
你运气好是由于流行音乐的录影带提到了情人啤酒。你在第三周从青少年写来的信
件中得悉录影带的事,但是直到第六周才看见录影带造成订单上升的影响。
甚至到了第十四周,工厂仍然赶不上已订未交的订购量。你不断要求酿制更多的量。
你想像自己这一年的奖金不知将会有多少,或许可以要求利润的某一个百分比。你无聊
得在行销周刊的封面上为自己画像。
在第十六周,你终于赶上已订未交的数量。但是到了第十七周,你的经销商只订了
19批的货。而至第十八周,他们完全不再订购啤酒,有些订单上甚至可以看出是被全数
删减掉的。
现在是第十九周。你在仓库里有100批啤酒存货。而啤酒销售业绩仍然挂零。同时
你过去要求大量酿制的啤酒,还在不断的酿造中。你战战兢兢地打了一通电话给老板。
你说:“最好把生产延缓一、二周,我们碰到了……”你使用一个你在商业学校学到的
字眼“断续(discontinuity)”。电话的另一端默不作声,你说:“但是我确定这只
是暂时的。”
【第二十一周】:相同的模式又延续了四周之久:第二十周、第二十一周、第二十
二周、第二十三周。你对订货再现高峰的希望日渐渺茫,而你的借口听起来愈来愈薄弱。
你说经销商和零售商胡搞,上个月疯狂地要货,这个月突然什么都不订,都是新闻与流
行音乐录影带制造了情人啤酒高涨的需求。
【第二十四周】:你在第二十四周初,借用公司汽车去拜访的第一站,是批发商的
办公室。这不仅是你与批发商第一次会面,也只是你们第二次交谈,因为直至这个危机
发生之前,并没有什么事情好说的。你们彼此面色凝重地寒暄了一下,然后批发商把你
带到后面的仓库。批发商说:“我们已有两个月没收到零售商任何一张情人啤酒的订单
了,我感到完全茫然不解。你看,这里还有220卡车量在仓库里啊!”
你们一起断定必然发生了需求暴起暴跌的现象,“消费大众的需求是反复无常的。”
你们共同如此结论。如果零售商留意并警告你们,决不会发生这样的情形。
在回程的路上,你在脑子里构思行销策略报告的措辞,一时性起,你决定在一家沿
途经过的零售商店停一下。运气不错,店主在店里。你自我介绍,零售商的脸上勉强挤
出笑容。他。要一名助手照看店铺,你们两人一同走到隔壁一家速食餐厅,各要了一杯
咖啡。
零售商随手带来店里库存记录簿,打开横放在桌子上。“你不知道几个月之前我多
么想要勒死你。”
“为什么?”
“你看,我们后面的房间还有93箱没卖掉的情人啤酒。依照现在售货的速度,我们
再订购是六周以后的事了。”
六周,你自己盘算着。接着你掏出一具口袋型计算机。如果这个地区每一家零售商
都等待六周再订购啤酒,然后每周只订购几箱,将费时一年或一年以上,才能使批发商
220卡车量的库存大幅下降。你说:“这是一个悲剧。是谁让它发生的……我的意思是
说,我们要如何防止这样的悲剧再次发生?”
在噘了几口咖啡后,零售商说:“那不是我们的错,在音乐录影带开始播出的时候,
我们一直都是卖4箱啤酒。接下来的第二周我们卖掉8箱。”你接着说:“然后销售量迅
速增加。但是为什么现在销售量会减到连1箱都没有呢?”
零售商说:“不,你不了解,需求从来就没有迅速增加过,顾客也从未完全停止购
买。我们仍然每周卖出8箱啤酒。”
“什么?你说什么?需求从来就没迅速增加过?顾客也从来没有完全停止购买?这
怎么可能?到底是怎么回事?”
“但是我们需要的啤酒数量你们不送货给我们。我们只好不断地订货,以确保有足
够的数量来跟上顾客的需要。”
“但是我们都按照必要的速度把啤酒送出去。”
零售商说:“那么也许是批发商搞砸了吧,我在想是否该换供应商了。无论如何,
我希望你举办一次赠券促销或其他办法,让我能够赚回一些本钱。我只想把那93箱啤酒
卖掉一些。”
你拿起咖啡的帐单。回程中,你一路计划辞呈的措辞要怎么写。显然,你将因这项
危机所造成的工人解雇或关闭生产线而受到责备,就像批发商责怪零售商、零售商责怪
批发商,而两者都想要责怪你一样。至少现在还够早,能让你带着些许尊严离开。只要
你能想出一些解释,说明这不是你的错,显示你也是被害人,而不是元凶。
FLASH游戏远远没有体现游戏的精髓。在培训中做角色扮演会更好一些。
啤酒游戏——究竟是谁的错?(ZT)
为了进一步体认行动中的学习智障,首先让我们来做一个有趣的实验,它也是系统
思考训练中,非常重要的一项活动。我们的方法是建立一个模拟组织,因为在那里可以
看到你作决定的后果,且可能比在真实组织里看到的更清楚。这个我们常邀人参加的实
验,是一个叫作“啤酒游戏”(beer game)的模拟,这项游戏第一次开发完成,是在
六十年代麻省理工学院的史隆管理学院(Sloan School of Management),它是类似
“大富翁”的桌上游戏,但更简单,参加者只须做一项决策。在实验中,我们能够比在
真实组织中,更加鲜明地暴露这些智障以及它们的成因。上万次的实验结果都显示,问
题大部分源自人类思考与互动的基本习性,它超过了组织与政策特性的影响。希望每个
人都有机会能亲身尝试一下这个对全人类的困境而言;都非常重要的游戏。
在啤酒游戏中,我们暂时置身在一种很少受到注意、但普遍存在的组织。它是一个
在所有工业国家都有的、负责商品生产与运销的产销系统。这个实验是一个生产和配销
单一品牌啤酒的系统。参加游戏的人,各自扮演不同的角色,且完全可以自由作出任何
决定。他们惟一的目标,是尽量扮演好自己的角色,使利润最大。这三个主要角色是零
售商、批发商和制造商的行销主管。现在就让我们分别由三个不同角色的角度,来看故
事的发展。
零售商
假想你是个零售商。你可能是郊区某家二十四小时营业的连锁店管理者;或者你经
营的是古老小镇上一家家庭式食品杂货店;也可以是在偏远公路边的饮料批发商。
无论你的商店像什么样子,或你销售任何其他货品,啤酒是你主要的营业项目。它
不仅有利润,而且吸引顾客进来买其他商品,例如爆米花与炸薯片等。你至少保持一打
各种品牌啤酒的库存,并概略地登录店里的存货量。
每周一次,会有卡车司机来到你的商店后门。你递给他一份该周订货单,上面写明
每个品牌你要多少箱。卡车司机在跑完其他地方之后,会把你的订单交给你的啤酒批发
商处理,适当地安排出货,并把订货运到你的商店。渐渐的,你已习惯这些处理流程,
你的订单平均需时四周;换句话说,啤酒通常在你订购之后大约四周才送达你的商店。
你与你的啤酒批发商彼此从未直接见面和聊过天。你们只透过一张纸上的核对记号
来沟通讯息。这是因为你的商店经销几百项货品,来自几十家批发商,而你的啤酒批发
商要处理十多个不同的城市中几百家商店的交货。在你的顾客和订单持续增加时,谁有
时间聊天?数目是你们惟一需要彼此沟通的事项。
你销售最稳定的一种啤酒叫作“情人啤酒”。你隐约晓得情人啤酒是由一家离你店
面大约300英里、规模小但是有效率的制造商所生产的。它不是超级流行的品牌;事实
上,该制造商全然不作广告。但是,就像每天规律收到早报一般,每周你都卖掉4箱情
人啤酒。可以确定的是,这些顾客大部分是20岁左右的年轻人,没有固定的偏好;但是
不知何故,每当一位顾客转而购买其他品牌啤酒,都会有其他人接替他来买情人啤酒。
为了确定你总是有足够的情人啤酒,你尝试随时保持12箱的库存量。因此每周一啤
酒卡车来到时,你都订购4箱,久而久之,你心里已经将每周4箱的周转率看作理所当然,
甚至你在发订单的时候会不自觉地说:“喔,是的,情人啤酒4箱。”
【第二周】:十月份的某一周(让我们称之为第二周),情人啤酒的销售量突然增
加一倍,从4箱增至8箱。你想那很好,你店里还剩8箱。你不知道何以情人啤酒的销售
突然增加4箱。或许有人举行宴会吧!但是为了补充额外卖出的4箱,你把订单上的数量
提高为8箱。这将使你的库存恢复正常的12箱。
【第三周】:但奇怪的是,下一周你又卖出8箱情人啤酒。偶尔你会在得空时短暂
地思索原因何在。但春假还没到,啤酒公司也没通知你有举办特别的促销活动,或许有
其他的原因……,但是有一位顾客进来了,打断了你的思绪。
就在此时,送货员来到,关于情人啤酒的事,你还是没有机会仔细思考,你低头看
送货单,看到他这次只送来四周前你所订的4箱。你目前只有4箱的库存,意思是说除非
接下来销售下降,否则这周你将卖光所有的情人啤酒。因此至少订购8箱才能赶得上销
售的速度。但为了安全起见,你订购了12箱,这样你可以重建原有的标准安全库存量。
【第四周】:星期二那天,你找时间向一、二位年轻的顾客询问。结果发现大约一
个月以前,有一个新的流行音乐录影带在电视频道播出,这个合唱团以“我喝下最后一
口情人啤酒,投向太阳”,作为他们歌曲的结尾。你不知道他们为什么使用这句话,但
是如果有任何新的广告促销,你的批发商应当会事先告诉你。你想打电话给批发商问问,
但是炸薯片的送货员正好来交货,情人啤酒这个问题又滑出了你的脑子。
你订的啤酒下一次到货时,只送来5箱。(尽管因为只剩1箱库存,你有些懊恼,但
是觉得也不错。多亏这个录影带免费促销。)你虽然知道自己前几次已多订了几箱,但
是想想需求可能进一步上升,最好再订购16箱。
【第五周】:周一早上你仅存的1箱卖光了。幸运的是你又收到7箱情人啤酒(显然
你的批发商已经开始回应你较高量的订单)。但是所有的啤酒又在本周结束之前销售一
空,你的库存完全没货了。你有些担心地望着空空的货架,最好再另外订16箱。你不想
落得流行的啤酒没货的名声。
【第六周】:果然,顾客在本周开始的时候就夹看看有没有情人啤酒。有两位实在
忠心,愿意等着购买。他们说:“货来了请通知我们,我们立刻上门购买。”你抄下这
两位顾客的名字与电话号码,他们承诺每人买1箱。
下次到货只有6箱。你打电话给那两位预先订货的顾客,他们依约前来各自买了他
们的1箱,剩下的4箱啤酒在周末之前又卖光了。又有两位顾客把他们的名字留给你,下
批货一到。请你立刻打电话给他们。你不禁想:“要是货架不是空的,不知道已经多卖
掉多少啤酒。”似乎这个牌子的啤酒有供不应求的情形。在这个地区没有一家商店有货
可卖。似乎这种啤酒受欢迎的程度不断增加。
在瞪眼看着空的货架两天之后,觉得如果不另外订购16箱是不对的。你内心挣扎着
是否要订购更多的数量,但是你克制了自己,因为你知道自己所下的几次大订单将很快
开始交货。可是他们什么时候才能交货呢?
【第七周】:这周交货卡车只送来5箱,也就是说你又要面对空空的货架一个星期。
你把货给了预订的顾客,不到两天,剩下的情人啤酒又卖光了。这一周更吓人,有5位
顾客留下他们的名字。你另外订购了16箱,并暗自祷告你的大订单将会开始到货。
【第八周】:此时你对情人啤酒的注意,比任何你销售的其他货品更为密切。每当
有顾客购买这种看起来不显眼、半打装的啤酒,你都会特别注意。人们似乎在谈论情人
啤酒。你殷切地等待卡车司机送来16箱啤酒。
但是卡车司机只送来5箱。你说:“5箱,你是什么意思?”他告诉你:“嘿!这件
事情我毫无所悉,我猜他们接到的订单多于存货的数量。不过我想你几周以后会收到货
的。”几周?那时你光是应付预先订货的顾客就卖完了,接下来的整个星期,你的货架
上会连1瓶情人啤酒也没有。这将对你的声誉造成怎样的影响?你深感挫折与生气。
这次你订购了24箱,比你原先计划要订购的多一倍。真想不通为什么批发商这样对
待你?难道他不知道我们这里的市场胃口有多大?
批发商
作为一家批发配销公司的主管,啤酒就是你的生活。你一天中花极长的时间在小仓
库里面,仓库里高高地堆着每一种能够想得到品牌的啤酒,当然也包括情人啤酒。你所
服务的地区包括本市、本市的四郊和偏远的乡间。你不是本地惟一的啤酒批发商,但是
你基础稳固。而且有一些小品牌,包括情人啤酒在内,是由你在此地区独家代理。
你跟制造厂商联络的方法,大多与零售商用来跟你联络的方法一样。你每周在一张
表单上,潦草地填上数目,交给你的驾驶员。平均在4周以后,所订的啤酒会送到。只
是你订购的不是以精计,而是整批的。每批的总数大约够装满1辆小卡车,所以你所想
的是卡车量。就像你的零售商每周都向你订购4箱的情人啤酒,你每周都向制造商订购4
卡车的量,足够让你随时积有12卡车的标准库存量。
到了第八周你几乎已经像你的零售商一样的感到挫折与生气。情人啤酒一向都是个
可靠稳定的品牌,但是几周之前(约在第四周)订单突然开始急遽上升。再下来那一周,
从零售商来的订单仍然继续增加。到了第八周,大部分的零售商所订购的啤酒数量已经
是平常的三或四倍。
起初,仓库中的库存,轻而易举地满足了额外订单的需要。而当你注意到情人啤酒
有销售增加的趋势,你马上向制造商提高订购这种啤酒的数量。第六周你在啤酒配销新
闻上看到一篇关于流行音乐录影带的文章之后,进一步提高订购量,大幅增加到每周20
卡车量。这是你平常所订购啤酒数量的5倍。但是你需要这么多,因为啤酒受欢迎的程
度,从零售商订货的需求判断,呈二倍、三倍、甚至四倍增加。
到了第六周,你所有库存的啤酒都送出去了,然而欠货的数量还是惊人。有几家较
大型的连锁店还急得直接打电话给你,但是你的情人啤酒库存空空如也。不过至少你知
道,再几周你多订的啤酒将会送到。
在第八周,当你打电话给制造商,问是否有什么办法加速他们的交货(并且通知他
们你已把订单增加为30卡车量),你骇然发现他们在两周前才增加生产量。他们刚刚才
得悉需求增加。他们怎么会这么慢?
【第九周】:现在是第九周了。你每周自各零售商接到约20卡车量的情人啤酒订单,
而你仍然没有货。上周结束之前,你对零售商的欠货又多了29卡车量。你的员工对于外
勤人员打来的电话已经司空见惯,甚而他们要求你安装一具答录机,专门用来说明关于
情人啤酒的事情。但你有自信在本周内,从制造商那儿收到你在一个月以前订购的ZO卡
车量。
然而,他们只送来6卡车量。显然制造商仍然缺货,而较大量的生产运转现在才开
始出货。你打电话给几家较大的连锁店客户,向他们保证他们订购的啤酒不久将送到。
【第十周】:第十周令人怒气冲天。你预期会送到的额外(至少20卡车量)啤酒不
见踪影。你猜或许制造商确实无法这么快提高产量。他们只交给你8卡车量。打电话去
也没人接电话,显然他们所有的人都在工厂里全力生产。
在此同时,各家商店显然疯狂地在销售啤酒,因为你接到空前大幅的订单——本周
为26卡车量。或许他们正因为无法从你这里拿到啤酒,所以订购这么多。不管是怎样,
你必须跟得上订单。如果你拿不到啤酒,他们可能转向你的竞争者购买。
你向制造商订购了40卡车量。
【第十一周】:在第十一周,你发现自己在仓库附近的酒吧进午餐的时间特别长
(因为你实在很怕接到连锁店打来的电话)。情人啤酒只送来12卡车。你仍然无法联络
上制造商的任何一位人员。而你有超过100卡车量的订单等着补货:已订未交的77卡车
量,加上本周从商店接到的28卡车量的订单
你必须得到啤酒,于是你向制造商再订购了40卡车量。
【第十二周】:到了第十二周,情势更明白了。对情人啤酒需求变化的程度远高于
你所预期的。只要你想到假如有足够的存货,可以赚到多少钱,便只好叹口气认了。制
造商怎能对你这样?为什么长期缺货的需求会上升这么快?你怎能预料而跟得上?你所
知道的一切就是千万不要再陷入这种长期缺货的状况。你再订购了60卡车量。
接下来的四周,需求量继续超过你的供应量。事实上,到了第十三周,你的欠货量
全然没有降低。
【第十四周】:在第十四周与第十五周,你终于开始从制造商收到较大量的出货。
同时,从商店来的订购量下降了一点点。你想也许是因为上周他们多订了一点。在这个
节骨眼上,任何有助于降低欠货数量的事情都是受欢迎的。现在到了第十六周,你终于
几乎拿到前几周要求的所有啤酒:55卡车量。这些啤酒必须用板架叠放起来,而这些进
来的货将很快卖出去。
一整个星期下来,你盼望商店的订单再进来。但是你看到一张接一张的订单填的都
是相同的数目:零、零、零、零、零。这些人出了什么毛病?四周以前,他们大声吼着
向你要啤酒,现在他们甚至1箱也不要了。
突然之间,你觉得一股寒意自心底冒上来。你把刚要送给制造商的订单上写着的24
卡车量全数删除。
【第十七周】:接下来这周,又送到60卡车量的情人啤酒。商店的订购数量仍然是
零。109卡车量的货品在你的仓库里纹风不动,你天天在这些货品堆里走来走去,还是
没有凹掉一块。
这周商店要的货应该会增多一些,毕竟那个录影带仍在播出。你心中暗自思量,若
再不来订货,你要把每一个该死的零售商打入第十八层地狱。
可恶的是,零售商向你订购情人啤酒的数量又再一次挂零。你向制造商订购的数量
自然也是零。然而,可恨的制造商还是继续把啤酒送来,这周又运来60卡车量,实在太
过分了,他难道不知道我的处境?为什么制造商还要把货运来?这要到什么时候才会结
束?
制造商
假想你是四个月以前被雇来负责这家啤酒制造商的配销与行销主管,情人啤酒只是
它几项主要产品当中的一项。这是一家小型制造厂,以品质闻名,行销则不太出色,所
以公司才雇用你来加强行销。
现在,显然你做对了一些事情。因为你就任不到两个月(这个游戏的第六周),新
的订单开始急遽上升。到了你担任这个工作的第三个月结束,啤酒的订单达到每周40批,
你刚开始时只有4批,大幅成长让你觉得满意。而你的出货量是30批。
制造厂内也同样有欠货的问题。在这个工厂,从你决定酿制一瓶啤酒,到啤酒完成
出货的准备,至少需要两周的时间,所以你在仓库保持几批啤酒的库存,这是理所当然
的。但是这些库存在第七周就出光了,而这只是进来的订单开始上升两周之后的事。下
一周你有9批已订未交的订单,还有24批新的订单,你只能送出22批。这时你在公司内
已经成为英雄。厂长给每一位员工奖励,把工作时间延长一倍,并兴奋地进行面谈为工
厂招募新的帮手。
你运气好是由于流行音乐的录影带提到了情人啤酒。你在第三周从青少年写来的信
件中得悉录影带的事,但是直到第六周才看见录影带造成订单上升的影响。
甚至到了第十四周,工厂仍然赶不上已订未交的订购量。你不断要求酿制更多的量。
你想像自己这一年的奖金不知将会有多少,或许可以要求利润的某一个百分比。你无聊
得在行销周刊的封面上为自己画像。
在第十六周,你终于赶上已订未交的数量。但是到了第十七周,你的经销商只订了
19批的货。而至第十八周,他们完全不再订购啤酒,有些订单上甚至可以看出是被全数
删减掉的。
现在是第十九周。你在仓库里有100批啤酒存货。而啤酒销售业绩仍然挂零。同时
你过去要求大量酿制的啤酒,还在不断的酿造中。你战战兢兢地打了一通电话给老板。
你说:“最好把生产延缓一、二周,我们碰到了……”你使用一个你在商业学校学到的
字眼“断续(discontinuity)”。电话的另一端默不作声,你说:“但是我确定这只
是暂时的。”
【第二十一周】:相同的模式又延续了四周之久:第二十周、第二十一周、第二十
二周、第二十三周。你对订货再现高峰的希望日渐渺茫,而你的借口听起来愈来愈薄弱。
你说经销商和零售商胡搞,上个月疯狂地要货,这个月突然什么都不订,都是新闻与流
行音乐录影带制造了情人啤酒高涨的需求。
【第二十四周】:你在第二十四周初,借用公司汽车去拜访的第一站,是批发商的
办公室。这不仅是你与批发商第一次会面,也只是你们第二次交谈,因为直至这个危机
发生之前,并没有什么事情好说的。你们彼此面色凝重地寒暄了一下,然后批发商把你
带到后面的仓库。批发商说:“我们已有两个月没收到零售商任何一张情人啤酒的订单
了,我感到完全茫然不解。你看,这里还有220卡车量在仓库里啊!”
你们一起断定必然发生了需求暴起暴跌的现象,“消费大众的需求是反复无常的。”
你们共同如此结论。如果零售商留意并警告你们,决不会发生这样的情形。
在回程的路上,你在脑子里构思行销策略报告的措辞,一时性起,你决定在一家沿
途经过的零售商店停一下。运气不错,店主在店里。你自我介绍,零售商的脸上勉强挤
出笑容。他。要一名助手照看店铺,你们两人一同走到隔壁一家速食餐厅,各要了一杯
咖啡。
零售商随手带来店里库存记录簿,打开横放在桌子上。“你不知道几个月之前我多
么想要勒死你。”
“为什么?”
“你看,我们后面的房间还有93箱没卖掉的情人啤酒。依照现在售货的速度,我们
再订购是六周以后的事了。”
六周,你自己盘算着。接着你掏出一具口袋型计算机。如果这个地区每一家零售商
都等待六周再订购啤酒,然后每周只订购几箱,将费时一年或一年以上,才能使批发商
220卡车量的库存大幅下降。你说:“这是一个悲剧。是谁让它发生的……我的意思是
说,我们要如何防止这样的悲剧再次发生?”
在噘了几口咖啡后,零售商说:“那不是我们的错,在音乐录影带开始播出的时候,
我们一直都是卖4箱啤酒。接下来的第二周我们卖掉8箱。”你接着说:“然后销售量迅
速增加。但是为什么现在销售量会减到连1箱都没有呢?”
零售商说:“不,你不了解,需求从来就没有迅速增加过,顾客也从未完全停止购
买。我们仍然每周卖出8箱啤酒。”
“什么?你说什么?需求从来就没迅速增加过?顾客也从来没有完全停止购买?这
怎么可能?到底是怎么回事?”
“但是我们需要的啤酒数量你们不送货给我们。我们只好不断地订货,以确保有足
够的数量来跟上顾客的需要。”
“但是我们都按照必要的速度把啤酒送出去。”
零售商说:“那么也许是批发商搞砸了吧,我在想是否该换供应商了。无论如何,
我希望你举办一次赠券促销或其他办法,让我能够赚回一些本钱。我只想把那93箱啤酒
卖掉一些。”
你拿起咖啡的帐单。回程中,你一路计划辞呈的措辞要怎么写。显然,你将因这项
危机所造成的工人解雇或关闭生产线而受到责备,就像批发商责怪零售商、零售商责怪
批发商,而两者都想要责怪你一样。至少现在还够早,能让你带着些许尊严离开。只要
你能想出一些解释,说明这不是你的错,显示你也是被害人,而不是元凶。