2010/05/21

cron 與 anacron

剛好朋友問到 crontab 怎麼不見了一事,就提醒他,現在的系統,大概都是用 anacron,因此就來說說兩個的不同。關於 anacron, 請參考 sourceforge 的說明。(我翻的也不會比較好)

首先,最主要會出現 anacron 的原因是,機器不見得會開機,所以,在原來 cron 設定的時間點過了之後,該事件就不會被觸發!也就是說,anacron 不是靠「時間點」來觸發,它是檢查要做的事在那個時間點有沒有被做,沒有?那就觸發它。

基本上兩個是互補的。例如,cron 可以設定到時、分,而 anacron 只有「天」!
又例如,anacron 並非 daemon, 通常設計成在開機時做一次.....可是又不是常常開機,所以 ubuntu 是利用 cron 來定期叫 anacron 檢查,也就是 cron 本身不再是用來設定事件,而是...

叫 anacron 替代之前的 cron, 再叫 cron 叫 anacron 起來。

什麼?疊床架屋?不是啦,要從(文章的)頭想起。這種機制最有用的地方,除了系統會掛掉或是像有的是網路的動作,剛剛好網路不通,透過 anacron 就會有機會再重做,此外,....像筆電才是它最佳的舞台,你叫它做的事,在你下次開機時,只要時間點到了(或過了),它就會幫你完成。

最後,anacron 最新的版本是 2.3, release date 是.....2000 年 06 月 22 日!!!

2010/05/19

chromiumOS 的建立與執行 -- under ubuntu-3

寫過 chromiumOS 的建立與執行 -- under ubuntu-1chromiumOS 的建立與執行 -- under ubuntu-2,一直都無法正確的在 Virtualbox 執行,後來在 ChromiumOS 論壇看到一篇討論,提到把 Virtualbox 的 Machines/下的 CHROMIUMOS.xml 內容修正如下,就可以執行了!

<Hardware version="2">
<CPU count="1">
<HardwareVirtEx enabled="true" exclusive="false"/>
<HardwareVirtExNestedPaging enabled="false"/>
<HardwareVirtExVPID enabled="false"/>
<PAE enabled="false"/>
</CPU>
......
<BIOS>
<ACPI enabled="false"/>
<IOAPIC enabled="false"/>
<Logo fadeIn="true" fadeOut="true" displayTime="0"/>
<BootMenu mode="MessageAndMenu"/>
<TimeOffset value="0"/>
<PXEDebug enabled="false"/>
</BIOS>

chromium 的測試概觀


從結構圖來看,google 企圖以 Client/Server 的架構來簡化工廠生產時的人力配置,同時提供 Web 介面以及 command line 介面。

有幾個問題先列下來:
1. 如何簡化 Server/Client 架構的建立?也就是從 server 端如何知道 client 端的 IP?
AUTOIP? ZeroConfig? DHCP?
2. 以 autotest 來說,似乎不必人力坐在電腦前面,但是,若需要 locate device 時,如何得知是哪一台?
3. 對需要 manual test 的狀況下,如何進行?


2010/05/18

chromiumOS 的建立與執行 -- under ubuntu-2

之前寫了第一篇「chromium的建立與執行-1」,不過若是要建立 virtualbox image 的話,我自己試半天都無法執行。

Running Tests一文裡,有提到另一種快速的方法來建立可供測試的影像檔。看這種文章,比較需要注意的反而是 "inside" 與 "outside" 是指有沒有 chroot, 也就是有沒有執行過 ./enter_chroot.sh。inside 就是要執行過 enter_chroot.sh, 而 outside 就是沒有執行過它,也就是一般普通的環境。

該文的後面有一節提到「Create and run a test-enabled image on your device (the easy way)」,這真的是相當方便的方式! 只要一行,對,一行命令即可。

我在我的機器終於有試出怎樣用 virtualbox 看到開機畫面,目前尚未成功,畫面如下:

首先,Virtualbox 有兩個地方要注意,一個是開啟 EFI....



but, EFI 設了只是虛擬的,目前手邊都沒有機器的 BIOS 是跑 EFI 的!!!

