July Tech Festa 2021 winterに登壇しました¶
2回連続3回目の登壇でした。発表でも軽く言及しましたが、3回のテーマがバラバラであることでお馴染みです。
スライドとか動画とか¶
何を話したか¶
sphinx-revealjs
のアピールを、「Sphinxの概要」「Sphinxでもプレゼンテーション」を土台にして話しました。
もうちょっと真面目に¶
枕として「Sphinxが担う役割と活躍シーン」話した後に、
その枠組みに載ることで「HTMLプレゼンテーションをどう組み立てるか」の概論と、
その概論をもとに sphinx-revealjs
の概要・モチベーションなどを話していました。
今回、技術深めの話はほとんど行わず、概論にとどまっているのが普段とちょっと違う感じです。 [1]
自分はOSS活動のうち、そこそこの割合をこういったプラグイン開発に使っていることが多いです。 [2] これは、発表時にもSphinxの面として触れているのですが、 「プラグインの存在」を前提としたある程度以上息の長いライブラリは、
コアが安定的な作りをしている
アプリケーションとしてのI/Oインターフェースが明示的に定義されている
これらがある程度きちんとドキュメント化されている
といった理由から、「このライブラリに自分が欲しい+α」を実現するのが比較的容易だったりします。
sphinx-revealjs
に関しても、発表の通りでreSTのパース自体は基本的にほとんど弄っておらず、
出力の部分だけ新しく実装した感じになっています。
なおこのパターンで開発するそのOSSは、領域の積集合になるために、 まず間違いなくニッチ = 利用者は自分だけ という状況になりがちです。 そんな中でも、国内外で使ってみてくれた方や「こんなこと出来ない?」とIssueを上げてくれた方が出てくれたのは、 自分にとっても非常に有意義なイベントでした。
使ってくれてる方に感謝するのもですが、 当時「sphinx + revealjsのライブラリを作ってみよう」と思った自分を褒めたいです。
他のSphinx拡張を使うときの話¶
今回は追加で次の3個の拡張を使用しています。
sphinxcontrib.blockdiag
: blockdiag形式の画像を埋め込めるsphinxcontrib.gtagjs
: gtag.jsを埋め込める(自作)sphinxemoji
: replace定義に大量の絵文字を登録する
sphinx-revealjs
の主な役割は「パース済みdoctreeの出力時に、特定の要素に限って出力内容を通常のHTML系とは別の挙動をさせる」ものです。
そのため、そのルールに干渉しないような「別のディレクティブを登録して普通に使う」「bodyとは無関係なことをする」ような拡張はそのまま使えます。
ツイート拾ってレスポンス¶
質問ツイートっぽいのはそこまでなかったので、自分がリアクションできそうなものをピックアップしてみます。
その1¶
「Gitベースで管理」と聞いて時時雨さんのgist思い出したhttps://t.co/PZzW4HIKu9#JTF2021w #JTF2021w_D
— gkzz / Gakuji Tamaki (@gkzvoice) January 24, 2021
IT系の会社で、自社の考え方(方向性・規則などで公開可能なもの)をGitHubで管理+公開しているところをたまに見かけますよね。 この辺は「HEADを最新版として安定的に参照可能」「いつ、どんな理由で変化したかの追跡が可能」とそれなりに良いことがあるので、 出来る範囲で積極採用できれば良いなぁとは考えたりしてます。
その2¶
> HMTLでプレゼンする
— gkzz / Gakuji Tamaki (@gkzvoice) January 24, 2021
> ファイルをGit管理しやすい
パワポ、PDFベースでの発表が主流ではない世界線があるとしたらどんな発表が行われていたのかな?#JTF2021w #JTF2021w_D
pdfでもテキスト検索できるけど、より検索しやすいように最適化された資料構成になっているのではないか?#JTF2021w #JTF2021w_D
— gkzz / Gakuji Tamaki (@gkzvoice) January 24, 2021
発表後にその場で聞かれた質問ツイートと、ひねり出した回答をまとめてくれたやつです。
もうちょっと後追いで考えてみたんですが、もうちょっと絞って「HTMLプレゼンテーションが標準の世界線」があったとしたら、
meta
タグや link
タグなどを通じて多くの発表資料が互いにリレーションを持って、
よりハイパーテキストとしての要素が濃くなるのかなとも思いました。
...あれ、その世界線には今みたいなWeb上にリッチコンテンツが出回らないかも?
その3¶
#JTF2021w#JTF2021W_D
— Hidenobu Ishikawa (@hidenobu_is) January 24, 2021
JTF2021W_D4
sphinxのreveal.js拡張あとで見てみよう
#JTF2021w #JTF2021w_D
— nikkie(にっきー) / にっP (@ftnext) January 24, 2021
GitPitchが2月いっぱいで閉じちゃうので、sphinx-revealjs試してますー。
生成したHTML(Reveal.jsスライド)をGitHub Pagesで公開できるのが好感触です
GitPitchと関連するツイート。
確か、 sphinx-revealjs
開発最初期の頃にGitPitchのことは見た気がするんですよね。
ちょうどその頃、業務でもPythonを使うウェイトが高い時期だったのもあって、
ドキュメントをreSTで書くケースが多く、「reSTをそのままスライドにする」欲が高かったような記憶はあります。
結果として、ちゃんと生きたOSSとして今もこのコードを書けているので、結果オーライなんじゃないかなと。
For 運営雑感¶
JTFには昨年もお世話になったのですが、今回はブログに落とし込む余裕があったので、 登壇者(一部時間視聴者)目線での雑感を簡単にまとめてみようと思います。
リハーサル¶
事前に「Zoom自体のテスト」などを目的としたリハーサルを実施してもらっています。
そこそこの時間を取ってもらって1on1で
ボリューム周り
表示のされ方
当日の流れ
などを結構細かく確認してもらっててて、このあたりは非常にありがたかったです。 [3]
Ask the speaker¶
オフラインイベントと同様に、Ask the speakerが用意されています。 登壇者は発表後にATS用のルームにしばらくいる感じになります。 [4] [5]
あったほうが良いのは間違いなさそうなのですが、オフラインイベントと比較すると難しそうですね。
「その場で聞きにいけること」の意義はたしかに大きいのですが、
配信には席数制限が実質無いため、シンプルに発表に流れがち。
「オンラインにいる=後でオンライン視聴できる」となるため、その場で聞くインセンティブが若干低い。
利用サービス次第では「話しかけに行けるのか」が分かりづらい。
あたりに課題感があるのかな?と思いました。
まとめ¶
CfP応募のきっかけになったのは、前回登壇者向けの案内が来たことでした。 「『推しテク総選挙』ってテーマなら、これは被りにくそう」 「期間の積み重ね的に登壇資料にはできそう」 と思ってたら採択されました。
とはいえ、ちょっと油断しててアウトラインしか用意してなかったので、 採択通知が来たときはちょっと焦りましたが。
幸い形としてまとめることは出来てちゃんと発表として完走できたのは良かったです。 2021年の個人Tech活動としてはいいスタートを切れたと思います。
脚注¶
注記
この辺はCfPの時点で可能性はあったのですが、スライドを書いている過程であからさまにコードのないスライドになりました
他だと、一時期ErrBotのプラグインをポツポツ書いている時期がありました
環境がちょっと特殊なのもあって、非常に助かります
今回はZoomのブレイクアウトルーム機能が使われました
なお、一人だけ来てもらいました
週報(2021-02-15-)
sphinx-revealjs ver 1.0.0