安静的等待

茹呲綄鎂
posts - 51, comments - 9, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

papervision3d

先看看这个几个网址的东西:

http://www.papervision3d.org/

>http://www.noventaynueve.com/2007/

>http://www.rhythmoflines.co.uk/

>http://carlosulloa.com/

papervision3d
papervision3d

Papervision3D Component v1.5 下载地址:>http://code.google.com/p/papervision3d/downloads/detail?name=PV3DComponents_v1.5.1.mxp&can=2&q=

以前还研究全景视图呢,现在看来,直接用这个就可以解决了,而且速度肯定更快!

官方博客:>http://blog.papervision3d.org/

posted @ 2007-08-28 15:51 ricki 阅读(1317) | 评论 (1)编辑 收藏

今天无意中在群里面看到了微软关于Silverlight的站点:http://silverlight.net/,后来跟着链接找了半天又找到了它的Microsoft站点:http://www.microsoft.com/silverlight/default01.aspx,上面的视频相当不错,应该是Expression的作品,不过在看之前还是要安装Silverlight插件。

作为Flash的竞争者,现在才出现的确有点晚,不过要是以Flex的竞争者,由于Ajax和.net程序员的数量远远超出Flex程序员,这个倒是有点看头。

这个是一个演示网站:http://silverlight.net/fox/

软件需求:Microsoft Silverlight 1.0 Beta - for Mac or for Windows(播放插件),Microsoft Silverlight 1.1 Alpha - for Mac or for Windows(程序开发预览),Microsoft Visual Studio codename “Orcas” Beta 1(微软下一代Visual Studio产品),Microsoft Silverlight Tools Alpha for Visual Studio codename “Orcas” Beta 1(Visual Studio的Silverlight开发包),Expression Blend 2 May Preview (给Silverlight开发用户界面和设计),Expression Media Encoder May Preview (视频开发),Expression Design (设计矢量图形)。

关于后面的图形界面开发的软件,可以看看Expression系列介绍视频,这个是Expression的主站http://www.microsoft.com/expression/

看了一下他制作的过程的视频,感觉有点像是Flash IDE+Flex开发,但是协作的确是相当强悍:Expression Blend可以对图形进行补间动画,而到了Visual Studio可以进行程序代码对图形进行运算操作。

感觉上他在图形图像上的确比Flex有优势,但是和成熟的Flash相比它现在还是Alpha、Beta。看到这里我不得不想到,Flex和Flash在下一个版本的Flash IDE中,肯定是要融合在一起了,就算是不在一起也是要能够很好的相互协作,虽然现在CS3出来了,但是还是没有很好的看到他们的协作,Bridge也只能算一个浏览器。协作方面微软已经抢在前面了,Adobe要加把劲了。

真希望下一次看到Adobe的软件工作方式是:Flash中编辑的矢量图形可以在Illustrator中编辑完成后又放回Flash,PSD图片在Flash中可以直接发送给Photoshop编辑,编辑后可以直接更新Flash中的PSD;AS直接就由Flex(或是Flash)来搞定,AE也一样在一起随意工作,我们只需要轻轻点按钮就可以在不同的软件中做他擅长的事情,最后在Flash(Flex)中输出swf。

posted @ 2007-08-28 15:37 ricki 阅读(280) | 评论 (0)编辑 收藏


http://community.studyez.com/fil ... lop/entry52462.aspx

需要申请一个账号,比较简单。序列号在下面


Expression Studio简体中文正式版,2007/7/2发布,包括Microsoft Expression系列所有产品:
Microsoft Expression Web 网页设计工具
Microsoft Expression Blend 交互设计工具
Microsoft Expression Design 平面图形设计工具
Microsoft Expression Media 多媒体编辑工具

微软Microsoft Expression Studio 官方简体中文正式版!注册码。

Product Key:
Expression Blend:  42XVR-43TCK-QFXGX-TG3P6-HVPYB
Expression Design: B7QRP-P7W7G-QY689-R7DCB-4BGH4
Expression Web:    DDWJC-VFGHJ-7GFK6-9QK3D-PFTHW
Expression Studio: B7QRP-P7W7G-QY689-R7DCB-4BGH4



  网页设计工具-Expression Web

  微软发布了最新开发的网页设计工具Expression Web,它是微软Expression设计套装的一部分。作为网页编辑工具 FrontPage的替代产品,Expression Web在功能以及可扩展性方面都有很大提升,而Frontpage将于今年正式结束它的使命。

  图形设计工具-Expression Design

  微软是这样描述Expression Design的:“它是一款专业图形设计工具,提供丰富的像素描绘功能以及顺畅灵活的矢量图编辑功能,能够快速创建设计工作流程。 借助Expression Design,你可以为屏幕,网页或打印产品创建复杂的设计和图形元素。”   Expression Design的功能类似于大家早已熟悉的Adobe Photoshop,提供许多Windows自带画图工具没有的高级图形编辑功能(如层等)。

  物件管理工具-Expression Media

  新加入到Expression Studio家族的新成员就是Expression Media,它是改变了商标的iView MediaPro,它是一个物件管理工具,包括了一个用于跟踪如图片,字体,音频与视频等数字媒体的可视化目录。

  可视化交互工具-Expression Blend

  Expression Blend 全方位的3D、动画、硬件加速显示引擎 能够将矢量图形、位图、3D内容、视频、音频和富文本合成到一起,三维视图能够自由地混合在其它2D和媒体元素之间,允许在一个设计作品的不同元素之间进行功能强大的可视化交互。 Expression Blend 可以 导入与合并矢量图和位图元素 ,或者绘制与编辑矢量图元素并应用高级渐变、Alpha透明度和笔触设置。

posted @ 2007-08-28 15:34 ricki 阅读(378) | 评论 (0)编辑 收藏

     摘要: 以下写作经典200句背诵完会使你的写作水平突飞猛进,记住一定要烂熟于心,可以使用超循环背诵大表进行背诵,使背诵变得轻松有计划,更重要的是减少遗忘。200句并不多,永远是熟能生巧,你一辈子用的句子无非就是几十句,这200句是精华中的精华,不仅运用于写作,这些精彩的句式可以运用于口语中,使你的表达非凡!希望大家在英文考级中能用得到! 背诵方法:(原则:短时间搞定) 1、分单元背,把200个句子根据你自...  阅读全文

posted @ 2007-08-15 10:44 ricki 阅读(1246) | 评论 (0)编辑 收藏

