ありがたいことに、昨年のPyCon JP 2018に続き、今年もCfPが採択されたので登壇 & 参加してきました。

CfPや、当日の意識したこと等、メモ書き程度に残しておきます


CfPについて

昨年は割と小賢しいタイトルをつけたなぁと自負していて、「実践入門」って一体なんだよって感じではあったので今年はシンプルに、「やりたいこと」と「PyCon自体のテーマ」をかけ合わせる感じにしました。

決まったタイトルが Pythonでライブをしよう!FoxDotを使った新時代のPython活用法 でした。

まぁ、「新時代」と謳いつつも、 FoxDot やライブコーディング自体は随分前から存在しているので微妙だなと思わんではないのですが、「PyConの場でライブコーディングの実演したら新時代感あるやろ!」と思って応募しました。

内容の検討

CfP出した段階で草案は考えていたのですが、内容を詰めたのは採択が決まってからです。昨年は7月の半ばぐらいでしたが、今年は6月には採択速報が出ていたため、準備期間が長くてありがたかったです。

考えた結果、ライブコーディングについて説明するのだから、やはりデモは力入れたいというのと、私自身がが知識欲満たせるプレゼンが好きという理由で特殊メソッドのオーバーロードの解説をすることにしました。

あとは、当初メディア・アートとの関連も少し話す予定でしたが、

  • 自分が詳しくないので付け焼き刃
  • Pythonとの関わりが薄い

の理由で話さないことにしました。

当日のデモ

FoxDot だと3連5連のハイハット作るのが楽だし、トラップ流行ってるしそれっぽいBPM/ビートでいくかーとか、電子音に合いそうだし小室っぽいコード進行(GetWild風)にするかーとか、全部で5案ぐらい考えたんですが、最終的には、「変わったことはしないで、すごい風に魅せる」を念頭において、

  • カノン進行
  • 一般的な House/Techno 辺りのBPM
  • FoxDot のbellが結構いい音 & カノン進行に合うので主軸に置く
  • メソッドチェーンで音を重ねる
  • 転調で盛り上がりを作る
  • 徐々に音数を増やす/減らす

なデモに仕上げました。

あとは事前に用意したコードを徐々にコメントアウト解除する方式でやれば本番も大丈夫かな!

…と思ったのですが、むくむくと欲が出てきて、

「本当のライブコーディングは事前に用意したコードをコメントアウトしておくのか…?」 「その場でコーディングしてくのが本物のライブコーディング&カッコいいのでは…?」

と思い立ち、PyCon前の土曜日にデモの案ができあがって、そこからはひたすら流れの暗記と練習をしました。

結果、本番では無事成功し、やはりコメントアウト方式よりも説得力が出た気がしています。相当アドレナリン出ました。

後日同僚から「カンペあったの?」と聞かれたのですがカンペは用意できませんでした。

ライブ性のあるものに対し、カンペを用意しないのはプレゼンとしてはバッドプラクティスかもですが、今回はギリギリまでデモを詰めていたためカンペを用意する余裕がなかったのと、「カンペを見ながらやる」というのも実はそこそこ練習が必要、の考えのもと用意しませんでした。

その他

今年からリアルタイムで配信されており、休憩時間にスマホで過去の配信を見ることができたので、かなり体験として良かったです。 良くも悪くも来年現地行くか迷うぐらい。。

今年は以下の辺りの発表を見ました。まだ全然観きれてない。。

個人的には発表を受けて Ren'py について調べていたら近年の超名作 Doki Doki Literature Club!Ren'py 製だったのが驚きでした(そういえば PythonException とか出てた)

Steam:Doki Doki Literature Club!

大変おすすめです。


最後になりますが、発表内容の査読をしていただいたJSLの皆さん、当日発表を聞いていただいた皆さんありがとうございました。デモ終了時の大きな拍手は忘れられません。

そしてPyCon JPの運営スタッフの皆様、あれほどの規模のカンファレンスを自律性持ってやるのは並大抵のことではないと思います、本当にお疲れさまでした!