スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

無料クラウド(Windows Azure) & モバイル開発トレーニングに行ってきました1

お勉強を兼ねて、パソナテックが開催する無料クラウド(Windows Azure) & モバイル開発トレーニング ~Cloud Developer's Fieldに行ってきました。いくつか気になったことを忘れないようにメモ

クラウドアプリケーション開発体験
 ~Windows Azure入門編~
【プログラム】
  Windows Azure のポータルサイトの使用方法、 Visual Studio を使用したWindows Azure アプリケーションの開発方法、ならびにクラウド上へのアプリケーションの公開までについて演習

クラウドプラットフォーム運用管理体験
 ~Windows Azure管理・監視編~
【プログラム】
Windows Azure の管理機能 (API) を使用したアプリケーション管理やログ出力によるアプリケーション状態の監視方法について演習
  
クラウドアプリケーション開発体験
 ~クラウドデータベース(SQL Azure)入門編~
【プログラム】
クラウド DB・SQL Azure のポータルサイトの使用方法、 SQL Server Management Studio からの管理、ならびにアプリケーションからの使用方法について演習

PHP 開発者のためのクラウドアプリケーション開発体験
【プログラム】
  クラウドプラットフォームである Windows Azure Platform のアーキテクチャーや LAMP 環境との違いなどを解説。PHP によるクラウド アプリケーションの開発手法について、実際にキャンペーン サイトをクラウド上に構築する演習

Facebookアプリケーション開発体験
【プログラム】
Windows Azure 上に Facebook アプリを開発する方法を解説、演習
スポンサーサイト

テーマ : ひとりごとのようなもの - ジャンル : 日記

GoogleAppEngineでCRUDアプリを作成してみた 4

今回は"GeoOHash”について

DataStoreの制約で、クエリにおいては、
不等式フィルタが使用できるのは 1 つのプロパティに限られる
というものがある。そのため、
”自身の居場所に近い、近隣の情報を取得する”という要件に対し、緯度、経度の2つのプロパティを検索時に利用するロジックでは実現が難しいと考え、作成するアプリケーションに"GeoOHash"コードを使うことにした。

"GeoHash",地図上の矩形エリアをあるルールにしたがって,文字列化するという手法。
[0-9bcdefghjkmnpqrstuvwxyz]という32種類の文字列から構成される。
値が「短く」なると矩形エリアは「広く」,値が「長く」なると矩形エリアは「狭く」なります。Geohashには,先頭文字列が一致するGeohashの矩形エリアは,その一致している文字列が示す矩形エリアに内包されている,という特徴がある。
これによって、検索時に文字列の前方一致を行い,スポットの絞り込みをDataStore上でも簡単にできる。

各言語ごとにライブラリが用意されており、仕様に関する情報も豊富。

しかしながら肝心の要件に関する部分(自身の居場所に近い、近隣の情報を取得する)は、仕様に対して自身の理解がしやすいものがなかったので、ロジックを作りこんだ。



参考にしたURL:
位置情報サービスのはじめ方
http://gihyo.jp/dev/feature/01/location-based-services/0006?page=2

wikipedia
Geohashの仕様がよくわかる
http://en.wikipedia.org/wiki/Geohash

GeoHashのdecodeのアルゴリズムの解説します & ScalaのGeoHashライブラリを作ってみました
デコードのロジックがわかりやすく解説されている
http://d.hatena.ne.jp/yuroyoro/20100115/1263526125

位置情報を取得する仕組み
仕組みが全体的によくまとまっている
http://www.atmarkit.co.jp/fnetwork/rensai/ichijouhou01/01.html

実際にGeohashを試すことの出来るデモ
http://blog.masuidrive.jp/wp-content/uploads/2010/01/geohash.html

Geocoding.jp
住所やランドマーク名から経度、緯度を検索します。世界測地系(WGS84)に対応。
日本測地系(TOKYO97)っぽい座標出力、携帯用QRコード出力、Google Earth連携などが行えます。
http://www.geocoding.jp

XMLを読み込んでマーカーを表示する[jQuery]+[GoogleMapsAPIVersion3]
サンプルの位置情報中点出したりできるのが意外に便利
http://mspec.jp/blog/archives/67
http://mspec.jp/sample/gmap/gmap_sample06.html

LatLng2Distance
http://lab.uribou.net/ll2dist/

ヒュベニの距離計算式
http://h2caster.net/home/gpsandpda/hybeny.php

郵便番号と住所変換、距離計算APIなど
http://bluenotes.typepad.jp/technote/2009/01/api-01cc.html

測量計算
http://vldb.gsi.go.jp/sokuchi/surveycalc/

Google Maps API サービス
http://code.google.com/intl/ja/apis/maps/documentation/javascript/v2/services.html


