2006年12月29日 星期五

JSPWiki 安裝使用心得

沒有留言:
從今年初還是去年末左右,看到Xexex's Java和其他二三事大大
的一篇尋求支援中文Wiki ,我就開始就跨入了JSPWiki 使用摸索之旅。

關於jsp的好處,這篇關於JSPWiki兩三事每個 team 都該裝個 Wiki 介紹很多就不細談了。

在JSPWiki安裝和使用中其實問題還蠻多的,因為版本更新還蠻快的。
當初我在使用的時候,就像Xexex's Java尋求中文解決方面一樣的問題。
比如說在2.23版 的搜尋需改成lucene(在jspwiki.properties),才可以搜尋中文,

接下來過程中要使用附加檔有中文檔名的、頁面連結有中文名稱的,那時候都會有問題。

而有人提及在tomcat的{catalina.home}\conf\server.xml設定中

<Connector port="8080"              
maxThreads="150"
....

.....
URIEncoding="UTF-8"
/>

需要加上設定URIEncoding="UTF-8"。可以解決部分中文 URI連結問題。
現在在使用到2.471以後的版本好像都自動解決了,不需手動設定。

但是我最大的問題在於它新版的登入功能始終有疑問。
好像不完整還是有bug,實際去觀察其實這問題蠻大的。
因為我用了兩三台電腦去安裝,它使用jass登入系統都不 work。
登入會一直產生invalid login。
這時只好翻查許多 bug回報和觀看log記錄檔

2006-12-28 11:21:17,631 [http-80-Processor25] ERROR com.ecyrd.jspwiki.auth.AuthenticationManager
- Couldn't retrieve login configuration.
Message=無針對 JSPWiki-container 配置的LoginModules
2006-12-28 11:21:17,631 [http-80-Processor25] ERROR com.ecyrd.jspwiki.auth.AuthenticationManager
No login context. Please double-check that
JSPWiki found your 'jspwiki.jaas' file or the contents have been appended to your regular JAAS file.
看起來是 jaas 配置的問題,不過這也很奇怪,因為一般使用預設的方式即可自動設定。
官方似乎有這樣的FAQ -Login does not work, create new users does
根據jspwiki.properties裡描述

# See the jspwiki.properties and jspwiki.jaas files for more details on
# how to do this. These files contain addition configuration options
# for the JSPWiki security policy and authentication, respectively, although
# the defaults should work fine. If you don't set the JRE properties,
# JSPWiki will use default versions from the WEB-INF directory.

# AUTHENTICATION
# For authentication, JSPWiki uses JAAS (Java Authentication and Authorization
# Service). The Authentication system is configured in the jspwiki.jaas
# file; by default it will attempt to leverage your servlet container's
# authentication services, if present. JSPWiki also can use its own
# authentication system, which is separate from the container.
有說跟沒說一樣 =.=
後來發現 JSPWiki的jaas程序是這樣子的,如果使用者自己有設定jaas則他會讀取該jaas設定。
若是沒有設定jaas,則JSPWiki會自動改用預設在WEB-INF\底下的jspwiki.jaas檔。
這個問題在此有提及到 多個wiki使用jaas問題(有點展露署光):D
Our default strategy is to try to install a JAAS configuration and supplemental J2SE policy if we detect that the user hasn't set them up already. We do this so that the administrator doesn't have to fool around with config files, and that it runs out of the box. On a multi-wiki system or one that's used in production, of course, we recommend setting the location of the JAAS and J2SE files manually so that they run JVM-wide.
這個立意良好的設定,在此卻是造成我們使用上的最大困擾。

為什麼呢? 後來我發現在我安裝在多台電腦上的JSPWiki唯一一台成功可以使用wiki登入系統的
電腦(最乾淨的 jdk、tomcat 沒有裝過其他可能會用到 jaas的web系統的)
在其log檔發現載入jaas設定部份
2006-11-23 10:09:18,921 [main] INFO com.ecyrd.jspwiki.auth.AuthenticationManager 
- JAAS not configured. Installing default configuration:
file:/C:/jakarta-tomcat-5.0.28/webapps/JSPWiki/WEB-INF/jspwiki.jaas.
You can set the java.security.auth.login.config system property to point to your jspwiki.jaas file,
or add the entries from jspwiki.jaas to your own JAAS configuration file.
而在不行的電腦上log 為
2006-12-28 11:20:48,053 [Thread-0] INFO com.ecyrd.jspwiki.auth.AuthenticationManager 
- JAAS already configured by some other application (leaving it alone...)

知道為什麼了嗎?因為我其他的電腦上都裝過一些會用到web services的元件,其中也可能有用到
jaas的東西,所以他都讀到其他那個的jaas設定,而WEB-INF\jspwiki.jaas檔完全就不會讀到了,
除非我把系統正規讀到jaas設定檔,加入jspwiki.jaas的部分,或是移掉可能有設定到jaas 的部份。
可惜我還是找不到那個設定 jaas的檔在哪裡。

