nikkie-ftnextの日記

イベントレポートや読書メモを発信

告知 | 12/14 #技書博 2にて、argparseを使ってPythonでコマンドラインツールを作る方法について同人誌を頒布します(2F-か01)

はじめに

頑張れば、何かがあるって、信じてる。nikkieです。
12月の技書博2で、Pythonコマンドラインツール作成についての薄い本(=同人誌)を頒布します。
現時点の目次や頒布に関する情報をまとめます(随時更新予定)

技書博については公式サイトを参照ください:

f:id:nikkie-ftnext:20191117024909p:plain

企画

  • サークル名:Everlasting Diary
  • サークルページ:https://gishohaku.dev/gishohaku2/circles/nklmjjWPhfT6oVdq4Upa
  • 当日の配置:2F-か01
  • 対象者:Python入門者、Python中級者になりたての方
  • タイトル:未定(仮称:argparse本)
  • ページ数:30Pくらいを予定(※増減ありえます)
  • 頒布価格:気軽に買える価格にしたい(※収支考慮の上決定します)
  • 頒布形態:物理本 / 電子本 両対応

構成(案)

Pythonの入門書やレシピブックでPythonスクリプトを動かすことは扱うと思っています。
Pythonスクリプトに引数を渡せるようになれば、Pythonを始めた方のできることが広がる!」と考えたのが、今回のアウトプットのきっかけです。

3部構成

  1. 入門編
    • Python入門者向けのパート。本編に接続するために用意
    • argparseを初めて聞いたという人を想定
    • Django Girls Tutorialの関数1を出発点とする
    • sys.argvを使ってスクリプトに引数を渡す方法を紹介
    • argparse導入:ヘルプメッセージが手に入る
    • コマンドラインツールの位置引数の紹介
    • コマンドラインツールのoptional引数の紹介
    • add_argumentの引数helpやaction、choicesについて
    • 書くにあたってはArgparse チュートリアルに準じるようにする
  2. 本編
    • argparseでコマンドラインツールを作る過程を実例から学ぶパート
    • Pythonコマンドラインツールを作ったことがあるが、argparseは使わなかった(または理解せずに使った)人を想定
    • 題材は"退Py"の17章にある画像縮小のコード2
    • 出発点:指定の画像ファイルの縮小(os.pathでなくpathlib使う)
    • フォルダを指定し、中の画像をすべて縮小できるようにもする
    • mvコマンドにならったコマンドにする
    • type引数に関数をセットする(存在するパスかのチェック目的)
  3. 発展編
    • 私が仕事でPythonを書く中でインプットした知識をアウトプットして整理するためのパート
    • 過去の私に向けて、「このあたりを知っておくと実務で役立つよ」と伝えたい項目を用意
    • イデアを以下に書き出しておく(全部拾いたいが時間と相談)
    • unittestを書く
    • クラスを使って書く
      • ファクトリという考え方
      • singledispatch
    • パッケージ化する

連絡事項

事前に共有した内容からの変更について

9月のみんなのPython勉強会LT『行くぜ、行こうぜ、技書博』で

  • Pythonの環境構築図鑑を執筆予定
  • Python合同誌も企画中

と共有しましたが、これらを変更しました。

環境構築図鑑からargparse本にテーマを変えた理由ですが、環境構築とは別に、Pythonでなにか実装するということを扱いたいと強く思ったからです。
Django Girlsに関わる中で環境構築の問題に気づき、9月のPyCon JP 2019で15分発表しました。
この続編として環境構築図鑑と考えていましたが、PyCon JPを終え、台湾、シンガポールと世界に飛び出して、Pythonのコードを書いた上でアウトプットをしたいというモチベーションが湧き上がってきました。
環境構築図鑑ではPythonのコードをあまり書かないでしょうが、argparse本にすることでPythonをガッツリ書くことができます。
PyCon JPスタッフなどでプライベートでPythonを書く時間が減っていたこともあり、「書きたいものを書く」という信念で、今回はargparseについて書きます。
環境構築図鑑3は今後のアウトプットの機会と自分のモチベーションと相談して実現を考えます。

Python合同誌は、技書博2では見送ります。
合同誌自体を諦めたわけではなく、今後のアウトプットの機会はあると思うので、今回1人で出すという実績を作った上で、機会を狙っていきます。

委託してもらって大丈夫です

