Amazon Ads

2013年10月29日 星期二

【筆記】The relationships between roles, users groups, security realms, principal and credentials



上圖中表示只有一個Security Realm (形式為LDAP realm) 存在於該應用程式伺服器中,Security Realm是指身份 (identity) 的儲存技術,如JDBC、LDAP或檔案系統,並且定義和認證儲存間的互動方式,用以儲存及存取使用者的認證 (authetication) 和群組資訊。

該LDAP realm中包含兩個群組:Regular Users Group (包含兩個使用者)以及Important Users Group (只有一個使用者),而其中金髮帶眼鏡的帥哥,不屬於任何群組。

每一個使用者都有某些credential和它聯結在一起 (如圖中使用者和鎖)。

在應用程式A中,定義了Acountant以及Plainuser兩個角色 (role),Acountant對應到帶眼鏡金髮帥哥這個Principal (如使用者和密碼的關聯),而角色Plainuser對應到群組Regular Users Group。

在應用程式B中,定義了Users以及Administrator兩個角色,其中角色Users對應到帶紅帽的美女,而Administrator對應到Important User Group這個群組。


2013年10月26日 星期六

【分享】修改Ubuntu 12.10 scrollbar樣式 (scrollbar overlay)

原本在Ubuntu 12.10中,scrollbar的樣式是這樣的:



打開終端機 (可以使用快捷鍵Ctrl + Alt + T),在終端機中輸入下列指令:

gsettings set com.canonical.desktop.interface scrollbar-mode normal

不用重開機,scrollbar的樣式就會立刻改變。



若要改回來,就在終端機中執行下列指令:

gsettings set com.canonical.desktop.interface scrollbar-mode overlay-auto

2013年10月24日 星期四

【筆記】Life-cycle of a singleton session bean

Singleton session bean的生命週期和Stateless session bean的生命週期差不多,除了一個重要的差別,那就是當在business method或callback method被呼叫時,而有system exception發生,Singleton session bean的物件不會被消滅。



  1. 在上圖中,紅色表示Singleton Session Bean的不同狀態。
  2. 綠色方塊表示造成Singleton Session Bean狀態改變的用戶端行為。

節錄自:http://www.slideshare.net/krizsan/ocp-jbcd-6-study-notes,p.69

2013年10月23日 星期三

【紀念】今天終於收到Google AdSense的個人識別碼 (PIN) 的信了

自從累計的收益已經超過十美金 (好長的一段路啊),所以日前就接到Google的通知說可以開始一些到時要付給收益的帳戶設定。

為何是十美金才開始?拜歐猜是因為十美金是取消帳戶時的付款底限。


款項起付額度說明頁中有更明確的說明。

那封個人識別碼碼的信大概是長這樣子。


打開後,會有一組PIN碼,要請你到AdSense的帳戶設定中去輸入,驗證你的帳戶和地址,要怎麼做,裡面寫得很清楚,照著執行,應該就不會有太大的問題。

寫了很久,終於到達這一小小目標,要達到付款底限,應該是幾年後的事了,還有很大的空間,開始經營部落格之後,會去思考一些網站相關的問題,這是最大的收獲了。

【筆記】Life-cycle of a stateless session bean



  1. 在上圖中,紅色表示Stateless Session Bean的不同狀態。
  2. 綠色方塊表示造成Stateless Session Bean狀態改變的用戶端行為。
節錄自:http://www.slideshare.net/krizsan/ocp-jbcd-6-study-notes,p.46

【分享】將手機版Line的對話記錄匯出來

今天有個朋友在問如何將Line的對話記錄匯出來印,拜歐想到的方法就是先做備份,然後寄到自己的信箱再印出來。

先按右上方的「V」圖案,出現下圖選項後,再點按【聊天設定】:


出現【聊天設定】後,再選【備份聊天記錄】:



再來選擇【以文字備份】:


再來選擇要備份的軟體,這裡使用以電子郵件的方式傳送到自己的信箱:


就會把對話記錄當附件傳送:


再進入上面寄送的電子信箱,就會看到附上文字檔案的電子郵件,再下載開啟即可。

2013年10月15日 星期二

【分享】修改Ubuntu 13.04(14.04)內建scrollbar樣式

在「修改Ubuntu 12.04內建scrollbar樣式」中有提到要更改Ubuntu 12.04預設scrollbar樣式,但在13.04版本,作法又有點不同了。

