IO設計2015年10月04日 10:11

IO設計


ジャバスクリプトで、パラメーターを指定するにはどうしたらいいかを探っている。

なるべくシンプルにして、ネット接続できない環境(ダイビングでは、実はそういう環境が多い)でも実行でき、インストールとかせずに(スクリプトを走らせるのもヤバイですが、(ヘタレな)ソース公開ということでご容赦を!)、出来れば実行の度にパラメーターを何度も入れなおすことなく、実行環境に保存して置ける方法はないかと欲張っている。

ローカルに設定を保存するテキストファイルを置いて、やり取りする方法もあり、ベーシックでならこれで実装するところだが、ジャバスクリプトの場合はセキュリティの関係もあって、しっくりくる仕掛けが見つからなかった。

最近流行の、HTML5という仕様では、クッキーの代わりにローカルでデータを保持する仕組みが備わっているらしい。

(ブラウザでストレージ? Web Storageを使いこなそう (1/3))
http://www.atmarkit.co.jp/ait/articles/1108/12/news093.html

「HTML5では、クッキーに代わるデータ保存の仕組みとして、「Web Storage」と呼ばれる機能を利用できる。Web Storageは、ブラウザ側でKey-Value型でデータを保存する機能のこと」

おお、これこそ浮沈子が探していた仕掛けだと感じて(フィーリング、大事です)、いろいろ勉強を始めた。

データ形式としては、JSONを利用したいと思っている。

(html5のlocalStorageで複数のデータを保存するには?)
http://the-zombis.sakura.ne.jp/wp/blog/2012/05/12/post-1362/

「前回はキーに対してデータを一つだけ保存したのですが、今回は複数のデータを保存する方法として複数のデータをJSONデータとして扱えば可能になります。」

この時点の実装では、保存できるデータは文字列になるので、それを数値として活用するには出し入れの際の変換が必要だが、それは一度コードを書いてしまえばコンピューター側でやってくれるので、使用上は問題ない。

この辺を探っていけば、一度入力したパラメーター(潜降速度、浮上速度、作業水深、作業時間、窒素濃度、ヘリウム濃度、大気圧、安全率など)を、次回も表示させることができ、必要なところだけを書き換えて計算させるという、まるでクライアント・アプリケーションのような動作をさせられるのではないかと期待している(人任せ・・・?)。

もう、コアな計算部分は出来てしまったので、最悪、パラメーターの値をシコシコとコード上で書き換えても問題はなく(あるよ!)、ここからは趣味として楽しみながら取り組むことができる。

この減圧ソフト作成の意義は、あくまでも厚労省が定めた減圧方法を基に、いちいち電卓で計算することなく、あるいは、表計算ソフトに依存することなく、手軽に減圧スケジュールに変換して、潜水士が業務上指示された減圧スケジュールと比較して、適法であることを確認できるというのがメインだ。

だから、使い勝手のいい巷の減圧ソフトをいろいろ調べて、保守性を与えない生の計算数値に近い条件で算出した減圧プランと比較して、ピッタリくるのがあればそれを適用してもいいんだが、やはりお上が定めた方法に準じて、自分で計算し、検討会報告書の手順に則って算出した値を使う方が確かだ(報告書添付の資料と突合して、確認はします)。

そのために、慣れないプログラムも書き、初めての言語であるジャバスクリプトも勉強している。

既に、ソースコードを書き換える方法では、M値を割り返して保守性を高めるという「安全率」という考え方を導入することも可能なようになっている(コメントアウトしてますが)。

この値を、任意の深度で書き換えれば、報告書資料のような減圧表を導出することも出来るだろう。

また、酸素減圧についても、パラメーターを与える方法を工夫して、特定の深度より浅い場合にガスの濃度(混合比)を変更することで実装可能だ(表計算ソフトの場合は、減圧過程が明らかになった後に、手動で濃度を変更して再計算する方法を採った)。

プログラム上で、この辺りをどうやって実装するかは、まだ具体的に検討はしていない。

まずは、その前に、パラメーターの入力方法を確立しようとしている。

完全に、趣味の世界に入ってるなあ・・・。

まあ、どうでもいいんですが。

ジャバスクリプトに拘らなければ、いろいろ方法はあるんだろうが、ブラウザー上で計算できるというのは、実行環境としては最も汎用的といえる。

アンドロイドアプリとして移植することも考えていたが、ローカルファイルとして置いておいて、それをブラウザーで開くだけでいいなら、移植するまでもない。

が、まあ、そっちは気が向いたらやるかもしれない。

パソコンなら、今時ブラウザーが入っていないパソコンはないだろうし、このブログからソースのスクリプトをコピペして、拡張子がhtmlのテキストファイルを作ることができないユーザーは限られているだろうから、誰もが広く活用でき、ネット環境がなくても使えるという意味では、ジャバスクリプトをローカルで走らせるというのが一番いいように感じる(フィーリング、大事です)。

というわけで、今日は言い訳だけして、お終いにしよう。

昨夜、今まで書いたソースコードに、バグがあったことに気が付いて(プリントすると、先頭にスペースが入ってしまう)、元ネタからコピペした部分に紛れ込んでいた隠れ文字コードを削除してプリントアウトもきれいに出るようになった。

スッキリ宿便が出た感じだ(お食事中の方、スイマセン・・・)。

(ヘリウム中間報告)
http://kfujito2.asablo.jp/blog/2015/10/03/7823200

このページのソースコードにも入っていたが、ちゃんと消した(「<!DOCTYPE html>」の前に、ゴミがあったようだ)。

(移植完了!)
http://kfujito2.asablo.jp/blog/2015/09/27/7813894

この中には、入っていなかった。

今後、気を付けなければならんな。

安易なコピペは、慎もう(・・・無理だな)。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
kfujitoの徒然の筆者のペンネームは、
「○○子」です。
○○を記入してください。

コメント:

トラックバック