Python関係の自分の本を置いてほしい(委託したい)という方がいれば、Twitter DMなどでご連絡ください。
置ける数に限りはあると思いますが、対応します。
これは、技術同人誌即売イベントでPythonカテゴリが盛り上がって欲しいと思っているがゆえの提案です。

おわりに

初のサークル主ということで至らない点は多いかと思います。
「こういう情報が知りたい」という声はTwitter質問箱からお聞かせいただけると嬉しいです。
また、進捗などはTwitterでお伝えしていきます。

当日に本がお渡しできるよう、強行日程ではありますが、執筆に取り組んでいきます!

f:id:nikkie-ftnext:20191117024926p:plain


  1. Python入門 · Django Girls Tutorialhi関数を想定。入門編は余裕と思ってもらえるように単純な例を使う

  2. 英語にて Automate the Boring Stuff with Python で確認できます。また、日本語書籍が『退屈なことはPythonにやらせよう』です。

  3. 4月のみんなのPython勉強会で共有した「環境構築方法(python.orgかAnacondaか)に応じて、参照する情報を読み替えよう」という提案を具体例を元に説明するとして考えていました。「伝え切れていないな」という感触があったためです。

登壇報告 | PyCon JP 2019でリジェクトコンをやりたいとLTしてきました & 企画を共有します #rejectpy

はじめに

頑張れば、何かがあるって、信じてる。nikkieです。
9月のPyCon JPで当日LTしたリジェクトコンについて、おまたせしました、続報です。
いつやるか、どんな感じでやるかをお伝えし、興味ある方からフィードバックをいただこうと思います。

リジェクトコンとは

PyCon JP 2019には、その場で登壇者が決まる当日LTがあり、そこで「リジェクトコンがやりたい!!」という想いを語ってきました。

もともとPyCon JP 2019のスタッフに応募した時から「リジェクトコンをやりたい」と思っていました。
今年はトークプロポーザルの応募が多く、採択率が18%と低かったこともあり、多くのプロポーザルにアウトプットの機会がないのはもったいないと感じています。
また、PyCon JP 2019としては不採択であっても、取り組みの否定では決してないと思っています!

PyCon JPのあの場で言ったからには開催まで進めます(どんなに険しい道のりであっても!)。
以下では「いつやるか」「どんな感じでやるか」と一人考えていたことを共有します。

ちなみに、過去の例

2017年にはmassaさんによるリジェクトコンがありました:
PyCon JP Reject Conference 2017|IT勉強会ならTECH PLAY[テックプレイ]

企画:PyCon JP Reject Conference 2019(仮)

  • PyCon JPとは無関係にやる(紛らわしくない名前に変える可能性あり)
  • スピーカーになれるのは、PyCon JP 2019に何らかのプロポーザルを出して採択されなかった方
    • 今後応募フォームを用意する
    • トークに限らず、LTやビギナーセッションで不採択となった方も対象
    • 参加者には制約なし
    • トークの時間を短縮し、大勢の方に話していただきたい
  • 最小構成として2017年と同じ感じでできたら
    • 休日の午後半日 or 平日の夜
    • 1トラックを想定
    • 妄想:オープンスペース用意したい(スピーカーと話す、聞いたトークをもとに手を動かす)
    • イベントの中で飲食物提供したいので、参加費1000円くらい?(パーティーまではいかず、みんなのPython勉強会懇親会のイメージ)
  • 開催時期は2020年1月予定
    • 自分のやりたいことと相談して2020年頭という結論
    • 他のやりたいことを進めるために一度離れ、11月末から進めます

お伝えしたいこと

リジェクトコンを発案しましたが、「私は何としてでも年内に開催したい!」という方がいたら、主導していただいて構いません
早く開催した方がいいと思うので、主導したい方は私に遠慮せず名乗りを上げていただけると嬉しいです😆。
そのような方が現れたら、私も可能な限りお手伝いします!(お手伝いするために一言ご連絡いただけると助かります)

そのような方が現れない場合、上記はnikkie1人で開催する場合の構成です。
「手伝ってもいいよ」という方がいたらぜひお力をお貸しください。
「リジェクトコンではこんなことやりたい!」というアイデアがある方も大歓迎です。
一緒にそのアイデアを実現させましょう。
会場も募集しています。
この企画を読んで何か思うところのある方は、以下のフォームよりフィードバックしていただけると助かります(Twitter DMなどでも大丈夫です)

終わりに

