Plone Conference 2013 参加レポート

Plone Conference 2013 参加レポート #2

前回に続き、Plone Conference 2013の参加レポートです。2日目と3日目のイベント内容と、その翌日のスプリントの模様をお届けします。

カンファレンス2日目

まずは、2日目のセッションとライトニングトークの模様、そして夜に開催された公式パーティーについて紹介します。

セッション紹介6
How to get started with the Pluggable Authentication System(スピーカー:Matt Hamilton)発表資料

長年、Plone FoundationのBoard Memberとしてマーケティングを担当している、イギリス、ブリストル在住のMatt Hamilton氏の発表です。彼とは、2010年にブリストルで開かれたPloneカンファレンスでインタビューをさせていただいた時から、お互い話をする仲になりました。今回は、ブラジリア空港の手荷物引取り場で偶然会うことができ、1年ぶりの再会を喜び近況報告をしていました。

前日のソーシャルイベント(飲み会)明けの朝ということもあり、セッションの参加者は前日より少なく感じました。

セッションの内容は、 Plone PAS (Pluggable Authentication System)の事例を交えた、実装方法の簡単な説明でした。PASはPloneの認証システムを別のものに置き換えたり、追加したりする仕組みです。このセッションでは、Windows認証やaspx認証の連携の例を紹介していました。Zope Interfaceを用いることで、必要最小限のメソッド実装で追加の認証ができるというコードレベルの説明がありました。

私自身、過去に数個の専用PASを構築したことがありますが、ドキュメントの整備が不十分で、概念的に難しい部分があります。このような話をカンファレンスで聞くと事例が増えていないのだと思います。セッション中も「PASは簡単で良い機能だけどわかりにくいよね」ということを話していました。

セッション紹介7
Multilingual sites with Plone(スピーカー:Ramon Navarro Bosch)発表資料

Ploneは古くから複数言語をサポートし、コンテンツの多言語対応などもサポートしています。以前は、 LinguaPloneというプロダクトが使われていましたが、実装が古く、最新のコンテンツタイプシステムのDexterityコンテンツタイプにも対応していませんでした。昨年から急ピッチに、plone.app.multilingualプロダクトの開発が進み、非常に使いやすい仕組みができあがってきています。

セッションでは、他のCMSでの多言語への対応状況が表形式で紹介し、Ploneも同等またはそれ以上に対応ができることを説明しました。さらに、plone.app.multilingualの紹介と、現状の報告がありました。

Ploneの次期メジャーバージョンアップのPlone 5に向けて、plone.app.multilingual 2.0の開発が進んでいるということでした。

日本でも、日本語だけではなく、英語や中国語でのコンテンツ配信を行うケースが増えています。それらの対応がしやすくなり、便利に使えるものを期待しています。

Multilingualセッション
画像

セッション紹介8
Open Source Security - A vendor’s perspective(スピーカー:Matthew Wilkes)発表資料

Ploneのセキュリティチームを牽引している、Matthew Wilkes氏の発表でした。Ploneはセキュリティに強く、問題発生時のワークフローも決まっていて頼もしい限りなのですが、これらを支えているのが、彼らのセキュリティーチームです。

問題解決をどのようにしているかということの解説や、CVEへの登録などの説明がありました。今後の活動も期待したいと思います。

Matthew Wilkes氏
画像

セッション紹介9
ZODB transactions. Getting to know the transaction package(スピーカー:Carlos de la Guardia)

Ploneのコンテンツを保存するデータベースシステムは、オブジェクト型データベースのZODBという仕組みを使っています。Ploneにはこのデータベースシステムがあるからこそ、コンテンツの保存の柔軟性、階層構造化、セキュリティシステムなどが成り立っています。

RDBMSとは違った特徴を持つZODBならではの、技術的な説明や使う際のポイントなどを解説していました。特に、トランザクションがサポートされていて、処理が終わると自動で保存される点や、ZRSなどのバックエンドの多重化の仕組みが話題になっていました。2相トランザクションコミットがサポートされている点なども紹介していました。

普段、CMSの表側を見ていると気にならないポイントであるデータベースのコアな仕組みですが、Ploneを支える技術ととして面白いセッションでした。

セッション紹介10
Plone and Sharepoint(スピーカー:Matt Hamilton)発表資料

2日目の朝に登壇した、Matt Hamilton氏が同日の最後にも再登場。今度は、PloneとマイクロソフトSharepointで連携がテーマでした。

コンテンツをSharepointから受け取ったり、ユーザやその他のデータのやり取りを行う話題でした。時折、Plone vs Sharepointといった比較がされることがありますが、両方の長所を活かした使い方の事例として面白いものだったと思います。

Ploneとの連携を行うことは、デザインカスタマイズが容易にできる点やユーザ数によるライセンスフィーが発生しない点などメリットが有るようです。多くのユーザが使う部分にはPloneで見せて、Sharepointの機能を使いたいユーザにはそのまま見せるというような、棲み分けをして使っているようです。

