<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="text">Liullen dev daily</title>
  <id>http://nelluil.postach.io/feed.xml</id>
  <updated>2018-09-29T15:41:22.946000Z</updated>
  <link href="http://nelluil.postach.io/" />
  <link href="http://nelluil.postach.io/feed.xml" rel="self" />
  <generator>Werkzeug</generator>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">Klean-prep 刻見清服心得用與台安大腸鏡健檢心得</title>
    <id>https://nelluil.postach.io/post/jian-jian-da-chang-jing-qian-klean-prep-ke-jian-qing-fu-yong-xin-de</id>
    <updated>2018-09-29T15:41:22.946000Z</updated>
    <published>2018-08-22T04:45:58Z</published>
    <link href="https://nelluil.postach.io/post/jian-jian-da-chang-jing-qian-klean-prep-ke-jian-qing-fu-yong-xin-de" />
    <author>
      <name>Liullen</name>
    </author>
    <content type="html">&lt;div&gt;&lt;span&gt;這次是參加公司提供的台安健檢。&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;大腸鏡健檢前總共要喝兩包清腸藥Klean-prep 刻見清，每包藥粉加入 1000cc 的水做成溶液(或運動飲料、甘蔗汁)&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;規定是 20:00 喝 1000cc 於一小時內喝完，喝完後再補充水分 1000cc&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;03:00 爬起來喝 1000cc 於一小時內喝完，喝完後補充 500cc &lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;因為我太晚吃晚餐，所以拖到 21:00 才開始喝，我是加運動飲料。&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;剛入口時覺得還好，似乎就鹹鹹甜甜的，&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;可怕的是吞下去後，那股氣會衝上鼻子，就和J大大形容的一樣：「一股鐵鏽味」，很噁心。&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;因為太難喝了，喝著喝著就過了 22:00，&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;大概還剩下 500cc 時，藥效開始了，&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;開始一直跑廁所，就和J大大說的一樣，肚子不會痛，只是會很想拉而已，&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;就這樣邊跑廁所邊喝，大約 23:00 左右喝完了。&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;緊接著是另外 1000cc 不加藥的運動飲料，&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;這時候還是一直跑廁所，常常一待就是半小時，&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;這 1000cc 喝完大概也 01:30 了，&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;蹲著蹲著想說去沖個澡好了，&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;雖然肚子不會痛，但是因為過度使用，小花開始紅腫感，&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;清洗的時候不得了，非常刺痛，可能沐浴乳含有某些精油是會刺激傷口。&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;洗完澡一整個舒服，想說可以躺一下吧，&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;但是看著時鐘是顯示 02:15 ，就覺得母湯，萬一躺下去就一覺不醒就得重來，&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;所以就 Youtube 看著看著直到 03:00 迎接下一壺，&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;第2包 2000cc 看之前的心得文是說只能用水沖成溶液，&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;但實在太難喝了，我還是用 1000cc 的運動飲料做成溶液，&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;這 1000cc 也是邊看 Youtube 邊喝，&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;而且吞下去噁心的感覺一點都不減，&lt;br clear=&quot;none&quot;/&gt;&lt;/span&gt;突然想到網路上說的小技巧，捏著鼻子或是吞下去時要停止呼吸，&lt;br clear=&quot;none&quot;/&gt;不過停止呼吸最後還是得呼吸，那個味道還是會有，只是少了些。&lt;/div&gt;
&lt;div&gt;但這招還真的有點效果，讓我順利喝完 500cc 左右&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;不知道是因為身理時鐘的關係，感覺水全部都在胃裏，&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;沒有任何一點消化下去，喝完 500cc 時也過了一個小時，已經飽到一個完全喝不下。&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;大約 04:30 時，開始下一波馬桶 long stay，&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;到這邊的時候，已經是清澈如水，符合清腸規定的結果了。&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;最後到 05:00 前又硬撐喝了 250cc 左右，最後還有 250cc 我果斷放棄，&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;因為已經到了最後能補充水分的時間了 05:00&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;span&gt;一直到 07:00 出門前，還是會一直跑廁所。&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;因為出來的都是水，所以過度使用的小花，實在有點不舒服，&lt;/span&gt;最後還擦上了點凡士林來舒緩。&lt;/div&gt;
&lt;div&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;所以還真的整晚都沒睡。&lt;/span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;br clear=&quot;none&quot;/&gt;我 08:00 報到，一連串檢查跟一班的檢查大致相通，沒什麼印象深刻的部分，&lt;br clear=&quot;none&quot;/&gt;前面的部分檢查到約 09:00，就要開始做最後一項大腸鏡檢查了，&lt;/div&gt;
&lt;div&gt;一開始要我換上另一件開襠褲，&lt;/div&gt;
&lt;div&gt;換完後護理師或是醫師會做一連串的問題和確認，整個麻醉檢查過程大約要半小時，&lt;/div&gt;
&lt;div&gt;確認完後就要我躺在病床上，&lt;/div&gt;
&lt;div&gt;左手會綁上血壓計，右手會打一針注射點滴 (?)，並在食指夾上脈搏偵測的儀器，&lt;/div&gt;
&lt;div&gt;並要我側躺，腳縮起來。&lt;/div&gt;
&lt;div&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;/div&gt;
&lt;div&gt;躺一陣子後，&lt;/div&gt;
&lt;div&gt;最後麻醉師(?)過來了，說打麻醉時手臂會酸會脹痛是正常現象。&lt;br clear=&quot;none&quot;/&gt;&lt;/div&gt;
&lt;div&gt;一會兒後，麻醉就開始了，真的如醫師所說的，超酸超脹，還在感受從手臂到二頭肌的痠脹感時，下一秒就完全昏迷了，&lt;br clear=&quot;none&quot;/&gt;不是漸漸的睡著，而是像被柯南的麻醉槍射中一般。&lt;/div&gt;
&lt;div&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;/div&gt;
&lt;div&gt;下一刻時，聽到了一些聲音，護理師來叫醒我，還真的起床就做好了，&lt;br clear=&quot;none&quot;/&gt;&lt;/div&gt;
&lt;div&gt;要我再躺著休息一下，等等醫師會來解說，&lt;br clear=&quot;none&quot;/&gt;過一陣子後，醫師來解說的時候，整個還昏昏沉沉的，應該是藥效還在，&lt;/div&gt;
&lt;div&gt;大約在躺個十分鐘，就下床了，剛開始還真的是走路不太穩，&lt;/div&gt;
&lt;div&gt;跟我說整個檢查已經結束，稍後換完衣服就可以吃早餐，吃完早餐就可以離開了。&lt;/div&gt;
&lt;div&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;/div&gt;
&lt;div&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;/div&gt;
&lt;div&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">透過 symbolic link 避免開發環境變數的變更</title>
    <id>https://nelluil.postach.io/post/tou-guo-symbolic-link-bi-mian-kai-fa-huan-jing-bian-shu-de-bian-geng</id>
    <updated>2018-05-16T07:23:45.977000Z</updated>
    <published>2018-05-16T01:48:05Z</published>
    <link href="https://nelluil.postach.io/post/tou-guo-symbolic-link-bi-mian-kai-fa-huan-jing-bian-shu-de-bian-geng" />
    <author>
      <name>Liullen</name>
    </author>
    <content type="html">&lt;div&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;/div&gt;
&lt;div&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;/div&gt;
&lt;div&gt;若經常於 git branch 間切換，且當其中一些環境變數、檔案路徑相關的程式碼需要調整時，&lt;/div&gt;
&lt;div&gt;總是需要透過 stash, 再 branch 之類的方式將變數相關的程式存下來，避免遺失&lt;/div&gt;
&lt;div&gt;一個方法是建立 symbolic link ，這樣就不用一直改拉&lt;br clear=&quot;none&quot;/&gt;&lt;/div&gt;
&lt;div&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;unix: &lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;/div&gt;&lt;table style=&quot;border-collapse: collapse; table-layout: fixed;&quot; border=&quot;1&quot; width=&quot;100%&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot;&gt;&lt;tr&gt;&lt;td colspan=&quot;1&quot; rowspan=&quot;1&quot; valign=&quot;top&quot; style=&quot;padding: 10.0px; margin: 0.0px; border: 1.0px solid #d9d9d9;&quot;&gt;sudo ln -s /Users/liullen/workspace/ihergo /Users/ihergo&lt;br clear=&quot;none&quot;/&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;window: &lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;/div&gt;&lt;table style=&quot;border-collapse: collapse; table-layout: fixed;&quot; border=&quot;1&quot; width=&quot;100%&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot;&gt;&lt;tr&gt;&lt;td colspan=&quot;1&quot; rowspan=&quot;1&quot; valign=&quot;top&quot; style=&quot;padding: 10.0px; margin: 0.0px; border: 1.0px solid #d9d9d9;&quot;&gt;mklink /d C:\ihergoGit C:\workspace\ihergo&lt;br clear=&quot;none&quot;/&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&lt;br clear=&quot;none&quot;/&gt;&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">用 jstl 的 &amp;lt;c:import url&amp;gt; 遇到 SSL 相關的問題</title>
    <id>https://nelluil.postach.io/post/yong-jstl-de-c-import-url-yu-dao-ssl-xiang-guan-de-wen-ti</id>
    <updated>2018-03-16T04:24:04.071000Z</updated>
    <published>2018-03-16T03:53:43Z</published>
    <link href="https://nelluil.postach.io/post/yong-jstl-de-c-import-url-yu-dao-ssl-xiang-guan-de-wen-ti" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="tomcat" />
    <category term="ssl" />
    <category term="jstl" />
    <category term="jsp" />
    <content type="html">&lt;div&gt;在某一個 jsp 頁面使用 jstl core 直接 import 指定位置的 url 時會有問題，例如:&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;＜c:import url=&quot;https://ihaveapen.com/ihaveanapple&quot; /＞&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;在 macOS 本機(Apache+Tomcat) 連到用到這樣使用的 tag 的頁面時，Tomcat 會發生 SunCertPathBuilderException&lt;/div&gt;
&lt;div&gt;(Exception 太長放最後面)&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;解法：&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;- 透過 firefox 將目前頁面的根憑證匯出 (這邊直接拿 apache ssl 指定的根憑證應該要也可以)&lt;/div&gt;
&lt;div&gt;-  用 keytool 匯入到執行 tomcat 用的 jre 底下的 cacerts&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;-en-codeblock: true; box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.14902); background-position: initial initial; background-repeat: initial initial;&quot;&gt;&lt;div&gt;sudo keytool -import -alias ihergo -keystore /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/security/cacerts -file wwwihergocom.crt&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;- 注意: 要用 sudo 權限, 且調整 cacerts 會要求輸入密碼, 預設密碼是&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;-en-codeblock: true; box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.14902); background-position: initial initial; background-repeat: initial initial;&quot;&gt;&lt;div&gt;changeit&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;- 解決方法來源 stackoverflow https://stackoverflow.com/a/36427118&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;- Exceptions:&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;-en-codeblock: true; box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.14902); background-position: initial initial; background-repeat: initial initial;&quot;&gt;&lt;div&gt;2018/03/16 11:43:36 [ERROR] [com.xxxxxx.mobile.web.controller.GlobalExceptionHandler@ajp-nio-8009-exec-9]_jspService(130) jsp error on:/mobile/WEB-INF/jsp/error/error.jsp&lt;/div&gt;
&lt;div&gt;org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Problem accessing the absolute URL &quot;https://www.xxxxxx.com/mobile/ad/banner&quot;. javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target&lt;/div&gt;
&lt;div&gt;  at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:596)&lt;/div&gt;
&lt;div&gt;  ...&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;Caused by: javax.servlet.ServletException: javax.servlet.jsp.JspException: Problem accessing the absolute URL &quot;https://www.xxxxxx.com/mobile/ad/banner&quot;. javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target&lt;/div&gt;
&lt;div&gt;  at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:905)&lt;/div&gt;
&lt;div&gt;  ... 81 more&lt;/div&gt;
&lt;div&gt;Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target&lt;/div&gt;
&lt;div&gt;  at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)&lt;/div&gt;
&lt;div&gt;  ... 84 more&lt;/div&gt;
&lt;div&gt;Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target&lt;/div&gt;
&lt;div&gt;  ... 101 more&lt;/div&gt;
&lt;div&gt;Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target&lt;/div&gt;
&lt;div&gt;  ... 107 more&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">FATAL: sorry, too many clients already</title>
    <id>https://nelluil.postach.io/post/fatal-sorry-too-many-clients-already</id>
    <updated>2018-03-08T03:27:26.239000Z</updated>
    <published>2018-03-08T03:17:38Z</published>
    <link href="https://nelluil.postach.io/post/fatal-sorry-too-many-clients-already" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="sql" />
    <content type="html">&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;有時候在 pgsql 會遇到這個錯誤訊息，意思大概就是當前連線數量已達上限，&lt;/div&gt;
&lt;div&gt;有可能是因為重複啟動 tomcat 等等&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; padding: 8px; border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);&quot;&gt;&lt;div style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;FATAL: sorry, too many clients already&lt;/div&gt;
&lt;div style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;總之可以透過這個 query，刪除10分鐘內的 idle 連線，應該就可以繼續使用。&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; padding: 8px; border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);&quot;&gt;&lt;div&gt;SELECT pg_terminate_backend(pid)&lt;/div&gt;
&lt;div&gt;    FROM pg_stat_activity&lt;/div&gt;
&lt;div&gt;    WHERE datname = 'xxxxx'&lt;/div&gt;
&lt;div&gt;      AND pid &lt;&gt; pg_backend_pid()&lt;/div&gt;
&lt;div&gt;      AND state = 'idle'&lt;/div&gt;
&lt;div&gt;      AND state_change &lt; current_timestamp - INTERVAL '10' MINUTE;SELECT pg_terminate_backend(pid)&lt;/div&gt;
&lt;div&gt;    FROM pg_stat_activity&lt;/div&gt;
&lt;div&gt;    WHERE datname = 'xxxxx'&lt;/div&gt;
&lt;div&gt;      AND pid &lt;&gt; pg_backend_pid()&lt;/div&gt;
&lt;div&gt;      AND state = 'idle'&lt;/div&gt;
&lt;div&gt;      AND state_change &lt; current_timestamp - INTERVAL '10' MINUTE;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">Eclipse Oxygen SVN Connector</title>
    <id>https://nelluil.postach.io/post/eclipse-oxygen-svn-connector</id>
    <updated>2018-03-08T03:28:58.706000Z</updated>
    <published>2018-03-07T10:40:10Z</published>
    <link href="https://nelluil.postach.io/post/eclipse-oxygen-svn-connector" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="eclipse" />
    <content type="html">&lt;div style=&quot;width: 50em; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;&quot;&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;font-family: monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;Eclipse Oxygen 無法安裝 SVN connector&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;透過 svn-plug 底下安裝 plug-in 會閃一下就關閉&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;而直接去找 SVN-kit 或 JavaHL 的 connector update-site 嘗試安裝也失敗&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;所以找到遇到同樣問題的人，透過特定的 update-site 來安裝 SVNKit Connector，才順利解決這個問題&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: monospace;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: monospace;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;來源：Mauro Molinari 在  &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=518033&quot;&gt;https://bugs.eclipse.org/bugs/show_bug.cgi?id=518033&lt;/a&gt; 發表的解法&lt;/div&gt;
&lt;div&gt;其實也是直接透過 update-site 來安裝，但是來源不同，這版應該有特別處理過。&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; padding: 8px; border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);&quot;&gt;&lt;div style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;font-family: monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Same problem here.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-family:&quot;Helvetica Neue&quot;, Arial, sans;font-size:16px;&quot;&gt;&lt;span style=&quot;font-family: monospace;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Also, pages at: &lt;br /&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://www.eclipse.org/subversive/latest-releases.php&quot; style=&quot;color: rgb(102, 51, 102);&quot;&gt;https://www.eclipse.org/subversive/latest-releases.php&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;https://polarion.plm.automation.siemens.com/products/svn/subversive/download?utm_source=eclipse.org&amp;utm_medium=link&amp;utm_campaign=subversive&quot; style=&quot;color: rgb(102, 51, 102);&quot;&gt;https://polarion.plm.automation.siemens.com/products/svn/subversive/download?utm_source=eclipse.org&amp;utm_medium=link&amp;utm_campaign=subversive&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;should be updated for Oxygen.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style=&quot;font-family:monospace;font-size:12px;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;font-family: monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The main problem is that, as other mentioned already, the x64 binaries for the JavaHL connector seems not to be available at &lt;a href=&quot;http://community.polarion.com/projects/subversive/download/eclipse/6.0/update-site/&quot; style=&quot;color: rgb(102, 51, 102);&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;http://community.polarion.com/projects/subversive/download/eclipse/6.0/update-site/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;是說 MacOS 上的免費且好用的 SVN GUI 圖形化工具好像有點少 QQ&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">The Simplest Http File Server (by nodejs)</title>
    <id>https://nelluil.postach.io/post/the-simplest-http-file-server-by-nodejs</id>
    <updated>2018-03-01T04:14:13.539000Z</updated>
    <published>2018-02-26T10:11:10Z</published>
    <link href="https://nelluil.postach.io/post/the-simplest-http-file-server-by-nodejs" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="js" />
    <content type="html">&lt;div&gt;&lt;a href=&quot;https://github.com/indexzero/http-server&quot;&gt;https://github.com/indexzero/http-server&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;快速建立 http file server&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;###安裝&lt;/div&gt;
&lt;div&gt;```&lt;/div&gt;
&lt;div&gt;npm install http-server -g&lt;/div&gt;
&lt;div&gt;```&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;###執行方法1 &lt;/div&gt;
&lt;div&gt;```&lt;/div&gt;
&lt;div&gt;cd D:\Folder&lt;/div&gt;
&lt;div&gt;http-server&lt;/div&gt;
&lt;div&gt;```&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;###或執行方法2&lt;/div&gt;
&lt;div&gt;```&lt;/div&gt;
&lt;div&gt;http-server D:\Folder&lt;/div&gt;
&lt;div&gt;```&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">hibernate column validation annotaion</title>
    <id>https://nelluil.postach.io/post/hibernate-column-validation-annotaion</id>
    <updated>2018-02-14T03:39:39.605000Z</updated>
    <published>2018-02-14T03:37:02Z</published>
    <link href="https://nelluil.postach.io/post/hibernate-column-validation-annotaion" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="sql" />
    <category term="hibernate" />
    <content type="html">&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;div style=&quot;box-sizing: border-box; font-family: &quot;Droid Sans Mono&quot;, &quot;DejaVu Sans Mono&quot;, monospace; font-size: 16px; margin: 0px; padding: 1em; direction: ltr; color: rgba(0, 0, 0, 0.9); font-weight: 400; text-rendering: optimizeSpeed; border-radius: 4px; border: 0px solid rgb(136, 136, 136); background: rgb(247, 247, 248); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; font-family: &quot;Droid Sans Mono&quot;, &quot;DejaVu Sans Mono&quot;, monospace; font-size: 1em; font-weight: 400; color: rgba(0, 0, 0, 0.9); text-rendering: optimizeSpeed;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;@NotNull&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;@Size&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;min &lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; max &lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;14&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; productName&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">jQuery namespaced event</title>
    <id>https://nelluil.postach.io/post/jquery-namespaced-event</id>
    <updated>2018-02-08T02:35:49.344000Z</updated>
    <published>2018-01-08T02:44:20Z</published>
    <link href="https://nelluil.postach.io/post/jquery-namespaced-event" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="jquery" />
    <category term="jquerymobile" />
    <content type="html">&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;在處理 jQuery Mobile 時，因為是手機介面，所以常常需要透過綁定 scroll 事件來處理各種狀況，&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;一般通常是 scroll to HIDE 或 scroll to LOAD&amp;SHOW&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;但某些情況有可能會導致重複綁定的問題，所以需要透過 namesapced 的 event 來解決，避免兩個相同的事件(但處理不同情況)互相干擾&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;例如: &lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;某些頁面要在 scroll 時把元素 A 和 B 都隱藏:&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; padding: 8px; border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);&quot;&gt;&lt;div&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;$(document).on('scroll', function (event) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;  //TODO: determine the length of scrollTop to hide element A&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;$(document).on('scroll', function (event) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;div style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;但有時候&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;元素 A 和 B 的事件都是 &lt;/span&gt;global 使用的, 但其中&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;某些頁面&lt;/span&gt;不處理 B:&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; padding: 8px; border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);&quot;&gt;&lt;div style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;$(document).on('scroll', function (event) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;div style=&quot;font-family:&quot;Helvetica Neue&quot;, Arial, sans;font-size:16px;&quot;&gt;  //TODO: determine the length of scrollTop to hide element A&lt;/div&gt;
&lt;div style=&quot;font-family:&quot;Helvetica Neue&quot;, Arial, sans;font-size:16px;&quot;&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family:&quot;Helvetica Neue&quot;, Arial, sans;font-size:16px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;$(document).off('scroll');&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;當 off('bind') 時就會把 A 和 B 的 handler 都刪除了&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;所以必須引用 namespaced &lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; padding: 8px; border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);&quot;&gt;&lt;div style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;$(document).on('&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;scroll.typeA&lt;/span&gt;', function (event) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;div style=&quot;font-family:&quot;Helvetica Neue&quot;, Arial, sans;font-size:16px;&quot;&gt;  //TODO: determine the length of scrollTop to hide element A&lt;/div&gt;
&lt;div style=&quot;font-family:&quot;Helvetica Neue&quot;, Arial, sans;font-size:16px;&quot;&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;font-family:&quot;Helvetica Neue&quot;, Arial, sans;font-size:16px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;$(document).on('&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;scroll.typeB&lt;/span&gt;', function (event) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;div style=&quot;font-family:&quot;Helvetica Neue&quot;, Arial, sans;font-size:16px;&quot;&gt;  //TODO: determine the length of scrollTop to hide element B&lt;/div&gt;
&lt;div style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;&lt;div style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;這樣就可以單獨 off 一個元素不影響其他 handler 的綁定&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; padding: 8px; border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);&quot;&gt;&lt;div&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;$(document).off('&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;scroll.typeA&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;'&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;font-family:&quot;Helvetica Neue&quot;, Arial, sans;font-size:16px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;$(document).off('&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;scroll.typeB&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;'&lt;/span&gt;);&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;btw. 可以透過 jquery 去檢查目前事件有哪些 handler&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;-en-codeblock: true; box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.14902); background-position: initial initial; background-repeat: initial initial;&quot;&gt;&lt;div&gt;$._data(document, 'events');&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;// 例如：可以把 document 中 scroll 事件的 handler 都印出來&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;$._data(document, 'events').scroll.forEach(function(elem) {&lt;/div&gt;
&lt;div&gt;  console.log ( elem.handler.toString());&lt;/div&gt;
&lt;div&gt;});&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;參考 api:&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://api.jquery.com/on/#event-names&quot;&gt;http://api.jquery.com/on/#event-names&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;click demo: &lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://jsfiddle.net/bpbed789/&quot;&gt;https://jsfiddle.net/bpbed789/&lt;/a&gt;&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">iOS 滑動卡卡不順暢 scroll inside scroll</title>
    <id>https://nelluil.postach.io/post/ios-hua-dong-qia-qia-scroll-inside-scroll</id>
    <updated>2017-12-27T06:31:33.582000Z</updated>
    <published>2017-11-10T08:47:45Z</published>
    <link href="https://nelluil.postach.io/post/ios-hua-dong-qia-qia-scroll-inside-scroll" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="css" />
    <category term="ios" />
    <content type="html">&lt;div&gt;當 overflow scroll 的區塊中有其他 overflow 是 scroll 時， iOS 裝置的滑動會卡卡的，沒有硬體的慣性滑動效果&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;嘗試在內層的 scroll 元件 css 加上 &lt;tt&gt;-webkit-overflow-scrolling: touch&lt;/tt&gt;&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">透過輸入法組字事件 CompositionEvent 解決 iOS 上可能無法觸發 GoogleMap Autocomplete</title>
    <id>https://nelluil.postach.io/post/tou-guo-shu-ru-fa-zu-zi-shi-jian-compositionevent-jie-jue-ios-shang-ke-neng-wu-fa-chu-fa-googlemap-autocomplete</id>
    <updated>2017-12-27T06:20:18.413000Z</updated>
    <published>2017-09-13T09:17:34Z</published>
    <link href="https://nelluil.postach.io/post/tou-guo-shu-ru-fa-zu-zi-shi-jian-compositionevent-jie-jue-ios-shang-ke-neng-wu-fa-chu-fa-googlemap-autocomplete" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="javascript" />
    <category term="ios" />
    <content type="html">&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: &quot;PingFang TC&quot;; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; font-weight: bold; font-size: 16px;&quot;&gt;&lt;div&gt;透過輸入法組字事件 CompositionEvent 解決 iOS 可能無法正確觸發 GoogleMap Autocomplete&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot;&gt;&lt;div&gt;   &lt;/div&gt;
&lt;div style=&quot;-en-codeblock: true; box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.14902); background-position: initial initial; background-repeat: initial initial;&quot;&gt;&lt;div&gt;  // hack: 讓 iOS 鍵盤拼完字會跳出 google map 的 autocomplete&lt;/div&gt;
&lt;div&gt;      $(pacInput).on('compositionend', function() {&lt;/div&gt;
&lt;div&gt;    $(this).trigger('blur').trigger('focus');&lt;/div&gt;
&lt;div&gt;      });&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;div style=&quot;font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot;&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;span style=&quot;font-family: &quot;PingFang TC&quot;;&quot;&gt;jsfiddle demo: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://jsfiddle.net/25gj9m9x/&quot;&gt;https://jsfiddle.net/25gj9m9x/&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;span style=&quot;font-family: &quot;PingFang TC&quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;span style=&quot;font-family: &quot;PingFang TC&quot;;&quot;&gt;相關事件：&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol style=&quot;color: rgb(0, 0, 0); font-family: &quot;PingFang TC&quot;; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/DOM/DOM_event_reference/compositionstart&quot;&gt;compositionstart&lt;/a&gt; : 輸入法組字開始&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/DOM/DOM_event_reference/compositionend&quot;&gt;compositionend&lt;/a&gt; : 輸入法組字結束&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/DOM/DOM_event_reference/compositionupdate&quot;&gt;compositionupdate&lt;/a&gt;: 輸入法修改字詞&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;color: rgb(0, 0, 0); font-family: &quot;PingFang TC&quot;; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot;&gt;[1] 參考 MDN: &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent&quot;&gt;https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">jqueryMobile 下載檔案注意事項</title>
    <id>https://nelluil.postach.io/post/jquerymobile-xia-zai-dang-an-zhu-yi-shi-xiang</id>
    <updated>2018-01-29T02:04:49.647000Z</updated>
    <published>2017-06-26T07:37:42Z</published>
    <link href="https://nelluil.postach.io/post/jquerymobile-xia-zai-dang-an-zhu-yi-shi-xiang" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="jquery" />
    <category term="jquerymobile" />
    <content type="html">&lt;div&gt;jQuery Mobile 下載一般檔案  &lt;tt&gt;&lt;span style=&quot;font-family: &quot;courier new&quot;, courier, monospace;&quot;&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;b&gt;data-ajax=&quot;false&quot;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/tt&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: rgb(51, 51, 51);&quot;&gt;```&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-size: 12px;font-family:gotham, helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace;&quot;&gt;&lt;a href=&quot;https://blah.com/example.pdf&quot; data-ajax=&quot;false&quot;&gt;下載檔案&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: rgb(51, 51, 51);&quot;&gt;```&lt;/span&gt;&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">M版 Spring MVC 排程設定</title>
    <id>https://nelluil.postach.io/post/mban-spring-mvc-pai-cheng-she-ding</id>
    <updated>2017-12-27T06:19:58.234000Z</updated>
    <published>2017-06-26T07:35:57Z</published>
    <link href="https://nelluil.postach.io/post/mban-spring-mvc-pai-cheng-she-ding" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="spring" />
    <category term="springmvc" />
    <category term="quartz" />
    <content type="html">&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;h1 style=&quot;font-family: Roboto, sans-serif; font-weight: 700; margin: 0px 0px 0.75em; font-size: 35px; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot;&gt;M版 Spring MVC 排程設定&lt;/h1&gt;&lt;br style=&quot;color: rgb(51, 51, 51); font-family: &quot;Crimson Text&quot;, serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;div style=&quot;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, &quot;Courier Prime Web&quot;, Courier, monospace; background: rgb(243, 243, 243); display: block; text-shadow: white 0px 1px; padding: 5px 5px 5px 30px; position: relative; margin: 1em 0px; color: rgb(51, 51, 51); font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot;&gt;&lt;code style=&quot;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, &quot;Courier Prime Web&quot;, Courier, monospace; background: rgb(243, 243, 243); padding: 1px; margin: 0px -1px; border-radius: 3px;&quot;&gt;public class UpdatexxxxxTask {&lt;br /&gt;&lt;br /&gt;  @Scheduled(fixedDelay = 30000)&lt;br /&gt;  public void execute() {&lt;br /&gt;    try {&lt;br /&gt;      dosomething&lt;br /&gt;    } catch (Exception e) {&lt;br /&gt;      ApLog.error(e.getMessage(), e);&lt;br /&gt;    }&lt;br /&gt;  }&lt;/code&gt;&lt;div&gt;&lt;span style=&quot;background-color: rgb(243, 243, 243);&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3 style=&quot;font-family: Roboto, sans-serif; font-weight: 700; margin: 1.25em 0px 0.75em; text-transform: uppercase; font-size: 13px; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot;&gt;1.新增一個 CLASS 和 METHOD 並利用 ANNOTATION 增加要執行的排程&lt;/h3&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &quot;Crimson Text&quot;, serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;&quot;&gt;a. &lt;/span&gt;&lt;code style=&quot;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, &quot;Courier Prime Web&quot;, Courier, monospace; background: rgb(243, 243, 243); padding: 1px; margin: 0px -1px; border-radius: 3px; color: rgb(51, 51, 51); font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot;&gt;@Scheduled(fixedDelay = 30000)&lt;/code&gt;&lt;br style=&quot;color: rgb(51, 51, 51); font-family: &quot;Crimson Text&quot;, serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; /&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &quot;Crimson Text&quot;, serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;&quot;&gt;執行完才會執行下一次(ms)&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 51, 51); font-family: &quot;Crimson Text&quot;, serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; /&gt;&lt;br style=&quot;color: rgb(51, 51, 51); font-family: &quot;Crimson Text&quot;, serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; /&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &quot;Crimson Text&quot;, serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;&quot;&gt;b. &lt;/span&gt;&lt;code style=&quot;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, &quot;Courier Prime Web&quot;, Courier, monospace; background: rgb(243, 243, 243); padding: 1px; margin: 0px -1px; border-radius: 3px; color: rgb(51, 51, 51); font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot;&gt;@Scheduled(fixedRate=5000)&lt;/code&gt;&lt;br style=&quot;color: rgb(51, 51, 51); font-family: &quot;Crimson Text&quot;, serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; /&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &quot;Crimson Text&quot;, serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;&quot;&gt;不管這次執行是否完成，時間到了即執行下一次&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 51, 51); font-family: &quot;Crimson Text&quot;, serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; /&gt;&lt;br style=&quot;color: rgb(51, 51, 51); font-family: &quot;Crimson Text&quot;, serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; /&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &quot;Crimson Text&quot;, serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;&quot;&gt;c. &lt;/span&gt;&lt;code style=&quot;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, &quot;Courier Prime Web&quot;, Courier, monospace; background: rgb(243, 243, 243); padding: 1px; margin: 0px -1px; border-radius: 3px; color: rgb(51, 51, 51); font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot;&gt;@Scheduled(cron=&quot;*/5 * * * * MON-FRI&quot;)&lt;/code&gt;&lt;br style=&quot;color: rgb(51, 51, 51); font-family: &quot;Crimson Text&quot;, serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; /&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &quot;Crimson Text&quot;, serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;&quot;&gt;同b, cron 的排程時間到了立即執行&lt;/span&gt;&lt;br style=&quot;color: rgb(51, 51, 51); font-family: &quot;Crimson Text&quot;, serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; /&gt;&lt;h3 style=&quot;font-family: Roboto, sans-serif; font-weight: 700; margin: 1.25em 0px 0.75em; text-transform: uppercase; font-size: 13px; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot;&gt;2.在 SPRING-QUARTZ.XML 增加 BEAN&lt;/h3&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &quot;Crimson Text&quot;, serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;&quot;&gt;參考: &lt;/span&gt;&lt;b style=&quot;color: rgb(51, 51, 51); font-family: &quot;Crimson Text&quot;, serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot;&gt;src/main/resources/spring/spring-quartz.xml&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&lt;div style=&quot;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, &quot;Courier Prime Web&quot;, Courier, monospace; background: rgb(243, 243, 243); display: block; text-shadow: white 0px 1px; padding: 5px 5px 5px 30px; position: relative; margin: 1em 0px; color: rgb(51, 51, 51); font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot;&gt;&lt;div&gt;&lt;code style=&quot;font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, &quot;Courier Prime Web&quot;, Courier, monospace; background: rgb(243, 243, 243); padding: 1px; margin: 0px -1px; border-radius: 3px;&quot;&gt;&lt;bean id=&quot;UpdateLuceneSearcherTask&quot; class=&quot;com.xxxxx.mobile.tasks.UpdatexxxxxTask&quot;&gt;&lt;/bean&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3 style=&quot;font-family: Roboto, sans-serif; font-weight: 700; margin: 1.25em 0px 0.75em; text-transform: uppercase; font-size: 13px; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot;&gt;3.可能存在的問題：&lt;/h3&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &quot;Crimson Text&quot;, serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;&quot;&gt;目前沒有特別設定哪一台機器要跑, 應該 critical, master, slaves 都會執行.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &quot;Crimson Text&quot;, serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;&quot;&gt;未來 task 更多、或是有需要指定機器執行時，可能需要類似 web 版獨立設定。&lt;/span&gt;&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">apache mod_jk @ MacOS Worker 設定問題</title>
    <id>https://nelluil.postach.io/post/apache-mod-jk-macos-worker-she-ding-wen-ti</id>
    <updated>2017-12-27T06:21:11.348000Z</updated>
    <published>2017-03-14T01:35:14Z</published>
    <link href="https://nelluil.postach.io/post/apache-mod-jk-macos-worker-she-ding-wen-ti" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="tomcat" />
    <category term="mac" />
    <category term="apahce" />
    <content type="html">&lt;div&gt;在 mod_jk 的 log 發現 localhost 無法解析等相關錯誤訊息&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;嘗試把 workers.properties 中連到 tomcat 的 IP(port 8009那個) 從 localhost 改為 127.0.0.1 後&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;就可以讓 Apache 的 mod_jk 和 tomcat 順利整合了&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;P.S. 猜測可能原因: tomcat listen 的 ip 只有 127.0.0.1 並不包含 localhost&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">macOS Sierra 10.12 安裝 apache mod_jk</title>
    <id>https://nelluil.postach.io/post/macos-sierra-10-12-an-zhuang-apache-mod-jk</id>
    <updated>2017-12-27T06:21:12.065000Z</updated>
    <published>2017-02-16T03:07:50Z</published>
    <link href="https://nelluil.postach.io/post/macos-sierra-10-12-an-zhuang-apache-mod-jk" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="mac" />
    <category term="apache" />
    <category term="mod-jk" />
    <content type="html">&lt;div&gt;###如何在 macOS Sierra 10.12 正確安裝 apache mod_jk&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;##編譯 mod_jk.so&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box; padding: 8px; border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.14902);&quot;&gt;&lt;div&gt;

