blogjava-凯发k8网页登录

blogjava-凯发k8网页登录http://www.blogjava.net/chenpengyi/mysql资料,java技术,管理思想,博弈论,ajax,xp极限编程,h.264,hevc,hdrzh-cnsat, 08 apr 2023 23:33:32 gmtsat, 08 apr 2023 23:33:32 gmt60使用future模式完成耗时的背景作业[jdk1.5 concurrency]http://www.blogjava.net/chenpengyi/archive/2007/11/01/157464.htmlbenchenszbenchenszthu, 01 nov 2007 05:11:00 gmthttp://www.blogjava.net/chenpengyi/archive/2007/11/01/157464.htmlhttp://www.blogjava.net/chenpengyi/comments/157464.htmlhttp://www.blogjava.net/chenpengyi/archive/2007/11/01/157464.html#feedback8http://www.blogjava.net/chenpengyi/comments/commentrss/157464.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/157464.html
个人理解
future 模式就是在主线程中当需要进行比较耗时的作业,但不想阻塞主线程的作业时,将耗时作业交由 future 对象在后台中完成,当主线程将来(这个 future 的意义也就体现在这里了)需要时即可通过 future 对象获得已经作业对象。  

这里写了一个简单的例子来说明这种模式,其实写这个例子主要是自己想熟悉一下 jdk5 concurrency 包中 futuretask 的用法了。例子模拟的是一个会计算账的过程,主线程中已经获得其他帐户的总额了,为了不让主线程等待 privateaccount 返回而启用新的线程去处理,并使用 futuretask 对象来监控,最后需要计算总额的时候再尝试去获得 privateaccount 的信息。

 

代码如下:

 1 package  testcallable;
 2
 3 import  java.util.random;
 4 import  java.util.concurrent.callable;
 5 import  java.util.concurrent.executionexception;
 6 import  java.util.concurrent.futuretask;
 7
 8 /**
 9  *  @author  chenpengyi
10   */

11 public   class  sumaccountexample  {
12
13      public   static   void  main(string[] args)  {
14          //  init callable object and future task
15         callable paccount  =   new  privateaccount();
16         futuretask futuretask  =   new  futuretask(paccount);
17         
18          //  create a new thread to do so
19         thread paccountthread  =   new  thread(futuretask);
20         paccountthread.start();
21         
22          //  do something else in the main thread
23         system.out.println( " doing something else here. " );
24         
25          //  get the total money from other accounts 
26          int  totalmoney  =   new  random().nextint( 100000 );
27         system.out.println( " you have  "    totalmoney    "  in your other accounts. " );
28         system.out.println( " waiting for data from private account " );
29          //  if the future task is not finished, we will wait for it
30          while ( ! futuretask.isdone()) {
31              try   {
32                 thread.sleep( 5 );
33             }
  catch  (interruptedexception e)  {
34                 e.printstacktrace();
35             }

36         }

37         integer privataaccountmoney  =   null ;
38          //  since the future task is done, get the object back
39          try   {
40             privataaccountmoney  =  (integer)futuretask.get();
41         }
  catch  (interruptedexception e)  {
42             e.printstacktrace();
43         }
  catch  (executionexception e)  {
44             e.printstacktrace();
45         }

46         system.out.println( " the total moeny you have is  "    (totalmoney   privataaccountmoney.intvalue()));
47     }

48
49 }

50
51
52 class  privateaccount  implements  callable {
53
54     integer totalmoney;
55     
56     @override
57      public  integer call()  throws  exception  {
58          //  simulates a time conusimg task, sleep for 10s
59         thread.sleep( 10000 );
60         totalmoney  =   new  integer( new  random().nextint( 10000 ));
61         system.out.println( " you have  "    totalmoney    "  in your private account. " );
62          return  totalmoney;
63     }

64     
65 }

主线程获得了返回后即完成了总额的计算。

benchensz 2007-11-01 13:11 发表评论
]]>
java concurrency in practice java并发(线程)最佳书籍 【下载】http://www.blogjava.net/chenpengyi/archive/2007/10/18/153977.htmlbenchenszbenchenszthu, 18 oct 2007 10:46:00 gmthttp://www.blogjava.net/chenpengyi/archive/2007/10/18/153977.htmlhttp://www.blogjava.net/chenpengyi/comments/153977.htmlhttp://www.blogjava.net/chenpengyi/archive/2007/10/18/153977.html#feedback60http://www.blogjava.net/chenpengyi/comments/commentrss/153977.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/153977.html 好久没有上来更新过了,最近在学习线程池实现,参考了 tomcat jetty 的线程池的实现后,还是比较佩服他们的实现的,佩服瞬间突然回忆起来以前看过的书里面提到过 jdk1.5 带了 doug lea concurrency 包, doug lea 算是对 java 世界影响最大的人物之一了,其对 java 的贡献绝对超过 james gosling java 世界的“言论”巨头(我认为而已)。这位可爱的老教授为 jdk 中的 collection 和如今的 concurrency 包作出的贡献是不可估量的,同时他还是 dlmalloc 的作者,相信 c 背景的程序员对这个 malloc 的新实现会比较熟悉,还出过关于 java 并发的书,不过这里先不提啦,因为我看的不是这个,而是《 java concurrency in practice 》,这本书是多人合著的,作者中不乏牛人,有 joshua bloch effective java 作者)和 doug lea (不认识的, j )等等(中文中惯用的表示牛人多的说法)。

既然得到了好书就要分享一下,这里不多做介绍了,赶紧把电子版传上来跟大家分享一下。





benchensz 2007-10-18 18:46 发表评论
]]>
两个经典的小故事http://www.blogjava.net/chenpengyi/archive/2007/05/29/120633.htmlbenchenszbenchensztue, 29 may 2007 03:07:00 gmthttp://www.blogjava.net/chenpengyi/archive/2007/05/29/120633.htmlhttp://www.blogjava.net/chenpengyi/comments/120633.htmlhttp://www.blogjava.net/chenpengyi/archive/2007/05/29/120633.html#feedback2http://www.blogjava.net/chenpengyi/comments/commentrss/120633.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/120633.html 在邮箱里找到了以前在网上看过的两个小故事,发上来给大家看看……o(∩_∩)o...,不用留言或者评论,因为不是我写的。

考验

========================
我的头好晕。 
好像烧更高了,我不知道,一直昏昏沉沉的。 
我从山上跌下来的时候,天佑试图拉住我腰间的绳索,可惯性太大,连他也被 一起扯了下来。触到地面的积雪时我昏了过去,隐约感觉天佑把我背进了这个小山洞。无线电摔坏了,我不知道时间到底过了多久,我也不知道我们到底还能不能得救,我的双腿可能 跌断了,一直没有知觉。 
天佑只是轻微的擦伤,他一直照顾着我,偶尔清醒的时候,看见他的脸,和他温柔的 眼睛会让我感觉好些,虽然他也一直愁眉不展。 
"天佑,你说其他人会找到我们吗? " 
他疲惫的笑笑: "慧慧,别想那么多,还疼吗? " 
"脚还是没知觉,就是觉得好冷。 " 
天佑往上爬了一点,把我抱在他怀里。 
"好点吗? " 
"嗯。 "也许只是心理作用,但我还是感觉到一丝温暖。 
"慧慧,我有一个好消息和一个坏消息,你想先听哪个? " 
"坏消息。 " 
"我们的食物快吃完了,还剩下一版巧克力。 " 
"那好消息呢? " 
"雪崩了,洞口被雪封了大半,空气还能进来,我们大概勉强还能爬出去。 " 
"这算什么好消息!我们要死在这里了! " 我的眼泪难过得一下子冲了出来。 
"傻瓜,这是老天在让我们享受二人世界呢。 " 天佑笑了。 
"你还有心情开玩笑。 " 我被他逗乐了,咳嗽起来。 
天佑轻轻拍着我的背,把我搂在怀里。 
"慧慧,等我们回去了,答应我嫁给我好吗? " 
"我们还回的去吗? " 
"当然可以!我们在一起这么长时间了,我都没有正式向你求过婚,也许现在不合时宜,但是我想这个时候你肯定不会拒绝我,所以,答应我,嫁给我好吗? " 
我哭了,但这次是幸福的眼泪。 
"好的,天佑,我答应你。 " 
"乖孩子,为了那一天,你一定不要轻言放弃,好好活下去,答应我,好吗? " 


"好的。 "我拼命的点头,可又一下子头晕了。 
"好了,乖乖的睡一下,我会叫醒你的。 " 
"天佑,我的脚还是没有知觉。 " 
天佑爬到我脚边。 "感觉到我在掐你吗? " 
"没有 "。 
"这样呢? " 
"还是没有。 " 
"这样? " 
"没有。 " 
天佑笑笑: "呵呵,慧慧,你的脚爬山累了,它想好好休息一下。 " "天佑,如果我不能走路了,你还会要我吗? " 
"要!不管你变成什么样我都要! " 
"天佑 ……" 
"好了,慧慧,好好睡,来,闭上眼睛。 " 
我睡了过去。 
再次被摇醒的时候,头晕得更厉害了。天佑拿着巧克力在我面前晃着。 
"慧慧,吃饭咯。 " 
"你吃吧,我不饿。 " 
"不行,好孩子听话。 " 
"可我喉咙干的咽不下东西。 " 
天佑想了想,把巧克力掰下一小块放进嘴里含了一会儿,吻住了我。 
融化的热巧克力顺着他的嘴唇流进我干涸的嘴里,虽然我的味蕾已经麻痹,但我还是隐约感到了一丝甜味。天佑又用嘴融化了一小块雪,送进我口里。就这样一口巧克力,一口雪,天佑把一版巧克力的两小块送进了我的身体里,我的胃隐隐有了些许暖意,但头更晕了。天佑,你不吃吗? "他将剩下的巧克力收了起来。"我喂你的时候也吃过了。 ""你都喂给我了呀! " 我还是会吃进去那么一小点的,你不是连这点都要跟我抢吧,太黑了噢。 呵。我握紧了天佑的手: "你对我真好。 " "所以你要好好活下去呀,乖,继续睡吧 。" 嗯。 " 头好晕。就这样,整块的巧克力天佑都喂给了我,可他自己一点都没吃,我问他的时候,他说洞里还有山鼠,他抓到过两只,可以吃的,他连皮带肉都吃下去了,所以精力充沛。 我知道他在骗我,可他的精神还真的不错,大概真的是我太虚弱了吧,头晕的我快连 说话的力气都没有了。 于,我们听到了直升飞机的轰鸣,天佑努力的探了身子出去,说了些什么, 虚弱的已经快不行了,甚至连他喊的话都听不清楚。轰鸣远走了。 慧慧,醒醒,慧慧。 " 我努力睁开眼。 你听到了吗?直升飞机回去取救援设备了。 " "我们终于得救了吗? " 天佑笑了。 "对不起,慧慧,他们只能带一个人走。所以,是我得救了。 " 我一下子没反应过来他说什么。天佑似乎看出了我疑惑的表情。 "我告诉他们,这里只有我一个人。谢谢你,慧慧,没有你我绝对撑不到现在。 " 还是没明白他在说什么,但我看见他正拿着瑞士军刀一下一下刺入我的腹 腔。"慧慧,你知道,物资是不够的,我也不知道我们究竟什么时候能得救,所以你不用感谢我把所有的食物给你,如果你不活下去我就没有食物和生还下去的可能了。但是现在既然我已经获救,那你的使命也就结束了,我要谢谢你。 " 天佑将瑞士军刀最后一次重重的插入我的身体,慢慢的旋转着。他吻了我的额头。"慧慧,下辈子再娶你,别了,我爱你。 " 说完他拔出刀子往外爬去。 
我鼓起最后的力气掀开盖着我下半身的睡袋。 膝盖以下只剩一堆挂着血肉的森森白骨……

======================================================================

我死后,你还会娶别人吗?

======================================================================
“倘若有一天我死了,你会再娶其它女人么?”我记得问这话是在我与君的结婚一周年纪念日上。那时,他正忙着与锅里的鲜鱼对战,根本无暇理睬我。 “啊  
?哦,也许会吧!这得等你真死了才能说。”“什么?”我佯怒,从他身后抱住他:“你就这么讨厌我啊?” 

君笑,关上火转身抱我:“傻丫头,我答应过你不骗你。如果我说不娶可我后来娶了,不就骗了你么?” 

我也笑,躲在他怀里,快乐得像只小鸟“好吧,准你娶她。不过,不许她碰我那些漂亮娃娃。”“为什么?” 

“因为,那是你送我的爱的信物,死后啊,我要在那儿看着你!”“哇!好恐怖啊!”君大笑地抱紧我“傻孩子,你的命啊,长着呢!” 

现在,我就活在这堆娃娃里,我想象不到短短十天,我便真的与君阴阳相隔。 

我是死于车祸的。一切来的那么突然。那时,我正盘算着周末我们要去哪儿旅行,那车就飞速冲来了。其实,没什么很大的痛楚,清醒时,我看到人们七手八脚的把我抬上救护车,只觉得好笑,因为我知道那是多余的。意识到自己的死亡,我一点也不难过。我一向没什么朋友,只有君。现在仍可以陪着君,看着君就行了。管他是什么样的形态呢。想到这儿,我便大步走回家。 

家门前,我犹豫了。我记得以前听说魂是可以越墙而入的。我试了试,居然成功了!这令我兴奋不已,又来回再试了几次。嘿,做魂也没什么不好的。起码钥匙省了! 

进到屋内,我逛了一圈,君还没有回来。突然想起,这是上班时间。于是又在屋内不停的溜弯儿。欣赏我们的房子是我生前最爱做的事儿。当然,死后也不例外。虽然,这间屋子,我已再熟悉不过。因为,在这儿,我渡过了我一生中最幸福最快乐的375日。至今,我还记得结婚那天,君在家门前望着我的表情。他说:“丫头,以后这就是我们的家了!我们的!”是啊,我和君的。从那天起,我便不停装扮它,直至今天,我再也无法为它效力为止。 

我看到屋内的粉红色窗帘,卡通的大地毯和那堆了大半个卧室的娃娃。突然想起君每每抚摸我头发轻声说:“你真是个孩子。”时,那无奈又怜爱的样子。是啊,能把家弄像个玩具店,我不是孩子又是什么呢?只可惜再也看不到君在说这话时的表情了。 

我叹了口气,回到娃娃堆坐下。不知不觉中竟睡着了。 

醒来时,已是天黑。我感到了一丝寒气。使抱怨起君竟然忘了把我抱回暖烘烘的被窝。这才猛然想起,我已从君的生命中消失了,而且是很彻底的。我起身,开始绕着屋子找他,最后是在卫生间里找到我心爱的君的。 

他趴在浴缸上,旁边摆着许多空酒瓶,地上被吐得乱七八糟,一股刺鼻的味儿飘散在空气中。我不悦地捏着鼻子,蹲下来看他。竟发现他脸上挂着泪痕。天!我的君会哭?!那个坚强无比的他竟然哭了!多不可思议啊!我试图拉起他,可手却穿越了他的身体!我试了一次又一次,在筋疲力尽后,我决定放弃。头一次,我知道自己是这么无能的。在我的君如此近时,我连拉他一把的能力都没有。这样的妻子要来何用呢? 

我轻轻吻了吻他的嘴唇,在他的身边坐下。除了这样陪他,我想不到还有什么其它的办法。 

“丫头,不要走,不要……”我听见君在叫我。我知道他是说醉话了。我笑:“傻瓜,我这么爱你,怎会舍得离你而去呢?” 

一个月后,日子渐渐恢复正常。我的君仍旧准时准点的上下班,只是不再爱笑;而我,也依旧是那个快乐的小主妇,乖乖的呆在家陪我的娃娃们,只是君不曾发觉;我们还是那样过着属于我们两个人的日子,屋内的一切都没有改变过。直到有一天,玲的出现。 

玲按门铃时,君正在书房里加班做他的计划书,我则在一旁傻呵呵的陪他。我想不出在夜里这个时候会有什么人来访?走到客厅,便看到性感的玲和呆呆的君。 

这是我第一次见玲。她留着长长的卷发,穿着黑色的性感套装,化了很浓的妆。四周全是她身上散发出的香水味儿。我不禁低头看了看自己身上的娃娃裙和兔兔拖鞋。和她比,我是名符其实的孩子。 

“我搬来了。”听到玲这样说,我才注意到她身边的行李袋。搬来?住哪儿?我和君的家么?我奇怪的望着她。 

“别胡闹,你给我回去”君似乎在发火。我头一次看到君发火的样子,很凶。我害怕。 

“凭什么?你老婆都死了,难道我们现在不应该正大光明了吗?”玲笑得很灿烂,可我觉得很冷“瞧!你老婆死得多好啊。多会挑时间啊。连离婚都省得你和她说了……”“啪!”我看见君打了玲一巴掌。我惊呆了!君怎么会打人呢?他平时连骂一声都不曾有过的。如此温柔的君竟然会打人?他还有多少是我不曾知道的?? 

“哼!现在打我?!以前在我床上对我甜言蜜语的日子,你忘记了是吧!你可别忘了,你是答应过我和你老婆离婚娶我的!……”离婚?!君想和我离婚么?他不爱我?他竟要娶玲?我怎么一点也不曾发觉?玲再说的话,我已一个字都听不进去。我跌跌撞撞的走回我的娃娃堆。抱着它们。我觉得鼻子酸酸的,一股热浪从眼里涌了出来。 

原来,灵魂也会流泪啊!

玲就这样搬进了我和君的家,像个女主人一样睡在我和君的床上,不同的只是君搬去了客厅。她换掉我的卡通地毯和粉红窗帘。拿走我衣橱里的娃娃裙和鞋架上的兔兔鞋。她把它们通通扔到垃圾箱里。 

君什么也不说,只默默地把它们捡回来,洗干净,再放进我深爱的娃娃堆里。然后连续不断的对我说:“丫头,对不起,我对不起你啊!”我望着君,心疼的掉泪。可我不愿原谅他!我无法接受我和君的生活中,出现一个莫明其妙的玲。她像个女皇一样在我和君的屋子里指手划脚,把我一点点挤出去;把我曾精心装扮的小屋变成她的家。尤其让我无法忍受的是,君的欺骗。他为了玲欺骗我!他说过不会骗我的,连我死后的事儿都不愿意欺骗的君,为什么会在我还在人世时,就和玲在一块儿呢?一瞬间,我与君有过的幸福日子显得那么苍白无力。 

“这堆垃圾给我扔了!”玲指着我的鼻尖对君说。我看了看四周,明白了,她指的是我的宝贝娃娃。这些都是君送我的。是我们每一次快乐的纪念。第一次约会,第一次做饭,第一次接吻……我们都异常珍惜。还说以后要留给孩子看,告诉他们爸爸妈妈有多么幸福,可如今……天!我看到了什么?君在收拾它们!他要扔掉它们么?他忘了我说过我活在娃娃堆里么?他真的不要我了?一点也再想念他的丫头?我拼命的摇头,却阻止不了他的动作。 

君把娃娃收做一堆时,玲很满意地笑了:“快点,扔了它们,我们得忘了过去,开始新的生活了。”君看了看玲,并不理睬她。只很温柔的在每个娃娃的脸上都亲上一口,像以前亲吻我那样。“玲,你走吧!我求你了!离开我和丫头的家!我不会扔了它们,也不能扔了它们!我的丫头活在里面,她在看着我啊!”玲愤怒的望着君:“你说过,你爱我,你是我的!”“不是,不是!对不起,我骗了你,骗了丫头,更骗了我自己!”君失声痛哭“我只爱丫头,只爱她一个啊!任何人都代替不了她,可是,我明白的太晚了……”我奔上前,像以前一样抱住他的后背。泪水横飞,我不能不原谅他啊! 

不久,玲搬走了。像来时那样匆忙。连声再见都没和君说。我想她是伤心的,我看着她忧郁的背影想为她做些什么,可有心无力。我不恨她,只希望她以后一切都可以很好。就像我不恨君一样,我知道爱一旦深入骨髓,就不懂怎么会恨了。 

玲走后,又恢复以前宁静而冷清的日子。君把我们的屋子恢复原样。没事儿时便捧着我的照片发呆。要不就一夜接一夜的不停工作。他把自己封闭起来。看着他日渐清瘦的脸庞,我心里说不出是什么滋味儿。 

欣便是在那时候闯入了君的生活。 

欣与君的相识平淡无奇。那日,欣刚搬到隔壁的空屋,可保险丝断了,便来向君借。 

我知道君看到欣时愣住了,因为我也愣住了。欣与我长得出奇的像。只是眉宇间多了份成熟。我看到君抱紧欣叫她丫头时,欣莫名又尴尬的表情。忍不住大笑。我的君竟然也有此等愚笨的时候!从此,欣和君便开始了似有似无的交往。 

欣是个很温柔的女人。与创造性幼稚的我是完全不同的。她常在我和君的小屋出入,为君收拾房子,做出可口的饭菜,但从不过夜。我就那么每天坐在娃娃堆里,看着她擦拭我的照片,打扫娃娃身上的灰尘,看她不厌其烦的听君讲我和他的故事…… 

我打了个很大的哈欠,我想我呆乏了,或许应该换个地方。 

君和欣的婚礼是那么自然。我甚至没有一丝嫉妒。婚后的欣像以前一样,她没改变房中任何一点小摆设,包括我那堆曾被玲称为垃圾的娃娃们。望着她每日奔波忙碌的样子,我觉得像是一幅温馨而美丽的画。突然间发现我已是那么多余了。可是,我不愿离开君。 

欣怀孕了。这令君兴奋不已。初为人父的喜悦是无法言语的。他像当初娇惯我一般宠着欣,甚至有过之而无不及。 

我想欣是幸福的。可我又该如何呢?这个的问题一直困惑着我,直到那日。 

那天,君外出了。我看到欣站在娃娃堆前摸着肚子自言自语“宝宝,你会很幸福的,因为你有两个妈妈疼。”然后,她摸了摸娃娃的脸蛋:“丫头,你也很疼我们的宝宝的。对么?”我明白了,欣不是自言自语,而是在对我说。 

我释然了。站起来,伸了个大懒腰。窗外明媚的阳光透过玻璃照在我的身上,暖洋洋的。我知道,宝宝只会有一个妈妈疼。便起身离开我心爱的娃娃们,我相信,很快会再见的。 

数月后,君与欣生下一漂亮的女儿,取名叫丫头。 



benchensz 2007-05-29 11:07 发表评论
]]>
mysql varchar类型的改变http://www.blogjava.net/chenpengyi/archive/2007/03/20/104932.htmlbenchenszbenchensztue, 20 mar 2007 05:14:00 gmthttp://www.blogjava.net/chenpengyi/archive/2007/03/20/104932.htmlhttp://www.blogjava.net/chenpengyi/comments/104932.htmlhttp://www.blogjava.net/chenpengyi/archive/2007/03/20/104932.html#feedback0http://www.blogjava.net/chenpengyi/comments/commentrss/104932.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/104932.htmlmysql数据库的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定)。
在mysql5.0以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532个字节的数据,起始位和结束位占去了3个字节,也就是说,在4.1或以下版本中需要使用固定的text或blob格式存放的数据可以使用可变长的varchar来存放,这样就能有效的减少数据库文件的大小。

ps:如果在varchar中你已经设定了数据类型的长度,eg. varchar(4),这时对varchar列中可以写入4个字节的字符,eg. "abcd",如果写入4个以上的字符,默认情况下会截去后面的部分,eg. 输入"abcdeg",实际存储到数据中的是"abcd"。

benchensz 2007-03-20 13:14 发表评论
]]>
利用jdk1.5的工具对远程的java应用程序进行监测http://www.blogjava.net/chenpengyi/archive/2007/03/14/103771.htmlbenchenszbenchenszwed, 14 mar 2007 05:50:00 gmthttp://www.blogjava.net/chenpengyi/archive/2007/03/14/103771.htmlhttp://www.blogjava.net/chenpengyi/comments/103771.htmlhttp://www.blogjava.net/chenpengyi/archive/2007/03/14/103771.html#feedback4http://www.blogjava.net/chenpengyi/comments/commentrss/103771.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/103771.html

   最近需要在
linux 系统上对 java 的应用系统进行监测,就用到了 jdk1.5 附带的工具 jps java virtual machine process status tool ,查看 jvm 进程状态的工具), jstat(java virtual machine statistics monitoring tool ,运行数据监测工具 ) 以及 jstatd jstat daemon 程序,利用 rmi 进行远程监控)。(建议可以使用 jvmstat 包,可视化的 jstat 监控工具,可以在 下载)

 

部署过程描述如下:

 

1.       在需要监测的机器(我这里是 linux 机器)部署相关应用:

a)         在你需要进行监测的机器上安装 jdk1.5 (狂晕一阵子),别倒下(这个部分就不多说了,因为如果这里还要解释的话,那我就晕了)。