现在中国所有招聘网站都是以人事经理为中心,因为他们是给钱的一方,较少从求职者角度考虑,如果我们从求职者立场或者中立立场来看中国招聘网站的生意模式及运作流程,将这个求职者并不知晓的事情公布出来,你就会更好清醒认识招聘网站,也更好的实际的利用人才网站求职:  
    
  1、   人才网站与企业人事经理的生意模式对求职者影响:  

  人才网站的行规是企业人事经理支付600元,可以在一个月内发布一定的职位让求职者投递简历,可以搜索查看人才网站简历库的简历,还可以下载一定数量的简历主动与求职者联系。而大企业及知名公司一般都是购买1年的招聘服务。问题就出来了:如果这个职位1到2周企业招到人了,但他购买的是1个月的服务,所以企业的职位还是挂在网上,而且人才网站竞争激烈,一般都会赠送1个月服务。所以一般职位至少1个月挂在人才网站是无效的,是浪费求职者查看与投递简历时间的。  
    
  大公司最不可靠,他们用网络、报纸、现场,1年的大大banner永远挂在人才网站上,他们并不需要人,只是为了广告宣传。  
  所以人才网站50%以上的职位都是过期的、无效的、不招人或招满人的,所有求职者抱怨我投了那么多简历为什么反馈率那么低,反馈率低是非常正常的。  
    
  另外51job网站的反馈率是最低的,这也是行业秘密:因为51Job的资源80%是以报纸招聘为主,报纸招聘效率高,但网站上的职位都是在报纸上刊登过后作为免费与补充服务,所以很多HR只会看报纸上来的简历,网站来的简历基本不看,在加上51job简历投递量实在太大,那些懒惰的HR才懒得一封一封的看,只会用搜索关键字来看,如本科+3年工作经验+主管等,其他不符合条件的看都不看一眼。所以你知道为什么一直没有公司找你面试,不是你不行,而是HR都不看你发的简历。下面第二部分告诉你如何被他们搜索到。  
    
  现在你知道网络招聘的反馈率为什么那么低了吧。不信你用自动回复邮件形式发送中国3大招聘网站职位HR的邮箱,看看有多少HR看了你的简历,一个工作论坛的网友说,他试着发了100个HR邮箱简历,可以通过自动回复的反馈率统计,可以看到50%HR不看简历就直接删除,30%根本就不打开邮件,只有20%打开邮箱,还有10%可能已经找到人的。他的分析说即使是中国前3名招聘网站以严格标准来看也只有10%职位是真正要急迫招人的。  
    
  2、既然知道一些潜   规则,那我们也迎合一些这些规则,告诉你一些网络求职的小秘密  

  (1)采用行业招聘网站求职。因为行业招聘网站是按行业发布职位信息的,所以专业和工作经历比较对口。比如你要找物业管理类的工作,你到xx工作网的物业管理招聘频道上去注册简历就比较好,因为那里全部都是物业管理类的企业在招聘;如果你要找外贸的工作,你就可以xx工作网的外贸招聘频道去找,肯定有大量的外贸工作机会。其它的就不在列举。在目前的情况下,几乎每个行业的人才在万行工作网上都能找到自己的频道。  
    
  (2)简历要与大公司沾边  
  当人事经理搜索招聘网站简历库简历时,一般会以关键字“知名企业名称+职位名称”,比如消费品行业可能喜欢可口可乐及宝洁的人,人事经理会这样搜索,例如:“可口可乐+销售经理”,系统会搜索到简历中出现以上关键字的求职者,如果你的简历里出现知名企业名称的字样,就可以被搜索到,例如:“我在xx矿泉水公司工作,成功地令竞争对手——可口可乐旗下的天与地矿泉水在当地的市场份额减少……”:“我在可口可乐的广州白云区经销商工作”等。又提高了人事经理浏览简历的机会!  
    
  (3)   经常刷新简历  
  当人事经理搜索简历库的简历时,符合条件的简历是按刷新的时间顺序排列,而一般只会看前面一两页。很多求职者其实并不知道刷新简历可以获得更多求职机会。因此每次登陆,最好都刷新简历,刷新以后,就能排在前面,更容易被人事经理找到!  
    
  (4)   不要只应聘最近三天的职位  
  一般求职者认为刚刚发布的最新的招聘信息肯定是成功率最大的,其实不然。因为很多企业人事经理没有及时的登陆刷新刊登的职位,所以求职者在搜索职位时刚刷新的职位会排在前面,这些职位应聘的人多,竞争大,相反,一些职位已经是半个月甚至两个月的,应聘的人少,成功率反而高。  
    
  (5)   让你的邮件永远在最前面  
  你要知道每天人事经理看求职者邮箱,他们其实是很懒的,100多页简历邮件他们最多只看前5页!你现在应该知道为什么你的求职简历永远没有回应!  
  所以发邮件到企业指定的邮箱时,怎样才能让你的邮件永远排在最前面,让人事经理每次打开邮箱都首先看到你的邮件?只要在发邮件前,把电脑系统的日期改为一个将来的日期,如2008年,因为大多邮箱都是默认把邮件按日期排序,所以你的邮件起码要到2008年以后才会被排在后面!   (如果你求职成功,要向我请客耶!)  
    
  (6)   新颖的邮件标题  
  人事经理每天收到大量的求职电子邮件,求职者一般会按企业要求把邮件题目写成:应聘xx职位,怎样才能吸引人事经理的眼球,让他先打开自己的邮件?可以在邮件题目上做文章。一天人事经理收到几百封邮件,只有标题新颖的才有机会被打开。  
  例子:我的一个女性朋友发了100多封邮件求职都没有任何反应,因为应聘做文员的太多了,而我这个朋友做过空姐,我将她的邮件标题改为“空姐来广州找工作”,引起绝大部分男人事经理想入非非,结果三天之内有30多个男人事经理通知面试,3个月找不到工作的她而变成3天找到上十份工作。你现在知道邮件标题的重要性了吧。  
    
  (7)   简历最好放靓照  
  对于人事经理来说,每天需要浏览大量简历,如果同等的条件,一般会先通知有照片的求职者来面试,因为通过照片,人事经理对应聘者又多了几分了解。如果是美女,被通知的可能性就更大。我作为人事经理,曾经招聘一个人事主管,收到300多封简历,我找出前30份有相片的前5份,通知了最漂亮相片的2个女孩,就定下了其中的一个。对于一般职位如文职人员之类,中国人的传统还是以貌取人,你即使不漂亮,也照一个艺术照,就增多了面试机会(与其等死,还不如放手一搏),毕竟很现实的是,简历的目的就是有面试的机会,其他就要靠实力与运气了。  
    
  (8)求职信“骂”对方公司往往会带来意想不到的效果  
  一般人认为在求职信中称赞对方公司会引起好感,其实不然。如果先指出这家公司的缺点,往往会引起关注,语不惊人死不休呢,我作为人事经理,我只会对指出我们缺点的求职者有好感,对恭维我们公司的求职者一般会放在一边。即使你不知道对方公司缺点,你随便写一些永远不会错的:“我认为贵司创新不够,市场表现过于常规化;我以消费者心态观察贵司,发现贵司客户服务还有许多待改进的地方;我发现贵司品牌形象还有可能做的更好……”如闻其详,可面谈。可勾引相关公司面试。只要有面试机会,其他再说。(简历有机会面试目的是一切,手段是无所谓的)。  
    
  (9)自己要学会让简历与职位匹配  
  2个观念都是有效的:一是不要太在乎对方职位要求的描述,很多职位描述只是写写,连经理都不知道要招什么样的人,如果你看到对方职位要求本科,你是专科就不敢投递简历,那就失去机会了。如果你看到对方要求有5年经验,你只有3年经验,你也不敢投,那完全没有必要。因为人事经理们对职位的描述只是例行公事随便谢谢而已,你千万不要当真!  
    
  另外一个匹配观念就是他的职位如何描述,你就改变你的简历换一个说法匹配,如他说要求领导能力强,你的简历也说具有领导才能,他要沟通能力一流,你的简历也说我最擅长沟通。你的简历表面匹配度最高,也可以多增加机会。你可将简历改成为他职位描述完全量身定做的简历。  
    
  其实求职者有更多的面试机会,不但可以增加成功求职机会,还可以增加自己的信心,工资越叫越高还可以积累面试经验。很多优秀的求职者网上发了很多简历没有回应,以为自己不行没有竞争力,只好自动降价,实为可惜!   特别是中国最大的招聘网站51job的简历投递反馈率是同行业最低的,因为它主要资源80%投入报纸,报纸招聘完甚至录取完毕后将职位入库,只是将职位作为一个摆设放到网站。  
    
  要知道现在网络求职的成功率一般2个月是发1000份简历,有8份面试,2份成功,一个是你不想去的,可能一个是你相对满意的。所以网络求职的朋友千万不要对自己失去信心。  

