今更ですが、Googleの入社試験

最近数学ガールの影響で、論理クイズにはまっています。 5人の海賊で金貨を山分けする問題とか、5人の奴隷を使って毒入りの樽を探しあてる問題とか、面白い問題があって楽しんで解いています。 で、昔挑戦して解けなかったGoogleの入社試験の問題があったな…

Javaのinterfaceの遅さについて考える。

ふと、「Javaのinterfaceのメソッド起動は遅いかもしれない」と思って調べてみました。 まずは動作テスト メソッド起動よりループの方が遅いのか、普通にループさせてテストしても差がでませんでした。 なので、下記のようなテストコードを書いて検証。 ※ JV…

足きりだけど、DevQuizの回答を晒させて下さい。

GoogleのDevQuizってチャレンジしましたか? 私一応チャレンジしたんですけど…、100点しか取れなかったので足きりになってしまいました。考えが甘かったんですよね〜。 ZusaarNotify-modokiの開発にのめり込んだりしているうちに時間は経過してしまい。 やっ…

「ZusaarNotify-modoki」というChrome Extensionを公開してみました。

「ZussarNotify-modoki」というChrome Extensionを作って、公開してみました。 これ、私がはじめて作成したChrome Extensionです。ZussarNotify-modokiインストールすると、Zusaarにイベントが登録されたり更新されたりする度に通知が出るようになります。 …

SingletonとExceptionについての自分の結論

SingletonとExceptionについて考えてたら、なんだか良く分からなくなってしまいました。 で、SingletonパターンとExceptionについて考えてみたのですが、良くわからず・・・。 結論として↓の実装を考えてみたものの、問題ない実装であることの証拠も見つけられ…

SingletonとExceptionについて考えてたら、なんだか良く分からなくなってしまいました。

Singletonパターンってあるじゃないですか。 ↓みたいな感じのヤツ。 public class Singleton { private static final Singleton singleton = new Singleton(); public static Singleton getInstance() { return singleton; } private Singleton() { } } この…

最後に…

どうも最後までお付き合いいただきまして、ありがとうございました。 もしソースみたいなんて方がおられましたら、コメントでも残して置いてください。

分散への考察その2−Entity分割方式

全点数を一つのインスタンスに格納するのではなく、適当な点数の範囲毎にインスタンスを分けて分散させるアイデアです。 今回試しに実装したものは0〜10万点の範囲で作成していますが、これを4096点毎に25個のインスタンスに分けて実装したのが↓です。 http:…

分散への考察その1−分散カウンタ方式

スケールするカウンタの実装として、「分散カウンタ」というのが知られています。 appengineでは更新処理に比べてgetがとても早いので、カウンタ用のEntityを複数個用意して、 ・更新はランダムに選んだどれか一つに対して実施 ・カウンタの値は全部parallel…

ランキング計算以外も実現できる?

id:koherentさんがajn8向けに作成されたスライドを見ながら、同じことができるか考えてみました。 http://www.slideshare.net/koher/skiplists20100604 P.36 リストの要素数・・・一番上の階層の保持する人数。O(1)で計算可能。 P.37 要素番号による検索・・・要す…

Skiplistと比べると…

このデータ構造はSkiplistと比べて、汎用性がありません。 扱うのが整数値の点数なら問題ないですが、例えばこれが小数値だと途端に難しくなります。 特に文字列を扱うのは多分無理でしょう。 Skiplistなら任意ソート条件が扱えるんですが、こちらは使用でき…

Google App Engineのランキング問題

Google App Engineで何かと話題になってたランキング問題。 appengine ja night #8(ajn8)に参加された方ならご存知のように、既にid:koherentさんがSkiplistというアルゴリズムを使って解決しています。 参考:http://d.hatena.ne.jp/koherent/20100425/1272…

JavaでもRubyみたいなMap(Hash)のリテラルが欲しい!

と思って考えてみました。Javaで適当なMap作るときって、 Map<String, String> map = new HashMap<String, String>(); map.put("tako", "octopus"); map.put("ika", "squid"); map.put("namako", "sea cucumber"); ってな感じじゃないですか?RubyとかだとMap(RubyだとHash)のリテラルがある</string,></string,>…

Slim3でDIコンテナっぽくテストする方法

2週間ほど前に、急遽SAStruts+Seasar2+S2JDBCの現場のヘルプに呼ばれました。 ところがテツさん、Seasar2はおろかDIコンテナ自体やったことなくて、大急ぎで勉強する羽目になりまして。 今も勉強しながら作業しているんですが、そんな中ふと「あれ、Slim3で…

DNS Rebindingとケータイ

セキュリティ業界で有名な徳丸浩さんが書いた、「iモードIDを用いた「かんたんログイン」のDNS Rebinding脆弱性」&「DNS Rebinding」という記事(↓)を見て、ふと思ったこと。http://www.hash-c.co.jp/info/20091124.html http://www.tokumaru.org/d/20071126…