2009年6月3日

Using VirtualBox to Execute Windows Installed on Physical Disk

更新:新版VirtualBox效能已沒有太大的問題。

基本上這篇算是VirtualBox使用上的筆記,目標是讓VirtualBox載入位於實體磁碟上的Windows作業系統(這裡是用XP)。

首先要確認Windows本身需不要需修改或安裝不同的驅動程式或者修改虛擬機器的組態,請參考:
How to migrate existing Windows installations to VirtualBox

在建立對應的VMDK之前,要準備好開機磁區映像檔。因為VirtualBox無法讓grub載入原先儲存在linux分割裡的設定,所以我們準備好替代用的開機磁區讓VirtualBox用來載入Windows。在Ubuntu底下可以安裝"mbr"套件來取得相容Windows的簡單bootloader。安裝完"mbr"套件之後執行(參考):
install-mbr --force win.mbr
就可以取得開機磁區,接著下一步就是建立對應實體分割的VMDK:
VBoxManage internalcommands createrawvmdk -filename \
win.vmdk -rawdisk /dev/sda -partitions 1 -relative -register \
-mbr win.mbr
要注意的是,必須要在~/.VirtualBox/HardDisks目錄底下執行此命令,否則可能會有錯誤訊息。相關操作說明可以參考此網頁。接著就很直覺了,你只需要執行VirtualBox來建立新的虛擬機器,並使用win.vmdk當作虛擬磁碟。執行後應該就可以順利看到Windows在VirtualBox中執行了。

值得一提的是,開啟VT-x的支援,反而會讓Windows XP的效能變差。將VT-x關閉後,我又對Windows的顯示效果做了些調整,整體的反應速度才稍微比較能讓人接受。這和執行Ubuntu的情況完全不同,真是令人費解。

總之,目前就可以把非Windows不可的程式移到VirtualBox裡面執行囉,但要打電玩的話可能還是要在實體電腦上執行Windows吧,因為VirtualBox的3D加速效能還是很差比直接執行還差一些。

之後大概會再試試看VMware、kvm和xen等等方案...

2009年5月30日

JavaSE 6u14推出,終於支援escape analysis...

最近Sun更新了JavaSE 6推出了6u14這個更新版,裡面不少有趣的新特色,其中和VM本身最為相關的部分有三(目前都是選用或實驗性的功能):
  1. Optimization Using Escape Analysis
  2. Compressed Object Pointers
  3. Garbage First (G1) Garbage Collector
其中第一項,我在兩年半前的文章裡提過(事實上,更早就有相關研究了),但直到現在,新版的hotspot才開始支援以escape analysis為基礎的優化(像是stack allocation、lock elimination等)。這也許可以說明一件簡單的現象:學界講求的是research,而業界重視的則是quality...

補充:sby大神提示,Apache Harmony早在兩年前就支援escape analysis及相關的優化技術了。

第二項其實也不新了,早在兩三年前的學術界裡就出現過相關的討論了。簡單的來說,為了避免64bit pointer帶來的space overhead,可以用類似offset的方式來記錄objects的address。缺點就是,存取時會帶來一些execution time overhead,heap的大小也會有限制。優點當然就是heap空間的節省了。也可以參考這篇簡介這裡

第三項Garbage First (G1) Garbage Collector,主要演算法來自於2004年的一篇paper,內容還沒有時間好好看過,但據說有不少好處:
Garbage First, or G1, is a low pause, server style collector. G1's primary advantages over the Concurrent Mark-Sweep (CMS) collector include incremental compaction, better predictability and ease of use.
比較值得注意的是,目前若想將G1應用在production的用途中,必須要與Sun簽署合約。後續發展。

以上提到的新特色,其中一部分將會成為JDK 7的標準功能,可以想見這些特色在未來將會更為成熟完整。

BTW,Hotspot中有不少功能或優化技術,實際上是學業界合作的成果,除了上面提到的部分外,像是client compiler裡的SSA support,也是學界的成果。研究的成果能夠被用在實際的產品中,其實是很棒的事,除了代表成果有實際的用途外,也代表了來自業界的肯定,真是令人嚮往啊...

2009年5月26日

感謝Josh提供關於標籤雲製作的中文文件