posted @ 2007-08-15 10:41 ricki 阅读(313) | 评论 (0)编辑 收藏

    下文是比尔·盖茨今年6月7日在哈佛大学毕业典礼上的演讲的翻译。他在其中谈到了很多事情,包括他的学生时代、他的退学经历、以及他眼中人生最有意义的事情。我觉得内容非常好,完全改变了我对比尔·盖茨的看法,所以花了两个晚上翻译出来,希望让更多的人看到。

    尊敬的Bok校长,Rudenstine前校长,即将上任的Faust校长,哈佛集团的各位成员,监管理事会的各位理事,各位老师,各位家长,各位同学:
有一句话我等了三十年,现在终于可以说了:“老爸,我总是跟你说,我会回来拿到我的学位的!”
        我要感谢哈佛大学在这个时候给我这个荣誉。明年,我就要换工作了(注:指从微软公司退休)……我终于可以在简历上写我有一个本科学位,这真是不错啊。
       我为今天在座的各位同学感到高兴,你们拿到学位可比我简单多了。哈佛的校报称我是“哈佛大学历史上最成功的辍学生”。我想这大概使我有资格代表我这一类学生发言……在所有的失败者里,我做得最好。
        但是,我还要提醒大家,我使得Steve Ballmer(注:微软总经理)也从哈佛商学院退学了。因此,我是个有着恶劣影响力的人。这就是为什么我被邀请来在你们的毕业典礼上演讲。如果我在你们入学欢迎仪式上演讲,那么能够坚持到今天在这里毕业的人也许会少得多吧。
       对我来说,哈佛的求学经历是一段非凡的经历。校园生活很有趣,我常去旁听我没选修的课。哈佛的课外生活也很棒,我在Radcliffe过着逍遥自在 的日子。每天我的寝室里总有很多人一直待到半夜,讨论着各种事情。因为每个人都知道我从不考虑第二天早起。这使得我变成了校园里那些不安分学生的头头,我 们互相粘在一起,做出一种拒绝所有正常学生的姿态。
       Radcliffe是个过日子的好地方。那里的女生比男生多,而且大多数男生都是理工科的。这种状况为我创造了最好的机会,如果你们明白我的意思。可惜的是,我正是在这里学到了人生中悲伤的一课:机会大,并不等于你就会成功。
       我在哈佛最难忘的回忆之一,发生在1975年1月。那时,我从宿舍楼里给位于Albuquerque的一家公司打了一个电话,那家公司已经在着手制造世界上第一台个人电脑。我提出想向他们出售软件。
      我很担心,他们会发觉我是一个住在宿舍的学生,从而挂断电话。但是他们却说:“我们还没准备好,一个月后你再来找我们吧。”这是个好消息,因为那时 软件还根本没有写出来呢。就是从那个时候起,我日以继夜地在这个小小的课外项目上工作,这导致了我学生生活的结束,以及通往微软公司的不平凡的旅程的开 始。
      不管怎样,我对哈佛的回忆主要都与充沛的精力和智力活动有关。哈佛的生活令人愉快,也令人感到有压力,有时甚至会感到泄气,但永远充满了挑战性。生 活在哈佛是一种吸引人的特殊待遇……虽然我离开得比较早,但是我在这里的经历、在这里结识的朋友、在这里发展起来的一些想法,永远地改变了我。
      但是,如果现在严肃地回忆起来,我确实有一个真正的遗憾。
      我离开哈佛的时候,根本没有意识到这个世界是多么的不平等。人类在健康、财富和机遇上的不平等大得可怕,它们使得无数的人们被迫生活在绝望之中。
      我在哈佛学到了很多经济学和政治学的新思想。我也了解了很多科学上的新进展。
      但是,人类最大的进步并不来自于这些发现,而是来自于那些有助于减少人类不平等的发现。不管通过何种手段——民主制度、健全的公共教育体系、高质量的医疗保健、还是广泛的经济机会——减少不平等始终是人类最大的成就。
      我离开校园的时候,根本不知道在这个国家里,有几百万的年轻人无法获得接受教育的机会。我也不知道,发展中国家里有无数的人们生活在无法形容的贫穷和疾病之中。我花了几十年才明白了这些事情。
     在座的各位同学,你们是在与我不同的时代来到哈佛的。你们比以前的学生,更多地了解世界是怎样的不平等。在你们的哈佛求学过程中,我希望你们已经思考过一个问题,那就是在这个新技术加速发展的时代,我们怎样最终应对这种不平等,以及我们怎样来解决这个问题。
      为了讨论的方便,请想象一下,假如你每个星期可以捐献一些时间、每个月可以捐献一些钱——你希望这些时间和金钱,可以用到对拯救生命和改善人类生活有最大作用的地方。你会选择什么地方?
      对Melinda(注:盖茨的妻子)和我来说,这也是我们面临的问题:我们如何能将我们拥有的资源发挥出最大的作用。
      在讨论过程中,Melinda和我读到了一篇文章,里面说在那些贫穷的国家,每年有数百万的儿童死于那些在美国早已不成问题的疾病。麻疹、疟疾、肺 炎、乙型肝炎、黄热病、还有一种以前我从未听说过的轮状病毒,这些疾病每年导致50万儿童死亡,但是在美国一例死亡病例也没有。
      我们被震惊了。我们想,如果几百万儿童正在死亡线上挣扎,而且他们是可以被挽救的,那么世界理应将用药物拯救他们作为头等大事。但是事实并非如此。那些价格还不到一美元的救命的药剂,并没有送到他们的手中。
      如果你相信每个生命都是平等的,那么当你发现某些生命被挽救了,而另一些生命被放弃了,你会感到无法接受。我们对自己说:“事情不可能如此。如果这是真的,那么它理应是我们努力的头等大事。”
      所以,我们用任何人都会想到的方式开始工作。我们问:“这个世界怎么可以眼睁睁看着这些孩子死去?”
      答案很简单,也很令人难堪。在市场经济中,拯救儿童是一项没有利润的工作,政府也不会提供补助。这些儿童之所以会死亡,是因为他们的父母在经济上没有实力,在政治上没有能力发出声音。
       But you and I have both.
       但是,你们和我在经济上有实力,在政治上能够发出声音。
      我们可以让市场更好地为穷人服务,如果我们能够设计出一种更有创新性的资本主义制度——如果我们可以改变市场,让更多的人可以获得利润,或者至少可 以维持生活——那么,这就可以帮到那些正在极端不平等的状况中受苦的人们。我们还可以向全世界的政府施压,要求他们将纳税人的钱,花到更符合纳税人价值观 的地方。
       如果我们能够找到这样一种方法,既可以帮到穷人,又可以为商人带来利润,为政治家带来选票,那么我们就找到了一种减少世界性不平等的可持续的发展道路。这个任务是无限的。它不可能被完全完成,但是任何自觉地解决这个问题的尝试,都将会改变这个世界。
 在这个问题上,我是乐观的。但是,我也遇到过那些感到绝望的怀疑主义者。他们说:“不平等从人类诞生的第一天就存在,到人类灭亡的最后一天也将存在。——因为人类对这个问题根本不在乎。”我完全不能同意这种观点。
      我相信,问题不是我们不在乎,而是我们不知道怎么做。
      此刻在这个院子里的所有人,生命中总有这样或那样的时刻,目睹人类的悲剧,感到万分伤心。但是我们什么也没做,并非我们无动于衷,而是因为我们不知道做什么和怎么做。如果我们知道如何做是有效的,那么我们就会采取行动。
      改变世界的阻碍,并非人类的冷漠,而是世界实在太复杂。
      为了将关心转变为行动,我们需要找到问题,发现解决办法的方法,评估后果。但是世界的复杂性使得所有这些步骤都难于做到。
      即使有了互联网和24小时直播的新闻台,让人们真正发现问题所在,仍然十分困难。当一架飞机坠毁了,官员们会立刻召开新闻发布会,他们承诺进行调查、找到原因、防止将来再次发生类似事故。
      但是如果那些官员敢说真话,他们就会说:“在今天这一天,全世界所有可以避免的死亡之中,只有0.5%的死者来自于这次空难。我们决心尽一切努力,调查这个0.5%的死亡原因。”
       显然,更重要的问题不是这次空难,而是其他几百万可以预防的死亡事件。
       我们并没有很多机会了解那些死亡事件。媒体总是报告新闻,几百万人将要死去并非新闻。如果没有人报道,那么这些事件就很容易被忽视。另一方面,即使 我们确实目睹了事件本身或者看到了相关报道,我们也很难持续关注这些事件。看着他人受苦是令人痛苦的,何况问题又如此复杂,我们根本不知道如何去帮助他 人。所以我们会将脸转过去。就算我们真正发现了问题所在,也不过是迈出了第一步,接着还有第二步:那就是从复杂的事件中找到解决办法。
        如果我们要让关心落到实处,我们就必须找到解决办法。如果我们有一个清晰的和可靠的答案,那么当任何组织和个人发出疑问“如何我能提供帮助”的时 候,我们就能采取行动。我们就能够保证不浪费一丁点全世界人类对他人的关心。但是,世界的复杂性使得很难找到对全世界每一个有爱心的人都有效的行动方法, 因此人类对他人的关心往往很难产生实际效果。
        从这个复杂的世界中找到解决办法,可以分为四个步骤:确定目标,找到最高效的方法,发现适用于这个方法的新技术,同时最聪明地利用现有的技术,不管它是复杂的药物,还是最简单的蚊帐。
       艾滋病就是一个例子。总的目标,毫无疑问是消灭这种疾病。最高效的方法是预防。最理想的技术是发明一种疫苗,只要注射一次,就可以终生免疫。所以, 政府、制药公司、基金会应该资助疫苗研究。但是,这样研究工作很可能十年之内都无法完成。因此,与此同时,我们必须使用现有的技术,目前最有效的预防方法 就是设法让人们避免那些危险的行为。
      要实现这个新的目标,又可以采用新的四步循环。这是一种模式。关键的东西是永远不要停止思考和行动。我们千万不能再犯上个世纪在疟疾和肺结核上犯过的错误,那时我们因为它们太复杂,而放弃了采取行动。
      在发现问题和找到解决方法之后,就是最后一步——评估工作结果,将你的成功经验或者失败经验传播出去,这样其他人就可以从你的努力中有所收获。
      当然,你必须有一些统计数字。你必须让他人知道,你的项目为几百万儿童新接种了疫苗。你也必须让他人知道,儿童死亡人数下降了多少。这些都是很关键的,不仅有利于改善项目效果,也有利于从商界和政府得到更多的帮助。
      但是,这些还不够,如果你想激励其他人参加你的项目,你就必须拿出更多的统计数字;你必须展示你的项目的人性因素,这样其他人就会感到拯救一个生命,对那些处在困境中的家庭到底意味着什么。
      几年前,我去瑞士达沃斯旁听一个全球健康问题论坛,会议的内容有关于如何拯救几百万条生命。天哪,是几百万!想一想吧,拯救一个人的生命已经让人何等激动,现在你要把这种激动再乘上几百万倍……但是,不幸的是,这是我参加过的最最乏味的论坛,乏味到我无法强迫自己听下去。
      那次经历之所以让我难忘,是因为之前我们刚刚发布了一个软件的第13个版本,我们让观众激动得跳了起来,喊出了声。我喜欢人们因为软件而感到激动,那么我们为什么不能够让人们因为能够拯救生命而感到更加激动呢?除非你能够让人们看到或者感受到行动的影响力,否则你无法让人们激动。如何做到这一点,并不是一件简单的事。
     同前面一样,在这个问题上,我依然是乐观的。不错,人类的不平等有史以来一直存在,但是那些能够化繁为简的新工具,却是最近才出现的。这些新工具可以帮助我们,将人类的同情心发挥最大的作用,这就是为什么将来同过去是不一样的。这个时代无时无刻不在涌现出新的革新——生物技术,计算机,互联网——它们给了我们一个从未有过的机会,去终结那些极端的贫穷和非恶性疾病的死亡。
      六十年前,乔治·马歇尔也是在这个地方的毕业典礼上,宣布了一个计划,帮助那些欧洲国家的战后建设。他说:“我认为,困难的一点是这个问题太复杂, 报纸和电台向公众源源不断地提供各种事实,使得大街上的普通人极端难于清晰地判断形势。事实上,经过层层传播,想要真正地把握形势,是根本不可能的。”马歇尔发表这个演讲之后的三十年,我那一届学生毕业,当然我不在其中。那时,新技术刚刚开始萌芽,它们将使得这个世界变得更小、更开放、更容易看到、距离更近。低成本的个人电脑的出现,使得一个强大的互联网有机会诞生,它为学习和交流提供了巨大的机会。
      网络的神奇之处,不仅仅是它缩短了物理距离,使得天涯若比邻。它还极大地增加了怀有共同想法的人们聚集在一起的机会,我们可以为了解决同一个问题,一起共同工作。这就大大加快了革新的进程,发展速度简直快得让人震惊。
       与此同时,世界上有条件上网的人,只是全部人口的六分之一。这意味着,还有许多具有创造性的人们,没有加入到我们的讨论中来。那些有着实际的操作经验和相关经历的聪明人,却没有技术来帮助他们,将他们的天赋或者想法与全世界分享。
  我们需要尽可能地让更多的人有机会使用新技术,因为这些新技术正在引发一场革命,人类将因此可以互相帮助。新技术正在创造一种可能,不仅是政府,还 包括大学、公司、小机构、甚至个人,能够发现问题所在、能够找到解决办法、能够评估他们努力的效果,去改变那些马歇尔六十年前就说到过的问题——饥饿、贫 穷和绝望。
       哈佛是一个大家庭。这个院子里在场的人们,是全世界最有智力的人类群体之一。我们可以做些什么?
       毫无疑问,哈佛的老师、校友、学生和资助者,已经用他们的能力改善了全世界各地人们的生活。但是,我们还能够再做什么呢?有没有可能,哈佛的人们可以将他们的智慧,用来帮助那些甚至从来没有听到过“哈佛”这个名字的人?
      请允许我向各位院长和教授,提出一个请求——你们是哈佛的智力领袖,当你们雇用新的老师、授予终身教职、评估课程、决定学位颁发标准的时候,请问你们自己如下的问题:
       我们最优秀的人才是否在致力于解决我们最大的问题?
       哈佛是否鼓励她的老师去研究解决世界上最严重的不平等?哈佛的学生是否从全球那些极端的贫穷中学到了什么……世界性的饥荒……清洁的水资源的缺乏……无法上学的女童……死于非恶性疾病的儿童……哈佛的学生有没有从中学到东西?
       那些世界上过着最优越生活的人们,有没有从那些最困难的人们身上学到东西?
      这些问题并非语言上的修辞。你必须用自己的行动来回答它们。
      我的母亲在我被哈佛大学录取的那一天,曾经感到非常骄傲。她从没有停止督促我,去为他人做更多的事情。在我结婚的前几天,她主持了一个新娘进我家的 仪式。在这个仪式上,她高声朗读了一封关于婚姻的信,这是她写给Melinda的。那时,我的母亲已经因为癌症病入膏肓,但是她还是认为这是又一个传播她 的信念的机会。在那封信的结尾,她写道:“对于那些接受了许多帮助的人们,他们还在期待更多的帮助。”
      想一想吧,我们在这个院子里的这些人,被给予过什么——天赋、特权、机遇——那么可以这样说,全世界的人们几乎有无限的权力,期待我们做出贡献。
      同这个时代的期望一样,我也要向今天各位毕业的同学提出一个忠告:你们要选择一个问题,一个复杂的问题,一个有关于人类深刻的不平等的问题,然后你 们要变成这个问题的专家。如果你们能够使得这个问题成为你们职业的核心,那么你们就会非常杰出。但是,你们不必一定要去做那些大事。每个星期只用几个小 时,你就可以通过互联网得到信息,找到志同道合的朋友,发现困难所在,找到解决它们的途径。
      不要让这个世界的复杂性阻碍你前进。要成为一个行动主义者。将解决人类的不平等视为己任。它将成为你生命中最重要的经历之一。
      在座的各位毕业的同学,你们所处的时代是一个神奇的时代。当你们离开哈佛的时候,你们拥有的技术,是我们那一届学生所没有的。你们已经了解到了世界 上的不平等,我们那时还不知道这些。有了这样的了解之后,要是你再弃那些你可以帮助的人们于不顾,就将受到良心的谴责,只需一点小小的努力,你就可以改变 那些人们的生活。你们比我们拥有更大的能力;你们必须尽早开始,尽可能长时期坚持下去。
      知道了你们所知道的一切,你们怎么可能不采取行动呢?
     我希望,30年后你们还会再回到哈佛,想起你们用自己的天赋和能力所做出的一切。我希望,在那个时候,你们用来评价自己的标准,不仅仅是你们的专业 成就,而包括你们为改变这个世界深刻的不平等所做出的努力,以及你们如何善待那些远隔千山万水、与你们毫不涉及的人们,你们与他们唯一的共同点就是同为人 类。
     Good luck.最后,祝各位同学好运。(完)

