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

2016-11-15

MAC中無法匯入或匯出Cisco IPSec VPN設定檔

之前Yosemite所匯出的Cisco IPSec VPN設定,在後來mac系統升級後就無法匯入,而且重新設定的VPN設定檔也無法匯出,

猜想是因為鑰匙圈存放的密碼無法直接匯出在設定檔的關係,跨機器匯入可能也沒法用,所以索性就不給匯出了(蘋果現在才發現這問題,搞屁)。

解法一:自個兒手動重新設定,去問問網管人員VPN SERVER, GROUP NAME, SHARED SECRET KEY吧....。

解法二:問不到網管人員,或不想問,而且很好運的你還有一台保留VPN設定的MAC,那就自個兒來吧:

(1)先把VPN SERVER(RemoteAddress), GROUP NAME(LocalIdentifier)從VPN設定記下來 (或原VPN設定檔用文字編輯器打開,也能找到)

(2)再來找出SHARED SECRET KEY,從「應用程式 / 工具 / 鑰匙圈」中,搜尋「VPN」,應該可以看到一個種類是「IPSec Shared Secret」的項目,

點二下,將「顯示密碼」打勾,就會顯示SHARED SECRET KEY的明碼,記下來。

(3)好了,有以上三個設定,可以重新設定VPN了。


當然,你也可以用別的VPN Client,以方便在不同的MAC匯入匯出,

例如Cisco自已出的 Cisco AnyConnect Secure Mobility Client

ref:
https://discussions.apple.com/thread/7305662?tstart=0
http://anders.com/guides/native-cisco-vpn-on-mac-os-x/
https://github.com/artemkin/cisco-password-decoder
http://www.cisco.com/c/en/us/support/docs/security/anyconnect-secure-mobility-client/116080-productqanda-vpnclients-00.html

2016-11-14

QNAP及Synology的OpenVPN設定檔,在行動裝置(iOS & Android)連線的問題

Synology的OpenVPN設定檔,不管在PC系統(MacOS, WINDOWS)或行動裝置(iOS, Android)上,

我測試是都可以直接匯入使用的(除了在原設定檔多加了<ca>...</ca>,把ca.cert的內容貼入設定檔,並把原有的ca ca.cert設定刪掉),

而QNAP的OpenVPN設定檔,在PC系統(MacOS, WINDOWS)可以正常使用,但在行動裝置(iOS, Android)上則要注意修改一個設定,

打開OpenVPN設定,將「Force AES-CBC ciphersuites」給勾選,就可以了,因為QNAP是用AES-CBC-128或AES-CBC-256方式做加密的,

這方式在行動裝置上要額外勾選,預設是不勾選的…也算是有點雷,

而在QNAP官方說明卻叫你確定「Force AES-CBC ciphersuites」是「關閉」,很明顯寫反了。

ref:
https://www.qnap.com/zh-tw/tutorial/con_show.php?op=showone&cid=3

2016-11-06

[Java] 在Netbeans中簽署jar時,加上時間戳記


在Netbeans中,使用金鑰簽署jar時,並不會自動加上時間戳記,當這jar檔使用在Java Web Start,可能會影響是否要更新本地端jar檔的判斷,

一個解法是自已決定簽署參數,在project.properties中,加入如下的值:

jnlp.signing.tsaurl=http://tsa.starfieldtech.com

然後在build.xml的<project>中,加入子節點如下:

<target name="sign-jars" depends="-jnlp-init-keystore,-check-signing-possible" if="jnlp.signed.true+signjars.task.available">
        <echo message="Using custom code for signing and timestamping via build.xml..." />
        <signjar
               alias="${jnlp.signjar.alias}"
               storepass="${jnlp.signjar.storepass}"
               keystore="${jnlp.signjar.keystore}"
               keypass="${jnlp.signjar.keypass}"
               tsaurl="${jnlp.signing.tsaurl}">
            <path>
                <fileset dir="dist" includes="*.jar" />
                <fileset dir="dist/lib" includes="*.jar" />
            </path>
        </signjar>
    </target>

2016-10-26

Ubuntu 安裝 嘸蝦米

1.到gicn作者網頁依法安裝gcin
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 835AB0E3
$ software-properties-gtk

到 Other software (其他軟體) → Add(新增)
http://hyperrate.com/dir.php?eid=67

Ubuntu 1204-1410 : deb http://hyperrate.com/debian eliu release
Ubuntu 1504 : deb http://hyperrate.com/gcin-ubuntu1504 eliu release
Ubuntu 1510 : deb http://hyperrate.com/gcin-ubuntu1510 eliu release
Ubuntu 1604 : deb http://hyperrate.com/gcin-ubuntu1604 eliu release