最後在只好利用客製化設定 在系統變數加上參數
Customizing JSPWiki's JAAS Configuration
export CATALINA_OPTS="-Djava.security.auth.login.config==/etc/jspwiki.jaas"
or
set CATALINA_OPTS="-Djava.security.auth.login.config==C:\xxx\jspwiki.jaas"
才使登入系統可以正確操作。
其他又可以開始玩換佈景和加入些外掛插件增強功能了
不過插件的相容版本問題,又是挺討厭的。
目前使用2.4.87版本

2006年12月28日 星期四

防止Tomcat底下 目錄列出

沒有留言:
在 {catalina home}/conf/底下,找到web.xml檔案,尋找

<servlet>


....
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>


把true改成false即可

2006年12月27日 星期三

使用Wii來 遙控家電

沒有留言:
上面介紹是這樣寫的
This is my Nintendo Wii Controlled Smart Home. Using the Wii-Mote and my Nintendo Wii, I have an onscreen Flash User Interface that lets me control the following aspects of my home: Lights, Thermostat, Security Camera, Music Playback, Cable DVR, and more.

Wii-Mote不知道用什麼傳輸協定 ?
作者主要是把Wii 和
他的Flash User Interface SmartHome system 作結合,
用opera瀏覽器開啟。
研究數位家庭的人,更應該向老闆敗一台來研究一下阿 XD
做無障礙人機介面的,更應該研究一下wii Mote設計理念...

2006年12月25日 星期一

日記表格

沒有留言:
 
 
 

今天天氣晴,每日這個時候,走再捷運的地下通道裡,往往反反的人群....



哈哈.....................................





teman再此一遊

 
 
 

有趣的筆記表格吧
想不到msn space用過的表格,在這一樣可以用
相關連結,參閱能量魔法 or 懶人包

2006年12月24日 星期日

登入系統 規劃

沒有留言:
需求:
  • JSP/Servlet (先不考慮framework,從簡單着手)
  • 為求簡單使用 xml 替代一般database 系統
  • 為求密碼安全,使用md5/HSA 轉編碼(缺點:md5碰撞...有人解了,md5為單向密碼,忘了無法還原)
保障目錄安全性--幾種方法
  • 關閉tomcat 目錄展列 (簡單 無法各自設定)
  • Filter 撰寫目錄安全性,無權限錯誤檢視畫面。(最客製化)
  • 預設servlet導向子目錄(比Filter容易些)
  • 使用apache當上層管理,tomcat 子目錄(使用apache安全特性)
  • 使用Filter 檢查是否已登入,未登入者導向登入頁面。
不知道有遺漏什麼?
有人有建議嗎?

2006年12月21日 星期四

小作品

沒有留言:
小弟不材,上研究所後,實際親手寫的,只有兩個小玩具
  1. 3D SVG 請使用IE+SVG Viewer
  2. 聯絡簿&書店購物 原先想改成spring/hibernate 並加強功能 看來無機會了
其他自己寫的儲存庫系統雖然透徹撰寫,但有假借學長研究程式碼幫助完成

接下來為了趕論文進度而跳到另一邊ebxml osc 相關研究,並開始蒐集資料
對之前自行寫的小玩具,功能無法善加完備,深感遺憾呀 brabrabra..

2006年12月20日 星期三

賀! 光-oracle 找到國防役公司!

沒有留言:
恭喜踏上四年的不歸路 在此祝賀之!

感謝此人贈與之Pizza ~~




12/20日 工作研究進度

沒有留言:
每次Meeting完都有種莫名奇妙的感覺,好像少了什麼東西的感覺。
發現我只講了cvs....原先還有的東西列上
  • 文獻參考蒐集
該研究論文的貢獻--節錄自論文
  • 自訂模組
1
金流付款模組(8)--自行開發金流付款模組,包含:ATM 自動櫃員機轉帳、 銀行匯款、信 用卡、貨到收款、Pay Dollar 網上付款、iePay、Seednet,模組符合現今台灣電子商 務金流需求。
1.
2. 物流配送模組(6)--自行開發物流配送模組,包含:宅配通、單一運費、單件運費、收費 表、宅急便、依地區計費,模組符合現今台灣電子商務物流需求。
1.
3. 台灣商務獨特需求模組(5)--自行開發台灣特有商務需求模組,其語系以繁體中文為主。 包含:客戶分級制度、CSV 大量商品上傳、日期選擇銷售日報表、訂單加入網站LOGO 及 商品圖片、商品直接顯示商品分類,為台灣商務經營上具有實用功能。

  • 正體中文化OSC官方加值模組(700)
--包含六大類模組:資訊傳達功能模組、各式資訊報表模組、訂單總計模組、特色 加值 模組、樣版模組、其它模組

下次預計進度
  • 安裝OSC正體專案自訂模組,並觀察OSC模組結構。
  • 從PHP呼叫JAXR-OMAR查詢資料
  • 撰寫查詢OMAR tools , Java Package

2006年12月18日 星期一

賀 開板 XD

1 則留言:
開板拉

2006年12月8日 星期五

