Plone Symposium Tokyo 2015 参加レポート

第1回Plone Symposium Tokyo 2015-Day 1:トークセッション編

Plone Symposium Tokyo 2015

2015年6月13日(土⁠⁠、14日(日)の2日間Plone Symposium Tokyo 2015が開催されました。Ploneは、Python製のエンタープライズ向けオープンソースCMS(コンテンツ管理システム)です。世界中の多くのWebサイトで利用されており、毎年各地て⁠シンポジウムか⁠開催されています。

今回のイベントは、バージョン5のリリースを控えたPloneの認知や普及、ユーザの情報共有を目的とし、開発元であるPlone Foundationの支援を受けて実現しました。Ploneのシンポジウムとしてはアジアで初めての開催です。

イベントの1日目はトークセッション、2日目は開発スプリントが行われました。

初日のトークセッションは、2つのキーノート(基調講演)に加えてPloneについての講演トラックと、PythonのWeb技術についての講演トラックが並行して進行し、8つの発表と2つのパネルディスカッションがありました。当日の参加者は60人を超え、活発なやりとりが行われていました。

2日目の開発スプリントには15名ほどの参加があり、Ploneのコア開発者と実際に話しながら開発に参加する機会を持つことができました。

それでははじめにDay1:トークセッションのレポートをお伝えします。

Day 1:トークセッション

Ploneシンポジウム運営の代表を努めました寺田です。このコーナーでは、トークセッションで行われたキーノートやその他のトークセッションについて紹介します。

Keynote "Plone: your companion on your travels into the future"(Plone:未来への旅の同伴者)

朝、最初のセッションはメイン会場でのキーノートでした。キーノートにはPlone FoundationからBoard President(代表)である、Paul Roeland氏@polyesterとリリースマネージャーのEric Steele氏@esteeleの2名に登壇いただきました。

キーノートの主な話題は、Plone Foundation率いるコミュニティの話と次期リリースPlone 5に関する話でした。

最初にPloneの歴史を簡単に振り返りました。2002年から継続しているプロダクトということで、Firefoxですらまだ無い頃から継続して活動を行い、コミュニティのメンバーが代わりながらも安定的に改善が続けられているという説明がありました。非営利組織であるPlone Foundationの役割やコミュニティの大切さなどが語られました。

Frameworkチームが中心になっている開発だけでなく、QAチームやドキュメンテーションチームなどの活動も紹介されました。さらに、開発Sprintの大切さ、カンファレンスやシンポジウムなどを通じた継続的な活動の重要性など、Plone Foundationのコミュニティに対する考えと、Ploneプロジェクトの方向性についての話がありました。

写真1 Paul Roeland氏
写真1 Paul Roeland氏

次に、次期メジャーリリースバージョンであるPlone 5についての説明がありました。Plone 5は「将来の継続性のための複数の大きな変革」を行ったということです。リリースは当初計画よりも遅れてきているようですが、2015年9月に向けて改めてタイムスケジュールを決めて動いているとのことでした。

Plone 5では、Diazo技術を利用しデザインのカスタマイズがより容易になることや、コンテンツタイプのフレームワークがArchitypesからDexterityへ移行することなど、主要機能についての大きな変更が行われています。他にも、公開画面のデフォルトテーマがHTML5/CSS3をベースにしたレスポンシブデザインのものになったこと、さらにそのデザインやコンテンツタイプのカスタマイズをWebブラウザだけでもできることが解説されました。

一連の説明のほとんどは管理画面を使うものでしたが、UIが大きく変更されており見た目が大きく変わった点は目を引きました。また、以前のバージョンからの移行を容易にすることに力を入れている点も強調されていました。

写真2 Eric Steele氏
写真2 Eric Steele氏

その他にもMosaicというプロダクトの紹介がありました。これはWYSIWYG+ドラッグ&ドロップでページレイアウトの変更とコンテンツの編集ができるツールで、Plone 5.1で統合できるよう現在開発中とのことでした。

さらに、イントラネット向けの機能を充実させるPlone Intranetというプロジェクトの紹介やPloneの公式トレーニングの紹介がありました。

最後に、次回のPlone Conferenceは2015年10月12日~18日にルーマニア ブカレストで行われるので皆さんにも来てほしい、との話がありました。

このセッションは英語で行われましたが、2人が交互に軽快に楽しくお話をしてくださり、楽しいセッションでした。Plone 5の大幅なUIの変更が目を引くと同時に、継続的に健全なOSSとしての進化を遂げていることが感じられ、タイトルの通り、未来に向けてのPloneの重要なことを多くの知ることのできるセッションでした。詳しくはビデオを公開していますので、ご覧になって頂ければと思います。

Guest Keynote "Learning from the Zope Ecosystem: Looking Back, Looking Forward"

昼休みのあと午後のセッションはTres Seaver氏のゲストキーノートからはじまりました。Tres氏はZope/Ploneコミュニティ現役最年長かつ大ベテランのメンバーです。このコミュニティ最大の貢献者の一人です。

はじめに、我々部族の話をしよう、ということで約20年のZopeの歴史を振り返りました。話をすることは部族のアイデンティティ、価値、コミュニティ意識を聞く者に伝えます。振り返りの中で、上手くいかなかったところ、例えばフレームワーク開発者が想定していない使い方をフレームワーク利用者たちがしてしまったこと(CMFDefault⁠⁠、アイデンティティの危機としてZopeの起源は非プログラマ向けのシステムなのですが、ユーザはPythonプログラマなのか非プログラマなのかという問題や、Webブラウザ越し開発とファイルシステム上開発の問題、アプリケーションサーバなのかライブラリなのかフレームワークなのか、といった問題があったことが紹介されました。

また、Python 2の互換性を保ちながらPython 3に対応する(既に膨大なZopeコミュニティのコードのほとんどはPython 3に対応済)ことによる難しさ、Zopeコミュニティで作ってPythonで広く使われることになった道具(doctestやbuildout)が様々なバージョンのPythonを同時にサポートするコードを扱うのに都合が悪かったこと、また複数バージョンのPythonをサポートするためにコードが汚なくなってしまうことなどが話されました。しかし良いこともあって、新規のメンテナになってくれる人たちが増えたことも挙げられました。

写真3 Tres Seaver氏
写真3 Tres Seaver氏

キーノートの後半はスプリントの大切さについての話がありました。Zopeはオープンソース界でスプリントを取り入れた開発の先駆者としても知られていますが、zope.interfaceやi18n、l10nが2000年代のはじめにスプリントによって開発されたことが紹介されました。⁠スプリントは新しい参加者たちを助けて、教えてあげて、彼らがコミュニティに貢献できるようになるのが一番大事。自分のコードを書くだけならそれはスプリントではない。コミュニティが大事でスプリントはそういう場所である」と話されました。また人間関係の問題としてスプリントで実際に顔を合わせて同じ部屋で共に作業をすることは、その後のオンラインの共同作業にもとても良い効果があるそうです。この翌日にはスプリントが開催されたのですが、実際Tres氏はとても親切に色々とかなり基本的な質問も含めて参加者たちに教えてくれていました。

最後にこのコミュニティの未来について、午前のキーノートで紹介されたPlone 5がとても素晴しい出来になってきていることを挙げて、未来は明るいよというコメントで締め括られました。未来というのは他人事ではなくて現在の自分たちの行動にかかっているわけなので、開発者たちの頑張りによって良いものが出来上がってきているのはとても明るいニュースだと思いました。

各セッションのレポート

2つのキーノートの他には、Ploneについての講演トラックと、PythonのWeb技術についての講演トラックで、それぞれ4つの発表と1つのパネルディスカッションが行われました。ここではこれらの講演内容をまとめてお伝えします。

PloneとWordpress ~やってみたことわかったこと~

CMSツールとしても人気の高いWordpressは、Ploneと比較されることもあります。発表者である安田氏が過去に実践したサイト構築で、Wordpressを採用した場合とPloneを採用した場合の比較や、どのように使い分けているのかを、散布図などでわかりやすく紹介されていました。Ploneではコンテンツが複数の状態(ステータス)を持つ場合や、コンテンツ制作者や関連するユーザが多い場合での採用が多いようです。

写真4 安田善一郎氏
写真4 安田善一郎氏

Is Plone the Right Choice? - A View From Accessibility Perspective

AccSellメンバーで、視覚障害者の立場から各所でアクセシビリティについて語られている中根氏から、Ploneのアクセシビリティ対応について不足な点などの指摘を行っていただきました。中根氏はPloneを使うこともあり、コンテンツ管理や設定など概ねスクリーンリーダ(コンピュータの画面読上げソフトウェア)でできているそうですが、実際には余計な説明が入っていたりアクセスしにくい場所が存在するそうです。Ploneのリリースマネージャなどを前に、英語で直接語っていただき、Plone Foundationのメンバーも大きく感銘を受けていました。

写真5 Max NAKANE氏
写真5 Max NAKANE氏

余談ですが、翌日の開発Sprintでは、Plone Foundation PresidentのPaul氏と数時間に渡り問題点の指摘や具体的な方策についてディスカッションが行われ、すぐにGitHub Issueに挙げられていました。

SQLAlchemy ~SQLの錬金術~

Python、SQLのエキスパートAtsushi Odagiri@aodag氏から、Python製O/Rマッパー(ORM)SQLAlchemyについての発表をしていただきました。SQLAlchemyの基本はもちろん、なぜSQLAlchemyが良いのか、他のORMとどう違うのかなどがよくわかる発表でした。

写真6 Atsushi Odagiri氏
写真6 Atsushi Odagiri氏

とくに、⁠SQLAlchemyは他のORMと違いSQLを隠そうとしない。SQLの良さを活かしつつORMとしても大変使いやすい」という言葉が印象的でした。

Modern Django ~Djangoでのモダンな開発手法~

Hiroki Kiyohara@hirokiky氏から、WebフレームワークDjangoの発表をしていただきました。Djangoの概要から最近入った機能、Djangoの他に使えるライブラリなどの紹介をいただきました。

写真7 Hiroki Kiyohara氏
写真7 Hiroki Kiyohara氏

とくにDjango製CMS、Mezzanineの紹介が印象的でした。Mezzanineは簡単に動的なサイトやブログを作れるCMSで、使い心地としてはWordpressに近いそうです。Mezzanineを日本のDjangoポータルサイトdjangoproject.jpにも導入して使っているそうで、清原氏もお気に入りとのことです。

Why good documentation matters - Importance and its benefits

オランダから参加いただいた、svx氏によるドキュメンテーションの大事さについての発表です。多くの人に使ってもらい、開発を継続するためには絶対的に重要である! と熱く語られていました。Ploneでもドキュメントチームがあり、ユーザマニュアルや開発マニュアルを日々整備しています。

写真8 svx氏
写真8 svx氏

質問の時間帯では、ネイティブスピーカでない日本人が、英語でドキュメントを書くことの難しさから発生する問題や、日本語だけでもドキュメントを整備しておいたほうが良いのか? それとも英語で書くべきか? といった議論がありました。⁠多くの人に使ってもらい、見てもらうためには、間違っていてでも英語で書いてほしい」⁠間違っていることを恥ずかしいことだと思う必要は無い」という話が印象的でした。

PloneとAWS ~スケールアウト可能なハイパフォーマンスPloneサイトをクラウドに構築~

Ploneをサービスするための最小構成から大規模構成の事例の紹介を、筆者である寺田が行いました。Plone及びその周辺でどのような組合せでホストしているかや、キャッシュの重要性について説明し、AWSでホストする際の割り当て方などを説明しました。

写真9 寺田学氏
写真9 寺田学氏

最後に、CloudFrontを用いる2つの例を紹介し、nginxの設定のみでCloudFrontを使う方法と、Plone+AWSでPloneのユーザ認証を経由して動画(ストリーミング)を行う方法を説明しました。前者はPloneに関係なくnginxの設定ルールでCloudFrontを使うアイデアの紹介を行いました。

QAでは、Ploneで小さなトランザクションの扱いについて質問を受けました。筆者が行っている、SQLAlchemyと連携したデータ保存方法の例を簡単に説明しました。

The Substance D ~Pyramidで動くPython最新CMS~

Substance DはPyramidフレームワークで作られているCMSで、拡張するにあたって積極的にPythonを書く必要があり、逆に書かないと拡張できないという仕組みになっているそうで、Ploneよりもプログラマ向けの仕組みという印象を持ちました。

写真10 Yusuke MURAOKA氏
写真10 Yusuke MURAOKA氏

備え付けの管理画面があったり、検索機能(catalog)やワークフロー、コンテンツタイプ、セキュリティ機構、そしてZODBを使うところなど、発表者の言うように確かにZopeの思想を受け継いでいるフレームワークだということがわかり、興味深かったです。複雑なCMSを作るのに向いていそうです。

How to create an ERP with Zope - Python powered open source ERP framework

Ploneと同じく、ZopeとCMFで作られているオープンソースERPの紹介です。Ploneとの違いとして、Webブラウザ越しの開発スタイルを推進していること(しかし、Plone 5はWebブラウザからできることが増えるそうです)が説明されました。

写真11 Yusei Tahara氏
写真11 Yusei Tahara氏

実例としてコンテンツのデータ定義をWebブラウザ画面で設定できるデモがありました。さらに、ZODBの中身をSQLで検索する機能、Activityという機能で任意の関数呼び出しをバックグラウンド実行できるデモがありました。

Ploneを活用した授業の実践報告

  • 発表者:Toru Miura
  • 言語:英語

お茶の水女子大学の三浦教授から、Ploneを授業のツールとして実践利用している事例の発表でした。学生とのコラボレーションがスムーズになり多くの受講学生がコメントを寄せてくれ、活気のある授業が作れたということでした。具体的な実践例として、幅広い方から質疑もでて興味深い発表となりました。

写真12 Toru Miura氏
写真12 Toru Miura氏

続、PythonによるWebスクレイピング入門

Pythonを使ってWebの情報を収集するスクレイピング技術の紹介でした。スクレイピングの基礎技術の説明から始まり、Pythonがバッテリーインクルードであるという強みを活かした標準ライブラリのみでのスクレイピングや、Scrapyというスクレイピングフレームワークを利用する話までと、様々な規模でのスクレイピングの方法が解説されました。

写真13 Hironori Sekine氏
写真13 Hironori Sekine氏

さらにデータを活用するためWebアプリケーションでの可視化など、単に収集するだけでは終わらせない内容でした。

パネルディスカッション:大学教育とPlone

  • 登壇者:Alexander Loechel/Haruo Takemura/Katsusuke Shigeta/Chiaki Ishida
  • 言語:英語

Plone Foundation Boardメンバーでもあり、ルートヴィヒ・マクシミリアン大学ミュンヘン(LMU Munich)からお越しいただいたAlexander Loechel氏、大阪大学で実際に多くのPloneサイトを運用されている竹村教授、オープンエデュケーションの分野でPloneやその他OSSツールを使われている重田准教授、お茶の水女子大学でPloneを使った学習支援サイトを運営されている石田講師の4名によるパネルディスカッションが行われました。

写真14 左からKatsusuke Shigeta氏、Haruo Takemura氏、Alexander Loechel氏
写真14 左からKatsusuke Shigeta氏、Haruo Takemura氏、Alexander Loechel氏
写真15 Chiaki Ishida氏
写真15 Chiaki Ishida氏

各登壇者から、自己紹介と併せてPloneとの関わりをお話いただき、その後Ploneの良さとなぜ使っているのかなどをそれぞれ発言いただきました。最後はオープンソースなどのエコシステムの話題になり、各人それぞれの立場や考え方を伺うことができました。

パネルディスカッション:達人に聞くWebフレームワークを選んだ理由

  • 登壇者:@tahara0011@hirokiky@wolf20xx@aodag
  • 言語:日本語

Zope、Django、Tornado、Pyramidのエキスパートが集まり、Webフレームワークを選んだ理由や業務での活用方法についてディスカッションしました。業務でいかに活用しているかを中心に話が進み、学習コストやコントリビューションの障壁についても議論が進みました。

参加者の方々には、それぞれのフレームワークの特徴がよく見えた議論だったのではないでしょうか。規模が比較的大きいZopeやDjango、小さいながらも柔軟なPyramid、他にはない非同期という特徴を持ったTornadoと、各々の利点や持ち味が「業務でどう活用されているか」を主軸に紹介されていました。

Lightning Talks

5分の短い発表を次々に行うLghtning Talksでは、5人の登壇者が発表しました。

  • @hajime_nakagami さん / Zch(ゼットちゃんねる)のお話
  • Honma さん / 山形県における自治体へのPlone導入対応
  • Alexander Loechel@Pumukelさん / 3 small examples
  • @makotokuwataさん / How to Design Pure HTML Template Engine
  • @takanoryさん / Pythonエンジニア養成読本オモテウラ

Ploneの導入についてや、テンプレートエンジンの技術的な話、2chライクなZope用掲示板プロダクトProducts.Zchを最新版のZopeで動作させる話、執筆された本のPRなど広いテーマについてピンポイントでの発表となりました。

さいごに

Plone Symposium Tokyo 2015 Day 1:トークセッション、いかがでしたか?

Plone単独の1日イベントは日本では初めての試みでしたが、多くの方に参加いただき、またさまざまなトピックの発表が集まり、充実した内容だったと思います。ゲストとして参加したPlone Foundation代表のPaul Roeland氏からは「発表内容の多様さ(diversity)がすばらしかった。雰囲気もよく、単独のシンポジウムの第1回目としては大成功でしょう」とのコメントをもらいました。運営スタッフとしては嬉しい限りです。

写真16 ランチタイムの様子その1。海外からのゲストスピーカーの皆さん、天気が良いので外のベンチで昼食です。気持ち良さそう。
写真16 ランチタイムの様子その1。海外からのゲストスピーカーの皆さん、天気が良いので外のベンチで昼食です。気持ち良さそう。

次回は

さて、次回は ⁠Day 2:開発スプリント&インタビュー」と題して開発スプリントの様子をレポートします。併せて、Plone Foundationメンバーの3名の方と、Tres Seaver氏へのインタビューもお届けします。お楽しみに!

本稿撮影協力
田原朋子

おすすめ記事

記事・ニュース一覧