posts - 10,comments - 1,trackbacks - 0

官方网址,可直接玩的.

 

http://www.handdrawngames.com/DesktopTD/game.asp



已有 0 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐




文章来源:http://java-jun.javaeye.com/blog/611965
posted @ 2010-03-10 13:34 uqnetlove 阅读(119) | 评论 (0)编辑 收藏

转:

(一)成长的寓言:做一棵永远成长的苹果树

一棵苹果树,终于结果了。
第一年,它结了10个苹果,9个被拿走,自己得到1个。对此,苹果树愤愤不平,于是自断经脉,拒绝成长。第二年,它结了5个苹果,4个被拿走,自己得到1个。“哈哈,去年我得到了10%,今年得到20%!翻了一番。”这棵苹果树心理平衡了。
但是,它还可以这样:继续成长。譬如,第二年,它结了100个果子,被拿走90个,自己得到10个。
很可能,它被拿走99个,自己得到1个。但没关系,它还可以继续成长,第三年结1000个果子……
其实,得到多少果子不是最重要的。最重要的是,苹果树在成长!等苹果树长成参天大树的时候,那些曾阻碍它成长的力量都会微弱到可以忽略。真的,不要太在乎果子,成长是最重要的。

【心理点评】你是不是一个已自断经脉的打工族?
刚开始工作的时候,你才华横溢,意气风发,相信“天生我才必有用”。但现实很快敲了你几个闷棍,或许,你为单位做了大贡献没人重视;或许,只得到口头重视但却得不到实惠;或许……总之,你觉得就像那棵苹果树,结出的果子自己只享受到了很小一部分,与你的期望相差甚远。
于是,你愤怒、你懊恼、你牢****满腹……最终,你决定不再那么努力,让自己的所做去匹配自己的所得。几年过去后,你一反省,发现现在的你,已经没有刚工作时的激情和才华了。
“老了,成熟了。”我们习惯这样自嘲。但实质是,你已停止成长了。
这样的故事,在我们身边比比皆是。
之所以犯这种错误,是因为我们忘记生命是一个历程,是一个整体,我们觉得自己已经成长过了,现在是到该结果子的时候了。我们太过于在乎一时的得失,而忘记了成长才是最重要的。
好在,这不是金庸小说里的自断经脉。我们随时可以放弃这样做,继续走向成长之路。
切记:如果你是一个打工族,遇到了不懂管理、野蛮管理或错误管理的上司或企业文化,那么,提醒自己一下,千万不要因为激愤和满腹牢****而自断经脉。不论遇到什么事情,都要做一棵永远成长的苹果树,因为你的成长永远比每个月拿多少钱重要。

(二)动机的寓言:孩子在为谁而玩

一群孩子在一位老人家门前嬉闹,叫声连天。几天过去,老人难以忍受。
于是,他出来给了每个孩子25美分,对他们说:“你们让这儿变得很热闹,我觉得自己年轻了不少,这点钱表示谢意。”
孩子们很高兴,第二天仍然来了,一如既往地嬉闹。老人再出来,给了每个孩子15美分。他解释说,自己没有收入,只能少给一些。15美分也还可以吧,孩子仍然兴高采烈地走了。
第三天,老人只给了每个孩子5美分。
孩子们勃然大怒,“一天才5美分,知不知道我们多辛苦!”他们向老人发誓,他们再也不会为他玩了!

【心理点评】你在为谁而“玩”
这个寓言是苹果树寓言的更深一层的答案:苹果树为什么会自断经脉,因为它不是为自己而“玩”。
人的动机分两种:内部动机和外部动机。如果按照内部动机去行动,我们就是自己的主人。如果驱使我们的是外部动机,我们就会被外部因素所左右,成为它的奴隶。
在这个寓言中,老人的算计很简单,他将孩子们的内部动机“为自己快乐而玩”变成了外部动机“为得到美分而玩”,而他操纵着美分这个外部因素,所以也操纵了孩子们的行为。寓言中的老人,像不像是你的老板、上司?而美分,像不像是你的工资、奖金等各种各样的外部奖励?
如将外部评价当作参考坐标,我们的情绪就很容易出现波动。因为,外部因素我们控制不了,它很容易偏离我们的内部期望,让我们不满,让我们牢****满腹。不满和牢****等负性情绪让我们痛苦,为了减少痛苦,我们就只好降低内部期望,最常见的方法就是减少工作的努力程度。
一个人之所以会形****部评价体系,最主要的原因是父母喜欢控制他。父母太喜欢使用口头奖惩、物质奖惩等控制孩子,而不去理会孩子自己的动机。久而久之,孩子就忘记了自己的原初动机,做什么都很在乎外部的评价。上学时,他忘记了学习的原初动机———好奇心和学习的快乐;工作后,他又忘记了工作的原初动机——— 成长的快乐,上司的评价和收入的起伏成了他工作的最大快乐和痛苦的源头。
切记:外部评价系统经常是一种家族遗传,但你完全可以打破它,从现在开始培育自己的内部评价体系,让学习和工作变成“为自己而玩”。

(三)规划的寓言:把一张纸折叠51次

想象一下,你手里有一张足够大的白纸。现在,你的任务是,把它折叠51次。那么,它有多高?
一个冰箱?一层楼?或者一栋摩天大厦那么高?不是,差太多了,这个厚度超过了地球和太阳之间的距离。

