PyCon JP 2016カンファレンスレポート

1日目オープニング、Jessica McKellar氏基調講演、鷲崎弘宜氏、Seiya Tokui氏の招待講演、注目セッションからLTまで

PyCon JPとは?

PyCon JPは、Pythonユーザが集まり、PythonやPythonを使ったソフトウェアについての情報を交換し、Pythonユーザが交流をするためのカンファレンスです。

PyCon JP 2016では、⁠Everyone's different, all are wonderful.」をテーマに据えました。2日間のカンファレンス来場者は昨年の602名から今年は720名まで増え、 昨年に引き続き過去最大の来場者数を更新し大変な盛り上がりとなりました。 ご参加いただいた皆様、本当にありがとうございました。

画像

1日目基調講演『Breaking the rules』 ― Jessica McKellar

(橋本安司)

カンファレンス1日目の基調講演はJessica McKellar氏による、⁠Breaking the rules』と題した、OSSなどのコミュニティ活動に貢献することで「ルールを破り世界をデバッグしよう」というテーマの講演です。

Jessica McKellar氏の講演の模様
Jessica McKellar氏の講演の模様

Jessica氏は、起業家として、ソフトウェアエンジニアとして、さらにオープンソース開発者として、多方面で活躍されています。これまでに、Python Software Foundationのディレクター、北米PyConにおけるダイバーシティ推進活動の代表者、さらにはTwisted等著名OSSのメンテナなどを務めてきました。これらの活動は大きく評価され、2013年にO'Reilly Open Source Awardを受賞しています。

画像

「Programing changes the way you think about and debug and interact with the world.」

今回のトークの冒頭で掲載され、またトーク中何度も繰り返されたメッセージです。

プログミングを学び、考え方を変え、デバッグして、世界を変えることができる、社会をよくできる、そんなメッセージです。プログラマーはシステムを変更する方法を習得しています。システムをデバッグし、より良いものにしていく。同じことをコミュニティや、社会・国家といった単位で行うことで、自分の想いを実現していこう。そのためには、コミュニティに入り、その活動を通じて、貢献していこう!!と、Jessica氏は呼びかけました。

また、質疑応答も活発に行われました。

  • 「もっともエレガントなシステムとは何か?」
  • 「プログラミングビギナーの気持ちを理解するには?」
  • 「⁠⁠周囲より遅くプログラミングを始めたことによる)劣等感をどう克服しましたか?」

など、多くのQAが飛び交いました。

質疑応答の模様
質疑応答の模様

盛り上がったKeynoteと質疑応答の様子はこちらで動画配信しています。ぜひぜひご覧ください。

Jessica McKellar氏講演資料(PDF)

1日目招待講演「Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン」―鷲崎弘宜

(橋本安司)

ここでは招待講演の「Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン」を紹介します。本講演のスピーカーは、会場である早稲田大学の鷲崎弘宜教授です。

講演を行う鷲崎弘宜氏
講演を行う鷲崎弘宜氏

Pythonを含む多くの言語で活用できるテストカバレッジ測定フレームワーク「Open Code Coverage Franework(OCCF)」と、そこから派生した汎用コード処理フレームワーク「UNIfied COde ENgeering framework(UNICOEN)」の紹介や、そのプロジェクトに至る経緯、多言語時代を取り巻く環境について、主に以下の3項目のセンテンスで講演は行われました。

  • エンジニアリングと再利用
  • 多言語時代のコード処理フレームワーク
  • フレームワークからデザインパターンへ
画像

エンジニアリングと再利用

「SWEBOKを見たことがない。刺激的な言葉を使うならあなたのソフトウェアにまつわる活動が正当ではない。」そんな挑発的な言葉で始まった本講演、⁠software engineering body of knowledge(SWEBOK⁠⁠」の紹介、そして正当なエンジニアリングにまつわる話からスタートしました。

正当なエンジニアリングの3つの条件、知識の体系⁠SWEBOK⁠の紹介、デザインパターン・フレームワークなど再利用の話と続いていきます。

多言語時代のコード処理フレームワーク

再利用の話を踏まえた上で、いよいよ「OCCF」「UNICOEN」の紹介です。一つのプロジェクトで複数の言語を扱う事が多い現代における、ツール開発支援のフレームワークです。JavaやRubyなどのコードも交えた両フレームワークの特徴、複雑度測定ツール、翻訳による言語学習(JavaをSwiftに翻訳したり)などが紹介されました。

フレームワークからデザインパターンへ

最後はデザインパターンの紹介。フレームワークとデザインパターン違い、共通言語・共通指針としてのデザインパターンの説明。OCCFにおける命令網羅のPython用実装、そしてデザインパターンの落とし穴で話は締めくくられました。

画像

会場では熱心に耳を傾ける方が多く、QAも熱を帯びていました。45分という時間の中に、非常に高い密度の内容が詰まった講演でした。

具体的な鷲崎教授のお話はこちらで動画配信しておりますので、ぜひぜひ確認してみてください。

1日目注目セッション「Pythonで作るWebクローラ入門」―Ai Makabi

(陶山嶺)

Ai Makabi氏による「Pythonで作るWebクローラ入門」と題したセッションを紹介します。 Makabi氏は、DATUM STUDIO株式会社でデータ分析の仕事を行なっており、PyLadiesTokyoの代表も務めている方です。

Ai Makabi氏
Ai Makabi氏

このセッションでは、とても実践的かつ丁寧なクローラの解説が行われており、 まさに「Webクローラ入門」のタイトル通り筆者のようなWebクローラ初心者にはとても有益なセッションだと感じました。

まず、セッションの冒頭では、Webクローラとは?と題して、スクレイピングとの違いや利用事例、注意点などを交えてクローリングについての説明が行われました。

次に本題に入っていくのですが、セッションの流れは以下の通りでした。

  1. Webクローラを利用する上での注意点
  2. Python製クローラフレームワーク「Scrapy」のコード、デモを交えた使い方紹介
  3. その他クローラ構築に有用なライブラリ紹介

まず、Webクローラを利用する上での注意点ですが、岡崎市立中央図書館事件を取り上げ、使い方次第では法に触れる可能性があることの注意喚起を行いました。 そのうえで、適切なクローリングを行うために、robots.txtに記載された内容を守る、サーバーへのアクセス間隔を1秒以上あけるなど具体的な注意事項の紹介がありました。 クローリングはとても便利な技術ですが、使い方を一歩間違えると大きな迷惑をかけてしまう可能性もあるため、用法用量を守って適切に利用していきましょう。

次に、Python製クローラフレームワーク「Scrapy」の紹介へと入っていきます。 Makabi氏曰く、⁠Scrapy」はクローラ界におけるDjangoのような存在とのことで、この言葉だけでも非常に多機能であることが想像できます。

そして、ここからはデモを交えながら、Scrapyを利用して、www.python.org/jobsをクロールする、PyJobBoardクローラの作成が行われました。Scrapyは、Djangoのようにサブコマンドからプロジェクトやクローラの雛形を簡単に作成することができ、とても便利だと感じました。 デモもプロジェクトの作成から行われ、実践的なTIPSの紹介もあるため、クローラ初心者にも非常にわかりやすい内容となっています。

作成したクローラが一通り動くことを確認した後は、Scrapy用のクローラ管理ツールの紹介へと移ります。Scrapy Cloudはクラウドサービス上で動くScrapy環境となっており、簡単に作ったクローラのデプロイやスケジューリングを行うことができるようです。 クロール対象が1サイト以下の場合は無料で使えるようですのでぜひ利用していきたいサービスですね。 scrapydは、ScrapyのデーモンでPython3は非対応とのことですが、無料で利用できる点やJenkinsとの連携が強みとのことです。

セッションとしては以上でしたが、今回時間の都合上省略せざるを得なかった内容として下記の項目も用意されていたようです。

  • BeautifulSoup4を中心とした各種スクレイピングライブラリについて
  • JavaScriptを解釈するクローラの話

資料は作成済みとのことなので、どこかのタイミングで発表される機会があることを期待しています!

1日目招待講演「確率的ニューラルネットの学習とChainerによる実装」―Seiya Tokui

(陶山嶺)

招待講演者としてお招きしたSeiya Tokui氏によるセッション、⁠確率的ニューラルネットの学習とChainerによる実装」を紹介をします。スピーカーのTokui氏は、株式会社Preferred Networksに在籍する深層学習フレームワークChainerのリード開発者で、東京大学の博士課程の学生でもあります。

Seiya Tokui氏
Seiya Tokui氏
会場は立ち見だけでなく、床枠まで使う大盛況!!
会場は立ち見だけでなく、床枠まで使う大盛況!!

このセッションは、前半でTokui氏の研究分野の紹介がありました。 まず、Tokui氏が研究対象としている確率的ニューラルネットの学習についての概要について説明があり、その最適化に対する手法として以下の2つが紹介されました。

  • likelihood-ratio method (with baseline)
  • reparameterization trick

セッションの後半では、前半で紹介した手法について、数式とコード例を交えながらChainerでどのように実装するかの解説が行われました。 また、その中でTrainerというTokui氏が開発し、最近Chainerに追加された機能の紹介もありました。

確率的ニューラルネットについて語るTokui氏
確率的ニューラルネットについて語るTokui氏

セッションの最後では、Tokui氏の研究内容と成果に触れながら、Chainerのいい点として、Numpy, Scipyとの相性の良さをあげられていました。

研究者という立場での講演であったため難しい内容のセッションでしたが、他のセッションでは聞けない招待講演ならではのとても専門的な内容が非常に新鮮でした。

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

(陶山嶺)

PyCon JP 2016では、1日目、2日目ともクロージングでライトニングトークを行いました。ここでは、カンファレンス1日目のクロージングから、ライトニングトークを2つ紹介します。

まず1つ目は台湾から参加されていたRenyuan Lyu氏による「Simple KaraOke's Scroring System in Python」です。

Renyuan Lyu氏
Renyuan Lyu氏

カラオケが大好きだというRenyuan氏は、カラオケの採点システムに興味を持ち調査したところ、これが日本限定のサービスだったため、Pythonを使って自分で作ることを決意したそうです。

Renyuan氏の作ったカラオケの採点システムは

  • Python3.5
  • Pygame
  • PyAudio
  • Numpy

で構成されており、YouTubeの音声とマイクからの音声を比較しスコアを計算してくれるというもの。 このシステムはデモムービーで紹介されたのですが、残った時間で実際に本人がデモで歌い始めるという予想外の展開に、とても会場が盛り上がったライトニングトークでした。

2つ目はTomohiro Yoshikawa氏によるライトニングトーク、⁠Python, Astronomy and Kyoto Nijikoubou」を紹介します。 Yoshikawa氏は、メンバー全員が天文学の博士号を持つ天文学者であり起業家でもあるLLP京都虹光房の一員として活躍しており、ライトニングトークでは天文学とPythonの関係についてお話しをされました。

Tomohiro Yoshikawa氏
Tomohiro Yoshikawa氏

PythonはAstropyやPyRAFをはじめとする天文学用のツールが豊富であり、天文学者にもよく利用されているようです。 その具体的な例として、ハワイのマウナケア山頂にあるすばる望遠鏡の観測制御システムがPython製であることの紹介がありました。

このトークは科学計算やデータ分析、学術的な分野で広く使われているPythonならではだと感じる内容になっており、非常にPythonカンファレンスらしい興味深いトークでした。

―次回は?

1日目のカンファレンスレポート、いかがでしたでしょうか? PyCon JP 2016のカンファレンスは2日間で合計40を超えるセッションがありました。今回紹介できなかったセッションに関しても、次のリンクからビデオや資料を見ることができますので、ぜひご覧ください。

PyCon JP 2016 トーク一覧

次回はカンファレンス2日目のセッション中心を紹介していきます。お楽しみに!

おすすめ記事

記事・ニュース一覧