2007年12月10日 星期一

[軟體介紹] WebKit on Linux (ubuntu) -- GTK+ 篇

繼上一篇 "[軟體介紹] WebKit on Linux (ubuntu) -- QT 篇" 中介紹了用 QT 函數庫安裝
或許有些朋友覺得說本身用的是 Gnome 而非 KDE
有沒有採用 GTK+ 函數庫的 WebKit 版本阿?
很歡樂的是,最近剛好誕生了一款叫做 "Midori"的瀏覽器軟體

稍微翻譯一下官方網站介紹的 Midori 內容
Midori 是一個輕量化的瀏覽器
*完全採用 GTK+2 打造。
*快速繪製出 WebKit
*分頁、視窗與任務對話管理。
*書籤的儲存方式是使用 XBEL
*搜尋框則是基於 OpenSearch 上。
*可自訂前後選單動作。
*支援使用者腳本與樣式自訂。
*可透過 Lua scripts 擴充。
然而,這個專案目前還是屬於 alpha 測試版的狀態,所以可能會比較不穩定些。
(啥?翻譯的很爛?好吧,我承認我爛的不只是英文 Orz)

Midori 目前則可以透過 apt-get 的方式去安裝到他
不過得先編輯一下 source list
sudo gedit /etc/apt/sources.list
然後加入以下兩行
deb http://ppa.launchpad.net/stemp/ubuntu gutsy main
deb-src http://ppa.launchpad.net/stemp/ubuntu gutsy main

儲存後離開,並且更新一些 source list 吧
sudo apt-get update
然後就可以安裝 Midori
sudo apt-get install midori
跑完後,就可以直接從 "應用程式" 裡的 "網際網路" 開啟 Midori

大公告成,看到沒?這就是 Midori 的掃描砲彈啦 :D



恩,這邊就來解釋一下為啥上一篇 "[軟體介紹] WebKit on Linux (ubuntu) -- QT 篇" 時,要說那個只是個 "偽 Safari" 呢?
請看以下圖片就知道啦 XD

第一張是我們的 "偽 Safari" ,第二張則是剛剛裝好的 "Midori"
請把眼睛往下面粗框的部份看


看到沒有?第一張用 QT 跑的WebKit 被這種會去判斷瀏覽器送出的 http header 資訊的網站解析成 "Safari" 了,所以我才說他是 "偽 Safari" 嘛 XD
第二張呢,則是該網站無法解析 "Midori" 所送出的 http header 中的 agent 欄位
所以會顯示成這樣
好啦,那就祝各位使用愉快摟 :D

[軟體介紹] WebKit on Linux (ubuntu) -- QT 篇

在經歷了每天 n 次 crash 的 firefuck 洗禮後
終於受不了跟了 jserv 抱怨了一下
於是在他的推薦下,我去嘗試了這樣的東西 "WebKit"

WebKit 是一種開放原始碼瀏覽器引擎,同時他也是 Mac OS X 底下的 Safari 、 Dashboard, Mail、與其他 OS X 所使用的系統框架版本。WebKit 所使用的 KDE 函數庫 KHTML 與 KJS 是屬於 HTML 與 JavaScript 的分支。
(以上是從 WebKit 官方首頁上大致翻譯所得 XD)

所以簡單說
他原生版本只有在 KDE
在過去,如果要跑的話,只能裝上 Konqueror 來爽一下
畢竟 Safari 也是改自於 Konqueror 的嘛
KDE 上所使用的視窗程式語言框架就是著名的 QT 所以我們在這邊就是要介紹在 ubuntu 底下怎樣透過 QT 的函數庫來建立一個以 WebKit 為基礎的 "偽 Safari"
(至於為啥叫 "偽 Safari" 呢?我在下一篇 "[軟體介紹] WebKit on Linux (ubuntu) -- GTK+ 篇"會講 XD)