ライトニングトーク

恒例のライトニングトークが、2日目の最終セッションとしてメインホールで開催されました。前半は英語でのトークが多く、短い時間でポイントのみを紹介する、様々なトークがありました。

後半はポルトガル語での発表が多くなり、私は楽しむことができませんでしたが、2人でステージ上に登場し、Flaskを用いてミニブログを短時間でつくり上げるというような面白い試みもありました。

このライトニングトークに私も登壇をしたいと考えていて、カンファレンス主催者にお願いをしていたのですが、うまく伝わっておらず、この日は登壇できませんでした。最後には呼ばれるだろうとドキドキして待っていたのですが、最後まで呼ばれることはなく、発表も半分くらいしか楽しめなかったのは残念でした。

初日のライトニングトーク
画像

パーティー

会場からタクシーで20分程度の湖の船着場で、Ploneカンファレンス公式パーティーが行われました。今回はパーティーチケットが別売で、カンファレンス会場でスタッフが販売していました。

夜の湖を見ながら、ビールや地元のお酒などを楽しむイベントでした。夜9時30分から深夜2時までと夜の長時間イベントでしたが、多くのPlone関係者が、お酒を楽しみながら各人様々な話をしていました。DJブースもあり、踊りを楽しんでいるメンバーもいたり、楽しみ方は人それぞれでした。

私は、顔なじみのメンバーと共に、最近のPlone事情やそれぞれ地元でのPloneの状況の話をしたり、近況報告などをしていました。地元ブラジリアから参加している方とも話をすることができました。

他の参加者から「日本にも行ってみたいので、Ploneイベントを開催して欲しい!」と打診される場面もありました。各国事情も違い、普段はオンラインでのやりとりが中心ですが、このようなパーティーは本当に面白く、すぐに時間が経ってしまいました。

私はさすがに深夜2時までは付き合えず、12時頃にタクシーで先にホテルに戻りました。

パーティー
画像 画像

カンファレンス3日目

最終日となる、カンファレンス3日目。注目のセッションと、私自身の発表について紹介します。さらに、この日も行われたライトニングトークと最後のクロージングの話題も取り上げます。

セッション紹介11
Plone+Salesforce(スピーカー : Sally Kleinfeldt)発表資料

アメリカのNPO法人向けに、PloneとSalesforceを連携したWebサイト構築をした事例を紹介していました。Ploneでは定番のフォーム生成プロダクトPloneFormGenを使って、CRMであるSalesforceにデータを直接投入するプロダクトや、Salesforce経由でログインするプラグイン、PayPal決済を行うプラグインの紹介がありました。今後は、これらプロダクトの依存関係を少なくし、ばらばらで使えるようにパッケージを作りなおして行く予定のようです。

セッション(Plone+Salesforce)
画像

セッション紹介12
PloneSocial Roadmap(スピーカー:Guido Stevens)発表資料

PloneSocialというプロダクトの紹介でした。他の部屋でのセッションとのタイミングで少し遅れて会場入りしたため、最初の部分が聞けなかったのが残念でした。しかし、このプロダクトは興味深いものでした。

Plone内部に、Twitterのようなマイクロブログを展開できる仕組みです。セッション中は、今後のロードマップなど機能アップの予定を発表していました。プロダクトの概要はデモビデオを参考にしてください。

社内のイントラネットなどで使うなど、面白い用途がありそうだと思いました。

セッション紹介13
Plone a success in security - Results from BSI CMS Security Study(スピーカー:Alexander Loechel)

今回のカンファレンスで3つ目のセキュリティ関係のセッションです。私自身がセキュリティに興味を持っていることもあり、このセッションにも参加しました。

Alexander Loechel氏は、来年のPlone Foundation Boardメンバーになり、セキュリティ面からマーケティングを行いたいという意向を持っているようです。彼とは昨年のカンファレンス後のSprintで隣の席になり、簡単な日本語で挨拶をされびっくりしたという思い出があります。Loechel氏はドイツのミュンヘンに住んでいるのですが、奥様は日本人で日本にも何度か来たことがあるそうです。さらにお子さんが日本語を話すので簡単な挨拶は日本語でできるそうです。

セッションでは、Ploneはセキュリティチームの牽引の元、多くのセキュリティ対策を迅速に行なっている点などが評価されており、ドイツでもそのような評価が進んでいるということでした。

セッション内で気になったこととして、管理しているサイト一つあたり1日15分はセキュリティに目を配る必要があり、そのような体制を組むことが、セキュリティパッチの適用など、実運用の中で対策をする上で重要だということを話していました。実際に1日15分という時間をかけて、すべてのサイトの巡回を行うことはできていませんが、今後一つの指標にして考えても良いのでは、と思いました。

