2009-12-30

Ubuntu 如何製作 LiveUSB ?

Ubuntu 在最近的版本上,已經都有提供「建立 USB 啟動」的功能了,只要裝好 Ubuntu 或是從 LiveCD 啟動,在進入 Ubuntu 之後,從上面選單的「System」>「Administration」>「USB 啟動碟產生器」就會跳出建立 USB 啟動碟的畫面。


跳出的 USB 啟動碟建立視窗共分成二個部分,上面是先選擇從 Ubuntu 下載來的 ISO 檔,然後下面選擇要安裝為啟動碟的 USB,選完之後再按一下右下角的「產生啟動磁碟片」,這樣就可以做出和 LiveCD 一樣效果的 LiveUSB 了。

2009-12-29

VirtualBox 的快照( Snapshot )功能 : 一切可以從來的..

阿舍個人非常喜歡 VirtualBox 的「快照」這個功能,因為它讓阿舍在實驗失敗時,不用一切從頭,只要按下要回復的那個快照,就可以回復到測試前的狀態所以,如果要在虛擬機器上做實驗的話,那就要記得去產生一個快照,不過,要提一下的是,每次產生的快照檔案大小是等於當時虛擬機器的大小,因此,快照還滿吃硬碟空間的哩 !

產生快照的方式有二種,一個是在虛擬機器啟動的時候,在虛擬機器視窗上,按「機器(M)」>「拍下系統快照(S)」,然後輸入「快照名稱」並按「確定」就可以了。


另一個方法是在虛擬機器停止的時候,到「設定值(S)」的「快照(S)」畫面來新增,不過,要注意的是,滑鼠要停在「目前狀態」那裡才能拍新的快照的。


如果是要回復的話,要先停止虛擬機器,再到「設定值(S)」的「快照(S)」畫面,選擇要回復的那個快照,按滑鼠右鍵選「Restore Snapshot」 來執行回復。

2009-12-27

Ubuntu 如何安裝 Sun Jre ( Java Run Time ) ?

更新 : Ubuntu 11.10 之後的版本已不適用此方式,請改用這篇文的方式

目前 Ubuntu 可以安裝下列  Sun Java 的套件:
  • sun-java6-bin - Java 的執行檔。
  • sun-java6-demo - Java 範例與展示程式。
  • sun-java6-doc - Java 說明文件。
  • sun-java6-fonts - JRE 使用的 Lucida TrueType 字型。
  • sun-java6-jdk - Java 的程式開發套件 (  Development Kit )。
  • sun-java6-jre - Java 的程式執行環境 ( Runtime Environment )。
  • sun-java6-plugin - Mozilla 瀏覽器的 Java 插件 ( Plug-in ),讓 Mozilla 瀏覽器可以執行 Java Applet。
  • sun-java6-source - Java 的原始程式碼。
如果只是要能執行 Java 的程式的話,只要安裝 JRE 就可以了,操作指令如下:
sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts

Ubuntu 用指令安裝 deb 檔

雖然,Ubuntu 的大部份都可以用 PPA 來安裝,不過,偶爾,阿舍還是會遇到要安裝的軟體是給 .deb 這種檔案格式的,如果你的 Ubuntu 是有使用圖型介面的話,就只要用滑鼠點二下 deb 檔,這樣,Ubuntu 就會啟動相關的程式來安裝這個 deb 安裝檔,但是,如果是在沒有圖形介面可以用的情況下的話,那就得要用 dpkg 指令來手動安裝囉 !

圖形介面的安裝畫面

Lotus Notes Client For Linux

Lotus Domino Server 從很早以前就有支援 Linux 的版本,不過,大都只有 Red HatSUSE,早期還有支援 TurboLinuxOpenLinux 的版本,但是 Lotus Notes Client 對 Linux 的版本則是一直到了 2006 年的 Lotus Notes 7.0 版時 IBM 才開始有 Linux 的版本,但是,一樣的,只有 Red Hat 和 SUSE 而且都要是 Enterprise 的版本才行

2009-12-26

StumbleUpon : 閒來無事或是無聊時就該玩這個..

阿舍無意間看到 StumbleUpon 這個網站,一開始並沒有太大的興趣,只是看到己經有八百萬個會員了,這才讓阿舍有興趣來瞭解一下,這個 StumbleUpon 是什麼呢 ?  StumbleUpon 其實沒有做很複雜的事,它就是會幫你找網頁來看,讓你知道目前的熱門網頁有那些以及有那些新的網頁出現。

阿舍試了一下,跳出來的網頁有好有壞,有些內容是阿舍自己大概都不會去找出來,不過,透過這個 StumbleUpon 就有機會可以看到哩 ! 真的很適合阿舍沒事幹或不想做事的時候,拿來亂翻用,這總比阿舍漫無目的在網上晃來的有趣....。

那會不會出現限制級的內容呢 ? 這個  StumbleUpon  有想到,預設是不會的,但是可以自己去調整,是要可以出現 R 級的,或是 X 級的,都可以自己選喔 !!

VirtualBox 啟動 USB 外接硬碟的 Windows

