sam's profile>>> 這也將會過去 <<<PhotosBlogLists Tools Help

Blog


    August 02

    在瀏覽器網址列輸入javascipt

    直到今天才知道

    原來瀏覽器有提供這樣的功能
    在瀏覽器網址列輸入javascipt
     
    請在網址列輸入
     
    javascript:alert("test");
     
    (IE, Firefox, Google Chome 都適用)
     
    以前只知道 Firefox 有個外掛 Greasemonkey
     
     
    網址列輸入javascript
    http://www.google.com.tw/search?hl=zh-TW&q=網址列輸入javascript&btnG=Google+搜尋&meta=&aq=f&oq=
    快速保存網頁中所有圖片的方法
    http://blog.yam.com/ezkm/article/5683327
    在網址列上直接輸入JAVA SCRIPT
    http://www.evanlin.com/blog/archives/000169.html
    可在瀏覽器網址列上執行的 JavaScript 程式
    http://jsgears.com/viewthread.php?tid=98
    Cool JavaScript Tricks
    http://www.blogohblog.com/cool-javascript-tricks/#more-707
    June 20

    Hadoop & Hbase

    在Google 搜尋 Hadoop
    剛發現這篇
    Hadoop 實作環境出爐了! (6/5 更新)
    http://www.wretch.cc/blog/trendnop09/21159427
    Cloud Computing Overview
    http://vimeo.com/4939282
    Introduction to Hadoop
    http://vimeo.com/4939995
    Introduction to MapReduce
    http://vimeo.com/4940522
    Introduction to HBase
    http://vimeo.com/4943879
    因為線上看有點Delay
    所以想說下載來看(只要登入,右下角可以Download Windows Media version)
    結果用了續傳軟體,一次分太多線程,結果,他給我鎖住了,出現下面的網頁
    You cannot download any more videos today.
    嗚嗚...
    下載時要注意阿
    June 18

    linux lyric 歌詞秀

    linux底下,有關歌詞秀的專案
     
    ttplyrics
    http://code.google.com/p/ttplyrics/
    http://code.google.com/p/ttplyrics/source/browse/#svn/trunk/crack
    雖不能確定,但看起來python版的源自這個project
     
    amuseplayer
    http://code.google.com/p/amuseplayer/ (python+javascipt)
    tsostplayer (AVPlayer)
    http://code.google.com/p/tsostplayer/ (javascipt:avplayer_ver0.10.7z) (actionscript:svn)

    从千千静听歌词服务器下载歌词的代码 (php)
    http://roln.cn/archives/84
    lrcdis (從這個外掛,可以瞭解,如何去獲得播放器現在播放到哪的相關資訊,大部分用DBus)
    http://code.google.com/p/lrcdis/
    YOYOPlayer(類似千千靜聽的播放器,用java寫的,也有歌詞秀)
    https://yoyoplayer.dev.java.net/
    http://www.blogjava.net/hadeslee/
     

    lrcShow-X (Python , PyQt)
    這個歌詞秀外掛,可以選擇搜尋千千靜聽的歌詞伺服器,當然還有其他的,如百度
    支援linux底下常用的播放器

    從上面幾個專案
    可以學到
    1.如何parse lyric檔 (大部分用Regular Expression)
    2.如何下載 lyric From lyric server 尤其是千千靜聽的歌詞伺服器(需要做一些編碼的部份)
    3.如何獲得播放器目前播放的資訊(大部分用DBus)
    4.繁簡轉換。
    5.當然還有其他,跟歌詞秀相關的技術,研究程式碼吧,可以學到不少...
     
    謝謝上面的鬼才們
     
    :-)
     
     
    另外繁簡互轉
    lrcShow-X 這個是python版的
    概念應該跟下面的Javascipt版是一樣的吧
    不過我還沒深究啦,還不到這兩個差異性

    看原始碼
    lrcShow-X
    http://www.sanfanling.cn/svn/lrcShow-X/branches/frank/lrcShow-X/dict/
    lrcShow-X/dict/simplified
    lrcShow-X/dict/traditional
    各有這樣的table
    不過這兩個table排列的方式不是一樣的
     
    參考以下的頁面
     
    在 UTF8 編碼下的網頁簡繁互轉
    http://blog.markplace.net/marks_place/10/2006/10/27/150
    在 UTF8 編碼下的網頁簡繁互轉(Server Side)
    http://blog.markplace.net/index.php?op=ViewArticle&articleId=169&blogId=1
     
     
    轉換 BIG5、GB2312、UTF-8、Unicode 與 wchar_t
    http://www.jeffhung.net/blog/articles/jeffhung/261/
     
     
     
    另外在
    lrcShow-X
    發現一個有趣的專案
    Universal Encoding Detector
    Character encoding auto-detection in Python. As smart as your browser. Open source.
     
    讓我想到 Jserv寫得那篇
    charset-detector:自動偵測文件編碼的小程式
     
     
     
    June 06

    憑證錯誤

     
    連https出現 憑證錯誤
    終於找到原因了
     
    憑證錯誤通常是因為您作業系統日曆中的日期或時間不正確而引發。
     
     
    May 16

    OpenOffice.org達人魔法書

    OpenOffice.org達人魔法書
    http://odf.e-land.gov.tw/
    自由軟體人物專訪:為聯合報導入 OpenOffice.org 的聯經數位總經何銘傑
    http://www.linux.org.tw/node/646
    [網播][podcast] Born to MISrepresent 第十一集:聯經數位的何銘傑總經理,談運用UPP導入OpenOffice.org
    http://blog.roodo.com/ystuan/archives/8436041.html
    這裡面有講到一個概念,把力氣花在教育訓練上面  在4:40  
    用OpenOffice省下2千萬授權費
    http://www.ithome.com.tw/itadm/article.php?c=53182
    UPP的(U Portable Platform),概念應該是來自底下(Portable software for USB drives),不過我覺得做這些事屌,可以聽聽上面的訪問
    http://www.5680.tw/elearning/upp/
    Portable software for USB drives
    http://portableapps.com/
    我不是他們的員工,:p
    只是剛好看到
    OpenOffice.org達人魔法書
    對聯經數位這間公司好奇查了一下Google
    http://www.google.com.tw/search?hl=zh-TW&q=聯經數位&btnG=Google+搜尋&meta=&aq=f&oq=
    January 22

    好用的工具 Web Developer (Firefox Addone)

    Web Developer 

    https://addons.mozilla.org/zh-TW/firefox/addon/60

     

    [CSS/Edit Css]

    可以修改CSS,直接看到效果
    可以用在調校線上網頁的外觀時,然後把修改過的CSS複製到真正的CSS

    [Miscellaneous/Display Ruler]
     
    用來測量尺寸大小和位置
     
    [Outline]
     
    January 02

    在php上實做動態代理(Dynamic Proxy)的機制

    參考這兩篇

    在php上實做動態代理(Dynamic Proxy)的機制

    單純展現實做原理
    請另行整理擺放架構
     
    另外可以參考Java的一些概念做變種
    <<深入了解Java ClassLoader、Bytecode 、ASM、cglib>>
    可以看 cglib  那一段
     
    Java下的框架编程(5)--cglib的应用
    AOP編程入門--Java篇
    前面又加了Factory包起來
     
    程式碼:
    ================================================================================================
    <?php
     /*
      InvocationHandler.php
     */
     require_once('InvocationHandler.php');
    class Proxy {
     
     public $h;
     public $delegate;
     public $enumDirect;
     static function newInstance($delegate, InvocationHandler $h, array $enumDirect=array())
     {
      $rtn = new Proxy();
      $rtn->h = $h;
      $rtn->delegate = $delegate;
      $rtn->enumDirect = $enumDirect;
      return $rtn;
     }
     
     function __call($name, $args)
     {
      if(in_array($name, $this->enumDirect)) {
       call_user_func_array(array($this->delegate, $name), $args);
      } else {
       $this->h->invoke($this, $name, $args);
      }
     }
    }
    ?>
    ================================================================================================
    <?php
     /*
      Proxy.php
     */
     require_once('InvocationHandler.php');
    class Proxy {
     
     public $h;
     public $delegate;
     public $enumDirect;
     static function newInstance($delegate, InvocationHandler $h, array $enumDirect=array())
     {
      $rtn = new Proxy();
      $rtn->h = $h;
      $rtn->delegate = $delegate;
      $rtn->enumDirect = $enumDirect;
      return $rtn;
     }
     
     function __call($name, $args)
     {
      if(in_array($name, $this->enumDirect)) {
       call_user_func_array(array($this->delegate, $name), $args);
      } else {
       $this->h->invoke($this, $name, $args);
      }
     }
    }
    ?>
    ================================================================================================
    <?php
    /*
    test.php
    */
     require_once 'InvocationHandler.php';
     require_once 'Proxy.php';
    class Speaker implements ISpeaker {
      public function say($str)
      {
       echo "==$str==<br />\r\n";
      }  
    }
    class Loger
    {
     public function log($str)
     {
      echo("log:$str<br>\r\n");
     }
    }
    class LogHandler extends InvocationHandler {
     protected $loger;
     
     function __construct()
     {
      $this->loger = new Loger();
     }
     
     public function bind($delegate)
     {
      //return Proxy::newInstance($delegate, $this, array('say'));
      
      return Proxy::newInstance($delegate, $this);
     }
     
     public function invoke(Proxy $proxy, $name, array $args)
     {
      $this->loger->log("preSay");
      if(method_exists($proxy->delegate, $name)) {
       ////[deprecated]
       ////http://www.php.net/manual/en/function.call-user-method.php   
       ////call_user_method($name, $this->delegate, $args);
       
       ////[deprecated]
       ////http://tw2.php.net/manual/en/function.call-user-method-array.php
       ////call_user_method_array($name, $this->delegate, $args);
       
       
       
       //http://tw2.php.net/manual/en/function.call-user-func-array.php
       call_user_func_array(array($proxy->delegate, $name), $args);
      }
      $this->loger->log("postSay");
     }
    }
     
     function __main__()
     {
      $logHandler = new LogHandler();
      $speakerProxy = $logHandler->bind(new Speaker());
      $speakerProxy->say("Hello");  
     }
     __main__();
    ?>
     

    初探php namespace 反射想法

     

    php namespace  
    http://www.php.net/language.namespaces


    基本上不太喜歡寫評論的文章,
    若真的要寫,基本上我覺得要提出創造性的想法,
    才值得一寫,
    以下沒啥創造性的想法,只是單純反射的想法,
    寫寫,練習文筆和拋出腦中縈繞的思緒(創造性? 資源:垃圾)
    雖然我知道文筆是不會進步,因為我是想到啥就寫啥,沒啥壓力, :p


    會有這樣反射性的想法
    是因為php的namespace採用"\"這個符號


    剛看到時才在想,以前看到,忘了是那個IDE(是不是GodeGear還是vs,沒深究,懶得去查證)
    的PHP已經有引進 namespace 是用":::" , 
    哇,為了要寫namespace要用到三個冒號,好不容易習慣了property用"->",static用"::",
    結果好拉,現在php官方用"\"。


    基本上這個符號沒啥罪過,
    換個觀點看其實還蠻適合的,
    只是,我喜歡他當字串中的脫逸字元的符號,
    卻不喜歡他當路徑,或是namespace,
    為啥我會說換個觀點還蠻適合的,
    是因為,namespace在某種程度上有路徑的味道
    只是我不喜歡"\"當路徑的原因
    是因為,URL(URI)或是其他有關路徑的用法,除了win的
    基本上都是統一用"/",所以我一直到現在還沒法包容,路徑用"\"
    所以一直都對"\"用來當路徑覺得很"刺目" (好拉,我承認沒啥包容心,心裡總是用美感來掩蓋,但我想這是賦予文字情緒的議題)


    腦中不斷著在打轉
    為啥他們不乾脆就用"/"
    因為"/"被用來當除法


    那會啥不用".",這是大家習慣的
    因為"."被用來字串相加,
    那為啥要採用"."來當字串相加,
    不用大家習慣的"+",我猜應該是
    "+"用來當作字串的數字相加,會自動的把字串轉成數字


    好拉,只好應用人與人相處的法則拉,用欣賞的角度去看
    漸漸就會愛上(包容)這個人(用法)拉。
    (不想用包容,因為包容被我賦予著負面的情緒,有勉強的感覺,而愛上,則沒有勉強的感覺,是無條件和前提的,就只是愛,沒有理由)
    其實這關乎你要不要"選擇"新的"可能性"(不一定是換),還是要在那抗拒和拉扯

    想想開始學php的也是如此
    一開始就覺得會啥要"$",因為一開始學C,所以很喜歡C的語法,到目前看到C的Code我都還會有莫名的快感
    (用快感這個詞好像不是那麼恰當,就好像看到許久未見的親人,好朋友,愛人那樣的感覺,又是一個賦予文字情緒的例子)
    後來用另個觀點想用$也不錯,因為在宣告變數上,可以不用宣告型別,或是用var,def ... 之類的東西
    也可以和function和class隔開,"$"開頭這個就是變數


    當然php也不強制你一定要採用namespace
    http://www.php.net/manual/en/language.namespaces.faq.php#language.namespaces.faq.shouldicare


    目前還是喜歡 Zend Framework 採用的那樣機制和檔案擺法
    http://framework.zend.com/manual/en/zend.loader.html
    雖然ClassName會有點冗長,但可以一目了然,並且可以強制你斟酌命名,和檔案擺放結構


    不過目前本人愛上了
    Groovy
    http://groovy.codehaus.org/
    Grails
    http://grails.org/


    那簡潔的語法和架構
    只是會不會未來又發展到某個階段,又失去的簡潔的原則,失去了"美感"


    怎麼寫到這覺得自己有喜新厭舊和花花公子的感覺
    這樣會不會暴露自己的性格阿
    讓自己少了很多遇到真命天女的機會阿


    就跟你說我不喜歡寫評論的文章ㄇㄟ, :p

     


     

    December 31

    Groovy MOP DSL AOP

     
    隱約記得在google上搜尋 [Groovy AOP]
    結果就多看了幾個概念名詞和實做,
    可能是我才剛進入Java的世界,
    所以對很多名詞和概念還存著好奇的心態吧 :p
    有興趣的人可以研究
     
    Groovy MOP实现mini-language 如传说中Java7.0的XML嵌入式语法
    http://www.blogjava.net/calvin/archive/2005/08/17/10333.html
    http://www.javaeye.com/topic/15358
     
     
     

    CK's Blog -- Showing posts with label AOP
    http://chanwit.blogspot.com/search/label/AOP
     
    會去Google搜尋[Groovy AOP]最大的起因之一應該是這篇文章 ,  :p
    Spring Gossip / AOP 入門 / 從代理機制初探 AOP
    http://caterpillar.onlyfun.net/Gossip/SpringGossip/FromProxyToAOP.html
    Spring Gossip
    http://caterpillar.onlyfun.net/Gossip/SpringGossip/SpringGossip.html
     
    December 29

    GTD (Getting Things Done) Resoruce

    GTD (Getting Things Done) Resoruce


    [Book]
    http://www.books.com.tw/exep/prod/booksfile.php?item=0010205787&


    [Tools - Software List]
    http://www.priacta.com/Articles/Comparison_of_GTD_Software.php
    http://www.lifebang.com/archives/145


    [Tool]
    lis.to [opensource; java; linux, win, mac]
    http://lis.to/
    Chandler [opensource; python, wxWidget; linux, win, mac]
    http://chandlerproject.org/
    ACHIEVER
    http://www.rightzing.com/

     

    [Wiki]
    http://zh.wikipedia.org/wiki/GTD
    http://en.wikipedia.org/wiki/Getting_Things_Done


    [User Blog]


    開始你的GTD
    http://blog.roodo.com/appleseed/archives/3909749.html
    你怎麼設定與組織管理你的系統?
    http://blog.roodo.com/appleseed/archives/2016469.html
    WorkFlow Diagram From "Getting Things Done"
    http://www.wretch.cc/blog/phielk/2068739


    twhsi時間管理線上課程
    http://lomobangdoll.blogspot.com/2007/11/gtdtwhsi.html


    twhsi時間管理 線上課程 (5) 收集雜事 時間管理健身房 77/100
    http://blog.xuite.net/twhsi/Blog/14111267
    twhsi時間管理 線上課程 (6) 加工處理雜事 時間管理健身房 78/100
    http://blog.xuite.net/twhsi/Blog/14131878
    iGTD時間管理軟體介紹 59/100時間管理健身房
    http://blog.xuite.net/twhsi/Blog/12624685
    iGTD的介紹(2) 介面的介紹--六個功能鍵 時間管理健身房 61/100
    http://blog.xuite.net/twhsi/Blog/12756458
    iGTD的介紹(3)不同圖標的意義 時間管理健身房 63/100
    http://blog.xuite.net/twhsi/Blog/12942872
    iGTD的介紹(4)我的任務及場合規劃 時間管理健身房 68/100
    http://blog.xuite.net/twhsi/Blog/13946956
    ......


    使用GTD軟體對個人時間管理上有怎樣的改變呢?效益又是如何呢?
    http://blog.xuite.net/nx7000/blog/3493495?ref=rel


    GTD ... 時間管理
    http://blog.xuite.net/eliza129/blog/17872025?ref=rel
    終極邊疆BLOG   » GTD
    http://blog.serv.idv.tw/category/gtd/


    Getting Things Done 把事情搞定
    http://hohohou.blogspot.com/2007/07/getting-things-done.html
    搞定! GTD
    http://ihower.idv.tw/blog/archives/1483


    利用Gmail Labels管理工作清單
    http://www.clubeddy.com/2008/12/gmail-labels-as-task-management.html


    [題外話]
    <<lis.to>>
    lis.to 是用Java寫成的
    Java source code
    http://code.google.com/p/listo/


    利用svn check out
    閱讀README可以瞭解重編的技巧
    因為搭配Ant,所以還不難
    並且搭配Launch4j可以打包成windows單一執行檔
    並且在/res/lang底下有語系檔可以直接修改
    我加了一個檔
    UI_zh_TW.properties
    -------------------
    menuitem.about.name = About Fix
    -------------------
    重編後是成功的,相關的參數請參照/res/lang/UI.properties
    不過用中文來測試卻出現亂碼,不論UI_zh_TW.properties是用UTF-8還是Big5都是亂碼
    目前是看到
    src/listo/client/Lang.java
    對Java不熟,
    http://www.eland.com.tw/www/javaland/2002_06/javatech_tag_lib2.htm
    所以還沒找到Why   :p

     經過研究,結論原來是
    java要求的unicode文件都是\uxxxx這種格式,
    可以利用native2ascii.exe來轉碼
    Ant有相關的Task指令

    所以我更改了bulid.xml
    -----------------------------------------------------------------------
             ...
        <target name="compile" depends="init" description="Compile Java source">
             ...
            <copy toDir="${build.classes.dir}">
                <fileset dir="${res.dir}" excludes="lang/*.properties"/>
            </copy>
                <native2ascii encoding="utf-8" dest="${build.classes.dir}/lang" src="${res.dir}/lang" includes="**/*.properties" />
        </target>
              ...
    -----------------------------------------------------------------------

    參考文章
    -----------------------------------------------------------------------
    請問一下ResourceBundle的用途
    http://www.javaworld.com.tw/jute/post/view?bid=29&id=27875&sty=1&tpg=5&age=-1
    swing/awt 中如何顯示中文?
    http://www.lslnet.com/linux/f/docs1/i53/big5355286.htm
    Native2Ascii & Ascii2Native
    http://blog.xuite.net/genix/destiny/10065779
    I18N 入門
    http://www.javaworld.com.tw/jute/post/view?bid=42&id=182291&sty=1
    使用JDK附送native2ascii.exe進行轉碼
    http://blog.xuite.net/jameschih/java/5089783
    Trail: Internationalization
    http://java.sun.com/docs/books/tutorial/i18n/index.html
    Ant OptionalTasks / Native2Ascii
    http://ant.apache.org/manual/OptionalTasks/native2ascii.html
    Ant CoreTypes / FileSet
    http://ant.apache.org/manual/CoreTypes/fileset.html
    ----------------------------------------------------------------------- 

    <<Chandler的故事>>
    Chandler
    http://blog.ijliao.info/archives/2008/08/20/3618/

    “Dreaming in code”: Software is hard
    http://ria.richtechmedia.com/2007/02/05/dreaming-in-code-software-is-hard/

    December 25

    利用Grails Plugin 撰寫 Java Servlet

    利用Grails Plugin 撰寫 Java Servlet
    =====================================================================
    緣起:
     原本想要研究Grails Flex Plugin的寫法
     http://grails.org/Flex+Plugin
     研究了一下原址碼和一些文件
     所以才有這篇文章

     這個Plugin很讚,可以直接寫mxml在web-app裡
     然後就可以run-time產生.swf
     這是原本flex sdk就有的功能,被整合進來
     http://livedocs.adobe.com/flex/3/html/apache_4.html
     然後還整合BlazeDS
     http://opensource.adobe.com/wiki/display/blazeds/BlazeDS


    =====================================================================
    作法:

    [1] 先產生一個Grails的Project,這裡的範例叫做DemoPrj
    grails create-app DemoPrj


    [2] 安裝 Grails Flex Plugin,這個步驟是非必要的,只是要參照他的原始碼,或是偷懶直接在這個Plugin製作
    cd DemoPrj
    grails install-plugin flex


    會產生DemoPrj/plugins/資料夾
    裡面有flex-0.2和grails-flex-0.2.zip


    [3] 產生一個plugin,這裡個範例叫 forservlet


    grails create-plugin forservlet


    你可以在任何資料夾執行上面的指令,不一定要在DemoPrj底下,好像grails create-app一樣,產生一個專案
    可以看看forservlet的資料結構,和grails create-app很像,有些許不同,不同處請參考
    http://www.grails.org/The+Plug-in+Developers+Guide


    [4] 打包 plugin forservlet


    cd forservlet
    grails package-plugin


    會產生一個 grails-forservlet-0.1.zip
    http://www.grails.org/Creating+Plugins


    [5] intsall plugin 到 DemoPrj


    cd DemoPrj
    grails install-plugin forservlet/grails-forservlet-0.1.zip


    (我的forservlet是放在DemoPrj底下)


    這樣就會產生DemoPrj/plugins/forservlet-0.1


    [6] 撰寫一個java Servlet,這裡的範例叫做HelloServlet
    cd forservlet/src/java
    mkdir org
    cd org
    mkdir fun
    cd fun
    mkdir servlet
    cd servlet


    vi HelloServlet.java


    =======================
    package org.fun.servlet;

     
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;

     
    public class HelloServlet extends HttpServlet {
        public void doGet(HttpServletRequest req,
                          HttpServletResponse res)
                      throws ServletException, IOException {
            res.setContentType("text/html");
            PrintWriter out = res.getWriter();
     
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Hello!Servlet!</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h1><b>Hello!Servlet!</b></h1>");
            out.println("</body>");
            out.println("</html>");
        }
    }


    =======================

     

    請參照這個範例
    http://caterpillar.onlyfun.net/Gossip/JSPServlet/FirstServlet.htm
    http://caterpillar.onlyfun.net/Gossip/JSPServlet/JSPServlet.htm


    [7] servlet Mapping


    cd forservlet
    vi ForservletGrailsPlugin.groovy


    =======
     def doWithWebDescriptor = { xml ->
      // TODO Implement additions to web.xml (optional)
      // servlets
      def servlets = xml.servlet
      servlets[servlets.size() - 1] + {
       servlet {
        'servlet-name'("HelloServlet")
        'display-name'("HelloServlet")
        'servlet-class'("org.fun.servlet.HelloServlet") 
       }
      }

      // servlet mappings
      def servletMappings = xml.'servlet-mapping'
      servletMappings[servletMappings.size() - 1] + {
       'servlet-mapping' {
        'servlet-name'("HelloServlet")
        'url-pattern'("/hello/*")
       }
      }
     }
    =======


    上面的動作等同在撰寫 WEB-INF/web.xml
    只不過是動態寫入和用groovy的寫法


    請參照
    DemoPrj/plugins/flex-0.2/FlexGrailsPlugin.groovy的寫法
    http://www.grails.org/Runtime+Configuration+Plugins
    http://caterpillar.onlyfun.net/Gossip/JSPServlet/FirstServlet.htm


    [8] 測試Hello
    重複[4],[5]
    cd DemoPrj
    grails run-app


    http://localhost:8080/DemoPrj/hello


    (
    在開發的時候,不想反覆[5]和[4]的步驟的偷懶的方法
    請自行研究測試,:p
    另外也可以直接在Grails flex Plugin上面修改,直接玩
    )


    =====================================================================


    結論:


    到目前研究的初步,BlazeDS是透過
    MessageBrokerServlet去傳遞訊息
    所以我想若WebORB for Java
    http://www.themidnightcoders.com/products/weborb-for-java/overview.html
    若也是這樣的架構(Java Servlet)的話
    http://livedocs.adobe.com/blazeds/1/blazeds_devguide/help.html?content=lcarch_3.html
    應該可以依樣畫葫蘆整合成一個Plugin


    請參照
    http://opensource.adobe.com/wiki/display/blazeds/Developer+Documentation
    blazeds-src-3.2.0.3978\modules\core\src\java\flex\messaging\MessageBrokerServlet.java
    =====================================================================


    參考資料:
    除了上面提到的網址


    Marcel Overdijk's Blog
    http://marceloverdijk.blogspot.com/
    這個人應該是Grails Flex Plugin的作者
    http://marceloverdijk.blogspot.com/2008/01/flex-on-grails-introducing-grails-flex.html
    Grails Flex Plugin 使用範例
    http://marceloverdijk.blogspot.com/2008/01/blazeds-test-drive-sample-in-grails.html
    BlazeDS 30-minute test drive
    http://www.adobe.com/devnet/livecycle/articles/blazeds_testdrive.html


    因為還不是很會Java,剛好在學Groovy和Grail的同時,又充實Java的相關知識
    真不賴 :-)
    JSP/Servlet: Servlet 生命週期
    http://blog.csdn.net/wangyun71/archive/2005/12/02/542307.aspx
    Java Servlet 入門
    http://web.nchu.edu.tw/~jlu/cyut/servlet.shtml
    Java Servlet 程式設計初步
    http://sun.cis.scu.edu.tw/~nms9115/articles/java/WebAppTutor/ServletPrimer/ServletPrimer.htm
    context-param和init-param區別
    http://hain.javaeye.com/blog/70731


    Flex2中的services-config.xml設定檔 part I
    http://blog.riaproject.com/?p=29
    Flex2中的services-config.xml設定檔 part II
    http://blog.riaproject.com/?p=35


    Creating Flex Builder Projects that Use Server Technologies
    http://learn.adobe.com/wiki/display/Flex/Creating+Flex+Builder+Projects+that+Use+Server+Technologies
    Creating a simple BlazeDS messaging application in Flex Builder
    http://learn.adobe.com/wiki/display/Flex/Creating+a+BlazeDS+messaging+application+in+Flex+Builder
    Creating a simple BlazeDS web service application in Flex Builder
    http://learn.adobe.com/wiki/display/Flex/Creating+a+BlazeDS+web+service+application+in+Flex+Builder


    AMFPHP 與 Flex RemoteObject Component
    http://blog.ben.idv.tw/2008/04/amfphp-flex-remoteobject-component.html

    Using Flex with Spring
    http://coenraets.org/flex-spring/

    The factory mechanism  [MessageBrokerServlet -> MessageBroker -> Service -> [Spring] -> Destination]
    http://livedocs.adobe.com/blazeds/1/blazeds_devguide/help.html?content=factory_2.html
    http://livedocs.adobe.com/livecycle/es/sdkHelp/programmer/lcds/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=factory_2.html

    Spring BlazeDS Integration Home [Another Way]
    http://www.springsource.org/spring-flex
    http://static.springframework.org/spring-flex/docs/1.0.x/reference/html/index.html
    http://www.springsource.org/projects

    ...

     

    =====================================================================

     

    December 23

    Gradle Build System

    本來想研究Grails 的 Script的寫法
    利用它來做code generator
    以後也可以用在其他案子的Build System
    http://grails.org/Command+Line+Scripting
    http://grails.org/doc/1.0.x/guide/4.%20The%20Command%20Line.html
    後來陸續發現幾個專案
    Gant
    http://gant.codehaus.org/
    Gradle
    http://www.gradle.org/
    Apache Ivy
    http://ant.apache.org/ivy/
    最讓我感興趣的是Gradle這個Build System
    目前學到的:
    安裝方便:同Groovy和Grails的安裝方式
    http://gradle.org/getting-started.html
    語法簡單:撰寫build.gradle,等同在寫Groovy
    Userguide(有線上版,和PDF下載)
    http://gradle.org/userguide.html
     
    又發現一個Groovy的應用,真棒
    :-)