<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-533851895599489746</id><updated>2024-08-28T05:16:02.714-07:00</updated><category term="jsf"/><category term="Oracle EBS"/><category term="英文"/><category term="java"/><category term="oracle forms"/><category term="EPCIS"/><category term="Oracle Apex"/><category term="R-Language"/><category term="Servlet"/><category term="Swing"/><category term="plsql"/><category term="wordpress"/><category term="JSP"/><category term="Netbeans"/><category term="WebSphere Application Server"/><category term="primefaces"/><category term="工作管理"/><category term="EJB"/><category term="Git"/><category term="SQL Developer"/><category term="bootstrap"/><category term="data-mining"/><category term="weblogic"/><category term="微積分"/><category term="AdWord"/><category term="Bitbucket"/><category term="Business Process Modelling"/><category term="Glassfish Server"/><category term="IBM"/><category term="OfficeUtilities"/><category term="Online forms"/><category term="Oracle Database"/><category term="agile"/><category term="code beautifier"/><category term="facebook"/><category term="google analytics"/><category term="jdapi"/><category term="linux"/><category term="regexp"/><category term="seo adwords"/><category term="struts2"/><category term="ubuntu"/><category term="vscode"/><category term="word"/><category term="其它"/><title type='text'>Steven 的 IT 學習旅程</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>198</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-8774276399993331806</id><published>2020-01-01T01:58:00.004-08:00</published><updated>2020-01-01T01:58:55.140-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle EBS"/><title type='text'>Oracle EBS OM App,  Ship Confirm 後, line 無法 Close</title><content type='html'>解法參考:&lt;a href=&quot;https://hackmd.io/@hV1L1a_XTkuG4wgi6OH3lw/Bkilqk9yU&quot;&gt; Ship Confirm 後, line 無法 Close&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/8774276399993331806/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/8774276399993331806' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/8774276399993331806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/8774276399993331806'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2020/01/oracle-ebs-om-app-ship-confirm-line.html' title='Oracle EBS OM App,  Ship Confirm 後, line 無法 Close'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-7417876497874719481</id><published>2018-11-14T18:34:00.002-08:00</published><updated>2018-11-14T18:34:53.275-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jsf"/><title type='text'>JSF 轉換器及驗證器介紹</title><content type='html'>介紹如何使用 JSF 的轉換器及驗證器, 顯示並驗證表單的資料. 此外, 也介紹如何停用(disable)及繞過(pass by)驗證器轉跳其他頁面&lt;br /&gt;
&lt;br /&gt;
全文:&amp;nbsp;&lt;a href=&quot;https://hychen39.github.io/jsf_teaching/2018/11/15/JSF_Unit08.html&quot;&gt;https://hychen39.github.io/jsf_teaching/2018/11/15/JSF_Unit08.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/7417876497874719481/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/7417876497874719481' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/7417876497874719481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/7417876497874719481'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2018/11/jsf.html' title='JSF 轉換器及驗證器介紹'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-6478023614562690199</id><published>2018-10-31T01:00:00.005-07:00</published><updated>2018-10-31T01:00:33.024-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jsf"/><title type='text'> 頁面樣板(JSF Templates)</title><content type='html'>介紹如何使用 JSF 樣板製作頁面, 使得每個頁面可以有相同的頁首, 頁尾或共同的顯示外觀。&lt;br /&gt;
&lt;br /&gt;
全文參考:&lt;a href=&quot;https://hychen39.github.io/jsf_teaching/2018/10/31/JSF_Unit07.html&quot; target=&quot;_blank&quot;&gt;&amp;nbsp;https://hychen39.github.io/jsf_teaching/2018/10/31/JSF_Unit07.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/6478023614562690199/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/6478023614562690199' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/6478023614562690199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/6478023614562690199'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2018/10/jsf-templates.html' title=' 頁面樣板(JSF Templates)'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-848994866408826252</id><published>2018-10-23T06:24:00.004-07:00</published><updated>2018-10-23T06:24:34.749-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Apex"/><title type='text'>Show the message generated from the PL/SQL process</title><content type='html'>We need to show the messages from the PL/SQL process (back-end) to the user (front-end) very often.&lt;br /&gt;
&lt;br /&gt;
One way is to use the global variable APEX_APPLICATION.G_PRINT_SUCCESS_MESSAGE. The Apex will shows the message in the upper right corner with the green box. The method is suitable for showing information that doesn’t need the user to interact with.&lt;br /&gt;
&lt;br /&gt;
The second way is to use APEX_ERROR.ADD_ERROR procedure to add the message to the error stack. When loading the page, the Apex will show these messages. We can specify the locations of showing the messages either on the upper right corner or associate with pages items or event an error page. However, the APEX_ERROR.ADD_ERROR procedure will interrupt the request processing process such that the codes after the APEX_ERROR.ADD_ERROR will not be executed. The method is appropriate for the form validation.&lt;br /&gt;
&lt;br /&gt;
This article presents another way to show the message from the PL/SQL process. We use the Application Item to store the message from the PL/SQL process. There is a Application Process executing on the page loading to show the message in the Application Item using the JS functions in the apex.message namespace.&lt;br /&gt;
&lt;br /&gt;
See the full article:&amp;nbsp;&lt;a href=&quot;https://hychen39.github.io/oracle_apex/2018/10/17/apex_messages_app_item.html&quot;&gt;https://hychen39.github.io/oracle_apex/2018/10/17/apex_messages_app_item.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/848994866408826252/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/848994866408826252' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/848994866408826252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/848994866408826252'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2018/10/show-message-generated-from-plsql.html' title='Show the message generated from the PL/SQL process'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-1118019210962888065</id><published>2018-10-05T18:48:00.001-07:00</published><updated>2018-10-05T18:48:06.237-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Apex"/><title type='text'>Enhance orclapex maven plugin to use NaturalDocs 2.x to generate pl/sql API documents.</title><content type='html'>Use the orclapex maven plugin with the NaturalDocs 2.x to generate pl/sql API document.&lt;br /&gt;
&lt;br /&gt;
See&amp;nbsp;&lt;a href=&quot;https://github.com/hychen39/orclapex-maven-plugin/blob/master/README-1.0.4.md&quot;&gt;https://github.com/hychen39/orclapex-maven-plugin/blob/master/README-1.0.4.md&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw3mJnsdxmPEmHJ166-uT6OnmHJXTWr4xllZr725-s66Ilihv5g_3eYBHb5JqBhAFgHQNyU1ug8muMY-fcJ-lUvFYQ9X7cWryTiKwdDQnrKcqqxcXNflGs_ZuYbYgqLoNqXmS-TvyliYne/s1600/2018-10-06_9-46-46.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;345&quot; data-original-width=&quot;952&quot; height=&quot;115&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw3mJnsdxmPEmHJ166-uT6OnmHJXTWr4xllZr725-s66Ilihv5g_3eYBHb5JqBhAFgHQNyU1ug8muMY-fcJ-lUvFYQ9X7cWryTiKwdDQnrKcqqxcXNflGs_ZuYbYgqLoNqXmS-TvyliYne/s320/2018-10-06_9-46-46.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/1118019210962888065/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/1118019210962888065' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/1118019210962888065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/1118019210962888065'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2018/10/enhance-orclapex-maven-plugin-to-use.html' title='Enhance orclapex maven plugin to use NaturalDocs 2.x to generate pl/sql API documents.'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw3mJnsdxmPEmHJ166-uT6OnmHJXTWr4xllZr725-s66Ilihv5g_3eYBHb5JqBhAFgHQNyU1ug8muMY-fcJ-lUvFYQ9X7cWryTiKwdDQnrKcqqxcXNflGs_ZuYbYgqLoNqXmS-TvyliYne/s72-c/2018-10-06_9-46-46.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-8976489242939134942</id><published>2018-09-29T19:27:00.001-07:00</published><updated>2018-09-29T19:27:22.551-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Apex"/><title type='text'>使用 Maven 匯出 Apex Application file 到本地端電腦</title><content type='html'>Export Oracle Apex Application from remote to local computers using Maven&lt;br /&gt;
&lt;br /&gt;
Abstract&lt;br /&gt;
Oracle Apex application needs to be exported as a sql file from the Workspace in order to deploy to another workspace. Other than exporting manually, this article introduces an automatic way to export the Apex file and copy it to the local computer by using Maven. The automation enables automated build and release process.&lt;br /&gt;
&lt;br /&gt;
Full article:&lt;br /&gt;
&lt;a href=&quot;https://hychen39.github.io/oracl_apex/2018/08/29/export_apex_app_maven.html&quot;&gt;https://hychen39.github.io/oracl_apex/2018/08/29/export_apex_app_maven.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/8976489242939134942/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/8976489242939134942' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/8976489242939134942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/8976489242939134942'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2018/09/maven-apex-application-file.html' title='使用 Maven 匯出 Apex Application file 到本地端電腦'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-2885010387209153550</id><published>2018-09-21T23:46:00.000-07:00</published><updated>2018-09-21T23:46:36.628-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="OfficeUtilities"/><title type='text'>PDF Utilities</title><content type='html'>Here two utilities that let us merge pdf files and add page numbers to the merged file. And, the best part is that we don&#39;t need the Acrobat to do that.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://pdfsam.org/&quot; target=&quot;_blank&quot;&gt;PDFSAM&lt;/a&gt;: Merge multiple pdf files&lt;br /&gt;
&lt;a href=&quot;http://www.a-pdf.com/number/&quot; target=&quot;_blank&quot;&gt;A PDF Number&lt;/a&gt;: Add page numbers to your pdf file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/2885010387209153550/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/2885010387209153550' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/2885010387209153550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/2885010387209153550'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2018/09/pdf-utilities.html' title='PDF Utilities'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-9071798107379063673</id><published>2018-09-11T21:29:00.001-07:00</published><updated>2018-09-11T21:29:06.163-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Apex"/><title type='text'>在 Apex 由後端程式顯示自訂訊息</title><content type='html'>全文參考 :&amp;nbsp;&lt;a href=&quot;https://hychen39.github.io/oracle_apex/2018/08/29/apex_messages.html&quot;&gt;https://hychen39.github.io/oracle_apex/2018/08/29/apex_messages.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/9071798107379063673/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/9071798107379063673' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/9071798107379063673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/9071798107379063673'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2018/09/apex.html' title='在 Apex 由後端程式顯示自訂訊息'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-9075720173466001851</id><published>2018-08-23T22:53:00.003-07:00</published><updated>2018-08-23T22:53:28.751-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Apex"/><title type='text'>Oracle ORDS  404 Not Found Trouble Shooting</title><content type='html'>整理解決 安裝 Oracle&amp;nbsp; ORDS&amp;nbsp; 做為 Oracle Apex 的 Listener 時產生的 404 Not Found 的步驟.&lt;br /&gt;
&lt;br /&gt;
全文參考:&amp;nbsp;&lt;a href=&quot;https://hychen39.github.io/oracle_apex/2018/08/24/ords_404_trouble_shooting.html&quot;&gt;https://hychen39.github.io/oracle_apex/2018/08/24/ords_404_trouble_shooting.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/9075720173466001851/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/9075720173466001851' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/9075720173466001851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/9075720173466001851'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2018/08/oracle-ords-404-not-found-trouble.html' title='Oracle ORDS  404 Not Found Trouble Shooting'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-2006031186838239952</id><published>2018-08-09T18:34:00.000-07:00</published><updated>2018-08-09T18:41:02.483-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Apex"/><title type='text'>使用 Maven 自動部署 Natural Doc 編譯完成的 api document 到指定的 Web Server</title><content type='html'>全文請參考:&amp;nbsp;&lt;a href=&quot;https://github.com/hychen39/tech-doc/blob/master/oracle-apex-ying-yong-cheng-shi-kai-fa/us83_maven_deploy_api_doc_.md&quot;&gt;https://github.com/hychen39/tech-doc/blob/master/oracle-apex-ying-yong-cheng-shi-kai-fa/us83_maven_deploy_api_doc_.md&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/2006031186838239952/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/2006031186838239952' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/2006031186838239952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/2006031186838239952'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2018/08/maven-natural-doc-api-document-web.html' title='使用 Maven 自動部署 Natural Doc 編譯完成的 api document 到指定的 Web Server'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-8234589590820924441</id><published>2018-08-02T07:36:00.003-07:00</published><updated>2018-08-02T07:36:38.678-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jsf"/><title type='text'>建立 Maven 專案開發 JSF 應用程式</title><content type='html'>使用 Netbeans, 建立一個 Maven 專案, 開發 JSF 應用程式.&lt;br /&gt;
&lt;br /&gt;
文章請參考: &lt;a href=&quot;https://hychen39.gitbook.io/tech-notes/javaserver-faces/maven_jsf_project_&quot;&gt;https://hychen39.gitbook.io/tech-notes/javaserver-faces/maven_jsf_project_&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/8234589590820924441/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/8234589590820924441' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/8234589590820924441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/8234589590820924441'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2018/08/maven-jsf.html' title='建立 Maven 專案開發 JSF 應用程式'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-3141566084795363133</id><published>2018-06-21T17:16:00.000-07:00</published><updated>2018-06-21T17:16:22.279-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="vscode"/><title type='text'>解決 Markdown Preview Enhanced 產生的 HTML 文件中 side toc 不見的方法</title><content type='html'>&lt;br /&gt;
VSCode 的 Markdown Preview Enhanced plugin 可以將 Markdown 文件轉成 HTML 文件. 在生成的 HTML 文件中左邊會有目錄做為導覽.&lt;br /&gt;
&lt;br /&gt;
但是如果 &lt;code&gt; markdown-preview-enhanced.enableScriptExecution &lt;/code&gt; 的設定沒有設為 ture, 則&lt;br /&gt;
- 生成的 HTML 中沒有左邊導覽&lt;br /&gt;
- 在 VSCode preview 時, 無法看見 CSS 的效果&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpaHn0C2Cymq6PJdOLMvi78VLefA2u0N5NkmOk9agwPLXDFlyT0JXnA28wzvhe1U9e_xk_vXHP5b91D6UGhBIZqJqmleulAwbgWRxu-0RtYGWm_VUDtyCVx_nW8NESMQQspKN1xOeE4F9_/s1600/2018-06-22_8-13-12.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;314&quot; data-original-width=&quot;744&quot; height=&quot;168&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpaHn0C2Cymq6PJdOLMvi78VLefA2u0N5NkmOk9agwPLXDFlyT0JXnA28wzvhe1U9e_xk_vXHP5b91D6UGhBIZqJqmleulAwbgWRxu-0RtYGWm_VUDtyCVx_nW8NESMQQspKN1xOeE4F9_/s400/2018-06-22_8-13-12.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
把&lt;code&gt; markdown-preview-enhanced.enableScriptExecution &lt;/code&gt; 設為 true 就可以解決此問題.
</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/3141566084795363133/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/3141566084795363133' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/3141566084795363133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/3141566084795363133'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2018/06/markdown-preview-enhanced-html-side-toc.html' title='解決 Markdown Preview Enhanced 產生的 HTML 文件中 side toc 不見的方法'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpaHn0C2Cymq6PJdOLMvi78VLefA2u0N5NkmOk9agwPLXDFlyT0JXnA28wzvhe1U9e_xk_vXHP5b91D6UGhBIZqJqmleulAwbgWRxu-0RtYGWm_VUDtyCVx_nW8NESMQQspKN1xOeE4F9_/s72-c/2018-06-22_8-13-12.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-4766121925323598777</id><published>2018-04-24T20:58:00.000-07:00</published><updated>2018-04-24T20:58:08.756-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jsf"/><title type='text'>在 f:param facelet 中使用 flash scoped value 產生 Null Pointer Exception 的 Workaround 方法.</title><content type='html'>參考: &lt;a href=&quot;https://hychen39.gitbooks.io/tech_notes/content/jsf/flash_scope_param.html&quot;&gt;https://hychen39.gitbooks.io/tech_notes/content/jsf/flash_scope_param.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/4766121925323598777/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/4766121925323598777' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/4766121925323598777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/4766121925323598777'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2018/04/fparam-facelet-flash-scoped-value-null.html' title='在 f:param facelet 中使用 flash scoped value 產生 Null Pointer Exception 的 Workaround 方法.'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-4768948286314912215</id><published>2018-01-19T21:37:00.000-08:00</published><updated>2018-01-19T21:44:02.238-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><title type='text'>使用 awk 來抽離 csv 檔案中的部分欄位</title><content type='html'>&lt;html&gt;
    &lt;head&gt;
      &lt;title&gt;misc_technique&lt;/title&gt;
      
      
      
      &lt;link href=&quot;file:///C:\Users\user\.vscode\extensions\shd101wyy.markdown-preview-enhanced-0.3.2\node_modules\@shd101wyy\mume\dependencies\katex\katex.min.css&quot; rel=&quot;stylesheet&quot;&gt;&lt;/link&gt;
      
      
      
      
      
      
      
      
      

      &lt;style&gt; 
      /**
 * prism.js Github theme based on GitHub&#39;s theme.
 * @author Sam Clarke
 */
