2008年10月27日星期一

Communix操作系统

Communix操作系统最早是两个德国人Marx和Engles开发的(称为Communix基础版,或Communix 1.0和2.0),遵守GPL,它的早期支持者曾经先后组织过两个国际讨论区。
  
  当时少数先进的国家都使用微软的Windows,其他的绝大多数国家要么用DOS,要么作为受Windows主机控制的远程终端,相比之下, Communix支持的机子很少,但移植Communix的努力一直就没停止过。最早是以法国为主的一些人在巴黎、里昂等地移植过,但失败了。此后 Communix分成两条路发展,一条是删除一些不兼容的代码,把Communix移植到Windows运行;反对微软的另一批人在俄国著名程序员 Lenin的领导下,在俄国移植Communix获得成功(第一次发行时称为俄版Communix beta或Communix 3.0beta),一度做到15个主节点、20多个子节点的大规模并行Cluster,并影响到亚洲、东欧、拉美等一些地方。
  
  一个小插曲:在Lenin之后,俄版Communix项目的两个CEO对Communix 3.0正式版出现了意见分歧。占多数的Stalin重视系统安全和运行效率,认为需要在已有的基础上继续优化俄版Communix代码;占少数的 Trotsky认为要把微软干掉,因此必须支持更多的硬件,提供更多的功能。这次分歧以Trotsky失败告终。Trotsky和他的团队后来开发了自己的Communix(称为托版Communix或Communix 4.0),但除了在斯里兰卡短暂地装过一段时间以外,都是小用户。这些用户又加入了很多自己的东西,且互不统一,Trotsky死后没人整理,因此托版 Communix非常乱。而由Stalin的团队打造的Communix 3.0正式版因为过于注重系统安全和效率,导致界面不够友好,娱乐功能少,不能及时更新一些新功能。Stalin的继任者由一个极端走向另一个极端,他们片面追求漂亮界面和娱乐功能,甚至干脆向微软购买这些功能,放弃了系统安全和效率,更不对代码作任何优化,导致系统经常当机和被黑客入侵,最后不得不改装 Windows(据说负责洽谈这次改装项目的经理Yeltsin还拿了不少回扣)。
  
  在俄国成功移植Communix的消息也鼓舞着中国的Communix爱好者们,但早期的努力都不成功。一个姓毛的人说,俄版Communix光是汉化还不行,因为我们的硬件太旧了,短期内也不可能更新,所以必须为我们自己的硬件改写一部分底层代码。这种办法最后成功了,成为低配置计算机移植 Communix的精典范例而载入史册。毛还反对俄版Communix晚期的一些修改,认为这是向微软投降。为了及时清理Communix队伍内部的微软代理人,他发动广大用户学Communix和写Communix,打造一个“六亿神州皆Hacker”的毛版Communix。他的主张遭到开发团队的反对,最后无果而终,但影响持续至今。如今,一个精通毛版Communix的程序员往往被看作是危险的黑客,而那些拿了很多认证的Communix程序员都在跟微软学接轨。但是,代码要开源,人民要编程是无法扭转的世界潮流。
  
  今天,国内外仍有不少毛版Communix支持者。曾有人说尼泊尔的毛版Communix是“盗版”,这就连GPL的基本常识都不顾,堕落到微软版权的泥坑里去了。

烧饼的故事

假设一个市场,有两个人在卖烧饼,有且只有两个人,姑且称他们为烧饼甲、烧饼乙。
    
    假设他们的烧饼价格没有物价局监管。
    
    假设他们每个烧饼卖一元钱就可以保本(包括他们的劳动力价值)
    
    假设他们的烧饼数量一样多。
    
    ——经济模型都这样,假设需要很多。
    
    再假设他们生意很不好,一个买烧饼的人都没有。这样他们很无聊地站了半天。
    
    甲说好无聊。
    
    乙说好无聊。
    
    看故事的你们说:好无聊。
    
    这个时候的市场叫做很不活跃!
    
    为了让大家不无聊,甲对乙说:要不我们玩个游戏?乙赞成。
    
    于是,故事开始了。。。。。。
    
    甲花一元钱买乙一个烧饼,乙也花一元钱买甲一个烧饼,现金交付。
    
    甲再花两元钱买乙一个烧饼,乙也花两元钱买甲一个烧饼,现金交付。
    
    甲再花三元钱买乙一个烧饼,乙也花三元钱买甲一个烧饼,现金交付。
    
    。。。。。。
    
    于是在整个市场的人看来(包括看故事的你)烧饼的价格飞涨,不一会儿就涨到了每个烧饼60元。但只要甲和乙手上的烧饼数一样,那么谁都没有赚钱,谁也没
有亏钱,但是他们重估以后的资产“增值”了!甲乙拥有高出过去很多倍的“财富”,他们身价提高了很多,“市值”增加了很多。
    
    这个时候有路人丙,一个小时前路过的时候知道烧饼是一元一个,现在发现是60元一个,他很惊讶。
    
    一个小时以后,路人丙发现烧饼已经是100元一个,他更惊讶了。
    
    又一个小时以后,路人丙发现烧饼已经是120元一个了,他毫不犹豫地买了一个,因为他是个投资兼投机家,他确信烧饼价格还会涨,价格上还有上升空间,并且
有人给出了超过200元的“目标价”(在股票市场,他叫股民,给出目标价的人叫研究员)。
    
    在烧饼甲、烧饼乙“赚钱”的示范效应下,甚至路人丙赚钱的示范效应下,接下来的买烧饼的路人越来越多,参与买卖的人也越来越多,烧饼价格节节攀升,所有
的人都非常高兴,因为很奇怪:所有人都没有亏钱。。。。。。
    
    这个时候,你可以想见,甲和乙谁手上的烧饼少,即谁的资产少,谁就真正的赚钱了。参与购买的人,谁手上没烧饼了,谁就真正赚钱了!而且卖了的人都很后悔
——因为烧饼价格还在飞快地涨。。。。。。
    
    那谁亏了钱呢?
    
    答案是:谁也没有亏钱,因为很多出高价购买烧饼的人手上持有大家公认的优质等值资产——烧饼!而烧饼显然比现金好!现金存银行能有多少一点利息啊?哪比
得上价格飞涨的烧饼啊?甚至大家一致认为市场烧饼供不应求,可不可以买烧饼期货啊?于是出现了认购权证。。。。。。
    
    有人问了:买烧饼永远不会亏钱吗?看样子是的。但这个世界就那么奇怪,突然市场上来了一个叫李子的,李子曰:有亏钱的时候!那哪一天大家会亏钱呢?
    
    假设一:市场上来了个物价部门,他认为烧饼的定价应该是每个一元。(监管)
    
    假设二:市场出现了很多做烧饼的,而且价格就是每个一元。(同样题材)
    
    假设三:市场出现了很多可供玩这种游戏的商品。(发行)
    
    假设四:大家突然发现这不过是个烧饼!(价值发现)
    
    假设五:没有人再愿意玩互相买卖的游戏了!(真相大白)
    
    如果有一天,任何一个假设出现了,那么这一天,有烧饼的人就亏钱了!那谁赚了钱?就是最少占有资产——烧饼的人!

2008年10月11日星期六

斯德哥尔摩综合症

斯德哥尔摩综合症定义
  斯德哥尔摩综合症(Stockholm syndrome),斯德哥尔摩效应,又称斯德哥尔摩症候群或者称为人质情结或人质综合症,是指犯罪的被害者对于犯罪者产生情感,甚至反过来帮助犯罪者的一种情结。这个情感造成被害人对加害人产生好感、依赖心、甚至协助加害人。
  西方心理学家这样解释斯德哥尔摩综合症:
  人质会对劫持者产生一种心理上的依赖感。他们的生死操在劫持者手里,劫持者让他们活下来,他们便不胜感激。他们与劫持者共命运,把劫持者的前途当成自己的前途,把劫持者的安危视为自己的安危。于是,他们采取了“我们反对他们”的态度,把当局当成了敌人。
斯德哥尔摩综合症的条件
  1、人质必须有真正感到绑匪(加害者)威胁到自己的存活。
  2、在遭挟持过程中,人质必须体认出绑匪(加害者)可能略施小惠的举动。
  3、除了绑匪的单一看法之外,人质必须与所有其他观点隔离(通常得不到外界的讯息)。
  4、人质必须相信,要脱逃是不可能的。
斯德哥尔摩综合症的起源
  1973年8月23日,两名有前科的罪犯Olsson与Olofsson,在意图抢劫瑞典首都斯德哥尔摩市内最大的一家银行失败后,挟持了四位银行职员,在警方与歹徒僵持了130个小时之后,因歹徒放弃而结束。然而这起事件发生后几个月,这四名遭受挟持的银行职员,仍然对绑架他们的人显露出怜悯的情感,他们拒绝在法院指控这些绑匪,甚至还为他们筹措法律辩护的资金,他们都表明并不痛恨歹徒,并表达他们对歹徒非但没有伤害他们却对他们照顾的感激,并对警察采取敌对态度。更甚者,人质中一名女职员Christian竟然还爱上劫匪Olsson,并与他在服刑期间订婚。
  这两名抢匪劫持人质达六天之久,在这期间他们威胁受俘者的性命,但有时也表现出仁慈的一面。在出人意表的心理错综转变下,这四名人质抗拒政府最终营救他们的努力。这件事激发了社会科学家,他们想要了解在掳人者与遭挟持者之间的这份感情结合,到底是发生在这起斯德哥尔摩银行抢案的一宗特例,还是这种情感结合代表了一种普遍的心理反应。而后来的研究显示,这起研究学者称为“斯德哥尔摩症候群”的事件,令人惊讶的普遍。研究者发现到这种症候群的例子见诸于各种不同的经验中,从集中营的囚犯、战俘、受虐妇女与乱伦的受害者,都可能发生斯德哥尔摩综合症经验。以人质为例,如果符合下列条件,任何人都有可能遭受到斯德哥尔摩综合症。
  第1,是要你切实感觉到你的生命受到威胁,让你感觉到,至于是不是要发生不一定。然后相信这个施暴的人随时会这么做,是毫不犹豫。
  第2,这个施暴的人一定会给你施以小恩小惠,最关键的条件。如在你各种绝望的情况下给你水喝。
  第3,除了他给所控制的信息和思想,任何其它信息都不让你得到,完全隔离了。
  第4,让你感到无路可逃。
  有了这4个条件下,人们就会产生斯德哥尔摩综合症。
  警方找来心理学家:三个人质为甚么在最后的性命关头都帮匪徒逃命呢?专家深入研究,结论是:人性能承受的恐惧有一条脆弱的底线。当人遇上了一个凶狂的杀手,杀手不讲理,随时要取他的命,人质就会把生命权渐渐付托给这个凶徒。时间拖久了,人质吃一口饭、喝一口水,每一呼吸,他自己都会觉得是恐怖份子对他的宽忍和慈悲。对於绑架自己的暴徒,他的恐惧,会先转化为对他的感激,然后变为一种崇拜,最后人质也下意识地以为凶徒的安全,就是自己的安全。
  这种屈服于暴虐的弱点,就叫“斯德哥尔摩精神症候群”。一九七四年,美国报业大王赫斯的千金被美国的“新人民军”绑架,最后自己也穿上了军装,参加抢劫银行,感谢恐怖份子。对一个长久的施暴者不杀的恩威,觉得是一种慈悲,不止一两个人质,在地球上,还有长久匍伏在暴政之下的一些古老的民族。他们的苦难太长久,他们已经放弃了自由的希望,不要怪他们为什么甘心自我作贱,他们患了“斯德哥尔摩心理症”。