盖茨:我又回来了 30年后终获哈佛学位(组图)

图:哈佛大学代理校长Derek Bok(最右边)介绍毕业典礼主讲人比尔·盖茨出场,一旁观看的则是NBA传奇人物Bill Russell。
Bok校长不忘开玩笑的说,“若你在哈佛能多读完两年才出去,那成就不就更惊人了?”盖茨当年读到大三就退学出去创业,成立了微软。

盖茨:早就说我会回来拿学位的
盖茨:我又回来了 30年后终获哈佛学位(组图)

图:盖茨上台后,也不忘幽默地回应校长的话:“这一刻我等了30年了,阿爸,我早就跟你说过,我一定会回来拿到学位的。”

不过场面话交代完毕,盖茨马上将话题转到对抗贫穷与爱滋,这是盖茨与妻子Melinda通过他们的基金会(Bill&Melinda Gates Foundation)所致力改善的目标之一。
盖茨向哈佛毕业生说,各位有责任改善世界不公平之处。“想想你们目前享受到的,大家就能明白世界对各位的期望是什么。”

盖茨鲍尔默曾经的同窗室友

盖茨:我又回来了 30年后终获哈佛学位(组图)

图:盖茨与微软首席执行官史蒂夫·鲍尔默(1977年哈佛毕业生)向主办单位致意。鲍尔默跟盖茨两人在哈佛一年级时曾经同寝室。

