DatePickerのvalueが12:00に。
GWT1.7.1からGWT2.0.0で、DatePickerから取得するDateの値が変わっている。
2009/12/10を選択した場合、
GWT1.7.1では、Thu Dec 10 00:00:00 JST 2009
GWT2.0.0では、Thu Dec 10 12:00:00 JST 2009
サマータイムの関係で、日付が1日ずれてしまうバグを修正する際に、
正午は影響を受けないため、時間を12:00にするようにしたらしい。
http://code.google.com/p/google-web-toolkit/source/detail?r=5218
夜中の0時が渡されていたのでそのまま使っていたため、おかしな挙動になってしまった。
日付選択なので、確かに時間は保証されていないよね。
勝手な解釈をした自分に反省。。。
GWT2.0リリース
待ってました!!
http://googlewebtoolkit.blogspot.com/2009/12/introducing-google-web-toolkit-20-now.html
GWT1.xと起動オプションが変わったこともあり、
Eclipseプラグインアップデートしても、GWT1系が使えるのかちょっと不安。。。
メンテナンスは?
日本時間で、2009/12/2 10:00〜予定されていたDataStoreのメンテナンスがなかった。。
- Tuesday, December 1st, 5:00 PM Pacific Time
告知もないし、なんだろう。。
GAE上でGWTのファイルをキャッシュさせる方法。
GWT(Google Web Toolkit)でコンパイルされたXXX.cache.YYYファイル。
コンパイルするたびにファイル名がかわるため、クライアント側で永久的にキャッシュさせるべきだとあります。
InfoQでFilterのサンプルとあわせて解説があります。
InfoQ: GWTでAjaxのパフォーマンスを向上させる:
http://www.infoq.com/jp/articles/gwt-high-ajax
これをGAE(Google App Engine)上でする場合は、appengine-web.xmlの
GWTファイルが静的ファイルとして扱われ、さらにExpiresヘッダに1年後がセットされるため、
明示的にユーザがリロードしない限り、サーバへリクエストしなくなります。
expiration属性については、
http://code.google.com/intl/en/appengine/docs/java/config/appconfig.html#Static_Files_and_Resource_Files
を参照。
QuotaDetailからデータ取得
現在のQuotaの状態を、取得してグラフにしたい。
手っ取り早く、Bookmarkletを作ってみた。
※Firefox限定
QuotaDetail[Key]
CPU Timeなどの値を取得する。
表を作成する際に使用する。
javascript:(function(){var%20XPATH_KEY%20%3D%20%22/html/body/div/div%5B3%5D/div%5B2%5D/div/div/table/tbody/tr/td%5B1%5D%22%3Bvar%20result%20%3D%20%22date%5Cn%22%3Bvar%20iterator%20%3D%20document.evaluate%28XPATH_KEY%2C%20document%2C%20null%2C%20XPathResult.ANY_TYPE%2Cnull%29%3Bwhile%28elmKey%20%3D%20iterator.iterateNext%28%29%29%20%7B%20%20result%20+%3D%20elmKey.innerHTML.trim%28%29%20+%20%22%5Cn%22%3B%7Dalert%28result%29%3B})();
var XPATH_KEY = "/html/body/div/div[3]/div[2]/div/div/table/tbody/tr/td[1]"; var result = "date\n"; var iterator = document.evaluate(XPATH_KEY, document, null, XPathResult.ANY_TYPE,null); while(elmKey = iterator.iterateNext()) { result += elmKey.innerHTML.trim() + "\n"; }alert(result);
QuotaDetail[Value]
実際の値(数値)を取得する。
1行目は、取得した日時。
javascript:(function(){var%20XPATH_KEY%20%3D%20%22/html/body/div/div%5B3%5D/div%5B2%5D/div/div/table/tbody/tr/td%5B4%5D/span%22%3Bvar%20now%20%3D%20new%20Date%28%29%3Bvar%20result%20%3D%20now.getFullYear%28%29%20+%20%22/%22%20+%20%28now.getMonth%28%29+1%29%20+%20%22/%22%20+%20now.getDate%28%29%20+%20%22%20%22%20+%20now.getHours%28%29%20+%20%22%3A%22%20+%20now.getMinutes%28%29%20+%20%22%3A%22%20+%20now.getSeconds%28%29%3Bvar%20iterator%20%3D%20document.evaluate%28XPATH_KEY%2C%20document%2C%20null%2C%20XPathResult.ANY_TYPE%2Cnull%29%3Bwhile%28elmKey%20%3D%20iterator.iterateNext%28%29%29%20%7B%20%20result%20+%3D%20elmKey.innerHTML.trim%28%29.split%28%22of%22%29%5B0%5D.trim%28%29%20+%20%22%5Cn%22%3B%7Dalert%28result%29%3B})();
var XPATH_KEY = "/html/body/div/div[3]/div[2]/div/div/table/tbody/tr/td[4]/span"; var now = new Date(); var result = now.getFullYear() + "/" + (now.getMonth()+1) + "/" + now.getDate() + " " + now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds() + "\n"; var iterator = document.evaluate(XPATH_KEY, document, null, XPathResult.ANY_TYPE,null); while(elmKey = iterator.iterateNext()) { result += elmKey.innerHTML.trim().split("of")[0].trim() + "\n"; } alert(result);
QuotaDetail[Percent]
各Quotaのパーセントを取得する。
1行目は同じく日時。
javascript:(function(){var%20XPATH_KEY%20%3D%20%22/html/body/div/div%5B3%5D/div%5B2%5D/div/div/table/tbody/tr/td%5B4%5D/span%22%3Bvar%20now%20%3D%20new%20Date%28%29%3Bvar%20result%20%3D%20now.getFullYear%28%29%20+%20%22/%22%20+%20%28now.getMonth%28%29+1%29%20+%20%22/%22%20+%20now.getDate%28%29%20+%20%22%20%22%20+%20now.getHours%28%29%20+%20%22%3A%22%20+%20now.getMinutes%28%29%20+%20%22%3A%22%20+%20now.getSeconds%28%29%20+%20%22%5Cn%22%3Bvar%20iterator%20%3D%20document.evaluate%28XPATH_KEY%2C%20document%2C%20null%2C%20XPathResult.ANY_TYPE%2Cnull%29%3Bwhile%28elmKey%20%3D%20iterator.iterateNext%28%29%29%20%7B%20%20var%20data%20%3D%20elmKey.innerHTML.trim%28%29.split%28%22of%22%29%5B0%5D.trim%28%29%3B%20%20var%20max%20%3D%20elmKey.innerHTML.trim%28%29.split%28%22of%22%29%5B1%5D.trim%28%29.split%28%22%5Cn%22%29%5B0%5D%3B%20%20result%20+%3D%20100*data/max%20+%20%22%5Cn%22%3B%7Dalert%28result%29%3B})();
var XPATH_KEY = "/html/body/div/div[3]/div[2]/div/div/table/tbody/tr/td[4]/span"; var now = new Date(); var result = now.getFullYear() + "/" + (now.getMonth()+1) + "/" + now.getDate() + " " + now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds() + "\n"; var iterator = document.evaluate(XPATH_KEY, document, null, XPathResult.ANY_TYPE,null); while(elmKey = iterator.iterateNext()) { var data = elmKey.innerHTML.trim().split("of")[0].trim(); var max = elmKey.innerHTML.trim().split("of")[1].trim().split("\n")[0]; result += 100*data/max + "\n"; } alert(result);
QuotaDetail[All]
上記3つを続けて実行。
javascript:(function(){var%20XPATH_KEY%20%3D%20%22/html/body/div/div%5B3%5D/div%5B2%5D/div/div/table/tbody/tr/td%5B1%5D%22%3Bvar%20result%20%3D%20%22date%5Cn%22%3Bvar%20iterator%20%3D%20document.evaluate%28XPATH_KEY%2C%20document%2C%20null%2C%20XPathResult.ANY_TYPE%2Cnull%29%3Bwhile%28elmKey%20%3D%20iterator.iterateNext%28%29%29%20%7B%20%20result%20+%3D%20elmKey.innerHTML.trim%28%29%20+%20%22%5Cn%22%3B%7Dalert%28result%29%3Bvar%20XPATH_KEY%20%3D%20%22/html/body/div/div%5B3%5D/div%5B2%5D/div/div/table/tbody/tr/td%5B4%5D/span%22%3Bvar%20now%20%3D%20new%20Date%28%29%3Bvar%20result%20%3D%20now.getFullYear%28%29%20+%20%22/%22%20+%20%28now.getMonth%28%29+1%29%20+%20%22/%22%20+%20now.getDate%28%29%20+%20%22%20%22%20+%20now.getHours%28%29%20+%20%22%3A%22%20+%20now.getMinutes%28%29%20+%20%22%3A%22%20+%20now.getSeconds%28%29%20+%20%22%5Cn%22%3Bvar%20iterator%20%3D%20document.evaluate%28XPATH_KEY%2C%20document%2C%20null%2C%20XPathResult.ANY_TYPE%2Cnull%29%3Bwhile%28elmKey%20%3D%20iterator.iterateNext%28%29%29%20%7B%20%20result%20+%3D%20elmKey.innerHTML.trim%28%29.split%28%22of%22%29%5B0%5D.trim%28%29%20+%20%22%5Cn%22%3B%7Dalert%28result%29%3Bvar%20XPATH_KEY%20%3D%20%22/html/body/div/div%5B3%5D/div%5B2%5D/div/div/table/tbody/tr/td%5B4%5D/span%22%3Bvar%20now%20%3D%20new%20Date%28%29%3Bvar%20result%20%3D%20now.getFullYear%28%29%20+%20%22/%22%20+%20%28now.getMonth%28%29+1%29%20+%20%22/%22%20+%20now.getDate%28%29%20+%20%22%20%22%20+%20now.getHours%28%29%20+%20%22%3A%22%20+%20now.getMinutes%28%29%20+%20%22%3A%22%20+%20now.getSeconds%28%29%20+%20%22%5Cn%22%3Bvar%20iterator%20%3D%20document.evaluate%28XPATH_KEY%2C%20document%2C%20null%2C%20XPathResult.ANY_TYPE%2Cnull%29%3Bwhile%28elmKey%20%3D%20iterator.iterateNext%28%29%29%20%7B%20%20var%20data%20%3D%20elmKey.innerHTML.trim%28%29.split%28%22of%22%29%5B0%5D.trim%28%29%3B%20%20var%20max%20%3D%20elmKey.innerHTML.trim%28%29.split%28%22of%22%29%5B1%5D.trim%28%29.split%28%22%5Cn%22%29%5B0%5D%3B%20%20result%20+%3D%20100*data/max%20+%20%22%5Cn%22%3B%7Dalert%28result%29%3B})();
で、今思ったのは
Excelにするなら列と行を逆にすればよかった。。
あとでやろー。
Friend Feed登録!
id:daisuke-mさんに、Friend Feedを教えてもらい、早速登録してみた!
です。
こちらはkacchi123ではありません。kacchiです。
でも別人じゃありません。
ROMにならないようにしなければ・・
OSXでDB2
なんで急に調べてみたんだろう。
そして、なぜ先月リリースされてしまっているのだろう。。。
http://antoniocangiano.com/2008/12/19/download-db2-on-mac/