2005-08-01から1ヶ月間の記事一覧
int bitcount(unsigned x){ int b = 0; while(x){ b++; x &= (x - 1); } return b; } これが立っているビットを数える関数だって、言われなきゃわかんないよなあ。しかし、シフトしながら数えるより3倍くらい速かった。 こういう系のテクニックが重要なんだ…
C言語でポリモルフィズムしてみた。参考にさせて頂いたのはこちら。 #include <stdio.h>/* 動物クラス多態スキーマ ===================================================== */// クラスが持つ関数の実装を保存する typedef struct { void (*hello)(); int size; } An</stdio.h>…
むかーしむかし、memcpyを配列か構造体に使っちゃイケナイみたいな記事を読んだような気がするんだけど、どこで読んだんだったかなあ。 構造体はパディングのゴミが入るから、単純に要素のサイズの和でmemcpyしてはイケナイってのはわかるんだけど、それのこ…
0.5FPSの状態から、なんとか15FPSまで持ってきた。まだ遅すぎ(笑)。 今回は応急処置として、NSMutableDictionaryによるバイト列のキャッシュを持たせてみただけなので、まあ、こんなもんでしょ。NSMutableDictionaryがポインタを直接食ってくれなくて、NSDat…
久しぶりのCocoaなんですが。なんで最近やってなかったかと言うと、モデルをどういう風にビューに反映させると速度を確保しつつわかりやすくなるのかなーと悩んでたから。 まあ、悩んでも仕方ないかってことで、とりあえず円形に並べて回転させてみた。 案の…
LWP::RobotUA、LWP::Mixi、WWW::Mechanizeなど、LWP::UserAgentのサブクラスは、どんなURLでも勝手にリダイレクトしてしまうのだが、これを制御する方法。答えから言えばredirect_ok の挙動を変えればいいだけなのだが、これがなかなかに面倒くさい。 普通に…
URIとURI::URLをファイルに永続化後、解凍したら動かないと言う問題に遭遇した。 これは、こいつらの保持するURI::http やURI::https が、URI::implementor で動的にロードされるため。解凍するだけだとこのメソッドは呼ばれないからねえ。 そんなわけで、 m…
Safeモジュールを使ったら安全そうだからって理由だけでreval使ってオブジェクトを生成したら、どうDumperやrefで見てもblessできてるのにメソッドが呼べなくて動かなくて痛い目にあった。ドキュメントを流し読みした感じでは、実行空間が別物になるみたいだ…
splitで、undefが来たり空文字列が来たりする。 $ perl -Mstrict my ($s1, $s2, $s3) = split(/=/, '='); print defined $s1, " ← S1\n"; print defined $s2, " ← S2\n"; print defined $s3, " ← S3\n";my @arr_s = split(/=/, '='); print defined $arr_s[0…
形式プロトコルと、非形式プロトコルの使い分け。ドキュメントによれば、 非形式プロトコルが適しているのは、すべてのメソッドの実装が任意である場合(デリゲートなど)です。 だって。形式プロトコルにしちゃうと、実装しないメソッドがあったときにエラ…
メソッドのオーバーライドを用いて共通ロジックをまとめているコードがあったんだけど、これをやると不自然なスーパークラスが出来上がってしまうことがある。 sentenceと言う文章を出力するメソッドを持つSub1クラスがあったとき、Sub1と言うクラスを継承し…
UNIQUE制約でエラー。ユニークなものを食わせてるはずなのにおかしいなーと思ったら、textだとケースインセンシティブになるんだね。いや、そんな記憶もあったんだけど、今日はハマってしまった。。。 blobにしたら動きました。varchar型だとbinaryのオプシ…