請跟著我下面的步驟做,就可以安裝好一個 "偽 Safari" 了 XD
1. 先安裝一些等會編譯時所需要的軟體與套件庫
sudo apt-get install libqt4-dev libxslt-dev gperf bison libsqlite3-dev flex build-essential subversion
2.SVN 去撈回原始碼 (這邊我抓了快 20 min ,所以請多等待一下)
svn checkout http://svn.webkit.org/repository/webkit/trunk WebKit
3.建立一個 WebKit 的瀏覽器 (我的機器 Intel CoreDue L2300@1.5GHZ 跑了接近 45 min ,所以,可以先去吃個飯,丟給他慢慢跑 Orz )
QTDIR=/usr/share/qt4/ WebKit/WebKitTools/Scripts/build-webkit
4.安裝完後,打以下指令開啟剛剛建立的瀏覽器吧 :P
WebKit/WebKitBuild/Release/bin/QtLauncher

看到了沒?我們的 "偽 Safari" 出現啦 :D


恩,功能很陽春沒錯
但是拿來做一般性瀏覽與測試用已足夠啦
或許有人會問說要這種東西幹麻用?
其實這是種屬於比較實驗性質的東西啦
針對嵌入式系統或者客制化系統時
需要個簡易瀏覽器,卻又不需要像 firefuck 這種癡肥的東西時
WebKit 會是個好選擇 :)h

2007年10月19日 星期五

[教學]將 ubuntu 7.10 Gutsy 的桌面資料夾等中文路徑改成英文路徑方法

昨天 ubuntu 推出了 7.10,先抓了下來,睡前把檔案丟到另一台電腦上去備份
今天一覺醒來,很帥氣的直接 format 硬碟,然後把 7.10 裝了上去
結果...赫然發現一件很 Orz 的事件

沒想到...7.10 rc 出來時,就被提出的一個問題,沒有被改善
就是...家目錄底下的幾個目錄檔名的路徑名稱都是「中文路徑」
沒錯,就是道道地地的中文字
這...有好有壞啦
不過...壞處肯定大於好處
好處是...新手一目了然這個路徑是啥鬼,比較有親和力
壞處是...打路徑名稱都是英文阿,你還要切中打打路徑名稱,那多麻煩阿,如果又是在終端機底下,就又更麻煩了 Orz

於是...翻了一下資料和設定檔後發現了罪魁禍首了 !!
想更改成原本的英文路徑者,可以照著我以下的步驟
mv 桌面 Desktop
gedit ~/.config/user-dirs.dirs
打開後找到

XDG_DESKTOP_DIR="$HOME/桌面"

把他改成
XDG_DESKTOP_DIR="$HOME/Desktop"

就可以了
其他的資料夾路徑同樣改法

記得,改完後請重新啟動 gnome 阿~~~

2007年10月18日 星期四

在 linux 底下,簡單又快速的製作光碟印象檔

cat /dev/cdrom > mycd.iso

對,就這樣就好了
順便印出 md5 吧
md5sum mycd.iso
md5sum /dev/cdrom

印出兩者後,比對看看是否一樣

不然就丟給程式自己比對吧 XD
md5sum mycd.iso > mycd.iso.sum ; md5sum -c mycd.iso.sum
成功的話,他會印出

mycd.iso: 沒問題

2007年9月27日 星期四

[軟體介紹] MultiGet -- 在 linux 上一套類似 FlashGet 的下載軟體

許多剛從 Windows 平台上轉移到 Linux 的朋友
最常遇到的問題是...
FlashGet 有 for linux 的嗎?」
抱歉,沒有。
「 Linux 上有啥好用的續傳軟體阿?」
ㄜ...隨便講都一堆,預設就被安裝的 wget 純文字軟體,Gnome 環境的 Gwget,或 KDE 的 Kget等等,但是...介面還是跟 FlashGet 差異過大,功能也還差一大截。
於是,有人就提議說...那去建議做 FlashGet 的大陸仔,也出 for linux 的版本阿
這人回答真是妙阿 (其實...那個人就是我 XD)

於是有某長輩實在看不下去,就跳出來說...
同樣是對岸的同胞,有開發出一套很像 FlashGet 的軟體,叫做「MultiGet
到底有多像呢?
我抓了掃描砲彈(screenshots)來給大家比較一下
以下貼圖,前者都為 FlashGet 後者都為 MultiGet

主程式視窗介面


新增下載視窗介面



分割下載時,主程式視窗介面

