sola's note -17ページ目

sola's note

日ごろのメモを書いていきます。何か新しいものを作るために。

現在Androidで何かしたい人 を募集しています。

主な目的(目標)はAndroid市場の開拓ですが、
詳細は上記リンク(前回ブログ)をご参照ください。


さて、
久しぶり(?)にGAE。

これからもぶち当たった小ネタを書いていけたらと思いますが、
今回はロガーについて。

デバッグ等の情報として大変有効なログ。
出力の仕方としては

log.info("hoge開始");



e.printStackTrace(System.err);

などがあります。
正確には上記インスタンス(またはメソッド)は

Logger log = Logger.getLogger(Hoge.class.getName());



Throwable.PrintStackTrace()

です。


…が


これだけではいけなくて、
WEB-INFOフォルダ配下の

logging.properties

ファイル内の

# Set the default logging level for all loggers to WARNING

以下の部分にログレベルを適用したいパッケージ名を記述します。

hogepackage.level = INFO

記述方法としては

「パッケージ名.level = INFO」

となります。
ファイルに定義を追加した後は、
記述したパッケージ内のJavaファイルに

Logger log = Logger.getLogger(Hoge.class.getName());

等を定義し、

log.info("hoge終了");

と記述すればいけます。


最初にも書きましたがAndroidの開発を少しずつやろうと思い、
とりあえず入口にと本買ってみました。

入門 Android 2 プログラミング (Programmer’s SELECTION)/Mark Murphy
¥3,360
Amazon.co.jp
同志探しをします。

まだ詳細は未定ですが、同志探しを行います。
結構真面目に。

以下内容です。

AndroidOSのアプリを開発してくれる人を探しています。(探そうと思っています。)
Androidのアプリ開発したことあるよって人ややってみようとしている人、
自己満足で終わらせたくない人、いませんか。

詳細な条件は次の通りです。

・Javaの開発経験がある人。またはAndroidアプリの開発経験or体験がある人。
 →開発に必要なので。
・自己投資出来る人。
 →自分を高める事に惜しみない人の方が気が合うので。
・頼らない人。
 →教えたいor教えてもらいたいのではなく、あくまで同志を募集しているので。
・独学出来る人。
 →上のと関連していますが、自分で開拓出来ないと始まらないので。
・一定の時間を作れる人。
 →開発のために適当な時間が必要なので。
・競争心が強い人。
 →単に開発がしたいのではなく、あわよくば頭角を現したいので。
・頑張れる人。
 →結果が直ぐに出なくても耐えて頑張れる人を求めているので。
・正直に話せる人。
 →信頼をするために必要なので。
・威張らない人。
 →技術の有無や年齢で立場を決めたくないので。
・関東(出来れば神奈川)に在住の人
 →本格的にやるためには会う必要があるので。

偉そうに書いていますが、上記に当てはまらないと嫌だとかというわけではなく、
志が近い人を探す事で、出来る限り円滑にやっていく事を考えています。

ちなみに、

思い立ったが吉日

のノリに近いので、当方にコネや基盤はありません。
Androidに関して簡単な市場調査等、フィージビリティを見ている程度です。
これから徐々にコミュニティや色々な場で
同志探しを始めていこうとしているところです。

ちなみに当方は

・社会人2年目(PG~SE)
・Java開発経験若干(オフショア開発1年、Java開発2ヵ月)
・資格は持っているので国家資格の応用情報技術者程度(他は挙げる程ではないので省略)
・趣味でGAE(Google App Engine for Java)でWebサイトの構築を少しかじった事有り。

といった感じです。
目的(目標)としては、Androidアプリの市場開拓をしていくというのが第一目標です。
なので当方はそこまでAndroidのアプリ開発自体に重点を置くつもりはありません。
(「開拓」が目的で「開発」が目的ではないです。)

この場ではこれ以上細かく書くと長くなってしまうので割愛しますが、
興味がありましたらメッセージ下さい。

恐らく手順的には
1.認識合わせ(メッセージ等)
2.面会
3.打ち合わせ(face to face)
の三回位の手順を開発前に踏むと思います。

上記三回で意見の相違や認識の違い、または志の違いがないか等を確認し、
協力出来そうでしたら、次の話になるかと思います。

よろしくお願い致します。
以前の
Google App Engineのセッションスコープ
の続き

といってもまとめに過ぎないのだけれど。

GAE/Jにはデータストアより簡単にデータを出し入れできるものがある。
タイトルにも挙げている通り、
MemcacheServiceというもので、
キャッシュの役割をする。
ただし、サーバ側がベース。

要点的には
・異なるインスタンスのデータは共有される
・有効期限が指定通りにならない場合がある

くらいか。

まず
・異なるインスタンスのデータは共有される

これはクライアントの状態がどうこうとかは関係なく、
複数個所で

MemcacheService memcacheService = MemcacheServiceFactory.getMemcacheService();

の処理により、memcacheのインスタンスを生成すると、
インスタンスが異なってもインスタンスが保持する情報は共有され、同じものとなる。

スコープがセッションと違うのでこの点だけは特に注意
セッションと同じ感覚で使用すると、ユーザ同士の情報が混ざったりする。

主に共用性の高いデータに向いている。

次に
・有効期限が指定通りにならない場合がある

memcacheはメモリの容量が大きくなってくると、
自動的に制御を行う事があるそうで、
put時等に有効期限を設定できるものの、
予定通りに動作しない場合があるそう。

参考までに、有効期限は↓のように設定するみたい。

hoge = "hoge";
memcacheService.put("hoge",hoge,Expiration.onDate(new Date()));

※引数の三つ目はExpiration型を入れるみたいですが、
やったことないので詳しくはここ を参考に。

セッションとの使い分けが必要だね。