b)        正确设置 java 的运行环境。

c)         启动 jstatd 进程。

命令如下: ./jstatd -j-djava.security.policy=all.policy

一般来说呢,这里是会出现问题的,那就是 permission 的问题了,还好, sun 的网站上给了相关的解决方法,方法如下,在 jdk/…/security/ java.policy 文件中添加下面的代码:

grant codebase "file:${java.home}/../lib/tools.jar" {

permission java.security.allpermission;

};

然后重新启动 jstatd 进程。

d)        完了,别让人乱动就好了,我经常是不小心就按 ctrl c 把程序关闭了。

2.       在客户端(监控者使用的机器)的操作:

a)         使用 jps 查看远端机器有哪些 jvm 进程在使用当中,命令如下:

jps 172.25.1.24 // 远端机器的 ip 地址或名称

屏幕输入如下:

13686 jstatd

14115 xxxjavaserver

15117 jserver

b)        从上面可以看到远端机器的 jstatd 进程已经启动起来了。我们就可以使用 jstat 对相关进程的具体情况进行查看。

jstat 命令用法如下:

jstat -

解释如下:

option 包括以下选项:

-class

-compiler

-gc

-gccapacity

-gccause

-gcnew

-gcnewcapacity

-gcold

-gcoldcapacity

-gcpermcapacity

-gcutil

-printcompilation

 

vmid 就是 jps 查看到的进程 id ,如上 jserver 的进程 id 15117

interval 是时间间隔,单位为毫秒, 1000 就是一秒。

count 就是需要查看的次数。

 

例子假设我们需要查看 172.25.1.24 机器 vmid 15117 gc 的情况,可以输入下面的命令:

jstat -gc 15117@172.25.1.24 1000 3

然后你能看到四行信息(一行为 title ,剩下的就是你要的信息了),仔细看看就可以发现很多信息的了(如果不明白,可以问我, 6-6 )。

c)         那么下面就开始配置可视化的监控包, jvmstat ,下载好了后,解压到任意目录。

执行 visualgc ,然后就可以看到可视化的监控窗口。不过,好像现在只提供 linux 下的 visualgc 的启动脚本,所以在 windows 下或者 linux 最好使用我下面提供的方式:

linux 下:

/usr/java/jdk1.5/bin/java –xbootclasspath/p:” /usr/java/jdk1.5/lib/tools.jar” –jar jvmstat/jars/visualgc.jar vmid@server

windows 下也一样,就是改改 jdk 的路径就好了。

成功执行后你就能看见一个 java 的监视窗口(样子还蛮专业的),这个时候就 可以开始监视了。



benchensz 2007-03-14 13:50 发表评论
]]>
使用javacc做语法分析[转]http://www.blogjava.net/chenpengyi/archive/2007/01/30/96812.htmlbenchenszbenchensztue, 30 jan 2007 15:37:00 gmthttp://www.blogjava.net/chenpengyi/archive/2007/01/30/96812.htmlhttp://www.blogjava.net/chenpengyi/comments/96812.htmlhttp://www.blogjava.net/chenpengyi/archive/2007/01/30/96812.html#feedback3http://www.blogjava.net/chenpengyi/comments/commentrss/96812.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/96812.html阅读全文

benchensz 2007-01-30 23:37 发表评论
]]>
mysql新强大特性——事件,mysql dba必看!http://www.blogjava.net/chenpengyi/archive/2006/10/29/77931.htmlbenchenszbenchenszsun, 29 oct 2006 14:05:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/10/29/77931.htmlhttp://www.blogjava.net/chenpengyi/comments/77931.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/10/29/77931.html#feedback3http://www.blogjava.net/chenpengyi/comments/commentrss/77931.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/77931.html mysql的事件特性是一个相当有用的特性,特别对于mysql单机和集群的数据库管理员dba,相信是dba必定要掌握的知识。也肯定当mysql的dba学习完了这个特性后,将这个特性用好,可以给自己省下60%的工作量。
正文在mysql栏目中,已经做成pdf供大家下载了,地址是:
http://www.blogjava.net/chenpengyi/articles/77933.html

下面是一些内容节选:

设定事件并运行

我们从mysql downloads page上下载了mysql 5.1 beta版,安装到xp上,启动mysql服务,用root用户打开mysql客户端:

mysql> use test;

database changed

mysql> create table test.t (s1 timestamp);

query ok, 0 rows affected (0.11 sec)

 

mysql> create event e on schedule every 1 second do

       insert into test.t values (current_timestamp);

query ok, 1 row affected (0.00 sec)

 

mysql> set global event_scheduler = 1;

query ok, 0 rows affected (0.00 sec)

 

/* 3-second delay */

  mysql> select * from test.t;

---------------------

| s1                  |

---------------------

| 2006-04-05 15:44:26 |

| 2006-04-05 15:44:27 |

| 2006-04-05 15:44:28 |

---------------------

上面是mysql “事件”特性的“hello world”例子,给大家演示的是每隔一秒钟向行内插入一条时间的记录。



benchensz 2006-10-29 22:05 发表评论
]]>
使用limit参数优化mysql查询http://www.blogjava.net/chenpengyi/archive/2006/07/29/60679.htmlbenchenszbenchenszfri, 28 jul 2006 17:09:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/07/29/60679.htmlhttp://www.blogjava.net/chenpengyi/comments/60679.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/07/29/60679.html#feedback4http://www.blogjava.net/chenpengyi/comments/commentrss/60679.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/60679.html 优化 mysql 查询的 limit 参数

 

我们在做一些查询的时候总希望能避免数据库引擎做全表扫描,因为全表扫描时间长,而且其中大部分扫描对客户端而言是没有意义的。那么在 mysql 中有那些方式是可以避免全表扫面的呢?除了我们大家很熟悉的通过使用索引列或分区等方式来进行查询的优化之外还有那些呢?

前些天看了一个老外写的程序,在 mysql 查询中使用了很多 limit 关键字,这就让我很感兴趣了,因为在我印象中, limit 关键字似乎更多被使用 mysql 数据库的程序员用来做查询分页(当然这也是一种很好的查询优化),那在这里举个例子,假设我们需要一个分页的查询 ,oracle中一般来说都是用以下 sql 句子实现:

select * from

( select a1.*, rownum rownum_

from testtable a1

where rownum > 20)

 where rownum_ <= 1000

       这个语句就能查询到 testtable 表中的 20 1000 记录,而且还需要嵌套查询,效率不会太高,看看 mysql 的实现:

       select * from testtable a1 limit 20,980;

       这样就能返回 testtable 表中的 21 条到( 20 980 =) 1000 条的记录。

       实现语法确实简单,但如果要说这里两个 sql 语句的效率,那就很难做比较了,因为在 mysql limit 选项有多种不同的解释方式,不同方式下的速度差异是很大的,因此我们不能从这语句的简洁程度就说谁的效率高。

       不过对程序员来说,够简单就好,因为维护成本低,呵呵。

       下面讲讲这个 limit 的语法吧:

       select ……. --select 语句的其他参数

[limit {[offset,] row_count | row_count offset offset}]

这里 offset 是偏移量(这个偏移量的起始地址是 0 ,而不是 1 ,这点很容易搞错的)顾名思义就是离开起始点的位置,而 row-count 也是很简单的,就是返回的记录的数量限制。

eg. select * from testtable a limit 10,20 where ….

这样就能使结果返回 10 行以后(包括 10 行自身)的符合 where 条件的 20 条记录。

那么如果没有约束条件就返回 10 29 行的记录。

       那这跟避免全表扫描有什么关系呢? 下面是 mysql 手册对 limit 参数优化扫描的一些说明:

在一些情况中,当你使用 limit 选项而不是使用 having 时, mysql 将以不同方式处理查询。

l          如果你用 limit 只选择其中一部分行,当 mysql 一般会做完整的表扫描时,但在某些情况下会使用索引(跟 ipart 有关)。

l          如果你将 limit n order by 同时使用,在 mysql 找到了第一个符合条件的记录后,将结束排序而不是排序整个表。

l          limit n distinct 同时使用时, mysql 在找到一个记录后将停止查询。

l          某些情况下, group by 能通过顺序读取键 ( 或在键上做排序 ) 来解决,并然后计算摘要直到键值改变。在这种情况下, limit n 将不计算任何不必要的 group

l          mysql 完成发送第 n 行到客户端,它将放弃余下的查询。

l          limit 0 选项总是快速返回一个空记录。这对检查查询并且得到结果列的列类型是有用的。

l          临时表的大小使用 limit # 计算需要多少空间来解决查询。

这里还有一些自己写的例子,明天再写上来……

benchensz 2006-07-29 01:09 发表评论
]]>
blizzard【暴雪】风云录【转载】——星际争霸、魔兽和暗黑缔造的奇迹http://www.blogjava.net/chenpengyi/archive/2006/07/24/59902.htmlbenchenszbenchenszmon, 24 jul 2006 15:23:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/07/24/59902.htmlhttp://www.blogjava.net/chenpengyi/comments/59902.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/07/24/59902.html#feedback0http://www.blogjava.net/chenpengyi/comments/commentrss/59902.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/59902.html 在网上看了一篇关于blizzard暴雪团队的文章,觉得不错,拉来给大家看看。
[引子]


  早饭后,弗兰克·罗伯兹像往常一样一路小跑的来到自己的邮箱前去收取自己的信件。这次他依旧是满载而归,顺手拆开了其中的一封,是一位出版商写给他的。
  “我知道也许我犯了错,也许是十年以来最大的错,但是,我仍然要拒绝你的作品。”
  罗伯兹手里捏着这张信纸,茫然的站在院子中,他不知道还是不是应该拆开剩下的信,就像被相恋多年的女友突然之间抛弃在舞会上一样,罗伯兹的大脑不听使唤的僵在了那里,下面,该怎么办?
  这是一部花费了自己七年心血的作品,为了这部作品,他甚至花费了整整六年的时间去研究自己根本不曾接触过的阿拉伯文明。为了这部作品,他甚至还放弃了自己在大学中所学的专业。但是罗伯兹没有想到的是多年的辛劳换来的竟然是这样的结果,但是为了这部作品,他不能放弃。等待是需要耐心的,在等到第十三个出版商的时候,罗伯兹终于等到了自己想要的结果,他的作品出版了。
  这部作品就是日后风靡于欧美的科幻小说《沙丘魔堡》。但是罗伯兹更不会想到的是在四十年后,世界上的任何的一个人都能够随意的掌握他所创造出来的这个荒凉、神秘的外星世界。个中的缘由,还得让我们从八十年代说起。

[暴雪到来之前的故事]

  拉斯维加斯,一个游戏金钱的地方,当150多年前美国摩门教徒们创建这所城市的时候他们也许根本就不会想到,就是这样一个建立在沙漠中的城市,最终会成为一个让全世界瞩目的地方。赌博的巨大刺激吸引着来自世界各地的人们来此一试手气,同样也吸引着世界各地的富商来此谋筹财路。
  
       拉斯维加斯街景
  一位名叫布莱特·w·斯帕里(brett w sperry)的年轻人就生活在这座城市之中,在被一家教育公司扫地出门之后,斯帕里开始了自己游荡的生活,最终,他凭借自己在计算机方面的特长,和一家名为epyx的公司签订了合同,为他们开发一款名为《dragonfire》的计算机游戏。但是穷困潦倒的斯帕里在工作的最后关头遇到了麻烦,在他需要为发行商打印最终成果的时候他发现就是拿出自己所有的积蓄也换不来一台最普通的打印机。
  他找到了自己的朋友,在“23世纪计算机”商店打工的路易斯·卡塞尔(louis castle)。这是一间内华达最古老的计算机商店,只有在这里你才能买到macintosh。当时的卡塞尔拥有着一台点阵式的打印机,这就是斯帕里最需要的。接下来的时间里,他们开始了对未来的憧憬。他们常常花上很长的时间驾车去穿越内华达州的沙漠,来到加利福尼亚的westwood市,这是他们最喜欢来的一座小城,在这里他们看电影、逛商场、闲坐在街边的咖啡馆里聊着各自感兴趣的话题。
  悠闲的时光很快就过去了,1985年的夏天,卡塞尔全家像每年一样,又开始动身前往yosemite避暑,临行前,卡塞尔邀请斯帕里一同前去。
  
  “我们自己开公司吧――五五分成。”斯帕里向毫无准备的卡塞尔说出了自己的想法,惊愕之余,卡塞尔最终还是被斯帕里说服了。斯帕里激动的冲向了街边的电话亭,他要同自己的东家epyx公司做笔交易,他要用自己公司的名义为epyx编制下一款游戏。
  公司总得有自己的名字。在枪毙了几个糟糕的名字之后,卡塞尔提议用“westwood”来做公司的名称,因为那里给他们留下了太多的美好回忆,斯帕里在这个名字后面又加上了associates,因为斯帕里感觉到他们要永远做一位伙伴,而不是雇员。
  
  时间很快就过去了,转眼的时间,90年代到来了,在过去的五年中,卡塞尔和斯帕里带领着westwood一刻不停的奋战着。除了少数的几款由自己设计的游戏之外,他们的日常工作几乎全部被移植游戏的工作占满。就这样在整个80年代他们都在移植中度过了,他们甚至自我解嘲似的说出了“我们移植一切,包括bug”这样的名言。
  
       westwood的作品
  1992年,westwood决定让自己成为一间专业的游戏工作室,于是他们转而加盟了维真公司,在摆脱了发行和商务等等一系列的烦恼之后,westwood开始了自己高速的发展历程。几款连续的成功作品让westwood名声大振,但是也许就连westwood也没有想到,下面的事情,将彻底的改变westwood的命运,甚至改变整个pc游戏产业。
  
       《沙丘ⅱ》的游戏画面
  文章的开头我们说到了罗伯兹的科幻小说《沙丘魔堡》,但是在40多年后的1992年,斯帕里和卡塞尔决定将它搬上计算机的屏幕。虽然在斯帕里的眼中,这只是一款小型的战争游戏,但是他们一刻也没有中止过为这款游戏添加新创意的想法,因为他们相信,人们有理由在这款游戏中获得足够多的乐趣。1992年的圣诞节马上就要到来了,卡塞尔和斯帕里决定在这个欢庆的节日中将自己的新游戏推到世人的面前,《沙丘ⅱ》面世了。就仿佛在pentium时代我们就见到了doomⅲ一样,当时的人们是无法用语言来描述自己对于《沙丘ⅱ》的感觉的。在游戏中,我们俨然已经成为了一个万能的上帝,主宰着这个神秘的外星世界。斯帕里和卡塞尔对于界面的易用性和画面的完美性的追求在这款游戏中得到了充分的体现,但是也正是《沙丘ⅱ》开创了一种全新的游戏类型——rts(即时战略),这种全新的游戏模式将westwood送上了巅峰,西木,一个响亮的名字开始在玩家中叫响。

[大树底下好乘凉]

  九十年代的感觉是明亮和鲜艳的。
  加州大学洛杉矶分校的一间计算机教室中,一群大学生正在专心致志的摆弄着电脑。一个名叫艾伦·阿德汗(allen adham)的年轻人站了起来,他输入一串口令将自己的计算机锁住之后就离开了,但是5分钟之后,他仍旧没有回来,而此时早已过了系统规定的时间,计算机自动解锁了。坐在这台计算机旁边的一个学生注意到了这个情况,他偷偷的向艾伦的计算机中输入了一个全新的口令,然后就开始等待着一出好戏的上演。
  艾伦回来了,输入口令,登陆系统,一切无恙。这个替换了口令的学生坐不住了,他向艾伦询问是怎么进入了系统。
  “输入自己的密码不就进入了系统了吗。”艾伦不在意的耸了耸肩膀。
  “那你的密码是什么?”
  “这个我可不能告诉你。”艾伦感觉这个人有点奇怪。
  “口令是joe,对不对?”
  艾伦吃了一惊,这个人怎么会知道自己的密码?一番解释之后,原来这个名叫迈克·莫怀米(mike morhaime)的学生输入的竟然也是joe,他们选择了同样的口令。
  
  大学的时光总是过的很快,毕业的时间转瞬及至,此时的艾伦和迈克早已是形影不离的好友。在大学的这段时间里,艾伦已经开始为一些公司设计游戏,而迈克也逐渐被这些源代码的威力所吸引,大学毕业后,他们顺理成章的开始了自己的创业历程。
  在为任天堂的红白机设计了几款游戏之后,1991年,一个属于他们自己的公司silicon & synapse(硅与神经键)公司成立了。但是就同westwood一样,迈克和艾伦很快就决定枪毙这个名字,因为在他们看来,神经键是个什么东西?几乎没有人知道。chaos,也许这个名字不错,但是麻烦接踵而至,因为早已有了一家拥有同样名字的公司。直到有一天迈克在翻字典的时候,blizzard(暴雪)这个词跳入了他们的眼帘,几乎是瞬间的决定,从此blizzard开始了自己辉煌的历程。
  
  暴雪觉得自己应该做点什么了,在被著名的游戏发行公司davidson & associates收购之后,艾伦和迈克所领导的暴雪已经完全成为了一间专业的游戏设计室。时间已经到了1994年,此时的westwood已然如日中天,《沙丘ⅱ》更是牢牢占据着全世界玩家的硬盘,暴雪悄悄的将目标锁定了。所有美好的事物总是经常被人模范,就像以前的赵老焉,就像现在的ipod,但是模仿似乎又是一件吃力不讨好的事,成功了自然流芳百世,失败了则不免遗臭万年,虽然如此,模仿者依然络绎不绝。艾伦和迈克发动了公司所有的15名员工,因为他们已经牢牢的掌握了《沙丘ⅱ》的所有优点,同时也洞悉了它所有的缺点,暴雪的任务,就是将rts这一概念完美完美再完美。
  外面的玩家已经有点不耐烦了,毕竟一个玩了两年的游戏已经很难再勾引起人们足够的兴趣了,他们急切的想体验沙丘之外的乐趣。暴雪是深知这一点的,因为暴雪的每个员工都是十足的游戏发烧友,而也正是因为这一点,他们才获得了在暴雪工作的机会。为了让玩家体验到完全新鲜的感受,暴雪决定将游戏的背景设定在一个奇幻的世界中,刀剑和魔法代替了飞机和大炮,漫天的黄沙也换成了葱郁的森林,暴雪也许根本就不会想到,艾泽拉斯的世界会如此的迷人。
  
       《魔兽争霸》游戏画面
  1994年的圣诞节即将到来了,westwood的卡塞尔端坐在计算机前,屏幕上是一个他自己从来没有见过却又感到十分熟悉的游戏,这就是《魔兽争霸》。暴雪成功了,当时正在欧美流行的奇幻文学自然而然的将这款游戏带到了每一位玩家的家中,早已熟悉了沙丘的玩家很快就学会了如何来操纵这款游戏,因为他们在骨子里都是一样的。“当我第一次看到这款游戏的时候,它对我们产品的‘模仿’的确让我大吃一惊”,很多年之后卡塞尔是这样回忆当时的情景的。但是暴雪还是在《魔兽争霸》的身上打下了自己的烙印,联网对战模式、随机地图生成器、大量快捷键设定,《魔兽争霸》所带给玩家的这些全新感受无一不在指引着未来游戏的发展方向。
  三年前,westwood还是一棵参天大树,漫无边际的向四周伸展着自己的枝叶,尽情享受着每一缕阳光。三年后,从自己根部汲取了足够多养分的暴雪已经冲破了那厚密的树冠,品尝到了第一缕阳光的味道。

[命令与征服]

  成功后的艾伦和迈克开始将关注的目光越来越多的投向自己的对手,以希望在那里获得更多的经验和诀窍。但是他们却发现了一个自己根本不能容忍的问题,那就是相当数量的顶尖游戏设计师竟然根本不会玩游戏!“看到许多制作游戏的人根本不玩游戏真是让我大吃一惊,”日后成为暴雪重要领导人的bill roper这样说,“在面试中这种情况相当明显。我们将问应聘人最喜爱的游戏,那个游戏中他们最喜爱的角色,而且要进行深入的讨论。如果被接见者认为可以通过前一晚阅读最新的游戏杂志来增加他们头脑中的游戏知识,他们会发现这种方式绝对会适得其反。如果你告诉我们你最喜爱的游戏是街霸,我们就会想知道对于每个角色你喜爱的格斗招数。”直到现在,仍然有人在批评暴雪的这种做法让它丧失了很多顶尖的人才,“但是如果一个美工可以真正去思考他们的工作在游戏环境中的表现,那么这绝对是价值无法衡量的财富。”roper这么解释。
  
       bill roper
  暴雪的成功是必然的,但是此时的westwood却是需要倍加努力的时候。虽然斯帕里和卡塞尔在表面上说着希望暴雪成为一个伟大对手的客套话,但是在westwood内部,一项工作正在有条不紊的进行着。因为westwood也早已注意到玩家已经对《沙丘ⅱ》感到厌烦了,他们急需一款全新的游戏来继续吸引玩家的注意力,只是《魔兽争霸》的问世让这种需要变的更加的迫切。
  斯帕里带领着自己的团队已经进入到了游戏开发的最后阶段。和《沙丘ⅱ》那幻想中的世界不一样,这次斯帕里似乎要回到了现实的世界中,他要把当今世界的政治版图作出一个翻版来。这就是《命令与征服》(c&c),一款让westwood登峰造极的作品,一款让westwood盛极而衰的游戏。
  
  到了1995年年中的时候,《命令与征服》发布了。没有了幻想中的不切实际的武器,没有了令人倍感荒凉的外星世界,所有的兵种和建筑都复刻于我们的世界,一切都以我们身边的事物为原型,gdi和nod双方的厮杀很快就让全世界的玩家沉浸在其中,westwood也再一次向人们证明自己才是rts领域的最强者。
  此时的暴雪一刻也没有停止工作,他们正在继续讲述着艾泽拉斯世界中的故事,但是他们万万没有想到,一个更加古怪的念头正在斯帕里的脑海中逐渐成形:他想把二战中的场景搬上计算机的屏幕,恐怖、残酷、杀戮,战争中所有最糟糕的一面都将得到展现。但是他这个念头很快就得到了维真公司的否定,原因只有一个:这款游戏最终将面向全世界发行。此时斯帕里才恍然大悟,在他的设想中,游戏已经涉及了太多的政治敏感话题,单单描写德军的情节,就别想让这部作品在德国发行。
  《命令与征服》的成功让westwood充满了空前的自信,斯帕里决定继续之前的古怪念头,为《命令与征服》推出资料片,背景依然是现实中的世界,但是游戏的主角,却已然换成现实中的国家。1995年的圣诞节即将到来了,此时的游戏销售排行榜上,《命令与征服》已经遥遥领先于其他的任何游戏。如果此时的暴雪消沉下去,那么westwood的下一款游戏也许就会让玩家永远的忘记暴雪这个名字。暴雪提前采取了行动,已经悄悄开发了十个月之久的《魔兽争霸ⅱ》如期上市了。
  
  市场是检验一款游戏成功与否的最佳标准。仅仅使用了十个月就完成的《魔兽争霸ⅱ》在技术上不但支持了高分辨率图形,更是在游戏中加入了支持8玩家局域网对战的功能。但是一款游戏如果仅仅只是拥有技术上的优势是远远不够的,首先必须是一名游戏爱好者的聘用政策让暴雪能够更多的照顾玩家的游戏感受。战争迷雾,左键选择单位、右键点击移动,这两个看似不起眼的小改动不但确立了暴雪今后游戏的操作风格,更是成为了大多数rts游戏所遵循的操作标准。不仅仅只是这些,暴雪开始在这款游戏中注意游戏本身的平衡性,各个种族之间绝对的公平保证了游戏自身的可玩性,各种各样的战术开始被创造出来,以最大限度的利用种族的自身优势。很快,《魔兽争霸ⅱ》的销量奇迹般的突破了一百万套,而暴雪,也开始了自己的蜕变。
  《魔兽争霸ⅱ》的成功极大的刺激了westwood,虽然此时c&c仍然占据着游戏排行榜的第一位,但是如日中天的westwood对于暴雪将自己的风头抢去是难以容忍的。斯帕里的构思终于变成了现实,1996年中的时候,《红色警报》发布了。作为c&c的资料片,人们吃惊的发现《红警》竟然从头到脚几乎有90%的内容是全新的,由此看见westwood对于这款游戏的态度。westwood打出了一张好牌,由于当时windows95的发布,一场windows的风潮席卷全球,于是westwood率先推出了windows版本的《红警》,为后来的迅速蹿红埋下了伏笔。相比于奇幻中的世界,现实中的故事更能引起人们的兴趣。以冷战为背景,玩家可以操作美苏两个超级大国中的任意一方来完成自己称霸世界的雄心,游戏不但有着强烈的真实感,完善的联网对战功能更是让玩家的兴趣大增。其实我们已经毋需多言了,相信每一个经历过那个时代的玩家都会对那段时光深有体会。不论我们走进哪一家网吧,或是哪一家电脑游戏室,首先听到的几乎都会是厮杀于红警中的玩家的喊叫。记得有人曾经说过,红警定将为21世纪培养出一批合格的将军。westwood最为辉煌的时刻就这样到来了,但是斯帕里和卡塞尔没有想到的是,对于游戏性理解的偏差和随之而来的急功近利让westwood走入了歧途,并渐行渐远,直至再也没有找回最初的方向。