私自身の発表
Fuzzy Search on Plone and Search for East Asian Language(スピーカー : Manabu Terada)発表資料

今回、私自身がブラジリアに乗り込んだ一つの理由である、自身のプロダクトを紹介するセッションです。昨年のPloneカンファレンスのライトニングトークで紹介したところ、大きな反響をいただきました。そのため、詳しく説明する機会を設けようと思い、今年はセッション枠の希望を出してセッションを受け持つことができました。

このセッションでは、日本語をはじめとする東アジア言語について紹介し、さらに多くの言語に対応しているPloneで今後もサポート言語を増やしていくために、ヨーロッパ言語以外の自然言語へ理解を深めてもらいたいという思いがありました。さらに、メイントピックとして、Googleライクな曖昧検索をPlone内部だけで実現している、c2.search.fuzzyプロダクトの紹介をしました。

難しいキーワードがあるのですが、実際には単純な仕組みになっているため、それを理解してもらい、現在、英語と日本語のみでテストされているこのプロダクトを、多くの言語に対応させたいと考えています。

セッションは無事に終わったのですが、2つの問題がありました。まずは、私の英語がつたな過ぎて、面白く伝えたい部分を伝えきれなかったということ。もう一つは、Ploneの数年後を話し合う「Plone 2020」というオープンスペースでの会議が同時刻に開催され、Plone関係者の多くが、別の場所で1時間以上にもわたって大激論をしていました。少し残念でした。

オープンスペース Plone 2020
画像

しかし、海外のカンファレンスで発表をしてくるという、私自身の初めての試みは無事に終了しホッとしたのは事実です。いい経験になりました。

3日目のライトニングトーク

3日目の最終日にもメインホールでライトニングトークが開かれました。

まずは、Plone Foundationから2つの発表がありました。

  • 来年度のボードメンバーの紹介
    • カンファレンス1日目のFoundationミーティングで決まった来年度のボードメンバーがこの場で改めて紹介されました。
  • 来年のPloneカンファレンスの場所
    • 投票を行っていた来年のカンファレンスが、イギリスのブリストルで開かれることになりました。

次に、ライトニングトークですが、トップバッターは、前日できなかった私になりました。

ライトニングトークでは9月に東京で行った、PyCon APAC 2013 in Japanの紹介を行いました。来年は、台湾でPyCon APAC 2014が開催され、日本ではPyCon JP 2014が開催予定なので、来てほしいという思いと、地球の裏側でも同じようにカンファレンスをやっていることを知ってもらいたかったということで、日本の紹介を含めて行いました。200人以上の前で、大きな舞台の上での発表でしたが、少し落ち着いて話ができたと思います。

ライトニングトーク後にPyCon APACのお土産を渡した人たち
画像

他にはギターを持ってブラジルの歌と思われる物を演奏しながら、何かを紹介するというような面白いトークもありました。

歌をうたうライトニングトーク
画像

クロージング

カンファレンスの最後に、来場者へのプレゼントと主催者から閉会の挨拶がありました。

プレゼントはスポンサーなどから提供された、ノベルティやサービスの利用券が抽選で当たるものです。画面に参加者氏名がランダムに表示される抽選プログラムで当選者を決めていました。カンファレンスの参加人数は多かったのですが、その場のクロージングにいない方も多く、何度も繰り返し抽選をしていました。

カンファレンスでのプレゼント抽選方法は日本でのイベントでも悩むのですが、難しいというのは万国共通のようです。この抽選プログラムで面白かったのは、Pythonの作者である、⁠Guido Van Rossum⁠氏の名前が時たま登場するところでした。もちろん会場にいないことは明らかで、周知の事実でしたが笑いのポイントとして、プログラム作者が入れていたようです。

10枚以上あったTシャツは、ステージ上から参加者に投げていました。私の近くには投げ込まれなかったので残念ながらゲットすることはできませんでした。

最後に主催者から挨拶がありカンファレンスが終わりました。

最後のアナウンスとして、翌日の開発スプリントについてアナウンスがありました。カンファレンス会場と同じ場所で開催を予定していましたが、急遽会場変更となりました。しかし、この時点で会場が決まっておらず、深夜にならないと決定しないということでした。

開発スプリント参加用にフォームがあるので、そこへの登録を促し、メールでの連絡をするとのことでした。さらにTwitterなどでも情報が流れるので注意して見ていてほしいとのことでした。

無事にカンファレンスが終わり、ホテルへ戻る際は、大雨が降っており金曜日の夕方ということも重なりタクシーを捕まえるのに苦労をしました。しかし、現地の参加者が私に声を掛けてくれ、ポルトガル語のできない私にタクシーを呼んでくれホテルの場所を運転手に伝えてくれ、とても助かりました。このような心遣いは非常に嬉しいものです。

開発スプリント

