ひがやすを技術ブログ

電通国際情報サービスのプログラマ

2009-01-01から1年間の記事一覧

AppEngineのDatastoreの学び方

Google AppEngineではBigtableの上にDatastore Serviceが構築されていて、開発者は、このDatastore Serviceを利用してBigtableにアクセスすることになります。このDatastore ServiceはPython版もJava版も機能はほとんど同じです。もしかすると、全く同じもの…

App Engineでバージョンによる楽観的排他制御

Song of Cloudで送金のトランザクション処理パターンが紹介されていました。 http://songofcloud.gluegent.com/2009/11/blog-post_18.html 同様のpython版がこちら Distributed Transactions on App Engine - Nick's Blog 上記のやり方で基本的には問題はな…

Slim3 Preview release

Slim3の正式リリースは、来年の一月くらいになりそうですが、ドキュメントも最低限のものはそろったので、今の段階のものをPreview版として紹介しておきます。 サイトへは、http://slim3.org でアクセスしてください。 Getting Startedをやり、Slim3 Datasto…

来週はロスに出張なので日本にいませーん

AndroidでGmailは見てるけど、緊急なときを除いて、ほとんど返事はできないと思いマース。

App Engineのユニーク制限を正しく理解しよう

Google App EngineではRDBMSのようなUnique Indexをサポートしていません。ユニーク制限を実現する場合は、トランザクション中でKeyを使ったgetとputを組み合わせる必要があります。 ここでは、email addressがユニークだったらそれを確定してtrueを返し、そ…

App EngineのEntityGroupを理解しよう

App EngineのEntitiGroupは、Keyの親子関係を利用して組み立てられたEntityの集まりです。 Entityとは、Bigtable上の1つの行で、ユニークに識別するためのKeyを持っています。 Keyは、種類をあらわすkindとAppEngineから自動的に採番されるidもしくはアプリ…

えせMVCについてそろそろ一言言っておくか

Ruby on Railsの最大の問題点は、それが持つ「一見そのフレームワークがMVCの形をとりながら、MVCの最も大切なところを外している『えせMVC』である」点にある RailsのえせMVC疑惑で盛り上がってますね。Railsが「えせMVCフレームワーク」ではないのは、みん…

私はなぜJDOを捨てたのか

Google App Engine/Javaで開発している人は、かなりの確立で、JDOを使って開発していると思います(JPAが使い物にならないので)が、心の奥底では、JDOの使いにくさに疑問を持っているはずです。ただ、GoogleがJDOを推しているので、思っていても口に出せなか…

セカイカメラの波にのれ

iPhone 3GSユーザーのみんな。もちろん、セカイカメラ使ってるよな。 3Gユーザーのみんな。コンパスがあるほうが、セカイカメラはより楽しめる。これを機に3GSに買い換えよう。iPod touchユーザーの君もだ。 Androidユーザーはどうしてくれるんだと思うかも…

男児たるものGoogle App Engine実践クラウドシステム構築を買うべきだ

なぜなら、Google App Engineを学ぶために一番必要なのは、「何ができないかを知ること」だからだ。そして、この本にはそれが書いてある。それしか書いていないといってもいい。 App Engineは、Googleのインフラを最も効率よく使うことにフォーカスしている…

TaskQueueをローカルでデバッグする方法

GAE

SDK 1.2.5からGoogle App EngineにTaskQueueが導入されましたが、ローカル(development server)でデバッグはできないと思っている人が結構いるようなので、やり方を書いておきます。 ローカルの環境では、Queueにaddしたタスクは、自動的には実行されず、Que…

Bigtableで!=nullが使える

GAE

Bigtableは、!=の演算子をサポートしていませんが、nullに限って言えば、> nullとすることで、!= nullと同じ効果を得ることができます。nullは最も小さい値らしい。 JDOで、!= nullと書くと、内部的にはLow level APIの > nullに変換されて実行されます。nul…

SQL脳からBigtable脳へ

Google App Engineを使って一番悩むのは、RDBMSが使えなくなって、Bigtableを使わなければならなくなったことでしょう。 「これまでSQLでこう書いていたのが、Bigtableではそのまま実現できない、どうすればいいんだ」と思う方も多いはず。 今度のSeasar Con…

SpringSourceの買収劇についてそろそろ一言いっておくか

米VMwareは8月10日、Javaアプリケーションフレームワーク「Spring Framework」を提供する米SpringSourceを買収することで合意に達したと発表した。 買収は現金と株式、ストックオプションで行われ、総額は4億2000万ドルに上る。既にSpringSourceの株主の承認…

人間的魅力がない人はリーダーになれないのか

小野さんのところでこんなつぶやきがありました。 今九州大学の授業なんだけど、「リーダーになるためには人間的魅力が必要だと思いますが、人間的魅力がない場合にはどうすればいいでしょうか」なんという質問! この後に、清水さんの「だれでも努力次第で…

小飼弾の書評なしによく生きてこれたと思う