夠像了吧 :P
不過能吃的協定就沒 FlashGet 這麼多了

廢話不多說,請看官們到此頁面下載最新安裝程式 :P
http://sourceforge.net/project/showfiles.php?group_id=174989

[教學]在 linux 上,替 ThinkPad 系列 laptop 加上中鍵捲動功能

前些日子跟某長輩聊天,發現有許多使用 ThinkPad 的 linuxer
竟然都沒去用 ThinkPad 的中鍵捲軸?
雖說沒用也不會怎樣,不過還是少了個好用的功能阿
( netman 大大,我絕對不會說是你的)
其實問題要解決很簡單...就只要加上兩行字就可以了
這邊還是以 Ubuntu 為例,其他 Linux 套件發行版本亦雷同
請跟著我這樣做
sudo gedit /etc/X11/xorg.conf
然後找出下面敘述的這一段

Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "true"
EndSection

把他改成
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "true"
Option "EmulateWheel" "true"
Option "EmulateWheelButton" "2"
EndSection

然後重新啟動 X-Window 就可以使用中鍵捲動功能了 :D

[教學]在 Linux 上,替 ThinkPad 系列的 laptop 加上投影顯示

許多使用 ThinkPad 的朋友,如果是裝了 Linux 的話
常常會發現,當接上單槍投影機時
卻吃不到 RGB 線的訊號源
又不像 windows 那樣有 hotkey 可以切換
其實問題要解決很簡單...就只要加上一行字就可以了
這邊以 Ubuntu 為例,其他的 Linux 套件發行版本作法亦雷同
請跟著我這樣做
sudo gedit /etc/X11/xorg.conf
然後找出下面敘述的這一段

Section "Device"
Identifier "Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller"
Driver "i810"
BusID "PCI:0:2:0"
EndSection

把他改成
Section “Device”
Identifier "Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller"
Driver “i810″
Option “MonitorLayout” “CRT,LFP”
Option “Clone” “true”
BusID “PCI:0:2:0″
EndSection

然後重新啟動 X-Window 後
就可以一接上單槍投影機,就直接吃到 RGB 訊號了
完全不用再使用 hotkey 切換了 :D

2007年8月20日 星期一

用 screen + irssi 上 irc 之鄉民版教學 (含Q&A)

