2012-01-09
仕事始め
1/5より仕事を開始。始まると仕事以外の時間がなかなか取れないが、かといって仕事量を減らすのは本末転倒だし、うまくこなしていく力を付けていくしかない。効率化できそうな箇所は多いんだけどな。
眼鏡
仕事用の眼鏡を先々月に無くして以来、自宅で使っていたのを仕事場に持ち込んでいる。ところが、その眼鏡すら見当たらなくなってしまい、とうとう眼鏡無しで仕事をしなければならなくなった。
1日やってみたところ、以下の問題が。
- 疲れてくると、遠近感が無くなる
- 歩いていて、遠くの白い壁が急に目の前に見えて、行き止まりと錯覚した
- 外に止めてあったスクーターを、人が寝てると勘違いした
普段使わない感覚が刺激されてちょっと面白い。ただ、これが毎日だとすごく疲れるだろうな。
結局、眼鏡はシャツの胸ポケットに入っていて無事だった。眼鏡を大切に。
FileStoredMap
Map#removeの実装。の前に、そもそもハッシュ値が衝突した際の振る舞いを実装していなかったのでそこから再開。ハッシュ値が衝突した時のテストケースをどのように書くべきか。keyがStringなのでObject#hashCodeを書き換えることもできないし…。
Map#removeはとりあえず実装完了。データの方は削除せず、インデックスの参照先を変えるだけにした。ハッシュ値が衝突した時のwriteの処理がまだ。
Damien Katz Abandons Apache CouchDB, Continues with Couchbase Server
CouchDBの開発から離れることになったDamienへのインタビュー。興味深い点は以下のとおり。
- ユーザと顧客の両方のニーズに対応していくにあたり、Apacheのプロジェクトプロセスに合わせるのがツライ
- 今ぐらいまでErlangの事を理解していたら、Erlangを選ばなかった
- Erlangは素晴らしいし強固なシステムを簡単に作れるが、非常に小さなエコシステムであり、他の言語と比べてツールやパフォーマンスへの投資が不足している
Erlangでの実装は意外に大変だったらしい。
Hybrid MongoDB and RDBMS Applications
RDBMSとMongoDBの両方を使用したシステムのメリットや構築例など。
Memcached+RDMBSもHybridという件は強引すぎるけど、データに対して適切なDBMSを提供するという視点は大事だと思う。確かにバックアップや可用性を考えると複数のDBを運用するのは大変だしコストもかかるが、IaaSやPaaSでそういった問題が解決されるのであれば、DBの特徴を生かした作りにする方が幸せかな、と。ただ、各DBが何に向いて何に向いていないかを正しく判断することは結構難しいと思うけど。