だいぶ前に基本形だけ作って熟成していたんだけど、まともに完成させる時間的余裕がない&&気が付いたら某所で名指しされていたので思想と概要だけ晒しておく。不満があるのでやるならまともに再実装したいんで。
o- 何をする(何がしたい)ソフト?
プレゼンテーションを(リアルタイムに)配信するソフト。
o- なんでそんなものを作ろうとしたか?
講演用に作られたホールとかならともかく、一般の会議室などでプレゼンを行うと、前の人の頭が邪魔でスクリーンが全部見えないことがある。また、スクリーンサイズが小さかったり、プロジェクタの性能がよろしくなかったりするためによく見えないことがある。
このような際にもプレゼンが良く見えるようにしたかった。特に、特殊なハードウェアなどの導入が要らない簡単な方法が欲しかった。
o- アプローチ
基本的なアプローチは以下の通り。
- 発表者はプレゼンを行うPCで一定時間ごとに画面のキャプチャを行い、サーバにアップする。
- 閲覧者はサーバにアクセスして画面を見る。
運用的には、サーバはプレゼンを行うPCが受け持てば余計なPCリソースは要らないし、小型の無線LANアクセスポイントを装着しておけばネットワーク環境が整備されていない会場でも利用できる。逆に外部のサーバを用いれば、会場にいない人にも(話者が見えないとはいえ)プレゼンを見せることができる。
o- 実装
発表者向け画面キャプチャおよびアップツールはJavaで作成、java.awt.Robotやjava.net.HttpURLConnectionを利用してキャプチャとアップを行えるようにした。
閲覧者向けにはApache上で動くPHP/JavaScriptなツール(と呼ぶのか?)を作成し、一度ページを開けばあとはプレゼンを自動追尾するようにした。
更にネタとして、丁度ニコニコ動画が流行り始めていたので閲覧者はコメントを投稿できるようにし、発表者もキャプチャ&アップツールにコメント閲覧部分を設けた。
o- 動作イメージ
o- 特徴、問題点、その他
特殊なHWを導入することなくプレゼンの配信が行える。
リアルタイムにコメントできる上にそれを発表者が確認することもできるので、わかりにくい部分の指摘&レスポンスが容易に行える。
事前にPDF化なり画像化なりしてサーバにアップ&同時に手元で見てもらうという解もありえるが、PowerpointやImpressではアニメーションつきのページをうまく出力できない。本ツールでもアニメーションなどを全て配信することは難しいが、だいぶマシになるはすである。
キャプチャ&アップツールがサーバ機能を持てばより運用しやすくなるが、できていない。
閲覧者向けのUIに非リアルタイム閲覧の機能をつけたかったが、確かバギーなまま放置してあるはず。
ぶっちゃけ自動キャプチャじゃなくて手動キャプチャの状態で放置プレイしてる。
大体こんな感じ。確か、このネタのために初めてJavaにまともに触ったはず。便利だと思うのでまともに再実装したいんだけど、タスクの優先度が上がらない。うーむ。誰かまともに実装してSpecialThanksに私の名前でも入れておいてくださいw