Plone Conference 2010参加レポート

Plone Conference 2010 Day 4 [Sprint]

この記事を読むのに必要な時間:およそ 6.5 分

4回に渡ったPlone Conference 2010のレポートも最終回となりました。最終回の今回は,4日目と5日目に行われたSprintという開発イベントについてレポートします。

Sprintとは

Plone Conferenceの終了後は通常,2日間の「Sprint」が開催されます。Sprintとは,短期集中型の開発イベントの一種で,元々はアジャイルソフトウェア開発手法のスクラムの中にある,ソフトウェア開発の工程を表す用語から来ています。似たようなイベントとしては,Hack-a-thonや開発合宿などがあると思います。つまり,Ploneに関する開発をみんなで集まって2日に渡って行うというものです。

ちなみに,Plone ConferenceのSprintへの参加は無料です。その代わり,朝食や昼食などは出ません。特に入場チェックなどもないため,Sprintだけに参加することも可能です。

Sprintテーマの発表

Sprintの始めに,各テーマを持っている人(ここでは便宜上リーダーと呼ぶことにします)「私はこういうテーマに取り組むので,是非一緒に開発しましょう」といったような発表タイムから始まります。特にテーマを決めずに参加している人は,この発表を聞いてどのSprintに参加するかを決めることになります。なお,各Sprintのリーダーは前もって,Plone Conference 2010 Sprint topicsのページにSprintのタイトルと内容やゴール,メンバーについて前日までに書き込んでおく形になっています。

今回は,Sprint初日の朝にPlone 4のリリースマネージャーでもあるEric Steele氏@esteeleが司会となり,Sprintの各テーマの発表が始まりました。各リーダーはどんなことを行うかや協力者の募集をしていました。ここで面白いと感じたSprintはVideo Sprintで,おいしいお菓子と飲み物を準備しており参加者は食べ放題だそうです。モノで釣る作戦です。寺田さんもSprintリーダーとなりテーマの発表を行ったそうです※1)⁠

今回のSprintでは,以下のようなテーマがありました。カッコ内はリーダー(と思われる人)の名前です。

  • Diazo(Laurence Rowe)
    サイトのテーマを変換する仕組みに要求されている機能を実装
  • Deco(Rob Gietema)
    ポートレットやコンテンツをドラッグ&ドロップで配置できる仕組みの実装
  • Deployment(Nate Aune)
    Amazon EC2等の環境にPlone 4を簡単に配置するためのbuildoutスクリプトの作成
  • Dexterity(Martin Aspeli)
    Plone 5で新しいコンテンツのベースとなるDexterityの実装
  • Documentation(Mikko Ohtamaa)
    Plone Developer Manualの自動ビルドの仕組み等の実装
  • Plomino(Eric Bre’hault)
    エラー通知の改良
  • QA(Elizabeth Leddy)
    品質保証(Quality Assurance)の一環として自動javascriptテストのhudsonへの集約などを実装
  • plone.app.imaging(andreas zeidler)
    画像の切り取り,色変換等のアダプターの実装
  • Video(Andrew Lowenthal)
    他のプロダクトの連携や,移行スクリプトの実装
    このSprintのテーブルではお菓子と飲み物が準備してありました。食べ放題だそうです。
  • Double byte problems(Manabu Terada)
    スナップショットが取れない問題やi18ndudeの問題についての対処
  • IKS FISE Integration
    FISEというWebセマンティック用のミドルウェアとの連携を実装
  • plone.app.event
    イベント機能の拡張
  • plone.app.search(Denys Mishunov)
    検索に関するJavaScriptテストの実装
  • plone.app.discussion(Timo Stollenwerk)
    JavaScriptテストの実装やAjax UIの実装
  • plone.app.themeeditor
    テーマの作成
  • eea.facetednavigation(Alin Voinea)
    既存プロダクトのPlone 4対応

その後はチームごとテーブルに別れて,もくもくと開発がはじまります。

Sprintの風景

Sprintの風景

※1
実は前日飲み過ぎてしまい二日酔いで最初の発表には会場には行けませんでした。そのため,発表の様子についても寺田さんや他の参加者に教えてもらいました(汗)⁠

途中休憩

他の人たちは適当に昼食を取りに行ったり開発を進めていたようです。筆者も開発の環境を用意して進めていたのですが,外に散歩にも行きました。

この日はハロウィン(の1日前)のため,Bristol Zombie Walk 2010という仮装イベントが開催されていました。偶然その列に遭遇し,大量のゾンビを見ることができました。ゾンビさんたちはみなさん楽しそうです。

ゾンビご一行

ゾンビご一行

筆者のSprint「旧プロダクトのPlone 4対応」

今回のSprintでは,Plone 4で現在動作しないプロダクトのPlone 4対応を筆者自身のテーマと位置づけ,開発を行いました。

初期コードの準備

手順としては,まずZopeSkelを使用して雛形となる空のプロダクトのコードを生成します。

$ zopeskel plone Products.NewProduct

その後,既存のコードをコピーしてひと通りのコードが入っている状態にします。

importするパッケージ変更

次に,importするパッケージで変更になったものを適宜書き換えます。Updating add-on products for Plone 4を参考にしましたが,すべてが網羅されているわけではないため調べながらの修正となりました。

また,implementsの部分をZope 2形式からZope 3形式に変更することも必要です。

Zope 2形式

__implements__ = (ATCTContent.__implements__,
                  IATDocument,
                  HistoryAwareMixin.__implements__,
                  )

Zope 3形式

from zope.interface import implements

implements(ATCTContent.__implements__,
           IATDocument,
           HistoryAwareMixin.__implements__,
           )

ここまでの修正で起動時のエラーは出なくなりましたが,コンテンツが追加できないところで1日目が終了しました。

著者プロフィール

鈴木たかのり(すずきたかのり)

BeProud 所属。

部内のサイトを作るためにZope/Ploneと出会い,その後必要にかられてPythonを使い始める。最近miniじゃなくなりつつあるPython mini Hack-a-thonの主催者の一人でもある。

趣味は吹奏楽とレゴとペンシルパズル。2012年の目標は9月にオープンするマレーシアのレゴランドに行くこと。写真はうちのフェレットくろちゃんとくりちゃんです。

Twitter: @takanory
ブログ: http://takanory.net/takalog/

コメント

コメントの記入