勉強会主催は初めてなので、親方さんのワンストップ本でポイントを押さえようと思っています:
ワンストップ勉強会 - oyakata - BOOTH

リジェクトコン運営に興味がある方からの反応をお待ちしています。
それでは!

DS700172

登壇報告 | サポーターズCoLabにてKaggleのタイタニックコンペのハンズオンで登壇しました(質疑録) #spzcolab

はじめに

頑張れば、何かがあるって、信じてる。nikkieです。
10/24に渋谷開催の機械学習の入門ハンズオンに登壇してきました。
そこで想定していた以上に質問をいただいたので、文字での情報共有&自分の思考の整理として記事にまとめます。

勉強会の概要

機械学習やKaggleが気になっている方を対象に、入門者向けのコンペであるタイタニック号の生存予測でKaggleを体験するハンズオンです。
詳しくは以下の登壇予告記事をご覧ください:

当日のスライドはこちら:

1時間程度ハンズオンをした後に質疑の時間があったのですが、時間いっぱいになるまで質問をいただきました。

質疑録

業務で何をやっていますか?(言える範囲で)

自然言語処理をやっている1
よくある問題設定で言い換えると、ニュース記事がどんなテーマか(政治かスポーツか)の分類

取り組む手法としてはLDA?それともRNNやLSTM?

業務ではディープラーニングで取り組んでいる(RNNやLSTMが該当)

ただしこれらの手法選択はゴールによると考えている。
機械学習しなくて済む(ルールベースで組める)なら確実なのでそれが一番(参考:『仕事ではじめる機械学習』)
今いる環境はディープラーニングを使うことが多い。
ディープラーニングはデータがいる。
十分なデータがなければLDAなどの古典的な手法が有効と考えている

タイタニックのような入門者用のコンペは他にあるのか?

私はあまりやり込めていないが、House Pricesは入門者用だと思う。
タイタニック分類という問題設定の入門者用で、House Pricesは回帰という問題設定の入門者用。

以下のような日本語のカーネルもあります(存在確認しただけで中身を読めていません):

どうやって今の状態に至ったか? データ分析の勉強はどうやったか

(非常に答えづらい質問でした。回答は個別具体的な例にすぎないので、抽象して得るものがあったなら嬉しいです)

もともと好奇心旺盛なのが利いているのかも。
大学で情報を学んでいた。機械学習の用語も知っていた。
エンジニアとして就職。授業で聞いたことのある機械学習のモデルがプログラミング(Python)で実装できるということで、ハンズオンなど行った。最初はよくわからないけど動く、楽しいという状態。
ハンズオンのコードを自分で書き直せないので、本を読んで体系だった知識を吸収。知識がつながる感じ。
プライベートのそんな取り組みから仕事でチャンス(機械学習案件アサイン)
業務時間も使って機械学習の知識は増えた。ただ案件としてはうまくいかない部分の方が多かった
次うまくやるにはどうするか、悔しさから勉強

業務でうまくいかない→補強するために勉強というのは、今の自分の根底にあると思います

統計2級を取得すれば、機械学習に役立つか

Yesな点もあればNoな点もあると思う。機械学習の分野の中で統計でカバーされない分野もあるため

機械学習には、統計と数学の知識も必要2
古典的なアルゴリズム(ロジスティック回帰や決定木)は統計の範囲と聞いたことがあるので、統計2級は役立つのではないか。
一方ディープラーニングについては統計2級を持っていたとしても勉強が必要だろう

ディープラーニングは今日のハンズオンの延長にあるのか

Yes。モデル作成のところが置き換わると考えてください