更新:新版的官方範本已直接支援標籤雲。

感謝Josh提供的Label Clouds(標籤雲) For Blogger文章,非常實用呢。當然,原作者也是非常值得尊敬的!!

感謝阿伯特贊助照片

更新:阿伯特當然順利畢業了也希望他能早日結婚;本站版面也經過修改了。

感謝阿伯特贊助美麗的照片,還幫忙裁切和做影像處理。整個版面看起來真是不一樣了,多謝,希望他明天的presentation能夠順利進行,也希望他能夠早點畢業。

2009年5月23日

Don't be afraid!!

Life is so short!! Hurry up !!
You should not be afraid!!
Just do it, just do what you really want to do!!
You know, you are not alone!!

2009年5月22日

Some Notes about Android

May not be correct and useful for you...

About WebKit in Android:
  1. Java script JIT is disabled.
  2. Graphics: WebKit => Skia=> OpenGL/ES (libEGL, libGLESv1_CM)

About Java Script JIT in WebKit:
  1. Supports X86 currently.
  2. Port for ARM is announced and should be integrated later.
  3. The Andes Tech also claimed that they have a port for NDS.

About OpenGL/ES implementation:
  1. Software: agl (libagl) => PixelFlinger (libpixelflinger, JIT supports ARM only)
  2. Hardware: hgl (libhgl, vendor specific)

Some Random Thoughts:
  1. Skia => PixelFlinger for software rendering?
  2. Is Java script JIT in WebKit useful?
  3. Dalvik + JIT in WebKit or PixelFlinger?
  4. Dalvik, WebKit, PixelFlinger => LLVM?

Related Code Location:
  1. WebKit: external/webkit
  2. Skia: external/skia
  3. OpenGL/ES: frameworks/base/opengl/libs
  4. agl: frameworks/base/opengl/libagl
  5. PixelFlinger: system/core/libpixelflinger
  6. hgl: Not available

Reference:
  1. Android 上的原生 OpenGL/ES
  2. 淺談 Google Skia 圖形處理引擎
  3. Android Source Code

調整Firefox的網頁顯示區尺寸

Update again: Chrome會是更簡單的選擇,不過Firefox 4IE 9似乎也改善了不少。

Update: 續Firefox on Netbook又增加了一些有用的Tips,感謝。

前幾天試著按照Firefox on NetbookSetup Firefox To Use Minimal Screen Estate兩篇文章的介紹來修改firefox的外觀。主要目的是為了增加網頁的可視範圍,雖然我的notebook解析度為1280x768,但有時候還是會覺得不夠用。

修改的原理主要是把不常用的部分移動到適當的位置以及自動隱藏。細節不多說,那兩篇文章說的很清楚了,總之就是安裝Tiny Menu,然後將選單及瀏覽工具列整合。接著安裝Autohide Status Bar讓狀態列可以自動隱藏。我大概做到這邊就覺得效果不錯了,有興趣的人可以試著安裝 Hide CaptionHide Tab Bar兩個extension,但要注意它們似乎和目前新版的firefox不太相容。Autohide Status Bar讓狀態列可以自動隱藏,也是一個不錯的選擇,但很容易影響網頁靠近底部的某些選項或按鈕的位置,有時會讓人很煩躁。

另外,如果沒有特殊需求的話,其實按下F11進入全螢幕模式也是個不錯的選擇。

2009年5月4日

Without you nothing would be much worth doing.

曾經在一本很有名的程式設計書籍內頁讀過,作者留給太太的一段話:
For Nancy, without whom nothing would be much worth doing

多麼簡潔卻又感人的字句啊!這段話令我印象深刻,每每溫習除了覺得感動外,總會帶著一絲羨慕及一些不解,不解的是,這種感情真的存在嗎?

一直帶有疑問的我,直到遇到魚仔,相戀相愛幾年後,我才真正的比較理解這種感情了...

2009年3月20日

生熟牛肉河粉


龍山社區裡的越南餐館賣的生熟牛肉河粉,還蠻好吃的,就是湯有點膩,不知道是不是沒有放九層塔的關係。另外,建議在那裡吃,不然帶回家可能肉會過熟。

2009年3月7日

今天的晚餐


