LittleCloud's Java World

          Live and learn.
          posts - 18, comments - 29, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          2008年4月17日



          謝朓《王孫游》賞析

          綠草蔓如絲①,雜樹紅英發②。無論君不歸③,君歸芳已歇④。 


            


          想要下載直接在地址欄輸入:http://www.aygfsteel.com/Files/ash011/wangsunyou.mp3


              【注釋】①蔓:蔓延。 ②英:花。這兩句是說地上長滿了如絲的綠草,樹上開滿了各樣的紅花,已是暮春時節了。 ③無論:莫說。 ④歇:盡。這兩句是說莫說你不回來,即使回來,春天也過去了。

              【賞析】
            這是一首樂府詩,《樂府詩集》收入“雜曲歌辭”一類。魏晉以來,文人創作樂府詩往往有一個特點:總是圍繞著“古辭”(漢樂府)打轉轉,或擬古辭,或以古辭為引子生發開去(當然也有棄古辭于不顧而自鑄偉辭的)。這種從古辭中尋找“母題”使創作上有所依傍的作法,已形成一個程式。南朝詩人寫樂府詩雖然也依這一程式,但卻出現另一種傾向,他們有時撇開漢樂府古辭,而直接上溯到《楚辭》中去尋找“母題”。比如,南齊王融和蕭梁費昶都寫過一首《思公子》,中心題旨就是采自《楚辭·九歌》:“風颯颯兮木蕭蕭,思公子兮徒離憂。”謝朓的這首詩也屬于這種情況,其“母題”出于《楚辭·招隱士》:“王孫游兮不歸,春草生兮萋萋。”也就是說,詩人的創作靈感獲自《楚辭》,而所寫內容則完全是現實生活中的感受。在古老的“母題”之中,貫注了活生生的現實內容。
            蔓,蔓延;紅英,即紅花。春天,綠草如絲,蔥蔥茸茸,蔓延大地,繪寫出一派綠的世界;各種各樣的樹上,紅花競放,絢麗奪目。綠的氛圍,紅的點染,在鮮明的對比之中,烘托出一派生機勃勃的景象。窈窕少女,目睹此景,心傷離情,不禁怦然心動,情思繾綣,不無惆悵地發出了感嘆:“無論君不歸,君歸芳已歇。”且不要說心上的人兒不回來,即使等到他回來,那絢麗的花朵早已凋謝了,那大好春光早已白白地流逝了,我那美妙的年華也早巳悄然飄去了。紅顏難久持啊!這里,詩人不主要寫少女如何急切地等待著情人,如何急不可耐,而是著重寫她對于紅花的珍惜,對于大好春色的留戀,由此描寫出她思君、戀君的春一般的情愫。如此寫來,就把主人公的心態從一般的少女懷春,從感情的傾訴和渲泄,升華到了一種對春的珍惜、對時的留戀的理性高度,滲透出一種強烈的時間意識和生命意識。這樣,從景的描繪,到情的抒發,再到理性的升華,三者水乳交融般地融匯在一起了。所以,這是一首充滿了生命意識的景、情、理俱佳的好詩。
            詩雖短小,藝術風格卻頗具特色,體現了齊梁間詩歌創作雅俗結合的一種傾向。首先,從《楚辭》中生發出來的母題,顯而易見帶有文人的雅、艷色彩,暗示了它與文人文學的關系;但詩人卻用南朝樂府民歌五言四句的詩歌形式,來表現這一古老“母題”,這便將原有華貴、雍雅的色彩悄悄褪去,淡化,使之在語言風格上呈現出清思婉轉,風情搖曳的特色。其次,詩寫春的景色逗引起春的情思,因景而生情,情景相生,短章逸韻,風姿綽約,這原是南朝樂府民歌的本色,是“俗”。然而在描寫筆法上卻頗具匠心,詩人在綠的氛圍中綴以紅花的點染,巧筆對比,著意渲染,流露出文人精心構制的痕跡,表現出“雅”。雅俗結合,創為佳構。另外,詩的用韻也值得一提。詩用仄韻,短促,急切,對表現出主人公惜春、惜時的時不我待的急切心情,起到很好的作用,呈現出語淺意深、韻短情長的藝術風貌。



          我本人很喜歡,聽了心里很平靜的感覺~

          posted @ 2008-07-09 12:56 walkingpig 閱讀(3219) | 評論 (7)編輯 收藏



          Listen:/Files/ash011/struts2.rar

          Since arriving on the scene in 2000, Apache Struts has enjoyed a very successful run, by most any standard, helping to build many, if not most, of the Java-based web applications deployed today. Its history tells of how Struts provided a solid framework to organize the mess of JSP and Servlets to make developing applications, which used mostly server-generated HTML with a touch Javascript for client-side validation, easier to develop and maintain. As time moved forward, and customer demands of web applications grew and grew, Struts 1 pretty much stayed the same, leaving more and more plumbing to the web developer.

          At JavaOne 2005, several of the Struts developers (Martin Cooper, Don Brown) sat down with Rich Feit (Apache Beehive) and a few Struts users to discuss the future of Struts. We came up with the Struts Ti proposal, which described a framework that brought together a lot of good things that were developing in the web framework community. The problem is that the Struts 1 code base didn’t lend itself to drastic improvements, and its feature set was rather limited, particularly lacking in features such as Ajax, rapid development, and extensibility.

          At the same JavaOne, I sat down with Jason Carreira of the OpenSymphony WebWork 2 project to discuss how we could better work together. I was interested in building on XWork, the core of their command pattern implementation, but he suggested building on WebWork 2 directly. As Rich and I worked on the first few versions of Struts Ti, we decided to take Jason’s advice. We thought it was time for a framework to address higher level application needs, and by building on the proven WebWork 2 framework, we could spend our precious spare time where we felt it would make a difference. From then on, Rich and I worked mostly with Patrick Lightbody, also a core WebWork 2 developer, and found ourselves constantly “stealing” each others ideas for our respective code bases.

          Around this time, Patrick and Keith Donald of the Spring WebFlow project were kicking around an idea of a web framework to bind them all, Clarity. Clarity brought together Spring WebFlow (Keith), Struts (Ted Husted and myself), WebWork (Patrick and Jason), and Beehive (Rich) to talk about the possibility of combining efforts into one framework. Unfortunately, the devil is in the details as soon as Beehive and WebFlow were unable to make progress on merging their wizard/conversion scope features, and questions about project ownership, brand, and identity soon broke up the party.

          Not wanting to lose momentum, Ted and I started discussions with Patrick and Jason on how we could better work together, and after Patrick casually suggested the idea of a merger, Ted jumped on it and the Struts/WebWork merger was born. Since Struts Ti was already based on WebWork, it wasn’t that far a leap to bring the WebWork code into the Struts project. We started the Apache Incubator process for WebWork 2 in January and graduated the WebWork 2 code, developers, and community to Apache Struts that May.

          At that time, Struts was struggling with the project’s core identity, whether it was an umbrella for multiple web frameworks or not. We had Apache Shale, a web framework based off JSF, as a Struts subproject, along side Struts Action 1 (now called Struts 1) and Struts Action 2 (the graduated WebWork 2 code). Unfortunately, these subprojects were confusion to the developer and user community, accustomed to the name “Struts” referring to a single framework. After an attempt to unify the Struts Action 2 and Shale subprojects into a single Struts 2 framework, the Shale developers felt it would be better if they were their own top level project (TLP) where they are today. Struts Action 2 was soon after renamed to simply Struts 2.

          Today, the Apache Struts project has two major versions of its framework, but it is one action-based framework project. WebWork continues to deliver patch releases, and will certainly continue to do so until Struts 2 goes GA or final, but all new development takes place on the Struts 2 code. For those looking for drama or a controversy in the Struts/WebWork merger story, you’ll have to look elsewhere. Both groups of developers are working happily towards a Struts 2.0 GA release, trying to combine the stability and accessibility of Struts 1 with the elegant architecture of WebWork 2. Since the initial incubation, the Struts 2 code has added major features including a plugin framework, a new API, and better Ajax tags, and as promised in the Struts Ti proposal, we won’t stop there.

          I decided to write this down to help clear up where this Struts 2.0 project came from and why it includes WebWork 2 code. Mergers are tricky things and it seems even in the Open Source community, one that champions collaboration, a merger between two projects is a rarity and needs to be defended. Amusing, because you’d be hard pressed to find a Java web developer that felt there are too few web frameworks. I think the WebWork and Struts communities pulled off something special in Struts 2, and hope the merger fever catches on in the Open Source world.

          posted @ 2008-06-26 10:40 walkingpig 閱讀(453) | 評論 (0)編輯 收藏

          偶也是第一次配這東西,參考了許多網友的帖子,可半路上出現了很多報錯,郁悶得死,

          這里我把我自己最后成功的筆記分享給大家.

           

          CVS服務器的安裝:

          1. 查看你的操作系統上是否安裝了CVS
          #> rpm -qa|grep cvs

          guile-1.8.0-8.20060831cvs

          cvs-1.11.22-4

          2. 建立cvs用戶組:

          /usr/sbin/groupadd cvs

          3         建立cvs組的cvsroot用戶和所屬的目錄:
          #> /usr/sbin/useradd -g cvs -G cvs –d /cvsroot cvsroot

          4         cvsroot用戶添加密碼:
          #> passwd cvsroot

                密碼:cvsroot123456

          5         改變 /cvsroot/ 的目錄屬性:
          #> chmod –R 770 /cvsroot


          6
          改變用戶登陸身份:
          #> su cvsroot

          開始創建單個項目:
          #> cd /cvsroot
          #> mkdir configuration
          #>mkdir psgui

          #>mkdir davinci


          開始建立倉庫:
          #> cvs –d /cvsroot/configuration init
          #> cvs –d /cvsroot/psgui init

          #> cvs –d /cvsroot/davinci init
          #> chmod -R 770 ./configuration/ ./psgui/ ./davinci/

          9建立CVS服務啟動文件,我們使用xinetd方式:
          #> [Crtl]+[d]
          切換到root用戶身份
          #> cd /etc/xinetd.d
          #> vi cvspserver

          service cvspserver

          {

                  disable = no

                  flags = REUSE

                  socket_type = stream

                  wait = no

                  user = root

                  server = /usr/bin/cvs

                  server_args = -f --allow-root=/cvsroot/configuration --allow-root=/cvsroot/psgui --allow-root=/cvsroot/davinci pserver

                  log_on_failure += USERID

          }

          注:由于xinetdserver_args長度限制,當你想運行很多的單個倉庫的時候,可以這么做:

          10 加入cvs服務:
          #>vi /etc/services

          cvspserver 2401/tcp #pserver cvs service
          cvspserver 2401/udp #pserver cvs service

          已經存在了,如下:(沒有添加了)

          cvspserver      2401/tcp                        # CVS client/server operations

          cvspserver      2401/udp                        # CVS client/server operations

          11 啟動cvs服務:
          #> /etc/init.d/xinetd restart

          12 檢查cvspserver服務是否已經啟動:
          #> netstat -l |grep cvspserver
          應該有如下結果:
          tcp 0 0 *:cvspserver *:* LISTEN

          已經有上面的顯示結果

          CVS服務的用戶管理:

          上面我們已經建立了configurationpsguidavinci三個CVS倉庫,下面我們分別給這三個倉庫建立cvs用戶。

          13創建可以登陸cvs服務器的用戶名和密碼:

          #> su cvsroot
          #> vi /cvsroot/configuration/CVSROOT/passwd
          yujiabo:*****:cvsroot

          #>vi /cvsroot/psgui/CVSROOT/passwd

          lianghuoyan:*****:cvsroot
          yujiabo:*****:cvsroot

          這兩個文件的意思是有yujiabolianghuoyan兩個cvs用戶,lianghuoyan擁有psgui的使用權限,yujiabo擁有configurationpsgui的使用權限,登陸后的權限是cvsroot權限。
          注意:這里的cvs用戶和系統用戶是不同的。


          14 *****
          為密碼,由以下文件生成:

          #> vi /cvsroot/passwd.pl

          #!/usr/bin/perl
          srand (time());
          my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))";
          my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);
          my $plaintext = shift;
          my $crypttext = crypt ($plaintext, $salt);
          print "${crypttext}
          ";
          #>chmod a+x /cvsroot/passwd.pl


          15
          如果你想生成一個密碼是“123456”,則:
          #> /cvsroot/passwd.pl “123456”
          回車即可得到加密密碼,用其替換passwd文件中的*****


          16 Ok
          cvs現在已經全部安裝完成了,如果你想讓一個用戶擁有psgi的權限,你就在/cvsroot/psgui/CVSROOT/passwd中給他加入一個用戶;如果你想讓一個用戶同時具有psguidavinci的權限,你就給/cvsroot/psgui/CVSROOT/passwd/cvsroot/davinci/CVSROOT/passwd里給他加一個用戶名和密碼相同的用戶即可。最后,我們試用一下:
          #> cvs -d :pserver:yujiabo@168.68.73.122:/cvsroot/psgui login


          敲入命令回車后提示輸入yujiabo的密碼,你按照自己設置的密碼輸入,如果沒有什么錯誤信息出現就是成功了(我的機器IP地址是168.68.73.122)

          客戶端測試:

          ash用戶登陸168.68.73.123

          運行#

          cvs -d :pserver:yujiabo@168.68.73.122:/cvsroot/configuration login

          123456(輸入的密碼)

          出現錯誤:2401 failed: No route to host

          客戶端連接不上,放開服務器防火墻2401端口,方法如下:

          168.68.73.122root登陸后,運行#system-config-securitylevel

          選擇“定制”,其它端口處輸入:2401,然后“確定”設置。

          現在客戶端可以連接了。

          Windows下的客戶端軟件WinCvs1.3配置如下:
          CVSROOT
          認證方式:pserver
          路徑:/cvsroot/configuration
          用戶名:yujiabo
          CVSROOT:yujiabo@168.68.73.122:/cvsroot/configuration

          posted @ 2008-04-17 16:38 walkingpig 閱讀(1832) | 評論 (2)編輯 收藏

          主站蜘蛛池模板: 克东县| 定襄县| 庆元县| 孟村| 定陶县| 庐江县| 铜山县| 天柱县| 平武县| 维西| 萨嘎县| 四子王旗| 德惠市| 贵定县| 宿松县| 葫芦岛市| 阜新| 旺苍县| 山东省| 留坝县| 永城市| 新营市| 辽宁省| 蒲城县| 沁水县| 修武县| 石林| 阿巴嘎旗| 河北省| 银川市| 合江县| 丰原市| 桑植县| 鸡西市| 广元市| 大兴区| 井陉县| 苏尼特左旗| 临西县| 汉阴县| 崇左市|