【心理点评】
到现在,我拿这个寓言问过十几个人了,只有两个人说,这可能是一个想象不到的高度,而其他人想到的最高的高度也就是一栋摩天大厦那么高。
折叠51次的高度如此恐怖,但如果仅仅是将51张白纸叠在一起呢?
这个对比让不少人感到震撼。因为没有方向、缺乏规划的人生,就像是将51张白纸简单叠在一起。今天做做这个,明天做做那个,每次努力之间并没有一个联系。这样一来,哪怕每个工作都做得非常出色,它们对你的整个人生来说也不过是简单的叠加而已。
当然,人生比这个寓言更复杂一些。有些人,一生认定一个简单的方向而坚定地做下去,他们的人生最后达到了别人不可企及的高度。譬如,我一个朋友的人生方向是英语,他花了十数年努力,仅单词的记忆量就达到了十几万之多,在这一点上达到了一般人无法企及的高度。
也有些人,他们的人生方向也很明确,譬如开公司做老板,这样,他们就需要很多技能———专业技能、管理技能、沟通技能、决策技能等等。他们可能会在一开始尝试做做这个,又尝试做做那个,没有一样是特别精通的,但最后,开公司做老板的这个方向将以前的这些看似零散的努力统合到一起,这也是一种复杂的人生折叠,而不是简单的叠加。
切记:看得见的力量比看不见的力量更有用。
现在,流行从看不见的地方寻找答案,譬如潜能开发,譬如成功学,以为我们的人生要靠一些奇迹才能得救。但是,在我看来,东莞恒缘心理咨询中心的咨询师毛正强说得更正确,“通过规划利用好现有的能力远比挖掘所谓的潜能更重要。”

(四)逃避的寓言:小猫逃开影子的招数

“影子真讨厌!”小猫汤姆和托比都这样想,“我们一定要摆脱它。”
然而,无论走到哪里,汤姆和托比发现,只要一出现阳光,它们就会看到令它们抓狂的自己的影子。
不过,汤姆和托比最后终于都找到了各自的解决办法。汤姆的方法是,永远闭着眼睛。托比的办法则是,永远待在其他东西的阴影里。

【心理点评】
这个寓言说明,一个小的心理问题是如何变成更大的心理问题的。
可以说,一切心理问题都源自对事实的扭曲。什么事实呢?主要就是那些令我们痛苦的负****件。
因为痛苦的体验,我们不愿意去面对这个负****件。但是,一旦发生过,这样的负****件就注定要伴随我们一生,我们能做的,最多不过是将它们压抑到潜意识中去,这就是所谓的忘记。
但是,它们在潜意识中仍然会一如既往地发挥作用。并且,哪怕我们对事实遗忘得再厉害,这些事实所伴随的痛苦仍然会袭击我们,让我们莫名其妙地伤心难过,而且无法抑制。这种疼痛让我们进一步努力去逃避。
发展到最后,通常的解决办法就是这两个:要么,我们像小猫汤姆一样,彻底扭曲自己的体验,对生命中所有重要的负****实都视而不见;要么,我们像小猫托比一样,干脆投靠痛苦,把自己的所有事情都搞得非常糟糕,既然一切都那么糟糕,那个让自己最伤心的原初事件就不是那么疼了。
白云心理医院的咨询师李凌说,99%的****者有过痛苦的遭遇。他们之所以****,是为了让自己逃避这些痛苦。这就像是躲进阴影里,痛苦的事实是一个魔鬼,为了躲避这个魔鬼,干脆把自己卖给更大的魔鬼。
还有很多酗酒的成人,他们有过一个酗酒而暴虐的老爸,挨过老爸的不少折磨。为了忘记这个痛苦,他们学会了同样的方法。
除了这些看得见的错误方法外,我们人类还发明了无数种形形色色的方法去逃避痛苦,弗洛伊德将这些方式称为心理防御机制。太痛苦的时候,这些防御机制是必要的,但糟糕的是,如果心理防御机制对事实扭曲得太厉害,它会带出更多的心理问题,譬如强迫症、社交焦虑症、多重人格,甚至精神****症等。
真正抵达健康的方法只有一个———直面痛苦。直面痛苦的人会从痛苦中得到许多意想不到的收获,它们最终会变成当事人的生命财富。
切记:阴影和光明一样,都是人生的财富。
一个最重要的心理规律是,无论多么痛苦的事情,你都是逃不掉的。你只能去勇敢地面对它,化解它,超越它,最后和它达成和解。如果你自己暂时缺乏力量,你可以寻找帮助,寻找亲友的帮助,或寻找专业的帮助,让你信任的人陪着你一起去面对这些痛苦的事情。
美国心理学家罗杰斯曾是最孤独的人,但当他面对这个事实并化解后,他成了真正的人际关系大师;美国心理学家弗兰克有一个暴虐而酗酒的继父和一个糟糕的母亲,但当他挑战这个事实并最终从心中原谅了父母后,他成了治疗这方面问题的专家;日本心理学家森田正马曾是严重的神经症患者,但他通过挑战这个事实并最终发明出了森田疗法……他们生命中最痛苦的事实最后都变成了他们最重要的财富。你,一样也可以做到。

(五)行动的寓言———螃蟹、猫头鹰和蝙蝠

螃蟹、猫头鹰和蝙蝠去上恶习补习班。数年过后,它们都顺利毕业并获得博士学位。不过,螃蟹仍横行,猫头鹰仍白天睡觉晚上活动,蝙蝠仍倒悬。

【心理点评】
这是黄永玉大师的一个寓言故事,它的寓意很简单:行动比知识重要。
用到心理健康中,这个寓言也发人深省。
心理学的知识堪称博大精深。但是,再多再好的心理学知识也不能自动帮助一个人变得更健康。其实,我知道的一些学过多年心理学的人士,他们学心理学的目的之一就是要治自己,但学了这么多年以后,他们的问题依旧。
之所以出现这种情况,一个很重要的原因是,他们没有身体力行,那样知识就只是遥远的知识,知识并没有化成他们自己的生命体验。
我的一个喜欢心理学的朋友,曾被多名心理学人士认为不敏感,不适合学心理学。但事实证明,这种揣测并不正确。他是不够敏感,但他有一个非常大的优点:知道一个好知识,就立即在自己的生命中去执行。这样一来,那些遥远的知识就变成了真切的生命体验,他不必“懂”太多,就可以帮助自己,并帮助很多人。
如果说,****感度是一种天才素质,那么高行动力是更重要的天才素质。
这个寓言还可以引申出另一种含义:不要太指望神秘的心理治疗的魔力。最重要的力量永远在你自己的身上,奥秘的知识、玄妙的潜能开发、炫目的成功学等等,都远不如你自己身上已有的力量重要。我们习惯去外面寻找答案,去别人那里寻找力量,结果忘记了力量就在自己身上。
切记:别人的知识不能自动地拯救你。
如果一些连珠的妙语打动了你,如果一些文字或新信条启发了你。那么,这些别人的文字和经验都只是一个开始,更重要的是,你把你以为好的知识真正运用到你自己的生命中去。
犹太哲学家马丁·布伯的这句话,我一直认为是最重要的:
你必须自己开始。假如你自己不以积极的爱去深入生存,假如你不以自己的方式去为自己揭示生存的意义,那么对你来说,生存就将依然是没有意义的。

(六)放弃的寓言:蜜蜂与鲜花

玫瑰花枯萎了,蜜蜂仍拼命****,因为它以前从这朵花上****过甜蜜。但是,现在在这朵花上,蜜蜂****的是毒汁。
蜜蜂知道这一点,因为毒汁苦涩,与以前的味道是天壤之别。于是,蜜蜂愤不过,它吸一口就抬起头来向整个世界抱怨,为什么味道变了?!
终于有一天,不知道是什么原因,蜜蜂振动翅膀,飞高了一点。这时,它发现,枯萎的玫瑰花周围,处处是鲜花。

【心理点评】
这是关于爱情的寓言,是一位年轻的语文老师的真实感悟。
有一段时间,她失恋了,很痛苦,一直想约我聊聊,希望我的心理学知识能给她一些帮助。我们一直约时间,但快两个月过去了,两人的时间总不能碰巧凑在一起。
最后一次约她,她说:“谢谢!不用了,我想明白了。”
原来,她刚从九寨沟回来。失恋的痛苦仍在纠缠她,让她神情恍惚,不能享受九寨沟的美丽。不经意的时候,她留意到一只小蜜蜂正在一朵鲜花上采蜜。那一刹那间,她脑子里电闪雷鸣般地出现了一句话:“枯萎的鲜花上,蜜蜂只能****到毒汁。”
当然,大自然中的小蜜蜂不会这么做,只有人类才这么傻,她这句话里的蜜蜂当然指她自己。这一刹那,她顿悟出了放弃的道理。以前,她想让我帮她走出来,但翅膀其实就长在她自己身上,她想飞就能飞。
放弃并不容易,爱情中的放弃尤其令人痛苦。因为,爱情是对我们幼小时候的亲子关系的复制。幼小的孩子,无论从哪个方面看,都离不开爸爸妈妈。如果爸爸妈妈完全否定他,那对他来说就意味着死亡,这是终极的伤害和恐惧。我们多多少少都曾体验过被爸爸妈妈否定的痛苦和恐惧,所以,当爱情———这个亲子关系的复制品再一次让我们体验这种痛苦和恐惧时,我们的情绪很容易变得非常糟糕。
不过,爱情和亲子关系相比,有一个巨大的差别:小时候,我们无能为力,一切都是父母说了算;但现在,我们长大了,我们有力量自己去选择自己的命运。可以说,童年时,我们是没有翅膀的小蜜蜂,但现在,我们有了一双强有力的翅膀了。
但是,当深深地陷入爱情时,我们会回归童年,我们会忘记自己有一双可以飞翔的翅膀。等我们自己悟出这一点后,爱情就不再会是对亲子关系的自动复制,我们的爱情就获得了自由,就有了放弃的力量。
切记:爱情是两个人的事情,两个完全平等的、有独立人格的人的事情。你可以努力,但不是说,你努力了就一定会有效果,因为另一个人,你并不能左右。
所以,无论你多么在乎一次爱情,如果另一个人坚决要离开你,请尊重他的选择。
并且,还要记得,你不再是童年,只能听凭痛苦的折磨。你已成人,你有一双强有力的翅膀,你完全可以飞出一个已经变成毒药的关系。

(七)亲密的寓言:独一无二的玫瑰