預設樣式如:



若要修改預設的scrollbar樣式 (overlay scrollbars),開啟終端機後輸入:

gsettings set com.canonical.desktop.interface scrollbar-mode normal

不用重新開機,輸入後立刻「有感」:



若要改回來,就在終端機中輸入:

gsettings reset com.canonical.desktop.interface scrollbar-mode


【分享】Ubuntu由12.10升級到13.04

若你的Ubuntu是12.04的版本,請先參考「Ubuntu 12.04升級到12.10」這篇升級到12.10。

其實Ubuntu由12.10升級到13.04的步驟大同小異,只要升級到12.10之後,在終端機中輸入:update-manager -d,或開啟【更新管理員】系統就會開始檢查更新:



若目前的所有軟體皆為最新版本,則會出現升級到13.04的提示:


若要升級,請點按【升級...】按鈕開始進行升級。


過程中會要求輸入密碼,請輸入登入的使用者密碼。


在閱讀發行公告後,點按【升級(U)】按鈕升級程序正式開始。



[分享]Ubuntu 12.04升級到12.10

在開始由Ubuntu 12.04升級到12.10之前,請確認適用於目前版本的更新都己經升級。

在終端機中輸入下列命令

sudo apt-get update

後,再輸入

sudo apt-get upgrade

來升級目前版本適用的所有更新。

更新步驟如下:

在終端機中輸入:update-manager -d,或開啟【更新管理員】,如下:


【更新管理員】對話窗開啟後,若沒有看到「有新 Ubuntu 發行版 '12.10' 可供升級」和【升級】按鈕的話,請進行下列設定。


點按在【更新管理員】對話窗左下方的【設定(S)...】按鈕:


出現【軟體來源】對話窗後,切換至【更新】頁籤,在下方【通知我新的 Ubuntu 版本】,選擇【任何新版本】


點按【關閉】按鈕後,應該就會出現「有新 Ubuntu 發行版 '12.10' 可供升級」以及【升級】,點按【升級】開始升級。

開始升級後,依照系統的指示進行升級即可,升級過程中,應會出現下列視窗。



參考資料:



2013年10月14日 星期一

[筆記]TansacetionAttribute值可用情境

TransactioAttribute是用來定義一個transaction的屬性,根據使用的方法不一樣,對應的可用屬性就不同。

方法
TransactionAttribute可以使用的值
message-driven bean's message listener methods
REQUIRED
NOT_SUPPORTED

EJB's timeout callback methodsREQUIRED
REQUIRED_NEW
NOT_SUPPORTED

EJB's asynchronous business methodsREQUIRED

singleton session bean's PostConstruct/PreDestroy lifecycle callbak interceptor methodsREQUIRED
REQUIRED_NEW
NOT_SUPPORTED

If a EJB implements the javax.ejb.SessionSynchronization interfaces or uses at least one of the session synchronization annotationsREQUIRED
REQUIRED_NEW
MADATORY


對於一個類別的方法所設定的transaction屬性,可以對於類別或該類別中處理商業邏輯的方法,或者兩者一起的方式來定義。

摘錄自EJB3.1 spec,p.359-360

2013年10月10日 星期四

[分享]如何在Thunderbird中設定icloud郵件 (@icloud.com)

今天開啟icloud控制面板,突然問要不要設定icloud mail,好奇的拜歐想都沒想,就直接輸入新帳號開始設定,新增完後,也會問要不要設定outlook,當然也好囉!

一切設定好後,寄了幾封測試信,也都能正常的寄、收信,很高興有了一個新的email可以用,但其他沒有outlook的電腦怎麼辦?當然就是用Thunderbird啊!google了一下,前面的網頁都是以@me.com的設定為主,拜歐的email是@icloud.com,試了一下,也都無法成功。

這時腦中閃了一下:「剛剛不是已經設定好outlook 了嗎?那就開了outlook的帳號設定來看就好啊!」

於是乎開始在Thunderbird中新增一組帳號:


在上面對話窗輸入帳號、密碼後,按下【Countinue】到下列對話窗,開始輸入IMAP和SMTP的設定,如下:


設定好後,按一下test,若出現下列訊息,就代表設定成功了。




2013年10月9日 星期三