[中世纪的幻想]

  这是一件只有极少数玩家知道的事情。在1994年的芝加哥消费电子产品展上,阿德汗结识了condor公司,共同的游戏理念很快就让两家公司走到了一起。在经过几个月的初步设计之后,condor的三位创始人max schaefer、dave brevet和erich提出了动作rpg游戏的概念。新生的事物总是很难被世人接受的,他们的概念遭了绝大多数游戏发行公司的冷遇。无奈之下,dave拨通了阿德汗的电话,暴雪也许是他们最后的知音了。相同的设计哲学很快就让他们达成了共识,“我们都热爱中世纪的东西、剑、怪物、财宝等等,”dave说道“你只会感觉到这种结果太合适了。”1995年1月份,暴雪和condor达成了制作一款全新游戏的协定,暴雪为condor提供30万美元的开发资金,condor将全权负责这款游戏的开发,这款游戏就是《暗黑破坏神》,一款日后每一个暴雪人都深深迷恋的作品。
  
       《暗黑破坏神》的关卡设计师
  多年以后,dave承认当时暴雪所提供的30万美元是难以满足《暗黑破坏神》的开发需要的,因为绝大多数的condor员工都投入到了这款游戏的开发之中。幸好当时另外一家游戏厂商3do正在让condor为他们的新主机开发一款游戏,于是condor就暗自挪动了3do为他们提供的开发款项,就这样,3do就在自己毫不知情的情况下间接支持了《暗黑破坏神》的开发。
  就在condor在预算不足的情况下为完成《暗黑破坏神》而努力工作的时候,暴雪的开发团队已经在开发《魔兽争霸ⅱ》之余,注意到了这款游戏所采用的回合制游戏方式。几乎是凭借作为一名游戏玩家的直觉,他们就感觉到即时制能让玩家体会到更多的游戏乐趣。长时间的争论自然是难免的,但是暴雪的开发团队通过不断的向condor施压,最终让他们改变了想法。三个小时后,即时制的《暗黑破坏神》运行在了condor开发小组的计算机上,一切都变的流畅了起来,畅快的游戏感受让condor小组的成员不得不承认,也许这是《暗黑破坏神》在开发过程中遇到的最棒的事情。
  此时的媒体终于开始注意到暴雪和condor正在开发的这款游戏,暴雪将要涉足rpg领域的消息开始在玩家中不胫而走。暴雪似乎意识到了《暗黑破坏神》对自己的重要性,而condor卓越的才能更是让暴雪钦佩不已,更何况此时的暴雪和condor在感情上已经如一家兄弟。虽然有更多的发行商愿意出更高的价钱来收购condor,但是max和dave最终还是带领着condor走到了暴雪的身边。于是在1996年3月,condor成为了blizzard north,北美暴雪成立了。
  
       max和dave沉醉于暗黑破坏神中,墙上是象征荣誉的“五年之剑”
  北美暴雪的成立进一步加快了《暗黑破坏神》的开发计划,圣诞节前发行已经成为可能。暴雪的开发团队开始考虑《魔兽争霸ⅱ》之后的作品了,虽然《魔兽争霸ⅱ》让暴雪成为了一家足以抗衡westwood的公司,但是此时的rts代名词却是c&c和红警。“我们想暂时抛弃魔兽系列,并寻求一个新的突破,每个人似乎都在想着做一款科幻游戏”,bill roper这样回忆着当时的情景。
  《暗黑破坏神》的开发已经进入了尾声。1996年的e3大展到来了,此时的暴雪已经成为和westwood、id software一样的厂商,他们是所有人都像击败的目标。暴雪动用了三套系统来展示自己的作品《暗黑破坏神》,但是这似乎远远不能应付玩家对于它的热情,到了展会的后期,演示的系统不得一再添加,直至占用了暴雪所有六套系统中的五套。一个更加令人兴奋的消息传来了,暴雪宣布将在《暗黑破坏神》中附带一个名为battle.net的免费互联网游戏服务,战网问世了。
  
  1996年的圣诞节到来了,商店的货架上却看不到《暗黑破坏神》的踪影,暴雪的承诺没有兑现。而此时在暴雪的内部,熬红了双眼的max和dave正在带领着手下的员工们为最后加入的battle.net做出最后的努力,这一切都是为了达到玩家和自己为游戏设定的双重标准。1997年来到了,《暗黑破坏神》终于压盘上市了,玩家们的热情是不可抵挡的,短短18天内,《暗黑破坏神》的销量突破了一百万套,暴雪对完美的追求再次得到了丰厚的回报。

[我的征途是星辰大海]

  1996年的e3大展造就了《暗黑破坏神》的成功,同时也造就了另外一个悲情英雄《星际争霸》。在暴雪使用的六套展示系统中,有三套用来展示《暗黑破坏神》,另外三套展示的,就是bill roper口中的“每个人都想制作的科幻游戏”《星际争霸》。但是玩家对《暗黑破坏神》的热情和对《星际争霸》的冷遇形成了鲜明的对比,最终《星际争霸》的展示平台被剥夺到了一套,暴雪似乎将要推出自己第一款失败的作品了。
  
  是继续开发,还是重头再来,抑或是就此取消,e3归来后的《星际争霸》面临着一个艰难的选择。紧接着到来的1997年给予了暴雪足够的动力去作出最为艰难的选择,《暗黑破坏神》的成功让暴雪明白了优秀与伟大之间的区别。最终,暴雪选择了最为漫长和痛苦的道路,《星际争霸》从头再来。
  
       最初的《星际争霸》游戏画面
  当莫怀米在2000年接受一家杂志的采访时曾经承认,《星际争霸》确实是他们“最漫长和最痛苦的一个”,但是暴雪制作一款伟大游戏的决心却从来没有改变过。之前的《星际争霸》最终只保留了种族的设定,其余的设计被全部抛弃。经过半年多的重新设计之后,全新的图形引擎和渲染影片终于被设计出来,第一个测试版的《星际争霸》即将出炉。任何人在回忆起这段时光的时候总是能够记起《星际争霸》战役编辑器的设计师jeff strain和他的太太annie strain。
  “当时我在检查了自己的笔记本电脑之后,就飞奔似的回家了,因为我的太太已经怀孕9个多月,她已经开始产前的痉挛了。”jeff自己这样回忆到,那个时候全公司都在加班加点以赶在节假期前推出《星际争霸》,但是妻子的电话不得不让jeff在最后的关头离开自己的工作岗位。“你要知道,在妻子痉挛真正开始之前我在医院完成了5到6个小时的编程工作。”当annie从产前的麻醉状态中苏醒过来的时候,jeff正在将自己的手从键盘上拿开。
  “在我们女儿出生的时候你还在为这个该死的游戏工作吗?”annie似乎有些愤怒。
  “annie,这可不是'该死的游戏'。它是star craft!”jeff解释到。
  
   可爱的jeff strai
  尽管多年后jeff已经离开了暴雪,并同其它从暴雪离开的同事共同创立了arena.net,但是jeff仍然对自己妻子的评语感到“耿耿于怀”,也许正像bill roper所说的那样“让我们回到工作室坚持下去的动力是制作伟大游戏作品的机会。”
  整整三个月的时间,暴雪的所有人员都放下了手中的工作,全力进行《星际争霸》的测试工作。虽然所有的设计师发疯了似的工作着,但是当1997年的圣诞节到来的时候,暴雪还是宣布《星际争霸》需要推迟了,三年来,暴雪第一次没有在新年的时候推出自己的作品。但是暴雪却并没有这样看,“公司的每个人都知道只需几个令人失望的游戏就会毁掉我们所有的声望。”星际争霸的总设计师bob fitch后来回忆到,看起来他似乎有点心有余悸。但是此时的暴雪内部却并没有出现任何的差错,一切都在按部就班的进行,重新调整过后的游戏在种族的平衡性上取得了长足的进步,因为暴雪不想学westwood那样让自己的游戏变成疯狂的坦克大战。
  
  1998年3月,当《星际争霸》终于摆上了商店货架的时候,所有的结果都证明了暴雪在96’e3大展后作出的决定是如何的正确。仅仅在发行当月《星际争霸》就冲上了游戏销售排行榜的首位,而在韩国,星际的销量更是很快的就突破了一百万份。但是有谁能够知道,在星际大获成功的背后,却有着另外一个游戏的凄凉结局。这个游戏就是roper宠爱的warcraft adventures,它讲述了萨尔的故事,在warcraft ii结局中人类封闭了通向德拉诺的入口,随后萨尔被抓到了艾泽拉斯。虽然这是暴雪第一款采用3d引擎的游戏,虽然不少的玩家和媒体都非常看好这款游戏,但是在暴雪内部却始终认为这部作品将会是他们第一款销量达不到百万级别的作品,最终暴雪还是在98年e3大展到来前宣布warcraft adventures被无限期推迟。
  看着自己的同事们一直拼杀在游戏设计的第一线,此时早已是公司总裁的阿德汗再也坐不住了,抑止不住的创作激情让他毅然放弃了自己的职务,转而投入到了真正的游戏开发中去。但是此时在暴雪的内部,也许没有一个人会想到《星际争霸》会产生怎样的蜕变。
  
  battle.net战网,相信如果没有它的存在,星际也许只会安静的待在每一个玩家的硬盘上,但是正式因为战网的存在,才让全世界的玩家走到了一起。在星际最初发行的版本中,不论是暴雪还是玩家,星际的概念对于他们来说还仅仅只是一款游戏。但是到了资料片《母巢之战》发行的时候,游戏,这个被无数的家长视为洪水猛兽的科技怪物终于在星际的带领下走进了现代竞技体育的殿堂。也许家长们无法理解当每一个痴迷于星际的孩子在看到grrr用几乎闻所未闻的克隆手法让9个小飞机在瞬间逐个撞杀october的2个吞噬者和5条飞龙,让己方遭到缓速魔法袭击的飞龙群反败为胜的时候,他们会是一种什么样的心情。“微操作”、“大局观”、“战术”等等开始流行了起来。1.08版所重新调整的种族平衡让星际向竞技体育更加的靠拢,而游戏录像功能的推出则让更多的玩家能够在第一时间看到世界顶尖高手们的风采。而此后暴雪每次推出新的游戏版本,全世界的玩家立刻就能研究出无数的战术和绚丽的打法。
  2001年9月5日的韩国汉城。
  暴雪不应忘记这一天,电子竞技不应该忘记这一天,每一个星际玩家更不应该忘记这一天,历史上第一次电子竞技大赛wcg开幕了。林耀焕,一个曾经两次参加考高而未曾中的的高中生,一个在星际的世界中名叫slayers_boxer的年轻人,是他在比赛中让《星际争霸》得到了升华,是他让人们重新认识了《星际争霸》这款暴雪3年前推出的作品。当一整队的机甲巨人从多架运输机上从天而降的时候,人们根本不相信这是人力所能达到的,boxer做到了。高阶空投,机械化打法,三基地战术等等一系列的创新被boxer源源不断的创造了出来,而2002年wcg决赛中的那场璀璨对决,更让boxer无愧于最伟大的星际选手的称号。也正是这样的创新精神,让《星际争霸》一次又一次的升华,成为了真正意义上的一种文化,成为了一种创新的精神。
  
       酷酷的boxer的海报
  
     星际双打冠军!wcg赛场上飘扬的五星红旗
  2005年,在暴雪推出《星际争霸》7年之后,最新版本的1.12版发布了,这似乎向人们预示着,《星际争霸》的魅力是永恒的,也许有关星际的话题仍将继续下去……

[走向冰峰王座]

  让我们再次回到1997年。当《暗黑破坏神》在市场上获得了巨大的成功的时候,暴雪的母公司davidson就急切的希望北美暴雪能够在那一年的暑期推出它的续篇,但是这个计划马上就被dave否定了,因为在他们看来,《暗黑破坏神》是唯一的。在经过一个月的休假之后,北美暴雪的全体成员坐在了一起,下一部作品应该是什么呢?“《暗黑破坏神ⅱ》!”,人们几乎异口同声的说出了自己的想法。
  
       站在暴雪总部门前的莫怀米
  两年后,《暗黑破坏神ⅱ》依旧在继续进行着自己的开发。因为在开发临近尾声的时候加入的一些全新特性如关卡零载入时间、角色特色技能树等让dave他们的开发团队不得不重新开始大量的工作。而在距他们500英里之遥的暴雪开发团队此时也遇到了棘手的问题,阿德汗领导的开发小组决定继续讲述艾泽拉斯的故事,只是这次他们将第一次使用全3d引擎,而且阿德汗还希望完全改变rts的游戏风格,使之看起来更像是一款rpg游戏。
  时间到了1999年,在这一年9月份在伦敦举办的欧洲计算机贸易大会上,暴雪首次向外界披露了《魔兽争霸ⅲ》的消息,并进一步向外界透露了《暗黑破坏神ⅱ》的开发情况,并且明确的表示《暗黑破坏神ⅱ》肯定会在年内发布。但是情况却恰恰与之相反,这款从1997年就开始进行开发的游戏竟然在两年之后依然有大量的工作需要完成。新的创意和特点被不断的添加进去,“每当早上我走进办公室对大家说我有一个更好的想法的时候,几乎每个人都忍不住的呻吟起来,因为他们知道这又意味着三个月的没日没夜。”dave回忆起当时的情景。1999年的圣诞很快就到来了,但是《暗黑破坏神ⅱ》的开发进度似乎没有一点的进展,虽然他们从4月份以来就再也没有休息过一天。像之前的游戏一样,暴雪再一次宣布新游戏将无法按时发布了。
  
       《暗黑破坏神》开发小组全家福
  随着新年的到来,玩家们对暴雪的期望也空前的高涨了起来,因为他们知道暴雪肯定会在新的世纪中为大家带来两款众人期盼已久的作品。dave和max知道自己的作品无论如何都要在年中的时候完成了,当然这也意味着他们将在超过一年的时间里得不到任何休息的时间。而此时在暴雪的开发小组所遇到的问题似乎有着更大的麻烦,因为已经在开发中的《魔兽争霸ⅲ》有可能重蹈最初版本《星际争霸》的命运,也许它要被全盘否定了。玩家对于《魔兽争霸ⅲ》的看法分成了两派,所有喜欢暗黑破坏神的玩家几乎都在反对将rpg的元素添加到魔兽争霸中,而所有喜欢魔兽的玩家却几乎一致的支持这项决定,暴雪陷入了两难的境地。“小组的每个人看了这个游戏都说,你要知道,这种效果并不怎么样。我们需要做一些事情了”,作为暴雪领导人之一的rob pardo日后这样回忆说。在让《魔兽争霸ⅲ》重新回到制图板上之后,大量的rpg元素被取消了,只能跟随英雄的视角设定被否决了,自由卷屏重新回到了游戏中来,一切都回到了rts游戏的根源。
  玩家们对于这样的结果自然是不能满足的,已经习惯了暴雪的创新风格的忠实玩家开始诉说着自己的不满,因为这在他们看来这是暴雪在为保证自己游戏的销量而不敢承担创新的风险。“如果你开始认为你不能承担太多风险,而肯定可以创造出顶尖作品的唯一方式是重复以前游戏的成功路线,那么我认为压力很可能真的会抑制创造性。”已经离开暴雪的jeff strain似乎也在承认着暴雪当初的想法。但是bill roper却不这么认为,“我们希望warcraft ii到starcraft或者diablo到diablo ii之间的衍变显示了我们能够创作出有趣、为玩家熟悉、并且具有全新体验的游戏。”也许roper的话是对的,因为接下来的事情再一次证实了暴雪的成功。
  
  2000年6月份,经过两年多开发的《暗黑破坏神ⅱ》终于发布了,发行当天高达184000份的销量足以显示玩家对于暴雪的疯狂,而不足一个月的时间就创下了百万份的销量更是创造了一个新的记录。
  第二年的6月份,北美暴雪再次为大家带来了新的惊喜,《暗黑破坏神ⅱ》资料片《毁灭之王》发布了,但是更大的惊喜却还在后面。9月,参加欧洲计算机贸易大展的暴雪宣布了《魔兽世界》的存在,一扇通向艾泽拉斯世界的大门正在向全世界的玩家缓缓开启。
  
  此时的《魔兽争霸ⅲ》开发小组的工作也终于接近了尾声,三年磨一剑,roper口中的“史诗级”概念在《魔兽争霸ⅲ》的身上得到了淋漓尽致的体现。2002年7月,人们第一次见到了“英雄”在rts游戏中起到了如此重要的作用,3c、td、熊猫,暴雪驾驭游戏的能力再一次得到了完美的体现。2002年底的时候,《魔兽争霸ⅲ》不负众望的登上了各大游戏排行榜的首位,暴雪重现了当年westwood的辉煌。
  资料片的发行一直的暴雪的传统,就像星际争霸的母巢之战,就像暗黑破坏神的毁灭之王,每一次暴雪资料片的发行总是能够让人重现认识一款游戏并将自己对它的热情持之以恒。《魔兽争霸ⅲ》也不例外,就在游戏发布后不久,暴雪决定继续讲述艾泽拉斯的故事,一款新的资料片即将发布。
  但是事情并非总是那么一帆风顺,暴雪的母公司威望迪此时的一个决定震动了暴雪上下和整个游戏界。为了偿还债务,威望迪有可能将自己名下的游戏制作部门进行出售,当然这也包括暴雪。面对这一景况,首先出现波动的是北美暴雪,这个开发了《暗黑破坏神》系列的团队。最终,曾经引领着condor投入暴雪怀抱的erich schaefer、max schaefer、david brevik重新离开了暴雪,随着他们一同出走的,还有暴雪的副总裁,一个游戏制作的全才bill roper。
  但是此时的暴雪并没有轰然倒地,早已成长为能够同时进行两款伟大游戏开发的暴雪在外界看来似乎并没有收到什么影响。就在北美暴雪高层集体辞职之后的第二天,2003年7月1日,《冰峰王座》准时来到了玩家的面前,暴雪仍然在继续着自己的创新与辉煌。

[新的开始]

  
       我终于站在了暴风城的大门前
  十多年来,人们每每俯瞰着美丽的艾泽拉斯世界,却从来不得以进入其中,今天,暴雪将这一切都变成了显示。但我睁开双眼第一次看到北郡修道院的时候,一切都使我感觉到那么的熟悉,就是在这里,人类的********迪文度过了自己的童年和少年时光,但是就在德拉诺的兽人在萨格拉斯和他的部下基尔加丹的影响下变得狂暴而残忍的时候,麦迪文也完全被萨格拉斯掌控了,一条连接德拉诺和艾泽拉斯的时空之门被打通,狂暴的兽人很快席卷了整个艾泽拉斯的大陆。
  历尽千辛,人类终于在兽人的残暴下存活了,而得到了神器的兽人也暂时回到了德拉诺的世界中,但是下一次的入侵似乎将很快就会来到。为了让艾泽拉斯的世界获得永久的和平,图拉扬将军,********德加以及来自高等精灵的艾蕾莉亚·风行者、来自矮人的库德兰·蛮锤和勇猛的战士纳斯·托尔贝恩率领着人类的远征军开向了地狱般的德拉诺兽人世界。浴血奋战,战斗在德拉诺的联盟勇士们最终明白,只有摧毁通向艾泽拉斯的传送门才是确保联盟和平的唯一办法。一声巨响过后,联盟的战士们永远的留在了德拉诺的红色世界中,直至今日,依然没有他们的任何消息。也许他们仍然在继续着同兽人的激战,也许他们仍在在寻找着回家的道路,也许他们已经在天国的阶梯上俯瞰着美丽的艾泽拉斯世界。
  我凝望着伫立在暴风城门口的雕像,回想着在这个美丽的世界中曾经所发生的点点滴滴,遏制不住的激情开始在胸中回荡,心中禁不住想起了库德兰·蛮锤雕像座下的那段话:
  “听吧,风中传来狮鹫的呼号,战锤的声音回荡在山间。勇敢的面对困境吧,我的兄弟,祖先的圣堂在向你召唤。”
  也许,这就是积淀了十年的激情!
  也许,这就是暴雪的力量!
【原文地址】

benchensz 2006-07-24 23:23 发表评论
]]>
mysql宣布进入微软产业凯发k8网页登录的合作伙伴计划,是献媚还是图谋微软的市场?http://www.blogjava.net/chenpengyi/archive/2006/07/12/57729.htmlbenchenszbenchensztue, 11 jul 2006 16:39:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/07/12/57729.htmlhttp://www.blogjava.net/chenpengyi/comments/57729.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/07/12/57729.html#feedback1http://www.blogjava.net/chenpengyi/comments/commentrss/57729.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/57729.html 众所周知, mysql 一直是开源领域数据库的佼佼者,也是 lamp 组合中的重要成员,正是因为有了它才有了这个 linux 下的金牌开源组合。更重要的是,在开发者领域, mysql 也一直是 java php/perl 程序开发人员的好伙伴,在我们的感觉中, mysql 似乎已经成为开源社区对抗微软最佳武器。

而最近, mysql 开发者网络突然传出信息, mysql 在上个月的 27 号在伦敦加入了微软的 visual studio 的产业凯发k8网页登录的合作伙伴计划,当然我们知道这些 so-called “凯发k8网页登录的合作伙伴计划”不代表什么,也并不意味着从此 mysql 就专注于与 ms visual studio 之间的合作而减少与开源社区的合作。 mysql 放弃开源社区肯定是不会的,因为 mysql 是依靠着开源社区发展起来的,不可能因为 ms 的强大就放弃了自己的本行,同时由于 ms 有自己的强大的数据库产品—— sql server 2005 mysql ab 是不会放弃自己的本行转投微软门下的。(我也看到了在国外的论坛上有某些程序员也有担心微软会变相收购 mysql 的说法,我想暂时是不可能了,因为 mysql 现在的投资者都是微软的死对头)

所以我觉得这绝对不是对微软的妥协或是求和,无论对开源社区或是使用 ms visual studio 系列产品的 isvs 都是好事,但对微软而言,就不会是好事了。因为现在 ms sql server 系列产品的用户大部分是中小企业(说得不好听点,在国内大部分使用的都是 d 版的),而且很多小型企业没有购买 oracle db2 的意愿(什么原因?贵呗),为了减少企业的 tco (总拥有成本),选择 visual studio 作为开发工具还是很正确的, visual studio 虽然是需要购买的,但一次成本、短期支出而已,但 visual studio 开发人员的成本低,维护费用也低,这是长期的指出减少,也就是企业的收益,把这两个算起来,选择 visual studio 就是肯定的了(这点希望大家就别跟我争了,看看 asp 程序员的薪水,再看看 java 程序员薪水,然后看看 asp 程序和 jsp 程序维护难度)。但是在 visual studio 平台上一直没有一个跟开发平台整合得比较好的开源 database (也许有,但我还不知道),所以很多 vs 开发平台上的人只好无奈的选择 access sql server 了。

但如果 .net 开发人员能跟 mysql 和顺利的打上交道,然后可以很方便的使用 mysql 进行数据库开发,我想这些 .net 的开发人员也就不会再高价使用 ms 的产品了。虽然能看到现在的现实是 mysql 的易用性还是不足,但自 5.0 版本以来,它的改变也是相当大的,从数据库性能和数据库特性提升,到方便开发人员开发调试的 mysql query browser ,再到提升数据库管理效率的 mysql administrator ,我们已经看得到 mysql 的进步了,这个时候它再宣布进入微软的开发者领域,无疑就是希望从微软口中分一杯羹,把这部分非 ms 忠实 fans 的用户抢过来,它进入微软开发者领域对 sql server 来说无疑是一场冲击。

十分期待它能从 ms 口中抢来更多的 sql server 的市场份额。同时 mysql 也新推出了支持 .net 的编程的 connector ,专门为 .net framework 开发的数据库连接桥, .net 开发的用户可以去试试看,是不是比以前的 odbc driver 快捷稳定。