OMAR R/R WebStart Java UI

沒有留言:
Java UI 的 WebStart
就是說你可以不需要自己編譯Java UI,透過網路和你的jre就可以用了

網址SourceForge網址

不虧是Sun工程師

2006年11月22日 星期三

Picasa Web Albums

沒有留言:
天在使用google doc時不小心發現
默默的google 把 Picasa 推出 online Albums - Picasaweb
用起來基本的Web功能有個雛型了
但是說到編輯工具主要是跟 Picasa 作個連結
未來會不會把 Picasa 軟體利用ajax來 Web化就不一定了
至少他是為Picasa提供一個web空間來分享你的相簿
容量看到目前是250MB,未來會不會增加不曉得
且RSS和分享的功能public 已經有些功用了,可以輕鬆讓你套用在Blog上面
就是還差可以自由的探索別人public albums 的入口
以後甚至會讓別人自由的訂閱我的最愛 或是加入Tagging 這些基本功能,
觀看友人的相簿等
唯一知道就是他還在發展中
話說google版圖是不是又往前邁進了一步 ?
Flickr未來會不會被忽略呢
應該還早...

相關連結:http://picasa.google.com/intl/en_US/web/whatsnew.html

2006年11月10日 星期五

向世界最Top的網站學CSS

沒有留言:
近lab新進了幾本書..
其中我覺得最想看的一本書就是"向世界最TOP的網站學CSS網頁設計"
其實對CSS有印象以來,內容跟樣式抽離這個概念早已深深烙印在我心中
好奇每個網站的設計同時,已經去看過大大小小的國內外網站設計。
(大部分我看過的網站我會紀錄在我del.icio.us http://del.icio.us/teman 的css 或 layout 裡的 tag 可以找尋得到。)
這樣我們其實用不著再看這本書,網路上的資源看不完的。只要是英文夠好和時間夠多吧
但有疑問的是 沒有人知道這樣的設計理念和其所包含的原則和學習的開端。不曉得如何起頭吧..
自Head First發行了CSS/XHTML設計的書時,也曾經想買來看
不過就缺乏國內有人翻譯,並且原文一本要價1300元。XD
如今這本"向世界..."一書,輕便的一本書也許是我或大家所要的結果和答案。

2006年10月4日 星期三

網摘-- 有錢賺?!

沒有留言:

2006年9月15日 星期五

Eclipse JS Encoding

沒有留言:
在使用Eclipse 編輯 JS 時 ,不管用哪個外掛編輯器,
再輸入中文字後存檔,在打開時都會發生字體變成亂碼????
這是由於Eclipse一個顯示bug
原因就是 JS 的文件他是用 US ASCII 寫的,所以預設編碼是 ASCII
在改成UTF-8即可以了,不過改的地方需要注意
Preferences -> General -> Editers 這邊 改Text File encoding (預設是MS850) 是沒用的
需到 Preference -> General -> content type 點選 JavaScript
在 Default Encoding: US ASCII Code 改成 UTF-8 即可

這裡指的是文件編碼,和網頁編碼不一樣喔。檔案編碼常受限編輯器設定關係。

2006年9月6日 星期三

9/6 Meeting工作筆記

沒有留言:
  • 數位學習實驗平台 -- 架設四位數位學習畢業之學長論文的系統 (9/20) or (9/27)以前
  • 關貿網路合作系統 -- 待確認
  • 職訓局數位學習案子 -- 下星期定案
  • live6.twbbs.org/live6/ 清大
  • 進度check個人meeting -- 暑期工作 (3D SVG 、論文改R/R ) 開學第一週
  • 下次Meeting 9/27 三 報告確認
其他事:
  • 開學延至 9/25
  • 預官報名 9/25起
  • Meeting教室預借登記 9/11
  • 選課加退選
  • 10/14 國中同學會

2006年8月20日 星期日

Eclipse Callisto Project

沒有留言:
從換了新電腦後今天安首度裝了新的Eclipse,其中比較有趣的是 Eclipse 提供了新的專案,也就是 Callisto
Callisto 是在六月底的時候公佈下載的,我想這是 Eclipse 對 plugin 煩雜的外掛程式和本版相容性問題,終於提供一個解決方式了。
在我試用個過程中不難感受到是一種像 Firefox 的擴充套件管理,事實上Eclipse 的這個方法,在我以前使用 jEdit 的經驗中早已見識過了,對編輯器有興趣的人可以去下載來使用。
jEdit 是 java based的文字編輯器,相當於好用的ultraedit一樣;不同的是他是免費的,且具有龐大的外掛支援著各種功能 。它的plugin 之多不比 eclipse 少,並且你可以任意擴充成你想寫的程式環,最重要的是他的 plugin可以透過管理功能直接查閱清單,並點選下載。也可以看到你已安裝的plugin,就像你的firefox一樣。現在的 Callisto 就有點這個味道,不過 Callisto主要提供了十種官方進行中的專案讓你下載,我想這是Eclipse想一統煩雜plugin的目的,因為他就像提供官方的外掛程式一樣 ,也就是Callisto清單了。將eclipse更新選項 改成 Callisto list 就可以連到那邊進行下載更新。
不過看似像 jedit 方便 ,但無法像 jedit 自由的安裝官方以外的外掛程式。
這難免讓我又想到 EasyEclipse 的出現,就是為了擺脫Eclipse煩雜外掛安裝和版本相容問題。
對於Callisto , EasyEclipse 是另一個不錯的選擇,它幫助各種開發者測試了很多常用的外掛程式和版本相容性,相信會更多人使用。
對Callisto有興趣的可以去看網站上Tutorial Demo

2006年8月15日 星期二

tomcat 5 手動安裝 系統服務

沒有留言:

使用原始檔為zip的 tomcat,手動安裝 windows系統服務

command line :
手動安裝服務最安全的方法就是使用service.bat。
使用service.bat安裝名字為''''Tomcat5''''的服務
C:\jakarta-tomcat-5.0.28\bin> service.bat install tomcat5
觀看服務是否安裝成功
開啟 系統管理工具-> 服務 來觀看結果
安裝服務後可以使用bin\tomcat5w.exe 開起GUI服務界面
移除服務
要移除服務,你需要使用tomcat5.exe的//DS//參數。如果服務正在執行,將首先關閉然後刪除。
移除名字為''''Tomcat5''''的服務
C:\> tomcat5 //DS//Tomcat5

======簡單方式======

C:\jakarta-tomcat-5.0.28\bin> service.bat install/remove [service_name]

相關連結:

2006年5月25日 星期四

離散數學是好物

沒有留言:

Euler path and circuits

一個圖形能一次把所有的邊 "edge" 給走完不重複,若回到原點則有 Euler circuit,若只是走完所有圖形的邊則是Euler path。

在 connected multigraph 所有的 vertics 有 even degree ,則存在 Euler circuit;恰有兩個點為 odd degree,則存在 Euler path。

Hamilton path and circuits

與 Euler path不同的是,Hamilton paths 是能一次把圖形的點 "vertex" 給走完不重複,如果能回到原點則是Hamilton circuits。

能否有 Hamilton paths or circuits,取決於邊和點的比例,點少邊多必越可能有 Hamilton paths,因為可行的路越多,可以到達目的不重複的路徑就越多。

有兩個定理:DIRAC's THEOREMORE'S THEOREM

釐清:Euler paths 行進過程,點可能會重複
那簡單請問大家 售貨員旅行問題,是屬於哪種圖形式呢?

相關連結:http://googlechinablog.com/2006/05/web-crawlers.html

哈希圖是啥?

中文分詞:

昨天meeting 提到中文分詞
http://googlechinablog.com/2006/04/blog-post_10.html

這是大陸的分法

2006年5月9日 星期二

ebxml Registry Repository - omar 雜記

沒有留言:

前天和昨天終於把 SCORM RR 給搞定了,
從之前到現在,觀察許久OMAR本身的專案,架設他們的omar server ,使用他們的Java & Web UI
以下總結一下心得:
以前學長使用的是 omar 3.0 alpha 2 ,我們新版的使用的是 omar 3.0 beta ..
光這兩種就改了不少地方。
首先在classification node 路徑 or concept 路徑上 新舊版的差別:
舊版的 path 學長是用:
/urn:uuid:3188a449-18ac-41fb-be9f-99a1adca02cb/RegistryObject/RegistryEntry/ExtrinsicObject/SCORM/
新版的 path 是
/urn:oasis:names:tc:ebxml-regrep:classificationScheme:ObjectType/RegistryObject/ExtrinsicObject/SCORM/
前者學長是複製到uuid的路徑,所以有些字串變成了16進位碼,而這段路徑在別台omar server上就不適用;我則是使用非uuid的名稱路徑,在別台這樣的路徑也可以使用。
而後半段,是新舊版classificationschema 樹狀路徑的差別,舊版有著RegistryEntry 這個 Concept
再來新舊版有個差異,如果沒有碰omar project 的原始碼是看不出來的。
新版的資料庫已經用了Hibernate 中文
而在資料庫設定上,利用omar.properties屬性檔設定。
omar 共有三大屬性設定檔 omar.properties、omar-common.properties、jaxr-ebxml.properties
omar.properties 是關於 server 的設定(資料庫這方面在這邊可以找到)
omar-common.properties 關於安全性和其他設定。
omar-jaxr.properties 是關於client的設定(Java UI 、 Web UI等 )
而在WEB-INF\classes\底下除了properties檔以外還有一堆 xml 檔,這些就是 hibernate 使用的。
OMAR Project 的 package套件,共分為
org.freebxml.omar.client ,
org.freebxml.omar.common
org.freebxml.omar.server
三大類,底下細分更多繁不備載。
那除了屬性檔以外,新版omar 有加強 security 的實作,像是在Java UI (registry-browser.jar) 新版的使用
使用者的新增會註冊你的CA 憑證 在omar的一個地方,像是C:\omar\data\security\keystore.jks
他的Use Case 如下:
首先在Omar Server 尚未註冊新使用者時,你可以新增 new account,新增需填入的資訊會包含兩樣,一是User Info 、二是CA alias & password 用來產生新的 CA。
通常是你沒有自己的CA時,omar 實作幫你產生自己新的CA (.p12格式),
但是官方不建議用omar產生的CA。
填完資料註冊新增後。底下會有兩個動作:一是把User Info 存入 RR,
二是把自動產生的CA資訊(alias / password)存入你設定的
C:\omar\data\security\keystore.jks 這個位置。
第二種情境,則是使用你已經有的CA來新增註冊使用者。它會存入新使用者資訊和把這個 CA 和新增的使用者 map 在一起,以後登入是用CA 的alias / password 就可以登入。

第三種是你已經有user account 和對應的CA 時,但是你在不同的電腦上想登入遠方的 omar server;
這時候有兩種情況,一是用 Java UI (即 JAXR),二是Web UI;
先說Java UI(registry-browser.jar),新版的已經有一個功能,是把你的CA載入至這台電腦的Java UI ,實際動作就是會載入至 JAXR,假如你再用自己寫的 Client /JAXR 這點就很重要,你可以用Java UI 預先載入已經新增註冊過的CA,這樣你利用(alias / password)登入後,就可以用程式去新增修改RO。
第二種如果使用WEB UI 話,只要Server的
Tomcat 有開啟 SSL https 8443 port 功能,你在遠端可以直接載入CA到Web borwser上,即可以自動認證登入使用了。tomcat 上的設定看起來是這樣:
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https" secure="true"
clientAuth="want" sslProtocol="TLS"
truststorePass="ebxmlrr"
truststoreType="jks"
truststoreFile="C:/Java/omar/data/security/keystore.jks"/>
詳細請看官網 omartomcat ssl
在使用學長的SCORM RR 時,他的 user 是事先載入至JAXR過的,
就是先利用Java UI 新增 account,並存入omar\data\security\keystore.jks
所以使用時 連C:\omar (原來部屬用的原檔) 也要複製過去。
而舊版沒有讓你備份你的CA 檔案(.p12格式)的功能。
新版的則可以利用 Client UI 讓你產生並存放和帶著走。
這個omar安全性限制下,就是只有該帳號才能作新增和修改刪除自己所屬的RO。
再談談OMAR RR在新舊版的差異,除了查詢和新增修改外,新版的規格路徑不同外,
在其中的一項功能處理getRegiestyObject(顯示xml),和get RepositoryItem時 ,
這邊新舊API 差距甚大,其實在學長呼叫omar package裡得 QueryManagerImpl 並使用時,新版同樣有這個 Class。 不過其中API裡使用的RegistryException已經由 org.freebxml.omar.common.RegistryException
改成 javax.xml.registry.RegistryException
這是 omar package 的改變。大概認為原先的不妥,不使用了。或是 javax 已經釋出新的 api
都改好程式碼後,我曾遇到錯誤 Exception,這個Exception還不是我寫的地方,而是我使用
omar package 裡的 類別
這怎可能呢"NullPointException"
Trace 了半天 omar package 原始類別後,也沒辦法重新編譯,這是別人釋出的 package。怎麼會有呢?大約花了快一天的時間把 source code 找了出來,並且code出一段段來執行,
終於知道那個環節錯了。但是知道是哪一段,卻不知到怎麼發生的。
NullPointException 這個看似基礎的問題,卻又發生得很莫名其妙。竟然找不出為什麼會是Null,所以開始檢查那個 instance是取得Null的。畢竟這是龐大的 omar package source code
經過一段段檢查後發現了是那一段用到 org.freebxml.omar.server.persistence.PersistenceManager 類別
他是null 。(這中間不知道經過多少個檔案搜尋、trace 他的design pattern、factory、manager、singleton、interface等等,好多個QueryManage(qm) 、bussiness query manager、bqm 、lcm、 xxm, xxqm, xxqmImpl.....什麼有的沒有的.等等。
最終呢發現了一個錯誤訊息,終於不是外層的NullPointExcetion了,從print stack中發現上述 PersistenceManager沒有 instantiate成功,所以找找他到底是什麼時候 new 出來的?
結果終於發現啦 ^^" ,他...OMAR 有使用Hibernate啦,用這個 omar.properties 和 一推看起來像是repository.jdbc.cfg.xml 的檔案裡設定啦。而我就少了這些檔,這個在舊版omar 3.0 alpha 裡是沒有用到的技術啦。所把新版的檔案溝過去就ok了 \0o0/
結語:程式是實際碰過後才會知道其中的奧妙,資源都擺上去了,碰不碰在自己。沒試過很懶的就不要問令人生氣的問題。因為一聽就知道你連基本功課都沒作,等著別人弄好給你,坐享其成。

2006年4月27日 星期四

只不過是平凡的programer....

沒有留言:
最近遇到一個程式新手同學
被問到以後可以當程式教育訓練講師...
說到講師這可不是這麼容易的,(你可能想到的是外面教育中心補習班的講師)
如果像我們這樣的程式員,其實外面到處都是
更不用說到印度人是比我們多又便宜又好用了。
光技術不說,其實有很多你都還沒聽過的,
而單單幾個認證,只不過是外面工作的基本配備。
要當講師不只需要對該技術熟悉瞭解,
最重還要會應用和比較優缺點等。
其實外面有很多技術都比我們很好的人才,
技術證照也很多,但是大部分不會作程式教育訓練講師。
也不一定能當企業講師,而會是技術工程師、programer、專案經理..等等。
說到講師有很多種,有加上"企業領域"的知識和技術應用來作企業教育訓練。
不止是有經驗的專案經理,領域知識也很厲害,偶爾來個幫自己企業的教育訓練。
這種 level 都比單純語言基礎教學的Level 還來的高。
且這種的講師才是真厲害的,也並不是容易當的。
有些不是資管或資訊的人,沒有聽過業界演講或外面資訊業演講
大概難以想像吧...
曾聽過微軟的企業講師演講 .Net
聽過 Sun, IBM ,MS 未來企業系統應用發展的演講,都是經理級以上的演講
聽完後我想大家不會只想當 coding 工吧,這是永遠聽人使喚錢不多的職業。
我想說我們只不過是眾多 coding 人,平凡的一個,但你還沒達到這平凡的水準更別談了。
我們視野應該要放廣一點。。。
師大要聽到業界的演講還真難,不是學術研究,就是教授論文。
現在唯一有印象的是 yahoo web 開發經理對新Web發展的演講吧

2006年4月23日 星期日

Axis下使用SOAPMonitorService

沒有留言:
參考網址
http://ws.apache.org/axis/java/user-guide.html#AppendixUsingTheSOAPMonitor

環境:
AXIS 1.3
Eclispe 3.1.1

axis web已經建立在tomcat上如: axisdemo
在 Axis 中使用SOAP Monitor:

1.在axisdemo目錄下 先編譯 SOAPMonitorApplet.java (classpath 加入 axis.jar)
如果沒有axisdemo 請先下載 axis package,
從%axis_home%\webapp\ 複製axis 到 %catalina_home%\webapp\
隨便rename axis 為名稱axisdemo

2.在 C:\Java\workspace\axisdemo\WEB-INF> java -Djava.ext.dirs=%AXIS_HOME%\lib org.apache.axis.client.AdminClient
-lhttp://localhost:8080/axisdemo/services/AdminService
deploy-monitor.wsdd

3.
deploy-monitor.wsdd
--------------------------------------------------------------
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<handler name="soapmonitor"
type="java:org.apache.axis.handlers.SOAPMonitorHandler">
<parameter name="wsdlURL"
value="/axis/SOAPMonitorService-impl.wsdl"/>
<parameter name="namespace"
value="http://tempuri.org/wsdl/2001/12/SOAPMonitorService-impl.wsdl"/>
<parameter name="serviceName" value="SOAPMonitorService"/>
<parameter name="portName" value="Demo"/>
</handler>
<service name="SOAPMonitorService" provider="java:RPC">
<parameter name="allowedMethods" value="publishMessage"/>
<parameter name="className"
value="org.apache.axis.monitor.SOAPMonitorService"/>
<parameter name="scope" value="Application"/>
</service>
</deployment>
---------------------------------------------------------------

4.在需Monitor的services deploy裡加入
--------------------------------------------
<service name="xxx" provider="java:RPC">
<requestFlow>
<handler type="soapmonitor"/>
</requestFlow>
<responseFlow>
<handler type="soapmonitor"/>
</responseFlow>
</service>
-------------------------------------------
5.檢示 http://localhost:8080/axis/SOAPMonitor

參考網址:http://ws.apache.org/axis/java/user-guide.html#AppendixUsingTheSOAPMonitor

2006年4月22日 星期六

基本OO變數

沒有留言:
Java基本OO的變數種類

Java物件導向中有:類別變數(class variable)、物件變數(object variable)、區域變數(local variable)
等基本類型

他們在存取的範圍(scope)、生命週期(lift cycle time),都有不同的用法。

不談死記的方法,想像在OO中的理念,一個物件的定義可以用Class來表示。即自己描寫製作一個類別

class Animal{

}

在一個類別裡,我們會有幾個元素,理所當然就好像他會有名字、年齡、性別,這種可以描述物件的屬性attribute或稱為metadata;然後是這個類別的行為,如喝水、說話、做等行為。以Java來說一個 class裡就包含這樣的元素,你可以稱之為 variables 和 methods,

class Animal{
String name;
public void speak(){
}
}

簡單的 class 定義其實就只是一堆 variable 和 method 的集合,全部都屬於該 class 的member
所以在C++又有稱之 member variable or member function ,表示這些為該類別的"成員"

說到這裡知道 class 的基本要素後,你要想想把 class 當作你的對 object 的定義,
你可以用 你所自訂的 class 去產生許多物件,即產生物件的多個實例(instance)。

這裡要注意的是,後面只會提 "class" 和 用 class 產生的 "instance",
不會在用"object" 來解釋 Java 的 OO,以免你把 instance 跟一般所述的 object 搞混,
object 會讓你把 class 和 instance 弄混。

當你知道什麼是 instance 之後,你可以用你所寫的 class 去產生一個 instance
(一個有自己資料的個別instance), 當設定他的資料欄位或操作他的方法時,
都屬於該instance的操作。

Animal a1 = new Animal( );

//這是產生一個 instance 的語法。

Animal a2 = new Animal( );

//則是另一個 instance

a1.name 就是 instance variable ,該變數 name 是屬於 al 的 ( 雖然a1.name存取方式有違封裝性 )
instance variable 的特性是 不同的 instance 間,各自 instance variable 並不相干。
a1 的 name 可以是"小白" , a2 的 name 可以是"阿花"。

//-------------------------------分隔線 ------------------------------------------------------ ------------
瞭解什麼是instance variable後,皆下來可以想想是否會有 variable 是同一種 class所共享的變數,
有種全域變數的感覺,答案是有的。 即是 "class variable"

class Animal{
static int max_age_limite ;
}

static 是 java 的 關鍵字,可以宣告class variable,如果宣告成 class variable 時,
整個 class 共享同一個變數。通常使用時不會在去instance 後在存取 ,
可以直接使用class name去存取,如 Animal.max_age_limite,
若是用
a1.max_age_limite ++ ;
a2.max_age_limite ++ ;

則 max_age_limite 會被加兩次,他們指的是同一個變數

注意,當能用" . " 去直接存取變數時,表示該變數是宣告成 public scope ,可能違反物件封裝性質

待續...

2006年4月8日 星期六

無責任 Eclipse教學 (更新2013)

1 則留言:

在經過幾年的Java IDE戰爭後,幾乎專業的Java程式開發者都須向於Eclipse,除非你曾經在昇陽工作,或是Oracle Java教育訓練講師,或許還仍使用NetBeans。我也曾經是NetBeans的推崇者。不過本文主要使講解使用Eclipse 開發工具,Eclipse目前已經已經是非常Popular的Java開發工具IDE。 

此文曾經發表於2006年4/8號。但當時Eclipse 使用度還未甚高。開發web app仍比較麻煩需要自己選擇WTP Plugin。現在大可直接透過Eclipse官網選擇Java EE版本的Eclipse即可。
http://www.eclipse.org/downloads/
目前最新版為代號 JUNO

以下為個人開始使用後 ,歷屆舊版版本代號(參考 維基百科 Eclipse)
Europa3.32007年6月27日2007年9月28日2008年2月29日
Ganymede3.42008年6月25日2008年9月24日2009年2月25日
Galileo3.52009年6月24日2009年9月25日2010年2月26日
Helios3.62010年6月23日2010年9月24日2011年2月25日
Indigo3.72011年6月22日2011年9月23日2012年2月24日
Juno4.22012年6月27日2012年9月28日2013年2月22日

下載後其實只要解壓縮即可以啟動使用

Step1. 使先開啟Eclipse,然後設定Preference 開啟喜好設定
Step2. 切換到 server 項目,Installed Runtimes
Step3. 點選Add runtimes ,選擇 Apache > Tomcat 7 ,按 Next

Step4. 選擇Tomcat 目錄位置,和 JRE位置,然後Finish。把新增runtime server打勾。
Step5. File>New>Project,選Web/Dynamic Web Project> Next,填上Project Name,這裡我填入MyFirstWeb,Target runtime選剛剛新增的。
Step6. Select Project Facets 不變Next,Web Module設定WEB Context、WEB-INF和SRC
這裡使用預設
Step7. 好了之後可以在套件瀏覽器上面看到下面圖
Step8. 在WebContent裡新增一個index.jsp檔吧,並在body 間打入<%="Hello World"%>存檔。
Step9. 在套件導覽器選index.jsp右鍵,執行為run on server,選擇Tomcat server 5.0
Step10. Tomcat 自動啟動並且開啟browser完成


PS . 若沒有安裝JDK需要先行安裝,因為使用預設JRE無法進行JSP Compile

相關文章:

2006年3月16日 星期四

eclipse 使用放大絕!!!

沒有留言:
用eclipse應該是老梗了
最近重新再用他時,擷取出幾個特點熱鍵
netbeans 5.0 新增功能 跟eclipse功能比起來 也不過如此相當..這樣..一般一般 沒有增進多少
我eclipse使用的是3.1.1版的(中文化剛好支援到此版)
有些功能可能是3.1版才有的

基本

視窗類
切換分頁:Ctrl+PgDn , Ctrl+PgUp (預設)
切換至編輯器:Ctrl+E
切換視圖:Ctrl+F7
視窗最大化:Ctrl+M
開啟資源:Ctrl+Shift+R
存檔:Ctrl+S
游標類
移動至下一個字:Ctrl + ← →
選取行:Shift + Home End ↑↓← →
選取字:Ctrl+Shift + ← →
復原:Ctrl+Z
剪下:Ctrl+X
複製:Ctrl+C
貼上:Ctrl+V

進階

快速修正程式: Ctrl+1 (當x出現時)
程式輔助:Alt+/
自動完成(範本 template) :Alt+/ (參考 功能列 視窗->喜好設定->Java範本)
單字完成 Ctrl+Alt+/
程式碼自動排版 (程式碼->格式 )(Shift+Ctrl+F)
自動新增---
新增/組織匯入(import) :Ctrl+Shift+M / Ctrl+Shift+O or Ctrl+1
新增Java doc:Shift+Alt+J
新增get/set method (程式碼->try/catch &get/set method) Alt+S +R
新增 try/catch 處理例外(程式碼->try/catch &get/set method) or Ctrl+1
註解----
切換單行註解 :Ctrl+/
多行註解:選取區塊後 Ctrl+Shift+/
按鍵自訂:(視窗 -> 喜好設定 -> 一般 -> 按鍵)

推薦Plugin

sysdo -
簡介:在eclipse內嵌tomcat設定 包含新增tomcat web project等
jboss eclipse plugin -
簡介:包含完整J2EE支援 & XML編輯
games-
貪食蛇 & 倉庫番
還是希望eclipse 應該要支援直接用檔案系統位置來開發的模式(對於用ant的project)
而不用都要開新project 並且匯入至workspace project位置來開發
因為eclipse的預設專案方式跟ant自行設定的部屬方式不同 常會有干擾
最明顯的就是用外部ant開發的project時
常會發生一些需要調整eclipse 套件導覽器錯誤的問題
這也是當初不用eclipse的原因吧,因為開啟專案的模式被eclipse綁死了
所以才會使用 ant +JCreator + cmd or netbeans
當然深信只要功力夠就行了
用eclipse 的差別就在部屬靠ide就解決掉了 ,他甚至不用ant。
如果有人知道eclipse和ant project 最好的整合方式
請務必告訴一下小弟我呀
netbeans 5.0 flash demo

2006年1月6日 星期五

Apache Tomcat 備忘錄

沒有留言:
此篇為2006 1/6號文章的更新版
目前Tomcat已經更新到新版 tomcat 7.0
參見官網 http://tomcat.apache.org/index.html

關於tomcat佈署webapp方式



第一種方式最單純,直接放到webapps中即可,啟動的tomcat自動會展開WAR檔進行佈署,
第二種方式比較可以彈性將原始程式放在別的資料夾中,並利用context檔案指向過去。
context xml file 放置路徑為 %CATALINA_HOME%\conf\Catalina\localhost\,在此建立context 描述檔案。Example: 

<Context path="/myweb" docBase="實際webapp電腦位置" />


最後一種方式是使用tomcat manager
當啟動tomcat後,登入首頁 http://localhost:8080/
點選manager功能,在使用 \conf\tomcat-users.xml 設定的角色和權限登入
但礙於目前網路資安弱點氾濫,原則上不建議使用manager功能進行佈署,甚至應該將此功能頁拿掉,因為認證容易被攻破...


2006年1月2日 星期一

Mozilla FireFox 擴充套件介紹

沒有留言:

大家都可能用過 Mozilla FireBox

但有時卻顯少去瞭解的的好用的套件
這篇文章主要就是介紹幾個我有在用的擴充套件

1.Super DragAndGo 推薦:

Super DragAndGo是可以讓你拖拉方式,開啟超連結於新的視窗或則分頁

如果是拖拉圖片的話,可以另存新檔。


圖片:


2.Forecastfox 推薦:

天氣況狀與遇報,新版有雷達圖



圖二


3.Gmail Notifier 推薦:

結合Gmail的擴充程式,每幾分鐘檢查信箱,

通知新郵件,可以設定語音通知

圖一



圖二



圖三


4.ColorZilla 推薦:

滑鼠指到哪出現該色彩資訊


5.IE View 推薦:

用IE開啟該網頁,設定在右鍵



6.adblock 推薦:

阻擋廣告,過濾廣告


7.IE Tab 推薦:

讓Fire Fox 可以雙核心 跑IE

圖一 FireFox


FireFox使用 IE 引擎


8.Tab Mix Plus 推薦:

加強瀏覽器分頁標籤功能



9.DOM Inspector 推薦:


把DOM HTML XUL XML pages 結構顯示出來



10.Web Developer 推薦:

網頁設計師 方便工具

標示表格


標示class、id



關閉css



檢視css



檢視原始碼



11.Right Encoding 推薦:



右鍵快捷列加入語系選擇列


12.新同文堂 推薦:

頁面繁簡字體自動轉換

圖一、簡體


圖二、繁體字


13.PDF下載 推薦:


讓你選擇PDF下載或開啟、轉為頁面開啟



14.del.icio.us 推薦:

快速tag 網頁至你的del.icio.us 書籤和檢視你的bookmark



其他繁不報載
可以參考 http://www.moztw.org/firefox/extension_top_15/