阿舍有一顆從 X60 上換下來的 60G 硬碟,上面還有 Windows XP 可以開機,阿舍想要利用 VirtualBox 啟動這顆硬碟上的 Windows XP,查了手冊,有一個叫做「Access to entire physical hard disk」的方式可以讓 VirtualBox 抓到這顆硬碟並且開啟上面的作業系統,阿舍參考上面的做法,試了一下,有成功哩 !
作法是建立一個 VirtaulBox 的虛擬硬碟來指向這個實體的 USB 硬碟,操作步驟如下:

1. 插入 USB 硬碟。
2. 開啟 Dos 視窗,將路徑切換到 VirtualBox 的安裝目錄,阿舍用的是 VirtualBox 3.1.0 版,安裝路徑是 C:\Program Files\Sun\VirtualBox。
3. 在 Dos 視窗打入下列指令:
VBoxManage internalcommands createrawvmdk -filename d:\vm\x60\x60.vmdk -rawdisk \\.\PhysicalDrive1
  • 指令中的 d:\vm\x60\x60.vmdk 是要產生出來的 VirtualBox 虛擬硬碟存放路徑與檔名。 
  • 指令中的 \\.\PhysicalDrive1 是指要建立虛擬硬碟的實體硬碟編號,阿舍只有一硬碟,編號是 0,再用 USB 加掛一個就是第二顆,編號是 1,以此類推,不過,阿舍建議在做這個動作時,就不要掛其它 USB 的儲存裝置,避免搞不清楚那一顆才對。

4.開啟 Virtual Media Manager 把剛剛建好的 VMDK 檔加入到 Hard Disks 裡去。
5.新增一個虛擬機器,把上面建好的 VMDK 檔當做硬碟,這樣啟動這個虛擬機器時,就會從外接的 USB 實體硬碟啟動了。

2009-12-25

Google Chrome 瀏覽器更新和升級

開啟  Google Chrome 瀏覽器後,按手右邊「板手」圖示的下拉選單,然後點選「關於 Google 瀏覽器」,這時會跳出 Google Chrome 瀏覽器的關於視窗,同時會開始檢查是不是有新的版本,如果有新版本就會在關於視窗的右下角出現更新的按鈕,不然就會顯示目前是最新版本的訊息。

按下更新的按鈕後就會開始下載和安裝,完成之後關閉 Google Chrome 瀏覽器後再開起來就會是新版本了。

2009-12-22

Ubuntu Server 安裝 VirtualBox Guest Addition

阿舍本來以為 Ubuntu Server 和 Ubuntu Desktop 這二個版本在安裝 Virtualbox Guest Addition 上,應該是不會有什麼不同才對,於是,阿舍就把安裝 Virtualbox Guest Addition 的指令給打下去,然後,就出現錯誤,結果,就裝不起來哩 ! 啊  ! 怎麼會這樣呢 ! 於是,阿舍就去查了一下,這才發現,原來是沒有辦法編譯的問題哩 !

(註: 在沒有 X Window 的 Ubuntu Server Guest 上,就算是安裝了 Guest Additions,還是無法達到滑鼠整合和可與 Host 共享剪貼簿的功能的 ...==! )

Ubuntu Server 直接安裝 VirtualBox Guest Additions 會有問題 

Ubuntu 用指令掛載 CDROM

如果 Ubuntu 有認出你電腦上的 CDROM (光碟機) 的話,在 /dev 資料夾就可以找 cdrom 這個檔案,確定在 /dev 資料夾下有 cdrom 這個檔案後,就可以直接用下面這一行的 mount 指令來將 /dev/cdrom 掛到 /media/cdrom 之後,就可以在 /media/cdrom 資料夾讀到光碟片的內容了 ...

$ sudo mount /dev/cdrom /media/cdrom

另外,阿舍要說明一下這個 /media 資料夾,雖然,早期的 Linux 都習慣把掛載的東西都掛到 /mnt 資料夾下,不過,Ubuntu 上已經都是改用 /media 這個資料夾來掛載硬碟、CD-ROM 或是 USB 隨身碟,而原來的 /mnt 資料夾這個資料夾則是保留作為其它的用途了 !  有興趣瞭解為什麼的話,請參考阿舍寫的這一篇囉 !



2009-12-21

Ubuntu 升級 X.04 版至 X.10 版

新版剛上市的前幾天會很容易升級失敗的,因為太多人在做升級了,阿舍就有遇到過哩 ! 所以,如果不幸失敗了,就請多試幾次囉 !  請依序執行下面的指令:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install update-manager-core
sudo do-release-upgrade

執行第四個指令後會開始下載,然後解壓縮,接著便開始升級作業,但是人不能走開讓它自已跑,因為阿舍有遇到跳出視窗問問題的,不過就遇到一個而已,再來就是等到最後,會找出不用的軟體,會問說是不是確定要移除,回答 y 就會去刪了,最後的最後就會說已經升級完成,問要不要重開機,按 y 就升級完成重開了...。

重開之後,再執行下面這個指令就可以知道現在的版本是多少,這樣就會知道升級有沒有成功了哩 ...

 lsb_release -a

Ubuntu 查詢版本資訊