编辑本段斯德哥尔摩综合症之经典案例
  1977年5月19日,27岁的卡罗离开位于奥勒冈州尤金市的家乡,起程去探访一位住在北加利福尼亚州的朋友。北加利福尼亚州距离奥勒冈州大约有644公里的路程,路上她搭了个便车,车上是一家三口,男主人卡门龙,妻子叫珍尼斯。半途中,她突然被勒令举起双手,蒙上眼睛,卡罗被带到了一个屋子的地窖里。
  卡罗清楚记得卡门龙把她身上的衣服脱去,一条鞭子抽打在她的身上。以后每天,卡罗先被毒打一顿,然后吊在门檐上,脚尖仅仅踮到一点点地面。卡罗刚开始还拼命挣扎,卡罗最初的一段时间完全生活在黑暗之中,卡门龙特意用金属做了一个双层头罩和像棺材一样的箱子,她在里面不能吃、喝、听、看。卡门龙是一个虐待狂,他崇拜古代的奴隶社会,长期沉迷于带有暴力倾向的色情文学,他把卡罗当成自己的俘虏,而自己就是奴隶主。从卡罗的身上,他得到了征服感和占有感的满足。
  在这个小镇,卡门龙夫妇看起来是极为平凡和不起眼的邻居,他们和平常人一样,白天去上班、购物,晚上回家睡觉。卡门龙在当地的一家木材加工厂工作,他们的邻居评价这是很爱安静的三口之家。但是从来没有人了解这一家子的背景。在邻居的眼里,卡门龙是一个沉默寡言的年轻人,他不善和人交友,只喜欢默默一个人干活。卡门龙几年前毕业于当地的一所高中,然后在1973年遇上了当时只有15岁的珍尼斯。珍尼斯患有轻度癫痫病,卡门龙就是看上了她对自己百依百顺的优点。卡门龙认为,只要有男人肯要珍尼斯,珍尼斯一定会为这个男人付出任何代价。
  卡门龙疯起来的时候会把卡罗的头按在水里,直至几乎窒息,或者接通电线,或者用手扼她的脖子。而鞭打是每天的家常便饭,有时卡门龙还拍下卡罗的照片,然后在家里冲洗。每当卡门龙折磨卡罗的时候,他就会变得异常兴奋。卡门龙还想出了千奇百怪的主意来实施自己的虐待欲,包括在地下杂志上剪下一份据称是出售灵魂的契约,强迫卡罗签下。他还在卡罗的阴唇上穿了一个洞,说这是他们的“结婚戒指”,并说希望有一天可以和她生孩子。当确定卡罗不会试图逃跑时,卡门龙决定要和卡罗结婚。自此,卡罗有了更多的自由,她可以每天去洗澡、干家务活,甚至允许她出外慢跑,而卡罗每次总是会回来。一些邻居也开始看到了卡罗,他们都以为她是这家的保姆。
  1980年,卡罗甚至可以到外面打工。实际上已被绑架了三年的卡罗这时有许多机会可以逃跑,但是她并没有这样做。卡罗被囚禁了7年,直到卡门龙的妻子珍尼斯突然良心发现,加上嫉妒卡罗的“得宠”,帮助她逃离了这个地狱。难以置信的是,卡罗在回到自己的家以后,还一直打电话给卡门龙,他哭着企求她回来,而卡罗向他保证决不起诉他。直到卡门龙的妻子珍尼斯离开了卡门龙,找到了一个心理医生,他们聊了将近2个小时,珍尼斯把故事全部说了出来,心理医生报了警。
  1984年11月,卡门龙被正式逮捕。在法庭上,主控官描述了卡门龙最喜爱的一部电影,片中讲述了一个虐待狂绑架了一个年轻的姑娘,并把她变成一个顺从的性奴。这个女孩最终变得忠心耿耿,甚至为她的“主人”牺牲了生命。主控官试图以这种戏剧化的形象,向陪审团证明卡门龙如何深受这部电影的影响,而卡罗也和片中的女孩一样,被卡门龙完完全全洗了脑而丧失了个人的意志。此外,压在卡罗身上的是一种无形的恐惧和枷锁,因为害怕报复,所以她一直不敢逃走。
