Virtualbox 小技巧

如何精簡虛擬硬碟大小

首先登入 Virtual Machine 用以下指令把未使用的空間填滿 zero

dd if=/dev/zero of=zerofile bs=1M

填滿未使用空間後刪除 zerofile,然後 shutdown Virtual Machine

最後用以下的 Virtualbox 指令進行精簡虛擬硬碟大小

/opt/VirtualBox/VBoxManage modifyhd <myvdifile> compact

本篇主要參考這個 網址

 

修改虛擬硬碟 UUID

通常我們會先灌一個最小的 Linux 系統,建立新 Virtual Machine 時就可以把這個虛擬硬碟拿來用,而不必每次建 Virtual Machine 就要灌一次作業系統 。

例如你有一個 centos.vdi,要架 DNS 時就把 centos.vdi copy 一份檔名叫 dns.vdi,要架 Web 時就再把 centos.vdi copy 一份檔名叫 www.vdi,但是每個 vdi 檔都有一個 uuid 重複的話 VirtualBox 就不讓你重複使用,這時間可以用以下指令變更 vdi 檔的 uuid

/opt/VirtualBox/VBoxManage internalcommands sethduuid <myvdifile>

本篇主要參考這個 網址

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

2015 音響設備、技術經驗分享

網路電視

以 Sony Bravia 系列產品為例,通常都支援 YouTube 及 DLNA 再加上擴大機及 5.1 聲道幾乎可以涵蓋 70% 以上的一般應用,把 影片轉成數位檔案放在 PC,把電視的聲音輸出切換到擴大機,從 PC 透過 DLNA 把影片撥放到電視,就可以享受家庭劇院,不過電視也不能包山包海,可以撥放的格式可以參考 W700C,每個機種的支援格式不儘相同。

擴大機

類似網路電視近期的擴大機應該都有支援 DLNA,把音樂轉成數位檔案放在 PC,從 PC 選好要聽的音樂檔案,透過 DLNA 把音樂撥放到擴大機,不用一直跑來跑去換 CD 片,就可以享受 2 聲道或多聲道的音樂或廣播。 擴大機可以撥放的格式也有限制,以 Onkyo TXNR636 為例,每個機種的支援格式不儘相同。

註: Onkyo TXNR636 是可以接香蕉插的,接頭中間那個小洞是一個塑膠塞,取出即可

PC

Windows 7 就可以透過 DLNA 將音樂撥放到擴大機或將影片撥放到電視,以 Sony Bravia 為例影片只支援到 Dolby AC3,如果要看 Dolby TrueHD 或 DTS HD 的影片就要用 HDMI 連接 PC 及擴大機,軟體可以採用 Kodi 把 AC3、DTS passthrough 打開,硬體的話要顯示卡支援格式清單必須有 Dolby TrueHD 或 DTS HD,主要是利用 Kodi 的 bitstream 的功能,跟市售的 Bluray player 處理方式是一樣的。

參考資料:

DLNA 官網

Windows 7 DLNA 設定

Windows HDMI 音訊設定

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

JavaFX 8 TableView tips

TableView 的最後一列沒有出現

用 SceneBuilder 修改 TableView -> Layout -> Pref Height,目前遇過這個數字設大於 container 元件的 height,結果最後一列無法 render 出來

資料加進 TableView 的 ObservableList 但是畫面沒有顯示

之前的版本好像要用 workaround 來解決,現在用 TableView 的 refresh() method 即可

變更資料列的顏色

mytable.setRowFactory(myRowFactory());

private Callback myRowFactory() {
return new Callback<TableView<MyModel>,TableRow<MyModel>>() {
public TableRow<MyModel> call(TableView<MyModel> tv) {
final TableRow<MyModel> row=new TableRow<MyModel>() {
@Override
protected void updateItem(MyModel model, boolean empty) {
super.updateItem(model, empty);
if ( ! isWantedModel(model) ) {
getStyleClass().removeAll(Collections.singleton(“myModelCSS”));
} else {
getStyleClass().add(“myModelCSS”);
}
}
};
return row;
}
};
}

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Java applet 小技巧

使用外部 library

applet tag 的 archive 可以接受多個 jar 檔,用 comma 分隔即可

java.lang.UnsatisfiedLinkError: Native Library xxx already loaded in another classloader

當 applet 使用 JNI DLL 時, 執行 applet 的 VM 可以載入 DLL 但是沒有可靠的方法卸載 DLL,這會造成 A 頁面載入 applet 後,B 頁面要再載入執行同一支 applet 時出現以上錯誤。

網路上有利用 CustomClassLoader 跟 System.gc() 來達成,但是比較複雜,比較簡單的作法是讓 applet 在不同 VM 執行以避開這個問題,作法是在 applet tag 加上以下參數

<param name=”separate_jvm” value=”true”>

 

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...