顯示具有 Other 標籤的文章。 顯示所有文章
顯示具有 Other 標籤的文章。 顯示所有文章

2012/05/07

Maragda: Running Linux from CD

zh-tw version of http://www.linuxjournal.com/article/4396

這個計畫在這邊描述更進一步的證明Linux是一個強有力且多樣化的系統。

我的大學中有幾台推車,上面放了電腦和錄放影機,並且同時接上一台投影機。它們有太多的使用者所以很難確保它們能夠正常的運作。這尤其在電腦上是如此;你永遠無法確定可以在硬碟上找到甚麼軟體。我決定利用投影機來介紹程式設計課程,透過它來展示給我的學生這些C的程  當然我想要使用Linux和它的相關程式設計工具來讓我的學生學習並讓他們知道Windows並非唯一的選擇。我的第一個想法是嘗試將Linux安裝在Iomega Zip 250MB 並列埠版本的機器上。接著幾天的工作後我達到這個目標。它需要一張磁片來開機,而且運作的速度還不錯。接著我重複了這樣的動作,這回我將Linux安裝到IDE介面的硬碟中,並且將其透過並列埠的外接盒接到並列埠上來安裝。這樣的方式消除了250MB的磁碟空間限制而且加速了Linux的執行速度。在這些的工作中我學習到,我自問,為什麼不在光碟上執行Linux呢?這將會更  此外,學生們也可以藉此機會開始學習如何使用Linux而不需要安裝在他們的電腦上。  最後的產品是一張可開機的光碟,所以你必須先設定讓你的BIOS可以從光碟機開機。如果你的BIOS不支援光碟開機,那有另一個解決方式:一張開機磁片也可以從光碟開啟Linux。事實上,一個軟碟機的開機映像檔也是光碟用來開機的檔案。安裝在光碟上的Linux軟體  第一種是全部安裝的。它包含了基本系統,印表機支援,X視窗系統,VGA 16及framebuffer的X伺服器,GNOME(或者你可以編輯.xinitrc並且將你喜歡的視窗管理員選擇起來),網路伺服器,編輯和排版工具(LaTeX,等等),Emacs,開發工具(make,egcs,等等),DOS/Windows的連結工具,郵件,WWW和新聞群組工具,和其他的套件諸如rhide,ssh支援和  第二個系列,我稱為Maragda教學版,僅安裝了部分的套件,有基本系統和X(使用fvwm2),包含完整的開發工具和其他的工具例如gv和rhide。完整版的Maragda需要至少64MB的記憶體,而Maragda教學版則需要32MB。也有第二種的完全版Maragda只需要32MB的記憶體,但不包含部分的工具例如Emacs或Netscape這類需要更多記憶體的軟體。在這兩個狀況中,都使用了相同的核心。它的版本是2.2.14,而且它支援了網路,framebuffer裝置,和loop-  一個問題是任何的系統都必須具備可攜性,以便來適應不同的硬體。最低限度下,滑鼠和X視窗必須能夠設定,接著是密碼,網路特性和其它方面。在Maragda的狀況中,它必須記得沒有辦法殘存設定,因為光碟是唯讀的。完整版的Maragda被預設支援PS2的滑鼠,及32bit的framebuffer顯示模式。網路使用3c59x(一張3Com的網路卡)的模組,並且識別為maragda.gnd.upv.es(192.168.0.1)。完整的Maragda有一個開放的方式讓你決定是否自行來設定。只要在主系統被掛載完成後,開機的程序會暫停並且要求一張格式化成ext2的磁片,在  如果你對這些檔案或者其他設定檔都不瞭解的話,那麼仍然有一點希望。你必須要繼續開機的程序並且用root登入。這張光碟會被掛載在/mnt/cdrom。在/mnt/cdrom/system/config-touch你會發現兩個描述檔(scripts)。執行Touch_all會建立系統中的所有檔案。接著執行你需要的設定工具(setup,xconfiturator或X中的control-panel)。最後執行Find_newer。它會將所有設定工具產生的設定檔找到,並且複製一份叫config的檔案到每一相對應的目錄./config。將這些檔案放到軟碟中。Maragda教學版限制更多。它不會向你要求放入  二、將所有的原始程式分別放至兩個大檔案上,ROOT.FS及WHOLE.FS;他們都應該要裝  三、開發一個開機的機制來自動偵測光碟機並且能夠找到在光碟上的ROOT.FS。接著他應該要能夠將ROOT.FS載入成為虛擬磁碟中(Ram Disk)並且準備將此當成根檔案系統(roo  你可以在光碟上找到這些目錄(和doc目錄在一起)。它們是我工作目錄的複製,你可以從那裡找到所有需要用來建立Maragda的東西。你必須將它們複製到一個至少有1GB空間的磁碟中。我必須要先指出,或許有些設備檔(在/dev下面的檔案)可能會在從ext2的檔案系統複製到光碟檔案系統(iso9660)的過程中變得不正確。這樣的狀況下,你必須要將這些檔案再從你的系統中置換成正確的。現在,我們來開始描繪這些有關建立的程序和這些描述檔的目的及主要的設定檔。如果你決定要自行建立一個屬於你自己的類Maragda系統,你應  圖一顯示主要的開機步驟。這裡主要的目的是要建立一張開機磁片好整合進入光碟中,讓光碟可以開機。開機磁片上的啟動程式我們選用syslinux。它可以用來將Linux從一個DOS格式的磁片中啟動,其中包含核心及壓縮過的啟始虛擬磁碟(initial RAM disk),此虛擬磁碟內容包含根檔案系統。所以我們需要一個核心及其可動態載入的模組。(目前只需要核心)。我將不會解釋如何編譯核心,但是將會告知哪些部分需要標記起來以便得到該有的支(你可以在doc/developer.html中找到我的核心設定檔)現在我們需要建立啟始虛擬磁碟(initrd),將根檔案系統在第一階段的開機中放入。最簡單的方式是從一張救援磁片中借得。但是我遵從"自己動手做"的原則。在boot/initrd這個檔案是我的虛擬記憶體的大綱。Init_initrd這個描述檔主要用來從原始程式中複製檔案。它建立目錄,複製一份裝置檔案到initrd/dev並且移植部分到initrd/bin。Initrd的大小一定要保持很小的狀態,所以你應該只留必要的執行檔在initrd/bin中。當你完成後,執行Make_initrd_fs_gz。它會建立一個檔案(Minix 的格式),將檔案複製到boot/initrd並且壓縮起來。現在你有了核心和一個啟始虛擬磁碟。接著,你應該利用syslinux產生一個可開機的磁片。Syslinux的設定檔SYSLINappend initrd=initrd.gz ramdisk_size=20480 vga=0x315這是指示開機啟動程式去載入啟始虛擬磁碟並且將兩個參數傳給核心告知它需要的虛擬磁碟大小和framebuffer的顯示模式。這個虛擬磁碟的大小應該根據ROOT.FS的大小來設定。最後,這張開機磁片要透過Write_syslinux_boot_floppy這個描述檔來建立。它會解開這個raw映像檔到磁片上並準備整合進光碟中。在這裡意義最大的是boot/initrd/linuxrc這個檔案(/linuxrc在啟始虛擬磁碟上),因為這個描述檔會再一開機時就被執行到。它會在這個階段執行主要的工作:'D 它會尋'D 最後,如果找到.FS的檔案它會將cdrom_dev寫入。這個檔案會在第二階段的開機過程中參考到。如果每件事情都完成後,開機的程序會繼續來執行在新的根檔案系統上的init。舊  這些檔案室透過在系統工作目錄的描述檔來建立,並且所有檔案都可以在那被找到,原始檔也在那。Cp_root是用來建立ROOT.FS,當然Cp_whole會建立WHOLE.FS。這兩個描述檔使用Make_fs來在一個檔案中建立檔案系統。ROOT.FS會包含那些需要寫入且無法存在於read-only的檔案系統的檔案及目錄。在ROOT.FS存在於虛擬磁碟時也是可以寫入的。困難的是如何找到真正需要放在ROOT.FS的東西。在幾次的嘗試後,我決定複製至少下列的目錄:bin,sb  對於那些沒有複製到的,會建立符號連結,指向WHOLE.FS掛載的目錄(/mnt/whole_fs)。此外,執行檔和函示庫都是unstripped(移除符號)來減少空間。而ROOT.FS的設定檔都在system/config。一當ROOT.FS從原始程式檔中被展開,system/config的檔案會寫入覆'D /etc/X11/X和/etc/X11/XF86Config用來設定X 'D /etc/hosts*和/etc/sysconfig/netwo'D /etc/rc.d/init.d/*,用來控制啟始的程序特別重要的是在system/config/etc/rc.d/rc.sysinit這個描述檔。它是透過init來執行的(第二階段的開機)。我修補過這個檔案為了完整的Maragda系統。它增加了在Maragda中/etc/fstab的幾行,為了用來映射光碟在哪,及WHOLE.FS在哪。記得這是透過在/initrd/cdrom_dev的linuxrc(第一階段的開機)來公布的  當然為了測試你的救援系統,你不需錄製成光碟。它應該可以簡單的透過LILO來開機,  當你已經學到,原始檔安裝程序是一個目錄,包含有完整安裝好的Linux系統。它可以是用來複製給ROOT.FS和WHOLE.FS檔案系統的原始程式,甚至可以用來安裝到硬碟或者到250MB的zip磁碟。Prepare_install(在系統工作目錄)描述檔是用來設定接收RPM套件。接著,你可以使用Install_rpm來將那些套件安裝到原始碼安裝的目錄。Install_rpm會從Red Hat 6.2的光碟中安裝套件(或者從任何地方,如果你修改它的話)。被安裝的套件名稱可以在system/RPM_lists找到。例如,base_inst會列出基本系統安裝用的套件。我是透過在Red Hat光碟上RedHat/base/comps的檔案來建立這個列表。如果你照著正確的順序來安裝套件(如在Install_rpm中顯示的),那他們在安裝中應該不會有問題。Install_rpm也會報告出哪些套件沒有被安裝。在base_inst的狀況中,它會建立一個base_inst_not_installed。只有部分的rpm會產生問題。但是如果你告訴Install_rpm將base_inst_not_installed中的套件安裝進去,最後還是會被安裝進去。你可以在http://navel.eugan.upv.es/maragda/doc找到文件。

2011/07/08

ffmpeg + libmp3lame

works for my Ubuntu 11.04.

sudo apt-get install libavcodec-extra-52
ffmpeg -i myfile.mp4 -acodec libmp3lame -ab 192k myfile.mp3

2011/06/22

User Experience in an OpenSource Fashion

形容 UX 是 Open Source 的頭號問題,並不為過,以 Google 不願意馬上開放 Android 介面成果為例,謠傳原因來自,開放會造成阿貓阿狗的加入,造成產品介面和預期價值的下降,白話地說,Android 相信 Open Source 開發方式有害於 UX。
有反例嗎? Firefox 和 Gnome 似乎證實沒那麼糟。
另外,網頁或 thin client UX 的進展速度較快,甚至進而影響 fat client 的設計。
終究 UX 也可以用 Open Source 方式來搞嗎? 我還不知道答案,但看到 Art will stay Art. 這句時,我笑了。
random read: CodePlex example by Microsoft

2011/05/04

plone.dexterity zh_TW translation

# Translations template for plone.dexterity.
# Copyright (C) 2010 Plone foundation
# This file is distributed under the same license as the plone.dexterity
# project.
# marr <marr.tw@gmail.com>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: plone.dexterity 1.0b3\n"
"Report-Msgid-Bugs-To: dexterity-development@googlegroups.com\n"
"POT-Creation-Date: 2010-07-09 15:38+0200\n"
"PO-Revision-Date: 2011-05-04 10:10+0800\n"
"Last-Translator: marr <marr.tw@gmail.com>\n"
"Language-Team: Plone i18n <plone-i18n@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.5\n"

#: plone/dexterity/browser/add.py:82
#: plone/dexterity/browser/edit.py:15
msgid "Save"
msgstr "儲存"

#: plone/dexterity/browser/add.py:92
msgid "Item created"
msgstr "項目已新增"

#: plone/dexterity/browser/add.py:94
#: plone/dexterity/browser/edit.py:25
msgid "Cancel"
msgstr "取消"

#: plone/dexterity/browser/add.py:96
msgid "Add New Item operation cancelled"
msgstr "新增項目已取消"

#: plone/dexterity/browser/add.py:112
msgid "Add ${name}"
msgstr "新增 ${name}"

#: plone/dexterity/browser/base.py:14
msgid "Content"
msgstr "內容"

#: plone/dexterity/browser/edit.py:22
msgid "Changes saved"
msgstr "更改已儲存"

#: plone/dexterity/browser/edit.py:27
msgid "Edit cancelled"
msgstr "編輯已取消"

#: plone/dexterity/browser/edit.py:48
msgid "Edit ${name}"
msgstr "編輯 ${name}"

2011/03/25

Quotes of Erik Naggum

蕭永慶為 Erik Naggum 摘要的譯文

"一個程式設計師讀過的程式碼, 應該是他寫過的程式的10倍以上, 才算夠資格的好的程式設計師."

the greatest benefit of free software is, in my mind, not the availability of free software _products_, but the availability of _source code_ for other programmers to read and use, like sheet music, plays, books, etc, are like source code for _their_ respective kinds of production.
在我的觀念裡, 自由軟體最大的好處, 不是供應自由軟體的產品, 而是對其它的程式師供應了原始碼, 讓他們得以閱讀與使用, 就像樂譜, 戲劇, 書等在它們相對映的領域的功能一樣.


free software, to me, means the ability of programmers to form a community within which they can speak the same language, which I hope will be the language of _programming_, not each of the many dialects we use.
自由軟體對我而言, 就是可以讓程式設計師們組個團體, 在這個團體內我們可以用相同的語言溝通, 這裡我說的語言是程式設計本身, 而不是那些我們使用的方言 (譯:指不同的程式語言)

2011/03/23

Sheng Bao: Ask me again in ten years too!

原文在 http://narnia.cs.ttu.edu/drupal/node/44

Quotes of the day:
* 求名當求萬世名,計利當計天下利。
* 軟體是一種奇特的商品,其需要大量的測試人員,這就是 "enough eyeball" 的作用,而 GNU 正做到了這一點。
* 美國人用腦子裡面想出來的東西賺錢,日本人用手裡面作出來的東西賺錢,更窮的國家只能用地裡長出來的東西賺錢。
* 知道何時該合上書本。
* Classes 是否會 dull you mind 取決於你是如何面對課堂。
* Plato is dear to me, but dearer still is truth.
* Science is what we understand well enough to explain to a computer. Art is everything else we do.
* 36歲拿了塗靈獎之後 Knuth 突發奇想,他揚言自己要用20年時間寫一本同 Newton 的 The Mathematical Principle of Natural Philosophy 一樣著名的書。

2011/01/21

Discussion Log

活動記錄 – 20040711 – 自由軟體鑄造場 by kiang
http://blog.twpug.org/86

比較精彩的是當時的 comment log,原網站已不存在,也沒找到 google 備份,貼在這裡當記錄:
9 Comments:

Blogger autrijus said...
"ps. 該網站發表評論的系統不會還要經過審核吧,這樣好像不太自由...;希望
Movable Type 發表評論應該是自動登的, 你可能需要強制重新載入頁面 (shift
所以大概是多慮了.

11:33 上午

Blogger autrijus said...
"我問的是為什麼OpenFoundry要自行開發專案維護系統而不是像日本一樣跟隨著
系統本地化"
sf.net 是私有軟體系統, 要收授權費, 並且不能重新散播,

所以祗能說是 "VA 的腳步", 不是 "世界的腳步".
當時似乎也有考慮過直接用 GForge, 將 OpenFoundry 想要的功能直接用 PHP
不過好像沒有人接下來做. 如果你願意, 或找得到人做這個, 我個人倒是蠻有興
"因為這樣子一來就可以有更多的人力放在自由軟體的推廣上"
即使是付授權費建置了 sourceforge.net.tw, 也要花相等的
人力做後續建置和維護... 這似乎是不太省得下來的人力, 也
不容易直接 "調配" 去做推廣呢. :-)
/Autrijus/

11:44 上午

Blogger kiang said...
Movable Type 發表評論應該是自動登的, 你可能需要強制重新載入頁面 (shift
所以大概是多慮了.
---
恩,剛發表完重新讀取頁面還是看不到,可能是這個原因吧,sorry
---
sf.net 是私有軟體系統, 要收授權費, 並且不能重新散播,所以祗能說是 "VA
---
恩,可能我對於它的授權基礎沒有看的很仔細吧~^^
---
當時似乎也有考慮過直接用 GForge, 將 OpenFoundry 想要的功能直接用 PHP

不過好像沒有人接下來做. 如果你願意, 或找得到人做這個, 我個人倒是蠻有興
---
這個網站: http://forge.novell.com 也有著類似的系統,只是不知道跟 GFor
比起來哪個完整;OpenFoundry需要什麼樣的特殊功能?必要性真的有那麼高嗎
---
即使是付授權費建置了 sourceforge.net.tw, 也要花相等的人力做後續建置和
這似乎是不太省得下來的人力, 也不容易直接 "調配" 去做推廣呢. :-)
---
但是系統可以及早進入穩定階段,許多朋友也不需要重複去熟悉新的系統;與其
使用一個經過歷鍊的系統將它本地化(這個應該沒那麼難吧?),然後將焦點放在
換個說法,維護的人好找,開發人員數量很少(特別是台灣),調配的方向應該會
---

12:09 下午

Blogger autrijus said...
"這個網站: http://forge.novell.com 也有著類似的系統,只是不知道跟 GFo
比起來哪個完整;OpenFoundry需要什麼樣的特殊功能?必要性真的有那麼高嗎
NovellForge 的程式碼直到去年年底纔公開, 而 OpenFoundry 當時已經進行一
並且也沒有第三方架起 NovellForge 的紀錄.
OpenFoundry 需要的功能, 不過就是合理的中文界面, Wiki,
以及最近的授權精靈等而已. GForge 當然也可以加上這些功能,
問題是有沒有人去做...
"不如使用一個經過歷鍊的系統將它本地化(這個應該沒那麼難吧?),然後將焦
問題是根本就沒有經過歷練的自由軟體系統可以用... :-/
/Autrijus/

7:24 上午

Blogger candyz said...
1.如果有可用且實用又沒有授權問題的系統時,另外又有人願意去維護,那為何不
2.我想 autrijus 要表達的,就是,開發 OpenFoundry
時,並沒有合適的系統可以拿來用,否則,也不必重覆造輪子了
3.而現在,既然 OpenFoundry
都已經弄好了,再來吵這些我覺得沒什麼意義,還不如把心思放在開發中文軟體上
必花太多時間在研究這個系統上,反而能把時間放在開發上,這樣比較重要,因此,
該做的,反而是應該要盡量把介面做得更簡單更容易上手,且說明文件能更詳細一
上了

8:16 上午

Blogger kiang said...
http://dev.xoops.org/
這是novell forge的第三方安裝者,透過GOOGLE搜尋關鍵字"inurl:modules/xfm

我想無論是使用GFORGE或是NOVELL
FORGE,現階段而言我覺得都比繼續開發OpenFoundry要好,因為可以借助其他國
oundry目前只有台灣人在用...
獨立維護一個系統會需要比較多的人力,OpenFoundry不是不好,如果只是單純
量,我還是強烈建議停止OpenFoundry的開發,將人力投入到其他系統的引進與

11:55 上午

Blogger autrijus said...
"http://dev.xoops.org/
這是novell
forge的第三方安裝者,透過GOOGLE搜尋關鍵字"inurl:modules/xfmod"應該可以
抱歉, 是我錯了. 網頁上沒有出現 NovellForge 字樣,
所以我無從找起...
"我想無論是使用GFORGE或是NOVELL
FORGE,現階段而言我覺得都比繼續開發OpenFoundry要好,因為可以借助其他國
oundry目前只有台灣人在用..."
這倒不是真的. OpenFoundry 的各組成元件: RT, Kwiki,
Sympa, SVK 等等, 都有不少國際上的使用者和開發者, 而
OpenFoundry 的 UI 祗是將它們整合呈現的界面而已, 所以
我們也有借助其他國家的開發者. 事實上, 我正寄住在其中一位
美國開發者的家裡, 和當地的三、四個人一起設計下一代的

OpenFoundry 界面與流程引擎.
至於實際部署 OpenFoundry 的人士, 則是限於奇怪的法令
問題, 直到這個月我們纔能釋出成果到 CPAN 上, 所以之前
想裝的人也無從裝起. 不過, 透過在台北、德國、美國的各場
會議, 已經有不少人提出興趣, 想要安裝看看. 所以現在預言
說這祗是台灣本地的專案, 似乎還早了點.
"獨立維護一個系統會需要比較多的人力,OpenFoundry不是不好,如果只是單純
考量,我還是強烈建議停止OpenFoundry的開發,將人力投入到其他系統的引進
其實我蠻同意這個看法的, 這也就是為什麼我儘量不寫程式,
而是整合既有的系統成一個 OpenFoundry 界面的原因.
不過, 如果你願意投入 NovellForge 中文化、文件撰寫和
定製開發, 或是找到其他願意投入的人力, 那也可能是更好的
做法 -- 請將你的計劃寫到 contact@openfoundry.org
或是寄 email 給我討論, 都很歡迎.
要是沒有願意做事的人, 根本不用談 "投入人力" 這回事.
把沒有意願的人派任去跟國際專案社群合作, 成功的機會
更是渺茫.
Thanks,
/Autrijus/

10:47 下午

Blogger jihuang said...
http://www.104.com.tw/cfdocs/2000/job2000/JOB.cfm?jobsource=104_
hp&jobnum=1257316&invoice=4142327000
jihuang

11:50 下午

Blogger kiang said...
謝謝jihuang提供的資訊,我下個月才要換新工作呢~^^
新工作: http://www.ossii.com.tw
我所提到的部份也很有可能是未來的工作項目之一,但我不會希望採用OpenFoun
望跟多些國家的運作模式達到一致,有利於未來資訊的交流。
我目前下比較多功夫的地方是egroupware的中文化,也有其他中文化的作品可以
http://www.osobiz.com/xoops/ );進一步的計畫就先看看新的飯碗能不能抱緊

12:26 上午

2008/03/18

What Is Open Source

" Open Source is a set of principles and practices that promote access to the design and production of goods and knowledge. " -- Wikipedia
依據 Wikipedia 的內容,Open Source 是指一套原則與實務方法,用來設計與創造。最常應用 Open Source 的場合,就是軟體開發。在網路上,四成的 email server 由 Sendmail 提供服務,五成的 web server 由 Apache 提供服務,九成的 domain name server 由 BIND 提供服務,還有 Linux 作業系統,這些都是知名的 Open Source 軟體。
許多 Open Source 軟體的創作動機,來自於軟體人員想要寫出有趣、有用的程式,為了讓自己的程式片斷能夠加入別人的改良意見,將原始碼公開流傳並能被修改,成為基本要求之一。更多的 Open Source 社群傳統,Eric Raymond 在 The Art of Unix Programming 書中詳加介紹,Open Source Initiative 具體地整理出十項定義

2007/07/10

自動將貼到Blog的程式碼Code或HTML Code做轉換及編排

希望可以直接把寫好的程式碼貼到Blog上,又能夠保持他原來的格式,並且做好排版,之後還要方便修改...請看 WangAguo開發手記

2006/11/10

Create Event from Gmail

Gmail 的服務裡有整合行事曆,要怎樣使用這項服務呢?

在讀信的同時,點一下「More actions...」下拉選單。

會看到「Create Event」選項。

接著填寫行事曆內容,結束時按「儲存變更」即可完成。

回到讀信的操作畫面時,在右方會看到「View event」的提示文字。

2006/10/01

Macintosh History

Apple 電腦的誕生,為微電腦時代躍上歷史舞台揭開序幕,從 Apple II 到 Macintosh,這段革命 Andy Hertzfeld 曾親身與役,在 Revolution in the Valley (中譯為矽谷大革命) 一書中,他記錄了麥金塔開發功臣們遇到的趣事、難題、爭執,與分裂,引領讀者一同回顧這項劃時代產品的成長歷程。

2006/09/29

Applying OpenSource License

簡介將軟體專案以 open source 授權方式釋出的注意事項。
我們以一個 "MyProject" 專案為範例,說明將軟體專案以自由軟體授權方式,特別是 GNU GPL 條款來釋出時,應注意哪些事項。

檔案目錄的慣例

假設 MyProject 專案的原始碼檔案,全部位於 "MyProject" 目錄之下。
下列為常見之檔案目錄命名及內容慣例:

MyProject/README.txt

提供專案的基本資訊,包括專案「完整之正式名稱」「簡寫名稱」「開發單位或人員」「版本資訊」「功能特色」「專案網址」「參考資訊之取得方式」。



MyProject/CHANGELOG.txt 或 MyProject/HISTORY.txt

提供原始碼修訂改版的說明資訊,包括「臭虫修訂狀況」「程式執行所需滿足之相依關係」「新增功能介紹」。



MyProject/LICENSE.txt

說明軟體原始碼的「著作權所有者 (copyright holder) 資訊」「授權條款內容」。



MyProject/COPYING.txt

如果使用 GNU GPL version 2 來授權,通常就將 GPL 全文列為本檔案之內容。



MyProject/CREDITS.txt

說明軟體開發過程的貢獻者名單,依不同角色及貢獻內容,可包括「程式開發員」「軟體測試員」「臭虫修訂者」「文件編寫者」「文件翻譯者」。

2006/09/20

OpenID: Framework for Digital Identity

OpenID 利用 URI (也就是所謂的網址) 來當作識別身份的工具,其運作方式包括 consumer, service provider 等角色。目前已加入實作行列的語言很多,當然也包括 Python 在內,應用軟體方面則包括 Plone 在內。

2006/08/21

Game Fun

除了搖滾樂,另一個讓自己廢寢忘食的東西是電腦遊戲。

有個電腦遊戲我特別喜愛,叫做「鐵路大亨 (Railroad Tycoon)」,遊戲者扮演鐵道公司的經營人,進行商場爭奪戰。

起始資本是固定的,雖然只是真實商戰的簡化模擬,遊戲間要留意的事情也是不少,
包括:尋找具備遠景的車站設置點,控制車次及發車時間,安排物資動線,甚至與競爭公司進行經營權爭奪。

不僅是個有趣的遊戲,還可以認識鐵道史,也體驗商場經營的基本觀念,像是財務報表跟資本市場操作。

2006/08/19

Find What You Love

高中的時候,我很迷搖滾樂。

身為搖滾樂迷,純粹個人聽歌享受,要是還不夠過癮,就可能會想玩樂器、搞樂團、作曲編詞,或是經營樂迷會。

有人說過「You've got to find what you love.」,我認同這句話,也相信,對於心愛的事物,一個人就能持續投入熱情,甚至去感染別人,願意的話,都會發現意想不到的回報。

那時候,有人問我「將來想做的事」,脫口而出的是「開唱片行」。

後來才發現,我真正想要的,是一個交流分享搖滾樂的空間,它的原型來自於「雷電華」「陋室」「藍儂 」,而既有的「女巫店」「五四三音樂站」已是夠棒了。

感謝經營這些空間的人,讓我們輕鬆地做自己想做的事 -- 分享關於搖滾世代的傳奇演義。

2006/07/20

Refactoring and Testing

"A refactoring will change memory consumption, probably have a detectable effect on speed, etc."
中文的軟體文件把 refactoring 譯為「重構」,這是一個改善既有程式碼設計的工作過程,以便提昇記憶體使用效率及整體執行效率。那麼,又該如何衡量重構後的成效呢? 如果原本已存在測試規劃的話,那重構後的第一步,就是既有的 Testing Case 仍能執行通過。
A refactoring is a test-preserving transformation.
測試規劃在軟體改善過程中所佔的重要性,由此可見。

2006/07/09

Automatic Summaries Using Haystack

Automatic news summaries with Plone using Haystack 文章中,提到如何利用 Plone 建置一個新聞網站,再搭配 Haystack product 來分析新聞稿的內容,自動進行內容摘要的工作。處理底層分析工作的則是 libots (Open Text Summarizer) 工具軟體,目前支援主要的歐美語文,如果想要加入中文支援,則可以從記載分析規則的 XML 檔案進行修改。文章摘要是項常見的需求,可應用的內容包括新聞稿、學術論文等。

2006/01/21

Empower to Save the Life

電腦網路是我們的重要工具,而程式語言是駕馭電腦網路的好工具。有效地應用程式語言,生產力提高之餘,能夠讓人們靜下心來,更常面對我們生命裡真正重要的課題。

Programming at Python Speed 一文中,Guido van Rossum 提到,「一個兩萬行的 Python 程式,可能相當於一個十萬行的 Java 或 C++ 程式,或是一個二十萬行的 C 程式。如果想要偵錯或進行系統調整,十萬行的程式和兩萬行的程式相比,花的工夫就天差地遠。在規模小一點的程式裡,這樣的道理還是存在的,一個伍佰行的程式,和一萬行的程式,相比起來是很不一樣的。」

程式設計人員的生產力,關係著他們的生活品質,也關係著更多其他人的福祉。

如果我是一個程式設計人員,除了解決自己的問題之外,還要能協助別人也解決他們的問題。這就是我學習 Python 語言的意義所在。在電腦世界裡,零件已經太多了,運算資源浪費的狀況也時有所聞,如何快速組裝零件並有效解決問題,成為關鍵的瓶頸點。

Jon UdellShipping the prototype 一文中提到,Python 的設計哲學,就是針對這樣的問題。一個易學易懂、動態具彈性、簡潔有效率的語言,直接帶領你去處理問題與建置系統,而不需要花太多時間在學習程式語言本身,或許,這就是 Python 書籍目前仍較少,但程式框架卻一卡車的原因之一。我發現同樣功能的程式,Python 設計人員會花費較少人力、時間、程式碼長度去完成,由於 Python 工程師能夠快速有效地完成程式碼,接手維護的人容易看得懂,想要擴充功能的人也輕鬆,因此大家都獲得生產力的提昇,這是應用 Python 最美妙之處。

2006/01/19

Plone Customization

很多人對修改 Plone 預設網站樣式感到興趣,Jon Stahl建置網站的好手,平常樂於分享自己使用 Plone 協助非營利組織的經驗談,最近便撰寫一篇心得,從設計到實作,介紹客製化的技巧。另外,也可以從 ZopeMag 找到 Hawaii 州政府應用實例