小王子有一个小小的星球,星球上忽然绽放了一朵娇艳的玫瑰花。以前,这个星球上只有一些无名的小花,小王子从来没有见过这么美丽的花,他爱上这朵玫瑰,细心地呵护她。
那一段日子,他以为,这是一朵人世间唯一的花,只有他的星球上才有,其他的地方都不存在。
然而,等他来到地球上,发现仅仅一个花园里就有5000朵完全一样的这种花朵。这时,他才知道,他有的只是一朵普通的花。
一开始,这个发现,让小王子非常伤心。但最后,小王子明白,尽管世界上有无数朵玫瑰花,但他的星球上那朵,仍然是独一无二的,因为那朵玫瑰花,他浇灌过,给她罩过花罩,用屏风保护过,除过她身上的毛虫,还倾听过她的怨艾和自诩,聆听过她的沉默……一句话,他驯服了她,她也驯服了他,她是他独一无二的玫瑰。
“正因为你为你的玫瑰花费了时间,这才使你的玫瑰变得如此重要。”一只被小王子驯服的狐狸对他说。

【心理点评】
这是法国名著《小王子》中一个有名的寓言故事,我曾读过十数遍,但仍然是直到2005年才明白这一点。
面对着5000朵玫瑰花,小王子说:“你们很美,但你们是空虚的,没有人能为你们去死。”
只有倾注了爱,亲密关系才有意义。但是,现在我们越来越流行空虚的“亲密关系”,最典型的就是因网络而泛滥的****。
我们急着去拥有。仿佛是,每多拥有过一朵玫瑰,自己的生命价值就多了一分。网络时代,拥有过数十名情人,已不再是太罕见的事情。但我所了解的这些滥情者,没有一个是不空虚的。他们并不享受关系,他们只享受征服。
“征服欲望越强的人,对于关系的亲密度越没有兴趣。”广州白云心理医院的咨询师荣玮龄说,“没有拥有前,他们会想尽一切办法拉近关系的距离。但一旦拥有后,他们会迅速丧失对这个亲密关系的兴趣。征服欲望越强,丧失的速度越快。”
对于这样的人,一个玫瑰园比起一朵独一无二的玫瑰花来,更有吸引力。
然而,关系的美,正在乎两人的投入程度和被驯服程度。当两个人都自然而然地去投入,自然而然地被驯服后,关系就会变成人生养料,让一个人的生命变得更充盈、更美好。
但是,无论多么亲密。小王子仍是小王子,玫瑰仍是玫瑰,他们仍然是两个个体。如果玫瑰不让小王子旅行,或者小王子旅行时非将玫瑰花带在身上,两者一定要黏在一起,关系就不再是享受,而会变成一个累赘。
切记:一个既亲密而又相互独立的关系,胜于一千个一般的关系。这样的关系,会把我们从不可救药的孤独感中拯救出来,是我们生命中最重要的一种救赎。
如果不曾体验过,你就无法知道这种关系的美。



已有 0 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐




文章来源:http://java-jun.javaeye.com/blog/611778
posted @ 2010-03-10 10:24 uqnetlove 阅读(56) | 评论 (0)编辑 收藏

今天无意间发现几个很好的系统盘下载地

 

http://www.ghost2.cn/

http://www.ghost007.com/

http://www.51xp.cc



已有 0 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐




文章来源:http://java-jun.javaeye.com/blog/611734
posted @ 2010-03-10 09:54 uqnetlove 阅读(73) | 评论 (0)编辑 收藏

不知道大家在看论坛(或者是提问回答形式的)的时候,有没有发现一种普遍现象,楼主提问后,接下来的回答者几乎就是一个模式,头几个回答者可能会给出与之相关的回答,然后接下来中间就会出现开始与本提问牛头不对马嘴的回答,然后,无聊的"顶","接分"之类的层出不穷,然后不知道为什么就会出现争吵,开始骂娘,对骂,最后不了了之,总之花样搞尽,问题还是没有解决,有时候感觉提问者像是给出一个给别人吵架的主题。。我真的不明白这样的回答有什么意义,我也想不明白这样的模式是怎么形成的,其实我觉得,你如果能回答此帖的问题,你大可以给出答案,不知道的大可不必给出一些费话,这样子,帖子才得到真正存在的意义,也是提问者的初衷。当然每个人的理解可能不尽相同,但再怎么样我觉得没有必要在论帖子里一楼接一楼的争吵下去,没半点意义。。如果谁真的那么好斗,可私底下去争,去吵,去骂,去打。没人管,但在请给论坛一个干净和谐的环境,这样对大家只有好处,没有坏处。

 

另:不知道有好事者如果看到我这一帖子是不是又要开搞了。。。如果那样的话,请不要在这撒野,就当没有看到这帖一样。



已有 0 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐




文章来源:http://java-jun.javaeye.com/blog/611180
posted @ 2010-03-09 13:35 uqnetlove 阅读(67) | 评论 (0)编辑 收藏

Open-source License(转载)