benchensz 2006-07-12 00:39 发表评论
]]>
mysql 5.1 提供xml内置支持(xpath)http://www.blogjava.net/chenpengyi/archive/2006/07/11/57578.htmlbenchenszbenchenszmon, 10 jul 2006 16:12:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/07/11/57578.htmlhttp://www.blogjava.net/chenpengyi/comments/57578.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/07/11/57578.html#feedback9http://www.blogjava.net/chenpengyi/comments/commentrss/57578.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/57578.html前些天说到了mysql5提供了内置的xml文件解析和修改函数,今天找了点mysql网站上的资料和例子,翻译了一下,希望能给使用数据库存储xml和xslt的同志一些帮助。
mysql 5.1.5版本中添加了对xml文档进行查询和修改的函数,分别是extractvalue()和updatexml(),下面是这两个函数的使用示例:
还是一样我们首先建立一个示例数据库,然后将范例中使用的xml文档输入到数据库中:
create table x (doc varchar(150));
insert into x values
('

a guide to the sql standard

cj
date


');
insert into x values
('

sql:1999

j
melton


');
大家可以看到,doc列的内容中包含了自己的层次结构,以xml格式体现包含书名和作者的书本,其中作者还包含名字简写大写以及姓。这是流行的排版和储存格式,字母"" 和"是标记,使用户更容易理解内部的层次结构。
下面先看看extractvalue()的用法吧
语法:
extractvalue (xml_document, xpath_string);
第一个参数:xml_document是string格式,为xml文档对象的名称,文中为doc
第二个参数:xpath_string (xpath格式的字符串) ,如果不了解xpath语法,可以在网上查找教程。
作用:从目标xml中返回包含所查询值的字符串
示例#e1:
mysql> select extractvalue(doc,'/book/author/initial') from x;
------------------------------------------
| extractvalue(doc,'/book/author/initial') |
------------------------------------------
| cj |
| j |
------------------------------------------
2 rows in set (0.01 sec)
可以看到,extractvalue()函数将/book/author/initial节点中的值取出来,并通过select返回。因此需要简单的查找xml文档中的值,只要在xpath_string参数中指定好层次和节点就行了。
示例#e2
mysql> select extractvalue(doc,'/*/*/initial') from x;
----------------------------------
| extractvalue(doc,'/*/*/initial') |
----------------------------------
| cj |
| j |
----------------------------------
2 rows in set (0.01 sec)
如果查询前并不知道层次关系,你也可以使用通配符进行层次的匹配,不过当xml文档比较大的时候查找速度会很慢滴。
示例#e3
mysql> select extractvalue(doc,'/book/child::*') from x;
---------------------------------------------
| extractvalue(doc,'/book/child::*') |
---------------------------------------------
| a guide to the sql standard |
| sql:1999 |
---------------------------------------------
2 rows in set (0.00 sec)
使用/book/child::语句我们可以找到book节点下的首个节点,文中是title。除了child以外,我们还有其他的参数:
child ... 指定节点的下一子节点)
descendant ... 节点下包含的所有层次中的数据
parent ... 指定节点的上一节点
ancestor ... 节点以上所有层次的数据
following-sibling ... 同一层次的下一个节点
preceding-sibling ... 同一层次的上一个节点
self ... 自身
示例#e4
mysql> select
extractvalue(doc,'/book/author/surname[self:text()="date"]') from x;
--------------------------------------------------------------
| extractvalue(doc,'/book/author/surname[self:text()="date"]') |
--------------------------------------------------------------
| date |
| |
--------------------------------------------------------------
2 rows in set (0.00 sec)
这里是一个使用条件表达式进行数据查找的例子,具体就不解释了,都是符合xpath语法的,大家可以参考一下xpath表达式的用法。
虽然上面的extractvalue()函数都使用在select列表中,其实该函数是可以使用在任何一个允许使用表达式的语句中的。
这里提示一点,使用这个函数可以轻松将xml文档列与全文检索结合起来。
来到updatexml()函数了
语法
updatexml (xml_document, xpath_string, new_value);
第一个参数:xml_document是string格式,为xml文档对象的名称,文中为doc
第二个参数:xpath_string (xpath格式的字符串) ,如果不了解xpath语法,可以在网上查找教程。
第三个参数:new_value,string格式,替换查找到的符合条件的数据
作用:改变文档中符合条件的节点的值
示例#u1
mysql> select updatexml(doc,'/book/author/initial','!!') from x;
----------------------------------------------------------
| updatexml(doc,'/book/author/initial','!!') |
----------------------------------------------------------
|

a guide to the sql standard

!!
date

|
|

sql:1999

!!
melton

|
----------------------------------------------------------
2 rows in set (0.00 sec)
updatexml函数的前两个参数用法以及写法与extractvalue是一样的,因为这里需要查找到符合条件的数据节点。第三个参数就是为了替换节点字符串的。文中我们就使用!!字符串替换了book/author/initial节点的值。返回值是整个改变后的xml文档。这里记住,由于我们使用的是select语句,因此并没有对真正的数据进行修改,而是在内存中将取出的数据进行修改然后返回给用户。如果需要彻底的修改文档内容,可以使用下面语句:
update x set doc = updatexml(doc,/book/author/initial','!!');
细心的人也许发现这里有一个错误,也许是bug,因为我们并不想修改结构化的文档,而仅仅需要修改内容,但updatexml函数将cj>整个文本改成了!!,这样就不是我们所想要的了,因为它改变了整个文档结构。因此如果你需要的仅仅是修改这个结构化文档的内容部分,而不是整个文本,可以使用:
updatexml(doc,'/book/author/initial','!!') from x;
示例#u2
mysql> select
extractvalue(
updatexml(doc,'/book/author/initial','!!'),'/book/author/
initial') from x;
---------------------------------------------------------------------------
--------------------------
|
extractvalue(
updatexml(doc,'/book/author/initial','!!'),'/book/author/
initial') |
---------------------------------------------------------------------------
--------------------------
| !!
|
| !!
|
---------------------------------------------------------------------------
--------------------------
2 rows in set (0.01 sec)
最后一个例子,extractvalue()函数和updatexml()函数的嵌套使用,结果是给我们展示将initial节点的值改成!!后选择查询initial节点的内容,结果大家也能看到了。
上面只是这两个函数的最基本用法,如果大家还需要更多的资料,或有一些自己的心得,欢迎一起讨论。


benchensz 2006-07-11 00:12 发表评论
]]>
使用skype免费拨打美国、加拿大国际长途http://www.blogjava.net/chenpengyi/archive/2006/07/09/57329.htmlbenchenszbenchenszsun, 09 jul 2006 04:11:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/07/09/57329.htmlhttp://www.blogjava.net/chenpengyi/comments/57329.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/07/09/57329.html#feedback14http://www.blogjava.net/chenpengyi/comments/commentrss/57329.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/57329.html     可能有心的 skype 用户也留意到了,前段时间 skype 给大家发了一封邮件,说什么可以免费拨打美国加拿大的固定电话和手机,但尝试了后都发现不成功,都提示需要 skype 的点数。那时候甚至看到有人说 skype 公司无耻,欺骗客户。但其实 skype 没有骗人,因为这项服务只提供给加拿大和美国的用户,让这些美加本地的人打本地的电话免费而已。
   
由此有一部分人展开了讨论, skype 是通过什么方式去限制其他地区的人呢?可能有人认为是通过账户信息上的国家名称,提出这个想法呢,就真的有点看不起 skype 公司人员的智商了,当然这是我开玩笑了。有网络知识的人也知道, skype 应该是通过 ip 地址的归属地去限制用户拨打国际长途的。因此就有了一系列的尝试,代理服务器等等的使用 skype 免费拨打国际长途的说话就来了。方法是很多的,所以我这里就举出我所知道的几个方法,如何使用 skype 拨打国际长途(仅限美国加拿大),这个虽然来说不属于 blogjava 的讨论内容,但对我们这些手头不阔绰的程序员来说是相当有用的,甚至可以考虑通过这个创业哦,因为如果你通过下面的方法架设好后,再开一个话吧,你需要的仅仅是一些跟电脑连通的话机和上网费用及电脑,然后就是很低的运营成本了。

 

方法 1

通过 vpn 网络,让自己在美国或加拿大的朋友为自己建立一个 vpn 的网络,然后拨号过去,再启动一个 skype ,就可以实现。够简单吧,呵呵,我说起来当然简单了,但做起来就不一定了。

这里最难的就是如何架设 vpn 网络了,首先讲怎么建立 vpn 服务器,其实这个在 xp 中就自带了,大家可以根据我的教程试试看。不过这里的 vpn 服务器一定要是美国加拿大本地的,你可以跟那里的朋友说好,让他 24 小时开机就可以了。

建立 vpn 网络服务器的连接教程如下:

微软的 vpn 教学如下:

而如何让客户端拨号到 vpn 网络的方法也很简单,步骤如下:

开始 --> 连接到 --> 显示所有连接或者是控制面板 --> 网络连接 --> 新建连接 --> 选择连接到我的工作场所的网络 --> 虚拟专用网络连接 --> 输入一个你想要工作场所的名字(随意输入) --> 如果你是拨号上网的用户,最好选择自动的初始连接为你的拨号连接,其他的就无所谓的  --> 然后输入你的主机的 ip 地址就 ok 了。

最后就是双击这个新的连接,输入你设置的用户名和密码就好了。

这里我补充一点,很多人想过使用代理服务器来实现,但必须保证你的 skype 的通向外网的连接都通过这个服务器实现。

 

方法 2

更简单,不需要设置什么 skype 专用的 vpn ,那就是使用 skype 的三方通话,首先让美加本地的一台电脑拨打你需要的那个号码,然后在邀请你的 skype 加入三方通话,这样你就可以实现拨打美加的电话了。其实这样也是很方便的,让对方的电脑给你开一个远程用户,你需要的时候只要登陆他的电脑,然后用 skype 拨打本地号码,接通后邀请国内的 skype 就可以了。

方法 3

还有很多灵活的方法,大家也可以提供讨论一下,最后的方法就是找我咯, ^_^ ,写信或者留言给我都行。



benchensz 2006-07-09 12:11 发表评论
]]>
oracle数据库迁移到mysql视频教程及电子书http://www.blogjava.net/chenpengyi/archive/2006/07/08/57256.htmlbenchenszbenchenszsat, 08 jul 2006 07:55:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/07/08/57256.htmlhttp://www.blogjava.net/chenpengyi/comments/57256.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/07/08/57256.html#feedback81http://www.blogjava.net/chenpengyi/comments/commentrss/57256.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/57256.html    自从mysql5.0以后,这个免费的开源数据库跟oracle/db2/mssql的差距越来越近了,当然不能否认它们之间还有很大的差距,但是可以看到的是这种差距正在减少,而且随着sap的maxdb对mysql开源社区的贡献,相信mysql的将来会越走越好。
   之前我们对mysql的印象似乎更多是个人建站数据库利器,原因是她仅仅在单机磁盘操作上占有优势,在其他地方,她根本没有任何优势。不过现在看来,这个印象要改变了,因为自5.0以来,她新特性推出的速度让我们不能接受,也许正是前面数年的积累,她们厚积薄发,在短短两年内实现了多数大型数据库才支持的特性。譬如:
   视图
   存储过程
   触发器
   数据词典
   xml函数支持
   事件
   csv存储引擎
   分区
   还有一些其他的改变,这个版本应该mysql出道以来最大的改变了。也许你会认为这些oracle或db2早就支持了啊,可是大家想象一下,对比一下这些数据库的大小还有最重要的——付出,如果将来的某一天mysql能把收费的数据库赶过去了,收益的是谁?就像我们的操作系统,如果没有linux,windows会那么便宜卖么?也许会,但主动的人绝对不是顾客。
   从更高的角度来看,考虑到it项目的投入成本及roi(在数据库方面上),如何选择才不会使中小企业投入那么多在it项目上,如何选择才能使自己的系统更适应变化,对中小企业而言,其实答案很简单,就是使用mysql。
   大家也看到了,mysql为了方便一些人员的操作,也推出了一系列的工具来方便那些习惯了gui界面操作的人员:
   1. mysql administrator —— mysql 服务器的管理利器。这个工具解决了mysql管理的很多问题,譬如:可以让你简单通过gui界面模式选择热备份数据库计划,或者是冷备份,你可以方便的选择备份时间,每周或是每日的什么时候进行。
   2.mysql query browser —— 查询工具,使用起来也很简单,而且支持调试等功能。
   3.mysql migration kit —— 数据库迁移工具,这个其实就是我今天想给大家讲的主题了,如何将现有的oracle或mssql数据库转移到mysql上,如果你水平够高,当然自己直接搞,对一般用户,mysql开发者还是很贴心的,因为他们知道,很多人不愿意选择这个免费数据库的原因其实是因为迁移的成本以及复杂度。
   所以有了这个工具,一般人员就可以很简单的将现有的oracle和mssql数据库迁移到mysql上了(以后估计还会有针对其他数据库的迁移工具,等着吧)。
   这里具体怎么用,我也不讲了,因为确实很简单,大家把这个视频教程下载了看看就懂了,但补充一点的是,视频教程中有对stored procedure的迁移,而现版本的migration kit似乎还不支持,如果需要迁移的数据库中不仅仅是数据,还有很多function或stored procedure的,请高手帮忙手工做这些模块的迁移吧。
视频教程——比较简单,不过实话实话,这个工具本来就很简单,搞那么复杂反倒没意义。
(附件大小限制,传不上来了,大家需要的话留言及信箱给我,我传过去吧)
电子书教程 —— 这个就涉及了一下深一点的迁移问题了,出问题的时候查查这个电子书吧。


benchensz 2006-07-08 15:55 发表评论
]]>
麦肯锡的年轻人【转载】http://www.blogjava.net/chenpengyi/archive/2006/07/04/56435.htmlbenchenszbenchenszmon, 03 jul 2006 16:06:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/07/04/56435.htmlhttp://www.blogjava.net/chenpengyi/comments/56435.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/07/04/56435.html#feedback1http://www.blogjava.net/chenpengyi/comments/commentrss/56435.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/56435.html
有一个老头,正在草地上放羊,忽然走来一个年轻人:“老先生,我可以为您服务,我将告诉您这群羊有几只,作为酬劳,您需要给我一只羊。”

老头还未作答,年青人就开始了工作:用笔记本电脑无线上网,链接上nasa的内部网,调动低轨道卫星,把卫星遥感成像的图片再通过软件分析。数十分钟后,年轻人再次走到老头面前:“老先生,共有763只。”说完后他抱起一只羊就要走。

老头叫住了年轻人:“年轻人,如果我能猜出你就职的公司,你可不可以把酬劳还给我?”

“可以。”年轻人答。老头:“你是麦肯锡公司的。”

年轻人:“您怎么知道?”老头笑了:“因为你具有该公司咨询人员的所有特点:

第一,你不请自来;

第二,你告诉我的分析结果是我本就知道的;

第三,你抱走的不是羊,而是我的牧羊犬。”



benchensz 2006-07-04 00:06 发表评论
]]>
12道经典推理题,据说谁能全做出来谁就是天才!http://www.blogjava.net/chenpengyi/archive/2006/06/28/55433.htmlbenchenszbenchensztue, 27 jun 2006 17:05:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/06/28/55433.htmlhttp://www.blogjava.net/chenpengyi/comments/55433.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/06/28/55433.html#feedback74http://www.blogjava.net/chenpengyi/comments/commentrss/55433.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/55433.html这是网上很经典的12道推理题,我自己试了一下,其实没有那么神秘那么困难了,大家也可以试试。

1、水平思考法 
有一家人决定搬进城里,于是去找房子。 
全家三口,夫妻两个和一个5岁的孩子。他们跑了一天,直到傍晚,才好不容易看到一张公寓出租的广告。 
他们赶紧跑去,房子出乎意料的好。于是,就前去敲门询问。 
这时,温和的房东出来,对这三位客人从上到下地打量了一番。 
丈夫豉起勇气问道:"这房屋出租吗?" 
房东遗憾地说:"啊,实在对不起,我们公寓不招有孩子的住户。" 
丈夫和妻子听了,一时不知如何是好,于是,他们默默地走开 了。 
那5岁的孩子,把事情的经过从头至尾都看在眼里。那可爱的心灵在想:真的就没办法了? 他那红叶般的小手,又去敲房东的大门。
 
这时,丈夫和妻子已走出5米来远,都回头望着。 
门开了,房东又出来了。这孩子精神抖擞地说:...... 
房东听了之后,高声笑了起来,决定把房子租给他们住。 
问:这位5岁的小孩子说了什么话,终于说服了房东? 

我的想法(首先我保证自己事先没有看过任何答案,朋奕是比较诚实的,但错了也希望大家能礼貌指出)是:小孩以自己身份去租,那么就符合房东条件了。

2、篮球赛 
在某次篮球比赛中,a组的甲队与乙队正在进行一场关键性比赛。对甲队来说,需要嬴乙队6分,才能在小组出线。现在离终场只有6秒钟了,但甲队只蠃了2分。要想在6秒钟内再赢乙队4分,显然是不可能的了。 
这时,如果你是教练,你肯定不会甘心认输,如果允许你有一次叫停机会,你将给场上的队员出个什么主意,才有可能蠃乙队6分? 

我的想法:让对方进球,然后加时再打。

3、分油问题 
有24斤油,今只有盛5斤、11斤和13斤的容器各一个,如何才能将油分成三等份? 

我的想法:先把13斤的倒满,然后用13斤的倒满5斤,这时13斤中就有8斤,也就是1/3了,将这些到如11斤容器中。
再用5斤和剩余的倒满13斤的,重新来一次,就完成了。

4、第十三号大街 
史密斯住在第十三号大街,这条大街上的房子的编号是从13号 到1300号。琼斯想知道史密斯所住的房子的号码。 
琼斯问道:它小于500吗? 史密斯作了答复,但他讲了谎话。 
琼斯问道:它是个平方数吗? 史密斯作了答复,但没有说真话。 
琼斯问道:它是个立方数吗? 史密斯回答了并讲了真话。 
琼斯说道:如果我知道第二位数是否是1,我就能告诉你那所房子的号码。 
史密斯告诉了他第二位数是否是1,琼斯也讲了他所认为的号码。 
但是,琼斯说错了。 
史密斯住的房子是几号? 

我的想法是:64号,首先想最简单的处理办法,这里一共有5个条件,能作为初步判断的只有前三个,那么前三个中最简单的就是第三个立方数的条件,假设为真,得出1~10的立方数,其中既符合平方数的也符合立方数的只有64和512,若大于500则只有512,小于500则64,但512中有1,若通过这个判断是512,那么就不会说错,所以初步判断是64。我判断既符合平方数又符合立方数的原因是如果只符合立方数或平方数其中一项,则会因为符合条件的选项太多而推测不出来,因此估计为两项同时符合,就没有考虑太多了。

5.不同部落间的通婚 
   故事讲的是许多年前欠完美岛上的一件婚事。一个普卡部落人 (总讲真话的)同一个沃汰沃巴部落人(从不讲真话的)结婚。婚后,他们生了一个儿子。这个孩子长大后当然具有西利撤拉部落的性格(真话、假话或假话、真话交替着讲)。 
    这个婚姻是那么美满,以致夫妻双方在许多年中都受到了对方性格的影响。讲这个故事的时候,普卡部落的人已习惯于每讲三句真话 就讲一句假话,而沃汰沃巴部落的人,则己习惯于每讲三句假话就要 讲一句真话。 
这一对家长同他们的儿子每人都有个部落号,号码各不相同。他们的名字分别叫塞西尔、伊夫琳、西德尼 (这些名字在这个岛上男女 通用)。 
三个人各说了四句话,但这是不记名的谈话,还有待我们来推断 各组话是由谁讲的 (我们想,前普卡当然是讲一句假话、三句真话,而前沃汰沃巴则是讲一句真话、三句假话)。 
他们讲的话如下: 
a:(1)塞西尔的号码是三人中最大的。(2)我过去是个普卡。(3)b是我的妻子。(4)我的号码比b的大22。 
b:(1)a是我的儿子。(2)我的名字是塞西尔。(3)c的号码是54或78或81。(4)c过去是个沃汰沃巴。 
c:(1)伊夫琳的号码比西德尼的大10。(2)a是我的父亲。(3)a的号码是66或68或103。(4)b过去是个普卡。 
找出a、b、c三个人中谁是父亲、谁是母亲、谁是儿子,他们各自的名字以及他们的部落号。 

我的想法啊:题目太长了,有点困,不想看,但好像看过很多类似的。明天再看。

6、环球旅行 
    有人开始环球旅行了。可是,在地球上怎样才算"环球"呢?我很茫然,主要是弄不清 "环球旅行"的定义。后来我就假设:"只要是跨过地球上所有的经度线和纬度线,就可以算环球旅行。" 
那么请问,在这样的假设下,环球旅行的最短路程大概是多少公里?不过,解这个题时,为了简化,可以把地球看做是一个正圆球,周长是4万公里。 

我的想法:太简单了,也许是我想的太简单了,考虑一下南北极所有经线相交的特殊性,然后顺着南北极随便找一条经线走一圈就ok了,这样就能把所有的纬线跨过,然后在两个极点的时候把所有经线跨过。4万公里就是答案了。

7、"15点"游戏 
乡村庙会开始了。 
今年搞了一种叫做 "15点"的游戏。
艺人卡尼先生说:"来吧,老乡们。规则很简单,我们只要把硬 币轮流放在1到9这个数字上,谁先放都一样。你们放镍币,我放银元,谁首先把加起来为15的三个不同数字盖住,那么桌上的钱就全数归他。" 
我们先看一下游戏的过程:某妇人先放,她把镍币放在7上,因为将7盖住,他人就不可再放了。其他一些数字也是如此。 
卡尼把一块银元放在8上。 
妇人第二次把镍币放在2上,这样她以为下一轮再用一枚镍币放在6上就可加为
8,于是她以为就可蠃了。但艺人第二次把银元放 在6上,堵住了夫人的路。现在,他只要在下一轮把银元放在1上就可获胜了。 
妇人看到这一威胁,便把镍币放在1上。 
卡尼先生下一轮笑嘻嘻地把银元放到了4上。妇人看到他下次放到5上便可蠃了,就不得不再次堵住他的路,她把一枚镍币放在5上。 
但是卡尼先生却把银元放在3上,因为8 4 3=15,所以他蠃 了。可怜的妇人输掉了这4枚镍币。 
该镇的镇长先生被这种游戏所迷住,他断定是卡尼先生用了一种 秘密的方法,使他比赛时怎么也不会输掉,除非他不想蠃。 
镇长彻夜末眠,想研究出这一秘密的方法。 
突然他从床上跳了下来,"啊哈!我早知道那人有个秘密方法,我现在晓得他是怎么干的了。真的,顾客是没有办法蠃的。" 
这位镇长找到了什么窍门?你或许能发现怎么同朋友们玩这种 "15点"游戏而不会输一盘。 

我的想法:用最简单的思路,肯定是跟能组成15的任选三个无重复的组合有关,那么我们看:
从9开始:9 1 5=15  9 2 4=15
8: 8 1 6=15 8 2 5=15 8 3 4=15
7: 7 2 6=15 7 3 5=15
下面开始就是重复的了,也就是说能组成15的组合只有7对,只要对方选了一个数字后,可供的选择组合成15的选项仅有3组,那么只要记住这些组合,简单就可以取胜了。如果到这里还要解释你的智商就……

9、尤克利地区的电话线路 
直到去年,尤克利地区才消除了对电话的抵制情绪。虽然现在己 着手在安装电话,但是由于计划不周,进展比较缓慢。 
直到今天,该地区的六个小镇之间的电话线路还很不完备。a镇同其他五个小镇之间都有电话线路;而b镇、c镇却只与其他四个小 镇有电话线路;d、e、f三个镇则只同其他三个小镇有电话线路。如果有完备的电话交换系统,上述现象是不难克服的。因为,如果在 a镇装个电话交换系统,a、b、c、d、e、f六个小镇都可以互相通话。但是,电话交换系统要等半年之后才能建成。在此之前,两个小镇之间必须装上直通线路才能互相通话。 
现在,我们还知道d镇可以打电话到f镇。 
请问:e镇可以打电话给哪三个小镇呢? 

abc三个

10,猜字母
s先生:让我来猜你心中所想的字母,好吗? p先生:怎么猜? 
s先生:你先想好一个拼音字母,藏在心里。p先生:嗯,想好了。 
s先生:现在我要问你几个问题。p先生:好,请问吧。 
s先生:你所想的字母在carthorse这个词中有吗? p先生:有的。 
s先生:在senatorial这个词中有吗?p先生:没有。 
s先生:在indeterminables这个词中有吗? p先生:有的。 
s先生:在realisaton这个词中有吗? p先生:有的。 
s先生:在orchestra这个词中有吗? p先生:没有。 
s先生:在disestablishmentarianism中有吗? p先生:有的。 
s先生:我知道,你的回答有些是谎话,不过没关系,但你得告诉我,你上面的六个回答,有几个是真实的? p先生:三个。 
s先生:行了,我已经知道你心中的字母是……。  