code[class*=&quot;language-&quot;],
pre[class*=&quot;language-&quot;] {
  color: #333;
  background: none;
  font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
  line-height: 1.4;

  -moz-tab-size: 8;
  -o-tab-size: 8;
  tab-size: 8;

  -webkit-hyphens: none;
  -moz-hyphens: none;
  -ms-hyphens: none;
  hyphens: none;
}

/* Code blocks */
pre[class*=&quot;language-&quot;] {
  padding: .8em;
  overflow: auto;
  /* border: 1px solid #ddd; */
  border-radius: 3px;
  /* background: #fff; */
  background: #f5f5f5;
}

/* Inline code */
:not(pre) &gt; code[class*=&quot;language-&quot;] {
  padding: .1em;
  border-radius: .3em;
  white-space: normal;
  background: #f5f5f5;
}

.token.comment,
.token.blockquote {
  color: #969896;
}

.token.cdata {
  color: #183691;
}

.token.doctype,
.token.punctuation,
.token.variable,
.token.macro.property {
  color: #333;
}

.token.operator,
.token.important,
.token.keyword,
.token.rule,
.token.builtin {
  color: #a71d5d;
}

.token.string,
.token.url,
.token.regex,
.token.attr-value {
  color: #183691;
}

.token.property,
.token.number,
.token.boolean,
.token.entity,
.token.atrule,
.token.constant,
.token.symbol,
.token.command,
.token.code {
  color: #0086b3;
}