&lt;div style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;cd ~/Desktop/tomcat-connector-source/native
&lt;/div&gt;&lt;div style=&quot;font-family:&quot;Helvetica Neue&quot;, Arial, sans;font-size:16px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;font-family:&quot;Helvetica Neue&quot;, Arial, sans;font-size:16px;&quot;&gt;./configure CFLAGS='-arch x86_64' APXSLDFLAGS='-arch x86_64' --with-apxs=/usr/sbin/apxs
&lt;/div&gt;&lt;div style=&quot;font-family:&quot;Helvetica Neue&quot;, Arial, sans;font-size:16px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;font-family:&quot;Helvetica Neue&quot;, Arial, sans;font-size:16px;&quot;&gt;make
&lt;/div&gt;&lt;div style=&quot;font-family:&quot;Helvetica Neue&quot;, Arial, sans;font-size:16px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;sudo make install&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;* 第一步的 configure 可能會遇到 apxs path not found 的問題, 解決方式: &lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;用 homebrew 安裝 apache24:  &lt;/span&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;&lt;tt&gt;brew install apache&lt;/tt&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;將 

&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;--with-apxs 指定到 homebrew 安裝的 apache 位址(太長忘了), 大概就能正確 configure 了&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;tt&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;--with-apxs=/usr/local/Cellar/apache/apache24...&lt;/span&gt;&lt;/tt&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;* 如果還有 apxs 的問題, 

&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;可以執行&lt;/span&gt;

  &lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt; &lt;/span&gt;

&lt;span&gt;&lt;tt&gt;apxs -q&lt;/tt&gt; 看看&lt;/span&gt;有少什麼套件&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;將make 好的 mod_jk.so 搬到原本的(homebrew的) apache libexec 下&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;-en-codeblock: true; box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.14902); background-position: initial initial; background-repeat: initial initial;&quot;&gt;&lt;div&gt;5) Copy created mod_jk.so:&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;cp /usr/libexec/apache2/mod_jk.so /Applications/Coldfusion10/config/wsconfig/1/mod_jk.so&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;btw. 如果要使用 brew 的 apache 記得更換symbolic link  &lt;span&gt;&lt;tt&gt;ln -s&lt;/tt&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;參考: &lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://gist.github.com/jclausen/7121183&quot;&gt;https://gist.github.com/jclausen/7121183&lt;/a&gt;&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">struts1 中 DispatchAction 繼承 execute 執行順序</title>
    <id>https://nelluil.postach.io/post/struts1-zhong-dispatchaction-ji-cheng-execute-zhi-xing-shun-xu</id>
    <updated>2017-12-27T06:21:29.172000Z</updated>
    <published>2017-02-16T02:59:36Z</published>
    <link href="https://nelluil.postach.io/post/struts1-zhong-dispatchaction-ji-cheng-execute-zhi-xing-shun-xu" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="java" />
    <category term="struts" />
    <content type="html">&lt;div&gt;地雷時間: 8小時(一個工作天) :(((&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;假設&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;tt&gt;StoreManageBaseAction extends DispatchAction&lt;/tt&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;又&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;tt&gt;StoreManageIndexAction extends StoreManageBaseAction&lt;/tt&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;當 execute 被執行時, &lt;/div&gt;
&lt;div&gt;會優先執行父類別的 execute(), 才執行子類別指定的 method&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;例如:&lt;/div&gt;
&lt;div&gt;要執行 &lt;tt&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;StoreManageIndexAction.&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;index()&lt;/tt&gt;,&lt;/div&gt;
&lt;div&gt;會先執行完 &lt;tt&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;StoreManageBaseAction.&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;execute()&lt;/tt&gt; 才執行 &lt;tt&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;StoreManageIndexAction&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;.index()&lt;/tt&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">PostgreSQL pgSQL 終止沒有回應的 Query</title>
    <id>https://nelluil.postach.io/post/pgsql-zhong-zhi-query</id>
    <updated>2018-01-29T02:07:41.204000Z</updated>
    <published>2016-11-24T02:02:59Z</published>
    <link href="https://nelluil.postach.io/post/pgsql-zhong-zhi-query" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="sql" />
    <content type="html">&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;由於對較大的 Table 

&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;執行 update SQL 可能因為網路環境等因素, 造成沒有回應,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;&lt;s&gt;所以不用 GUI 操作, 用 CLI 操作, 當然有時候還是會卡住,&lt;/s&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;結果即使用 psql.exe 還是每次都卡住...&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;問題可能是因為 網路?&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;div style=&quot;box-sizing: border-box; padding: 8px; border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.14902);&quot;&gt;&lt;div&gt;&lt;span style=&quot;font-family:gotham, helvetica, arial, sans-serif;font-size:14px;&quot;&gt;&lt;span style=&quot;font-family: &quot;courier new&quot;, courier, monospace;&quot;&gt;C:\pgAdminIII\1.22\psql.exe -U username -h 60.xxx.xxx.xxx -d dbname -a -f a.sql -L a.log&lt;/span&gt;
&lt;/span&gt;

&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;另外, 可以透過 SQL 來查詢目前正在執行的 Query &lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; padding: 8px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.14902);&quot;&gt;&lt;div&gt;&lt;span style=&quot;font-family: &quot;courier new&quot;, courier, monospace;&quot;&gt;SELECT * FROM pg_stat_activity ;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;可以看 datname, application_name, state=Idle 欄位值&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;查詢後, 如果遇到想要中止的 Query 可以: &lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; padding: 8px; border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.14902);&quot;&gt;&lt;div&gt;&lt;span style=&quot;font-family: &quot;courier new&quot;, courier, monospace;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-size: 13.44px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); float: none; display: inline !important;&quot;&gt;SELECT pg_cancel_backend(pid);  或 SELECT pg_terminate_backend(pid); // like force&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">MSSQL varchar, nvarchar 預設長度 30</title>
    <id>https://nelluil.postach.io/post/mssql-varchar-nvarchar-yu-she-chang-du-30</id>
    <updated>2017-12-27T06:21:48.709000Z</updated>
    <published>2016-04-15T06:10:02Z</published>
    <link href="https://nelluil.postach.io/post/mssql-varchar-nvarchar-yu-she-chang-du-30" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="mssql" />
    <category term="sql" />
    <content type="html">&lt;div style=&quot;font-size: 16px;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; outline: none !important; margin: 0px 0px 1.1em; color: rgb(44, 63, 81); font-family: &amp;apos;Helvetica Neue&amp;apos;, Arial, &amp;apos;Hiragino Sans GB&amp;apos;, STHeiti, &amp;apos;Microsoft YaHei&amp;apos;, &amp;apos;WenQuanYi Micro Hei&amp;apos;, SimSun, Song, sans-serif; widows: 1;&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; outline: none !important;&quot;&gt;MSSQL varchar, nvarchar 預設長度 30&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: none !important; margin: 0px 0px 1.1em; color: rgb(44, 63, 81); font-family: &amp;apos;Helvetica Neue&amp;apos;, Arial, &amp;apos;Hiragino Sans GB&amp;apos;, STHeiti, &amp;apos;Microsoft YaHei&amp;apos;, &amp;apos;WenQuanYi Micro Hei&amp;apos;, SimSun, Song, sans-serif; widows: 1;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; outline: none !important; font-family: &amp;apos;Source Code Pro&amp;apos;, monospace; font-size: 0.9em; padding: 2px 4px; color: rgb(199, 37, 78); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(249, 242, 244);&quot;&gt;nvarchar&lt;/code&gt;, &lt;code style=&quot;box-sizing: border-box; outline: none !important; font-family: &amp;apos;Source Code Pro&amp;apos;, monospace; font-size: 0.9em; padding: 2px 4px; color: rgb(199, 37, 78); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(249, 242, 244);&quot;&gt;varchar&lt;/code&gt; 不給長度時, 有預設 30 的限制&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: none !important; margin: 0px 0px 1.1em; color: rgb(44, 63, 81); font-family: &amp;apos;Helvetica Neue&amp;apos;, Arial, &amp;apos;Hiragino Sans GB&amp;apos;, STHeiti, &amp;apos;Microsoft YaHei&amp;apos;, &amp;apos;WenQuanYi Micro Hei&amp;apos;, SimSun, Song, sans-serif; widows: 1;&quot;&gt;以後記得, 所有對資料庫欄位的 update, 都應該要&lt;strong style=&quot;box-sizing: border-box; outline: none !important;&quot;&gt;備份&lt;/strong&gt;, 以確保不會有慘劇發生…&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; outline: none !important; margin-top: 0px; margin-bottom: 1.1em; color: rgb(44, 63, 81); font-family: &amp;apos;Helvetica Neue&amp;apos;, Arial, &amp;apos;Hiragino Sans GB&amp;apos;, STHeiti, &amp;apos;Microsoft YaHei&amp;apos;, &amp;apos;WenQuanYi Micro Hei&amp;apos;, SimSun, Song, sans-serif; widows: 1;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; outline: none !important;&quot;&gt;方法1: 新增一個備份用的欄位, 將值 copy 過去&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; outline: none !important;&quot;&gt;方法2: 直接對資料庫備份&lt;/li&gt;&lt;/ul&gt;&lt;div style=&quot;box-sizing: border-box; outline: none !important; margin: 0px 0px 1.1em; color: rgb(44, 63, 81); font-family: &amp;apos;Helvetica Neue&amp;apos;, Arial, &amp;apos;Hiragino Sans GB&amp;apos;, STHeiti, &amp;apos;Microsoft YaHei&amp;apos;, &amp;apos;WenQuanYi Micro Hei&amp;apos;, SimSun, Song, sans-serif; widows: 1;&quot;&gt;&lt;div&gt;2016/04/15 某案子得到的教訓…&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">兩顆沒碰過的地雷 Oracle Sequence, Lucene lock file</title>
    <id>https://nelluil.postach.io/post/liang-ke-mei-peng-guo-de-di-lei-oracle-sequence-lucene-lock-file</id>
    <updated>2016-09-07T03:39:07.055000Z</updated>
    <published>2015-03-09T03:43:29Z</published>
    <link href="https://nelluil.postach.io/post/liang-ke-mei-peng-guo-de-di-lei-oracle-sequence-lucene-lock-file" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="oracle" />
    <category term="lucene" />
    <content type="html">&lt;ol&gt;
&lt;li&gt;lucene 在操作時會在 temp 目錄產生一個 &lt;code&gt;lucene*.lock&lt;/code&gt;&lt;br /&gt;
若程式被異常終止後, 導致該檔案沒有沒刪除, 會讓 lucene 幾乎整個壞掉, 因為每次要 query 或建 index 時, 遇到 &lt;code&gt;.lock&lt;/code&gt; 檔時, 操作皆會被 lucene 擋下來&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;暫時的解決方案&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt; - 透過每次啟動時, 去清除 temp 目錄底下所有的 `lucene*.lock` 檔,
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li&gt;Oracle DB 某張 Table 不明原因導致當前 Sequence 小於已經存在資料的 Sequence, 讓新資料想要 insert 不能, 因為 Sequence 不能重複&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;暫時的解決方案&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt; - 透過 Oracle 查看該 Table 的 Sequence 到多少了,
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;select&quot;&gt;documentviewlog_seq
.
currval
 from 
dual
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;並比對存在資料的 Sequence, 最後透過 &lt;code&gt;nextval&lt;/code&gt; 來增加到比已經存在的資料多 1 個序號, 應該就會正常了&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;&lt;code&gt;nextval 每次 insert 之後, sequence 就會直接 +1
若要用 currval 之前, 必須先用 nextval select 一次
&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class=&quot;select&quot;&gt;documentviewlog_seq
.
nextval
 from 
