2011/07/28

子どもの描いた絵てがみが、味があって楽しい



子どもたちが、絵てがみ作成のイベントに行ってきました。描いた絵をみると、とても味があって、いい感じです。お題は「宝物」なのですが、お題に関係のない「すべり台」や「トランスフォーマーのスタースクリーム」などを描いていました。

海が大好き アンモナイト

やさい

すべり台

スタースクリーム

2011/07/16

Google App EngineのJava版のチュートリアルを試してみました。



今までGoogle App Engineは、Python版しか使ったことがなかったので、Java版を使ってみました。下記の構成で試してみます。

・Windows7 Home
・Eclipse 3.7.0 Indigo
・Google Plugin for Eclipse


Google Plugin for Eclipseをインストールすれば、Google App Engine Java SDKも一緒にインストールされます。

Google App Engine java プロジェクトの作成
http://code.google.com/intl/ja/appengine/docs/java/gettingstarted/creating.html

の内容に従って、チュートリアルを進めます。

「JSP の使用」のところでエラーが出ました。

JSP の使用
http://code.google.com/intl/ja/appengine/docs/java/gettingstarted/usingjsps.html


/intl/ja/guestbook.jspにアクセスできません。というエラーです。調べてみると、チュートリアルのソースが間違っているようです。

SignGuestbookServlet.javaを修正
resp.sendRedirect("/intl/ja/guestbook.jsp");
を
resp.sendRedirect("/guestbook.jsp");
に修正

上記の問題は解決しました。その後のチュートリアルの内容は、問題なく動作できるのですが、「実行」をすると、「必要なプロジェクトでエラー」とのアラートが表示されます。ソースを確認すると、guestbook.jspに赤い×マークが付いています。アラートの内容を確認すると

型の安全性: Object から List への未検査キャスト

とのメッセージでした。このメッセージを調べると、下記のサイトの記載を見つけました。

「未検査キャスト」という警告が出たら
http://d.hatena.ne.jp/makiyamakoji/20090303/p1

「この警告に対する根本的な解決策はありません。」とのことなので、このままにしておきます。

アプリケーションのアップロードをします。

アプリケーションのアップロード
http://code.google.com/intl/ja/appengine/docs/java/gettingstarted/uploading.html

Eclipseのツールバーの[App Engine の配備(Deploy App Engine)] ボタンを使うと簡単にデプロイできました。

今まで、Pythonで作っていたアプリケーションIDを設定して、バージョンを一つ上げてアップしてみました。My Applicationsの管理画面のVersionsのページにて、アップしたVersion2をDefaultに設定すれば、問題なく動作しました。Google App Engine Java版は、Eclipseのプラグインを使えば、Eclipseがほぼ必要な作業はしてくれるので、簡単に出来る感じがしました。

http://vivo-red.appspot.com/guestbook.jsp


Google App Engineのサイトをみると、「Go」でもApp Engineの開発ができるようです。まだ、Google App Engineの日本語対応ページには、その記述はありませんが、下記にその記述がありました。

Google App Engine Getting Started: Go
http://code.google.com/intl/ja/appengine/docs/go/gettingstarted/

2011/07/10

マップ上にコメント付きで画像を配置できるGoogle App EngineアプリのIEでの表示不具合を修正しました。



マップ上にコメント付きで画像を配置できるGoogle App EngineアプリのIEでの表示不具合を修正しました。このアプリのIEでの表示調整をしていなかったので修正してみました。まだ不具合は残っていますが、大まかなところは表示できるようになりました。

地名と共に画像をアップすると、マップ上にコメント付きで画像を配置できるGoogle App Engineアプリを試してみました
http://vivo-design.blogspot.com/2011/07/google-app-engine.html


IETesterを使って表示を確認しました。IE5.5はGoogle Mapsの表示に不具合が残っています。IE6、IE7、IE8は問題なく表示されました。


IE9に関しては、IETesterで確認するとクラッシュしてしまうので、IE9単体で確認しました。問題ないようです。


このアプリを作成する際、IEでの表示不具合を修正する際、毎回のDeploy(デプロイ)時に、Googleアカウントとパスワードを入力するのが面倒でした。下記のサイトで、毎回のGoogleアカウントとパスワードの入力を不要にする方法を教えていただきました。