越南小館賣的涼拌雞絲、炸春捲、貢丸湯,還蠻好吃的,就是貴了點,又沒辦法吃很飽。越式三明治和牛肉貢丸湯也蠻好吃的,只是今天賣完囉。

今天的下午茶


今天買了些吃吃喝喝的當作下午茶,因為天氣冷需要補補身子XD。不清楚吃完這些東西會不會吸收到三聚氫胺,不過熱量和糖份應該不會少。

2009年2月21日

不如來玩單車改裝

日幣直直升,單眼鏡頭和機身都要漲價囉,本來就買不太下手的東西,現在更不用說了Orz

還是來玩玩單車改裝好了^^,畢竟單車零件比較買的下手...

單車改裝有很多玩法,有輕量化、有提高效能(更好爬坡或更快速)等等...但就我個人而言,實用性遠比輕量化重要,否則我也不會買FHS的F20-W來騎。而這台小折對我目前而言效能已經很足夠了,也不太需要更換零件

所以,目前改裝的方向就以實用性為主要目的,而衍生出三個方向
  1. 提昇摺疊的方便性
  2. 騎乘的舒適度
  3. 安全性
就方向一而言,F20-W可說是不及格,所以每次摺疊都要花不少時間來固定拆下來的車手和立管。雖然我不常練習折車,但這台車的設計基本上就不是為了方便使用者摺疊和收納。這方面也許可以靠換零件來增強,目前考慮購買磁鐵用來固定車輪、可拆或可折式踏板及可折立管。其中1、2項確定應該會購買,只是還沒確定適當的牌子。而第三項則是參考了01網友的改法,只是還沒確認過安全性,還在觀望survey中。照理講,這三項都裝上後,這台車應該會比較容易摺疊收納?

至於提昇騎乘舒適度的提昇,目前是考慮更換成有牛角的握把,至於座墊、有避震器的坐管及輪胎等等則還在研究中,畢竟還不是很熟悉這些東西。

最重要的安全性方面,則是考慮更換煞車皮甚至是裝後照鏡(我知道很醜...)

在之後有時間有閒錢時,也許會參考啥咪大大的改法(1,2,3)來增強F20-W的效能

另外,今天得知在台中家裡附近有一家不錯的車行,有空應該會去看看有甚麼好料XD。話說回來,上次曾經提過想要去的書店,我到現在都還沒有去過...

2009年1月15日

Open小將隨身碟

http://chinese.engadget.com/2009/01/14/7-11-open-usb-flash-01-13/

為什麼我看到照片心中只有"囧"呢...

2009年1月14日

終結「意淫」的終極神器?

實在是忍不住要提一下這個東西:
http://chinese.engadget.com/2009/01/13/a-new-sex-toy-thingy-realtouch/
我比較好奇的是,可不可以自己寫程式來惡搞,科科

BTW,站在研究生的角度,我認為
該裝置目前支援的影片應該都是由人工來輸入相關數據,有沒有可能:
1. 自真人身上捉取數據?
2. 根據輸入的人體模型,來自動調整數據
3. 分析影片:
3.1. 自動標記數據輸出的時間點
3.2. 根據影片動作調整數據
這樣寫一份國科會研究計畫書應該很有搞頭(輪胎,要不要做做看:p)

我想,我應該是被計畫書搞瘋了...

50嵐海報即將送完?!

好吧,我承認這個梗很爛XD

話說睡眼惺忪的收著email時
撇見一封標題"50嵐海報即將送完"
心裡想著,奇怪博客來和五十嵐有甚麼關係...

點進去才發現:
"50份嵐海報即將送完"...

2009年1月12日

神鬼绮航二!?

非推薦,因為我根本沒看過內容:p

因為昨天魚仔在澳洲的商場看到相關的海報很好奇,
想知道這是甚麼.所以找了些相關資訊,

BTW,光看預告片會覺得還蠻炫的,
很像科幻電影,還蠻有一回事的
至於卡司,劇情等,小弟就不清楚囉:p

以下是官方網站(注意!!有成人內容,兒童不宜):
http://www.piratesxxx.com/

我不爭氣的笑了...

http://chinese.engadget.com/2009/01/12/kuso-vaio-p-putting-in-pccket/

