顯示文章

這裡允許您檢視這個會員的所有文章。請注意, 您只能看見您有權限閱讀的文章。


主題 - billy3321

頁: [1] 2
1
Linux 討論版 / XMPP初探
« 於: 2010-06-03 20:48 »
最近剛好有機會碰到XMPP,把一些學習心得記錄在這邊。
原文網址:
http://billy3321.blogspot.com/2010/06/xmpp.html

XMPP(Extensible Messageing and Presence Protocol) 是一種IM的通訊協定,
其前身為Jabber,後於IETF標準化為RFC3920。

除了一般通訊協定常有的Server與Client外,XMPP還另外定義了Gateway,
只要通過Gateway,便可以與其他的IM Protocol通話。

XMPP最大的特色在於傳輸的內容。其傳輸的內容為XML;藉由XML的擴充性,
可以達到許多的擴展應用。不過也由於傳輸內容為XML,因此無法提供二進制的資料。
檔案傳輸需藉由外部HTTP。如果不可避免,XMPP協議提供了Base64的方式傳輸帶編碼文件。

XMPP每個用戶在網路上都有個獨特的Jabber ID,簡稱為JID。
JID由id, domain 與 resource3個部份組成。其格式為:
id@domain/resource。
resource有時可以省略。

傳輸的內容大致如下:


|--------------------  |
| <stream>           |
|----------------------|
| <presence>         |
| <show>              |
| </show>             |
|----------------------|
| <message to="’foo’"> |
|                           |
| </message>        |
|----------------------|
| <iq to="’bar’">     |
| <query>              |
| </query>             |
|----------------------|
| ...                      |
|----------------------|
| </iq>                 |
|----------------------|

<stream> </stream>所夾住的部份稱為XML Stanza,若是加上<stream> </stream>
本身,則稱為XML Stream。

presence 有點類似於廣播機制,可以針對有特定subscribe的對象傳送訊息;
message 裡的 body 是傳輸的本文,而 iq 類似於http的request-responce服務。

底下是RFC裡所提供的一個簡單的對話session範例

引用
Client:
<stream:stream to="’example.com’" xmlns="’jabber:client’"
stream="’http://etherx.jabber.org/streams’"
version="’1.0’">
Server:
<stream:stream from="’example.com’" id="’someid’"
xmlns="’jabber:client’"
stream="’http://etherx.jabber.org/streams’"
version="’1.0’">
... encryption, authentication, and resource binding ...
Client: <message from="’juliet@example.com’"
to="’romeo@example.net’" lang="’en’">
Client: Art thou not Romeo, and a Montague?
Client: </message>
Server: <message from="’romeo@example.net’"
to="’juliet@example.com’" lang="’en’">
Server: Neither, fair saint, if either thee dislike.
Server: </message>
Client: </stream:stream>
Slient: </stream:stream>




一開始兩方先傳送



引用
Client:
<stream:stream to="’example.com’" xmlns="’jabber:client’"
stream="’http://etherx.jabber.org/streams’"
version="’1.0’">
Server:
<stream:stream from="’example.com’" id="’someid’"
xmlns="’jabber:client’"
stream="’http://etherx.jabber.org/streams’"
version="’1.0’">



確立了XMPP通訊的開始,而後開始XML Stream的傳輸,
在XML Stream傳輸完了以後結束對話。

XMPP也支援DNS動態解析出Server IP。

標準的 XMPP client解析的流程為(以example.com為例)
解析 "_xmpp-client._tcp.example.com" ﹐獲得連接的IP和port;
如果失敗﹐則解析 "_jabber._tcp.timyang.net"﹐這個主要針對老的服務器設定;
如果還是失敗﹐則客戶端認為domain沒有配置SRV記錄﹐則直接解析"example.com"並使用預設port 5222連接。

在了解了XMPP的傳輸內容後,接下來就是XMPP伺服器的架設。

我們以ejabberd為範例,讓大家了解如何設定ejabberd server。
首先安裝ejabberd:

引用
sudo apt-get install ejabberd

由於ejabberd使用erlang所撰寫而成,因此會相依許多erlang的模組;
爾後如果需要讓ejabberd使用MySQL的資料庫,還要上網去抓erlang的相關API。

http://darkrevival.com/blog/2009/05/22/setup-an-xmpp-server/

/etc/ejabberd/ejabberd.pem 是ejabberd server的憑證。
如果您有自己的憑證,可以取代之。
ejabberd的相關設定檔主要在 /etc/ejabberd/ejabberd.cfg
註解為 '%'

其中最重要的有幾項:

設定Admin user:

引用
{acl, admin, {user, "", ""}}.

例如:

引用
{acl, admin, {user, "billy", "localhost"}}.

如果需要多個admin user,可以添加多列。

設定Hostname:
這邊設定的Hostname就代表這個ejabberd自己的名稱為何。
如果設定為example.com,那麼billy@example.com
就是在這台Server上面認証的。

引用
{hosts, [""]}.

例如:

引用
{hosts, ["localhost"]}.


如果有新用戶註冊要提醒誰:

引用
{registration_watchers, ["@"]}.

例如:

引用
{registration_watchers, ["billy@localhost"]}.


ejabberd預設是使用自己的資料庫。
若是想要改用MySQL作為ejabberd的資料庫,
那麼要從mysql,config以及erlang的mysql api三方面下手。

首先加入erlang的mysql api到ejabberd的module目錄底下:

