2011/02/25

[Linux] OpenOffice 和 Google Docs 合體作戰


--
備忘:
資料來源: http://extensions.services.openoffice.org/en/project/ooo2gd
如果 OOo 3.2.1 不能裝的話 試試看:
sudo apt-get remove openoffice.org-java-common openoffice.org-java && sudo apt-get install openoffice.org-java-common openoffice.org-java

2011/02/04

[Linux] nautilus script review, nautilis-script 出錯, 加上圖片簽名

話說 Ubuntu Tweak 上面有一個 nautilus 的 script 的功能可以加,功能選單在底下:

這些指令稿其實還蠻好用的,像"轉換圖片成 JPEG" 還是"轉換圖片成 GIF"之類的(註1)。

我把我常用的指令稿放在:
http://dl.dropbox.com/u/1117561/nautilus-script.tgz

裡面有 convert 成 1024x768 size 的指令稿 (這樣縮圖很快,方便上傳到網路上面)
也有轉換成 JPG, GIF, PNG 的指令稿,還有一個是在圖片上面加上簽名的指令稿。

解壓縮放到 $HOME/.gnome2/nautilus-scripts 底下就可以在 nautilus 的檔案右鍵上面看到。
--
註1: 指令稿的 convert 指令需要 magick 套件支援,所以請先安裝 imagemagick 套件。另外,因為 ubuntu tweak 的 script 裡面的 os.system('convert %s %s' % (file, new_name(file))) %s 忘了前後加上雙引號 " ,所以遇到特殊字元或空白時就會出錯。

2011/01/25

[Programming] chickenfoot , firefox 上面的瑞士小刀

前言:網路論壇 這邊 我有在 ptt 上面提示人家說,用 chickenfoot 可以解決他的問題。不過他的留言提到一個問題, chickenfoot 不能處理提示(alert)視窗的部份。其實 ... 他搞錯了,並不是不能,只是他不會而已。

讓我簡單的介紹一下 chickenfoot 是一款什麼樣的軟體。你可以用 它 來控制你的 firefox ,利用它來點擊每個網頁的連結,做你想要的測試或其它人手能作的動作。像是進到 google 的首頁,輸入關鍵字,再點擊 google search 的按鈕之類的。

以一個邪惡的應用來說,會像是「蘋果點點紅」的活動,你可以用 chickenfoot 很方便的載入你的 script ,去尋找點點紅的連結,最終達成點擊完所有的點數,這樣就可以拿到獎品。

邪惡的範例內容邏輯示意如下:

1. 用 script 找出所有 50 個點數。
2. 建成 array 。
3. for (i = 0; i < array.length; i ++) {
    go(array[i]);
} /* 點擊所有的點數 */
4. 處理 alert 視窗。

前面都很簡單,第四點的 alert 視窗不好處理,不過並不是沒有。
google keyword "firefox" "chickenfoot" "alert" "handle" 在 chickenfoot 的範例 repository 裡面一樣可以找得到一些範例。(藉此說明,網路的資訊常常以偏概全或積非成是?)

我消化了一下這邊論壇的範例,改成這樣:
function handleDialog()
{
    if (closeWindow() == false) {
        output("W");
        setTimeout(handleDialog, 500);
    } else {
        output("x");
    }
}

可以確保一定能關掉這個 alert 視窗,減少人手操作的需求。
至於邪惡的蘋果點點紅的 chickenfoot 的 script 連結在此
有需要可以拿這個參考。

操作也很簡單, Ctrl + O 載入 script ,再按下play ,接著會詢問你帳號密碼,打完之後就自動點擊完 50 點。(當然,這之中 firefox 是完全由這支 script 所控制的,跑完才把瀏覽器還給你 )

2011/01/10

[新聞] Ubunutu 11.04 開始採用 Unity 做為預設視窗介面(WM)

是的, Ubuntu 從 11.04 開始採用 unity 做為預設的視窗介面了。摒棄了 Gnome 的 Ubuntu 目的何在?且讓我們先看一下 unity 長什麼樣子:



這邊可以看得出來 Unity 的特點是:
1. 按鍵式介面(無桌面上的 icon 全部消失了)
2. 滿版外觀(部份應用程式像 pidgin 還是可以只有小小的一個在旁邊掛著)
3. 無標題列,改用 global menu applet。
4. 工作區直接這個面版上切換
5. 延續之前的設計,視窗按鈕在左邊,也避免了和 indicator 還有 logout / clock applet 的衝突。
6. 加強鍵盤的控制,按下視窗鍵可以用快速鍵直接操作面版上的按鍵。

