AppEngineのweb.xmlでxmlのコメントで日本語文字列を使う

文字コードをWindows-31Jにすればok UTF-8は文字化けする

AppEngineのログをダウンロードするgreasemonkeyスクリプト

@pto_developerさんが公開しているGoogle App Engine Log Downloader for Greasemonkeyがなかなかいい感じです。ダウンロードってどうやって?と思ったらテキストボックスに画面のHTMLを解析して1リクエスト1行で出力してくれるようです。

appengine ja night #4に行ってきた。 #appengine #ajn4

今回からappengine java night 改めjava以外の方々にも来て頂きたいとの思いからappengine ja nightという名前にイベント名が変わりました。今年もappengineじゃないと!(ja night)って事でよろしくお願い致します。 今年の第一回目からはやくもpython,php,r…

AppEngineでCounterを実装する(2) #appengine #slim3

前回のエントリーはバグってました。修正版をアップします。 単純なカウンター import java.io.Serializable; import java.util.ConcurrentModificationException; import java.util.Date; import java.util.logging.Level; import java.util.logging.Logger…

ConcurrentModificationExceptionになったTransactionオブジェクトはrollbackが必要か?また、そのまま再利用はできるのか? #appengine

ConcurrentModificationExceptionになったTransactionオブジェクトはrollbackは不要 再利用は不可、新規にbeginTransactionが必要。 という訳で上記のエントリーのソースにはトランザクション処理に誤りがありました。 Key key; @Before public void setup()…

AppEngineでCounterを実装する #appengine #slim3

※本エントリーのソースには誤りがありました。修正版はこちらCounterの実装に興味がある人がいるようですのでアップしておきます。 仕様は increment()でカウントアップ カウントは日毎に持つ clear()でカウントを0に戻す 単純なカウンター import java.io.S…

javaのenumを定数クラスだけに使わないでより良い使い方を学ぶ

