在以前,软件开发者门都在想如何用软件多卖一些钱。然而这个世界忽然间就变了,很多软件都开始免费了。免费也就算了,各种各样的软件削尖了脑袋的往用户电脑里钻。更有甚者,一但进去了就占地为王,死都不出去。
不是我不懂,只是这世界变化得太快。
开始慢慢的回忆软件是什么时候开始流氓起来的。
想到流氓软件,很自然的就会想到3721,对很多人来说,电脑被流氓都是从3721开始的。在几年前3721和总多小网站合作,推出了用户安装3721插件,网站就可以得到提成的推广机制。流氓归流氓,3721依靠该策略迅速的普及了起来。此后就慢慢的迎来了现在的流氓狂潮。
虽然是3721使流氓软件的概念深入人心,但3721绝对不第一个流氓。翻看软件史,我们看到了sun。在90年代sun推出了java。一时间java风光无限(java现在也还不错了)。俺们的bill大叔当然不能看着sun在那里独美了。本着做不掉他就搞和平演变的原则,bill大叔偷偷的修改了java的规范。sun也不是惹的,一场官司,bill大叔的计划失败了。bill大叔一气之下将jre赶出了windows。sun一见茅坑没了,赶紧打官司,企图重新夺回茅坑。官司赢了,但我们的bill大叔就是牛。就是赔钱也要坚决抵制sun的无耻流氓行径。于是到现在我们都需要单独去下载jre。
虽然MS拒绝了sun的流氓行为,但MS自己也流氓过。
在90年代中期的浏览器大站中,MS靠在自己系统中捆绑ie来和netcaptor抢地盘。netcaptor眼见就要体力不支了,赶紧跳出来大叫一声:“你流氓”。又见官司。MS坚决不卸,说这是系统的一部分。netcaptor无奈只下只得自己出工具卸ie(现在的反流氓软件软件?)。此后,此后大家就都知道了。现在还有几个人知道netcaptor?现在的ie也被真真正正的整合到了系统中。
《戏说乾隆之江南除霸》全台词(PDF)
2022年1月13日更新:已经过去了很多年,还是不时会有人通过戏说乾隆的关键词找到这个页面,只是这里的链接早就失效了。今天把文件重新上传了,大家可以在这里下载。
《戏说乾隆》很喜欢的一部电视剧。 喜欢这么一个相忘于江湖的故事。也许这世间没有永恒,所以需要靠遗憾来作为永恒的牵挂。
里面的台词写得很考究,有些古味却不做作。曾找过这部戏的台词,未果,于是还对着电脑,手动抄录过部分台词。最近在网上看到了第一部的全台词,是一个叫玉尘的网友做的(不知道还会不会出下两部的)。我将他写的台词整理了一下做了个PDF版本的。大家可以到我的googlePage里去下载。 随便贴点我喜欢的。第一部,第二部的都贴点。不三宿桑下这一段。第三部还是算了,我没看全过。我不太喜欢第三部,但这部戏正是有了第三部才算完整。
//---------------第一部_江南除霸---------------//
程淮秀:“唉!啊!四爷。”
四爷:“呵呵呵…”
程淮秀:“何苦再来找我呢?”
四爷:“春喜这丫头,果然探出你在这儿!一个人来,是躲着我吗?”
程淮秀:“哦,躲我自己。”
四爷:“来这儿做些什么呢?”
程淮秀:“可以坐,可以想,可以跟自己相对。”
四爷:“旱湖之约,新的感触?”
程淮秀:“呃呵,因果倒也不止一端!”
四爷:“淮秀,你后悔吗?”
程淮秀:“不后悔!”
四爷:“喜欢吗?”
程淮秀:“不喜欢!”
四爷:“你是……”
程淮秀:“不想再提了!”
四爷:“我们…再去…也许…可以透彻的谈一谈。”
程淮秀:“佛祖在传道的时候,曾经不三宿桑下。”
四爷:“不三宿桑下!不三宿桑下!他是佛祖!他传佛啊!”
程淮秀:“我传盐!”
程淮秀:“我发过重誓身献盐帮。富贵贫贱,危难生死不离盐帮。”
四爷:“唉,但是你从来没有说过一生不嫁人哪!”
程淮秀:“大家跟着我,我跟着大家!兄弟之情,犹如咸盐,烈日之下晒出来,煎熬之中煮出来!嫁不嫁人并不重要。”
四爷:“你是把我当做外人?!其实不外,我是不好说,如果你知道我姓什么,叫什么,做什么,人家称呼我什么…”
程淮秀:“四爷,不说也罢!在旱湖,我曾经想问过,眼前这个四爷,他叫什么呢?岔过去,现在你不说,我就连是不是桑树我都不知道,这不更好吗?”
四爷:“你是帮主,不是尼姑啊!”
程淮秀:“入帮,出家,要的是一种心境。”
四爷:“你在江南,我在塞北,我很在意!我们能够在小狼沟无意中结缘,今天又能够在这相遇,说是缘并不错,况且你刚才也说过,因果不止一端!也许是前世的因,今世的果啊!”
程淮秀:“四爷,在旱湖,我们没有酒,但是我们连翻的酒话,这古刹是我清修的地方,我们又续起前缘来了。海阔纵鱼跃,天空任鸟飞。四爷,您是个潇洒的人…”
四爷:潇洒的人?千万百计地要见你,想做件不潇洒的事,我要将我母亲传给我的一样东西,转送给你。淮秀,惊扰之处,你能海涵。我走了!”
//---------------第二部_西滇风云---------------//
四爷:“你不想说的事,说说看!”
沈芳:“我不想说的事?什么啊?”
四爷:“在房里你说,你是人,是女人,情,你想过。”
沈芳:“呃…呵”
沈芳:“太监到我们家宣召赐死,我看见的不光是冤屈,愤恨跟生离死别,我看见了我的父母,他们夫妻之间最深沉,最痛彻肺腑的不舍。我父母,十来岁就结为夫妇,几十年肩叠情深,在面临死别的时候,没有一句话,也没有动作。你,偶尔看我一眼,我,偶尔看你一眼。眼泪算什么!他们夫妻心里暗暗淌得,是血,是情血。第二天,我母亲去世了,跟着父亲走了。不过我想,母亲是很平静,是满怀希望走的。”
四爷:“希望?”
沈芳:“嗯!希望在另一个天地里,与他的丈夫相遇,重续旧缘,重温旧情。从那个时候起,我才知道,这世间伤人最深最重的竟然是情缘!我是人,是女人,我想过情。可是我怕,我两次躲你,都因为我怕。”
四爷:“我懂!”
沈芳:“佛陀传教的时候,不在同一棵桑树底下连宿三次。”
四爷:“不三宿桑下!”
沈芳:“对,不三宿桑下!佛陀尚且怕情缘,人能不怕吗?”
四爷:“人…恐怕,谁也没有那个定性,那个慧根,永绝情缘。有缘则遇,有情则聚,生死别离,也许是小事。”
沈芳:“哦!”
四爷:“佛教有个故事说,人去喂鸟,那只鸟永远吃不饱吃不够,后来喂鸟的人把自己的身躯也喂给了鸟吃。情缘是鸟,人喂它,是不计其它的,甚至身躯性命。”
crystal-cursor更新了
在对crystal-cursor进行修改的时候遇到了一些问题。首先就是delphi的接口。虽说delphi中的接口是自行管理对象的生命周期,但在有些情况下似乎并不是那么灵光。在crystal-cursor中我采用观察者模式来将鼠标位置的变化情况通知各个子窗口。理论上只要我将子窗口从观察者列表中移除,窗口就该释放,但事实并不是如此。关于这个问题,在网上有见到相关的介绍《接口小论》。
为了让子窗口交替出现,我需要让一个子窗口建立后先sleep在进行下一个窗口的创建,但sleep会导致主线程的阻塞,无法达到预期效果。于是我增加了一个NoBreakSleep函数。这个函数虽然简单,但效果似乎还不算太烂
。
procedure NoBreakSleep(aInterval: Integer);
var
StartTime: TDateTime;
begin
StartTime := Now;
while ((now-StartTime)*24.0*60.0*60.0*1000.0) < aInterval do
begin
Sleep(1);
Application.ProcessMessages;
end;
end;
PS:
发现真是自己的RPWT
。刚才一直都是用WinSCP登陆。用WinSCP登陆是更新web站点用的。发布文件直接用FTP上去就可以了。真是太大意了。
发布文件已经更新上去了,大家可以到我的项目站点去看看crystal-cursor。
JForum开发框架介绍
JForum采用的是自己的MVC框架,因此在初次接触的时候可能会有些不习惯,但在熟悉后,该框架还是很容易使用的。在这里只是对JForum的框架进行简单的介绍以利于利用JForum进行二次开发,具体的细节请参考JForum代码。
JForum的MVC框架有些类似Struts。
先看请求的url地址/bbs/jforum.page?module=recentTopics&action=topRep_Topics_thisDay。
首先在在web.xml中配置过滤器,将所有以.page的请求交给net.jforum.JForum统一处理转发。请求在交给JForum后,JForum要获取传递过来的一些参数从而决定由哪个模块来具体处理请求。参数module,决定由哪个模块来处理。model的名字和具体class的对应关心在配置文件modulesMapping.properties里进行配置。当前操作由具体的哪个函数处理由action参数指定。action就是要执行的方法名,在无法找到指定处理方法时执行list方法。在处理完请求后,调用this.setTemplateName(TemplateKeys.SSOEXT_TOPREPMSGS_PERDAY);方法设置返回页面。其中页面和页面名称的对应关系在templatesMapping.properties中设定。
再简单的介绍一下JForum新增功能的开发流程。新建一个Action继承Command。在配置文件中modulesMapping.properties中增加新建立Action的对应关系。实现Command中定义的list方法,完成在未指定action情况下的默认操作。在templatesMapping.properties中增加返回页面的对应关系,在类TemplateKeys里增加返回页面和templatesMapping.properties配置文件里的对应关系。利用this.setTemplateName(TemplateKeys.RECENT_LIST);设置返回页面。
JForum默认采用的是FreeMarker作为表示层,但如果对FreeMarker不熟也可以采用jsp做为表示层的实现。