筆者以為這樣介面的存在應該是為了因應平板電腦的興起而存在,因為像這樣的介面,非常適合觸控式的操作模式,這個面板還可以用拖拉的方式向上或向下延伸,再加下滿版的外觀,和無標題列節省顯示器上的空間,一整個感覺就是在向平板電腦操作的邁進。

不過這樣的設計似乎漏算了幾個地方:
1. 沒有考慮到 儲存裝置/NFS/SMBFS 的處理 (像 docky 有一個 mounter 來處理這個操作)
2. "還" 沒有考慮到客製化的部份 (我用拖拉沒有辦法新增這個面板上的按鍵)(說"還"是因為這還在開發中,所以應該會再做調整)
3. 功能和 dock applet 重複,所以感覺有點多餘(當然,也是因為我還有用 docky 的關係,所以還不確定這邊要怎麼劃分功能)


總結前言:
我覺得這個 WM 在效能和操作上與 Gnome 是兩個設計的面向,並沒有什麼好與不好,不過就小弟的偏好而言,比較喜歡 Unity 這樣簡單快速的介面(而且這樣我的美女桌布就可以要看時就完整的呈現)。不過這應該還只是個「半成品」,離明年四月正式釋出的時間還早,相信還有更多的設計在後面接著會跑出來,且讓我們拭目以待。

--
參考資料:
http://arstechnica.com/open-source/reviews/2010/05/exclusive-hands-on-with-ubuntus-new-unity-netbook-shell.ars
http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?topic_id=32518

2010/12/17

[軟體][Linux] Gimp 2.7.3 的改變 (先前都沒注意到)


這個畫面裡面看得到兩個特點:
1. Gimp 單一視窗在 2.7.3 變成選項了,所以可以使用這個選項讓你的視窗變乾淨點,這樣編輯也會快樂一點。
2. 我的 gnome panel 把 gimp 的 menu 吃掉了,所以選單的部份現在合併到 panel 上面去,這樣軟體操作的視窗會變大一點也乾淨點。(這個選項真棒,不過,我是使用 MacBuntu 的安裝 script 之後跑出來的,還不知道是更新哪個部份會出現,暫列到 todo 上去)

沒有列出來的特點:
gimp 現在的 save as file format 只有 xcf 了,如果要另存成別的檔案格式需要使用 file -> export 的選項才有辦法匯出。

--
參考資料:
http://graphicssoft.about.com/od/gimptutorials/a/exporting-files.htm
http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?post_id=118712
MacBuntu

2010/12/11

[Programming][Linux] Ubuntu 桌面自動跳正妺時計

簡單的說,我想要的效果就像下面這樣:

Ubuntu 用 minik 美人時計當桌面

不過我並不想要每一分鐘都會去換一次,那樣有點傷。
所以我就讓它隨數跳的休息,起碼有 30 秒這樣。

以下是初步可以使用的 script:

#!/bin/bash

PIDFN="/tmp/minik.pid"
[ -f "$PIDFN" ] && kill `cat /tmp/minik.pid`
echo $$ > $PIDFN

while [ 1 ]; do
# http://gameflier.lovelytime.com.tw/photo/2108.JPG

STR=`date +"%H%M"`
OUTPUT="/tmp/.girls.$STR.jpg"
wget "http://gameflier.lovelytime.com.tw/photo/$STR.JPG" -O /tmp/.tmp.girls > /dev/null 2>&1
rm -f /tmp/.girls.*
mv /tmp/.tmp.girls $OUTPUT
gconftool-2 --type string -s /desktop/gnome/background/picture_filename \
"$OUTPUT"
let RND=($SECONDS%10)*6+30
sleep $RND
done

你可以在這邊下載 script 的內容,再讓它加入 start up (始動應用程式) 裡面就可以。
http://dl.dropbox.com/u/1117561/minik.sh

>> 2011.01.25 更新:
加入 pid file 避免重複執行。

2010/12/09

[軟體][Linux] VirtualBox 4.0 Beta 1 釋出, Ubuntu 使用者嘗鮮說明

注意:這篇說明是寫給 VirtualBox 4.0 Beta 1 在 Ubuntu 上面的嘗鮮者,所以需要具備一些細節的知識。

不建議非技術人員或生產人員輕易嘗試,可能會毀掉你的 epc 或工作的環境。