除了 EFI 要開啟,還要注意,我們的 CPU 都是 Intel 的,所以....AMD 的虛擬機器選項要關掉:



這樣可以看到開機畫面,心裡會爽一點,只是.....



可以發現.....一直找不到可以透過 EFI 找到的開機裝置!!!



所以,最後,就進這個維護畫面.....

2010/05/14

Seamless 使用經驗

之前在寫Hal Dbus udev automount usb device?文章提到的參考文獻已經不見了!若有興趣的話,除了我的那篇文章外,也可以自行再參考阿呆的HAL、D-bus、ivman、udev心得

會用這個標題,原因是同事提到「Gnoem與KDE兩大陣營的戰爭」這件事,似乎跟 udev, HAL, Dbus無關?在我們把話題轉回來 Seamless 之前,先讓我再說說關於 Gnome/KDE 的後續見解。

我們可以從現有狀況來思考。如果要看 Desktop 的話,現今 Linux distribution 市占率最大的仍然是 Ubuntu, 它不一定最好,譬如硬體支援恐怕還不如 SuSE, Embedded 市占恐怕還不如 MontaVista, 但是,以 Desktop 來看它卻是最大宗。我認為原因不在純粹的 Desktop 是選 Gnome or Kde, 因為 Ubuntu 還有分支是 Kubuntu 採用 KDE。

整合度、易取得、進入門檻、客製化等等都是重要考量因素。純粹就整合度來看,KDE 整合的東西較完整,問題是,KDE 太笨重了,當它變得愈來愈像微軟時,它就真的變的跟微軟一樣。

Ubuntu 採用 Debian 系統,我想也是一個它受歡迎很重要的原因之一,雖然 Redhat/Mandrake 與 Ubuntu/Debian 的套件現今要整合變得比較容易,但是畢竟我還是比較喜歡 Debian, 尤其在做嵌入式系統的時候。試想,ChromeOS 預設支援的就是 Ubuntu,而當初 Intel 在推 Moblin 第一個找的也是 Ubuntu。原因何在?

現況是,從市占來看,明顯採用 Gnome 的人比較多。至於真正的現況除了 Desktop 外,不管是 Android, Meego, ChromeOS 等等,絕對是從另一個角度切入。反倒是我們該思考的不應該是 Gnome or KDE ? 這樣的路線。就像 Meego 想通吃,ChromeOS 有沒有可能走這樣的通吃的機會?

ChomeOS 開發團隊一直被問到,ChromeOS 有沒有可能執行 Desktop Applications? 若要問答案,當然是可以,但是目前 ChomeOS 開發團隊似乎較堅持走純 WebOS 的路。我們要 followup Google 的決策呢?還是要滿足更多人的需求呢?

我想,Intel 也不是笨蛋,善用 Web 而不純粹 WebOS 的市場在目前仍然是最大的,所以,我想,似乎 Google 的堅持也會有被動搖的一天。未來潮流到底會如何走?是選擇 WebOS? 還是選擇 Gnome? KDE? or.....Meego?

接下來談談為何我會談 Seamless。udev, HAL, Dbus 是三個主題,卻也是一個主題,是連著 GNOME/KDE 來的。Ubuntu 會讓人覺得好用的一個很重要的地方,它輕量級卻有著像 Windows 那樣方便的使用經驗,這得歸功於這三者在 Gnome 中被整合的很好。DBus 不止用來取代 IPC, 它其實是各個 module, 包含底層 kernel, daemons, drivers, application, and window manager 之間的橋樑,但是它畢竟只是橋樑而已,要讓使用者覺得方便,在於一個觀念的施行: seamless。

談這麼多終於可以談 Seamless。正因為 Seamless 的緣故,早期 KDE 是比較受歡迎的,至少 Redhat 就用它,而當時 Redhat 也是最大的 linux distribution。但是 KDE 最大的問題在於它的笨重。而在 Ubuntu 的推波助瀾之下,現在 Gnome 使用率應該是最大的了,就如我前面說的,我個人認為最大的原因在於 Ubuntu 讓人有一種類似 windows 帶來的 Seamless 使用經驗。它整合好 hotplug, udev, HAL, dbus....and window manager 層,所以就打通了硬體與使用者間的無縫隙使用經驗。

