OSC2010 Tokyo/Fall で Plone 4 について発表
9月10日(金)、11日(土)に開催された オープンソースカンファレンス2010 Tokyo/Spring で Plone 4 についてしゃべってきました。
2週間経ってしまいましたが、話した内容とその裏側について説明していきたいと思います。
話した内容
発表資料: Plone 4 (プレゼンテーションモード)
資料は見ての通り Plone 4 のテストサイトに書いたものを、プレゼンテーションモードで表示して行ないました。(楽ちん) 普通の文章はプレゼンテーションモードでは表示されないため、プレゼン用のメモとして使えていい感じです。 (プレゼンテーションモード ― Plone 4 ユーザーマニュアル より)
内容としてはただ Plone 4 を紹介するのもつまんないのでこんなストーリーで話しました。
- 自己紹介
- Plone の普通の紹介
- Plone 4.0 がリリースされました
- Plone って「遅い」ってよく言われるよね
- ある部分では世界最速であることを証明します!
- 世界最速インストールのデモ
- 世界最速拡張インストールのデモ
- 世界最速セットアップンのデモ
- 世界最速コンテンツ作成のデモ(ページ、アルバム)
- その他便利機能の紹介
- コミュニティ活動の紹介
デモ以外はまぁ資料を見てのとおりなので、このあとはデモでやった内容について詳細に説明します。
世界最速インストール
なにもないところから、 buildout を使用して Plone 4 をインストールして起動するところと、その後追加機能となるプロダクトをインストールして使用できるところまでをデモで見せました。
このネタ自体は EuroPython 2010 で誰かが5分でPlone サイトを作るデモをやっていたのを twitter で知ったので真似てみようと思ったのが発端です。
インストール手順自体は資料に書いてある通りこんな感じです。 ちなみに本場のデモ環境は諸般の事情により VMWare 上の Ubuntu で行ないました。非力な PC ではなかなか辛かったですね...
% virtualenv osc2010 --no-site-packages --distribute % cd osc2010 % bin/easy_install ZopeSkel % bin/zopeskel plone3_buildout plone4 % cd plone4 % ../bin/python bootstrap.py % vi buildout.cfg # eggs = PIL を追加 % bin/buildout -v % bin/instance fg
やっていることはこんな感じです。
- virtualenv で何も無い環境を作成する
- ZopeSkel をインストールして plone を buildout でインストールするときの雛形を作れるようにする。
- bin/zopeskel plone3_buildout で buildout 環境を作成する。
- あとは buildout を実行するだけ。
ちなみに、 bin/zopeskel での対話シェルの内容はこんな感じです。バージョン番号が 4.0 なのと、管理者パスワードを初期設定するのみです。
Expert Mode? (What question mode would you like? (easy/expert/all)?) ['easy']: Plone Version (Plone version # to install) ['3.3.4']: 4.0 Zope2 Install Path (Path to Zope2 installation; leave blank to fetch one!) ['']: Plone Products Directory (Path to Plone products; leave blank to fetch [Plone 3.0/3.1 only]) ['']: Initial Zope Username (Username for Zope root admin user) ['admin']: Initial User Password (Password for Zope root admin user) ['']: admin HTTP Port (Port that Zope will use for serving HTTP) ['8080']: Debug Mode (Should debug mode be "on" or "off"?) ['off']: Verbose Security? (Should verbose security be "on" or "off"?) ['off']:
で、実際はここで bin/buildout -v を実行すると、ネットワーク越しでパッケージを落としてくるため、ものすごく時間がかかります。これではとても5分では終わりません。
そこで以下のような裏技?を駆使して、5分でインストールが終わるようにしました。
世界最速プロダクトインストール
世界最速プロダクトインストールの手順は基本的に同じで、 buildout.cfg に追加したいプロダクトのパッケージ名を記載して bin/buildout を実行するだけです。
buildout.cfg に以下を追加。
eggs =
Products.PloneSlimbox
Products.Collage
世界最速インストール用の環境
ここでは世界最速インストールとプロダクトインストールを行うための環境(裏技?)がどうなっているかについて説明します。
eggproxy
まず、 eggproxy をたてます。eggproxy は PyPI にアクセスするときの proxy として動作し、最初はネットワーク越しで取得して、二回目移行は同じパッケージはローカルにキャッシュしてあるものを渡してくれます。
eggproxy のインストールと起動はこんな感じです。
% easy_install collective.eggproxy % eggproxy_run
デフォルトでは /var/www に書き込むっぽかったので、書き込み権限を設定しました。これで localhost の 8888 ポートで eggproxy が立ち上がります。
次に、この eggproxy を使うように設定を書きます。
.pydistutils.cfg
easy_install コマンドが eggproxy を使うようにするために ~/.pydistutils.cfg に以下のように記述します。
[easy_install] find_links = http://localhost:8888/ index_url = http://localhost:8888/
これで、 easy_install ZopeSkel のときに eggproxy 経由でパッケージをダウンロードするようになりました。
.buildout/default.cfg
次に buildout も同じように eggproxy を使用するように ~/.buildout/default.cfg に以下のように記述します。
また、それだけではなく egg のキャッシュを使うようにします。
[buildout] index = http://localhost:8888/ eggs-directory = /home/takanori/eggs newest = false
これで、easy_install でも buildout でも同じように eggproxy 経由でパッケージをインストールすることができるようになり、必要なパッケージが全てキャッシュされていれば、5分程度でインストールができるようになります。
世界最速セットアップ
世界最速セットアップでは、設定画面で手で実行した内容(チェックボックスのオン/オフやプロダクトのインストール)を実行する専用プロダクトを作成して実現しました。
ソースコードはちょっと汚いですが以下に置いておきます。
http://bitbucket.org/takanori/osc2010.policy/
基本的には、手で行う設定作業の前後を portal_setup の Snapshots で保存しておき、その差分を Comparison タブでチェックして元のデータを作成しました。
あとは、このプロダクトの profiles/default の下に各種設定を行なう GenericSetup 用の XML ファイルを作成しました。
あとは、このパッケージ(osc2010.policy)を buildout でインストールできるために、egg を手で作成して egg のキャッシュディレクトリに置いておきました。あまりおすすめの方法ではないですが、とりあえずデモとしてインストールして見せるためにこのような手を使いました。
正しい方法としては PyPI にちゃんとアップするか、mr.developer でソースをどこかから落としてくるか、find_links で応答できるような自前サーバに入れるべきかなと思います。
世界最速コンテンツ作成
最速コンテンツ作成では、外部エディタを使用してのページ作成と、WebDAV 経由での画像まとめてアップロードについてデモをしました。
世界最速ドキュメント作成
サイトと個人設定が外部エディタに対応していると、Plone のページなどのコンテンツを自分が普段使っている emacs や vim などのエディタで編集します。 また、その場合は HTML を直接記述するのではなく reStructuredText のようなマークアップ言語を使うと非常に効率的です。
なお、外部エディタを使うためには External Editor Client をエディタが動作する PC 側にインストールする必要があります。
エディタで編集して保存するとすぐにページの内容が書き換わるので、ミーティングの議事録を外部エディタを使って作成すると、終了時には議事録が整形された形で公開されているみたいなことができます。
- Zope External Editor Client Windows/Linux 用
- Zope Edit Manager Mac OS X用
世界最速アルバム作成
Plone ではフォルダに画像を沢山配置して、アルバム形式で表示すると、簡単にフォトアルバムが作成できます。(アルバムの例: photo)
このデモでは画像をまとめてアップロードするために、ここでは Enfold Desktop という Windows 用のアプリケーションを使用しました。
このアプリケーションを使用すると、ローカルPCのフォルダから Plone サイトのフォルダへドラッグ&ドロップで複数の画像をコピーできるので楽です。 (サイズが大きい画像の場合は、先にリサイズしておくことをおすすめします)
ここでは説明しませんでしたが、別にこの Enfold Desktop を必ず使用する必要はなく、汎用の WebDAV クライアントを使用したり、FTP(buildout.cfg を編集してFTPを有効にする必要あり)で put することも可能です。
-
- ¦
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
- トラックバック用URL:
- http://takanory.net/takalog/1248/tbping
鈴木たかのりです。とりあえず日記っぽく雑多なことを書き込んでいこうと思っています。
zope/plone関係の技術的な内容については