GAEサーバーにバッチで簡単デプロイ!
http://bit.ly/ozF72q


初回起動時だけ、Googleアカウントとパスワードの入力は必要ですが、それ以降は、パソコンを終了するまでは入力不要になります。バッチファイルをクリックするだけで、デプロイが完了するのでとても楽になりました。ありがとうございます。

2011/07/09

JavaのウェブアプリケーションフレームワークSpring Frameworkを試してみます。



SAStrutsの次に、JavaのウェブアプリケーションフレームワークSpring Frameworkを試してみます。Spring Framework 3.1を試します。SAStrutsについては、沢山の情報がありましたが、それに比べて、Spring Frameworkは日本語での情報が少ないように感じました。


SAStrutsと同様に、Eclipseプラグインを入れて、チュートリアル的なコンテンツがあれば、Spring Frameworkがどのようなものか分かると思います。しかし、SAStrutsでは、簡単に用意できた環境が、Spring Frameworkではなかなか用意できませんでした。

下記のサイトの記述を参考にSpringIDEプラグインを導入しました。

Springフレームワーク
http://w.livedoor.jp/w2u_dev/d/Spring%A5%D5%A5%EC%A1%BC%A5%E0%A5%EF%A1%BC%A5%AF

しかし、下記のエラーが出ます。
1 つ以上の必須項目が見つからないため、インストールを完了できません。
  Software being installed: SpringSource Tool Suite Runtime Error Analysis Support 2.6.0.201103161000-RELEASE (com.springsource.sts.runtimeerroranalysis.feature.group 2.6.0.201103161000-RELEASE)
  Missing requirement: SpringSource Tool Suite Runtime Error Analysis Support 2.6.0.201103161000-RELEASE (com.springsource.sts.runtimeerroranalysis.feature.group 2.6.0.201103161000-RELEASE) requires 'com.atlassian.connector.eclipse.jira.feature.group 0.0.0' but it could not be found


エラーメッセージから判断して、下記のプラグインをインストールしてみました。

http://download.eclipse.org/tools/ajdt/37/update


http://update.atlassian.com/atlassian-eclipse-plugin/e3.6/


さらに、色々調べてみると、SpringSource Tools Suite(STS)というものがあることが分かりました。エラーメッセージの中にも「SpringSource Tool Suite Runtime Error」という言葉があるので、SpringSource Tools Suite(STS)をインストールしました。

すると、SpringIDEプラグインのCoreだけはインストールすることが出来ました。

Eclipseの新規プロジェクトの選択肢の中にSpring関連のプロジェクトが用意されました。その中にSpringSource Tools Suiteもインストールされていました。


しかし、この後、チュートリアル的なコンテンツがどこにあるのかが分かりません。

Springの公式サイトにサンプルらしきものが公開されているので、これを試す方法から調べてみます。

https://src.springframework.org/svn/spring-samples/



2011/07/07

JavaのウェブアプリケーションフレームワークのSAStrutsを試してみました。



JavaのウェブアプリケーションフレームワークのSAStrutsを試してみました。


Javaのウェブアプリケーションフレームワークの比較を下記のページで教えていただきました。

Javaフレームワークの比較検討資料公開
http://d.hatena.ne.jp/t_yano/20081118/1227008018

このページの内容を拝見して、他のサイトも調べてみて、SAStruts、Spring Framework、Google Guiceなどに興味が出て来ました。どれも面白いそうです。どれも言葉ぐらいは聞いたことはありましたが、内容については、まったく知りませんでした。

この中から、まず、SAStrutsを試してます。Javaのウェブアプリケーションフレームワークとしては、Strutsはまだまだよく使われているとの情報をあちこちで見ました。SAStrutsは、Strutsを使いやすくしたものとの記述がありました。

Windows 7 で、SAStrutsの動く環境を用意します。

一番簡単に環境を用意するために、下記のパッケージを利用します。

Eclipse 3.7.0 Indigo Windows 32bit ベース / Pleiades All in One 3.7.0.v20110704
http://mergedoc.sourceforge.jp/

