Foreverly

メモ帳

PyconJP 2016〜2日目〜

PyconJP 2016の2日目も行ってきました。 初のPyconJPでしたが、楽しかったです。 スタッフの皆さん、スピーカーの方々ありがとうございました!

忘れないようにメモ代わりに雑に書きます。 よかったらPyconJP 2016〜1日目〜も読んで下さい。

Keynote

眠くて間に合うか心配でしたが、ギリギリ間に合いました。 雨で電車が止まらなくてよかった。

2日目はAndrey Vlasovskikhの基調講演でした。 Pythonの型ヒントにcommitしてる人らしいです。 ロシアから来てくださって、故郷のサンクトペテルブルクはモスクワの次に多きいところで、 日本でいえば大阪みたいなところと言って面白かったw 写真を見せてくれましたが、北ヨーロッパに属するらしく 情景が美しかったです。

話の内容としてはPython3.6の機能についてでした。 文字列リテラルと変数、数値リテラルの変更点など、 詳しくはドキュメント読みましょう。 Python3推しは無理にしないで、客観的に話すと言っていました。 あるアンケートではPython2と3の使ってつ人の比率は50%が3系で、 56%は2系を使っているらしく、一部重複しているのは2と3を使っている人がいるから。 PyconUS2020でPython2のさよならパーティがあるらしく、 これからPython書くなら3系ですね。 2017年に、Django2.0でのpython2のサポートも消えるらしいです。

Pythonの型ヒントはPython3.0から登場したが、当初はSyntaxだけで、semanticsは提供されなかった。 3.5で標準化されたて、Mypy,PyCharmで使えるようになった。 Python3の型ヒントの良くないところは静的型付けなのでコードを書く量が増えるし、小さいプロジェクトなら不要。 あとは100%の互換性があるわけではない。

型付けのケーススタディはPython2からPython3に準拠させたら6万ドルかかった企業(twisted)があった。 また、Dropboxでは型ヒントを追加してからPython3に移行した。

Async-Awaitは3.6ではyieldとawaitとasyncが使えるようになる。 Async-Awaitのいいところ。Coroutineとawaitable。 Async-Awaitのわるいところ。同期版があれば非同期版をかかないといけない。 DjangoとFlaskが使えなくなるので、Tornadoやaiohttoに移動しないといけない。 TornadoはFlaskと同じくらいpopularになってきたらしいので、 Tornadoも触っておきたいです。

質問では英語で質問する人が多かったので同時通訳の人が大変そうだった。。。 個人的には日本語で質問して、英語で話したいのなら懇親会とかセッションの合間とかに 話すのがいいんじゃないかなあとカンファレンス行くと毎回思う。

You Might Not Want Async (in Python)

台湾の方で、発表のネタがアジアっぽかった。 syncよりasyncの方がCPU待ち全然ないのすごかったです。 Python3.5の機能良さありました。

Lunch

ビュッフェ形式でした。美味しかったです。 特にだれとも話さずモクモク食べてた。

ジョブフェア

ビュッフェ形式ならジョブフェア人が少ないのではと思ったけど、 そんなことなかったです。 朝会してるとか、リモートワークの是非とかありました。 リモートワークの話題でrebuild.fmの名前が出てきたw リモートワークはワークライフスタイルではないので、 個人的には日本だとリモートワークをワークライフスタイルって考えてるから 上手くいかないんだろうなあと思います。 リモートワークは世界に展開してなかったり、 地方などにいる優秀なエンジニアを雇いたいって企業がやるものなので、 リモートワークやっている企業の人が、多様性を持ちたいから海外の人を雇うために リモートワークをしていると言っていて、 まさしくそうで、外国籍の人を雇いたいって企業がリモートワークやればいいだけの話で、 ウチは反対ですっていう会社はそもそもやる必要がないんですよね。

HTTPプロクシライブラリproxy2の設計と実装

1日目のやつが移動してきたセッションですね。

proxy2の話で、gzipとdeflateモジュールを使って実装したらしいです。 RFC2616, RFC7230も読んだそうです。 ssl.wrap_socketとかBaseHTTPserver, hyyplib,threading,select.ssl, deflate,gzipなど標準モジュールだけで作れるらしい。

Building Distributed System with Celery on Docker Swarm

台湾の方の英語セッションで Docker Swarmということを期待して参加しました。 Celeryも少し調べておきます。

from celery import celery

発表中に発表聞かないで、自分の発表資料作る人がいて、う〜んって感じだった。

おやつ

カップケーキでした。すごいかわいいし、美味しかったです。

はじめて作るDjangoプラグイン

ぎぎにゃんの発表。 ク社rails 使ってるイメージだけど、趣味でDjango使ってるのかなと思ったら、 まさしくそうらしいです。

ぎぎにゃんが作ったプラグインの紹介 django-debug-toolbar-vcs-info

ぎぎにゃんの友達が作ったプラグインの紹介 django-permission

プラグインまとめサイトの紹介(2年近く放置されているらしいです。。。) awesome-Django

プラグインを書くときの注意点を紹介してくれました。

実装、テスト(TDDでも可)をやってから色んなCI環境を整える。 全ての環境で通ったらドキュメントを書いて公開する。 というのが流れらしいです。

2.3両方サポートするようにテストは厚くするのが大事で、 後方互換性を気にして3で書くのがオススメ。

ディレクトリ構造の紹介。 ソースを置くディレクトリがパッケージ名になる。 テストのディレクトリ。 ドキュメントのファイルとディレクトリ。 パッケージ、ディストリブューシャン用。

  • キーワード

sixは2と3の互換をしてくれるもの。 compat.py run tests.py toxは複数バージョンでテストするのによい。 Django.test.utils Mock setting.pyとTravis.xyl Toz-Travis Readme.xtxtはマークダウンではなくrsdで書く。

Bottle.py ライブコーディング&リーディング

buttol.pyでのwebアプリ作成の紹介

Lightning Talks

1日目よりかは真面目内容だったな。

Closing

虫の鳴き声が聞こえてきて秋を感じる中、クロージング。

会場を貸してくださった早稲田大学ありがとうございました! トイレで喫煙をした人がいたらしい、、、 トイレで喫煙はヤバイでしょ...昭和の不良かな? スポンサーからのプレゼントコーナーはよかったですね モノタロウの工具すごかったwめっちゃデカかったので 当たっても大変だけどよかったですねw

まとめ

来年はLTのネタぐらいは作っておきたいなとおもいました。 普通に知り合いがほしいっすね。 あとは英語セッションも聞けるようになりたいので、NHK英語やっていきだ。 あとは数式も読めるように数学もやっていきだ。 Python3系の機能も覚えるぞ! 来年も参加したいイベントでした。スタッフの方々お疲れ様でした。 楽しかったです。ありがとうございました!