blog

DeNAのエンジニアが考えていることや、担当しているサービスについて情報発信しています

2013.05.08 イベントレポート

PyCon 2013に参加しました

by ytakeuch

こんにちは、DeNAの竹内です。

私は3月にDeNAの国際学会派遣制度によりPyCon 2013に参加してきました。

国際学会派遣制度とは?

 DeNAの国際学会派遣制度は世界最先端の技術に触れることを目的として、エンジニアが学会やセミナーに参加することを支援する制度です。四半期毎に応募および審査があり、四半期毎に複数名のエンジニアが派遣されています。

 私が参加したPyConはプログラミング言語Pythonのカンファレンスの内で最大級のもので、年に一回開催されています。他の地域でもPythonのカンファレンスが開催されていて, ヨーロッパではEuroPython、アジア太平洋ではPyCon APAC、日本ではPyCon JPがあります。

概要

  • 場所:サンタクララ・コンベンションセンター
  • 期間:3/13〜3/21
  • 参加者:2500人

イベント

 PyCon 2013は大きく、次の4つのイベントに分かれています。

チュートリアル(3/13〜3/14)

 カンファレンスの前に開催される2日間の有料チュートリアルセッションです。4トラック x 午前・午後 x 2日で開催されました。

カンファレンス(3/15〜3/17)

 PyConのカンファレンス本体で3日間開催されました。

スプリント(3/18〜3/21)

 スプリントは日本のハッカソンに該当するもので、Pythonに関するプロジェクトの開発を集中して行うための催しです。カンファレンス後の4日間、カンファレンス会場に隣接したホテルの会議室で開催されました。

サミット

 招待制のイベントで、Python Language SummitとPython in Education Summitが開催されました。

会場

大ホール

 カンファレンス参加者全員(2500人)を収容できるホールです。前方の壇上にはPyConのロゴが投影され、ホール内の壁にはスポンサーのバナーが掲示され華やかな雰囲気でした。

カンファレンスルーム

 カンファレンスはルームは6つあり、それぞれで30分または40分の発表が行われました。  

エクスポホール

 エクスポホールでは、カンファレンス前夜にはレセプションパーティーが行われ、カンファレンス1日目・2日目は企業ブースが設けられました。 3日目はポスターセッションによる発表と、ジョブフェアーによる求人活動が行われました。  

イベント詳細

 イベントの内容についてはスライド資料とビデオがまとめられています。

チュートリアルセッション

https://us.pycon.org/2013/schedule/tutorials/

 1セッション辺り$150の有料セッションです。前半90分+休憩20分+後半90分の構成で、内容も盛りだくさんで集中力を要求されました。あと、参加者がチュートリアルを受けるための環境構築に時間を取られたりしないように、Web上のPython実行環境で演習を行うようにしたり、AWS上に環境を構築してユーザIDとパスワードを提供するなどの工夫をしているセッションが多かったです。また、チュートリアルの実行コードを順次リアルタイムのドキュメント共有サイトに掲載しているセッションもあり、セッション終了後に復習できるようにしてもらえたのはありがたかったです。

カンファレンス

キーノートスピーチ

 キーノートスピーチはカンファレンス3日間それぞれに行われました。

 印象深かったキーノートスピーチを1つ挙げます。

 Raspberry Pi FoundationのEben Upton氏

http://pyvideo.org/video/1668/keynote-2

 子供向けの教育用のコンピューターとして開発されたRaspberry Pi の開発の動機・歴史・現在をPiにちなんで円周率(3.1415...)にかけて行われました。

3.1415... なぜRaspberry Piを開発したかという(1つの)お話

 1990年代に比べて最近の学生はコンピュータがどのように動くか理解していないということがわかり、それをなんとかしようといのが動機でした。そこで教育のために次に示す4つを満たすコンピュータを開発することにしたとのことです。

  1. プログラマブルであること
  2. 子供が興味をもつようなゲーム、グラフィック、ビデオが実行できること
  3. 小さくて頑丈であること
  4. 安価なこと

3.1415... Raspberry Piの応用例を15枚のスライドで説明

レゴで作ったRespberry Piのケース

人気ゲームのMinecraftがRaspberry Piに移植されました

インドの子どもたちもRaspberry Piを触っています

3.1415... Raspberry PiにとってPythonが重要な4つの理由

  1. Our name - Raspberry PiのPiの由来はPythonです
  2. Our chip - SoCデバイスの設計と検証にPythonを使っています
  3. Our software -
  4. Our teaching language - 教育用言語にPythonを採用しています

3.1415... Upton氏が考えている3つのこと

  1. Those brackets in hello world
  2. PyPy
  3. Boot to Python

 PyCon 2013参加者全員にRaspberry Pi(+ACアダプタ and SD Card)がプレゼントされました。

セッション

 参加した主なセッションについて説明します。

