我非常喜歡 Plone 強大的功能和豐富的附加程式。因為架構在 Zope 整套物件化的 ZODB 上面,讓 Plone 可以用非常物件導向程式設計的方式存取資料。在之前接觸過的所有網頁開發工具裡面,Zope, Plone 和 Python 這個組合不像其它 scripting language 一樣得搭配關聯式資料庫,就能夠有安全可靠的資料儲存方式。Product, ZODB 再加上適當的組態檔,Zope 就能把資料和程式帶著跑,解決了不少系統轉移會遇到的問題。我認為這麼高的易維護性是很有價值的。

然而,Plone 最大的問題就是慢。這或許是功能強大的必然結果,限制了系統能夠應用的領域。在一個輸出入同等重要的系統裡,因為不能用 apache caching 的方式加速,每秒能有 10 個 hit 算是很不錯了。要再提昇效能,就得配合 ZEO 組成 Zope cluster,但在 ZEO 身上仍有效能瓶頸。

對資料流量大的網頁系統來說,真不適合用 Plone。不過,Plone 適合用來建構內容複雜的網頁,它可以把各種不同的資料、頁面和影像管理得很好。建立個人網頁也合用;索引、搜尋、on-site 編輯的功能一應俱全,web-based management 的能力讓人舒服。

準備要用 Plone 架設真正的應用系統了,期待 Plone 2.1 的表現!

Posted by yungyuc at 23:05, 2 comments, 0 trackback.
AttributeError: 'module' object has no attribute 'copyright'

昨天在對某個 Plone 2.0.5 網站試行昇級為 Plone 2.1.1 的時候,發現了上面這個錯誤。

這非常讓人困擾。我把 Plone 2.1.1 裝在 Zope 2.8.3 上,一開始以為是 ZWiki 0.46.0 的問題,移掉了沒有用;再把 Zope 2.8.3 一路降級到 2.8.1,仍然無解。裝了 Plone 2.1.1 是 CMFPlone product 出問題,什麼也不裝則是 Five 出問題;總有東西不能用,而且還是找不到模組屬性這種錯誤。這怎麼可能呢?Python 程式有這種蟲而沒被抓出來是難以想像的。

之前建立 Zope 2.8.2 + Plone 2.1.1 明明一點問題也沒有,怎麼換了後一個禮拜發行的 Zope 2.8.3 就不行了呢?因為思而不學則殆

或許說是又罔又殆比較對。我沒發現 iconvcodec 沒裝好,以致於 import site 失敗:

'import site' failed; use -v for traceback

Zope3/Five 和 Python 結合地更緊密了點,看來不太願意忍受這種爛環境。

真是愚蠢的錯誤;不記下來,以後 google 上可難找到了。

Posted by yungyuc at 22:35, 0 comment, 0 trackback.

謝謝 song 作的小國旗。在兩岸三地裡,Plone 2.1.1 只附了大陸的小國旗;按不到語言切換真麻煩呢。

請把小國旗放到

$PRODUCTROOT/PloneLanguageTool/skins/LanguageToolFlags/

下面的 flag-zh-tw.gif,然後重新啟動 Zope。

Posted by yungyuc at 21:50, 0 comment, 0 trackback.

感謝東門學長。

Stellarium是一個星空軟體,可以用來看星星、星座、行星,能依照全球的位置順時虛擬觀測。

Posted by yungyuc at 21:54, 0 comment, 0 trackback.
Flock: http://www.flock.com/ .

COREBlog 支援 MetaWeblog 協定,Flock 偵測出來,於是我來從 flock 貼個一篇。說實話,真用不慣專門的 Blog Editor,沒辦法寫 rst。

Flock on Gnome 2.10:

Flickr Photo

Flickr Photo

目前 Flock 版本為 0.5pre,所以我預期會像我寫的程式一樣來一個 segmentation fault,不過沒有 :) 啊,可以放心使用。

Posted by yungyuc at 20:40, 0 comment, 0 trackback.

因為新架的 Plone 會濾掉 object, meta, embed 等一大堆的 tags,所以我找了找資料

CMFDefault 1.5 以上的版本預設關掉了一些 tags,因此網頁在呈現的時候,這些 tags 就出不來。到 $PRODUCT_ROOT/CMFDefault/utils.py,對 VALID_TAGSNASTY_TAGS 這兩個字典的內容進行調整。

我把 NASTY_TAGS 清成空的字典,再把 flash 會用到的 object, embed 與 param 加進 VALID_TAGS。活跳跳的 flash 恢復。

Posted by yungyuc at 12:20, 0 comment, 0 trackback.

喔喔,不妙了 :)

柴田先生似乎準備提昇 COREBlog 的 major version,製作一個在 Plone 2.1.1 + Zope 2.8 環境裡執行的 Blog 系統。

文章裡沒有提到「要求」Plone 2.1.1,不過我看不懂日文,很害怕偉大的柴田先生把純 Zope 的支援拔掉。COREBlog 自從 1.11 版出現 plonified skin 之後對 Plone 愈來愈友善,好棒;但完全 "Plonified" 的話就讓我苦惱啦。Plone 慢哪,為了 blog 裝 Plone?噢,不。

應該是我多慮了,再看一遍 announcement,好像沒有相關的「ない」和「ません」。

Posted by yungyuc at 23:32, 0 comment, 0 trackback.
http://static.flickr.com/25/54032175_d82ebf7665_t.jpg

還算不錯,但比起生日當月優惠的話 (第二道主餐免費,週末可用),就不是那麼吸引人了。這個不怎麼吸引人的 coupon 內容是:

25% DISCOUNT
ON ALL FOOD ITEMS!
所有食物品項75折
(Available from Mondays to Thursdays / 限星期一至星期四)

From now till 30 November, visit Tony Roma's
for an irresistible offer that should never be missed!
Simply print and present our e-voucher
to enjoy the 25% Discount!

即日起至11月30日止,到Tony Roma's
用餐千萬別忘記這誘人的優惠!
只要列印並出示本電子優惠券則可享有食物品項75折優惠!

Fat food.

Posted by yungyuc at 22:48, 0 comment, 0 trackback.

為何您還在使用 Microsoft Office?。因為別人也在用。

我已經很久沒有用 Office 了,至少很久沒有用 Work 和 Excel。今天接到一通電話,催我趕快把對方要求的表格填一填寄回去,他已經等了五天了。這五天來我一直沒有動作的原因是:給我兩個 .doc 檔,我懶得回 Windows 去開呀。

Debian 愈用是愈好用,所以我非常樂見,甚至渴望藉由開放文件格式的發展,進一步促成 Unix-like 系統的廣泛應用。我愛 bash、我愛 pipe、我愛 X11 forwarding、我愛 Python;我希望能儘快敉平 Unix-like 系統與 Windows 之間的鴻溝,讓我寫的 .bash.opt 能在我的每一台電腦裡設定環境。

當然這只不過是身為科技人員小小的一廂情願罷了。

MS Office 深植於社會上下各界之中,形成了一般強大的互通性壓力。尤其,對一般人來說只是一兩封信件無法開啟的問題,到了大型組織之中就會變成攸關運作的大事;想改變整個應用環節之中的任何一個軟體都需要深思而後行。

對公營機構來說,除了一般組織會遇到的問題之外,還有複雜的保守心態作祟。在這些機構裡採用任何一種關乎組織運作的資訊技術都是不容易的事情;玩玩可以,實際運用再說。主管多半寧可外包給廠商執行,也不想因為一時的爽快讓自已和手下陷入層出不窮的規定地獄;新技術、新模式會引來的公文往返和文書作業,真是讓人想到就怕。封閉文件格式所產生的文件持續性的風險,很難認真地被當作評估的重點。

這種情況不太能歸咎於任一單位或主管,而是一種結構上的問題;追求組織穩定一向是公家單位經營的主要目標 (雖然不會列在願景裡面),效率不太重要。因此「若有一天 Microsoft 決定放棄支援那個版本的 Word,那麼那些重要資料要嘛全部重作,要嘛就得全數報廢。」的確很缺乏效率,會讓納稅人覺得很生氣。啊,不過現實可能就是這樣。無奈。

「這次麻省事件,就像在山洞裡轉了個彎,讓我們這些長期談論資訊人權等等問題的人,看到隧道口的微弱光線,對於資訊人權受到重視這一天的到來,更加有信心。」。雖然僅僅依奉「公開散佈 .doc 檔是不道德的行為」此一原則並不夠,但我們要對得起自己的良心,然後才能尋求進一步的發展。

至少不應該讓 .doc 愈變愈多 :) 不然真是沒得混了。

Posted by yungyuc at 22:49, 2 comments, 0 trackback.

不查則已,一查驚人

PEP 333 點出了這個問題,進而定義 WSGI 規範,希望 web application framework 和 web server 之間能有一套共同運作的準則,允許同一套 framework 在大多數的 web server 上運作。

整理這份資料的起因是對於 Twisted 的好奇。Twisted 是一個 Python-written 的 event-driven networking framework,twisted.web 是其中的 web server,可以被 web application framework 使用。nevow 是採用 twisted.web 的 templating system。

nevow 有趣的地方在於 Stan,Stan 讓使用者以這種方法來產生 XML 資料:

import random
from nevow import rend, tags

class Greeter(rend.Page):
    def greet(self, context, data):
        return random.choice(["Hello", "Greetings", "Hi"]), " ", data

    docFactory = loaders.stan(
    tags.html[
    tags.head[ tags.title[ "Greetings!" ]],
    tags.body[
        tags.h1(style="font-size: large")[ "Now I will greet you:" ],
        greet
    ]
])

twisted 真正吸引人的地方是能以非同步的方式,讓程式同時擁有各種網路通訊的能力,並且不限於 IP 網路。如果我要寫一個能開啟 TCP/IP 通訊介面的程式,twisted 是非常好的選擇。

Quixote 則是一個完整的 web application framework,forecastwatch.com 是用 Quixote 開發的。

PythonPaste 是另一個 web application framework,還在開發中。看來它對 server management 和 application framework 作了一些結合。

TurboGears,這個很紅,因為 slashdot 上有人拿它來和 ROR 相提並論 (然而在 Python 裡有 Zope, mod_python,程式庫又多得不得了,想不透在人氣上怎麼是 Python 反過來在追 ROR)。它除了有話題性之外,也是一個很有趣的 "MegaFramework",由 CherryPy: 主要的 framework, SQLObject: 物件化 SQL 資料庫存取程式庫, Kid: 模板語言, MochiKit: JavaScript 程式庫等要項所組成。

TurboGears 雖然仍在 alpha,但 CherryPy 則是已經活了三年的計畫,整套 megaframework 完整且強大,相當地吸引人。

昨天還玩了玩 snakelets。這套 application server 比較沒有意思,但在上面有 frog (blog system) 可以用,算是特色。然而我用了一下最新版,不知道是否時區設定不同,syndication 頁面竟然跑出 traceback; COREBlog 究竟還是成熟得多。

Posted by yungyuc at 22:21, 0 comment, 0 trackback.
Change to page (10 entries in each page): 1 2 3
© hover year to navigate month: powered by django