読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

Maxima on Web for iPad

MaximaのWebフロントエンドのαバージョンを公開します。jQuery Mobileを使ってiPad用に設計しました。デスクトップでもiPadの雰囲気で動作します。


以下、スクリーンショットです。

バーチャルキーボードとHTMLキーボード、両方を使って入力します。数式はMathJaxで表示されます。


グラフも表示可能です。画像で受信します。グラフを見る時にはバーチャルキーボードは格納します。


ワンタッチでマニュアルも見られます。


実際に動作させるにはMaximaサーバーを立ち上げる必要があります。計算させなくてもちょっと触ってみたい方は、
http://www.h3.dion.ne.jp/~y.ich/applets/maxima_mobile.html
をお試しください。(iPad, Google Chrome, Safariで動作を確認しました。IE9ではレイアウトが残念なことになってました。jQueryIE9対応は進んでいないのでしょうか?)

技術課題

ボタンを押すたびに、フォーカスがボタンに移って、バーチャルキーボードが引っ込もうとひゃっくりします。

今後、iPad用のウェブアプリを作ろうとすると、大きな課題になりそうです。
以下のいずれかが実現されないと、細かな文字入力対応は苦しいです。

  1. バーチャルキーボードをウェブコンテンツから自由にカスタマイズできるようになる
  2. テキスト領域にフォーカスしていてもバーチャルキーボードが現れないようにできる
  3. テキスト領域にフォーカスされていなくても、キャレットが表示可能になる。

何かいいハッキングないでしょうか?

Maximaとのセッションの張り方がわからない。

サーバー側の話ですが、今のところ、1行コマンド実行の度にMaximaが再起動します。

類似の取り組み

iPad上で、これはという取り組みはまだなさそうです。一般的にブラウザベースのMaximaフロントエンドについては以下のものを知りました。

  1. 中野, et al., 「数式の処理と表示のマッシュアップを実現する Maxima 活用システムの開発
  2. Vroom Laboratory, Omega

想うところ

ちょっとだけ抽象的なことを。
そろばんが電卓に置き換わって、その後、表計算がある意味計算機の使い方を変えました。でも、その後変化がなくなってしまったという印象です。
パソコンの時代には、プログラミングが計算に置き換わる概念と思い、プログラミングすることが文章書くことぐらい容易になるような何かを期待していたのですが、iPad触ってから、従来紙と鉛筆でやっていたことを支援する方向も十分あるなと思いました。これはその方向を探る試行錯誤の一貫です。
Maximaのフロントエンドを作りたい訳じゃなくて、「支援」するのにMaximaをエンジンとして使うとよさそうというところです。
今回の作業を通して色んな勉強ができましたが、「紙と鉛筆でやっていたことを支援する」ではなくて「Maximaを使うことを支援する」ものになってしまっているので、この部分をなんとか突破するアイデアをひねり出すことが、私の大きな目標です。