Kivy: Building GUI and Mobile apps with Python

 http://pyvideo.org/video/1701/kivy-building-gui-and-mobile-apps-with-python

 https://speakerdeck.com/pyconslides/kivy-building-gui-and-mobile-apps-with-python-by-thomas-hansen-and-mathieu-virbel

  Kivyはモバイルプラットフォーム向けのPythonライブラリーです。iOS, Androidデバイス以外にもLinux, WIndows, Mac OSXでも動作させることができます。

  マルチタッチのインターフェースをサポートしています。また、Open GLESをサポートしてGPU恩恵を受けることができます。

PyPy without the GIL

 GIL(Global Interpreter Lock)無しのバージョンのPyPyはSTM(Software Transactional Memory)により可能になっていますが、STMを用いることにより他にも多くの利点があるという話です。

The Guts of Unicode in Python

 PythonのUnicodeの内部表現がPython3.3までにどのように変化していったかの説明がありました。

Python for Robotics and Hardware Contro

 Pythonでメカトロニクスを操作するための手法についての説明でした。

Cython vs SWIG, Fight!

 PythonからCライブラリを使えるようにするツールのCythonとSWIGについて、それぞれの解説と、利点・欠点について比較するという内容でした。  

LT(ライトニングトークス)

 LTはカンファレンス期間それぞれの日の最初と最後に計5回開催されました。LTで発表したい人は決められた時間までに受付近くの紙に自分の発表したい内容と固有IDを記載します。

LTは大きく分けて4つのカテゴリに分かれていました。 

  1. プロジェクトの成果発表
  2. コミュニティー告知
  3. イベント告知
  4. ウケ狙い(ただし技術レベルは高い)

オープンスペース(アンカンファレンス)

https://us.pycon.org/2013/community/openspaces/packaginganddistributionminisummit/

 オープンスペースは空いていれば早いもの順で予約して使用することができる部屋で、いろいろなコミュニティーが利用していました。

オープンスペースのボード

私が参加したのはPackaging and distribution tools mini-summitです。こちらではPythonのパッケージツールに関する議論が行われました。パッケージングツールについて提案を行いたい人が順番に発表し、個々の提案について主要開発者が意見や提案をするという流れで行われました。

Packaging and distribution tools mini-summitの様子

スプリント

 Kivyのスプリントに参加しました。未完成だったリフレクションを用いてモバイルデバイスのAPIにアクセスするPyJNIusの開発を行いました。開発を進めるなかでCython、libffi、Objective-Cのリフレクションについて多くの事を学べました。

ちなみに、斜め向かいのテーブルではPython作者のGuidoが開発を行なっていました。

その他感じたこと

教育

 教育向けの言語としてのPythonが使われていというのを強く感じました。The Young Coderというイベントが2日間開かれ、12歳〜18歳の子供がPythonでプログラミングを学んでいました。

 また、Raspberry Piについてもカンファレンス期間中、一部屋を使ってチュートリアルを開催していました。

Raspberry Piの部屋でメディアの取材を受けるEben Upton氏

子供

 ポスターセッションでは小学生くらいの子供が発表していました。

 Serpintというsocketまたはserial越しにRaspberry PiのGPIOを操作するライブラリについて説明しています

ボランティア

 チュートリアルの期間やカンファレンス開催中でもボランティアの参加を求めていました。スプレッドシートにあるボランティアの募集を見て、協力したいものがあれば記載するという敷居の低いものになっていました。もっとも簡単なボランティアはカンファレンスで配布する資料やノベルティの袋入れで、私もお手伝いしました。

袋詰めのボランティア

食事

 カンファレンス本体初日から朝食と昼食が提供されました。基本的には欧米料理 or メキシカンです。

 またスプリントは登録不要・参加費無料なのですが、昼食が提供されました。

日本からの参加者

 アジア人の参加者は結構いたのですが日本人は非常に少なかったです。しかし、私はPyCon JPのTシャツを着ていたため、現地のボランティアや参加者から日本語で話しかけられることが多かったです。

おわりに

 普段はメーリングリストでしか名前を見たことのない開発者の講演を聴けたり、実際にスプリントでコアデベロッパーと話をしながら開発を行えたのは日本では得がたい経験でした。

 初めての海外のカンファレンスの参加で不安もあったのですが、業務での参加ということで日程的に初日の前日夕方着・最終日の翌日夕方出発で、カンファレンス会場に隣接したホテルに宿を取ることができ、体力的に余裕を持つことができました。また、ホテルのチェックインでちょっとしたトラブルが生じましたが、東京側のスタッフの協力により無事解決することができ、安心してカンファレンスを過ごせたのは幸いでした。

 来年のPyCon 2014はカナダのモントリオールで開催されます。

最後まで読んでいただき、ありがとうございます!
この記事をシェアしていただける方はこちらからお願いします。

recruit

DeNAでは、失敗を恐れず常に挑戦し続けるエンジニアを募集しています。