方便機器處理的日期時間類別 java.time.Instant; java.time.Duration.
方便人類閱讀的日期時間類別: java.time.LocalDate, java.time.LocalTime, java.time.LocalDateTime; java.time.Period
2017年9月16日 星期六
2017年6月17日 星期六
2017年6月10日 星期六
EJB 3.1 Embeddable API + Junit 技術心得整理
簡介
在 Junit 中使用 Embedded GlassFish Server 做爲 EJB 元件的測試環境。The EJB 3.1 Embeddable API is designed for unit testing of EJB modules.參考範例 Using the Embedded EJB Container to Test Enterprise Applications (https://netbeans.org/kb/docs/javaee/javaee-entapp-junit.html?print=yes)
2017年5月14日 星期日
Netbeans 中 pull 特定的 remote branch
要 pull 特定的 remote branch 到本地端:
1. (M)Teams > Pull > Remote...
2. 選擇 Git Repository Location
3. 選擇要 pull 的 remote branch
4. OK.
1. (M)Teams > Pull > Remote...
2. 選擇 Git Repository Location
4. OK.
2017年4月28日 星期五
melt() 使用時 measure variable 的型態要一致
使用 melt() 來 reshape 資料時, measure variable 的型態要一致,否則會出現警告。
例如有以下的資料:
資料中,subject 欄位為 factor。若使用 subject 為 id.var 進行 melt,則會出現以下警告訊息:
因為,第一個欄位為 Factor 型態,melt() 把後面其他的欄位也視為 Factor,造成轉換時的錯誤。
Reference:
[1] thiagogm, 2013. Reshape and aggregate data with the R package reshape2, www.r-bloggers.com.
例如有以下的資料:
資料中,subject 欄位為 factor。若使用 subject 為 id.var 進行 melt,則會出現以下警告訊息:
因為,第一個欄位為 Factor 型態,melt() 把後面其他的欄位也視為 Factor,造成轉換時的錯誤。
Reference:
[1] thiagogm, 2013. Reshape and aggregate data with the R package reshape2, www.r-bloggers.com.
2017年4月27日 星期四
ui:debug 和 flash.keep 的衝突
若在 facelet 中使用 ui:debug,則在同一個 facelet 中使用 flash.keep 時無法正常顯示 flash scope 中的變數。
測試資料
References:
[1] ui:debug
[2] Flash class
測試資料
References:
[1] ui:debug
[2] Flash class
2017年4月15日 星期六
Expectation-Maximization (EM) Algorithm 介紹
演算法,用來計算混合模型(Mixture Model)下的 Maximum Likelyhood 估計。
混合模型(Mixture Model):
觀察到的資料點(Data Point) 來自於兩個分配(Distribution), 哪些資料點是屬於那個分配呢?
Youtube 影片介紹
EM Algorithm: How it works (1) by Victor Lavrenco
EM Algorithm: How it words (2) by Victor Lavrenco
2017年3月29日 星期三
心得整理 - 文字探勘者的入門心法.
文字探勘(Text mining) 是由人類文字中找出知識的研究。其過程,先對需進行文字處理,將人類自然語言文字和機器文字(如 HTML 標籤)分離。之後,在應用 Data Mining 的技術,找出文字間的關係或者分群等,以找出文字背後所代表的群眾知識[1]。
一、研究範疇
文字探勘的研究主題可依人類產生文字的過程進行區分。文字是人類對於客觀世界現象的主觀描述。在文字探勘的第一個主題是找出自然語言的知識,內容包括:
- 自然語言處理(Natural Language Processing): 將人類自然語言轉化為電腦更易於處理的形式,如詞性分析、句法分析、語義分析等。
- Text Representation: 利用數字表示沒有結構化的文字,以利後續數學處理。
- 文字關聯及探勘(Word association and Mining): 找出具有相同用途的文字,也稱為 Paradigmatic Analysis;或者找出文字間不同的組合的方式,也稱為 Syntagmatic Analysis。
- Topic Mining: 在了解字與字之間的關係後,找出主觀描述者在討論的話題(Topic)。
- Concept Mining: 試著找出文字中的抽象想象(abstract idea)或稱概念,此概念是大家都知道的概念,雖然所有的字彙不同,但描述的都是相同的概念。如自然語言中的同義字或者片語,be completely dead = be as dead as doornail。
文字探勘的第二個主題是找出主觀描述者背後的知識,試著分析出描述者的主觀意見(Opinions)。 這個主題稱為 Opinion Mining, 從文字中分析主觀描述者的意見或情緒, 如 positive/negative, happy/sad 等.
第三個主題是從主觀描述者所提供的文字, 分析出主觀描述者所處客觀環境中發生的情境資料, 如地點、事件、描述者的人際網絡等, 此主題稱之為 Contextual Text Mining。
二、方法整理
2017年3月17日 星期五
在 RStudio 啟動時自動執行語系切換 指令
問題
在資料中有中文字,每次進 RStudio 時都要手動執行 Sys.setlocale(category="LC_ALL", locale = "cht") 將語系改成 CP-950。做法
在專案目錄下新增一個 .Rprofile 的檔案,加入 Sys.setlocale(category="LC_ALL", locale = "cht") 指令。如此,在開啟專案時便會自動執行 .Rprofile 內的指令[1]。參考資料
[1] Josh Paulson, 2017/1/22, Using Projects, https://support.rstudio.com/hc/en-us/articles/200526207-Using-Projects, Accessed on 2017/3/182017年2月23日 星期四
如何對 Datatable 上的某一個資料列進行編輯? - 使用 p:dataTable 元件
原理:
1. 利用 p:dataTable 中的 selection 屬性取得目前選擇的物件. selection 屬性要和 Managed Bean 的 property 綁在一起.
2. 設計一個 UI 提供使用者輸入新的資料. 這個 UI 可以是 Dialog, 也可以是 Page. 此 UI 的輸入元件會取得先前 Managed Bean Property 的資料並何其繫結在一起.
3. 在 Managed Bean 提供一個方法, 例如 saveDB(), 呼叫 EJB 的方法, 將修改後的資料儲存到資料庫中.
2017年2月7日 星期二
Defining relative clause 和 non-defining relative clause 間的用途差別
Defining relative clause 和 non-defining relative clause 間的使用方式有什麼不同呢?
參考此 youtube
My brother, who is a policeman, lives in New York.
我只有一個哥哥,現在住在 New York. 使用 non-defining relative clause, 因為不用特別限定我所要描述的規格。
My brother who is a policeman lives in New York.
我有兩個哥哥,當警察的那個現在住在 New York。使用 defining relative clause 限定我所要描述的其中一個哥哥。
來個 Quiz:
5 things about non-defining relative clauses
2017年1月30日 星期一
將 JSF Composite Component 包裝成 jar 檔供其他 Web 專案使用
1.技術問題
JSF 的 composite component (複合元件) 的功能可以組合現有 UIComponent 成為新的、重複使用的元件。可以組合成的複合元件使用、驗證器、轉換器、JSF 系統事件、及 AJAX。 完成的複合元件會包含:- facelet: 檔案名稱為新的標籤的名稱,其內容定義標籤的屬性及組合現有的元件。
- java class: 支援此複合元件執行所需要的 java 程式碼。
h:outputLabel
, h:inputText
, h:commandButton
等三個元件,再加上一個驗證器成為新的元件專門用來輸入電子郵件。
當你完成複合元件時,你可以在現有 Web 專案的 facelet 中直接使用此元件的標籤。但是,如何將此複合元件變成一個獨立的程式庫供其他的 Web 專案使用呢?
2017年1月27日 星期五
h:inputxxx 標籤所支援的 ajax behavior event 有哪些?
技術問題:
jsf 提供 f:ajax 標籤讓元件具備 Ajax 處理的能力。f:ajax 的 event 屬性要指定與攔截的客戶端的事件[1]。若沒有指定,會使用預設的事件。
h:inputText, h:inputTextArea, h:inputSecret 標籤提供哪些 ajax 事件行為呢?
參考答案:
h:inputText, h:inputTextArea, h:inputSecret 三個標籤的元件皆是屬於 javax.faces.component.EditableValueHolder 類別的元件。這類的元件的預設 ajax 事件為 valueChange。詳細的事件如下:
2017年1月2日 星期一
如何在 Weblogic 中設定 Java DB 的 DataSource
技術問題:
已有一個 Java DB,其路徑為 D:\derby\TicketCareDB。如何在 Weblogic Server 下新增一個此 Java DB 的 Data Source,使得 Weblogic 啟動時自動啟動此 Java DB?
做法:
1. 開啟 Weblogic 的 Admin Console.
2. Navigate to (youDomain) Services > Data Sources > (B)New 新增一個 Generic Data Source
3. 設定相關的欄位,其中 Database Name 欄位要設定為 Java DB 的路徑(ie. D:\derby\TicketCareDB )
更多細節,請參考 [1].
Reference:
[1] https://blakboard.wordpress.com/2012/11/27/set-up-apache-derby-jdbc-data-source-in-oracle-weblogic-application-server/
已有一個 Java DB,其路徑為 D:\derby\TicketCareDB。如何在 Weblogic Server 下新增一個此 Java DB 的 Data Source,使得 Weblogic 啟動時自動啟動此 Java DB?
做法:
1. 開啟 Weblogic 的 Admin Console.
2. Navigate to (youDomain) Services > Data Sources > (B)New 新增一個 Generic Data Source
3. 設定相關的欄位,其中 Database Name 欄位要設定為 Java DB 的路徑(ie. D:\derby\TicketCareDB )
更多細節,請參考 [1].
Reference:
[1] https://blakboard.wordpress.com/2012/11/27/set-up-apache-derby-jdbc-data-source-in-oracle-weblogic-application-server/
PrimeFaces 處理 Ajax request 過程中所產生的 callbacks 及 events
在執行 Ajax Request 的前後, 我們可以有機會執行 Javascript 完成瀏覽器上的操作。過程中的一連串的過程如下:
- User clicks button in client
onclick
JavaScript code is executed- JavaScript prepares ajax request based on
process
and current HTML DOM tree onstart
JavaScript code is executed- JavaScript sends ajax request from client to server
- JSF retrieves ajax request
- JSF processes the request lifecycle on JSF component tree based on
process
actionListener
JSF backing bean method is executedaction
JSF backing bean method is executed- JSF prepares ajax response based on
update
and current JSF component tree - JSF sends ajax response from server to client
- JavaScript retrieves ajax response
- if HTTP response status is 200,
onsuccess
JavaScript code is executed - else if HTTP response status is 500,
onerror
JavaScript code is executed
- if HTTP response status is 200,
- JavaScript performs
update
based on ajax response and current HTML DOM tree oncomplete
JavaScript code is executed
References: http://stackoverflow.com/a/20146879
訂閱:
文章 (Atom)