sam 的个人资料>>> 這也將會過去 <<<照片日志列表 工具 帮助
8月2日

在瀏覽器網址列輸入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
6月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.
嗚嗚...
下載時要注意阿
6月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:自動偵測文件編碼的小程式
 
 
 
6月6日

憑證錯誤

 
連https出現 憑證錯誤
終於找到原因了
 
憑證錯誤通常是因為您作業系統日曆中的日期或時間不正確而引發。
 
 
5月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=
1月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]
 
1月2日

在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

 


 

12月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
 
12月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/

12月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

...

 

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

 

12月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的應用,真棒
:-)