一般的情況下,阿舍都是會知道所用的 Ubuntu 是那一個版本,但是,如果是突然要處理一台已經開機,可是,不能重新開機的電腦時,要如何知道這台電腦上的 Ubuntu 版本呢 ?  阿舍查了一下,整理出來有下面四種方法可用哩 !

. 方法一
會出現 Ubuntu 版本代碼,阿舍建議使用。

lsb_release -a 

. 方法二
這個方是會連 Linux kernel 的版本都會出現的。

uname -a

. 方法三

cat /etc/issue

. 方法四
其實,在 /etc/lsb-release 這個檔案裡會記錄著版本訊息,直接開來看也是可以知道版本資訊的。

cat /etc/lsb-release

順便看看:

2009-12-20

用 Eclipse 3.5 + PyDev 1.5.x 建立 Google App Engine 專案


新版的的 PyDev 已有支援 Google App Engine 專用的專案類型並提供範本,所以,設定上就比較方便了,建立方法如下:

1.在 Eclispe 畫面上按下 Ctrl + N ( 或是從選單的「File」>「New」>「Other」),在新專案畫面出現後,選「PyDev」下的「PyDev Google App Engine Project」,接著按「Next」。

2.在「Project Name」欄位輸入專案名稱,然後在下面的「Grammar Version」選  「2.5」 ( 因為目前的 Google App Engine 只有支援 Python 2.5.x 的版本 ),接著按「Next」。

3.在 「Google App Engine Directory」欄位輸入 Google App Engine SDK 的安裝路徑,然後按「Next」。

4.在第一個「What's application id registered for thins project」欄位輸入這個程式的名稱,這個名稱是會被放到 App.yaml 的  application 那個參數用的,所以要符合 application 的命名規則。

5.在第二個「From which template do you want to create your new Google App Project」欄位選擇「Hello Webapp World」,這個會用 Hello World 當範例建立一個 Google App Engine  的程式範例。

6.按下「Finish」就會開始建立專案相關檔案。

如果要直接試跑這個剛建好的 Hello Webapp World 專案,那就要先把 app.yaml 檔的 application 改成 helloworld,然後在專案的「src」上按下滑鼠右鍵,選「Run As」>「PyDev: Google App Run」,這樣就會開始執行了,接著到瀏覽器打入 http://localhost:8080 就會出現 "Hello, webapp World!"

如何移除 Eclipse 3.5 的外掛 (Plug-In) ?

啟動 Eclipse 後,點選選單的「Help」>「About Eclipse 」,然後會跳出一個視窗,點選視窗左下角的「Installation Details」就會跳出一個「Eclipse Installation Details」的視窗,在「Installed Software」上點選要移除的外掛,下面的「Uninstall..」按鈕就會變成可以按的了。

一步一步安裝 Google App Engine SDK + PyDev + Eclipse 3.5

  1. 下載  Python 2.6.x 並執行安裝程式,最好是直接放在根目錄下,例如,c:\python26 或 d:\python。 ( Google App Engine 只支援 Python 2.5 )
  2. 下載並執行安裝程式安裝 Google App Engine SDK,最好是直接放在根目錄下,例如,c:\gae 或 d:\gae。
  3. 下載並解壓縮 Eclipse 到一個資料夾,最好是直接放在根目錄下,例如,c:\eclipse 或 d:\eclispe。
  4. 安裝配置 PyDev。( 裝好要關掉 Eclipse 再重新開啟 )

Lotus Domino Designer 8.5.1 開放免費下載及使用

IBM 在 DeveloperWork 上公佈,提供給開發者免費的 Lotus Domino Designer 8.5.1 版,有興趣的,可以到這裡下載,不過是需要登入的,如果你沒有 IBM DeveloperWork 的帳號,請先註冊才行,有關  Lotus Domino Designer 8.5.1 的介紹請參考這裡(中文)這裡(英文)

這個版本的授權只能開發不連結到 Lotus Domino Server 的軟體,所以,只適合自己在家測試用,如果公司要拿來開發軟體或連結到  Lotus Domino Server 的話,還是要另外付費的。

2009-12-19

安裝 Dojo、Dijit 及 DojoX

Dojo、Dijit及 DojoX 不用特別執行什麼安裝程式,只要下載並解壓就可以了,不過,要注意的是,解開後的 Dojo、Dijit及 DojoX 三個資料夾要放在同一個資料夾裡才行,例如,阿舍在 Apache 的 htdocs 裡建了一個資料夾叫做 js ,那麼就要把 Dojo、Dijit及 DojoX 這三個資料夾都放到 js 裡才行,不然,當使用 dojo.require() 來取 dojo 的模組時,就會發生找不到檔案的問題哩 !!

Lotus Domino 8.5 內建 Dojo 1.1.1 版

Lotus Domino 8.5 在出廠的時候就已經內建有 Dojo 1.1.1 的版本,用來增強 Lotus Domino 在 Web 上的 Ajax 功能,,同時也讓本來不是 Lotus Domino/Notes 的開發者能較容易的進入 Lotus Domino 的 Web 程式開發領域,另外 dojo 也整合在 Lotus Domino 8.5 的 XPage 新功能裡。