数字鸿沟并非OLPC能解决

盖茨:我又回来了 30年后终获哈佛学位(组图)

图:在会后记者会上,有记者询问盖茨对于Nicholas Negroponte发起“人人电脑”(One Laptop Per Child)计划的看法。盖茨回答说,这方面的工作都十分令人敬佩,但他的基金会希望以特定的方式来进行。

“若以优先性来说,世界上有许多地方发生许多不公的事情,计算机运算并非这些问题的主因之一。”盖茨表示。

盖茨全家福:老爸老妈和老婆

盖茨:我又回来了 30年后终获哈佛学位(组图)

图:比尔·盖茨、太太Melinda、父亲William Henry Gates Sr.,与后母Mimi Gardner Gates拍了一张大学毕业生的传统:全家福照片。

posted @ 2007-08-13 09:24 ricki 阅读(220) | 评论 (0)编辑 收藏

Apache和Tomcat同是Apache基金会下面的两个项目。一个是HTTP WEB服务器,另一个是servlet容器(servlet container),最新的5.5.X系列实现Servlet 2.4/JSP 2.0Spec。在我们生产的环境中,往往需要Apache做前端服务器,Tomcat做后端服务器。此时我们就需要一个连接器,这个连接器的作用就是把 所有Servlet/JSP的请求转给Tomcat来处理。在Apache2.2之前,一般有两个组件可选择。mod_jk和mod_jk2。后来 mod_jk2没更新了,转而更新mod_jk,所以现在一般都使用mod_jk做Apache和Tomcat的连接器。要指出的是mod_jk支持 Apache 1.x和2.X系列。
不过,自从Apache2.2出来后,你又多了种选择,那就是proxy-ajp.大家知道Apache里的proxy模块,可以实现双向代理功能,功能 非常强大。其实从连接器的实现原理上来说,用proxy模块来实现是非常自然的。proxy模块的功能无非就是把相关的请求发给特定的主机再返回结果。那 连接器的功能需求就是要把所有对Servlet/JSP的请求都转给后台的Tomcat。而且所FreeBSD邮件列表上说,使用proxy-ajp要比 mod_jk的效率要高。就我一个外行来看,至少使用Apache自带模块,要比另外编译的来得可靠。


