The Ossan on a Motorcycle

あの脳にもういちど

オッサンもとうとうスマホデビュー! どうだ、ナウいだろー!

2012年03月31日 21時07分58秒 | 妄想
NSBasic/App StudioというWebアプリの開発ソフトで、とりあえず初歩的なものでも良いから、何かプログラムを作ろうと苦戦している最中だが、Webアプリといっても作ろうとしているアプリのメインのフラットフォームはスマホ用のアプリである。自分はスマホを未だ持っていないので、パソコン上でグーグルのChromeを使ってのプログラムのテストとなる。しかしながら、Chromeばかりで試してたんじゃ、実際にプログラムがどんな感じで動いてるのかよくわからないのが実情だ。そうなると、やはりスマホが必要だ。仕方がない、実機テスト用ということでここは一番、オッサンもスマホデビューするべきだ。もちろん、あくまでもWebアプリ開発のため、向学のための購入だ。40代は不惑の世代なのだ。みんなが持ってるから買うんじゃないぞ! 本当だぞ!



ただ、どうせスマホを買うのなら、なるべく性能がいい奴っていうか、持ってて最大幸福が得られるような機種がほしいよね。前々回の記事で書いたように、スマホを持つことでオッサンのエグゼクティブさが引き立てられ、それに魅せられた周りの美人の女子社員が、あたかも外灯にたかる蛾のように、よってくるような機種がいいよねー。




オッサンによってくる美人な女子社員たち


ということで、近くの電気屋に行ったのだが、実際のところオッサンはケイタイの知識には疎く、電気屋にいろいろとスマホが飾られているのだけれど、どれも皆同じにしか見えないんだけど、、、それ以上に驚いたことは、スマホの値段が高いこと! 5万円越えの機種ばっかやん! そんなの買えるわけ無いじゃん! 1円スマホってのは無いの?

そんなことを思っていたら、店員が背中に張り付いてきたので適当に見つくろってもらうことにした。店員が勧めてきたのは「iPhone」だった。

iPhoneっていうと、最近でもナンチャラっていう商品が新発売になって、発売初日に店の前に長蛇の列ができたっていうあのAppleのスマホやね。だいたいAppleの商品を持ってる奴なんて本当のおしゃれさんかマニアなオタクかのどっちかに決まっている。ほとんどがマニアなのだろうが、発売初日に並んでまでして買おうとする価値観はオッサン的には理解しがたい。あそこまで必死こいて買い求めるということは、そのとき買い損ねると人生においてよほどのデメリットを被ってしまうのだろう(バカジャネーノ)。 でも、iPhoneもってたら、スナックのおねーちゃんとかに「おされ〜」なんてチヤホヤされるかも。ただ、iPhoneのアプリをつくるには、「Xcode」っていうソフトでないと作れないんだけど、このソフトはMacでしか動かないんじゃ、iPhoneは自分的には話にならない。

他にあったのが「WindowsPhone」。いや、これはたぶん同じ機種持ってる女の子っていないと思うから、いらないです!

そうなると、やっぱりAndroid端末ってことになる。スナックのおねーちゃんとか美人の女子社員の使っているのもAndroidだった。これさえあれば、おねーちゃんとの共通の話題には事欠かないはずだ。スペックはよくわからんけど、皆が持ってるってことは性能もいいに決まっている、、、しかし、値段が高い、、、買えない、、、

そんな、心の葛藤をしていたら、店員がとんでもないことを言ってきた、、、「iPhoneだと2年間分割で買えば機種代はタダになりますヨ」

「それくださいっっ!!!」






Apple製品というと、なりが派手で値段が高くてブルジョアジーのためのものと思っていたのだけれど、どうやら今ではビンボー人のためのものになっているらしい。今度はこれで2年間も縛られることになったが、機種代がタダだし、iPhoneアプリを作ることはできないけどとりあえずWebアプリは作れるのだから、我慢しよう。

