日本をはじめ各国のスピーカーが語るPythonのいま 「PyCon Thailand 2019」レポート

PyCon Thailandとは

PyConはプログラミング言語Pythonに関する国際カンファレンスです。アメリカや日本をはじめ世界中で開催されています。近年はアジアでの開催も活発で、そのうちの1つが今回レポートするPyCon Thailandです。

PyCon Thailandはタイで開催されるPyConで、今回が2018年に続き2回目の開催です。筆者はこのイベントにスピーカーとして参加してきました。他にも日本からスピーカーやブース出展で参加した人がいるので、その方からの視点も交えてレポートします。

PyCon Thailand 2019 Webサイト

PyCon Thailand 2019 Webサイト

以下はPyCon Thailand 2019の開催概要です。

日程2019年6月15日(土⁠⁠、16日(日)
場所タイ、バンコク
会場True Digital Park
参加費1,600タイバーツ(約5,600円)
主催PyCon Thailand Organizing Team

前夜祭

カンファレンス前日の夜にスピーカーなどを招待した簡単なパーティーがありました。事前にWebサイト上で「カンファレンス前日にPartyを計画中」と書いてあることを確認していたので期待していたのですが、まったく連絡がありません。するとその日(6月14日(金⁠⁠)の18時45分ごろに「Nowhereという店で20時30分から飲むよ」というメールが来ました。⁠ゆるいな」と思いましたが、誘われたら飲みに行く人なので、当然いきました。

そこでスタッフやスピーカー数名と交流しました。スタッフのFrancoisさんと、次の日のキーノートスピーカーのDavidさんは日本語も少し話せるので、日本語でも交流できました。

このパーティー、最初の1杯が無料だったんですが、そのビールがなんとアサヒスーパードライ。私はあんまり好きじゃないのと、なぜタイに来てまでアサヒビールという気持ちでしたが、まぁ飲みました。ちなみにアサヒビールは結構海外進出しているようです。タイのローカルクラフトビールも飲みたかったので、駅からNowhereに歩いて行く途中にあったEkamai Beer Houseという店に寄り道して、Ekamai IPAを飲んで帰りました。ちなみにこの店にもアサヒビールは置いてあり、他に常陸野ネストビールも置いてありました。

オープニング

カンファレンス1日目のオープニングです。最初にアイスブレイクがあり、よくある「まわりの席の人と挨拶しましょう」といったものです。面白かったのが、このホールの席は階段状になっているのですが「奇数列の人が立って後ろを向いて話してね」というものでした。確かにお互いに目線がちょうどあって良い感じです。私の後ろの席の人は偶然にも台湾からの参加者でした。⁠私は今年のPyCon Taiwanにもトークしに行くので、また会いましょう」といった話をしました。

オープニングの様子
オープニングの様子

なお、写真の右側がPyCon ThailandのChairのDylan Jay@djay75氏で、左側が最初のキーノートスピーカーのDavid Cournapeau氏です。

自分の発表 ― 「Automate the Boring Stuff with Slackbot」

GitPitch Presents: github/takanory/slides

Modern Slide Decks for Developers on Linux, OSX, Windows 10. Present offline. Share online. Export to PPTX and PDF.

1日目のランチタイムの前に私の発表がありました。このトーク自体はPyCon APAC 2019で行ったものと同じでしたが、いくつかスライドを手直ししたり、スライド中のAPAC用のネタをタイ用のネタに変えたりして発表に臨みました。

会場の中に電源のあるファミレスっぽい席があって、集中して直前の準備作業ができました。この席に、他の2名の日本人スピーカー(2人は次の日が発表)もやってきてもくもくと作業を進めていました。

ファミレス席
ファミレス席

さて、実際の発表です。最初にタイに初めて来たよということと、いくつか簡単な質問をすることでアイスブレイクとしました。

「日本に来たことある人?」と質問すると50%くらいの人が手を上げてくれました。⁠まだ来たことがなかったら、ぜひPyCon JPに来てください。PyCon JPで再会しましょう。」という話をしたら少し笑ってもらえました。

「日本に来たことあるひとー?」と聞いているところ
「日本に来たことあるひとー?」と聞いているところ

担当スタッフから「発表が30分で質疑応答が15分で」と言われて「えー、まじかー」と思いつつ、全体的に早口でしゃべっていたら、時間配分を間違えて28分くらいで発表が終わってしまいました。自分的にはちょっと巻いた感じで40分くらいしゃべろうかと思っていたんですが、ペース配分を完全にミスしました。

とはいえ、時間がきてしまったのでしょうがないので質疑応答に入ります。質問は結構な数がでて、そこをなんとかこなすことができたので、筆者自身の自信にもつながりました。いくつか質疑応答の内容を紹介します。

―LINEBotを作りたいんだけど、この仕組みでできますか?

基本的にはメッセージを受け取って、なにか処理をして返すのでLINEBotでもプログラムの考え方は同じです。ただし、SlackbotはSlackに特化したフレームワークなので、LINEBotの場合は別のフレームワークを使用してください。errbotは汎用のbotエンジンと各チャットのアダプターを持っているので、こっちの方が用途には合っているかも知れません。

―このbotはどこで動かしていますか?

PyCon JPではWeb用にサーバーを借りているので、そこで動かしています。Slackbotは動作させ続ける必要があるので、EC2とかHerokuとかを使用するのが楽です。

―Googleカレンダーと連携する機能を作ってみたいが、どうすればよいですか?

この例ではGoogleスプレッドシートを出しましたが、同様にGoogle カレンダーのAPIが提供されているので、そのAPIを使うとよいと思います。私も別のツールでCalendar APIを使っています。カレンダー上のイベントの取得や変更など、一通りの操作ができます。

―このBotはあなたの発言にしか反応しないのでしょうか?

いえ、そうではありません。BotをSlackのチャンネルに招待したら、そのチャンネルの全メッセージに反応します。どのチャンネルでBotが反応するかは、Botをチャンネルに招待するかどうかなので、プログラムではなくSlack側での設定となります。

他に発表に関するネタとしては、発表の中でSlackで送信するメッセージの例として「私はタイのクラフトビールバーを探しています」と書いて「本当に探しています」と言いました。すると参加者の1人が「俺知ってる知ってる!!」というリアクションをしてくれて「じゃあ、あとで教えてね!!」とやりとりできたのは楽しかったです。その方は実際に1日目のパーティー中に「ここの店がいいよ」と教えてくれました。ただ、2日目の夜にそこに行こうとしたら、残念ながら日曜は営業していませんでした…。

また、質疑応答で1名どうしても質問が聞き取れない方がいましたが、他の人が言い直してくれて無事質疑応答ができました。参加者のサポートに感謝です。

発表前に参加者を撮影(この後さらに増えました)
発表前に参加者を撮影(この後さらに増えました)

発表後にBot作ってみるよというフィードバックや、一緒に写真を撮ろうみたいに言われたりしました。私の発表を楽しんでくれたようでよかったです。

会場の様子とランチ

会場となったTrue Digital Parkは、タイの通信会社trueが運営するスタートアップのインキュベートオフィスのようです。広々とした会場に、あちこちにいろんな形のイスがあって休憩もしやすくて、過ごしやすい場所でした。企業ブースも結構賑わっており、抽選で賞品が当たるAWSのブースは気合いも入っており、かなりの人だかりでした。

AWSの企業ブース
AWSの企業ブース

ランチは2日間とも5種類の中から選ぶスタイルです。開けてみてびっくりしたんですが、ご飯の色がすごいです。このご飯、バタフライピーというタイでは一般的な食用の花を使って色をつけているそうです。あとは普通っぽく見えるおかずが結構辛かったりして、タイは侮れないなと感じました。

ご飯の色がすごい
ご飯の色がすごい

「E-commerce for Django」 ―Jonghwa Seo

Jonghwa Seo氏の講演
Jonghwa Seo氏の講演

午後は、こちらも前日のパーティーで知り合ったJonghwa Seo氏による発表を見に行きました。韓国からの参加で、PyCon KRの立ち上げメンバーの一人であるKwon-Han Bae氏は同じ大学出身の友達だそうです。この発表では会社で開発しているDjango製のE-commerceサイトについて発表していたようです。

「ようです」と書いたのは、この発表がタイ語だったためです。Jonghwa氏はタイに4年ほど住んでいたことがあり、奥さんがタイ人だそうで、タイ語での発表にチャレンジしていました。おそらくPyCon Thailand全体で唯一のタイ語の発表(LTを除く)が、韓国人によって行われるという、不思議な空間でした。

1日目ライトニングトーク

1日目のライトニングトークです。印象に残ったトークを紹介します。

1つ目はNoah氏によるPythonコミュニティとアジアのPyConの紹介です。Noah氏は台湾在住ですが、フィリピンのPyCon APACや今回のタイなど世界中でPyConスタッフとして活動しています。5月に開催されたPyCon Kyushu in Okinawaなども含めて、アジア圏のさまざまなPyConなどのイベントを紹介していました。Noah氏はいったいいくつのPyConに参加するのでしょう、そして私と会うのでしょう。

Noah氏
Noah氏

2つ目は写真を撮影すると、ディープラーニングで絵画っぽい感じに変換してプリントするカメラの紹介です。日本のMaker Faireなどでも出展していて人気があったようです。内部的にTensorFlowを使って画像処理を行っているそうですが、驚きなのはネットワークを使っておらず、すべてこのカメラの中で処理をしているそうです。

ディープラーニングで画像を変換するカメラ
ディープラーニングで画像を変換するカメラ

パーティー

1日目のカンファレンスが終了すると、全員参加のパーティーです。発表会場から外に出るとすでに料理やビールが用意されており、スムーズにパーティーモードに移行できます。しかもビールはタイのクラフトビールBootleg Brothersのボトルが3種類と、生ビールが2種類用意されていました。完璧すぎます。

タイのクラフトビールでパーティー
タイのクラフトビールでパーティー

パーティーの中盤にバンド演奏があり、あまり気に留めていませんでしたが、なにやらすごく盛り上がっています。なんだろうと思って見に行ってみると、なんとスタッフの女性の方が急遽ボーカルとして参加して歌っています。これにはPyConのスタッフやボランティアも大盛り上がり。しかもこの方、結構歌が上手です。あとで聞いたらリハーサルなしでいきなり歌うことになったそうです。すごい。私はその場にはいなかったんですが、以下のTweetのように大盛り上がりだったようです。

バンドと女性スタッフのコラボ
バンドと女性スタッフのコラボ

Keynote「Python Everywhere」 ―Dr. Russell Keith-Magee

2日目のキーノートはUS PyConでもキーノートスピーカーだったRussell Keith-Magee氏です。あちこちでキーノートで発表するという、ものすごい人ですね。

Russell Keith-Magee氏のキーノート
Russell Keith-Magee氏のキーノート

内容は「Python Everywhere」というタイトルで、PythonはPCだけではなくさまざまな環境で動作するという話でした。まず前提知識としてPythonは言語仕様であり、PCなどで使用しているpythonコマンドはC言語で書かれているリファレンス実装であるという説明がありました。そのためこのリファレンス実装はCPythonとも呼ばれます。そして他にPythonで実装したPyPyや.Netで動作するIronPythonなどが紹介されました。

また、CPythonにはGILグローバルインタプリタロックが存在するが、PyPy、IronPython、Stackless Pythonなどには存在しないという説明がありました。

次に、Pythonを実装するためには、パーサー、コンパイラ、evalループ、標準ライブラリの4つの要素が必要であるという説明がありました。

そして、Russell氏も所属するBeeWareプロジェクトで開発している、他のPython実装について紹介がありました。BeeWareは、単一のPythonコードからiOS、Android、Windows、macOS、Linux、Webアプリケーションを生成するということを目標としています。

VOC
VOCはPythonのバイトコードをJavaのバイトコードに変換するトランスパイラです。現在はPython 3.4に対応しているそうです。
Batavia
BataviaはJavascript上で動作するPythonのバーチャルマシンです。現在はPython 3.4.4に対応しているそうです。

今後はWebAssemblyによってブラウザ上でPythonが直接動作するようになるであろうという話がありました。PyodideというプロジェクトでWebブラウザ上でPythonが動作するようです。

Pyodideのデモページ

Pyodideのデモページ

私も試してみましたが、最初にpyodide.jsを読み込んだ後はオフラインでも実行できるので、実際にブラウザ上でPythonが動作しているようです。なんだか不思議な感覚です。

日本から参加した2人のトーク

このカンファレンスには私以外に2人の日本人が参加してトークで発表していました。2人とも海外での登壇は初めてとのことで、どんな感じだったかをそれぞれレポートしてもらいました。

2日目ライトニングトーク

2日目のライトニングトークからも、いくつか面白かった話題を紹介します。

Python "OS" for hackers

python-os.github.ioにあるPython製のOS用のコンポーネント集です。以下のようなツールが揃っており、それぞれをデモを交えて紹介していました。Pythonでここまでできていてすごいなと感じました。

  • Qtile:Window Manager
  • Kitty:Terminal Emulator
  • Xonsh:Shell
  • Qutebrowser:Borwser
  • Ranger:FIle Manager

Pythonの数値の話

2つの変数に数値を設定してprint(a == b, a is b)でどこまでがTrue Trueとなるか?という話です(※ オブジェクトが同一の場合はisの結果がTrueとなります⁠⁠。会場に答えさせて、答え合わせをしながら進んでいきましたが、筆者もうろ覚えなので結構間違えました。みなさんもぜひ手元の環境で255、256、257のときやマイナスのときにどうなるかを確認してみてください。

数値を比較
数値を比較

Keynote「How Python Can Excel」― Katie McLaughlin

Katie McLaughlin@glasnt氏はPSFフェローであり、PyCon AU(オーストラリア)のカンファレンスDirectorやPSF(Python Software Foundation)やDSF(Django Software Foundation)のDirectorを務める方で、さまざまなカンファレンスでキーノートもするスピーカーでもあります。

トークを始める前に画面トラブルでうまく表示がされないときに、ステージ上で陽気に踊り始めたときには「この人、大丈夫か?」と一瞬思いましたが(笑⁠⁠、いざトークが始まってみるとスライドの見やすさや、トークの展開など、ものすごく上手に構成されていて個人的にとても勉強になるなと思いました。

トークは「How Python Can Excel」と題して「PythonはどうやったらExcelのようになれるのか?」という内容で進みました。まず、Excelは多くの人に使われいてとてもパワフルであること、また協力なカスタマイズも可能で例としてExcelで作られたデジタル時計があげられていました(そんなものがあるんですね…⁠⁠。次にPythonの利用者は約2,500万人、それに対してExcelは約8億人とのことで、この32倍の差をどのように埋めていくことができるか、と問いかけながら話は進んでいきます。

そして、HumaneDevelopment.orgの以下の言葉が繰り替えし引用されました。日本語訳すると「私たちは、人と一緒に働いて、人々の利益のための、ソフトウェアを開発する、人間です」といった感じでしょうか。

We are humans

working with humans

to develop software

for the benefit of humans.

次に具体的な例として、科学者、教育者、クリエイター、求道者という4つの職種に対して、Pythonでどのような役に立つソフトウェアが提供されているかを語りました。

科学者に対しては、Jupyter Notebookやpandasなどのデータ分析用のライブラリが紹介されました。ここで紹介されている、グラフを手書きっぽくするXKCD plotsや、music21でNotebook上に楽譜が描けるのは面白いなと思いました。

教育者に対してはmicro:bitCircuitPythonといった、小さな基板上でPythonプログラミングする例が紹介されていました。

クリエイターに対しては事例としてRasPiで制御できる編み機を使って巨大な編み物を作った話を紹介しました。他にはゲームを作成するフレームワークのpygameや、ゲームプログラミングの課題を出すPyWeekが紹介されていました。

求道者の例としては2019年に話題となったブラックホールの可視化が例としてあげられました。この可視化にはachael/eht-imagingというプログラムが使用されています。このプログラムはPython製で、たくさんのパッケージに依存しています。直接のコントリビューター(コードに貢献した人)は14名ですが、関連するパッケージのコントリビューター21,715人とものすごい数になります。

最後に「ぜひみなさんもライブラリなどを使ってバグを見つけたら、レポートしてほしい。バグに対して修正して貢献をしてほしい」と呼びかけていました。

Katie McLaughlin氏の講演
Katie McLaughlin氏の講演

クロージング

クロージングでは参加者の内訳などが示されていました。全体の参加人数は初回から2倍以上で400名を軽く超えていたようです。参加者の年齢層が若いこと、女性の比率は約17%であること、タイ以外に9ヵ国以上から参加者がいることがわかります。日本からの参加者数はタイ、シンガポールについで3番目だったようです。

このクロージングでChairのDylan氏からRegime Change(政権交代)というスライドで「次のPyCon ThailandのChairを募集する」という話がありました。無事新しい主催者が出てきて、来年もPyCon Thailandが開催されることを期待します。

主催者、ボランティア、キーノートスピーカーの集合写真
主催者、ボランティア、キーノートスピーカーの集合写真

まとめ

以上でPyCon Thailandのレポートは終わりです。初めてのタイで2日間のカンファレンスを非常に楽しく過ごすことができました。英語でのトーク発表はフィリピンでのPyCon APACに続き2回目ですが、質疑応答をガッツリできたことが大変ではありましたが自信にもつながりました。

日本からの参加メンバー
日本からの参加メンバー

私以外にも2名も日本からスピーカーがいたことも、とてもよいことだと思います。こんな感じで、いろんな人が海外のカンファレンスでの発表に挑戦してくれるといいなと思っています。

さて、次はどこのPyConに行こうかな?(まぁ、すでに次の予定は決まっているんですが)

PyCon Thailand参加者の集合写真
PyCon Thailand参加者の集合写真

おすすめ記事

記事・ニュース一覧