apache2.2和tomcat5.5是一个不错的组合,可以作为开发环境或者是工作服务器。在配置前需要下载以下几个文件:
1.下载JDK
http://192.18.108.228/ECom/EComTicketServlet/BEGIN7CF7E6A4BCB54064E5D90FCCE00D7048/-2147483648/1579524843/1/732086/731822/1579524843/2ts+/westCoastFSEND/jdk-1.5.0_07-oth-JPR/jdk-1.5.0_07-oth-JPR:2/jdk-1_5_0_07-windows-i586-p.exe
2.下载apache2.2
http://mirror.vmmatrix.net/apache/httpd/binaries/win32/apache_2.2.2-win32-x86-no_ssl.msi
3.下载tomcat5.5.17
http://apache.justdn.org/tomcat/tomcat-5/v5.5.17/bin/apache-tomcat-5.5.17.exe


一、安装和配置JDK
下载下来后,直接执行jdk-1.5.0_07-oth-JPR:2/jdk-1_5_0_07-windows-i586-p.exe
实装时建议选择简单的路径,如E:\Web_Server\jdk1.5.0\
安装最后会要求安装jre,继续下一步就行,安装路径E:\Web_Server\jre1.5.0\。

装完后添加或编缉三个系统变量(已经有就编缉,没有就新建):
在PATH变量尾加在";E:\Web_Server\jdk1.5.0\bin\" (注意有个分号)
新建Web_Server_HOME变量,值为 "E:\Web_Server\jdk1.5.0\"
新建CLASSPATH变量,值为 "E:\Web_Server\jdk1.5.0\lib\tools.jar"

二、安装和测试apache
在安装前如已安装了IIS,请先停止IIS服务。因为IIS和apache都默认使用80端口,否则会冲突。
同样直接运行安装apache_2.2.2-win32-x86-no_ssl.msi,建议选择简单的路径,如E:\Web_Server\ apache2.2\。安装时会要求输入一些关于这台服务器的信息,如域名、管理员邮箱,这些信息将会加入到httpd.conf文件中。

安装完配置httpd.conf文件,在E:\Web_Server\apache2.2\conf\下
用文本编缉器打开httpd.conf,在DirectoryIndex index.html后添加index.jsp

测试,在IE中输入
http://localhost/,如果apache工作应该可以看到"It works!"这样的页面。

三、安装和测试tomcat
直接运行安装tomcat,安装路径为E:\Web_Server\tomcat5.5\
安装完,好像步骤一,添加一个系统变量TOMCAT_HOME,变量值为"E:\Web_Server\tomcat5.5\"
最后测试tomcat,因为tomcat默认使用了8080端口,所以在IE输入
http://localhost:8080,正常工作会看见一只小猫的页面。

四。整合apache和tomcat
网上很多是通过mod_jk来整合的,由于apache2.2本身已经支持tomcat了,所以这里用proxy来整合tomcat,先把apache和tomcat都停止了。然后打开httpd.conf文件,把
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
前面的#号去掉,在文件最后添加
ProxyPass /images/ !
ProxyPass / ajp://127.0.0.1:8009/
ProxyPassReverse / ajp://127.0.0.1:8009/
上面几名只是对apache进行简单的优化。

五、最后测试整合后的apache+tomcat
启动apache,再启动tomcat,准备以下代码的jsp文件,以便测试。
<%@ page contentType="text/html;charset=gb2312" %>
<HTML>
<HEAD>
<TITLE>JSP测试页面</TITLE>
</HEAD>
<BODY>
<%out.println("<h1>Hello World! </h1>");%>
</BODY>
</HTML>
保存为test.jsp
在E:\Web_Server\tomcat5.5\webapps\ROOT\下新建一个文件夹myjsp,并把test.jsp放在里面。
在IE中输入
http://localhost:8080/myjsp/test.jsp
再输入
http://localhost/myjsp/test.jsp
如果两次都显示Hello World!说明已经成功整合了。


============================
方法之二:
Windows环境下的tomcat + apache配置(绝对实践操作版)
关键词: tomcat apache

Apache的HTTPD是目前比较受欢迎的网站服务器软件,它不但功能强大,而且完全免费,并且支持市场上流行的各种操作系统(Windows, Linux,Mac os)。同时对于Java Servlet/JSP的支持,通常也会使用同样Apache出品的Tomcat。
Tomcat除了支持Java Servlet/JSP之外,也可以当做网站服务器使用,但是在对于静态的html文件、图片文件等的解析效率上不如Apache HTTPD的执行效率高。应用tomcat的服务器如果网站的访问量较大,系统资源占用会明显升高,近日笔者在项目执行过程中遇到这一问题,便也想到同时 应用tomcat+apache服务。Apache负责静态资源处理,tomcat负责jsp和java servlet等动态资源的处理。在网上看了不少介绍Apache和Tomcat集成的帖子。大多为互相转贴,有几个关键问题没有讲清楚,并且多数文章讲 解中所举的软件版本都已经比较老旧。因而笔者总结自己实际操作的经验,希望对大家有所帮助。

准备工作:
1、 apache 2.0.55
下载地址:
http://apache.justdn.org/httpd/binaries/win32/apache_2.0.55-win32-x86-no_ssl.msi
2、 Tomcat 5.5
下载地址:
http://tomcat.apache.org/download-55.cgi
3、 JRE1.5.0 update6
下载地址:
http://java.sun.com/j2se/1.5.0/download.jsp
你也可以选择安装JDK,JDK不仅包含了运行java应用程序的支持,同时也包含J2SE的开发包。但如果您只是应用的话,我建议您仅下载JRE即可,为什么?因为它小啊:)
4、JK-apache-2.0.55
下载地址:
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.15/mod_jk-apache-2.0.55.so
注意jk的版本一定要与你的apache版本相同。Jk下载可以直接到apache.org官网下载,有多种版本,适用于各种操作系统,地址如下:
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/
windows用户进入win32目录,不同的tomcat对应不同jk文件扩展名不同,有可能是*.dll,或者*.so,根据你的tomcat版本下载合适的jk版本。

安装,软件的安装顺序可以适当调整,但是jre(jdk)一定要在tomcat之前安装:
1、安装JRE(JDK)
此处选择默认安装即可,(旧版本的JDK安装完之后需要设置系统的环境变量,JRE和JDK1.5.0以后版本不设置也没关系。)安装完成之后你可以选择按照下面的示例设置你的系统环境变量:我的电脑->右键属性->常规->高级->环境变量
JAVA_HOME = d:\Java\jre1.5.0_06
CLASSPATH = .;d:\Java\jre1.5.0_06\lib\dt.jar;d:\Java\jre1.5.0_06\lib\tools.jar
PATH = d:\Java\jre1.5.0_06\bin
注意文件路径要改成你实际安装的路径。