A Computer Book Store in Taichung

Update:台中店似乎結束營業了:(

非廣告,純粹想在放假時去逛逛:
http://www.3dwoo.com/map_2.asp

2009年1月11日

Notes of Ubuntu

Notes here may only be useful for me.

For Ubuntu 9.0410.10
1. Something to do after installation:
1.1 Check updates.
1.2 Install language-specific packages .
  • System->Management->Language Support
1.3 Install Firefoxs extensions: Install google-chrome and sync all settings.
  • All-in-one Gestures
  • All-in-one Sidebar
  • Bookmark Duplicate Detector
  • DownloadThemAll
  • Easy DragToGo
  • Forecastfox
  • Foxmarks Bookmark Synchronizer
  • FoxyProxy
  • Google Toolbar
  • NoScript
  • Speed Dial
  • Stop-or-Reload Button
  • Tab Mix Plus
  • 新同文堂
1.4 Fixed in 9.04. Disable ubufox extension for a bug.

1.5 Get Lazybuntu to install useful packages. Using Ubuntu Tweak instead.

2. HW related issues
2.1 On Gigabyte EP31-DS3L rev2.1, the system may not power off probably (Not yet test for 9.04).
  • Using BIOS ver. FC instead of FDa.
  • Modify ACPI desciption table like this post.
2.2 Fixed in 9.04. No output with DVI on Asus HD3450 display card

  • Don't using DVI while installing Ubuntu.
  • Using envyng-core to install new official ATI binary driver.
  • Since the driver is open sourced, this problem may be fixed in the future.
3. ssh tips to connect remote with short name and login without password
  1. ssh-keygen -t rsa
  2. ssh-copy-id name@host
  3. Set a short name for host according to this post.
4. Upgrading to new release
  1. Network Upgrade for Ubuntu Desktops
  2. Network Upgrade for Ubuntu Servers (Useful for remote upgrade)
5. Upgrade from ext3 to ext4
  1. How To Upgrade From Ext3 To Ext4 Without Formatting The Hard Disk
  2. Some issues of ext4
6. New and additional packages can be found on PPA. Using Ubuntu Tweak to add some.
7. Setup-up of amule-daemon
  1. sudo apt-get install amule-common amule-daemon
  2. Modify /etc/default/amule-daemon to use specific USER to run
  3. Mkdir .aMule in USER's home
  4. Run amuleweb -w to generate amule.conf
  5. Edit .aMule/amule.conf to set AcceptExternalConnection=1
  6. Run echo -n "yourplaintextpass" | md5sum | cut -d " " -f 1 to generate MD5 of password
  7. Edit .aMule/amule.conf to set ECPassword=md5passwd
  8. Run sudo /etc/init.d/amule-daemon start to start server
  9. Control amule-daemon via http://IP:4711/
    #. Some other tips
    #. Some useful packages:
    • grsync freefilesync
    • htop
    • network-admin
    • firestarter
    • system-config-samba
    • sysinfo
    • envyng-core
    • Ubuntu Tweak Need to manually download
    • openssh-server
    • smplayer
    • non-free-codecs
    • workrave
    • Deluge BitTorrent Client
    • Emsene (For MSN)
    • Filezilla
    • PCMan X BBS
    • PuTTY SSH Client
    • Gnome Do
    • flashplugin-nonfree
    • subversion
    • git
    • git-svn
    • g++
    • libc6-dev-i386 (for 32bit compilation)
    • ruby1.9 (With cd /usr/bin; sudo ln -s ruby1.9 ruby)
    • ruby1.9-examples
    • rdoc1.9
    • ri1.9
    • rubygems1.9
    • openjdk-6-jdk
    • icedtea6-plugin
    • ia32-sun-java6-bin (For running GWT host mode in Eclipse)
    • vim
    • vim-doc
    • vim-scripts
    • ctags
    • cscope
    • ant (with --no-install-recommends)
    • meld
    • geany (Testing Prgramming IDE...)
    • google-chrome
    #. Some removed packages:
    • network-manager
    • totem/totem-gstreamer
    • transmission
    • vim-tiny
    • ruby
    • ruby1.8
    • libruby1.8
    To be continued...