2009-12-01から1ヶ月間の記事一覧

再開発≠再実装

http://d.hatena.ne.jp/tt_clown/20091228/1261996214、http://d.hatena.ne.jp/monjudoh/20091228/1262023451、http://d.hatena.ne.jp/Isoparametric/20091230/1262134418の話。 態度表明。 先に明言しておくと、私は「再開発はするな。再実装は考えてからし…

エラー握りつぶし

ありがちダメなコードのダメな理由を書くコーナー。 #include <stdlib.h> #include <math.h> #include <stdio.h> int mysqrt(int x) { if (x < 0) { return 0; } else { return (int)sqrt(x); } } int main() { printf("%d\n", mysqrt(4)); printf("%d\n", mysqrt(1)); printf("%d\n", m</stdio.h></math.h></stdlib.h>…

ソートの速度を決める要因についてメモ

思いつく限りの要因をあげてみる。 データ内容 個別比較が必要かどうか 比較にかかる時間 比較の分割性 比較の並列度 データ 要素数 読み込みにかかる時間 読み込みの並列度 交換にかかる時間 交換の並列度 ワーキングメモリ 要素数 再帰段数 読み込みにかか…

期待されない答え

http://d.hatena.ne.jp/skelton_boy/20091217/1261053652の話、というよりhttp://d.hatena.ne.jp/Isoparametric/20091219/1261201890の話。ポータブルに仕様の穴を突く方向で考えてみた。 /* MyTypeの定義 */ typedef int MyType[1]; void set(MyType m, int…

毒魔を育てる

@の溜まり場IIで「毒→妖→地はどう?」と話を振ったのだけど、「ありかもしれないが微妙」というところで終わってしまった。向こうは今更なので続きをここに書く。 毒の特徴は。 利点 毒針は序盤の攻撃魔法では最強だろう。 悪臭の雲は序盤から中盤まで搦め…

RAIIの代用

C++だとRAIIでリソースの後始末ができる。CだとRAIIが使えないが代案を考えてみた。エラーコードが雑なのは気にしないで。 ありがちなもの。 int func(char const* filename) { FILE *fout = fopen(filename, "a+"); if (fout == NULL) { return -1; } fprin…

名前がおかしい。

extern int checkStatus(void);static int status; int checkStatus() { status = !status; return status == 0; }間違っている点は 宣言と定義の返り値が違う。enum型の大きさがintとは限らない。 宣言と定義の仮引数リストが違う。 check〜という名前にも…

「経済学と似ている」というのは未科学ということだからね。

http://www.symmetric.co.jp/hiyama/SoftwareEngineering.htmの話。http://d.hatena.ne.jp/kilrey/20090226#p1とも関連する。 大事なことなので二度引用する。 僕自身は、ソフトウェア工学を、「どうでもいい(したがって、あまり役に 立たない)ソフトウェ…