何
GitHub - o0h/speaker-watch-party · GitHub
登壇するときのスライド、自分はなるべく見やすくなるように気をつけてはいるつもりだけど。
フォントサイズ大きくするとか、コードを黒背景で載せないとか、なるべく視線の移動を小さくするとか。
といっても、限界はあるじゃないですか。会場の明るさとかコントロールできないし、あと座っている位置や前に座っている人とか。
なので、カンファレンス登壇とかの準備時間がしっかり取れている系の登壇は、事前に資料は共有して&導線を分かりやすいところに貼って&ハッシュタグ付けて投稿(予約投稿)して・・・とかって準備はするのだけども。
これがベストなのか?っていうと違うなぁ、そもそも「不便を回避できるように手元で見れるようにした」と言いつつ、「喋りに合わせてスライドをめくるから、耳だけこっちに向けてもらっても手元でスライド合わせるよう要求するの無茶じゃね??」って疑念が、ある時からあったんですよね。
ってことで、ツールを作った。
発表者が開いているスライドと同じページを、ブラウザ上に表示するよってやつです。自動ページめくり&同期するもの。*1
やっていることは単純で、
- あらかじめ、発表に使うものとページ番号を合わせたスライドをPDFでサーバーにおいておく*2
- 利用者は指定したURLをブラウザで開いておいてもらう
- applescriptでKeynoteのイベントをポーリングしておき、スライドがめくられたタイミングでサーバーにページ番号を送る
- サーバーから利用者のブラウザに、ページめくりイベントを送信する
というもの。
技術
使っているのはapplescript + frankenphpです。Claude Codeは最初「honoでやるぞ〜」って言ってきたけど、そうだよねnodejsがいいよねーって思ってから、いや!ちょっと待って!!PHPでいけね・・?となり。
使ったことがなかったので、初めてFrankenPHPに触ってみた。
自分はコード書いてないですAnthropicからきた業務委託がやってくれました。
あと、これは自分のためのツールなので、プレゼンテーションツールはKeynote前提です。
というかGoogle Slideとかは、元々そういう機能だかChrome拡張だか無かったっけ?って気がする。未調査。
SpeakerDeckと連携してスライドめくりを〜・・とかも探ったけど、SpeakerDeckのスライドを埋め込んだ上でそれをJSから操作する口がなさそうだったので断念。
使い道とか
大前提として、会場がネットワークに自身がある機会にしか使えないと思っています。
直近であるイベントが(例年通りなら)ネットワークかなり拘って提供してくれているので、いけるかもなーって。
このアプリ自体の通信量は微々たるものなはずだけど、単純にWi-Fi接続数を増やすよう誘導することにはなりそうなので。
その他
作ったきっかけは、#ツナギメエフエム 第149回で「スライドツール作ってみたくなった」みたいな発言があって、「そういえば自分も、プレゼンツールを・・・」って思ったことがあったのを思い出したこと。
tsunagi.me
ニコ動風の字幕をプレゼン上に流すやつとかもあったよなぁ〜とか思い出しつつ。
単なる思いつき・雑なアイディアを、こうやって調査から設計からプロトタイピングまで半自動でやってくれる時代、よくないですね〜。今までだったら、調べる時点で腰が重くて手を出してなかったのにね!!
「他にやるべきことがある時に手を出しちゃう」が捗りすぎている。
あと、使えるようにするにはインターネットに乗っけておく必要があるので*3、どこにしようかな〜と思って久々にVPSを触ったり。放置していたドメインをいじったりした