星期五, 8月 21, 2015

還會想用是非不分的 IE 嗎?

據說升級 IE 11 之後會有些問題,但設定「相容性檢視」可以解決。驚人內幕是:舊程式的錯誤會被舊的 IE 掩飾,新的 IE 雖然回歸正道,但卻被污名化,下圖是一段證據,在 IE 11 會顯示正確的「not found」,但開啟相容性檢視或降至 IE 8 卻會顯示錯誤的「found」。

用 JavaScript 取得 IE 的版本號

function getIeVersion() {
    var returnValue = 0;
    var userAgent = window.navigator.userAgent;
    if (/rv:11.0/.test(userAgent)) {
        returnValue = 11;
    }
    else {
        var matching = /MSIE \d+/.exec(userAgent);
        try {
            returnValue = parseInt(matching[0].substring(5));
        }
        catch (exception) {
        }
    }
    return returnValue;
}

nginx 試用

為了一個案子查問題需要幾個靜態網頁放在伺服器上,抓了 nginx for Windows 來用,還真小,解壓縮後也不到 4MB。紀錄幾點重要事項:
  • 靜態網頁都放在 html 目錄下,預設首頁是 index.html。
  • 若要修改埠號,在 conf/nginx.conf 很容易找到。
  • 根目錄就有一個 nginx.exe,點兩下執行即可啟動。
  • 預設就有紀錄,都在 logs 目錄內。

星期五, 8月 07, 2015

bitnami.com GitLab on CentOS

這個裝在虛擬機上的,只有一位使用者的版控,卻經常有使用者反映不能 Push,錯誤訊息是「non-fast forward」,意思是「有別人的 Push 沒有 Pull 下來,又想把自己的 Commit 給 Push 上去」,哪來的「別人」?
研究了半天,果真如此,有圖為證:
原來從 bitnami.com 抓來的 GitLab 有個隱形使用者,即使是相同的帳號,透過 GitEye 的是 centos,透過 GitLab Web UI 上來的是 Administrator,這是「兩個不同的人」,但在 GitLab 管理介面列所有使用者,又只有 Administrator 一人而已。
雖然我們管不到 centos 這個人,不過有辦法讓他們合一:找到 centos 的電子郵件帳號,設成 Administrator 的第二個電子郵件帳號。

星期二, 6月 30, 2015

Java Web Start - ArrayIndexOutOfBoundException: 8

最近一連檢查到三部主機(Windows Server 2008 R2 64 bit)都有同樣的問題:首先是因為要裝 Jenkins Slave (JNLP),不是最新版 JRE 會有問題,所以升級到 Version 8 Update 45。升級後有的是在跑 JNLP 時出錯,有的更糟,在驗證 Java 安裝版本就不行了,錯誤都如標題,取代了我們期望的 Applet 簽署說明。





























首先,不論 IE 版本(8~11)為何,一律恢復原廠設定,再關閉 Server 上瀏覽器的增強式安全性設定 ESC;接著奇怪的解法來了(在 IE 設定):
  • 網際網路選項
  • 連線
  • LAN 設定
  • 自動設定
  • 自動偵測設定<-勾選
為何瀏覽器的代理伺服器設定這麼重要?因為 Java Console 的網路設定預設「依瀏覽器設定」,而 JNLP 或 Applet 的下載都是透過 Java Console 設定控制,這也提示了另一種解法,直接修改 Java Console 的網路設定。
至於 IE 的代理伺服器「自動偵測設定」為何沒有勾選?還不清楚。因為重新安裝了幾次乾淨虛擬機,或升級新版瀏覽器,或恢復出廠預設值,這裏總是在已勾選狀態的。

星期五, 6月 12, 2015

權限太多也不行?

要以 A 主機的使用者 u1 透過 SSH 連到 B 主機的使用者 u2 身分,有兩種方式:
  • login as u1 on A, ssh u2@B, password required.
  • login as u1 on A, generate key pair, save [A] /home/u1/.ssh/id_rsa.pub to [B] /home/u2/.ssh/authorized_keys, ssh u2@B, password NOT required.
但好玩的來了:如果 /home/u2/.ssh 的權限是 700 或 755 都可以免密碼,但 777 就不行了?如果 /home/u2/.ssh/authorized_keys 的權限是 400 或 700 也都可以免密碼,但 777 又不行?

星期四, 5月 28, 2015

Mac 上不了 5G 的 Wi-Fi?

因為公司的無線投影一定要上 5G 的 Wi-Fi,而我的 Mac 根本就掃不到那個基地台,困擾了好一陣子,今天終於下定決心要弄出來。爬了幾篇文,原來還有個「會隨時改變的國碼」?主要先參考這篇得知 Wi-Fi 的型號,再依這篇把國碼設到 X2,以免被各國的設備拉來拉去的,注意要先關閉 Wi-Fi ,等設好後重啟電腦再開 Wi-Fi,大功告成。
如果真實的國家界限也是這麼鬆散的,就世界大同?