PyConJP 2017に行って来ました。 たくさんツイートしたのでだいぶ貼り付けた。適当な事ばっかり言ってるのが目につくな。。。
初日
基調講演の話
基調講演の話だけ、昨日書きました。
変数アノテーションの話
最初の方、話についていけなかった。でも、よくわからんという話をボソボソとTwitterでつぶやいていたらなんでこんな話になっているのかを教えてもらえて最終的にはついていけた。
#pyconjp_202 変数アノテーションの話。
— matoba (@mtb_beta) 2017年9月8日
#pyconjp_202 アノテーションの歴史について。セマンティスクを与えた。セマンティクスってなんだろう
— matoba (@mtb_beta) 2017年9月8日
#pyconjp_202 速くてついていけない。静的コード解析がなんとかだから、もったいないらしい
— matoba (@mtb_beta) 2017年9月8日
#pyconjp_202 アンマーシャラーってなんだろう。unmarshaler。
— matoba (@mtb_beta) 2017年9月8日
#pyconjp_202 jsonの中の型が変わったら勝手に変わるってどういうことだろう
— matoba (@mtb_beta) 2017年9月8日
#pyconjp_202 __annnotations__を「アンスコアノテーション」って読んでいて、一瞬なんの話かわからなかった。
— matoba (@mtb_beta) 2017年9月8日
#pyconjp_202 Any、Union、Optionがなんとかなんとか。
— matoba (@mtb_beta) 2017年9月8日
アノテーションの構文は、python3.0から存在したのですが、それを活用するライブラリが存在しなくて、記述してもプログラム上では使われなかった(意味がなかった)ということかと思います
— Masashi SHIBATA (@c_bata_) 2017年9月8日
mypyの登場によって意味を持つようになったと伝えたかったのかと思います
#pyconjp_202 ここを改めて読んだら、話がだいぶ入ってくるようになった。
— matoba (@mtb_beta) 2017年9月8日
プレゼンテーション:ベンリに使おう変数アノテーション - typing.pyとの楽しいお付き合い | PyCon JP 2017 in TOKYO https://t.co/5K7ennJFmz
Apache SparkとかPySparkの話
SparkとかPySparkを使ったことないけど気になっていた。Sparkを使う、というのがどういう話なのかを知れてよかった。とりあえず、pandasとscikit-learnとdaskを使う or PySparkを使う、みたいな選択になりそうなイメージ。
今の所、前者は、試行錯誤しやすい。後者はスケールしやすい。みたいな理解。そして、今の所、pandasとpyspark間のデータフォーマットの変換は結構重いらしい。(Apache Arrowに期待が集まる)
次はこれかな。
— matoba (@mtb_beta) 2017年9月8日
プレゼンテーション:Pythonで大量データ処理!PySparkを用いたデータ分析のきほん | PyCon JP 2017 in TOKYO https://t.co/GZgym5SggG#pyconjp_202
#pyconjp_202 「分散処理とかめんどくさい、複数のサーバ用意するのめんどくさい」わかるー
— matoba (@mtb_beta) 2017年9月8日
とりあえず1台でもやれるらしい。
#pyconjp_202 コマンド4つで立ち上げられるよ。pipでもインストールできるよ
— matoba (@mtb_beta) 2017年9月8日
#pyconjp_202 そもそも、Sparkを使うっていうのは、どういう風に動くのかイメージできていな。
— matoba (@mtb_beta) 2017年9月8日
Sparkのサーバーを起動して、Pythonから、そこにコマンド投げるようなイメージなんだろうか
#pyconjp_202 普通に書いたPythonコードをSparkに渡すと、Sparkがいい感じに分散処理してもらえるイメージなんだろうか
— matoba (@mtb_beta) 2017年9月8日
#pyconjp_202 Sparkって、pandas的な何か、というイメージであっているのかな。
— matoba (@mtb_beta) 2017年9月8日
#pyconjp_202 アーキテクチャの説明がでて来た。わかりやすい。
— matoba (@mtb_beta) 2017年9月8日
SparkはJVM上で動くらしい。
#pyconjp_202 RDDとDataFrameの違いがまだ消化できてなくて、ついていくのが厳しくなって来た
— matoba (@mtb_beta) 2017年9月8日
#pyconjp_202 データの変換にすごい時間がかかっていて、Apache Arrowの開発が進んでいる話
— matoba (@mtb_beta) 2017年9月8日
#pyconjp_202 Apache Zeppelin。Jupiter Notebookと同じように使える可視化ツール
— matoba (@mtb_beta) 2017年9月8日
Djangoフレームワークのユーザーモデルとか認証の話
ブースを見ていて、途中からの参加になった。 途中からの参加すぎて、話についていけなかったので、スライドを確認したい。
www.slideshare.net
len()関数がオブジェクトの長さを手に入れる仕組み
PyConJP2017っぽいスライドマスターが印象的でした。 なるほどお。と思う話ばかりで、Pythonについて勉強させてもらいました。
www.slideshare.net
#pyconjp_203 資料はこちらの様子。 #pyconjp_203 https://t.co/WB2zwCxqDQ
— matoba (@mtb_beta) 2017年9月8日
#pyconjp_203 トウガラシマークがちょっとずつ変わるの細かいwww
— matoba (@mtb_beta) 2017年9月8日
#pyconjp_203 注意:まだトウガラシ一つ
— matoba (@mtb_beta) 2017年9月8日
#pyconjp_203 トウガラシ二つにレベルアップ
— matoba (@mtb_beta) 2017年9月8日
#pyconjp_203 色々勉強になりました。
— matoba (@mtb_beta) 2017年9月8日
自然言語処理 とかディープラーニングの話
アカデミックな論文発表っぽいなあと思っていた。 アカデミックな領域から出てから思うのが、アカデミックな論文発表って、何かをやるときに、なんでそれをやっているのか、という話がすごい長いなあと思う。
僕は、どっちかというと、どうやってそれをやったのか、とか技術的な話を知りたい。モチベーションの方は、まあ論文読んだり飲み会で話をしたらいいのかなと思っている部分がある。もうちょっと中の話が聞きたかったなあという印象。論文を読もうかなあ。
www.slideshare.net
始まるぞー
— matoba (@mtb_beta) 2017年9月8日
Pythonによる文章自動生成入門!Python ✖︎ 自然言語処理 ✖︎ ディープラーニング#pyconjp_203
#pyconjp_203
— matoba (@mtb_beta) 2017年9月8日
説明する文章を自動生成する話。
論文はどこだろう。まだ見つけられていない。
#pyconjp_203 自動生成に関する著作権の議論って、こないだ資料をいくつか見た気がするな。どこだっけ
— matoba (@mtb_beta) 2017年9月8日
#pyconjp_203 なんかアカデミックな論文発表みたいだなあ
— matoba (@mtb_beta) 2017年9月8日
#pyconjp_203 論文が見たいんだけど、どこを探したらいいんだろう
— matoba (@mtb_beta) 2017年9月8日
ありがとうございます
— matoba (@mtb_beta) 2017年9月8日
#pyconjp_203
— matoba (@mtb_beta) 2017年9月8日
文章生成って、何が正解かよくわからないなあ。人間っぽく見えてらOKで、そこに書いてある情報が入ってこなくてもいいのかな
Deep learningで自然言語の文章を生成する話、「学習にどれくらいの時間かかるんですか?」って聞いたら、今の所2〜3日はかかってそうな話だった。へえ感
— matoba (@mtb_beta) 2017年9月8日
djangoのパーミッション管理の話
djangoのパーミッション管理の話。 アプリケーションとかサービスを作る話を聞いていると、どこもパーミッション管理の話である程度悩むように思うので、為になる話でした。
www.slideshare.net
#pyconjp_203 確かに、デコレータまではなんとなく予想できるような気がする。
— matoba (@mtb_beta) 2017年9月8日
セキュリティと機械学習の話
徹底的に自動化しようとしているところが、すごい印象に残った。 途中で、検査値を自動生成する話があって、GAでそれらしい検査値を作った後に、それを元にして、GANで大量の検査値を生成していて、なるほどと思った。
www.slideshare.net
#pyconjp_203 徹底的に自動化していて、すごい。
— matoba (@mtb_beta) 2017年9月8日
#pyconjp_203 色々すごい。もっと時間をかけて、理解したい発表。
— matoba (@mtb_beta) 2017年9月8日
二日目
keynoteの堀越さんのpandasのOSSコミッターとしての話
pandasとかOSSにコントリビューションすることの話が印象的だった。 今までOSSってどうやって動いているんだろう、と思っていたところがあったけど、その気持ちがだいぶ薄れた。何かできることがあれば、やっていきたい気持ちはある。
#pyconjp_201 堀越さん、pandasとDASKを開発しているとのこと。
— matoba (@mtb_beta) 2017年9月9日
#pyconjp データ分析がトレンドになっている。
— matoba (@mtb_beta) 2017年9月9日
#pyconjp PythonはもともとShellとCをつなぐコードだったらしい。
— matoba (@mtb_beta) 2017年9月9日
#pyconjp scipy 2017って知らなかった。初めて聞いた
— matoba (@mtb_beta) 2017年9月9日
#pyconjp pandas-datareader,pandas-msgpack,pandas-gbq、、、気になる
— matoba (@mtb_beta) 2017年9月9日
自分の後ろにカメラの人が立って、ずっと写真撮ってたけど、めっちゃ気になった
— matoba (@mtb_beta) 2017年9月9日
#pyconjp pandasコミュニティいろんなことがしっかりしてるんだなあ
— matoba (@mtb_beta) 2017年9月9日
— matoba (@mtb_beta) 2017年9月9日
#pyconjp ブログを書くのって、OSS活動といえばOSS活動なんだ
— matoba (@mtb_beta) 2017年9月9日
#pyconjp pandasのコーディング規約、というのがあるのかな。PEP8のことを言ってるのかな。
— matoba (@mtb_beta) 2017年9月9日
#pyconjp pandasでOpenなissueの数を見たら2000を超えていたのでコミッタが求められていると理解した
— matoba (@mtb_beta) 2017年9月9日
#pyconjp プルリクはリジェクトされてもめげないメンタルで、ガシガシ送るほうが良さそうに見えた。
— matoba (@mtb_beta) 2017年9月9日
#pyconjp 「issueの数が増えてくると、気持ちの整理」
— matoba (@mtb_beta) 2017年9月9日
#pyconjp 「pandasも会社にしないとまわっていかないのではないか?」という話に対して、「なければないなりでやって行くしかないのではないか」と考えているという話。
— matoba (@mtb_beta) 2017年9月9日
Pythonで実現する4コマ漫画の分析の話
自分が好きなツールを自分で開発している話。楽しそうだった。僕も自分が欲しいものを自分で作っていきたいと改めて思った。
#pyconjp_201 次は、「Pythonで実現する4コマ漫画の分析・評論 2017」をきく。
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_201 情熱駆動開発!
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_201 作品強度w
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_201 Google Cloud Vision API使ってみたいと思ってたけど、改行コードでわかれてかえってくるんだ。
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_201 dlibという物体検出器。
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_201 「自分が欲しいものを誰かが作ってくれることはないと気づく」
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_201 面白かった。
— matoba (@mtb_beta) 2017年9月9日
SQLAlchemyの話
SQLAlchemyの話。ORMって、よく聞くけど、具体的になんなの?って思ってたけど、あーあれがORMかあと思ったりしながら聞いてた。途中で話についていけなくなったので、スライドを見返したい。
#pyconjp_201 SQLAlchemyの話
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_201
— matoba (@mtb_beta) 2017年9月9日
最初はいいが、サービスが成長してくると同スケールするかが重要になる。そのときにスケールしにくいのが、データを扱うところ。特に書き込み系が辛くなる。
#pyconjp_201 「同」→「どう」
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_201 ユーザーごとに書き込む場所を切り替えると、デプロイが大変、監視対象が多くなる、など。
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_201 色々考えると、3パターンの合わせ技でなんとかする話になってくる。それをPythonでどうやってやるの?という話。
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_201 ORMもなんか知ってるような知らないような感じなので、もう少し詳しく知りたいなあ
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_201 SQLAlchemyには、2種類のマッピングがある。
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_201 SQLAlchemyにはAutoloadという機能があって、それを使うか使わないか、選べる。
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_201 あー、ORM、知ってたし、ソースコード読んだことあったわ。アプリ側からSQLやDBの種類を隠蔽するのがライブラリがORMと呼ばれるのかな
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_201 なるほど、get_bindの話、よくわからん。変数が色々話に出てるけど、なんの変数なのかわかってない。
— matoba (@mtb_beta) 2017年9月9日
ジョブフェアでグローバルに働くために英語をやろう、という話
グローバルに働きたい人って減ってるのか、Pythonの人がグローバルに働きたいと思っていないのかわからないけど、少ないなあと思った所存。僕は、やりたいことをやる為に結果的にグローバルになるのはいいと思うんだけど、海外で働きたいという欲はないかなあという気持ち。
次はジョブフェア。ご飯食べる。 #pyconjp
— matoba (@mtb_beta) 2017年9月9日
Pythonエンジニアファーストブックほしい #pyconjp
— matoba (@mtb_beta) 2017年9月9日
英語だと、whyとかwhatとか、聞きたいことが明示されるのが良さそうですよね。 #pyconjp
— matoba (@mtb_beta) 2017年9月9日
any questionの話し面白い。any questionを聞いたときに何も返ってこなかったら、
— matoba (@mtb_beta) 2017年9月9日
アメリカ人は『賛成だから何も言わない』 イギリス人『反対だから何も言わない』日本人『何と言えばいいのかわからない』 #pyconjp
僕もそれは思う。 https://t.co/Ufq8PRSecu
— matoba (@mtb_beta) 2017年9月9日
英語のドキュメント読みは、かなりGoogle翻訳でなんとかなってる部分があるんだよなあ
— matoba (@mtb_beta) 2017年9月9日
#pyconjp
補足すると、ドキュメントはGoogle翻訳するんじゃなくて自分で読むほうがいいように思っている。ただ、自分の訳が不安だったり、英語の文章が、頭にスッと入ってこないので、とりあえずGoogle翻訳にどんな雰囲気の話を確かめてから、具体的に英文を読んでいたりする。でも、ドキュメントの場合、結局コードがあるので、文章としては、雰囲気わかればだいたい事足りているところがある。
ドメイン駆動設計の話
とりあえず、ドメイン駆動設計は、変化に強くなる代わりにスピード感がなくなるということを理解することができた。
www.slideshare.net
#pyconjp_201 ドメイン駆動設計の話は、戦略的な話と戦術的な話が出てくる。
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_201
— matoba (@mtb_beta) 2017年9月9日
スライド発見。https://t.co/1eqyjoFC6l
#pyconjp_201
— matoba (@mtb_beta) 2017年9月9日
ヘキサゴンアーキテクチャとかCQRSとドメイン駆動設計は、どういう関係性なんだろう?
#pyconjp_201
— matoba (@mtb_beta) 2017年9月9日
全部やると辛いらしい。全部って、どこだ
#pyconjp_201 ドメイン駆動設計で設計すると、何が嬉しいんだろう
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_201 Injectってライブラリを使うと、DIコンテナの管理が楽になるらしい
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_201 とりあえず、ドメイン駆動開発をよくわかっていないけど、ドメイン駆動開発で開発すると、変化に強くなるけど、変化に強くするために、作らなきゃいけないものや、考えることがたくさんあって、大変という印象を受けた。
— matoba (@mtb_beta) 2017年9月9日
機械学習におけるデータの再現性の話
会社で仕事としてデータ分析をしていくときに悩ましい話だなあと思った。これから色々僕も検討していきたいと思っている。
#pyconjp_202 「機械学習におけるデータの再現性について」に参加する。
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_202 機械学習系とソフトウェア開発系は、機械学習系のチーム開発のノウハウは、ただのソフトェア開発とは違うって話、昨日も話をした。
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_202 データの再現性というか、機械学習で構築したシステムの再現性の話なのかなあ
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_202
— matoba (@mtb_beta) 2017年9月9日
データの再現と聞いて、モデルを作ってそこから乱数を使って、データを生成するようなイメージが湧いて来た。
#pyconjp_202 引き継ぎを考えたデータ分析の話は、これから色々考えていかないといけないところだと思う。
— matoba (@mtb_beta) 2017年9月9日
ディープニューラルネット確率的プログラミングライブラリEdward
難しかった。とりあえずなんかすごそう。と思ったので、スライドを見て、知らない技術単語について調べるところから始めたい。
#pyconjp_202 銀の弾丸見つけた!キタコレ!!と思って自信満々に進めてたら、銀の弾丸が通用しない場面にあたって、それを解消するためにやり方を変えたら一気に迷走した。みたいなのをイメージした。
— matoba (@mtb_beta) 2017年9月9日
後「ベイズ統計モデリング: R,JAGS, Stanによるチュートリアル」がいいという話を聞いた。
Pythonの並列処理とか並行処理の話。
なんとなく知っているような知らないような話をきちんと整理してもらえてありがたかった。標準ライブラリを知ることができて勉強になりました。
#pyconjp_203
— matoba (@mtb_beta) 2017年9月9日
並行並列処理の話。
#pyconjp_203 別の話なのかもしれないけど、IOバウンドな処理で書き込み読み込みするディスクが一つしかなかったら、並列化してもあんまり意味がないような気がするんだけど、どうなんだろう。
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_203 async/await初めて知った。使ってみたいなあ
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_203 すごく勉強になりました。
— matoba (@mtb_beta) 2017年9月9日
サーバーレスの日本語形態素解析の話
日本語形態素解析に興味があった。ノーマライズとかサニタイズとかしていて、なるほどなるほど。って思った。あと、合名詞も結構印象的だった。
#pyconjp_202 次は、サーバーレス日本語形態素解析の話
— matoba (@mtb_beta) 2017年9月9日
そもそもMecabeをあんまり使ったことないので、使ってみたい気持ちがある。
— matoba (@mtb_beta) 2017年9月9日
ゆらぎが登録されている
— matoba (@mtb_beta) 2017年9月9日
→データサイズに制限があるのでをどうするか
→ノーマライズした
#pyconjp_202 サニタイズ。一般的な文字列に合わせる処理をやってます。同点ゴーーーーール!を同点ゴール!にするとか。スペースを句点で埋める、連続するスペースを削除するとか。
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_202 合名詞。「NHKマイル」→「NHK」と「マイル」に分割されないようにする。
— matoba (@mtb_beta) 2017年9月9日
#pyconjp_202 こんな感じでさらっと、やってみよ。という感じでWebシステム作れたら楽しそうだなあ。
— matoba (@mtb_beta) 2017年9月9日
はてな辞書とかはてなキーワードAPIとか良さそうだなあ
— matoba (@mtb_beta) 2017年9月9日
janomeをサクッとインストールして使ってみたけど、普通に使えそうな気がした!
— matoba (@mtb_beta) 2017年9月9日
まとめ
PyConJP 2017は、Output& Followがテーマだった。
僕は、PyConJP2017で何かを発表することはなかったけど、ひたすらツイートで、思うことをアウトプットした。すると、たくさんの人にツイートした疑問をフォローしてもらえた。そして、僕は、このブログで、自分自身のアウトプットをさらにフォローしていきたいと思っています。
今後、やりたいこと。
せっかくなので、僕のツイートを振り返りながら、自分が今後やりたいと思うことについて書き出しておこうと思います。
- wheelの仕組みを学びたい
- 変数アノテーションを使ってみたい
- unmarshalerが何か分からなかったので、使ってみたい
- pysparkを気が向いたら使ってみたい
- apache arrowが気になるので、調べておきたい
- GANとかCNNとかもう、よく分からないやつが結構あるので、色々調べなおしたい
- 著作権に関する議論をもうちょっと調べてみたい
- 自然言語処理のDeep learningは気になっている
- 各種スライドを見直して、よく分からないところを洗い出したい
- SQLAlchemyを使ってみたい
- ヘキサゴンアーキテクチャとかCQRSとかドメイン駆動設計をもう少し知っておきたい
- 組織的なデータ分析というのは、もう少し深掘りして考えていきたいと思う所存。
- 自然言語処理をもっとやりたいなあと思った