dual
&lt;/code&gt;&lt;/pre&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">Oracle 資料庫密碼過期相關指令</title>
    <id>https://nelluil.postach.io/post/oracle-mi-ma-guo-qi-xiang-guan-zhi-ling</id>
    <updated>2015-03-05T08:43:13.919000Z</updated>
    <published>2015-02-26T06:27:24Z</published>
    <link href="https://nelluil.postach.io/post/oracle-mi-ma-guo-qi-xiang-guan-zhi-ling" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="sql" />
    <category term="oracle" />
    <content type="html">&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;密碼過期時就得修改密碼 , 否則該帳號將無法使用: &lt;/p&gt;
&lt;p&gt;&lt;code&gt;ALTER USER &quot;使用者名稱&quot; IDENTIFIED BY &quot;新密碼&quot; REPLACE &quot;舊密碼&quot;&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;查詢 Default user profile 的密碼期限: (預設是 &lt;code&gt;180&lt;/code&gt; 天)&lt;br /&gt;
&lt;code&gt;SELECT * FROM dba_profiles s WHERE s.profile=&amp;amp;apos;DEFAULT&amp;amp;apos; AND  resource_name=&amp;amp;apos;PASSWORD_LIFE_TIME&amp;amp;apos;;&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;查詢 user 是哪一種 profile: (預設應該都是 &lt;code&gt;default&lt;/code&gt;)&lt;br /&gt;
&lt;code&gt;SELECT username,PROFILE FROM dba_users;&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;修改 default user profile 密碼過期的時間 (這邊改為無限制: &lt;code&gt;UNLIMITED&lt;/code&gt;)&lt;br /&gt;
&lt;code&gt;ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;注意:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;按照 &lt;strong&gt;第4點&lt;/strong&gt; 的修改 user profile 會降低帳號的安全性, 因為原本預設是 180 天密碼到期, 期至便須修改密碼, 改無限制意思是永遠不會過期. (所以我只用在開發用的機器上, 產品或客戶的資料庫不要用)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;參考資料:&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;http://pramaire.pixnet.net/blog/post/45150667-oracle-11g%E5%AF%86%E7%A2%BC%E9%81%8E%E6%9C%9F%E5%95%8F%E9%A1%8C-ora-28002&quot;&gt;Oracle 11g密碼過期問題 ORA-28002&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;http://www.itcert.org/thread-3536-1-1.html&quot;&gt;Oracle 11g存在密碼過期問題&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">OutOfMemoryError Occurs when allocate a big Byte Array</title>
    <id>https://nelluil.postach.io/post/outofmemoryerror-occurs-when-allocate-a-big-byte-array</id>
    <updated>2015-03-05T08:43:13.935000Z</updated>
    <published>2015-02-06T07:52:46Z</published>
    <link href="https://nelluil.postach.io/post/outofmemoryerror-occurs-when-allocate-a-big-byte-array" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="java" />
    <content type="html">&lt;p&gt;今天遇到另一個 Java 的地雷,&lt;/p&gt;
&lt;p&gt;而且一個非常簡單的一個程式碼就會吐出 OOM 錯誤: &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;java.lang.OutOfMemoryError: Java heap space&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;int fileLength = 170 * 1024 * 1024;
byte[] b2 = new byte[fileLength];
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Array 不能且不應該產生這麼長的 instance, 因為會超過 java 的 default heap size.&lt;/p&gt;
&lt;p&gt;當然可以去改 jvm 參數將 heap size 加大, &lt;br /&gt;
但這並不是一個長遠之計, &lt;br /&gt;
改天再遇到更大的檔案一樣會 OOM&lt;/p&gt;
&lt;p&gt;這次因為想要打亂檔案的 header , &lt;br /&gt;
所以求快直接使用這種方法比較簡單... 囧&lt;/p&gt;
&lt;h4&gt;參考資料:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;參考了 stackoverflow, 有人回答道: 若遇上這樣的問題, 應該要 partial 去處理.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/8652073/java-heap-space-error-while-reading-file-in-byte-array&quot;&gt;http://stackoverflow.com/questions/8652073/java-heap-space-error-while-reading-file-in-byte-array&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;修改方法&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;修改前&lt;br /&gt;
&lt;code&gt;byte[] b2 = new byte[b.length];
        for (int i = 0; i &amp;lt; b.length; i++) {
            b2[i] = (byte) (b[i] + k);
        }
        return b2;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;修改後(利用 buffer 來改)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;abc
&lt;/code&gt;&lt;/pre&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">Implements equals() for non-primitive types</title>
    <id>https://nelluil.postach.io/post/implements-equals-for-non-primitive-types</id>
    <updated>2018-03-28T02:58:05.802000Z</updated>
    <published>2015-01-21T04:25:23Z</published>
    <link href="https://nelluil.postach.io/post/implements-equals-for-non-primitive-types" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="java" />
    <category term="equals" />
    <category term="non-primitive" />
    <content type="html">&lt;p&gt;這次遇到一個簡單到不行的 &lt;strong&gt;Java&lt;/strong&gt; 小地雷,&lt;/p&gt;
&lt;p&gt;實作物件的 &lt;code&gt;equals()&lt;/code&gt;  時, 若要比對 &lt;strong&gt;non-&lt;br /&gt;
primitive&lt;br /&gt;
 type&lt;/strong&gt; 的 &lt;code&gt;Integer&lt;/code&gt;, &lt;code&gt;Long&lt;/code&gt;, &lt;code&gt;Double&lt;/code&gt; 等物件數值,&lt;/p&gt;
&lt;p&gt;請記得使用 &lt;code&gt;equals()&lt;/code&gt; 不要用 &lt;code&gt;==&lt;/code&gt; ,&lt;/p&gt;
&lt;p&gt;或者自己將 &lt;code&gt;Integer.intValue()&lt;/code&gt; 或 &lt;code&gt;Long.longValue()&lt;/code&gt; 拿出來再用 &lt;code&gt;==&lt;/code&gt; 比&lt;/p&gt;
&lt;p&gt;不然 &lt;code&gt;boolean eq = new Integer(1) == new Integer(1)&lt;/code&gt; 會永遠給你 &lt;code&gt;false&lt;/code&gt;,&lt;/p&gt;
&lt;p&gt;除非夠幸運兩個 &lt;code&gt;Object&lt;/code&gt; 發生 conflict XD&lt;/p&gt;
&lt;p&gt;這是 &lt;code&gt;Integer.equals(obj)&lt;/code&gt; 的實作, 也就是為什麼 &lt;code&gt;equals(obj)&lt;/code&gt; 才會正確的原因&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
    private final int value;

    public boolean equals(Object obj) {
         if (obj instanceof Integer) {
             return value == ((Integer)obj).intValue();
         }
         return false;
     }

&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;參考資料&lt;/h4&gt;
&lt;p&gt;另外參考了 stackoverflow &lt;a href=&quot;http://stackoverflow.com/questions/20541636/compare-non-
primitive
-long-values-127-and-128&quot;&gt;Compare non-&lt;br /&gt;
primitive&lt;br /&gt;
 Long values 127 and 128&lt;/a&gt; 後, 發現 &lt;strong&gt; &lt;code&gt;-128&lt;/code&gt; 到 &lt;code&gt;127&lt;/code&gt; 之間的數值 jvm 會先 cache 起來 &lt;/strong&gt;,&lt;/p&gt;
&lt;p&gt;如下程式碼:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;java&quot;&gt;
        Long a = Long .valueOf(127);
        Long b = Long .valueOf(127);
        boolean eq = a == b; // 是 true

        Long a = Long .valueOf(128);

        Long b = Long .valueOf(128);

        boolean eq = a == b; // 是 false

        boolean eq = new Long(1) == new Long(1); // 但這一樣永遠是 false !

&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;小結:&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;用 &lt;code&gt;==&lt;/code&gt; 去比較 &lt;code&gt;new Long(long)&lt;/code&gt; 的數值都不會相等, &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;用 &lt;code&gt;==&lt;/code&gt; 去比較 &lt;code&gt;Long.valueOf(long)&lt;/code&gt; 的數值只有在 -128 到 127 之間會相等&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;所以若要比較 &lt;strong&gt;non-&lt;br /&gt;
primitive&lt;br /&gt;
 type&lt;/strong&gt; (ex: &lt;code&gt;Integer&lt;/code&gt;, &lt;code&gt;Long&lt;/code&gt;, &lt;code&gt;Double&lt;/code&gt;) 的數值, 請用 &lt;code&gt;equals(obj)&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">透過 SQL 查詢樹狀結構某節點下的所有節點</title>
    <id>https://nelluil.postach.io/post/tong-ji-shu-zhuang-jie-gou-fen-lei-di-xia-ge-wen-jian-fu-jian-fu-dang-ming-zong-shu</id>
    <updated>2015-03-05T08:43:13.963000Z</updated>
    <published>2014-12-26T04:01:15Z</published>
    <link href="https://nelluil.postach.io/post/tong-ji-shu-zhuang-jie-gou-fen-lei-di-xia-ge-wen-jian-fu-jian-fu-dang-ming-zong-shu" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="mssql" />
    <category term="sql" />
    <category term="oracle" />
    <category term="tree" />
    <content type="html">&lt;h4&gt;透過 SQL 查詢 Oracle 樹狀結構某節點下的所有節點&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ORACLE 限定方法&lt;/strong&gt;: &lt;code&gt;START WITH ... CONNECT BY PRIOR ...&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Oracle ex:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;SELECT Id
FROM Category START WITH Id=2 CONNECT BY
PRIOR Id=Parentid
&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;透過 SQL 查詢 MSSQL 樹狀結構某節點下的所有節點&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MSSQL&lt;/strong&gt; 似乎沒有直接的查詢語法(?), 但有 &lt;code&gt;with&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;MSSQL ex:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;WITH n (id, name) AS
    (SELECT id, name
    FROM category
    WHERE id = 2 --父節點 id
    UNION ALL SELECT child.id, child.name
    FROM Category AS child, n
    WHERE n.id = child.parentId)

SELECT * FROM n
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;如果要透過 &lt;code&gt;n&lt;/code&gt; 再查詢, 例如查詢分類樹底下所有 binder&lt;br /&gt;
(假設 &lt;code&gt;Binder&lt;/code&gt; 和 &lt;code&gt;Category&lt;/code&gt; 透過 &lt;code&gt;Binder_Category&lt;/code&gt; 來記錄關聯性)&lt;/p&gt;
&lt;p&gt;&lt;code&gt;WITH n (id, name) AS
  (SELECT id,
          name
   FROM category
   WHERE id = 2 --父節點 id
   UNION ALL SELECT child.id,
                    child.name
   FROM Category AS child, n
   WHERE n.id = child.parentId)
SELECT *
FROM Binder bb
LEFT JOIN Binder_Category bc ON bc.binder_id = bb.id
WHERE bc.cat_id IN (SELECT id FROM n)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(感謝 April 大大教學)&lt;/em&gt;&lt;/p&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">Eclipse 一些好用的快捷鍵</title>
    <id>https://nelluil.postach.io/post/eclipse-yi-xie-hao-yong-de-kuai-jie-jian</id>
    <updated>2015-03-05T08:43:13.974000Z</updated>
    <published>2014-12-08T08:39:26Z</published>
    <link href="https://nelluil.postach.io/post/eclipse-yi-xie-hao-yong-de-kuai-jie-jian" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="eclipse" />
    <content type="html">&lt;p&gt;用了這款 IDE 好幾年, 最近才學會的一些好用的快捷鍵, 把它記錄下來:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Incremental Find: &lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;j&lt;/code&gt;, 按完快捷鍵後轉換mode, 直接輸入要搜尋的文字會跳持續到符合的位置, 若有多個符合可以用方向鍵選取&lt;/li&gt;
&lt;li&gt;Find Next: &lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;k&lt;/code&gt;, 將文字圈選後, 按下快捷鍵直接搜尋下一個&lt;/li&gt;
&lt;li&gt;Last Edit Position: &lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;Q&lt;/code&gt;, 跳到整個 workspace 工作階段&lt;strong&gt;最後編輯&lt;/strong&gt;的位置&lt;/li&gt;
&lt;li&gt;Goto Line: &lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;L&lt;/code&gt;, 跳到某一行&lt;/li&gt;
&lt;li&gt;Find Method/field: &lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;o&lt;/code&gt;, 搜尋 Class 的函式或屬性&lt;/li&gt;
&lt;li&gt;Matching Brace: &lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;Shift&lt;/code&gt; + &lt;code&gt;p&lt;/code&gt;, 找到對應的大中小括號&lt;/li&gt;
&lt;li&gt;Column Edit Mode: &lt;code&gt;Shift&lt;/code&gt; + &lt;code&gt;Alt&lt;/code&gt; + &lt;code&gt;A&lt;/code&gt;, 切換編輯模式&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;補充&lt;/h4&gt;
&lt;p&gt;Windows8/Windows8.1 的內建新注音輸入法, 預設會啟用 &lt;code&gt;Ctrl&lt;/code&gt; 來輸入標點符號, &lt;br /&gt;
  這會導致無法在 Eclipse 中使用 Block Comment (&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;Shift&lt;/code&gt; &lt;br /&gt;
+ &lt;code&gt;/&lt;/code&gt;)的功能, 會變成輸入全形的問號 &lt;code&gt;？&lt;/code&gt;, &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;關掉的方法: 對右下角工作列的 &lt;code&gt;中&lt;/code&gt;右鍵-&amp;gt;&lt;code&gt;內容&lt;/code&gt;-&amp;gt;&lt;code&gt;進階&lt;/code&gt;-&amp;gt;&lt;code&gt;標點符號輸入&lt;/code&gt;設為不使用 &lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;InstaSearch&lt;/h4&gt;
&lt;p&gt;另外分享一個程式碼全文搜尋用的 Plug-in: &lt;code&gt;InstaSearch&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Marketplace 連結: &lt;a href=&quot;http://marketplace.eclipse.org/content/instasearch&quot;&gt;http://marketplace.eclipse.org/content/instasearch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;搜尋速度比 &lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;h&lt;/code&gt; 的全文檢索快上一大截&lt;/li&gt;
&lt;li&gt;同樣能針對檔案型態進行搜尋: 例如: &lt;code&gt;*.java&lt;/code&gt;, &lt;code&gt;*.xml&lt;/code&gt;, &lt;code&gt;*.js&lt;/code&gt; ...&lt;/li&gt;
&lt;li&gt;但因為模糊比對, 常會出現太多結果而找不到, 所以有好有壞...&lt;ul&gt;
&lt;li&gt;(第一次在 workspace 使用 InstaSearch 時, 會花上一點時間製作索引)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">Eclipse 的啟動參數 data</title>
    <id>https://nelluil.postach.io/post/eclipse-de-qi-dong-can-shu-data</id>
    <updated>2015-03-05T08:43:13.977000Z</updated>
    <published>2014-11-25T03:12:53Z</published>
    <link href="https://nelluil.postach.io/post/eclipse-de-qi-dong-can-shu-data" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="eclipse" />
    <content type="html">&lt;p&gt;在 Windows 上, eclipse 的捷徑可以加上啟動參數 &lt;code&gt;-data ${workspace}&lt;/code&gt;,&lt;/p&gt;