$ sudo apt-get install gcin

2.安裝gcin-tools
$ sudo apt-get install gcin

3.將嘸蝦米內碼表複製到 /usr/share/gcin/table
noseeing.gtab

4.
Unity: 右上角的齒輪→系統設定值→語言支援→鍵盤輸入法系統→gcin
或是執行 /usr/bin/gnome-language-selector→鍵盤輸入法系統→gcin
如果是用 Xfce or KDE,需要執行&設定 gcin-tools→外觀設定→面板狀態→GTK雙圖示

5.執行gcin-tools依需要做調整


2016-09-16

解決HOVER彈出的輸入選單,因瀏覽器的「自動填入」功能而又消失的問題

今天閒來無事,幫網友解決的一個小問題,

https://jsfiddle.net/xefavar6/

這問題不能單純的用hover,而是要拆成 mouseenter 跟 mouseleave 二個事件來處理,

加上事件發生時,判斷 e.target 的不同,就能解決了,說破不值錢。

其實這些都是對DOM及event的基本概念是否熟悉的問題,還談不上什麼技巧。

可惜願意好好練基本功的我看過的真的沒幾個,屈指可數。

2016-09-14

MAC上安裝EZ100PU晶片讀卡機

相信EZ100PU這型號,或說EZ系列的晶片讀卡機很多人用,

官方也一直有在更新MAC版本的DRIVER,蠻感心的:

https://www.castlestech.com/zh-hant/%e6%aa%94%e6%a1%88%e4%b8%8b%e8%bc%89/

像我自已的是用了好幾年的EZmini型號,跟EZ100PU的驅動是共用的。

以往在mac安裝驅動程式時,就是直接解壓縮並執行抓下來的mpkg,

裡面會自動幫你裝好OpenSC、pcsc-lite跟EZ系列的driver,

不過在我新安裝的OSX 10.11.6上,卻發生驅動程式安裝錯誤的問題,