编辑本段斯德哥尔摩综合症和邪教
  在当今世界中,有一支最可怜的人群,他们是邪教群众。他们多数过着群居生活(现在也有散居的,但是思想受到严格控制),许多人将自己的所有财产捐出,带领一家加入了“教会”。许多人每天劳动十几个小时,超出了常人所能忍受的限度,长期营养不良……
  温馨、亲情、儿女呢喃……早与他们告别。两情相悦、生死相许、柔肠寸断……不啻海外奇谈。理想、前途、梦想……一切与他们无缘。
  他们的目光如待宰的羔羊怯生生,似乎在哀求:“我们没有伤害你们,请你们放了我们,请你们让我们按自己的意愿生活。”他们也极少哭泣,如果哭泣,那是因为他们要离开这个世界了。
  有人说,二十一世纪的瘟疫是恐怖主义,错了!错了!邪教在后面等着哩。它很有耐心。
  由此看来,同样都是精神痴迷状态,然而“进入状态”的途径却不同:斯德哥尔摩症靠“当头棒喝”——一次惊吓就够了,邪教则必须靠日日夜夜的修炼——无休无止地洗脑。除了特殊例子(如弗连克尔等),斯德哥尔摩症来得快去得也快,而邪教却能纠缠你终生。斯德哥尔摩症的潜意识是恋世,邪教的潜意识是厌世。谁的害处大,不言自明。
  1977年,加拿大《蒙特利尔之星报》青年编辑乔希为了解救身陷“创世共同体工程”(CCP,建于美国旧金山)邪教的两名好友〔14〕,“明知山有虎,偏向虎山行”。之前他给自己“打了预防针”,首先阅读大量报刊资料及采访社会学家,了解CCP是韩国富商孙明满“联合教会”招募教徒的一个机构,孙明满是“联合教会”教主,仿照《圣经》编了本五百三十六页的《神旨》供信徒“天天读”,自称“基督再世”,在全世界各地拥有三百万信徒。青年人一旦落入这个组织,就等于陷于无边的苦海中。接着乔希采访CCP受害者的父母,进一步了解到“联合教会”也是一个变相的奴隶企业,他们的孩子“实质上成了为其无偿劳动的奴隶”,一天要劳动近二十个小时,没有休息日,不能顺便外出,失去人身自由,然而所得的报酬仅仅是粗糙不堪的一点食物和拥挤简陋的住处……乔希听得满腔怒火。尽管有了这么多思想“垫底”,可是当乔希进入CCP场部后,仍然被CCP的一切迷住了。他不但救不出朋友,自己差点也陷身其中。如果不是第三拨朋友赶来救出乔希,恐怕他早已签约了;即使这样,当他与CCP人员告别时,还是“差点儿没扑在他们怀里大哭起来”。
  乔希看到了什么?——当他走进CCP总部时,正遇上他们在吃晚饭,一个很大的饭厅,“成百人坐在地板上吃炖白菜”。用不着用什么敏锐目光就能看出,CCP基本群众过着“水深火热的生活”。而CCP不想掩盖这一点,甚至好像在炫耀:“这就是我们的真实生活,可是你们知道为什么我们自愿选择这样的生活?”
  乔希接下去看到——晚饭后,“人们唱了一会儿歌,接着上‘晚课’”。讲课的是一位青年女子(该女子原是心理学教员),大意是,人不能光为自己活着,必须想到全世界。一个人宁可自己饿死也要将食物分给别人吃,这就是CCP的哲学。“我们不能光与自己的父母或亲友共享财富,我们必须与全世界共享。请到我们的布恩威利营地来看看吧!”
  于是乔希去“看看”了。临走前,他充分意识到此行的危险性,便给女友留下了自己签字的声明,请求她在他无法自拔的时候通过法律挽救乔希。
  乔希同几十名志愿者(都是受CCP感召而来的)到了布恩威利训练营地——“新理想天堂农场”。次日凌晨,睡眼惺忪的乔希被人从地板上拉起参加唱“早歌”。一个手拿吉他的男人乐呵呵地对人群喊:“你—们—都—好—吗?”“好——极——了!”人群欢乐地呼喊。唱完早歌后,集训营的“兄弟姐妹”纷纷与新来的志愿者们交朋友,“一男邀一女”、“一女邀一男”把他们都带走了。乔希被一个叫贝西亚的漂亮姑娘拉走了,贝西亚从人群中拖起乔希,亲切地凝视着他:“您多像我的一位朋友呀!”接下来的活动是“交心”。这种交心起先只是互相介绍个人的经历和思想感情,但谈着谈着,到最后不知怎的变成了个人忏悔,变成了痛哭流涕。新来者无不把自己最见不得人的行为和隐私向“兄弟姐妹”袒露,而“兄弟姐妹”则在一旁亲切地安慰他(或她)。
  早饭后是“早课”,贝西亚给新来者讲课,说在这个不平等的世界,要由“我们自己”来创造平等的世界。乔希的心被搅乱了,他觉得贝西亚的话其实也有道理,问题是很少有人去真诚地实行它。
  课后又是谈心,新来者与集训营的“兄弟姐妹”轮换交流。到了晚上,“乔希觉得每一根神经都浸透了集训营所灌输的东西”。他想:“也许他们是对的,也许是应该和他们一起去建立‘一个更好的世界’。”
  第三天下午,营地的一个教师给新来者上“历史”课。老师说了哥伦布的故事后讲:“哥伦布预言他可以远渡重洋的时候,人们讥笑他是‘疯子’;我们比哥伦布更‘疯’,我们要改变整个世界!”乔希与志愿者们热烈地鼓掌,他们的心被深深地感染了,乔希决定留下不走了。但女友按事先约定及时打来了电话:“家人病危,速归!”此刻,乔希似乎被猛击一掌,决定迅速离开。
  然后,乔希的一群朋友来接他,而集训营的“兄弟姐妹”为他列队送行,两军对垒。“贝西亚热烈而温存地拥抱着他,恳求他留下来。乔希望着她清澈的蔚蓝色的眼睛,望着那一张张充满热情的笑脸,差点儿没扑到贝西亚的怀里大哭起来。”
  邪教就是这样,不能刺激,善待它,它是温和的;刺激它,它迅速地变脸,极其危险。
  1978年,加利福尼亚州检察官收到大量信件,揭露生活在圭亚那的人民圣殿教的成员受到非人待遇。检察官将信件签发给司法部,司法部向国务院提交了一份例行公文。国务院打电报给美国驻圭亚那的领事馆,查询这些控告是否属实。领事馆回复:经调查,人民圣殿教并无虐待其成员的现象。
  然而控告的信件仍不断寄来,这种现象引起了加利福尼亚州众议员瑞安的注意。瑞安是人民圣殿教的同情者,他想不如亲自到圭亚那走一趟,写个详细的调查报告,让造谣中伤者无话可说。
  瑞安带着记者团两次采访了位于圭亚那原始丛林中的人民圣殿教乡村公社。
  第一次阳光明媚,他们遇到了鲜花、笑语,第二次便遇到了死亡。
  11月27日下午,两架双引擎飞机从圭亚那首都起飞,向圣殿教的营地飞去。飞机在一个小村镇的简易机场降落。这儿离营地只有几公里远,瑞安一行分别乘两辆卡车,沿着泥泞的道路向营地驶去。
  汽车还没停稳,教主吉姆.琼斯笑吟吟地迎上来,说是早听村民报告,有一个庞大的代表团要来。瑞安简单而客气地对琼斯讲,国内收到了一些控告信,尽管他本人不相信这些控告,但作为众议员,他有责任来了解一下同胞的生活状况。
  琼斯的态度很明朗:欢迎采访。向记者们问候之后,他希望记者“参观所有的设施,随意与人民圣殿教的成员交谈”。
  “这里没有任何限制,你们可以像在家里一样,顺便走走转转。我个人有兴趣要外界了解在我们的公社里人们怎样劳动,我们如何根治我们这个腐朽社会的各种恶习以及在这方面所取得的进展。这里的一切情况你们都可以调查核实……”
  通过遍布在营地各处的喇叭,琼斯通知信徒们暂停手头的工作,全部集中到操场上来。
  整个操场成了欢声笑语的海洋。近千名信徒席地而坐,他们当中有老人,有年轻人,有逗着孩子玩的成年夫妇,很多人手中还拿着干农活或盖房子的工具。尽管衣衫褴褛、面容消瘦,然而人人脸上都洋溢着幸福的表情。望着那一张张兴奋的笑脸,感受那节日一般的欢快气氛,记者们尤其是议员瑞安相信,所谓受尽虐待不过是琼斯对立派蓄意制造的无耻谰言而已。
  散会后,记者们分散开到营地的农场、种植园、养殖场、车间、家庭……随机采访,一般无第三者在场。在几个小时的采访中,记者没有发现一个人回答问题时支支吾吾,或畏缩、害怕。所有的人都赞扬琼斯,说他为了众人的幸福付出了一切。
  前来调查所谓集中营问题的人们,看到的却是一个宁静的村庄,动人的歌词唱出了和平、仁爱和人与人之间的理解和互谅。他们看到的不是什么压迫虐待,而是一大批享有充分公民权利的男女。这些男女选择了孤寂的森林作为他们惟一的城堡,以此来抵御消费、竞争和金钱至上的资本主义拜物社会。
  “夜幕降临了,篝火点燃了,年轻人围着篝火尽情地欢唱。他们歌唱爱情,憧憬着一个美好的世界,在那里没有战争,没有自相残杀。”〔15〕
  瑞安认为没有必有再逗留了,他们广泛采访了公社成员,亲眼看到了各种建设成果——住房、学校、医疗所、食堂、缝纫车间、机械工场、木工车间、锻工车间……“任何人都没有权力禁止成百上千的人自愿生活在丛林里。”他们已经得到了大量的“事实来说话”。不管琼斯和营地成员一再挽留,第二天傍晚,代表团还是登上了卡车,准备离开。此时,数百名教徒弹着吉他唱着歌为他们送行……
  但是——这个世界上有多少个“但是”酿成了悲剧?就在代表团成员即将登上卡车的瞬间,一个营地姑娘乘乱偷偷塞给记者一张纸条。记者迅速将纸条塞入口袋,因为他从姑娘的眼神中看出她十分害怕。车开后,记者打开了纸条,上面的笔迹是颤抖的:“请帮助我们,我们想离开这个地狱。”下面是四个人的签名。这名记者迅速将纸条给瑞安看了。
  瑞安非常恼火:为什么在两天的采访中不说?
  到小村镇后,代表团在镇上过了一夜。镇上的居民第一次向记者们透露,以往曾有营地逃亡者逃到这里,甚至逃到乔治敦(圭亚那首都),但都被武装人员抓回去,以后这些人就失踪了。这一夜大家谁也睡不着觉。
  第二天上午,卡车载上瑞安他们,重新向“琼斯公社”驶去。
  代表团再次来到营地,琼斯感到很意外,他原先以为代表团已经消除了对公社的不信任感,但现只同意瑞安将名单上的人带走。琼斯通过扩音器又一次将所有的人召集在一起,声调“迟疑”,神情“绝望”、“痛苦”。他的近千名信徒与他保持了默契,会场上呈现不祥的寂静。瑞安念了名单上的四个人的名字,四个人战战兢兢走出来,站在记者的身边。人群中逐渐有压抑的哭泣声。当琼斯问还有没有其他人愿意走时,经过一阵沉默,又有一些怯生生的手举了起来,使得愿意回美国的人数增加到了二十个。会场上压抑的哭声越来越大。突然人群中跳出来一个年轻人,用匕首向瑞安的脖子刺去,记者们拦住了他,并把匕首夺下来。琼斯默默地看着这一切,一动不动。经过这场惊吓,代表团带上这二十个人,迅速乘卡车离去。
  以下的事件是众所周知的。琼斯派出一队武装人员乘小型卡车追到机场向即将乘机离开的记者们开火,打死五人,打伤十二人。死者中包括瑞安及递纸条的那位营地姑娘。
  接下来,琼斯带领全体人民圣殿教教徒(包括自己及所有亲信)服毒集体自杀。九百二十三名教徒中,只有两名(都是年轻姑娘)反抗,其余全部如痴如醉,服服帖帖受死。
  死之时,一家人抱在一起,一对对恋人抱在一起,因为他们认为这样子在另一个世界又能相逢。
  人民圣殿教原有严酷的戒律,如青年男女间不能有亲昵行为,夫妻相聚必须报琼斯批准,违犯者受严刑拷打并被捆绑示众,死亡却打破了这些戒律。

2008年10月9日星期四

对美次贷危机的精辟解释

