自己紹介

自分の写真
最近、iphoneアプリをリリースしました。
UxU
無料アプリですので、是非遊んで下さい。 第二弾アプリ:工場夜景写真集 今後も色々なアプリをリリースしていく予定です。
次は、コスプレ or 漫画 or 騎乗日記

2009年12月30日水曜日

投資信託

今日、年末ということで
2つ新たに「投資信託」を始めました。
まだ、サブプライムの影響で安いというのと
最近、保険年金に本当に入ろうかと検討したところ、
長く預ける割に金利が低いということに気がつきました。
年利:1.25%でした。

確かに、タンス貯金(もしくは、銀行に預けている)だけなら
その方がずっとお得な商品なのですが、
積極的に運用している人にとっては・・・という感じです。

そして、2010年から積極的に投資をしていきたいので、
さっそく、外国の投資信託に預け入れしてきました。

皆さんも積極的に資金運用して経済を活発に刺激していきましょう!
ネットで、2010年必ず来ると思われているのが、「クラウド」でしょうね。

それで足元すくわれるのが、ハウジング・ホスティングサービス(データセンター)を行っている会社かも
しれないですね。

Amazon EC2/S3を利用するとコストを非常に落とす事が可能となりますし、

これからWEBシステムを作成したい方にお勧めなのが、Google App Engineです。
保守がほとんど要らないので、社内SE等がいない会社で、
Webサービスをしたい会社様にはもってこいだと思います。
クラウドを利用するとサーバを自前で用意することがなくなります。
ということは、データセンターの利用が減るってことに繋がると思いませんか?

私は、そう思うので、今[google app engine]を勉強しているのです。

2009年12月28日月曜日

JCacheについて

毎回同じデータを呼ぶ際は、データベースにアクセスするよりも
メモリ上からデータを取得する方が圧倒的に早いので、
JCacheというものを利用する。
裏にあるエンジンは、[Memcache]である。

実際には、どのように使うのかというと、
私の場合は、キャッシュデータがない時だけ、マスタデータを呼び出して、設定することにしている。

----------
CacheManager manager = CacheManager.getInstance();
Cache cache = manager.getCache(GaeUtil.getUniqueKey());
if(cache == null){
      //キャッシュがない場合、マスタを取得して設定する
Query qeyLM = pm.newQuery(LessonMaster.class);
qeyLM.setOrdering("level asc");
List lessonList = (List) qeyLM.execute();

JCacheBean cBean = new JCacheBean();
Map dataLesson = Maps.newLinkedHashMap();

for (LessonMaster l : lessonList)
{
dataLesson.put(l.getId(), l.getLessonName());
}
cBean.setLessonMap(dataLesson);
//データ設定
cache.put(JCacheBean.CACHE_KEY, cBean);
//キャッシュ登録
manager.registerCache(GaeUtil.getUniqueKey(), cache);
}

※キャッシュにセットするクラスは、java.io.Serializable をインターフェイスを実装したクラスである
必要があります。

2009年12月24日木曜日

管理者メニュー

~管理者限定のページの作り方~
1.web.xmlでアクセス制限を架ける
2. com.google.appengine.api.users.UserServiceクラスのisUserAdmin()メソッドを使用する

1. 具体的な方法
  <security-constraint>
<web-resource-collection>
<web-resource-name>manager</web-resource-name>
<url-pattern>/manager/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name></auth-constraint>
</security-constraint>

上記で[/manager/以下のフォルダまたはファイルは管理者のみアクセスを有効とする
という設定となる。

2.具体的な方法

<%
 PersistenceManager pm = PMF.get().getPersistenceManager();
UserService userService = UserServiceFactory.getUserService();
if (userService.isUserAdmin())
{
%>

<input type="button" value="管理メニュー" />   

<%
}
%>

上記の方法で、管理者がアクセスしてきた時のみ、ボタンを表示するということになる

2009年12月21日月曜日

logの設定

appengine-web.xmlファイル上に、

<system-properties>
<property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
</system-properties>

と設定して、

logging.properties
logを出したいパッケージを書く。
例:jp.co.xxx.sampleServeltがあるとした場合、

jp.co.xxx
.level = INFO
と記述する事で、info以上のlogが出力されます。

たまに、eclipseで「自動的にビルド」しているとビルドしていない場合が
あるので、クリーンもしましょう!

2009年12月20日日曜日

indexについて

サイト上では、「アプリケーションの WAR 内の WEB-INF/ ディレクトリに格納されている datastore-indexes.xml 」があると書かれているのですが・・・
そのファイルが見つからないので、
「アプリケーションの WAR 内の WEB-INF/appengine-generated/ ディレクトリに datastore-indexes-auto.xml」を作成して解決。


自動生成されるはずでは・・・まぁ、indexを作成できるので問題は回避できましたが。
なぜ、自動作成できないの???

参照URL

2009年12月19日土曜日

Google app engine上でSSL

SSL通信をGoogle app engine上で行うとすると、*.appspot.com上でないと「Forbidden」エラーが出ます。

早く、Gppgle Appsドメインでも可能としてもらいたい

設定は、web.xml
<security-constraint>
<web-resource-collection>
<!-- /ssl/フォルダ(パス)以下をHTTPS通信を行う -->
<url-pattern>/ssl/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>

あと、appengine-web.xml
<ssl-enabled>true</ssl-enabled>

以上で、https://***.appspot.com/ssl/ssl.html等にアクセスするとSSL通信が可能となります。

参考URL

2009年12月16日水曜日

jQuery validate

HTML上で入力チェックを行う際にすごく役立ちます。
というか、jQueryはすごいね!
jQuery UI で デザイナー要らずだし、jQueryでajaxのコーディングが5分の1くらいにもなる。

で、今回は「jQuery Validater」を取り上げます。

日本語化セットもあるので、そちらを参照ください。

さらに、
スタイルシート内で
「 label.error { float: none; color: red; padding-left: .5em; vertical-align: top; }」
と入れる事でエラーのフォントを変える事が可能です。
上記のサイトでは、required(必須) 、email(eメール)、minlength(最小文字数)を取り上げて
いますが、他にもmin(最小数値)やdateISO(日付)、creditcard(クレジットカード番号)もあります。

jQueryValidate

初投稿

ついに、ブログを開始しました。