我感觉:应该是h

 
11、琼斯教授的奖章 
琼斯教授在w学院开设 "思维学"课程,在每次课程结束时,他总要把一枚奖章奖给最优秀的学生。然而,有一年,珍妮、凯瑟 琳、汤姆三个学生并列地成为最优秀的学生。 
琼斯教授打算用一次测验打破这个均势。 
有一天,琼斯教授请这三个学生到自己的家里,对他们说:"我准备在你们每个人头上戴一顶红帽子或蓝帽子。在我叫你们把眼晴睁开以前,都不许把眼睛睁开来。" 琼斯教授在他们的头上各戴了一顶红帽子。琼斯说:"现在请你们把眼睛都睁开来,假如看到有人戴的是红帽子就举手,谁第一个推断出自己所戴帽子的颜色,就给谁奖章。" 三个人睁开眼睛后都举了手。一分钟后,珍妮喊道:"琼斯教授,我知道我戴的帽子是红色的。" 
珍妮是怎样推论的? 

我的想法:跟最后那个村子的人一样的推理方法,以前听过是打疯狗的故事,其实这些都是一样的,掌握了同一个方法就都懂了。

12、猜帽问题 
在众多的逻辑名题中,影响最广泛的,恐怕要数"猜帽问题"了。下面,举一个例子来说明这类问题的概貌。 
有三顶红帽子和两顶白帽子。将其中的三顶帽子分别戴在 a、b、c三人头上。这三人每人都只能看见其他两人头上的帽子,但看不见自己头上戴的帽子,并且也不知道剩余的两顶帽子的颜色。 
问a:"你戴的是什么颜色的帽子?" a回答说:"不知道。" 接着,又以同样的问题问b。b想了想之后,也回答说:"不知道。" 最后问c。c回答说:"我知道我戴的帽子是什么颜色了。" 当然,c是在听了a、b的回答之后而作出回答的。试问:c戴的是什么颜色的帽子? 
有人说,这个问题的作者是诺贝尔奖金获得者、英国物理学家狄拉克。的确,狄拉克在他的著作中极力推崇这个问题。然而,实际上,远在狄拉克以前的年代,就有这种类型的问题了。不管这类问题的作者是谁,它都不失为逻辑题中的一个杰作,它将以永恒的魅力世世代代地流传下去。 
这类问题,需预先加以规定:出场人物都必须依据正确的逻辑推理。以上题为例,c听了a和b的回答后,知道自己的帽子的颜色,这是以a、b的逻辑推理为前提的。如果a、b胡乱猜测或者智力不足,以致对问题作出了错误的判断,那么,c就不可能作出正确的答案。

我的想法:无想法,博弈论中的公共知识问题。很简单,但必须把这里的人都想成理想的人,然后反向排除法。不去解释了。

13、大女子主义村 
它发生在一个地点不明的愚昧的大女子主义村子里。 
在这个村子里,有50 对夫妇,每个女人在别人的丈夫对妻子不忠实时会立即知道,但从来不知道自己的丈夫如何。 
该村严格的大女子主义章程要求,如果一个女人能够证明她的丈夫不忠实,她必须在当天杀死他。 
假定女人们是赞同这一章程的、聪明的、能意识到别的妇女的聪明、并且很仁慈(即她们从不向那些丈夫不忠实的妇女通风报信)。 
假定在这个村子里发生了这样的事:所有这50个男人都不忠实,但没有哪一个女人能够证明她的丈夫的不忠实,以至这个村子能够快活而又小心翼翼地一如既往。 
有一天早晨,森林的远处有一位德高望重的女族长来拜访。她的诚实众所周知,她的话就像法律。她暗中警告说村子里至少有一个风流的丈夫。这个事实,根据她们已经知道的,只该有微不足道的后果,但是一旦这个事实成为公共知识,会发生什么? 

我的想法:无想法,博弈论中的公共知识问题。很简单。不去解释了。

benchensz 2006-06-28 01:05 发表评论
]]>
垄断=拙劣?对中移动femoo im软件的一些想法。http://www.blogjava.net/chenpengyi/archive/2006/06/19/53855.htmlbenchenszbenchenszmon, 19 jun 2006 14:05:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/06/19/53855.htmlhttp://www.blogjava.net/chenpengyi/comments/53855.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/06/19/53855.html#feedback9http://www.blogjava.net/chenpengyi/comments/commentrss/53855.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/53855.html 新闻:中移动近日向部分省公司下发通知,要求暂缓与提供互联网 im( 即时通讯 ) 业务的 sp 续签移动梦网合作协议。而在移动列出的暂停续约公司名单中,腾讯、网易、 tom 、新浪、 yahoo 等公司均榜上有名。据称该通知的内容是 : “请各省公司对于以下在互联网开展 im 业务的 sp ,如果各全网业务和本地业务 ( 含短信、彩信、 wap java 12586) 的合作协议到期后,先暂停续约,具体后续操作方式等集团公司另行通知各省。”根据业界披露的信息显示,中国移动从去年开始在开发自己的 im 产品,该产品是中移动与华为合作开发的,软件名为“ femoo ”(中文名为“飞信”)。

 

到我说话了:

由于是移动 139.com 邮箱的使用者,所以也比较早收到了关于这个“飞魔还是飞馍(最好是肉夹馍,其实它的任务栏图标还确实有点像肉夹馍)” femoo 的广告,既然已经把手机跟中国移动的邮箱绑定了,也就不在乎再绑定一个了。而且广告上还有更诱人的:给 femoo 上的好友发送手机短信免费!也就是说我们只要在这个 femoo 上添加了朋友,然后就可以在电脑上给这个人的手机(必须是中国移动的)发短信就是免费的了。大学生朋友和打工的朋友们,单看这点就应该去注册一个了吧。

       那就注册吧。注册界面很简洁,三个页面就完了,但奇怪的就是怎么注册界面是 bokee 提供的?难道移动连自己的服务器也没有?不去思考,反正这里的响应速度是一流的,刚点完验证码就发过来了。注册完毕后,就开始自动下载了。

       咦?怎么用了老半天还没下载完毕呢?按理来说这移动的服务器不该这么慢,看了一下下载速度,还可以的。一看大小才发现,天啊!整整 12m 多,人家 qq msn 绑定了那么多的东西也就才那么大啊,怎么这个刚出来就比孕妇还胖了?有点失望……

       下载完了,图标是一个很普通的 msi 的文件安装图标,没有自己的风格。点击安装后,看到了一个使用 windows install wizard 软件制作出来的普通界面,并且没有任何修改,连公司的宣传图片和 logo 都懒得打上去,用的都是,第一时间想起我们公司赶工应付出来的那些软件(做完就直接让网管拿一个最简单的程序安装制作工具打包然后发给顾客,那界面也是如此)。说老实话,这样的界面真的有点糊弄人的感觉。

       不过无所谓了,还是很期待这个产品的,至少这里还有华为人的技术,也许安装部分是移动网管做的,程序是华为人做的。一直点 yes 就好了,但出来的是一个需要输入用户名的界面,不理解中……直到看到下面的程序权限设定(仅限此用户使用或所有使用计算机的人选项)才理解了一点,上面的注册用户就是我 windows 的注册用户,但这个 im 跟我的 windows 注册用户有什么关系?即使是因为权限有了关系,但给出的是一个可以供修改的文本框,什么意思?从来没有见到哪个 im 还要人输入 windows 注册用户名的,这么高深,真的不懂。

       还是算了,一直点 yes 吧。最后终于 ok ,大功告成了。

       在程序组里面找到了飞信程序组,这里不错,够简洁,没有那么多废话。点击后……自动升级启动了,升级咯,升级了老半天,看见那个升级的窗口还在那里,在等了老半天,还是一样的。郁闷了,不是下载的最新的吗?怎么刚下来就要重新升级啊?细细看了升级窗口,才发现这个窗口升级完毕居然连提示都没有,只是进度栏走到了尽头和旁边一个确定按钮,老天,这个窗口的设计者是否“秀豆”了?在一边升级一边做其他事情的人根本就不会知道这个程序完成升级了。

       好了,算了,咱们继续,为了那些免费的短信。升级中……完成了,可以进入了,这次的错误真的是不能理解了——“登陆失败,请检查网络是否连通,如有疑问,请拨打 1860 或访问飞信自服务网站 ”。

       首先我确信我的网络是连通的,因为这个时候 qq 上和 msn 上还有很多好友在给我发搞怪图片。同时刚才下载和升级的时候不好好的吗?第二,怀疑这个 sp (这个应该算是 icp 了)与移动的关系,这几天才说的 1860 1861 合并为 10086 ,作为这么密切的中国移动凯发k8网页登录的合作伙伴,难道还不知道这个消息?倘若知道,我们唯一能怀疑的就是这些做程序的人把程序做的太儿戏了。第三,打开 页面,网页界面制作很精美,可是没有故障通告,也没有所谓的自服务网站内容。由此我认定这不是华为的作品,因为华为作品中即使有些 bug ,但相关网站上基本都会有 bug 和故障说明。

       连接了几次都是如此,终于在尝试了 6 分钟后成功了。谢天谢地!

       进入界面后发现,这界面和功能似乎比 gtalk 还简洁,但想到体积( 12mb vs 890kb )。呵呵,高水平啊。点了一个条件速配,居然还要开通服务,想到移动 sp 的收费,我想还是不开通的好,免得无端每个月少了几十块大洋。到这里对这个软件一点感觉都没有了,算了,以后有空再看看吧,这里总结一下:

 

1.       这个产品有点拙劣(这里的拙劣跟程序员能力无关,相信做这个程序的人员都是不错的,问题出在经营者身上),容易看出是赶工做出来的粗制品,它长得丑我们不怪它,但还没有实现功能就大张旗鼓的吹起来了就是它的不对了。

2.       不正当竞争,利用中国移动自身的垄断资源牟取暴利,意图通过不正当竞争扼杀其他 im 软件(如 tencent )以实现另一个行业垄断。这其实比微软无耻多了,至少微软的 windows 是市场竞争后出来的产品,但我们绝对相信中国移动的强大只是垄断经营的结果。

3.       没有一个很好的设想和策划就开始干活,网络和 im 的经营都没有很清晰的思路。也许这个公司的思路是纯粹依靠移动的垄断地位去实现盈利(没看到吗?免费发短信啊,哪个 im 敢这样写?),所以也就没想如何讨好顾客了。

 

这不是什么分析文章,只是用完这个产品的感觉而已,没有去抨击任何企业或个人的意思。大家如果对这个产品有什么不爽的地方可以在 femoo 上跟我谈(我的馍号是: 443152595 ),有帮它做广告的嫌疑,嘿嘿。



benchensz 2006-06-19 22:05 发表评论
]]>
发改委可真逗“别紧张,国外油价比俺高”[转载]http://www.blogjava.net/chenpengyi/archive/2006/05/25/48238.htmlbenchenszbenchenszthu, 25 may 2006 15:37:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/05/25/48238.htmlhttp://www.blogjava.net/chenpengyi/comments/48238.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/05/25/48238.html#feedback7http://www.blogjava.net/chenpengyi/comments/commentrss/48238.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/48238.html以下内容仅为转载,供大家参考,不代表斑竹及网站意见。

受国际原油价格急速上涨的影响,在前一期油价调整方案刚刚落槌,发改委又不得不再一次拿起涨价的大槌,大幅调整国内成品油价格,汽油、柴油和航空煤油每吨分别上调了500元人民币,涨幅也是近年来最高的一次。

  基础能源涨价可不是闹着玩的,到时候所有的商品都会跟着涨价,面对这接二两三地涨势,人们被迫发出了愤怒的吼声,向这个中国经济的“老大”发出了严重质问。而发改委则安慰和解释说:“我国油价中目前未包括道路修建和养护的费用,这是我国石油价格构成与国外不同之处。欧洲国家石油价格中包括燃油税(即用于道路建设和养护的专项税收),同时出于环保要求和抑制石油资源消费的目的,对汽、柴油消费课以重税,燃油税在零售价格中比重通常超过50%,高的达70%以上。目前英国汽油零售价折合人民币为每升12.8元;法国汽油零售价折合人民币为每升12元,均比我国汽油平均零售价高2倍左右。美国各种税收在零售价格中所占比重为20%左右,普通汽油价格为每升6.11元,比国内汽油平均价格高35%左右。我国还没有实行燃油税制度,即使考虑养路费负担因素,国内消费者负担也低于欧美国家。”(新华社)

  看到这种解释,不由得不让人怀疑发改委是不是“秀逗”了?

  第一,这种价格比较方法是不是有点不靠谱啊!很明显,人家的油品是在附加了“燃油税”以后公布的价格,是社会控制价和油价的混合价格,不是我们这种形式和意义上的油品价格。应该在国际上找出同我们一样的,还没有附加“燃油税”的对象进行比对,或者是排除掉“燃油税”考察实际油价的涨幅,这种把制度因素混和进商品价格有点不能接受。如果硬要这样比对,哪好,你把人家的社会保障机制、福利状况和劳动保障都拿出来比对一下,看看谁的综合负担最重?!

  第二,这个“目前英国汽油零售价折合人民币为每升12.8元”也有问题。
  据我国“劳动网”报道“在1966年至2006年的40年间,英国平均工资翻了28倍。 1966年,英国平均周工资为18英镑(男职工23英镑,女职工12英镑), 其中医生、教师、工人的周工资分别为57英镑、27英镑和20英镑;1996年,英国平均周工资增至351英镑,其中医生、教师、工人的周工资分别为852英镑、444英镑和281英镑;到2006年,英国平均周工资增至503英镑(男职工571英镑,女职工437英镑),其中医生、教师、工人的周工资分别为1348英镑、640英镑和432英镑。”
  
  而人民币与英镑的兑换价是1英镑兑换15元人民币,就以2006年英国平均月工资兑换人民币(周工资503×4周×15元人民币)计算,英国每月平均高达30180元人民币,而我国平均月工资是多少呢?据国家统计局 2006年第3号公告显示,2005年全国城镇单位“在岗职工”年平均工资为18405元,那么月平均工资就是(18405元÷12月)=1533.75元人民币。

  月平均工资收入相差近20大倍,油品价格则只相差2倍,这么欣喜若狂如果不是“秀逗”了,是什么?!

         所谓的国际接轨:
         凡是收费的,都要和欧美接轨;
         凡是福利的,都要和非洲接轨。


benchensz 2006-05-25 23:37 发表评论
]]>
吴睿鸫:纳税人为何只有义务而没有权利[转]http://www.blogjava.net/chenpengyi/archive/2006/05/25/48235.htmlbenchenszbenchenszthu, 25 may 2006 15:35:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/05/25/48235.htmlhttp://www.blogjava.net/chenpengyi/comments/48235.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/05/25/48235.html#feedback3http://www.blogjava.net/chenpengyi/comments/commentrss/48235.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/48235.htmlhttp://www.sina.com.cn 2006年05月24日00:06 红网

  我们都知道,纳税是每个公民的义务,但纳税人拥有哪些权利,却没几个人能说得出,难道说,纳税人,只有义务没有权利?5月20日,在由中国法学会、北京大学法学院举办的“和谐社会与税收司法改革”国际研讨会上,专家们对此进行了热烈的讨论。(《中国青年报》5月23日)

  在这次国际研讨会上,专家们把纳税人权利短缺问题,放到了台面上,呈现给广大公众。为改变纳税人权利实现问题,著名财税专家刘剑文教授认为,造成这种畸形现象的根本原因在于纳税人的权利在我国现行法律法规中缺少明确规定,我国应制订一部《纳税人权利法》,以保障纳税人权利真正得到兑现。

  对于专家从立法的高度,来破解纳税人权利打折的困局,相认大家都会表示赞同。然而,笔者以为,如果仅从立法的角度,来解决这个难题,显然治标不治本,有失偏颇。因为,纳税人之所以权利被屡屡折扣,甚至于得不到任何兑现,其根源是与税收宣传、用税观念、权利打折有着密切关系。

  首先,税收宣传理念错位。在税收宣传中存在一个误区,无论是学生课本,还是纳税宣传,大多为强调税收的强制性、无偿性和固定性,而很少涉及到纳税人拥有那些权利。比如说,在许多公益广告中,我们经常可以看到这样的标语——依法纳税税是每个公民的义务。马克思指出:“没有无义务的权利,也没有无权利的义务。”在现代社会里,权利与义务是对等的。权利与义务是一个不可分割的统一整体,有权利就有义务,有义务就有权利。既为强制性、无偿性,那也就是单方面的义务,就是不对等的。

  其次,政府用税理念错位。公民依法纳税与政府提供公共产品和服务之间事实是一种契约关系,民众依法纳税就是要换取政府提供的公共产品,税收是政府提供公共产品和服务获得的“报酬”。因此,每一笔税款怎么用,政府部门吃饭消费多少,公车消费多少,公务员工资支出多,医疗投资多少,教育又投资多少等等,这些都涉及到用税公平问题。这些问题不应只是预算监督部门所考虑的事情,也是应该向全社会公开,接受纳税人监督,这样才能最大程度上促进税收公平使用。可是,现实情况却是,政府的钱花在何处,一些官员们为所欲为,似乎无须直接向纳税人负责。比如说,国家体育总局下属公司提取个人奖酬金1.31亿元;教育部所属单位全国大学英语四六级考试委员会归集英语四六级考试费1.54亿元,国土资源部违规投资2.4亿元建大厦,科学技术部转移1500万元科技经费只为报销餐费交通费……,频频出现这些问题的背后实质是,政府用税理念严重错位,政府与民众并未摆正谁是真正的主人。

  再者,纳税人权利屡屡打折。从宏观角度来讲,纳税人拥有政治权利,所谓政治权利,即为公民权利,包括选举权和被选举权、基本人权和监督权等等。就目前而言,国内纳税人能普遍享有这些权利吗?不能说完全没有,但是在现实生活中,纳税人所得到的权利至少被打折了。比如说最近发生纳税权利觉醒代表蒋石林,以一名普通纳税人的身份将常宁市(县级市,隶属于湖南省衡阳市)财政局告上了法庭,要求法院认定该市财政局超出年度财政预算购买两台小车的行为违法,并将违法购置的轿车收归国库,以维护纳税人的合法权益。可是他在行使自己的监督权利时,却受到让常人难以忍受百般刁难。我想,如果这起起公益诉讼案件没有媒体和社会公众监督的及时跟进,极有可能会出现权利白条现象。

作者:吴睿鸫


benchensz 2006-05-25 23:35 发表评论
]]>
精彩(看疯了)小说——《输赢》转载http://www.blogjava.net/chenpengyi/archive/2006/05/19/46939.htmlbenchenszbenchenszthu, 18 may 2006 16:42:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/05/19/46939.htmlhttp://www.blogjava.net/chenpengyi/comments/46939.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/05/19/46939.html#feedback11http://www.blogjava.net/chenpengyi/comments/commentrss/46939.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/46939.html 开火老兄的小说《输赢》确实不错,转过来给blogjava的兄弟看看。

这个小说已经在网上被看疯了,我个人觉得可以看看,以后不从事编程工作了就有用了。

我把前142回都收集了,为了方便大家观看,只分了四页,不用感谢我的,哈哈。

地址是:
http://www.blogjava.net/chenpengyi/category/11305.html

如果开火兄弟对转载有意见,可以给我写信,我立刻撤下。

benchensz 2006-05-19 00:42 发表评论
]]>
如何在工作中学习英文——忙里偷闲听英语电台http://www.blogjava.net/chenpengyi/archive/2006/05/14/46141.htmlbenchenszbenchenszsun, 14 may 2006 15:24:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/05/14/46141.htmlhttp://www.blogjava.net/chenpengyi/comments/46141.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/05/14/46141.html#feedback8http://www.blogjava.net/chenpengyi/comments/commentrss/46141.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/46141.html 如何在繁忙的工作中学习英文——忙里偷闲听英语电台

给大家介绍一个学习英语的好办法,一边做其他轻松的事情的时候戴上耳机听英语电台,这样比你听音乐好多了,而且还能让自己找到语感。所以这里给大家提供了部分这些电台的收听地址,希望能给各位blogjava的同事们带来点帮助。

这里需要大家安装realplayer,这些废话就不需要跟blogjava的兄弟们说了,不会就怪了。

澳大利亚 abc 在线英语广播电台

还可以的地方,推荐可以去。
 





美国 npr 在线英语广播电台

我个人比较喜欢的,因为新闻比较多,而且连接比较容易连上。
 





美国 bloomberg 在线英语广播电台

美国迪,不评论了,比较综合的
 




英国 bbc(1台) the best new music

最新最hot的外文音乐
 





英国 bbc(2台) the nation's favourite

全民公爱,呵呵,不是中国的,是英国的
 





英国 bbc(3台) live music and arts

现场音乐会等
 





英国 bbc (6 台)     playing what we like


音乐和新闻的
 




美国 cnn 在线英语广播电台

cnn,很出名的哦,不过这里只是topstory报告






英国 bbc(7台) comedy and drama

歌剧话剧台,听故事的地方
 




英国 bbc(asian network) british asian radio

bbc的亚洲电台,不过感觉india口音居多

 


英国bbc(wales威尔士)在线英语广播电台

这个速度一般,不过有晚上不错的音乐。:)
 



英国 bbc new black music

黑人电台?呵呵,估计是,听音乐风格就是






新西兰 rnzi 在线英语广播电台

不太熟悉的电台,有些新闻和音乐
 

希望能给大家带来一些帮助咯,如果各位有什么更好的方法一起讨论。


benchensz 2006-05-14 23:24 发表评论
]]>
受益终生的十大经典管理学定律[转]http://www.blogjava.net/chenpengyi/archive/2006/05/12/45752.htmlbenchenszbenchenszthu, 11 may 2006 16:27:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/05/12/45752.htmlhttp://www.blogjava.net/chenpengyi/comments/45752.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/05/12/45752.html#feedback1http://www.blogjava.net/chenpengyi/comments/commentrss/45752.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/45752.html     1、彼得原理 

  每个组织都是由各种不同的职位、等级或阶层的排列所组成,每个人都隶属于其中的某个等级。彼得原理是美国学者劳

 

