jungleford's profileJungleford's Home MSN 总舵PhotosBlogListsMore ![]() | Help |
|
|
4/21/2009 【转贴】水木Java版前版主的评论
引用
9/3/2008 RAP还不够成熟毫无疑问,IBM把RAP从innoopract弄过来是一件很好的事情,它给了在Eclipse上开发RCP的程序员这样一种憧憬:桌面application的代码可以近乎“无缝地”迁移到Web2.0上,这给很多不懂Ajax为何物或者厌恶浏览器端脚本开发的人带来兴奋,至少让本鸟小兴奋了一下。前老大要我们“做做看”,能不能把我们的RCP桌面应用迁移过去。于是本鸟花了一周多时间小试了一下,一点一点改的话,UI倒是能出来,而且也确实很炫,挺能忽悠人的,但Eclipse里的项目工程放眼望去,那是一片红叉叉……可见RAP对RCP的完全适配还要花一段时间,但值得让人期待。 目前发现的问题(或者说,我暂时还没有找到在RAP上相应的API):
7/3/2008 【江湖传闻】IcedTea/OpenJDK通过了TCK测试http://www.infoq.com/news/2008/06/icedtea_tck http://www.infoq.com/cn/news/2008/06/icedtea_tck IcedTea:首个100%兼容、开源的Java作者 R.J. Lorimer译者 张龙 发布于 2008年6月26日 下午8时42分 本周有报道称RedHat发起的IcedTea项目(连同OpenJDK一起),已经通过了Java兼容性测试工具(TCK)的测试,达到了100%的兼容,正式成为首个通过TCK兼容性测试的完全开源(GPL协议)的Java实现。 本周IcedTea项目到达了一个重要的里程碑——包含在Fedora 9(x86及x86_64)中的最新的OpenJDK通过了TCK严格的测试。这意味着它提供了所有必需的Java APIs并且在行为上与其他Java SE 6实现类似——与Java平台可移植的目标一致。 大家都认为通过TCK测试是一个了不起的成就: Java TCK是一个复杂的工具和文档套件,用来验证Java实现是否遵从Java规范。它包含80,000多个测试以及100多万行代码。 就像早前在InfoQ上讨论的那样,IcedTea项目通过OpenJDK成为一个100%的基于GPL协议的Java实现,并且使用GNU Classpath项目的相应部分替换掉了余下的5%的私有组件代码。 IcedTea项目由GNU Classpath小组创建,同时由于需要使用开源实现替换掉所有的私有代码,因此一些RedHat开发者也加入其中。GNU Classpath将OpenJDK中的私有代码替换为GPL协议的代码,这使得使用OpenJDK构建的IcedTea更加适合如RedHat的Fedora Linux这样的平台。由于IcedTea的一部分贡献,Fedora 9包含了功能完全的OpenJDK包。 其他的开源Java实现,如Apache Harmony尚没有通过TCK测试,然而并不是所有的困难都与技术相关。早在2007年4月,Apache软件基金会就向Sun公司发送了一封公开的邮件,希望解决使用TCK测试Harmony平台的关键的许可协议问题;许可Harmony小组以开源的方式合法运行TCK。Sun回复了该公开邮件,他们说还没有决定向Harmony小组授权,因此他们仍无法运行TCK。 IcedTea项目没有像Apache Harmony那样遭受到相同的协议问题,因为Sun已经提供了TCK许可协议的一个特别版本,面向派生自OpenJDK的任何Java实现;这是Apache Harmony所无法获得的东西。 InfoQ将继续报道开源Java实现相关的新闻。 5/8/2008 Oops! Java 7 Module System (JSR-277) will support OSGi!http://www.adam-bien.com/roller/abien/entry/hell_freezes_over_java_7 Hell Freezes Over - Java 7 (JSR-277) Module System will support OSGi During the general session there was an official announcement - Java 7 Module System (JSR-277) will support both - its own format IAM - as well as OSGi. Great "news" for Java - and it should stop some friction/discussion in the community. So this announcement is double-great :-). 4/11/2008 【转贴】记忆最少的魔方玩法这页我们介绍一个新的魔方还原方法,这个方法可以说是记忆量最小的。他的特点是在第一第二层留下一个角先不对好,我们知道之所以我们的算法越到后面越复杂就是因为我们需要保持前面对好的成果不能破坏,这样我们就有了很多限制,这个方法就是巧妙在,在一开始留下一个缺陷,这样,我们后面可以不断的利用这个缺陷,限制就小了,算法自然就简单。感谢Mark Jeays让我学会了这个方法。 关于java applet动画的播放和使用请访问入门魔方玩法。 第一步和入门魔方玩法一样,我就照抄啦。 (第一步)在第一面做一个十字,形成如下的样子:
注意啊,你对好的十字必须如上图,每个侧面的棱和中心是同色的。做成这步的方法很多,我建议你自由发挥。如果实在有困难,我这里提供一个万全的办法,就是把中间层含有蓝色的棱色块变到底面上去,然后对好侧面颜色,再翻上来。我这里就举一个例子大家就应该明白了,对于左图B位置,只需要下面3步,魔方
我说的够清楚了吧。而对于A和C位置你可以旋转该面,让其变到B或D位置。如果某个棱色块的蓝色面已经在顶面或底面,相信大家会有办法解决的。 你要记住的是,如果遇到困难,就把蓝色变到底面,在底面上你是可以任意旋转的。 有时候,你会碰到这样的情况,蓝黄色块转到底面时影响了已经对好的红色面,这时候,你需要在最后一步之前恢复红色面的位置。具体操作见下。 魔方小站)
照上面说的,你重复做4个棱,应该就可以做好十字啦。 这里我给初学者建议一种更清晰快速的方法,蓝色棱变到底面之后 ,可以不急着把它翻上去,可以变成左图这个样子,注意在底面上4个棱可以是任意顺序,这会给你减少很大难度,这里是两个例子,给大家开阔下思路, 最后把他们逐一对好侧面颜色翻上去就行啦。比如: 下面我要说说标记。你没准注意到上个表格里的一些奇怪的字母,那些字母的意思很简单,
以上面的表里的标记为例,F就代表前面顺时针转90°,F'代表前面逆时针转90°,R2代表右面转180°,就这么简单,大家明白了吧。 (第二步)对好第一面,但是留下一个角,形成:
具体留下哪个角,你自己决定,做好这一步其实你只要学会一招就够了。那个蓝色的角色块,转来转去之后就6种位置,
注意哦,我们弄上去的那个小角块必须颜色也要对应好。比如我们的蓝红黄小角块必须上到红黄角,不能上错哦,否则T字就出不来啦。可能有的朋友已经觉得我像唐僧了,不过确实有的朋友有这个问题的,我还是要说的详细一点。 而对于B位置,其实完全一样,就是把刚才的3步对于顶面对角线做一个镜像,方 如左图,对于顶面对角线做一个镜像,我们将在后面无数次的遇到,所以请大家一定注意这个镜像的意义。 上面F D F'的对角线镜像就是R' D' R,具体请看,
而对于C,D,E,F位置,你总可以用旋转侧面和底面将其转到A或B位置。这里是几个例子:
这样再重复做2个角,你就会得到
(第三步)放第二层的棱色块,但是还是留下一个,变成形如
留下的那个棱和角颜色是对应的。 这一步你就会看出留下一个缺口的好处了。我们放入一个第二层的棱非常的简单。首先我们把魔方要翻过来了,蓝面朝下,绿面朝上。现在,首先,你要放哪个第二层棱色块,就把我们空缺的那个角移到它底下,然后, 根据橙白色块的位置应用F' U F或R U' R'。 例1,
例2,
你只要记住总是颜色叉开的那个面总被先“切开”,基本上你就记住了。如果你熟练了之后,根据橙白色块不同位置,第3步也可以是U2等。
(第四步) 对好剩下的5个棱色块这一步我们分成两个阶段,
我们留下空缺的右后的棱色块,在这里又要起大作用啦。我们下面要做的就是不停的把这个右后的棱色块移出来,再把我们将要操纵的棱色块填入进去,这样反复几次第一阶段就完成啦。 你要记住我们的顺序是先出后进。这个先出后进有两个方式供你选择,一个是R' Ux R,一个是B Ux B',其中Ux代表你任意旋转顶面, 用哪个方式是当前右后位置棱色块的绿色面朝向决定的,大家明白吧 ,绿色出来后要朝上。每次应用R' Ux R或B Ux B'之前,你要旋转顶面把要出来的棱色块 的位置给准备好。Ux当然不是乱转,是要把下一个要摆的棱色块转到那个即将插入的位置。 说得我自己都不明白了,呵呵,看来我只能举例子了。 首先我们有这样一个形态。
我想大家应该明白了吧,不明白我也没办法了,再看看就好了:) 另外出的时候,R'或者B会“藏”一个色块下去,这个“藏”也很有学问,我希望大家钻研一下,这个藏可以起到一些有意思的作用,我还没太钻研透彻。 这样第一阶段就完成啦。 下面进入第二阶段。这个阶段是唯一需要记忆一下的阶段。我们剩下的就是右后和右上这两个位置吧。他们会有这三种情况,
看似这些需要记一下,其实如果想不起来你就自己试试,这些算法基本上会和你的直觉一致的。 基本的意思就是不断的R',R或者B,B',每动一次顶面就旋转90度。2,3情况是顶层是朝一个方向转,1情况是先逆后顺,1情况有点特殊,2,3情况大家观察一下,其实2,3情况是一模一样的,2情况第一步U'之后,大家看,这时候2情况就是3情况的对角线镜像了。所以他们的算法也就互为对角线镜像。说的有点笼统,不过我想有的朋友已经明白了。 下面是2,3情况整个魔方顺时针转过90度后的情形。我们只看黄橙棱和绿橙棱,两图互为对角线镜像。可能有的朋友在这里会有点迷惑,这个对角线镜像不是严格的,请观察下面图一中右面的橙黄绿相对位置关系,和图二前面的橙黄绿的相对位置关系,他们是等价的 ,他们存在着某种对称性。所以图二的解法就是图一的对角线镜像。
(第五步)摆好五个角块的位置,但不管朝向这步我们要把5个剩下的角块归为到颜色正确的位置。 基本上你用一个很简单的算法就搞定了:L D2 L', 当然如果你想高效率可以再加上他的对角线镜像 F' D2 F。你应该注意到L D2 L'和F' D2 F他们都是自己本身的逆算法。也就是说用两次L D2 L'魔方就回到原样。
请注意,这个正确位置是由顶层的绿色的棱色块决定的,比如我们要找绿白橙角色块的位置,就要把绿白和绿橙所夹的这个角转到前上左。 然后应用L D2 L',这时第一个角色块就到位了,但你的魔方会有一点乱,没关系,再次观察右下后角的颜色,旋转顶面将这次右下后颜色的正确位置转入前上左,再应用L D2 L'。你这样一次操作2个L D2 L'就对好了两个角。如果一开始右下后就是那个正确的蓝橙黄色块,你就把一个位置错误的色块摆在前上左,然后同样方法开始就可以了。 这样做最多3次,你的所有角色块就都会到正确位置。 F' D2 F是L D2 L'的对角线镜像,可以起到同样的作用。 但是不光这么简单,这里有一个细节可以优化我们的算法,如果你发现,右下后角的绿色朝后,你就用L D2 L',如果绿色朝右你就用F' D2 F, 这个不用背,你稍微想一下转的过程就明白了。如果绿色朝下。。。那就没办法了,你随便用哪个吧。 这样做你会发现不但角色块位置可以对好,朝向也可以对好,自然节省了我们下一步的工作。当然在一次操作里,只能用两个L D2 L'或两个F' D2 F,不能混着用。 下面这个例子用两个操作完成的。 (第六步)调整五个角块朝向,最终完成魔方这步很简单,还是用L D2 L'和F' D2 F。首先你找到一对角色块,他们要处于同一个面上,而且一个要顺时针翻转,一个要逆时针翻转。 所谓顺时针翻转的意思是,你目光穿过一个角的顶点和魔方的体中心,你看到的那个角的三个颜色需要顺时针转一下,才能达到正确的朝向,比如左图离你眼睛最近的绿白红角,就是需要顺时针 翻转。 把这两个角色块放在顶面,这时绿色面可以不一定朝上了,找到那个顺时针的放在前上左角,应用L D2 L' F' D2 F,然后你会发现你要转的那个角色块已经翻转好了,但是魔方是乱的,这时,找到那个需要逆时针转的角块,旋转顶面让他转到到前上左角,应用刚才算法的逆算法 F'D2 F L D2 L',也就是前半后半颠倒,好啦,你现在应该对好两个角了。如此重复,最多3次操作。所有的角色块都会对好了。 当然如果你想先翻转那个逆时针的,就先用F'D2 F L D2 L'再用L D2 L' F' D2 F。
也有的情况你要翻3个角,他们都是要顺时针或逆时针翻转的,如左图,你就先做两个,剩下的两个自然会一顺一逆了。
如果你发现你只需要翻转2个角色块,而他们处于魔方的体对角线上,那么你就旋转一个面,让他们处于同一面上,应用算法之后你通常需要做一个转2面的调整就可以成功还原魔方了。 ,这个例子里我们 是先转的逆时针的。
另外Mark Jeays给出了一套介绍此玩法的视频,在这里,很不错,建议大家去看看。 欢迎朋友们转载这篇文章,请注明转自魔方小站(http://www.rubik.com.cn)就好了。 12/1/2007 SmartCalendar relaunched最近家里有点闹心的事,没来更新。 SC 0.1β在sourceforge上停了一年多了(参见2006年3月14日和3月22日两贴),现在重新拾起来完全是因为做那个被cancel项目激励的,从这个项目上得到了pattern上的更进一步的认识,于是思考这些经验是否可以用来重构SC。要感谢水木Java版那些对开源保持热情的年轻的人们,zms、kabbesy、dev、cjmm……,因为他们牵头创建了这个水木自己的开源项目站点:SMTHJava。 目前差不多做成型的是一些基本widget,完全GUI-independent,以及它们的Swing和SWT实现,这些基础widget是用来拼时钟/日历这些高级widget的积木块。想法就是类似IoC那样运行时注册,发现,并启用具体采用哪一套GUI Adapter实现方案(Swing or SWT)。简单介绍几个基本概念: ● Iterator(遍历器) 这是在0.1β里就用到的概念。我们观察一个acceptable的日历组件应该有这么一个特征:可按输入(按钮或输入)转到指定月/年上,尤其是相邻的前/后一个月/年。这个行为往往可以适用到很多组件上,譬如通常用到的table“翻页”行为,譬如VB流行的年代常用的DAO/ADO组件。所以我这里抽象出一种行为叫Iterator,“可遍历”,当然它是一个interface,它包含这么几个最常用的方法: moveXXX():如moveFirst/moveLast/movePrevious/moveNext,即这个数据结构是“可游动”的,而且是“可线形游动”的(movePrevious/moveNext,而moveFirst/moveLast是两个特殊的游动方式)。 getXXX():如getFirst/getLast/getPrevious/getNext,我们知道设计栈(Stack)这种数据结构的时候为方便起见会加上一个peek()方法,意思是让你得到栈顶元素而不将其弹出栈(瞟一眼但不去动它),这里也是类似的意思,得到某个位置上的元素而不移动游标。 getCurrentItem()/setCurrentItem():顾名思义,得到当前游标上的元素或移动游标到某个元素。这是一种非线性遍历方式。 isRollback()/setRollback():这个名字不知道是不是起得合适,我的本意是这个遍历器是不是“可循环”的,即到达头或尾再往下遍历是不是可以跳到尾或头开始,如果是循环队列的话需要做模运算确定index。 我们看到“遍历器”实际上是一个增强型的队列(循环或非循环),在java.util包中你也能找到Iterator这个接口,但它是单向线性遍历的,只有next()方法。在这个接口上我写了几个基础遍历器,用于封装对整数的遍历,对List(线性列表)的遍历,对日历的遍历,这几个是GUI无关的组件;在GUI中有继承扩展了几种,如对文本框(尤其是格式化文本框)的遍历,对combo box的遍历。 ● IterableWidget(可遍历组件) Iterator是个什么东东呢?简单的说它就是一个helper,可以用来告诉UI应该怎么做,如果要扯到MVC的话,Iterator就是一个controller,UI是view,Iterator要遍历的东西(比如comobox的item list)就是model了。我定义IterableWidget是这么一个玩意,它将一种UI和一个Iterator绑定在一块,这就成了一种稍微高级一点的GUI组件。我们能够想到的有哪些“可遍历组件”呢?上面说了,显示整数的文本框,combo box,spinner,我要做的calendar界面,可翻页的table,DAO/ADO组件等等。 ● IterateAction IterableWidget仅仅是“可遍历”,要激发它动作需要通过另一个组件(譬如按钮),我定义了一个IterateActionButton的组件用于把一个按钮和它要激发的遍历操作的若干个IterableWidget绑定在一起,这个按钮去激发IterableWidget的helper(即Iterator)进行遍历操作。 ● Adapter 这里需要对泛型、Adapter模式和IoC稍微有点了解了。我的目的是想达到GUI-independent,对比Swing和SWT,你会发现它们差得十万八千里,除了Object这个爪哇人都知道的根对象,两者竟然没有交集,那你怎么来搞GUI无关性?怎么抽取共同行为?于是乎,泛型就来了吧?把一个具体的GUI对象适配成我这套GUI library当中的对象,具体要用的时候(比如布局,这个GUI-independent做不了)再getAdaptee()还原成具体的GUI对象(Swing或SWT或其它什么玩意)。不管怎么样,地球人总有一套必不可少的公共组件:按钮、标签、文本框、容器、对话框、窗口……,再高级一点就表格、树……,更高级一点就像我们要做的这个日历等等。widget越基础,行为就越容易抽象。 ● 一点puzzle 写的时候往往是反复重构,解耦程度越高,重构的代价就越低,这也符合agile的办事风格。我比较为难的是权衡保留泛型参数的规模上,如果你内部属性的类型要做到“精确”,势必要有较多的泛型参数来约束,这个好处是减少类型检查的hard code,但泛型参数的增加会随着类库的继承和复用层次的增长而增长,这是很讨厌的一件事,因为你会发现为了创建一个对象需要指定N多个你并不关心的这个对象内部属性的具体类型。所以,我妥协了,人是容易妥协的动物,我对一个widget通常只用一个泛型参数(如果它需要用泛型的话),这个参数就是指代它需要适配的那个GUI组件的类型;所有接口,目前只有IAdapter使用了泛型,因为我们需要得到adaptee,其它接口只定义行为;widget内部如果用到composite的widget的话,都用这个widget的接口类型。 以上大概通过代码更好理解一些,代码我放单位的机器上了,过两天传上来。
重新启动的SmartCalendar项目主页在这里,主页快照:
4/8/2007 jakarta commons 很有意思因为最近工作上的关系,用到了一个页面表格组件eXtremeComponent,其实是看中了它的翻页和灵活的界面可配置特性。这是一个相当好用的tag,但为了实现一个filter查询,譬如可比较数字、日期等的大小,不得不写一个自己的FilterRowsCallback实现,于是去看ec的源代码,发现需要重写一个FilterPredicate的玩意,这个东东实现了jakarta commons组件库里的Predicate接口,这是干什么用的呢?
在网上搜到了某大拿的一个“jakarta commons 笔记”系列,花了大半天的时间看了一下,觉得这个类库做得相当有意思,把很多以前想做而没有做的工作都给封装了。最有启发意义的是它的集合框架里的四大组件:Comparator,Predicate,Transformer和传说中的Closure。最早听说的是closure,本来是一个script里的一个特性,就是函数也可以拿来当变量一样的用,譬如
这个特性近来一直炒作得很火热,甚至有传言说将会加入到下一版J2SE 7.0的语言特性里。其实也就相当于实现了C里面的函数指针的功能,譬如把上面这段改写一下
也就是说,原来程序的工作流程也是可以当作操作数的,其意义就是流程的抽象和封装,流程也可以template化,而不仅仅是数据类型! 在jakarta commons这四大组件想得更进一步,其中Closure接口是比较泛化的(或者说比较广义的),对应上面的closure或函数指针的语义,其它三个接口则是分别对应三种具体程序逻辑:
Comparator:把关系运算(=,>,<)操作数化,就是得到一个偏序关系。
Predicate:把判断逻辑(if,switch)操作数化,就是得到一个程序流分支。 Transformer:把从对象构造另一个对象的过程操作数化。 Closure:把业务逻辑(广义上的函数)操作数化。 如此看来,closure的引入确是对编程风格的一种正反馈效应,干活到底是越来越方便了。当然commons还有很多其它组件,比如隔三岔五有人问起的正态分布或一些数值计算问题,你都可以在Math组件里找到答案。 3/31/2007 寒,Java版的vmware惊现江湖!好像现在还只能跑MS-DOS。
看来我以后的最大梦想就是在jnode上能跑一个这玩意,然后在这玩意上跑一个windows,然后在windows里开始用java开发,嗯……
JPC is a pure Java emulation of an x86 PC with fully virtual peripherals. It runs anywhere you have a JVM, whether x86, RISC, mobile phone, set-top box, possibly even your refrigerator! All this, with the bulletproof security and stability of Java technology. JPC creates a virtual machine upon which you can install your favourite operating system in a safe, flexible and powerful way. It aims to give you complete control over your favorite PC software's execution environment, whatever your real hardware or operating system, and JPC's multilayered security makes it the safest solution for running the most dangerous software in quarantine - ideal for archiving viruses, hosting honeypots, and protecting your machine from malicious or unstable software. JPC has been developed since August 2005 in Oxford University's Subdepartment of Particle Physics. It can be run on a number of devices, from PC's to mobile phones, and you can see some of the results of JPC in action (more soon!). Some might see JPC as part of a nefarious plot by mad scientists who want to harness every last CPU in the world for their research - but we prefer to see JPC as Java-hardened protection against their buggy programs. 1/19/2007 解决两个小问题一个是项目里面用到的,后台起一个timer调度任务,发现久了以后app server收SIP消息产生错误,然后就把timer给干掉了。最后发现还是HashMap造成的,HashMap不是一个线程安全的类,多个电话打进来就有可能出问题,报ConcurrentModificationException异常。改成线程安全的Hashtable或JDK 5.0里的ConcurrentHashMap就好多了。
二是试验对Tomcat启用Hibernate,想照着reference上那样用tomcat自身的连接池,需要在server.xml里加一个<context>,由于是用MySQL,还要把它的JDBC驱动jar包拷到全局lib里(即common/lib目录下),发现进入页面总是找不到数据库的connection。无奈只好用hibernate自己的连接池,把server.xml里的<context>去掉,在hibernate.cfg.xml里配上几个<property>,这时可以不必把mysql的jdbc驱动放common下,在自己的web app module的WEB-INF/lib下有即可,这才正常。啥原因有待进一步考察。
还有一个更FT的问题,用MyEclipse创建到MySQL的JDBC连接,死活找不到数据源:Error while trying to connect to database: com.mysql.jdbc.Driver。原来必须到preference的MyEclipse->Database Explorer->Drivers里面把没有勾上的驱动选上。这么做是无可厚非,问题是它也得在Database Explorer透视图的创建或编辑数据源界面里能让你配才好啊,搞得我找了好几天 12/12/2006 J2SE 6 is coming!![]() Java SE 6 is the current major release of the Java SE platform. Sun endeavors to foster the highest level of transparency and collaboration on the platform with the Java community through Project JDK 6, resulting in the following key features. New Security Features and Enhancements
Integrated Web Services
Scripting Language Support (JSR 223)
Enhanced Management and Serviceability
Increased Developer Productivity
Improved User Experience
An in-depth summary of Java SE 6 features and enhancements to the platform is provided in the Java SE Umbrella JSR (JSR 270) and the desktop and core feature overviews. 8/17/2006 【转贴】Sun年底开放Java源代码 JVM、javac打头阵
Opening Up: Laurie Tolson on Open Source Strategy for the Java Platform
6/1/2006 J2SE 5.0 API Doc 中文版完成!5/22/2006 【传闻】Sun开始支持Eclipse发信人: shomaru (爱生活爱靓颖爱子怡), 信区: Java
标 题: zzSun开始支持Eclipse 发信站: 水木社区 (Mon May 22 18:00:10 2006), 站内 Sun开始支持Eclipse
--------------------------------------------------------------------------------
2006.05.22 来自:CSDN LWN
eWeek报道了Sun 开始向支持Eclipse开发平台的方向发展。“经过数年的竞争和相互鄙视对 方成就,SUN微系统公司和Eclipse基金会正在积极合作。在17号的一次采访中,参加 JavaOne大会的Mike Milinkovich——Eclipse基金会的执行官——说Eclipse已经接受了 Sun对于Eclipse项目的第一次提交。‘到今天为止,我们已经有了来自Sun的第一个提交者 ,’Milinkovich说。‘他们为Eclipse平台提交了代码,使得SWT[Standard Widget Toolkit]能够应用于Solaris x86/Motif上面。 --
强极则辱情深不寿谦谦君子温润如玉 生死由命富贵在天多看少动多做多错 如临深渊如履薄冰见微知著伺机而行 心将燥时制之以宁将邪时闲之以贞将求时抑之以舍将浊时澄之以清 基于对策而非臆测有才而性缓定属大才有志而气和斯为大智用志不纷乃凝于神 ※ 来源:·水木社区 http://newsmth.net·[FROM: 202.108.130.*]
======================================================= 发信人: kabbesy (封印者·Annual Anneal), 信区: Java 标 题: 发个相对原始的·Sun开始支持Eclipse 发信站: 水木社区 (Mon May 22 21:00:20 2006), 站内 May 18, 2006
Sun and Eclipse join together to support Solaris x86 Posted by Ed Burnette @ 1:23 pm Digg This!
A new committer from Sun has joined the Eclipse project and contributed source
changes needed to support Solaris x86. As of 3.2RC4, Solaris x86 is an officially supported build. This was announced during a keynote address by Erick Gamma and John Wiegand. I'll have more on the keynote itself in a separate article. According to Eclipse director Mike Milinkovich, this represents the first Sun
committer on an Eclipse project, and also set a new record for the quickest turn-around from contribution to new platform supported. Sun will be in charge of doing the actual builds on their own servers, and sending them to appear on the eclipse.org web site. It is hoped that this kind of cooperation can be replicated to other platforms, opening up Eclipse to run on a much wider variety of machines. Eclipse for Solaris x86 is available now from eclipse.org. Go to the downloads
page, select "All versions", then "3.2RC4" (or later), and then the package for "Solaris (x86/GTK 2)". See bug 84344 for more information. 【 在 shomaru (爱生活爱靓颖爱子怡) 的大作中提到: 】
: Sun开始支持Eclipse : -------------------------------------------------------------------------------- : 2006.05.22 来自:CSDN LWN : ................... --
Good Night . MoCuishle ※ 来源:·水木社区 newsmth.net·[FROM: 218.247.140.*] 5/10/2006 【资源】JH Labs这是一个关注GUI与Java桌面应用的工作组:
JH Labs is the alias of Jerry Huxtable. On this site you will find lots of stuff to do with Java, including source for lots of useful classes and image processing stuff. You'll also find information on stuff I'm working on.
4/5/2006 Jungleford's Home SUN分舵开张!年前申请的,但没成功……得到水木Java版前版主,现担任SUN中国社区管理员qyjohn的支持
寄信人: qyjohn (Sweet Potato -- 结婚纪念日)
标 题: Re: Java Docs API中文版第四部分发布 发信站: 水木社区 (Sat Apr 1 17:55:17 2006) 来 源: 221.216.159.153 目前仍然在内部测试阶段,没有几个通过的外部用户。
你如果感兴趣的话,把你申请的id告诉我,我帮你通过审查。 【 在 jungleford (风清扬╬孤城斩菜羊) 的大作中提到: 】
: gceclub里的blog貌似很萧条的样子 :) 刚开张的时候申请了一下,结果没有成功…… 寄信人: qyjohn (Sweet Potato -- 结婚纪念日)
标 题: Re: Java Docs API中文版第四部分发布 发信站: 水木社区 (Wed Apr 5 12:13:44 2006) 来 源: 192.18.43.17 已经通过了,有空就把你原来的那些文章县转贴过来先吧。
【 在 jungleford (风清扬╬孤城斩菜羊) 的来信中提到: 】
: jungleford : 不过近来忙,也顾不上打理blog了 :) 于是乎,今天blog终于建立了
内容也是重复这里的Java部分。不过我纳闷,这么多分舵,灌得过来么? 3/23/2006 【SmartCalendar】新增JNLP发布!需要你的机器至少有JRE 5.0以及JWS(即Java Web Start,通常JRE和JDK 1.4以后都会带),程序启动地址:
在弹出的“安全警告”对话框中点“是”。
在我的机器上试验远程启动成功,你愿不愿意试一下? 3/14/2006 SmartCalendar 0.1 beta released!经过jungleford几个月业余时间的设计、编码、加工和文档化之后,时钟和日历的可视化组件库SmartCalendar终于发布到了sourceforge上,这是本人做的第一个(估计也可能是最后一个)比较正规化的软件,虽然目前规模很小,但个人觉得还是比较有意义的:某种程度上为JDK没有GUI日历组件的问题提供了一种可选的解决方案——当你在用JFileChooser或JColorChooser的时候,或许会纳闷怎么没有日期选择框呢?当然,这个工作早已有人做了,我的想法只是提高它的可重用性和规范化一些;锻炼了一些建模能力,理解了一些设计模式的思想;熟悉了一些软件设计规范化和文档化的过程;当然,嘿嘿,也锻炼了一把英语作文。
您可以从https://sourceforge.net/projects/smartcalendar/访问到这个项目的主页。下面是这一版本的intro:
============================================================
------------------------------------- SMART CALENDAR for Java(TM) Applications ------------------------------------- ************ * CONTENTS * ************ 0. History 1. Introduction 2. Features 3. Documentation and API Specification 4. License and Announcement 5. Acknowledgements 6. Contact Me 0. HISTORY ---------- The latest version of availability is SmartCalendar 0.1 beta. - SmartCalendar 0.1 beta [Feb 21th, 2006] 1. INTRODUCTION --------------- 1.1 Why do? As we know, class "Date" and "Calendar" in package "java.util" have provided plenty of functions to deal with the requirements related with time and calendar computation. However, we still feel a bean of GUI form in current JDK library is missing to help us fulfil the same kind of tasks, which is exactly my motivation to develop SmartCalendar. 1.2 What is it? SmartCalendar is a library of graphical calendar beans, including calculagraph and calendar tools. It is purely Java based,and develop environments are: - SUN Java(TM) 2 Platform Standard Edition 5.0 Development Kit (JDK 5.0) - Eclipse Software Development Kit (SDK) 3.1 with Visual Editor 1.3 Pre-Requisites JRE or JDK 5.0 or above and compatible environments. You can get them from http://java.sun.com/j2se/1.5.0/download.jsp 1.4 Installation - Download the latest version from http://SourceForge.net/. Current archive is smartcalendar-0.1beta-bin.zip .............. only binary code and documents smartcalendar-0.1beta-src.zip .............. only source code and documents smartcalendar-0.1beta-doc.zip .............. only documents smartcalendar-0.1beta-all.zip .............. full codes, including binary code, source code, and documents - Decompress the archive into an arbitrary directory, e.g. "SmartCalendar": For Windows OS, use Winzip or WinRAR or similar tools. For UNIX OS, use the command "unzip": unzip smartcalendar-0.1beta-all.zip -d /SmartCalendar Of course you can use OS independent command "jar" as: jar xvf smartcalendar-0.1beta-all.zip -C SmartCalendar/ then the structure is: SmartCalendar/ | |_smartcalendar-0.1beta/ | |_bin/ | |_ ........................... the binary codes | |_doc/ | |_ ........................... the documents | |_example/ | |_ ........................... some sample codes | |_src/ | |_ ........................... the source codes | |_build.xml ...................... ANT build file | |_smartcalendar.jar .............. the JAR archive of this library | |_ChangeLog.txt .................. the log file of changes | |_LICENSE.txt .................... the LGPL file | |_README.txt ..................... this file | |_README-zh_cn.txt ............... a Chinese version for this file | |_ReleaseNote.txt ................ the release note In smartcalendar-0.1beta-bin.zip, smartcalendar-0.1beta-src.zip, or smartcalendar-0.1beta-doc.zip, the directory structure is a little different. For example, in smartcalendar-0.1beta-src.zip, you can use the command ant to rebuild the project, of course, you must add a parameter in your environment variable list to indicate where the apache ANT program is. For convenience, I wrote two scripts, and execute the batch file build.bat on Windows, or chmod +x build.sh ./build.sh on UNIX-like OS. - Setup your environment variables (may be optional, depending on your JRE installation way): JAVA_HOME ----------> <your JRE or JDK dir> ClassPath ----------> .;%JAVA_HOME%\lib or .;%JAVA_HOME%\jre\lib Path ---------------> %JAVA_HOME%\bin - Launch the sample codes: For Windows OS, open a command console, enter: cd SmartCalendar\smartcalendar-0.1beta\example run.bat For UNIX OS: cd SmartCalendar/smartcalendar-0.1beta/example chmod +x run.sh ./run.sh If you want to use this library in your own program, just copy smartcalendar.jar to your workspace, and add it to your classpath. 2. FEATURES ----------- Till now, the development of SmartCalendar is still ongoing, but it already has some basic functionalities including: - A suite of graphical clock interfaces: * Digital-type clock bean * Analog-type clock bean and entire extendable APIs - Calendar interfaces: * Month calendar interface and default implementation * Year calendar bean, actually it is reusage of month calendar bean For more details, please refer to "doc/manual.html". 3. DOCUMENTATION AND API SPECIFICATION -------------------------------------- Manuals and APIs in JavaDoc format are archived in directory "doc/". All of them are HTML pages. 4. LICENSE AND ANNOUNCEMENT --------------------------- This project is licensed under the terms defined in LICENSE.txt, it is a copy of GNU Lesser General Public License (LGPL). SmartCalendar is an open source project. The source code of the software is available upon requests, but must be marked with "Powered by Samuel Lee" whenever it is redistributed, or "With contributions from Samuel Lee" whenever it is modified. The author will NOT be responsible for legal liabilities caused by any redistribution with or without any modification. CAUTION: THIS SOFTWARE MUST NOT BE USED FOR ANY COMMERCIAL PURPOSE WITHOUT THE AUTHOR'S PERMISSION! ANY VIOLATION MAY BE FACED WITH LITIGATION! 5. ACKNOWLEDGEMENTS ------------------- The codes written by Mitch Goldstein give me lots of ideas and hints, so that I used and modified some of them in my own work. If you are interested in his works, please follow this link: http://www-128.ibm.com/developerworks/edu/j-dw-java2d-i.html And thanks to my friend Mr. Rong, he revised this document and gave me many advices. 6. CONTACT ME ------------- If you find any bugs or have any suggestions, please feel free to inform me, and I will appreciate your valuable and selfless help. You can get in touch with me by the following e-mail address: smartcalendar@gmail.com Thanks for all, and all the luck in the world! Sincerely and truly, SAMUEL LEE Copyright 2006 The SmartCalendar Project, Samuel Lee 3/13/2006 FT,被reject了!原因和我猜想的一样,就是license的问题,我昨天试着加了个Other license,把自己anouncement里的东东copy了进去,结果收到的review greetings里面就说“You have selected a license which is not an OSI-approved Open Source license ...”,吓得我赶紧把这条去了,再submit。
此一小节可窥见sourceforge工作效率之高…… 3/12/2006 【SmartCalendar】准备发布,先睹为快!年后到现在有一半时间处于忙碌状态,只能抽空完成intro和manual了。看了sourceforge好像审查还颇严格,不知道通不通得过,主要是license的问题,根据朋友的建议想选LGPL,但又不想让第三方随便拿去参与从事商业活动,矛盾ing……
不管怎么样,毕竟是jungleford第一个比较formal的作品,在发布前先给个临时链接,美其名曰:“preview版”
binary version:
full version:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|