poppySへのタブレットモードの搭載とChrome拡張への移植

ご無沙汰しています。

近日いろいろあり更新が途絶えていましたが、本日、諸事情が一区切りしましたので今後はコンスタントに更新かけていきます。

poppySについて、2つの開発を進めていました。

1.タブレットモードの搭載

これまではPCオンリーでしたがタブレットでも対応できるようにしました。Winタブオンリーですが。

私はSurface Pro 6を利用しています。スワイプして読めるのがいいですね。あとはSurface Pro 6は解像度が高いので2ページ表示しても文字が潰れないのがいいです。

キーボードで入力していたコマンドは一部削除しています。こちらも、いずれタブレット上での指の軌跡でなにか出来ないかなと思っています。教材として使うならこういうのは楽しそうです。流行りの機械学習的ななにかをやるモチベーションになってきます。使えるコマンドが減ったので重要な機能がなにかの見極めになってよかったです。

まだ動作不安定なのでそちら片付いたら説明書とWindows版ビルド品等用意します。GitHub(https://github.com/polymonyrks/poppyS/blob/master/READMEJP.md)にはタブレットモード付きのものをアップロードしています。今の段階で動かしてみたいという人は、Main.hsのisTabletという変数をTrueにしてビルドして動かしてみてください。

2.Chrome拡張への移植

手軽にthe art of coloring readingを体験してもらうにはブラウザ拡張が有効と思いました。実はWikipediaに同技術を適用して読んでみたら面白いだろうと前から思っていました。ああいう百科事典的な電子文書に有効だというのはこれまでの知見で得ています。

ブラウザ側がサーバーに特定のURLのHTMLを構文解析するようにリクエスト、サーバー側はhtmlを取得しそいつをもとにマウスクリックにより着色できる形、名詞句単位で着色できる形にHTMLをHaskellで加工、そうして出来上がったByteStringをブラウザが受信して、javascriptで書かれたchrome拡張で操作できないかと。

やってみたら出来ました。以下の動画を参照ください。

「関数」「演算子」という単語を含んでいる名詞句を紫に着色しています。PDFリーダー(poppyS)ではなくChrome上でやっていることをご確認ください。

まだレイアウト問題とか、複数色を使うとか課題が残っていますが、多分やれそうな感じです。(★3)

ある程度安定したら、こちらも公開する予定です。GitHubにはレポジトリ(poppyBrowserExt)つくっていますが、まだ未完成です。例えば上の動画は、Chromeのアドレスボックスにサーバーへのクエリつきのアドレスを手で張って確認しています(笑)(★1)。

また、サーバーにアクセスする必要があり、現状はローカルサーバーで開発しています。公開する際にはリモートサーバーを立ち上げる予定です。試してみたい方はしばらくお待ちください。4月末辺りにはやれるようにしたいです。(★2)

(★1)

javascriptは難しい言語ですね。これまでHaskell, C++と型がある言語でやっていましたが、型が大事、だからTypeScriptが出てきたとか、ふーんと思ってましたが意味が理解できました。

でもjavascript覚えるとブラウザでいろいろやれそうですね。文章の一部クリックで着色周りがすんなりできちゃった辺り。PDFの何がきつかったかって実は座標情報なんですよ。構文解析の正確性は当然大事なのですが、名詞句がどの座標にいるか、どこからどこまでの矩形を着色するか。このへんの泥臭い作業がきつかった、、今でも完全ではないです。HTMLだとその辺り要素単位で管理できるので楽かもです。

何がセクションの表題とかそういうのもきっちりしていますし。なので、PDFよりもすごいのができそうだと楽しみにしています。

(追記)typescript、compile?するとjavascriptのコードが吐かれるんですね。ならtypescriptで開発しようかな。

(★2)

サーバー周りの知識を私が持っていないので、ちょっとかかるかもです。レンタルサーバーに私のUbuntuマシンのローカルサーバーと同じものを導入できれば終了だと思っているのですが、、そもそもレンタルサーバーにUbuntu載っている?そこでapt叩ける?Docker導入できる?無理ならお家の高性能PCをサーバーにする?ちょっとよく分かっていません。

(★3)

XML形式で読み込んで加工、XML形式でByteStringにしていたのがレイアウト崩れの原因と判明。Html形式で出力でレイアウト崩れは解消。xmlで用意してた情報をHtmlに置き換える作業中。あと少しです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする