清水川です。
本記事では前回に引き続き、EuroPython 2015の様子について紹介します。今回は、EuroPythonの発表者支援プログラム、筆者の発表(Sphinxのautodocに関するもの) 、パーティー、そしてSprintの様子について紹介します。
参考リンク:
EuroPythonの発表アドバイスとSphinx発表
筆者の発表はPyCon APAC 2015で行った発表 と同じコンセプトですが、今回は事前にEuroPythonの発表者支援プログラムを使って、熟練スピーカーからのアドバイスをもらい、修正を加えました。
EuroPythonの発表者支援プログラム
EuroPythonでは、複数の発表者向け支援プログラムが用意されていました。
1. 発表者向けのTipsをEuroPythonサイトで紹介
TIPS FOR SPEAKERS というページが用意され、そこには「同僚や友人に向けて実際に話す練習をすること」 、「 なぜ必要なのかストーリーを伝えること」といった、多くのアドバイスが掲載されています。これらは本当に重要なTipsなので、ぜひ一度は読んでみてください。
2. ビデオチャットでの発表練習とアドバイス
初めてプレゼンテーションをする人向けに、Google Hangouts を使って熟練スピーカーとビデオチャットで発表練習し、アドバイスしてもらえます。もちろん、初めて以外の人でも受けることができます。この練習には11人のスピーカーが参加したようです。筆者も次回はぜひ受けたいと思います。
3. スライドレビュー
スライドレビューとは、事前にスライドを送り、熟練のスピーカーからレビューを受けるものです。筆者もスライドと話す内容をPDFにまとめてレビュー依頼し、いくつかのアドバイスをもらいました。 筆者のレビューを担当してくれたのは、PythonAnywhere のエンジニアのHarry J. W. Percival(@hjwp )さんでした。メールを送った翌日にはレビューの返信が来て、「 スライドも話す内容もとても良く書けているけど、もうすこし修正すればもっと良くなるよ」というコメントをもらいました。以下がその修正案です。
どうすれば発表の内容をもっと“ ストーリー” にできるだろう?
あなたを聴衆の立場において考えてみよう
彼らが気になるのは何だろう? どんな問題が解決するだろう?
彼らの人生をSphinxはどのように楽にしてくれるだろう?
Sphinx以前の世界はどうだったろう? 手動でやっていた手順を全て、そしてそのときの感情、フラストレーションや反復作業の辛さを込めて伝えよう!
Sphinx登場後、どのように問題が解決して、開発者はどんなにハッピーになったか伝えよう! 自動化最高!
スライド後半の機能紹介はストーリーの構成になっているので、Sphinxそのものについても適用しよう。
筆者は、このアドバイスを受けて発表スライドを更新し、多少蛇足だった技術的な背景を紹介する代わりに、Sphinx導入によってドキュメント作成がどう変わるのかを紹介することにしました。
Sphinx発表
カンファレンス初日、7月20日(月)11:45からSphinx autodocについての発表を行いました。
Sphinx autodoc automated API documentation (EuroPython 2015 in Bilbao)
この発表では、Sphinxの自動ドキュメント機能を使うと、Pythonプログラムの充実したドキュメントを手軽に作れることを紹介しました。発表の大筋はPyCon APAC 2015で行った発表 で紹介していますので、割愛します。
Sphinx autodoc の発表を見に来てくれたみなさん(演台から撮影)
発表では、これまでのPyCon発表修行と同様、はじめに演台からの撮影を行いました。キーノートなどを行う広いメイン会場だったため座席がだいぶ空いて見えますが、100名近くの参加者が発表を聴いてくれました。
Sphinxが作られた経緯を紹介。以前のPython公式ドキュメント作成は大変だった
発表後のQ&Aでは、4つの質問をもらいました。だいたい回答できたと思いますが、1つめについては訊かれている内容がわからず、セッション後に聞き直しました。カンファレンス会場では声が聞き取りにくく、もっとリスニングの練習をしないといけないなあと感じました。
筆者が一番驚いたのは、発表後にSphinx作者のGeorg が演台までやってきたことでした。彼が今回のカンファレンスに参加することは聞いていましたが、実際に発表を聞いてくれているとは思っていなかったので、とても驚きました。また、良い発表だった、と言ってくれたことは、最高に嬉しい言葉でした。筆者の発表は、Sphinxの機能を伝えるとともに、落とし穴や課題についても触れています。それらについて、Georg も気にしていて、これからどうやって良くしていこうか、といった話で盛り上がり、時間も忘れて話し込んでいました。
会場の様子
会場のEuskalduna Conference Center (ECC) はとても広い建物で、地下2階から地上4階までありました。スペインでは地上階が0階ですが、会場の受付は-1階にあり、カンファレンスで主に利用したのは-2階。さらに中層階があったり、複数の階がスロープで連続的に繋がっているところもあり、最初は自分がどこにいるのかわからなくなって迷ったりしました。会場では、トークとトレーニング合わせて8つのセッションが並行開催され、それ以上の広さのスペースにスポンサーブースや休憩スペースがあり、多くの人が雑談したり、黙々とノートPCと向き合ったりしていました。
ポスターセッション開催時はとても混み合っていた
EuroPythonの参加者は1,100人中900人以上がユーロ地域の人で、全体では52ヵ国から参加していたようです。そんなヨーロッパ人たちの特徴なのか、ランチでちょっと並んでるときに「元気?」と声をかけて、二言三言会話してサッといなくなる、という感じの会話が多く見られました。筆者も、「 元気?」「 楽しんでる?」「 昨日どうだった?」といった風に見知らぬ参加者から何度か声をかけられました。こういった、どんどん話しかける雰囲気は日本のカンファレンスではあまり見られないので、文化的な違いなんだろうと思います。気軽に声をかける文化はとても楽しく感じられました。
PyCharmブースでの交流
カンファレンスのスポンサーブースには20近くのスポンサー企業が出展していました。そのなかに、PyCharmのブースもありました。PyCharm はJetBrains が作っている、Python向けのIDE(統合開発環境)です。筆者も昨年のPyCon JP 2014 でPyCharm活用術 というタイトルでその便利さや、使いこなす方法などを紹介しました。
初日の帰りにPyCharmチームの方から「日本から来たTakayukiさんだよね、昨年のPyCon JPでPyCharmの紹介をしてくれてありがとう、是非PyCharmのブースにも遊びに来てよ」と声をかけられました。昨年の発表内容がまさかここでこうやって繋がるとは思っていなかったためびっくりすると同時に、日本語で行われたPyCharmの発表に気を配って今回のような機会に声をかけるPyCharmチームの活動にはとても感激しました。
翌日、PyCharmの開発者Andrey からTwitterで連絡をもらい、質問や要望があったら相談に乗りたいからPyCharmのブースに来てね、というので、ブースに遊びに行って色々と相談したり使いにくい点について伝えました。筆者は普段からPyCharmのYouTrack で不具合報告などをしていますが、チケットのやりとりだけではわからない、感覚的な部分を開発者に直接伝えられたのはとても貴重な機会でした。また、Sphinx開発用にオープンソースライセンスをもらっているお礼や、PyCharmでとても生産性があがっていることを伝えました。
パーティー
カンファレンス期間中に公式に行われたパーティについて紹介します。
スピーカーパーティー
7月20日(月)のカンファレンス終了後に、「 Google Reception」というパーティーが行われました。このパーティーには、テクノロジー分野で活動する女性と、カンファレンスのスピーカーが招待されました。名前からおそらくGoogleがスポンサーしていたのだと思いますが、Google色が強いわけでもなく、控えめなところには好感を覚えました。
パーティーは、カンファレンス会場の屋上で行われました。当日は天気がとても良くて、参加者は料理や飲物を手に取りながらそれぞれ他の参加者と談笑していました。正直なところ、筆者は英語が苦手なのと知り合いが全くいないのとで、ここで会話するのは厳しいなあと思っていました。しかし、Sphinxの発表を既に行っていたのと、SphinxのTシャツを着ていたこともあり、何人かの参加者から声をかけてもらい、楽しい時間を過ごすことができました。
Python関連でドキュメントを書こうと思うと、Sphinxはデファクトスタンダードと言えるツールです。そのため、ここでも多くの参加者はSphinxを使っていて、多くの課題も持っていました。話をした方の1人は、始めにREADME.mdなどをMarkdown記法でドキュメントを書き始めて、その後ドキュメントの規模が大きくなってきたときにSphinxのreStructuredText記法に変換しようとして大変だった、という話をされていました。Markdownは「マークアップ」を簡単に書くことを目的とした記法です。そして、ある程度以上複雑な表現をしたい場合にはHTMLタグで表現します。HTMLで書いてしまったMakrdownは、他の記法へ変換するのがやっかいだ、と言うことでした。ドキュメント書き始めるにはMarkdownで良いとしても、HTMLタグでなければ表現できない文章を書きたくなったら、別の記法に移る頃合いなのかもしれませんね。
スピーカーの皆さん
美味しいピンチョス(バスク地方の一口料理)を食べながら、何人かと話をしていましたが、そのなかにやたら日本に詳しい方がいました。その方、Paul Roeland はPython製コンテンツマネジメントシステムPlone を管理するPloneファウンデーションの代表で、つい先日行われたPlone Symposium Tokyo 2015 でキーノートを行ったのだそうです。筆者も、Ploneや、そのベースになっているZopeがあったから今Pythonを使っている、というくらい有名なプロダクトですが、今現在ZopeやPloneに携わっている開発者はそれほど多くありません。ヨーロッパでもそれは同じですが、政府がオープンソース活動に力を入れているため、難しい仕事をこなすことのできるPloneの仕事がある、という話をしていました。先日のPlone Symposium Tokyoでは、全盲の人がPloneで構築したサイトでどんなことに困っているのか、具体的な話を聞けてとても感銘を受けた、という事を話していました。Plone Symposium Tokyo については、Plone Symposium Tokyo 2015参加レポート という記事が出ていますので、そちらもご参照ください。
EuroPython Pyntxos Night
7月22日(水)の20時から、近くのホテルを会場にしてパーティーが開催されました。このパーティーはカンファレンスとは別料金で40ユーロがかかります。パーティー名の「Pyntxos」は、バスク地方特有の料理「ピンチョス(pintxos) 」をもじったものですね。ピンチョスは、パンの上に乗っている少量の肉や魚を串で刺して、一口で食べやすいサイズにした料理です。
ピンチョス(pintxos) 、パーティー向けに小さめ
20時に会場に着くと、パーティーはすでに盛況で、初めから最後までアナウンスがあるわけでもなく、それぞれが自由に過ごしていました。そんななかで、Python Software Foundation の方達が、参加者にマッサージをして寄付を募るという活動をしていました。筆者もマッサージしてもらって、5ユーロを寄付してきました。PSFは、寄付金を使ってPythonの知的財産を守り、またPythonカンファレンスを支援しています。
他にも多くの方と話をしましたが、やはり最大のネタはGuido との会話でしょう。Guidoは奥さんと子どもを連れてパーティーに参加していました。話しかけると、とても気さくに応じてくれて、こちらも緊張することなく話せました。筆者がSphinxのメンテナをやっていることを伝えると、知らなかった、ということで当然そうだろうと思いつつちょっと残念でした。日本からいくつか日本酒の小瓶を持ってきていたので、Guidoにプレゼントしつつ、いつか日本のPyConにも来て下さいね、と伝えました。すぐには実現しないかもしれませんが、いつか日本にGuidoを呼べる日が来ると良いですね。
Guido と筆者
パーティーは、22時からDJによるダンスミュージックが始まり、これから深夜まで遊ぶぞ! という感じになってきました。筆者はそのあたりで会場からホテルへ戻りました。
Sprint
Sprintは、短期集中型のソフトウェア開発イベントです。スピーカーやその他たくさんの開発者が集まり、それぞれのチームで目標を立てて開発を行います。Sprintはカンファレンス参加者であれば誰でも参加できます。Sprintオーナーとなってチームを作るのも、チームに参加するのも自由です。初心者がオープンソースのコアコミッターから開発手順を教えてもらうこともあれば、複数人で協力してソフトウェアの開発を進めることもあります。
このSprintを紹介するオリエンテーションが、Sprint前日金曜日のLightning Talk(LT)の前に行われました。EuroPythonでのSprintオリエンテーションは、Sprintオーナーが1人30秒から1分くらいでなにをする予定かを紹介する、とても短いLTのようなものでした。筆者も昨年のEuroPythonに参加した際にはSphinxのSprintを紹介しました。今年はSphinxの作者のGeorg BrandlがSphinxチームの予定を紹介しました。
Sprintの様子。このような部屋があと2つあった
Sprintは、7月25日(土) 、26日(日)の朝9:30~18:00に開催されました。土曜日には200人以上が集まっていたようです。カンファレンスの参加者数が約1,100名なので、だいたい2割くらいがSprintに参加した計算ですね。
最初にタイムスケジュールや施設の案内といったものもなく、好きな場所で好きな時間に開始、というユルい感じで始まりました。10時過ぎと15時過ぎにはティータイム、13時頃にはランチが用意されましたが、これも特にアナウンスはなく口コミで参加者に伝わったような感じです。それでもランチタイムには大勢の人が休憩スペースに集まり、ランチを取りながらそれぞれのOSSプロジェクトの情報を交換したり、近況を伝えたりしていました。ランチがいつからいつまでだったのかはわかりませんが、終始賑やかな様子で周りの会話にまけないようだんだんと会話のボリュームも上がっていった気がします。ランチでワインやビールも提供されていたのも多少は影響していたかもしれません。
Sprintのランチ。たくさんのピンチョス、ドリンク、ワイン、ビールが提供された
Sphinxチームは筆者を含め8名くらいでした、筆者とGeorg はSphinxのバージョンアップを目指して不具合の修正を行い、また、後方互換性を維持しないSphinx 2.0に向けてのアイディアを出し合ったりしました。PyCharmの開発者で、今回Type Hints関連の発表 を行ったAndrey は、Type HintsとSphinxのinfo field list記法をPyCharmでよりうまく扱う検討をしていました。他にもawscliの技術者やRed Hatの技術者が、Sphinxの機能の改修や不具合の修正にチャレンジしそれぞれ成果を上げていました。
SphinxにはSphinx Developer's Guide という新しく開発に参加する人のためのガイドがありますが、Sphinxの実装は複雑なため、ガイドを読んだだけで開発を始めるのは簡単ではありません。今回のSprintのような機会があると、新しく参加する人が開発を始めやすいドキュメントや仕組みが必要だということがよくわかります。これも、Sphinx 2.0に向けての課題と言えそうです。
Sphinx Sprintに参加したみなさん:名前不明、筆者、Andrey 、Georg
おわりに
今回のEuroPythonでは、スピーカーとして発表することによる効果を再認識しました。また、Sphinx Tシャツはとても有用なツールでした。
筆者は知らない人の輪に入っていくのがそれほど得意ではありません。しかし、今回のようにスピーカーとして発表する時間を持ち、Sphinxのロゴを入れたTシャツを着て歩くことで、Sphinxという共通の話題を持つ他の多くの参加者から声をかけてもらえました。日本で同じ事をしても声をかける人は少ないかもしれませんが、海外カンファレンスではとてもうまい方法だったと思います。このおかげで、多くの人が筆者の発表内容に興味を持ってくれている事がわかってとても嬉しかったですし、多くの人と知り合えました。発表ドリブンコミュニケーションですね。そういう意味で、今回の筆者の発表日時が初日の午前中だったというのはとてもラッキーだったと思います。
Petr (左)と筆者とHynek (右) 、パーティにて
知り合いが増えれば、また来年のEuroPythonで会おう、という話になります。発表を聴くだけならあとで動画やスライドを見ればよいですが、その技術の本当のところを発表者に質問したり、発表者として質問を受けたりして得られる生の情報はその後の活動のモチベーションとして欠かせないものです。今回の経験は、筆者の今後参加するカンファレンスでの行動に、大きな影響を与えそうだと感じています。そのためにも、これから英語のリスニングスキルを鍛えていきたいと思います。
次は、8月21日(金)から3日間開催されるPyCon Malaysia 2015 に行ってきます。PyCon.MYは今年初めて開催されるマレーシアのPyConです。どのようなイベントになるのか、そしてどのような交流を持てるのか、今からとても楽しみです。