1Contributors  Recipients
Contributors 
指的是对某个开源软件或项目提供了代码(包括最初的或者修改过的)发布的人或者实体(团队、公司、组织等),Contributors 按照参与某个软件开源的时间先后,可以分为an initial Contributor  subsequent Contributors 
Recipients
指的是开源软件或项目的获取者,显然,subsequent Contributors 也属于 Recipients之列。
2Source Code  Object Code
Source Code 
指的是各种语言写成的源代码,通过Source Code,结合文档, 可以了解到整个软件的体系结构及具体到某个功能函数的实现方法等。
Object Code 
指的是Source Code 经过编译之后,生成的类似于类库一样的,提供各种接口供他人使用的目标码,按我的理解,它就是像常见的DLLAtiveXOCX控件性质的东西。(不知道这样理解对不对)分清楚这两个概念的目的在于,有些开源,只发布Object Code ,当然,大多数发布的是Source Code。很多协议也对 “你发布的是哪种Code的时候应该怎样,有着明确的约束。
3Derivative Module  Separate Module
Derivative Module 
指的是,依托或包含最初的或者从别人处获取的开源代码而产生的代码,是原源代码的增强(不等于增加)、改善和延续的模块,意为衍生模块
Separate Module 
指的是,参考或借助原源代码,开发出的独立的,不包含、不依赖于原源代码模块,意为独立的模块理解这两个概念的目的在于,很多协议对涉及到商业发布的时候,会有哪些是衍生的,哪些是独立的,有着明确的商业发布规定。
接下来,说说常见的几种协议吧。其实上面我给出的几篇文章的链接里面对一些常见的开源协议已经有比较清晰的描述了,我这里也只是加人了个人的一些理解,希望对接触得少的人有一定的帮助吧。
GPL
Gun General Public License vesion 2.0 1991
最常见的开源协议,使用它作为授权协议的有大名鼎鼎的 Linux GPL最显著的两个特点就是网上称为的病毒性传播不允许闭源的商业发布
所谓的病毒性传播,指的是,GPL规定,所有从GPL协议授权的源码衍生出来的(即上面提到的DerivativeModule),或者要跟GPL授权的源码混着用的Project,都要遵循GPL协议,就像病毒一样,粘上了关系,就中毒了。GPL这样规定的目的是,保证在GPL协议保护下的产品,不会再受到其他协议或者授权的约束。即让跟GPL有关系的源码都能免费获取。举个例子,如果你的改进的Linux中使用了GPL授权下的开源模块(也必须使用,你不可能自己重新去做个内核吧,如果做出来了,你也没必要叫Linux了。),那么你整个Linux产品也必须遵循 GPL协议去开源,不能以其他方式去开源发布,更不允许闭源发布。这样一来,就不会出现这样一个Linux--这个功能是GPL协议授权的,可以免费获取源码,而另外一个功能是其他协议下的,拿不到源码。这点规定对使用或者研究该产品的人来说,是一个极大的便利。
不允许闭源商业发布指的是,在 GPL授权下,你的软件产品可以商业发布,拿去卖钱,但是在这同时,你也必须将该产品的源码以GPL协议方式开源发布出去,供他人免费获取。也许有人会迷惑,拿去卖,又同时开源,那谁来买阿?这个产品怎么赚钱呢??这就涉及到开源产品的商业模式的问题了,想了解相关一些信息的话,可以看看以上我给出链接的一些文章。至于后面,可能会写一篇关于开源项目的商业模式的随笔。
GPL
协议下的商业发布的一个关键点就像 Java 视线论坛的 Robbin所说的,GPL是针对软件源代码的版权,而不是针对软件编译后二进制版本的版权。你有权免费获得软件的源代码,但是你没有权力免费获得软件的二进制发行版本。GPL对软件发行版本唯一的限制就是:你的发行版本必须把完整的源代码一同提供。

BSD
Berkeley Software Distribution
GPL有很大的不同,BSD协议是给予人很大的自由的一种开源协议。其最大的特点是,Recipients 几乎可以对源码为所欲为,可以自由地修改,自由地使用,修改后再以其他方式再发布(商业或者开源)。但,你做这些事情的时候,还是得遵循以下规则:
1
 如果再发布的产品中包含原源代码,则在原源代码中必须带有原来代码中的BSD协议。 
2
 如果再发布的只是二进制类库/软件(Object Code / Product),则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。 
3
 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。 
其实这几个规则约定的目的也只是达到一个目的:是他人的东西,别人以BSD开源了,你就不能不做任何声明而占为己有,更不能用他人的名义来做商业推广。你只对你自己的东西拥有绝对控制权。
举个例子,你用开源代码(A)修改或做其他增添之后,产生了产品B,这时候,你对B的控制由你自己决定,你可以用任何协议再开源,也可以闭源商业发布。但,因为如果B中包含了AA的一部分(一点都不包含就不叫修改了),那你在B产品的版权声明中,必须有提到你有使用到,并且附带上 A 的开源协议。而且不能做商业推广的时候  B 冠以 原开源作者的名义以促进商业推广。
BSD
代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。 

Apache Licence vesion 2.0 
Apache Licence 
是著名的非盈利开源组织 Apache 采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:(配备英文原文,方便更准确理解) 
1
 需要给 Recipients 一份Apache Licence 
You must give any other recipients of the Work or DerivativeWorks a copy of this License
2
 如果你修改了代码,需要在被修改的文件中进行说明。
You must cause any modified files to carry prominent noticesstating that You changed the files 
3
 Derivative Module中(修改和包含源代码而衍生的代码)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。 
You must retain, in the Source form of any DerivativeWorks that You distribute, all copyright, patent, trademark, and attribution noticesfrom the Source form of the Work, excluding those notices that do not pertain to anypart of the Derivative Works
4
 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对ApacheLicence构成更改。 
Apache Licence
也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。 

LGPL 
LGPL 
GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。 
但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

CPL(Common Public Liecense) vesion 1.0
CPL  IBM 提出的并通过了OSIOpen Source Initiative)批准的开源协议。主要用于一些IBM 或跟 IBM 相关的开源软件 /项目中。如 很著名的Java开发环境 Eclipse RIA开发平台Open Laszlo等。

