2009/07/18
EMP: Collision of Styles
NGC 介紹了 Frank Gehry 著名的建築計畫,不規則曲線的建築結構是 Gehry 的特性,他並大量引用電腦系統來設計並交換資料。西班牙 Bilbao Guggenheim Museum 是他較早期的作品,九年後他在 Paul Allen 的委託下,在西雅圖完成了 Experience Music Project。因為 Paul Allen 和 Jimi Hendrix 都出身於西雅圖,促使這項搖滾樂體驗館的誕生,當然,還要靠 Frank Gehry 才能讓這項酷斃的建築物,充份包含並展現搖滾文化的多樣性。
2009/07/10
Deliverance Installation
Deliverance 是管理 web theme 的工具,常見的用法是,即時結合 site A 的應用程式和內容,和 site B 的佈景主題外觀,透過 WSGI 技巧將整合過的網頁呈現給使用者。有圖有真相,請參考 screencast 介紹。
在 QuickStart 頁面裡,提及 virtualenv, buildout 的不同安裝方法,我是用 Plone 3.2.2 UnifiedInstaller 的 buildout 安裝成功,在 buildout.cfg 裡加上 parts = deliverance 並新增
產生 deliverance 目錄和 bin/deliverance 執行檔後,再編輯 deliverance/deliverance-proxy.ini 內容,主要是修改 serializer 使用 deliverance.serializers:HTML4,並設定 host 和 wrap_href 後,就可以執行 bin/deliverance 看結果。想要精緻地完成整合工作,還需要設定 rules.xml 內容。
在 QuickStart 頁面裡,提及 virtualenv, buildout 的不同安裝方法,我是用 Plone 3.2.2 UnifiedInstaller 的 buildout 安裝成功,在 buildout.cfg 裡加上 parts = deliverance 並新增
[deliverance]
recipe = plone.recipe.deliverance
libxml2-url = ftp://xmlsoft.org/libxml2/libxml2-2.7.3.tar.gz
libxslt-url = ftp://xmlsoft.org/libxml2/libxslt-1.1.24.tar.gz
產生 deliverance 目錄和 bin/deliverance 執行檔後,再編輯 deliverance/deliverance-proxy.ini 內容,主要是修改 serializer 使用 deliverance.serializers:HTML4,並設定 host 和 wrap_href 後,就可以執行 bin/deliverance 看結果。想要精緻地完成整合工作,還需要設定 rules.xml 內容。
2009/07/08
Quote of the Day
可能,最好的,已經在你的身邊,只是,你還沒有學會珍惜。人們總是盯著得不到的東西,而忽視了那些已經得到的東西。
社會上一夜暴富的新聞很多,這些消息,總會在我們的心裏面掀起很多漣漪,漣漪多了就變成驚濤駭浪,心裏的驚濤駭浪除了打翻承載你目標的小船,並不會使得你也一夜暴富。“只見賊吃肉,不見賊挨揍。”我們這些普通人既沒有當賊的勇氣,又缺乏當賊的狠辣絕決,雖然羡慕吃肉,卻更害怕挨揍,偶爾看到幾個沒挨揍的賊就按奈不住,或者心思活動,或者大感不公,真要叫去做賊,卻也不敢。
好吧,世道不夠好,可是,你有推翻世道的勇氣麼?如果沒有,你有更好的解決辦法麼?有很多時候,人需要一點耐心,一點信心。每個人總會輪到幾次不公平的事情,而通常,安心等待是最好的辦法。
人總是會遇到挫折的,人總是會有低潮的,人總是會有不被人理解的時候的,人總是有要低聲下氣的時候,這些時候恰恰是人生最關鍵的時候,因為大家都會碰到挫折,而大多數人過不了這個門檻,你能過,你就成功了。
逆境,是上帝幫你淘汰競爭者的地方。要知道,你不好受,別人也不好受,你堅持不下去了,別人也一樣,千萬不要告訴別人你堅持不住了,那只能讓別人獲得堅持的信心,讓競爭者看著你微笑的面孔,失去信心,退出比賽。勝利屬於那些有耐心的人。
其實選什麼行業真的不重要,關鍵是怎麼做。事情都是人做出來的,關鍵是人。
每天,每一刻我們都在做這樣那樣的決定,我們可以漫不經心,也可以多花些心思,成千上萬的小選擇累計起來,就決定了最終我們是個什麼樣的人。
你可以選擇把這輩子最大的困難放在最有體力最有精力的時候,也可以走一步看一步,等到了40歲再說,只是到了40多歲,那正是一輩子最脆弱的時候,上有老下有小,如果在那個時候碰上了職業危機,實在是一件很苦惱的事情。
人生最需要的不是規劃,而是在適當的時機掌握機會,採取行動。
與改變世界相比,改變自己更困難。
人生有三個階段,一個階段是為現實找一份工作,一個階段是為現實,但可以選擇一份自己願意投入的工作,一個階段是為理想去做一些事情。
2009/06/25
Eggs and Plone3
egg 是 Python 世界裡散佈模組軟體的包裝機制,在 egg 環境裡,會記錄軟體專案的相依資訊,還會提供 plugin 給其他模組。實際打包成壓縮檔的方式有許多種,最常見的方式,是使用 '.egg' 檔名的 ZIP 檔案。
Python 世界的 egg 當然不只用於 Zope 或 Plone 專案裡,但是 Zope 在 2008 年才廣泛使用 egg 機制,對 Zope 2 的開發者而言,可能仍是新的議題。傳統的 Zope 2 應用程式,以 Zope product 方式來開發和散佈,只要把程式專案放進 $INSTANCE_HOME/Products 目錄,Zope 就會在啟動時掃瞄這個目錄,並處理應用程式的安裝與註冊工作,相當容易管理。
但是,上述特定目錄裡的程式碼,搭配 Products.* 命名空間的黑魔法,只能被 Zope 認得,很難再應用於其他場合,另一方面,也造成命名空間的侷限,開發者不容易建立精簡而重用性高的模組。
新版的 Zope (Zope 3) 在設計哲學上,主動走進 Python 社群成為一份子,讓專案模組能夠盡量精簡,並致力於提高模組的重用性。只要把相依關係設定好,任何模組應該都能在各式環境裡執行,例如 zope.interface 模組被 Twisted 專案所採用,但 Twisted 和 Zope 兩個專案平常是各自獨立發展的。這樣的架構方式,也讓 Zope 3 的新模組,容易被 Zope 2 或 Plone 重複使用。
從 Plone 3 開始,開發者也努力將模組精簡,像 plone.memoize 與 plone.portlets 是高獨立性的模組,其他相依於 Plone 的模組,則使用 plone.app 命名空間,例如 plone.app.layout 或 plone.app.portlets 之類的名稱,而 plone.app.portlets 就以 plone.portlets 為基礎,再針對 Plone 專案設計專屬的程式碼。
Python 世界的 egg 當然不只用於 Zope 或 Plone 專案裡,但是 Zope 在 2008 年才廣泛使用 egg 機制,對 Zope 2 的開發者而言,可能仍是新的議題。傳統的 Zope 2 應用程式,以 Zope product 方式來開發和散佈,只要把程式專案放進 $INSTANCE_HOME/Products 目錄,Zope 就會在啟動時掃瞄這個目錄,並處理應用程式的安裝與註冊工作,相當容易管理。
但是,上述特定目錄裡的程式碼,搭配 Products.* 命名空間的黑魔法,只能被 Zope 認得,很難再應用於其他場合,另一方面,也造成命名空間的侷限,開發者不容易建立精簡而重用性高的模組。
新版的 Zope (Zope 3) 在設計哲學上,主動走進 Python 社群成為一份子,讓專案模組能夠盡量精簡,並致力於提高模組的重用性。只要把相依關係設定好,任何模組應該都能在各式環境裡執行,例如 zope.interface 模組被 Twisted 專案所採用,但 Twisted 和 Zope 兩個專案平常是各自獨立發展的。這樣的架構方式,也讓 Zope 3 的新模組,容易被 Zope 2 或 Plone 重複使用。
從 Plone 3 開始,開發者也努力將模組精簡,像 plone.memoize 與 plone.portlets 是高獨立性的模組,其他相依於 Plone 的模組,則使用 plone.app 命名空間,例如 plone.app.layout 或 plone.app.portlets 之類的名稱,而 plone.app.portlets 就以 plone.portlets 為基礎,再針對 Plone 專案設計專屬的程式碼。
2009/06/01
Package Releases
open source developer 通常只優先抓自己的癢,一個有規模的 project 會嘗試事先宣告未來新版的改進內容,並開放一段時間,收集合適的使用者需求清單。以 Plone 為例,如果你有改版需求想要優先列入,可以與原作者溝通。
Plone 在第2版與第3版之間,擴充模組的處理方式有些不同。首先,稱呼上有所不同,擴充模組在 Plone 2 稱為 Product,在 Plone 3 則開始改稱 Package。命名的方式,Plone 2 常見的範例類似 PloneSurvey 或 WebServerAuth 這樣,但 Plone 3 常見的範例類似 Products.Maps 或 plonetheme.stylized 或 collective.indexing 這樣。
散佈時的檔案格式,Plone 2 以 tar.gz 為主,Plone 3 則以 egg 為主。安裝的目錄位置,Plone 2 是在 Products 裡,Plone 3 egg 則使用 eggs 或 develop-eggs 之類的目錄,舊式的 package 也可以放在 products 或 productdistros 目錄裡,而開發中的 package 則位於 src 目錄裡。
Plone 在第2版與第3版之間,擴充模組的處理方式有些不同。首先,稱呼上有所不同,擴充模組在 Plone 2 稱為 Product,在 Plone 3 則開始改稱 Package。命名的方式,Plone 2 常見的範例類似 PloneSurvey 或 WebServerAuth 這樣,但 Plone 3 常見的範例類似 Products.Maps 或 plonetheme.stylized 或 collective.indexing 這樣。
散佈時的檔案格式,Plone 2 以 tar.gz 為主,Plone 3 則以 egg 為主。安裝的目錄位置,Plone 2 是在 Products 裡,Plone 3 egg 則使用 eggs 或 develop-eggs 之類的目錄,舊式的 package 也可以放在 products 或 productdistros 目錄裡,而開發中的 package 則位於 src 目錄裡。
2009/05/26
Moblin Linux Preview
Quote from "Moblin netbook Linux preview"
"[Moblin] is a Linux desktop that's built on top of a Fedora Linux framework; uses GNOME for its desktop and applications, and will rely on Novell/SUSE to get customized versions of the desktop pre-installed on the Taiwanese OEM (original equipment manufacturers) netbooks."
"[Moblin] is a Linux desktop that's built on top of a Fedora Linux framework; uses GNOME for its desktop and applications, and will rely on Novell/SUSE to get customized versions of the desktop pre-installed on the Taiwanese OEM (original equipment manufacturers) netbooks."
2009/05/21
NASA Science Case Study
kcunning wrote 3 blogs on how their team building the NASA Science website. Here is the Japanese version. And some of my favorite quotes from the blogs:
Well, when you use Google rather than your own native search, you know you have a problem.
Developers, of course, love CMS's, but the only way we could sell it was to show the customer what they would gain... and respect what they would lose.
One of the funny things about taking on a large project is you either have a group with no ideas at all, or way too many.
One measure of a Plone developer's skill is their ability to evaluate what others have done. -- Alexandar Limi
Subscribe to:
Posts (Atom)