恒例となっている、カンファレンス後に開催される開発スプリント(Sprint)です。各国から多くの開発者が集まっているため、この場で議論したり、一緒に開発を進めるためにPyCon USをはじめ多くのカンファレンスで併設されています。

今回は、カンファレンスの後2日間と別の都市に移って4日間行われました。別の都市とは、ジョアンペソア(Joao Pessoa)という場所でブラジルでも有数の観光ビーチでの開催となりました。

私は時間の関係で、カンファレンスの直後のSprintに1日だけ参加してきました。

Sprintの雰囲気(1)
画像

スプリントの意義

開発スプリント(Sprint)は、Plone本体の改善やバージョンアップ、アドオンプロダクトの開発を効率的に進めるために行われています。開発の役割や目標ごとに複数人でグループを形成し、顔を合わせて相談や議論を行いながら、互いに集中力を高めて開発を進めます。新たな協力者に対しては、チケットやコードのコミットの仕組みなど技術的な教育を行う場でもあります。他には、今後のマイルストーンを話しあう場にもになっています。

スプリント参加者の多くは、Ploneやその周辺の開発に関連している人がほとんどです。しかし、カンファレンスで興味を持ち新たな協力者が現れることもあります。そのようなPloneコア開発者への仲間入りをしたい人たちに、コミット権限のルールを理解してもらい、その場で文書にサイン(署名)をすることでコミット権限をもらうこともできます。

Note:
Ploneのコアコードへのコミットをするためには、 INSTRUCTIONS FOR PLONE FOUNDATION CONTRIBUTOR ASSIGNMENT AGREEMENTにサイン(署名)をし承認を得る必要があります。これは、ソースコードの知的財産管理をPlone Foundationに一任し、今後の混乱を防ぐために行っている手続きです。承認されると、GitHub上でコントリビュータの設定が行われ、コードをコミットできるようになります。

日本からのバグリスト

今回は、このスプリントのために日本のPloneメーリングリストで現状のPloneの不具合を募集しました。バグが4件ほど集まり、日本語・英語併記のリストを作成し現地に持参しました。

私が、⁠Bug fix for Japanese」と題したグループのオーナーとなりました。このグループでは日本語のバグやPlone本体のバグなど、このリストを順番に確認して修正していく作業を行いました。残念ながら私のグループにフル参加してくれる人はいませんでした。それでも、パーティーの時やTwitterなどでこのリストの存在を拡散した結果、Ploneコア開発者をはじめ、多くの人が協力を申し出てくれました。リリースマネージャーやコア開発者に隣で話を聞いたり、対応策を一緒に考えてくれるという素晴らしい環境に恵まれました。

Ploneの開発スプリントの一日は、朝にスプリントオーナー(リーダー)による課題の発表が行われ、その後は基本的に開発やディスカッションが行われます。そして一日の最後にオーナーにより成果の報告が行われます。

私もグループのオーナーなので、自分自身で持参したバグリストについて説明を行いました。

また、終了時の成果発表では、バグリストの対応が概ね終わったことを報告しました。しかし、1件のバグについて日本語向けだけに修正した所、Plone Fondationの代表から「他の言語でも困っているはずだが、なぜそのような対応なのか?」といった内容の質問が出ました。

このバグに対する対応については、コア開発者のDavid Glick氏と相談して対応策を決めたので、David氏に説明してもらいました。彼いわく、このバグはPlone 5では使わなくなるプロダクトに依存していること、また、元々あまり良い実装でないことはわかっているが、今から手を付けるのにはコストが掛かり過ぎるため、日本語向けだけに対応したとのことでした。質問者は納得していない様子でしたが、仕方が無いという感じで引き下がりました。

このようなやりとりが直接できるところにも、開発スプリントとして関係者が一堂に会している良さがあると思います。

スプリント全体の印象

今回のスプリントは、前日まで会場が決まらずどうなることかと思いました。しかし始まってしまうと、スプリント全体のリーダーがすぐに決まり、朝のミーティングや昼食の手配(スプリントでは通常は食事は提供されない)も手際良く行われました。また、会場の環境なども素晴らしかったです。

会場での会話がしやすく、大きなテーブルを前にした成果発表では、議論が始まってしまうくらい盛り上がりました。

今回のスプリントでは約20個のグループが作られ、多くの成果がでていたようです。詳細は、次のページで確認できます。

私自身は残念ながら1日だけの参加でしたが、目標を達成することができました。また、多くの話が聞けたので満足感のあふれるスプリント参加となりました。

Sprintの雰囲気(2)
画像

次回予告

本稿では、カンファレンス2日目、3日目と開発スプリントについてお届けしました。

次回は、カンファレンスの主催者へのインタビュー、Ploneカンファレンスの感想、ブラジル行きの注意点などを紹介します。

おすすめ記事

記事・ニュース一覧