对金融危机最普遍的官方解释是次贷问题,然而次贷总共不过几千亿,而美国政府救市资金早已到了万亿以上,为什么危机还是看不到头?有文章指出危机的根源是金融机构采用“杠杆”交易;另一些专家指出金融危机的背后是62万亿的信用违约掉期(Credit Default Swap, CDS)。那么,次贷,杠杆和CDS之间究竟是什么关系?它们之间通过什么样的相互作用产生了今天的金融危机?在众多的金融危机分析文章中,始终没有看到对这些问题的简单明了的解释。本文试图通过自己的理解为这些问题提供一个答案,为通俗易懂起见,我们使用了几个假想的例子。有不恰当之处欢迎批评讨论。

  一。杠杆。目前,许多投资银行为了赚取暴利,采用20-30倍杠杆操作,假设一个银行A自身资产为30亿,30倍杠杆就是900亿。也就是说,这个银行A以 30亿资产为抵押去借900亿的资金用于投资,假如投资盈利5%,那么A就获得45亿的盈利,相对于A自身资产而言,这是150%的暴利。反过来,假如投资亏损5%,那么银行A赔光了自己的全部资产还欠15亿。

  二。CDS合同。由于杠杆操作高风险,所以按照正常的规定,银行不运行进行这样的冒险操作。所以就有人想出一个办法,把杠杆投资拿去做“保险”。这种保险就叫CDS。比如,银行A为了逃避杠杆风险就找到了机构B。机构B可能是另一家银行,也可能是保险公司,诸如此类。A对B说,你帮我的贷款做违约保险怎么样,我每年付你保险费5千万,连续10年,总共5亿,假如我的投资没有违约,那么这笔保险费你就白拿了,假如违约,你要为我赔偿。A想,如果不违约,我可以赚45亿,这里面拿出5亿用来做保险,我还能净赚40亿。如果有违约,反正有保险来赔。所以对A而言这是一笔只赚不赔的生意。B是一个精明的人,没有立即答应A的邀请,而是回去做了一个统计分析,发现违约的情况不到1%。如果做一百家的生意,总计可以拿到500亿的保险金,如果其中一家违约,赔偿额最多不过50亿,即使两家违约,还能赚400亿。A,B双方都认为这笔买卖对自己有利,因此立即拍板成交,皆大欢喜。

  三。CDS市场。B做了这笔保险生意之后,C在旁边眼红了。C就跑到B那边说,你把这100个CDS卖给我怎么样,每个合同给你2亿,总共200亿。B想,我的400亿要10年才能拿到,现在一转手就有200亿,而且没有风险,何乐而不为,因此B和C马上就成交了。这样一来,CDS就像股票一样流到了金融市场之上,可以交易和买卖。实际上C拿到这批CDS之后,并不想等上10年再收取200亿,而是把它挂牌出售,标价220亿;D看到这个产品,算了一下,400亿减去220亿,还有180亿可赚,这是“原始股”,不算贵,立即买了下来。一转手,C赚了20 亿。从此以后,这些CDS就在市场上反复的抄,现在CDS的市场总值已经抄到了62万亿美元。

  四。次贷。上面 A,B,C,D,E,F....都在赚大钱,那么这些钱到底从那里冒出来的呢?从根本上说,这些钱来自A以及同A相仿的投资人的盈利。而他们的盈利大半来自美国的次级贷款。人们说次贷危机是由于把钱借给了穷人。笔者对这个说法不以为然。笔者以为,次贷主要是给了普通的美国房产投资人。这些人的经济实力本来只够买自己的一套住房,但是看到房价快速上涨,动起了房产投机的主意。他们把自己的房子抵押出去,贷款买投资房。这类贷款利息要在8%-9%以上,凭他们自己的收入很难对付,不过他们可以继续把房子抵押给银行,借钱付利息,空手套白狼。此时A很高兴,他的投资在为他赚钱;B也很高兴,市场违约率很低,保险生意可以继续做;后面的C,D,E,F等等都跟着赚钱。

  五。次贷危机。房价涨到一定的程度就涨不上去了,后面没人接盘。此时房产投机人急得像热锅上的蚂蚁。房子卖不出去,高额利息要不停的付,终于到了走头无路的一天,把房子甩给了银行。此时违约就发生了。此时A感到一丝遗憾,大钱赚不着了,不过也亏不到那里,反正有B做保险。B也不担心,反正保险已经卖给了C。那么现在这份CDS保险在那里呢,在G手里。G刚从F手里花了300亿买下了 100个CDS,还没来得及转手,突然接到消息,这批CDS被降级,其中有20个违约,大大超出原先估计的1%到2%的违约率。每个违约要支付50亿的保险金,总共支出达1000亿。加上300亿CDS收购费,G的亏损总计达1300亿。虽然G是全美排行前10名的大机构,也经不起如此巨大的亏损。因此G 濒临倒闭。

  六。金融危机。如果G倒闭,那么A花费5亿美元买的保险就泡了汤,更糟糕的是,由于A采用了杠杆原理投资,根据前面的分析,A 赔光全部资产也不够还债。因此A立即面临破产的危险。除了A之外,还有A2,A3,...,A20,统统要准备倒闭。因此G,A,A2,...,A20一起来到美国财政部长面前,一把鼻涕一把眼泪地游说,G万万不能倒闭,它一倒闭大家都完了。财政部长心一软,就把G给国有化了,此后A,...,A20的保险金总计1000亿美元全部由美国纳税人支付。

  七。美元危机。上面讲到的100个CDS的市场价是300亿。而CDS市场总值是62万亿,假设其中有10%的违约,那么就有6万亿的违约CDS。这个数字是300亿的200倍。如果说美国政府收购价值300亿的CDS之后要赔出1000 亿。那么对于剩下的那些违约CDS,美国政府就要赔出20万亿。如果不赔,就要看着A20,A21,A22等等一个接一个倒闭。无论采取什么措施,美元大贬值已经不可避免。

  以上计算所用的假设和数字同实际情况会有出入,但美国金融危机的严重性无法低估。

2008年9月18日星期四

Informix查询优化

转载于chinaunix一篇"开发优质高效的INFORMIX数据库应用程序",节选部分内容
查询语句(SELECT)的优化
程序设计中的一个著名定律是20%的代码用去了80%的时间,
在数据库应用程序中也同样如此。数据库应用程序的优化通常可分为两个方面:
源代码的优化和SQL语句的优化。源代码的优化在时间成本和风险上代价很高;
另一方面,源代码的优化对数据库系统性能的提升收效有限。
许多程序员认为查询优化是DBMS(数据库管理系统)的任务,
与程序员所编写的SQL语句关系不大,这是错误的。
一个好的查询计划往往可以使程序性能提高数十倍。查询计划是用户所提交的SQL语句的集合,
查询规划是经过优化处理之后所产生的语句集合。
DBMS处理查询计划的过程是这样的:在做完查询语句的词法、语法检查之后,
将语句提交给DBMS的查询优化器,优化器做完代数优化和存取路径的优化之后,
由预编译模块对语句进行处理并生成查询规划,然后在合适的时间提交给系统处理执行,
最后将执行结果返回给用户。虽然现在的数据库产品在查询优化方面已经做得越来越好,
但由用户提交的SQL语句是系统优化的基础,很难设想一个原本糟糕的查询计划经过系统的优化之后会变得高效,
因此用户所写语句的优劣至关重要。
1、对查询语句进行优化的理由
下列几方面的原因是我们进行SQL语句优化的理由:
◆ SQL语句是对数据库(数据)进行操作的惟一途径;
◆ SQL语句消耗了70%~90%的数据库资源;
◆ SQL语句独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低;
◆ SQL语句可以有不同的写法;
◆ SQL语句易学,难精通。
从大多数数据库应用系统的实例来看,查询操作在各种数据库操作中所占据的比重最大,而查询操作所基于的SELECT语句在SQL语句中又是代价最大的语句。
2、查询语句(SELECT)的优化建议
(1)、合理使用索引:where子句中变量顺序应与索引字键顺序相同。
如:create index test_idx on test(bdh, rq, xz)
   索引字键顺序:首先是保单号bdh,其次是日期rq,最后是险种xz,
所以where子句变量顺序应是where bdh<=“P1234”and rq=“06/06/1999”and xz=“DAA”,
不应是where xz=“DAA” and rq=“06/06/1999” and bdh <=“P1234”这样的不按索引字键顺序写法。
(2)、将最具有限制性的条件放在前面,大值在前,小值在后。
   如:where colA<=10000 AND colA>=1 效率高
   where colA>=1 AND colA<=10000 效率低
(3)、避免采用MATCHES和LIKE通配符匹配查询
通配符匹配查询特别耗费时间。即使在条件字段上建立了索引,在这种情况下也还是采用顺序扫描的方式。
例如语句:SELECT * FROM customer WHERE zipcode MATCHES “524*”
可以考虑将它改为SELECT * FROM customer WHERE ZipCode<=“524999” AND ZipCode >=“524000”,
则在执行查询时就会利用索引来查询,显然会大大提高速度。
(4)、避免非开始的子串
例如语句:SELECT * FROM customer WHERE zipcode[2,3] >“24”,在where子句中采用了非开始子串,因而这个语句也不会使用索引。
(5)、避免相关子查询
一个字段的标签同时在主查询和where子句中的查询中出现,那么很可能当主查询中的字段值改变之后,
子查询必须重新查询一次。查询嵌套层次越多,效率越低,因此应当尽量避免子查询。如果子查询不可避免,
那么要在子查询中过滤掉尽可能多的行。
例如:将下面的语句
select bdh,bf from TabA
where item IN (select item form TabB where TabB.num=50)
改为:select bdh,bf from TabA, TabB
where TabA.item=TabB.item AND TabB.num=50
(6)、避免或简化排序
应当简化或避免对大型表进行重复的排序。当能够利用索引自动以适当的次序产生输出时,
优化器就避免了排序的步骤。以下是一些影响因素:
◆ 索引中不包括一个或几个待排序的字段;
◆ group by或order by子句中字段的次序与索引的次序不一样;
◆ 排序的字段来自不同的表。
为了避免不必要的排序,就要正确地增建索引,合理地合并数据库表(尽管有时可能影响表的规范化,但相对于效率的提高是值得的)。
如果排序不可避免,那么应当试图简化它,如缩小排序的字段的范围等。
(7)、消除对大型表行数据的顺序存取
在嵌套查询中,对表的顺序存取对查询效率可能产生致命的影响。比如采用顺序存取策略,
一个嵌套3层的查询,如果每层都查询1000行,那么这个查询就要查询10亿行数据。
避免这种情况的主要方法就是对连接的字段进行索引。例如,两个表:学生表(学号、姓名、年龄……)
和选课表(学号、课程号、成绩)。如果两个表要做连接,就要在“学号”这个连接字段上建立索引。
还可以使用并集来避免顺序存取。尽管在所有的检查列上都有索引,
但某些形式的where子句强迫优化器使用顺序存取。
下面的查询将强迫对orders表执行顺序操作:
SELECT * FROM orders WHERE (cust_num=126 AND order_num>1001) OR order_num=1008
虽然在cust_num和order_num上建有索引,但是在上面的语句中优化器还是使用顺序存取路径扫描整个表。
因为这个语句要检索的是分离的行的集合,所以应该改为如下语句:
SELECT * FROM orders WHERE cust_num=126 AND order_num>1001
UNION
SELECT * FROM orders WHERE order_num=1008
这样就能利用索引路径处理查询。
(8)、对于大数据量的求和应避免使用单一的sum命令处理,可采用group by方式与其结合,有时其效率可提高几倍甚至百倍。
(9)、避免会引起磁盘读写的rowid操作。在where子句中或select语句中,用rowid要产生磁盘读写,是一个物理过程,会影响性能。
(10)、使用临时表加速查询
把表的一个子集进行排序并创建临时表,有时能加速查询。它有助于避免多重排序操作,而且在其他方面还能简化优化器的工作。
但要注意:临时表创建后不会反映主表的修改。在主表中数据频繁修改的情况下,注意不要丢失数据。
五、 其他措施
如何优化一套数据库应用程序,除了以上所述的措施外,还有一些分析并提高效率的措施在实际工作中亦应注意使用。
(1)、利用set explain on语句来分析数据库查找策略。
当发现某一部分INFORMIX语句运行特别慢又找不到原因时,
可在程序中的查询语句之前加入“set explain on”语句,当程序运行时,
在程序运行的当前目录下产生一个“sqexplain.out”文件,
记录了INFORMIX数据库服务器采用何种优化策略来查找数据库。
在该文件中可以发现查找中有无使用索引条件,估计的查找代价等信息。
(2)、数据库在做dbimport后应运行update statistics语句。
当数据库系统用dbimport实用程序完成数据库装载后,应运行update statistics数据库语句保证系统表中统计信息准确,否则将影响数据库优化器的策略和系统运行性能。
例如:select * from test where bdh matches “PC2002*”
test表在bdh字段上建立了索引,但在数据库运行update statistics前,数据库优化查找策略是按顺序查找而不是按索引查找,严重影响了查找速度。
(3)、经常插入和删除的大表应定期运行update statistics high语句。
  对经常插入和删除的大表应定期运行update statistics语句保证系统表中统计信息准确,保证数据库优化器作出正确的优化策略提高系统运行性能。
