2011年12月9日

App Engineで課金を出来るだけ少なくする方法

下のブログを見て、ほぉーと思ったのでメモ。
 Google Developer Day 2011 Japan: 「App Engine 最新機能」 | Google Japan Developer Relations Blog 

48分もある動画だったので、飛ばしながら観ていたらGoogleの松尾さんが「このセッションで最も重要な事」と言われている部分(20:00辺り)があった。

「App Engineで課金額を気にする人は今すぐこの設定をして下さい。」と言われているので、早速やっておいた。

管理画面に入って、「Application Settings」を開くと下の2つのスライダーがある。


  • 「Max Idle Instances」を最小(1)にする。 
  • 「Min Pending Latency」を最大(15s)にする。 


これで課金が最小になるとの事。

その後それぞれのスライダーの意味の説明を聞いて、確かになるほどなと思った。 

ただし、プロダクションで使っている重要なアプリケーションの場合はこの設定を適用するのは慎重にした方が良いらしい。

趣味で作っているサイトであればこれで特に問題は無いだろうと思う。











2011年11月23日

Android: Theme.Dialogを適用したアクティビティを最大化して表示したい時は

マニフェストファイルに下の様に書くだけでアクティビティがダイアログ風に表示されるのはとても便利。
<activity android:label="Help" android:name=".WebViewActivity"   android:theme="@android:style/Theme.Dialog">
</activity>
ただ、これで表示されるダイアログの大きさは、その中に表示する内容によって変わる。 

たまたま、WebViewとButtonをFrameLayout上に配置して幅・高さともにfill_parentを指定した時に、内容が見えないくらいにダイアログが小さくなってしまって困った。

 こんな感じになってしまう。


検索したらやっぱり同様に困っていた人がいた。
android - How can I get a Dialog style activity window to fill the screen? - Stack Overflow
ここにある通り、onCreate内でsetLayoutをすれば意図した通りダイアログが最大化されて表示された。


こんな感じで一件落着。

ついでに、ダイアログのタイトルバーが不要なので消したい。

まず、res/values/styles.xmlファイルを作る。

あとはマニフェストで @android:style/Theme.Dialog の代わりに @style/Theme.MyDialog を指定すればOK。













2011年11月5日

IIS 6.0でASP.NET MVCアプリケーションを動かす方法

ASP.NET MVCのアプリケーションでは基本的にURLは拡張子無しになる。

http://www.example.com/myapplication/Home/

ところが、AS.NET MVCアプリケーションをただサーバーにデプロイしただけだとIIS6では上のURLは404エラーになってしまう。

そこで、IISの設定を少し変更する必要がある。

Deploying ASP.NET MVC to IIS 6
 http://blog.stevensanderson.com/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/

このブログには4つの方法があると書かれている。

方法1.aspnet_isapi.dllへのワイルドカードマッピングを追加する。

方法2.全てのURLに.aspxの拡張子を付け、ルーティングで制御する。

方法3.全てのURLに独自の拡張子を付け、ルーティングで制御する。

方法4.URLリライトを行う。



2と3はURLが格好悪くなるので避けたい。4の方法はちょっと設定が面倒そうだ。という事で1の方法を使う事にした。

ただし1の方法だと画像など静的なファイルも全てASP.NETが処理してしまうので、パフォーマンス的に不利になるとの事。

そこで次の対策も必要になる。
Overriding IIS6 wildcard maps on individual directories
http://blog.codeville.net/2008/07/07/overriding-iis6-wildcard-maps-on-individual-directories/
ここに書かれてある方法でサブディレクトリ単位でワイルドカードマッピングを適用しない様に設定出来るとの事。

これでとりあえずやって見ようと思う。


最後におまけで方法5も載っていた。

それは、

「Windows Server 2008に移行してII7を使う。」

確かに、それが一番!(笑)