弾さんの書評をみて本を買った人、手をあげてみてください。 もし買ったことないなら、みなさん人生観を変えた方がいい。アマゾンの書評人間だった私が、アマゾンの書評を参考にする頻度が 10分の1になり、弾さんの書評を参考にする頻度は10倍以上になった。…

DOAはRailsの銀の弾丸か - 書評:エンタープライズRails

Railsは、最初に素早く動くもの(scaffoldなど)を作って、そこからフィードバックをもらい、少しずつ動く状態を保ちながら、改良していくスタイルです。 スモールスタートを切るには最も向いているスタイルです。しかし、最初はそれで良かったものの、プロジ…

続:本当にHT-03AはGDD Phoneの3倍使いやすいのか

HT-03AとGDD Phoneは、ほとんど違いのないことがOKIIZOさんのところで解説されてますね。 http://d.hatena.ne.jp/OKIIZO/20090712/1247409116 では、なぜ私が、HT-03Aのほうが3倍使いやすいと感じたのか。 今から思うとそれはネットワークの違いだと思います…

SIerの解体と再生

ござ先輩のところで、SIer涙目な状態が解説されてますね。 最近SIerがだいぶヤバくなっている件 - GoTheDistance 書いていることはだいたいあっているんじゃないかと思います。 じゃ、SIerは、どうやれば生き残ることができるのか。 「今の体制のまま生き残…

GAEでunownedな関連を定義する方法

Google App Engineでは、関連の実装として、キーの親子関係で実現するownedな関連と、キーの親子関係ではなく、単に相手のキーを持つだけのunownedな関連があります。 unownedな関連は、RDBMSにおけるFKを持っているようなものだと思うとイメージしやすいと…

GAEでBlobやTextを定義する方法

Google App Engineでは、500バイト以上のバイトの配列や文字列を格納する型として、BlobやTextを用意しています。これらの型を使うときには、フィールドの型は、BlobやTextにし、getter, setterメソッドは、byteの配列やStringにしておくと、モデルを使う側…

ウェブ上での人体実験をそろそろ終わりにしようかと思う

ウェブ上での人体実験=かなり広範囲のウェブ上での反応・感想を読むこと。これはもう終わりにしてもいいだろう。6年間続けてきたのだから。 2004年の初めにSeasar2の開発をはじめ、blogを書きはじめて、もう6年がたった。この6年間、私の作ったプロダクトや…

HOT reloadingとClassLoaderを理解しよう

JavaではClassはClassLoaderに読み込まれます。これはほとんどの人が知っていると思います。AOPを使うときのエンハンスされたクラスも同様にClassLoaderに読み込まれます。 これらの情報は、パーマネント領域に格納されますが、ClassLoaderがGCされると解放…

Android(HT-03A)に裏切られた

Google Developer Day(GDD)でHTCのAndroidをもらって使ってみたら、これが使いにくい。特に入力系。正直ありえないと思ったね。 ただし、仕事でAndroidを使うことになっているから、仕方なく使うことに。ユーザーは使いづらいだろうなぁと思いつつ。 Android…

そろそろSeasar2のガラパゴス戦略について語っておくか

Slim3のファーストリリース(今月中)の前に、Seasar2の開発で、どのような戦略をとったのか話しておきます。 2005/11/8、Seasar2.3のバージョンをリリースしました。このバージョンから搭載されたのが、コンポーネントの自動登録機能です。設定ファイル無しで…

北海道うまい物セット詐欺に気をつけろ

今日うちの家に、北海道うまい物セット様から届いたクール便の不在連絡票が入ってました。 「北海道うまい物セット」様なんてそんなやつ知らないぞ。知り合いが、なんか送るという話もなかったし。 これは、きっと「カニカニ詐欺」と同じような手だよね。 と…

PHPを叩く人にガツンと申し上げたい

よって、PHPを「学ぼう」とするのは、時間の無駄だと弾言する。学ぼうとするから報われない。ただ必要な時、必要な呪文を、必要なだけ唱えればいいのだ。それ以上をPHPに期待するのは間違いだ。「なぜ」を問うてはならない。 PHP叩きって毎年必ず起こるじゃ…

おい、kawango、本当の受験勉強をおしえてやる

タイトルは釣りです。 ただ、kawangoさんが、だめな受験勉強をしている人を例にあげて、だから受験勉強はだめなんだと結論付けているので、本当の受験勉強とはどんなものか説明しましょう。本当っていっても、自分の経験と周りを観察した範囲のことですが。 …

飲み会で遭遇したありえないJava-ja系女子

最近の勉強会ブームに便乗して飲み会に参加している男子でつ。|´・ω・)ノ もちろん、「だんご」と読みます。花男好きだからね。 今年に入ってかなりたくさんの女子さんと飲み会を繰り返してきたのですが、 ありえないレベルにびっくり ありえないランキング 5…

おい、ゆとり、いっぺんお前のすし食べ方をオレに見せてみろ

読みたかった「のだめ」が、実は家にある(妻が持っていた)ことがわかったので、家で読んでいました。そしたら、のだめが千秋先輩を励まそうと回転寿司に連れて行くシーンで、千秋先輩がすしのねたばかり食べてシャリを残しているじゃないですか。 ちょwww…