·彼得在对组织中人员晋升的相关现象研究后,得出一个结论:在各种组织中,雇员总是趋向于晋升到其不称职的地位。彼得原理有时也被称为向上爬的原理。 这种现象在现实生活中无处不在:一名称职的教授被提升为大学校长后,却无法胜任;一个优秀的运动员被提升为主管体育的官员,而无所作为。对一个组织而言,一旦相当部分人员被推到其不称职的级别,就会造成组织的人浮于事,效率低下,导致平庸者出人头地,发展停滞。因此,这就要求改变单纯的根据贡献决定晋升的企业员工晋升机制,不能因某人在某个岗位上干得很出色,就推断此人一定能够胜任更高一级的职务。将一名职工晋升到一个无法很好发挥才能的岗位,不仅不是对本人的奖励,反而使其无法很好发挥才能,也给企业带来损失。

  2、酒与污水定律

  酒与污水定律是指把一匙酒倒进一桶污水,得到的是一桶污水;如果把一匙污水倒进一桶酒,得到的还是一桶污水。在任何组织里,几乎都存在几个难弄的人物,他们存在的目的似乎就是为了把事情搞糟。最糟糕的是,他们像果箱里的烂苹果,如果不及时处理,它会迅速传染,把果箱里其他苹果也弄烂。 烂苹果的可怕之处,在于它那惊人的破坏力。一个正直能干的人进入一个混乱的部门可能会被吞没,而一个无德无才者能很快将一个高效的部门变成一盘散沙。组织系统往往是脆弱的,是建立在相互理解、妥协和容忍的基础上的,很容易被侵害、被毒化。破坏者能力非凡的另一个重要原因在于,破坏总比建设容易。一个能工巧匠花费时日精心制作的陶瓷器,一头驴子一秒钟就能毁坏掉。如果一个组织里有这样的一头驴子,即使拥有再多的能工巧匠,也不会有多少像样的工作成果。如果你的组织里有这样的一头驴子,你应该马上把它清除掉,如果你无力这样做,就应该把它拴起来。

  3、木桶定律

  水桶定律是讲一只水桶能装多少水,这完全取决于它最短的那块木板。这就是说任何一个组织,可能面临的一个共同问题,即构成组织的各个部分往往是优劣不齐的,而劣势部分往往决定整个组织的水平。水桶定律与酒与污水定律不同,后者讨论的是组织中的破坏力量,最短的木板却是组织中有用的一个部分,只不过比其他部分差一些,你不能把它们当成烂苹果扔掉。强弱只是相对而言的,无法消除,问题在于你容忍这种弱点到什么程度,如果严重到成为阻碍工作的瓶颈,你就不得不有所动作。

  4、马太效应

  《新约·马太福音》中有这样一个故事:一个国王远行前,交给3个仆人每人一锭银子,吩咐道:你们去做生意,等我回来时,再来见我。国王回来时,第一个仆人说:主人,你交给我的一锭银子,我已赚了10锭。于是,国王奖励他10座城邑。第二个仆人报告:主人,你给我的一锭银子,我已赚了5锭。于是,国王奖励他5座城邑。第三仆人报告说:主人,你给我的1锭银子,我一直包在手帕里,怕丢失,一直没有拿出来。于是,国王命令将第三个仆人的1锭银子赏给第一个仆人,说:凡是少的,就连他所有的,也要夺过来。凡是多的,还要给他,叫他多多益善,这就是马太效应,反应当今社会中存在的一个普遍现象,即赢家通吃。对企业经营发展而言,马太效应告诉我们,要想在某一个领域保持优势,就必须在此领域迅速做大。当你成为某个领域的领头羊时,即便投资回报率相同,你也能更轻易地获得比弱小的同行更大的收益。而若没有实力迅速在某个领域做大,就要不停地寻找新的发展领域,才能保证获得较好的回报。

  5、零和游戏原理

  零和游戏是指一项游戏中,游戏者有输有赢,一方所赢正是另一方所输,游戏的总成绩永远为零,零和游戏原理之所以广受关注,主要是因为人们在社会的方方面面都能发现与零和游戏类似的局面,胜利者的光荣后面往往隐藏着失败者的辛酸和苦涩。 20世纪,人类经历两次世界大战、经济高速增长,科技进步、全球一体化以及日益严重的环境污染,零和游戏观念正逐渐被双赢观念所取代。人们开始认识到利已不一定要建立在损人的基础上。通过有效合作皆大欢喜的结局是可能出现的。但从零和游戏走向双赢,要求各方面要有真诚合作的精神和勇气,在合作中不要小聪明,不要总想占别人的小便宜,要遵守游戏规则,否则双赢的局面就不可能出现,最终吃亏的还是合作者自己。

  6、华盛顿合作规律

  华盛顿合作规律说的是一个人敷衍了事,两个人互相推诿,三个人则永无成事之日。多少有点类似于我们三个和尚的故事。人与人的合作,不是人力的简单相加,而是要复杂和微妙得多。在这种合作中,假定每个人的能力都为1,那么,10个人的合作结果有时比10大得多,有时,甚至比1还要小。因为人不是静止物,而更像方向各异的能量,相互推动时,自然事半功倍,相互抵触时,则一事无成。 我们传统的管理理论中,对合作研究得并不多,最直观的反映就是,目前的大多数管理制度和行为都是致力于减少人力的无谓消耗,而非利用组织提高人的效能。换言之,不妨说管理的主要目的不是让每个人做得更好,而是避免内耗过多。

  7、手表定理

  手表定理是指一个人有一只表时,可以知道现在是几点钟,当他同时拥有两只表时,却无法确定。两只手表并不能告诉一个人更准确的时间,反而会让看表的人失去对准确时间的信心。手表定理在企业经营管理方面,给我们一种非常直观的启发,就是对同一个人或同一个组织的管理,不能同时采用两种不同的方法,不能同时设置两个不同的目标,甚至每一个人不能由两个人同时指挥,否则将使这个企业或这个人无所适从。手表定理所指的另一层含义在于,每个人都不能同时选择两种不同的价值观,否则,你的行为将陷于混乱。

  8、不值得定律

  不值得定律最直观的表述是:不值得做的的事情,就不值得做好。这个定律再简单不过了,重要性却时时被人们忽视遗忘。不值得定律反映人们的一种心理,一个人如果从事的是一份自认为不值得做的事情,往往会保持冷嘲热讽,敷衍了事的态度,不仅成功率低,而且即使成功,也不觉得有多大的成就感。 因此,对个人来说,应在多种可供选择的奋斗目标及价值观中挑选一种,然后为之奋斗。选择你所爱的,爱你所选择的,才可能激发我们的斗志,也可以心安理得。而对一个企业或组织来说,则要很好地分析员工的性格特性,合理分配工作,如让成就欲较强的职工单独或牵头完成具有一定风险和难度的工作,并在其完成时,给予及时的肯定和赞扬;让依附欲较强的职工,更多地参加到某个团体*同工作;让权力欲较强的职工,担任一个与之能力相适应的主管。同时要加强员工对企业目标的认同感,让员工感觉到自己所做的工作是值得的,这样才能激发职工的热情。

  9、蘑菇管理

  蘑菇管理是许多组织对待初出茅庐者的一种管理方法,初学者被置于阴暗的角落(不受重视的部门,或打杂跑腿的工作),浇上一头大粪(无端的批评、指责、代人受过),任其自生自灭(得不到必要的指导和提携)。相信很多人都有过这样一段蘑菇的经历,这不一定是什么坏事,尤其是当一切刚刚开始的时候,当几天蘑菇,能够消除我们很多不切实际的幻想,让我们更加接近现实,看问题也更加实际。一个组织,一般对新进的人员都是一视同仁,从起薪到工作都不会有大的差别。无论你是多么优秀的人才,在刚开始的时候,都只能从最简单的事情做起,蘑菇的经历,对于成长中的年轻人来说,就象蚕茧,是羽化前必须经历的一步。所以,如何高效率地走过生命的这一段,从中尽可能汲取经验,成熟起来,并树立良好的值得信赖的个人形象,是每个刚入社会的年轻人必须面对的课题。

  10、奥卡姆剃刀定律

  12世纪,英国奥卡姆的威廉主张唯名论,只承认确实存在的东西,认为那些空洞无物的普遍性概念都是无用的累赘,应当被无情地剃除。他主张如无必要,勿增实体。这就是常说的奥卡姆剃刀。这把剃刀曾使很多人感到威胁,被认为是异端邪说,威廉本人也因此受到迫害。然而,并未损害这把刀的锋利,相反,经过数百年的岁月,奥卡姆剃刀已被历史磨得越来越快,并早已超载原来狭窄的领域,而具有广泛、丰富、深刻的意义。  奥卡姆剃刀定律在企业管理中可进一步演化为简单与复杂定律:把事情变复杂很简单,把事情变简单很复杂。这个定律要求,我们在处理事情时,要把握事情的主要实质,把握主流,解决最根本的问题,尤其要顺应自然,不要把事情人为地复杂化,这样才能把事情处理好。

benchensz 2006-05-12 00:27 发表评论
]]>
使用jboss seam简化web开发(入门教学flash)http://www.blogjava.net/chenpengyi/archive/2006/05/11/45573.htmlbenchenszbenchenszwed, 10 may 2006 16:25:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/05/11/45573.htmlhttp://www.blogjava.net/chenpengyi/comments/45573.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/05/11/45573.html#feedback10http://www.blogjava.net/chenpengyi/comments/commentrss/45573.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/45573.html使用jboss seam简化web开发(入门教学flash)

      jboss seam以前听过,说什么能提升web开发效率,同时大大(这个大大当时说得可是相当大的)简化web开发,缩减开发时间,同时遵从java server faces(简称jsf)前端标准以及后台ejb3.0规范。听起来仿佛感觉挺牛的,而且当时评价seam的仁兄提到这个seam比groovy会好点,应该可以作为java世界里的ruby on rails(ror),并称其为jror。

      今天没事逛了一下jboss的网站,突然发现这个“example showing you how to generate a crud web application from a database using jboss eclipse ide”,就停下来看了一下,确实不错,再提升一下估计就可以跟pb比了(只是可视化方面没那么强)。这个flash可以算做jboss seam的入门教学了,一共4mb,大家观看的时候耐性等待一下,如果看不到可以直接去下载,地址是:在blogjava凯发k8网页登录主页会看不到,点击http://www.blogjava.net/chenpengyi/archive/2006/05/11/45573.html进入才能看到这个教程。


      相信凭借其老夫jboss与hibernate的暧昧关系在orm上一点都不会比其他开发工具弱。同时得益与其对jboss服务器的完美支持,估计今后信徒一定不少,只是现在感觉国内好像信徒并不是很多的样子。

      需要的运行环境是jboss eclipse ide,也就是jems development tools for eclipse,jems是jboss enterprise middleware system的简写,它有如下特性(从jboss抄来的):

      开源不要钱的产品许可

      与eclipse3整合的开发环境

      支持ejb 3.0项目的向导

      hibernate工具支持

      aop切向编程工具支持

      jboss jbpm图形化流程设计

      简化j2ee开发向导

      与jboss应用服务器整合调试、监测以及生命周期控制

      jsp、html以及xml语法高亮的编辑器

      简化了档案包的发布和配置


可以从以下地址下载:

呵呵,大家去试试做一个自己的jboss seam吧。



benchensz 2006-05-11 00:25 发表评论
]]>
gel —— 世界上最轻巧的java idehttp://www.blogjava.net/chenpengyi/archive/2006/05/10/45322.htmlbenchenszbenchensztue, 09 may 2006 17:20:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/05/10/45322.htmlhttp://www.blogjava.net/chenpengyi/comments/45322.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/05/10/45322.html#feedback16http://www.blogjava.net/chenpengyi/comments/commentrss/45322.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/45322.html号称世界上最轻巧的java ide —— gel

号称世界上最轻巧的java ide —— gel,不仅能够自动(有点智能了……)完成,而且还支持jsp语法。看到过国外一个猛人的博客中说高手最喜欢用的java ide就是gel了,虽然不是特别相信,但gel确实是很有特色的,就像很多喜欢用jc的人一样,明明很多功能eclipse和netbeans做得很好,还是喜欢用这些小巧的软件。

大家试试使用吧,不过推荐大家用一下1.5以下版本的java sdk吧,不然容易出错。
version 1.0 rc 4.0版 (zip 文件包共4.2mb,够小吧)
下载地址:127.0.01/(自己电脑上有,但没有空间上传,要的留e-mail地址)

version 1.0 rc 3.9版 (估计跟4.0没多大区别,4.3mb)
下载地址:

教程下载: gel-ref.rar

有看csdn的人一定知道这个世界上最轻量级的java ide了,其支持的功能跟jc不相上下,但体积和速度却大不相同。以前用过,感觉还可以,但最近使用了java sdk 1.42以上版本的sdk后就发现使用不太正常,不知道是什么问题。知道的兄弟希望可以给点解决方法,谢谢啦。



benchensz 2006-05-10 01:20 发表评论
]]>
吓死人的退休公务员工资[转]http://www.blogjava.net/chenpengyi/archive/2006/05/07/44817.htmlbenchenszbenchenszsat, 06 may 2006 16:01:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/05/07/44817.htmlhttp://www.blogjava.net/chenpengyi/comments/44817.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/05/07/44817.html#feedback1http://www.blogjava.net/chenpengyi/comments/commentrss/44817.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/44817.html原文地址

      昨天请一个朋友吃饭,正好赶上他的老上级,一个刚刚退休的某部委一个副局级干部.因为原来做过他们那里的项目,也非常熟.聊起退休后的工作,老先生非常高兴.他老伴去世已经一年多了,他刚转过来情绪.正在和一个三十多的漂亮女性谈恋爱.酒喝多了,自然话也就多,他现在敢和三十多岁的女孩谈恋爱,斯因为自己有经济实力.他说,每月的退休金将近6千元,加上医疗保险补贴,还有其它部里发的暗补,每个月基本上在1万2左右.

      我听得都有点惊呆了.本来,他已经有了三套房子,每套价值百万,都是好地点的,部里的房子地点不会差.光出租其它两套房就每月至少5千元,天啊,他们也太厉害了,难怪全国人民努力工作还是工资无法上涨,纳税了那么多钱还是每年有财政赤字,教育也严重投入不足,结果是都花在养活这些退休的官员身上了.大家知道,北京的局级干部才称得上高干,可是局级干部在北京多如牛毛,一个副局级干部的退休生活尚且如此,估计局级干部就更牛了.

    还不止这些,据老先生讲,他们单位一个初级干部退休,每月退休工资5000多,加上各种补贴,也要将近1万了.

   想到辛辛苦苦工作了一辈子,退休了只有1000多的北京众多的老工人,我真想哭.我自己每个月上的员工老保险,据说二十多年退休后,每月只有1000多的退休金.可是现在我好歹也是个白领啊.

    难怪现在很多人考公务员,准备当官,现在看来这条路是对的,大家赶快去吧,千万别做什么技术,去什么公司,当官在中国才是正路,有权才有钱啊.老百姓只有苦命啊

命苦的人啊……呵呵,现在确实有点变质的社会主义的感觉。仇富心理已经比较厉害了,中层阶级数量太少,然而现有的中层阶级还是一个排挤性相当强的中层,没有家族背景不让进入。不过,俺不关心,做自己的小打工仔就好了。



benchensz 2006-05-07 00:01 发表评论
]]>
看看你的博客值多少钱http://www.blogjava.net/chenpengyi/archive/2006/05/06/44726.htmlbenchenszbenchenszsat, 06 may 2006 04:25:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/05/06/44726.htmlhttp://www.blogjava.net/chenpengyi/comments/44726.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/05/06/44726.html#feedback3http://www.blogjava.net/chenpengyi/comments/commentrss/44726.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/44726.html 发现了一个比较旧,但还挺有意思的dd,可以用来评估你的博客价值的,其实alexa也有,但好像没这么直观(直接给出rbm的价值)。
网址是:
大家可以去试试。
先拿blogjava第一的江南白衣做了个试验:
blogjava - 花钱的年华  评估价值:33,405 rmb
hoho,还可以啊,咱们白衣同志要是不想工作了就把博客一卖也能活个一段时间了。
第二个是emu老兄:
blogjava - emu in blogjava  评估价值:7,365 rmb
嗯,还是不错滴水。
俺自己的:
blogjava - 陈朋奕和谢仍明的博客  评估价值:485 rmb
哈哈,可以卖了请emu兄弟吃顿饭啦。


benchensz 2006-05-06 12:25 发表评论
]]>
沉重窒息、催人泪下的韩国电影《假日》——不看绝对是你的损失!http://www.blogjava.net/chenpengyi/archive/2006/05/06/44699.htmlbenchenszbenchenszfri, 05 may 2006 16:13:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/05/06/44699.htmlhttp://www.blogjava.net/chenpengyi/comments/44699.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/05/06/44699.html#feedback27http://www.blogjava.net/chenpengyi/comments/commentrss/44699.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/44699.html   这个韩国电影down下来好久了,一直没有机会看,今天晚上终于拿起来看了。剧情真的很好,而且悲伤的地方让人感动、流泪,沉重的地方让人哀叹、深思、窒息……韩国电影《假日》
r_200641514433694888.jpg 
   故事取材于真实的故事,而且最后结局的时候也说到,即使是如今真实的韩国也有很多这样的司法过失,这个电影揭露了韩国司法上黑暗的一面:无钱有罪,有钱无罪!有钱人可以买通司法检察官,没钱的人只能等待死亡。
   其实回头看看现在哪个国家的司法不是这样?除了几个比较没有政府的国家外,其他的应该基本如此罢,差别也仅仅在于程度而已,唉,不谈国事了,哪个朝代都会有这样的事情,谁都不能例外……真实、真情、真相,一个又一个连贯的情节让我们没有办法不去思考当时的韩国社会到底怎么了?估计居汉文到死的那个时刻也不会相信自己的政府会为了外国人来伤害同胞,但恰恰是哪个政府的走狗把一颗政府的子弹射进了同胞的身体里……情节很真实,而对主人公的心理描写也很真实,那种叫天不应叫地不灵的绝望心态表现得淋漓尽致。用悲伤刻画的黑暗社会,天是灰黑灰黑的,怎么看也看不到希望,但这些底层的人却并没有丧失道德,而是坚持人生的底线。正如大多数悲剧故事的结局那样,最后还是好人死了,坏人继续做坏事、继续逍遥。最开始看的时候觉得有点《肖申克的救赎》的感觉,以为主人公的希望会实现,可没想到整个天下都是黑的,特别是结尾时可恨的警官出来后宣布“它的功绩”时那些记者的掌声更让人有心寒的感觉。也许主人公选择离开是正确的,因为对他这个小人物而言,这个世界已经没有值得留念的东西了。
   虽然这样的电影反映了当时韩国黑暗的政治,但如今这样的电影在韩国却有人敢拍,而且没有遭到封杀(应该没有吧,不然怎么传到这里来了),这就说明现在的韩国已经有了一个比较好的民主环境了。呵呵,什么时候咱们这边也拍个这样的电影呢?
   这个电影是我觉得今年最值得看的电影,也许看了这个电影也就该明白为什么政治书上说国家只是暴力机器了。下面给出下载bt的链接,大家一起下载吧。
地址:http://www.blogjava.net/files/chenpengyi/假日dvd.torrent.zip
备用地址:
 btw:电影里主题曲是beegee乐队的歌曲《holiday》,但这首名曲可不是白用的,原曲的使用费高达12万美元,为了省些银子决定支付6万美元只使用音乐。可是两位主演李成宰和崔民秀坚决不同意,甚至表示愿意自己掏腰包补贴购买原曲使用权,也许是为了成全他们的诚意,最终bee gees方也进行了让步,决定以9万美元成交。这9万美元究竟值不值,听到bee gees乐队那令人心颤的音乐就知道了(曾经有权威乐评人说过,“假如这个世界没有bee gees,这个世界就不会有情歌”,这里给出这首歌的下载地址,大家喜欢的就去下载)。
歌词:
holiday --bee gees  
ooh you're a holiday , such a holiday 
ooh you're a holiday , such a holiday 
 
it's something i thinks worthwhile 
if the puppet makes you smile 
if not then you're throwing stones 
throwing stones, throwing stones 
 
ooh it's a funny game  
don't believe that it's all the same 
can't think what i've just said  
put the soft pillow on my head 
 
millions of eys can see  
yet why am i so blind 
when the someone else is me 
it's unkind, it's unkind 
 
de de de de de de de de de de de de de  
de de de de de de de de de de de de de  
 
yet millions of eyes can see  
yet why am i so blind 
when the someone else is me  
it's unkind, it's unkind  
 
ooh you're a holiday , ev'ry day , such a holiday 
now it's my turn to say , and i say you're a holiday 
it's something i thinks worthwhile 
if the puppet makes you smile 
if now then you're throwing stones 
throwing stones , throwing stones   
de de de de de de de de de de de de de de 

大家看了有什么感想,希望留言一起讨论,感动和沉重的心情需要一起分享……

benchensz 2006-05-06 00:13 发表评论
]]>
通过分区(partition)提升mysql性能[原创翻译]http://www.blogjava.net/chenpengyi/archive/2006/05/05/44631.htmlbenchenszbenchenszfri, 05 may 2006 06:39:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/05/05/44631.htmlhttp://www.blogjava.net/chenpengyi/comments/44631.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/05/05/44631.html#feedback9http://www.blogjava.net/chenpengyi/comments/commentrss/44631.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/44631.html阅读全文

benchensz 2006-05-05 14:39 发表评论
]]>
是string,stringbuffer还是stringbuilder?http://www.blogjava.net/chenpengyi/archive/2006/05/04/44492.htmlbenchenszbenchenszwed, 03 may 2006 17:15:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/05/04/44492.htmlhttp://www.blogjava.net/chenpengyi/comments/44492.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/05/04/44492.html#feedback19http://www.blogjava.net/chenpengyi/comments/commentrss/44492.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/44492.html阅读全文

benchensz 2006-05-04 01:15 发表评论
]]>
为什么丛飞资助了一群白眼狼?[转自blog家园]http://www.blogjava.net/chenpengyi/archive/2006/05/02/44327.htmlbenchenszbenchenszmon, 01 may 2006 17:48:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/05/02/44327.htmlhttp://www.blogjava.net/chenpengyi/comments/44327.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/05/02/44327.html#feedback2http://www.blogjava.net/chenpengyi/comments/commentrss/44327.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/44327.html    丛飞去世了……对我们来说,这真的是2006年深圳人最大的不幸。逝去已经是不幸,但如果让我们知道了他当初资助的都是这些人,这就是民族的不幸了,今晚在网上看到这篇文章,气愤不过,转过来给大家看看,到底现在这些所谓的大学生这些所谓的人都怎么了?真的很害怕中华民族会变成一个道德缺失的民族,到那个时候也许中华民族这四个字就只是名存实亡了。心寒啊,鲁老如果活到了今天一定不会觉得那带血的馒头有什么奇怪了。

大家都在拷问:为什么?这个社会怎么了?

受助者李某:被人知道会没面子

受丛飞资助的李某大学毕业已经工作了,毕业后与丛飞没有任何联系,只是有一次接受媒体采访时,“不小心”说出了受丛飞资助上大学的事实。几天后,他从网上看到记者写的文章中提到了自己的名字,很不高兴,感到没面子,要求丛飞想办法删去文章中他的名字。

丛飞的朋友林燕打通了李某的电话“我很平静地问他为什么要删去名字,他说他现在是大学老师,这事让学生知道了会很没面子。我说贫困受助是你一生 中的重大机遇,再说贫困又不是罪恶,学生知道了还能怎么想?他说我就是不想让学生知道我过去的状况。我问,受助是耻辱吗?他说,我没说是耻辱,但我希望永 远不再提起这段往事。”听到这里,林燕气不打一处来,“当天晚上,我一整夜没有睡着,第二天见到丛飞,他告诉我,他也失眠了一夜。”林燕说:“现在,喜欢 上网的李某一定从网上看到了关于丛飞的报道,但至今连一声问候都没有!”说这话的时候,林燕一脸怆然。

受助者小a:他帮我肯定另有所图

受助者小a,大学毕业前夕,她还与丛飞保持联系,丛飞一直通过电话对她进行辅导,并在她即将大学毕业时为她找工作,但后来,只是丛飞为她找的学校音乐教师的岗位她不满意,才失去联系。记者得到小a的电话后与小a有一次通话,下面是对话的主要内容:

“我只是想问一下你是否记得自己接受过丛飞的资助?”

“我是接受过他的资助,当然记得,当时丛飞同意帮助我也是出于一种自愿,他有他的想法,我从来没有强迫过他。”

“他资助你时会有什么样的想法呢?”

“至于有什么样的想法,我也说不太清楚,但有一点是肯定的:任何人做事情都是有所图的,至于他图什么,我不说你也应该能猜到。”    
“我猜不到,你猜到了吗?”

“我没时间去猜别人的想法。但你作为一名记者今天来给我打电话,核实丛飞是否资助我读了大学,不是也在一定程度上说明了他的想法吗?”

“他胃出血了,医生说如果不及时治疗,会有生命危险。可他现在陷入了没钱治病的困境,你想没想过应该向他伸出援手?”

“向他伸援手?怎么伸呢?给他治病?可我现在每月不过三四千元钱,还没这个能力。再说,他也从来没向我提过这个要求。”

“你无力帮助他,可也应该去看看他,让他知道你还没有忘记他呀。”

“我太忙了,没有时间。”

一受助学生家长:何时病好出来挣钱

丛飞住院后,许多受助学生的爱长打来电话“要钱”,有些没有及时收到学费的家长们对丛飞产生了怀疑,认为他反悔自己先前的承诺了。但在知道丛飞 生病住院后,许多家长都非常理解,劝丛飞安心养病,他们再想办法解决孩子的学费,有的甚至希望来深圳看望丛飞,但都被丛飞拒绝。

丛飞住院后,手机放在林燕处,林燕接到这类电话最多,感慨也最多。

有一天,林燕刚打开丛飞的手机,一个催款电话打了进来:“你不是说好要将我的孩子供到大学毕业吗?他现在正在读初中,你就不肯出钱了?你这不是坑人吗?”

林燕急忙解释:“丛飞病了,已经几个月不能演出了,现在暂时没钱给孩子们交学费,等他身体好了一定想办法寄钱过去。”对方听罢,半信半疑地盘问 起来:“他得的是什么病啊?”林燕告诉对方是胃的问题,可能比较严重,对方听了,问:“那你问问他什么时候治好病出来挣钱啊?”

受助者阿珍:能否帮我买个md

丛飞过去曾和林燕说起一个叫阿珍的女孩。

1998年,丛飞到山东演出时,一个十七八岁的女孩阿珍在演出结束时找到丛飞想拜师。面对这个陌生的女孩,丛飞拒绝说,他不收女学生。阿珍临走时要去了他的电话,说以后有问题时向他请教。但此后很长时间,这个女孩一直没有和他联系过。

两年后的一天,丛飞忽然接到了阿珍的求助电话:“丛老师,听说您是个有爱心的慈善家,资助很多贫困学生读书。现在我也遇到了经济上的困难,搞不 好也有失学的危险,您能不能资助我一些生活费?”丛飞二话没说,很快就给她寄去了2000元钱。此后,每学期开学前后,丛飞总是接到阿珍要求帮助的电话, 丛飞也总是有求必应。

大学三年级时,阿珍的要求开始升级了,不但要生活费,还要课外补习费以及高档物品。有一次,她这样给丛飞打电话说:“我们班的同学都用上了md 听音乐,对我们的学习有帮助,可我的父母买不起,您能否也给我买一个?”丛飞到天虹商场花2800元买了一台md,给阿珍邮去。不久,丛飞收到一条短信: “md已收到。”

