2017-03-28

找出由大到小第N個項目

找出由大到小第N個項目,蠻有創意的SQL寫法

SELECT * FROM Employee Emp1 
WHERE (N-1) = 
(
SELECT COUNT(DISTINCT(Emp2.Salary))
FROM Employee Emp2
WHERE Emp2.Salary > Emp1.Salary
)

2017-03-27

讓TOMCAT能辨識URLEncode的中文檔名

TOMCAT預設是以ISO-8859-1來解讀經過URL Encode的URL的,因此要改為告訴TOMCAT所有URL經過URL Decode後要以UTF-8來解讀。

修改 bin/catalina.sh:
JAVA_OPTS="-Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Duser.timezone=GMT+08 ${JAVA_OPTS}"
(-Dsun.jnu.encoding=UTF-8可有可無)

或修改 conf/web.xml (有修改catalina.sh就不用改web.xml)

 
 
        setCharacterEncodingFilter
        org.apache.catalina.filters.SetCharacterEncodingFilter
        
            encoding            UTF-8        
 

  
  
        setCharacterEncodingFilter
        /*
  

修改 conf/server.xml:
<Connector port="80" protocol="HTTP/1.1"
...
URIEncoding="utf-8" useBodyEncodingForURI="true"
...
>

URIEncoding:對於URI,決定要以何種編碼來處理。
useBodyEncodingForURI:對於URI,決定是否要以request HEADER中的Content-Type中的編碼類型訊息、或request.setCharacterEncoding()方法中指定的編碼來處理,若為false則一律以URIEncoding所指定的編碼來處理。

而編寫網頁時,最好能自行將下載鏈結等先做URL Encode,而不是讓瀏覽器去幫你做,因為不是每個瀏覽器都會自動以URL Encode(UTF-8)來傳送的。 如果是有在寫jsp,那麼在web.xml加上:

  
    *.jsp
    UTF-8
  

2017-03-23

Netbeans 一直出現 duplicate class 的錯誤

明明你很確定同一個package的class名稱並沒有重複,
但Netbeans就是會告訴你有duplicate class name,並出現討厭的驚嘆號,
這時候不要懷疑,你的Netbeans壞掉了!

不過解決方法很簡單,不用重裝不用升級,只要把Netbeans的cache清除掉就可以了!

WINDOWS:
C:\Users\\AppData\Local\NetBeans\Cache\

LINUX:
~/.cache/netbeans/${netbeans_version}/index/

MAC:
~/Library/Caches/NetBeans/${netbeans_version}/

或著在Netbeans的選單「Help » About」裡面就可以找到Cache directory的路徑了。

2017-02-26

對遠端的tomcat除錯,且又有二個以上專案時

如果對遠端的tomcat用netbeans除錯,且伺服器又有二個以上的專案,

必須在netbeans的 Window/Debugging/Sources 視窗去調整 source 的順序,

因為預設是以在遠端找到的第一個專案來除錯,反正要除錯的專案就在source往前調整就是了,

不然就會陷入無限的鬼打牆,怎麼斷點都會跟你說無法submit到遠端伺服器。

2017-02-21

MySQL(MariaDB) 設定檢查、調整工具


可根據你提供的訊息,產生MySQL(MariaDB)設定檔:

https://tools.percona.com

(裡面還有query語句檢查工具)

MySQL的perl檢查工具,可找出目前有那些設定或安全性有問題:

https://github.com/major/MySQLTuner-perl

2016-12-25

4G的MTU設定


現在很多人將4G當用家用網路,其中4G分享器的MTU設定要是差太多,可是會大大影響網速。
找出適當的MTU可以利用ping指令:

WINDOWS:
ping www.google.com -f -l 1440

LINUX:
ping -c 2 -s 1440 -M do www.google.com

MAC:
ping -D -c 2 -g 1400 -G 1500 www.google.com (從1428~1528)

我用台灣之星在MAC用上述指令測試,最後是將MTU設為1500。

ref:
http://ancyent.xserv.ro/find-mtu-size-mac/
http://stackoverflow.com/questions/11364170/how-to-know-the-mtu-size-of-android-smartphone
http://linux.vbird.org/linux_server/0140networkcommand.php#ping_mtu
http://www.tp-link.tw/article/?faqid=190
http://awei791129.pixnet.net/blog/post/58092525-%5B網路優化%5D-如何最佳化-mtu-大小-for-mac-os-x-和-w
http://usatcorp.com/faqs/main-mtumss-design-considerations/
http://www.speedguide.net/articles/mtu-what-difference-does-it-make-111

2016-12-07

匯款至大陸銀行的方式及注意事項


匯人民幣至大陸銀行,必須準備以下資料,帶雙證件到銀行辦理外匯約定轉帳帳號:

(1) SWIFT CODE:(很重要) 若為支行,請查詢其所在城市的分行 http://bank-swift-code.info

(2) CNAPS CODE:(很重要) 支行也是有自已的CNAPS CODE,查詢 http://posp.cn

(3) 受款人姓名:(很很重要) 有三種方式來填(汗...),會被退匯十之八九大概都是這個原因,後面會說明。

(4) 受款人帳號:(很重要) 現在通常是只發借記卡而不給存摺了,通常存摺帳號就是借記卡號,不過最好還是上網路銀行或跟客服確認一下。(因為有聽過卡號跟帳號不同的,但我從沒看過)

(5) 受款銀行英文名稱: (需要) 請參照各銀行官網(英文版),通常需詳細到支行,若欄位填不下,填分行或總行的即可。

(6) 受款銀行英文地址: (不一定需要) 例如中國工商銀行 http://www.fxzht.com/jujia/yuer/2014-12-02/5870.html

其中姓名有三種寫法:

(1)簡體中文(成功率99%):用簡體中文當受款人姓名的話,銀行會轉成四角碼,這個最保險,不過銀行會不會額外收費就要問清楚了(通常不用收費)。
您可輸入簡體中文姓名來查詢四角碼 http://chinesecommercialcode.net/

(2)漢語拼音(成功率95%):大陸對中文的拼音方式,不過要注意您的銀行需要臨櫃結匯時(現在台灣直接匯人民幣過去,大陸政策已是當境內一般匯款,通常是不用再結匯),可能會與您台胞證上的英文拼法不同,會不會因此又產生問題就要先問清楚了。若無需臨櫃結匯的用此方式通常是沒問題。
中文拼音查詢:http://www.iq-t.com/SYSCOM/pinyin2.asp

(3)Wade-Gilos羅馬拼音(成功率60%):匯款被退十之八九都是這個原因,原因是開戶用的台胞証通常是跟台灣護照的姓名拼音一樣,而若護照的拼音方式是早期的Wade-Gilos羅馬拼音,且受款人姓名填的也是台胞證的英文姓名,那麼大陸那邊的行員就會認為跟他們的漢語拼音不同而要求匯款銀行修改補正、或跟受款人要身份證明或直接退匯,但網路上一堆人叫大家填台胞證英文姓名,照理說是以證件英文姓名為主沒錯,但實際上就是很容易被退千萬不要傻傻的,要填請改填漢語拼音的英文姓名而不要用台胞証的羅馬拼音,即便你不是匯給自已而是匯給大陸人,也是要用漢語拼音。若您不幸已經用此法匯了,錢又卡在銀行那,您就用「請參照台胞証的英文姓名,我開戶就是用台胞證」的說法來說服大陸那邊的行員吧。(當然也是看銀行,據說招商銀行用二種拼音方式都沒啥問題,中國四大銀行或其它銀行就常常出問題)


另外,您的銀行卡若是有綁定支付寶,匯款是為了急用,那麼要注意每日限額:https://cshall.alipay.com/lab/help_detail.htm?help_id=419480