[分享]馬雲史丹福大學談阿里巴巴與中國互聯網

       馬雲是拜歐非常欣賞的一位企業家,他的成就是一個原因,但最大的原因在於每每聽到他的演說,其中不少幽默巧妙地穿插,就會因為這纖瘦的身軀所散發出來的巨大能量而受到激勵、感動。



影片超連結:https://www.youtube.com/watch?feature=player_embedded&v=4QV1xjGfE2M

       以前遇過一個老闆常掛一句話:「錢能解決的問題,就不是問題」,是菜鳥時,覺得這句話很霸氣。

       但現在再看這句話:「公司的錢就像是國家的軍隊,不能輕易出動,但要出動一定就要贏。」,拜歐覺得創業者或公司領導,對於資金流向控管是不能小看,忽視其重要性的。

      才了解當時公司為何會虧錢,老闆為何會走人了。

      這場演說中令拜歐印象最深的一句是:「世界發生變化,如果你不自己採取一個小小的行動,這個變化跟你沒關係,如果你參加一點行動,你就可能是這個變化的受益者」,世界在變,人也不應該害怕改變;如果一直覺得生活不如所意地發展,更該採取行動做些改變,而非抱怨。

       這場演說中還有其他談論,是值得花時間細細咀嚼、體會的。

2013年10月8日 星期二

【筆記】在Eclipse中安裝GlassFish Server開發工具

若在本機開發EJB或以Java為主的動態網頁,使用GlassFish來做EJB容器或Web伺服器,其實是個不錯的選擇,不過,在Eclipse目前版本 (kepler) 中,GlassFish不是內建的伺服器,因此需要額外的動作來進行安裝。

這裡使用Juno版本來說明,安裝前請確認您的機器已經安裝GlassFish Server。


先點選File再點New,選擇Other...,如下圖:




然後在新開的對話視窗中最上方輸入框中輸入「server」,就是出現下列選項,點選Server


再來會出現一個設定新伺服器的對話窗,預設應該是找不到GlassFish Server的,這時先點選Download additional server adapters


這時Eclipse會幫忙找尋可供的伺服器,下拉找到GlassFish Tools後點按Next,開始安裝。


接受授權協定:


再來就真的開始下載並安裝,也需要重新啟動Eclipse,點按OK


下載完後,切換到Server視景 (view) 下,點按視景中的new server wizard藍字部份。


在新增伺服器的對話窗中,選擇對應到您安裝的GlassFish Server版本 (本例是以3.1為主),再來點按Next


Glassfish Server Directory中,選擇您電腦中GlassFish Server的安裝目錄,此例為:C:\glassfish3\glassfish,再來點按Next

請注意:若為若GlassFish Server為3.1版本,JDK版本要6.0以上,若為4.0,則JDK版本要7.0以上。


到設定的畫面時,若為本機開發或學習使用,則管理者密碼可以留白後,再點按Finish結束安裝。



安裝完成後,回到Server視景,就可以看到安裝完成的GlassFish Server,可以開始使用它來開裝或學習Java EE了。


2013年10月4日 星期五

[分享]修改Ubuntu 12.04內建scrollbar樣式

Ubuntu不知在那一版之後,介面有了大調整,而讓拜歐感到不便的就是視窗拉桿 (scrollbar) 會自動消失,常會找不到在那裡,像下圖中紅框那樣。


這時只要打開終端機視窗,在命令模式中輸入下列指令:

gsettings set org.gnome.desktop.interface ubuntu-overlay-scrollbars false

視窗拉桿就會變回比較熟悉的展現方式了。


若要改回來怎麼辦呢?就把上列指令最後一個參數改成true執行後再重新啟動即可,如下:

gsettings set org.gnome.desktop.interface ubuntu-overlay-scrollbars true

【分享】在Ubuntu(Linux)上安裝Wine以執行exe檔(Windows應用程式)

有很多的好用軟體,是Window應用程式,只有exe檔,要在Linux環境中使用,就需要加裝一個好用的免費軟體Wine,有了Wine,Linux、Mac、FreeBSD以及Solaris的使用者,就可執行Windows應用程式。

要下載安裝,請參考Wine的下載頁面,這裡拜歐使用Ubuntu作業系統,並用命令模式來安裝。
  1. 先加入Wine的ppa,打開終端機並輸入:sudo add-apt-repository ppa:ubuntu-wine/ppa
  2. 若中間有詢問一些操作,請都按「Enter」繼續。
  3. 再來在終端機中輸入:sudo apt-get update,以更新套件資訊。
  4. 最後,在終端機中輸入:sudo apt-get install wine1.7,開始安裝Wine。