ポチポチとiPhoneを触っていたら、iPhoneには紺色のメッセージボックスやらクルクル回るセレクターやらなんか見たことあるコントロールの類が多いことに気がついた。あれ、これはNSBasic/App Studioのハンドブックに紹介されているコントロールではないか。Chromeではこんなコントロールは出てこなかったぞい! などと思っていたら、そのとき初めて気がついた。NSBasic/App Studioは、Webアプリの開発ソフトだったのでChromeを筆頭にiPhoneでもAndroidでも、たぶんWindowsPhoneでも動くアプリを作ることができることから、今まで「NSBasic/アプリ スタジオ」だと思いこんでいたのだが、ハンドブックを読んでいくとなんかiPhoneにはやたら手厚い仕様になっている。もしかしたら、これはiPhoneに特化したWebアプリを作る開発ソフトなのかも。てことは、「アプリ スタジオ」ではなくて「NSBasic/アップル スタジオ」が正解?


            


前々回の記事で、Webアプリを作ろうと模索していることを書いた。自分の技量、開発ソフトのスペックなど考えていくと、実際にできるのかどうかは何ともいえないが、とりあえず進行中だ。考えているのは「動静表アプリ」という、自分の仕事で使う船の離着岸のタイムスケジューラーである。

内容的には、毎日、紙の動静表を受け取るが、これにその日に入港する船の船名、着岸時間、離岸時間、岸壁番号、船首位置、船尾位置、荷役会社、タグボートの有無などが記載されており、1日に10隻ほどしか入港しないので、そのデータを手打ちで入力して保存し、これを一覧表示させる。そして時系列に沿った係留位置を図式で表示させるというアプリを考えている。

入力フォームに関しては、MSBasic/App Studioには「デザインスクリーン」というフォーム作成の機能があるので、テキストボックスやらセレクターやらを適当に配置すれば良いので、特に問題はない。

まず、問題になるのが、そこで作成したデータをどう保管するかということで、iPhoneにどうやってデータを保存させるのか未だよくわからないが、WebアプリだとデータベースのSQLの簡易版、SQLiteというデータベースを介してデータを保存するのが一般的らしい。ただ、資料などを見るのだが、このSQLiteはどう使えばよいのかもよくわからない。それでも、SQLiteの他にLocalStrageという、HTML5の仕様で5MB上限のキャッシュ機能があるらしく、これは変数名とデータを指定するだけで使えるらしく簡単そうだ。キャッシュ機能ってのが途中でデータ消失もありえそうだが、極端な話、Palmデバイスでよく使っていたメモ帳にデータをペーストするって方法もあるわけで、あくまで自分用のアプリと割り切ってしまえば体裁などどうでも良いわけで、これはどうにかなると思っている。

データの一覧表示に関しては、Gridコントロールを使う予定だが、これはまだ何も試してはいない。

図式表示については、Windows版のガントチャートソフトを使ったことがあるが、それの挙動から想像するとあれはフォーム上に帯を描いているようにも見えるが、TextBoxに背景色をつけて配置させることで帯のように見せているのだと思う。NSBasicではプログラム上からコントロールを配置させることができるのかわからないので、PictureBoxコントロールを使って直接、図を描画させる予定だ。ただ、このコントロールも割とお粗末っぽい。PictureBoxコントロールと銘打っているが中身はHTML5のCanvasエレメントを用いたものらしい。実際にテストしてみると、iPhoneのディスプレイサイズがが960*640だったと思うが、フォーム全面にコントロールを配置してみるとコントロールのサイズは460*320のサイズとなる。要するに、Palmデバイスでいえば320*320のハイリゾ画面を持ちながら昔ながらの160*160の画面でしか表示できないみたいな、本来のiPhoneの画面の4倍の粗さでしか図示できず、スクロールさせることもできないので、予定している900メートルの岸壁の36時間分のデータを一度に表示させるのは、かなり困難だ。プログラムの作り方を小手先で工夫するか、抜本的に見直す必要がある。

作ろうとしているアプリのシステムはだいたいこんな感じ。