2、Apache安装
此处注意,如果你本机已经装了iis并且占用80端口,务必先在服务中将iis停止或禁用。软件默认安装即可。安装过程中设置Network Domain和Server Name为localhost,设置你的email地址,下方会让你选择only for the current user或for all users。默认选择for all users。这样Apache就会占用80端口,并且做为一个系统服务开机自运行。
安装完成之后,你在浏览器中输入
http://localhost, 将会看到Apache的成功页面.Apache的主目录是d:\Apache\Apache2,此时Apache,已经运行,你可以在窗口的托盘看到他的 图标,双击图标,在弹开的窗口选择"Open Apache Monitor",点Stop,停止Apaceh服务,因为下面要安装Tomcat和JK.

3、Tomcat安装
选择安装目录为了d:\Tomcat,其余为默认安装.成功后在浏览器中输入
http://localhost:8080,出现Tomcat页面表示安装成功了。关于tomcat的设置已经有很多非常详细的文章,在此就不再详述了。

4、JK的安装
把mod_jk_2.0.55.so拷贝到d:\Apache\Apache2\modules\下.

以上安装全部完成后,打开cmd命令提示符,运行d:\Apache\Apache2\bin\Apache.exe -t 你将会看到"Syntax OK",表示Apache配置正常.这个命令非常有用,下面在继续配置Apache的时候还会再次用到。

配置服务器:

1、配置Tomcat
查找目录下的conf/workers.properties文件,并对比下方文本内容,如有不同以下方内容为准修改。
workers.tomcat_home=d:\Tomcat #让mod_jk模块知道Tomcat的位置
workers.java_home=d:\Java\jre1.5.0_06 #让mod_jk模块知道jre的位置
ps=\
worker.list=ajp13 #模块版本
worker.ajp13.port=8009 #工作端口,若没占用则不用修改
worker.ajp13.host=localhost #本机,若上面的Apache主机不为localhost,作相应修改
worker.ajp13.type=ajp13 #类型
worker.ajp13.lbfactor=1 #代理数,不用修改

如果文件不存在则创建。并填充上述内容。

2、配置Apache
打开d:\Apache\Apache2\conf下的httpd.conf,在最后加入下面这段代码并保存。
#设置Apache与Tomcat之间的连接,让Apache遇到jsp文件时,在后台将其交由Tomcat去处理
LoadModule jk_module modules/mod_jk_2.0.55.so
#此处mod_jk的文件为你下载的文件
JkWorkersFile "d:/Tomcat/conf/workers.properties"
#指定tomcat监听配置文件地址
JkLogFile "d:/Tomcat/logs/mod_jk2.log"
#指定日志存放位置
JkLogLevel info

#设置虚拟主机

ServerAdmin localhost
DocumentRoot d:/test1
#您的站点项目所在路径,应与tomcat中的目录设置相同
ServerName localhost
DirectoryIndex index.html index.htm index.jsp
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
JkMount /servlet/* ajp13
#让Apache支持对servlet传送,用以Tomcat解析
JkMount /*.jsp ajp13
#让Apache支持对jsp传送,用以Tomcat解析
JkMount /*.do ajp13
#让Apache支持对.do传送,用以Tomcat解析


#开头的行为注释,可以删除。此处的配置我是以设置虚拟目录,重新指定了serverName,DocumentRoot路径的方式配置站点,实际上, Apache的配置可以非常灵活,你也可以不采用虚拟目录的方式,而直接去修改站点的默认配置,使用任意文本编辑工具,搜索如ServerName, DocumentRoot,ServerAdmin等相关项,然后将该项的配置根据你的实际情况进行修改即可。我建议大家可以多多尝试不同的配置,这是一 种很有乐趣的体验。
所有的修改完成这后,再次执行d:\Apache\Apache2\bin\Apache.exe -t 如果看到"Syntax OK",说明你所有配置无误,双击窗口的托盘中的图标,然后点击Start运行。
在地址栏中分别输入
http://localhost/,与http://localhost:8080/若结果相同,Apache与Tomcat整合成功

posted @ 2007-08-12 11:11 ricki 阅读(383) | 评论 (0)编辑 收藏

一、配置环境

下载和安装 JRE 1.5 最新版 (1.5.06)
下载和安装 Tomcat 最新版 (5.5.12),假定安装目录为 C:\Program Files\Apache Software Foundation\Tomcat 5.5
二、使 Tomcat 集群配置生效

修改 Tomcat 安装目录\conf\server.xml ,把 Server/Service/Engine/Host 下的 Cluster 结点前后的注释符(<!-- 和 -->)删除,并保存
三、配置第二个 Tomcat 实例

在 C:\Program Files\Apache Software Foundation\ 下新建目录 Tomcat 5.5 Instance1
将 C:\Program Files\Apache Software Foundation\Tomcat 5.5 目录下的全部内容复制到 C:\Program Files\Apache Software Foundation\Tomcat 5.5 Instance1
修改新实例的服务器配置文件 (C:\Program Files\Apache Software Foundation\Tomcat 5.5 Instance1\conf\server.xml),把其中的 Server/Service/Connector 的端口更改,以避免和第一个冲突(8080 -> 9080,8009 -> 9009,8443 -> 9443)
修改 Cluster/Receiver 结点的 tcpListenPort 端口(此端口用于 Session 复制),以避免和第一个冲突(4001 -> 4002)
注:Tomcat Cluster 默认使用多播来建立成员关系,即两个实例的多播的地址和端口一样,就可以互相认为是同一个 Cluster 的成员。

四、启动验证两个 Tomcat 实例能否正常工作

直接用程序菜单里的 Monitor Tomcat 来启动第一个实例(或在服务器里启动)
第二个实例启动稍微麻烦一些,在 C:\Program Files\Apache Software Foundation\Tomcat 5.5 Instance1\Bin 下建一个 startup.bat ,用如下 java 命令来启动:
"C:\Program Files\Java\j实re1.5.0_06\bin\java.exe" -jar .\bootstrap.jar -Dcatalina.home="C:\Program Files\Apache Software Foundation\Tomcat 5.5 Instance1" -Dcatalina.base="C:\Program Files\Apache Software Foundation\Tomcat 5.5 Instance1" -Djava.endorsed.dirs="C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\endorsed" -Djava.io.tmpdir="C:\Program Files\Apache Software Foundation\Tomcat 5.5 Instance1\temp" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="C:\Program Files\Apache Software Foundation\Tomcat 5.5 Instance1\conf\logging.properties" start

看起来挺长,其实主要是第二个实例的安装目录太长的缘故,直接执行此批处理就可以启动第二个实例,如果配置正确,应该可以看到集群管理器启动,并和第一个实例   建立成员关系的信息。

五、写一个简单Web应用,能显示和设置 Session 属性值,以供测试

如果有开发工具,新建一个 Web App ,假设为 TomcatDemo
新增 index.jsp ,加入如下代码:
<%@ page contentType="text/html; charset=UTF-8" import="java.util.*"%>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info: <%out.print(request.getLocalAddr() + " : " + request.getLocalPort());%>
<%
out.println("<br> ID " + session.getId());

// 如果有新的 Session 属性设置
String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
  String dataValue = request.getParameter("dataValue");
  session.setAttribute(dataName, dataValue);
}

out.print("<b>Session 列表</b>");

Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
  String name = (String)e.nextElement();
  String value = session.getAttribute(name).toString();
  out.println( name + " = " + value);
  }
%>
<form action="index.jsp" method="POST">
  名称:<input type=text size=20 name="dataName">
  <br>
  值:<input type=text size=20 name="dataValue">
  <br>
  <input type=submit>
  </form>
</body>
</html>


以上代码主要是显示服务器信息和 Session 值,并包含一个 Form ,可以随时新建一个 Session 属性值

修改此用应用的 Web.xml ,加入 distributable 属性,表示 Tomcat 要为此 Web 应用复制 Session  
<web-app xmlns="
http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
    <display-name>TomcatDemo</display-name>
    <distributable/>
</web-app>

将应用打包成 WAR 文件,分别上现两个实例的 Tomcat Manager 来部署
(如果没有 Java 开发工具,可以直接建立一个 TomcatDemo 的目录,用 Notepad 将如上的内容复制并保存成 index.jsp,然后在此目录下新建子目录 WEB-INF,再用 Notepad 新建一 Web.xml 文件,将上面的代码复制保存,然后将此目录压缩成 Zip 文件,再把后缀改成 .war ,或利用 jar 命令来创建 .war 文件)

六、测试 Tomcat 集群和 Session 复制的是否工作

在 IE 中打开第一个实例中的 TomcatDemo (
http://localhost:8080/TomcatDemo),在 Form 里随便设置一个 Session 属性,如 MyName = foo
将 IE 地址栏中的地址修改为第二个实例中的 TomcatDemo(
http://localhost:9080/TomcatDemo),刷新,就可以看到注意到 SessionID 不变, MyName 的属性值已有了
同样,如果在第二实例中设置的值,在第一个实例的页面中也能看到
注意:必须在同一个 IE 窗口中进行如上测试,以保证是同一个 Session ,如果是两个窗口,则 Session 可能不同,也互相看不到 Session 复制的结果。

七、其它工作

上述只实现了 Session 复制,而没有实现 Load Balance(负载均衡),这可以利用 Apache 等来实现。

posted @ 2007-08-09 17:23 ricki 阅读(410) | 评论 (0)编辑 收藏

     摘要: 在开始做http://133.newsky.cn之前,我已经明白网站的开发与产品开发没有什么不同。不过在2004年离开微软中国研发中心Office组的时候,我对网站开发仍一无所知,这主要是因为我之前没有任何互联网研发的背景。虽然对传统软件产品的研发管理比较有经验,但从未接触过Internet相关的项目。   从零开始与网站开发亲密接触 去年我接手第一个网站项目http://www....  阅读全文

posted @ 2007-08-09 16:31 ricki 阅读(343) | 评论 (0)编辑 收藏

环境说明

       Apache  :apache_2.0.55     1 个

       Tomcat:  apache-tomcat-5.5.17 (zip版) 2个

       mod_jk:: mod_jk-apache-2.0.55.so  1个

第一部分:负载均衡

    负载均衡,就是apache将客户请求均衡的分给tomcat1,tomcat2....去处理

   1.安装apche,tomcat

   http://httpd.apache.org/ 下载Apache 2.0.55

    http://tomcat.apache.org/download-55.cgi 下载tomcat5.5 zip版本(解压即可,绿色版)

   http://apache.justdn.org/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.15/  下载mod_jk,注意和  apache版本匹配

   按照jdk,我的路径为:E:\ide\apache\Apache2

   解压两份Tomcat, 路径分别为 E:\ide\tomcat1,E:\ide\tomcat2

下载mod_jk

2.gif

2.修改Apache配置文件http.conf

   在apache安装目录下conf目录中找到http.conf

   在文件最后加上下面一句话就可以了

  include "E:\ide\apache\Apache2\conf\mod_jk.conf"

2. http.conf 同目录下新建mod_jk.conf文件,内容如下

#加载mod_jk Module
LoadModule jk_module modules/mod_jk-apache-2.0.55.so
#指定 workers.properties文件路径
JkWorkersFile conf/workers.properties
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器
JkMount /*.jsp controller

3.在http.conf同目录下新建 workers.properties文件,内容如下

worker.list = controller,tomcat1,tomcat2  #server 列表
#========tomcat1========
worker.tomcat1.port=8009         #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat1.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1   #server的加权比重,值越高,分得的请求越多
#========tomcat2========
worker.tomcat2.port=9009       #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat2.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1   #server的加权比重,值越高,分得的请求越多
#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2   #指定分担请求的tomcat
worker.controller.sticky_session=1

4.修改tomcat配置文件server.xml

如果你在不同电脑上安装tomcat,tomcat的安装数量为一个,可以不必修改tomcat配置文件
我这里是在同一台电脑上安装两个tomcat,所以需要更改其中一个的设置
打开tomcat2/conf/server.xml文件
        
        
        

5.编写一个测试jsp
建立一个目录test.里面新建一个test.jsp,内容为
<%
   System.out.println("===========================");
%>

把test放到tomcat1,tomcat2的webapps下

6.启动apache,tomcat1,tomcat2,进行测试
通过 http://localhost/test/test.jsp 访问,查看tomcat1的窗口,可以看到打印了一行"=========="
再刷新一次,tomcat2也打印了一条,再刷新,可以看到请求会被tomcat1,tomcat2轮流处理,实现了负载均衡.
        

第二部分,配置集群

   只配置负载均衡还不行,还要session复制,也就是说其中任何一个tomcat的添加的session,是要同步复制到其它tomcat, 集群内的tomcat都有相同的session

1. 修改tomcat1, tomcat2的server.xml,将集群部分配置的在注释符删掉,并将tomcat2的4001端口改为4002,以避免与tomcat冲突,当然,如果是两台电脑,是不用改端口的,去掉注释符即可  
      
      
      
      
2,修改测试项目test

修改test.jsp,内容如下

<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
<%
  out.println("<br> ID " + session.getId()+"<br>");
 // 如果有新的 Session 属性设置
  String dataName = request.getParameter("dataName");
  if (dataName != null && dataName.length() > 0) {
     String dataValue = request.getParameter("dataValue");
     session.setAttribute(dataName, dataValue);
  }
out.print("<b>Session 列表</b>");
Enumeration e = session.getAttributeNames();
  while (e.hasMoreElements()) {
     String name = (String)e.nextElement();
     String value = session.getAttribute(name).toString();
     out.println( name + " = " + value+"<br>");
         System.out.println( name + " = " + value);
   }
%>
  <form action="index.jsp" method="POST">
    名称:<input type=text size=20 name="dataName">
     <br>
    值:<input type=text size=20 name="dataValue">
     <br>
    <input type=submit>
   </form>
</body>
</html>

然后在test 新建WEB-INF目录,WEB-INF下新建web.xml,内容如下
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
       <display-name>TomcatDemo</display-name>
       <distributable/>
</web-app>

注意:在你的应用的web.xml加入  <distributable/> 即可
ok,讲test复制到tomcat1,tomcat2的webapps下,重启apache,tomcat1,tomcat2,输入网址 http://localhost/test/test.jsp  
新建一个 名称为 xiaoluo  ,值为 cdut 的session,提交查询,新开一个ie窗口,再提交查询,如图,可以看到,两个tomcat 是负载均衡,并且session同步的
             

posted @ 2007-08-09 16:14 ricki 阅读(297) | 评论 (0)编辑 收藏

仅列出标题
共5页: 上一页 1 2 3 4 5 下一页