本の開いているページの同期
本の開いているページ、表示領域を同期したいt6o_o6t.icon
どうしたらいいのだろう
理由
同じ本を読みながら勉強することがしたい
本を物理的に買うことはしたくない
電子書籍や、フリーのPDFをみんなで読みたい
ここが歪んでいる可能性もある
本を人数分買って、レンタルする形でイベントを開くことも可能
大学では、基本的に図書館で読める
本の実物が必要になるのはイベント時のみなので、団体で買って貸せば十分
イメージ
1. 画面Aの表示しているページが、画面Bにリアルタイムで反映される
2. 画面Aで表示している領域が、画面Bにリアルタイムで反映される
理想的には...
法律をかいくぐりたいt6o_o6t.icon
本を既に購入している人どうしで、ビューの状態だけを共有したいということ
ビューの状態を配信するのは問題ないだろう
現在どのページの、どの領域を表示しています、とか
マウスカーソルがここにあります、とか
本の内容を配信するのは問題がある
技術別に分けて考えるべきだと思う。
Webページの場合
ビューアに応じて表示サイズとかが変わりそう。
理想的にはVMを立てて、その中でChromeなどを実行するのが良い。
Hyper-V上のUbuntuでChromeを起動
画面サイズやフォントを、固定できるだろうから
Webブラウザは、画面操作用のAPIがある
JavaScriptで画面をスクロールしたりできる
EPUBの場合
とりあえずはVMを基盤に開発して良いと思う
実験するうえで都合がとても良さそう
どのVMを使う?
VirtualBox
Hyper-V
Hyper-Vで良いと思う
ハイパーバイザー型仮想化は、
アカウントを共用するのではいけないのか?
共用の基準とは
別人が使っているからいけないのか
偶然にも他人の端末でログインしてしまったというテイならいいのか?
本人がログインしたということにしたい
リモートデスクトップ?
利用しているのが問題なのでは?
共用の基準を調べなければならない.
どこまでOK? Netflix「アカウント共有」 家族でもダメな場合も(山口健太) - エキスパート - Yahoo!ニュース
日本のNetflixでは、生計をともにする同一世帯。
やっぱりアカウントの共用は違う
抽象化の方向性
より技術的に水平に実装するとしたら
VM間でメモリを完全に共有し、ログイン先を表すメモリ領域だけを書き換える?
ログイン済のVMを共有すること
リモートデスクトップでログイン済のマシンに接続するのとよく似ていそうだが
VMを立てるなら、まるごと動作を共有したほうが見た目もシンプルになりそう
実装も、メモリを共有するだけで良い
新しい電子書籍リーダーを考える?
Chromiumをベースにソフトウェアを書く
どういう?
とりあえず実装するしか無い
コンテンツ部分だけを別途取得する方法
やりたいことは結局なんだ?
本当に、同期できたら嬉しいのか
見ている部分を知りたいのではないか
ポインタ機能
他人が見ているページにパッと移動したいのではないか
https://scrapbox.io/files/64da297c688938001b531b14.png
こういうことなのだろう
メニューを召喚して、名前をクリックすると移動できる
作ってみたい!!!!
どういうふうに作ろうか?
Chrome拡張機能?
PDFが難しそう
PDFをやっつけたい
Webなら普通に画面共有でいいし...
本当に?
単純なJavaScriptで解決できるページを対象に絞ろう
難しそうになってきた
表示されるレイアウトはみんな違うから...
VMやChromiumで動かすほうが楽になってしまう
PDFのほうが簡単そう...
PoC
「みんなで見られるPDFビューア」というコンセプトでPoCを作る
「みんなで見られるPDFビューア」を作る
技術スタック
Socket.IO
ポインタの現在地共有に使用する
Chrome Extensions
Popup
PopupのUIがちょうど要件にフィットしたので良い。
SVG要素を挿入して、Backgroundで動かす
Socket.IOの重さによってはWebWorkerに頼るかも
アイデア突っ込む場所
アイトラッキングポインタ
必要最小限ではない
ファイルを開くための段階
ログイン
PDFファイルダウンロード
ファイルの開き方
ビューアを起動