Fogは2012年12月にサービスを終了するそうなので、後継サービスであるAppFogを試しました。Mapsを活用する郵便番号検索システムです。サーバ・サイドのプログラミング言語はJavaとPHPのうち、好きな方を選んで読み進められるようになっています。作成したウェブアプリを公開する方法は人によってさまざまでしょうが、PaaSの無料プランを使うのは魅力的な選択肢です。Javaで作成したウェブアプリをHerokuというPaaSの上で動かす方法を以前紹介しました。FogというPaaSの上で動かす方法を紹介します。Fogを使い始めるときに1回だけやればOKです)。詳しくは、Jumpstartsあたりを参照してください。FogではMySQLが使えますが、そのアクセス方法は、拙著で説明したのとは少し違っています。データベースへの接続情報は、環境変数に格納されているので、それを参照しながら接続します。参考までに、データベースに接続するためのコードを書くと、次のようになります。149に掲載されているコードと比較してください。utf8'));しかし、ここではこのコードは使いません。郵便番号データベースを構築するのが面倒だからです。拙著で紹介したように、テーブルを作成して郵便番号データのCSVファイルをインポートすれば郵便番号データベースを構築できるのですが、郵便番号データベースのためのCSVファイルは比較的大きいため、phpMyAdminでインポートしようとするとタイムアウトしてしまうのです。無料で利用できるデータベースサイズが5MBというのもいまいちです。Herokuのときもそうでしたが、無料の範囲内で遊ぼうとすると、データベース周りがいろいろ面倒です。done」として拡張子.csvを付けて、一つずつインポートすれば回避できますが、とても面倒です(Railsに行くのはここではがまんしましょう)。こんなところで苦労するのはいやなので、Herokuの場合と同様に、SQLiteを組み込んで使うことにします。ローカルでの実験のために、PHPからSQLiteを使えるようにしておきましょう。restartデータベースファイル(mydb.sqlite)の作り方はHerokuの場合と同じなので省略します(完成したファイルはここにあります)。このファイルを、zips.phpと同じディレクトリに保存します(接続時にパスを指定するなら、別のディレクトリでもかまいません)。zips.php内のデータベースに接続する部分を次のように修正します。PDO('sqlite:mydb.sqlite');Ajaxによって1文字入力するごとに検索結果を更新するようにしたものは、拙著の中では割愛しましたが(Java版とほとんど同じため)、サポートサイトでは掲載しているので参考にしてください。実行結果は下のようになります。Devは、行数が1万行に制限されることが発表されたので、別の方法(例:SQLiteを組み込む)を検討した方がいいでしょう。拙著『Webアプリケーション構築入門』では、開発プラットフォームとしてJavaとPHPを採用しており、ウェブアプリを実際に公開するときは、自前のサーバ(VPSを含む)を使える人にはJava・PHPの好きな方を、レンタルサーバを使う人にはPHPを使って貰うつもりで執筆していました。最近、自前のサーバでもレンタルサーバでもない第3の選択肢としてのPaaSが普及してきており、その一部は無料で使えるようになっています。「サーバ管理技術」よりも「アプリケーション開発」に興味がある人にとっては、自前のサーバやレンタルサーバよりPaaSの方が便利でしょう。拙著はPaaSを意識した書き方にはなっていないので、そのあたりの情報をアフターサービスとして提供していきたいと考えている今日この頃です。Javaを無料で使えるPaaSの一つにHerokuがあります。Javaが使えるレンタルサーバはあまりないので(私が知らないだけ?)、そういう意味でもHerokuは魅力的なのですが、無料で使えるデータベース管理システム(DBMS)が、拙著で採用しているMySQLではなくPostgreSQLだというのが、初心者には障害になるかもしれません。MapsとのマッシュアップやAjaxによるリアルタイム検索を含む)」でPostgreSQLを使う方法を紹介しましょう。PostgreSQLをインストールします。postgresqlPostgreSQLの管理者postgresのパスワードを適当に設定します(例:pass)。データベースを作ります。拙著9.1.1項のとおりにファイルをダウンロードして、次のコマンドで必要なデータだけを集めたCSVファイルを作ります。gawk」などとして確認してください。/tmp/zip.csv管理者になって、データベースmydbを作ります。mydbMySQLのコマンド「mysql」に相当するコマンド「psql」を実行します。mydbテーブルを作成し、先に作成したCSVファイルをインポートします(拙著9.1.2項とは異なり、必要なデータだけをインポートすることにします)。CSV;インデックスを作成します。(code);Webアプリから接続する際のパスワードを設定します。これは、先に設定したOSのパスワードと同じである必要はありません。'pass';「\q」と入力してコマンドpsqlを終了します。ドライバ」を追加します。134あるいはサポートページを参照)のデータベース接続部分だけです。次のように書き換えます。USER文で設定したパスワードです。"pass");以上の準備で、拙著第9章の郵便番号検索システムはPostgreSQLで動くようになります。このままではまだHerokuでは動きませんが、とりあえず、ローカルで動くようになったので一区切りです。-PostgreSQL-などというものもありますね。inquisitorメルトダウンと聞いて「何をいまさら」と思うのは、体制にとって都合のいい反応なのでしょう。それはともかく、「メルトダウンした燃料がどんどん下に落ちていって、ついには地球の反対側つまりブラジルを汚染する」という話があって、ブラジルの人たちが逃げ惑っているそうです(嘘)。Mapsで確認しておきましょう。ブラジルでパニックや風評被害があってもいけませんし(WolframAlphaで確認する方法を先日紹介しました)。Maps地球が完全な球では無いことは考慮していませんが、WolframAlphaの結果とだいたい同じなので、とりあえずよしとしましょう。Mapsを使ってオリジナルのウェブページをつくる方法は、拙著『Webアプリケーション構築入門』で紹介しています。Earthで確認する方法を後で書きます。inquisitorTwitearthTwitterに流れ込み、はき出される膨大な情報を、エンドユーザ向けのエンタメに生かせないものか。付加されているつぶやきは、全体の0.5%程度しかない。特別な手続きなしにTwitterから取れるつぶやきの0.5%程度なら、地図上でリアルタイムに配置していくことができるだろう。ついでに、外国語が苦手な人向けに、すべてのつぶやきは日本語に訳しておこう。厳密に言えば、翻訳先の言語はつねに日本語というわけではなく、ブラウザの言語設定にあわせている。ブラウザの言語設定を英語にしているユーザが相手なら、すべてのつぶやきを英語に訳しておくのが親切だろう。これはいわゆるマッシュアップというやつだが、使っているサービスは以下の通り。API適当なサーバがあれば、認証方法をOAuthに変えて公開する。2011)がおすすめです。