Date: 2017-09-09
Tags: python, pyconjp, conference

PyCon JP 2017 2日目 参加ログ #pyconjp

#PyConJP 2017 in Tokyo に参加しました。PyCon JP 2017 1日目 参加ログ #pyconjp に引き続きの参加です。

今日は名札あれば受付不要なので直接キーノート会場へ。

今日は開始5分前に着席して、時間ちょうどにキーノート始まった!よかったよかった

キーノート

400人くらい会場に来てるかな?

../../../../_images/keynote1.jpg

キャー 堀越さーん!

メモ

会場に質問

    1. 自分はPyData系だと思う方 -> 3割くらい

    1. Pandas知ってる方 -> 6~7割くらい

抜粋

  • Pandasは、データ仕様が与えられない場合の、試行錯誤のためのツール

  • 2012年に初Issue、2014年に活動開始、2015年にコアチーム加入

  • 最近は 1 Pull Request, 1 commit 運用を徹底している (俺:Sphinxもその方がいいかもなあ)

  • コミッターに期待することを明記している -> Code Of Conduct (俺:あーこれはマネしようかな)

  • 後方互換性: 良くないAPIなどをdeprecationして2バージョン維持 (俺:これはSphinxもやってるね。元ネタはDjango)

  • Pythonによるデータ分析入門 -> 10月に改訂版が!

  • Issueテンプレートを使って報告しやすいように整備 (俺:Sphinxもやってるー。報告の質が格段にアップしたよ)

  • 団体企業からの支援 (俺:何に使ってるのか聞き逃した)

  • OSS活動ってやる必要あるんだっけ?

    • -> 承認欲求を満たせる (俺:うん)

    • -> 有識者のレビューを受けてスキルアップできる (俺:うんうん)

    • -> 内部実装が理解でき(使う側としても)効率的なコードが書ける (俺:わかる)

    • -> 修正を取り込んでもらえると、使う時のhackkyな書き方が不要になる (俺:超わかる)

  • PRを出してみようと思ったら

    • 大きめのプロダクトならIssueがタグで整理されている

    • 難易度タグが付いてるので簡単なやつから手を付けてみる

    • 他の人が手を付けているものは避けた方がよいかも

    ../../../../_images/pandas-issue-tags.png

    pandas-dev の難易度タグ

  • プルリクエストでバグ修正した場合

    • 意図が伝わらなければコードを書く

    • 影響範囲が大きい場合ひたすらテストを足す

  • 気をつけていること

    • 局所的な修正を避ける

    • テストをちゃんと書く

    • ドキュメントをできるだけ書く

Q&A

  • Q: 投げられるIssue/PRが大量に来ると思いますが、どうやってさばいてますか?

    • A: 気づいた人がやる。活動量が多い人がレビューしてくれたりします。

    • Q: 自分の機能に責任を持って対応してる感じですか?

    • A: リリースマネージャーみたいな人がいて、その人は全てのIssueを見たり返事したりしてます

  • Q: @nobolis_ : 仕事とプライベートの時間の使い分けをどうされてますか?

    • A: 業務上はOSS活動するために雇われていないので、基本的に個人で活動してます。そういう活動も評価されているので業務上無駄になってたりはしません

  • Q: @shimizukawa: SphinxのIssueは今600ちょっとあります。PandasのIssueを見てみたら2000を超えていて、それってIssueが右肩上がりになっていくと思うんですが、そういうときに、どうやって気持ちを維持していくのか、お聞かせ下さい

    • A: コアコミッターはPRのレビューなどで忙しくて自分でパッチを書く時間が取れない事が多いです。なので、自分で全部直すのではなく、自分たち以外の人でも直せるような体制をつくっていく。簡単そうなissuesだったらやり方を提案して報告者にやってみてもらうとか。そうやって直せる人を増やしていってます。

  • Q: ドキュメントだけで1000ページ以上ありますよね。そういう巨大なOSSを維持していくのは専門家じゃないともうできないものなのでは?

    • A: Yes & No. ドキュメントを見る専任者みたいな人がいます(Anacondaや2sigmaの人)。ただ、専任者がいないとできないわけじゃなくて、居ないなら居ないなりのやり方があると思ってます。

  • Q: 西本: 局所的な修正よりも大局的に直す、という話をもうすこし詳しく聞かせて下さい

    • A: 欠損値のバグをある関数でだけ直しても、欠損値の扱いはそこだけじゃなく、もっと深いところで問題があって他の関数にも影響がある

    • Q: その意図は凄くよく分かるんですが、Pandasのような巨大なプロダクトだと影響の広いコードを直すのはすごい影響ありそうで、そこで議論が紛糾したりしませんか?

    • A: 2つ話があります。開発者側としてはあまり議論にならなくて、全体的に直した方が良いと判断する。慣れていない人が直す場合、全体的な視点は持っていないこともあるので、そこは慣れている人がアドバイスしたりします。

  • Q: ベンチマーク比較するツールの紹介(airspeed velocity(asv))がありましたが、そのツールはPythonでしか使えないものですか?

    • A: 基本的にはPythonでスクリプトを書くので、Pythonの方が便利に使えますが、他でも使えるとは思います。

  • Q: OSSへのコントリビュートをし続けるってすごい難しいことだと思うんですが、1年継続していくのに工夫したことはありますか?

    • A: 自分のスキルアップのためにPandasにターゲットを絞って活動をしていました。Issueを眺めて自分で直せそうな部分があったら自分でやってみるというのを続けました。

