いつもの修士の授業でのソースコード読み会です。
予行演習に MeCab と Mercurial を読もうとしたんですが、あまりうまく読めなかった。MeCab は大分あれなC++。Mercurial は Python ですが、なかなか repository に行きつけなくて。
Mongo DB は学生に準備を頼んだら、
lldb + vim
で読もうと。え〜、それでも別にいいけど、もう少し工夫しない? ってことで、
Eclisep に C++ plug in
を入れて。Eclispe から gdb 経由で attach できるらしい。よしよし。
でも、テレビが 4K なので、
小さくて見えない Eclipse のfontを大きくする
ってのが Preference からだと Editor のしかできなくて。Package Explore のfontを大きくするのは、css ファイルの変更とかいろいろやる必要があるらしい。
とかいいながら、なんとか設定出来ました。で、これを
TreeVNC で Retina に配信
と。おぉぉ、それになりに快適。なんだが、1時間に一回フリーズするみたいな。うう、なんだろうなぁ。
* * * *
Mongdo DB は、ポインタが
void *
え? まさか逆エンジニア避け? とか思ったが、DBの中は、割と普通のC++でした。
boost 使いまくり
smart pointer 使いまくり
だけど、まぁ、こんなものだろう。thread pool とかも使ってないし、標準的な書き方かな。要するに
BSON を hash に入れてるだけ
ね。でも、今日は insert の途中まででした。
lock は RWrwX のレベルがあるらしい。お疲れ様です。この辺りは、Posix thread 自体が持つべき機能だと思うけど。
笑えたのは、BSONのheaderの最初にある長さをチェクするところで、
if (len == 542393671 )
ってコードがあったこと。これは16進だと、
20544547
つまり、
<sp>TEG
Mongo DBのportに browserからアクセスが行くと、長さに "GET " が入るので、それをチェックしてるわけね。はいはい。
明日も10時から頑張ります。
No comments:
Post a Comment