さてさて、前回より使いはじめたGoogle App Engine。
この数日のうちに、HelloWorldの解読だけじゃなく、
いくつかサンプルプログラムを作りながら勉強してみました!
HelloWorldの解読もだいぶすすんだのでご説明させていただこうと思います。
とはいえ、勉強はじめたばかりの初心者ですので、多少の勘違いはご容赦ください!
では、Googleappengineでsample1というファイルを作成したとします。
まず、プロジェクトを新規作成した際に作成するファイル群。
ここでポイントとなるファイルは以下の通りである。
【1】src > sample1 > Smple1Servlet.java
【2】war > WEB-INF > web.xml
【3】war > index.html
大きく、この3つのファイルが注視すべきファイルかと。
それでは、それぞれひとつずつ解説していきます。
【1】src > sample1 > Smple1Servlet.java
まずはこれ。いわゆるJAVAサーブレットというものです。
JAVAサーブレットとは、
Javaを用いて、ウェブページのためのHTML文書などを動的に生成またはデータ処理をサーバ上で動くプログラム。Wikipediaより
このJAVAプログラムによって、アプリケーションがどのような動きをするかを定義するわけです。
では、中身をみてみましょう。
package sample1;
import java.io.IOException;
import javax.servlet.http.*;
@SuppressWarnings("serial")
public class Sample1Servlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/plain");
resp.getWriter().println("Hello, world");
}
}
HttpServletクラスを継承して、Sample1Servletというクラスを定義しています。
このクラスの中身が、「画面にHelloWorldと表示しなさい」と言っているわけですね。
doGetというのは、ページのリクエスト方式です。
リクエスト方式はGetメソッドとPostメソッドというふたつがあるのですが、
特に指定がない場合はGetメソッドにてページがリクエストされます。
すなわち、Getメソッドにてページがリクエストされた際に、
resp.getWriter().println("Hello, world"); つまり、HelloWorldを記述しなさいというわけです。
というのがサーブレットファイルの中身でした。
とはいえ、このサーブレットのファイルはプログラム。
ページには、このプログラムを呼び出すための仕組みが必要なのです。
その役割を果たしているのが、XMLファイルとHTMLファイルなのですね。
では、XMLから解説します。
【2】war > WEB-INF > web.xml
中身ですが、なんかいろいろ書いてありますが、僕も正直よくわかりませんw
ただ、このときにチェックすべきは以下の部分のみで大丈夫です。
<servlet>
<servlet-name>Sample1</servlet-name>
<servlet-class>sample1.Sample1Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Sample1</servlet-name>
<url-pattern>/sample1</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
まずここ。
<servlet-name>Sample1</servlet-name>
<servlet-class>sample1.Sample1Servlet</servlet-class>
呼び出すクラスを定義しています。
sample1の中にある、Sample1ServletというクラスをSample1という名前で定義しています。
<servlet-name>Sample1</servlet-name>
<url-pattern>/sample1</url-pattern>
次はここ。
URLパターンと書いてあります。
つまり、/sample1 というURLで、Sample1 というサーブレットにアクセスできる、というわけですね。
先ほどのJAVAサーブレットにアクセスできるというわけです。
<welcome-file>index.html</welcome-file>
これは、書いてある通りアクセスしてきた人をindex.htmlへ飛ばしちゃいますという記述ですね。
【3】war > index.html
ここまでくれば、後は簡単ですね。
Sample1というリンクをクリックすると、URL=sample1へリンク。
つまり、XMLで/sample1に関連づけておいたサーブレットファイルを実行するということです。
と、いう感じでした。
他のファイル群は、ライブラリ群とかなので、アプリに動きに直接関わってくるものではないですね。
さて、先日もこのブログに書いたGoogle app engine。
恥ずかしながら、JAVAは未経験なうえ、ウェブアプリケーションの基礎知識なんて
いっさいなかったもんですから、案の定というか、ちんぷんかんぷんです。
とりあえずここ数日いろいろ調べまくってわかったこと。
専用の開発環境(Eclipse)上で作る。プロジェクト内には大量のファイルがあって
素人には意味不明だが、実際に重要になってくるファイルは多くない。
まずはJAVAのソースコード。ここにプログラムを書く.
あとは表のページを整えるHTMLファイルとXMLファイル。
ほかには、サーブレットとか、その他部品をちょこちょこいじることで
他ファイルはプロジェクトをビルドした際に自動で生成してくれるようだ。
しかし、プログラムを書くのも素人なもんだからまったくわからん。。。
HelloWorldのプロジェクトでさえ解読できない始末!
※HelloWorldはグーグルのサイトにあります。
なので、まずはJAVAの参考書を買って基本的な文法を勉強することにした。
幸いなことに、C言語など、基本的なプログラミング言語は大学のときに学んでいたので
基本文法を理解するのはそんなに難しくない。
まずはHelloWorldを解読するところからかな!
解読については他サイトで紹介しているサイトもあるのでそれを参考にしようと思います。
なお、Googleが提供しているAPIは以下のURLからみれます。
http://code.google.com/intl/ja/appengine/docs/java/javadoc/overview-summary.html
なお、EclipseのGoogleプラグインをインストールされたときに一緒にインストールされた
Google Web Toolkitはこれとはまた別なので注意。
GWTは、Ajaxやjavascriptをgoogleの提供する規格でコードを自動生成してくれるAPI群。
GAEクラス群は、ウェブアプリでGoogleアカウントを利用したり、
あとは開発に必要な機能を提供するクラス群です。素人にはまぎらわしいですねー
これでクラスの機能を調べつつ、プロジェクトの解読をすることろからだと思います。
難しいけど、オープン&ソーシャルの世界ではプログラマの天下。
がんばります!
恥ずかしながら、JAVAは未経験なうえ、ウェブアプリケーションの基礎知識なんて
いっさいなかったもんですから、案の定というか、ちんぷんかんぷんです。
とりあえずここ数日いろいろ調べまくってわかったこと。
専用の開発環境(Eclipse)上で作る。プロジェクト内には大量のファイルがあって
素人には意味不明だが、実際に重要になってくるファイルは多くない。
まずはJAVAのソースコード。ここにプログラムを書く.
あとは表のページを整えるHTMLファイルとXMLファイル。
ほかには、サーブレットとか、その他部品をちょこちょこいじることで
他ファイルはプロジェクトをビルドした際に自動で生成してくれるようだ。
しかし、プログラムを書くのも素人なもんだからまったくわからん。。。
HelloWorldのプロジェクトでさえ解読できない始末!
※HelloWorldはグーグルのサイトにあります。
なので、まずはJAVAの参考書を買って基本的な文法を勉強することにした。
幸いなことに、C言語など、基本的なプログラミング言語は大学のときに学んでいたので
基本文法を理解するのはそんなに難しくない。
まずはHelloWorldを解読するところからかな!
解読については他サイトで紹介しているサイトもあるのでそれを参考にしようと思います。
なお、Googleが提供しているAPIは以下のURLからみれます。
http://code.google.com/intl/ja/appengine/docs/java/javadoc/overview-summary.html
なお、EclipseのGoogleプラグインをインストールされたときに一緒にインストールされた
Google Web Toolkitはこれとはまた別なので注意。
GWTは、Ajaxやjavascriptをgoogleの提供する規格でコードを自動生成してくれるAPI群。
GAEクラス群は、ウェブアプリでGoogleアカウントを利用したり、
あとは開発に必要な機能を提供するクラス群です。素人にはまぎらわしいですねー
これでクラスの機能を調べつつ、プロジェクトの解読をすることろからだと思います。
難しいけど、オープン&ソーシャルの世界ではプログラマの天下。
がんばります!
クラウドのアプリケーションを作るといっても、いろいろ方法があります。
ソフト面でもハード面でも多くの条件と環境を用意することが必要です。
そこで、最近流行の方法をご紹介します。
プログラムの部分のみを準備して、GoogleやAmazonなどの大手ネット企業のサーバーを
間借りするという方法です。
しかも、Googleの提供するGoogle App Engine、アマゾンの提供するEC2,
セールスフォースの提供するForce.comなど、この辺は膨大な通信量でない限り、フリーで使えるんです。
なので、エッセンスとなるプログラミングの知識さえあれば、あとはウェブAPIなんかを使って
プログラムを書いてしまえばあとはお金もかからずクラウドのシステムができてしまうというわけ。
というわけで、私もミーハーですし、お金も大切なのでこの方法でウェブアプリ制作に
取り組んでみたいと思います。
使うのは、Google App Engine for JAVA。
別にアマゾンでもよかったんだけど、グーグルのが日本語チュートリアルも豊富だったのと、
JAVAにも興味があったのでこれを選択。特に深い理由はないのですが。
というわけで、環境を整えるところから。
先日購入したMacbookAirにフリーの開発環境であるEclipseをインストール。
さらにそこへGoogleがAppEngine用に提供しているプラグインをインストール。
以上。完成。
とてもお手軽に環境が整いました。
というわけで、JAVAを勉強しつつ、アプリ制作に調整します!
ソフト面でもハード面でも多くの条件と環境を用意することが必要です。
そこで、最近流行の方法をご紹介します。
プログラムの部分のみを準備して、GoogleやAmazonなどの大手ネット企業のサーバーを
間借りするという方法です。
しかも、Googleの提供するGoogle App Engine、アマゾンの提供するEC2,
セールスフォースの提供するForce.comなど、この辺は膨大な通信量でない限り、フリーで使えるんです。
なので、エッセンスとなるプログラミングの知識さえあれば、あとはウェブAPIなんかを使って
プログラムを書いてしまえばあとはお金もかからずクラウドのシステムができてしまうというわけ。
というわけで、私もミーハーですし、お金も大切なのでこの方法でウェブアプリ制作に
取り組んでみたいと思います。
使うのは、Google App Engine for JAVA。
別にアマゾンでもよかったんだけど、グーグルのが日本語チュートリアルも豊富だったのと、
JAVAにも興味があったのでこれを選択。特に深い理由はないのですが。
というわけで、環境を整えるところから。
先日購入したMacbookAirにフリーの開発環境であるEclipseをインストール。
さらにそこへGoogleがAppEngine用に提供しているプラグインをインストール。
以上。完成。
とてもお手軽に環境が整いました。
というわけで、JAVAを勉強しつつ、アプリ制作に調整します!
インターネットでは非常に大きな騒ぎになっているこの事件。
このブログのテーマとは直接関係ないが、思うところがあったのでちょっと書かせていただきましょう。
まず、ライブドア事件のあらまし。
06.1.16 ライブドア強制捜査
06.1.23 証券取引法違反容疑で逮捕
06.9.4 初公判
07.3.16 実刑判決 即日控訴
08.7.25 控訴棄却
10.4.25 上告棄却 実刑確定
検察側の主張、つまり被疑事実は証券取引法違反(偽計取引、風説の流布)。
決算書の買収絡みの一部を取り上げて、堀江主導で粉飾決算を行ったという主張。
これに対して被告側の主張。
容疑は一概に違法と断言できるものではない。
また、社長といえど、決算書のすべてを把握していられるわけがない。
検察「いや、おまえが主導したんだ!」
上に記載した検察と被告の主張について、
私は法には詳しいわけではないし、事実を調べつくしたわけでもないので
このどちらの主張が正しいか判断する材料は持ち合わせていない。
ただ、不自然だなーと思わせる事実は何点かある。
まず、一時メディアをにぎわせた堀江貴文氏の一連の行動。
ニッポン放送株買収にはじまり、衆議院出馬。
既得権益層の目の上のたんこぶとなるには十分な騒動。
これが敵を作った。
次に、取り巻きの横領。
後に明るみに出たのだが、取り巻きの一人がライブドアの金を横領していた。
そして発覚するのを恐れ検察と司法取引のような形で堀江主導の犯行という証言を行ったという仮説。
なお、この横領については立件されていないらしい。不思議ですね。
あとは、ライブドアに対する強制捜査。これは月曜夜に行われたわけだが、これは異例中の異例。
上場企業にこのような方法をとれば、市場がパニックを起こすのは必然。
制裁を加えるのであればほかの方法もあったし、そもそもこれが
市場をも巻き込んでホリエモンを悪者に仕立て上げようとしたのだという。
上記のように、違和感を感じさせる点は多くある。
また、多くの著名人が彼を支持しているのも一考に値する。
私は盲目的に堀江氏を擁護するわけではないし、仮に起訴通り罪を犯しているのであれば
それは許されることではないが、私の知り得る情報から判断すると、
検察が作りあげたシナリオの中で事がすすんでいるように思える。
私は堀江氏の著書も何冊か読んでいるし、メルマガも購読しているわけだが、
非常に勉強になることが多い。
当時ネット業界を強烈に牽引した才能が二年半も投獄されてしまうのは
間違いなく日本の大きな損失だろうと思う。
また、ツイッターやニコニコで大きな反響を呼んだこの上告棄却が、
テレビをはじめ既存メディアで大きく取り上げられていないのも怖いところ。
堀江氏が積極的に情報を発信する発言力と、インターネットというツールを持っていたからこそ
判断材料になりえるこれだけの情報が外にも出てきたのだが、
同じような形で検察の圧力に屈し、闇に葬られた事件も多くあるだろう。
インターネットの普及により、様々な情報が手に入るこのような時代になったからこそ、
情報の取捨選択を自ら行えるだけの心構えと、判断材料になりえるだけの情報を常に持つ必要がある。
このブログのテーマとは直接関係ないが、思うところがあったのでちょっと書かせていただきましょう。
まず、ライブドア事件のあらまし。
06.1.16 ライブドア強制捜査
06.1.23 証券取引法違反容疑で逮捕
06.9.4 初公判
07.3.16 実刑判決 即日控訴
08.7.25 控訴棄却
10.4.25 上告棄却 実刑確定
検察側の主張、つまり被疑事実は証券取引法違反(偽計取引、風説の流布)。
決算書の買収絡みの一部を取り上げて、堀江主導で粉飾決算を行ったという主張。
これに対して被告側の主張。
容疑は一概に違法と断言できるものではない。
また、社長といえど、決算書のすべてを把握していられるわけがない。
検察「いや、おまえが主導したんだ!」
上に記載した検察と被告の主張について、
私は法には詳しいわけではないし、事実を調べつくしたわけでもないので
このどちらの主張が正しいか判断する材料は持ち合わせていない。
ただ、不自然だなーと思わせる事実は何点かある。
まず、一時メディアをにぎわせた堀江貴文氏の一連の行動。
ニッポン放送株買収にはじまり、衆議院出馬。
既得権益層の目の上のたんこぶとなるには十分な騒動。
これが敵を作った。
次に、取り巻きの横領。
後に明るみに出たのだが、取り巻きの一人がライブドアの金を横領していた。
そして発覚するのを恐れ検察と司法取引のような形で堀江主導の犯行という証言を行ったという仮説。
なお、この横領については立件されていないらしい。不思議ですね。
あとは、ライブドアに対する強制捜査。これは月曜夜に行われたわけだが、これは異例中の異例。
上場企業にこのような方法をとれば、市場がパニックを起こすのは必然。
制裁を加えるのであればほかの方法もあったし、そもそもこれが
市場をも巻き込んでホリエモンを悪者に仕立て上げようとしたのだという。
上記のように、違和感を感じさせる点は多くある。
また、多くの著名人が彼を支持しているのも一考に値する。
私は盲目的に堀江氏を擁護するわけではないし、仮に起訴通り罪を犯しているのであれば
それは許されることではないが、私の知り得る情報から判断すると、
検察が作りあげたシナリオの中で事がすすんでいるように思える。
私は堀江氏の著書も何冊か読んでいるし、メルマガも購読しているわけだが、
非常に勉強になることが多い。
当時ネット業界を強烈に牽引した才能が二年半も投獄されてしまうのは
間違いなく日本の大きな損失だろうと思う。
また、ツイッターやニコニコで大きな反響を呼んだこの上告棄却が、
テレビをはじめ既存メディアで大きく取り上げられていないのも怖いところ。
堀江氏が積極的に情報を発信する発言力と、インターネットというツールを持っていたからこそ
判断材料になりえるこれだけの情報が外にも出てきたのだが、
同じような形で検察の圧力に屈し、闇に葬られた事件も多くあるだろう。
インターネットの普及により、様々な情報が手に入るこのような時代になったからこそ、
情報の取捨選択を自ら行えるだけの心構えと、判断材料になりえるだけの情報を常に持つ必要がある。
結構有名なiphoneアプリの一つであるセカイカメラ。
今日はこれについて書きます。
拡張現実、AIって言葉はご存知でしょうか?
一番わかりやすい例は、ドラゴンボールのスカウター。
要は現実に存在するものに、タグで情報を追記してしまおうってアプリです。
セカイカメラをダウンロードしておくと、空間に対して情報を投稿できる。
で、端末を通してみると映像に情報が追記されてくるというものです。
例えば、都内で適当にセカイカメラをかざすとあっちにコンビニがあってこっちにガソリンスタンドがあろってのが一発でわかります。
こんな感じ!
iphone通しての映像。