大学毕业后,阿珍也当上歌手挣钱了,再也没有与丛飞联系过。不久前,林燕将丛飞住院的情况电话告诉阿珍,阿珍听罢,回答非常流畅:“请转达我的问候,让他安心养病。”从此,丛飞再也没有阿珍的音讯。

 



benchensz 2006-05-02 01:48 发表评论
]]>
mustang jvm(1.6)与tiger jvm(1.5)单项性能测试http://www.blogjava.net/chenpengyi/archive/2006/05/01/44279.htmlbenchenszbenchenszmon, 01 may 2006 08:00:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/05/01/44279.htmlhttp://www.blogjava.net/chenpengyi/comments/44279.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/05/01/44279.html#feedback7http://www.blogjava.net/chenpengyi/comments/commentrss/44279.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/44279.html阅读全文

benchensz 2006-05-01 16:00 发表评论
]]>
google calendar姗姗来迟....http://www.blogjava.net/chenpengyi/archive/2006/04/29/44090.htmlbenchenszbenchenszsat, 29 apr 2006 14:00:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/04/29/44090.htmlhttp://www.blogjava.net/chenpengyi/comments/44090.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/04/29/44090.html#feedback0http://www.blogjava.net/chenpengyi/comments/commentrss/44090.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/44090.html   google calendar出来了,是今天在gmail收信的时候发现的,突然发现坐上角多了一个选项,什么都没想就点进去了。

   google的东西向来是不会让我们失望的,这个calendar也没有,确实很不错,如果是在gmail和ajax没有那么风行的时候看见这样的东东估计会感叹好多分钟(gmail退出的时候没有那么大感觉,倒是听说这gmail用的都是很旧的机器作为服务器的时候感叹了好久,后来gtalk跟gmail整合又让俺激动了好久),只是因为google给的惊喜太多了,所以这也没有引起太大的感觉了。如果从公正的角度去评价,google calendar真的不错!

    只要有gmail帐户的同志都可以直接使用google calendar,只要用你的gmail帐户和密码就能直接进入。如果没有gmail或者google其他产品的用户也可以进入下面地址:,点击登陆栏下面的create new account,就可以尝试一下google的calendar了。
   
   感觉google calendar运行速度比较快,感觉都不像web应用程序,点击反应很快,可以记录多个日历,也可以跟朋友共享日历(共享的朋友能从你的gmail的朋友中选择),呵呵,有点办公协作的样子(其实如果有心,完全可以把oa摆到google上来了)。每天可以记录多个事件,事件内容里面包括:what,when(这里其实输入日期有点感觉不方便,点击选择好点),where,description,comments,当event进行的时候,你还可以到option选择自己的状态(应该是gmail中gtalk的状态)以及event的权限控制。而且还可以将ical或者 csv (ms outlook) 格式的文件导入到你建立的某个日历中。功能是基本齐了,很简洁,还是那句话,够用就好。

   感觉比较不错,对个人是已经够用了,但感觉google的野心决不仅这个,也许下一步新的openoffice会跟这些现有功能一起给我们带来惊喜。期待。

benchensz 2006-04-29 22:00 发表评论
]]>
看到msdn universal(msdn宇宙版),想java universal 应该长什么样子?http://www.blogjava.net/chenpengyi/archive/2006/04/29/43902.htmlbenchenszbenchenszfri, 28 apr 2006 16:45:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/04/29/43902.htmlhttp://www.blogjava.net/chenpengyi/comments/43902.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/04/29/43902.html#feedback10http://www.blogjava.net/chenpengyi/comments/commentrss/43902.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/43902.html看到了msdnuniversal,想,java universal 应该长什么样子?

   无意中在d版的市场中看到了msdn universal,而且在盘面上显赫的写着msdn宇宙版,微软大全系列。起初看到还以为是制作d版的兄弟们吸引路人眼球之作,但凑近一看,才发现这d版碟片里面的内容确实算的上是msdn宇宙版了,一张dvd光碟,里面的内容包括:

   windows server 2003 enterprise,sql server 2005 developer,virtual server 2005 enterprise,visual studio 2005 professional,office 2003 professional with frontpage and visio,visual sourcesafe 2005。

   
确实是大而齐全,呵呵,价格也不贵了,才15大元的rmb,拿下了,其实单office整套和virtual server都值了,而且俺一直对微软产品的质量都是相当信任的。虽然linux也挺喜欢,但个人水平不行,只能让linux做做oracle和java的应用服务器。购买d版的事情大家就不要对我评论了,我也只是自己试试软件而已,并没有拿来作商业应用,况且咱工资低,人穷,买个d版的dvd碟也算奢侈了,一般都直接从网上down啊。

   回家后上网,想看看这d版所说的universal到底存在否,才发现原来这是真的,而且价格不菲,32000大洋啊(心中窃喜,呵呵,这个碟值了……)!立刻去msdn的网站长长见识,查到下面这些资料:

·msdn宇宙版(msdn universal):
   包括: visual studio企业设计版(visual studio enterprise architect edition),所有.net企业服务器的开发和测试版本和操作系统,以及microsoft office developer, project, frontpage, visio, msdn library, sdk和ddk
·msdn企业版(msdn enterprise):
包括:visual studio企业开发版(visual studio enterprise developer edition),sql server,exchange server, commerce server, host integration server和操作系统的开发和测试版本,以及msdn library, sdk, ddk
·msdn专业版(msdn professional):
包括:visual studio专业版(visual studio professional edition),操作系统的开发和测试版本,以及msdn library, sdk和ddk


价格如下:
类型 估计价格

全包装产品

32000元

类型 估计价格

全包装产品

24000元

类型 估计价格

全包装产品

13000元


   嘿嘿,确实不便宜啊,估计没哪个小的公司会用。不过这样的宇宙版确实比较方便,一个windows下的软件开发商需要的软件都有了,很方便也很实在,不过就是价格也太实在了,有点承受不起了。有点事情出去一会儿……
   停了半天,回来了,经常在写东西的时候会被打断,回来就不知道自己想写什么了……郁闷。
   huuu.....思路回到这里,挺赞赏ms的模式的,这样更能抓住客户。但我们回头想想,其实在这方面,java的世界更有优势,只是没人去把这些软件好好的整合在一起而已。所以在这里想跟大家讨论一下,如果让java出一张这样的universal版,怎么样的搭配才对?大家贡献各自的想法,最后总会有好的组合,然后刻录一张dvd,直接去d版市场买,有同好者欢迎一起叫卖,不用担心文化稽查,因为我们买的不是d版,而是开源的正版,哈哈。气死他们。
   提出一下自己的想法:
   
 windows server 2003 enterprise===没想法,估计除了linux之外好像没其他选择了,solaris免费了没?如果是linux的话,rh的应该是首选了。不过ubuntu和gentoo也还是可以的,哈哈,写东西这会儿身上还穿着从gentoo买来的衣服。
   sql server 2005 developer===mysql,虽然不是特别强,但凭借单机性能以及磁盘操作速度也是可以适用大部分场合的。
   virtual server 2005 enterprise===qemu,免费而且速度快,开源,虚拟机他应该能担重任了。
   visual studio 2005 professional===eclipse/netbeans,这一块就比较头疼了,不过还好这些都比较小,不如一起放进去,喜欢哪个就用哪个,eclipse上比较推荐easyeclipse,帮你把大部分要用的插件都搞定了,再配上tomcat或者其他应用服务器,确实不错。不过但凭这里几个还是比不上微软帝国的东西的,大家一起想想,怎样才能装一个纯开源的开发系统。
   office 2003 professional with frontpage and visio==openoffice?应该只有这个了,但好像不能抗衡,希望google的进入会带来一些起色吧。大家也来推荐几个吧。
   visual sourcesafe 2005===cvs够了,其他也不太了解,用过旧版vss,感觉不如cvs。提提你的意见。

   其实还有很多开源的,大家一起补充,然后找个人刻录我们的java opensource universal,哈哈,前10个人免费送。


benchensz 2006-04-29 00:45 发表评论
]]>
面向服务的体系结构概述(转自ibm developerworks)http://www.blogjava.net/chenpengyi/archive/2006/04/19/42023.htmlbenchenszbenchenszwed, 19 apr 2006 15:29:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/04/19/42023.htmlhttp://www.blogjava.net/chenpengyi/comments/42023.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/04/19/42023.html#feedback2http://www.blogjava.net/chenpengyi/comments/commentrss/42023.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/42023.html 下面是来自ibm的关于soa的一篇好文,以前念书的时候看过,不是特别理解,今天翻出来再看看感觉真的讲的很不错。很多人对soa的理解更多的只是在听说的程度,因此听得很多,但却实际并不是很了解到底什么是soa,所以希望借这篇文章跟大家分享对soa的理解和作为自己重新加深理解的学习笔记,同时能大家一起讨论一下。
相信大家看了这篇文章后能对soa有个更清晰的看法。
, international technical support organization, raleigh center

2004 年 6 月 01 日

在这一节中,我们简要地描述了面向服务的体系结构的发展。然后,我们探究了面向组件的开发与面向服务的体系结构之间的关系,并且说明了如何将组件作为实现服务的基础设施。

虽然 it 经理一直面临着削减成本和最大限度地利用现有技术的难题,但是与此同时,他们还必须不断地努力,以期更好地服务客户,更快地响应企业战略重点,从而赢得更大的竞争力。

在所有这些压力之下,有两个基本的主题:异构和改变。现在,大多数企业都有各种各样的系统、应用程序以及不同时期和技术的体系结构。集成来自多个厂商跨不同平台的产品简直就像一场噩梦。但是我们也不能单单使用一家厂商的产品,因为改变应用程序套件和支持基础设施是如此之难。

在当今 it 经理面临的问题之中,改变是第二个主题。全球化和电子商务加快了改变的步伐。全球化带来了激烈的竞争,产品周期缩短了,每个公司都想赢得超过竞争对手的优势。在竞争产品和可以从 internet 上获得的大量产品信息的推动下,客户要求更快速地进行改变。因而,在改进产品和服务方面展开的竞争进一步加剧了。

为了满足客户提出的越来越多的新要求,技术方面的改进也在不断地加快。企业必须快速地适应这种改变,否则就难以生存,更别提在这个动荡不安竞争激烈的环境中取得成功了,而 it 基础设施必须支持企业提高适应能力。

因此,企业组织正在从上世纪八十年代或更早的时期的相互隔离的垂直业务部门,到上世纪八十年代和九十年代关注业务流程的水平结构,向新的生态系统业务范例发展。重点是扩展供应链,支持客户和凯发k8网页登录的合作伙伴访问业务服务。第 19 页的图 2-1 展示了企业的这种发展。




我如何使我的 it 环境更灵活且更快地响应不断改变的业务需求呢? 我们如何使这些异构系统和应用程序尽可能无缝地进行通信呢?我们如何达到企业目标而不使企业走向破产的深渊呢?

it 响应者/支持者是随着企业的这种发展而并行发展的,如图 2-2 所示。现在,许多 it 经理和专业人员都同样相信,我们真的快找到了一种满意的答案——面向服务的体系结构。

图 2-2 体系结构的发展




为了减少异构性、互操作性和不断改变的要求的问题,这样的体系结构应该提供平台来构建具有下列特征的应用程序服务:

  • 松散耦合
  • 位置透明
  • 协议独立

基于这样的面向服务的体系结构,服务使用者甚至不必关心与之通信的特定服务,因为底层基础设施或服务“总线”将代表使用者做出适当的选择。基础设施对请求者隐藏了尽可能多的技术。特别地,来自不同实现技术(如 j2ee 或 .net)的技术规范不应该影响 soa 用户。如果已经存在一个服务实现,我们就还应该重新考虑用一个“更好”的服务实现来代替,新的服务实现必须具有更好的服务质量。




 


自从“软件危机”促进软件工程的开创以来,it 界一直在努力寻求解决上述问题的方案。在过去几年里,下面简要概述的核心技术进展使我们走到了今天。我们将简要讨论这些核心技术,而我们重点关注的将是这些技术如何帮助解决 it 问题。

在“applying uml and patterns - an introduction to object-oriented analysis and design”中,larman 将面向对象的分析和设计的本质描述为“从对象(物体、概念或实体)的角度考虑问题域和逻辑凯发天生赢家一触即发官网的解决方案”。在“object-oriented softwareengineering: a use case driven approach”中,jacobson 等将这些对象定义为“特点在于具有许多操作和状态(记忆这些操作的影响)的物体”。

在面向对象的分析中,这样的对象是用问题域来标识和描述的,而在面向对象的设计中,它们转变成逻辑软件对象,这些对象最终将用面向对象的编程语言进行实现。

通过面向对象的分析和设计,可以封装对象(或对象组)的某些方面,以简化复杂业务场景的分析。为了降低复杂性,也可以抽象对象的某些特征,这样就可以只捕获重要或本质的方面。

基于组件的设计并不是一种新技术。它是从对象范例中自然发展而来的。在面向对象的分析和设计的早期,细粒度的对象被标榜为提供“重用”的机制,但是这样的对象的粒度级别太低了,没有适当的标准可以用来使重用广泛应用于实践之中。在应用程序开发和系统集成中,粗粒度组件越来越成为重用的目标。这些粗粒度对象通过内聚一些更细粒度的对象来提供定义良好的功能。通过这种方式,还可以将打包的凯发天生赢家一触即发官网的解决方案套件封装成这样的“组件”。

一旦组织在更高层次上实现了基于完全独立的功能组件的完备体系结构,就可以将支持企业的应用程序划分成一组粒度越来越大的组件。可以将组件看作是打包、管理和公开服务的机制。它们可以共同使用一组技术:实现企业级用况的大粒度企业组件可以通过更新的面向对象的软件开发与遗留系统相结合来实现

在“component-based development for enterprise systems”中,allen 涉及了服务的概念,“它是将组件描述成提供相关服务的物理黑盒封装的可执行代码单元。它的服务只能通过一致的已发布接口(它包括交互标准)进行访问。组件必须能够连接到其他组件(通过通信接口)以构成一个更大的组”。服务通常实现为粗粒度的可发现软件实体,它作为单个实例存在,并且通过松散耦合的基于消息通信模型来与应用程序和其他服务交互。第 22 页的图 2-3 展示了重要的面向服务术语:

  • 服务:逻辑实体,由一个或多个已发布接口定义的契约。
  • 服务提供者:实现服务规范软件实体。
  • 服务使用者(或请求者):调用服务提供者的软件实体。传统上,它称为“客户端”。服务使用者可以是终端用户应用程序或另一个服务。
  • 服务定位器:一种特殊类型的服务提供者,它作为一个注册中心,允许查找服务提供者接口和服务位置。
  • 服务代理:一种特殊类型的服务提供者,它可以将服务请求传送到一个或多个其他的服务提供者。




在组件和服务开发中,都需要进行接口设计,这样软件实体就可以实现和公开其定义的关键部分。因此,在基于组件和面向服务的系统中,“接口”的概念对于成功的设计非常关键。下面是一些与接口有关的重要定义:

  • 接口:定义一组公共方法签名,它按照逻辑分组但是没有提供实现。接口定义服务的请求者和提供者之间的契约。接口的任何实现都必须提供所有的方法。
  • 已发布接口:一种可唯一识别和可访问的接口,客户端可以通过注册中心来发现它。
  • 公共接口:一种可访问的接口,可供客户端使用,但是它没有发布,因而需要关于客户端部分的静态知识。
  • 双接口:通常是成对开发的接口,这样,一个接口就依赖于另一个接口;例如,客户端必须实现一个接口来调用请求者,因为该客户端接口提供了某些回调机制。

第 23 页的图 2-4 定义了客户关系管理 (crm) 服务的 uml 定义,它表示为一个 uml 组件,实现接口 accountmanagement、contactmanagement 和 systemsmanagement。在这些接口中只有头两个接口是已发布接口,不过,后者是公共接口。注意,systemsmanagement 接口和 managementservice 接口构成了双接口。crmservice 可以实现许多这样的接口,但是它以多种方式行为的能力取决于客户端在行为的实现方面是否允许有大的灵活性。甚至有可能给特定类型的客户端提供不同或附加的服务。在一些运行时环境中,这样的功能也用于在单个组件或服务上支持相同接口的不同版本。




如前所述,面向对象的技术和语言是实现组件的极好方式。虽然组件是实现服务的最好方法,但是您必须理解的一点是,好的基于组件的应用程序未必就构成好的面向服务的应用程序。一旦理解了服务在应用程序体系结构中所起的作用,组件开发人员就很有可能会利用现有的组件。进行这种转变的关键是认识到面向服务的方法意味着附加的应用程序体系结构层。第 24 页中的图 2-5 演示了如何将技术层应用于程序体系结构以提供粒度更粗的实现(它更靠近应用程序的使用者)。为称呼系统的这一部分而创造的术语是“应用程序边界”,它反映了服务是公开系统的外部视图的极好方法的事实(通过内部重用并结合使用传统组件设计)。







 


面向服务的体系结构提供了一种方法,通过这种方法,可以构建分布式系统来将应用程序功能作为服务提供给终端用户应用程序或其他服务。其组成元素可以分成功能元素和服务质量元素。第 25 页的图 2-6 展示了体系结构堆栈以及在一个面向服务的体系结构可能观察到的元素。

注意:面向服务的体系结构堆栈可能是一个容易引起争议的问题,因为各方面的支持者已经提出了几种不同的堆栈。我们的堆栈不是作为服务堆栈提出的。我们之所以在此提出它,是因为我们想要搭建一个有用的框架,在本书的剩余章节中,我们将通过这个框架来组织对 soa 的讨论。




体系结构堆栈分成两半,左边的一半集中于体系结构的功能性方面,而右边的一半集中于体系结构的服务质量方面。这些元素详细描述如下:

功能性方面包括:

  • 传输是一种机制,用于将来自服务使用者的服务请求传送给服务提供者,并且将来自服务提供者的响应传送给服务使用者。
  • 服务通信协议是一种经过协商的机制,通过这种机制,服务提供者和服务使用者可以就将要请求的内容和将要返回的内容进行沟通。
  • 服务描述是一种经过协商的模式,用于描述服务是什么、应该如何调用服务以及成功地调用服务需要什么数据。
  • 服务描述实际可供使用的服务。
  • 业务流程是一个服务的集合,可以按照特定的顺序并使用一组特定的规则进行调用,以满足业务要求。注意,可以将业务流程本身看作是服务,这样就产生了业务流程可以由不同粒度的服务组成的观念。
  • 服务注册中心是一个服务和数据描述的存储库,服务提供者可以通过服务注册中心发布它们的服务,而服务使用者可以通过服务注册中心发现或查找可用的服务。服务注册中心可以给需要集中式存储库的服务提供其他的功能。

服务质量方面包括:

  • 策略是一组条件和规则,在这些条件和规则之下,服务提供者可以使服务可用于使用者。策略既有功能性方面,也有与服务质量有关的方面;因此,我们在功能和服务质量两个区中都有策略功能。
  • 安全性是规则集,可以应用于调用服务的服务使用者的身份验证、授权和访问控制。
  • 传输是属性集,可以应用于一组服务,以提供一致的结果。例如,如果要使用一组服务来完成一项业务功能,则所有的服务必须都完成,或者没有一个完成。
  • 管理是属性集,可以应用于管理提供的服务或使用的服务。

图 2-7 展示了面向服务的体系结构中的协作。这些协作遵循“查找、绑定和调用”范例,其中,服务使用者执行动态服务定位,方法是查询服务注册中心来查找与其标准匹配的服务。如果服务存在,注册中心就给使用者提供接口契约和服务的端点地址。下图展示了面向服务的体系结构中协作支持“查找、绑定和调用”范例的实体。




面向服务的体系结构中的角色包括:

  • 服务使用者:服务使用者是一个应用程序、一个软件模块或需要一个服务的另一个服务。它发起对注册中心中的服务的查询,通过传输绑定服务,并且执行服务功能。服务使用者根据接口契约来执行服务。
  • 服务提供者:服务提供者是一个可通过网络寻址的实体,它接受和执行来自使用者的请求。它将自己的服务和接口契约发布到服务注册中心,以便服务使用者可以发现和访问该服务。
  • 服务注册中心:服务注册中心是服务发现的支持者。它包含一个可用服务的存储库,并允许感兴趣的服务使用者查找服务提供者接口。

面向服务的体系结构中的每个实体都扮演着服务提供者、使用者和注册中心这三种角色中的某一种(或多种)。面向服务的体系结构中的操作包括:

  • 发布:为了使服务可访问,需要发布服务描述以使服务使用者可以发现和调用它。
  • 发现:服务请求者定位服务,方法是查询服务注册中心来找到满足其标准的服务。
  • 绑定和调用:在检索完服务描述之后,服务使用者继续根据服务描述中的信息来调用服务。

面向服务的体系结构中的构件包括:

  • 服务:可以通过已发布接口使用服务,并且允许服务使用者调用服务。
  • 服务描述:服务描述指定服务使用者与服务提供者交互的方式。它指定来自服务的请求和响应的格式。服务描述可以指定一组前提条件、后置条件和/或服务质量 (qos) 级别。

除了动态服务发现和服务接口契约的定义之外,面向服务的体系结构还具有以下特征:

  • 服务是自包含和模块化的。
  • 凯发k8网页登录的服务支持互操作性。
  • 服务是松散耦合的。
  • 服务是位置透明的。
  • 服务是由组件组成的组合模块。

这些特征也是满足电子商务按需操作环境的要求的主要特征,如第 301 页“e-business on demand and service-oriented architecture”所定义的。

最后,我们需要说明的是,面向服务的体系结构并不是一个新的概念。如图 2-8 所示,面向服务的体系结构所涉及的技术至少包括 corba、dcom 和 j2ee。面向服务的体系结构的早期采用者还曾成功地基于消息传递系统(如 ibm websphere mq)创建过他们自己的面向服务企业体系结构。最近,soa 的活动舞台已经扩展到包括 world wide web (www) 和 web 服务。




在面向服务的体系结构中,映射到业务功能的服务是在业务流程分析的过程中确定的。服务可以是细粒度的,也可以是粗粒度的,这取决于业务流程。每个服务都有定义良好的接口,通过该接口就可以发现、发布和调用服务。 企业可以选择将自己的服务向外发布到业务凯发k8网页登录的合作伙伴,也可以选择在组织内部发布服务。服务还可以由其他服务组合而成。

服务是粗粒度的处理单元,它使用和产生由值传送的对象集。它与编程语言术语中的对象不同。相反,它可能更接近于业务事务(如 cics 或 ims 事务)的概念而不是远程 corba 对象的概念。

服务是由一些组件组成的,这些组件一起工作,共同提供服务所请求的业务功能。因此,相比之下,组件比服务的粒度更细。另外,虽然服务映射到业务功能,但是组件通常映射到业务实体和操作它们的业务规则。作为一个示例,让我们看一看 ws-i 供应链管理(ws-i supply chain management)样本的定购单(purchaseorder)组件模型,如图 2-9 所示。




在基于组件的设计中,可以创建组件来严格匹配业务实体(如顾客(customer)、定购单(purchase order)、定购项(order item)),并且封装匹配这些实体所期望的行为的行为。

例如,定购单(purchase order)组件提供获取关于已定购的产品列表和定购的总额的信息的功能;定购项(order item)组件提供获取关于已定购的产品的数量和价格的信息的功能。每个组件的实现都封装在接口的后面。因此,定购单(purchase order)组件的用户不知道定购单(purchase order)表的模式、计算税金的算法、以及定单总额中的回扣和/或折扣。

在面向服务的设计中,不能基于业务实体设计服务。相反,每个服务都是管理一组业务实体中的操作的完整单元。例如,顾客服务将响应来自任何其他系统或需要访问顾客信息的服务的请求。顾客服务可以处理更新顾客信息的请求;添加、更新、删除投资组合;以及查询顾客的定单历史。顾客服务拥有所有与它管理的顾客有关的数据,并且能够代表调用方进行其他服务查询,以提供统一的顾客服务视图。这意味着服务是一个管理器对象,它创建和管理它的一组组件。




 


如前所述,企业正在处理两个问题:迅速地改变的能力和降低成本的要求。为了保持竞争力,企业必须快速地适应内部因素(如兼并和重组)或外部因素(如竞争能力和顾客要求)。需要经济而灵活的 it 基础设施来支持企业。

我们可以认识到,采用面向服务的体系结构将给我们带来几方面的好处,有助于我们在今天这个动荡的商业环境中取得成功:

soa 提供了一个抽象层,通过这个抽象层,企业可以继续利用它在 it 方面的投资,方法是将这些现有的资产包装成提供企业功能的服务。组织可以继续从现有的资源中获取价值,而不必重新从头开始构建。