PictureBoxについて使い方について少々説明を書く。

NSBasic/Palmでは、フォームに直接、線を引いたり文字を書いたりすることができた。NSBasic/App Studioもその感覚で使えると思っていたが、文字は書けても、図形を描画することはできないみたいだ。そのため、図形を描画しようとする範囲にPictureBoxコントロールを配置しておく必要がある。当然ながら、コントロールの外には図形を描画できない。また、何層にもコントロールを配置することができ、図形が重なって描画されても影響し合うことがないので、レイヤー分けした描画が可能だ。

プロパティに「scroll」の文字がつくものがあるので、図を大きく描画しつつiPhone上に部分的に表示しながらスクロールで全体を閲覧することも可能かと思っていたが、これも無理っぽい。結局、460*320サイズ以上の描画はうまくいったことがない。

NSBasic/App StudioのハンドブックにはPictureBoxコントロールに関する説明が少ないので、TechNote13 "PictureBox How to Draw"を参照しながら使い方を知ることになるが、TechNote13もPictureBoxのリファレンスにすぎないので、あまり参考にならない(しかも英語だし)。ただ、基本的にHTML5のCanvasエレメントがベースになっており、コードの記述方法はCanvasのそれとまったく同じで、そのまま応用できる。自分としては、このホームページのここら辺を読んで研究している。日本語な分わかりやすい。

余談だが、PictureBoxコントロールで線の太さを指定するプロパティで「lineWidth」ってのがあるが、これで線の太さを変えようとしたら、これがうまく機能しないので、NSBasicにその旨のメールを出したら、「次期バージョンで修正しておくヨ」って返信が来た。バージョン2.0で修正され、デバッグ情報に修正箇所があげられていた。自分の指摘で使っているソフトが改良されるとちょっと嬉しいね。

 「カーサン、ワシの眼鏡知らんか?」 波平さんの脳みそもきてますねー

2012年03月15日 20時55分48秒 | 妄想
歳を取ると物覚えが悪くなるからダメだよね。あまりの物忘れと物覚えの悪さから、自分の脳みその細胞がどんどん死滅していくのが想像できてしまって、、、あたかも緩衝材の「プチプチ」を雑巾のようにグイッと絞ると「プチプチプチプチプチプチプチプチ、、、、」と潰れていくように、自分の脳細胞もプチプチプチプチプチプチプチプチ、、、、って死んでいるんだろうな、、、 ああっ怖い怖い。

前回の記事(といっても4ヶ月前になるが)では、Webアプリの開発ソフトの「NSBasic/App Studio」の評価版を使用したことを書いた。30日間のトライアルだったので、期間が過ぎたら使えなくなってしまった。代金を支払えば登録コードが送られてくるのだが、外国製のソフトということで、支払いは当然クレジットカードである。しかし、オッサンはクレジットカードを持たない。若気の至りで好き放題していたオッサンの独身時代を知っている鬼嫁から「ローンとかカードとか契約したら即離婚!」って言われているので、クレジットカードは作りたくても作れないのだ。このグローバルでネットな社会を生き抜くにはクレジットカードがないというのは、なかなかツライんだけど、、、

それでも、以前購入した「NSBasic/Palm」って開発ソフトは日本でも代理販売がされていて、カードを持たないオッサンでも買うことができた。そんなわけで「今回もどうにかできるんじゃないの」と思っていたら、「WESTERN UNION」って送金システムも使えるよってホームページに小さく書いてあるのを発見し、調べてみるとカードが無くても海外へ送金できるシステムで近所の金券ショップの大黒屋で取り扱っていることがわかった。やっぱりどうにかなるもんだ。当時バリバリの円高だったので、割と安く買えたのもラッキーだった。