Eclipseが既に日本語化されていて、Tomcatも入っているので簡単です。

ダウンロードして解凍した「pleiades-e3.7-ultimate-jre_20110704」---「eclipse」フォルダの中にある「eclipse.exe」を起動します。

下記のページを参考に、eclipseにSAStrutsのプラグインをインストールします。

eclipseにSAStrutsのプラグインをインストール
http://ichitcltk.hustle.ne.jp/gudon/modules/pico_rd/index.php?content_id=2

次に、Super Agile Strutsチュートリアルの「sa-struts-tutorial-1.0.4-sp8.zip」をダウンロードします。

Super Agile Struts - Download
http://sastruts.seasar.org/download.html

次に、ダウンロードした「sa-struts-tutorial-1.0.4-sp8.zip」をセットアップします。

チュートリアルのセットアップ
http://ichitcltk.hustle.ne.jp/gudon/modules/pico_rd/index.php?content_id=3

「sa-struts-tutorial」プロジェクトのsrc/main/java/を展開して「tutorial.action」パッケージのIndexAction.javaを選択、 マウスの右クリックメニューより「SAStruts」→「サーバで表示」を選択します。

チュートリアルのトップページが表示されました。


プログラムも正常に動作しました。「足し算」プログラムを元に、引き算に修正してみました。



2011/07/04

地名と共に画像をアップすると、マップ上にコメント付きで画像を配置できるGoogle App Engineアプリを試してみました



地名と共に画像をアップすると、マップ上にコメント付きで画像を配置できるGoogle App Engineアプリを試してみました。

Google App Engine と Maps で作ったWebアプリのソースを公開されている方がいました。面白そうなソースなので、設置をして試してみました。このような動くサンプルを見せていただけると、とても良くGoogle App Engineの構造が分かります。感謝!

自分のアカウントでアップしてみました。Pythonの部分は1点のみ修正をしています。見栄えについては変更しました。

My Photo in Google Maps on GAE
http://vivo-map.appspot.com/maps


Pythonのソースの修正した部分について。ローカルで動作テストをすると、ジオコーディングは正常に動作するのですが、サーバ上に上げると、緯度経度の取得が出来ない現象がありました。サーバ上で何が起きているのかをステータスコードで確認をすると、「google.maps.GeocoderStatus.OVER_QUERY_LIMIT」というステータスを取得していることが分かりました。これは、「使用制限回数の上限を超えたことを示している」そうです。ローカルからのリクエストは問題なく、サーバからのリクエストで問題が起きるのが、よく分かりません。

ジオコーディングをしている下記の部分を変更してみました。
class PostPage(webapp.RequestHandler):

  def getGeometory(self, place):
    url = u"http://maps.google.com/maps/api/geocode/xml?address=%s&sensor=false" % urllib.quote(place.encode('utf8'))
    result = urlfetch.fetch(url)
    lat = 35.6895060 # 東京
    lng = 139.6917010 # 東京
    if result.status_code == 200:
      doc = xml.dom.minidom.parseString(result.content)
      if doc.getElementsByTagName('status').item(0).childNodes[0].data == "OK":
        lat = doc.getElementsByTagName('lat').item(0).childNodes[0].data
        lng = doc.getElementsByTagName('lng').item(0).childNodes[0].data

    return db.GeoPt(lat, lng)

Pythonのgooglemapsモジュールを使った検索にしてみました。内部では同じことをしているのだから、ダメかと思いましたが、サーバ上でも動作をしました。
# モジュールを追加
from googlemaps import GoogleMaps

class PostPage(webapp.RequestHandler):

  def getGeometory(self, place):
    gmaps = GoogleMaps()
    address = place.encode('utf8')
    lat, lng = gmaps.address_to_latlng(address)  

    return db.GeoPt(lat, lng)

でたらめな場所(地名/駅名/〒)の情報でも、何かしらの場所の緯度経度に変換をして地図にポイントをします。

下記の記事のソースを使わせていただきました。

Google App Engine と Maps でWebアプリ作ってみた
http://sakitake4.blogspot.com/2011/04/google-app-engine-maps-web.html?spref=tw


ありがとうございました。

人気の投稿 (過去 30 日間)