2009-08-18

COREBlog2とbuildout

ただいま構築中のPlone3.2.2 は、ほぼ(手探りですが)buildout を使っています。

ただし、最初はUnifiedinstallerを利用しました。そこからちょっとづつカスタマイズして作っている、という感じです。

いったんbuildoutに慣れると、外部ネットワークへつながっている限りは、ソースのダウンロードからコンパイルまで勝手に行ってくれるし、依存関係は解消してくれるので、なかなか便利で手放せなくなって来ます。

でも、buildoutに対応していないプロダクトもあるので、そこは従来どおり自分でソースを取得して、Productsディレクトリにソースを展開しないといけません。

COREBlog2やjaMailHost、PoiなどはProductsディレクトリに追加しています。これらのプロダクトも、起動時にコンパイルではなく、buildoutの時に一緒にコンパイルをしてくれるのは有難いことです。

さて、そうした中で、毎回COREBlog2のコンパイル時に、こんなエラーメッセージが出てしまいます。

……………

Updating unifiedinstaller.
Updating precompile.
  precompiling python scripts in /usr/local/Plone/zinstance/products
Compiling /usr/local/Plone/zinstance/products/COREBlog2/migration_stuff.bak/port.py ...
  File "/usr/local/Plone/zinstance/products/COREBlog2/migration_stuff/port.py", line 179
    return printed
SyntaxError: 'return' outside function

precompiling python scripts in /usr/local/Plone/zinstance/parts/productdistros

 

さて、こういうエラーが出ても、一応Zope & Ploneは立ち上がってくれます。

気にしないでおこう….と思っても、やはり気になるもの。
調べてみると、同様の症状について書かれているBlogのエントリがありました。

データの移行などは無いので、特に動作に問題はなさそうなので、このまま(見なかったこと)にしておくことにしました。

2009-08-14

Windows Update: KB973869 (Windows Server2003 x64) Fail?

8月のMicrosoftのセキュリティ情報が公開されたので、早速お世話になっているサーバをWindows Updateしました。

たいていは単純にUpdateするだけで、自動でパッチが当たってくれるのですが、今回はなにやら不具合が。

サーバの中に、 x64bit のものが複数あるのですが、一回目、二回目の再起動でたいていUpdateが終わるはずが、何回試しても『KB973869』というパッチが当たってくれません…。

32bitのサーバでは、問題なし。

でも、64bitだとうまくいかない、というか、残りのパッチが無いか確認のためにブラウザからWindows Updateを開くと、何度当ててもKB973869というエントリが消えてくれないのです…。

個別に履歴を見てみると、『成功』で終わっているのですが。

心配になって、Windowsupdate.logと、KB973869.logを参照してみると、いちおう、FatalとかErrorのような文字はなく、"Content Install Installation Successful "というメッセージが。

とりあえず、ログを信用して、適応されてるものとしました…。

2009-08-13

Bloggerのフィード設定

実は、Blogについては、意外といろいろ試したことがあります…。オープンソースだとMT,WordPress,COREBlog2(Plone), .Text (.NET)。サービス用だと、goo Blogとか。

#でも、どれも中途半端になってしまっており、そういう点がわたしの至らないところです。

さて、Bloggerは、最近始めたばかり。

(とは言っても、Blogという言葉が世に出だした頃、多分5年以上前に、Bloggerは一度試したことがあります。ただ、あまりよく判っていなかったので、アカウントを作っただけで終わってしまいました)

更新はFeedでチェックするのですが、Bloggerはどうなのかな、と思って設定を調べたので、メモ。

Bloggerの場合はこちらにヘルプがあります。

http://www.google.com/support/blogger/bin/answer.py?answer=97933&&hl=en (英語のみ)

通常のFeedは、各Blogのリンクや、HTMLのヘッダ<link rel="alternate" type="application/rss+xml" …/>で判りますが、コメントだけのRSSや、タグ(カテゴリごと)のFeedの提供もしているようです。

こちらのBlogの場合、こんな感じです。

[指定のタグのPOSTのRSS]

タグ別に取得できるのは便利ですね。コメントの場合は、posts –> comments に変更すれば良いそうです。

ついでに色々とBloggerのヘルプを見てみると、テンプレートでかなりカスタマイズできるんですね。そこまでは設定しないとは思いますが…。

Bloggerのフィード設定

実は、Blogについては、意外といろいろ試したことがあります…。オープンソースだとMT,WordPress,COREBlog2(Plone), .Text (.NET)。サービス用だと、goo Blogとか。

#でも、どれも中途半端になってしまっており、そういう点がわたしの至らないところです。

さて、Bloggerは、最近始めたばかり。

(とは言っても、Blogという言葉が世に出だした頃、多分5年以上前に、Bloggerは一度試したことがあります。ただ、あまりよく判っていなかったので、アカウントを作っただけで終わってしまいました)

更新はFeedでチェックするのですが、Bloggerはどうなのかな、と思って設定を調べたので、メモ。

Bloggerの場合はこちらにヘルプがあります。

http://www.google.com/support/blogger/bin/answer.py?answer=97933&&hl=en (英語のみ)

通常のFeedは、各Blogのリンクや、HTMLのヘッダ<link rel="alternate" type="application/rss+xml" …/>で判りますが、コメントだけのRSSや、タグ(カテゴリごと)のFeedの提供もしているようです。

こちらのBlogの場合、こんな感じです。

[指定のタグのPOSTのRSS]

タグ別に取得できるのは便利ですね。コメントの場合は、posts –> comments に変更すれば良いそうです。

ついでに色々とBloggerのヘルプを見てみると、テンプレートでかなりカスタマイズできるんですね。そこまでは設定しないとは思いますが…。

2009-08-08

TypeError: len() of unsized object (Plone3.2.2)

今回のエラーは、Ploneのコンテンツルールの拡張用プロダクトを追加した際に発生しました。
※追加プロダクトは、collective.contentrules.mailtogroup です。


Plone3.xには、コンテンツルールという機能が追加されました。

こちらは、コンテンツが指定の条件にマッチすると、登録しておいたアクションを実行してくれるという機能です。(SQLで言うところの、トリガのようなものでしょうか)

たとえば、こんなことができます。

  • ニュースコンテンツを編集し、『非公開』から『公開』に遷移させた時に、指定のメールアドレスにそのURLやタイトルを送信する。
  • 指定のフォルダの配下のコンテンツを削除したり更新した場合、バックアップ用のフォルダにコピーを作成する。

Plone2での利用中も、こういう機能は欲しかったのですが、とてもそんなカスタマイズやコーディングは無理でしたので、あきらめていました。出来るとしても、プロダクト個別対応くらいで、すべてのコンテンツタイプに適用できるようにPloneのコアの部分をいじるというのは、もっと無理です(^^;

それがPlone3.xでは、コードを書かなくとも、ニーズの高い条件とアクションが標準的に用意されていて、プルダウンやチェックボックスで選択して条件やルールを組み合わせることができるようになっていました。

用意されているアクションは、メール配信のほかには、コピーやバックアップ、ロギングなど。また、作成したルールも、コンテンツタイプやフォルダの場所に応じて使い分けが可能です。

使ってみたところ、なかなか良い感じだったので、冒頭で触れた、この機能の拡張用のプロダクトを追加してみることにしました。
手順は、buildout.cfg の[instance]セクションで、eggs & zcmlにcollective.contentrules.mailtogroupのエントリを追加するだけです。
あとは、buildout –> Ploneの管理画面から普通に プロダクトを追加。

これで、コンテンツルールのアクションの一覧に、『Plone上のグループ宛(グループに属するメンバー宛)にメールを送信』(Send email to groups and members) する項目が増えました。

Plone: Contents Roules 

さて、じゃあ実際に試してみようとすると…。

2009-08-07T14:16:31 ERROR Zope.SiteErrorLog http://………………/Plone/++rule++rule-1/+action/plone.actions.MailGroup
Traceback (innermost last):
  Module ZPublisher.Publish, line 119, in publish
  Module ZPublisher.mapply, line 88, in mapply
  Module ZPublisher.Publish, line 42, in call_object
  Module zope.formlib.form, line 770, in __call__
  Module zope.formlib.form, line 885, in render
  Module zope.formlib.form, line 764, in render

……[長いので略] …………

Module zope.tales.tales, line 696, in evaluate - URL: /usr/local/Plone/buildout-cache/eggs/plone.app.form-1.1.6-py2.4.egg/plone/app/form/widgets/ubermultiselectionwidget.pt - Line 15, Column 2 - Expression: - Names: {'args': (), 'context': , 'default':  …………..

Module zope.tales.pythonexpr, line 59, in __call__
   - __traceback_info__: (len(options['value']) == 0 and 'display: none' or None)
  Module <string>, line 0, in ?
TypeError: len() of unsized object

プルダウンで選択し、条件を登録しようとしたところでエラーが発生!

調べてみたところ、どうやら、このバグに該当する模様でした。

トラッカーのチケットを見ると、バグはFixされているようですが、リリースPlone3.3での反映になるようなので、取り急ぎ、差分を適用させることに。と言っても、2行程度のコード追加だったので、助かりました。

ただいま、PloneはUnified Installerをベースにbuildしたものなので、以下のファイルを修正。そのあと、bin/buildout –n しました。

  • /usr/local/Plone/buildout-cache/eggs/plone.app.form-1.1.6-py2.4.egg/plone/app/form/widgets/uberselectionwidget.py

こういう修正の仕方は初めてだったのですが、buildout-eggsにダウンロードされたものは、再度ダウンロード&上書きされることは無かったので、いちおう変更は反映されて、OKになったようです。

良かった…。

2009-08-07

Windows Live Writerを使ってみる。

もしかして、「今さら何言ってるの?」と言われそうですが、Windows Live Writerを使ってBlogの記事をPOSTしてみることにしました。

きっかけは、最近復活した、河端さんのBlogで。

#Blogを復活してくださって、とても嬉しいです!実は、PASSJが休会し、Blogも停止してしまったので、どうしようかなあと思いBloggerをはじめたものですから…

プレビュー画面です

 

よし、早速インストールしてみよう!と思ってダウンロードサイトに行くと、すでにOSにインストール済みの模様。Windows Live Messangerを入れた時に、一緒に入ったらしいです…。

(ちなみに使っているOSは未だXPで、MessangerはWindows Live Messangerではなく、Windows Messangerのほうを使っています)


実は、ちょうどPlone付属のエディタの不具合をチェックしていたところでした。どうしてもうまくいかない場合は「外部エディタ」というもので対応しようかな…とも考えていたところに、こちらのWindows Live Editorに遭遇。

残念ながら、Plone上で使っているCOREBlog2は、選択できるブログの一覧にはなかったので、このBloggerで試すべく、記事を書いているところです。

河端さんのご指摘のとおり、特にプレビューがいい感じです。

Bloggerの場合、Webからでもプレビューできますが、HTTP通信の関係で遅く感じたりします。また、画面も少なからず遷移します。

こちらのLive Writerだと、切り替えが非常にスムーズな印象があります。

もう少し使ってみようと思います。