それはさておき、評価版を使っていたときは、ソフトについているサンプルコードで茶を濁していたのだが、せっかく大枚をはたいてしまったのだから、元を取らねばならないというビンボー症特有のホルモンが脳内に分泌されるので、改めてソフトのドキュメントをみながらNS Basic/App Studioをさわってみるのだが、これがNSBasic/Palmと全然勝手が違っているのに気がついて、使い方がよくわからない。順番がでたらめだが、買う前にもっと使ってみるべきだった。NSBasic/Palmを買ったときは、すでにPalmデバイスが枯れ始めたときだったので、パワーユーザーが提供してくれるドキュメントも充実していたし、何よりメーカーが提供していたドキュメントのほとんどが日本語に翻訳されていた。それに対してNSBasic/App Studioでは、これに関するレビューをあげているサイトがほとんど見つからないのと、マニュアルが英語版しかなくて、何をどう扱えばよいのかちんぷんかんぷんなのだ。



五里霧中、暗中模索、紆余曲折な状態が何ヶ月も続いてしまった。これはマズイ。何か手だてを考える必要が出てきた。しかし、死に体と化しているオッサンの脳みそではなかなか難しい。それで行き着いた解決策が、ソフトに付属している英語のドキュメントを翻訳して、日本語で理解するのだ。いわゆる正攻法で、この難局を乗り切ることにした。

まあ、翻訳といっても翻訳ソフトがしてくれるわけだから、深くは考えていないのだが、ちなみにオッサンの持ってる翻訳ソフトはソースネクストの「本格翻訳」の古いやつ。2980円也。「価格.com」のクチコミ情報ではかなり酷評を受けているソフトだが、これ以上の経費はかけられないので、これで我慢だ。同じクラスのソフトでは「コリャ英和!一発翻訳」は翻訳精度も高いらしい。割といい評価を受けてる。とどのつまり、ドラえもんの「翻訳コンニャク」があれば最高なんだろうけど、たぶんあれは脳細胞のシナプスに強制的にパルスをとばすウィルスか何かが入っていると思うので、副作用というか、体に悪いに違いないと思う。

とりあえず、結構重要そうなTechNote05とハンドブックのちょこっとを翻訳してみた。当然ながら、翻訳ソフトに任せっきりの翻訳では王様の深紫伝説状態になってしまうので、「こんなこと書いてあるんじゃないかな」的な修正を加えてみた。1日2時間で1週間かかった。延々翻訳の修正をやっていたら、最後の方は「オレって何やってんだろ?」ってトリップ状態になってしまったが、できた分だけ公開してみる。

著作権がナンチャラカンチャラするのかもしれないので、公開して都合の悪い方がいれば削除のコメントを、、、って、コメントは受け付けてなかったのだった。デタラメ書いてるかもしれないし、日本での販売促進にもなるんだから、「ミノガシテクレヨーミノガシテクレヨー」(←小泉今日子調、、、これを知ってるのはオッサンの証)






Tech Note 05
Distributing Your App

2011/11/21


NS Basic/App Studioによって作成されたアプリケーションは、インターネット接続を持っていれば誰でもインストールできて、操作できる。デバイス上で実行できるなら、アプリケーションはデバイスのローカル上に保存することができ、インターネット接続がない時にさえも、利用可能となる。

NS Basic/App StudioアプリケーションはAppleのApp Storeで売ることはできない。しかし、それらは、jail-brokenされている如何に関わらず、どのようなiOSデバイスでも、Appleの審査を受けることなく使うことができる。それらは標準的なHTML5アプリケーションであって、スティーブ・ジョブズも「HTML5--それは完全にオープンで、制限されていないプラットフォームである。そして、私達は十分にそれをサポートする」と太鼓判を押している。

また、アプリケーションを売りたいならば、いくつか方法もある。

・ダウンロード情報にアクセスするためのコードにサインを要求するウェブサイトをセットアップし、支払った人だけにサインを教える。
・プログラム中に登録コード入力欄を設け、正しいコードがないとプログラムが実行できないようにする。
・OpenAppMktやChrome Web Storeなどのサード・パーティーのウェブストアを使えば、請求とダウンロードの処理と、売り上げの割合により収入が得られる。

