iTALC - Intelligent Teaching And Learning with Computers
由於使用需要,找到了這套螢幕廣播軟體,才發現在學術界這套早就行之有年。
主要用來電腦教室上課時,老師可以全權掌控電腦,讓同學能專心聽課(以前上電腦課時,都在玩接龍^_^)。
iTALC 特點:
概觀模式:透過畫中畫功能,讓教師在主電腦能夠同時查看課室內所有學生電腦,並能夠擷取螢幕;
遠端控制:透過遠端控制,為學生提供支援或指導;
演示模式:可以以全螢幕或畫中畫形式,強制把教師電腦的螢幕在學生電腦上顯示,又或把指定學生的電腦螢幕轉發至其他學生的電腦螢幕上;
文字信息:透過軟件向學生傳送文字信息;
封鎖電腦:對於不專心的學生,可以透過封鎖他們的電腦,讓他們專心上課,而不能利用電腦作其他課堂以外的功能;
遠端開關:能夠透過Wake on LAN功能使課室內的電腦同時開啟,亦能同時關閉或重新啟動所有電腦;
遠端取證:當有學生違規使用電腦,可以即時擷取畫面作為證據;
在家學習:由於iTALC採用了SSH認證而不是其他遠端操控軟體的密碼控制,使網路上存取教學資源更安心。而iTALC亦支援VPN連線;
線程優化:透過對軟件的線程化,iTALC在多核心系統上的運行得到優化。
常駐電腦:與其他的MUSE或TightVNC不同的是,iTALC常駐在電腦之後,無法直接從Taskbar或Task Manager關閉,免除學生透過停止程式而規避監管。另外,程式的反安裝亦無法>從控制台執行,而要執行特別的命令。
遠端登入:透過指定的命令能夠遠端使所有學生電腦以指定的登入信息登入網路,這對低小年級學生最有幫助,因為一年級的學生很多時對鍵盤不熟習,需要花很多時間於電腦的登入。
本文章是以 debian wheezy 為主,理論上 ubuntu 應該也通用。
首先找一台當老師的電腦,其他就是學生電腦。
在老師電腦上:
$ sudo apt-get install italc-master
建立公鑰及私鑰:
$ sudo ica -createkeypair
會產生二個檔案
/etc/italc/keys/private/teacher/key 私鑰
/etc/italc/keys/public/teacher/key 公鑰
公鑰是任何人都能讀取的,而私鑰的檔案預設是無法讓 root 以外人看的,權限為 root:root 0440
將私鑰權限改成老師這台電腦的使用者可讀權限。如 teacher group,然後將使用者加入 teacher 群組即可:
$ sudo chgrp teacher /etc/italc/keys/private/teacher/key
$ sudo gpasswd -a your_username teacher
加入群組後,不會立刻生效,先登出再登入即可。
先執行 client 端程式(會在背景跑,並在通知區有一個綠色圖示):
$ ica &
再執行 master 端程式:
$ italc &
在學生電腦上:
$ sudo apt-get install italc-client
將老師那台產生的公鑰拷貝過來放到同樣位置。
/etc/italc/keys/public/teacher/key
執行 client 端程式(會在背景跑,並在通知區有一個綠色圖示):
$ ica &
防火牆部分,使用 5800 及 5900 埠,若電腦已安裝 vnc 軟體,則必須先行關閉,或在設定時使用其他埠,否則會造成相衝。另外,當廣播學生電腦時,課室所有電腦會連接到有
關學生電腦的 5858 埠。
學生電腦部份,只要執行 ica 及防火牆開 tcp port 5800, 5900, 5858 即可,其他就沒事了。
開始使用老師的電腦:
執行 italc & 後,若沒問題,會出現一個控制視窗。
最上方大圖示的工具列,可在最左上角一點點空白的地方,以滑鼠左鍵來拖曳到四個角落。
第一步先建立一間教室。
左邊小圖示第二個按鈕,進入 classroom-manager。
在中間空白地方按右鍵->Add Classroom 來建立教室,如 "我的教室"。
在中間空白地方按右鍵->Add Computer 來建立學生電腦。
IP/hostname:填入 ip
Name:看到的名稱
Mac-Address:網卡卡號,用來遠端開機用。
重覆將所有學生電腦都加入教室,完成後同樣按左邊小圖示第二個按鈕,關閉 classroom-manager。
按上方大圖示第一個 Classroom, 點選 "我的教室",會出現並連接所有學生電腦的視窗,若沒問題,則出現全部學生螢幕的縮圖。
在任一台學生電腦上按滑鼠右鍵,僅對該台電腦做動作。而在最上方工具列上則是對所有電腦做動作。
Overview:任何時間按此鈕,可結束之前狀態(如 Demo, Lock),回到所有電腦列表。
Fullscreen Demo:將老師桌面以全螢幕模式廣播到學生電腦螢幕。
Window Demo:將老師桌面以視窗模式廣播到學生電腦螢幕。
Lock aLL:鎖定學生電腦螢幕。
Text message:送文字到學生電腦。
Power on:電腦開機。
Power down:電腦關機。(在 linux 好像沒用)
Logon:windows 用的吧。
Support:對單一電腦做遠端控制,直接輸入 ip 即可,不用從一堆電腦清單中去尋找某台電腦。
另外,按上方工具列最右邊箭頭還可看到 2 個圖示。
Adjust/Align:整理電腦清單,填滿整個視窗。
Auto viewe:自動排列是否啟用。
在學生電腦上按右鍵,某些功能是 windows 上才有用的,如 logon user, logout user, reboot, power down 等等。
View live:觀看學生電腦畫面。(偷看有沒有在打電動)
Remote control:操控學生電腦。
Let student show demo:將學生電腦畫面廣播到所有人螢幕。
Take a snapshot:將學生電腦畫面截圖(抓學生做壞事要有證據 ^_^)。
Execute command:在學生電腦執行指令。
左方小圖示工具列第 3 個是用來觀看所有截圖。
第四個為設定,若是效能不好,可調整畫面更新間隔,預設 1 秒鐘,以及廣播畫面時的品質。
直接左鍵點二下,預設功能是操控該學生的電腦,可由此來修改。
基本上 italc 使用起來非常直覺,很容易上手,就介紹到此。
由於 arch aur 當中的 italc 為 2.0.0,但新版又無法和舊版相容,可是 debian 及 ubuntu 又沒包 italc 2.0.0,所以才會有後面在 debian 上自行編譯 2.0.0 的過程。
自己編譯 italc 2.0.0 版:
官方網站:
http://italc.sourceforge.net/
由於我不會自己從 source 包成 deb 檔,但是有找到有 debian developer 有弄好現成的 source,只要抓回來編完就可產生 deb 檔。
$ git clone git://git.debian.org/debian-edu/italc.git
$ sudo apt-get build-dep italc
因為 debian 只包 italc 1.0.x 版, build-dep 只會裝編譯 1.0.x 需要的東西,要編 2.0.0 還需要下列:
$ sudo apt-get install gcj-jdk git-buildpackage libxss-dev libvncserver-dev libv4l-dev libpam0g-dev
開始編 italc:
$ cd italc
$ git-buildpackage -rfakeroot
或用老方法也可以
$ dpkg-buildpackage -rfakeroot
預設 wheezy gcc 及 g++ 版本為 4.7,我編了好幾次都失敗,後來換成 gcc 4.6 才編的成功。
debian 裡存在同一軟體可裝不同版本的機制 update-alternatives.
我的 wheezy 系統上有裝 gcc 4.6 及 gcc 4.7(甚至舊的 4.4, 4.5 都有),預設編譯器是 gcc 4.7,那要如何改 4.6 成為預設的:
建立一個選擇項目 gcc, 連結位置在 /usr/bin/gcc ,第一個選擇為 4.6, 優先權為 40, 第二個為 4.7, 優先權為 50, 優先權是用在自動模式時,優先權最高的會當預設值。
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 40
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 50
手動選擇 gcc 4.6 當目前的 compiler
$ sudo update-alternatives --config gcc
或
$ sudo update-alternatives --set gcc /usr/bin/gcc-4.6
g++ 部份也如法炮製:
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 40
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.7 50
$ sudo update-alternatives --set g++ /usr/bin/g++-4.6
檢查看看是否變成 gcc 4.6
$ gcc -v
$ g++ -v
調整完 gcc 及 g++ 後,繼續編譯,我的機器大概編 7 分鐘完成。
$ git-buildpackage -rfakeroot
編譯完成後,會在上層目錄出現四個 deb 檔,安裝起來即可。
italc-master_2.0.0-1_amd64.deb
italc-management-console_2.0.0-1_amd64.deb
italc-client_2.0.0-1_amd64.deb
libitalccore_2.0.0-1_amd64.deb
$ sudo dpkg --install italc-master_2.0.0-1_amd64.deb italc-management-console_2.0.0-1_amd64.deb italc-client_2.0.0-1_amd64.deb libitalccore_2.0.0-1_amd64.deb
編完後記得改回來 gcc-4.7, g++-4.7
$ sudo update-alternatives --set gcc /usr/bin/gcc-4.7
$ sudo update-alternatives --set g++ /usr/bin/g++-4.7
或是切回自動模式,這樣系統會自動選擇優先權較高的 4.7 來當預設值。
$ sudo update-alternatives --auto gcc
$ sudo update-alternatives --auto g++
題外話
update-alternatives 不只用在同一程式不同版本間切換,也可用在同一功能,但不同程式間的選擇,如文字編輯器。
通常我們會直接打 vim 或 nano 來做文字編輯,但是大部份應用程式需要呼叫外部文字編輯器時,不知道你的喜好,所以會呼叫一個通用的程式 editor 來做編輯器,所以只要將
/usr/bin/editor 設成你慣用的文字編輯器即可。
update-alternatives --list editor
/bin/nano
/usr/bin/vim.basic
/usr/bin/vim.tiny
在 debian 裡,預設文字編輯器為 nano (因為優先權 40 最高)
$ update-alternatives --display editor
editor - manual mode
link currently points to /usr/bin/vim.basic
/bin/nano - priority 40
slave editor.1.gz: /usr/share/man/man1/nano.1.gz
/usr/bin/vim.basic - priority 30
slave editor.1.gz: /usr/share/man/man1/vim.1.gz
slave editor.fr.1.gz: /usr/share/man/fr/man1/vim.1.gz
slave editor.it.1.gz: /usr/share/man/it/man1/vim.1.gz
slave editor.pl.1.gz: /usr/share/man/pl/man1/vim.1.gz
slave editor.ru.1.gz: /usr/share/man/ru/man1/vim.1.gz
/usr/bin/vim.tiny - priority 10
slave editor.1.gz: /usr/share/man/man1/vim.1.gz
slave editor.fr.1.gz: /usr/share/man/fr/man1/vim.1.gz
slave editor.it.1.gz: /usr/share/man/it/man1/vim.1.gz
slave editor.pl.1.gz: /usr/share/man/pl/man1/vim.1.gz
slave editor.ru.1.gz: /usr/share/man/ru/man1/vim.1.gz
Current 'best' version is '/bin/nano'.
將 /usr/bin/editor 設成 vim.basic
$ update-alternatives --set editor /usr/bin/vim.basic
可看目前系統上有哪些已設定的程式
$ update-alternatives --get-selections
回到主題,若是真的編不出來,可以使用我編譯的 binary deb,共 4 個檔案,約 2 M.
italc 2.0.0 使用:
建立公、私鑰的功能移到 management-console 去。
listen port 不再是 5858, 5900, 而是 11100 及 11400, 而 5800 保持不變,預設沒開,可到 management console 設定。
老師的電腦:
italc 2.0.0 for debian wheezy
編輯 /etc/apt/sources.list.d/italc.list
deb http://manstalk.no-ip.org/debian/wheezy ./
$ sudo apt-get update
$ sudo apt-get install italc-client italc-master
裝好後,會自動在系統上建立 4 個群組,italc-teachers, italc-supporters, italc-admins, italc-students。
也自動產生所有 key.
/etc/italc/keys/private/admin/key
/etc/italc/keys/private/supporter/key
/etc/italc/keys/private/teacher/key
/etc/italc/keys/public/admin/key
/etc/italc/keys/public/supporter/key
/etc/italc/keys/public/teacher/key
老師這台電腦上的使用者加入 italc-teachers。
$ sudo gpasswd -a your_username italc-teachers
登出再登入才會生效。
小插曲,通常我都會用 id username 來查詢某位使用者是屬於哪些群組,在加入 italc-teachers 後,登出再登入,id 查了半天,就是沒看到出現 italc-teachers 這個群組,以為自己記性不好,忘記剛才有沒有下加入群組指令,所以試了好幾次。
$ id (沒看到 italc-teachers)
uid=1000(louie) gid=1000(louie) groups=1000(louie),7(lp),25(floppy),29(audio),44(video),103(netdev),112(fuse),114(libvirt),990(event)
明明有在 /etc/group 裡
$ grep louie /etc/group
italc-teachers:x:126:louie
$ id louie
uid=1000(louie) gid=1000(louie) groups=1000(louie),7(lp),25(floppy),29(audio),44(video),103(netdev),990(event),112(fuse),114(libvirt),126(italc-teachers)
$ groups louie
louie : louie lp floppy audio video netdev event fuse libvirt italc-teachers
但仍然無法讀取 /etc/italc/keys/private/teacher/key
只好重新開機試試,開好後,打 id 就可看到在 italc-teachers 群組,一切都正常了,應該是 bug 吧。
先執行 management console 來設定:
$ sudo imc
在 General 部份,Autostart 是打抅的,所以預設一進入 X 就會開啟,這個要特別注意,平時最好是關掉的,要用時再開,不過電腦教室就另當別論。( italc 2.0.0 版改成要經由學生按確認,老師才能連到學生機器)
iTALC Server 部份,主要是調整 port,預設是 11100 及 11400。
Authentication 部份,在 linux 上,直接將 ACL-based logon authentication 抅抅拿掉,然後最下方 Logon authenticaion 也是抅抅拿掉,才會正常。(我試出來是這樣)
中間 Launch key file assistant 可重新產生公鑰及私鑰,或是在學生電腦滙入老師電腦上的公鑰。
設定完成按套用,接著可在上方 File 選單將設定存成一個檔案,拿到學生電腦匯入。
再來就和 1.0.x 版一樣,執行 client 程式
$ ica &
最後執行 master 程式:
$ italc &
學生的電腦:
編輯 /etc/apt/sources.list.d/italc.list
deb http://manstalk.no-ip.org/debian/wheezy ./
$ sudo apt-get update
$ sudo apt-get install italc-client
一樣將老師那台產生的公鑰拷貝過來,可以 3 個公鑰全過來,或只有 teachers 公鑰就好,放到和老師那台同樣位置即可。(私鑰不要離開老師那台電腦)
也可以使用 management console 來將公鑰匯入,不過檔名要叫 *.key.txt 結尾才看得到好匯入,選擇 Import public key (client computer) 角色選 Teacher 即可。
一樣執行 client 端:
$ ica
搞定,防火牆開 tcp port 11000 即可。
這套 iTALC 已經出現滿久了,而且台灣早就有很多人用,只是大部份都是老師或學術界,用於電腦教室。
現在可拿來用在一些 open source 的分享場合,理論上應該滿好用的才是,不過,還是要再實際測看看就是。
但由於 italc 是用在桌面分享及操控,並沒有聲音的部分,當然,電腦教室上課全部學生和老師都在同一間房間,直接用麥克風就好,所以不用透過電腦傳聲音。
但是若是一定要聲音,有一套 open source 的語音通訊工具,叫 mumble。
Mumble 是款針對遊戲玩家的低延遲、高質量的語音通訊工具,可以讓玩家在遊戲的同時,進行即時的語音交流。
軟體支援消除回音,這樣在遊戲過程中,其它玩家就不會聽到使用者喇叭裡發出的遊戲聲音了。
在國內也滿流行的,最主要是拿來打線上遊戲時溝通,可設定多種模式(push to talk 或自動偵測是否有講話),要架一台伺服器,所有人都連到那台伺服器去。在伺服器內可分房
間,只有在同個房間的人才聽得到彼此對話。
當然也可自己架伺服器,叫 murmur,debian 有包。不過有很多免費的伺服器好用,國內有一家。
到官方網站抓回來裝,裝好後要設定調整麥克風。
http://mumble.sourceforge.net
裡面有預設很多伺服器可以連,另外可加以下的
la1.mumblevoice.com:65003 國內遊戲公司的伺服器
mumble.debian.net:64738 debian 開發者架的
參考文件:
http://italc.sourceforge.net/documentation.php
http://sourceforge.net/apps/mediawiki/italc/index.php?title=Main_Page
http://zh.wikipedia.org/wiki/ITALC
2012年9月26日 星期三
2012年9月15日 星期六
OpenMeetings 基本操作
這篇是說明如何使用 OpenMeetings,因為說實在的功能還真不少,有點複雜,要花些時間才學會使用。
Dashboard:
剛登入時是位於 "Dashboard" 頁面,如圖1。
-->
-->
上方的功能表項目:
【Home】回到 "Dashboard" 及開啟月曆觀看及預約會議。
【Recordings】觀看及下載之前已錄製好的影片。
【Rooms】各會議室目前狀況(公共,私人,個人會議室)。每間會議室有不同的屬性,如 Interview Room 就是一對一。
【Administration】若是以超級使用者登入,則會出現此選單,內容有:
1.Users:管理及修改使用者資料,可於此設定使用者等級 (user, moderator, admin)。
2.Connections:觀看目前伺服器上線的使用者,必要時可將他踢出伺服器。
3.Usergroups:將使用者分群組,如系統組、推廣組。
4.Conference rooms:檢視及微調各個會議室的詳細屬性,若於某會議室裡的「Moderated」核取方塊內打抅,而且某位進入的使用者等級為 moderator,則此使用者會自動擁有會議主持人權限。
5.Configuration:修改 OpenMeetings 伺服器的細項設定。
6.Language editor:從這裡做訊息翻譯動作。
7.LDAP:結合 LDAP 使用的設定。
8.Backup:使用者資料匯出及匯入,用於伺服器升級時。
左上角是個人資料及大頭照。
右上角 "Profile" 可修改個人詳細資料。
下方 "My rooms" 活頁標籤為個人會議室及你必須參加的會議列表,按每個會議室的整條長方型條可看目前會議室內的人員,要加入會議室則點 [Enter]。
"My rooms" 的右邊是 "Chat",可看目前線上人員並與他溝通。也可邀請某位目前在線上的人進某個會議室。
右邊是簡易使用說明及捷徑。按下 [Start] 可進入會議室列表(和上方 "Rooms" 一樣)。接著請按下 [Start],即可看到會議室列表。
在公開會議室選 "conference room with micro option set" 這間會議室並點 [Enter] 。
,如圖2。
▲圖2 會議室
第一個進入會議室的人,會自動成為會議主持人,擁有所有權限。(使用白板、桌面分享及錄影、控制遠端桌面、是否有權限獨佔麥克風)。
左上角為功能表:
【EXIT】為離開會議室
【Files】上傳檔案
【Actions】多項功能
1.Send invitation: 將目前會議室直接以連結網址寄出電子郵件來邀請人加入會議。
2.Share/record screen: 分享目前桌面及桌面錄影。
3.Apply to be moderator: 要求擁有會議主持人的所有權限
4.Apply for whiteboard access: 要求使用白板權限。
5.Apply for audio/video access: 要求分享聲音及影像權限。
6.Create a poll: 建立問卷調查。
7.Poll results: 看問卷結果。
8.Vote: 問卷調查投票。
9.Edit default settings: 更改預設白板設定。
最右上角可看到目前會議室名稱、要求取得會議主持人權限及分享自己的桌面及錄影。
點選分享及桌面錄影圖示,會出現視窗詢問要以什麼應用程式來開啟 .jnlp 檔,若在 client 機器上有裝 icedtea-netx,則此時可選 IcedTea Java Web Start 來使用。可將桌面分享給會議中的人,並同時可錄影起來。
左邊:
"Users" 活頁標籤為參加會議室人員列表及權限。
"Files" 活頁標籤可上傳檔案放到白板展示。在上傳完成後,檔案位於 "My files (home drive)",只能自己能存取,用滑鼠將檔案拖到 "Room files (public drive)" 則參加會議的人都可以存取。將要展示的文件或圖片,以滑鼠左鍵拖到右方白板上,若是多頁檔案,則下方 "Document properties" 綠色箭頭可切換上、下頁;或是於左方檔案列表檔案上按滑鼠右鍵,選 "Open document",則可看到每一頁內容,直接在頁面上按滑鼠左鍵即可展示到白板。
左下角視窗為動作視窗,若有要求權限時,在會議主持人的左下角出現要求訊息,會議主持人可於此同意或拒絕權限。
右邊一大塊即為白板,預設只有一個白板,可按綠色內有白色加號圓圈來新增另一個白板。
白板下方 "Properties" 可調整畫筆顏色及方塊或橢圓填滿的顏色。
最下方 "Chat" 可打字發言。
流程大致如下:
1.進入會議室,先將 webcam 及麥克風設定好。
2.至少要求使用白板及獨佔麥克風權限,或要求全部權限才能做簡報,展示投影片。
3.點選 "Files" 活頁標籤並上傳檔案。
4.將檔案以滑鼠左鍵拖到右方白板。
5.點選自己的麥克風視窗來獨佔,會同時將別人的麥克風靜音。
6.開始簡報。
--> 經過一陣子的研究,大致弄懂 OpenMeetings 的操作,整個功能滿完整的,若再加上外掛來運作,真是如虎添翼,不愧為”自由軟體線上會議方案“。
安裝篇: http://guildwar23.blogspot.tw/2012/09/debian-wheezy-openmeetings.html
使用:
瀏覽器直接開啟網址 http://localhost:5080/openmeetings,以之前建立的超級使用者登入 (Sign in) 或新註冊一個帳號,按 (Not a member?) ,註冊時可選擇語言,有正體中文可選,可是翻譯並不完整而且很多是大陸用語,所以我選英文介面來介紹。註冊時要寫好正確時區,否則以後會議通知會寄錯時間。Dashboard:
剛登入時是位於 "Dashboard" 頁面,如圖1。
-->
▲圖1
Dashboard
-->
上方的功能表項目:
【Home】回到 "Dashboard" 及開啟月曆觀看及預約會議。
【Recordings】觀看及下載之前已錄製好的影片。
【Rooms】各會議室目前狀況(公共,私人,個人會議室)。每間會議室有不同的屬性,如 Interview Room 就是一對一。
【Administration】若是以超級使用者登入,則會出現此選單,內容有:
1.Users:管理及修改使用者資料,可於此設定使用者等級 (user, moderator, admin)。
2.Connections:觀看目前伺服器上線的使用者,必要時可將他踢出伺服器。
3.Usergroups:將使用者分群組,如系統組、推廣組。
4.Conference rooms:檢視及微調各個會議室的詳細屬性,若於某會議室裡的「Moderated」核取方塊內打抅,而且某位進入的使用者等級為 moderator,則此使用者會自動擁有會議主持人權限。
5.Configuration:修改 OpenMeetings 伺服器的細項設定。
6.Language editor:從這裡做訊息翻譯動作。
7.LDAP:結合 LDAP 使用的設定。
8.Backup:使用者資料匯出及匯入,用於伺服器升級時。
左上角是個人資料及大頭照。
右上角 "Profile" 可修改個人詳細資料。
下方 "My rooms" 活頁標籤為個人會議室及你必須參加的會議列表,按每個會議室的整條長方型條可看目前會議室內的人員,要加入會議室則點 [Enter]。
"My rooms" 的右邊是 "Chat",可看目前線上人員並與他溝通。也可邀請某位目前在線上的人進某個會議室。
右邊是簡易使用說明及捷徑。按下 [Start] 可進入會議室列表(和上方 "Rooms" 一樣)。接著請按下 [Start],即可看到會議室列表。
在公開會議室選 "conference room with micro option set" 這間會議室並點 [Enter] 。
會議室:
首先會彈出一個 "Choose device" 視窗,選擇 webcam 及麥克風及解析度,按 [Start recording test] 確認 webcam 有看到影像,沒問題按 [Start conference] 進入會議室 -->,如圖2。
▲圖2 會議室
第一個進入會議室的人,會自動成為會議主持人,擁有所有權限。(使用白板、桌面分享及錄影、控制遠端桌面、是否有權限獨佔麥克風)。
左上角為功能表:
【EXIT】為離開會議室
【Files】上傳檔案
【Actions】多項功能
1.Send invitation: 將目前會議室直接以連結網址寄出電子郵件來邀請人加入會議。
2.Share/record screen: 分享目前桌面及桌面錄影。
3.Apply to be moderator: 要求擁有會議主持人的所有權限
4.Apply for whiteboard access: 要求使用白板權限。
5.Apply for audio/video access: 要求分享聲音及影像權限。
6.Create a poll: 建立問卷調查。
7.Poll results: 看問卷結果。
8.Vote: 問卷調查投票。
9.Edit default settings: 更改預設白板設定。
最右上角可看到目前會議室名稱、要求取得會議主持人權限及分享自己的桌面及錄影。
點選分享及桌面錄影圖示,會出現視窗詢問要以什麼應用程式來開啟 .jnlp 檔,若在 client 機器上有裝 icedtea-netx,則此時可選 IcedTea Java Web Start 來使用。可將桌面分享給會議中的人,並同時可錄影起來。
左邊:
"Users" 活頁標籤為參加會議室人員列表及權限。
"Files" 活頁標籤可上傳檔案放到白板展示。在上傳完成後,檔案位於 "My files (home drive)",只能自己能存取,用滑鼠將檔案拖到 "Room files (public drive)" 則參加會議的人都可以存取。將要展示的文件或圖片,以滑鼠左鍵拖到右方白板上,若是多頁檔案,則下方 "Document properties" 綠色箭頭可切換上、下頁;或是於左方檔案列表檔案上按滑鼠右鍵,選 "Open document",則可看到每一頁內容,直接在頁面上按滑鼠左鍵即可展示到白板。
左下角視窗為動作視窗,若有要求權限時,在會議主持人的左下角出現要求訊息,會議主持人可於此同意或拒絕權限。
右邊一大塊即為白板,預設只有一個白板,可按綠色內有白色加號圓圈來新增另一個白板。
白板下方 "Properties" 可調整畫筆顏色及方塊或橢圓填滿的顏色。
最下方 "Chat" 可打字發言。
流程大致如下:
1.進入會議室,先將 webcam 及麥克風設定好。
2.至少要求使用白板及獨佔麥克風權限,或要求全部權限才能做簡報,展示投影片。
3.點選 "Files" 活頁標籤並上傳檔案。
4.將檔案以滑鼠左鍵拖到右方白板。
5.點選自己的麥克風視窗來獨佔,會同時將別人的麥克風靜音。
6.開始簡報。
--> 經過一陣子的研究,大致弄懂 OpenMeetings 的操作,整個功能滿完整的,若再加上外掛來運作,真是如虎添翼,不愧為”自由軟體線上會議方案“。
安裝篇: http://guildwar23.blogspot.tw/2012/09/debian-wheezy-openmeetings.html
2012年9月10日 星期一
於 Debian wheezy 上 安裝 OpenMeetings
Debian wheezy 安裝自由軟體線上會議系統 OpenMeetings
由於需要用到多人視訊功能,但是又要能夠分享桌面,目前似乎沒有自由軟體能做到如此。所以就試著找看看,找到 apache foundation 的 openmeetings,這才知道有這麼一套“自由軟體線上會議”程式存在。看了些文件後,真是覺得功能符合我的需求,於是花了幾天時間來研究安裝建置及使用,做成筆記。
openmeetings 特點:
- 自由軟體- 視訊及語音會議,也可打文字聊天(chat)。
- 白板可展示圖片、影片、簡報等等(可同時多個白板)。
- 分享及控制桌面(類似 vnc),並可將桌面錄影起來。
- 詳細的權限控管(防止講到一半被干擾)
- 內建民調系統,方便決策用。
- 預約會議,可以 email 通知。
- 支援外掛程式,擴充功能。
安裝前準備:
小弟的環境是以 debian testing(wheezy) 來安裝,若是其他 distribution,請自行修改。命令是以一般使用者即可安裝,只有在安裝 package 時 apt-get 要 root 權限,在此是用 sudo。
在安裝 openmeetings 前,有些東西是必要的,要先準備好:
1. JRE(java runtime environment), 安裝 openjdk 即可,不需要用 oracle 的 java。
$ sudo apt-get install openjdk-7-jre
2. 要能夠分享桌面,必須要能執行 .jnlp 檔,裝上 icedtea-netx(取代 javaws)
$ sudo apt-get install icedtea-netx
3. 將桌面錄製成影片或滙入 .avi, .flv, .mov, .mp4 到白板要安裝工具。
$ sudo apt-get install ffmpeg sox swftools
debian wheezy 的 swftools 裡並沒有 pdf2swf 這個指令,所以無法上傳 pdf 檔來做簡報,若一定要有,請自行從原始碼編譯。
4. 在白板中匯入圖片,要圖片轉檔工具。
$ sudo apt-get install imagemagick
5. 要在白板中匯入 office 檔,要裝上 libreoffice 或 openoffice 及轉檔工具 jodconverter。
$ sudo apt-get install libreoffice
openmeetings 滙入 .doc, .docx, .ppt, .pptx, ... 都是用 libreoffice 或 openoffice 去做轉換動作,所以在 openmeetings 這台伺服器上一定要裝 office。而呼叫 office 來做轉換的動作,則由 jodconverter 來完成。
因為 openmeetings 在檔案上傳後,都是轉成 pdf,所以要安裝 ghostscript。
$ sudo apt-get install ghostscript
6. 上傳的 office 要支援中文,系統上要裝 utf8 中文字型。
$ sudo apt-get install ttf-arphic-uming ttf-arphic-ukai
若之前舊文件有用 big5 字型,也要安裝 big5 字型。
$ sudo apt-get install ttf-arphic-bsmi00lp ttf-arphic-bkai00mp
還有,文件用到 windows 的細明體的話,預設 linux 並沒有,所以轉換後會變亂碼,直接將字型從 windows 拷貝到 linux 下即可。
$ sudo mkdir /usr/share/fonts/truetype/windows/
$ sudo cp mingliu.ttc /usr/share/fonts/truetype/windows/
開始安裝:
到 http://incubator.apache.org/openmeetings/ 抓 openmeetings 回來。解開到指定目錄:
$ mkdir /media/share/apps/openmeetings
$ tar xvf apache-openmeetings-incubating-2.0.0.r1361497-14-07-2012_1108.tar.gz -C /media/share/apps/openmeetings
由於 debian wheezy 裡的 jodconverter 是 2.2.2 版,必須將 office 啟動成一個 service 在背景跑,listen 一個 tcp port,然後 jodconverter 2.x 再透過 tcp port 去要求 office 做轉換動作。
但是 jodconverter 3.0 則 office 不用在背景跑,jodconverter 3.x 會去呼叫 office 來轉檔,轉完後會關閉 office,所以用 3.x 版比較好。
jodconverter 2.x:
$ sudo apt-get install jodconverter
$ soffice --headless --nofirststartwizard --accept="socket,host=localhost,port=8100;urp" &
會 listen 在 localhost:8100, 而 jodconverter 2.x 在轉換時會自行去跟 office 溝通。
或
jodconverter 3.x:
下載 jodconverter 3.0:
http://code.google.com/p/jodconverter/downloads/list
解開至 openmeetings 裡
$ unzip jodconverter-core-3.0-beta-4-dist.zip -d /media/share/apps/openmeetings/
由於現在 jodconverter 是 3.0-beta-4, 若下次 beta 5 或正式版釋出,則路徑會不同,要再修改,所以預先做個連結,以後不用再到 openmeetings 裡修改路徑,將新版做個連結即可。
$ cd /media/share/apps/openmeetings/
$ ln -sf jodconverter-core-3.0-beta-4 jodconverter-core
預設 openmeetings 資料庫是用 apache derby database,若要改成 mysql 則需在此先準備好。
1.mysql 伺服器部份設定:
首先 mysql 伺服器的 charset 一定要設成 utf8,否則無法安裝成功。
$ sudo apt-get install mysql-server
$ sudo vi /etc/mysql/my.cnf
[mysqld]
character_set_server=utf8
重新啟動 mysql server
$ sudo /etc/init.d/mysql restart
2.安裝 Jconnector
下載 http://www.mysql.com/downloads/connector/j/
解開後,將 mysql-connector-java-5.1.22-bin.jar 放到指定目錄下
$ cp mysql-connector-java-5.1.22-bin.jar /media/share/apps/openmeetings/webapps/openmeetings/WEB-INF/lib/
3.openmeetings 呼叫 mysql 設定:
將 mysql 專用設定檔覆蓋掉原本的:
$ cd /media/share/apps/openmeetings/webapps/openmeetings/WEB-INF/classes/META-INF/
$ cp mysql_persistence.xml persistence.xml
修改 persistence.xml 裡面 mysql server 位置、使用者、密碼。
,
Url=jdbc:mysql://localhost:3306/openmeetings?autoReco
改成, Url=jdbc:mysql://your_mysql_server:3306/openmeetings?autoReco
若 openmeetings 和 mysql 伺服器在同一台機器,則不用改。
, Username=root
改成
, Username=your_openmeetings_user
, Password="/>;
改成
, Password=your_openmeetings_password"/>;
由 於 openmeetings 要使用 mysql 時,是以 mysql root 權限去使用,這樣風險太大。 沒必要的權限不要開。所以是先在 mysql server 上手動建立 openmeetings 資料庫,然後允許 your_openmeetings_user 這個使用者只能使用這個資料庫,其他的不能動。
以 mysql
root 連到 mysql
server 下指令:
create database openmeetings;
grant all on openmeetings.* to your_openmeetings_user@localhost identified by 'your_openmeetings_password';
密碼設為 your_openmeetings_password, 這樣 client 只能以 your_openmeetings_user 使用者連進來,並且僅能使用 openmeetings 這個資料庫,若 openmeetings 伺服器和 mysql 不在同一台,請改 localhost。
create database openmeetings;
grant all on openmeetings.* to your_openmeetings_user@localhost identified by 'your_openmeetings_password';
密碼設為 your_openmeetings_password, 這樣 client 只能以 your_openmeetings_user 使用者連進來,並且僅能使用 openmeetings 這個資料庫,若 openmeetings 伺服器和 mysql 不在同一台,請改 localhost。
啟動 openmeetings server:
$ cd /media/share/apps/openmeetings/
$ ./red5.sh
假如你的 openmeetings 伺服器需要更好效能、有更高負載,則啟動時請改用:
$ ./red5-highperf.sh
等個約 30 秒,若沒問題,伺服務啟動完成,會 listen tcp port 5080, 1935, 8088 和其他幾個。
openmeetings 本身就有 http server,不用額外配合 apache web server。
Port 5080: HTTP (瀏覽器登入及檔案上傳下載)
Port 1935: RTMP (Flash Stream and Remoting/RPC)
Port 8088: RTMP over HTTP-Tunneling (rtmpT)
在 openmeetings server 上的防火牆要打開 tcp 5080, 1935, 8088,其他的是 openmeetings 內部自己使用就不需要。
打開瀏覽器,輸入 openmeetings web-installer, 開始安裝:
http://localhost:5080/openmeetings/install
開啟頁面有一堆說明,預設 openmeetings 資料庫是用 apache derby database, 在真實 production run 環境下,可改用 mysql、postgres、IBM DB2、oracle 等等。不管那些說明,直接按 "Continue with STEP 1" 進入安裝畫面。
一開始要先填上一個使用者及密碼,電子郵件及時區,這個使用者即為 "超級使用者" 身份。
電子郵件則是忘記密碼時重置密碼用及會議提醒。
在 Configuration 部份,預設是系統會寄一封信給新註冊的使用者,使用者收信後,點選 email 上的連結啟動帳號,若是不想這麼麻煩,可修改
Send Email to new registered Users (sendEmailAtRegister) No
New Users need to verify their EMail (sendEmailWithVerficationCode) No
預設電子郵件伺服器是指向 localhost, 所以本機 mail server 要 listen tcp port 25, 也可使用外部 smtp server, 如 google 的 smtp.gmail.com的方式,請自行設定。
若用 smtp.gmail.com
SMTP-Server (smtp_server) smtp.gmail.com
SMTP-Server Port(default Smtp-Server Port is 25) (smtp_port) 587
SMTP-Username (email_userpass) gmail 使用者名稱(自行設定)
SMTP-Userpass (email_userpass) gmail 密碼(自行設定)
Enable TLS in Mail Server Auth Yes
在 Converters 部份,若是有在 PATH 裡的執行檔,則不用在此設定,可直接找到,只要調整 jodconverter 3.x 版的 JOD Path:
JOD Path: ./jodconverter-core/lib
其他的都保持原狀,拉到最底下按 INSTALL 按鈕開始安裝動作,我的電腦約持續 10 分鐘才安裝完成(使用 derby database),若用 mysql 大約 2 分鐘,要有點耐心,完成會跳到另一個視窗,千萬不要一直 refresh 或重開瀏覽器,否則會安裝失敗。
使用:
安裝完成後,直接按 Enter the Application 即可到登入畫面。登入畫面是用 flash 的,所以瀏覽器要裝 adobe flash plugin, 小弟試用過 gnash, 無法使用。或直接開啟網址使用,網址為 http://localhost:5080/openmeetings
以剛才建立的超級使用者登入(Sign in)或新註冊一個,按(Not a member?),註冊時可選擇語言,有正體中文可選,可是翻譯並不完整而且很多是大陸用語,所以我選英文介面來介紹。
註冊時要寫好正確時區,否則以後會議通知會寄錯時間。
請繼續閱讀 "OpenMeetings 基本操作篇"
http://guildwar23.blogspot.tw/2012/09/openmeetings_15.html參考文件:
http://jainan.blogspot.tw/2011/10/202-windows-2003-install-openmeetings.html
http://incubator.apache.org/openmeetings/
2011年11月15日 星期二
簡單介紹好用的 strava.com
從去年開始騎單車後,去買了個軌跡記錄器來記錄自己的狀況,當然也有人覺得沒必要,說過了40歲後,只會退步,不會再進步了,所以不需要看一些數據啦。但是個人還是覺得,有了數據可看,多了一些樂趣嘛,而且要分享也比較容易,否則講一堆,沒用過的人不見得聽得很清楚,但是直接看圖說故事,一目瞭然。
由於買的是 garmin edge 500,所以當然一開始是直接用 garmin connect 網站來記錄。
1.garmin connect:
http://connect.garmin.com/
優點:
支援很多種運動,若配合 garmin 裝置,可顯示溫度、心跳、踏頻。
可以看很詳盡的報告,以週、月、年來顯示報告,也可自訂時間;可只看某一種運動的報告。
若是買 garmin 的產品,直接用這一個就對了。
缺點:
沒事由 google map 換成 "有點軟" 的 bing, 沒中文,難用死了,用了真的會生"病",所以才準備放棄,尋找其他替代方案。
2011/09/17 發現改成無法匿名觀看了,一定要登入。(2011/10/26 改可選擇 google map or bing)
由於去年 9 月 garmin connect 由 google map 改成 微軟的 bing,真他喵的難用,沒中文給鬼用喔,去討論區抗議,結果 garmin 說是公司未來的規劃就是要和微軟合作。
所以開始找替代方案,當然找了不下數十個。
2.endomondo:
http://www.endomondo.com
3.runningfree:
http://www.runningfreeonline.com
4.running ahead:
http://www.runningahead.com/
5.sportypal:
http://sportypal.com
6.everytrail:
http://www.everytrail.com
7.runkeeper:
http://runkeeper.com
8.ridewithgps:
http://ridewithgps.com
9.run.gps:
http://www.gps-sport.net
10.buckeye outdoors:
http://buckeyeoutdoors.com
11.mapmytracks:
http://www.mapmytracks.com
12.mapmyride:
http://www.mapmyride.com
13.strava:
http://www.strava.com
14.bikemap:
http://www.bikemap.net/
15.sports tracker:
http://www.sports-tracker.com/
16.trimble outdoors:
http://www.trimbleoutdoors.com/
17.dailymile:
http://www.dailymile.com
18.runtastic:
http://www.runtastic.com/
19.cardio:
http://www.worksmartlabs.com/cardiotrainer/
20.sportstracklive:
http://www.sportstracklive.com/
21.trainingpeaks:
http://home.trainingpeaks.com/
22:bikeid
http://bikeid.net/
還有很多,列不完,不再列了。當然,每個人的需求都不同,這個不適合我用,不見得就不適合你用,各人喜好不同。
之前有稍微提到 strava.com 這個網站,今天就再簡單介紹一點點吧。
上次說的是缺點,"strava 還真的不錯用,除了報表比較爛、無法匿名看路徑,登入才能看、android app 很基本,沒什麼功能,但要上傳後才能手機上觀看,以上缺點外,算是很好用的。"
今天要說的是某個優點,就是可以針對某一段路或某個爬坡建立 segment。而建立 segment 要做什麼呢?可以拿來比較上次和這次騎相同路徑,看看自己有沒有進步啊。另一個最好玩也最主要的目的是和別人有騎過相同路徑的人做比較。
以下拿個例子來看看:
這張圖是騎到太平四方太子宮的路徑圖,全程來回共30.4公里,坡度爬升321公尺,騎乘時間 1:31:34,全部時間1:48:43(包含休息及停紅燈),平均速度19.9公里,使用garmin edge 500(含踏頻器),平均踏頻73.32,騎的單車是 Jelum(祝冷)。
接續上面的,還有坡度圖,很清楚的看出爬坡到中間,回程就一路下滑。最下方有二個項目:
四方太子宮
這條 segment 全長 5.7km ,坡度爬升 200 meters,均速 14.2 km/h,時間花了00:24:34
廓子坑產業道路 Climb
這條 segment 全長只有 1.4 km,坡度爬升 86 meters,均速 10.9 km/h,時間花了00:07:42
先來看 ”廓子坑產業道路 Climb“:
這段 1.4 公里的路程,坡度為 6.2%,坡度上升了86公尺,有點陡。
最底下有五個人,我是第五名 ^_^。是不是一目了然啊。
然後按左手邊 My Results 即可看到全部自己的次數。我共騎了三次,分別是 8/3,9/3,10/12,很明顯均速越來越快,時間越來越短,可見有進步的啦。再上一張和別人比較的,則會拿自己的最佳成績和別人相比。
那由於別人建立的 segment 都是只有爬坡的一小段而已,所以我又自己建立了比較長的"四方太子宮“這條 segment。若不想和別人比,自爽就好,可將 segment 設成 private。
這段 5.8 公里的路程,坡度為 2.9%,坡度上升了213公尺,平均下來就比較沒那麼陡了。
時間變成約半小時。
接下來再看另一條“旱溪自行車道"
全程來回共 31.3 公里
坡度圖中綠色面積部份是我建立的 segment,共 21.1 公里,因為我去除從家裡到自行車道中間的路程,只想比較在自行車道的部份。
就是線條藍色的部份。
總共騎了八次,因為我建立的這條 segment 雖然是 public,但別人都沒有符合,整條都要 match 才會顯示在此,若中途騎去別條路再繞回來也不會 match 到,所以只看到我自己。
不知道大家看了有沒有懂,總之,這正好是符合我個人的需求,讓我這一年來多了很多樂趣。原本 strava 專門給單車用的,不過最近也加入慢跑的功能。希望大家有空就多多運動啊。
由於買的是 garmin edge 500,所以當然一開始是直接用 garmin connect 網站來記錄。
1.garmin connect:
http://connect.garmin.com/
優點:
支援很多種運動,若配合 garmin 裝置,可顯示溫度、心跳、踏頻。
可以看很詳盡的報告,以週、月、年來顯示報告,也可自訂時間;可只看某一種運動的報告。
若是買 garmin 的產品,直接用這一個就對了。
缺點:
沒事由 google map 換成 "有點軟" 的 bing, 沒中文,難用死了,用了真的會生"病",所以才準備放棄,尋找其他替代方案。
2011/09/17 發現改成無法匿名觀看了,一定要登入。(2011/10/26 改可選擇 google map or bing)
由於去年 9 月 garmin connect 由 google map 改成 微軟的 bing,真他喵的難用,沒中文給鬼用喔,去討論區抗議,結果 garmin 說是公司未來的規劃就是要和微軟合作。
所以開始找替代方案,當然找了不下數十個。
2.endomondo:
http://www.endomondo.com
3.runningfree:
http://www.runningfreeonline.com
4.running ahead:
http://www.runningahead.com/
5.sportypal:
http://sportypal.com
6.everytrail:
http://www.everytrail.com
7.runkeeper:
http://runkeeper.com
8.ridewithgps:
http://ridewithgps.com
9.run.gps:
http://www.gps-sport.net
10.buckeye outdoors:
http://buckeyeoutdoors.com
11.mapmytracks:
http://www.mapmytracks.com
12.mapmyride:
http://www.mapmyride.com
13.strava:
http://www.strava.com
14.bikemap:
http://www.bikemap.net/
15.sports tracker:
http://www.sports-tracker.com/
16.trimble outdoors:
http://www.trimbleoutdoors.com/
17.dailymile:
http://www.dailymile.com
18.runtastic:
http://www.runtastic.com/
19.cardio:
http://www.worksmartlabs.com/cardiotrainer/
20.sportstracklive:
http://www.sportstracklive.com/
21.trainingpeaks:
http://home.trainingpeaks.com/
22:bikeid
http://bikeid.net/
還有很多,列不完,不再列了。當然,每個人的需求都不同,這個不適合我用,不見得就不適合你用,各人喜好不同。
之前有稍微提到 strava.com 這個網站,今天就再簡單介紹一點點吧。
上次說的是缺點,"strava 還真的不錯用,除了報表比較爛、無法匿名看路徑,登入才能看、android app 很基本,沒什麼功能,但要上傳後才能手機上觀看,以上缺點外,算是很好用的。"
今天要說的是某個優點,就是可以針對某一段路或某個爬坡建立 segment。而建立 segment 要做什麼呢?可以拿來比較上次和這次騎相同路徑,看看自己有沒有進步啊。另一個最好玩也最主要的目的是和別人有騎過相同路徑的人做比較。
以下拿個例子來看看:
接續上面的,還有坡度圖,很清楚的看出爬坡到中間,回程就一路下滑。最下方有二個項目:
四方太子宮
這條 segment 全長 5.7km ,坡度爬升 200 meters,均速 14.2 km/h,時間花了00:24:34
廓子坑產業道路 Climb
這條 segment 全長只有 1.4 km,坡度爬升 86 meters,均速 10.9 km/h,時間花了00:07:42
先來看 ”廓子坑產業道路 Climb“:
這段 1.4 公里的路程,坡度為 6.2%,坡度上升了86公尺,有點陡。
最底下有五個人,我是第五名 ^_^。是不是一目了然啊。
然後按左手邊 My Results 即可看到全部自己的次數。我共騎了三次,分別是 8/3,9/3,10/12,很明顯均速越來越快,時間越來越短,可見有進步的啦。再上一張和別人比較的,則會拿自己的最佳成績和別人相比。
那由於別人建立的 segment 都是只有爬坡的一小段而已,所以我又自己建立了比較長的"四方太子宮“這條 segment。若不想和別人比,自爽就好,可將 segment 設成 private。
這段 5.8 公里的路程,坡度為 2.9%,坡度上升了213公尺,平均下來就比較沒那麼陡了。
時間變成約半小時。
接下來再看另一條“旱溪自行車道"
全程來回共 31.3 公里
坡度圖中綠色面積部份是我建立的 segment,共 21.1 公里,因為我去除從家裡到自行車道中間的路程,只想比較在自行車道的部份。
就是線條藍色的部份。
總共騎了八次,因為我建立的這條 segment 雖然是 public,但別人都沒有符合,整條都要 match 才會顯示在此,若中途騎去別條路再繞回來也不會 match 到,所以只看到我自己。
不知道大家看了有沒有懂,總之,這正好是符合我個人的需求,讓我這一年來多了很多樂趣。原本 strava 專門給單車用的,不過最近也加入慢跑的功能。希望大家有空就多多運動啊。
2011年10月29日 星期六
android 的特異功能
有很多程式,一安裝好後就偷偷躲在背景跑;或有一些是只要 wifi 一開啟,app 就會自動跑起來,可是大部份的時候,不想如此,有些 app 甚至選項裡可以設成開機”不“啟動,但仍然開機後會起來,煩死了。這些就是所謂的 bloatware,不但讓手機變慢,記憶體不夠用,還會導致電池很快就用完了。還有,像中華電信出的手機,都會裝 hami xxx 的一堆,一開機跑出來,真是欲除之而後快。
有想說平常將 app 給移除,等到要用時才從 sdcard 中來安裝,不過這樣除了很麻煩以外,app 的設定都要重新設一次,因為在移除 app 時,也會將設定檔全數移除,真的不符經濟效益。
最近發現 android 有一個殺手級的功能,就是可將某一 app 給 “freeze" or "disable" 起來,這個 app 就會停止運作,按下圖示要執行,會說沒安裝在系統上,這樣就不會自動跑起來了,但有新版可更新時,仍然可以更新。等到要用這個 app 時,再將它 "unfreeze" or "enable" 即可。要使用 freeze 必須要將手機 root 才行。
這個比起之前將 .apk 改名成 .apk.disable 更方便,改名的方式,系統會以為你沒裝這個 app,所以也無法更新。而且 freeze 有現成的工具可用,改名的方式只能自己寫 script, 當然,freeze 也可以自己寫 script 就是。而且厲害的是,連系統的 app 都可以 freeze 哦。
大部份能 freeze app 的都要花錢買,不過之前介紹過的 link2sd 最近新版 1.9.5 的也加入 freeze 功能,當然,只為了 freeze 功能去裝 link2sd 實在是殺雞用牛刀。還有另一套叫 bloat freezer,本來也要錢買,但後來作者將之拆成付費及免費版
https://market.android.com/details?id=com.bloatfreezer.free&feature=search_result
這套就只有 freeze、 unfreeze 功能,還不錯用,只做一件事,而且做得很好,我喜歡,只是要看廣告就是。
若要自己寫 script 也很容易:
base=/system
export CLASSPATH=$base/framework/pm.jar
exec app_process $base/bin com.android.commands.pm.Pm "$@"
存起來後,放在路徑底下,
freeze
# pm disable AppName
unfreeze
# pm enable AppName
這個 AppName 就要查一下了,可用 bloat freezer 來查,或 astro file manager。
有了這個功能,不用怕手機都變超慢的,電池一下子就沒電的狀況了。
有想說平常將 app 給移除,等到要用時才從 sdcard 中來安裝,不過這樣除了很麻煩以外,app 的設定都要重新設一次,因為在移除 app 時,也會將設定檔全數移除,真的不符經濟效益。
最近發現 android 有一個殺手級的功能,就是可將某一 app 給 “freeze" or "disable" 起來,這個 app 就會停止運作,按下圖示要執行,會說沒安裝在系統上,這樣就不會自動跑起來了,但有新版可更新時,仍然可以更新。等到要用這個 app 時,再將它 "unfreeze" or "enable" 即可。要使用 freeze 必須要將手機 root 才行。
這個比起之前將 .apk 改名成 .apk.disable 更方便,改名的方式,系統會以為你沒裝這個 app,所以也無法更新。而且 freeze 有現成的工具可用,改名的方式只能自己寫 script, 當然,freeze 也可以自己寫 script 就是。而且厲害的是,連系統的 app 都可以 freeze 哦。
大部份能 freeze app 的都要花錢買,不過之前介紹過的 link2sd 最近新版 1.9.5 的也加入 freeze 功能,當然,只為了 freeze 功能去裝 link2sd 實在是殺雞用牛刀。還有另一套叫 bloat freezer,本來也要錢買,但後來作者將之拆成付費及免費版
https://market.android.com/details?id=com.bloatfreezer.free&feature=search_result
這套就只有 freeze、 unfreeze 功能,還不錯用,只做一件事,而且做得很好,我喜歡,只是要看廣告就是。
若要自己寫 script 也很容易:
base=/system
export CLASSPATH=$base/framework/pm.jar
exec app_process $base/bin com.android.commands.pm.Pm "$@"
存起來後,放在路徑底下,
freeze
# pm disable AppName
unfreeze
# pm enable AppName
這個 AppName 就要查一下了,可用 bloat freezer 來查,或 astro file manager。
有了這個功能,不用怕手機都變超慢的,電池一下子就沒電的狀況了。
2011年10月7日 星期五
2011年9月25日 星期日
android 調校二
通常 android 手機留給使用者額外安裝程式的空間並不多,像我這台 garmin asus A50 就只有 510M 的空間,再加上很多程式或遊戲都要下載資料檔才能用,有的資料檔一下載就是 100M,所以很快的就滿了。而且這台是 android 2.1 以前的,所以無法 app2sd,常常要裝新的軟體,就要想辦法砍掉現有 app,可是每次都花很多時間在想說要砍什麼軟體比較方便,因為軟體砍了後,下次再裝回來,資料和設定檔都會消失,很麻煩。
所以如果沒內建 sdcard 的機子,就要趕快去買來用才是,至少可將資料檔放到 sdcard 上。但是 android 2.2 以上的機子,才能將 apk 放到 sdcard 上,而且不是每一個程式都可以,那 android 2.1 以前的不就玩完了。
幸好找到了 link2sd 這個 app,可以讓 android 1.6 - 2.1 的手機也能將 apk 放到 sdcard 上。作法是先將 sdcard 在 pc 上分割成二個 partition,第一個弄成 vfat,第二個最好弄成 ext3(vfat 也可以啦),第二個 partition 留個 1G 就很夠了,其他都給第一個 partition,拿來存資料用。
link2sd 會使用 sdcard 的第二個 partition,掛載在 /data/sdext2 下,將原本 /data/app/example-1.apk 搬到 /data/sdext2/example-1.apk,然後再將之 link 回 /data/app/,所以使用者安裝的 apk 都會放在 /data/sdext2 下,不佔用原本的 510M 的/data 目錄的容量。除了 apk 以外,dex and lib 也可以放到 /data/sdext2 下。
就算是 android 2.2 以上的,也可以用 link2sd,因為不是每個程式都可以用 app2sd 的,但是用 link2sd 就可以。
所以如果沒內建 sdcard 的機子,就要趕快去買來用才是,至少可將資料檔放到 sdcard 上。但是 android 2.2 以上的機子,才能將 apk 放到 sdcard 上,而且不是每一個程式都可以,那 android 2.1 以前的不就玩完了。
幸好找到了 link2sd 這個 app,可以讓 android 1.6 - 2.1 的手機也能將 apk 放到 sdcard 上。作法是先將 sdcard 在 pc 上分割成二個 partition,第一個弄成 vfat,第二個最好弄成 ext3(vfat 也可以啦),第二個 partition 留個 1G 就很夠了,其他都給第一個 partition,拿來存資料用。
link2sd 會使用 sdcard 的第二個 partition,掛載在 /data/sdext2 下,將原本 /data/app/example-1.apk 搬到 /data/sdext2/example-1.apk,然後再將之 link 回 /data/app/,所以使用者安裝的 apk 都會放在 /data/sdext2 下,不佔用原本的 510M 的/data 目錄的容量。除了 apk 以外,dex and lib 也可以放到 /data/sdext2 下。
就算是 android 2.2 以上的,也可以用 link2sd,因為不是每個程式都可以用 app2sd 的,但是用 link2sd 就可以。
2011年9月24日 星期六
android 調校
在玩了一陣子 android 後,發現很多 app 都會開機就自動啟動,然後在背景一直跑,佔住記憶體和 cpu,砍掉又自動跑起來。難怪 market 裡有那麼多 kill 程式的軟體,不過這個都是治標而已,砍完過一會兒又會自動起來,真頭痛。
不管是什麼功用的都可能會如此,明明我裝一個計時器,可能一天只用一次,用完十分鐘就關掉了,可是得付出的代價是一天24小時都得讓這個計時器耗掉不少的資源,為什麼,寫程式的人真的不知道頭殼在想什麼? 不知道我的手機 cpu 才 600MHz,記憶體才 180M,一個計時器就要佔掉我10幾M的記憶體,若是要用時裝上,用完後就移除是可以,但很麻煩,最主要是移除後,設定都會不見,下次再裝,又得再設定一次。
幸好最近找到方法可解決這問題,這方法是治本的方法,直接讓這 app 消失,不過要先取得 root 才行。由於使用者自己安裝的程式是放在 /data/app/ 裡,拿 "生活計時器" 來當例子,apk 位於 /data/app/com.luckyxmobile.timers4me.apk,寫了一個 script,將這個檔案改成 .apk.disable 即可,/data/app/com.luckyxmobile.timers4me.apk.disable,這樣 android 系統會認為這個 app 沒安裝,而且原本在背景跑的程式,會立即關掉。等到想用計時器時,再用另一個 script 將 .apk.disable 改成 .apk,這樣計時器 app 又回來了,隨時可用,而且設定檔都還留著喔。
那你說,為什麼要用這個“生活計時器",換另一套計時器就好啊。是沒錯,但是就喜歡這一套啊,別套用完就可關掉,偏偏喜歡的這個就一定要在背景跑,所以只好想辦法囉。另外,這招除了可以用在 user app 以為,system app 也可以喔,只是,通當 /system/app/ 是唯讀的,但是有了 root 以後,就什麼都可以動。
那如果有 20 個 app 都要用,不是要寫 20 個 script,而且,執行 script 不是很麻煩,還要開終端機,太麻煩了啦。還好有一個 app 叫 "script manager" 的,可以用來執行 script,不只是點個二、三下就可執行 script,不用打一堆字,更方便的是,還可以設定成開機就執行某個 script,或網路啟動就執行等等,非常的強大,配合 root 使用,真是天下無敵啦。當然,寫 script 也有方法啦,像我目前是只有一個 script,靠檔名來分辨啟動或關閉、以及哪一個程式、是系統 app 或使用者 app。例如 enable-timers4me,前面的 enable 表示是要將計時器 enable,執行後會自動改名成 disable-timers4me,這樣子一目瞭然的知道目前此 app 是啟動或關閉的。後面的 timers4me 則是自己定義的,在另一個檔案可以查表 packagelist.lst,內容如下:
com.luckyxmobile.timers4me.apk timers4me
在執行 disable-timers4me 時,會分析自己檔名的前半部為 disable 表示要做 disable 的動作;後半部 timers4me 則會去 packagelist.lst 裡查表,查到檔名為 com.luckyxmobile.timers4me.apk,然後再去 /data/app/ 找到 com.luckyxmobile.timers4me.apk 改名為 com.luckyxmobile.timers4me.apk.disable,這樣這個 app 就暫時消失了,收工。
若是系統 app 則會在 /system/app/ 裡,拿瀏覽器來當例子,在 packagelist.lst 裡為:
Browser.apk system_browser
script 則為 disable-system_browser,只要查到 system 就會自動到 /system/app 去找,反之則到 /data/app/ 找。但通常 /system 都是唯讀的,所以在改名前要先將 /system 給改成可讀寫 mount -t remount,rw /system,改完名後,再改回唯讀即可。
用了這個方法後,現在手機好用多了。像有些手機,如中華電信的,一買來就給你裝了什麼 kkbox 的,煩死了,而且砍掉又再起來,用這個方法就可以達到 "想用時才開“,呵呵,太完美了。
不管是什麼功用的都可能會如此,明明我裝一個計時器,可能一天只用一次,用完十分鐘就關掉了,可是得付出的代價是一天24小時都得讓這個計時器耗掉不少的資源,為什麼,寫程式的人真的不知道頭殼在想什麼? 不知道我的手機 cpu 才 600MHz,記憶體才 180M,一個計時器就要佔掉我10幾M的記憶體,若是要用時裝上,用完後就移除是可以,但很麻煩,最主要是移除後,設定都會不見,下次再裝,又得再設定一次。
幸好最近找到方法可解決這問題,這方法是治本的方法,直接讓這 app 消失,不過要先取得 root 才行。由於使用者自己安裝的程式是放在 /data/app/ 裡,拿 "生活計時器" 來當例子,apk 位於 /data/app/com.luckyxmobile.timers4me.apk,寫了一個 script,將這個檔案改成 .apk.disable 即可,/data/app/com.luckyxmobile.timers4me.apk.disable,這樣 android 系統會認為這個 app 沒安裝,而且原本在背景跑的程式,會立即關掉。等到想用計時器時,再用另一個 script 將 .apk.disable 改成 .apk,這樣計時器 app 又回來了,隨時可用,而且設定檔都還留著喔。
那你說,為什麼要用這個“生活計時器",換另一套計時器就好啊。是沒錯,但是就喜歡這一套啊,別套用完就可關掉,偏偏喜歡的這個就一定要在背景跑,所以只好想辦法囉。另外,這招除了可以用在 user app 以為,system app 也可以喔,只是,通當 /system/app/ 是唯讀的,但是有了 root 以後,就什麼都可以動。
那如果有 20 個 app 都要用,不是要寫 20 個 script,而且,執行 script 不是很麻煩,還要開終端機,太麻煩了啦。還好有一個 app 叫 "script manager" 的,可以用來執行 script,不只是點個二、三下就可執行 script,不用打一堆字,更方便的是,還可以設定成開機就執行某個 script,或網路啟動就執行等等,非常的強大,配合 root 使用,真是天下無敵啦。當然,寫 script 也有方法啦,像我目前是只有一個 script,靠檔名來分辨啟動或關閉、以及哪一個程式、是系統 app 或使用者 app。例如 enable-timers4me,前面的 enable 表示是要將計時器 enable,執行後會自動改名成 disable-timers4me,這樣子一目瞭然的知道目前此 app 是啟動或關閉的。後面的 timers4me 則是自己定義的,在另一個檔案可以查表 packagelist.lst,內容如下:
com.luckyxmobile.timers4me.apk timers4me
在執行 disable-timers4me 時,會分析自己檔名的前半部為 disable 表示要做 disable 的動作;後半部 timers4me 則會去 packagelist.lst 裡查表,查到檔名為 com.luckyxmobile.timers4me.apk,然後再去 /data/app/ 找到 com.luckyxmobile.timers4me.apk 改名為 com.luckyxmobile.timers4me.apk.disable,這樣這個 app 就暫時消失了,收工。
若是系統 app 則會在 /system/app/ 裡,拿瀏覽器來當例子,在 packagelist.lst 裡為:
Browser.apk system_browser
script 則為 disable-system_browser,只要查到 system 就會自動到 /system/app 去找,反之則到 /data/app/ 找。但通常 /system 都是唯讀的,所以在改名前要先將 /system 給改成可讀寫 mount -t remount,rw /system,改完名後,再改回唯讀即可。
用了這個方法後,現在手機好用多了。像有些手機,如中華電信的,一買來就給你裝了什麼 kkbox 的,煩死了,而且砍掉又再起來,用這個方法就可以達到 "想用時才開“,呵呵,太完美了。
2011年8月6日 星期六
Asus A50 無法安裝 firefox
本來想在 android 上安裝 firefox 用看看,結果竟然搜尋不到,後來上 mozilla.com 才看到
Will Firefox work on my mobile device?
Firefox for Android
Firefox is available for Android 2.1 or higher. It requires:
A phone with an ARMv7 processor.
Approximately 17MB internal or SD storage. It runs best on devices with at least 512MB of RAM.
CPU 要 ARMv7,但是 Asus A50 的 cpu 是 ARMv6 的,所以不能裝,很可惜說,為什麼要 v7 呢?
Will Firefox work on my mobile device?
Firefox for Android
Firefox is available for Android 2.1 or higher. It requires:
A phone with an ARMv7 processor.
Approximately 17MB internal or SD storage. It runs best on devices with at least 512MB of RAM.
CPU 要 ARMv7,但是 Asus A50 的 cpu 是 ARMv6 的,所以不能裝,很可惜說,為什麼要 v7 呢?
2011年8月5日 星期五
android 真的滿鳥的說
這陣子在玩 android,跟人家借的機子 Asus A50 android 2.1,不是很高檔的,容量也不大,記憶體 256M,可裝程式的空間才 150M 而已,由於剛借來是中華電信改過的 rom,所以一開機就跑了一堆 hami xxx 的,再加上原本 garmin 的地圖什麼的,根本無法再跑其他程式,因為
一堆程式一裝進去,就變成 service 自己跑起來,導致我原本的 garmin 導航功能變成超慢,不堪使用,甚至會自動重新開機。
所以後來上 garmin-asus 官方網站抓一般通路用的 rom,總算少了很多中華電信的程式,變得好用多了。
不過,最近又遇到問題,就是不知為什麼,安裝程式時會告知空間不足,於是將一堆程式都移除,可是還是說空間不夠。非常的火大,於是去網路上找工具來取得 root,終於給我找到為什麼了。在系統中,有一個 mount point 為 /data,原本只有 150M,其中 /data/cache 功用是在 market 下載 apk 時的暫存目錄,若正常安裝好,暫存的 apk 會自動刪除。但是常常下載到一半可能 wifi 斷線,或網站連不到,結果暫存檔就留著,日積月累將這個目錄灌爆了,但是一般 user 又沒權限清,連 ls /data 都無法看內容,真是遜斃了,還不給人家 root,又清不到,真是太差勁了。
所以,建議用 android 的人一定要想辦法取得 root,否則很難用的。不知道新版的 android 有沒有解決掉這個問題,否則真是不堪用啊。
不知道只有這支 A50 才如此,還是 android 都這樣,改天來問問別人好了。
一堆程式一裝進去,就變成 service 自己跑起來,導致我原本的 garmin 導航功能變成超慢,不堪使用,甚至會自動重新開機。
所以後來上 garmin-asus 官方網站抓一般通路用的 rom,總算少了很多中華電信的程式,變得好用多了。
不過,最近又遇到問題,就是不知為什麼,安裝程式時會告知空間不足,於是將一堆程式都移除,可是還是說空間不夠。非常的火大,於是去網路上找工具來取得 root,終於給我找到為什麼了。在系統中,有一個 mount point 為 /data,原本只有 150M,其中 /data/cache 功用是在 market 下載 apk 時的暫存目錄,若正常安裝好,暫存的 apk 會自動刪除。但是常常下載到一半可能 wifi 斷線,或網站連不到,結果暫存檔就留著,日積月累將這個目錄灌爆了,但是一般 user 又沒權限清,連 ls /data 都無法看內容,真是遜斃了,還不給人家 root,又清不到,真是太差勁了。
所以,建議用 android 的人一定要想辦法取得 root,否則很難用的。不知道新版的 android 有沒有解決掉這個問題,否則真是不堪用啊。
不知道只有這支 A50 才如此,還是 android 都這樣,改天來問問別人好了。
2011年7月5日 星期二
從 grub2 menu 直接開 iso 檔案,免去燒錄 cd 的麻煩
最近測試了由 grub2 直接用 iso 來開機,以避免浪費 cd 或 dvd 片,環保救地球,科科。
基本上有二種方式,一種是用 memdisk (package syslinux-common),另一種是 loopback.cfg.
以 grml 來說明(因為 grml 二種方式都支援)
以 memdisk 方式:
menuentry "Bootable ISO Image: grml64-medium_wheezy_latest" {
insmod part_msdos
insmod ext2
set root='(hd0,msdos2)'
search --no-floppy --fs-uuid --set=root 0cedc811-654d-40f9-b2f3-1df57791def2
linux16 /memdisk iso
initrd16 /images/grml64-medium_wheezy_latest.iso
}
以 loopback.cfg 方式:
menuentry "grml from iso"
{
insmod ext2
iso_path=/images/grml64-medium_wheezy_latest.iso
export iso_path
loopback loop (hd0,2)$iso_path
configfile (loop)/boot/grub/grub.cfg
}
ubuntu 11.04 設定如下:(僅能用 loopback.cfg 的方式)
menuentry "ubuntu 11.04 from iso (loopback.cfg) (油笨土放艾索)" {
iso_path=/images/ubuntu-11.04-desktop-amd64.iso
export iso_path
search --set --file $iso_path
loopback loop (hd0,2)$iso_path
root=(loop)
configfile (loop)/boot/grub/loopback.cfg
}
debian squeeze live:(目前二種都不支援,但經由加上 grml 的 findiso 參數及自備 loopback.cfg 後就可以)
基本上有二種方式,一種是用 memdisk (package syslinux-common),另一種是 loopback.cfg.
以 grml 來說明(因為 grml 二種方式都支援)
以 memdisk 方式:
menuentry "Bootable ISO Image: grml64-medium_wheezy_latest" {
insmod part_msdos
insmod ext2
set root='(hd0,msdos2)'
search --no-floppy --fs-uuid --set=root 0cedc811-654d-40f9-b2f3-1df57791def2
linux16 /memdisk iso
initrd16 /images/grml64-medium_wheezy_latest.iso
}
以 loopback.cfg 方式:
menuentry "grml from iso"
{
insmod ext2
iso_path=/images/grml64-medium_wheezy_latest.iso
export iso_path
loopback loop (hd0,2)$iso_path
configfile (loop)/boot/grub/grub.cfg
}
ubuntu 11.04 設定如下:(僅能用 loopback.cfg 的方式)
menuentry "ubuntu 11.04 from iso (loopback.cfg) (油笨土放艾索)" {
iso_path=/images/ubuntu-11.04-desktop-amd64.iso
export iso_path
search --set --file $iso_path
loopback loop (hd0,2)$iso_path
root=(loop)
configfile (loop)/boot/grub/loopback.cfg
}
debian squeeze live:(目前二種都不支援,但經由加上 grml 的 findiso 參數及自備 loopback.cfg 後就可以)
2011年6月11日 星期六
有趣的 proto joke
像這個,雙關語
“NTP jokes are always on time”
還有這個
“I was telling a WEP joke once, but everyone already knew it”
更多請參考
http://protolol.com
“NTP jokes are always on time”
還有這個
“I was telling a WEP joke once, but everyone already knew it”
更多請參考
http://protolol.com
2011年5月25日 星期三
好像不錯用的 mumble
為什麼說 ”好像“,因為還沒實際測過,不知道效果如何就是。^_^
前一陣子在 android 上找透過網路語音交談的軟體,除了 skype 之外,看看有沒有什麼 open source 的可用,結果找到了 mumble,真是驚為天人、相見恨晚啊。有 windows、mac、linux 版,android 及 iphone 是 beta,看來大部份平台都有,甚至還有 maemo 版咧,連 nokia n900 都能用。
通常 skype 或一般的 voip 軟體,都要註冊一個帳號,然後用帳號及密碼登入 server,將要聊天的人加入後,就可以看到對方是否有在線上,有的話就可以打電話給對方,不想聊時就掛斷,等到想聊時就再撥一次,但是若人不在旁邊,就無法接聽,沒辦法建立連線。
但是這個 mumble 和一般的又不大一樣,和 mbone 工具中的 rat 比較像,但 rat 只能用 multicast or unicast(一對一),若要三個人以上,則一定要用 multicast,但是 multicast 又不能亂用。
mumble 最主要是用來讓線上遊戲的人員互相溝通用的,如 cs,隨時要和隊員維持通信,才能整個 team 一起玩。
mumble 是 client/server 架構,一定要有 server,在自己的 desktop 裝上 client,連到外面申請的、公用的、或自己架的 mumble server(murmur),要聊天的另一方也裝上 client 並連上同一個 server,只要知道 ip 及 port 即可連上 server,若要額外再設定密碼也可以。
連上 mumble 後,可看到一些事先定義好的 channel,而 channel 可以再細分為 team,若只要聽或講到某個 team,則先進入 team。若要整個 channel 都可以溝通,則回到上一層 channel 的地方再講話。另外,mumble 也可以發送訊息,有點類以 broadcast 的方式,整個 team 或整個 channel 的人都可以聽到或講話。
mumble 的運作方式是 push to talk,像無線電,只要連上 server,按著 scroll lock 就可開始講話,放掉 scroll lock 就不會送出,而別人講的話會一直送過來,滿特別的吧。
server 預設是用 udp port 64738,若 udp 無法溝通則會自動改用 tcp
裝好 client 可以試試底下的 server:
debian 的公開 server,平常都沒人在用地,所以可以拿來偷用 ^_^.
mumble.debian.net
udp:64738
也可到 ukgame 去註冊一個免費的來使用,註冊完會告訴你 server ip 及 port
http://www.ukgame.com/mumble
官方網站:
http://mumble.sourceforge.net/
若要自己 compile murmur (mumble server 叫做 murmur),要裝上一些 qt 的 library,因為 murmur 有用到 qt,裝起來不小咧,所以有另一個 project 叫 umurmur:
http://code.google.com/p/umurmur/
拿掉了 qt 的關聯,所以適合用在 embedded devices,如 OpenWRT 之上。當然要拿這版的來架 server 當然也可以囉。
前一陣子在 android 上找透過網路語音交談的軟體,除了 skype 之外,看看有沒有什麼 open source 的可用,結果找到了 mumble,真是驚為天人、相見恨晚啊。有 windows、mac、linux 版,android 及 iphone 是 beta,看來大部份平台都有,甚至還有 maemo 版咧,連 nokia n900 都能用。
通常 skype 或一般的 voip 軟體,都要註冊一個帳號,然後用帳號及密碼登入 server,將要聊天的人加入後,就可以看到對方是否有在線上,有的話就可以打電話給對方,不想聊時就掛斷,等到想聊時就再撥一次,但是若人不在旁邊,就無法接聽,沒辦法建立連線。
但是這個 mumble 和一般的又不大一樣,和 mbone 工具中的 rat 比較像,但 rat 只能用 multicast or unicast(一對一),若要三個人以上,則一定要用 multicast,但是 multicast 又不能亂用。
mumble 最主要是用來讓線上遊戲的人員互相溝通用的,如 cs,隨時要和隊員維持通信,才能整個 team 一起玩。
mumble 是 client/server 架構,一定要有 server,在自己的 desktop 裝上 client,連到外面申請的、公用的、或自己架的 mumble server(murmur),要聊天的另一方也裝上 client 並連上同一個 server,只要知道 ip 及 port 即可連上 server,若要額外再設定密碼也可以。
連上 mumble 後,可看到一些事先定義好的 channel,而 channel 可以再細分為 team,若只要聽或講到某個 team,則先進入 team。若要整個 channel 都可以溝通,則回到上一層 channel 的地方再講話。另外,mumble 也可以發送訊息,有點類以 broadcast 的方式,整個 team 或整個 channel 的人都可以聽到或講話。
mumble 的運作方式是 push to talk,像無線電,只要連上 server,按著 scroll lock 就可開始講話,放掉 scroll lock 就不會送出,而別人講的話會一直送過來,滿特別的吧。
server 預設是用 udp port 64738,若 udp 無法溝通則會自動改用 tcp
裝好 client 可以試試底下的 server:
debian 的公開 server,平常都沒人在用地,所以可以拿來偷用 ^_^.
mumble.debian.net
udp:64738
也可到 ukgame 去註冊一個免費的來使用,註冊完會告訴你 server ip 及 port
http://www.ukgame.com/mumble
官方網站:
http://mumble.sourceforge.net/
若要自己 compile murmur (mumble server 叫做 murmur),要裝上一些 qt 的 library,因為 murmur 有用到 qt,裝起來不小咧,所以有另一個 project 叫 umurmur:
http://code.google.com/p/umurmur/
拿掉了 qt 的關聯,所以適合用在 embedded devices,如 OpenWRT 之上。當然要拿這版的來架 server 當然也可以囉。
2011年5月23日 星期一
在 windows 上執行 linux binary
沒想到有人竟然會做這種事,畢竟 linux 上有的軟體,windows 上應該都找的到相對應的才是,不過依個人來說,真的是有這種需要。
因為在 linux 下用慣了小工具,一個執行檔才十幾k,但在 windows 上,為了這個小功能,可能要裝一套很大的整合一堆功能的大怪獸,如 sm(screen message),只是為了全螢幕顯示幾個字,說真的,這功能不好找,就我對 windows 的一點點知識來說,應該是繪圖軟體,如 photoshop、非常好色、gimp 等等的才行,用 office 恐怕字也無法放到這麼大吧,就算可以,為了這個小功能,去裝一套 office 太超過了吧。
話說回來,剛才去看,竟然有網頁版,那就不用找 windows 版了 ^_^
http://darcs.nomeata.de/screen-message/sm.html
不過才 0.1 版,應該跑不了什麼程式才對,沒關係,有開始就有希望。
下載網址:
http://wezfurlong.org/blog/2004/jan/linux-on-windows/
因為在 linux 下用慣了小工具,一個執行檔才十幾k,但在 windows 上,為了這個小功能,可能要裝一套很大的整合一堆功能的大怪獸,如 sm(screen message),只是為了全螢幕顯示幾個字,說真的,這功能不好找,就我對 windows 的一點點知識來說,應該是繪圖軟體,如 photoshop、非常好色、gimp 等等的才行,用 office 恐怕字也無法放到這麼大吧,就算可以,為了這個小功能,去裝一套 office 太超過了吧。
話說回來,剛才去看,竟然有網頁版,那就不用找 windows 版了 ^_^
http://darcs.nomeata.de/screen-message/sm.html
不過才 0.1 版,應該跑不了什麼程式才對,沒關係,有開始就有希望。
下載網址:
http://wezfurlong.org/blog/2004/jan/linux-on-windows/
2011年5月21日 星期六
好玩的 WhatPulse
之前在舊公司時,有管幾台測試機器,平常機器沒開什麼服務,拿來測試一些功能用,所以就裝 boinc 來跑跑,去跟人家拚排名。不過後來離職後沒機器可跑,現在只賸下一台 HP notebook,之前有跑過會過熱,筆記型電腦還是不比 desktop 或 server,不適合長時間 cpu 滿載的,因此不敢再跑,所以也少了些樂趣。
最近不小心看到 WhatPulse,可將使用電腦時,鍵盤及滑鼠按鍵次數回傳,和世界上其他人做比較,跟之前玩 boinc 很類似,只不過 boinc 是要靠 cpu 或 gpu 來計算,機器或 gpu 越高檔跑越快,久了機器就比不上人家,但 WhatPulse 則只以鍵盤按鍵次數來比較,滑鼠按鍵次數只統計,不以此來排名,所以機器不用很高檔就可以和別人拚了。而且平常用 linux 當 desktop,都習慣用 terminal 來處理事情,所以鍵盤的使用率很高,應該進展滿快的才是。原來好久以前就有這個東東,真是相見恨晚,還好現在也有 linux 版,不會搥心肝。
這個純綷是好玩而已,本身並不會記錄密碼回傳什麼的,所以不用擔心。還可看什麼鍵按了幾次,滿有趣的。
首先去 http://www.whatpulse.org 下載程式回來,打開後,直接註冊新帳號,再加上目前這台機器即可,一個人可以有很多台的機器。執行後會在工具列上顯示一個小圖,另外會有一個 geek window 出現,上面是目前鍵盤、滑鼠按鍵次數、游標、滑鼠移動距離等等,有二行數字,第一行是目前的,隨時都在增加;第二行是所有累計的。若雙擊工作列圖示可將目前累計的結果回傳,回傳後目前值會歸零,也可設定成按一定次數自動回傳或每隔幾小時回傳一次。
user 是 guildwar,team 是 SpreadFirefox,總之,希望看到的人都趕快加入吧。
個人狀況
http://whatpulse.org/stats/users/326822/
個人在團隊 SpreadFirefox 團隊名次是 242 名
個人在國家方面,在台灣裡是第 75 名
而團隊 SpreadFirefox 在全世界排 12 名
而國家 “台灣” 在全世界排 48 名
最近不小心看到 WhatPulse,可將使用電腦時,鍵盤及滑鼠按鍵次數回傳,和世界上其他人做比較,跟之前玩 boinc 很類似,只不過 boinc 是要靠 cpu 或 gpu 來計算,機器或 gpu 越高檔跑越快,久了機器就比不上人家,但 WhatPulse 則只以鍵盤按鍵次數來比較,滑鼠按鍵次數只統計,不以此來排名,所以機器不用很高檔就可以和別人拚了。而且平常用 linux 當 desktop,都習慣用 terminal 來處理事情,所以鍵盤的使用率很高,應該進展滿快的才是。原來好久以前就有這個東東,真是相見恨晚,還好現在也有 linux 版,不會搥心肝。
這個純綷是好玩而已,本身並不會記錄密碼回傳什麼的,所以不用擔心。還可看什麼鍵按了幾次,滿有趣的。
首先去 http://www.whatpulse.org 下載程式回來,打開後,直接註冊新帳號,再加上目前這台機器即可,一個人可以有很多台的機器。執行後會在工具列上顯示一個小圖,另外會有一個 geek window 出現,上面是目前鍵盤、滑鼠按鍵次數、游標、滑鼠移動距離等等,有二行數字,第一行是目前的,隨時都在增加;第二行是所有累計的。若雙擊工作列圖示可將目前累計的結果回傳,回傳後目前值會歸零,也可設定成按一定次數自動回傳或每隔幾小時回傳一次。
user 是 guildwar,team 是 SpreadFirefox,總之,希望看到的人都趕快加入吧。
個人狀況
http://whatpulse.org/stats/users/326822/
個人在團隊 SpreadFirefox 團隊名次是 242 名
個人在國家方面,在台灣裡是第 75 名
而團隊 SpreadFirefox 在全世界排 12 名
而國家 “台灣” 在全世界排 48 名
2011年5月9日 星期一
linux containers (LXC)
最近新版的 linux kernel 2.6.29 以後,支援了一種叫 LXC (linux containers) 的東東,是由 IBM 所開發,license 是 GNU LGPL,類似 linux vserver, openvz 的機制。在同一個 kernel 下,可以執行另外不同的 os,譬如在 debian stable 6.0 下,再跑另一個 debian testing,不同的 filesystem,但共用同一個 kernel,基本上和 chroot 差不多,但是功能更完整。
lxc 不但有不同的 filesystem,還能夠設定不同的網路,就好像是另一台虛擬機器,但是不會像 kvm 或 xen 那樣耗費那麼多的資源。LXC 可限制用多少 memory、cpu 等等,才不會讓某一個 container 影響到另一個 container 或甚至是 host,這都是 chroot 做不到的。
底下說明如何在 debian squeeze (6.0)上面使用 lxc 的步驟:
# apt-get install lxc
檢查看看目前 kernel 是否完整支援 lxc:
# lxc-checkconfig
Kernel config /proc/config.gz not found, looking in other places...
Found kernel config file /boot/config-2.6.32-5-amd64
--- Namespaces ---
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: enabled
Network namespace: enabled
Multiple /dev/pts instances: enabled
--- Control groups ---
Cgroup: enabled
Cgroup namespace: enabled
Cgroup device: enabled
Cgroup sched: enabled
Cgroup cpu account: enabled
Cgroup memory controller: missing
Cgroup cpuset: enabled
--- Misc ---
Veth pair device: enabled
Macvlan: enabled
Vlan: enabled
File capabilities: enabled
Note : Before booting a new kernel, you can check its configuration
usage : CONFIG=/path/to/config /usr/bin/lxc-checkconfig
大致上都 ok,但是卻有一項沒通過
Cgroup memory controller: missing
所以無法限制 memory 使用量,若要用,則要自己重編核心就是。
debian squeeze 中共有五個範本 (busybox debian fedora sshd ubuntu)
# ls /usr/lib/lxc/templates/
lxc-busybox lxc-debian lxc-fedora lxc-sshd lxc-ubuntu
由於 template 中的 lxc-debian 是安裝 lenny,要裝 squeeze 請自行修改
# cp /usr/lib/lxc/templates/lxc-debian /usr/lib/lxc/templates/lxc-squeeze
dhcp-client 改成 dhcp3-client
debootstrap 那行 lenny 改成 squeeze
順便改一下 debian mirror
反正這個檔案可以改的地方很多,修改成符合自己需求
建立一個叫 foo 的新 container,OS 為 debian (lxc-debian 中是寫 debian lenny,會安裝失敗,請改成 squeeze)
# lxc-create -n foo -t squeeze /var/lib/lxc/foo
這樣會在 /var/lib/lxc/foo 建立 foo 的 container,OS 為 debian squeeze,user:name 為 root:root,並產生 config 檔
/var/lib/lxc/foo/config
啟動 foo
# lxc-start -n foo -f /var/lib/lxc/foo/config
若正常的話會出現登入畫面,以 root:root 登入即可。
如果之前的 lxc-start 可正常登入,就可以加上 -d (or --daemon),執行成 daemon mode。之後再用 lxc-console 去開啟 console 登入。
加上 -d
# lxc-start -n foo -f /var/lib/lxc/foo/config -d
這次就會直接回到命令列,不會有登入畫面
檢查目前有哪幾個 container 啟動中(若沒有任何結果,則目前都沒有 container 啟動中)
# lxc-ls
foo
連接到 console 登入
# lxc-console -n foo
如果按 Enter 還是沒看到登入畫面,就先關掉 foo,這裡因為 container 內少掉 /dev/tty1 這個裝置,所以無法登入
# cd /var/lib/lxc/foo/rootfs/dev
# mknod tty1 c 4 1
再重新開啟 foo,用 lxc-console 應該就可以登入了。
另外,可以將目前狀態給凍結起來,類似 suspend
# lxc-freeze -n foo
恢復一個被凍結的 container
# lxc-unfreeze -n foo
監控 containers 的狀態
# lxc-monitor -n foo
剛執行是沒任何輸出,但是若 foo 有開機或關機,則會出現訊息
'wheezy' changed state to [STOPPING]
'wheezy' changed state to [STOPPED]
'wheezy' changed state to [STARTING]
'wheezy' changed state to [RUNNING]
再來 lxc 強的地方開始了
檢查目前 foo 使用了哪些 cpu(預設是全部)
$ lxc-cgroup -n foo cpuset.cpus
0-1
設定成 'foo' 只能用 cpu 0
$ lxc-cgroup -n foo cpuset.cpus "0"
檢查看看
# lxc-cgroup -n foo cpuset.cpus
0
甚至可將一顆 cpu 切開看誰可以用多少
$ lxc-cgroup -n foo cpu.shares
1024
$ lxc-cgroup -n bar cpu.shares
1024
預設 'foo' 及 'bar' 都是 1024 比重,都一樣,所以若同時啟動,各用 50 %
將 bar 設成 512
# lxc-cgroup -n bar cpu.shares 512
$ lxc-cgroup -n foo cpu.shares
1024
$ lxc-cgroup -n bar cpu.shares
512
所以這時 foo 用 66%,bar 用 33%
停止 foo (lxc-stop 是直接拔掉插頭,沒有依照正常關機程序來關機,若要正常關機,從 container 裡打 init 0 或 poweroff 或 shutdown -h now)
# lxc-stop -n foo
將 foo 給移除(包含砍掉 /var/lib/lxc/foo 整個目錄)
# lxc-destroy -n foo
基本上,lxc 是新的 linux 技術,雖然功能還不是非常的完整,但是已經堪用,尤其一些舊硬體,若不支援 vmx 或 svm,無法用 redhat kvm 的情況,但又不想花太多時間去學 xen,則 lxc 是最好的選擇了。
P.S. 在 container 中,udev 是無法運作的。
P.S. 由於是共用同一個 kernel,所以在 linux 上是無法跑 windows、freebsd 的,只能跑 linux
lxc 不但有不同的 filesystem,還能夠設定不同的網路,就好像是另一台虛擬機器,但是不會像 kvm 或 xen 那樣耗費那麼多的資源。LXC 可限制用多少 memory、cpu 等等,才不會讓某一個 container 影響到另一個 container 或甚至是 host,這都是 chroot 做不到的。
底下說明如何在 debian squeeze (6.0)上面使用 lxc 的步驟:
# apt-get install lxc
檢查看看目前 kernel 是否完整支援 lxc:
# lxc-checkconfig
Kernel config /proc/config.gz not found, looking in other places...
Found kernel config file /boot/config-2.6.32-5-amd64
--- Namespaces ---
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: enabled
Network namespace: enabled
Multiple /dev/pts instances: enabled
--- Control groups ---
Cgroup: enabled
Cgroup namespace: enabled
Cgroup device: enabled
Cgroup sched: enabled
Cgroup cpu account: enabled
Cgroup memory controller: missing
Cgroup cpuset: enabled
--- Misc ---
Veth pair device: enabled
Macvlan: enabled
Vlan: enabled
File capabilities: enabled
Note : Before booting a new kernel, you can check its configuration
usage : CONFIG=/path/to/config /usr/bin/lxc-checkconfig
大致上都 ok,但是卻有一項沒通過
Cgroup memory controller: missing
所以無法限制 memory 使用量,若要用,則要自己重編核心就是。
debian squeeze 中共有五個範本 (busybox debian fedora sshd ubuntu)
# ls /usr/lib/lxc/templates/
lxc-busybox lxc-debian lxc-fedora lxc-sshd lxc-ubuntu
由於 template 中的 lxc-debian 是安裝 lenny,要裝 squeeze 請自行修改
# cp /usr/lib/lxc/templates/lxc-debian /usr/lib/lxc/templates/lxc-squeeze
dhcp-client 改成 dhcp3-client
debootstrap 那行 lenny 改成 squeeze
順便改一下 debian mirror
反正這個檔案可以改的地方很多,修改成符合自己需求
建立一個叫 foo 的新 container,OS 為 debian (lxc-debian 中是寫 debian lenny,會安裝失敗,請改成 squeeze)
# lxc-create -n foo -t squeeze /var/lib/lxc/foo
這樣會在 /var/lib/lxc/foo 建立 foo 的 container,OS 為 debian squeeze,user:name 為 root:root,並產生 config 檔
/var/lib/lxc/foo/config
啟動 foo
# lxc-start -n foo -f /var/lib/lxc/foo/config
若正常的話會出現登入畫面,以 root:root 登入即可。
如果之前的 lxc-start 可正常登入,就可以加上 -d (or --daemon),執行成 daemon mode。之後再用 lxc-console 去開啟 console 登入。
加上 -d
# lxc-start -n foo -f /var/lib/lxc/foo/config -d
這次就會直接回到命令列,不會有登入畫面
檢查目前有哪幾個 container 啟動中(若沒有任何結果,則目前都沒有 container 啟動中)
# lxc-ls
foo
連接到 console 登入
# lxc-console -n foo
如果按 Enter 還是沒看到登入畫面,就先關掉 foo,這裡因為 container 內少掉 /dev/tty1 這個裝置,所以無法登入
# cd /var/lib/lxc/foo/rootfs/dev
# mknod tty1 c 4 1
再重新開啟 foo,用 lxc-console 應該就可以登入了。
另外,可以將目前狀態給凍結起來,類似 suspend
# lxc-freeze -n foo
恢復一個被凍結的 container
# lxc-unfreeze -n foo
監控 containers 的狀態
# lxc-monitor -n foo
剛執行是沒任何輸出,但是若 foo 有開機或關機,則會出現訊息
'wheezy' changed state to [STOPPING]
'wheezy' changed state to [STOPPED]
'wheezy' changed state to [STARTING]
'wheezy' changed state to [RUNNING]
再來 lxc 強的地方開始了
檢查目前 foo 使用了哪些 cpu(預設是全部)
$ lxc-cgroup -n foo cpuset.cpus
0-1
設定成 'foo' 只能用 cpu 0
$ lxc-cgroup -n foo cpuset.cpus "0"
檢查看看
# lxc-cgroup -n foo cpuset.cpus
0
甚至可將一顆 cpu 切開看誰可以用多少
$ lxc-cgroup -n foo cpu.shares
1024
$ lxc-cgroup -n bar cpu.shares
1024
預設 'foo' 及 'bar' 都是 1024 比重,都一樣,所以若同時啟動,各用 50 %
將 bar 設成 512
# lxc-cgroup -n bar cpu.shares 512
$ lxc-cgroup -n foo cpu.shares
1024
$ lxc-cgroup -n bar cpu.shares
512
所以這時 foo 用 66%,bar 用 33%
停止 foo (lxc-stop 是直接拔掉插頭,沒有依照正常關機程序來關機,若要正常關機,從 container 裡打 init 0 或 poweroff 或 shutdown -h now)
# lxc-stop -n foo
將 foo 給移除(包含砍掉 /var/lib/lxc/foo 整個目錄)
# lxc-destroy -n foo
基本上,lxc 是新的 linux 技術,雖然功能還不是非常的完整,但是已經堪用,尤其一些舊硬體,若不支援 vmx 或 svm,無法用 redhat kvm 的情況,但又不想花太多時間去學 xen,則 lxc 是最好的選擇了。
P.S. 在 container 中,udev 是無法運作的。
P.S. 由於是共用同一個 kernel,所以在 linux 上是無法跑 windows、freebsd 的,只能跑 linux
2011年4月1日 星期五
one time password
由於常常有機會從外面的電腦甚至是網咖連回家中的 server,很容易就會被 keylogger 記錄起使用者及密碼,若改用 public key 則要隨身攜帶隨身碟之類的,滿麻煩。所以最好用的應該就是 OTP( one time password) 了,在第一次設好後,將一部份的密碼印出來在紙上,隨身攜帶,平時還是使用帳號及密碼登入系統,若是在不安全的電腦上,就直接按 Enter 跳過帳號密碼登入,接下來會出現 otp 的登入訊息。
在 debian 上步驟如下:
# apt-get install opie-server opie-client
# vi /etc/pam.d/sshd
change
@include common-auth
to
auth sufficient pam_unix.so nullok_secure
auth sufficient pam_opie.so
auth requisite pam_deny.so
auth required pam_permit.so
auth optional pam_ecryptfs.so unwrap
並且要修改 ssh server 的設定檔,這樣才會出現 otp 的密碼訊息
# vi /etc/ssh/sshd_config
ChallengeResponseAuthentication yes
and restart sshd
# /etc/init.d/ssh restart
第一次要先用 opiepasswd 初始密碼
The OPIE services must be initialised with the command: (run by user which wanna login)
in opie server:
$ opiepasswd -c
to allow users to log-in with OTPs
Updating behappy:
Only use this method from the console; NEVER from remote. If you are using
telnet, xterm, or a dial-in, type ^C now or exit with no password.
Then run opiepasswd without the -c parameter.
Using MD5 to compute responses.
Enter old secret pass phrase:
Enter new secret pass phrase:
Again new secret pass phrase:
ID behappy OTP key is 499 po9644
BABY JACK FIGS KYLE SOCK RAKE
列出20組密碼隨身攜帶:
get the password list:
$ opiekey -n 20 499 po9644
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Sorry, but you don't seem to be on the console or a secure terminal.
Warning: Continuing could disclose your secret pass phrase to an attacker!
Enter secret pass phrase:
480: SITS DUE ALVA BEEN WOO OBOE
481: WADE GLUM NOVA THAN OVEN HAAS
482: REAL LET CON VETO BLOW MOSS
483: IRIS LUGE FAT RECK CORN ARGO
484: HUGH LUG EDGE JEFF FOLK HATH
485: ODE TEND MIKE FIR FATE DAYS
486: WAND PUB OHIO JOY EMIL COCA
487: IRK SOB CUBA KALE OAK COAT
488: SOFA MIRE LEER BOP OTT JAM
489: LOAD HOW SWAT OWL MILT AIDA
490: OUT LEAR CRAG LOON LUND MONK
491: NEWT BOLT SANK HURD BUG DEAN
492: SET ANTI DEAL CAST JAIL ROBE
493: REAL BEER ROVE CUFF RET MUG
494: NON RAID ETC ROB HAVE YARN
495: BOON CAW RUE LAM LATE HOCK
496: FIRM HARK EM ALTO NOW FRY
497: GOOF WEAL SHAM OAR LACY RILL
498: EST PAY WAG GOLF PA ART
499: BABY JACK FIGS KYLE SOCK RAKE
在外面用 ssh 登入時,一開始還是和平常一樣,要你輸入原本系統的密碼,這時直接按 Enter 跳過,再來就是 otp 的訊息了,出現了 497 號,所以查看列出來的 497 組密碼,全部輸入即可登入。
$ ssh localhost
Password: [ just press enter to skip normal login]
otp-md5 497 po9644 ext, Response: [ key in the number 497 above ]
You have mail.
Last login: Fri Apr 1 00:56:48 2011 from pony
yes, it works.
不會很難地。
在 debian 上步驟如下:
# apt-get install opie-server opie-client
# vi /etc/pam.d/sshd
change
@include common-auth
to
auth sufficient pam_unix.so nullok_secure
auth sufficient pam_opie.so
auth requisite pam_deny.so
auth required pam_permit.so
auth optional pam_ecryptfs.so unwrap
並且要修改 ssh server 的設定檔,這樣才會出現 otp 的密碼訊息
# vi /etc/ssh/sshd_config
ChallengeResponseAuthentication yes
and restart sshd
# /etc/init.d/ssh restart
第一次要先用 opiepasswd 初始密碼
The OPIE services must be initialised with the command: (run by user which wanna login)
in opie server:
$ opiepasswd -c
to allow users to log-in with OTPs
Updating behappy:
Only use this method from the console; NEVER from remote. If you are using
telnet, xterm, or a dial-in, type ^C now or exit with no password.
Then run opiepasswd without the -c parameter.
Using MD5 to compute responses.
Enter old secret pass phrase:
Enter new secret pass phrase:
Again new secret pass phrase:
ID behappy OTP key is 499 po9644
BABY JACK FIGS KYLE SOCK RAKE
列出20組密碼隨身攜帶:
get the password list:
$ opiekey -n 20 499 po9644
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Sorry, but you don't seem to be on the console or a secure terminal.
Warning: Continuing could disclose your secret pass phrase to an attacker!
Enter secret pass phrase:
480: SITS DUE ALVA BEEN WOO OBOE
481: WADE GLUM NOVA THAN OVEN HAAS
482: REAL LET CON VETO BLOW MOSS
483: IRIS LUGE FAT RECK CORN ARGO
484: HUGH LUG EDGE JEFF FOLK HATH
485: ODE TEND MIKE FIR FATE DAYS
486: WAND PUB OHIO JOY EMIL COCA
487: IRK SOB CUBA KALE OAK COAT
488: SOFA MIRE LEER BOP OTT JAM
489: LOAD HOW SWAT OWL MILT AIDA
490: OUT LEAR CRAG LOON LUND MONK
491: NEWT BOLT SANK HURD BUG DEAN
492: SET ANTI DEAL CAST JAIL ROBE
493: REAL BEER ROVE CUFF RET MUG
494: NON RAID ETC ROB HAVE YARN
495: BOON CAW RUE LAM LATE HOCK
496: FIRM HARK EM ALTO NOW FRY
497: GOOF WEAL SHAM OAR LACY RILL
498: EST PAY WAG GOLF PA ART
499: BABY JACK FIGS KYLE SOCK RAKE
在外面用 ssh 登入時,一開始還是和平常一樣,要你輸入原本系統的密碼,這時直接按 Enter 跳過,再來就是 otp 的訊息了,出現了 497 號,所以查看列出來的 497 組密碼,全部輸入即可登入。
$ ssh localhost
Password: [ just press enter to skip normal login]
otp-md5 497 po9644 ext, Response: [ key in the number 497 above ]
You have mail.
Last login: Fri Apr 1 00:56:48 2011 from pony
yes, it works.
不會很難地。
2010年7月20日 星期二
永安漁港
於 wii 銀河馬力歐2 卡關,加上天氣很好,因此忍不住想要騎車出去晃晃。
之前有想過要去桃園的永安漁港,而且大家都沒什麼意願,若是利用下班時間夜騎,恐怕不大夠,只能利用星期假日去,所以,選日不如撞日,騎了就對了。
吃個早餐,洗完衣服,東摸摸、西摸摸,就到 11 點了,太陽正大時,可是若不出去騎,就要拖到下午二、三點才能騎,回家應該都很晚了,因此硬著頭皮出發。
由東大路往南寮,然後往竹北,結果有找到竹北的自行車道,騎到路上還遇到熟人,騎著登山車在抽車,再加上身上穿著鐵人三項的方服,沒想到他這麼厲害。
一路上就邊騎邊問路的往北前進,在檳榔攤問路,還看到柱子上有綁一隻豬,滿好笑的。
騎一騎就騎到新月沙灣
到了桃園新屋,走台 15 線,最後再接回西濱台 61 線,總算在 15:00 到達了永安漁港,趕快進去裡面找東西吃,餓死我也。
假日滿多人來永安的,很熱鬧,也有不少人騎自行車,現在的人都滿注重休閒,不錯。
在拍完照,到處看看後,16:00 準備啟程回新竹,此時已覺得有點累,還有滿長的一段要騎咧。
看到有綠色隧道,就騎了進去,感覺還不錯,也有滿多人租車在騎的,規劃的不錯,唯一的缺點,由於二邊都被包住,所以沒什麼 view 就是。
這是什麼漂流木公園,騙很大,就這幾根木頭 ^_^
接著走到新豐自行車道
回到新竹已差不多 18:00 了,被太陽公公剝了一層皮,今天的哩程數約有 86 公里,不少了。
更多相片:
http://picasaweb.google.com/guildwar23/20100710
之前有想過要去桃園的永安漁港,而且大家都沒什麼意願,若是利用下班時間夜騎,恐怕不大夠,只能利用星期假日去,所以,選日不如撞日,騎了就對了。
吃個早餐,洗完衣服,東摸摸、西摸摸,就到 11 點了,太陽正大時,可是若不出去騎,就要拖到下午二、三點才能騎,回家應該都很晚了,因此硬著頭皮出發。
由東大路往南寮,然後往竹北,結果有找到竹北的自行車道,騎到路上還遇到熟人,騎著登山車在抽車,再加上身上穿著鐵人三項的方服,沒想到他這麼厲害。
一路上就邊騎邊問路的往北前進,在檳榔攤問路,還看到柱子上有綁一隻豬,滿好笑的。
騎一騎就騎到新月沙灣
到了桃園新屋,走台 15 線,最後再接回西濱台 61 線,總算在 15:00 到達了永安漁港,趕快進去裡面找東西吃,餓死我也。
假日滿多人來永安的,很熱鬧,也有不少人騎自行車,現在的人都滿注重休閒,不錯。
在拍完照,到處看看後,16:00 準備啟程回新竹,此時已覺得有點累,還有滿長的一段要騎咧。
看到有綠色隧道,就騎了進去,感覺還不錯,也有滿多人租車在騎的,規劃的不錯,唯一的缺點,由於二邊都被包住,所以沒什麼 view 就是。
這是什麼漂流木公園,騙很大,就這幾根木頭 ^_^
接著走到新豐自行車道
回到新竹已差不多 18:00 了,被太陽公公剝了一層皮,今天的哩程數約有 86 公里,不少了。
更多相片:
http://picasaweb.google.com/guildwar23/20100710
寶山二水庫
之前到寶山水庫,由於有同事不是很想再騎下去,又不小心騎到大馬路去,因此很不過癮。
所以這次又約了同事,來到寶山二水庫,希望能平緩心中的癢 ^_^。
下班後,出發往寶山二水庫去,原本想在交大南門的全家買個麵包來充飢一下,有同事說在往寶二的路上有一家 7-11,所以就沒買,結果後來才發現那家便利超商不見了,真是傻眼,只好在路邊吃魯肉飯和貢丸湯,吃得很撐。
沒過多久,開始爬坡一個個來,由於平時都騎平路,遇到這麼陡的坡還是第一次,13% 400公尺,吃足了苦頭,還好都不長,幾百公尺而已,不過大家還是騎得哇哇叫就是。
好不容易騎到天黑了,才到達寶山二水庫。稍做休息後,準備去做環湖,約 10 公里,也是上上下下的,看來不輕鬆。結果騎約 10 分鐘,竟然前面路封起來,應該是前一陣子下大雨,路面崩塌吧,真是掃興。
於是只好回家了,一路上同事帶頭,下坡狂飆,真的又危險、又刺激。由於我有近視,根本看不到前方的路,只好跟著前方的同事一路衝,真是不要命的騎法。
大致上是一條騎自行車的好路,說好了,這個月的額度用完,要騎車下個月再說吧 :)。
所以這次又約了同事,來到寶山二水庫,希望能平緩心中的癢 ^_^。
下班後,出發往寶山二水庫去,原本想在交大南門的全家買個麵包來充飢一下,有同事說在往寶二的路上有一家 7-11,所以就沒買,結果後來才發現那家便利超商不見了,真是傻眼,只好在路邊吃魯肉飯和貢丸湯,吃得很撐。
沒過多久,開始爬坡一個個來,由於平時都騎平路,遇到這麼陡的坡還是第一次,13% 400公尺,吃足了苦頭,還好都不長,幾百公尺而已,不過大家還是騎得哇哇叫就是。
好不容易騎到天黑了,才到達寶山二水庫。稍做休息後,準備去做環湖,約 10 公里,也是上上下下的,看來不輕鬆。結果騎約 10 分鐘,竟然前面路封起來,應該是前一陣子下大雨,路面崩塌吧,真是掃興。
於是只好回家了,一路上同事帶頭,下坡狂飆,真的又危險、又刺激。由於我有近視,根本看不到前方的路,只好跟著前方的同事一路衝,真是不要命的騎法。
大致上是一條騎自行車的好路,說好了,這個月的額度用完,要騎車下個月再說吧 :)。
訂閱:
文章 (Atom)