動機:

  • USB 2.0 EHCI 控制器和 RDP 服務器移入到 Extension Pack,不再包含在發佈版本當中,保證了 VirtualBox 是完全的開源軟件。USB 1.1 OHCI 控制器一直是核心部件,兩者的區別在於傳輸速度。(使用打印機和網銀 USB key 需要注意。)
  • 全新設計的用戶界面,增加了 NAT 端口轉發的 GUI 設置界面。
  • 增加 Open Virtualization Format Archive (OVA 格式)的支持。
  • 支持在 32bit host 上的虛擬機使用 1.5GB/2GB 內存。
  • 增加 ICH9 的 3 個 PCI 設備的支持。
  • 支持虛擬機使用 Intel HD Audio 音頻設備。(Windows 7 Guest 不再需要額外找 Realtek AC97 驅動。)
  • 增加 iSCSI、VMDK、VHD 和 Parallels 鏡像的異步 I/O 特性;允許 VHD 和 VDI 的大小縮放。
  • 增加自動更新 Guest Addition 功能
  • 引入 copy-and-paste 的特性。
  • 編程語言:API 增加標準 Java 語言的本地和遠程的支持。
  • 增加 Scale Mode 適應分辨率不高的全屏程序。


確認有足夠的動機之後,我們就開始來安裝,要做的事情如下:

  • 安裝 libstdc++5
  • 安裝 virtualbox 4.0 beta 1 的 deb
  • 安裝 extension pack
  • 修改 usb dev 的 rule
安裝 libstdc++5 的部份很簡單,因為 ubuntu 10.04 已經都換到 libstdc++6 了,所以套件倉庫已找不到這個套件了,我們要另外加來源才能安裝。(當然不建議手動安裝,修改 symbolic link,所以還是用 deb 來安裝)
把這行加到 /etc/apt/sources.list 的最後
 deb http://cz.archive.Ubuntu.com/ubuntu jaunty main universe  
然後再 sudo apt-get update; sudo apt-get install libstdc++5

就可以安裝好 libstdc++5 了。

安裝 virtualbox 4.0 beta 1 的部份也很簡單,先下載  deb 的包裝。記得要找自已的版本代號, 10.04 是 lucid , 10.10 就是 maverick 。
然後是 sudo apt-get purge virtualbox; dpkg -i  virtualbox-4.0_4.0.0~beta1-68572~Ubuntu~lucid_i386.deb
再來是安裝 extension pack ,這邊應該是 oracle 有搞一點專利或保留的部份。一樣先下載檔案,然後在桌面上雙點就可以。(我不知道為什麼 console 底下 chmod +x 不能執行,這邊好像有玄機,所以改天可以再去查一下)
跑到這邊,應該沒事了,你的 virtualbox 已經可以跑了。不過 usb 在 virtualbox 3.2 的版本還可以動作的,到這個昇級完了又不能動了,一樣是老問題,所以先檢查 group 設定,確定這個使用者有在 vboxusers 裡面,以前有寫過,所以就不多提。
不過這次,光這樣還不行,不知道是我的情況比較特別,還是真的是 vbox 的開發人員的疏失,在 usb dev 的 rules 裡面看到了錯誤,所以再修正:
--- /etc/udev/rules.d/10-vboxdrv.rules 2010-12-09 10:18:13.000000000 +0800
+++ /home/anton/10-vboxdrv.rules 2010-12-09 10:15:44.000000000 +0800
@@ -1,5 +1,5 @@
KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600"
-SUBSYSTEM=="usb_device", ACTION=="add", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers"
-SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers"
-SUBSYSTEM=="usb_device", ACTION=="remove", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
-SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
+SUBSYSTEM=="usb_device", ACTION=="add", RUN=/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}" vboxusers
+SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN=/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}" vboxusers
+SUBSYSTEM=="usb_device", ACTION=="remove", RUN=/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
+SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN=/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"

簡單的說,就是這條 rule 的 RUN 參數指定的時候雙引號沒有括好,所以這條 rule 一定會失敗,失敗了 vbox 就加不了這個 node ,也就不能好好使用 usb device 了。
--
參考資料:
linux toy 上的新聞:http://linuxtoy.org/archives/virtualbox-400-beta-1-%E5%8F%91%E5%B8%83.html
英文指南:如何處理錯誤訊息(Extension 跟 libstdc++5)
ubuntu 上面安裝 libstdc++5 的指南

[Windows] git-bash 底下的工具

因為工作轉到 Windows 平台上的關係,所以很多工具改到 Windows 上面運作,跟著在 TortoiseGit 底下使用 git-bash 來維護自己的專案原始碼。結果就是裝了前面提過的 auto-hotkey 使用熱鍵來提昇自己的平台操作速度; 但除了 hotkey...