引用
svn co https://svn.process-one.net/ejabberd-modules/mysql/trunk mysql
cd mysql
./build.sh
sudo cp ebin/*.beam /usr/lib/ejabberd/ebin


再來建立ejabberd專用的database:

引用
wget http://svn.process-one.net/ejabberd/trunk/src/odbc/mysql.sql
mysql -u root -p


在mysql中建立ejabberd專用的帳戶

引用
GRANT ALL ON ejabberd.* TO 'ejabberd'@'localhost' IDENTIFIED by 'password';

建立ejabberd的資料庫

引用
CREATE DATABASE ejabberd;

匯入mysql的資料庫

引用
mysql -D ejabberd -p -u ejabberd <>


等到ejabberd設定好上線後,就可以用ejabberdctl來註冊使用者。

引用
sudo ejabberdctl register billy localhost P@ssw0rd

之後,就可以連線到

http://localhost:5280/admin
如果ejabberd順利執行的話,這邊可以用admin的id@domain 與 password登入。


登入後可以看到各個設定畫面。在這邊也可以直接註冊使用者。


使用pidgin連線伺服器

pidgin > 新增帳戶

通訊協定選XMPP,
使用者填上id, 域名填上自己ejabberd server的hostname(或是domain)
密碼則填上註冊的密碼,成功的話就可以登入server了。


Python的XMPP模組有不少,而其中最多人推荐的是PyXMPP
PyXMPP的網站上就有不少範例。
http://pyxmpp.jajcus.net/svn/pyxmpp/trunk/examples/

其中 echo_bot.py 與 send_message.py 是很好用的範例。
pyxmpp.all.JID 可以將 JID 字串組合成物件,
pyxmpp.interfaces.stanza 可以解析許多傳輸的內容。
有興趣的朋友可以仔細看看。

以下是使用echo_bot.py的結果。


Refrence:
http://hi.baidu.com/jabber
http://darkrevival.com/blog/2009/05/22/setup-an-xmpp-server/
http://zh.wikipedia.org/zh-tw/XMPP
http://www.sunbo.name/20080409/xmpp
http://xmpp.org/rfcs/rfc3920.html

2
很多人使用自由軟體多少都會遇到問題。但是遇到問題了,很多人卻不知道如何提報出去。

軟體放置的地方常為英文介面,也造成提報問題上的不便。

因此很多人常常在論壇上發文提問,或是在自己的blog談論,而開發者卻常常收不到。

這篇文章以Lazyscripts放置的地點與提報Bug的方法為例,說明如何提報bug給開發者。

Lazyscripts主要放置的位置為Google code(現已不用)、sourceforge.net與自由軟體鑄造廠(目前不使用)。

本文即以這三個站點作為教學範例。


sourceforge.net的頁面點進去如下圖所示:



1.點選上方的Support



2.點選底下的Bugs



3.點選Add new以加入新的bug回報



4.填寫以下各個欄位

Category:分類,屬於程式本體,或是scripts的問題
Summory:標題,請寫上問題簡述
Description:問題主要描述
Group:問題是屬於哪個版本的
Upload a file attachment:附加檔案,通常可附加上問題的log
Add Artifact:送出問題

Google code的頁面如下所述:



1.點選右上方的Issues:



2.點選New issue提報問題(需要登入google code)



3.填寫以下欄位:

Summary:標題,問題簡述
Description:主要問題描述
Attach a file:附上檔案,主要為問題的log檔案。
Labels:給這個問題一個標籤
Submit Issue:送出問題


自由軟體鑄造廠的頁面如下所示:



1.點選待辦事項->瑕疵:



2.點選問題回報(需登入)



3.填選申請人,主題,並在下面詳細描述問題。最後點選新增以提報問題。

注意:目前Lazyscripts使用Sourceforge.net管理bug,請至Sourceforge.net提報。

3
活動/聚會區 / Coscup 開源人年會2009
« 於: 2009-07-10 23:49 »
COSCUP 【開源人年會】已邁入第四年,不但成為台灣各地社群朋友一年一度相聚的盛事,更在各地社群共同舉辦之下,逐漸成長茁壯。繼去年EeePC推出linux版netbook之後,Google 也開始推出Android手機,許多新的open source專案和產品都爆炸性發展。順應今年的Open Source發展趨勢,本活動分成四大主題:Android 和嵌入式系統、雲端運算和 Web 技術、開發者工具及使用者桌面。無論您是寫 open source 軟體的開發者、熱衷 open source 軟體的推廣者、熟悉 open source 軟體的使用者、還是想瞭解 open source 軟體的新手,也不論您是因為工作而接觸 open source 軟體、因興趣而沉迷於 open source 軟體、還是被朋友拉著加入 open source 社群,歡迎一同共襄盛舉。
其他詳細活動資訊,如下:  
日期:2009/8/15 (六) - 8/16 (日)  
地點:臺灣大學應用力學研究所 國際會議廳
活動網頁:http://coscup.org/2009/zh_tw/
報名網站:http://coscup.org/2009/zh_tw/register
開放報名:2009/07/15
報名費用:全程免費!歡迎參加!

blog貼紙

<a href="http://coscup.org/2009/zh_tw/" title="開源人年會2009"><img
border="0" alt="開源人年會2009" src="http://coscup.org/2009/coscup2009.gif
"/></a>


4
Linux懶人包進化版:Lazyscripts
Written by Lazy 社群與 Arthur/共筆 Friday, 12 June 2009

<專案簡介>

使用 Linux 的朋友又有福了!最新版 Linux 懶人包 Lazyscripts 於 4 月份正式釋出。除了承襲 Lazybuntu 的簡單上手、容易使用外,這次的懶人包更同時支援 Ubuntu、Debian,並且開始開發支援 Fedora 及 openSUSE 等台灣常見的 Linux 版本。Lazyscripts 能夠一鍵設定中文化介面,並自動從網路下載多媒體編碼器、安裝更好用的燒錄軟體、字典、廣播收聽軟體、BBS 連線程式等,輕易滿足一般辦公室應用與校園學生使用之需求。
近來國人使用 Linux 或使用雙系統(Linux 與 XP)的人數越來越多,而應用範圍也從伺服器(Server)朝向桌面端(Desktop)發展。隨著初階使用者的增加,設定快速便利的 Lazybuntu 就成了 Linux 新手選擇 Linux 發行套件的重要因素之一,這也讓 Ubuntu 一躍成為國內使用者最多的 Linux 發行套件。當 Lazybuntu 開發工作逐漸穩定後,新的開發者加入讓這個專案注入了心血。billy3321(雨蒼)的加入新增了許多 Lazybuntu 的功能,而 hychen 的加入則將整個 Lazybuntu 的架構重新改寫。由於這些成員的加入,Lazybuntu 開始支援不同的 Linux 發行版本,原本的專案名稱 Lazybuntu 也因應支援不同發行套件,而改名為 Lazyscripts,成為可讓許多 Linux 發行套件使用的懶人包。

<最新消息與操作說明>

Lazyscripts 於2009 年 4 月 1 日正式釋出,接替原本 Lazybuntu 的維護,充分展現了開發社群自我挑戰的信心與決心。本次釋出的版本最大不同之處有 2 點:
(1)不需頻繁更新主程式:
新版的 Lazyscripts 不再將 scripts 與主程式合併釋出。Lazyscripts 懶人包只包含主程式,所有的功能會在執行時才從網路下載。而整個程式架構也分成了使用者介面(GUI)、程式核心(Core)、以及功能(Scripts)。功能將會隨著維護者的新增而更新,重新執行程式即可更新,不需要更新主程式。
(2)用戶可隨意自訂 Scripts:
如果您是進階使用者,未來 Lazyscripts 也提供幾個簡單步驟,讓您自訂專屬於你自己的scripts。也就是說,使用者對於懶人包所連結的軟體選項,是可以自由修改的。例如,您可以自行定義與客製化組合辦公室或班級內所需要的 Lazyscripts。這樣一份專屬的「軟體清單」懶人包,無疑造福更多的使用者。
如果您對於 Linux 與自由軟體有初步認識,但對操作介面不太熟悉,Lazyscripts 必然能幫上您,提供給您一個夠用、好用的套件安裝介面。就算是第一次使用 Lazyscripts 這個方便的工具,也能輕易上手。只要下載 Lazyscripts,解壓縮,並雙擊後即可執行。接著只要依據軟體的分類屬性,適當地勾選您要安裝/不安裝的軟體選項,並按下最下方的套用鍵即可。畫面上的終端機(Terminal)就會幫您下載與安裝您所規劃組合的軟體套件,只要稍注意一下網路連線就萬事OK啦。從安裝 Lazyscripts 到挑選軟體,到開始安裝選定的軟體,大約於 3 分鐘內應該可以完成,果真是名符其實的懶人包!

*圖1、親切好用、一目了然的使用介面

<開發社群>

Yurenju 是 Lazybuntu 專案剛成立時就加入開發團隊的人。「就參與動機而言,實在是非常單純。那時剛學會 python,正巧 PCMan 在找人寫可以讓新手更容易入門的懶人包,又想說用了 Linux 那麼久都沒什麼貢獻,所以就這樣加入了開發團隊,」Yurenju 說。「剛開始什麼都還不會的時候,PCMan 前輩的指導讓我進步了不少,從原本不會寫 Python、偶爾才寫一下 script,藉由 Lazybuntu 也讓我學到了不少東西,而最重要的就是跟前輩一起寫程式的經驗。」而說到開發過程中值得紀念的經驗,Yurenju 提到:「最初釋出 Lazybuntu 0.1 時,跟 PCMan 一起工作到晚上十二點,看著 OpenFoundry 上 Bug 一個一個的被標示成『解決』,而我們一起工作到十二點,終於在最後的那一刻,我們在 Ubuntu 台灣論壇上發布了最終 0.1 版本,那種感覺真的很好。那種搞破頭兩個人一直忙、最後終於趕上進度的那種快感,還有可以跟眾多高手一起工作的經驗真的是很開心。」
「大學時期就想實作類似 Lazybuntu 的東西了,只是一直沒去做,直到 Yurenju 說想要把 Lazybuntu 改成支援多家發行套件,就加入開發團隊了,而因為 Yurenju 在我加入後很忙,沒什麼時間進行專案,所以我才有機會把 Lazybuntu 改的面目全非,驗證從前的想法。哈哈哈哈哈,真是感謝老天爺,賜我良機!啊!Yurenju 不要瞪我,」Hychen 說。而對於共同開發的樂趣,Hychen 臉上露出狂熱的表情說著:「合作的感覺啊!實在是讓人熱血沸騰啊!最 High 的時段則莫屬假日約間咖啡廳協同寫 Code,腦力激盪!然後看著專案越來越完整。超開心的!而更讓我們開心的,則是使用者因為我們的軟體實用受惠而傳來的回應,特別是使用上的問題回報,無不是整個專案成長的堅固礎石。」
開發者與分工列舉如下,並附上我們熱情活潑的玉照。

yurenju:UI設計與對外文稿的撰寫。

billy3321:Scripts 的主要維護人,供應了許多 script, 也修了很多 script 方面的 bug

hychen:大幅度翻新 lazyscripts 的人,幾乎把 Lazybuntu 所有的 code 都改寫了。(右邊那個)

honkia:logo設計。

Aminzai:Scripts 維護成員

mrmoneyc: openSUSE scripts 維護成員

pcman:特別指導。


*圖2、Lazyscripts開發成員經常出現的 Hacking Thursday

<未來發展>

著名的 Linux 開發者之一的雷蒙說過:「把使用者視為協同開發人,乃是迅速改善程式碼和有效除錯的最佳途徑!」Lazy 社群團隊一直保持與使用者的高度互動,誠摯希望使用者能透過任何管道告知我們使用狀況與建議。而本次 logo 票選活動也是希望能與使用者族群互動,讓大家共同決定 Lazyscripts 的第一印象。
Lazysciprts 目前最重要的目標,就是可以支援 OpenSUSE 以及 Fedora 兩大發行版本。當然維持軟體本身的可用性也是相當重要的工作。而國際化的部份也是如火如荼的展開中,我們預計在 0.2 版的時候,在國外的論壇發布 Lazyscripts,作為 Lazyscripts 在國外試水溫的第一步。

原文網址:
http://www.openfoundry.org/index.php?option=com_content&Itemid=360&id=2085&lang=en&task=view
http://tinyurl.com/mzezoy

5
Linux 討論版 / lazyscripts 0.1 released
« 於: 2009-07-10 00:41 »
lazyscripts 0.1 released

檔案下載:http://sourceforge.net/projects/lazyscripts/files/

這次主要是修了一些bug,還有把文件補齊。
詳見:http://lazyscripts.sourceforge.net/doc/

Lazyscripts 簡介

Lazyscripts於2009年4月1日正式釋出,接替原本Lazybuntu的維護, 除了部份GUI的程式碼,及客製化Scripts仍延用外,核心架構及程式 碼幾乎全部改寫。

Lazybuntu 是由 PCMan 於 2007/09/25 發起,起因為 Ubuntu 雖然是 對初學者非常友善的 Linux 發行套件,但是仍然有許多未盡完美之處 ,尤其在中文環境的方面,雖然 Ubuntu 的開發者花了不少功夫,仍然 不夠符合臺灣使用的習慣,預設的安裝也缺少一些國人常用的中文軟體。

此外,有些多媒體相關的軟體,因為某些法律上的爭議,和牽涉到一些專 利的問題,無法被 Ubuntu 官方套件收錄,但是這些套件卻是平日使用桌 面系統不可或缺的,例如 MP3 解碼,DVD 播放等重要功能,所以安裝好 Ubuntu 後,使用者往往還需要一番調校。

既然這些調教,是許多使用者裝好 Ubuntu 之後,第一件會想做的事情, 那與其讓初學者去搜尋文件看半天,為何不讓工具程式來代勞呢?在這樣 的想法之下,臺灣有許多網友,陸續提供了一些系統調校的小程式。 這些 小程式雖然解決了部份的問題,但是操作需要打指令,使用起來也不夠有 彈性。於是提供操作簡單的圖形介面,讓使用者只要動動滑鼠,在無需閱 讀文件或輸入指令的情況下,就可以輕鬆解決安裝後大部分的問題,便是 Lazybuntu 以及後來的 Lazyscripts 最重要的開發目的。

截至目前為止,Lazyscripts 支援 Ubuntu、Debian 等distrobution,可以 協助使用者設定網路、套件庫、設定好完善的中文環境、解決影音解碼、DVD 播放等各種常見問題、並安裝一些好用的常用軟體,將預設的 Linux 安裝, 調校成符合臺灣地區使用習慣的狀態。

而除了原本 Lazybuntu 擁有的功能外,Lazyscripts 更強化了客製化腳本 (Script)的管理方式,使Scripts 更容易分享、取得、合併,並且擁有更大 的彈性以應付依不同的客製目的。

系統需求

必須安裝

GNU/Linux 發行套件

Ubuntu 8.10 或 Ubuntu 9.04 桌面版本 AMD/x86
Debian Lenny 安裝標準桌面環境 (目前僅測試過 x86)
Git

Python 2.6 以上

GitPython - Git Python Bidding Module

開發者安裝

Nose - Python Testing Framwork
make - GNU make utility to maintain groups of programs
Sphinix - Python Document Creator
PyGTK - GTK+ for Python

如何安裝 Lazyscripts

Lazyscripts 需要網路才可以使用,請務必確認您執行以下步驟時有網路連線可用。現在 Lazyscripts 提供與 lazybuntu 相同的簡易安裝方式。請先至以下網址:

https://sourceforge.net/projects/lazyscripts/files

請依照你的 CPU 架構選擇下載。如果你不知道你的 CPU 架構,請選擇 i386 版本。

下載完畢後,開啟檔案管理員到你下載的目錄,並且對壓縮檔按下右鍵,並且選擇『在此解壓縮』。解壓縮完畢後,會有一個 lazyscript 執行檔,雙擊執行即可。

如果您是第一次使用 Lazyscripts,必需要等待一段時間讓 Lazyscripts 安裝必要軟體,請耐心等候。待 Lazyscripts 使用介面出來後,即可勾選你需要的功能,並且按下確定執行。

如何使用 Lazyscripts
Note: Lazyscripts 需要網路。


簡單到不能再簡單的介面。

只要下載 Lazyscripts,解壓縮,並雙擊後即可執行。接著只要依據軟體的分類屬性,適當地勾選您要安裝/不安裝的軟體選項,並按下最下方的套用鍵即可。畫 面上的終端機(Terminal)就會幫您下載與安裝您所規劃組合的軟體套件,從安裝 Lazyscripts 到挑選軟體,到開始安裝選定的軟體,大約於 3 分鐘內應該可以完成。

與Lazybuntu最大的不同

不需頻繁更新主程式:

新版的Lazyscripts不再將scripts與主程式合併釋出。Lazyscripts懶人包只包含主程式,所有的功能會在執行時才從網路下載。而整個程式架構也分成了使用者介面(GUI)、程式核心(Core)、以及功能(Scripts)。

功能將會隨著維護者的新增而更新,重新執行程式即可更新,不需要更新主程式。

用戶可隨意自訂Scripts:

如果您是進階使用者,未來Lazyscripts也提供幾個簡單步驟,讓您自訂專屬於你自己的scripts。也就是說,使用者對於懶人包所連結的軟體選項,是可以自由修改的。例如,您可以自行定義與客製化組合辦公室或班級內所需要的Lazyscripts。

全新的 Logo

感謝 Honkia 為新生的Lazyscrtipts 設計Logo。

更彈性化的系統架構

現在的lazyscripts裡面的結構已經全部更新,現在變得更容易將客製化的腳本(scripts)放入其中,下一個版本的Lazyscripts可以更容易的置換腳本來源。
自動更新腳本 (Script)

Lazyscripts全部的腳本(script)將會從網路上直接更新,當您每次執行主程式時,都會從網路上自動下載最新的scripts。

新支援的Linux發行版本

Note: SuSE 以及 Fedora 支援正在開發中。

0.1版開始支援 :

Debian 5.0 (安裝桌面環境)
EzGo 自由軟體光碟

開發方式變更

程式碼採用Git管理,並放在 http://www.github.com 上。
主網站移到 http://sourceforge.net/projects/lazyscripts/

採用 Sphinix 作為文件撰寫工具

Sphinix 是 Python 2.6 版所採用的文件生成系統,使用 reStructuredText 語法處理文件內容關聯、排版,並且支援多種格式輸出,包含HTML、PDF、Latext。用 Sphinx 所生成的文件網站除了頁面能自訂樣式,自訂文件導覽順序,甚至還有附有搜尋功能。

6
Python程式設計討論區 / Python相關資源
« 於: 2009-04-28 16:25 »
來跟大家分享一些資源:)

參考書籍

Python 學習手冊.第三版
http://www.anobii.com/books/0150c7a53c67cf648a/
http://www.oreilly.com.tw/product2_c.php?id=a240

這本書有個很大的問題,就是有些過度翻譯
很多專有名詞都翻成中文,導致越看越不懂XD
但內容非常棒,還是值得一看!

還有一本Dive into python
目前只有簡中版本
http://www.woodpecker.org.cn/diveintopython/

小弟有把簡中直接轉換為繁中,因不同軟體轉換,有兩版,但內容相同,用語為大陸用語,要適應一下
http://140.127.138.72/~billy3321/files/Dive_into_Python_zhTW_ver1.pdf
http://140.127.138.72/~billy3321/files/Dive_into_Python_zhTW_ver2.pdf

另外請大家多多注意,今年四月台灣O'reilly還會出版另外一本書,是關於Python在Linux/Unix系統管理上的應用
對於IT人員應該很有幫助!
http://www.oreilly.com.tw/product2_c.php?id=a247

台北好像有開過相關課程

是由Thinker大大講的

http://edu.jollen.org/2008/01/97c036-python-24hr.html


Blog的話

電腦做什麼事
http://pydoing.blogspot.com/
Victor 易記學 程式設計教學 Python tutorial
http://ez2learn.com/index.php/python-tutorials

不才小弟的blog偶爾也會有Python文章
雨蒼的終端機
http://billy3321.blogspot.com/
http://www.dotblogs.com.tw/billy3321/

關於新版的Python3.0特色,可參考ping大哥寫的介紹
http://pingyeh.blogspot.com/2008/12/python-30.html
這也是為什麼Python很棒,為了改掉舊有不好的撰碼習慣,寧可大刀闊斧的不再向前相容!

關於安裝模組呢,可參考這篇使用easy_install從網路上抓下eggs package來使用
http://ez2learn.com/index.php/python-tutorials/advance-tutorials/175-easyinstall

Python跟據實做的底層語言不同,還有Jython IronPython等差異,不過目前大家可以先學CPython即可(也就是今天教的)
官方網站
http://www.python.org/

另外Python的web framework實做方面比較熱門的有Django和TurboGear
Google的(GAE)Google App Engine就是做Django的利器
http://code.google.com/intl/zh-TW/appengine/

由於GAE有些地方不是很方便,因此ericsk大大便幫他寫個油(Google App Engine Oil)
hychen大哥有到kalug講過,投影片在此
http://hychen.wuweig.org/?tag=gaeo

在GUI上面,則是今天有人提到的pygtk(適用Linux)
WxPython(Windows/Unix/Mac,此toolkit偏好原生API)等等
WxPython可看看這篇講義
http://yenjinc.info/?p=46
根據這篇網誌
http://garywlee.blogspot.com/2007/11/python-gui-toolkit.html
可以到裡面的連結去看看適合您需求的toolkit是那個

若您是新手的話,EasyGui似乎也是個好選擇。

這就是自由軟體的特色,選擇很多,所以多方嘗試也不錯!



7
Linux 討論版 / Lazyscripts 0.1rc1 release notes
« 於: 2009-04-26 22:58 »
原文網址: http://docs.google.com/Doc?docid=ajd93zkqrjq5_310d9bnpjrb

Lazyscripts 0.1rc1 release notes

經過開發者數個禮拜的修改後,Lazyscripts linux 懶人包 0.1 rc1 終於釋出囉!此版本主要是針對 0.1alpha 釋出後的回饋及開發者內部討論後修改而成的版本,新特性如下:

新特性

穩定版本的 scripts

感謝scripts的開發者billy3321 (雨蒼)、Aminzai、mrmoneyc,目前scripts已經有一個穩定版本的分支,而這也將成為穩定版本的懶人包所用的scripts pool。

更快的啟動速度

感謝 Yuren, Hychen,經過源碼重整後,現在 Lazyscripts 的啟動速度已經比 alpha 版本快上許多。

解壓縮、雙擊的簡易安裝方式

感謝 Yuren 將原本 Lazybuntu 的簡易安裝方法也整合到 Lazyscripts 來,目前 Lazyscripts 也提供了相同的簡易安裝方式。只要下載、右鍵選擇解壓縮、雙擊執行 Lazyscripts 即可。

可下載不同分支的scripts pool

感謝 Hychen,現在 Lazyscripts 支援下載不同分支的 scripts pool。

如何安裝

Lazyscripts 需要網路才可以使用,請務必確認您執行以下步驟時有網路連線可用。現在 Lazyscripts 提供與 lazybuntu 相同的簡易安裝方式。請先至以下網址:

http://code.google.com/p/lazyscripts/

右邊有個 Featured downloads 的區塊,請依照你的 CPU 架構選擇下載。如果你不知道你的 CPU 架構,請選擇 i386 版本。

下載完畢後,開啟檔案管理員到你下載的目錄,並且對壓縮檔按下右鍵,並且選擇『在此解壓縮』。解壓縮完畢後,會有一個 lazyscript 執行檔,雙擊執行即可。

如果您是第一次使用 Lazyscripts,必需要等待一段時間讓 Lazyscripts 安裝必要軟體,請耐心等候。待 Lazyscripts 使用介面出來後,即可勾選你需要的功能,並且按下確定執行。
回報問題

我們現在採用 Google Code 作為問題回報的平台,請至以下網址進行問題回報。

http://code.google.com/p/lazyscripts/issues/list


參與開發

如果您對 Lazyscripts 有興趣,歡迎貢獻任何形式的幫助!您可以在以下網址取得我們的最新的主程式源碼:

http://github.com/hychen/lazyscript/tree/master

如果您對開發 scripts 有興趣(即 Lazyscripts 中提供的功能),請至以下網址取得最新源碼:

http://github.com/billy3321/lazyscripts_pool_debian_ubuntu/tree/master

聯絡我們

目前我們並沒有統一的聯絡窗口,不過這邊有一份開發者聯絡清單(依照 email 英文字母排序):

Billy3321 <billy3321 -AT- gmail.com>
Aminzai <lagunawang -AT- gmail.com>
mrmoneyc <moneyc.net -AT- gmail.com>
Hychen <ossug.hychen -AT- gmail.com>
PCMan <pcman.tw -AT- gmail.com>
Yuren Ju <yurenju -AT- gmail.com>

如果您想見到開發者本人,親自遞送臭蟲給開發者,您可以到以下聚會找到我們。

Kalug

KaLUG 是許多Lazyscripts懶人包開發者參與的聚會,包括Aminzai, Billy3321, Hychen, Yuren 都是此聚會的成員,而現在 Aminzai 與 Billy3321 (雨蒼) 會在這個聚會出現,如果您有臭蟲想親手遞交,請至 KaLUG 聚會 (高雄)。KaLUG 通常在每週的第三個禮拜聚會。

HackingThursday

Hacking Thursday 是一個台北由 Mat 發起的活動,Hychen 跟 Yuren 都會在這個活動中出現,歡迎當面遞送臭蟲。目前此聚會將在民權西路站的101 cafe 舉行,在每個禮拜四的七點半後開始。相關的資訊請參考聚會討論區 。

8
Linux 討論版 / Lazyscripts新圖示票選活動!
« 於: 2009-04-15 01:14 »

#Lazyscripts新圖示票選活動 開跑摟!!!
請大家踴躍投票 謝謝~~
http://sites.google.com/site/lazyscripts/logovote

9
Linux 討論版 / Fedora剛開機無法使用yum安裝
« 於: 2009-04-13 16:50 »
各位朋友好,小弟日前發現Fedora剛開機的時候,會執行
/usr/share/PackageKit/helpers/yum/yumBackend.py
導致yum無法安裝。就算找到pid砍掉,還是會跑出來

目前只能強制用rm /var/run/yum.pid的方式移除
請問有沒有其他方式可以正常結束此行程呢?


10
各位朋友大家好
小弟最近想把scripts的程式放到fedora上面跑,
希望能做到
1.偵測桌面環境為gnome或kde
2.可用gui方式切換使用者權限為root (ex: gnomesu gksu...)

請問這兩個功能要如何做呢?有沒有在系統原先安裝狀態即可做到的方式?

11
Python是個重視可讀性的scripting language,好讀,好寫,方便多人協同作業,因此深受Google NASA Youtube等公司或組織所喜愛。由於日前SA@Taipei二月場反應熱烈,且SA@Tainan四五月份又即將針對Python開放一系列課程,故申請開版,希冀能藉由Python版面,讓Python新手以及學園內學習Python的好手能夠與大家一同學習Python ;D

開版後,Python程式設計討論區之版主將由 victorlin與billy3321擔任

參考活動:
http://phorum.study-area.org/index.php/topic,55341.0.html
http://phorum.study-area.org/index.php/topic,55852.0.html

Victor 易記學 程式設計教學:
http://ez2learn.com/

以上遵照開版規則, 由2009/3/26 開始投票, 為期30天

12
原文網址:
http://www.openfoundry.org/component/option,com_content/Itemid,299/id,2004/task,view/

詳細的課程資訊,表列如下:    

2009.04.11(六)     Python 入門 - Python tutorial - 第一梯 (講者:黃宇新)
2009.04.12(日)     Python 入門 - Python tutorial - 第二梯 (講者:黃宇新)
2009.04.25(六)     Python socket programming -初階 (講者:焉德葳)    
2009.04.26(日)     Web Framework- Django -初階 (講者:陳建玎)    
2009.05.02(六)     Python socket programming -進階 (講者:焉德葳)    
2009.05.03(日)     Web Framework- Django -進階 (講者:陳建玎)
2009.05.16(六)     Python socket programming -高階 (講者:焉德葳)    
2009.05.17(日)     Web Framework- Django -高階 (講者:陳建玎)  

時間:9:00~17:00

報名網址:
http://whoswho.openfoundry.org/workshop.html

活動地點:
巨匠電腦高雄自由分校

http://www.pcschool.com.tw/school/school_pic.asp?b1=qq&sts=&page=1&DEPT_AREA=15&aaa=HM++
http://www.pcschool.com.tw/updimg/dept/自由分校.jpg

活動費用:免費

13
緣起:
余光中教授曾對「知性」分析為兩端:一是知識,一是思考。有知識而無見解,只是一堆死資料;思想得多而知識不夠,又淪於空想。有幸得以在短暫的人生中,以半數的光陰透過程式設計,賦予冰冷的硬體一些新的生命,背後強大的工具,正是
C 程式語言,而廣泛接觸了多樣的作業系統與硬體架構後,更覺探索資訊系統「知性」的可貴。如何將「知識」與「思考」融合,並投射於以豐富面貌出現的資訊系統,正是本議程所要探討與分享的。

建議聽者背景: (任一)
(1) 已熟悉 C 語言程式設計者,企求探索多元的開發
(2) 粗淺知曉 C 程式語法,對現實資訊應用的知性,有高度興趣者
(3) 具任何一種程式語言之實務經驗者

講題簡介:
C 語言雖然是一種通用的程式語言,但本質上是為了開發 UNIX
作業系統而提出,我們非但不可忽略這個事實,反而要適度從硬體的觀點去反思軟體設計,是的,透過 C
語言這個「不軟不硬」的美妙語言。本議程將以物件導向與資料表示等題材,探討遊覽 C 語言開發的知性美。

預定提綱:
(1) 海角 C 語言 -- 被遺忘的淒美故事
(2) 高度物件導向的 C 語言
(3) 窺探 C 程式、尋訪 C 程式的資料表示、奇妙的 pointer 與 macro
(4) C 語言與硬體擦出的火花,呈現 C 設計的彈性

軟硬體規格:x86/IA32, C99, gcc 4.3.3, Ubuntu Linux 9.04, kernel 2.6.28

講者簡介:
Jim Huang (黃敬群),慣用網路暱稱為 "jserv",熱血工讀生,家境貧困而買不起套裝軟體,所以習慣動手寫程式解決自身需求。自
1999 年開始對自由軟體發展作貢獻,於 2005 年起提供以自由軟體為基礎的技術資訊服務,涉及手機、GPS
導航、數位電視、電子廣告系統、機器人等嵌入式系統設計。

參考資料:
(1) 我是軟體 -- 那些處理器教我的事
http://blog.linux.org.tw/~jserv/archives/002064.html
(2) 深入淺出 Hello World
http://jserv.sayya.org/helloworld/
(3) 快快樂樂學 GNU Debugger (gdb)
http://blog.linux.org.tw/~jserv/archives/002043.html

時間:3月28日13:30:00-17:00

地點:台南市社區大學 3F 305教室

台南市社區大學網頁:
http://www.tncomu.tn.edu.tw/
地址:
台南市公園路750號
http://www.tncomu.tn.edu.tw/modules/tinyd5/content/map.gif

http://registrano.com/events/satn09031

14
內容簡介:
除了技術能力,你還要加強甚麼
1.引言:為何資訊部門地位日益低落
   a.外包風氣盛行
   b.技能門檻日益降低
   c.組織內角色過於被動:   

2.你不要犯的幾種錯誤:
   a.陷入規格框架
   b.不清楚公司運作
   c.只專注於資訊技能
   d.說明過程,卻忘了結果?
   e.滿口術語
   f.制式回答

3.資訊人的角色:
-->討論

4.其他能力 :
   a.觀察力
   b.思考力,
   c.溝通技巧

講師簡介:
Roger Cherng

前職:上市公司營運長,負責企業購併,CRM系統導入,新事業開發建置
現職:科技公司應用加值處負責人
專長:資料庫行銷,專案管理,預算控制,組織再造,組織整併,教育訓練

時間:3月7日14:00:00-17:00

地點:台南市社區大學 3F 305教室
台南市社區大學網頁:
http://www.tncomu.tn.edu.tw/
地址:
台南市公園路750號
http://www.tncomu.tn.edu.tw/modules/tinyd5/content/map.gif

報名網址:
http://registrano.com/events/satn0903

15

http://excess.org/article/2008/07/ogre-git-tutorial/

有興趣玩玩版本控制系統的可以看看喔!

16
主題內容簡介:

入門篇,大約50分鐘左右,如果你有管過EMC或NetApp,這一段可以不用聽,:
1. DAS
2. NAS
3. SAN
4. RAID
5. 金錢上的概念
6. 這些東西的關係

觀念篇,大約50分鐘左右:
7. 使用上的分界點
8. 需求在哪邊
9. SWAT分析
10. 該買怎樣的東西
11. VTL是什麼
12. 異地備援可以吃嗎

講演者簡介:

黃立夫,David.Huang

最後一任TCLUG連絡人,最常拿來說嘴的事情,就是把TCLUG在手上結束掉,結果數年之後聽到人家抱怨,為什麼有TNLUG,沒有TCLUG,自己心想我們在燒命搞TCLUG的時候你們在哪裡,XD。
歷任過哈利波特產品維修人員,NB維修人員,也玩過PDA,現在看到3C就像看到裸體的女人,一點興趣都沒有。花過太多學費,現在在做商用網路視訊設備的FAE,不過發覺好像沒有搞頭[昏],之前作儲存軟體的QA工程師,參與過規格的制定到產品的Release,ARM、MIPS、PowerPC等NAS平台都測試過.

實際講授時間約100到150分鐘。因為我也不知道聽者的層次的分布,所以還是從頭開始講,希望以對話的方式來做講演,所以時間的分段沒有強制性,基本上就是滿50分鐘就休息十分鐘,休息完繼續講。個人保留修改講演內容的權利,也等於提供聽者修改講演內容的機會,XD
時間:2月7日下午14:00~17:00

地點:台南崑山科技大學 資訊科技大樓 5F I3502教室; 台南縣永康市大灣路949號

地理位置/交通路線:
http://www.ksu.edu.tw/introduction/images/location.jpg
校園配置
http://www.ksu.edu.tw/introduction/images/campus_1024.jpg

報名網址
http://registrano.com/events/satn0902


17
活動/聚會區 / 酷學園的IRC頻道
« 於: 2008-12-22 13:04 »
大家好!這次舉辦群英會的同時,我們這些宅鬼也在freenode IRC上面創立了一個頻道
大家有事沒事就可以掛上來聊聊天喔!
不過由於IRC主要是掛的,因此不一定一說話馬上會有人回,請稍待 :)

底下是簡單的教學與軟體介紹:

如果您使用Windows,請先下載聊天軟體
http://www.silverex.org/news/ #X-Chat 2
這是免費版的。

mac的話,推薦coversation這套軟體。
http://homepage.mac.com/philrobin/conversation/

如果您使用linux的話,可以安裝X-CHAT
或是irssi,搭配screen(文字介面)
http://lzy-blah.blogspot.com/2007/08/screen-irssi-irc-q.html

如果您想要使用網頁來聊天
可以利用mibbit來連線
http://www.mibbit.com/chat/
如果您想要懶人包,點選以下連結並使用您要的暱稱即可連上來聊天  ;D
http://embed.mibbit.com/?server=irc.freenode.net&channel=%23study-area&noServerNotices=true&noServerMotd=true&nick=sa%3f%3f%3f%3f



這邊提供給使用其他安裝版本的教學。

軟體下載安裝之後選擇連接上irc.freenode.net

如果沒有連接的話,就用指令連接

引用
/connect 伺服器位置

進入伺服器以後,首先就是更改您的暱稱

引用
/nick 您想改的暱稱

再來呢,指定您要加入的頻道

引用
/join 頻道名稱

進去以後就可以開始聊天啦!
注意的是,如果您要跟一個人說話,可以這樣打

引用
要說話的對象: 要說的話

比如說我看到CYJ,想跟他說hi,我會輸入

引用
CYJ: hi

大家就會看到

引用
billy3321: CYJ: hi

如果想耍可愛搞表情符號,可以使用/me

引用
/me 想做的表情符號

比如我想離開一下,我就可以打

引用
/me 暫離

大家就會看到

引用
billy3321* 暫離

如果希望每次登入IRC的暱稱都相同,不會有人把這暱稱搶走
可以輸入

引用
/msg nickserv register 你設定的密碼

以後每次登入,只要輸入

引用
/msg nickserv identify 之前設定的密碼

這樣就可以使用原本的ID囉!

如果看到的文字是亂碼,
請把文字轉碼設定改為utf8,就不會有亂碼了
這個設定各個工具方法不同,因此請大家爬爬文了

這邊提供一下網路上找到的xchat設定介紹   
   1.  第一次啟動會開啟網路清單,在網路底下的啟動時跳過網路清單可以打勾,代表以後啟動不要自動跳出網路清單視窗。
   2. 暱稱(N)是你要使用的暱稱(注意:僅能使用英文暱稱),聊天的時候會用到, 使用者名(U)也請輸入一樣的名字。
   3. 接著,按下右邊的新增(A)來新增伺服器位置。
   4. 按下去之後,網路清單上會出現一個 "新網路",選它然後按下編輯(E)來修改伺服器位置。
   5. 進去編輯視窗後,按下編輯(E),然後輸入: irc.freenode.net
   6. 底下的只連接到選取的伺服器表示以後只會連線到這個伺服器。
   7. 連接底下的選項啟動時自動連接到此網路 -- XChat2啟動時自動連線到這個伺服器,可以依照個人喜好來勾選。
   8. 輸入要加入的聊天室(H):自動連線到哪個頻道,請記住,頻道名稱前要加上#,請輸入#Study-area
   9. 字元設定: 選擇編碼,請選擇 UTF-8
  10. 完成後,按下關閉(C),然後再按下連接(O),就可以跟我們聊天囉!

http://pcman.sayya.org/irc/
http://www.pcfit.idv.tw/nwn2/index.php?option=com_content&task=view&Itemid=1&id=63







18
活動/聚會區 / Debian TShirt 2009v1
« 於: 2008-12-12 22:57 »
Debian的社群今年也將製作T恤!
這次除了T恤外,還會附上台灣各地的社群簡介
非常推薦大家購買喔!

以下是來自他們首頁的說明:


前言:

又經過這好一段時間了,不知道大家有沒有想要再作一件新的T恤呢?

慶幸當初的廠商還活著! 還持續提供少量訂製的服務. 小弟決定發起一個小小的活動:

"Debian、T恤、秀台灣"

我們將公開徵稿, 並於 2008 年底將T恤團製付印。 請大家一起來集氣,催生青春、熱血、陽光的圖案喔。

讓我們在跨年夜時,能穿出新的自信,迎向美好的閃光, 喔..不, 迎向美好的一年~


嚮應/參加方式:

最簡單的方式, 就是.....

"~~買一件來穿吧~~"

或是請幫我們把這消息傳達給你身邊可能感興趣的朋友們,感恩!

參與志工:

   1. Mat <matlinuxer2@gmail.com> 負責人,包括送製、送件、收件、及各項實體執行
   2. aguai <aguaithefreak@gmail.com> 行銷,設計、平面創作稿件,BBS Promotion
   3. honkia <honkiaa@gmail.com> 平面創作工作者, T恤圖的作者
   4. qerter <qerter@gmail.com> 高雄地區各項聯絡及實體執行
   5. C.Y.J <quillpapago@gmail.com> 台南地區的自取發送與聯絡
   6. Jesse <jesse@debian.org.tw> 中壢地后的自取發送與聯絡
   7. Layla <layla@ubuntu.org.tw> 台中地區的自取發送與聯絡

香港地區:

    Sammy Fung <sammyfunghk@gmail.com>  香港地區的自取發送與聯絡


活動時程:

   
    匯款(連同登記)截止日  12/15 ( 一 )
    送印             12/16 ( 二 )
    預計收件      12/23 ( 二 )
    分發寄送      12/24-31

衣服款式
http://sites.google.com/site/debiantshirt2009v1/variant
衣服預覽
http://sites.google.com/site/debiantshirt2009v1/preview


訂購網址

http://sites.google.com/site/debiantshirt2009v1/Home

19
2008 Ubuntu Release Party 台南場

主辦:
  Ubuntu-tw 和 SA@台南
活動日期、地點:
  2008/11/29(六) 11:30~14:30 18巷庫肯花園
  台南市東區大學路18巷10號 (肯得基旁邊)
費用:
    僅酌收餐費
    台南場
    250 元  (含午餐及飲料)
自備(不一定,視個人需要):
  notebook、電源線
報名:
  台南場
     請在報名系統內鉤選您要的餐點及飲料,到現場報到再繳費即可
     為加速出餐速度及便於統計,報名期限為11月24號.
     台南場基於場地因素人數上限為50人,請把握機會,儘快報名!
活動目的:
  ubuntu release party & installfest
參加對象:
 1. 從來沒用過有興趣學習 ubuntu 的夥伴
 2. 有興趣與大家交流 ubuntu 的夥伴

說明:
還記得八月份在coscup場子裡大家意猶未盡的討論和分享,整個大會場鳥獸散就剩這間教室裡人潮滿滿嗎?
就算大家已經聽了一整天,晚餐也吃飽了,雨也已經停了,大家卻被台上雪兒組同好們的議程吸引著,討論著直到將近  晚上10點?
10月底Ubuntu Intrepid Ibex 就要釋出了!
為了慶祝這特別的時刻,Ubuntu Release Party於台北場後即將在年底推出台南場次的活動啦!
想知道這隻大無畏的羊有什麼不同嗎?
想知道這段時間中其他人又玩出什麼新點子嗎?
還是您想知道到底這套火紅的企鵝作業系統有什麼吸引人的地方呢?
就讓我們期待中待著這場盛會吧! 
我們歡迎每位Ubuntu使用者的蒞臨,也歡迎從未使用過Linux的朋友來參加這個特別的慶典。
現場將會有許許多多來自不同地方,卻使用同樣一套Linux作業系統的朋友們聚集在一起,大家會分享許多在使用上的經驗,並熱心的幫助每位朋友完成安裝。
ReleaseParty中最主要的活動就是慶祝,所以在吃吃喝喝之中,還可以認識許多特別的朋友唷.
歡迎大家攜帶您的筆電來參加這場盛會!
本次安裝慶典,歡迎攜帶你的notebook或隨身碟由專家教導如何在你的電腦上安裝設定 Ubuntu,並提供關於中文化支援的最佳建議。
此次一樣由 Ubuntu@TW社群朋友們分享 Ubuntu 的相關議題,詳情請參考各場議程。如果您要帶電腦來安裝,請務必備份資料,我們無法保證您的軟硬體在安裝後是否安全無虞,如果您還有關於 Linux 的任何疑難,不論是 Ubuntu Linux 或是其他 Linux,都歡迎一起到場來尋求解答。 :)


議程:
台南單議程場次
11:00     報到&開放進場
11:30     開場
11:40     介紹Ubuntu                            (Ijs)
12:10     企鵝不會暈到死                       (雨蒼)
12:40     五秒鍾內開機完畢的 Ubuntu    (penk)
13:10    「satsu - 征服你的結石」         (freesamael)
13:40     交流&裝機
14:30     散場

注意事項:
  1.為方便人數統計及場地分配,希望每位參加的朋友在報名期限完成報名.
  2.由於考慮參加人數眾多,希望方便的朋友自行攜帶延長線,以免電源不夠多。

報名網頁:http://registrano.com/events/ubuntu-satn

20
Linux 討論版 / Gnome設定工具:GConf 簡介
« 於: 2008-10-23 18:47 »
昨晚修改一些bash shell script的時候,發現這個工具可以用命令列的方式修改gnome裡面的一些設定,蠻方便的。因此就來稍微寫個簡介。

gconf的運作方式類似Windows上面的登錄檔,使用一個具有目錄結構的視窗來編輯一些桌面環境的偏好配置。底下以ubuntu為例,簡單介紹一下gconf的一些功能以及配置方式。

gconf的運作包含以下幾項:
gconf各項設定值所儲存的文件
gconfd-2:背景執行的deamon
gconftool-2:命令列中的設定程式
gconf-editor:圖形化的gconf設定程式

gconf的文件路徑保存於/usr/share/gconf/default.path此一檔案中,可概略分為force settings, user performances, 以及system defaults 。force settings表示這些設定使用者不能變動,user performances則代表是使用者可以變動的。而系統的預設值則存於system defaults裡面。

gconf有一個圖形化介面的編輯器,是為gconf-editor。輸入gconf-editor即可用簡單易懂的方式來修改與存取gconf設定。



從上圖可以簡單的看到,gconf裡面主要有四個資料夾:apps、desktop、schemas、system。簡單描述如下:

apps:
    主要是放各種在gnome環境下運作的應用程式偏好設定,例如nautilus、evolution等等。
desktop:
    桌面環境的配置,諸如background、font_rendering、interface等等。
system:
    關於系統方面的配置,裡面可以設定dns、proxy、samba等。

schemas:
    主要放置其他設定值的資料文件,存取與設定方式和其他三者不同。裡面的資料夾apps、desktop、system剛好就是其他三個資料夾,其中的目錄樹也幾乎相同。schemas所儲存的值又可細分為設定鍵名稱(key name)、設定鍵擁有者(key owner)、簡短說明(short description)、詳細說明(long scription)。

schema檔案存放於/usr/share/gconf/default/裡面,以schemas結尾的就是schema的檔案。
schema檔案的內容舉例如下(以apps_nautilus_preferences.schemas為例,經過簡化):

引用
< gconfschemafile> 
  < schemalist> 
    < !-- Keep the defaults in sync with the emergency fallbacks 
         in nautilus-global-preferences.c --> 
    < !-- General preferences --> 
    < schema> 
      < key> /schemas/desktop/gnome/file_views/show_hidden_files< /key> 
      < applyto> /desktop/gnome/file_views/show_hidden_files< /applyto> 
      < owner> nautilus< /owner> 
      < type> bool< /type> 
      < default> false< /default> 
      < locale name="C"> 
         < short> Whether to show hidden files< /short> 
         < long> 
          If set to true, then hidden files are shown in 
          the file manager.  Hidden files are either dotfiles or are
          listed in the folder's .hidden file. 
         < /long> 
      < /locale> 
      < locale name="zh_TW"> 
         < short> 是否顯示隱藏檔案< /short> 
         < long> 如設定為‘true’,所有隱藏檔案都會在檔案總管中顯示出來。所謂隱藏檔案即是任何第一個字元為一點‘.’的檔案,或者在某個資料夾的 .hidden 檔案內容之中。< /long> 
      < /locale> 
    < /schema> 
  < /schemalist> 
< /gconfschemafile> 

< locale name="zh_TW"> 指定了當系統的預設語言($LANG環境變數)為zh_TW時應該顯示的說明。

底下這兩行則代表了schema在GConf中的所在位置,以及對應到哪個值。
< key> /schemas/desktop/gnome/file_views/show_hidden_files< /key> 
< applyto> /desktop/gnome/file_views/show_hidden_files< /applyto> 

如果我們用gconf-editor去檢視/desktop/gnome/file_views/show_hidden_files這個值,就可以發現以下的說明:

引用
設定鍵說明
設定鍵名稱: /desktop/gnome/file_views/show_hidden_files
設定鍵擁有者: nautilus
簡短說明:  是否顯示隱藏檔案
詳細說明:  如設定為‘true’,所有隱藏檔案都會在檔案總管中顯示出來。所謂隱藏檔案即是任何第一個字元為一點‘.’的檔案,或者在某個資料夾的 .hidden 檔案內容之中。

剛好可以對應到我們剛才在schema檔案裡面的設定。


如果要新增設定鍵的話,在空白處按下右鍵選新增:



關於鍵值的設定,有分為整數(int)、邏輯值(bool)、字串(string)、浮點數(float)、以及清單(list)。若新增的為清單,則內容均需固定為整數、字串、邏輯值、浮點數的一種。

目前視窗化的gconf-editor中仍未找到新增資料夾(directory)的功能。


再來介紹文字化的編輯工具gconftool-2。gconftool-2可以在命令列環境中配置桌面環境,並且可以用於shell script中進行快速大量配置。

引用
gconftool-2 [-?] [-?|--help] [--usage] [-s|--set] [-g|--get]
        [--set-schema] [-u|--unset] [--recursive-unset] [-a|--all-entries]
        [--all-dirs] [--dump] [--load=STRING] [--unload=STRING]
        [-R|--recursive-list] [--dir-exists=STRING] [--shutdown] [-p|--ping]
        [--spawn] [-t|--type int|bool|float|string|list|pair] [-T|--get-type]
        [--get-list-size] [--get-list-element]
        [--list-type=int|bool|float|string] [--car-type=int|bool|float|string]
        [--cdr-type=int|bool|float|string] [--short-desc=描述] [--long-desc=描述]
        [--owner=擁有者] [--install-schema-file=檔名] [--config-source=來源]
        [--direct] [--makefile-install-rule] [--makefile-uninstall-rule]
        [--break-key] [--break-directory] [--short-docs] [--long-docs]
        [--get-schema-name] [--apply-schema] [--unapply-schema]
        [--ignore-schema-defaults] [--get-default-source] [-v|--version]

底下列出一些常用的命令參數

-s, --set          設定特定key的value並且同步之。需與 --type 一起使用。
-t, --type=int|bool|float|string|list|pair  設定所欲存取的value type
-g, --get          顯示特定key的value。
-u, --unset        將鍵值還原為預設值(system defaults)。
-a, --all-entries      印出該目錄中所有鍵值。
--all-dirs        列出目錄中的子目錄
-R, --recursive-list    遞迴列出目錄中的所有項目
--dir-exists=STRING   測試目錄是否存在。0為存在目錄,2為不存在。
--set-schema        設置 schema 的屬性,與 --short-desc(簡短說明), --long-desc(詳細說明), --owner(設定鍵擁有者), 和 --type 同時使用。
--makefile-install-rule    從GCONF_CONFIG_SOURCE這個環境變數所指定的路徑中安裝 schema 文件到 GConf 中。
--makefile-uninstall-rule  從GCONF_CONFIG_SOURCE這個環境變數所指定的路徑中移除schema 文件。
--direct         直接寫入到資料庫中,必須在gconfd這個服務沒有啟用的時候才能執行。
--dump     將資料庫內容一次列出來

舉例來說,如果要設定連線均使用位址為wwwproxy.xyz.com:3128的proxy,可以輸入

引用
$ gconftool-2 --type=bool   --set /system/gnome-vfs/use-http-proxy "TRUE"
$ gconftool-2 --type=string --set /system/gnome-vfs/http-proxy-host "wwwproxy.xyz.com"
$ gconftool-2 --type=int    --set /system/gnome-vfs/http-proxy-port "3128"
$ gconftool-2 --type=string --set /system/proxy/mode "manual"
$ gconftool-2 --type=bool   --set /system/http_proxy/use_same_proxy "TRUE"
$ gconftool-2 --type=bool   --set /system/http_proxy/use_http_proxy "TRUE"
$ gconftool-2 --type=string --set /system/http_proxy/host "wwwproxy.xyz.com"
$ gconftool-2 --type=int    --set /system/http_proxy/port "3128"

若是將

引用
$ gconftool-2 --type=string --set /system/http_proxy/host "wwwproxy.xyz.com"


改為

引用
# gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type=string --set /system/http_proxy/host "wwwproxy.xyz.com"

則是代表將這個值設定為強制(force settings)並寫入到/etc/gconf/gconf.xml.mandatory這個設定檔中。


針對schema的操作又不大相同了。

在前面說過,schema檔案存放於/usr/share/gconf/default/裡面,以schemas結尾的就是schema的檔案。而schema檔案裡面已經寫好匯入的gconf目錄,因此無須特別指定。

如果想要從特定檔案目錄匯入,例如家目錄中的.gconf資料夾匯入Test.schemas,則執行

引用
$ export GCONF_CONFIG_SOURCE="xml:readwrite:$HOME/.gconf"
$ gconftool-2 --makefile-install-rule Test.schemas

如果要自己設定,則執行

引用
$ gconftool-2 --set-schema /schemas/apps/kiba/launchers/file  --long-desc "這邊輸入詳細描述" --short-desc "這邊輸入簡短描述"
$ gconftool-2 --apply-schema /schemas/apps/kiba/launchers/file /apps/kiba/launchers/file

另外還有一個gconf-schemas的執行檔,可以對schema檔案做註冊或移除註冊的動作,不過實做方式目前仍不清楚。

引用
gconf-schemas --[un]register file1.schemas [file2.schemas [...]]


參考資料
http://www.gnome.org/projects/gconf/
http://www.ibm.com/developerworks/cn/linux/l-cn-gconf/index.html#5.GConf 命令行工具介绍
http://moosy.blogspot.com/2006/08/kiba-dock-on-sled-10.html
http://docs.sun.com/app/docs/doc/817-3909/6mjfjjvr6?l=zh_TW&a=view
http://www.linuxquestions.org/questions/linux-software-2/setting-firefox-gnome-and-other-application-proxy-globally-632478/

=================
本文同步發表於雨蒼的筆記本
http://billy3321.blogspot.com/
http://www.dotblogs.com.tw/billy3321

21
Linux 討論版 / SELinux初探心得
« 於: 2008-10-23 18:40 »
星期六聽了小州大哥講的SELinux後,發現SELinux真是個不錯的東西。
不過只要去Google一下SELinux,卻會出現這些東西:selinux關閉、turn off selinux 、stop selinux ...

因此小弟就在這邊將小州老師上課提到的重點,加上cdchen老師所寫的RHEL5系統管理寶典中的重點整合在底下。

之前Linux中關於檔案存取的權限處理,有幾種方法:

基礎的權限:

引用
[billy3321@localhost practice]$ ls -l
total 32
drwxrwxr-x  2 billy3321 billy3321 4096 Oct 13 15:33 directory
-rw-rw-r--  1 billy3321 billy3321   16 Oct 13 15:32 file
-rw-rw-r--+ 1 billy3321 billy3321   25 Oct 13 15:53 file_with_acl
-rwxrwxr-x  1 billy3321 billy3321   35 Oct 13 15:24 script
相關指令:
更改擁有者

引用
chown [OPTION]... [OWNER][:[GROUP]] FILE...

更改rwx設定

引用
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...

判斷方法:
首先判斷檔案的擁有者(user),擁有群組(group),以及其他人(other)。以這個方式來判別讀(r),寫(w),執行的權限(x)。在目錄上面則是讀取(r),修改(w),進入目錄(x)等方式。

附帶一提,檔案的刪除或更名是看目錄的w權限。在檔案系統中,目錄事實上只是一個文件,裡面列出了目錄含有的檔案名稱,以及該檔案的inode為何。因此刪除檔案,實際上就是去移除"目錄"文件裡面關於該檔案的資訊;更名檔案,則是更改該檔案的"檔案名稱"欄位。因此刪除與更名就是編輯並修改"目錄"這個文 件。而要可以編輯修改,就要擁有w屬性,因此檔案的刪除與更名,是看目錄的w權限。

延伸的權限:
Access control lists(ACL)

引用
[billy3321@localhost practice]$ getfacl file_with_acl
# file: file_with_acl
# owner: billy3321
# group: billy3321
user::rw-
user:sonnet77:rw-
group::rw-
group:users:r--
mask::rw-
other::r--

相關指令:
設定ACL

引用
setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file ...

檢視ACL設定

引用
getfacl [-dRLPvh] file ...

判斷方式:
讀取檔案時,權限判斷會由上往下依序讀取。因此判斷方式就會更改預設的判斷流程。
原本判斷順序是user > group > other ,這邊判斷順序就改為 user > user:sonnet77 > group > group:users > other 。

以上這兩種權限在判斷上,各位都可以發現,這種判斷方式幾乎都是以擁有者,擁有群組等來判斷存取與否。在行程擁有的權限上,則會看執行者身分或是該程式的擁有者與群組。

這種判斷方式是稱為Discretionary Access Comtrol(DAC)的方式,只要你是檔案擁有者,就擁有至高無上的權力;若你還是root的話,更可以任意存取任何檔案。

舉一個之前的例子,之前OuTian大大在HITCON有揭露一個Tomcat的漏洞。由於Tomcat須以root身分執行,並bind上80 port去listen,經由這個漏洞,Tomcat可以以root身分對檔案系統為所欲為,甚至去觀看/etc/shadow密碼檔案。這就是DAC機制很大的問題,只要入侵任何Deamon行程並獲取控制權,cracker就可以觀看/etc/passwd檔案進行下一步的入侵,甚至去尋找一些設定檔案。

後來有發展出一個機制,可以將deamon行程關在一個特定目錄中,稱為chroot。若是cracker入侵該行程,也只能在該目錄中活動而無法看到重要的系統檔案。不過chroot只針對某些行程有效果,不能防範來自其他行程的攻擊。

chroot執行方式:

引用
chroot NEWROOT [COMMAND...]
chroot OPTION


有鑒於這些設定已經無法因應目前的資訊安全要求,因此美國國家安全局(NAS)就在Linux中實作一個機制,稱為SELinux,利用資料庫查詢的方式來維護作業系統的安全。SELinux採用Mandatory Access Control(MAC)機制,會對所有的檔案、行程、用戶給予一個Security content,用戶端通過傳統DAC認證後,SELinux會進一步的去檢視Security content,並決定是否授與權限。SELinux後來在RedHat的支持下,得到了長足的進步,且收錄於2.6的核心之中。可再編譯時選擇是否將SELinux功能編入kernel之中。

下面就來簡介SELinux的運作機制及各項指令。

SELinux是由核心實作的功能,因此若是需要SELinux功能,要先確定核心中是否已將SELinux編譯進去。SELinux的啟動與否可由開機參數加以指定(selinux = [0|1])

SELinux的設定檔案可編輯/etc/sysconfig/selinux這個檔案,這是/etc/selinux/config之Symbolic Link。其中含有兩種主要的設定:

1.SELinux執行模式(SELINUX=STATUS),可分為強制(enforce)、寬容(permissive)、以及停用(disable)。除了停用、啟用需重開機外,強制與寬容模式的切換可以setenforce來設定。要觀看目前執行模式則可以用getenforc以及較為廣域的sestatus來觀看。在強制模式中,只要SELinux不允許,就會無法執行;但在寬容模式中,只會將事件紀錄下來,依然允許執行。因此若是懷疑是SELinux造成的問題,可以將SELinux切換為寬容模式,若是依然無法執行,那麼問題就不是在SELinux上。

切換強制與寬容模式

引用
setenforce [ Enforcing | Permissive | 1 | 0 ]

觀看目前SELinux執行模式

引用
getenforce
sestatus [-v] [-b]

2.所使用的安全原則名稱(SELINUXTYPE=POLICY),可概分為targeted、strict、與mls。targeted保護常見的網路服務,為預設的policy。strict提供符合Role-based-Access Control(RBAC)之policy,而mls則提供符合Multi-Level Security(MLS)的policy。這些policy放置於/etc/selinux/以policy為名的資料夾中,只有在開機時會載入。

如果想要改變policy,就得要重開機,才能重新載入policy。如果更換policy,物件的security context也要重新產生,因此在重開機前一定要記得在根目錄下放置.autorelabel檔案,這樣所有的security context才會重新產生。為了避免在開機期間因為錯誤的security context導致開機失敗,請先將selinux的執行模式更改為permissive。如果忘記更改導致開機時的kernel panic,開機時對核心參數加上selinux=0的選項暫時性的關閉SELinux系統,待其產生完畢後,再一次的重開機以打開SELinux。

對於policy的檢視,有以下方法
檢視policy規則

引用
seinfo [OPTIONS] [POLICY_FILE]

搜尋policy規則

引用
sesearch [OPTIONS] [POLICY_FILE]

3.但是如果SELinux只有policy可以選擇,不是太沒彈性了?因此在決定好policy後,可以使用SELinux Boolean來變更一些細項。
比如說,大家最容易為SELinux困擾的一樣設定就是Apache的home_dir設定。
只要更改httpd_enable_homedirs這項SELinux Boolean,就可以允許Apache顯示各使用者的public_html資料夾了。

以下是一些設定管理SELinux Boolean的方式

顯示指定或全部的SELinux Boolean

引用
getsebool [-a] [boolean]

設定指定的SELinux Boolean

引用
setsebool [ -P ] boolean value | bool1=val1 bool2=val2 ...

4.在SELinux中,每個登入的使用者根據登入的方式不同,會由PAM子系統中的pam_selinux.so模組設定該使用者執行行程的security context。此後,除非特別要求,否則子行程預設會繼承父行程的security context。在檔案的部分,由rpm所安裝的檔案會依照儲存於rpm中的紀錄來設定security context,若是手動建立,則依照policy中所制定的security context來設定。另外,如果是cp(複製),會以新建檔案的方式重新配置security context,若是mv(搬移),則會保留。

針對security context的操作,有以下幾種方法

檢視帳號的security context

引用
id -Z

檢視行程的security context

引用
ps -Z

檢視檔案的security context

引用
ls -Z

變更security context

引用
chcon [OPTION]... CONTEXT FILE...
chcon [OPTION]... --reference=RFILE FILE...

修復security context,可修復來自套件的檔案

引用
fixfiles  [-F]  [  -R  rpmpackagename[,rpmpackagename...] ] [ -C PREVI-
       OUS_FILECONTEXT ] [-l logfile ] [-o outputfile ] { check  |  restore  |
       [-F] relabel | verify }"
fixfiles  [-F]  [-l  logfile  ] [-o outputfile ] { check | restore|[-f]
       relabel | verify } [[dir/file] ... ]

還原security context,可還原原先設定的security context。

引用
restorecon [-o outfilename ] [-R] [-n] [-v] [-e directory ] pathname...
restorecon -f infilename [-o outfilename ] [-e directory  ]  [-R]  [-n]
       [-v] [-F]

在開機時重新產生所有的security context

引用
# touch /.autorelabel

其他設定工具
圖形化的SELinux設定工具:

引用
system-config-selinux


了解了security context以及policy以後,我們就可以重新看SELinux究竟是怎麼運作。

當一個行程(object)去存取檔案(subject)時,Linux核心會先判斷先前提到的權限判定,若是通過了,就會進入到SELinux的判斷流程中。
1.以object與subject之security context,判斷policy中是否已有符合之規則。
2.若不符合任何規則,則傳回禁止;若符合規則,則查看規則為允許(Allow)或拒絕(Deny)。
3.若規則為拒絕(Deny),則存取失敗;若規則為允許(Allow),則存取成功。

以上狀況如果在enforce模式下,只有規則為允許者才可存取;若為permissive模式,所有被SELinux所拒絕的依然可以存取,只是會顯示錯誤訊息到log檔案中。

如果要檢視SELinux的錯誤訊息,可以看以下兩個檔案

引用
/var/log/messages
/var/log/audit/audit.log

由於audit.log較不易閱讀,因此SELinux有提供工具來轉換為適合人類閱讀的模式

引用
# audit2why < /var/log/audit/audit.log

另外也有圖形化的工具setroubleshoot,除了顯示deny的message以外,還會給予不少實用的建議。

引用
# sealert -b


如果好好的使用,SELinux將是個強大的工具,捍衛伺服器的安全。
以後大家不要在安裝完系統就關閉SELinux啦!

參考資料:
小州老師上課講義:
http://kenduest.sayya.org/blog/kenduest-data/2008/10/selinux_sa.pdf
http://kenduest.sayya.org/blog/kenduest-data/2008/5/kenduest-UNIX-selinux-2008-05-15.pdf
RHEL5系統管理寶典:
http://www.cdchen.idv.tw/mybooks/slbubooks/slbu202v1

=================
本文同步發表於雨蒼的筆記本
http://billy3321.blogspot.com/
http://www.dotblogs.com.tw/billy3321/

22
程式討論版 / 一個關於python入門的blog
« 於: 2008-10-09 14:26 »
這個blog介紹Python,寫的很不錯
http://pydoing.blogspot.com/
最近才發現到。blog主人希望大家可以給他一些回應
如果大家有任何想法請盡量回覆喔!

23
主題:SELinux初探

簡介:
SELinux是美國國家安全局為Linux設計的專案,目標是維護作業系統的安全。Linux kernel在2.6版之後亦將SELinux收錄其中作為作業系統安全性的最後一道防線。惟許多使用者不了解SELinux的功能,常常在架設網站時由於無法讀取或寫入檔案而將其關閉,甚為可惜。本講請來在各大Linux討論版不厭其煩為許多新手解答疑惑的kenduest大哥,讓kenduest大哥將SELinux的功能概略性的跟大家介紹一次。

講師簡介:
Kenduest Lee,一般朋友稱呼為小州,為自由的工作者。目前從事教育訓練與技術顧問等工作。
blog:
http://kenduest.sayya.org/blog/

時間:10月11日14:00:00-17:00

地點:台南市社區大學 3F 305教室
台南市社區大學網頁:
http://www.tncomu.tn.edu.tw/
地址:
台南市公園路750號
http://www.tncomu.tn.edu.tw/modules/tinyd5/content/map.gif

人數限制:60人

報名網址:
http://registrano.com/events/satn0810

附註:
本次活動會後,想要認識大家或是想一起聊天的朋友們,可以到庫肯花園來聚餐喔!
如果您要自行前往的話,請在六點左右到達庫肯花園。

庫肯花園地址:
台南市東區大學路22巷1號

http://www.ipeen.com.tw/shop/shop.php?id=38377

24
主題
萬年LDAP~基礎入門(以帳號管理為例)

簡介:
輕量級目錄存取協定(Lightweight Directory Access Protocol - LDAP),能將各種服務相關的資訊統合為單一的目錄,提供給所需的服務存取.
 
用於帳號的管理,是LDAP的應用之一,如果您曾因為手上有多台主機,而忙於再每部主機上做帳號的增減,產生帳號管理上的困擾,LDAP或許是一個可以參考評估的解決方案.

時間:
2008 年 9 月 6 日 (星期六) 14:00-17:00

講師簡介:
日京三子
酷學園版主群


地點:
地點:台南崑山科技大學 資訊科技大樓5F I3502教室; 台南縣永康市大灣路949號

地理位置/交通路線:
http://www.ksu.edu.tw/introduction/images/location.jpg

校園配置
http://www.ksu.edu.tw/introduction/images/campus_1024.jpg

報名網址:
http://registrano.com/events/satn0809

25

安裝上grub-gfxboot之後,裝軟體在重新設定initrd時,都會出現一串訊息,且之後安裝任何軟體都會出現錯誤訊息
茲將錯誤訊息節錄於下

引用
正在設定 linux-image-2.6.24-19-generic (2.6.24-19.41) ...
Running depmod.
update-initramfs: Generating /boot/initrd.img-2.6.24-19-generic
Not updating initrd symbolic links since we are being updated/reinstalled
(2.6.24-19.36 was configured last, according to dpkg)
Not updating image symbolic links since we are being updated/reinstalled
(2.6.24-19.36 was configured last, according to dpkg)
Running postinst hook script /sbin/update-grub.
[: 25: ==: unexpected operator
exec: 25: -a: not found
User postinst hook script [/sbin/update-grub] exited with value 2
dpkg:處理 linux-image-2.6.24-19-generic (--configure)時出錯:
 子程序·post-installation script·返回了錯誤號·2
dpkg:相依關系問題使得 linux-image-generic 的設定工作不能繼續:
 linux-image-generic 相依於 linux-image-2.6.24-19-generic﹔然而:
linux-image-2.6.24-19-generic 套件還沒有被設定。
dpkg:處理 linux-image-generic (--configure)時出錯:
 相依關系問題 - 仍未被設定
在處理時有錯誤發生:
 linux-image-2.6.24-19-generic
 linux-image-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)


此問題最重要的錯誤訊息於此:

引用
Running postinst hook script /sbin/update-grub.
[: 25: ==: unexpected operator
exec: 25: -a: not found
User postinst hook script [/sbin/update-grub] exited with value 2

因此問題是出現在/sbin/update-grub

輸入

# sudo vi /sbin/update-grub

將開頭的

#!/bin/sh

改為

#!/bin/bash

就可以了。

若仍有問題,繼續更改

# sudo vi /usr/sbin/grub-update

一樣跟上面一樣更改

這是之後的安裝畫面

引用
正在設定 linux-image-2.6.24-19-generic (2.6.24-19.41) ...
Running depmod.
update-initramfs: Generating /boot/initrd.img-2.6.24-19-generic
Not updating initrd symbolic links since we are being updated/reinstalled
(2.6.24-19.36 was configured last, according to dpkg)
Not updating image symbolic links since we are being updated/reinstalled
(2.6.24-19.36 was configured last, according to dpkg)
Running postinst hook script /sbin/update-grub.
You shouldn't call /sbin/update-grub. Please call /usr/sbin/update-grub instead!

Searching for GRUB installation directory ... found: /boot/grub
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
Searching for splash image ... found: (hd0,2)/boot/grub/splashimages/debblue.xpm.gz

Found kernel: /boot/vmlinuz-2.6.24-19-generic
Found kernel: /boot/memtest86+.bin
Updating /boot/grub/menu.lst ... done



問題解決!

26
議題:
PHP 程式設計 - 初階資訊安全

簡介:
LAMP 是由 Linux , Apache , MySQL , PHP 所組成並且非常火紅的伺服器組合。
在 PHP 愈來愈多人使用的情況下,許多程式設計師卻容易忽略資安的相關問題
我們利用一點時間,來淺談 PHP 程式設計師在撰寫Internet 服務時,常會遇到的一些基本資安概念。
本活動是一個適合對 PHP 已稍有認識,但對程式設計中安全性不知如何著手的程式設計師所設計的課程。
本次活動我們請來了PHP的認証講師-梁楓,以他多年的實務經驗為大家解說PHP上常見的攻擊手法,以及避免的方法。

講師簡介:
梁楓,Study-Area資深講師,PHP認証講師。

時間:8月30日14:00:00-17:00

地點:台南市社區大學 3F 305教室
台南市社區大學網頁:
http://www.tncomu.tn.edu.tw/
地址:
台南市公園路750號
http://www.tncomu.tn.edu.tw/modules/tinyd5/content/map.gif

報名網址:
http://registrano.com/events/satn080802

27
日前使用openSUSE 11.0,驚訝於他的tty1有背景。但其他tty就沒有相對應的背景,因此上網找資料想達成這個目的。
以下即為我找到的方法

openSUSE的文字背景,是bootsplash這個程式提供的功能。
這個程式主要提供開機畫面(silent),以及tty背景畫面。

該程式主要設定檔在/etc/splashy/config.xml
主題放在/etc/bootsplash/themes/資料夾中
預設主題為openSUSE,在其中的config資料夾中,存有不同解析度的config檔案。
但這些config檔案載入以後會秀出silent的畫面,也就是會出現開機畫面。
因此我們要對他作修改,讓他只含有background的設定。

可以先看/proc/splash檔案中的內容,了解splash運作的模式

引用
# cat /proc/splash

以bootsplash-1024x768.cfg為例
先將其複製成為console-1024x768.cfg,再將其中的設定作修改

引用
#cp bootsplash-1024x768.cfg console-1024x768.cfg
#vi console-1024x768.cfg

將不要的設定註解後成為以下的內容:

引用
version=3
state=1
#progress_enable=0
overpaintok=0


fgcolor=7
bgcolor=0

tx=20
ty=60
tw=994
th=708


jpeg=/etc/bootsplash/themes/openSUSE/images/bootsplash-1024x768.jpg
#silentjpeg=/etc/bootsplash/themes/openSUSE/images/silent-1024x768.jpg


#mnganim logo /etc/bootsplash/themes/openSUSE/images/logo.mng initframe logo silent center 512 384
mnganim logov /etc/bootsplash/themes/openSUSE/images/logov.mng initframe logov origin 0 2 2
#trigger "isdown" quit
#trigger "rlreached 5" toverbose
#trigger "login" toverbose
#trigger "rlchange 0" tosilent
#trigger "rlchange 6" tosilent


#progress_enable=1
#box silent noover 428 414 588 415 #ffffff10
#box silent inter 428 413 428 415 #ffffff80
#box silent 428 413 588 416 #ffffff80

註解掉的內容也可以砍掉XD
接下來只要執行
引用
#splash -u 1 /etc/bootsplash/themes/openSUSE/config/console-1024x768.cfg
就會在tty2加上背景囉
-u後面的0~5分別對應到tty1~6
如果要去除背景,執行
引用
#splash -s -u 1
就會去除tty2的背景
最後,在開機的/etc/init.d/boot.local中添加以下命令:

引用
#Use splash add backgroupd to tty 2~6
for ((s_num=1;s_num<=5;s_num++))
 do
        t_num=$((s_num+1))
        echo -e "Starting splash in tty $t_num"
        splash -u $s_num /etc/bootsplash/themes/openSUSE/config/console-1024x768.cfg
 done

#If splash failed to add background to tty 2~6, reset tty 1~5. If splash success to add backgroud, return success message.
if test $? -ne 0
then
        echo -e "Warnning!!!Splash failed to add background to virtual terminals. Reset all console now."
        for ((s_num=0;s_num<=5;s_num++))
        do
         t_num=$((s_num+1))
         echo -e "Stoping splash in tty $t_num"
         splash -s -u $s_num
        done
else
        echo -e "Splash add background to vitrual terminals seccessful."


開機過程中即會將TTY2~6附加上背景圖案囉!

如果您的openSUSE11.0開機沒有splash特效,請編輯/etc/sysconfig/bootsplash檔案,變更其中的值:
引用
THEME="openSUSE"
SPLASH="yes"

之後執行SUSEconfig應該就可以了

引用
# SuSEconfig

參考資料
http://www.linuxforums.org/forum/linux-newbie/45914-having-trouble-creating-custom-bootsplash-screen.html
http://unix-cd.com/vc/www/47/2007-10/8737.html

28
講題:Clutter:釋放 OpenGL 威力的新途徑
 
簡介:OpenGL 作為工業的繪圖標準,獲得巨大的成功,而我們身處的數位資訊社會,也廣泛引入影音多媒體技術的創新。甚至,移動數位裝置使用的硬體加速器效能日臻改善,已能在兼顧省電的情況下,透過
OpenGL(ES) 給予我們豐富的體驗,遑論資源豐富的 GNU/Linux 開放平台。本議程試圖探討 GNU/Linux 上,以
OpenGL 為基礎、活躍開發的開放原始碼函式庫 -- Clutter toolkit 的應用,透過其精簡的
API,去思量如何開發具有科技質感的使用介面。

預計涵蓋以下項目:
  . 2D/3D 繪圖基礎概念
  . GNU Linux 的 OpenGL / OpenGL/ES 概況
  . Clutter 的中心思想
  . clutter 核心概念: Actor tree - stage, parent/child, timelines, events 等
  . 快速建構具有科技質感的使用介面

講者簡介:
Jim Huang (黃敬群 / "jserv"),熱血工讀生,閒暇時投入新酷音計畫、Free Java、GNU GCC、XWindow
System,以及相關自由軟體的開發工作。
website: http://jserv.sayya.org/
blog: http://blog.linux.org.tw/jserv/

時間:
8月16日下午13:30~17:00

地點:台南崑山科技大學 資訊科技大樓 5F I3502教室; 台南縣永康市大灣路949號

地理位置/交通路線:
http://www.ksu.edu.tw/introduction/images/location.jpg
校園配置
http://www.ksu.edu.tw/introduction/images/campus_1024.jpg

注意事項:
  . 建議聽眾有 C 語言及圖形處理的基礎概念,方可得心應手
  . 預計於八月 12 日提供本議程的範例程式碼,請參與者報名時,務必提供正確的 email 聯絡資訊,以利工作人員事先寄送作參考
  . 講者本於知識無價的理念,無償作技術分享,但願能廣結善緣,歡迎參與者招待當地名產

參考資料:
  * Clutter toolkit - http://www.clutter-project.org/
 
報名網頁:
http://registrano.com/events/satn080801

29
題目:初探 python ‧ 一行文

簡介:
     這個題目分兩部份,其一是『初探 python』, 其二是『一行文』的部份。      

    『初探 python』 - 將會介紹這個程式語言的特性,以及目前廣為應用的部份。會有一簡短的教學,
藉此一窺 python 的能力,並提供一個學習的入門階。      
    『一行文』 - 則是研究探討 python 如何撰寫一行文程式。在 Unix 系統管理上常見的一行文程式,
常見如 sed awk perl 等工具利用輸出轉向導向 pipe line 等方式處理字串管理系統。而 python 又
如何在這方面提供施力點給予幫助。

對象:
1. 不知道 python 是何物的人。
2. 對 python 感興趣,想概要性瞭解的人。
3. 想知道如何寫一行 python code 的人。

課程內容:
一、初探 python   
     - 語言特性,應用面,殺手級應用。   
     - 教學文件,線上查詢手冊。   
     - 模組安裝查詢。   
     - 簡易入門教學。
二、Python 一行文   
     - Unix 一行文   
     - 各種一行文比一比   
     - python 如何一行文

講師簡介: lloyd huang 1998 年進入 Coventive ,目前在 IA 部門從事
embedded Linux的工作,是個好吃鬼,喜愛義式咖啡,最大的榮耀是曾經
擁有一台無敵的TP240,以及一群 KaLUG 的好朋友。

http://kalug.linux.org.tw/~lloyd/bblog/

時間:
2008年7月26日
下午兩點到五點

地點:
地點:台南崑山科技大學 資訊科技大樓 I3502教室; 台南縣永康市大灣路949號

地理位置/交通路線:
http://www.ksu.edu.tw/introduction/images/location.jpg

校園配置
http://www.ksu.edu.tw/introduction/images/campus_1024.jpg

報名網址:
http://registrano.com/events/satn0807

30
活動/聚會區 / 2008六月份 SA@Tainan 硬碟概論
« 於: 2008-06-13 22:36 »
簡介:
為什麼要分享這個主題?
硬碟是電腦裡很重要的一個零件,雖然價格不是太高,影響效能也不是很大,
但它裡面儲存著無價的資料,沒錯,資料是無價的!

網路上常常充斥的許多似是而非的錯誤觀念,
讓新手搞不清楚硬碟裡面的資料到底是怎麼回事,
為甚麼硬碟容量有限制?為甚麼資料會損毀?
多重開機該怎麼做?硬碟壞了該怎麼辦?
電腦的其他部份弄錯了,頂多花錢買一個新的,
但資料可不是花錢就能買回來的,
三個小時的硬碟概論,以新手最常弄錯的觀念來入門,
讓你輕輕鬆鬆瞭解硬碟的正確觀念。

對象:
1. 重視資料安全的人。
2. 多重開機的章節需有至少一兩次以上安裝 Windows 2000/XP 經驗。
3. 想進一步瞭解硬碟原理的朋友。

課程內容:
一、開機原理、分割區原理、檔案系統原理。
二、各種硬碟容量的限制,從 2GB 到 256TB 一次搞定。
三、簡述多重開機,讓你安全的悠遊於不同系統之間。
四、資料救援的正確步驟,硬碟損毀不再心慌。
五、開放問答各種硬碟相關的問題。

講師簡介:
三秒 threeseconds
三秒練功房 站長
http://www.threesecond.info/v2/modules/news/

日期:
2008年6月28日下午1時30分~4時30分

地點:
台南市社區大學 2F 電腦教室
台南市社區大學網頁:
http://www.tncomu.tn.edu.tw/
地址:
台南市公園路750號
http://www.tncomu.tn.edu.tw/modules/tinyd5/content/map.gif

報名網頁:
http://registrano.com/events/satn0806

頁: [1] 2