CPL也是一项对商业应用友好的协议。它允许 Recipients 对源码进行任意的使用、复制、分发、传播、展示、修改以及改后做闭源的二次商业发布,这点跟BSD 很类似,也属于自由度比较高的开源协议。但是,需要遵循:
1.
当一个Contributors 将源码的整体或部分再次开源发布的时候,必须继续遵循CPL 开源协议来发布,而不能改用其他协议发布。除非你得到了原源码”Owner  授权。 
2.CPL
协议下,你可以将源码不做任何修改来商业发布。但如果你要将修改后的源码其开源,而且当你再发布的是ObjectCode 的时候,你必须声明 它的Source Code 是可以获取的,而且要告知获取方法
3.
当你需要将 CPL 下的源码作为一部分跟其他私有的源码混和着成为一个 Project发布的时候,你可以将整个Project/Product 以私人的协议发布,但要声明哪一部分代码是CPL下的,而且声明那部分代码继续遵循CPL

4.独立的模块(Separate Module),不需要开源。

 

参考资料 http://producingoss.com/en/index.html



已有 0 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐




文章来源:http://java-jun.javaeye.com/blog/607565
posted @ 2010-03-04 11:22 uqnetlove 阅读(69) | 评论 (0)编辑 收藏

我喜欢的软件工具

1,Free JavaScript Editor  js 编辑器

http://www.yaldex.com/Free_JavaScript_Editor.htm

2,UML design UML设计工具,此工具有专业版和社区版两种,免费的社区版已经够用了

http://jude.change-vision.com/jude-web/index.html

3,notepad++ 很酷的文本编辑器

http://notepad-plus.sourceforge.net/tw/site.htm

4,filezilla 实用的ftp传输工具

http://filezilla-project.org/

5,free mind 工作中要用mind map画图者适用

http://freemind.sourceforge.net/wiki/index.php/Main_Page

6,RJ-TextEd 实用的多功能编辑器

http://www.rj-texted.se/

7,pspad 同上

http://www.pspad.com/

8,editplus 同上

http://www.editplus.com/

9,ultraedit 同上

http://www.ultraedit.com/

10,teracopy windows文件copy工具

http://www.codesector.com/teracopy.php

11,foldersize windows下可以看到文件夹大小的工具软件

http://foldersize.sourceforge.net/

12,PikySuite 此软件可用作在不同目录下的文件同时剪切,当然还有其它功能

http://www.conceptworld.com/piky/piky_features.asp

13,clickie 用此软件可在一文件夹上拷贝其地址,并可以在DOS命令窗口下打开

http://defoort.free.fr/clickie/

14,file locator 文件查找工具

http://www.mythicsoft.com/Page.aspx?type=filelocatorpro&page=home

15,search and replace 同上

http://www.funduc.com/search_replace.htm

16,Xmanager 功能强大且丰富的windows linux连接工具(包括窗口,ftp,等)

http://www.netsarang.com/products/enterprise.html

 



已有 0 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐




文章来源:http://java-jun.javaeye.com/blog/606860
posted @ 2010-03-03 14:18 uqnetlove 阅读(128) | 评论 (0)编辑 收藏

public class JFreeChart1 extends HttpServlet {

 private static final long serialVersionUID = 1L;

 public JFreeChart1() {
  super();
 }

 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doPost(request, response);
 }

 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  TimeSeries xyseries = new TimeSeries("finince income", Month.class);

  TimeSeriesCollection xyseriescollection = new TimeSeriesCollection();
  xyseriescollection.addSeries(xyseries);

  JFreeChart jfreechart = ChartFactory.createTimeSeriesChart("Example",
    "y", "x", xyseriescollection, true, true, true);
  jfreechart.setBackgroundPaint(Color.white);
  XYPlot xyplot = jfreechart.getXYPlot();

  xyplot.setNoDataMessage("no data to display");// 此名可用来做当没有数据的时候jfreechart面板上的显示
  
    StandardEntityCollection sec = new StandardEntityCollection();
  ChartRenderingInfo info = new ChartRenderingInfo(sec);

  ChartUtilities.writeChartAsPNG(response.getOutputStream(), jfreechart,
    600, 400, info);
 }

}



已有 0 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐




文章来源:http://java-jun.javaeye.com/blog/602654
posted @ 2010-02-25 10:59 uqnetlove 阅读(268) | 评论 (1)编辑 收藏

写这篇文章是为了把自己研究的东西分享给大家,可能大家已经知道了,那我就献丑了。
在做金融相关项目的时候,往往会碰到要画时间序列图,大家都知道jfreechart是我们java玩家选择得比较多的。
但是有个问题,jfreechart的时间序列图好像不能给出带热点提示的图出来,因为jfreechart生成出来的是一张图片,
我参考了网上很多的文章都没有给出一个能真正解决问题的方案,所以自己动手搞出来一个。鼠标放在生成出来的图片上一样可以出现数据提示!代码如下!

带热点提示的TimeSeries图,时间序列图

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<%@ page import="java.awt.*"%>
<%@ page import="java.io.*"%>
<%@ page import="org.jfree.chart.*"%>
<%@ page import="org.jfree.data.time.*"%>
<%@ page import="org.jfree.chart.plot.*"%>
<%@ page import="org.jfree.ui.*"%>
<%@ page import="org.jfree.data.time.TimeSeriesCollection"%>
<%@ page import="org.jfree.chart.renderer.xy.*"%>
<%@ page import="org.jfree.chart.axis.*"%>
<%@ page import="org.jfree.chart.entity.*"%>
<%@ page import="org.jfree.chart.servlet.*"%>
<%@ page import="org.jfree.chart.urls.*"%>