把格局放大來看,iPhone 為何會流行?Android 是以什麼樣的方式來迎頭追擊?iPad 又是採取什麼策略?我個人認為背後最大的原因就是 Seamless......再把時光拉回 Netscape 與 IE 的戰爭時代,說穿了,也是同樣的原因,當IE與作業系統整合,它就贏了這場戰爭。講白話一點,就是,使用者是笨蛋,使用者是懶惰的。

沒錯!別想要打我。現在的手持裝置就夠 Seamless 了嗎?沒有!路還很長。我看好的很多技術,若有跟我常常聊天就會知道,一項一項都在實現當中,未來其實是很明顯的。

註一:我也是使用者
註二:dbus 參考文獻

2010/05/13

Open Source License Scanning tool - from Florence

一篇來自中研院葛冬梅小姐的信轉貼於此,主題是「關於原始碼版權的掃描分析工具」,在此特別感謝她。並順便協助宣導一下 OpenFoundry, 她們一直努力推廣 Open Source, 不止是版權問題的討論,還辦過非常多研討會等活動,也都有資料可以下載

【掃描原始碼】

就我所知,目前有三套系統是可以掃描軟體原始碼,來查驗原始碼是否包含自由軟 體程式碼,以及判斷這些原始碼是採用哪一份條款來授權。這三套系統為 FOSSology、Blackduck與Palamida。雖然這三套系統都可以掃描原始碼、提供授權 資訊,不過就我個人所知,這些系統掃描精確度都有需要改進之處,因此這些掃描 結果僅可以作為輔助參考之用,若真的發現有授權狀態不相容、侵權情況的時候, 還是必須要諮詢技術與法律人員,來解決不相容、侵權的問題。以下針對三個系統 分別說明。

1. Fossology

這是一套掃描原始碼檔頭授權資訊的系統,系統會將掃描到的檔頭資訊與資料庫中 的自由軟體授權資訊相比對,來確認軟體中是否有利用到自由軟體,並不會掃描所 有的原始碼。對於檔頭沒有授權資訊的原始碼檔案來說,就無法確認該檔案的授權 狀況。優點是免費、任何人都可以自由下載與安裝。您利用這套系統的方式有二:


(1) 利用現成的vdi檔。

為了方便他人利用這套系統,鑄造場將Fossology系統製作成vdi檔,只要安裝 VirtualMachine後,將這個vdi檔掛載上去,依照說明就可以掃描原始碼的授權狀態。

請您進入下列網頁,進入後點選左方選單「下載區」,進入下載區頁面後,就可以 下載vdi檔與相關說明文件

Fossology vdi from OSSF:http://of.openfoundry.org/projects/1342

(2) 自行下載與安裝。

自行到Fossology網站下載後安裝起來,網址: http://www.fossology.org/


2. Blackduck

這是美國一家專門提供自由軟體原始碼掃描比對服務的公司,收費不貲,優點是資 料庫龐大。該軟體目前在台灣有兩家代理公司分別如下:

鈦智科技:http://www.adnetwork.com.tw/pro-blackduck-cn.htm

倚碩科技:http://www.esoft.com.tw/blackduck.php


3. Palamida

這是一家提供自由軟體安全諮詢管理公司,提供服務的方式是透過系統掃描原始碼 檔案,然後針對掃描結果提供諮詢服務,這間公司並且與 OSRM合作,提供自由軟 體 風險保單供業者購買。


Palamida:http://www.palamida.com/

OSRM風險保單的頁面:http://www.osriskmanagement.com/insurance.html

【掃描目的碼】

就我目前所知,僅有一套軟體可以掃描二進位的目的碼,也就是今日講師Shane所 提過的Binary Analyzing Tool。這是自由軟體,您可以上網自行下載安裝來掃 描。網址如下:

http://www.binaryanalysis.org/en/home


由於這套軟體最近才釋出,我對於這套系統所知有限,因此無法多做評論。若是您 之後有下載來使用,非常歡迎提供您的心得給我參考。


以上每個系統各有優缺點,因此我想您還是必須就貴公司的狀況,來個案評估,採 用哪一個系統比較適合。

以上資訊供參考,希望對您有所幫助。若還有任何疑問與意見,歡迎來信討論!


祝 順心

Florence T.M. Ko 葛冬梅
Legal Specialist, OSSF
e: tmk2005@citi.sinica.edu.tw
p: +886-2-27883799 ext. 1474
w: http://www.openfoundry.org/

2010/05/10

熱門技術 3D

其實立體視覺的成像「原理」上都大同小異,也就是利用兩顆眼睛所見到的影像的微小不一樣產生的立體感來的。
早期,我在讀研究所時,曾經流行過 3D 立體書,例如這張圖片裡面是一個騎士騎著馬,右手拿著一面旗子迎風飄揚。那時候我們就想要做你的這個題目了。當然後來沒真的去做。請見 Wiki 對 Stereogram 的解釋

單一影像呈現立體視覺與戴特殊分光眼鏡看似兩種非常不同的方法,其實原理也並無不同,既然說到了,可以上網找找 SIS, SIRDS等關鍵字看看。

透過光柵來呈現立體影像的,可以參考這篇. 或是同網站的這篇。而光柵板的原理可以參考這篇

當然這樣的文獻很多,譬如這篇就將前面光柵的原理視覺化,一定要進去看看。

要談數學運算的話,可以參考這篇

看完原理之後,要用兩顆攝影機取得3d立體影像,其實不算太難,難的是後製的運算......不過,若是以立體攝影文獻來說,可以參考立體攝影這篇

working with ubuntu and XP 2 - sshfs

雖然知道 sshfs 很久,卻一直沒有用,在我提出 working ubuntu and XP 的同時,同事提到 sshfs,可以用的 tool 有兩個,一個是 Dokan,可以擁有類似網路磁碟機的無縫使用經驗,也可以用 WinSCP,這個工具也是非常好用。

搭配 sshfs 及 ssh 遠端作業,應該可以符合大部份的作業需求,剩下的,或許會希望用 svn 來實現。

2010/05/05

working with ubuntu and XP

我的環境,是因為公司(絕大多數公司都如此)是建立在微軟體系上,所以,不另行在 Ubuntu 上建 Samba server,在讀本文時也請參考Mount samba shares with utf8 encoding using cifs一文,及Share Ubuntu Home Directories using Samba一文。

☆ Ubuntu 端看到 PC 上的目錄 ☆
1. 在 PC 上選定目錄,並按右鍵開啟分享,請注意,一般預設是沒寫入權,要在 Ubuntu 端能寫入的話,必須手動打開權限
2. 在 Ubuntu 上,有兩種方式,一個是手動掛載,一個是放在 /etc/fstab 讓系統自動掛載

a. sudo mount -t cifs //你的工作電腦位址/你分享的名稱(分享名稱不見得剛好就是目錄名稱) 掛載點 -o credentials=/你的HOME路徑/.smbcredentials,iocharset=utf8,file_mode=0777,dir_mode=0777
舉例來說是 sudo mount -t cifs //10.20.30.40/wade_share /home/wade/share -o credentials=/home/wade/.smbcredentials,iocharset=utf8,file_mode=0777,dir_mode=0777
上面的 .smbcredentials 權限設成唯讀(0400), 內容是工作PC 上的帳號,如:
username=wade
password=iamwade


b. /etc/fstab 仿上面執行例的相對內容如下:
//10.20.30.40/wade_share /home/wade/share cifs credentials=/home/wade/.smbcredentials,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0


☆ PC 端看到 ubuntu 上的目錄 ☆

1. 安裝 samba
2. 修改 /etc/samba/smb.conf, 找到 [homes] 這一區段,內容如下:

[homes]
comment = Home Directories
browseable = yes
writable= yes
create mask = 0775
directory mask = 0775
valid users = %S


上面原來的設定當然有很多註解,並沒說一定要刪除註解。重點是 valid users = %S 及 writable = yes
3. sudo service smbd restart
4. sudo service nmbd restart
5. 在 PC 端,「開始」「執行」輸入 \\你的 ubuntu 位址\你的帳號 即可跳出帳號密碼畫面,請輸入在 ubuntu 上的帳號密碼,實際輸入例如下:
\\10.20.30.39\wade