(4)、对大文件采用load命令装载入库前可先去掉原有的日志方式和去掉索引,等load装载完成后再重建索引和日志,能大幅提高装载效率,避免出错产生。
◆ 去掉原有的日志方式:ontape -S -N dbname
◆ 删除索引:delete index indexname
◆ 用load 装入数据:load from filename insert into tabname
◆ 重建索引:create index to indexname on tabname(colA,colB,……)
◆ 重建日志:ontape -C -B dbname
(5)、针对ESQL/C编程,还应注意程序中的进程的使用
◆INFORMIX数据库中一个事务处理不要跨多个进程。例如:
  begin work;
  ……
  if(fork()==0){ /*子进程处理*/
  ……
  conmit work; /*(或rollback work;)*/
  ……
  }
这种方式,将引起数据库运行效率很低或处理异常。
◆在应用上引入多进程并发处理,充分利用系统资源,能大大提高处理效率。

2008年9月12日星期五

一句话

德国作家尚保罗说过很耐人寻味的话:
人生犹如一本书—愚蠢的人将它草草翻过,
聪明的人却会将它细细阅读,
为什么呢?
因为聪明的人知道,只能读一次。
当还能拥有时——好好珍惜吧:
爱情如此……
友情如此……
亲情更是如此……
最关心你的人……
别只是永远被你排诸于外……
当失去了,流泪又能做什么。

2008年8月6日星期三

奥运放风

因为奥运,迫于国外的压力,如下网站已经解封:(大家多多宣传,传遍你的每个QQ群)
西方媒体:
路透社 http://cn.reuters.com/
维基百科 http://zh.wikipedia.org/
自由亚洲电台 http://www.rfa.org/mandarin/
美国之音 http://www.voanews.com/chinese/
华尔街日报 http://chinese.wsj.com/gb/index.asp
金融时报中文 http://www.ftchinese.com/sc/index.jsp
香港媒体:
明报新闻网 http://www.mingpaonews.com/
明报月刊 http://www.mingpaomonthly.com/cfm/main.cfm
亚洲时报 http://www.atchinese.com/
亚洲周刊 http://www.yzzk.com/cfm/main.cfm
南华早报 http://www.scmp.com/portal/site/SCMP/
南华早报中文 http://olympics.scmp.com/GCO_Simpchi_Index.aspx
苹果日报 http://www1.appledaily.atnext.com/template/apple/sec_main.cfm?
台湾媒体:
联合新闻网 http://udn.com/NEWS/main.html
中国时报 http://news.chinatimes.com/mainpage.htm
自由时报 http://www.libertytimes.com.tw/index

2008年7月31日星期四

装修注意100条

一、水电
1、防水施工宜采用涂膜防水
2、防水工程应该在隐蔽工程施工完成并验收后做
3、防水施工完成后要做2次蓄水试验
4、浴室防水层应该不低于1.8cm
5、地漏、护阳角、管道等地方要多做一次防水工程
6、地漏要用防臭地漏
7、冷热水管左热右冷
8、水管尽量不要从地上走
9、冷水管在墙表要有1cm的保护层,热水管是1.5cm,因此槽要开得深
10、装PPR管要考虑贴好瓷砖的厚度,这样管子不会露出来
11、烧菜只有几分钟,洗菜要很久,水门一定要买大的
12、龙头和台盆要配套,弄不好就装不上去
13、马桶安装不能用水泥,要用硅胶
14、马桶、龙头安装好后要注意保护
15、买马桶时要考虑马桶的坑距
16、洗衣机要考虑是上排水还是下排水
17、卫生间里最好不要装电话,容易受潮
18、卫生间里的镜子要先考虑好尺寸,否则镜前灯很容易就装高
19、卫生间管道最好留检修孔
20、强电弱电不能装一根管子里
21、左零、右相上接地
22、电源插座距地30cm,开关140cm
23、开关不要装在门背后
24、插座多多宜善
25、大功率电器用16A插座,如空调等
26、暗盒要用好的
27、暗盒一定要和面板配套,否则有可能装不上
28、PVC电线管内电线截面面积不得超过电线管截面面积的40%
29、卧室的空调不要对着床
30、空调洞要考虑向外倾斜,否则雨水会进来
31、灯尽量考虑双控
32、卫生间最好安装防溅插座
33、阳台上要考虑安装插座
34、电线槽要横平竖直排好,以后用起来方便
35、公用烟道要装止逆阀
36、买来的电器一定要好好让工人看说明书
37、说明书和保修卡等资料一定要留好


二、泥工
38、水泥超过出厂期三个月就不能用了
39、不同品种、标号的水泥不能混用
40、黄砂一定要用河砂,用嘴尝味道就知道了
41、墙地砖要浸水两个小时以上,阴干后才能贴
42、墙地砖宁可多买几片,不要少买,否则容易出现色差
43、一面墙上不能有两排非整砖
44、插缝完成后要立即对瓷砖进行清理
45、地面贴大理石(浅色),石材背面要做防水
46、阳角处要割45度角
47、地砖要向地漏处倾斜,否则容易积水
48、墙砖碰到管道口要采用套割的形式,这样看起来还是整块的砖
49、地面大理石宜干铺
50、地砖一定要耐脏,防滑,不要光为了好看
51、亚光瓷砖难清理
52、阳台地砖要注意排水方向

三、木工
53、地龙骨最好用烘干落叶松
54、大的木板材买来后就要锯开风干
55、木工进场先要弹房子水平线
56、花色面板一进来就要买油漆刷一遍,防止被弄脏
57、吊扇不能装在吊顶龙骨上
58、花色面板施工时要预先挑色
59、吊顶的吊筋距离墙边不得大于300mm
60、石膏板要用沉头自攻螺丝固定,进入板面1~2mm,并做防锈处理,不能用枪钉
61、石膏板钉子之间的距离不得大于200mm
62、石膏板要与墙有3mm的缝,以便进行防裂处理
63、石膏板阳角处最好做阳角条保护
64、木门的上下冒头处要刷油漆
65、卫生间门套的底部要刷一下防水
66、房门的大小应该一致
67、家具尽量不要让木工做,做也做不好的
68、橱柜尽量买整体的,木工做不好,设计也不行
69、各种尺寸一定要考虑好,改起来比较麻烦了
70、自己做的移门不要做暗轨道,以后没办法维修的
71、卫生间小则尽量做移门,不要做开门,占地方
72、吃不准的木工活一定要与工头多交流,千万不能让他们自做主张
73、钱在手里是硬道理
74、家里有小孩,玻璃要少用
75、一定要让工人好好看图纸
76、厨房抽屉很有用
77、地板木龙骨平整度是5mm
78、毛地板要铺成30度或45度,板和板之间留2~3mm,缝要错开
79、地板和墙之间要留8~10mm的缝
80、复合地板长度超过8m时要考虑伸缩缝
81、尽量少用中密度板做门套
82、铰链和五金一定要用好的
83、浴霸要装在木龙骨上,不能直接装在吊顶上


四、油漆
84、中、深色乳胶漆施工时尽量不要掺水,否则容易出现色差
85、石膏板接缝处要上绷带
86、墙面有缝隙的地方要上的确凉布比较好
87、原来墙面有的腻子最好铲除,或者刷一遍胶水封固
88、尽量买知名品牌的油漆,装修公司推荐或工头推荐的没名气的尽量不要用
89、天气太潮湿,油漆不要刷
90、油漆、涂料的打磨要等完全干透后进行
91、下一道油漆施工必须等前一道油漆干透后进行
92、金属面的油漆要做防锈处理
93、天气太冷,油漆施工质量会差的
94、门油漆时,要用美纹纸贴住铰链和门锁
95、天太热,要注意通风
96、贴墙纸时,要在墙上刷清油
97、贴墙纸时,要把开关、插座的面板卸下来
98、亮光、丝光的乳胶漆要一次完成,补的容易出现色差
99、踢脚线安装好后要用腻子和乳胶漆补一下缝
100、磨砂玻璃要用报纸保护好

2008年7月30日星期三

有点意思,《大话西游》