在面向服务的体系结构中,集成点是规范而不是实现。这提供了实现透明性,并将基础设施和实现发生的改变所带来的影响降到最低限度。通过提供针对基于完全不同的系统构建的现有资源和资产的服务规范,集成变得更加易于管理,因为复杂性是隔离的。当更多的企业一起协作提供价值链时,这会变得更加重要。

从现有的服务中组合新的服务的能力为需要灵活地响应苛刻的商业要求的组织提供了独特的优势。通过利用现有的组件和服务,可以减少完成软件开发生命周期(包括收集需求、进行设计、开发和测试)所需的时间。这使得可以快速地开发新的业务服务,并允许组织迅速地对改变做出响应和减少上市准备时间。

通过以松散耦合的方式公开的业务服务,企业可以根据业务要求更轻松地使用和组合服务。这意味资源副本的减少、以及重用和降低成本的可能性的增加。

通过 soa,企业可以未雨绸缪,为未来做好充分的准备。soa 业务流程是由一系列业务服务组成的,可以更轻松地创建、修改和管理它来满足不同时期的需要。

soa 提供了灵活性和响应能力,这对于企业的生存和发展来说是至关重要的。但是面向服务的体系结构决不是灵丹妙药,而迁移到 soa 也并非一件可以轻而易举就完成的事情。请别指望一个晚上就将整个企业系统迁移到面向服务的体系结构,我们推荐的方法是,在业务要求出现或露出苗头时迁移企业功能的适当部分。



benchensz 2006-04-19 23:29 发表评论
]]>
google被栽赃了……http://www.blogjava.net/chenpengyi/archive/2006/04/15/41213.htmlbenchenszbenchenszsat, 15 apr 2006 04:06:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/04/15/41213.htmlhttp://www.blogjava.net/chenpengyi/comments/41213.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/04/15/41213.html#feedback6http://www.blogjava.net/chenpengyi/comments/commentrss/41213.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/41213.html 
     这些天上网打开google的时候总会发现浏览器会先打开一个弹出窗口,然后又自动关闭了,也没办法看到网页的内容,但能看到网页的title是ad,于是心里就想,难道现在google也打广告了?google不是一直都不打广告的吗?想到google.cn这段时间的所为也就觉得不足为奇了。让它打吧,反正咱们的firefox和maxthon还是能把它屏蔽掉的。

      直到今天,打开google突然发现出现了两个ad的窗口,虽然一会儿就被maxthon关了,但心里却有点气愤了,google不是说不打广告的吗?带着疑问我找出了那两个被关掉的窗口,两个都是:

      
      一打开才发现原来是彩秀=手机铃声下载,google什么时候也有这个爱好了?有点想不通,就细细研究了一下:

      广告页面最开始链接的是 ip 219.133.33.46这个ip地址,在ip归属地查询上发现这个ip219.133.33.46是广东省 深圳市 电信下属的广东省深圳市宝安区 电信。

      然后这个页面跳转到了caishow.com,nslookup了一下发现这个域名对应的ip是202.104.242.18,归属地是广东省 汕头市 电信,万网登记的whois信息为:
      
         domain name: caishow.com
         registrar: onlinenic, inc.
         whois server: whois.onlinenic.com
         referral url: http://www.onlinenic.com
         name server: ns2.dns-diy.com
         name server: ns1.dns-diy.com
         status: registrar-lock
         epp status: clienttransferprohibited
         epp status: clientupdateprohibited
         epp status: clientdeleteprohibited
         updated date: 03-aug-2005
         creation date: 28-may-2003
         expiration date: 28-may-2009

      好奇心作怪,继续查,这里只是万网的信息,继续去这个onlinenic, inc看看,一查,发现又回到深圳了……

      registrant :
     shenzhen caixiu tech co.ltd soft_way@163.com 86.75525456120
     caishow
     7c rm w build yihai nanshan shenzhen
     shenzhen guangdong au 518000

     domain name: caishow.com {caishow.com }
     registration date : 2003-5-29
     expiration date : 2009-5-29
     last update :2005-08-03 21:43:20

     domain name server:
          ns1.dns-diy.com      
          ns2.dns-diy.com     

     administrator:
          shenzhen caixiu tech co.ltd soft_way@163.com 86.75525456120
          caishow
          7c rm w build yihai nanshan shenzhen
          shenzhen guangdong cn 518000

     technical contact:
          shenzhen caixiu tech co.ltd soft_way@163.com 86.75525456120
          caishow
          7c rm w build yihai nanshan shenzhen
          shenzhen guangdong cn 518000

     billing contact:
          shenzhen caixiu tech co.ltd soft_way@163.com 86.75525456120
          caishow
          7c rm w build yihai nanshan shenzhen
          shenzhen guangdong cn 518000 

     原来是深圳南山的一个高科技公司……了得,能跟google搞上关系。但这样明目张胆的通过电信的服务器去插入广告是否算犯法呢?google的口号不是没有弹出广告吗?这样被人栽赃,google的名誉已经受到了损害,google是不知道呢?还是慑于电信的淫威装不知道呢?我们一介平民是不能参透的了,但这个所谓的高科技公司打着google的名义去招摇撞骗牟取自己的利益是否算是侵犯了法律呢?
     
     而且这个彩铃也确实不是什么好东西,骗钱的东西啊(这只是个人观点了)。传媒和运营商利用彩铃已经挣了不少黑心钱了,什么“草女”、“草男”的事情闹得沸沸扬扬的,最后不就是为了挣劳苦大众兜里本来就紧巴巴的几分钱吗?现在更厉害了,都把主意打到这个深受大众喜欢的搜索引擎上来了,这让我想到一句话,做人不能太“电信”了……

     期待着google对电信的起诉。




benchensz 2006-04-15 12:06 发表评论
]]>
soa的三个方面http://www.blogjava.net/chenpengyi/archive/2006/04/08/39957.htmlbenchenszbenchenszsat, 08 apr 2006 03:18:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/04/08/39957.htmlhttp://www.blogjava.net/chenpengyi/comments/39957.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/04/08/39957.html#feedback48http://www.blogjava.net/chenpengyi/comments/commentrss/39957.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/39957.html soa 的三个方面(译)

原始 url:

这两天看到了一篇不错的关于 soa 的文章,不敢独享,只可惜是 e 文,所以抽空翻译了一下,跟大家分享。

 

以下为本博客使用说明

我们的 blogjava 博客特别为大家的方便阅读提供了以下快捷功能:

需要查找关键字―――――――――――――――――请按 ctrl f

想以后还能看(添加到收藏夹)――――――――――请按 ctrl d

想刷新一下网页内容―――――――――――――――请按 f5

(应该不需要的,因为 blogjava 已经完全实现了 ajax

想保存到硬盘上―――――――――――――――――请按 ctrl s

需要调用本地( jini )服务查看源代码――――――――在网页空白处点击鼠标右键+ v

不想看了――――――――――――――――――――请按 alt f4

如果是标签页浏览器―――――――――――――――请按 ctrl w

 

实话说,我们比 google gmail 还早实现方便的快捷方式,厉害吧。这里不需要对我表示敬意,只需要对博客的建设者 dudu 老兄留言表示一下感谢就好了。

 

在开始的时候先介绍一下 soa 的概念。

 

什么是 soa

 

soa 的全称是 service oriented architecture ,面向服务架构。

 

她是指为了解决在 internet 环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件系统架构。这句话的意思就是 soa 不是一门语言或具体的技术,而是一种软件的系统架构,应该说更像一种模式,是一种为了解决复杂的 internet 业务应用而提出的一种体系结构(在我感觉里,这种架构的提出更像 mvc 模式的提出,不过我们总喜欢用模式啊,架构啊的话来体现自己是行业内专业的人,但其实无论说是模式还是架构,这都只是一些名词,如果组合现拥有的技术去实现自己的应用才是最有用的,就不用多谈所谓的架构还是模式了)。

 

译文 ( 翻译:陈朋奕,如果有错误请来我的博客指出 )

 

在做软件开发的人,架构这个词经常被用在三种不同的场合中:应用体系架构( application architecture ),基础体系架构 (infrastructure architecture) 以及企业架构体系 (enterprise architecture) 。而 soa 的概念横跨了这三种体系,然而很多人在谈到 soa 的时候总喜欢不自觉的把 soa 跟其中的一种混为一谈。

 

譬如开发者大多对如何建立 soa 应用感兴趣,因此他们关注的趋向更多是 soa 中的应用程序的体系架构方面。而 web serivces 管理工具的卖主一般认为 soa 主要是关于基础组件体系结构的,同样的,用户群体会认为 soa 是用于企业业务应用结构的。

 

这三种观点都是有意义的,因为这映射了 soa 的三个应用层面。下面是关于这三个方面的一些简单的讲解:

 

―――― soa 应用体系架构:是建立 soa 服务的指导、模式以及实现的方法。关注面向服务软件平台和个体应用的开发者会特别强调这个方面。如 microsoft’s windows communication foundation wcf 微软视窗通讯基础组件)以及最近提出的 service component architecture (sca 服务构件体系 ) 就是跟 soa 这个方面的应用实现。

 

―――― soa 基础体系架构:是管理和操作 soa 服务的指导、模式以及实现的方法。 soa 的大思想家们有时也会承认自己在这个方面有不足,但真正去实现这些功能的人却知道这些方面的重要性。一般来说,卖主会特别喜欢把关注点和行动实现集中在这里。

 

―――― soa 业务体系架构:利用 soa 并从 soa 中获得商业利益的指导、模式以及实现的方法。而关于技术的讨论仍然会在这里出现,但更多的关注点已经转移到了人的身上(以人为本?事实上,我对 soa 面临的最大挑战是人的观点——人通常比技术更多问题——有一些自己的看法)。不过,来自 zapthink 的分析家们通常对 soa 提出的建议都是在强调这个方面。

 

       我看到过很多人关于 soa 的意义(甚至是价值)的争论,其实他们的争论只是关于应用程序体系架构主导还是企业体系架构主导而已。这些专业术语仅仅是在我们都认同的情况下才会体现其价值的,因此当别人在讨论这个被过度使用的术语的时候我们应该保持清晰的思路,清楚我们到底讲的是什么才是我们应该把握的方向。



benchensz 2006-04-08 11:18 发表评论
]]>
计算机缩写术语完全介绍(转自chinaunix)http://www.blogjava.net/chenpengyi/archive/2006/04/08/39953.htmlbenchenszbenchenszsat, 08 apr 2006 02:26:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/04/08/39953.htmlhttp://www.blogjava.net/chenpengyi/comments/39953.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/04/08/39953.html#feedback2http://www.blogjava.net/chenpengyi/comments/commentrss/39953.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/39953.html阅读全文

benchensz 2006-04-08 10:26 发表评论
]]>
pigboat来了……全球通的1860把我郁闷了……http://www.blogjava.net/chenpengyi/archive/2006/04/06/39682.htmlbenchenszbenchenszthu, 06 apr 2006 14:01:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/04/06/39682.htmlhttp://www.blogjava.net/chenpengyi/comments/39682.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/04/06/39682.html#feedback2http://www.blogjava.net/chenpengyi/comments/commentrss/39682.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/39682.html晚上上网的时候才发现原来留言的人里面有pigboat,哈哈。好久没有看到这么熟悉的名字了,以后我也改个名字叫submarine。
换手机了,我qq上有新的手机号码。大家要保持联系。
唉,这些天整天收到wap上push过来的短信,开始还不算烦,一天也就一两条,现在发展到一天7、8条,都是那种黄色带诱惑的短信,删起来都麻烦。
还以为是订了不该订的服务,打电话去1860,还好,每次打过去都不会遇上话务员忙的情况(也许是因为手上的sim卡是全球通银卡的吧),一个女孩接的:
“您,好,请问,有什么能,帮得上您的吗?”她无奈的语气。
“有,我这段时间……”,我把事情叙述了一遍。
“你看这样的短信你们能不能禁止掉啊?”我继续问。
“这个我们没有办法的,那是我们提供给用户平台的功能,就像你的朋友给你打电话发短信一样,我们阻止不了的。”她平静的说道。
“但这很影响我啊。”我说。
“那你看看你的手机有没有阻止或者说不接受wap短信的功能,有的话以后设置成不接收所有wap短信就好了。有什么问题你去附近的移动服务厅去解决,好吧?”她用短促而平静的声音告诉了我唯一的解决方法——“去移动服务厅,以后都不要收到wap短信”。
“要是手机没有这个功能呢?”我有点疑惑。
“那就没办法了”她似乎比我更无奈。
“可我的手机是跟你们移动买的啊”我告诉她我的手机是在移动营业厅买的。
“又不是我们造的,我们怎么能保证有这个功能?”十足的货物出门概不退换的感觉。
“那你们要处理这样的情况啊,这是你们应该做的”我觉得有点不爽,毕竟这是移动提供的服务,这个wap的push平台也是移动提供的,(我自己也做过wml的有push功能的wap网站),其实移动是可以解决的。
“这我们没办法的,您——”她特别拉长了这个您字,“还有其他的事情吗?您最好去移动的营业厅解决这个问题。如果没有就到这里了。”
“等等”还没等我多说几句她已经挂了电话了。
看看手机上的通话时间,2分10秒,还包括了从拨号到听完广告按“0”进入人工台的时间。

我的感觉只有一个字,悔!后悔最开始的时候没有听清楚这个话务员的号码……
最后总结了一个经验,以后给移动人工台打电话一定要听清楚服务号码。如果不满意一定投诉它!

benchensz 2006-04-06 22:01 发表评论
]]>
james gosling对swt和其他事件的一些看法http://www.blogjava.net/chenpengyi/archive/2006/04/04/39222.htmlbenchenszbenchensztue, 04 apr 2006 09:39:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/04/04/39222.htmlhttp://www.blogjava.net/chenpengyi/comments/39222.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/04/04/39222.html#feedback18http://www.blogjava.net/chenpengyi/comments/commentrss/39222.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/39222.html  

swt 是很多人都推崇的窗体界面开发组件,有很多喜欢 eclipse 的人都说, swt 的效率比 java 自身所带的 awt swing 无论是开发效率还是运行速度上都快。确实如此, swt java 世界来说确实是 awt swing 的强大竞争对手。这里引用一段 eclipse 开发者的话,“ swt 本身仅仅是 eclipse 组织为了开发 eclipse ide 环境所编写的一组底层图形界面 api 。或许是无心插柳,或是有意为之,至今为止, swt 无论是在性能和外观上,都超越了 sun 公司提供的 awt swing ”。

当然,这个观点是我并不是很同意,但鉴于自己前面一篇文章的“白痴”观点挨到不少高人的批评,呵呵,咱只是一个懂点 oracle mysql ,听说过 java ruby ,见过 eclipse 的人(具体这些是什么东西还真的是不知道),还是不要乱提意见的好(玩笑而已)。自己不提,但 java 世界的英雄 james gosling 的意见总可以上台了吧?当然还是那句话,仅仅是我认为 james gosling java 世界的英雄而已(因为他缔造了 java ,而且还一直为 java 维护,抨击其他语言(嘿嘿,他的这个特点俺喜欢啊))。

james gosling 的照片:

/*偶像吧,帅就一个字*/

这是他回答记者关于
swt 的问题:

问:一个曾经徘徊在 java .net 技术平台之间的开发者因为 java 语言的分裂提出过下面的问题:
eclipse
swt standard widget toolkit )比 awt swing 都好(性能和开发效率)。 jbuilder gui 却漂亮一点,但用的不是 swt
hibernate
jdo ?还是 beans ?他想知道下一版本的 java 怎么做到方便开发,让应用程序好看点,容易部署一点,同时又能提供更优秀的数据库使用技术,使开发人员能在最短的时间内开发出更快、更稳定、更漂亮的程序,让那些 .net 的教徒们活在绝望中。

答:嗯,我肯定会推荐大家使用 java 基础类库 jfc/swing 的,因为只要使用得当,他们会比 swt 的性能和速度更快。只是因为 swing swt 拥有更多的特性,所以很容易用错,这是个问题。
而关于数据库方面,每一种情况都有不同,你不得不去了解更多的情形。在某些情况下,关系数据库会是好的选择,但有些情况下,面向对象的数据库才是好的选择。这也是技术让人讨厌的一面。

james 大哥在 csdn 上聊天室对 swt 的说法:

问: swt 将来是不是有可能加入到 java se 里面?

答:我们刚开始推出 java 的时候,有一个 awt 。刚才说到 swt 它的架构基本上重复和照搬了 awt 。而且它出现的问题基本上和 awt 是完全一样。

最后说点自己的意见吧, swt 的速度和效能确实不错,但是它并不符合 java 的结构标准,不能做到“ write once, run anywhere ”。而且在内存和垃圾回收上并没有继承 java gc ,所以也是比较麻烦的。很多人说 awt swing 的速度和性能都慢,那是因为他们并不是真正的懂 java 的人(其实大多数评价 swt awt/swing 的人都是做 java web 开发的人员,对 java 的桌面开发也许只是浅尝辄止,随便尝试了几下就给出了洋洋洒洒上万字的评语),想象一下 jbuilder net beans 是用什么做出来的?速度也不是一样很快,而且这些开发人员的开发速度绝对不慢,比起 swt 开发,他们还不用去手动回收 dispose 的窗体呢(罪过啦,又说了些偏激的话)。我个人相信,随着 java  6.0 的出现, java 对桌面应用的支持得到了前所未有的提升,慢慢的就会有一套完善而成熟的 java 桌面程序开发框架和开发模式,那时候也许大家就不用争论了。

 



benchensz 2006-04-04 17:39 发表评论
]]>
java 6 mustang 从老虎变成了野马……好事还是坏事?http://www.blogjava.net/chenpengyi/archive/2006/04/02/38674.htmlbenchenszbenchenszsat, 01 apr 2006 17:06:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/04/02/38674.htmlhttp://www.blogjava.net/chenpengyi/comments/38674.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/04/02/38674.html#feedback17http://www.blogjava.net/chenpengyi/comments/commentrss/38674.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/38674.html 上个月就知道 java 6 已经推出了,但还是不知道到底如何,也因为工作忙的关系没有机会去体验这个 java 6 到底有什么改变。只是知道改了个名字,从 java 5.0 tiger (老虎)变成了 mustang (墨西哥和北美平原的野马),呵呵,个人感觉好像是弱了,从这么猛的一个庞然大物变成了没有攻击力的野马,虽然只是名字的改变,不过从一个 java 程序员心里想来也许会觉得有点悲哀,说实话,看见这个名字,有种心有戚戚焉的感觉。

也许这正是 java 无奈现状的体现吧,本来是大户人家的宝贝,现在变成沦落荒野的野马,要跟荒原的狐狗抢食 …… 在桌面程序上面,出了 ibm 那么热心的开发了 eclipse 之外,似乎 java 毫无建树,而 web 上, java 更是被 .net 和其他带脚本性质的语言蚕食领地, .net 当然是没话说的,因为这可是大户人家的孩子,身上带着微软皇族的血统,背靠如此雄厚的资本,自然不会弱,而 php/python 等语言也以其灵活的结构和多年积累的成熟的多样的开发框架一步一步的侵食 java 的领地,我想让 java 世界最痛心的也许不是这些,而是由 ruby 语言引起的 java 世界的内讧 ……

ruby 这门语言,说实话,我真的不以为然,甚至觉得这不算语言。当初学习 java 的时候,是从 c 语言转过来的, java 给我的印象真的太美丽了,那么美妙的结构,竟然能如此完美的用程序语言去体现世界。而接触 ruby ,一点也没有接触 java 时候的那种感觉,但是我不得不承认 ruby on rails 真的是快捷而且方便的 web 开发平台。那么轻松的几百行代码就能够完成 java jsp servlet )上千行代码(有个朋友跟我说,他尝试过将一个 java 的简单 web 程序,据说好像是网上商城,改到 ruby 平台,上 4 5 千行的 java 代码,仅仅用了 800 ruby 代码)。这样的结果难道还不够震撼吗?

java 语言的优美是大家公认的,但如果是为了仅有的优美而付出大量的劳动,真的必要吗?也许正如 lansa 公司的高级程序设计师 roc.chen 说的那样, java 更适合在学校里进行 oo 软件的教学,因为他真的很美丽。当年 smalltalk 也是很优美的语言,为什么还是没有流行呢?语言的流行程度也许真的跟优美有否没有直接关系,想来 vb 真的是一门很烂的语言,但如此流行,也不能不承认这个道理的正确性了。

也许改名是因为要将 java 这个重量级的语言从吃遍四方的笨重的老虎变成可以轻松跑跳的野马吧,现在 java 的世界太笨重了,有复杂的 ejb ,多种不互相兼容开发模式( tomcat/sunj2ee 等下各有各的开发模式),多个巨头在做自己不同的ideeclipse /net beans/ idea/ j builders/ workshop等),多个企业在做自己的j2ee服务器(geronimo /web sphere/ weblogic)……意见经常不能统一,在这点上我真的认同微软的方式,这样至少使用的人能很快的上手,能更快更好的完善自己的开发模式和开发平台。

我觉得 java 已经在让自己变得轻量级,变得灵巧了,让自己在各个方面都能适应快速开发,就像现在的 ruby 一样,而 spring 的受欢迎程度和《 j2ee without ejb 》的热卖也说明了这点。也许 ruby 语言的出现对 java 来说是好事,因为至少这打击不是致命的,能让 java 的设计者痛定思痛,寻求变革。

java 6 mustang 的出现也许正是为了这个目的吧。那下面就说说 java 6 的特点吧:

l         支持 web service java web 的开发心头之痛啊,终于搞定了)

l         提高 jvm 性能,对比 java 5.0 mustang hotspot jvm 58 %的性能提升(早该如此了, java 的诟病就是慢,但我还没尝试过)

l         直接嵌入 jsr-223 规定的脚本语言

l         增加对 javascript 的支持,嵌入了 rhino (即 javascript )解释器(好东西来的,也许是因为 ruby 内置的 ajax 对其的影响吧)

l         支持 jdbc 4 规范

l         扩展 java.io.file ,充分利用磁盘空间

l         安全上新增了对 xml 数字签名的支持,整合 java generic security services kerberos ,支持国际域名和资源标识符和网络参数标题访问

l         还有好多,不过就没前面的那么重要了

sun 已经提供了演示版本的下载,我已经下载了,同时也下载了 sun net beans ide ,准备对这个新的 jdk 进行测试,测试结果会以最快的速度向同志们报告。
===============================================================================
/听了白痴兄弟的话,想说几句话/
上面只是我一个人的看法,也只是随便说说而已,犯不着大家这么生气的。况且这仅仅是晚上涂鸦写写,告诉大家一些消息,评论只是个人观点。
 



benchensz 2006-04-02 01:06 发表评论
]]>
我这一年http://www.blogjava.net/chenpengyi/archive/2006/03/22/36749.htmlbenchenszbenchensztue, 21 mar 2006 16:46:00 gmthttp://www.blogjava.net/chenpengyi/archive/2006/03/22/36749.htmlhttp://www.blogjava.net/chenpengyi/comments/36749.htmlhttp://www.blogjava.net/chenpengyi/archive/2006/03/22/36749.html#feedback9http://www.blogjava.net/chenpengyi/comments/commentrss/36749.htmlhttp://www.blogjava.net/chenpengyi/services/trackbacks/36749.html        在许多人看来,因为发表了几个论文的缘故,总是把我的样子和学术联系起来,于是我给金融学的同学讲了实证的研究方法,于是管理学研究上一堆同学以为我的模型是乱码,于是后来,李老师希望我继续读博,于是没有发现,其实我很孤独。
        我开始学会了想念,想念本科四年的充实和满足,想念那个不曾让我孤独过的西安,那里的小吃,那里的人,我的老师我的同学,我所有遂心随意的一切,想起了哪里的城墙,我一个人游走,却没有任何孤独的感觉。
       保送了,一个更好一些的学校,我开始疯狂的做论文,每天早上我基本上从早上六点到晚上1点都在努力的去做,我不知道我发表论文是为什么,我不明白我继续考g是为了出国还是想正面自己经历英语最高的考验,我不得不承认自己是一个执着,我无法停下来,听下来,我能够做什么。
      终于有一天,我抬头看看外面的天空,天很大,看不到尽头,我很小,除了论文除了g单词,我还拥有什么,舍友是一个开朗的人,早就已经和自己要追的女孩一起玩去了,同寝室的另外几个哥们,总是可以见到他们幸福满足的样子,突然间,我觉得自己很尴尬,尴尬在一连串的奔跑之后,丢进了一个荒野,荒野中没有灯光,很黑,看不到头。
       我想,我累了,我需要一个支撑,我需要一个帮我出主义的人,即使她胡乱出主义,即使我已经有了意见,即使我的生活根本不需要主义。
        
     

benchensz 2006-03-22 00:46 发表评论
]]>
网站地图