內建的 Dojo 被放在 Lotus Domino Server 上的 data\domino\js\dojo-x.x.x\dojo\dojo.js 裡,在 Web 上的 URL 是  /domjs/dojo-x.x.x/dojo/dojo.js,這和傳統 Lotus Domino Server 上的網址轉換是不太一樣的。
Lotus Domino 8.5 Server 有針對 Dojo 進行最佳化和提供 GZip 壓縮的功能,同時也支援瀏覽器預載快取 ( Predictable Browser Caching )的功能,提高 Dojo 的執行效能和降低頻寛的使用...。

註 : 那 Lotus Domino 6.5 和 7.0 的用戶是不是現在就可以考慮使用 Dojo 來開發 Web 程式哩 !? 之後升就會比較簡單哩 !! 

Notes Domino 6.x火速上手



2009-12-18

Google Browser Size 瀏覽器尺寸量測工具

Google Browser Size 是 Google Labs 提供的一個量測工具,它是依據訪客訪問 Google 網頁時所使用的瀏覽器視窗尺寸來統計網頁內容在不同尺寸被看的機率有多少,這個功能對設計大眾使用型的網頁很用,可以用來瞭解使用者到底都看到什麼東西 ??

阿舍就把這個站放到 Google Browser Size 去試看看,結果,有只 90% 的人在一開網站時,可以看到阿舍這個站的全部內容哩 ! 置中的版面果然是有點問題的哩 !! 不過,阿舍看 Google Browser Size 的說明裡有說到,它是以靠左排列的版面為主,所以,像阿舍這種的排法就有可能失準哩 !!

*右上角的四條灰色長方型色塊點下去可以改變透明度

2009-12-17

Amazon 的虛擬私有雲端運算服務 ( Amazon Virtual Private Cloud : VPC)

Amazon 推出虛擬私有雲端運算服務 ( Virtual Private Cloud : VPC )是透過 VPN 和指定 IP 的方式來達到虛擬私有雲端運算的效果,但是,實際上,這些被拿來做虛擬私有雲端運算的設備仍然是被放在 Amazon 用來提供公共雲端運算的資料中心裡 ( 註: 也許 Amazon 有針對提供虛擬私有雲端運算服務的設備和公共的做區隔,不過,阿舍還沒有在 Amazon 的任何文件上看到哩 .. )。

Amazon 提供的這種虛擬私有雲端的計價方式和他自己的其它雲端運算服務是一樣的,同樣是以使用時間和資料傳輸量來計價的,而比較特別的是,虛擬私有雲的使用時間是以每一個 VPN 連線的時間來計價,以每小時為單位,每一小時收 $0.05 元美金,看來不貴,但是人多的時候也是很可觀的。

2009-12-16

DIV 標籤和 SPAN 標籤的不同在那裡 ??

  • 依 W3C 的定義,DIV 標籤是用來處理區塊的資料,SPAN 標籤是用來處理單行的文字。
  • 兩組 DIV 標籤放一起時,預設的情況下,會排成上下二行,但是二組 SPAN 標籤排在一起時,會放在同一行。
  • DIV 標籤可以包含 SPAN 標籤,但是 SPAN 標籤裡不可包含 DIV 標籤 ( 阿舍有試了,是不會出現錯誤訊息,但是 Javascript 會找不到包在 SPAN 裡的 DIV )。

dojo.byId 和 dojo.query 的差別..

dojo.byId 只能用來取有 ID 的節點,傳回值是一個 DomNode,可以直接對它做操作,而 dojo.query 可以支援 CC3 Selector 的方式選取 HTML 或 XML 文件中的多個節點,所以 dojo.query 的傳回值是一個 dojo.NodeList,也就說 dojo.query 的傳回值不能直接拿來操作 ( 例如用 innerHTML 塞字串 ),而是必須透過 dojo.forEach 來處理。

一般來說,dojo.byId 適合用來處理有 ID 的節點,而 dojo.query 適合用來處理 Class 節點或複雜的節點搜尋。

Ubuntu 手動更新

一般來說,Ubuntu 會自己出現要更新的通知,不過,偶爾,你會在 Ubuntu 出現更新訊息的那個時候不方便來更新,但是事後想要更新的時候就可能和阿舍一樣找不到更新的地方了....

Ubuntu 的系統新更功能要從「系統」>「管理」>「更新管理員」進入,等「更新管理員」出現後,先按「檢查」再按「安裝更新套件」,這樣就會開始更新了。

如果想要直接用指令操作的話,請參考這裡

VirtualBox 升級注意事項

阿舍試過了,在不移除原來的 VirtualBox,而直接安裝新版的 VirtualBox 的話,是不會出什麼狀況的,升級前建好的虛擬機器 ( Virtual Machine ) 都可以繼續使用,不會受影響,但是,必需要在 Guest OS 上重新安裝 VirtualBox Guest Additions,不然有些功能是會失效的,而且,舊版 VirtualBox 的 Guest Additions 在新版的 VirtualBox 上,有時候好像也會有問題的,阿舍就有遇到跳出錯誤訊息,說版本不相容的情形哩 !

另外,升級之後還有一個東西也是會受到影響的,那就是 USB 設備 ,如果有在 Guest OS 上使用 Host OS 的 USB 設備的話 ,也是要再重裝一次 USB 的驅動程式哩 !!

