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 州政府應用實例