世界是巨大的枷锁,你不得不重复自己或是别人的生活。
  记得长辈说过:年轻是一种罪过。他们说我们不成熟。
  真切地为自己的不俗喝彩,在深切的郁闷中,突然就看懂了《大话西游》的开头:一位才华横溢又无法无天的青年(孙悟空),根本不喜欢世人摊派给他的大事业(西天取经)。他尤其受不了师父(唐僧)的唠唠叨叨,可世俗条规(观音)又不放过他。为让他悔悟,心甘情愿地去取经,唐僧和观音达成妥协:让他五百年后重新做人。这真是一个宿命的开始。
  师兄曰:“大学的孩子都是玻璃罐里养蛤蟆,前途光明出路不大。”再贴切不过。大闹天宫无非是大学四年的黄金时光罢了,找到工作走上社会任你盖世的才华浑身的个性也自有翻不出的五指山来压。只有戴上紧箍咒取经去,九九八十一难,做一个奇奇怪怪的佛。你别无选择。
  五百年后的悟空叫至尊宝,在五岳山从事一份很有前途的职业——山贼。命运却要他扮演孙悟空,至尊宝只是个过渡罢了。蜘蛛精来了,白骨精来了,菩提老祖来了,牛魔王也来了……都是棋子,安静地立在命棋盘的中央。
  他的路线是早定好的:(1)一个人给他三颗痣(2)戴上紧箍咒(3)打败牛魔王(4)西天取经。可怜的至尊宝什么都不知道,认认真真做山贼,还爱上了白骨精,想和她结为百年之好。
  所有的事都瞒着他接二连三地发生。
  十年前我绝对不知道今天自己会在XX这所城市里打拼,如今已隐隐感受到那冥冥之中的牵引。可怕的是这还绝不是终点,不到游戏结束我不会知道答案。真相将揭晓,在我临死的瞬间。
  给至尊宝三颗痣的人是紫霞仙子。谁说的:总有一个女孩出现,让男孩最终成为男人。而男人永远都不可能得到她,那简直是一定的。
  非常喜欢紫霞的开场白:“现在我郑重宣布,这座山上所有的东西都是我的,包括你。”那样的气贯云霄,像一个童话故事。
  而现实是:这个世界没有什么属于你,包括你自己。也许我们就是为了创造属于自己的东西才来到这个世上,因为年轻,所以押注于爱情。
  至尊宝拒绝了紫霞,他以为自己还爱晶晶。见到晶晶,他又发现紫霞才是真爱。命运一直在同他开玩笑:至尊宝忽然成了孙悟空,千辛万苦找晶晶又爱上了紫霞。而抉择是那样残酷:要打败牛魔王救紫霞,就必须戴上紧箍咒做回神通广大的孙悟空;而戴上紧箍咒就不能有半点情欲,只有取经去。
  为至尊宝不平:不明白在这样的故事里为何爱情总要成为牺牲品,干嘛不让周星弛携紫霞纤纤小手——走先!爱情是那样美丽而脆弱,无法直面生活的琐碎和坚韧。哪段感情又没有绚烂的瞬间和艰难的长久,在一起就会幸福吗,未必。
  为紫霞叫好,"我的生活我做主",一个仙子为了所爱所恨抛弃一切.虽然结局是她没有猜到了.可是她永远留在了人们的心里.
  至尊宝挖开自己的心,看到了紫霞留在那里的一滴眼泪,毕竟曾经沧海过。五百年又五百年,兜了一个大圈子又回到了原地。人没能战胜命运,而人的尊严却在抗争中得到了肯定,人的情感也必将不朽。“生亦何欢,死亦何苦。”大彻大悟。
  紧箍咒,圈住昔日的梦想,圈住棱角分明的个性。
  成熟是一个很痛的词,它不一定会得到,却一定会失去。
  罗曼蒂克、海誓山盟、生死相许……面对爱情这些都是琐碎,不值一提。爱情就是爱情,不是别的什么东西。能与爱情同在的只有生命,其他都滚一边儿去。
  你爱了,难道还不够吗?
  悟空爱了,不论晶晶还是紫霞,他都要将爱情进行到底。
  晶晶爱了,那个弃她而去的悟空,“不能和喜欢的人在一起,做人又怎会开心。”
  紫霞爱了,“谁拔出我的紫青宝剑,谁就是我的如意郎君。”
  爱一个人需要理由吗?
  孙悟空会爱白骨精,*八戒爱上了蜘蛛精。紫霞爱他至深,因为他拔出了一把剑。
  故事里的人找爱人的理由永远千奇百怪:王子要用水晶鞋才能找到灰姑娘,薛宝钗要那有玉的人来配……可生活永远现实得多,芸芸众生,谁又能许谁一个未来,自欺欺人罢了。
  有理由也好,没理由也罢,可还是要爱。让我去,过程就是结果,无悔。至此后漫漫长路我独行。
  爱无须掩饰无须矫做无须患得患失,只要像紫霞一样说:“让我们立刻开始这段感情吧!先亲我一下。”
  晶晶口中道:“我再也不会为这个男人心痛了。”可还是要为他拔剑与人拼命。
  至尊宝梦中也要叫紫霞的名字七百四十一次,不知道的人觉得紫霞一定欠了他很多钱。
  爱是身不由己.
  紫霞说:“就象飞蛾,明知会受伤也要扑到火上。”“我无力抗拒,向你狂奔去。”无可救药的痴迷。
  爱是奋不顾身。
  至尊宝对晶晶说:“你杀了我吧,我不希望你看我的时候心里却想着别的人。”
  晶晶以为:“都是骗我的。”跳下崖去。
  紫霞把身体挡在至尊宝面前,刺进牛魔王的铁叉里。
  一时间,以后的人生如何,大家都无所谓了。连那样宝贵的性命,也打算随时给爱情作了祭品。一个个一头扎进这情爱苦海,宁愿永生永世不得超生。
  爱是深刻莫测的,。
  三十娘流着泪说:“想我春三十娘貌美如花,却跟这么丑的人有了。”这是多少美丽自负的女子的宿命:心中的他是能文能武翩翩少年,枕边人却鼾声如雷大腹便便。谁敢说多年后眼望自己的丈夫不会有如此感觉,真不知幸福还是心酸。不过还是要为他挺
  身而去无限牺牲,像春三十娘为*八戒放下断龙石与牛魔王同归于尽。
  晶晶爱悟空,至尊宝爱晶晶,紫霞爱至尊宝,“他爱你你爱我我爱他”,千古无解的方程。《白马啸西风》里说:“如果你深深爱着的人,却又深深爱上了别人,能有什么法子?”
  所以紫霞说:“爱一个人原来是那么痛苦。”晶晶找不到那个抛弃她的悟空(象不象殷离),告诉至尊宝:“你经过五百年回来要找的不是我。”至尊宝原以为可以与初恋共度今生,谁知初恋的时候并不懂情爱人生。当年被他推开的紫霞已经悄无声息地抵达他灵魂的最深处,而他却不自知。可紫霞死了:“我的意中人是个盖世英雄,有一天他会踩着七色的云彩来娶我,我猜中了前头,可是我猜不着这结局……”
  没有人猜得中结局,一切随风而去。
  恋爱的时候我们都不懂爱情,懂得爱情后却失去了可以相爱的时光。
  最绝望不是他不爱你或他离你而去,最绝望是你忘记了怎么去爱一个人,你已丧失了爱的能力。
  请记住下面的台词:“曾经有一份真诚的爱情摆在我的面前,但是我没有珍惜。等到了失去的时候才后悔莫及,尘世间最痛苦的事莫过于此。如果上天可以给我一个机会再来一次的话,我会对你说三个字“我爱你”。如果非要把这份爱加上一个期限,我希望是一万年!”也顺便记住这段话的原版,在王家卫的《重庆森林》里:“如果记忆是一个罐头,我希望它永远都不会过期,如果一定要加上一个期限的话,我希望是一万年。”
  至尊宝第一次说这番话是骗紫霞,第二次说已痛不欲生。总有一天,你会在灵魂最温柔的一隅为她重复这段话,为了你们即将封存的一万年。“如果有一天我忍不住问你,你一定要骗我。不管你心里有多么不愿意,你都不要告诉我你从来没有喜欢过我。”
  此情可待成追忆
  只是当时已惘然!
  经历过和正在经历着悟空式的命运和紫霞式的爱情,才发现生命的本质是以最低的姿态出现的。
  英雄?你为什么不问问做英雄的代价......

2008年7月28日星期一

埃舍尔魔镜


埃舍尔出生于1898年的荷兰北部。早于1916年,他已经熟识油耗浮雕印刷术。1917年,他在画家史蒂格文的印刷公司制作蚀刻版画。1919年,在贺林的建筑装饰艺术学院修读建筑学。当时得到美术老师梅斯昆泰的熏陶,对装饰设计艺术产生浓厚兴趣,尤其是木刻版画。自那时开始,埃舍尔的生活便于他的作品连在一起,在致给父母亲的书信中,他时常将工作过程一一道说出来。 埃舍尔多次表达数学上有趣的茂比乌斯带。当一条丝带被扭曲后,将两端连在一起,则丝带的正面和反面是相间地连接起来的。但这种曲面带的现象若由平面图画表达出来则毫不容易,1963年的《红蚁》便是这种题材的作品,也是一件稀有的埃舍尔套色版画。埃舍尔在他的著作中,指出特别偏好两色的外型结构,因为图形的本质需要,他才加上颜色。



1961年的《瀑布》是埃舍尔最后期的奇异建筑式图画,他依据彭罗斯的三角原理,将整齐的立方物体堆砌在建筑物上。这种不合情理的结构亦见于1958年的《嘹望塔》,作品中的建筑物和人物手持的立方体都是怪异的。埃舍尔的作品骤看起来没有什么奇怪的地方,但其实当中蕴藏的幻觉事物是最引人入胜的。参观者每每把他们认识的真实世界,与埃舍尔的虚构幻像相混比较,而产生迷惑。例如作品《瀑布》的流水穿流不息,完全违反地心吸力,所表达的图像是毫不合理的。


埃舍尔把自己称为一个"图形艺术家",他专门从事于木版画和平版画。1898年他出生在荷兰的 Leeuwarden,全名叫 Maurits Cornelis Escher。他的家庭设想他将来能跟随他的父亲从事建筑事业,但是他在学校里那可怜的成绩以及对于绘画和设计的偏爱最终使得他从事图形艺术的职业。他的工作成果直到五十年代才被注意,1956年他举办了他的第一次重要的画展, 这个画展得到了《时代》杂志的好评, 并且获得了世界范围的名望。在他的最热情的赞美者之中不乏许多数学家, 他们认为在他的作品中数学的原则和思想得到了非同寻常的形象化。因为这个荷兰的艺术家没有受过中学以外的正式的数学训练,因而这一点尤其令人赞叹。随着他的创作的发展,他从他读到的数学的思想中获得了巨大灵感,他工作中经常直接用平面几何和射影几何的结构,这使他的作品深刻地反映了非欧几里德几何学的精髓,下面我们将看到这一点。他也被悖论和"不可能"的图形结构所迷住,并且使用了罗杰·彭罗斯的一个想法发展了许多吸引人的艺术成果。这样, 对于学数学的学生,埃舍尔的工作围绕了两个广阔的区域:"空间几何学"和我们或许可以叫做的"空间逻辑学"。

2008年7月25日星期五

没有眼泪

分手了,蓝是个很好的女孩,很漂亮也很温柔,虽然很多朋友说我离开她很傻,可我还是放手了,虽然我很舍不的。
第一天, 她没有起床,把自己用被子捂的严严实实的,她宿舍的人都不敢去安慰她,她一天都没有吃饭,连刷牙洗脸都没有,晚上睡觉的时候我听到她在被子里抽泣。
第二天, 今天她吃饭了,是她的宿舍同学强制性的让她吃的,她的眼眶红红的,我总说她是个爱哭鬼,她每次都噘着小嘴说她不是。
第三天, 今天她穿的很妖艳,走进一家酒吧,喝了好多酒,用一种很诱惑的眼光环视全场,好多人上来搭腔“小姐,你好漂亮啊”。她喝了很多,当一个年纪可以做她爸爸的男人对她说“小姐,我送你回家吧”的时候她把手中的酒全泼在他的脸上,那个该死的老头扬起他的手掌就要打下去的时候,小睦他们来了,救了蓝,这一切我都知道,我就在酒吧的一个角落里看着。
第四天, 今天她早早就起床了,忙忙碌碌一上午,然后把自己关在浴室里好久,当舍友们踹门进去的时候都惊呼到:好干净啊。
第五天, 她开始学习了,其实她原来学习很好,我们开始后受我影响她的成绩也退步了,这也好,转移一下注意力,恢复的也快。
三个月后。。。。她做了学生会主席,她考研了。  
一年后。。。。。在她身边的男人很多,比我优秀的也很多,可她根本没在意过,不过她和凌很好,校园里传他们的关系很暧昧。她只是把他当哥哥,可是流言是挡不住的。三年后。。。。。她要结婚了,新郎是凌,她在写结婚请贴,一张,两张,三张,,,写到第十二张的时候她哭了,趴在桌上眼泪完全抑制不住,我上前一看,所有的喜贴新郎写的都是我的名字。我也很想哭,可是鬼魂是不能哭的,我没有眼泪。三年前,我横穿马路,遇上车祸,手里提着要给她庆祝生日的蛋糕。

2008年7月24日星期四

狗狗智商的排名及测试

排名依次是:

1.边境牧羊犬

2.贵宾犬

3.德国牧羊犬

4.金毛猎犬

5.杜宾犬

6.喜乐蒂犬(谢德兰牧羊犬)

7.拉布拉多猎犬

8.蝴蝶犬

9.洛威拿

10.澳洲牧牛犬

11.威尔斯科基犬

12.迷你型雪纳瑞

13.英国跳猎犬

14.比利时特弗伦犬

15.史其派克犬/比利史牧羊犬

16.苏格兰牧羊犬

17.德国短毛指示犬

18.英国可卡/标准型雪纳瑞

19.布列塔尼猎犬

20.美国可卡

21.威玛猎犬

22.伯恩山犬

23.松鼠犬

24.爱尔兰水猎犬

25.维兹拉犬

26.卡狄肯威尔斯科基犬

27.切萨皮克湾拾列犬/波利犬/约克夏埂

28.巨型雪纳瑞

29.万能埂

30.伯瑞犬

31.威尔斯跳猎犬

32.曼彻斯特埂

33.萨莫耶犬

34.纽芬兰狗/澳洲埂/美国斯塔福郡埂/戈登蹲猎犬/长须牧羊犬

35.凯恩埂/凯利蓝埂/爱尔兰埂

36.挪威猎糜犬

37.猴面埂/丝毛埂/迷你品犬/法老王猎犬/克伦伯长毛垂耳猎犬

38.洛威埂

39.斑点狗

40.贝林顿埂

41.爱尔兰猎狼犬

42.库瓦兹犬

43.萨路基猎犬

44.骑士查里王猎犬/德国刚毛指示犬

45.西伯利亚雪撬犬/比熊犬

46.藏獒/灵堤/英国猎狐犬/美国猎狐犬/格里芬犬

47.西高地白埂

48.拳师狗/大丹狗

49.腊肠狗

50.阿拉斯加雪撬犬

51.沙皮狗

52.罗德西亚背脊犬

53.爱尔兰埂

54.波斯顿埂/秋田狗

55.斯凯埂

56.西里罕埂

57.巴哥犬

58.法国斗牛犬

59.马尔济斯犬

60.意大利灵堤

61.中国冠毛犬

62.丹地丁蒙埂/西藏埂

63.英国老式牧羊犬

64.比利牛斯山犬

65.苏格兰埂/圣伯纳犬

66.牛头埂

67.吉娃娃

68.拉萨犬

69.斗牛獒犬

70.西施犬

71.巴吉度猎犬

72.比格犬/獒犬

73.北京犬

74.血堤

75.苏俄牧羊犬

76.松狮犬

77.老虎狗

78.见生吉犬

79.阿富汗猎犬

2008年7月23日星期三

十大经典佛教名句,,你最中意哪条?

经典一:一切皆为虚幻。
经典二:不可说。   
经典三:色即是空,空即是色。   
经典四:人生在世如身处荆棘之中,心不动,人不妄动,不动则不伤;如心动则人妄动,伤其身痛其骨,于是体会到世间诸般痛苦。   
经典五:佛生五色茎,一花一世界,一佛一如来。   
经典六:前生500次的回眸才换得今生的一次擦肩而过。   
经典七:大悲无泪,大悟无言,大笑无声。   
经典八:苦海无边,回头是岸。放下屠刀,立地成佛。   
经典九:菩提本无树,明镜亦非台,本来无一物,何处惹尘埃。   
经典十:我不入地狱,谁入地狱。

2008年7月22日星期二

常用数据库JDBC连接写法