2009-12-15

Google Apps vs. Google App Engine

Google Apps Google App Engine 是兩個不一樣的服務,但都是 Google 提供的服務,Google Apps 是讓企業可以不用自己動手架設,只要經過幾個簡單的設定步驟,就可以擁有屬於自己網域 ( Domain Name ) 的網站、郵件、日曆、即時訊息及協同作業平台等功能,Google Apps 是一項收費服務,不過,10 人以下的公司免費的服務,如是小公司或微創業的話,可以考慮來用用,算一算也是不少錢哩 !

Google App Engine 服務的對象和 Google Apps 就一樣,主要是軟體開發商或開發人員,而不是一般的使用者,Google App Engine 主要是提供開發網路服務或網路應用軟體運行平台的服務,除此之外,Google App Engine 還提供很多 Google 寫的程式庫和功能來讓開發人員加快開發的速度。

簡而言之,Google Apps 是提供馬上可用的網路應用軟體的服務,而 Google App Engine 則是提供馬上可用的網路應用軟體的開發和運行環境哩 !

2009-12-14

dojo.indexOf 說明與範例

dojo.indexOf 是 dojo 的陣列處理函數之一,用來取得指定字串在陣列中第一次出現的位置,如果找不到指定的字串時,會傳回 -1 表示,用法如下:
var 字串位置 = dojo.indexOf(陣列名稱, "搜尋字串");
程式範例如下:
<script type="text/javascript">
   dojo.addOnLoad(function(){
    var arrSample = ["apple", "dog", "book","book","desk"];
    var position = dojo.indexOf(arrSample, "book");
        alert(position);
    });
</script

dojo 辨識瀏覽器名稱和版本

dojo 判斷瀏覽器的方式是透過下面這一堆的函數來判別瀏覽器的種類,而不是單純的呼叫一個函數就可以了,所以,有一點小小的麻煩。
  • dojo.isIE
  • dojo.isMozilla
  • dojo.isFF
  • dojo.isOpera
  • dojo.isSafari
  • dojo.isKhtml
  • dojo.isWebKit
  • dojo.isChrome
上面的這些函數在找到正確的瀏覽器名稱後會回傳瀏覽器的版本,所以,如果有傳回值就表示找到正確的瀏覽器名稱了,程式範例如下:
<script type="text/javascript">
dojo.addOnLoad(function(){
  dojo.forEach(["IE", "Mozilla", "FF", "Opera", "WebKit", "Chrome","Khtml","Safari"],
               function(browserName) {
                    if (dojo["is"+browserName]) {
                        var version = dojo["is"+browserName] ;
                        dojo.byId("msg").innerHTML = browserName + " " + version;
                    }
               });
  });
</script>
   
<body>
<div id="msg"></div>
</body>

2009-12-13

dojo : djConfig 的用法

djConfig 是用來改變 dojo 預設的全域變數,一般的情況下是不會用到的,只有在要啟用 Debug ( 偵錯 ) 模式或是多國語言時才會用到,使用方式有二種,第一種是直接把 djConfig 當作是 HTML 的標籤 ( Tag ) 屬性 ( Attribute ),把它放到 Script 標籤裡,方法如下:

<script

type="text/javascript"

src="http://ajax.googleapis.com/ajax/libs/dojo/1.4.0/dojo/dojo.xd.js"

djConfig="parseOnLoad: true, isDebug: true">

</script>

第二種則是透過 Javascript 程式碼先設定好 djConfig 物件,而不使用標籤屬性的方法,寫法如下:

<script type="text/javascript">

var djConfig = {

parseOnLoad: true,

isDebug: true,

};

</script>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.4.0/dojo/dojo.xd.js"></scrip

那一種比較好,阿舍個人是覺得,當 djConfig 要用到的參數少時,就用第一種,djConfig 參數多時就用第二種,如果要動態指定 djConfig 參數時,那當然也是用第二種囉 !!

2009-12-12

VirtualBox 的版權及版本差異

更新 : 從 VirtualBox 4.0 版之後,就沒有再分二固版本了, VirtualBox 4.0 版之後就都是免費的開放原始碼軟體了。

大部分的人都說 VirtualBox 是免費軟體,其實是不太正確的,事實上,VirtualBox 是只有個人及教育使用時才是免費的,如果企業要用的話,那還是要付費採購的....。


不過,企業要用也有不付費的方式,那就用 VirtualBox Open Source Edition,就是它的開放原始碼版本,這個開放原始碼的版本少了遠端桌面遙控虛擬機器和支援使用 USB 的功能,如果公司不需要用到這二個功能,那就可以到這裡下載來用囉 !!


BlogUpp! - 免費交換連結服務

阿舍剛架這個站的時候,有在找交換連結的服務,但是一直沒有找到滿意的,就是不知為何 ? 阿舍自己總是覺得交換連結或交換聯盟的網站看起來都有點讓阿舍不太放心哩!然後,如果要用國外的交換連結服務的話,阿舍就又覺得阿舍這個中文網站出現在國外網站上的意義好像不太大哩!所以就沒有想要用國外的...