最近身旁許多在上 irc 的朋友都問我哪個 irc client 比較好用
其實,只要問過我的,而且又是 unix like 的系統使用者時
基本上都會被我推薦 irssi 這個 command mode 的純文字 irc 程式
(啥?不知道啥是 irc ? Internet Relay Chat 的縮寫,其他請洽 GoogleWiki
然後如果還有 server 的朋友,更是會被我力推 screen + irssi 的組合
好處是,可以遠端持續掛著 irc ,到哪邊都可以 ssh 進去繼續看 irc log
這樣真的很方便,也不用擔心因為沒開自己的電腦,就看不到別人的對話或別人要留給自己的訊息
不過跟太多的朋友推薦了 screen + irssi 後,卻發現一直回來問我問題
原因是... man 寫的陽春到不行,然後就吵著要鄉民教學
所以這篇文章就這麼被誕生了,也順便當我的備忘錄吧 :P
以下是針對我操作時會遇到的問題整理一下

irssi 的程式安裝我就不詳細講了
apt-get or yum 裡面可以直接打撈到

先在這邊釐清第一次使用 screen + irssi 上 irc 的朋友們觀念
請先搞清楚說遇到的問題跟操作,該是由 screen 還是由 irssi 的程式部份來處理
或者本身只是 irc 上面的指令操作罷了
screen 只是方便讓使用者可以利用 server 不關機的優勢,使 irssi 可以連續開著不中斷
然後下次再透過 screen 來接軌回到掛著的 irssi 然後繼續熱血 irc 這樣子
所以,這樣看下面的簡介操作後比較不會搞不懂到底發生啥狀況,如果請教朋友也比較能問到問題處
以下例子皆以 irssi 0.8.10 或以上版本,經實驗都可順利執行
且都以在 FreeNode 上的 OrzLab channel 為例子

(如果不掛 screen 者,這一段請直接跳過)
首先 ssh login 到 server 後
請輸入

screen -RD
-R Reattach if possible, otherwise start a new session.
-D (-r) Detach and logout remote (and reattach here).

然後會進入到新開啟的 screen ,並且 screen 會自動開啟一個新的 window 讓我們使用
接下來直接輸入
irssi
就會在 screen 底下的第一個視窗執行 irssi 這隻程式

如果沒有要掛著 screen 執行 irssi 的朋友
那直接輸入
irssi
就可以直接執行 irssi 這隻程式

進入 irssi 後
直接在提示輸入字元處輸入
/connect irc_server
就會直接連到該個 irc server 了
例如
/connect irc.freenode.net
這樣就會直接連接到 freenode 的 irc server 上
此時,可以先在這邊修改自己要在該 irc server 上的暱稱
如果要修改,則輸入以下格式
/nick you_want_nickname
例如當我輸入
/nick lzy
時,那我顯示出來的暱稱將會是「lzy」的字樣
( irssi 預設的暱稱會是 login 的使用者名稱)
搞定暱稱後,接著我們就可以加入其他頻道了
只要輸入
/j #channel_name
就可以直接加入了,例如
/j #orzlab
這樣就完成加入 #orzlab 這個 irc channel 了
如果該 irc channel 需要 key/password 的話
則輸入:
/j #channel_name password
如果要離開單一個 irc channel 的話
則直接輸入
/wc
就可以離開這個 irc 頻道了
若是要離開一個 irc server 的連線,則輸入
/disconnect irc_server_name
夠簡單了吧?



剛剛是教如何連線而已
現在則是教一些常用的熱鍵與功能
先來看圖說故事一下


上面的這張圖,我們在
[Act: 1,2,4,6,9,10]
這邊發現了幾個不一樣的標示數字
Act 這一欄位會提示你在第幾編號的 channel 上對話狀況,而你還沒切換到該 irc channel 上觀看
灰色一般體的是代表有人登入或登出此 irc channel(如 1,9,10)
白色粗體的是代表有人正在此 irc channel 上談話(如 4,6)
灰色粗體的則是有人在對話中提起你的名字或者呼叫你,總之就是有出現你的名字(如 2)
這是基本識別
再來是知道哪個 channel 有啥狀況後
就是切換到該 irc channel 上觀看了
Alt + 1~0 對應 1~10 的 irc channel 編號
Alt + q~p 對應 11~20 的 irc channel 編號
Ctrl + n/p 可切換 上/下 一個 irc channel
然後按鍵盤上的 PageUP/PageDn 可以直接切換 上/下 頁訊息


如果發現有編碼上的問題,需要轉編碼的話
則可以輸入
/recode add #channel_name code_type
例如要把 orzlab 的 utf8 格式加入,則輸入
/recode add #orzlab utf8
就可以加入此頻道的編碼格式了
然後輸入
/recode
就可以看到加入的編碼列表
(註:因 /recode add 會寫入到設定檔裡,所以僅需要寫入一次即可)


Q&A TIME
Q:如何同時有連接多個IRC server呢?又該怎樣切換不同IRC server來加入該server的IRC channel呢?
A:
請直接再下一次 /connect irc_server 就可以再連接一個新的 irc server ,然後按Alt + 1切換到第一個的特殊頻道上,再按 Ctrl + x來切換目前要下達指令的 IRC server名稱。


Q:如何查看該頻道的所有人呢?
A:
請下達 /who 的 irc 指令即可,然後也是一樣按 Alt + 1 切換到第一個伺服器狀態頻道上觀看


Q:如何查看單一網友的基本連線資料呢?
A:
請下達 /whois nickname 的 irc 指令即可,然後也是一樣按 Alt + 1 切換到第一個伺服器狀態頻道上觀看


Q:如何傳送私人訊息到指定的朋友暱稱呢?
A:
請下達 /msg nickname 即可開啟一個名為指定暱稱的訊息頻道,一樣用 alt + 1~0/q~p 來選擇(注意:有些 irc server 會限制此功能,傳訊前請先確認是否有權限)。


Q:已經使用上面所講的方式 screen + irssi 了,那我離開時,是否得下達任何參數或指令?又下次 ssh login 後,需要打什麼指令呢?
A:
為了簡化登入與記憶上的方面,採用 -RD 的參數,所以每次要離開 irssi 時,直接關閉該視窗就好,不需下達任何參數或指令。然後下一次 ssh login 後,只要打 screen -RD 這樣就可以接軌回上次開啟的 irssi 了。


Q:如果遠端連線到 big5 的主機掛 screen + irssi 時,那 client 端是 utf8 時,編碼的亂碼問題如何處理?
A:
首先,先處理 screen 的編碼問題,從 utf8 端要檢視 big5 server 時,先 Ctrl + a,然後輸入 :encoding big5 utf8 ,把從 server 將送出的 big5 編碼先轉成 utf8 後再送出,然後輸入 "/recode" 觀看頻道編碼是否指定正確,照上述設定,理應能順利顯示。


Q:如果不小心按到 Ctrl + z 或鍵盤上的 Pause 時, irssi 被 suspend 了,如何恢復?
A:
請直接輸入 fg 後按 enter ,就可以把剛剛被 suspend 的 irssi 給喚醒。


Q:如果我要關閉一個 irssi ,該如何下達指令?
A:
請直接關閉開啟 irssi 的 screen ,請按 Ctrl + k 來關閉 screen window ,然後可以再重新開啟一個全新的 irssi 出來。


Q:要如何自動儲存 irc log ?
A:
在需要 auto irc log 的 irc channel 上輸入 /SET autolog ON,即可打開 autolog 功能。


Q:要如何指定當開啟 irssi 後,自動連接 irc server 與自動連接 irc channel ?
A:
直接看例子會比較快,先假設我要讓他自動用 lzy 的暱稱連接到 Freenode 的 irc server 上的 #orzlab
/network add -nick lzy Freenode
/server add -auto -network Freenode irc.freenode.net 7000
/channel add -auto #orzlab Freenode

如果是需要 key/password 的 irc channel 的話,則把最後一行改為
/channel add -auto #irc_channel_name irc_server_name password
也就是直接把密碼接在後面就可以了
如果需要自動對註冊的暱稱進行認證登入的話(設口令為abcde):
/network add -autosendcmd "/^msg nickserv ident abcde;wait 2000" Freenode



Q:如何讓 irssi 發出有人提起自己暱稱時的訊息警告(或響鈴)?
A:
在 irssi 裡輸入以下指令,讓 irssi 適時發出聲音訊號:
/set beep_when_window_active ON
/set beep_when_away ON
/set beep_msg_level MSGS NOTICES DCC DCCMSGS HILIGHT
/set bell_beeps ON

在 screen 中按下 Ctrl +a , Ctrl + g 的按鍵,讓 screen 把 irssi 發出來的聲音訊號傳出來
或參考絕地大濕的 blog 一文 <會響的 PuTTY + screen + irssi>


Q:如何更換 irssi 的 theme ?
A:
把抓好的 theme (可從官網撈喜歡的),然後複製該 theme 的檔案到 ~/.irssi/ 資料夾路徑,並下達 /SET theme theme_name 來更改該 theme 。


Q:如何自訂 irssi 的 irc 訊息熱鍵?
A:
因為設定比較繁雜,故只提供官網網址,讓有興趣的朋友可以自己去翻閱。




提供幾個額外補充的網站,沒標示語言者,皆為中文
irc 指令介紹 (英文)
irssi startup (英文)
screen 基本觀念與操作介紹

2007年8月19日 星期日

緣起.......的廢話

最近玩耍了太多東西
又開始想要替自己做一些筆記
於是乎,我又開始要寫 blog 了
話說上次寫 blog 已經一年多以前的事了
至於為何不用原來的呢?
因為硬碟連掛兩顆,原因不明,好像被 p2p 操掛的吧?
所以連備份的都沒了 XD
而原來的 domain name 也是朋友的
也沒錢自己養主機買 domain name
所以就換用 bsp 提供的免費服務吧

這只是前言,一點都不重要的廢話
寫這篇...只是找不到要拿啥當第一篇罷了 ˋ(°▽ ° )ノ ˋ( ° ▽°)ノ