<HTML>
 <HEAD>
  <TITLE>time series view</TITLE>
 </HEAD>
 <body>
  <%
   TimeSeries xyseries = new TimeSeries("finince income", Month.class);
   xyseries.add(new Month(1, 2007), 1.0D);
   xyseries.add(new Month(2, 2007), 4D);
   xyseries.add(new Month(3, 2007), 3D);
   xyseries.add(new Month(4, 2007), 5D);
   xyseries.add(new Month(5, 2007), 5D);
   xyseries.add(new Month(6, 2007), 7D);
   xyseries.add(new Month(7, 2007), 7D);
   xyseries.add(new Month(8, 2007), 8D);

   TimeSeries xyseries1 = new TimeSeries("avg incross rate",
     Month.class);
   xyseries1.add(new Month(1, 2007), 3.0D);
   xyseries1.add(new Month(2, 2007), 4.9D);
   xyseries1.add(new Month(3, 2007), 3.5D);
   xyseries1.add(new Month(4, 2007), 4.5D);
   xyseries1.add(new Month(5, 2007), 5.5D);
   xyseries1.add(new Month(6, 2007), 7D);
   xyseries1.add(new Month(7, 2007), 7.9D);
   xyseries1.add(new Month(8, 2007), 1.8D);

   TimeSeries xyseries2 = new TimeSeries("incross rate", Month.class);
   xyseries2.add(new Month(1, 2007), 4.0D);
   xyseries2.add(new Month(2, 2007), 6.4D);
   xyseries2.add(new Month(3, 2007), 3.8D);
   xyseries2.add(new Month(4, 2007), 5.9D);
   xyseries2.add(new Month(5, 2007), 8.2D);
   xyseries2.add(new Month(6, 2007), 4.2D);
   xyseries2.add(new Month(7, 2007), 9.7D);
   xyseries2.add(new Month(8, 2007), 5.6D);

   TimeSeriesCollection xyseriescollection = new TimeSeriesCollection();
   xyseriescollection.addSeries(xyseries);
   xyseriescollection.addSeries(xyseries1);
   xyseriescollection.addSeries(xyseries2);

   JFreeChart jfreechart = ChartFactory.createTimeSeriesChart(
     "Example", "y", "x", xyseriescollection, true, true, true);
   jfreechart.setBackgroundPaint(Color.white);
   XYPlot xyplot = jfreechart.getXYPlot();

   xyplot.setBackgroundPaint(Color.white);
   xyplot.setRangeGridlinePaint(Color.black);
   xyplot.setDomainGridlinesVisible(false);
   xyplot.setRangeGridlinesVisible(true);
   xyplot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D));
   xyplot.setDomainCrosshairVisible(true);
   xyplot.setDomainCrosshairLockedOnData(false);
   xyplot.setRangeCrosshairVisible(false);
   xyplot.setBackgroundImageAlpha(1.0f);
   XYItemRenderer xyitemrenderer = xyplot.getRenderer();

   XYLineAndShapeRenderer render = (XYLineAndShapeRenderer) xyplot
     .getRenderer();
   render.setURLGenerator(new StandardXYURLGenerator("view.jsp"));
   render.setBaseShapesVisible(true);
   render.setBaseShapesFilled(true);

   xyitemrenderer.setSeriesPaint(0, Color.black);
   xyitemrenderer.setSeriesPaint(1, Color.red);
   xyitemrenderer.setSeriesStroke(1, new BasicStroke(1.0F, 1, 1, 1.0F,
     new float[] { 5F, 3F }, 0.0F));

   IntervalMarker intervalmarker0 = new IntervalMarker(0D, 2D);
   intervalmarker0.setLabel("qing");
   intervalmarker0.setLabelFont(new Font("SansSerif", 2, 11));
   intervalmarker0.setLabelAnchor(RectangleAnchor.LEFT);
   intervalmarker0.setLabelTextAnchor(TextAnchor.CENTER_LEFT);
   intervalmarker0.setPaint(Color.cyan);
   xyplot.addRangeMarker(intervalmarker0, Layer.BACKGROUND);

   IntervalMarker intervalmarker = new IntervalMarker(2D, 4D);
   intervalmarker.setLabel("huang");
   intervalmarker.setLabelFont(new Font("SansSerif", 2, 11));
   intervalmarker.setLabelAnchor(RectangleAnchor.LEFT);
   intervalmarker.setLabelTextAnchor(TextAnchor.CENTER_LEFT);
   intervalmarker.setPaint(Color.yellow);
   xyplot.addRangeMarker(intervalmarker, Layer.BACKGROUND);

   IntervalMarker intervalmarker1 = new IntervalMarker(4D, 6D);
   intervalmarker1.setLabel("nan");
   intervalmarker1.setLabelFont(new Font("SansSerif", 2, 11));
   intervalmarker1.setLabelAnchor(RectangleAnchor.LEFT);
   intervalmarker1.setLabelTextAnchor(TextAnchor.CENTER_LEFT);
   intervalmarker1.setPaint(Color.BLUE);
   xyplot.addRangeMarker(intervalmarker1, Layer.BACKGROUND);

   IntervalMarker intervalmarker2 = new IntervalMarker(6D, 8D);
   intervalmarker2.setLabel("nu");
   intervalmarker2.setLabelFont(new Font("SansSerif", 2, 11));
   intervalmarker2.setLabelAnchor(RectangleAnchor.LEFT);
   intervalmarker2.setLabelTextAnchor(TextAnchor.CENTER_LEFT);
   intervalmarker2.setPaint(Color.green);
   xyplot.addRangeMarker(intervalmarker2, Layer.BACKGROUND);

   IntervalMarker intervalmarker3 = new IntervalMarker(8D, 10D);
   intervalmarker3.setLabel("hong");
   intervalmarker3.setLabelFont(new Font("SansSerif", 2, 11));
   intervalmarker3.setLabelAnchor(RectangleAnchor.LEFT);
   intervalmarker3.setLabelTextAnchor(TextAnchor.CENTER_LEFT);
   intervalmarker3.setPaint(Color.RED);
   xyplot.addRangeMarker(intervalmarker3, Layer.BACKGROUND);

   DateAxis domainaxis = (DateAxis) xyplot.getDomainAxis();
   domainaxis.setTickUnit(new DateTickUnit(DateTickUnit.MONTH, 2));

   NumberAxis numberaxis = (NumberAxis) xyplot.getRangeAxis();
   numberaxis.setTickUnit(new NumberTickUnit(2D));

   String filename = null;
   PrintWriter pw = new PrintWriter(out);
   StandardEntityCollection sec = new StandardEntityCollection();
   ChartRenderingInfo info = new ChartRenderingInfo(sec);

   filename = ServletUtilities.saveChartAsPNG(jfreechart, 800, 600,
     info, session);
   ChartUtilities.writeImageMap(pw, "map0", info, false);// true or false has big diffenrence
   // if choose true,it will js function in html code
   String url = request.getContextPath()
     + "/servlet/DisplayChart?filename=" + filename;
  %>
  <P ALIGN="CENTER">
   <img src="<%=url%>" width=800 height=600 border=1 usemap="#map0">
  </P>
 </body>