不用註冊,輸入網址就可以使用

善用 Google CDN 服務

如果你的網路程式或網站有和阿舍一樣用到 JQuery、JQuery UI、Prototypescript.aculo.usMooToolsDojo 等這些 Javascript 程式庫的話,那就可以考慮不要再放在自己的網站上來吃頻寛了,可以考慮直接引用放在 Google 家的就可以了,這樣可以節省網站的頻寬,而且,搞不好還比放在自己的網站上來的快哩 !! 有關使用的方式請參考這裡

排除 MySQL 的 Unable to save result set 錯誤訊息

阿舍在自己電腦上用的 Drupal 測試網站突然間就出現了這個「 Unable to save result set 」的錯誤訊息,然後,阿舍的 Drupal 網站就開不起來了哩 ! 阿舍去 Drupal.org 網站找也沒有找到什麼結果,後來,阿舍就去問 Google 先生,在翻到這篇後才知道,原來是資料庫有問題,只要登入 MySQL 之後,先用 CHECK TABLE 指令執行看看那些資料表有問題,然後再用 REPAIR TABLE 指令把有問題的資料表修復就可以了。
可以用 phpMyAdmin 來修復

2009-12-11

如何設定 VirtualBox 的共用 USB

如果按照這篇的方式裝了 USB 的驅動式之後,又重開機之後,還是沒有在 Linux Guest 上找到 USB 的話,就要把 Linux Guest 關機,插上 USB 確定 Winodws 有抓到後,接著到「設定值」的「USB」(如下圖)來新增 USB (要按右邊第二個有 + 號的圖示),之後再重新啟動 Linux,然再按照這篇的方式選用 USB,這樣應該就可以用了。


另外,不是裝一次驅動程式就好了,每次插入新的 USB 都要再重頭來一遍......。

2009-12-09

Google 公佈官方 Chrome 瀏覽器 For Linux Beta 版

2009/12/9 日阿舍收到署名為 Google Chrome 的來信 ( 阿舍有去訂閱說要收到 Linux 版可下載通知 ),說 Google 發佈 Linux 測試版了,阿舍就連過去下載來玩看看,目前 Google Chrome 瀏覽器提供 Debian、Ubuntu、Fedora 及 openSUSE 等四個 Linux 發行版本,但是其它的 Linux 發行本也可以從這裡來下載,阿舍是裝在 Ubuntu 上的,Google Chrome 瀏覽器用起來和阿舍之前介紹的,在 chromium.org 上下載來的沒有太差別哩 !!


Google Chrome Browser for Linux / Mac (非官方)

如果從 Google Chrome Browser 的官方網站上,是沒有辦法下載的到 Chrome Browser for Linux 的,必需從這裡下載, 為什麼可以從 www.chromium.org 來下載呢 ? 因為 Chrome Browser 是以Chromium 專案為基礎的免費開放程式碼瀏覽器,所以在 Chromium 專案的網站上就以下載到最新的版本。

下載下來的壓縮檔只要解壓之後到 chrome-linux 資料夾點 chrome 就會啟動 Chrome Browser,不過,這裡的版本和 Google 所發佈的版本會有不一樣,至少 Logo 和名稱就不會是一樣的。



如果是要下載 Mac 用的版本,就要到這裡下載

安裝 VirtualBox 的 Windows USB 驅動程式 ( Driver )

VirtualBox 可以讓 Guest OS 直接存取 Host OS 的 USB,不過,阿舍因為都沒在 Guest OS 上使用 USB,因此,也就一直都沒有想要去試這個功能,但是,最近,因為要在 USB 上做個 Ubuntu 的 Live CD,才會想到要來試這個功能。

要讓 Linux Guest 可以抓到 Windows Host 的 USB 不難,當 Linux Guest 開著時,插入 USB 裝置,然後,在 Linux Guest 視窗的上面選擇「裝置」>「USB 裝置」> 選擇要在 Guest OS 使用的 USB 名稱。

VirtualBox 4.x 的操作畫面
如果是第一次使用這個 USB 裝置,就會跳出 Winodws 的驅動程式安裝畫面,VirtualBox 的 USB 驅動程式是放在 VirtualBox 安裝資料夾下的 driver 資料夾下的 USB 資料夾裡 ( 阿舍裝的是 VirtualBox 3.0.12 版,路徑是在 C:\Program Files\Sun\VirtualBox\drivers\USB 裡,VirtualBox 4.0 之後的版本放在 C:\Program Files\Oracle\VirtualBox\drivers\USB 裡 ),驅動程式安裝完成後,應該就會在桌面出現 USB 的圖示,如果沒有出現或是中間有安裝失敗,那就把電腦重開看看,或是重開後再重新操作一遍看看囉 !! 還是不行,就再試試這個方法

VirtualBox 3.x 的操作畫面

另外,阿舍發現,當 Linux Guest 有連上 USB 時,在 Windows Host 上是看不到這支 USB 的,兩者是不可以同時使用同一個 USB 裝置的哩 ! ...

延伸閱讀
VirtualBox 設定共用 USB

2009-12-08

Notes Client 無法開啟


