こんにちは。Pyladies Tokyoです。前回は「PyCon APAC 2017 in Malaysia」のConference Day1 の様子をお伝えいたしました。今回はConference Day2の様子をお伝えしたいと思います。
Day2 Keynote ~ Jessica McKellar氏
Day2 のkeynoteはPyConのDiversity Chairを担当されているMcKellar氏によるセッションです。このセッションはPythonについてではなく、「 プログラマとしてのマインドセット」を語ったものでした。"Change the world with Python"というタイトルの通り、アメリカの刑務所でPythonやプログラミングの教育活動を行っていることを軸に、Python教育や多様性の重要性を伝える内容となっていました。
「プログラママインド」とはdebugの思想であり、debugの思想は私たち自身の考えや世界全体の考え方をも変えることができる思想であると訴えています。debugの思想とは、ルールに従い、同時にルールを変えることを考える思想です。
プログラミングにはルールがあり、私たちプログラマはルールに則って自由に実行や変更、再配布などさまざまな作業を行うことができます。それと同時にルール自体を変えることができるのもまた、プログラマなのです。このdebugの思想こそがDiversityを根付かせるマインドなのであると彼女は語りました。Pythonに限らず、プログラマとしての考え方を身につければ、世界との関わり方を変えることができるという力強いメッセージです。
事例を交えながらDiversityについて語ります
会場の参加者からは、「 インターネットとの接続のない刑務所でどのようにプログラミングを教えるのか」「 受刑者からの質問に回答できる人はいるのか」など、どのようにプログラミングを教えるかということから、「 Jessicaはどうしてプログラマの多様性に関わろうと思うようになったのか」といったスピーカーのMcKellar氏自身のキャリアについてなどの質問が上がりました。
「ルールを変える」という考え方をdebugと紐付けて考えたことがなかったため、何気なく当たり前に持っていた感覚に新鮮な気持ちを吹き込んでいただいたように思います。
また、性別によるDiversityに目が行きがちになりますが、人種やその他さまざまな要素におけるDiversityについても今一度深く考える良い機会となりました。
質疑応答も活発に行われましす
Write Elegant Concurrent Code in Python ~Mosky Liu氏
PyCon APAC 2016やPyCon JP 2012でも登壇していた台湾のMosky Liu氏は、今回は並列処理プログラムをテーマにした発表を行いました。並列処理プログラムのコーディングやメンテナンスの難しさについての問題提起のあと、CSP(Communicating Sequential Processes)を用いた美しいコーディングのエッセンスについて取り上げていました。
CSPの利点は、プロセスが直接メソッド呼び出しを行わず、通信チャネルを介して対話動作することで、プロセス間を明確に切り分けることができる点が挙げられます。また、わかりやすく正確なプログラムを比較的簡単に作成でき、維持管理の面でも堅牢であることをコーディング例を交えて解説していました。
セッションの後半では、CSPとLockやParallel Map、Actor Modelといったその他のモデルを比較し、CSPの柔軟性や保守性の高さ、コーディングのシンプルさをわかりやすくまとめていたことが印象的でした。
笑顔で楽しそうにお話しされてるのが印象的でした
CSPの良さを伝えるMosky氏ですが、もちろんCSPも完璧なモデルとは言えず、すべての落とし穴を回避するものではないので、ログ取得や可視化によってデバッグをしっかり行う事も重要だと話していました。タイトルの"優雅な(Elegant)"と表現された簡潔で正確で安全なコードは、並列処理以外でも大事な要素なのだと改めて実感させられる内容でした。
Physics and Math with python – A learning adventure ~Praveen Patil氏
このセッションでは、高校で教鞭をとっているPatil氏が物理や数学を教えるのにPythonの可視化技術を利用して進めている授業内容のデモが行われました。生徒たち自身が実際にデモを行い、結果をPythonで可視化することによって、生徒達の理解度が上がったという成果について共有されました。
Patil氏は、セッション開始直後に「この中で物理が大好きな方はいますか?あまりいませんね。でも、堅苦しく思わないでください」と笑いを取りながら、物理や数学とPythonとのつながりを話してくれました。
会場では、磁石に針金を巻いたコイルから電球が点滅する様子をグラフで可視化することで、電流を捉えることができるという簡単でわかりやすいデモや、ライトで円や三角形を映すことができる機械で、ライトの形を変えると電気の周波数が変化することををグラフで可視化するデモがありました。
本セッションで話されていた取り組みは、学校の授業の一環として取り入れ、物理や数学の授業の中でプログラミングも教えるという新たな教育の方法であると思います。このような授業があったら筆者(赤池)ももう少し物理に興味を持ったかもしれません。
物理が楽しくなりそうなデモ
Page Layout Analysis of 19th Century Siamese Newspapers using Python and OpenCV ~Mark Hollow氏
19世紀に存在した国、シャム(現在のタイ王国)で使われた文書を、OpenCVやディープラーニングを用いてデジタル化しようというプロジェクトの軌跡のお話でした。
OpenCVの閾値処理(threahold)を使って背景のノイズを除去したのち、モルフォロジー処理(erode / morphologyEx)を使ってページレイアウトを取得します。取得した各レイアウトのセグメントであるタイトル・罫線・本文などは、それぞれの役割ごとに別の学習モデルを使って解析をしているとのことでした。
OpenCVで抽出した文章は、ディープラーニングの手法のひとつであるLSTM(Long-Short Term Memory)を使ったOCRシステムに利用されるそうです(今回はOpenCVのセッションであったため、OCRシステムについては触れる程度でした) 。OpenCVの閾値処理を使ったノイズ除去や、さらに高度な画像処理であるモルフォロジー演算利用したページマージンの検出や、紙面レイアウトの取得作業は大変勉強になりました。
画像から文書のデジタル化ができるようになると、史学や考古学の研究はより捗るのではないでしょうか。いろんzな古文書で使えるようになるといいですね。
OpenCVの機能について語るHollow氏
LT(Lightning Talk)
Conference Day1/Day2 ともに、一日の終わりはLT大会で締めくくられました。
Slackbotやserverlessなど流行りのものから、自作ライブラリやコミュニティの話まで。バラエティに富んだトークとなりました。日本からも@c_bata_ がpython-prompt-toolkitの話でLT参戦していました。
LT発表中の@c_bata_ 堂々とした発表です
PC接続調整のバタバタ感もLTの醍醐味
その他:参加者のブログなど
この記事が出るよりも早く(!!) すでに日本から参加したみなさんのブログが上がっています。よろしければ合わせてご覧ください。
終わりに
以上でPyCon APAC 2017 in Malaysia のレポートは終わりです。PyCon初参加、PyCon初登壇、初海外カンファレンス、初レポート……と筆者たちにとって「初めて」だらけのイベントとなりました。たくさんの人に支えられながら、楽しいカンファレンス体験をすることができました。カンファレンスで出会った人たち、PyCon APAC運営のみなさん、PyCon JPのみなさんに感謝の気持ちでいっぱいです。本当にありがとうございました。
「海外のカンファレンスってちょっと怖い」「 私英語できないし…」としり込みしてしまっている方がもしいらっしゃったら、ぜひ思い切って参加してみてください。PyConJPで毎年ツアーが企画されますし 、PyLadies Tokyo slack (女性のみ参加可能)でも支援を行っております。日本のみなさんと旅を共にすると不安感も払拭されますよ!
英語ができなくてもカンファレンスで得るものはたくさんありますし、たどたどしくても一生懸命しゃべりかければきっと話し相手は応えてくれます。ぜひ来年のAPACにみなさんも参加してみてください!
Pyladies Tokyoメンバーで
日本から参加したメンバー(全員ではない)で集合写真!