06 Sep 2005 | By
superpippo
今晚买了这期的程序员,第一感觉:哟,怎么夹一本书呀:)原来是BEA的一个专题。
像平常一样从第一页开始翻,每期必有的“Java技术”里令我眼前一亮。在这期里透明介绍了《计算机程序的构造与解释》这本书,其实这本书俱乐部书架上就有,是MIT计算机本科生的入门课程。如果没猜错,应该是Leona推荐买的吧。这本书主要介绍了Scheme语言,上学期Leona给我们作了五次关于Scheme的讲座,可惜没好好听……实在对不住Leona。关于 “continuation”的论述记得是Leona举了一个三人撒谎的问题,并抽象出了一个实现方案。当时对于Leona着重强调的 “continuation”我们所在有场的人都听得云里雾里的,而他本人也承认这是个难点他自己也花了将近一年才真正理解这个技术。Leona,牛就一个字,我只说一次,哈哈。
本期程序员着重介绍了一种新的Web应用框架:Ruby on Rails。据称这个框架便实现了“continuation”,能比典型的Java程序多于10倍的效率开发同样质量的应用程度,呵呵,不可思议。总体感觉几篇关于这个专题的文章都写得很不错,对Struts, Hibernate及J2EE也有了深一层的思考。Cowoo最近声称对Python比较感兴趣,同为解释型语言,还是明天怂恿他去玩一玩这个东西吧。我还是先把Struts弄得清楚点,深入了解一下MVC及持久型框架吧。其实在Ruby on Rails中也是使用MVC模式的,二者在整体架构上并没有本质的区别,不同是实现方面的。虽然是实现上的不同,但声称的高10倍效率还是很值得去尝试一下的:)
27 Aug 2005 | By
superpippo
22 Aug 2005 | By
superpippo
“一个人可以被消灭,却不能被打败”,这是海明威的名言,更是永恒的箴言。颓废的消极,不是我所要表达的内容,如果要前进,不需要理由,但是前进的时候,警钟的声音,必须听到心里去。——题记
我不知道这是第几次把翻完的年历从墙上取下,无奈地换上新的一本。我并没有衰老得记不清数,只是不愿意承认我又一次经历了由万物复苏到北燕南归的轮回,因为这意味着远逝的韶华离我更远,靠近我的是夕阳西下,枯藤老树昏鸦。即使我闭上眼睛停止思维,树上依旧有雪在消融。这个时候,我必须在生命的年轮上再加上一圈。 醒来吧。60岁再也不是一个回避问题的年龄了。
我有壮志凌云的过去,吟着“有志者,事竟成,破釜沉舟,百二秦川终属楚”,憧憬着理想中的未来仿佛还是昨天的事,而“今天”却残酷地摆在我面前。“今天”,正如它的本义一样平淡得可怕。年轻的我可以原谅贫穷,而无法忍受平庸。可如今我是不能贫穷的,平庸却成为无可非议的事。我很奇怪,当我用“平庸”这个最准确的词形容自己时,竟然有一种理所当然的感觉。也许这就是所谓“无可奈何花落去”吧。我确实有过奋斗的雄心。可我的信念和理想又怎么可能坚毅到在风尘中打磨了几十年依然纯真美好呢?我曾认为自己是无坚不摧的,可若对手是时间,我便是输家。这根源不在时间,而在我的性格。我曾把誓言写在脸上,却不曾写在心中,我很宽容,不仅宽容别人,更宽容自己。所以我罕有对错误的愧疚感和对失败的失落感。记得很多年前,我读过一本叫《我这一辈子》的小说:“我”小时侯偷爸爸的钱买东西吃,妈妈为“我”辩解—— “他”只是小孩子;“我”年轻时不努力,有人很理解“我”——年轻人嘛;“我”中年时犯了错误,上司通情达理——他是缺乏经验;到了老年,所有错误都可以用“他是老人家”来化解。当时读到这篇文章,我与作者“同仇敌忾”地鄙视这种人,我想我人生之路应该与此恰恰相反。但是历史的最大特点,便是重复性,当我回首往事,不能从尘封的旧书中挑出一本可读的书时,我知道这篇讽刺小说到头来讽刺了我自己。我再也不愿想这种滑天下之大稽的事,因为它对我来说,不是滑稽,而是嘲弄,更是悲哀。
读过许多诗或文章,却总是慢慢才懂,像“年年岁岁花相似,岁岁年年人不同”,像《匆匆》。而今天的我,不愿看干枯的树枝抽出新芽,也不愿看溪水欢快的地拍打着河滩,向前奔涌。虽然我知道老的必须老去,新的仍在向荣,虽然我也会“叹万物之得时”,但我没有“悲欢离合总关情”的超脱,没有“沉舟侧畔千帆过,病树前头万木春”的情怀,更没有“惯看秋月春风”的豁达。其实我是知道的,我没有办法释怀。当又一个日子从我迟疑着伸出来挽留它的手中溜过时,我只听到一个声音:“感吾生之行休!”
好像有人说过:“早晨从中午开始”,可是生命真的能从60岁开始吗?也许百里奚是70岁才当官,也许姜子牙是暮年才成大业,也许冰心在80岁的时候开始了生命的第二个春天,但那是很久之前的事,对我而言更不可能的事,我的生命正像春天里的雪一样,消融着,消融着。
我少时背过奥斯特洛夫斯基的豪言,而今却不记得它的含义,那是一个神话。夕阳近黄昏时,我能做些什么呢?只怨早春时错过了播种的时节,黎明时没有托起初升的太阳,如今,我两手空空。当《夜曲》响起来的时候,我终于明白为何有人说这悠远的曲子“凄惨”。可是凄惨的,又何止这个曲子呢?
22 Aug 2005 | By
superpippo
大三来了,来的很快,甚至连准备还没做好。“三”字似乎注定意味着紧张与奋斗,高三与高考相关,大三与考研相联。
如果要给以逝的大学两年和即将度过的两年做一个总结和希冀,大一是认真,大二是迷茫,期盼着大三的奋斗大四的冲刺。大三来了,在我眼里,这是堪比高三的一年,不尽需要为大二的些许颓废买单,更要迎接新的挑战。这是一个最好的时代,这是一个最坏的时代,这是一个需要自制和压力的时代。
初步算了一下,大三的学费是15000,如果按一年300天在校时间算,每天的学费是50。数字就是这么清晰,不需要推理和分析,这就是现实。在校的每一天晚上确实需要扪心自问,这一天你得到了什么,如果又在颓废中虚度了一天,对得起谁?
最近一两天GF反复问我能不能确定十一去她那,在昨天拿到本学期的课表之后,我对她说了no。有时候觉得自己对某些事很优柔寡断,但在这个关键的时刻,需要分清什么是重要的,什么是次要的。忘了是谁的签名档了——knowledge is our fate,好像是cowoo的或是liubin的。不管GF对我怎么想,作为一个学生,我坚持自己所想的,所做的和所放弃的。
有时候为了激励自己,往往会默默地写下某些誓言,可是到头来确是自己首先忘了这些誓言。因为“我曾把誓言写在脸上,却不曾写在心中”。之所以用引号,因为这是以前高中时候在语文报上看的一篇文章的一句话,每当自己感到迷茫时,我就会重读那篇文章。文章叫《当我60岁的时候》。前几天读Java夜未眠时也想到了这篇文章,借开学的机会,将它在BLOG中贴出来,作为一个警钟在心里长鸣。
15 Aug 2005 | By
superpippo
Eclipse Articles — 可以在Eclipse的官方网站上找到。
另外,Eclipse的帮助文档很好呀。对每个扩展点如何使用都有介绍。
另外,Eclipse编程,可能还需要了解SWT以及GEF的相关API。
你可以下载GEF的例子,里面有两个plugin的源代码,可以看看(实际上,你下载Eclipse的源代码,你看看 Java开发环境的源代码,基本就足够了)
IBM有个workflow的例子也不错,那个例子是多页面编辑器例子。
有以下书籍可以参考:
1、[Addison Wesley] Contributing to Eclipse Principles Patterns and Plug-Ins.chm
2、[Addison Wesley] Eclipse Modeling Framework A Developers Guide.chm
3、[IBM] Eclipse Development using the GEF and the EMF.chm
4、Building Commercial Quality Eclipse Plug-ins.pdf
15 Aug 2005 | By
superpippo
在拜仁的上一场大胜勒沃库森的比赛中,卡里米打了一场堪称完美的比赛,其实这早在意料之中.与他的前两个伊朗国家队友阿里代伊和哈什米安不同,卡里米的实力在拜仁完全是巴拉克级的人物,如果不受伤完全能胜任主力位置.
初次见识卡里米的能力忘了是在什么时候,但在去年亚洲杯上,卡里米表现得像个超级巨星,在亚洲似乎已经没有人能阻挡他前进的脚步。在伊朗队矛盾重重的时候,几乎是靠他一己之力将伊朗队代入半决赛。客观的说,若不是邵佳一“表演”的成分使伊朗队被罚一人,中国队赢不了伊朗队。那场比赛里,即使少一人,卡里米依然在疯狂地带球,人球分过,也被一次次地拌倒。
现在的卡里米已经超越了巅峰时候的中田英寿,对于26岁的他来说,伊朗人非常多的德甲,完全有理由成为他成功的一个起点。希望能看到他在德甲赛场上近乎疯狂的带球。
13 Aug 2005 | By
superpippo
习惯了一个人在哈的生活,平常也很少出去,因为我不爱游玩更不爱逛街.若不是GF来了,可能我连去江边都不知道坐几路车.对哈公交车以前我只知道63路,而且从来不会在西大桥下车或上车,因为一直以为最近的是工大站而且只有工大站,ft……
根本不曾想到会有同学会来哈,所以包包那天发短信的时候一直是被骗的感觉,只到打来电话才相信,so crazy!吃饭的时候聊了很多,聊到了认真的大一,有点荒废的大二以及期待中的大三,似乎每个人在大学都有一段时光感觉是虚度过的,对于过去,经验也好教训也罢,不必过于留恋.太多的留恋也便成了一种羁绊,绊住的不仅有双脚,还有未来.(引用一下名人的诗:))后来还聊到了几个哥们的私人问题,本以为只有大壮和鹤出了一点问题,没想到这个队伍已经扩大化了…想想鹤真是很可怜,高中时候看着他们一点点好起来,如今说分就分了,连让人反应的余地都没有. 唉,为什么身边受伤的总是男人呢?这是一个问题.
这两天包包都叫我过去吃饭,昨天回来之后真的不想去吃饭了,好麻烦啊!!一顿饭要吃几个小时,神啊,救救我!在我看来,吃饭是要速战速决的,在寝室叫一份三块钱的盒饭和出去吃顿差别真的不大.出去小撮一顿主要是气氛可以很好,比如几个哥们喝喝啤酒聊聊天什么的,有大人在总是很拘束的,两个字:不爽!星期六实验事没事,和cowoo他们去游泳吧.zlj居然不会游泳还怕在游泳池出事,BS之!!
09 Aug 2005 | By
superpippo
本想把时间轴的大体框架写完再走的,可眼睛实在疼得不行了,写完BLOG再走,sigh…
不过总的来说今天收获还是挺大的,首先解决了那个搞笑的问题,无意中把frame=SWT_AWT.new_Frame(composite)语句放在addAnimation()中就解决了。实际上这涉及到各视图什么时候初始化的问题,由于现在没有透视图中把各视图加上,先不讨论透视图中加入各个视图的代码。对于各个存在的视图,即你任意打开一个透视图,在Eclipse的show view中把他们加上的话,在你关闭workbench重新打开时,各视图的初始化顺序是随机的。这其中有几个问题需要注意:
1.若view1和view2重叠在一起时,若view1处于激活状态,那么view2是不会初始化的,当你点击view2或在程序中写入相应的代码才会使它初始化。
2. 就像1中所说的,如果其他打开的视图初始化代码中有类似IViewPart view1 = wbp.findView(StringConstants.VIEW1)这样的代码以调用其他的视图那么此时即使view2处于激活状态,view1也会初始化的且各个视图初始化的顺序随机。
3.视图里的初始化方法就是createPartControl()方法,在里面初始化了这个视图的面板,按钮等初始信息。它只执行一次,所以对于需要多次使用的方法,如显示动画效果这个方法就应该写到其他方法里,通过在别的视图触发事件里调用view2 的对象进而调用这个方法做到多次显示动画效果。可是那个奇怪双击事件究竟是什么原因,它的机制及调用的方法似乎有使一个视图初始化的效果,不然之前动画不显示双击view2就能显示呢?不过也不太确定,有空再研究研究。
在SWT中有些方法总有种神秘的感觉,似乎调用不调用都没什么关系,可是到底它的用处在哪?不知道,确实不知道。可能跟以前学SWING的时候就没什么兴趣,学得不咋样有关吧:(
08 Aug 2005 | By
superpippo
本以为昨天的问题已经完美解决,今早测试的时候却发现了一个让我哭笑不得的bug。如果在点animation之前选中视图2(这时它初始化),动画就不会在视图2中出现,除非双击视图2的标题栏才能出现。faint!!!!这不是搞笑么?
今天先不管了,把其他的整合进来。应该找到一个能弹出视图的方法,这个视图2只是临时显示一下动画效果,没什么意义的。可为什么初始化之后需要双击它才能看效果呢,这里面是什么原因?慢慢研究吧…
07 Aug 2005 | By
superpippo
郁闷了两天的问题终于可以over了,该死的editor。最近对plugin的学习中对于editor与view的区别还是没有分得太清楚,所以先还不是不把view放到perspective上的好。
感觉view与editor都作为工作区,可以显示出画图的效果,但是似乎在另一个视图里得不到editor对象。与视图相比,得到editor对象是通过首先通过findEditor()方法找到某个editor,然后openEditor()打开它,但从总体来说它并没有得到这个具体的editor对象,至少不能对这个对象调用它的方法等。或许这跟editor的作用有关,作为一个编辑器,它不用对其调用什么方法,在editor里放一个text就可以完成大部分功能,然后用isDirty()及其他方法保存什么的,或许是这个原因吧,不过不太确定:(。
今天问题是通过在一个视图1里画图,而在另一个工具视图里点下animation按钮后动画效果显示在视图2里解决的。而在开始一直“失败”,因为点视图2里面一直什么都没有,我也一直在郁闷这怎么可能呢?最后终于找到原因,将视图2先bringToTop()后需要得到其焦点:即setFocus()。最后动画出来的时候,我和cowoo都大出一口气。
Sighing,从editor回到view,还是对它们之间的区别没有一个彻底直观的认识。以后认识到的时候再补充……
明天把其他图形的变化整合一下,应该还是能比较轻松搞定的:)