2016年5月5日 星期四

檢查物件型態

一般在 Java 中,會用 instanceof 來檢查物件的型態
不過在對於 primitive type 時,無法使用這個檢查
另外當類別只能在執行期間才會知道的情況下,也沒辦法使用 instanceof
這時可以使用類別的 isAssignableFrom() 或者 isInstanceOf() 來檢查。

2016年5月2日 星期一

AWS DynamoDB SDK v2 基礎使用(一):基本認知

DynamoDB 是 Amazon 提供的 NoSQL 資料庫
不過就我最近使用的感覺,其實我覺得它比較像是「有 RDBMS 靈魂的 NoSQL」
換言之,我覺得它其實是個 RDBMS,只是稍微支援了一點 NoSQL 的功能而已。

關於 DynamoDB 的簡介就不細談了,網路上大概可以查到不少
主要想紀錄的是如何使用 DynamoDB 的 Java SDK。
陸續找了不少資料後,我覺得 DynamoDB 的文件 [1] 真是相當差勁。
官方文件給的範例非常地簡略,對於稍微複雜一點的指令就沒有說明該如何實作
Google 往往會找到許多過去的部落格文章、或者甚至是官方的部落格
然後會發現同一件事情有好幾種不同的實作方法,估計大概是新舊的 API 的差別
每種實作方法似乎都有一些優點跟缺點,對使用者來說雖然可以依照自己的需求做選擇
但對於多數剛開始使用 API 的開發者來說,可能只會跟我一樣頻頻想說「WTF」。

2016年5月1日 星期日

顯示器驅動程式停止回應

不知道從何時開始,電腦開啟某些遊戲一段時間就會一片黑
然後跳回桌面,右下角會顯示「顯示器驅動程式停止回應」。
這時遊戲大概畫面都會有點問題,有時這個問題會一直連續發生,最後會變成藍白畫面。
最初以為是驅動程式不穩定,不過換了很多個版本還是都沒有改善
今天又花了不少時間在找這個問題,不過找到國外的論壇的討論 [1]
其實只要移除掉 Windows 的 KB2685811 這個更新 [2] 就好了!

目前還沒有嚴謹地做過測試,不過至少我現在用 EVGA GTX650 的顯示卡
作業系統是 Windows 7,驅動程式降版到 310.90 WHQL,然後移除 KB2685811 更新
玩 Steam 版的俠客風雲傳可以成功通過最初的對話以及教學戰鬥了 XD。

2016-05-05 更新:實際上還是會出現驅動程式停止回應跟當機的狀況,但已經從原本十分鐘內掛掉,變成可以連續玩幾個小時後,才有可能掛掉。不過再加上 [3] 更改 TDR 以後就沒有再發生了。
2016-07-04 更新:310.90 WHQL 改玩 Steam 的信長之野望時還是一直出問題,後來用 DDU 移除重灌成 337.88 WHQL,目前看起來比 310.90 WHQL 穩定。

PS. 不過這個方法應該不適用  Windows 8,因為 KB2685811 這個更新本來就是給 Windows 8 的更新。

參考資料:
  1. Nvidia - Display driver has stopped responding and has recovered error
  2. Windows Vista、Windows Server 2008、Windows 7 及 Windows Server 2008 R2 的核心模式驅動程式架構 1.11 版更新
  3. Graphics driver stopped responding and has recovered....TDR fix
  4. "Display driver stopped responding and has recovered" error in Windows 7 or Windows Vista

2016年4月27日 星期三

Java 的基本物件複製

如果當物件的成員並沒有包含特殊的物件時,可以直接使用 super.clone() 方法自動做物件的複製。
public class Test implements Cloneable {
    public Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}

不過如果物件成員有包含比較複雜的成員
例如成員有包含另外一個也內含成員的物件的話,會有稍微複雜一點的狀況
可以參考 [1] 去實作。

參考資料:
  1. Java複製(Clone)的應用

2016年4月19日 星期二

在 FortiGate 上啟用進階 DHCP 設定

可以參考 [1] 的作法,效果包括可以指定 DHCP 的 lease time
以及 DHCP 的靜態 IP 也可以在進階設定中調整。

參考資料:
  1. Technical Note: How to enable advanced DHCP options on FortiGate v5.2

2016年3月24日 星期四

自行架設 Wiki 引擎(一)補充:手動以 HTTPS 安裝 Foswiki

之前文章「自行架設 Wiki 引擎(一)補充:手動安裝 Foswiki」中
主要是描述以手動安裝的方式,將 Foswiki 整套安裝起來
其中會這麼做,主要是因為 Foswiki 的 Debian 套件很久沒人更新了。

2016年3月8日 星期二

使用 Selenium 與 HtmlUnit 時,忽略 script error 和 http statuscode 的方法

在 Java 上要呼叫 Selenium,並且指定使用 HtmlUnit 時,在某些網站可能會遇到兩種問題:

  1. 網站的 JavaScript 在解析過程有錯誤。
  2. 網頁本身失連、或者網頁內的任一連結(包含 JavaScript 檔、CSS 檔、圖片等外部連結)失連。
 在上面這兩種問題之下,HtmlUnit 預設都會直接丟 Exception,導致沒有辦法繼續運作。