# モデルの設定(ニューラルネットワークの層を組んでいる)←タイタニックではLogisticRegressionなどアルゴリズムを設定したところ
model = keras.Sequential([
    keras.layers.Flatten(input_shape=(28, 28)),
    keras.layers.Dense(128, activation='relu'),
    keras.layers.Dense(10, activation='softmax')
])
# モデル作成前に必要な設定(ディープラーニング特有)
model.compile(optimizer='adam', 
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
# モデル作成(相変わらずわずか1行)
model.fit(train_images, train_labels, epochs=5)

コード例の参考:Basic classification: Classify images of clothing  |  TensorFlow Core

ハイパーパラメータチューニングくらいのモデルでも運用できるのか

目標にもよるがYes。
例えばタイタニックの例で目標が「accuracy 80%」と決まっているなら、ハイパーパラメータチューニングなどで目標を超えたモデルを作って運用する(目標を超えたモデルを作ったということが重要)。

もし研究が主眼(際限なく性能を上げたい)なら、時間もお金もかかるだろう。
かけるコストに対して性能は頭打ちになっていく(性能が上がってくると、以前と同じ時間を使っても全然性能が上がらないこともザラ)と聞いている

機械学習のプロジェクトはどのくらいうまくいくのか

機械学習のプロジェクトは最初に概念検証(PoC, Proof of Concept)でうまくいきそうか評価する。
PoCでうまくいかないことがわかっても収穫。
私がこれまで体験した中では、うまくいくのは半々くらい(注:Nが1桁半ばくらいです)。
ディープラーニングまで踏み込まず、今日扱ったロジスティック回帰や決定木で進めることもあると聞いています。
(ここは意見が分かれるところだと思うので、他の方にも聞いてみてほしいです)

スライドのアップデート事項

Googleアカウント

Googleアカウントでサインインする前に、登録(Register)が必要なようです。

f:id:nikkie-ftnext:20191029085006p:plain

Notebookの持ち主はUIが異なる

Notebook作成者の「Edit」というボタンが、Notebook閲覧者には「Copy and Edit」となるようです。
シークレットブラウザでの確認が必要でした。

f:id:nikkie-ftnext:20191029085110p:plain

Notebookのコミットが終わらない

これは想定していなかった事態で原因不明です(私の環境で再現させられていません)。
別のタブでKaggleにアクセスして、自分のNotebookを確認するとコミットされているかもしれません(Notebookの一覧へのアクセスはここからのスライドを参考にしてみてください)。

終わりに

当日はshimakaze_softさんにTAをしていただきました。
参加者は10名以上で、1人ではエラー対応しきれなかったので非常に助かりました。
お忙しい中ありがとうございました。

最後に参加者の皆さま、登壇の機会をいただいたサポーターズの皆さまにお礼申し上げます。
ありがとうございました!


  1. コミュニティで会う方は結構ご存知だと思いますが、実は2019年4月からデータサイエンティストに転職しています。PyCon JPスタッフや各種登壇で忙しく、転職エントリは書かずにここまで来ました(年内には「転職してどんな感じかエントリ」を書きたいところ)

  2. このあたりはPyCon TWのチュートリアルで整理されました(PyCon TW 2019 共同筆記 - HackMD

US PyConのトークプロポーザルガイドラインに目を通したところ、プロポーザルを早めに出せばチャンスと気づきました

はじめに

頑張れば、何かがあるって、信じてる。nikkieです。
先日のPyCon JP コンテンツチーム作業日でUS PyConのプロポーザルガイドラインの存在を知りました。
こちらに目を通したところ、US PyConで採択されやすいプロポーザルがおぼろげながら見えてきました。
読みながらとったメモの共有という形でブログ記事にします。

:英語の読み間違いがあるかもしれないので、利用は自己責任でお願いします。
「本当に?」と思うところがあったら、ぜひ原文を確認してみてください
(私が間違えていたら指摘していただけると助かります)

前提

US PyConとは

アメリカで開催されるPythonのカンファレンスです。
詳しくはgihyoのレポートをご確認ください1
第1回 US PyConへの道,1日目キーノート「Pythonこの10年」,注目セッション~日本からのLT参戦:世界最大のPythonカンファレンス「US PyCon 2019」レポート|gihyo.jp … 技術評論社

2020年はカンファレンスを4/17〜19で開催予定です。
2019/12/20 (AoE)までトークプロポーザルを受け付けています2

トークプロポーザルガイドライン

従うとより採択されやすくなるという案内と理解しています。

ガイドラインを読んでのメモ

全般的なこと

  • トピックについて
    • 最近ワクワクしたこと
    • 始めた時に教えてほしかったこと
    • 遅かったりイライラさせられたりしたことで同じ問題に取り組む後続のPython使いへ伝えたいこと
    • 開発者としての経験だけでなく、 記事やブログやツイートもプロポーザルの源となる
  • 誰でも話せる。スピーカー補助の有無はレビューでは無視される
  • メンタリングを新規導入

Good Idea

よい(採択されやすい)プロポーザルにするためのTIPSと受け取りました。

  • プロポーザルを早く出す。レビューチームはプロポーザルをよくしたい
  • 具体的に誰向けか(「Python使い」よりも詳しく)、参加者がトークを聞いて得られるものは何か(トークで何を知ることになる?)
  • 話すことの一覧、時間の見積もり(ざっくりどこに何分か。45分のトークを30分にする場合はどこをどう変えるか)
  • 対象は広く。広い(多くのPython使いに関係する)ほど採択されやすい。自作したパッケージについて話してもいいが、十分に周知されているか確認して
  • 関係するソースコードやブログ記事、ビデオなどリンク添付
  • 過去のPyConの登壇のスライドやビデオのリンク添付

Bad Idea

こういったプロポーザルは採択されないというメッセージと受け取りました。

  • インフォマーシャル(=商品について詳細な情報提供)は避けてください
    • 課題を解決したという共有で聴衆に得るところがあるのは望ましい
    • プロダクトの使い方はNG
  • 不完全なコードでのプロポーザルは避けてください
    • カンファレンス駆動開発には懐疑的
  • 私たちのプロジェクトの状況のトークは避けてください(よく準備されており、聴衆にあるものがあればOK)
  • 詳細なプロポーザルを書いてください(プログラムチーム全員が知っていると思わないで)

感想

「PyCon JPとはたいぶ違うな」という印象です。
「カンファレンス駆動開発には懐疑的」というのは耳が痛いです😣

多くのPython使いに関連するトピックほど採択されやすいというのは、個別具体的な事例より抽象化を好むということだと思います。
PyCon JPは個別具体的な事例が多いと思うので、US PyConの持ち味なのかもしれません。

狭き門だと思うのですが、早めに出すと"巨人の肩に乗れ"そうなので、11月は(他にも手を出してはいるのですが)US PyConの優先度を上げていきます。

  • 早い提出へのフィードバックやメンタリングと、揉んでもらういい機会3
  • 台湾、シンガポールと海外に出て、「今のPythonを取り巻く状況でここが問題じゃない?」という課題意識がある
  • US PyConに向けて登壇先回り開発を進めていけば、US PyConでは採択されなかったとしても他で使えるアウトプットの準備ができそう

終わりに

発表したいと思っている人に対して、「こういうふうに考えてみてよ」という、まさしくガイドラインだと思います。
今後は登壇先回り開発&アウトプットを進めつつ、行き詰まったら、案内されたリンクの中から以下の2つを読んでみます。

それでは!


  1. 更に詳しく知りたい方は、US PyCon 2019 Debrief Session - 資料一覧 - connpass もどうぞ

  2. ref: PyCon US

  3. フリーライドするんじゃなくて、今回メンタリングに申し込む以上は、長期的にはメンタリングする側に行こうと思います

登壇予告 | サポーターズCoLabにて10/24にKaggleのタイタニックコンペのハンズオンで登壇します #spzcolab

はじめに

頑張れば、何かがあるって、信じてる。nikkieです。
今週木曜日 24日に渋谷開催の機械学習の入門ハンズオンに登壇します。
これはハンズオンの簡単なお知らせ記事です。

勉強会の概要

2019年1月、3月、6月(オンライン版)と開催してきた「Kaggleのタイタニックコンペのハンズオン」の最新版です。
機械学習やKaggleが気になっている方を対象に、入門者向けのコンペであるタイタニック機械学習やKaggleを体験する勉強会です。
(このあたりの用語が分からなかったとしても勉強会の中で説明するので、興味があったらいらしてください)
こちらで用意したPythonソースコードを動かして体験していきます。

今回はこぢんまりとした人数みたいなので「1人で回せるかな」と思っています。
過去にTAでご協力いただいた方や私と面識のある方で、もしご都合つく方がいたら、お知らせいただけると心強いです(ゆるぼ)

盛り込む予定のアップデート(準備TODOリスト)

例のあの本

先日出た「日本語で読めるKaggle本」に接続する形で構成できるように頭をひねっています。

Kaggleで勝つデータ分析の技術

Kaggleで勝つデータ分析の技術

読み始めての感想として、Kaggleに限らず機械学習に実務で取り組む人にはオススメできると思っています。
評価指標やデータの分割など各トピックが非常にまとまっている印象です。
例えば、評価指標は、回帰・分類でそれぞれ一覧でき、指標どうしの性質を比較できます。
この本に出会ってようやく、知識が整理された感覚です。

目次は技術評論社さんのページで確認できます。

準備項目

  • KaggleのUIがアップデートされたので、図や説明をアップデート
    • Kernel→Notebook、Fork→Copy and Edit など用語も変わっている
  • きれいなコードを用意する(Black当てる)
  • 可視化したグラフをアップデート(以下のツイートのフィードバックを反映)

  • (できたら)決定木に関連して、バギング・ブースティングの頭出しをして、『Kaggleで勝つデータ分析の技術』への接続をスムーズに

終わりに

今週は22日が祝日なので、そこで仕上げる予定です。
それでは当日お会いしましょう!

雑記 | #pyconjp 2019のトークはレベルが低かったのか? 〜台湾・シンガポールのPyConに参加して〜

はじめに

頑張れば、何かがあるって、信じてる。nikkieです。
ご存じの方もいるかと思いますが、先日のPyCon JP 2019で私はスタッフをしていました(主にコンテンツチームで活動)。
大きなお祭りを終えて一息ついた私の目に「PyCon JP 2019のトークはレベルが低かった」という旨の感想が留まりました。
この感想を見てからずっともしゃもしゃしていたのですが、Taiwan、Singaporeと海外のPyConに参加して気づいたことがあるので、記事として書くことにしました。

前提

  • この記事はnikkie個人の見解です。所属する企業やコミュニティ(例えばPyCon JPスタッフチーム)の見解を代表するものでは決してありません
  • PyCon JPにはスタッフとして参加しています。当日のトークの枠のうち、半分程度しか聞いていません(10月に入り、YouTubeで数本見ています)
  • PyCon Taiwan(以下、PyCon TW)に2日間(9/20〜21)参加しました
  • PyCon Singapore 2019に、カンファレンスの2日間(10/10〜11)とチュートリアル半日(10/12)参加しました

TL; DR

  • 機械学習トークが多いPyCon TW, SGに対し、多様性を尊重するPyCon JPという特徴がある
    • PyCon JPでは最先端のトピックが少ない。技術的なレベルが低いという指摘であれば該当すると思われる
  • 「レベルが低い」のであれば、それは私たちコミュニティ全員の問題
    • あなたが行動を起こせば、「レベルが低い」状況は変えられる

PyCon JPと海外PyCon、その違い

タイムテーブル

傾向

  • PyCon TWは機械学習トークが多い。実務のノウハウ共有というより研究発表という印象を受けた1
  • PyCon SGも機械学習トークが多い。肩書きを見るに実務で携わっている人が話している印象
    • 機械学習トークのレベルは高い。例えば、自然言語処理トークでは、聴衆が知っていることを前提とするかのようにBERT2が出てきた
    • PyCon JPでBERTにあたるような最先端のトピック3の共有はあっただろうか?(私の知る限りではないように思う)
  • PyCon JPは機械学習に偏っていない。多くのジャンルからトークを採択している(多様性
  • プレゼンテーションの巧拙という観点では、どのPyConも私の聞いた範囲では差はなかったように思います(めちゃくちゃ練習してきた方のプレゼンは目を見張るものがありますね)

機械学習に偏っている/偏っていないは私(一参加者)の経験ベースで述べています。
同一の発表時間に機械学習トークが複数あるか否かを数えて確認できるのではないかと思います。

海外PyCon(TW, SG)と比較して、PyCon JPのトークには最先端の技術を扱ったものは少ないという結論です。
特にPyCon SGは最先端のトピックが多く登場したと思います。

「レベルが低い」。では、どうする?

最先端の技術を扱ったトークが少ないことと、それがいいことなのか悪いことなのか(価値判断)は分けたいと思います。

最先端のトピックが少ないことが100%悪いとは私は思っていません(PyCon JPのらしさの1つかなあと肯定しています)。
たしかに、最先端のトピックを期待している人にとってはマイナスでしょう。
しかし、1つの領域を最先端まで掘り下げると、関心を持つ人は狭まります。
多様性を尊重する傾向のあるPyCon JPは、「ちょっとこの分野興味あったんだよね」という気持ちでトークが聞きやすくなっているのではないでしょうか。

次に「レベルが低い」という発言ですが、サービスを享受する〈客〉という立場でのクレームのように感じました。
PyCon JPにはお客としてではなく、コミュニティの一員、PyCon JPを作り上げる一人として参加したら、もっと素敵なイベントになるんじゃないかと思います。

PyCon JPはボランティアのスタッフで運営されています。
参加費はありますが、払ったお金からスタッフの給料が出ているわけではありません(スタッフは無給ですが、やりたいからやっています!)
ここが一般の商業施設との違いでしょう。
私自身は、お客としての扱いを期待するのではなく、コミュニティを盛り上げる一員として、無料であれ有料であれ勉強会に参加しています。

PyCon JPの外側でもコミュニティの一員として行動することはできます。
「レベルの低い」と思うトークがあったのなら、それを補強するブログやQiita記事を書いてはいかがでしょうか
「レベルが低い」という問題に気づいたのなら、あなたの知識を使って問題の解決に取り組めば、コミュニティの状態はきっとよくなるでしょう。
ただ発表者も人間なので、自分の知識をひけらかしてマウントを取りに行くマサカリではなく、一緒によりよいものを作ろうという配慮のあるやさしいマサカリだと非常にありがたいと思います。

「レベルが低い」の言いっぱなしはもったいないと思います。
問題に気づいたのなら、その問題を解決する人を待つのではなく、自分から動けば確実ですよ。
大きい問題なら、声を上げましょう。
微力ながら私もお手伝いしますし、コミュニティの力を借りて解決していきましょう。

以上が私の気づきです。
行動を伴わない「レベルが低い」については、私はあまり気にしないでいこうと思います。

「レベルが低い」と感じたあなたに

  • PyCon JP 2020の「レベルを引き上げる」ために、あなたにとっての理想のトークプロポーザルを出してみませんか?
  • PyCon JPではスタッフを募集しています。あなたにとって理想のPyCon JPがあるのでしたら、スタッフの一員として直接実現してみませんか?4
  • スタッフは大変そうという方、例年、トークプロポーザルのレビューアーも募集しています。PyCon JP 2020のレビューにあなたの知識を貸していただけませんか?

こういった案内は今後されると思いますので、PyCon JP Blogをウォッチするのをオススメします。

最後に

この記事を読んで思うところがある方は、コメント欄や@ftnext 宛にアウトプットしてみてください。
PyCon JPをよくしたいという気持ちは互いに持っている(ただ「よくしたい」の具体が違う)と思うので、どこかの勉強会や、PyCon JPのmtgで直接お話ししましょう。

追記:いただいたフィードバックへの回答

私自身が登壇者であることの扱いについて(10/16)

DMにて私が登壇者である旨の記載がない点について問合せをいただきました。
ご指摘の通り、「Anaconda環境運用TIPS」という15分トークをしています。

PyCon JPにはトークを聞く参加者としての参加が一番多いため、「レベルが低い」という声がトークを聞く参加者から出たのではないかと仮定してこの記事を書きました。
トークを聞く参加者であっても、「レベルが低い」と感じたのなら、行動できることはあるというのが伝えたかったことです。
また、直近の海外のPyConにトークを聞く参加者として参加していたため、トークを聞く参加者が暗黙のうちに前提になっていました。
記事中で「私も登壇者ではあるが、この記事はトークを聞く参加者を前提に書く」旨の明確な断りをしなかったために混乱を招いたこと、お詫びいたします。申し訳ありません。

なお、登壇者として自分のトークの振り返りは、実況ツイートなどを確認した上で、この記事とは別に執筆予定です。


  1. 例えば、https://tw.pycon.org/2019/en-us/events/talk/865694486351577331/

  2. Google検索をすれば解説記事は見つかると思います。例えば、BERTとは何か?Googleが誇る最先端技術の仕組みを解…|Udemy メディア

  3. 自然言語処理に従事している方にとってはBERTは最先端ではない(後続の手法が日々登場している)と思いますが、その分野の専門外から見てというニュアンスでの「最先端」です

  4. 私はPyCon JP 2018のLTにプロポーザルを出しました。採択の通知がズルズルと延び、何の告知もないまま1か月遅れたのを経験し、「これはひどすぎる。できることから手伝いたい」と思って、2019はスタッフをしています

Event Report | PyCon Singapore 2019 Day1 #pyconsg

はじめに

頑張れば、何かがあるって、信じてる。nikkieです。
このたびNaoYさんと一緒にPyCon SG 2019に行ってきました!
今回は1日目に聞いたトークについてレポートします。

I write a report of talks in PyCon SG 2019 Day1 in Japanese and English.

PyCon SG 2019について

PyCon Singapore 2019 is happening from Thursday to Saturday on October 10 - October 12 2019 at Republic Polytechnic!

PyCon Singapore(以下PyCon SG)は、10/10(木)〜10/12(土)に、シンガポールの共和理工学院で開催されました。

  • October 10: Conference Day1
  • October 11: Conference Day2
  • October 12: Tutorial Day (morning tutorial & afternoon tutorial)

前提 (notice)

このレポートでは、各トークの感想を手短にまとめます。
トークのメモは以下のリポジトリにIssueとしてまとめています(ただし日本語限定です)。

This report consists of short impressions on each of talks.
I took notes as GitHub Issues in the following repository (only Japanese).

GitHub - ftnext/PyConTalkSummary: PyConで聞いたトークのサマリーをIssueに蓄積(arXivTimesリスペクト)

Keynote: Accelerating AI in Singapore (by Lawrence Liew)

AI Singapore (AISG)のdirector、Lawrence氏によるキーノートで、PyCon SGは開幕しました。
PyCon SG was opened by a keynote by Lawrence, a director of AISG.

「AI replaces tasks (not jobs)」や「AI will allow us to be more human」という言葉に、Lawrence氏やAISGを進めるシンガポールのスタンスが現れていたと思います。
キーノートを聞いて、シンガポールはAIの分野でビジョンに向かって驀進しているという印象を受けました。

Phrases "AI replaces tasks (not jobs)" and "AI will allow us to be more human" seemed to express a stance of Singapore's accelerating AI.
It was my impression that Singapore is headed for its vision about AI.

An introduction to Python for Machine Learning with VS Code and Azure (by Joao Bilhim)

Slide: Microsoft Azure Developer Community

業務やプライベートの開発でVSCodeをよく利用しています。
VSCodeについてipynbを開けるようになった(写真)などの最新情報やTipsを知りました。
VSCodeをより使いこなせるようにまだ使っていない機能も試していきます。

I usually use VSCode in development using Python.
In this talk, the newest information (for example it can open ipynb now) and tips of VSCode was helpful for me.
I will try features of VSCode I didn't use so far (such as "variables", debug, etc.)

質問者に組み立て式ストローを配っていました。
The speaker gave assembly-type straw.

Demystifying Time Series Forecasting using Python (by Vaibhav Srivastav)

午後はVB氏のセッションへ。
時系列データの扱いについて、90分のセッションです(他のトークは45分です)。
要所でソースコードのウォークスルーもありました。

I listened to a session by VB in the afternoon.
It was about time series data and a session for 90 minutes.
There were walkthroughs of prepared source code.

私は時系列データの扱いはまだまだ駆け出しです。

  • 時系列データについてはTrend, Seasonal, Cyclical, Irregularという4つのcomponentsを確認すること
  • ARMA, ARIMA, SARIMAなど各モデルがどんなcomponentsを対象にしているか

を学びました。

I am a novice about time series data.
I leant in this talk:

  • 4 components of time series data: Trend, Seasonal, Cyclical, Irregular
  • which component is considered by each of models (such as ARMA, ARIMA, SARIMA, etc.)

LSTMを使ったアプローチについて知りたかった私には、READMEの情報がありがたいです。
I wanted to know an approach with LSTM. References in README is very helpful to me.

Python on AWS Lambda (by Keith Rozario)

Tea Breakの後はAWS Lambdaのセッションへ。
I listened to a session about AWS Lambda after tea break.

私自身Lambdaについて何も分かっていなかったことが分かった衝撃のセッションでした。
Lambdaへのデプロイの最小単位は、Pythonスクリプト関数だったのです!(Webフレームワークは必須ではなかったのです!!)
It was a shoking session to me because I knew that I didn't understand AWS Lambda at all.
Minimum deployment unit for AWS Lambda is a function in a Python script! (Web frameworks are not necessarily required)

Pythonの関数ごとにエンドポイントが作られるため、それをつないで一連の処理が実現できるとのことでした。
非常に便利だと思うので、試してみます。
I knew that endpoints are prepared by each of functions, so we can create a large process composed from each of endpoints.
It seems great to me, so I will try it.

終わりに

夜はスピーカーのたかのりさんやVBさん、現地の参加者らとビールを楽しみました。
After the last talk, we enjoyed drinking beer and talking with Takanori, VB, and local participants.

それでは2日目のレポートでお会いしましょう!
See you again at Day2 report!