1. MySQL(http://www.mysql.com)mm.mysql-2.0.2-bin.jarClass.forName( "org.gjt.mm.mysql.Driver" );cn = DriverManager.getConnection( "jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName", sUsr, sPwd );

2. PostgreSQL(http://www.de.postgresql.org)pgjdbc2.jarClass.forName( "org.postgresql.Driver" );cn = DriverManager.getConnection( "jdbc:postgresql://MyDbComputerNameOrIP/myDatabaseName", sUsr, sPwd );

3. Oracle(http://www.oracle.com/ip/deploy/database/oracle9i/)classes12.zipClass.forName( "oracle.jdbc.driver.OracleDriver" );cn = DriverManager.getConnection( "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd );

4. Sybase(http://jtds.sourceforge.net)jconn2.jarClass.forName( "com.sybase.jdbc2.jdbc.SybDriver" );cn = DriverManager.getConnection( "jdbc:sybase:Tds:MyDbComputerNameOrIP:2638", sUsr, sPwd );//(Default-Username/Password: "dba"/"sql")

5. Microsoft SQLServer(http://jtds.sourceforge.net)Class.forName( "net.sourceforge.jtds.jdbc.Driver" );cn = DriverManager.getConnection( "jdbc:jtds:sqlserver://MyDbComputerNameOrIP:1433/master", sUsr, sPwd );

6. Microsoft SQLServer(http://www.microsoft.com)Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver" );cn = DriverManager.getConnection( "jdbc:microsoft:sqlserver://MyDbComputerNameOrIP:1433;databaseName=master", sUsr, sPwd );

7. ODBCClass.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );Connection cn = DriverManager.getConnection( "jdbc:odbc:" + sDsn, sUsr, sPwd );

8.DB2(新添加)Class.forName("com.ibm.db2.jdbc.net.DB2Driver");String url="jdbc:db2://192.9.200.108:6789/SAMPLE"cn = DriverManager.getConnection( url, sUsr, sPwd );

补充Microsoft SQL Server series (6.5, 7.x and 2000) and Sybase 10JDBC Name: jTDSURL: http://jtds.sourceforge.net/Version: 0.5.1Download URL: http://sourceforge.net/project/showfiles.php?group_id=33291

语法:Class.forName("net.sourceforge.jtds.jdbc.Driver ");

Connection con = DriverManager.getConnection("jdbc:jtds:sqlserver://host:port/database","user","password");

orConnection con = DriverManager.getConnection("jdbc:jtds:sybase://host:port/database","user","password");

PostgresqlJDBC Name: PostgreSQL JDBCURL: http://jdbc.postgresql.org/Version: 7.3.3 build 110

Download URL: http://jdbc.postgresql.org/download.html

语法:Class.forName("org.postgresql.Driver");

Connection con=DriverManager.getConnection("jdbc:postgresql://host:port/database","user","password");

IBM AS400主机在用的JDBC语法有装V4R4以上版本的Client Access Express可以在C:\Program Files\IBM\Client Access\jt400\lib找到 driver 档案 jt400.zip,并更改扩展名成为 jt400.jar

语法java.sql.DriverManager.registerDriver (new com.ibm.as400.access.AS400JDBCDriver ());

Class.forName("com.ibm.as400.access.AS400JDBCConnection");con = DriverManager.getConnection("jdbc:as400://IP","user","password");informixClass.forName("com.informix.jdbc.IfxDriver").newInstance();

String url = "jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver; user=testuser;password=testpassword";

Lib:jdbcdrv.zip

Class.forName( "com.sybase.jdbc.SybDriver" )url="jdbc:sybase:

Tds:127.0.0.1:2638/asademo";

SybConnection connection= (SybConnection)DriverManager.getConnection(url,"dba","sql");

补充两个SAP DBClass.forName ("com.sap.dbtech.jdbc.DriverSapDB");

java.sql.Connection connection = java.sql.DriverManager.getConnection ( "jdbc:sapdb://" + host + "/" + database_name,user_name, password)InterBaseString url = "jdbc:interbase://localhost/e:/testbed/database/employee.gdb";

Class.forName("interbase.interclient.Driver");//Driver d = new interbase.interclient.Driver (); /* this will also work if you do not want the line above */Connection conn = DriverManager.getConnection( url, "sysdba", "masterkey" );

HSqlDBurl: http://hsqldb.sourceforge.net/

driver: org.hsqldb.jdbcDriver连接方式有4种,

分别为:

con-str(内存): jdbc:hsqldb.con-str

(本地): jdbc:hsqldb:/path/to/the/db/dircon-str

(http): jdbc:hsqldb:http://dbsrvcon-str

(hsql): jdbc:hsqldb:hsql://dbsrv

2008年7月15日星期二

据说知道10条的人就是知识渊博的

01 : 人类全身上下,最强韧有力的肌肉,竟是舌头。

02 : 张开眼睛打喷嚏是不可能的。

03 : 憋气自杀也是不可能成功的。

04 : 每一次你舔一张邮票的背胶,你就吸收了十分之一卡路里。

05 : 右撇子平均比左撇子多活九年。

06 : 鳄鱼无法伸出它们的舌头。

07 : 北极熊都是左撇子。

08 : 某些狮子可以一天之内交配50次以上。果真是万兽之王呀...

09 : 鸵鸟的眼睛比脑袋大;而海星至今还没演化出脑。

10 : 跳蚤可以跳过它们350倍身长的距离,相当于一个人跳过一个美式足球场。

11 : 一只被摘掉头的蟑螂可以存活9天,9天后死亡的原因则是过度饥饿? 所以还是当场立刻打死好

12 : 长颈鹿没办法咳嗽

13 : 猫头鹰是唯一能够分辨蓝色的鸟类

14 : 一只鲸鱼一分钟心跳只有九下

15 : 巧克力含有一种称为苯基的化学物质,跟你谈恋爱时大脑里头可以制造出来的东西一样

16 : 只有百分之三十的人可以放大缩小自己的鼻孔

17 : 一只牡蛎的性别会由男变女,此后一生中还会变个几次

18 : 艾菲尔铁塔的草稿蓝图摊开来有超过14000平方呎的面积

19 : 在太空中太空人是没办法哭的,因为没有地心引力,眼泪流不出来

20 : 瞎眼的变色龙还是有能力变色来适应周遭环境

21 : 大象死后还会保持站立姿势

22 : 有些昆虫没有头还可以再活上一年

23 : 达芬奇光是画蒙娜丽莎的嘴唇就花上十二年

24 : 玻璃破掉时,玻璃碎片的时速最高可达每小时三千英哩

25 : 乳牛听音乐时可以供应更多牛奶

26 : 下午摘下的玫瑰比清晨摘下的玫瑰更能持久不枯萎

27 : 一只70磅的章鱼可以穿过一个仅一枚银币大小的洞因为他们没有脊椎

28 : 一只鲨鱼可以侦测到水中仅百万分之一含量的血液

29 : 其实, 河马跑得比人快

30 : 据说看完这篇文章的人都会试着放大缩小自己的鼻孔!

内部类

本文将详细的解释内部类 希望和大家交流. 简单的内部类定义形如这样:
class A{ class B{}} 这样的类被称为内部类,又被称为内隐类. 从简单到深入一步一步的分析内部类的特点。
class OuterClass{
static class A{//静态内部类
public A( ){
System.out.println("Test$A !");
}
}
class B{//非静态内部类
public B(){
System.out.println("Test$B !");
}
}
public void disp( )
{
final int a=10; int b;
class C //成员函数中的局部内部类
{ public C( )
{ System.out.println(“in class C a="+a);
//System.out.println(b);
}
}
C c=new C( );
}
}public class Test extends OuterClass
{
public static void main(String args[])
{ OuterClass.A a=new OuterClass.A(); //建立静态内部类对象

B b=new OuterClass( ).new B();

//建立非静态内部类的对象
//注意这个OuterClass().new B();相当于生成一个外部类的对象,然后在利用外部类对象生成内部类对象


OuterClass t=new OuterClass( );
t.disp( );
//通过外部对象调用一个对象方法的形式,新建立了对象C.
}
}

注意在上面的b在运行时会为0,因为是类属性.

class OuterClass
{
static class A { } //静态内部类
class B { } //非静态内部类
public void disp( )
{
class C{ } //局部内部类
}
}

编译后的将产生下面的一些类文件:

OuterClass.class
OuterClass$A.class
OutClass$B.class
OuterClass$1$C.class
记住以下几句话:

1,一个内部类的对象能够访问创建它的外部类对象的所有属性及方法(包括私有部分)。
//可以闭上眼镜,把这个内部类等同于一个类的一个方法,当然就可以访问这个外部类的
//所有方法和属性,私有方法和属性是属于外部类的,当然也就等同于内部类的.

2,对于同一个包中的其它类来说,内部类能够隐藏起来。(将内部类用private修饰即可)
//只有在内部类中,才能定义一个为private类型的class,因为这时编译器已经把这个类看作这个类的成员了,但是在一般使用时,就是所谓的”顶级类时”,不能使用private,只能是public 或者是friendly. 如果要是想保证一个类不产生任何的对象,请在构造函数中,把构造函数声明成private.
3, 内部类可定义在方法中,称为局部内部类,但它只能使用方法中的final常量。
// 定义在一个方法内的类,又被成为局部内部类,这个类只能使用在方法中的final常量,注意,这个常量是在一个方法中的,那么能否使用一个类中的常量呢?
当然是可以的,因为类中的常量在在一个方法中是可见的.
//
如果把一个类写在了一个if中,比如这样:
class A{
int a = 10;
if(a!=10){
class B{
B(){
System.out.println(a);
}
}
}
}
在编译后会有几个错误呢?
首先那个a没有被定义为final,你有一次上了圈套. 类B同样会被生成出来,只是离开了if域就失效了.
4,内部类可以被定义为抽象类
// abstract 类同样可以在内部类中
5, 非静态内部类不能声明本类的static成员
//只有一个静态的内部类,才可以声明一个static成员,
class A{
static class B{

//如果这里不是一个static类,是不可以被声明这个gg方法的.
static void gg(){
int a = 100;
System.out.println(a);
}
}
}

class aa{
public static void main(String args[]){

A.B hh = new A.B();
hh.gg();


}
}
使用内部类可以非常方便的编写事件驱动程序
这个在写事件驱动时,会有很好的解释.
匿名内部类
在某些情况下,我们只需要内部类的一个对象,那么我们就没有必要给内部类命名,没有名字的内部类我们称为匿名内部类
public class A extends Applet
{ public void init( )
{ addMouseListener( new B( ) );
}
class B extends MouseAdapter
{ public void mousePressed(MouseEvent me)
{ showStatus("Mouse Pressed."); }
}
}
用匿名内隐类修改:

import java.applet.*;
import java.awt.event.*;
import java.awt.*;
public class AnonymousInnerClassDemo extends Applet
{ public void init( )
{ addMouseListener( new MouseAdapter( )
{ public void mousePressed(MouseEvent me)
{ showStatus("Mouse Pressed"); } } );
}
}
下面是一个think in java里的例子
public class Pr{

public Concents cont(){
return new Concents(){

private int i= 11;
public int value (){return i;}
};//这里是有一个逗号
}
}
这个Contents是通过默认的构造函数产生的,匿名类的产生也就是一个新类向上转型到父类的过程.
那么如果一个父类没有一个默认的构造函数,应该什么办呢? 那就只有调用一个super()了.
class noname{

Warpping wrap(int x){

return new Warpping(x){

public int value(){

return super.value()*47;
}
};
}
public static void main(String s[]){

noname p = new noname();
Warpping w = p.wrap(10);
}
}

如果在匿名内部类中用到了外部对象 , 就必须保证这个外部对象是final的 。public class PP{

public DD dest(final String dest, final float price){

return new DD(){

private int cost;
{
cost = Math.round(price);
if(cost>100)
System.out.println("Over budget");
}
};
}
publc static void main(String []arg){

PP h = new PP();
DD d = h.dest("haha",11.111);

}
}

2008年7月14日星期一

seam-gen

Seam Gen是什么
Seam Gen(也叫seam)用来生成seam框剪使用的代码,seam.bat(Windows)和seam(Linux/Unix)使用Ant来生成Seam工程和源代码,使用Seam之前必须先安装Ant 1.6(或者更新版本)和支持EJB3的JBoss Application Server(推荐使用4.2.0GA之后的版本。)

seam.bat或者seam命令位于Seam框架的根目录下。

Seam 工程创建和开发命令
setup
使用示例: seam.bat setup
运行向导,设置seam-gen/build.properties文件中的属性,这个命令设置了项目的工作目录,JBoss目录等。另外这个命令也设置了一些其他的关于代码生成的属性,例如model,action和test使用的package,数据库连接等信息。
另外直接编辑seam-gen/build.properties可以达到相同的效果。

create-project
使用示例:seam.bat create-project
根据seam-gen/build.properties文件中的内容,创建工程,包括依赖的类库,ant build脚本,和两个配置文件(开发用和发布用),这个命令也会产生Eclipse和Netbeans所需要的工程文件。使用这个命令建立的工程可以被Eclipse或者Netbeans轻松的引入。

update-project
使用示例:seam.bat update-project
更新项目的类库。

delete-project
使用示例:seam.bat delete-project
删除项目目录,也从JBoss中取消部署,注意这个命令一旦被执行就没有办法回退。

deploy
使用示例:seam.bat deploy
将项目(打包的EAR或者WAR)和数据源部署到JBoss 服务器上。

undeploy
使用示例:seam.bat undeploy
将项目(打包的EAR或者WAR)和数据库从JBoss服务器上删除。

explode
使用示例:seam.bat explode
部署项目(以展开目录的形式,与打包的EAR和WAR对应)和数据源到JBoss服务器上。

restart
使用示例:seam.bat restart
重新启动已经部署的项目(以展开目录的形式)

unexplode
使用示例:seam.bat unexplode
与explode对应,删除服务器上部署的项目(以展开目录的形式)和数据源。

Seam 代码生成命令

new-action
使用示例:seam.bat new-action
创建一个新的java接口和SLSB(Stateless Session Beam),并且连带Seam和EJB3的标注(Annotation)

new-form
使用示例:seam.bat new-form
建立一个Java接口,和SFSB(Stateful Session Bean),并且连带Seam和EJB3的标注(Annotation)。并且建立XHTML的页面,和能够模拟JSF请求的TestNG的测试代码。

new-conversation
使用示例:seam.bat new-conversation
建立一个Java接口和SFSB,并且连带Seam和EJB3的标注(Annotation)。并且添加带有@Begin和@End的方法框架。
new-entity
使用示例:seam new-entity
建立一个带有Seam和EJB3标注的Entity Beam。
generate-entities
使用示例:seam.bat generate-entities
从已有的数据库Schema生成JPA兼容的Entity类。这个命令使用Hibernate的逆向工程工具生成JPA Entity类,Seam EntityHome和 EntityQuery,JavaBean,和Facelets试图(查看,查找,编辑)。

送别

长亭外,古道边,芳草碧连天。
晚风拂柳笛声残,夕阳山外山。
天之涯,地之角,知交半零落;
一觚浊酒尽余欢,今宵别梦寒.。

长亭外,古道边,芳草碧连天。
问君此去何时来,来时莫徘徊。
天之涯,地之角,知交半零落;
人生难得是欢聚,惟有别离多。

2008年7月9日星期三

观沧海

东临碣石,以观沧海。

水何澹澹,山岛竦峙。

树木丛生,百草丰茂。

秋风萧瑟,洪波涌起。

日月之行,若出其中;

星汉灿烂,若出其里。

幸甚至哉!歌以咏志。

龟虽寿

神龟虽寿,猷有竟时。
腾蛇乘雾,终为土灰。
老骥伏枥,志在千里;
烈士暮年,壮心不已。
盈缩之期,不但在天;
养怡之福,可得永年。
幸甚至哉!歌以咏志。
近来喜欢上了曹操的诗歌,是个什么兆头呢?