安裝程式也沒提示說是什麼錯誤,只叫我聯絡軟體開發商(?

於是打開mpkg來看,發現會不會是隨附的pcsc-lite有問題?

結果先用homebrew裝了最新的pcsc-lite:

brew install pcsc-lite

然後再裝一次驅動程式,嗯,好了!

不過說實在要跨平台用的讀卡機的話,最好是買有支援CCID通用協定或ACS CCID開源驅動的(相容CCID),像我這種需要跨平台開發讀卡機相關程式的人就可以省很多麻煩。
像代理香港ACS的創群科技,他們出的讀卡機在每個平台都可以即插即用,不用煩惱驅動問題(就算有問題開源驅動裝上去一般就OK了),平價機型有ACR38、ACR39等,網路或一般3C通路也蠻好買到的,像辦公室好幾年前給的讀卡機ACR38,跨三種平台都能即插即用。

2016-09-06

tomcat 8.5 在 netbeans上無法正常運作 (netbeans無法得知tomcat已啟動)

今天在mac上跑tomcat 8.5遇到很雷的事,
在netbeans上設定tomcat 8.5後,過一陣子netbeans會報tomcat start fail,
但實際上server log是顯示有正常啟動tomcat的,
後來發現是Server header的問題,因此從8.5後開始,必須手動在server.xml加一個「server="Apache-Coyote/1.1"」的attribute:



然後…然後就好了。真的很雷。

ref:
http://stackoverflow.com/questions/22225764/starting-of-tomcat-failed-from-netbeans

2016-08-30

TOMCAT伺服器無回應!

今天一大早進辦公室就在救火,原因是人事系統掛掉了...

掛的方式很奇怪,一開始重啟會維持幾分鐘的正常,之後就無回應了,

仔細點說,就是TCP/IP有成功連線到TOMCAT,但沒有回應字串,直到TIMEOUT。

這種半路就死的反而是最難找原因的,

於是大家就開始猜了,防火牆、資料庫、connection pool.....開始找原因,

最後還把application乾脆移到新的tomcat主機,還是會死掉。

後來我在application的context.xml加了一個設定:


...

...


讓server log 十秒以上沒反應的程式,結果發現是一個syslog程式作怪,把那段程式移除就好了。

(但沒移除之前也活得好好的呀...超怪)

ref:
http://stackoverflow.com/questions/7145131/tomcat-request-timeout
http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Stuck_Thread_Detection_Valve

2016-06-29

在Ubuntu安裝Sublime Text 3及支援中文輸入

1.安裝 sublime text 3

sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer

2.建立sublime-imfix.c

2016-06-06

Macbook PRO MBP 2014 & MACOS OS X El Capitan 10.11.5 安裝 BOOTCAMP WINDOWS 7 SP1 遇到雷之解法


之前OS X 10.9 利用 BOOTCAMP 安裝WINDOWS 7 SP1很順,沒啥問題,

直到昨天手殘玩壞分割區,修復試過也沒用,只好重灌WINDOWS,但過程很雷啊...APPLE真是越做越回去了。

網路上利用BOOTCAMP安裝WINDOWS的教學很多,我就不贅述,大概就如下過程:

1.利用BOOTCAMP + WINDOWS ISO檔,製作WIN7 USB開機碟
2.若是安裝WIN7,需手動下載BOOTCAMP WIN DRIVER並放到USB開機碟
3.重新分割出WIN磁區,分割完會自動重新用USB開機安裝WIN7

以上最重要的是,要「一氣呵成」,不能只做前二個步驟,然後第三步驟用別的工具去分割,

不然USB開機碟內會沒有必要的驅動程式而抓不到MAC的輸入裝置(你會以為畫面凍結了,實際上是鍵盤滑鼠抓不到...),這樣也灌不成(APPLE這種作法真的很神邏輯...)。

之後進到WINDOWS安裝畫面,要開始安裝時,會遇到「遺失必要的CD/DVD磁碟裝置驅動程式」這問題,

這是因為找不到WINDOWS安裝光碟,所以要叫你裝一下DVD或USB的驅動程式來找看看WIN光碟在哪(都能開機了跟我說找不到...微軟真是讓我醉了 囧,不過也可能是BOOTCAMP動到了光碟內資料結構的關係)

有的人說這是USB 3.0的問題,改用USB 2.0隨身碟就好,但在OSX 10.9使用BOOTCAMP時並沒有這個問題,而且之前和現在這次我用的隨身碟也確定是USB 2.0的。

所以解法就是,請準備二隻隨身碟,一隻就是上述用BOOTCAMP製作的,一隻則是直接將WINDOWS光碟做成USB開機碟

當畫面進入到詢問驅動程式在哪時,此時插入WINDWOS USB碟,

並將驅動程式路徑指向BOOTCAMP USB開機碟的「$WinPEDriver$\IntelxHCISetup\Drivers\HCSwitch\Win7\x64」
或「$WinPEDriver$\IntelxHCISetup\Drivers\xHCI\Win7\x64」(二個都試試,這是USB3驅動程式)

不行就再重來,多試幾遍即可。

update: 2015版本的macbook pro安裝windows已經不需要usb隨身碟了,會直接在硬碟先暫時做出一個8G大小的partition做為開機安裝碟,安裝完windows重開該暫時磁區便會消失!所以你要準備的就是直接把windows iso先複製到mac內即可!

2016-05-04

讓 Android Studio 2.1 支援 Lambda expression & Stream API & ButterKnife依賴注入框架


要讓 Android Studio 2.1 能支援java 8的Lambda expression & Stream API & ButterKnife依賴注入框架,
請先安裝JDK8,並修改專案gradle設定檔如下:

gradle.build (Project):

buildscript {
    repositories {
        jcenter()
        //加入套件來源maven
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.0'
        // 加入dependency (gradle-retrolambda 外掛)
        classpath 'me.tatarka:gradle-retrolambda:3.2.5'
        // 加入dependency (android-apt 外掛)
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
}

repositories {
    //加入maven 
    mavenCentral()
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

2016-01-13

上傳圖像預覽

其實要讀取圖像的資訊跟預覽,無須動用到FileReader。

https://jsfiddle.net/ef0vg2sb/2/



window.URL = window.URL || window.webkitURL;

var fileSel = document.getElementById("fileSel");
var info = document.getElementById("info");

fileSel.addEventListener("change", function(e) {
  e.preventDefault();
  if (this.files && !!this.files.length) {
    info.innerHTML = "";
    for (var i = 0; i < this.files.length; i++) {
      preview(this.files[i]);
    }
  }
}, false);

var preview = function(file) {
  var img = document.createElement("img");
  img.src = window.URL.createObjectURL(file);

  img.onload = function() {
    info.innerHTML += "檔名:" + file.name + ", 大小:" + file.size + "B" + ", w:" + this.width + ", h:" + this.height + "";
    info.appendChild(this);
    //window.URL.revokeObjectURL(this.src);
  }

}

ref:
https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications