ngi644の日記

備忘録も兼ねています。

Thunderbirdでメールが消えてしまったときの対処

without comments

Thunderbirdは,定期的に最適化していないとカタログが壊れてメールボックスから消えてしまうことがあります.また,Thunderbirdは,最適化するまでは,メールは何も削除せず,削除フラグがついているだけですので,スクリプトを書いてそのフラグを変更してあげるだけで修正できます.

# -*- coding: utf-8 -*-
from __future__ import with_statement
writer = open('Inbox_new.txt','a')
with open("Inbox") as f:
    for i, x in enumerate(f):
        x = x.replace('X-Mozilla-Status: 0009', 'X-Mozilla-Status: 0011')
        writer.write(x)
        if (i % 10000) == 0:
            print i
writer.close()
print 'end'

Written by ngi644

6月 8th, 2010 at 4:36 am

Posted in Python

Plone4のpoファイルのコンパイルオプション

without comments

Plone 4のUnified Installerには、下記の記述がbuildoutファイルにないので、poファイルがコンパイルされない。そのため、自分で作ったプロダクト等の翻訳が適用されないで焦るときがある。そんなときは、下記の記述の確認をし、無ければ、buildout.cfgなどに追加してあげるとよい。

[instance]
environment-vars =
zope_i18n_compile_mo_files = true

以上、忘れずにメモしておく。

Written by ngi644

6月 4th, 2010 at 7:59 pm

Posted in Zope/Plone

Ploneのサイト管理でスキンカスタマイズ「Theme Editor」

without comments

Plone 4 の experimental に skineditor.cfg が追加されました。

1.Ploneのサイト管理でスキンのカスタマイズを可能にする 「plone.app.skineditor」

plone.app.skineditor は、ZMIにアクセスせず、Ploneのサイト管理からportal_skin, portal_view_customizationsの中のテンプレートやリソースをカスタマイズできるという優れものです。

旧来の、ZMIによるカスタマイズでは、portal_skin, portal_view_customizationsそれぞれの場所に行き、該当するファイルを探し出してカスタマイズする必要があり、手間が多く、ZMIは、Ploneの管理インターフェイスとは少し異なるので、抵抗がある人もいたと思います。

2.インストール

早速、 ./bin/buildout -c skineditor.cfg -n を実行します。

サイト設定に行き、Theme Editor 0.1devをインストール(有効に)します。

図1:有効にした状態 Theme Editorと表示される。

3.Theme Editorを使ってみる。

Theme Editorをクリックして、どのようなものか見てみます。

図2:Theme Editor画面

Skin Resource Editorというタイトルが表示され、スキンのリソースが一覧で表示されます。タイトルの下にある、検索ボックスで、テンプレートやリソース、Pythonスクリプト、JavaScriptを検索でき、隣のキーワードタグでフィルタリングすることができます。

4.試しにFooterを変更してみる。

では、試しにFooterを変更してみたいと思います。キーワードタグの中から、Viewletsをクリックします。Footerは、plone.footerという名前なのでそれを選択します。

図3:plone.footerを選択したところ

クリックすると、該当するテンプレートやインターフェイスを記したボックスが表示されます。まさにこのテンプレートを編集したいので、クリックします。

図4:テンプレートの内容が表示された。

ポップアップして、テンプレートの中身が表示されました。

CustomizeボタンをクリックしてCustomします。

図5:ビューのカスタマイズをしているところ

編集が終わったら、最後に、Save Changesをクリックして保存します。現段階では、ウィンドウが自動でクローズしないみたいなので、自分で「×」ボタンを押してクローズします。

図3の画面に戻ってみると、カスタムしたものが先ほどの項目の上に表示されています。そして、有効になっているので、赤色ので記されています。

図6:カスタムができ、項目が増えた。Customしたものは「In the database」となっている。

以上でカスタマイズが終了しました。

図7:Before
図8:After

5.おわりに

PloneのSkinカスタマイズは、ZMIにアクセスしないといけないのが、欠点でした。これと同時にインストールされる、Products.Glowormを使えば、ZMIに行かずにPloneの統一されたUIで作業ができるので、とても重宝しそうです。

Written by ngi644

5月 31st, 2010 at 7:10 pm

Posted in Zope/Plone

ubuntu 9.10 64bit でのeclipse

without comments

Ubuntu 9.10の64bitバージョンにEclipseをインストールしようとしたんだけど、追加のプラグインがインストールできない問題があった。

ボタンが押せないというトラブルらしい。

export GDK_NATIVE_WINDOWS=1

を記述したシェルスクリプトを用意してあげるといいみたい。

Written by ngi644

2月 22nd, 2010 at 3:31 pm

Posted in 64bit,Linux

Processing でのXML処理

without comments

Processing でWeb Serviceを使いXML処理をする際、今までは、proXMLを使っていたけど、これは、encodingをみて読み込んでくれない。そのため、Windows環境でencodingがUTF-8のXMLを読み込むと文字化けをおこしてしまう。

そう、今までは、日本語を扱うようなものを読み込んでいなかったので問題に気づかなかった。 そこで、SAX(http://www.saxproject.org/)を使うことにした。これは、XMLのencodingをみて読み込んでくれるため、問題なく日本語の処理ができる。

SAXは、DOMと違い、イベントで処理をする。最初は、なれなかったが、今回の目的にはSAXの方が向いていた。

Pythonにも、xml.saxがあるようなので今度使ってみよう。

Written by ngi644

2月 10th, 2010 at 2:37 am

Ploneのフォームで2重投稿を禁止するJSの回避方法

without comments

Ploneは、フォームで2重投稿を極力避けるために、jQueryを使ってアラートを出すようにしています。

これは、目的によっては、邪魔な存在なので、表示させない方法。

submitボタンのクラスに allowMultiSubmit を割り当てる。

以上で回避できます。

Written by ngi644

2月 2nd, 2010 at 1:49 pm

Posted in Zope/Plone

Windows版のPlone

without comments

Windows版のPlone 4は、portal_css, portal_javascriptsをデバッグモードにしておくと、非常に遅い!!!

スキンプロダクトの作成や、ビュー周りの検証をするときは、Linuxか、MacにインストールしたPlone 4を使うとよい。

Written by ngi644

2月 2nd, 2010 at 4:13 am

Posted in Zope/Plone

フォルダが作成出来ないと嘆いていたら。

without comments

Flashからフォルダを作成出来るようにしていたのですが、どうもうまく動かない。

プロセスもpermissionにも間違い無いはずなのに、なぜ動かないのだろう。

いろいろと調べていたら・・・

テスト環境にフォルダを作成する為のメソッド名と同名のPythonスクリプトが存在した・・・。

・・・・・・・・・・・・。

さあ、次に進むぞ。

Written by ngi644

1月 28th, 2010 at 3:11 am

Posted in Zope/Plone

反省

without comments

Flash部分にどのぐらいのコストをかけ、Ploneの部分にどのぐらいのコストをかけるかというのをはっきりとしておくべきだった。

反省・・・。

Written by ngi644

1月 28th, 2010 at 1:13 am

Posted in Zope/Plone

疲れた

without comments

タイトル通り。以上。

Written by ngi644-mobile

1月 27th, 2010 at 11:02 pm

Posted in Zope/Plone

Ploneのテキストフィールドのデフォルト文字

without comments

テキストフィールド欄にデフォルト文字を表示させたいとき、一般的には、jquery.fieldtab.jsを使う。

Ploneでは、このようなものが、簡単に最初から使えるようになっている。

方法は、input タグ内のTitle属性に表示させたい文字列を入力し、class属性に「inputLabel」を割り当てるだけで、実現できる。

Written by ngi644

1月 27th, 2010 at 3:59 pm

Posted in Zope/Plone

Flashアップローダに苦戦。

without comments

予想以上にPloneとの連携に手こずった。Plone用のFlashファイルアップローダを作成していたのだが、Flash Player 9をターゲットとした場合、大変だった。 次は、外にお願いしたい気分。PloneでFlashUploaderのプロダクトがあまり出てこないのも納得した。Plone的に、このセキュリティで大丈夫なの?と言うところがあったりする。

ちょっと愚痴っぽくなったが、勉強になったので良かったことにしよう。

Written by ngi644

1月 27th, 2010 at 1:22 am

テスト

without comments

テストする。

Written by ngi644-mobile

1月 26th, 2010 at 7:08 pm

Posted in mobile,日常

PloneへのFlashを使ったファイルアップロード

without comments

FlashのFileReferenceListで、まとめてファイルを取得することができる。このFileReferenceListは、browseメソッドを実行することでファイルダイアログ選択することができる。選択後、FileReferenceオブジェクトのArrayを持つので、このFileReferenceオブジェクトのuploadメソッドを使うことでファイルアップロードが出来る。

いろんなサンプルでは、取得したFileReferenceのArrayに対して、For each文を使いFileRefence.upload()を行いアップロードをしている。

ただ、この方法では、一気にPloneに対してアップロードを行うため、ほぼ、Confrict errorを起こす。

回避方法として、サンプルのようなFor eachを使わず、一つづつ確実にアップロードを行う。FileRefenceのFile upload completeイベントで、次のFileReferenceのuploadを行うようにする。

conflict errorを起こしてもZopeは再試行してくれるのだが、FileReference.upload()の仕様上、起こされると面倒な処理を記述する必要があるので、なくすように心がけた。

Flash Player 10以上で作っていいのなら、こんな面倒なことをしなくてもよさそうだけど・・・。

Written by ngi644

1月 14th, 2010 at 11:31 pm

Posted in Flex,Zope/Plone

アドオンプロダクトでプロダクト名が2重に表示される

without comments

Products.hogeとしたプロダクトのconfigure.zcmlに、<five:registerPackage package="." initialize=".initialize" />の記述があると、サイト設定のアドオンプロダクト項目でプロダクト名が2重に表示されてしまう。

この現象は、collective にあるプロダクトを参考にプロダクト開発を行い、configure.zcmlに記述してしまうとおきる。(自分がそう)

回避策として、<five:registerPackage package="." initialize=".initialize" />を削除する。 また、initialize関数でファクトリ・permissionの設定をしている場合は、zcmlベースの方法へ変更する。

Written by ngi644

12月 24th, 2009 at 5:46 pm

Posted in Zope/Plone