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

Javaによるキャッシュの実装Tips

HashMapを使ったキャッシュの問題点 削除ロジックを入れなければOutOfMemoryErrorの原因となる どれくらいの量が適切か判断が難しい 古いキャッシュを効率的に捨てるロジックを実装するのはけっこう面倒 解決策 メモリが足りなくなるとエントリが自動的にガ…

窓使いの憂鬱

窓使いの憂鬱を入れて、キーボードの配置などをいじる。 個人的に必須なのはいわゆるSandS(Space and Shift)機能。スペースキーを押し続けることでShiftキーがわりにするというもの。スペースキーを単独で押して離せば、普通に空白がタイプできる。 今まで…

ノートPCの環境を強化

少し考え方を変えて、Linuxによる作業はVMware上で行うことにした。まずはメモリを512MB増設して1GBに。Linuxパーティションを切りなおしてサイズを縮小し、その分を仮想OSイメージの格納場所にあてた(NTFS)。 一応ネイティブでもLinuxを使えるように、デ…

ノートPCに開発環境を構築

中古でThinkPad T42を入手した。 もともと入っていたWindowsの領域をKNOPPIXに入っているqtpartedでリサイズし、空いたところにLinux用のext3領域とswap領域を作成した。 Windowsではデュアルモニタで快適に作業できるようになった。Linux用領域にはUbuntuを…

一義的な重要度

GoogleのPageRank(ページランク)アルゴリズムはとても有名で、非常に実効性の高いアルゴリズムであることがよく知られている。 ただし、これは検索結果の順位づけに関する万能薬ではない。最終的に順位づけをするにあたっては、検索ワードがそのページ中の…

デバッグの楽しさ

デバッグの快感を知らないプログラマがもしいたら、たいへん不幸だと思う。 自分が手がけたシステムのどこかで異常が起きてしまった、というのは大ショックだ。 しかし、それが予想もつかなかった異常であるほど、面白い。「絶対ありえねーーーー」と悶え苦…

InnoDBが重い

レコードは100万件ちょいなのだけど、カウントを取るのに10分とかかかる。 InnoDBのカウントは全件なめるから遅いとはいえ、ちょっと遅すぎるような気がする。 それにトランザクション処理でロック取得(select for update)がタイムアウトになる場合がある…

protected

Javaのprotectedはサブクラスからだけでなくパッケージ内からも見えるが、なんかいいことあるのだろうか。 たしかC++のprotectedはサブクラスからだけなんだよな。

ソースコードのコメントに和む

隣の席のSさんが開発画面を見て笑っていたので何かと思ったら、K氏(個人事業主。元同僚でmichisuの師匠)の書いたソースコード中のコメントがちょっと和むという話だった。 //DBから取得したデータを〜〜に設定して if (... //登録するのだ flush(data); と…

テストケース

JUnitなどを使うユニットテスト。 実際のところ、クラスごとにテストクラスを書くのはけっこう大変だ。 それに、クラスによっては、テストケースを書いたところで動作検証が当り前すぎてあまり役に立たない。 かといってプログラムをたくさんガリガリと書い…