enumは型安全な列挙定数が作れるこれですね。 public enum Sample { HOGE, FOO, BAR, } enum basics - しげるメモによるとenumってクラス本体にメソッド定義できるんですね。 public enum Sample { HOGE, FOO, BAR, ; // セミコロンで区切る public boolean …

appengine java night #3に行ってきた。 #appengine #ajn3

いやー今回も濃くておもしろかったですね。こんな濃い人が集まるApp Engine勉強会はたぶん日本でここが一番なんじゃないかと思います。 ソースを見るなり質問が飛ぶ飛ぶ!しかも普通の質問じゃないんですよね。裏でクラウドがどういう風になっているかを話し…

#slim3 のドキュメント日本語訳

id:bufferingsさんがありがたいことに翻訳してくれた。 http://d.hatena.ne.jp/bufferings/20091123/1258983438 slim3を使わない人でもappengineの特性が記載してあって良いドキュメントになっているのでappengineを使う人は必読ですよ。 いくつか知らなかっ…

アンパンマンの曲をギターで弾くためにTAB譜を教えてもらいました メモ

子供がアンパンマンが好きなので親がギターで弾いてあげれたら素敵だな!ということで楽譜を探していましたが、なかなか見つからず、そこでtwitterでつぶやいたら下記の2つのサイトを教えてもらいました。 というメモ J-Total Music−アンパンマンのマーチ(…

javascriptの通称サイ本(初めてのJavaScript 第2版)が2009年11月28日 発売予定

定番書『初めてのJavaScript』の改訂第2版。本書では基礎固めとしてまずこの言語の基本的な構文や機能を、数多くの実例を通して学びます。後半の章では最新のWeb開発テクニックを例に、標準に準拠したWebサイトを構築するための正しいコーディング手法を解説…

GAEのログにおける時刻表示のタイムゾーンをPSTからローカルのものに変換するスクリプト #appengine

greasemonkeyスクリプトでログの日付を現地時間で表示するスクリプトを公開されています。これは便利ですね。 GAE Log Timezone Adjusterを更新しました - やればできる子の日記

iPhoneのフリック入力で早く入力するために

106 名前:iPhone774G:2009/10/03(土) 19:24:39 ID:/CZPKpa+0 フリックって例えば、「かかし」って打つ時、最初の「か」はどうやって確定するの? 111 名前:iPhone774G:2009/10/03(土) 19:53:12 ID:oNoQoCj70 >>106 1.「か」を押して一度指を離す(ここで…

#appengine にてMailAPIのOverQuotaExceptionを発生させてみた。

エラー内容は下記 org.slim3.controller.Controller runBare: The API call mail.Send() required more quota than is unavailable. com.google.apphosting.api.ApiProxy$OverQuotaException: The API call mail.Send() required more quota than is unavail…

GAE/Jでロールバックを実装する(2)#appengine

前回はJDOでしたが、slim3がJDOではなくなったので新しいDatastore版を作りました。前回と異なるのは保存元のモデルをEntityGroupのルートエンティティにしてBackupをEntityGroupに加えたことです。以前まではEntityGroupの考え方がわかっておらず、こんな時…

#appengine のDataviewerでNo Data Yet.

データを大量に削除しまくった後にDataviewerを見たら下記のメッセージが出てて、全部消えたのかと思ってあせった。。。 特定のKindしか削除していないのにDataviewerからは何も検索がヒットしなくなった。どういう仕組みなんだろう?アプリからはちゃんと検…

#appengine で一回に削除できる件数って500件だったんだ。

DatastoreService#delete(Key akey[]);で500を超えるKEYを引数に渡すと以下のエラーが出た。 org.slim3.controller.Controller runBare: cannot delete more than 500 entities in a single call java.lang.IllegalArgumentException: cannot delete more th…

iPhone用携帯充電器の決定版キタ。

SANYO USB出力付きリチウムイオンバッテリー (専用リチウムイオン電池使用) KBC-L3ASposted with amazlet at 09.11.01三洋電機 売り上げランキング: 180おすすめ度の平均: iPhone 3GSでも使えますAmazon.co.jp で詳細を見る早速Amazonで買いました。以前のも…

appengineでエラーが出た(commit: Operation commit failed on resource)

org.datanucleus.transaction.Transaction commit: Operation commit failed on resource: org.datanucleus.store.appengine.DatastoreXAResource@adb24, error code UNKNOWN and transaction: [DataNucleus Transaction, ID=Xid= タスクキューで処理中にエ…

appengineのjunitでログイン状態で動作させる方法

ApiProxy.setEnvironmentForCurrentThread(new ApiProxy.Environment() { public String getAppId() { return "unit test"; } public Map<String, Object> getAttributes() { return new HashMap<String, Object>(); } public String getAuthDomain() { return "gmail.com"; } public String </string,></string,>…

本のソムリエ清水 克衛が読書の秋に薦める一冊

エチカの鏡でまた本のソムリエ清水 克衛さんが出てた。 店主がおすすめする各種悩みに効く本をエチカの鏡で紹介していたのでまたブログにメモる。前回のはこちら 人生を明るく変える一冊 感じの漢字 感じの漢字posted with amazlet at 09.10.26高橋 政巳 扶…

よく使うFirefox アドオンをめも

Windows7のPCを買ったのでメモしておく。 FireGestures Greasemonkey AutoPagerize for Greasemonkey Tab Mix Plus Make Link goo辞書 East Asian Translator All-in-One Sidebar Hatena Bookmark MinimizeToTray Firebug SQLite Manager Gmail Manager Fire…

appengine java night #2( #ajn2 )に行ってきた

1回目の感想をblogに書いてなくてごめんなさい。ごめんなさい。blogに書くまでが勉強会ですよね。さて、今回は一気に70人以上の会場になりました(前回は30人ほど)。会場が大きいと質問をしにくくなって質問が減ってしまうのではないかと心配していましたが、…

神々の山嶺をamazonでポチった

twitterでおもしろい漫画を募集したら「神々の山嶺」を紹介された。本屋で探したんだけど、なかなか見あたらなかったのでamazonで買ったよ。神々の山嶺〈上〉 (集英社文庫) (文庫) と 神々の山嶺(いただき) (1) (集英社文庫―コミック版 (た66-1)) (文庫) が…

超熟 イングリッシュマフィンはうまい

朝ご飯はいつも食パンでしたが、最近はイングリッシュマフィンです。 イングリッシュマフィンってこんなのね。 ここのblogみてふとつぶやきたくなりました。これはね。食パン派の人は一度は試すべきですよ。あとblog主のとしきさんの写真を見ると焼きが足ら…

appengineでRequest was aborted after waiting too long to attempt to service your request.が出た

1.2.6がリリースされたあたりから急に表題のエラーが頻発しました。原因はたぶんこれだったようです。いまはエラー発生はしていません。この情報を得るまでに検索していたところ下記の情報が見つかりました。 初期化中のランタイムに対して転送された後続の…

appengineのweb.xmlはバージョン間で共通なのか?

セキュリティ設定を有りと無しのバージョンを用意してみたけど共通じゃないようですね。

appengineのTaskQueueで意図的にリトライさせたい場合

時間切れやスピンロックのために意図的にリトライさせたい場合がありますが、下記のようなコードでリトライさせてます。 response.sendError(400);

appengineでTaskQueueを動かした時のリクエストヘッダーの値からリトライ回数とキュー名を取得する

http://id-bluerabbit.appspot.com/taskQueue/addにアクセスされたら下記のコードでTaskQueueをaddするコードを書いた QueueFactory.getDefaultQueue().add(TaskOptions.Builder.url("/task/run")); そのTaskQueueが実行された場合のリクエストヘッダーの値…

東京マラソン落選のお知らせ

もう三年連続で落選。予定調和のようだ。もう無理だろうと思って今年は青梅マラソンの30kmにも応募しておいた。青梅マラソン頑張りまーす。

今日のappengineは調子悪い?

朝方TaskQueueで下記2つのエラーが頻発していた。 TaskQueueなのでエラー時に自動リトライされて最終的には正常終了していた。 いつもなら3分で終わる処理が30分ほどかかった。 Request was aborted after waiting too long to attempt to service your req…

HTML5のWeb DatabaseをDeferrerdでラップして扱うORM, jsdeferred-webdatabaseが公開された。

html5のclient side databaseの非同期が辛すぎる。 - あおうさ@日記と書いたばかりでしたが、タイムリーなことにid:secondlifeさんが素晴らしいライブラリを公開されました。それがjsdeferred-webdatabaseです。 ライブラリ作成の動機は次のように語られて…

appengineでMemcacheを使ったLockを実装した

id:kazunori_279さんのMemcacheでスピンロックを実装してTask Queue処理結果を集約してみるテスト - スティルハウスの書庫が便利な仕組みなので実装してみた。実はこれを実装するのに前エントリのMemcacheCounterを使っているのでそれもエントリした。 Memca…

appengine用のMemcacheCounterを作ったので紹介

仕組みは以前書いたこの方法 MemcacheService s = MemcacheServiceFactory.getMemcacheService(); if (!s.contains("MemcacheCounter")) { s.put("MemcacheCounter", 1); // 初期化は1 } else { s.increment("MemcacheCounter", 1); // 2回目以降は値に+1す…

gmailをよく使う人はChromeのアプリケーションショートカットを作っておくと便利

Gmailをよく利用する方は、Gmailのアプリショートカットを作っておくと便利です。 わざわざブラウザを開かなくても、一瞬でGmailにアクセスできます。 やってみましたが便利です。メーラーの為にChromeをインストールするというのが当たり前になりそうだ。ま…

appengineのTipsおれおれメモ

高速化 one to many で子を特定してから親を取得してそれから全ての子供を取得する。 DBマイグレーション bigtableはスキーマレス(行毎に異なるプロパティを持つことができる多次元MAP) null値とmissingが区別される。missingプロパティでソートするとデー…

html5のclient side databaseの非同期が辛すぎる。

html5ではブラウザにDBが入ります。それがclient side databaseです。そのDB処理なのですが、実際にコーディングした人なら非同期地獄に苦しんだはずです。DBの処理を楽にするフレームワークより直列にかけるフレームワークが必要ですね。そこで、JSDeferred…

appengineはRead Committed相当だがcommit()には2つのマイルストーンがあることを忘れてはいけない

ここに詳しく書いてあることを本エントリは書いているだけですが、重要な内容なので書いておこうと思います。 appengineのトランザクション分離レベルはRead Committedとほぼ同等です。主要なRDBMSの一般的なトランザクション分離レベルということです。しか…

HTML5のGeolocation API

携帯電話およびPCのWebブラウザ向けの位置情報特定のためのAPI 携帯電話の場合は最寄の携帯電話基地局かGPSを使用して位置を特定 PCの場合はIPアドレスを利用してユーザーの位置情報を特定する 対応ブラウザは携帯端末ならIE Mobile、PCはIEとFirefox jsを使…

HTML5のGeolocation API

携帯電話およびPCのWebブラウザ向けの位置情報特定のためのAPI 携帯電話の場合は最寄の携帯電話基地局かGPSを使用して位置を特定 PCの場合はIPアドレスを利用してユーザーの位置情報を特定する 対応ブラウザは携帯端末ならIE Mobile、PCはIEとFirefox jsを使…

appengineのコンソールログはversion毎に異なる

google app engineではwebの管理画面からログを参照出来ます。タイトルの通りこのログはバージョン毎に変わります。どういう事かと言うと、ver1とver2があったとしたらver1で障害があったので、ver2をデプロイした場合にそのバージョンではver1のログは見れ…

appengineのcron.xmlはversion間で共通

google app engineにはバッチ処理用にcronを実行することが出来ます。cronと言っても特定のurlを特定の時間にリクエストする仕組みです。 それを使ってバッチ処理を行ないます。先日この機能を使ったアプリケーションで障害を発生させてしまいました。その時…

九月と言えばぶどう

ピオーネうまー。 この写真だとわかりにくいかも知れませんが、特大です。1kg以上あって、子供の顔より遥かにデカい。そして美味い。いつもこの時期を楽しみにしています。

Tシャツをあっという間にきれいにたためる裏ワザ!!

伊東家の食卓の裏技をふと見つけた 本も結構出てるんですね 伊東家の食卓 不滅の裏ワザ大全集 BEST 100!!posted with amazlet at 09.09.27日本テレビ放送網 売り上げランキング: 205351おすすめ度の平均: Tシャツのたたみ方に感動して購入(笑) 永久保存版…

jQuery Visual Cheat Sheet

jQuery Visual Cheat Sheet is an useful and practical reference to jQuery 1.3 for web designers and developers designed by me. This cheat sheet (6 pages) contains the full jQuery API reference with detailed descriptions and some sample code…

Snow Leopard で「隠しファイル」の表示・非表示をトグルする

Snow Leopard で「隠しファイル」の表示・非表示をトグルするには、「Command + shift + ピリオド」(Lifehacker) これは便利と思ったけど使わないかも。

GAE/JでXML解析(xpath)を行う方法

セットアップ ここから下記のjarを取得 serializer.jar xalan.jar xercesImpl.jar xml-apis.jar xsltc.jar war/WEB-INF/libにコピーする サンプルソース String xml = " <inventory> " + " <book year=\"2000\"> " + " <title>Snow Crash</title> " + " <author>Neal Stephenson</author> " + " <publisher>Spectra</publisher> " + " <isbn>0553380958</isbn></book></inventory>

遂にあの待望iPhoneアプリの「Sekai Camera」がリリースされた。

動画 インストールはこちらから

GAE/JでJDODetachedFieldAccessExceptionが発生した場合

google appengine for javaでJDODetachedFieldAccessExceptionが発生した。 エラーメッセージ javax.jdo.JDODetachedFieldAccessException: You have just attempted to access field "toAddressList" yet this field was not detached when you detached th…

フォームの中にラベルを表示してくれるjQueryのプラグイン『In-Field Labels』 | IDEA*IDEA

いつか使うかもしれないのでメモ的にエントリーをメモ的にエントリーします。 これもいつか使うかもしれないのでメモ的にエントリー。フォームの入力欄の中にラベルを表示させるjQueryのプラグイン こういうの