アプリケーションの配布のための設定方法:

1.ファイルの設定
2.マニフェストファイル
3.アプリケーションをデバイスにインストールする
4.サーバーへのマニフェストファイルの設定(Apache)
5.サーバーへのマニフェストファイルの設定(IIS)
6.GoDaddyサーバーの設定

参考資料として、Mark Pilgrimsが執筆した”Dive Into HTML5”がある。
オフラインアプリに関する資料はこちら。

重要なことは、デバイスへ取り込んだ後でも、サーバー上のアプリケーションを管理し続けることである。アプリケーションにアップデートがあっても、インターネット接続がなければ、アプリケーションは通常どおり続行される。しかし、インターネット接続して、アプリケーションがサーバー上に見つからなければ、アプリは廃止されたと記録され、デバイスから消去される。nsbapp.comサーバーは、すべてのプロジェクトにおいて数日間使われていないとクリアされる。

1. ファイルの設定

公開のために、プロジェクトのディレクトリの中にファイルを提示する必要がある。RunメニューのDeployオプションはこれを容易にする:ファイルとフォルダは自動的にディレクトリにコピーされる。



































ファイル 説明
myProject.htm アプリケーション。
これはIDEによって作成される:ファイルの実際の名前はIDEに設定される。これは、スペースまたは特殊文字がない、UNIXに有効なファイル名である必要がある。サーバーにコピーされた後に、index.htmに改名される。
LauncherIcon.png アプリケーションのためのアイコン。
これは、.pngフォーマットであり、114x114ピクセルのサイズにしなければならない。ファイル名をProject
Propertiesの中のmanifestに追加すること。ファイル名の指定がない場合、デフォルトファイルが使われる。
SplashScreen.png iOSだけのオプション。
デバイスに保存後、アプリケーション起動時にこのイメージが表示される。画像は.pngフォーマットで、320×460(iPadは1004×768)であること。ファイル名をProject Propertiesの中のmanifestに追加すること。ファイル名の指定がない場合、デフォルトファイルが使われる。アプリケーションをホーム画面に保存し、それをアップデートしたいならば、ホーム画面からそれを削除し、再保存しなければならない。
/nsb/ 必須ファイル。
このディレクトリは、ランタイムとしてNS Basic/App Studio自身に必要なすべてのファイルを含む。このディレクトリの内容は変更できない。
OfflineApp.manifest オフラインアプリケーションのために必要とされる。
ダウンロードされるためのファイルのリストを含んでいる。"The Manifest
File"を参照。Deployオプションによって作成される。
images and js files アプリケーションで使われる画像と追加のJavaScript(.js)ライブラリ。
イメージは、.gif、.jpg、.bmp、.png、およびその他、ブラウザが表示できるなら何でも良い。ファイル名は、スペースまたは特殊文字がない、UNIXで有効なものである必要がある。
folders manifestに載られたフォルダは、ホームディレクトリの構成と同じにしておくこと。フォルダ名は、スペースまたは特殊文字がない、UNIXで有効なものであること。

2. マニフェストファイル

マニフェストファイルとは、アプリケーションのすべてのファイルの一覧が入っているファイルで、プロジェクトのディレクトリの中にある。このファイルはNS Basic/App Studioによって自動的に作成され、IDEの中にその内容を保持することができる:それはプロジェクトエクスプローラの一番上の欄に、Manifestというプロパティがある。アプリケーションをオフラインモードで動かそうと思うなら、アプリケーションに使用するそのほかのファイルや画像データの名前を、そこに加える必要がある。そして、そのファイルはプロジェクトのディレクトリに置かれなければならない。

manifest fileの例として

CACHE MANIFEST
mario.jpg

「CACHE MANIFEST」はIDEによって自動的に与えられる。manifestプロパティはファイル名のリストであり、1ファイル名につき1行とする。フォルダ名も入れることが可能で、またサブフォルダも使用できることから、その結果、フォルダ名を繰り返し入力することになる。