.token.tag,
.token.selector,
.token.prolog {
  color: #63a35c;
}

.token.function,
.token.namespace,
.token.pseudo-element,
.token.class,
.token.class-name,
.token.pseudo-class,
.token.id,
.token.url-reference .token.variable,
.token.attr-name {
  color: #795da3;
}

.token.entity {
  cursor: help;
}

.token.title,
.token.title .token.punctuation {
  font-weight: bold;
  color: #1d3e81;
}

.token.list {
  color: #ed6a43;
}

.token.inserted {
  background-color: #eaffea;
  color: #55a532;
}

.token.deleted {
  background-color: #ffecec;
  color: #bd2c00;
}

.token.bold {
  font-weight: bold;
}

.token.italic {
  font-style: italic;
}


/* JSON */
.language-json .token.property {
  color: #183691;
}

.language-markup .token.tag .token.punctuation {
  color: #333;
}

/* CSS */
code.language-css,
.language-css .token.function {
  color: #0086b3;
}

/* YAML */
.language-yaml .token.atrule {
  color: #63a35c;
}

code.language-yaml {
  color: #183691;
}

/* Ruby */
.language-ruby .token.function {
  color: #333;
}

/* Markdown */
.language-markdown .token.url {
  color: #795da3;
}

/* Makefile */
.language-makefile .token.symbol {
  color: #795da3;
}

.language-makefile .token.variable {
  color: #183691;
}

.language-makefile .token.builtin {
  color: #0086b3;
}

/* Bash */
.language-bash .token.keyword {
  color: #0086b3;
}html body{font-family:&quot;Helvetica Neue&quot;,Helvetica,&quot;Segoe UI&quot;,Arial,freesans,sans-serif;font-size:16px;line-height:1.6;color:#333;background-color:#fff;overflow:initial;box-sizing:border-box;word-wrap:break-word}html body&gt;:first-child{margin-top:0}html body h1,html body h2,html body h3,html body h4,html body h5,html body h6{line-height:1.2;margin-top:1em;margin-bottom:16px;color:#000}html body h1{font-size:2.25em;font-weight:300;padding-bottom:.3em}html body h2{font-size:1.75em;font-weight:400;padding-bottom:.3em}html body h3{font-size:1.5em;font-weight:500}html body h4{font-size:1.25em;font-weight:600}html body h5{font-size:1.1em;font-weight:600}html body h6{font-size:1em;font-weight:600}html body h1,html body h2,html body h3,html body h4,html body h5{font-weight:600}html body h5{font-size:1em}html body h6{color:#5c5c5c}html body strong{color:#000}html body del{color:#5c5c5c}html body a:not([href]){color:inherit;text-decoration:none}html body a{color:#08c;text-decoration:none}html body a:hover{color:#00a3f5;text-decoration:none}html body img{max-width:100%}html body&gt;p{margin-top:0;margin-bottom:16px;word-wrap:break-word}html body&gt;ul,html body&gt;ol{margin-bottom:16px}html body ul,html body ol{padding-left:2em}html body ul.no-list,html body ol.no-list{padding:0;list-style-type:none}html body ul ul,html body ul ol,html body ol ol,html body ol ul{margin-top:0;margin-bottom:0}html body li{margin-bottom:0}html body li.task-list-item{list-style:none}html body li&gt;p{margin-top:0;margin-bottom:0}html body .task-list-item-checkbox{margin:0 .2em .25em -1.8em;vertical-align:middle}html body .task-list-item-checkbox:hover{cursor:pointer}html body blockquote{margin:16px 0;font-size:inherit;padding:0 15px;color:#5c5c5c;border-left:4px solid #d6d6d6}html body blockquote&gt;:first-child{margin-top:0}html body blockquote&gt;:last-child{margin-bottom:0}html body hr{height:4px;margin:32px 0;background-color:#d6d6d6;border:0 none}html body table{margin:10px 0 15px 0;border-collapse:collapse;border-spacing:0;display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all}html body table th{font-weight:bold;color:#000}html body table td,html body table th{border:1px solid #d6d6d6;padding:6px 13px}html body dl{padding:0}html body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:bold}html body dl dd{padding:0 16px;margin-bottom:16px}html body code{font-family:Menlo,Monaco,Consolas,&#39;Courier New&#39;,monospace;font-size:.85em !important;color:#000;background-color:#f0f0f0;border-radius:3px;padding:.2em 0}html body code::before,html body code::after{letter-spacing:-0.2em;content:&quot;\00a0&quot;}html body pre&gt;code{padding:0;margin:0;font-size:.85em !important;word-break:normal;white-space:pre;background:transparent;border:0}html body .highlight{margin-bottom:16px}html body .highlight pre,html body pre{padding:1em;overflow:auto;font-size:.85em !important;line-height:1.45;border:#d6d6d6;border-radius:3px}html body .highlight pre{margin-bottom:0;word-break:normal}html body pre code,html body pre tt{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}html body pre code:before,html body pre tt:before,html body pre code:after,html body pre tt:after{content:normal}html body p,html body blockquote,html body ul,html body ol,html body dl,html body pre{margin-top:0;margin-bottom:16px}html body kbd{color:#000;border:1px solid #d6d6d6;border-bottom:2px solid #c7c7c7;padding:2px 4px;background-color:#f0f0f0;border-radius:3px}@media print{html body{background-color:#fff}html body h1,html body h2,html body h3,html body h4,html body h5,html body h6{color:#000;page-break-after:avoid}html body blockquote{color:#5c5c5c}html body pre{page-break-inside:avoid}html body table{display:table}html body img{display:block;max-width:100%;max-height:100%}html body pre,html body code{word-wrap:break-word;white-space:pre}}.markdown-preview{width:100%;height:100%;box-sizing:border-box}.markdown-preview .pagebreak,.markdown-preview .newpage{page-break-before:always}.markdown-preview pre.line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}.markdown-preview pre.line-numbers&gt;code{position:relative}.markdown-preview pre.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:1em;font-size:100%;left:0;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.markdown-preview pre.line-numbers .line-numbers-rows&gt;span{pointer-events:none;display:block;counter-increment:linenumber}.markdown-preview pre.line-numbers .line-numbers-rows&gt;span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}.markdown-preview .mathjax-exps .MathJax_Display{text-align:center !important}.markdown-preview:not([for=&quot;preview&quot;]) .code-chunk .btn-group{display:none}.markdown-preview:not([for=&quot;preview&quot;]) .code-chunk .status{display:none}.markdown-preview:not([for=&quot;preview&quot;]) .code-chunk .output-div{margin-bottom:16px}.scrollbar-style::-webkit-scrollbar{width:8px}.scrollbar-style::-webkit-scrollbar-track{border-radius:10px;background-color:transparent}.scrollbar-style::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(150,150,150,0.66);border:4px solid rgba(150,150,150,0.66);background-clip:content-box}html body[for=&quot;html-export&quot;]:not([data-presentation-mode]){position:relative;width:100%;height:100%;top:0;left:0;margin:0;padding:0;overflow:auto}html body[for=&quot;html-export&quot;]:not([data-presentation-mode]) .markdown-preview{position:relative;top:0}@media screen and (min-width:914px){html body[for=&quot;html-export&quot;]:not([data-presentation-mode]) .markdown-preview{padding:2em calc(50% - 457px)}}@media screen and (max-width:914px){html body[for=&quot;html-export&quot;]:not([data-presentation-mode]) .markdown-preview{padding:2em}}@media screen and (max-width:450px){html body[for=&quot;html-export&quot;]:not([data-presentation-mode]) .markdown-preview{font-size:14px !important;padding:1em}}@media print{html body[for=&quot;html-export&quot;]:not([data-presentation-mode]) #sidebar-toc-btn{display:none}}html body[for=&quot;html-export&quot;]:not([data-presentation-mode]) #sidebar-toc-btn{position:fixed;bottom:8px;left:8px;font-size:28px;cursor:pointer;color:inherit;z-index:99;width:32px;text-align:center;opacity:.4}html body[for=&quot;html-export&quot;]:not([data-presentation-mode])[html-show-sidebar-toc] #sidebar-toc-btn{opacity:1}html body[for=&quot;html-export&quot;]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc{position:fixed;top:0;left:0;width:300px;height:100%;padding:32px 0 48px 0;font-size:14px;box-shadow:0 0 4px rgba(150,150,150,0.33);box-sizing:border-box;overflow:auto;background-color:inherit}html body[for=&quot;html-export&quot;]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar{width:8px}html body[for=&quot;html-export&quot;]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-track{border-radius:10px;background-color:transparent}html body[for=&quot;html-export&quot;]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(150,150,150,0.66);border:4px solid rgba(150,150,150,0.66);background-clip:content-box}html body[for=&quot;html-export&quot;]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc a{text-decoration:none}html body[for=&quot;html-export&quot;]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc ul{padding:0 1.6em;margin-top:.8em}html body[for=&quot;html-export&quot;]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc li{margin-bottom:.8em}html body[for=&quot;html-export&quot;]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc ul{list-style-type:none}html body[for=&quot;html-export&quot;]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{left:300px;width:calc(100% -  300px);padding:2em calc(50% - 457px -  150px);margin:0;box-sizing:border-box}@media screen and (max-width:1274px){html body[for=&quot;html-export&quot;]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{padding:2em}}@media screen and (max-width:450px){html body[for=&quot;html-export&quot;]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{width:100%}}html body[for=&quot;html-export&quot;]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .markdown-preview{left:50%;transform:translateX(-50%)}html body[for=&quot;html-export&quot;]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .md-sidebar-toc{display:none}
 
      &lt;/style&gt;
    &lt;/head&gt;
    &lt;body for=&quot;html-export&quot;&gt;
      &lt;div class=&quot;mume markdown-preview   &quot;&gt;
      
使用 awk 來抽離 csv 檔案中的部分欄位
&lt;pre class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;gawk&lt;/span&gt; -F, &lt;span class=&quot;token string&quot;&gt;&#39;{OFS=&quot;,&quot;} {print &lt;span class=&quot;token variable&quot;&gt;$1&lt;/span&gt;, &lt;span class=&quot;token variable&quot;&gt;$2&lt;/span&gt;}&#39;&lt;/span&gt; 4c-students.csv  &lt;span class=&quot;token operator&quot;&gt;&amp;gt;&lt;/span&gt; 4c-stud-import.csv
&lt;/pre&gt;
會將 4c-students.csv 中的第一及第二 column 抽離出來, 並以逗號作為分隔字元. OFS (Output File Separator) 是內建的變數, 設定輸出時使用的分隔字元.&lt;br /&gt;

參考:&lt;br /&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.gnu.org/software/gawk/manual/html_node/Output-Separators.html&quot;&gt;The GNU Awk User’s Guide: Output Separators&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://wanggen.myweb.hinet.net/ach3/ach3.html?MywebPageId=2018201516410941164#awk&quot;&gt;阿旺的 Linux 開竅手冊-sed &amp;amp; awk&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;md-sidebar-toc&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=533851895599489746#%E4%BD%BF%E7%94%A8-awk-%E4%BE%86%E6%8A%BD%E9%9B%A2-csv-%E6%AA%94%E6%A1%88%E4%B8%AD%E7%9A%84%E9%83%A8%E5%88%86%E6%AC%84%E4%BD%8D&quot;&gt;使用 awk 來抽離 csv 檔案中的部分欄位&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

    &lt;/body&gt;
    
    
    
    
    
    &lt;script&gt;
(function bindTaskListEvent() {
  var taskListItemCheckboxes = document.body.getElementsByClassName(&#39;task-list-item-checkbox&#39;)
  for (var i = 0; i &lt; taskListItemCheckboxes.length; i++) {
    var checkbox = taskListItemCheckboxes[i]
    var li = checkbox.parentElement
    if (li.tagName !== &#39;LI&#39;) li = li.parentElement
    if (li.tagName === &#39;LI&#39;) {
      li.classList.add(&#39;task-list-item&#39;)
    }
  }
}())    
&lt;/script&gt;
    
      
  &lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/4768948286314912215/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/4768948286314912215' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/4768948286314912215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/4768948286314912215'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2018/01/awk-csv.html' title='使用 awk 來抽離 csv 檔案中的部分欄位'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-5302703740466625913</id><published>2017-09-16T19:55:00.000-07:00</published><updated>2017-09-16T19:55:02.715-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="java"/><title type='text'>Java 8 的 Date 及 Time 的處理</title><content type='html'>方便機器處理的日期時間類別 java.time.Instant; java.time.Duration.
&lt;br /&gt;
&lt;br /&gt;
方便人類閱讀的日期時間類別: java.time.LocalDate, java.time.LocalTime, java.time.LocalDateTime; java.time.Period

&lt;script src=&quot;https://gist.github.com/hychen39/fb9107416aa08a474057949d5c08b2fa.js&quot;&gt;&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/5302703740466625913/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/5302703740466625913' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/5302703740466625913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/5302703740466625913'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2017/09/java-8-date-time.html' title='Java 8 的 Date 及 Time 的處理'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-7725888802551626422</id><published>2017-06-17T19:56:00.000-07:00</published><updated>2017-06-17T19:56:11.184-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bootstrap"/><category scheme="http://www.blogger.com/atom/ns#" term="primefaces"/><title type='text'>PrimeFaces p:calendar 元件套用 bootstrap form-control 樣式 </title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;技術問題&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
PrimeFaces &lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;的&lt;/span&gt;&lt;span lang=&quot;ZH-CN&quot;&gt; &lt;/span&gt;p:calendar &lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;套用&lt;/span&gt; bootstrap &lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;的&lt;/span&gt; .form-control &lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;是無法正確顯示。&lt;/span&gt;p:calendar &lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;的輸入外框會超出元件邊界外框，如下圖所示&lt;/span&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXC3gwjISbzvNrGkx4giMsv4Jw5cNPW0QcfyivB4adpkxUrHfdgGMiCyoWHE5VLp5jZnGX94bB_dVutmt2cV72CCTJA-yKMT-njw828JYvd4WqCgHKNEITA1b1zHXzE5L2Q4-ZkiPwB0_Q/s1600/F3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;255&quot; data-original-width=&quot;802&quot; height=&quot;101&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXC3gwjISbzvNrGkx4giMsv4Jw5cNPW0QcfyivB4adpkxUrHfdgGMiCyoWHE5VLp5jZnGX94bB_dVutmt2cV72CCTJA-yKMT-njw828JYvd4WqCgHKNEITA1b1zHXzE5L2Q4-ZkiPwB0_Q/s320/F3.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbeEvUhdaQj3hyphenhyphenOgIU3LDpWMnVQsW5qV5jyJb5SmZTkFV91-X2RNJ8pyogBAXnIu034oXufy2maLcumyA3uVaAzzdpggteCuovAcr1-EQLjUgXdCYlVzMacdev1ZnRJHucu_imuYGkyYv0/s1600/F1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;229&quot; data-original-width=&quot;815&quot; height=&quot;89&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbeEvUhdaQj3hyphenhyphenOgIU3LDpWMnVQsW5qV5jyJb5SmZTkFV91-X2RNJ8pyogBAXnIu034oXufy2maLcumyA3uVaAzzdpggteCuovAcr1-EQLjUgXdCYlVzMacdev1ZnRJHucu_imuYGkyYv0/s320/F1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;分析與解決&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;p:calendar&lt;/span&gt; &lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;被&lt;/span&gt; render &lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;的結果會產生&lt;/span&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;lt;span&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;lt;input type=&quot;text&quot; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;如果對&lt;/span&gt; &lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;p:calendar &lt;/span&gt;&lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;套用&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt; .form-control&lt;/span&gt;&lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;，其結果會如下所示，&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;.form-control &lt;/span&gt;&lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;被套用在&lt;/span&gt; &lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;lt;span&amp;gt; &lt;/span&gt;&lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;上，而不是&lt;/span&gt; &lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;lt;span&amp;gt;&lt;/span&gt; &lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;內的&lt;/span&gt; &lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;lt;input&amp;gt;&lt;/span&gt;&lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;。&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-TW&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;另外，&lt;/span&gt;&amp;lt;input&amp;gt; &lt;span lang=&quot;ZH-TW&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;的寬度不會自動響應，為固定寬度。&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTvcIMIysUG2VDKtFC2n46VaOgIg4Xu7YRaUXGi5TvCE_5Jw94sveN68SYDnWr-Et8DKCEDA_hLiI3E_AZ7Qt28Faq-_8fV7vVm5gG-OYGlRbD9dZItX7j1hRMW76CEyjk2Sfxxyqnwvui/s1600/F2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;166&quot; data-original-width=&quot;541&quot; height=&quot;98&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTvcIMIysUG2VDKtFC2n46VaOgIg4Xu7YRaUXGi5TvCE_5Jw94sveN68SYDnWr-Et8DKCEDA_hLiI3E_AZ7Qt28Faq-_8fV7vVm5gG-OYGlRbD9dZItX7j1hRMW76CEyjk2Sfxxyqnwvui/s320/F2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-TW&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-TW&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;解決方式&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
1. &lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;使用&lt;/span&gt; jQuery &lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;於&lt;/span&gt; Document Ready &lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;時套用&lt;/span&gt; &lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;.form-control &lt;/span&gt;&lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;到&lt;/span&gt; &lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;lt;span&amp;gt;&lt;/span&gt; &lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;內的&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt; &amp;lt;input&amp;gt;&lt;/span&gt; &lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;內。&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;$(function(){&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(&#39;.ui-calendar &amp;gt;
input&#39;).addClass(&#39;form-control&#39;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;});&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-TW&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;













&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
2. &lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;修改&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;
.ui-inputfield &lt;/span&gt;&lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;的&lt;/span&gt; width &lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-language: ZH-CN; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;屬性為&lt;/span&gt; 100%.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; line-height: 107%;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;成果&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXC3gwjISbzvNrGkx4giMsv4Jw5cNPW0QcfyivB4adpkxUrHfdgGMiCyoWHE5VLp5jZnGX94bB_dVutmt2cV72CCTJA-yKMT-njw828JYvd4WqCgHKNEITA1b1zHXzE5L2Q4-ZkiPwB0_Q/s1600/F3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;255&quot; data-original-width=&quot;802&quot; height=&quot;101&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXC3gwjISbzvNrGkx4giMsv4Jw5cNPW0QcfyivB4adpkxUrHfdgGMiCyoWHE5VLp5jZnGX94bB_dVutmt2cV72CCTJA-yKMT-njw828JYvd4WqCgHKNEITA1b1zHXzE5L2Q4-ZkiPwB0_Q/s320/F3.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;程式碼&lt;/span&gt;&lt;/div&gt;
&lt;script src=&quot;https://gist.github.com/hychen39/eea127de8bb5bf373de3702b1fe5380f.js&quot;&gt;&lt;/script&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;參考資料&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
[1]&amp;nbsp;Primefaces style is applied on &amp;lt;span&amp;gt; instead of &amp;lt;input&amp;gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
, https://stackoverflow.com/questions/16299635/primefaces-style-is-applied-on-span-instead-of-input&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-CN&quot; style=&quot;font-family: &amp;quot;simsun&amp;quot;; line-height: 107%;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/7725888802551626422/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/7725888802551626422' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/7725888802551626422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/7725888802551626422'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2017/06/primefaces-pcalendar-bootstrap-form.html' title='PrimeFaces p:calendar 元件套用 bootstrap form-control 樣式 '/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXC3gwjISbzvNrGkx4giMsv4Jw5cNPW0QcfyivB4adpkxUrHfdgGMiCyoWHE5VLp5jZnGX94bB_dVutmt2cV72CCTJA-yKMT-njw828JYvd4WqCgHKNEITA1b1zHXzE5L2Q4-ZkiPwB0_Q/s72-c/F3.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-7708258084693810481</id><published>2017-06-10T16:46:00.001-07:00</published><updated>2017-06-10T16:46:37.870-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="EJB"/><title type='text'>EJB 3.1 Embeddable API  + Junit 技術心得整理</title><content type='html'>&lt;h1&gt;
 簡介 &lt;/h1&gt;
在 Junit 中使用 Embedded GlassFish Server 做爲 EJB 元件的測試環境。The EJB 3.1 Embeddable API is designed for unit testing of EJB modules.&lt;br /&gt;
&lt;br /&gt;
參考範例 Using the Embedded EJB Container to Test Enterprise Applications (&lt;a href=&quot;https://netbeans.org/kb/docs/javaee/javaee-entapp-junit.html?print=yes&quot;&gt;https://netbeans.org/kb/docs/javaee/javaee-entapp-junit.html?print=yes&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;
 設定 &lt;/h1&gt;
&lt;h2&gt;
 預設行爲 &lt;/h2&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;Embedded EJB Container 會複製 Glassfish Domain 下的 domain.xml 做爲他的 Domain 設定.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;Embedded EJB Container 會在使用者目錄 下建立暫時的 domain, 例如: &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;C:/Users/user/AppData/Local/Temp/domain6466380673056850xml&lt;/span&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
 啓動設定 &lt;/h2&gt;
&amp;nbsp;Embedded EJB Container 啓動時，可進行設定以下的 Property [1]：&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;Installation location: Embedded EBJ Container 的安裝位置，預設為 GlassFish Server 的位置。&lt;/li&gt;
&lt;li&gt;&amp;nbsp;Instance location：Embedded EBJ Container instance 的安裝位置，依優先順序為： &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;glassfish.embedded.tmpdir&lt;/span&gt; system property value， &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;java.io.tmp&lt;/span&gt; system property value，&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;as-install/domains/domain1&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;configuration.file：使用的設定檔，預設為 &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;domain-dir/config/domain.xml&lt;/span&gt;。&lt;/li&gt;
&lt;li&gt;&amp;nbsp;Application Name：應用程式的名稱，會影響 EJB 元件的 JNDI 名稱。預設的 Application name 為 classes。類別的預設 JNDI 名稱為 &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;jndi:global/classes/[you_class_name]&lt;/span&gt;。若 Application Name 設爲 App，則類別的預設名稱為 &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;jndi:global/app/classes/[you_class_name]&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
as-install 是指 GlassFish Server 安裝的根目錄，内有 domains 及 lib 目錄。&lt;br /&gt;
domain-dir 是指 伺服器實體的根目錄，例如：&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt; C:\glassfish4\glassfish\domains&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
在 Log 檔的一開始會顯示 Embedded GlassFish Server 所使用的：installation location, configuration file. 也可以在 Log 檔中找到 EJB 元件的 JNDI 名稱。&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioSArkYSGIpAISNaXtTiGe7PXBtbiVPmDsHX9qtUy9LISkfLEUYDyS6gyfQl90M-b7IRPHkW8m8_Is8bFlfjs-pvyLCTPQAXI74yCHC7p4_qPaNYa1jMAC91pOFUYoLHw3p9UnDRQLmMf9/s1600/2017-06-11_7-41-45.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;136&quot; data-original-width=&quot;1435&quot; height=&quot;59&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioSArkYSGIpAISNaXtTiGe7PXBtbiVPmDsHX9qtUy9LISkfLEUYDyS6gyfQl90M-b7IRPHkW8m8_Is8bFlfjs-pvyLCTPQAXI74yCHC7p4_qPaNYa1jMAC91pOFUYoLHw3p9UnDRQLmMf9/s640/2017-06-11_7-41-45.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg473cv0HPYG0h3zYdtBUz04T4bvM5SD0Kzucic1v60hX2pVPdsRyvu7y3aLXKZsCy91se_LXoua-3jYAs6NlJTLfqMtRxOylQ5nSZ3Xso2GNYl-nHOPaytkJRu0bWz2c6GKAe9FTXeDXn-/s1600/2017-06-11_7-43-17.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;52&quot; data-original-width=&quot;1093&quot; height=&quot;28&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg473cv0HPYG0h3zYdtBUz04T4bvM5SD0Kzucic1v60hX2pVPdsRyvu7y3aLXKZsCy91se_LXoua-3jYAs6NlJTLfqMtRxOylQ5nSZ3Xso2GNYl-nHOPaytkJRu0bWz2c6GKAe9FTXeDXn-/s640/2017-06-11_7-43-17.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h2&gt;
 Resources 的設定 &lt;/h2&gt;
若要測試 Entity Bean，需手動啓動資料庫。&lt;br /&gt;
&lt;br /&gt;
和一般的 GlassFish Server 上的 Resources 設定相同。可使用 &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;glassfish-resources.xml&lt;/span&gt; 來設定。或者，到 Glassfish 的 Admin Console 設定 jdbc resources。&lt;br /&gt;
&lt;br /&gt;
若 Resources 未設定好，執行測試時會出現錯誤訊息:&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Jun 09, 2017 1:54:22 PM org.glassfish.deployment.admin.DeployCommand execute&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;SEVERE: Exception while preparing the app : Invalid resource : { ResourceInfo : (jndiName=java:app/jdbc/TicketClass__pm), (applicationName=classes) }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Invalid resource : { ResourceInfo : (jndiName=java:app/jdbc/TicketClass__pm), (applicationName=classes) }&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
如果確認 Resource 的設定無誤，但執行測試時仍然出現上述錯誤，試著重新部署應用程式，看是否能解決問題。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;
 延伸閲讀 &lt;/h1&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;Getting Started in Arquillian Guides, http://arquillian.org/guides/getting_started/.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;
 References &lt;/h1&gt;
[1] Oracle, 2011, EJB 3.1 Embeddable API Properties in Oracle GlassFish Server 3.1 Embedded Server Guide. &lt;a href=&quot;https://docs.oracle.com/cd/E18930_01/html/821-2424/gjlde.html&quot;&gt;https://docs.oracle.com/cd/E18930_01/html/821-2424/gjlde.html&lt;/a&gt;. Accessed on 2017/06/10.&lt;br /&gt;
[2] Oracle , 2013. GlassFish Server Open Source Edition Embedded Server Guide, Release 4.0. &lt;a href=&quot;http://www.emse.fr/~lalevee/ismin/eb/documents/glassfish-docs/embedded-server-guide.pdf&quot;&gt;http://www.emse.fr/~lalevee/ismin/eb/documents/glassfish-docs/embedded-server-guide.pdf&lt;/a&gt;. Accessed on &amp;nbsp;2017/06/10&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/7708258084693810481/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/7708258084693810481' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/7708258084693810481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/7708258084693810481'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2017/06/ejb-31-embeddable-api-junit.html' title='EJB 3.1 Embeddable API  + Junit 技術心得整理'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioSArkYSGIpAISNaXtTiGe7PXBtbiVPmDsHX9qtUy9LISkfLEUYDyS6gyfQl90M-b7IRPHkW8m8_Is8bFlfjs-pvyLCTPQAXI74yCHC7p4_qPaNYa1jMAC91pOFUYoLHw3p9UnDRQLmMf9/s72-c/2017-06-11_7-41-45.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-2211321120242928201</id><published>2017-05-14T21:46:00.002-07:00</published><updated>2017-05-14T21:46:37.534-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Git"/><category scheme="http://www.blogger.com/atom/ns#" term="Netbeans"/><title type='text'>Netbeans 中 pull 特定的 remote branch</title><content type='html'>要 pull 特定的 &amp;nbsp;remote branch 到本地端：&lt;br /&gt;
&lt;br /&gt;
1. (M)Teams &amp;gt; Pull &amp;gt; Remote...&lt;br /&gt;
2. 選擇 Git Repository Location&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigeObLLv4umntTKaRq71RrHd4b1u1r9-mRwUFLC-8ymCAsqcRTyrseDvwiIZyvKHI57vfVeonz1tYF6xcsGLr5i_GKZ5ha9uJXjN7kj_nHdcKzi1ibLd4S0TREhLmaSD7N1Vp53OXiN5Yw/s1600/2017-05-15_12-41-09.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;112&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigeObLLv4umntTKaRq71RrHd4b1u1r9-mRwUFLC-8ymCAsqcRTyrseDvwiIZyvKHI57vfVeonz1tYF6xcsGLr5i_GKZ5ha9uJXjN7kj_nHdcKzi1ibLd4S0TREhLmaSD7N1Vp53OXiN5Yw/s320/2017-05-15_12-41-09.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
3. 選擇要 pull 的 remote branch&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOjbYkPD4v5_pCPB6CXXxG5TJTq0Qv2SdNWaqEkOZaOunf3hafpJBpCYRuQz6oeEk3WC2_ancnzPjXLaPlvdWJ9r4UCN4eMNsUBwhjfKlbpYbfGsoIBVX3pKAKAWg8HipRtwW0KeSnrSWS/s1600/2017-05-15_12-42-26.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOjbYkPD4v5_pCPB6CXXxG5TJTq0Qv2SdNWaqEkOZaOunf3hafpJBpCYRuQz6oeEk3WC2_ancnzPjXLaPlvdWJ9r4UCN4eMNsUBwhjfKlbpYbfGsoIBVX3pKAKAWg8HipRtwW0KeSnrSWS/s320/2017-05-15_12-42-26.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
4. OK.&lt;br /&gt;
&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/2211321120242928201/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/2211321120242928201' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/2211321120242928201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/2211321120242928201'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2017/05/netbeans-pull-remote-branch.html' title='Netbeans 中 pull 特定的 remote branch'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigeObLLv4umntTKaRq71RrHd4b1u1r9-mRwUFLC-8ymCAsqcRTyrseDvwiIZyvKHI57vfVeonz1tYF6xcsGLr5i_GKZ5ha9uJXjN7kj_nHdcKzi1ibLd4S0TREhLmaSD7N1Vp53OXiN5Yw/s72-c/2017-05-15_12-41-09.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-5916115710293167232</id><published>2017-04-28T22:15:00.000-07:00</published><updated>2017-04-28T22:17:50.659-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="R-Language"/><title type='text'>melt() 使用時 measure variable 的型態要一致</title><content type='html'>使用 melt() 來 reshape 資料時， measure variable 的型態要一致，否則會出現警告。&lt;br /&gt;
&lt;br /&gt;
例如有以下的資料：&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/hychen39/7514240e3384233ead195d921a473c6b.js&quot;&gt;&lt;/script&gt;

&lt;br /&gt;
&lt;br /&gt;
資料中，subject 欄位為 factor。若使用 subject 為 id.var 進行 melt，則會出現以下警告訊息：&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp1SaFTA7HSV_UgdnywbaD5RuPvqNf3z739M7Z0zvCCO-_fGmxgvHfx-YbTuTR0bu6jrRGfSH9hmwYAut71FTOG8nzPZ48-i9gaGX8VIuAFB6kyPjMImf5g9o-b4QVkZ7SJ5Vo_C_vigIG/s1600/2017-04-29_13-15-54.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;98&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp1SaFTA7HSV_UgdnywbaD5RuPvqNf3z739M7Z0zvCCO-_fGmxgvHfx-YbTuTR0bu6jrRGfSH9hmwYAut71FTOG8nzPZ48-i9gaGX8VIuAFB6kyPjMImf5g9o-b4QVkZ7SJ5Vo_C_vigIG/s400/2017-04-29_13-15-54.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
因為，第一個欄位為 Factor 型態，melt() 把後面其他的欄位也視為 Factor，造成轉換時的錯誤。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reference:&lt;br /&gt;
[1]&amp;nbsp;thiagogm, 2013.&amp;nbsp;&lt;a href=&quot;https://www.r-bloggers.com/reshape-and-aggregate-data-with-the-r-package-reshape2/&quot; target=&quot;_blank&quot;&gt;Reshape and aggregate data with the R package reshape2&lt;/a&gt;,&amp;nbsp;www.r-bloggers.com.</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/5916115710293167232/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/5916115710293167232' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/5916115710293167232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/5916115710293167232'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2017/04/melt-measure-variable.html' title='melt() 使用時 measure variable 的型態要一致'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp1SaFTA7HSV_UgdnywbaD5RuPvqNf3z739M7Z0zvCCO-_fGmxgvHfx-YbTuTR0bu6jrRGfSH9hmwYAut71FTOG8nzPZ48-i9gaGX8VIuAFB6kyPjMImf5g9o-b4QVkZ7SJ5Vo_C_vigIG/s72-c/2017-04-29_13-15-54.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-5971035298087727389</id><published>2017-04-27T06:03:00.002-07:00</published><updated>2017-04-27T06:03:13.871-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jsf"/><title type='text'>ui:debug 和 flash.keep 的衝突</title><content type='html'>若在 facelet 中使用 ui:debug，則在同一個 facelet 中使用 flash.keep 時無法正常顯示 flash scope 中的變數。&lt;br /&gt;
&lt;br /&gt;
測試資料&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/hychen39/d677b2699747d7f847b2c639fc91757c.js&quot;&gt;&lt;/script&gt;

&lt;br /&gt;
References:&lt;br /&gt;
[1] &lt;a href=&quot;http://docs.oracle.com/javaee/6/javaserverfaces/2.0/docs/pdldocs/facelets/ui/debug.html&quot; target=&quot;_blank&quot;&gt;ui:debug&lt;/a&gt;&lt;br /&gt;
[2] &lt;a href=&quot;http://docs.oracle.com/javaee/6/api/javax/faces/context/Flash.html&quot; target=&quot;_blank&quot;&gt;Flash class&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/5971035298087727389/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/5971035298087727389' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/5971035298087727389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/5971035298087727389'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2017/04/uidebug-flashkeep.html' title='ui:debug 和 flash.keep 的衝突'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-6501443730633666920</id><published>2017-04-15T22:48:00.000-07:00</published><updated>2017-04-15T22:48:29.659-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="data-mining"/><title type='text'>Expectation-Maximization (EM) Algorithm 介紹</title><content type='html'>&lt;br /&gt;
演算法，用來計算混合模型(Mixture Model)下的 Maximum Likelyhood 估計。&lt;br /&gt;
&lt;br /&gt;
混合模型(Mixture Model):&lt;br /&gt;
觀察到的資料點(Data Point) 來自於兩個分配(Distribution), 哪些資料點是屬於那個分配呢？&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://i.ytimg.com/vi/XLKoTqGao7U/hqdefault.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://i.ytimg.com/vi/XLKoTqGao7U/hqdefault.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Youtube 影片介紹&lt;br /&gt;
&lt;a href=&quot;https://www.youtube.com/watch?v=REypj2sy_5U&quot; target=&quot;_blank&quot;&gt;EM Algorithm: How it works (1)&lt;/a&gt;&amp;nbsp;by Victor Lavrenco&lt;br /&gt;
&lt;a href=&quot;https://www.youtube.com/watch?v=iQoXFmbXRJA&quot; target=&quot;_blank&quot;&gt;EM Algorithm: How it words (2) &lt;/a&gt;by Victor Lavrenco</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/6501443730633666920/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/6501443730633666920' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/6501443730633666920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/6501443730633666920'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2017/04/expectation-maximization-em-algorithm.html' title='Expectation-Maximization (EM) Algorithm 介紹'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-1806810201852801262</id><published>2017-03-29T06:49:00.001-07:00</published><updated>2017-03-29T06:49:38.918-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="data-mining"/><title type='text'>心得整理 - 文字探勘者的入門心法.</title><content type='html'>&lt;br /&gt;
文字探勘(Text mining) 是由人類文字中找出知識的研究。其過程，先對需進行文字處理，將人類自然語言文字和機器文字(如 HTML 標籤)分離。之後，在應用 Data Mining 的技術，找出文字間的關係或者分群等，以找出文字背後所代表的群眾知識[1]。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
一、研究範疇&lt;br /&gt;
&lt;br /&gt;
文字探勘的研究主題可依人類產生文字的過程進行區分。文字是人類對於客觀世界現象的主觀描述。在文字探勘的第一個主題是找出自然語言的知識，內容包括：&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;自然語言處理(Natural Language Processing): 將人類自然語言轉化為電腦更易於處理的形式，如詞性分析、句法分析、語義分析等。&lt;/li&gt;
&lt;li&gt;Text Representation: 利用數字表示沒有結構化的文字，以利後續數學處理。&lt;/li&gt;
&lt;li&gt;文字關聯及探勘(Word association and &amp;nbsp;Mining): 找出具有相同用途的文字，也稱為 Paradigmatic Analysis；或者找出文字間不同的組合的方式，也稱為 Syntagmatic Analysis。&lt;/li&gt;
&lt;li&gt;&amp;nbsp;Topic Mining: 在了解字與字之間的關係後，找出主觀描述者在討論的話題(Topic)。&lt;/li&gt;
&lt;li&gt;&amp;nbsp;Concept Mining: 試著找出文字中的抽象想象(abstract idea)或稱概念，此概念是大家都知道的概念，雖然所有的字彙不同，但描述的都是相同的概念。如自然語言中的同義字或者片語，be completely dead = be as dead as doornail。&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
文字探勘的第二個主題是找出主觀描述者背後的知識，試著分析出描述者的主觀意見(Opinions)。 這個主題稱為 Opinion Mining, 從文字中分析主觀描述者的意見或情緒, 如 positive/negative, happy/sad 等.&lt;br /&gt;
&lt;br /&gt;
第三個主題是從主觀描述者所提供的文字, 分析出主觀描述者所處客觀環境中發生的情境資料, 如地點、事件、描述者的人際網絡等, 此主題稱之為 Contextual Text Mining。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
二、方法整理&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
Word association and Mining 的方法有:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;Vector Space Model&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;Term Frequency and Inverse Document Frequency&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;Entropy and conditional Entropy&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Topic Mining 的方法有:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Bag-of-Words approach: 如 Latent Dirichlet Allocation&lt;/li&gt;
&lt;li&gt;Graph-based approach: 如 TextRank, Reinforcement Approach, CollabRank&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Option Mining 的方法請參考[4]。另外，也可以對文字特徵(Text Features)進行分類或者分群。文字特徵可以是 character n-grams, word n-grams, POS tag n-grams, word classes 或者 frequent patterns in text.&lt;br /&gt;
&lt;br /&gt;
Contextual Text Mining 的方法有:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;Naive Contextual Topic Model&lt;/li&gt;
&lt;li&gt;&amp;nbsp;Contextual Probability Laten Sematic Analysis&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
三、資料前處理&lt;br /&gt;
&lt;br /&gt;
進行文字探勘前必須將文字從原始來源中取出, 這些前處理的工作包括:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;資料收集(Data Collection): y依據研究目的取得原始資料的來源,如: Wikipedia, PTT 等.&lt;/li&gt;
&lt;li&gt;偵測使用的語言, 如果資料來源包含多語系。&lt;/li&gt;
&lt;li&gt;雜訊移除(Remove Noise): 將原始資料中沒有用的資料移除。例如, 移除 HTML 檔案中的標籤。&lt;/li&gt;
&lt;li&gt;資料清理(Data Clean): 移除來源中的非文字資料, 如 Unicode Emotions, Symbol Icon, Currency Symbol, URL 等。&lt;/li&gt;
&lt;li&gt;詞性標記(Part-Of-Speech Tagging): 為句子中的單字標記詞性,如: 主詞、動詞、名詞等。&lt;/li&gt;
&lt;li&gt;詞幹分析(Stemming Analysis): 找出單字的字根(Root), 例如: &amp;nbsp;&quot;fishing&quot;, &quot;fished&quot;, and &quot;fisher&quot; 縮減成 &quot;fish&quot; [5]. &amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;br /&gt;
四、課程相關資訊&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://datasci.tw/event/text_mining_170325/&quot; target=&quot;_blank&quot;&gt;「文字探勘者的入門心法」課程介紹&lt;/a&gt;, 講師: &lt;a href=&quot;http://www.cs.nthu.edu.tw/~yishin/&quot; target=&quot;_blank&quot;&gt;陳宜欣 (Yi-Shin Chen)&lt;/a&gt; 國立清華大學資訊工程系 / 副教授, 中央研究院人文社會科學館, 2017/3/25&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://hackpad.com/HXk2kX2kJ71&quot; target=&quot;_blank&quot;&gt;課程共筆(hackpak)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.slideshare.net/YiShinChen1/quick-tour-of-text-mining&quot; target=&quot;_blank&quot;&gt;課程投影片&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
五、限制&lt;br /&gt;
&lt;br /&gt;
能力有限，若有錯誤敬請提出更正。 &lt;br /&gt;
&lt;br /&gt;
Reference:&lt;br /&gt;
[1] https://www.slideshare.net/YiShinChen1/quick-tour-of-text-mining, accessed on 2017/3/29&lt;br /&gt;
[2] Text Representation https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-39940-9_420&lt;br /&gt;
[3] Topic 的字典定義為：a subject that is discussed, written about, or studied (http://dictionary.cambridge.org/zht/%E8%A9%9E%E5%85%B8/%E8%8B%B1%E8%AA%9E/topic)。&lt;br /&gt;
[4] Bo Pang and Lillian Lee, 2008. Opinion mining and sentiment analysis, Foundations and Trends in Information Retrieval, Vol. 2, No 1-2 (2008) 1–135. (https://www.cs.cornell.edu/home/llee/opinion-mining-sentiment-analysis-survey.html)&lt;br /&gt;
[5] Stemming, https://en.wikipedia.org/wiki/Stemming, accessed on 2017/3/29&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/1806810201852801262/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/1806810201852801262' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/1806810201852801262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/1806810201852801262'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2017/03/blog-post.html' title='心得整理 - 文字探勘者的入門心法.'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-7588659527402268021</id><published>2017-03-17T19:03:00.001-07:00</published><updated>2017-03-17T19:03:18.527-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="R-Language"/><title type='text'>在 RStudio 啟動時自動執行語系切換 指令</title><content type='html'>&lt;br /&gt;
&lt;h2&gt;
問題&lt;/h2&gt;
在資料中有中文字，每次進 RStudio 時都要手動執行&amp;nbsp;Sys.setlocale(category=&quot;LC_ALL&quot;, locale = &quot;cht&quot;) 將語系改成 &amp;nbsp;CP-950。&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
做法&lt;/h2&gt;
在專案目錄下新增一個 .Rprofile 的檔案，加入 Sys.setlocale(category=&quot;LC_ALL&quot;, locale = &quot;cht&quot;) &amp;nbsp;指令。如此，在開啟專案時便會自動執行 .Rprofile 內的指令[1]。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
參考資料&lt;/h2&gt;
[1] &amp;nbsp;Josh Paulson, 2017/1/22, Using Projects, https://support.rstudio.com/hc/en-us/articles/200526207-Using-Projects, Accessed on 2017/3/18&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/7588659527402268021/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/7588659527402268021' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/7588659527402268021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/7588659527402268021'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2017/03/rstudio.html' title='在 RStudio 啟動時自動執行語系切換 指令'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-6029332655160821424</id><published>2017-02-23T17:19:00.003-08:00</published><updated>2017-02-23T17:19:41.044-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jsf"/><title type='text'>如何對 Datatable 上的某一個資料列進行編輯? - 使用 p:dataTable 元件</title><content type='html'>&lt;br /&gt;
&lt;br /&gt;
原理:&lt;br /&gt;
1. 利用 p:dataTable 中的 selection 屬性取得目前選擇的物件. selection 屬性要和 Managed Bean 的 property 綁在一起.&lt;br /&gt;
2. 設計一個 UI 提供使用者輸入新的資料. 這個 UI 可以是 Dialog, 也可以是 Page. 此 UI 的輸入元件會取得先前 Managed Bean Property 的資料並何其繫結在一起.&lt;br /&gt;
3. 在 Managed Bean 提供一個方法, 例如 saveDB(), 呼叫 EJB 的方法, 將修改後的資料儲存到資料庫中.</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/6029332655160821424/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/6029332655160821424' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/6029332655160821424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/6029332655160821424'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2017/02/datatable-pdatatable.html' title='如何對 Datatable 上的某一個資料列進行編輯? - 使用 p:dataTable 元件'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-533851895599489746.post-764627958903740935</id><published>2017-02-07T16:19:00.000-08:00</published><updated>2017-02-07T16:34:13.062-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="英文"/><title type='text'>Defining relative clause 和 non-defining relative clause 間的用途差別</title><content type='html'>&lt;br /&gt;
Defining relative clause 和 non-defining relative clause 間的使用方式有什麼不同呢？&lt;br /&gt;
參考此 &lt;a href=&quot;https://www.youtube.com/watch?v=5rV6EY1Zqis&quot; target=&quot;_blank&quot;&gt;youtube&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
My brother, who is a policeman, lives in New York.&lt;br /&gt;
我只有一個哥哥，現在住在 New York. 使用 non-defining relative clause, 因為不用特別限定我所要描述的規格。&lt;br /&gt;
&lt;br /&gt;
My brother who is a policeman lives in New York.&lt;br /&gt;
我有兩個哥哥，當警察的那個現在住在 New York。使用 defining relative clause 限定我所要描述的其中一個哥哥。&lt;br /&gt;
&lt;br /&gt;
來個 Quiz:&lt;br /&gt;
&lt;a href=&quot;http://www.bbc.co.uk/learningenglish/english/course/towards-advanced/unit-1/session-1&quot; target=&quot;_blank&quot;&gt;5 things about non-defining relative clauses&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://hychen39.blogspot.com/feeds/764627958903740935/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/533851895599489746/764627958903740935' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/764627958903740935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/533851895599489746/posts/default/764627958903740935'/><link rel='alternate' type='text/html' href='http://hychen39.blogspot.com/2017/02/defining-relative-clause-non-defining.html' title='Defining relative clause 和 non-defining relative clause 間的用途差別'/><author><name>Hung-Yi Chen</name><uri>http://www.blogger.com/profile/04737598480338787499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>