安裝前,從Windows複製了Notepad++的免安裝版本,雙點exe檔,是無法執行的。



安裝後,可以在應用程式選單中,看到Wine:



上面的Notepad++軟的icon也可以看到變化:


雙點也可以開始執行使用了。



2013年10月3日 星期四

[筆記]用canvas來畫簡單的時鐘

這個超陽春的時鐘範例,只有秒針在跑,藉此說明canvas的api。

先在<body>區塊中加入一個canvas元素,以及一個div區塊,顯示時間:
您的瀏覽器不支援Canvas
然後加入下列javascript的程式碼:

最後在body onload時,呼叫相關的方法:
onload="init();startTime()"

這裡要注意的是ctx.rotate這個方法,用來控制秒針的角度,請參考API。 另外,秒指向的數字,和畫面顯示的時間會有一點落差,要準卻的話,可以直接把init方法中的初始狀態,直接寫到rotate方法中。 若要實現更美的時鐘,可以先放一張背景圖在canvas上。

2013年10月1日 星期二

[筆記]在Stateless Session Bean的方法中允許的操作

Bean方法
允許的操作
建構子
Dependency injection methods (setter methods).SessionContext:
getEJBHome,
getEJBLocalHome,
lookup.

JNDI Access: Available
PostConstruct, PreDestroy methods (lifecycle
callback methods).
SessionContext:
getBusinessObject,
getEJBHome,
getEJBLocalHome,
getEJBObject,
getEJBLocalObject,
lookup,
getContextData,
getTimerService,
getUserTransaction (BMT only)

JNDI Access: Available
EntityManagerFactory: Accessible
Business method from any view or business method interceptor methodSessionContext:
getBusinessObject,
getEJBHome,
getEJBLocalHome,
getCallerPrincipal,
isCallerInRole,
getEJBObject,
getEJBLocalObject,
lookup,
getContextData,
getInvokedBusinessInterface,
wasCancelCalled,
getTimerService,
getUserTransaction (BMT only)
getRollbackOnly (CMT only)
setRollbackOnly (CMT only)
JNDI Access: Available
Resource managers: Accessible
Other EJBs: Accessible
EntityManagerFactory: Accessible
EntityManager: Accessible
Timer and TimeService methods: Accessbile
UserTransaction methods: Accessible (BMT only)
Business methods from web service endpoint.SessionContext:
getBusinessObject,
getEJBHome,
getEJBLocalHome,
getCallerPrincipal,
isCallerInRole,
getEJBObject,
getEJBLocalObject,
lookup,
getContextData,
getTimerService,
getMessageContext,
getUserTransaction (BMT only),
getRollbackOnly (CMT only),
setRollbackOnly (CMT only).
MessageContext methods: Available
JNDI Access: Available
Resource managers: Accessible.
Other EJBs: Accessible.
EntityManagerFactory: Accessible.
EntityManager: Accessible.
Timer and TimerService methods: Accessible.
UserTransaction methods: Accessible (BMT only).
Timeout callback method.SessionContext:
getBusinessObject,
getEJBHome,
getEJBLocalHome,
getCallerPrincipal,
isCallerInRole,
getEJBObject,
getEJBLocalObject,
lookup,
getContextData,
getTimerService,
getUserTransaction (BMT only),
getRollbackOnly (CMT only),
setRollbackOnly (CMT only).
JNDI Access: Available
Resource managers: Accessible.
Other EJBs: Accessible.
EntityManagerFactory: Accessible.
EntityManager: Accessible.
Timer and TimerService methods: Accessible.
UserTransaction methods: Accessible (BMT only).

ps.

  1. BMT表Bean Managed Transaction
  2. CMT表Container Managed Transaction

若在@PostConstruct和@PreDestroy中進行下列操作,則IllegalStateException會被丟出
呼叫對象
方法名稱
SesssionContext methodsSecurity related:
getCallerPrincipal,
isCallerInRole.
Transaction related:
getRollbackOnly,
setRollbackOnly
Asynchronous related methodswasCancelCalled
Client related SessionConext methodsgetInvokedBusinessInterface
TimerService and TimerAll methods

節錄自:http://www.slideshare.net/krizsan/ocp-jbcd-6-study-notes,p.47