HTML使用できるほとんどのタイプのファイルを置くことができる:ただし.dbファイルは使用不可。アプリケーションファイルそのものは自動的にアプリケーションキャッシュに含められるため、マニフェストファイルに追加する必要はない。画像ファイルとしてアイコンとスプラッシュスクリーンのファイルを加えなければならないことに注意!

マニフェストファイルは、アプリケーションで用いるファイルのアップデートにも使うことができる。

アプリケーションの起動時に、(接続可能ならば)サーバーとともにチェックし、前回ダウンロードしたときのマニフェストファイルと比較する。変更があれば、アップデートが行われる。新しいマニフェストファイルにあるすべてのファイルはダウンロードされ、アプリケーションは再スタートする。

以下のステートメントを実行することによっても、アプリケーションを強制的にアップデートさせることができる:

window.applicationCache.update()

リモート・サイトからファイルを読んでくるときに、この方法は有用である。この場合、マニフェストファイルはアップデートされない。

3. アプリケーションをデバイスにインストールする

すべての設定がなされ、アプリケーションを公開したならば、次に、デバイス上で起動させることになる。そのためには、まずデバイスにインストールされているブラウザ(iOSならサファリ)から、アプリケーションが配置されているURLを入力する。

http://www.nsbapp.com/myProject

それはオンラインアプリケーションとして実行しているため、その外観はWebページのように見える。しかし、それをホーム画面に追加すれば、アイコンはランチャーの中で作成され、アプリケーションも、ブラウザの一部分ではなく、アプリケーション然とした意図していたおのとなる。

iOSにおいてこれをするためには、mobile Safariの画面下にある”+(プラス)!のアイコンをタップし、"Add to Home Screen(ホーム画面に追加)”を選ぶ。すると、アプリケーションはホーム画面に他のアプリケーション同様に、オフラインアプリケーションとしてインストールされる。

4. サーバーへのマニフェストファイルの設定(Apache)

自分のサーバーからアプリケーションを配布しようするならば、それが正しいMIMEタイプをOfflineApp.manifestファイルに記述されているかどうかをチェックする必要がある。ドキュメントがどんなMIMEタイプとして戻されているかをテストするために、http://web-sniffer.netを使ってみるとよい。マニフェストファイルにURLを入力すると、例えばhttp://www.nsbapp.com/myProject/OfflineApp.manifest、その結果、"Content-Type"と返ってくるであろう:それは‘テキスト/キャッシュマニフェスト’ということである。

方式1:Modify mime.types

MIMEタイプを訂正するには、まずmime.typesファイルを修正する。ここで、それを見つけられる:

<IfModule mime_module>
#
# TypesConfig points to the file containing the list of mappings from
# filename extension to MIME-type.
#
TypesConfig /private/etc/apache2/mime.types

サーバーがApache(ほとんどがこれ)で動作しているならば、このファイルを編集する必要がある:

/user/local/apache2/conf/mime.types

末尾に次の行を追加:

text/cache-manifest manifest

設定を反映させるにはApacheを再スタートさせる、、、シェルを使ってこんな感じで、、、

restart_apache

ここで起こっていることは、サーバーが適切なコンテンツタイプセットを使用してキャッシュファイルを作成し、デバイスに戻す必要があることである。これをしないならば、ファイルは‘text’として返され、適切に設定されるならば、それは‘cache-manifest’のタイプとして返される。


方法2:.htacess file

もしかすると、ISPによるWebサーバーでは「mime.types」ファイルの編集が許可されていない可能性がある(当然ながら、サーバー管理者がサーバーのコンフィギュレーションを誰にでも修正することを許可するとは思えない!)そうであるならば、個人的なサーバーエリアにコンフィギュレーションファイルを配置すればいい。このファイルは「.htaccess」という、ウェブサイトの一部へのパスワードアクセスをコントロールするために使われる。

ウェブサイトのルートディレクトリに、.htaccessファイルが存在していないならば、これを作成し、"AddType text/cache-manifest .manifest"の1行を加える(引用符は省略)。これにより、.htaccessファイルは新しいマニフェストMIMEタイプを指定することができる。