如果跟阿舍一樣有遇到 Notes Client 點下去只有出現一個啟動畫面之後,就沒有動作的話,那應該就有可能是 notes.ini 有問題了,以阿舍的經驗來說,這有可能是因為 notes.ini 檔案裡面被放入奇怪的東西,或是,裡面根本就是亂掉了,也可能是 notes.ini 不見了,所以,只要找一台正常的 Notes Client 的 notes.ini 檔案來把它 Copy 來用,這樣應該就可以恢復正常了哩 !

Goolge Reader 使用翻譯功能

Google Reader 剛開始提供翻譯功能時並不包含中文翻譯功能,不過,好像今年年初 Google 就開始有支援翻譯成正體中文了,阿舍試了一下,只要在 Goolge Reader 上按一下「翻譯我的語言」 (參考下圖 ),然後,稍等一下之後,原來的英文就會變成中文了哩 !


但是,翻譯出來的結果和用 Google Translate 翻出來的差不多,阿舍個人是覺得效果是還好,不過,至少還是比直接英文來的快一點哩 !

2009-12-07

Host OS 和 Guest OS 是什麼 ?

Host (或是叫做 Host OS )指的是用來安裝虛擬機器軟體的作業系統,而 Guest ( 也叫做 Guest OS) 則是指安裝在虛擬機器上的作業系統,舉例來說,阿舍在筆電上裝了 Winodws 7,然後在 Windows 7 上安裝了 VirtualBox 或 VMWare,接著,再把 Ubuntu 或 Windows XP 裝在 由 VirtualBox 或是 VMWare 建立的虛擬機器上,那麼,這個裝在 VirtualBox 或是 VMWare 虛擬機器的 Ubuntu 或是 Windows XP 就叫做 Guest OS,而阿舍原本筆電上安裝的 Windows 7 就是 Host OS 囉 !!

Credit www.virtuatopia.com

簡單來說,Host 就是主人,而 Guest 就是客人,所以,安裝在虛擬機器上的作業系統都稱為 Guest OS 哩 ! 而用來安裝 VirtualBox 或是 VMWare 的作業系統就稱為 Host OS 囉 !

2009-12-06

Ubuntu 安裝 Wine

有關 Wine 的介紹說明請參考這裡,在 Ubuntu 上安裝 Wine 算是簡單的,只要執行下面的指令就可安裝完成了,下面的指令會要跑一段時間,因為要從 Sourceforge 下載不少東西下來 ( 阿舍用這個指令安裝的是 Wine 的最新穩定版本 1.0.1 ) 。

apt-get update
apt-get install wine


安裝完成之後,在「應用程式」選單下,就會出現「Wine」 的選項,點「Config Wine 」的選項來調整 Wine 的設定以及安裝 Winodws 的軟體,阿舍一開始還找不到那裡來安裝 Winodws 軟體說...。


軟體是從這個畫面安裝

另外,阿舍有試著在 VirtualBox 上的 Ubunu 上安裝 Wine,結果,是可以裝成功,而且,可以安裝和執行 Windows 的軟體,只是,這樣跑起來的程式一整個慢到不行哩 !!

2009-12-05

在 Linux 上執行 Winodws 軟體的方法

Linux 上有二種方式可以來執行 Windows 的程式,早期都是用 Wine 這個軟體,用這個軟體的好處是不用裝 Windows 就可以直接安裝 Windows 的軟體,但是,壞處是有相容性的問題,因為 Wine 是自己去寫程式模擬 Windows 的 API 給 Windows 的程式用,但是,Winodws 的 NT/2000/XP/2003/Vista/7 都不是 Open Source 的軟體,很難知道 Windows 的程式是怎麼寫的,因此,Wine 是由一群程式功力深厚的高手,透過一些工具的協助,把 Windows 的程式給模擬出來的,所以,就有可能會模擬的不完整,所以,有些沒有測試過的軟體跑起來還是會有問題。


另一個方式就是用最近阿舍很常用的「虛擬機器 (Virtual Machine)」,像是 VirtualBoxXENKVMVMWare 等軟體 (要選那一套,請參考這裡),這些軟體是直接透過模擬硬體的方式,所以要跑 Windows 的軟體的話,就是先裝個上面所提的「虛擬機器」軟體,然後再安裝 Windows 的 NT/2000/XP/2003/Vista/7 等軟體,再來才是安裝要用的 Winodws 軟體,這個方式會需要安裝 Windows NT/2000/XP/2003/Vista/7,所以,會需要 Windows 的軟體授權,要花錢的,但是安裝軟體的相容性通常會比較好,比較不容易發生問題。

那一種比較好 ?? 這個阿舍是覺得是看需要來決定的,如果只是跑像 Office 或是 Lotus Notes ,或 WINE 已經測試可以穩定執行的軟體的話,那就可以考慮用 Wine,如果是要跑一些比較少見的軟體,或是用來測試的,或是懶得看軟體在 Wine 的相容性的,那當然是用虛擬機器會好一點,不過,如果有授權的考量的話,那就只好用 Wine 會比較安全一點哩 !!...呵呵 !!

Wine 除了免費的 Open source 版外,也有付費的商業版,叫做 CrossOver ,在它的網頁上也有做 Wine 和 虛擬機器的比較