&lt;p&gt;讓啟動時直接指定 Workspace 開啟&lt;/p&gt;
&lt;p&gt;如此就不用每次打開會要先選 workspace, 選完還得跑個10秒才出現&lt;br /&gt;
Ex: &lt;code&gt;C:\eclips\eclipse.exe -data &quot;C:\workspace\WRA012345&quot;&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;若搭配 Launchy, 將捷徑名稱設定好, 整個就超方便&lt;br /&gt;
例如: 捷徑命名為 &lt;code&gt;eclipse_WRA012345.lnk&lt;/code&gt;&lt;br /&gt;
只要按下快捷鍵打開 launchy 並打 &lt;code&gt;WRA&lt;/code&gt; 3個英文字就可以選到這個專案並開啟&lt;br /&gt;
(因為 Launchy 有模糊比對的功能)&lt;br /&gt;
&lt;a href=&quot;http://www.launchy.net&quot;&gt;Launchy&lt;/a&gt; 在 Win8/8.1 上尤其好用!&lt;/p&gt;
&lt;/blockquote&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">刪除金山雲U盤 (我的電腦捷徑) (小米WiFi / 金山云U盘)</title>
    <id>https://nelluil.postach.io/post/shan-chu-wo-de-dian-nao-jin-shan-yun-upan-jie-jing-xiao-mi-wifi</id>
    <updated>2015-03-05T08:43:13.981000Z</updated>
    <published>2014-11-20T01:40:02Z</published>
    <link href="https://nelluil.postach.io/post/shan-chu-wo-de-dian-nao-jin-shan-yun-upan-jie-jing-xiao-mi-wifi" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="xiaomi" />
    <content type="html">&lt;h4&gt;移除金山雲U盤方法(2015年1月6日更新)&lt;/h4&gt;
&lt;p&gt;找到 &lt;code&gt;C:\Program Files (x86)\XiaoMi\MiWiFi\kuaipan&lt;/code&gt; 目錄底下的 &lt;code&gt;uninstall.exe&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;執行它就是對雲U盤的完整移除, 如此就不需要處理我的電腦中的捷徑了&lt;/p&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li&gt;執行: &lt;code&gt;regedit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;找到: &lt;code&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{01249E9F-88FF-45d5-82DB-A1BEE06E123C}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;然後刪掉它 (如果怕有問題可以先對它按右鍵-&amp;gt;匯出, 將 reg 備份下來)&lt;/li&gt;
&lt;li&gt;再重新啟動 &lt;code&gt;explorer.exe&lt;/code&gt; 或是直接重開機, 應該就成功了&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;P.S.&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;我自己嘗試時, 雖然最後一個機碼不相同, 但刪除機碼後捷徑也會消失.&lt;/li&gt;
&lt;li&gt;重新啟動後圖示又出現了, 但可對其移除.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h4&gt;REF:&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://bbs.xiaomi.cn/thread-10702622-1-1.html&quot;&gt;小米論壇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bbs.xiaomi.cn/thread-10615354-1-1.html&quot;&gt;小米論壇&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">Tomcat 弱點 Apache Tomcat Default Error Page Version Detection 與修復方式</title>
    <id>https://nelluil.postach.io/post/tomcat-ruo-dian-apache-tomcat-default-error-page-version-detection-yu-xiu-fu-fang-shi</id>
    <updated>2015-03-05T08:43:13.983000Z</updated>
    <published>2014-11-07T10:50:59Z</published>
    <link href="https://nelluil.postach.io/post/tomcat-ruo-dian-apache-tomcat-default-error-page-version-detection-yu-xiu-fu-fang-shi" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="tomcat" />
    <content type="html">&lt;p&gt;該弱點 &lt;code&gt;Apache Tomcat Default Error Page Version Detection&lt;/code&gt;&lt;br /&gt;
意思是在 tomcat 的預設錯誤頁會呈現 Tomcat 版本, 可能讓攻擊者得知該版本有什麼弱點並藉此攻擊&lt;/p&gt;
&lt;p&gt;這個弱點修復要替換 jar 檔 &lt;code&gt;catalina.jar&lt;/code&gt;  中的檔案: &lt;code&gt;org/apache/catalina/util/ServerInfo.properties&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;原本這行是: &lt;code&gt;server.info=Apache Tomcat/7.042&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;把版本號拿掉變成: &lt;code&gt;server.info=Apache Tomcat&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;如附件截圖, 修改後就不會在 Default Error Page 出現 Tomcat 版本&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn-images.postach.io/w600_326bcd66a83112ef284f4a6c5951d9fa.png&quot;  style=&quot;cursor: default;&quot;/&gt;&lt;br /&gt;
&lt;img src=&quot;https://cdn-images.postach.io/w600_1eaeb2923aa2f3eedfb1de5a18c2e227.png&quot;  style=&quot;cursor: default;&quot;/&gt;&lt;/p&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">MSSQL Server 對已經存在的 table 增加識別 id 欄位 (從1開始)</title>
    <id>https://nelluil.postach.io/post/mssql-server-dui-yi-jing-cun-zai-de-table-zeng-jia-shi-bie-id-lan-wei-cong-1kai-shi</id>
    <updated>2015-03-05T08:43:13.985000Z</updated>
    <published>2014-11-07T03:47:24Z</published>
    <link href="https://nelluil.postach.io/post/mssql-server-dui-yi-jing-cun-zai-de-table-zeng-jia-shi-bie-id-lan-wei-cong-1kai-shi" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="mssql" />
    <category term="sql" />
    <content type="html">&lt;h3&gt;Sql Server add auto increment primary key to existing table&lt;/h3&gt;
&lt;p&gt;No - you have to do it the other way around: add it right from the get go as &lt;code&gt;INT IDENTITY&lt;/code&gt; - it will be filled with identity values when you do this:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;sql&quot;&gt;ALTER TABLE dbo.YourTable
  ADD ID INT IDENTITY
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;and then you can make it the primary key:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;sql&quot;&gt;ALTER TABLE dbo.YourTable
  ADD CONSTRAINT PK_YourTable
  PRIMARY KEY(ID)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;REF: &lt;a href=&quot;http://stackoverflow.com&quot;&gt;http://stackoverflow.com/questions/4862385/sql-server-add-auto-increment-primary-key-to-existing-table&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">SQL Server：匯入資料遭遇“文字已截斷”錯誤</title>
    <id>https://nelluil.postach.io/post/sql-server-hui-ru-zi-liao-zao-yu-wen-zi-yi-jie-duan-cuo-wu-lan-hua-xin-de-bao-gao-pi-ke-bang-pixnet</id>
    <updated>2015-03-05T08:43:13.987000Z</updated>
    <published>2014-11-07T02:54:57Z</published>
    <link href="https://nelluil.postach.io/post/sql-server-hui-ru-zi-liao-zao-yu-wen-zi-yi-jie-duan-cuo-wu-lan-hua-xin-de-bao-gao-pi-ke-bang-pixnet" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="mssql" />
    <category term="sql" />
    <content type="html">&lt;p&gt;匯入大檔, 錯誤大概都會長這樣...&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn-images.postach.io/w600_8f155d0783dc9380c3f4c4516af1f252.jpg&quot;  style=&quot;cursor: default;&quot;/&gt;&lt;/p&gt;
&lt;h3&gt;原文告訴大家改用一般檔案來源, 且匯入時對應的欄位型態要修改!&lt;/h3&gt;
&lt;h4&gt;以下整理自原文的建議:&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;資料來源選擇: &lt;code&gt;一般檔案來源&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;選好欲匯入的檔案，左側點選 &lt;code&gt;進階&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;將文字欄位的 DataType 改成 &lt;code&gt;文字資料流[DT_TEXT]&lt;/code&gt;&lt;br /&gt;
&lt;img src=&quot;https://cdn-images.postach.io/w600_e8aec946e8e12736097ceccc278f27ba.jpg&quot;  style=&quot;cursor: default;&quot;/&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;將整數欄位的 DataType 改成 &lt;code&gt;二位元組不帶正負號的整數[DT_UI2]&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;圖片來源: &lt;a href=&quot;蘭花心得報告&quot;&gt;http://lanfar.pixnet.net&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;REF: &lt;a href=&quot;http://lanfar.pixnet.net/blog/post/40707319-sql-server%EF%BC%9A%E5%8C%AF%E5%85%A5%E8%B3%87%E6%96%99%E9%81%AD%E9%81%87%E2%80%9C%E6%96%87%E5%AD%97%E5%B7%B2%E6%88%AA%E6%96%B7%E2%80%9D%E9%8C%AF%E8%AA%A4&quot;&gt;SQL Server：匯入資料遭遇“文字已截斷&quot;錯誤&lt;/a&gt; from 蘭花❉心得報告&lt;/p&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">在 Tomcat 關閉已被證實不安全的  SSLv3 protocol, 並改用 TLS</title>
    <id>https://nelluil.postach.io/post/zai-tomcat-guan-bi-yi-bei-zheng-shi-bu-an-quan-de-sslv3-protocol-bing-gai-yong-tls</id>
    <updated>2015-03-05T08:43:13.989000Z</updated>
    <published>2014-10-23T08:15:42Z</published>
    <link href="https://nelluil.postach.io/post/zai-tomcat-guan-bi-yi-bei-zheng-shi-bu-an-quan-de-sslv3-protocol-bing-gai-yong-tls" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="tomcat" />
    <category term="ssl" />
    <category term="tls" />
    <content type="html">&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;修改檔案 &lt;code&gt;Tomcat7\conf\server.xml&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在 &lt;code&gt;connector&lt;/code&gt; 增加 attribute: &lt;code&gt;sslEnabledProtocols=&quot;TLSv1,TLSv1.1,TLSv1.2&quot;&lt;/code&gt; , 並拿掉 cipher 中非 TLS 的項&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;修改前&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;xml&quot;&gt;
               maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;
                  keystoreFile=&amp;quot;tomcat.keystore&amp;quot; keystorePass=&amp;quot;intumit&amp;quot;
                  ciphers=&amp;quot;SSL_RSA_WITH_RC4_128_SHA,
                  TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
                  TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA,
                  SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA&amp;quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;修改後&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;xml&quot;&gt;
               maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;
               clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;
                  keystoreFile=&amp;quot;tomcat.keystore&amp;quot; keystorePass=&amp;quot;intumit&amp;quot;
                  sslEnabledProtocols=&amp;quot;TLSv1,TLSv1.1,TLSv1.2&amp;quot;
                  ciphers=&amp;quot;TLS_RSA_WITH_AES_128_CBC_SHA,
                  TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
                  TLS_DHE_DSS_WITH_AES_128_CBC_SHA&amp;quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;修改前 sslscan 掃描&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;                   _
           ___ ___| |___  ___ __ _ _ __
          / __/ __| / __|/ __/ _` | &amp;amp;apos;_ \
          \__ \__ \ \__ \ (_| (_| | | | |
          |___/___/_|___/\___\__,_|_| |_|

                  Version 1.8.2-win
             http://www.titania.co.uk
        Copyright Ian Ventura-Whiting 2009
    Compiled against OpenSSL 0.9.8m 25 Feb 2010

Testing SSL server 10.254.1.233 on port 443

  Supported Server Cipher(s):
    Rejected  SSLv2  168 bits  DES-CBC3-MD5
    Rejected  SSLv2   56 bits  DES-CBC-MD5
    Rejected  SSLv2  128 bits  IDEA-CBC-MD5
    Rejected  SSLv2   40 bits  EXP-RC2-CBC-MD5
    Rejected  SSLv2  128 bits  RC2-CBC-MD5
    Rejected  SSLv2   40 bits  EXP-RC4-MD5
    Rejected  SSLv2  128 bits  RC4-MD5
    Rejected  SSLv3  256 bits  ADH-AES256-SHA
    Rejected  SSLv3  256 bits  DHE-RSA-AES256-SHA
    Rejected  SSLv3  256 bits  DHE-DSS-AES256-SHA
    Rejected  SSLv3  256 bits  AES256-SHA
    Rejected  SSLv3  128 bits  ADH-AES128-SHA
    Accepted  SSLv3  128 bits  DHE-RSA-AES128-SHA
    Rejected  SSLv3  128 bits  DHE-DSS-AES128-SHA
    Accepted  SSLv3  128 bits  AES128-SHA
    Rejected  SSLv3  168 bits  ADH-DES-CBC3-SHA
    Rejected  SSLv3   56 bits  ADH-DES-CBC-SHA
    Rejected  SSLv3   40 bits  EXP-ADH-DES-CBC-SHA
    Rejected  SSLv3  128 bits  ADH-RC4-MD5
    Rejected  SSLv3   40 bits  EXP-ADH-RC4-MD5
    Accepted  SSLv3  168 bits  EDH-RSA-DES-CBC3-SHA
    Rejected  SSLv3   56 bits  EDH-RSA-DES-CBC-SHA
    Rejected  SSLv3   40 bits  EXP-EDH-RSA-DES-CBC-SHA
    Rejected  SSLv3  168 bits  EDH-DSS-DES-CBC3-SHA
    Rejected  SSLv3   56 bits  EDH-DSS-DES-CBC-SHA
    Rejected  SSLv3   40 bits  EXP-EDH-DSS-DES-CBC-SHA
    Accepted  SSLv3  168 bits  DES-CBC3-SHA
    Rejected  SSLv3   56 bits  DES-CBC-SHA
    Rejected  SSLv3   40 bits  EXP-DES-CBC-SHA
    Rejected  SSLv3  128 bits  IDEA-CBC-SHA
    Rejected  SSLv3   40 bits  EXP-RC2-CBC-MD5
    Accepted  SSLv3  128 bits  RC4-SHA
    Rejected  SSLv3  128 bits  RC4-MD5
    Rejected  SSLv3   40 bits  EXP-RC4-MD5
    Rejected  SSLv3    0 bits  NULL-SHA
    Rejected  SSLv3    0 bits  NULL-MD5
    Rejected  TLSv1  256 bits  ADH-AES256-SHA
    Rejected  TLSv1  256 bits  DHE-RSA-AES256-SHA
    Rejected  TLSv1  256 bits  DHE-DSS-AES256-SHA
    Rejected  TLSv1  256 bits  AES256-SHA
    Rejected  TLSv1  128 bits  ADH-AES128-SHA
    Accepted  TLSv1  128 bits  DHE-RSA-AES128-SHA
    Rejected  TLSv1  128 bits  DHE-DSS-AES128-SHA
    Accepted  TLSv1  128 bits  AES128-SHA
    Rejected  TLSv1  168 bits  ADH-DES-CBC3-SHA
    Rejected  TLSv1   56 bits  ADH-DES-CBC-SHA
    Rejected  TLSv1   40 bits  EXP-ADH-DES-CBC-SHA
    Rejected  TLSv1  128 bits  ADH-RC4-MD5
    Rejected  TLSv1   40 bits  EXP-ADH-RC4-MD5
    Accepted  TLSv1  168 bits  EDH-RSA-DES-CBC3-SHA
    Rejected  TLSv1   56 bits  EDH-RSA-DES-CBC-SHA
    Rejected  TLSv1   40 bits  EXP-EDH-RSA-DES-CBC-SHA
    Rejected  TLSv1  168 bits  EDH-DSS-DES-CBC3-SHA
    Rejected  TLSv1   56 bits  EDH-DSS-DES-CBC-SHA
    Rejected  TLSv1   40 bits  EXP-EDH-DSS-DES-CBC-SHA
    Accepted  TLSv1  168 bits  DES-CBC3-SHA
    Rejected  TLSv1   56 bits  DES-CBC-SHA
    Rejected  TLSv1   40 bits  EXP-DES-CBC-SHA
    Rejected  TLSv1  128 bits  IDEA-CBC-SHA
    Rejected  TLSv1   40 bits  EXP-RC2-CBC-MD5
    Accepted  TLSv1  128 bits  RC4-SHA
    Rejected  TLSv1  128 bits  RC4-MD5
    Rejected  TLSv1   40 bits  EXP-RC4-MD5
    Rejected  TLSv1    0 bits  NULL-SHA
    Rejected  TLSv1    0 bits  NULL-MD5

  Prefered Server Cipher(s):
    SSLv3  128 bits  DHE-RSA-AES128-SHA
    TLSv1  128 bits  DHE-RSA-AES128-SHA

  SSL Certificate:
    Version: 2
    Serial Number: -4294967295
    Signature Algorithm: sha1WithRSAEncryption
    Issuer: 馬賽克
    Not valid before: Feb 19 07:35:50 2014 GMT
    Not valid after: Feb 19 07:35:50 2016 GMT
    Subject: 馬賽克
    Public Key Algorithm: rsaEncryption
    RSA Public Key: (1024 bit)
      Modulus (1024 bit):
          00:ad:e3:69:8a:78:d3:f3:fa:0d:60:33:ca:fe:25:
          94:9b:1e:04:85:36:10:ac:76:63:82:62:61:f8:f5:
          eb:0d:31:69:8c:80:54:91:3e:b5:a3:25:05:0a:22:
          5e:5e:b1:c9:fa:9c:a6:08:71:3c:09:dc:22:7a:ee:
          56:96:2c:b3:57:88:02:b0:9f:7b:7d:72:e7:79:bf:
          1f:d6:a0:85:3f:b0:10:c3:dc:46:86:1c:e4:51:c8:
          7c:d4:c2:fb:42:f7:6e:b3:63:f1:6c:2a:38:7a:29:
          35:16:5a:ee:ff:a2:eb:31:0b:40:7e:96:66:8f:f2:
          ac:5b:29:8b:33:74:cd:84:4b
      Exponent: 65537 (0x10001)
    X509v3 Extensions:
      X509v3 Subject Key Identifier:
        8B:E6:57:28:9C:DE:99:FE:A6:95:15:89:10:5C:85:AC:6F:3D:CB:90
      X509v3 Authority Key Identifier:
        keyid:0C:CE:36:BA:EB:3D:14:35:D7:C5:C3:CA:59:8B:27:81:8F:59:CD:6F

      X509v3 CRL Distribution Points:
        URI:馬賽克
        URI:馬賽克

      Authority Information Access:
        CA Issuers - URI:馬賽克
        CA Issuers - URI:馬賽克

      1.3.6.1.4.1.311.20.2:
        ...W.e.b.S.e.r.v.e.r
      X509v3 Basic Constraints: critical
        CA:FALSE
      X509v3 Key Usage:
        Digital Signature, Key Encipherment
      X509v3 Extended Key Usage:
        TLS Web Server Authentication
  Verify Certificate:
    self signed certificate in certificate chain

&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;修改後 sslscan 掃描&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;                   _
           ___ ___| |___  ___ __ _ _ __
          / __/ __| / __|/ __/ _` | &amp;amp;apos;_ \
          \__ \__ \ \__ \ (_| (_| | | | |
          |___/___/_|___/\___\__,_|_| |_|

                  Version 1.8.2-win
             http://www.titania.co.uk
        Copyright Ian Ventura-Whiting 2009
    Compiled against OpenSSL 0.9.8m 25 Feb 2010

Testing SSL server blahblah.com on port 443

  Supported Server Cipher(s):
    Rejected  SSLv2  168 bits  DES-CBC3-MD5
    Rejected  SSLv2   56 bits  DES-CBC-MD5
    Rejected  SSLv2  128 bits  IDEA-CBC-MD5
    Rejected  SSLv2   40 bits  EXP-RC2-CBC-MD5
    Rejected  SSLv2  128 bits  RC2-CBC-MD5
    Rejected  SSLv2   40 bits  EXP-RC4-MD5
    Rejected  SSLv2  128 bits  RC4-MD5
    Failed    SSLv3  256 bits  ADH-AES256-SHA
    Failed    SSLv3  256 bits  DHE-RSA-AES256-SHA
    Failed    SSLv3  256 bits  DHE-DSS-AES256-SHA
    Failed    SSLv3  256 bits  AES256-SHA
    Failed    SSLv3  128 bits  ADH-AES128-SHA
    Failed    SSLv3  128 bits  DHE-RSA-AES128-SHA
    Failed    SSLv3  128 bits  DHE-DSS-AES128-SHA
    Failed    SSLv3  128 bits  AES128-SHA
    Failed    SSLv3  168 bits  ADH-DES-CBC3-SHA
    Failed    SSLv3   56 bits  ADH-DES-CBC-SHA
    Failed    SSLv3   40 bits  EXP-ADH-DES-CBC-SHA
    Failed    SSLv3  128 bits  ADH-RC4-MD5
    Failed    SSLv3   40 bits  EXP-ADH-RC4-MD5
    Failed    SSLv3  168 bits  EDH-RSA-DES-CBC3-SHA
    Failed    SSLv3   56 bits  EDH-RSA-DES-CBC-SHA
    Failed    SSLv3   40 bits  EXP-EDH-RSA-DES-CBC-SHA
    Failed    SSLv3  168 bits  EDH-DSS-DES-CBC3-SHA
    Failed    SSLv3   56 bits  EDH-DSS-DES-CBC-SHA
    Failed    SSLv3   40 bits  EXP-EDH-DSS-DES-CBC-SHA
    Failed    SSLv3  168 bits  DES-CBC3-SHA
    Failed    SSLv3   56 bits  DES-CBC-SHA
    Failed    SSLv3   40 bits  EXP-DES-CBC-SHA
    Failed    SSLv3  128 bits  IDEA-CBC-SHA
    Failed    SSLv3   40 bits  EXP-RC2-CBC-MD5
    Failed    SSLv3  128 bits  RC4-SHA
    Failed    SSLv3  128 bits  RC4-MD5
    Failed    SSLv3   40 bits  EXP-RC4-MD5
    Failed    SSLv3    0 bits  NULL-SHA
    Failed    SSLv3    0 bits  NULL-MD5
    Rejected  TLSv1  256 bits  ADH-AES256-SHA
    Rejected  TLSv1  256 bits  DHE-RSA-AES256-SHA
    Rejected  TLSv1  256 bits  DHE-DSS-AES256-SHA
    Rejected  TLSv1  256 bits  AES256-SHA
    Rejected  TLSv1  128 bits  ADH-AES128-SHA
    Accepted  TLSv1  128 bits  DHE-RSA-AES128-SHA
    Rejected  TLSv1  128 bits  DHE-DSS-AES128-SHA
    Accepted  TLSv1  128 bits  AES128-SHA
    Rejected  TLSv1  168 bits  ADH-DES-CBC3-SHA
    Rejected  TLSv1   56 bits  ADH-DES-CBC-SHA
    Rejected  TLSv1   40 bits  EXP-ADH-DES-CBC-SHA
    Rejected  TLSv1  128 bits  ADH-RC4-MD5
    Rejected  TLSv1   40 bits  EXP-ADH-RC4-MD5
    Rejected  TLSv1  168 bits  EDH-RSA-DES-CBC3-SHA
    Rejected  TLSv1   56 bits  EDH-RSA-DES-CBC-SHA
    Rejected  TLSv1   40 bits  EXP-EDH-RSA-DES-CBC-SHA
    Rejected  TLSv1  168 bits  EDH-DSS-DES-CBC3-SHA
    Rejected  TLSv1   56 bits  EDH-DSS-DES-CBC-SHA
    Rejected  TLSv1   40 bits  EXP-EDH-DSS-DES-CBC-SHA
    Rejected  TLSv1  168 bits  DES-CBC3-SHA
    Rejected  TLSv1   56 bits  DES-CBC-SHA
    Rejected  TLSv1   40 bits  EXP-DES-CBC-SHA
    Rejected  TLSv1  128 bits  IDEA-CBC-SHA
    Rejected  TLSv1   40 bits  EXP-RC2-CBC-MD5
    Rejected  TLSv1  128 bits  RC4-SHA
    Rejected  TLSv1  128 bits  RC4-MD5
    Rejected  TLSv1   40 bits  EXP-RC4-MD5
    Rejected  TLSv1    0 bits  NULL-SHA
    Rejected  TLSv1    0 bits  NULL-MD5

  Prefered Server Cipher(s):
    TLSv1  128 bits  DHE-RSA-AES128-SHA

&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;SSL/TLS 設定參考資料&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;http://en.wikipedia.org/wiki/Transport_Layer_Security#Cipher&lt;/li&gt;
&lt;li&gt;http://security.stackexchange.com/questions/19096/how-to-determine-if-a-browser-is-using-an-ssl-or-tls-connection&lt;/li&gt;
&lt;li&gt;http://askubuntu.com/questions/537196/how-do-i-patch-workaround-sslv3-poodle-vulnerability-cve-2014-3566&lt;/li&gt;
&lt;li&gt;https://blog.eveoh.nl/2014/02/tls-ssl-ciphers-pfs-tomcat/&lt;/li&gt;
&lt;li&gt;https://wiki.mozilla.org/Security/Server_Side_TLS&lt;/li&gt;
&lt;/ol&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">SQL Server Drop All The Tables</title>
    <id>https://nelluil.postach.io/post/sql-server-drop-all-the-tables</id>
    <updated>2015-03-05T08:43:13.992000Z</updated>
    <published>2014-09-17T06:28:55Z</published>
    <link href="https://nelluil.postach.io/post/sql-server-drop-all-the-tables" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="mssql" />
    <category term="sql" />
    <content type="html">&lt;p&gt;這就是 &lt;code&gt;Stored Procedures&lt;/code&gt;, 不過這似乎要有權限才能完成!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;EXEC sp_MSforeachtable @command1 = &amp;quot;DROP TABLE ?&amp;quot;
&lt;/code&gt;&lt;/pre&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">How to fetch the row count for all tables in a SQL SERVER database</title>
    <id>https://nelluil.postach.io/post/how-to-fetch-the-row-count-for-all-tables-in-a-sql-server-database</id>
    <updated>2015-03-05T08:43:14.002000Z</updated>
    <published>2014-09-16T03:28:00Z</published>
    <link href="https://nelluil.postach.io/post/how-to-fetch-the-row-count-for-all-tables-in-a-sql-server-database" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="mssql" />
    <category term="sql" />
    <content type="html">&lt;p&gt;The following SQL will get you the row count of all tables in a database:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;CREATE TABLE #counts
(
    table_name varchar(255),
    row_count int
)

EXEC sp_MSForEachTable @command1=&amp;amp;apos;INSERT #counts (table_name, row_count) SELECT &amp;amp;apos;&amp;amp;apos;?&amp;amp;apos;&amp;amp;apos;, COUNT(*) FROM ?&amp;amp;apos;SELECT table_name, row_count FROM #counts ORDER BY table_name, row_count DESC
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The output will be a list of tables and their row counts.&lt;br /&gt;
If you just want the total row count across the whole database, appending:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SELECT SUM(row_count) AS total_row_count FROM #counts
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;will get you a single value for the total number of rows in the whole database.&lt;/p&gt;
&lt;p&gt;REF: &lt;br /&gt;
&lt;a href=&quot;http://stackoverflow.com/questions/2221555/how-to-fetch-the-row-count-for-all-tables-in-a-sql-server-database&quot;&gt;Fetch_row_count_for_all_tables_in_a_SQL_SERVER&lt;/a&gt;  by adrianbanks from &lt;a href=&quot;stackoverflow.com&quot;&gt;stackoverflow.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">7za(7-zip commad-line) 壓縮備份</title>
    <id>https://nelluil.postach.io/post/7za-7-zip-commad-line-ya-suo-bei-fen</id>
    <updated>2015-03-05T08:43:14.006000Z</updated>
    <published>2014-09-09T09:27:28Z</published>
    <link href="https://nelluil.postach.io/post/7za-7-zip-commad-line-ya-suo-bei-fen" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="gist" />
    <category term="backup" />
    <category term="7-zip" />
    <content type="html">&lt;ol&gt;
&lt;li&gt;藉由 Windows 排程每天執行一次&lt;/li&gt;
&lt;li&gt;透過 7-zip 打包指定資料夾, 存在 local 端目錄&lt;/li&gt;
&lt;li&gt;掛載網路磁碟機, 並上傳至指定位置&lt;/li&gt;
&lt;li&gt;刪除 local 端目錄超過 7 天的備份檔&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;gist&lt;/h3&gt;
&lt;p&gt;&lt;script src=&quot;https://gist.github.com/Liullen/69a09b94f97ef02b931b.js&quot;&gt;&lt;/script&gt;&lt;/p&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">Tomcat SSL 憑證產生教學</title>
    <id>https://nelluil.postach.io/post/tomcat-ssl-ping-zheng-chan-sheng-jiao-xue</id>
    <updated>2015-03-05T08:43:14.012000Z</updated>
    <published>2014-09-04T03:53:15Z</published>
    <link href="https://nelluil.postach.io/post/tomcat-ssl-ping-zheng-chan-sheng-jiao-xue" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="tomcat" />
    <category term="ssl" />
    <content type="html">&lt;h3&gt;Step1. 建立 private key金鑰&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;C:\j2sdk1.4.2_05\bin&amp;gt;keytool -genkey -alias mykey( 別名 :可自設) -validity 720( 效期 ) -keyalg RSA -keysize 1024 -keystore tomcat.keystore(產出的 keystore檔名) -storepass mypassword( 密碼自設 ) –keypass mypassword(密碼自設)
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Step 2. 輸入憑證資訊&lt;/h3&gt;
&lt;p&gt;一般名字與姓名會輸入該網站的 daman，若測試輸入localhost即可，其他資訊看客戶是否有要求，否則隨意填即可。&lt;br /&gt;
&lt;img src=&quot;https://cdn-images.postach.io/w600_34222908728385086b7ecfbd537ea8c9.png&quot;  style=&quot;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;&quot;/&gt;&lt;/p&gt;
&lt;h3&gt;Step 3. 產出憑證要求的 CSR檔&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;C:\j2sdk1.4.2_05\bin&amp;gt;keytool -certreq -alias mykey(Step1 設定的別名 ) -file cert.csr(產出的csr 檔名 ) -keystore tomcat.keystore (Step1產出的 keystore檔) -storepass mypassword(Step1 keystore密碼 )
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images.postach.io/w600_be41a3cb47a43ed1debbe885581b3d73.png&quot;  style=&quot;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;&quot;/&gt;&lt;br /&gt;
匯出的憑證內容&lt;/p&gt;
&lt;h3&gt;Step 4. 匯入 CRE憑證檔&lt;/h3&gt;
&lt;p&gt;利用 CSR檔產回CRE 憑證檔進行匯入。&lt;br /&gt;
此時，請確認客戶產出 CRE檔的程式，是否有根憑證或中繼憑證，若有麻煩先匯入根憑證及中繼憑證，否則會無法匯入憑證。&lt;br /&gt;
方法 1: 根憑證及中繼憑證匯入Java Security ，再匯入產出的 CRE憑證檔&lt;/p&gt;
&lt;h4&gt;Step 4-1-1.匯入根憑證及中繼憑證&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;C:\j2sdk1.4.2_05\bin&amp;gt;keytool -import -trustcacerts -alias tomcat( 別名 :可自設) -file server.cer(根憑證、中繼憑證 ) -keystore  %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit(jre預設密碼是 changeit)
&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;Step 4-1-2.匯入產出的憑證&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;C:\j2sdk1.4.2_05\bin&amp;gt;keytool -import -trustcacerts -alias mykey(Step1 設定的別名 ) -file cert.cer(產出的憑證檔 ) -keystore tomcat.keystore(Step1產出的keystore 檔) -storepass mypassword(Step1 keystore密碼 )
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;方法 2:直接匯入keystore( 依信任關係，由最上層憑證，依序往下安裝 )&lt;/p&gt;
&lt;h4&gt;Step 4-2-1.匯入根憑證及中繼憑證&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;C:\j2sdk1.4.2_05\bin&amp;gt; keytool -import -alias mykey(別名 :可自設) -file server.cer(根憑證、中繼憑證 ) -keystore tomcat .keystore(Step1產出的 keystore檔) -storepass mypassword(Step1 keystore密碼 )
&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;Step 4-2-2.匯入產出的憑證&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;C:\j2sdk1.4.2_05\bin&amp;gt;keytool -import -trustcacerts -alias mykey(Step1 設定的別名 ) -file cert.cer(產出的憑證檔 ) -keystore tomcat.keystore(Step1產出的keystore 檔) -storepass mypassword(Step1 keystore密碼 )
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images.postach.io/w600_19a7c27ea3d0a7ec519d532f53c6748f.png&quot;  style=&quot;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;&quot;/&gt;&lt;br /&gt;
匯入完成的訊息&lt;/p&gt;
&lt;h3&gt;Step 5.修改Tomcat server.xml 的設定&lt;/h3&gt;
&lt;p&gt;&lt;script src=&quot;https://gist.github.com/Liullen/c699b1646e24b9b93338.js&quot;&gt;&lt;/script&gt;&lt;/p&gt;
&lt;h3&gt;PS.&lt;/h3&gt;
&lt;p&gt;1.如果客戶是自己認證沒經過第三方大廠，匯入客戶的根憑證及中繼憑證是一定要的，不然匯不進去。&lt;br /&gt;
2.記得要改成 &lt;code&gt;protocol=&quot;org.apache.coyote.http11.Http11Protocol&quot;&lt;/code&gt;  ，APR 的方式測試都不成功，等有人成功可以分享一下。&lt;br /&gt;
3.查詢keystore 資訊語法&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;keytool -list -keystore tomcat.keystore(Step1 產出的 keystore檔) -storepass mypassword(Step1 keystore密碼 )
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;感謝 Nick 教學&lt;/strong&gt;&lt;/p&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">透過用 Gist 實現含版本控制代辦事項</title>
    <id>https://nelluil.postach.io/post/tou-guo-yong-gist-shi-xian-han-ban-ben-kong-zhi-dai-ban-shi-xiang</id>
    <updated>2015-03-05T08:43:14.015000Z</updated>
    <published>2014-09-02T06:16:20Z</published>
    <link href="https://nelluil.postach.io/post/tou-guo-yong-gist-shi-xian-han-ban-ben-kong-zhi-dai-ban-shi-xiang" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="git" />
    <content type="html">&lt;p&gt;我一直找不到簡單的 todo 代辦事項工具, 後來被我翻到這個: &lt;strong&gt;gist&lt;/strong&gt;, &lt;/p&gt;
&lt;p&gt;如果妳會 markdown 又會 git 或許可以試試看&lt;/p&gt;
&lt;p&gt;只要你擁有 github 帳號,&lt;br /&gt;
並在 gist 建立一個 markdown (檔名設為 *.md 就會自動被判斷為 markdown)&lt;br /&gt;
只要 .md 的內容按下圖規則輸入 (空隔 減號 空隔 左中刮號 空隔 右中括號 空隔 內容),&lt;/p&gt;
&lt;p&gt;&lt;code&gt;- [ ] 一個待辦事項&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;- [x] 一個勾選的代辦事項&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn-images.postach.io/w600_a98e478cc1567d0292e8e45b5e7c6533.png&quot;  style=&quot;cursor: default;cursor: default;&quot;/&gt;&lt;/p&gt;
&lt;p&gt;將該 markdown 儲存之後, 神奇的事情就發生了&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn-images.postach.io/w600_8d8c58422f489f9f9ae420d73e7098cb.png&quot;  style=&quot;cursor: default;cursor: default;&quot;/&gt;&lt;/p&gt;
&lt;p&gt;gist 將為依據你輸入的內容產出一個可以勾選的 todo list,&lt;br /&gt;
重點是重點是重點是: &lt;code&gt;有版本控管&lt;/code&gt;&lt;br /&gt;
任何勾選的操作都會自動儲存&lt;br /&gt;
而且...每一次勾選都會是一個 commit, XDD&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn-images.postach.io/w600_2595ee77bc6c674f703f987c1bcd6896.png&quot;  style=&quot;cursor: default;cursor: default;&quot;/&gt;&lt;/p&gt;
&lt;p&gt;這邊有一個範例: &lt;a href=&quot;https://gist.github.com/Liullen/4043af966d49236fce7e#seans-todo-list&quot;&gt;seans-todo-list&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;但好像只有自己的 gist 帳號才能用對自己的 markdown 勾選編輯&lt;/p&gt;
&lt;p&gt;REF: &lt;a href=&quot;http://lifehacker.com/why-a-github-gist-is-my-favorite-to-do-list-1493063613&quot;&gt;lifehacker_How to Turn GitHub into a To-Do List&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">Windows Server 2012  .NET3.5 或 4.5 的安裝方法</title>
    <id>https://nelluil.postach.io/post/windows-server-2012-net3-5-huo-4-5-de-an-zhuang-fang-fa</id>
    <updated>2015-03-05T08:43:14.016000Z</updated>
    <published>2014-08-20T02:05:41Z</published>
    <link href="https://nelluil.postach.io/post/windows-server-2012-net3-5-huo-4-5-de-an-zhuang-fang-fa" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="dotnet" />
    <category term="windowsserver" />
    <content type="html">&lt;p&gt;由於一些安全性之類的問題,&lt;/p&gt;
&lt;p&gt;所以某些 &lt;code&gt;Windows Server 2012&lt;/code&gt; 預設是沒有安裝 &lt;code&gt;.net framework 3.5&lt;/code&gt; 的&lt;br /&gt;
若需要安裝:&lt;br /&gt;
[控制台] &amp;gt; [程式集] &amp;gt; [程式和功能]&lt;br /&gt;
在右邊有一個 [新增角色集功能精靈]&lt;br /&gt;
按著精靈步驟, 勾選以安裝 .net 3.5 或 4.5&lt;/p&gt;
&lt;p&gt;因為目前產品使用的轉檔的 *.exe 是由 C# 開發, &lt;br /&gt;
故需要透過 .net, 故若沒安裝會導致 office 轉 pdf 失敗&lt;/p&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">EditorViewer - A Eclipse plug-in of vertical tab view</title>
    <id>https://nelluil.postach.io/post/editorviewer-a-eclipse-plug-in-of-vertical-tab-view</id>
    <updated>2015-03-05T08:43:14.032000Z</updated>
    <published>2014-07-03T01:39:40Z</published>
    <link href="https://nelluil.postach.io/post/editorviewer-a-eclipse-plug-in-of-vertical-tab-view" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="eclipse" />
    <content type="html">&lt;div&gt;
我常常因為 Eclipse 開了太多 tab,&lt;br/&gt;
導致一直需要在程式碼視窗堆裡一直切換 (`Ctrl`+`PageDown` / `PageUp` 或 `Ctrl`+`Tab`)&lt;br/&gt;
但這樣切換往往是很沒效率, 或又找不到,&lt;br/&gt;
就又重新用 Open Resource (`Ctrl`+`Shift`+`R`) 或 Open Class (`Ctrl`+`Shift`+`T`) 重新打開一次,&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;因此我想找一個能夠在 View 中顯示目前開啟的程式碼檔案,&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;果然有的!&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;**[EditorViewer@Sourceforge](http://sourceforge.net/projects/editorviewer/)**&lt;/div&gt;
&lt;div&gt;但這個專案似乎好一陣子沒有在維護與更新了&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;Sourceforge 上有放幾張示意圖, 大概長這樣: &lt;/div&gt;
&lt;div&gt;&lt;img src=&quot;https://cdn-images.postach.io/w600_3789f4dfb4664fb6f97ea667b2c8d450.png&quot;  height=&quot;708&quot; style=&quot;cursor: default;&quot; width=&quot;975&quot;/&gt;&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;奇怪的是我裝好之後, 好像沒有如下圖的 *type view*&lt;/div&gt;
&lt;div&gt;&lt;img src=&quot;https://cdn-images.postach.io/w600_0f444ad04bcc6f4495777b47c6df63b3.png&quot;  style=&quot;cursor: default;&quot;/&gt;&lt;/div&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">CKEditor 4.3 自訂功能 config</title>
    <id>https://nelluil.postach.io/post/ckeditor-4-3-zi-ding-gong-neng-config</id>
    <updated>2015-03-05T08:43:14.050000Z</updated>
    <published>2014-06-17T01:59:42Z</published>
    <link href="https://nelluil.postach.io/post/ckeditor-4-3-zi-ding-gong-neng-config" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="ckeditor" />
    <content type="html">&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;div&gt;&lt;div&gt;一些可能會在 CKEditor 會用到的自訂功能: &lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
1. 包括新增字體 (要該 OS 底下擁有這個字體, 因為只是 apply css font-family)&lt;br/&gt;
2. 從 word 貼上保留各種樣式&lt;br/&gt;
3. 調整字體可以選擇的大小與單位&lt;br/&gt;
4. html tag 的黑名單與白名單&lt;/div&gt;&lt;div&gt;    (若為 4.4 版直接使用 disallowedContent 即可, 不須從 allowedContent 砍掉)&lt;br/&gt;
5. Enter 換行的模式 p, br, div&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;&lt;script src=&quot;https://gist.github.com/Liullen/ffb91de3bf75f07fcec9.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;幾乎都要回去看一下文件&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;REF: [CKEditor 4 Documentation](http://docs.ckeditor.com/#!/guide)&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">製作簡單的 JMeter 測試腳本</title>
    <id>https://nelluil.postach.io/post/zhi-zuo-jian-dan-de-jmeter-ce-shi-jiao-ben</id>
    <updated>2016-09-07T03:39:09.349000Z</updated>
    <published>2014-06-12T07:52:37Z</published>
    <link href="https://nelluil.postach.io/post/zhi-zuo-jian-dan-de-jmeter-ce-shi-jiao-ben" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="test" />
    <category term="jmeter" />
    <content type="html">&lt;div&gt;&lt;div style=&quot;font-family: Courier,&quot;&gt;jMeter 2.9&lt;/div&gt;&lt;/div&gt;

&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;img src=&quot;https://cdn-images.postach.io/w600_2bc8f2fedbc788d9322583a8d466b92d.png&quot;  style=&quot;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;&quot;/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;+ 開一個 **執行緒群組**&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;img src=&quot;https://cdn-images.postach.io/w600_179ca0a8278343e16cf435ca5e27512e.png&quot;  height=&quot;383&quot; style=&quot;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;&quot; width=&quot;651&quot;/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;+ 在底下加入 **錄製控制器**&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;img src=&quot;https://cdn-images.postach.io/w600_fcaa810ed5e90961eb5339f851b8b06e.png&quot;  height=&quot;478&quot; style=&quot;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;&quot; width=&quot;742&quot;/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;+ 對 http proxy server, 設定要被連接用的 **port** (給瀏覽器用), 要指定的 **錄製控制器** (指定剛剛建立的錄製控制器)&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;img src=&quot;https://cdn-images.postach.io/w600_335e5038209d4ce49cd4b67be98a64c5.png&quot;  style=&quot;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;&quot;/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;img src=&quot;https://cdn-images.postach.io/w600_1a028e093099197639a5861e4f4c5b86.png&quot;  height=&quot;759&quot; style=&quot;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;&quot; width=&quot;1050&quot;/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;+ 到瀏覽器去設定 proxy 連接, 輸入剛剛的 proxy server port number (以 firefox 29 為例)&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;img src=&quot;https://cdn-images.postach.io/w600_4ae9230081bc73d9ab3dba1d7eb8b74e.png&quot;  height=&quot;801&quot; style=&quot;cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;&quot; width=&quot;1022&quot;/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;+ 回到 jMeter 剛剛建立的 http proxy server 按下 **開始**, 就可以開始在瀏覽器上操作了&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;+ 錄製好後可以回到 http proxy server 按下 **停止**&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;+ 所有操作就會跑到 **錄製控制器中**了&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;+ 之後可以自訂每個錄到的 request, 例如 header 或是 form params 等&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;+ 可以把該專案存下來 **.jmx **&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;+ 設定運行測試的參數: **一次跑幾個**, **跑幾次**, 用計時器設定 **開始結束時間** 或直接設定**跑多久**&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&gt; 若開始時間設定是比當前時間晚, 會變成像是*預約*執行測試一樣, 該執行緒群組便會等到開始時間到才會開始執行.&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;img src=&quot;https://cdn-images.postach.io/w600_7b486c9794e2fa72c92cf511c5e2eb2a.png&quot;  height=&quot;486&quot; style=&quot;cursor: default;cursor: default;cursor: default;cursor: default;&quot; width=&quot;917&quot;/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;+ 若要模擬使用者在頁面中的停留, 可以使用 **固定值計時器** 或 **一致隨機計時器**, 計時器的功能是在每一個動作之前加上延遲&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;img src=&quot;https://cdn-images.postach.io/w600_d56539cf535fe02231e852cea139059d.png&quot;  height=&quot;318&quot; style=&quot;cursor: default;cursor: default;cursor: default;&quot; width=&quot;748&quot;/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;+ 執行之前可以加入需要的報表以檢視測試結果, 以下是 **彙整報告**&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;img src=&quot;https://cdn-images.postach.io/w600_26e28af86cf46e6cf9788d17299b77ce.png&quot;  height=&quot;678&quot; style=&quot;cursor: default;cursor: default;cursor: default;&quot; width=&quot;681&quot;/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;結果大概會長這樣, 記得可以匯出成 .csv 檔&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;img src=&quot;https://cdn-images.postach.io/w600_fdf5f0a930c6a88310ef8d819f53cf8c.png&quot;  height=&quot;581&quot; style=&quot;cursor: default;cursor: default;cursor: default;&quot; width=&quot;752&quot;/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;之後有空再寫一下如何以多個帳號對某個 ap 登入 (這樣叫做 data driven?)&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">在 SQL Server 2005 中取得所有欄位定義的方法(含備註欄位)</title>
    <id>https://nelluil.postach.io/post/zai-sql-server-2005-zhong-qu-de-suo-you-lan-wei-ding-yi-de-fang-fa-han-bei-zhu-lan-wei</id>
    <updated>2015-03-05T08:43:14.058000Z</updated>
    <published>2014-06-05T02:59:13Z</published>
    <link href="https://nelluil.postach.io/post/zai-sql-server-2005-zhong-qu-de-suo-you-lan-wei-ding-yi-de-fang-fa-han-bei-zhu-lan-wei" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="mssql" />
    <category term="sql" />
    <content type="html">&lt;div&gt;&lt;div style=&quot;font-family: Courier, &quot;Courier New&quot;, monospace;&quot;&gt;&lt;script src=&quot;https://gist.github.com/anonymous/78fa23e9636950a2bec0.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div style=&quot;font-family: Courier, &quot;Courier New&quot;, monospace;&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier, &quot;Courier New&quot;, monospace;&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier, &quot;Courier New&quot;, monospace;&quot;&gt;SQL 這個算超好用的... 如果要請客戶幫忙 debug&lt;/div&gt;
&lt;div style=&quot;font-family: Courier, &quot;Courier New&quot;, monospace;&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier, &quot;Courier New&quot;, monospace;&quot;&gt;結果會把所有 table 以及各個欄位的資訊放在一起輸出&lt;/div&gt;
&lt;div style=&quot;font-family: Courier, &quot;Courier New&quot;, monospace;&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier, &quot;Courier New&quot;, monospace;&quot;&gt;&lt;img src=&quot;https://cdn-images.postach.io/w600_106615a6b906cad107633d38a549e7f5.png&quot;  height=&quot;380&quot; style=&quot;cursor: default;&quot; width=&quot;650&quot;/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier, &quot;Courier New&quot;, monospace;&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier, &quot;Courier New&quot;, monospace;&quot;&gt;REF: [The Will Will Web](http://blog.miniasp.com/post/2007/11/05/How-to-get-detailed-Data-Dictionary-in-SQL-Server-2005.aspx)&lt;/div&gt;
&lt;div style=&quot;font-family: Courier, &quot;Courier New&quot;, monospace;&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier, &quot;Courier New&quot;, monospace;&quot;&gt;&lt;br/&gt;&lt;/div&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">sql指令取得table內的欄位名稱</title>
    <id>https://nelluil.postach.io/post/sqlzhi-ling-qu-de-tablenei-de-lan-wei-ming-cheng</id>
    <updated>2015-03-05T08:43:14.061000Z</updated>
    <published>2014-06-05T02:51:28Z</published>
    <link href="https://nelluil.postach.io/post/sqlzhi-ling-qu-de-tablenei-de-lan-wei-ming-cheng" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="mssql" />
    <category term="sql" />
    <content type="html">&lt;div&gt;&lt;div style=&quot;font-family: Courier,&quot;&gt;###MSSQL&lt;/div&gt;&lt;/div&gt;

&lt;div style=&quot;font-family: Courier,&quot;&gt;``select name from syscolumns  where id=object_id(&amp;apos;tablename&amp;apos;)``&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;###Oracle&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;```&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;select COLUMN_NAME  from all_tab_columns&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;where owner=&amp;apos;OWNER&amp;apos;   --需要大寫，否則找不到&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;and table_name=&amp;apos;DIS_PHON_ACC&amp;apos;  --需要大寫，否則找不到&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;order by column_id&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;```&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Courier,&quot;&gt;REF: [sql指令取得table內的欄位名稱](http://blog.roodo.com/fionscenery/archives/19070448.html)&lt;/div&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">透過 js 檢查 input file 的檔案副檔名</title>
    <id>https://nelluil.postach.io/post/tou-guo-js-jian-cha-input-file-de-dang-an-fu-dang-ming</id>
    <updated>2017-12-27T06:07:09.437000Z</updated>
    <published>2014-05-30T03:05:48Z</published>
    <link href="https://nelluil.postach.io/post/tou-guo-js-jian-cha-input-file-de-dang-an-fu-dang-ming" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="javascript" />
    <content type="html">&lt;p&gt;由於 html5 開始才支援 accept 屬性: &lt;code&gt;audio/*&lt;/code&gt;, &lt;code&gt;video/*&lt;/code&gt;, &lt;code&gt;image/*&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;可以用於檢查 input file 的檔案格式, &lt;/p&gt;
&lt;p&gt;ex:&lt;/p&gt;
&lt;p&gt;&lt;input accept=&quot;image/*&quot; &gt;&lt;/p&gt;
&lt;p&gt;REF: &lt;a href=&quot;http://www.w3schools.com/tags/att_input_accept.asp&quot;&gt;w3schools&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;但若要支援較舊的瀏覽器, 似乎只能夠過檢查副檔名來判斷&lt;/p&gt;
&lt;p&gt;這邊透過 &lt;code&gt;split('.')&lt;/code&gt; 再用 array 的 &lt;code&gt;pop()&lt;/code&gt; 取出最後一個點後方的字串, 也就是副檔名, &lt;/p&gt;
&lt;p&gt;若是以單存取得副檔名的功能來說, 這個方法還滿簡潔的.&lt;/p&gt;
&lt;p&gt;當然若要直接用 &lt;code&gt;RegExp.test()&lt;/code&gt; 來驗證整個檔名也完全可以, 我想效能應該不會差太多.., 所以這篇只是想記錄取副檔名的用法: &lt;code&gt;split('.').pop()&lt;/code&gt; XDD&lt;/p&gt;
&lt;p&gt;&lt;script src=&quot;https://gist.github.com/Liullen/9ffd7067aa2436d558a5.js&quot;&gt;&lt;/script&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://jsfiddle.net/w65Cg/1/&quot;&gt;A Simple DEMO@JSFiddle&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">btoa(), atob() 支援中文的方法</title>
    <id>https://nelluil.postach.io/post/btoa-atob-zhi-yuan-zhong-wen-de-fang-fa</id>
    <updated>2015-03-05T08:43:14.067000Z</updated>
    <published>2014-05-14T01:48:19Z</published>
    <link href="https://nelluil.postach.io/post/btoa-atob-zhi-yuan-zhong-wen-de-fang-fa" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="javascript" />
    <content type="html">&lt;div&gt;&lt;div&gt;由於 btoa 只能以英文數字等非 unicode 組合作為輸入, 所以若要支援 unicode 字元(中文), 必須用替代方法, 先將內容 escape 再 encode, &lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;&lt;script src=&quot;https://gist.github.com/anonymous/1b543452f48091f98917.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;DEMO: [jsfiddle](http://jsfiddle.net/zrj9ydgc/)&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;REF: [window.btoa(MDN)](https://developer.mozilla.org/en-US/docs/Web/API/window.btoa)&lt;/div&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">Data Uri Schema</title>
    <id>https://nelluil.postach.io/post/data-uri-schema</id>
    <updated>2015-03-05T08:43:14.069000Z</updated>
    <published>2014-05-12T02:14:52Z</published>
    <link href="https://nelluil.postach.io/post/data-uri-schema" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="web" />
    <category term="javascript" />
    <content type="html">&lt;div&gt;藉由瀏覽器的 data uri schema, &lt;/div&gt;
&lt;div&gt;使用 data type: application/octet-stream 就可以用來下載由 javascript 產生的資料,&lt;/div&gt;
&lt;div&gt;不經由瀏覽器, 且大部分瀏覽器皆支援, (IE8 有 32KB 的 data 限制)&lt;/div&gt;
&lt;div&gt;配合 download 的 tag attribute  就能夠指定下載名稱 (only support: ff, chrome)&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;最明顯的缺點是效能, 無法 cache 且每次載入必須重新 decode 和 embed&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;script src=&quot;https://gist.github.com/anonymous/e53d4f097407f8c5e74d.js&quot;&gt;&lt;/script&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;REF: [Data_URI_scheme (Wikipedia)](http://en.wikipedia.org/wiki/Data_URI_scheme)&lt;/div&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">Css 無線轉圈圈 loading</title>
    <id>https://nelluil.postach.io/post/css-wu-xian-zhuan-quan-quan-loading</id>
    <updated>2015-03-05T08:43:14.079000Z</updated>
    <published>2014-05-09T03:09:36Z</published>
    <link href="https://nelluil.postach.io/post/css-wu-xian-zhuan-quan-quan-loading" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="css" />
    <content type="html">&lt;div&gt;&lt;script src=&quot;https://gist.github.com/anonymous/738da5818d95c9362919.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;DEMO: [JSFIDDLE](http://jsfiddle.net/aRgTP/)&lt;/div&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">SolrServer.commit() 拋出 500 Server Error 的 RumtimeException</title>
    <id>https://nelluil.postach.io/post/solrserver-commit-pao-chu-500-server-error-de-rumtimeexception</id>
    <updated>2015-03-05T08:43:14.080000Z</updated>
    <published>2014-04-09T01:57:15Z</published>
    <link href="https://nelluil.postach.io/post/solrserver-commit-pao-chu-500-server-error-de-rumtimeexception" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="solr" />
    <content type="html">&lt;div&gt;Client 透過 SolrServer.commit() 將資料送到Solr Server 時, &lt;/div&gt;
&lt;div&gt;若拋出  500 Server Error 的 RumtimeException, &lt;/div&gt;
&lt;div&gt;但資料卻有正常存入 Solrm, &lt;/div&gt;
&lt;div&gt;可能就是 web.xml 的 Filter 先後順序的問題, &lt;/div&gt;
&lt;div&gt;Solr 希望 SolrDispatchFilter 可以優先被處裡, &lt;/div&gt;
&lt;div&gt;故將以下 filter 放到最前面即可&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;&lt;script src=&quot;https://gist.github.com/anonymous/10218970.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;----&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;### 以下為 Server Error 時, Server 端的錯誤訊息&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;&gt; 10047764 [qtp2912633-15] ERROR&lt;br/&gt;
&gt; org.apache.solr.servlet.SolrDispatchFilter  - null:&lt;br/&gt;
&gt; org.apache.solr.common.SolrException:&lt;br/&gt;
&gt; Solr requires that request parameters sent using application/x-www-form-urlencoded content-type can be read through therequest input stream.&lt;/div&gt;&lt;div&gt;&gt; Unfortunately, the stream was empty / not available.&lt;br/&gt;
&gt; This may be caused by another servlet filter calling ServletRequest.getParameter*() before SolrDispatchFilter, please remove it.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">How To Embed Gist In Postach.io</title>
    <id>https://nelluil.postach.io/post/how-to-embed-gist-in-postach-io</id>
    <updated>2015-03-05T08:43:14.083000Z</updated>
    <published>2014-03-27T08:35:14Z</published>
    <link href="https://nelluil.postach.io/post/how-to-embed-gist-in-postach-io" />
    <author>
      <name>Liullen</name>
    </author>
    <content type="html">&lt;p&gt;因為直接在 postach.io 貼 markdown 的 code block 總是無法很漂亮的有 color schema, &lt;/p&gt;
&lt;p&gt;而且似乎對 xml 不支援... &lt;/p&gt;
&lt;p&gt;所以找了一下, 原來官方也有建議的對策, 可以用 embedded gist !&lt;/p&gt;
&lt;p&gt;gist 這個服務應該隨著 github 的流行, 滿多人都在用的&lt;br /&gt;
不過沒想到 postach.io 也有支援, 真好 (Y)&lt;/p&gt;
&lt;p&gt;postach.io 給的範例: &lt;/p&gt;
&lt;p&gt;&lt;script src=&quot;https://gist.github.com/geekforbrains/5322895.js&quot;&gt;&lt;/script&gt;&lt;/p&gt;
&lt;p&gt;REF: &lt;a href=&quot;http://blog.postach.io/how-to-embed-gist-in-postach-io&quot;&gt;How To Embed Gist In Postach.io&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">Solr 不斷字搜尋, Highlight</title>
    <id>https://nelluil.postach.io/post/solr-bu-duan-zi-sou-xun-highlight</id>
    <updated>2015-03-05T08:43:14.085000Z</updated>
    <published>2014-03-27T08:21:53Z</published>
    <link href="https://nelluil.postach.io/post/solr-bu-duan-zi-sou-xun-highlight" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="solr" />
    <content type="html">&lt;p&gt;修改檔案 &lt;code&gt;schema.xml&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;必須將 autoGeneratePhraseQueries 改為 true,&lt;br /&gt;
若為 false, 則會將 query 字串斷成多個字元去交叉搜尋,&lt;br /&gt;
雖然搜尋的到, 但並不會正確 Highlight 該完整關鍵字串&lt;/p&gt;
&lt;p&gt;(好像要 schema 1.4 版才支援, 1.3版若加上去會導致 Solr Server 開不起來)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;autoGeneratePhraseQueries=true|false (in schema version 1.4 and later this now defaults to false)
&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;schema example:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;script src=&quot;https://gist.github.com/anonymous/9802935.js&quot;&gt;&lt;/script&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;另外一個做法是在 query 時加上 &lt;code&gt;hl.usePhraseHighlighter&lt;/code&gt; 參數&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://wiki.apache.org/solr/HighlightingParameters#hl.usePhraseHighlighter&quot;&gt;http://wiki.apache.org/solr/HighlightingParameters#hl.usePhraseHighlighter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;// 避免中文被斷詞 highlight
solrQuery .setParam ( &amp;quot;hl.usePhraseHighlighter&amp;quot;, true );
&lt;/code&gt;&lt;/pre&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">判斷 image 是否為 blank 和 判斷是否為 Empty</title>
    <id>https://nelluil.postach.io/post/pan-duan-image-shi-fou-wei-blank-he-pan-duan-shi-fou-wei-empty</id>
    <updated>2015-03-05T08:43:14.087000Z</updated>
    <published>2014-03-27T04:14:40Z</published>
    <link href="https://nelluil.postach.io/post/pan-duan-image-shi-fou-wei-blank-he-pan-duan-shi-fou-wei-empty" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="image" />
    <content type="html">&lt;div&gt;這邊的 blank 指的是一張非常接近白色的圖片, 而 Empty 則是指一張 byte[].length == 0 的檔案&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;&lt;script src=&quot;https://gist.github.com/anonymous/c249e706a5c24d49986e.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;這邊是 pdfbox 擷取圖片的範例, 簡單說就是以去計算 ByteArrayOutputStream 的 byte[] 的長度&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;&lt;script src=&quot;https://gist.github.com/anonymous/84671a7eefb068c053fd.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;REF: [http://www.rgagnon.com/javadetails/java-0631.html](http://www.rgagnon.com/javadetails/java-0631.html)&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">快速建立 DB TABLE 測試的設定</title>
    <id>https://nelluil.postach.io/post/kuai-su-jian-li-db-table-ce-shi-de-she-ding</id>
    <updated>2015-03-05T08:43:14.091000Z</updated>
    <published>2014-03-26T07:51:25Z</published>
    <link href="https://nelluil.postach.io/post/kuai-su-jian-li-db-table-ce-shi-de-she-ding" />
    <author>
      <name>Liullen</name>
    </author>
    <content type="html">&lt;div&gt;&lt;div align=&quot;left&quot;&gt;&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;&lt;script src=&quot;http:///spanhttps://gist.github.com/anonymous/a94bd3cff7d32a204b44span.js&quot;&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;&lt;br/&gt;&lt;/div&gt;</content>
  </entry>
  <entry xml:base="http://nelluil.postach.io/feed.xml">
    <title type="text">PWC6345: There is an error in invoking javac.  A full JDK (not just JRE) is required</title>
    <id>https://nelluil.postach.io/post/pwc6345-there-is-an-error-in-invoking-javac-a-full-jdk-not-just-jre-is-required</id>
    <updated>2015-03-05T08:43:14.098000Z</updated>
    <published>2014-03-17T09:03:12Z</published>
    <link href="https://nelluil.postach.io/post/pwc6345-there-is-an-error-in-invoking-javac-a-full-jdk-not-just-jre-is-required" />
    <author>
      <name>Liullen</name>
    </author>
    <category term="jetty" />
    <content type="html">&lt;div&gt;###PWC6345: There is an error in invoking javac.  A full JDK (not just JRE) is required&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;
當 Jetty Server 作為 JSP Web Container, Server 啟動並連線時發生以下錯誤訊息:&lt;br/&gt;&lt;br/&gt;
&gt; ...&lt;br/&gt;
&gt; PWC6345: There is an error in invoking javac.  A full JDK (not just JRE) is required&lt;br/&gt;
&gt; &lt;br/&gt;
&gt; Caused by:&lt;br/&gt;
&gt; org.apache.jasper.JasperException: PWC6345: There is an error in invoking javac.  A full JDK (not just JRE) is required&lt;br/&gt;
&gt; ...&lt;br/&gt;
______&lt;br/&gt;&lt;br/&gt;
 &lt;br/&gt;
可以在 jetty9/start.ini 中, 加上:&lt;br/&gt;&lt;br/&gt;
`-Dorg.apache.jasper.compiler.disablejsr199=true`
&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;(文章提到 Jetty 應該是大於6都適用, 我自己是在 jetty9 遇到的)&lt;br/&gt;&lt;br/&gt;
如果使用的是 embedded jetty 沒有 start.ini 可以修改的話, 可以直接在執行 jetty 的 method 之前加上:
&lt;div&gt;&lt;br/&gt;
`System.setProperty(&quot;org.apache.jasper.compiler.disablejsr199&quot;, &quot;true&quot;);`&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
詳細內容可以參考:&lt;/div&gt;&lt;div&gt;&lt;br/&gt;
Ref:   [Stackoverflow](http://stackoverflow.com/questions/9113346/pwc6345-there-is-an-error-in-invoking-javac-error-when-using-jetty-wtp-plugi)&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
</feed>