.htaccessファイルは必要最低限、これだけでよい:

AddType text/cache-manifest .manifest

.htaccessファイルはApacheサーバーや他の同様なサーバーにも使われている。しかし、Apacheサーバーは、これをオプションとしてとらえ、.htaccessファイルを無視するかもしれない。そうなると、このテクニックはうまくいかないかもしれない。
(Paul Elliott氏 寄稿)

5. サーバーへのマニフェストファイルの設定(IIS)

使用するサーバーからアプリケーションを配布するならば、それが正しいMIMEタイプをOfflineApp.manifestファイルに供給しているかどうかをチェックする必要がある。ドキュメントがどんなMIMEタイプとして戻されているかをテストするために、http://web-sniffer.netというものがある。まず、マニフェストファイルのURLを入力する。例えば、http://www.nsbapp.com/myProject/OfflineApp.manifest。すると、”Content-Type”と表示される:それは本来なら‘text/cache-manifest’であるべきで、それがそうではないならば、IISにおいて設定を変更する必要がある。
その方法を記述しておく:

(画像)

デフォルトのコンテキストページのリストにindex.htmlがそこに表示されてないならば、それを付け加える必要がある。

(画像)

(寄稿 Tony O'Brian)

Hostgator Windowsサーバーのウェブサイトのルートディレクトリにあるweb.configファイルの内容を掲げておく:


<configuration>
 <system.webServer>
  <handlers>
   <remove name="Perl-CGI-cgi" />
   <add name="Perl-CGI-cgi" path="*.cgi" verb="GET,HEAD,POST" modules="CgiModule" scriptProcessor=""C:Program Files    (x86)ParallelsPleskAdditionalPerlbinperl.exe" "%s" %s" resourceType="Either" requireAccess="Script" />
  </handlers>
  <staticContent>
   <remove fileExtension=".manifest" />
   <mimeMap fileExtension=".manifest" mimeType="text/cache-manifest" />
  </staticContent>
 </system.webServer>
</configuration>

(協力 Graham Pettican)

5. GoDaddyサーバーの設定

ホスティングが、Windowsで動いているGoDaddyサーバーとIISで共有された環境ならば、仮想の専用サーバーへweb.configファイルをうまく設定するように思われる。
その他に経費が安くすむ方法として、Linux上でApacheを利用する。そして、最後の行に次の一文を書き加えた.htaccessファイルを作成する。

AddType text/cache-manifest .manifest

そして、これをサイトのrootに配置する(この場合、サイト全体に影響を及ぼす可能性がある)、またはアプリケーションのあるディレクトリに配置する(この場合も、そのディレクトリに影響を及ぼす可能性がある)。

(協力 Johann Vogel)




AJAX(URL[、method[、data、[returnFunction]]])
説明
AJAX関数は、サーバーからデータの受け渡しのために使われる。
それはXMLHttpRequestに基づく。この関数はウェブサイト上のネットワークで機能し、ローカルなブラウザの中では機能しない。URLはサーバーの上のアドレスで、それは、サーバーからダウンロードするファイル名またはサーバーの上で動かされるスクリプトである。オプションの情報は、サーバーに手渡されるURLの末尾である:例えばhttp://www.nsbasic.com/getCustomerInfo.php?customer=Knuthは、パラメータをcustomor=Kruthとして、getCustomerInfo.phpと名付けられたPHPスクリプトを呼び出す。

methodはアクセス方式を定義するのに使われる。これの最も一般的な値はPOSTである。このパラメータが省略されたときは、GETが使われる。GETの作用に対して、POSTの作用は決してキャッシュされない。またPOSTはより大きいデータ転送が可能である。もしPOSTを使うならば、dataの中に送りたい情報を置きなさい。8メガバイトまでの情報を置くことができる(容量はサーバーの仕様に依存する。)これは、データをサーバーに送るための、簡単で効率的な方法である。

returnFunctionとは、指定されているならば、非同期の実行で戻り値があるとき呼ばれる関数である。このパラメータの指定がないならば、値が返されても、実行は次のステートメントに移行する。

その他のmethodとしてはCONNECT、DELETE、HEAD、OPTIONS、PUT、TRACE、またはTRACKがある。これらのオプションにおける詳細について、ウェブにおけるXMLHttpRequestを参照。

戻り値としては2つある。それは.status = 0または200ならば、関数の呼び出しが成功で、戻されたデータは.responseTextに格納される。
失敗したときは.statusにステータスコードが戻される。

その他の情報としては、AjaxまたはAjaxPostのサンプルコードを参照。




LOCALSTORAGE(文字列|変数)
説明
LOCALSTORAGEは、あなたが文字列データを保存することを可能にするもので、次回プログラムを実行するとき、データがが入手可能となる。入力は、名つけられたvariableNameにより、LOCALSTORAGE.variableNameに割り当てることによって作成される。また、データは同じ方法で検索される。プログラムは、LOCALSTORAGEにおいて5メガバイトのデータを格納できるが、ブラウザキャッシュがクリアされれば、LOCALSTORAGEにおけるデータは消失する。データを失わないためには、代わりにそれをSQLiteデータベースに保存すべきである。

LOCALSTORAGEは同じウェブサーバーに置かれたすべてのアプリで使用できる。データを共有する必要があるアプリがあるならば、有用である。




READFILE(ファイル名[.method ])
説明
この関数はAjax()関数によって交換されることができる。
READFILEは、アプリによって使いこなされるか、アプリと同じサーバーの上にあることができるファイル名を読む。ファイルが、アプリによって使いこなされることになっているならば、それをマニフェストに含めておく。この関数はウェブサイトに使いこなされる時に働き、それはローカルなブラウザの中で動く時に作動しない。

アクセス方式を定義するときmethodを使用する。通常、このパラメータは除外されることができる。デフォルトはGETである。次に最も一般的な値はPOSTである。GET反応がそうであるかもしれないのに対して、POST反応は決してキャッシュされない。またPOSTはより大きいデータ転送を許す。他のmethodとしてはCONNECT、DELETE、HEAD、OPTIONS、PUT、TRACE、またはTRACKである。これらのオプションにおける詳細について、ウェブにおけるXMLHttpRequestを探しなさい。関数はXMLHttpRequestに基づく。ReadFile.nsxサンプルを参照のこと。

ファイルが読まれ、ファイルの全体の内容が Textresponseにおさまるならば、.status = 0または200の2つの値を戻す:ファイルが読まれなかったならば、.statusに違うステータスコードが戻される。

WRITEFILEという関数は存在せず、データを保存するためには、SQL、LOCALSTORAGE、またはPhoneGap APIを使う。




SQL(db、 sqlList)
説明
Sqlステートメントは、(SQLコマンドのリスト)をSQLiteに送るために使われる。
DbはSQLOPENDATABASE関数の戻り値である。
sqlListはSQLiteのコマンドまたはSQLiteコマンドの配列である。

SQLiteデータベースは同じウェブサーバーに置かれたすべてのアプリで共有できる。データを共有する必要があるアプリがあるときは、有用である。

詳細については、Tech Note15を参照。




SqlOpenDatabase(filename, version, fullname, maxSize)
説明
SQLOPENDATABASEは、SQLiteデータベースを作成し、開くために使われる。
filenameはファイルの実際の名前である。
versionはバージョン番号である(オプション)。ファイル作成において使われ、特に指定がない場合、「1.0」に設定しなさい。
fullnameはファイルの概説である(オプション)。
ファイル作成において使われ、特に指定がない場合、ファイル名に設定しなさい。
maxsizeはレコードの最大の数である(オプション)。ファイル作成において使われ、特に指定がない場合、1,000,000を設定しなさい。

詳細については、Tech Note15を参照。




あんまり意味のないことをしてんのかな、、、