Pythonで実現する4コマ漫画の分析・評論 2017

  • 情熱駆動開発

  • 自分が欲しいものをだれかが作ってくれる、ということはない

  • Pythonならライブラリたくさんあるからなんとかなるかな、と思った

  • 情熱があれば作れる

Q&Aは時間切れで個別。「11:30からOpen Spaceでやります」

Open Space でProtocol話

昨日の私の資料を肴に、4人くらいでプロトコルについて話してました。

  • print(obj) もAdapter?

    • それは単に関数

    • printの中では、文字列の表示用に str(obj) するけど、これはAdapterと言って良さそう

    • str(obj)obj.__str__ を呼び出す。もしなければ obj.__repr__() にフォールバックする

    • obj.__repr__() はオブジェクトのrepresentationで、対話シェルに値を表示するために repr(obj) したときに呼ばれる。これはAdapter

  • Swiftには適合(adopt)というのがある

    • CustomStringConvertible を適合(adopt)させると、 description プロパティの実装を強制されて、これで obj.__str__ 相当のことをやる

    • Pythonだと abc で抽象仮想クラスを継承するような感じだね。Pythonだと適合みたいな文法はないけど、継承で実現する

    • PythonってTraitsないの? -> 継承で

    • PythonってMixInないの? -> 継承で

    • Pythonって適合ないの? -> 継承で

    • そういえば Zope Component Architecture (ZCA) では interface.implements というのがあるなあ

  • Pythonというか、プログラミング言語一般で共通した「プロトコル」っていう概念がある?

    • 一般的にはないかも

    • 通信用語だと、通信プロトコルとしてよく登場するよね

    • オブジェクト指向の文脈で、メッセージパッシングがあるけど、あれはオブジェクト間の通信仕様だと思うので、プロトコルなのかも

  • Python公式リファレンスにそんな情報が書いてあるなんて全然しらなかった

    • 公式リファレンス、とりあえず一通り読んだりしないの?

    • 難しくて最初からアレを読むのは無理では...

    • まあ公式ドキュメントは教科書ではないのでしょうがないよね。それにしてもPythonの公式ドキュメントは入門者に易しくないw

    • 他の本でPythonを勉強して、公式リファレンスを一通り読めるようになったらもう初心者卒業って言えそう

  • それにしてもPython公式リファレンス、Protocolの話が少なすぎる

    • ドキュメントのソースコメントに、 talk about protocols? って書いてあるよw

    • プロトコルのドキュメントを書こう!

    • よーし、プロトコルハッカソンだ~

書籍販売コーナー

PythonユーザのためのJupyter[実践]入門 、買おうかどうしようかと思ってたけど、 @chezou さんの以下のツイートを見て買いました!イベント価格で税込み3,000円!

Pythonエンジニア ファーストブック も販売してた。おれも本売りたかったなあ...

いいなあぁ...

ランチ

チキン~

ポスターセッション

Python Boot Camp から始めて、将来的に地域PyCon、っていう流れもありだと思います!誘致に興味ある方は Python Boot Camp を見てくださーい。よろしくー

Python におけるドメイン駆動設計(戦術面)の勘どころ

一般社団法人PyCon JP ミーティング

一社の会計理事として参加してきました。

参加は、理事4名、PyCon JPスタッフ3名、興味ある参加者3名、合計10名でした。

クロージング

LT

  • LTやってました。ちゃんと聞けなかったので感想略。

落とし物コーナー

クロージング

ベストトークアワード

  • 優秀賞: グラハムさん(クロージングに居なかった)

  • 優秀賞: @yuzutas0

  • 最優秀賞: Greg Price(クロージングに居なかった)

SQUEESE社

  • 宿泊券5万円!

  • じゃんけん勝ち抜けで1名!

  • (自分は最終集団まで残ったけど、最後負けた...!)

プレゼント抽選

  • スポンサーのみなさんからのプレゼントをビンゴで~

  • はずれたー

PyCon JP 2018

  • 2018/9/17 (月祝), 9/18 (火)

おわりー。最後グダグダだったなー。

招待Party

スピーカーとしてパーティーに招待されました。

おしまい