で、なにに使うの?ってところだけどまだ実用性で言えば発展途上ってかんじです。
ただ、今はスマートフォンのみだけど、いずれスカウターみたいな形の端末も出てくるんじゃないだろうか。
あとは、車のフロントガラスに投射するとか。
遅かれ早かれ、今のナビにとってかわるものになるでしょうね。
いつかほんとに戦闘力たったの3か…という時代がくるかも。
そんな可能性を強く感じさせるアプリでした。
実用性はともかく、将来への可能性という点ではすごいおもしろいアプリだと思います!
今日はこれについて書きます。
拡張現実、AIって言葉はご存知でしょうか?
一番わかりやすい例は、ドラゴンボールのスカウター。
要は現実に存在するものに、タグで情報を追記してしまおうってアプリです。
セカイカメラをダウンロードしておくと、空間に対して情報を投稿できる。
で、端末を通してみると映像に情報が追記されてくるというものです。
例えば、都内で適当にセカイカメラをかざすとあっちにコンビニがあってこっちにガソリンスタンドがあろってのが一発でわかります。
こんな感じ!
iphone通しての映像。

で、なにに使うの?ってところだけどまだ実用性で言えば発展途上ってかんじです。
ただ、今はスマートフォンのみだけど、いずれスカウターみたいな形の端末も出てくるんじゃないだろうか。
あとは、車のフロントガラスに投射するとか。
遅かれ早かれ、今のナビにとってかわるものになるでしょうね。
いつかほんとに戦闘力たったの3か…という時代がくるかも。
そんな可能性を強く感じさせるアプリでした。
実用性はともかく、将来への可能性という点ではすごいおもしろいアプリだと思います!