</html>

 

欢迎交流 qq 569021135



已有 0 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐




文章来源:http://java-jun.javaeye.com/blog/602629
posted @ 2010-02-25 10:54 uqnetlove 阅读(180) | 评论 (0)编辑 收藏

带热点提示的饼状图(即鼠标放在图型上可以看到当前数据项)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<%@

 

 

page contentType="text/html;charset=UTF-8"

%>

<%@

 

 

page import="org.jfree.data.general.DefaultPieDataset"

%>

<%@

 

 

page import="org.jfree.chart.*"

%>

<%@

 

 

page import="org.jfree.chart.plot.*"

%>

<%@

 

 

page import="org.jfree.chart.servlet.ServletUtilities"

%>

<%@

 

 

page import="org.jfree.chart.labels.StandardPieToolTipGenerator"

%>

<%@

 

 

page import="org.jfree.chart.urls.StandardPieURLGenerator"

%>

<%@

 

 

page import="org.jfree.chart.entity.StandardEntityCollection"

%>

<%@

 

 

page import="java.io.*"

%>

<

 

 

html

>

 

 

<head

>

 

 

<meta http-equiv=Content-Type content="text/html; charset=UTF-8"

>

 

 

<title></title

>

 

 

</head

>

 

 

<body

>

 

 

<%

DefaultPieDataset data =

 

new

DefaultPieDataset();

data.setValue(

 

"高中以下"

, 370);

data.setValue(

 

"高中"

, 1530);

data.setValue(

 

"大专"

, 5700);

data.setValue(

 

"本科"

, 8280);

data.setValue(

 

"硕士"

, 4420);

data.setValue(

 

"博士"

, 80);

 

PiePlot3D plot =

 

new PiePlot3D(data);

//3D饼图

plot.setURLGenerator(

 

new StandardPieURLGenerator("barview.jsp"));

//设定链接

JFreeChart chart =

 

new JFreeChart(""

,

JFreeChart.DEFAULT_TITLE_FONT, plot,

 

true

);

chart.setBackgroundPaint(java.awt.Color.white);

 

//可选,设置图片背景色

chart.setTitle(

 

"程序员学历情况调查表");

//可选,设置图片标题

plot.setToolTipGenerator(

 

new

StandardPieToolTipGenerator());

StandardEntityCollection sec =

 

new

StandardEntityCollection();

ChartRenderingInfo info =

 

new

ChartRenderingInfo(sec);

PrintWriter w =

 

new PrintWriter(out);

//输出MAP信息

 

 

//500是图片长度,300是图片高度

String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300,

info, session);

ChartUtilities.writeImageMap(w,

 

"map0", info, false

);

 

String graphURL = request.getContextPath()

+

 

"/servlet/DisplayChart?filename="

+ filename;

 

 

%>

 

 

<p ALIGN="CENTER"

>

 

 

<img src="<%=graphURL%>" width=500 height=300 border=0 usemap="#map0"

>

 

 

</p

>

 

 

</body

>

</

 

 

html

>



已有 0 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐




文章来源:http://java-jun.javaeye.com/blog/602623
posted @ 2010-02-25 10:47 uqnetlove 阅读(90) | 评论 (0)编辑 收藏
     摘要: 柱状图的一个演示(不带热点提示的) index.jsp 往 barview.jsp 提交 index.jsp code: <%@ page   language="java" pageEncoding="ISO-8859-1"%> <   html> <   head>   <t...  阅读全文
posted @ 2010-02-25 10:26 uqnetlove 阅读(93) | 评论 (0)编辑 收藏
仅列出标题