Zope
Sep 29, 2009
zodbメモ
x86とamd64で互換性があるんだね。
ちょっと心配していた。
May 31, 2009
debugモードでcatalogから情報を取り出す
Zopeをdebugモードで動かしてcatalogから情報を取り出すことをやった。
debugモードで起動する。appがトップに割り当てられている。
portal=app['theportal']
とやってから
wes = p.portal_catalog(meta_type='WeblogEntry')
とやればcatalogからWeblogEntryが全て取り出せる。 あとは
for w in wes: print w.getObject().absolute_url_path()
ととかやる。
Jul 20, 2008
zodbのpack
ふとみたらzodbのサイズが13GB。
packかけたら1時間以上かかった。いまでは200MBぐらい。なんですかこりゃ。
May 09, 2008
ClockServer
メモ。Zopeでcronの代わりに。
Apr 01, 2008
Zope+Apache
以前に書いてなかったけ?
- VirtualHostMonsterの設定は何もいらない
-
RewriteEngine On
RewriteRule ^/(.*) http://localhost:9673/VirtualHostBase/http/www.example.com:80/VirtualHostRoot/$1 [L,P] - 上はVirtualHostで囲う。この場合はwww.example.comをVirtuialHostで動かす。
- mod_rewrite mod_proxy関係のロードが必要なのをお忘れなく。proxy.loadだけでなくproxy_http.loadも必要。
- Debianだろproxyの利用が制限されている。proxy.confを見ること。Allow allとかね。
Jul 18, 2007
DebianのZope2.9とZope3.3
Zope2.9とZope3.3を一緒にいれるとZope2.9が動かなくなる。
Traceback (most recent call last):
File "/usr/lib/zope2.9/lib/python/Zope2/Startup/run.py", line 56, in ?
run()
File "/usr/lib/zope2.9/lib/python/Zope2/Startup/run.py", line 21, in run
starter.prepare()
File "/usr/lib/zope2.9/lib/python/Zope2/Startup/__init__.py", line 98, in prepare
self.startZope()
File "/usr/lib/zope2.9/lib/python/Zope2/Startup/__init__.py", line 257, in startZope
Zope2.startup()
File "/usr/lib/zope2.9/lib/python/Zope2/__init__.py", line 46, in startup
from Zope2.App.startup import startup as _startup
File "/usr/lib/zope2.9/lib/python/Zope2/App/startup.py", line 33, in ?
import OFS.Application
File "/usr/lib/zope2.9/lib/python/OFS/Application.py", line 28, in ?
from App.ApplicationManager import ApplicationManager
File "/usr/lib/zope2.9/lib/python/App/ApplicationManager.py", line 36, in ?
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
File "/usr/lib/zope2.9/lib/python/Products/PageTemplates/PageTemplateFile.py", line 28, in ?
from PageTemplate import PageTemplate
File "/usr/lib/zope2.9/lib/python/Products/PageTemplates/PageTemplate.py", line 26, in ?
from TAL.TALInterpreter import TALInterpreter, FasterStringIO
File "/usr/lib/zope2.9/lib/python/TAL/TALInterpreter.py", line 30, in ?
from zope.i18nmessageid import Message, MessageID
ImportError: cannot import name MessageID
ライブラリの問題だというのははっきりしている。Fiveから提供されるzope.i18nmessageidを使わずにZope3のzope.i18nmessageidをloadしているせいだ。えーと、どうしたらいいんだろ。めんどくさいので出力貼り付けてBTSに投げといた。あとはまかせた。
Apr 29, 2007
DebianのZopeインスタンスの作り方
メモ
dzhandle -v -z 2.10 make-instance plone-3.0 -m all
/home/user/zopeの下に作成される。
Apr 05, 2007
getDefaultSortingというエラー
sargeからetchにupgrade。Zopeが2.7から2.9に変更するとエラーが起きる。
NameError: name 'getDefaultSorting' is not defined
という内容。
探したら対処法がみつかった。ExternalEditorをProductsから削除すればいいとのこと。なんかよくわからんが、そのとおりやったら直った。
あとで理由は考えよう。
Mar 04, 2007
GenericSetupを使う
GenericSetupを使ったPloneのプロダクト作成をがんばる。
現在ProductのExtension/Install.pyにごちゃごちゃとpythonのコードが書かれていて見通しが悪くなっている。それをGenericSetupにしてしまえば目的別のxmlファイルとなって一気にきれになる。QuickInstllerでもインストールできるが、GenericSetupに投げるだけのコードになっている。しかしわずか数行でおしまい。人によっていろいろと違う書き方がしてあってやなもんでしたが、これである意味標準化される。
思想としてMVCの一環かなという気がしないでもない。Content Typeの扱いなんかそう。今はArchetypesを使ってかなりテンプレート化した書き方が可能となっているけど、modelとcontrollerが入り混った感もある。pythonのクラスはODBにつっこむだけのデータだけと思えば、actionなんてものは外から与えるべきではないのか、という考え方は正しいと思う。modelとしてのclass、actionはGSから与える。メタデータもContent Typeにもともとあるわけではない、Ploneの側で必要だからメタデータ、だからGSで与える。確かにそうだ。
Zope3の考え方に従えば自然かなと。当然Viewをなんとかしろって話になるんだが、Zope3ならZCMLにadapterを定義してviewを定めるという方向なのかな。そこまではやってない。
ATAmazonが2.5で動かないので、直すついでに導入しようとしている。ごちゃごちゃと少しだけコードは書いたが、努力の過程はまた後日書く。
Dec 31, 2006
Zope 3 テスト
Zope 2 にも3の技術が導入されつつあるので、Zope 3 を少し触ってみる。
インターフェースを定めてアダプタを定義するわけですか。
ビューなども統一的な扱いになっているわけか。
ということをPlone 3.0に向けて応用していかなきゃいけないわけです。