Google Maps JavaScript API V3 - 基本
http://code.google.com/intl/ja/apis/maps/documentation/javascript/basics.html

緯度経度1度の距離
http://d.hatena.ne.jp/Kiske/20090324/1237894846

Google Maps 活用講座
http://googlemaps.googlermania.com/





テーマ : ひとりごとのようなもの - ジャンル : 日記

GoogleAppEngineでCRUDアプリを作成してみた 3

今回は、”静的ファイルのアクセスについて”

なぜかpngファイルが読み込めない。

appengine-web.xmlの設定が必要だった模様。
static-files.jpg

設定後は読み込めるようになった。

参考書籍
Google App Engine 【実戦】クラウドシステム開発
p92?p95 アプリケーションの設定

テーマ : ひとりごとのようなもの - ジャンル : 日記

GoogleAppEngineでCRUDアプリを作成してみた 2

今回は”ソート順の指定(Java データストアのインデックスの設定)について”
一覧表を出す画面においてローカルでは動作するが、GAE/J環境でエラーになってしまう。
どうやら、ソート条件に対するindexがないと怒られている模様。

indexなしエラーログ

ぐぐったところ、解決策を見つけた

ローカルでは動作するが、GAE/J環境でエラーになってしまう
https://groups.google.com/group/slim3-user-japan/browse_thread/thread/f626b107b12b3d71?hl=ja


上記サイトを参考に、WEB-INF/appengine-generatedに datastore-indexes-auto.xmlをベースに
WEB-INF/datastore-indexes.xmlをつくり、 再度deploy
してみた。
(変更点はautoGenerate="true"を追加したのみ)
datastore-indexes.jpg

無事、目的のindexが作成されたことを確認。
index確認画面

GAE/J環境でも一覧表が出ることを確認できた。
indexといっても3つの種類があり、compositeインデックスはxmlに設定を切らないと自動に作られないのか。
知らなかった。。。

その他参考サイト
Java データストアのインデックスの設定
http://code.google.com/intl/ja/appengine/docs/java/config/indexconfig.html

クエリとインデックス
http://sites.google.com/site/slim3documentja/documents/slim3-datastore/queries-and-indexes#TOC-8

Datastoreによるクエリの実装
http://d.hatena.ne.jp/kazunori_279/20090617/1245223665

シングルプロパティインデックスとコンポジットインデックスの図
http://d.hatena.ne.jp/kazunori_279/20091111/1257937603


2つのインデックス「シングルプロパティ」「コンポジット」
http://www.atmarkit.co.jp/fjava/rensai4/bigtable03/02.html

ここが大変だよBigtableとGoogle App Engine
http://www.atmarkit.co.jp/fjava/rensai4/bigtable03/01.html

参考書籍
Google App Engine 【実戦】クラウドシステム開発
p135,136,137 4.3 インデックス

テーマ : ひとりごとのようなもの - ジャンル : 日記

GoogleAppEngineでCRUDアプリを作成してみた 1

GoogleAppEngineでCRUDアプリを作成してみたので、その際の留意点を忘れないようにメモ。
多少長くなる可能性があるので何回かに分けようと思います。
今回は”GoogleAppEngineとタイムゾーンについて”
GAEのサーバー時間はUTC(協定世界時)だそうです。なので、日本時間で日付の比較等を行う場合は注意することが必要。
そのままだと、日本と比べると9時間程度遅くなってしまいます。
ググるといくつか情報が出てきますが、やってみるとちょっとハマった部分もあるのでメモ。

?TimeZoneのデフォルトセットなし

DefaultTimeZone指定なしprogram

ログ
DefaultTimeZone指定なしログ

formatしたものだけ日本時間になった。しかし、その値をもとにparseするとUTCになってしまう。これだとDate型やCalender型での比較ができない。


?TimeZoneのデフォルトセットあり

DefaultTimeZone指定ありprogram

ログ
DefaultTimeZone指定ありログ

すべて日本時間になった。Date型やCalender型での比較(compareTo)が可能。


参考にしたサイト:
・日付がUTCになってずれてしまう
http://tronic.blog72.fc2.com/blog-entry-77.html

・GAE/J の現在時刻取得を日本時間で
http://blog.zaq.ne.jp/oboe2uran/article/475/

・GoogleAppEngineとタイムゾーン
http://rest.xrea.jp/blog/2009/09/07/googleappengine%E3%81%A8%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%BE%E3%83%BC%E3%83%B3.html

・日本標準時
http://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E6%A8%99%E6%BA%96%E6%99%82




テーマ : ひとりごとのようなもの - ジャンル : 日記

プロフィール

ogatomi

Author:ogatomi
部署移動に伴い、SE8年目にしてホストマシーンからオープン系システムの転身。
一からの勉強しなおしの記録を出来る範囲でブログにつづりたいと思います。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
全記事表示リンク

全ての記事を表示する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。