2009-12-04

Linux Mint 和 Ubuntu 的不同 ?

阿舍覺得 Ubuntu Desktop 已經是不錯用的 Linux 發行版本了,但是,最近聽說有一個叫 Linux Mint 的發行版本比 Ubuntu Desktop 更好用,更有人性,所以,阿舍就去下載來試試,剛好遇到 Linux Mint 8 新發行,,所以就來試試新版本哩 !

阿舍去下載了 Linux Mint Universal Edition 的版本來用,下載下來是 1GB 左右的大小,如果不想下載這麼大的檔案,可以下載它的標準版 ( 有關 Linux Mint 的版本請參考這裡 ),阿舍一樣是用 Virtual Box 把它給裝起來的,不過,阿舍發現它的安裝順序和 Ubuntu 不太一樣,Ubuntu 在開機前就會出現安裝 Ubuntu 的選項,但是,Linux Mint 是要等到開完機之後,才會在桌面上出現安裝 Linux Mint 的圖示。

安裝的過程就和 Ubuntu 沒太大差別,安裝好之後的登入界面除了色調以外,也和 Ubuntu 沒太太差別,不過,桌面一打開就發現不太一樣了,會出現一個像 Windows 的歡迎畫面,而那個左下角的「Menu」 一點開,就開始有用 Windows 的 Fu 了。


阿舍用了一陣子之後,以同樣在 VirtualBox 上跑來說,感覺上 Linux Mint 操作起來有比較輕盈,而且在界面上比 Ubuntu 更有 Windows 的操作習慣,對於已經習慣 Windows 界面的阿舍很有熟悉感哩 !

Linux Mint 和 Ubuntu 一樣是以 Debian  為基礎所開發出來的 Linux 發行版本,也可以使用 Ubuntu 的各項資源,所以,阿舍考慮在 Client 用 Linux Mint ,在 Server 用 Ubuntu 了....

2009-12-03

Google Go 程式語言

阿舍這二天才從和朋友的聊天中知道,Google 最近發表了自家的程式語言,名字叫做 Google Go,和 Chrome OS 一樣是 Open Source 的,也和 Chrome OS 一樣是有自己的理想的,不過,這個 Google Go 竟然不是 Script Language,而是和 Java、C 及 C++ 一樣是需要 Compiler 的,也就是說,不是寫好就可以用的,還要編譯過才行。

為什麼阿舍會認為 Google 應該出的是 Script Language 呢 ? 因為阿舍印象中,Google 在很多程式都有 Python 來開發,所以,就有以為會開發 Script Language 的感覺,結果,並不是這樣的..。

Google Go 的語法看起來有點像 C++ 和 Java 的混合的樣子,不過感覺上比較偏 C++ 吧 ! 目前 Google Go 己經可以在 Linux 上下載和安裝了,而且有教學了,所以,可以裝來玩玩哩 !! ..

用 JQuery 為表單欄位加入事件( event )

阿舍一直都搞不清楚 JQuery 的 $() 是要怎麼用,今天終於有給它弄清楚了,其實真的不難, $() 的括弧中間只要放入要處理的欄位 ID 就可以了,例如 <input type="text" name="title" id="title" size="60" /> 這樣一個欄位,阿舍要為它加入一個 onBlur 的事件,用 JQuery 的語法只要加入下面的程式碼,在離開這個欄位時,就會顯示出 "Hello 阿舍 !!" 哩 !

2009-12-01

轉譯 Body 欄位內容為 "Pass-Thru HTML" 的代理程式 (Agent)

Lotus Domino / Notes 整合 TinyMCECKEditor ( FCKEditor ) 所產生的內容為 HTML 的原始碼,在經由 Lotus Domino Server 存檔後,這些 HTML 原始碼會被當作純文字存到 RichText 欄位去,所以,當在 Web 上存檔再打開文件時,就只會看到一堆 HTML 原始碼,要解決這個問題就需要將這些文字經由設定 Pass-Thru HTML 的屬性,讓 Lotus Domino Server 知道這些文字是要轉成 HTML 的才行。

以下是作轉譯的代理程式,要放在 WebQuerySave 時執行。

Sub Initialize

Dim session As New NotesSession

Dim doc As NotesDocument

Dim bodyRT As NotesRichTextItem

Dim htmlSTR As String

Dim PassThruHtmlStyle As NotesRichTextStyle

'取出傳回的 HTML 原始碼

Set doc = session.DocumentContext

Set bodyRT = doc.GetFirstItem( "Body" )

If ( bodyRT.Type = RICHTEXT ) Then

   htmlStr = bodyRT.GetUnformattedText


   '取除現有的 Body 欄位後,先移除再新增一個具有 Pass-Thru HTML 屬性的 Body 欄位

   Call doc.RemoveItem( "Body" )

   Set bodyRT = New NotesRichTextItem( doc, "Body" )

   Set PassThruHtmlStyle = session.CreateRichTextStyle

   PassThruHtmlStyle.PassThruHTML = True

   Call bodyRT.AppendStyle( PassThruHtmlStyle )

   Call bodyRT.AppendText( htmlStr )

End If

End Sub