とりあえず

はてなポイントを寄付しました。 http://d.hatena.ne.jp/hatenacontrib/20110312/1299904670

デフォルトって?

ありがちダメなコードのダメな理由を書くコーナー。 char const* getNameFromID(int id) { switch (id) { case ID_FOO: return "FOO"; case ID_BAA: return "BAA"; default: return "TEST"; } }ID_FOOを受け取った場合に"FOO"、ID_BAAを受け取った場合に"BAA…

ビオラインに見当たらないので。

Web

From: [781] 名@無@し Date: 2010/02/13(土) 07:45:41 ID:???奴ら邪悪ですらないよな。 そしてクリーピングコインが自然界の動物という事実 _________________________________________________From: [782] 名@無@し Date: 2010/02/13(土) 09:54:15 ID:?…

PGReliefは悪くない。けど役にも立たない。

http://d.hatena.ne.jp/minekoa/20100119/1263914704の話。 あれは最低線を底上げするもの。 PGReliefの指摘観点は公式サイトによると PGRelief 独自のノウハウでチェック SECコーディング作法ガイドの適合性チェック MISRA ルール適合性をチェック(オプシ…

それと。

ソフトウェア業界の商用ツールのピンキリ度合はどうにかならないのだろうか*1。価格と性能が比例していないどころか相関すらしていない。まあ、価格と機能数は割合と相関しているかもしれないが、それも 価格∝機能数^N, N > 1 というように見える。しかも、…

検査例外・非検査例外

http://d.hatena.ne.jp/kmaebashi/20100114/p1, http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/Nagise/20100116/1263630204の検査例外は重要だけどJavaの検査例外は面倒という話。 文脈が大事。 たとえば、 ユーザ入力の文字列を数値へ変換する。 設定…

術師の食料問題

溜まり場DCスレで術師の食料問題について From: [868] 名@無@し Date: 2010/01/04(月) 01:12:22 ID:???>>864 初脱出おめでとうー 術の有効性を覚えると重戦士でも魔法使いたくなるぐらい便利だぜ術師は食料に困りがちだからオーガメイジがお勧めかな あと…

錬金術師@溜まり場の感想

中身についてはとりあえず後回しに、基本的な方針の確認をしておく。 新クラスを作るなら。 まず、そのクラスの特色を明確にする必要がある。特色としては どのような立ち回りができるのか。 という部分を重視するべきだ(と私は思う)。 特色について。 私は…

再開発≠再実装

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とも関連する。 大事なことなので二度引用する。 僕自身は、ソフトウェア工学を、「どうでもいい(したがって、あまり役に 立たない)ソフトウェ…

ざんねん!ピカチュウはよだれをたらしなきわめいている。

http://d.hatena.ne.jp/Longsword/20091130/1259573673の話。 ほとんどの場合、イオナズン一択になってしまうドラクエとは大違いです。 消費MP0の特技がもっとダメ感を強めているなぁ。むしろ山彦イオナズンができるだけマシとすら思う。 資源分配の厳しいゲ…

挿入ソートの話のまとめ

gcc4.3 -O3 on Atom, N=10000の条件で挿入ソートを測った結果(ソースコードは下に)。所要時間(time)を測っただけでは振る舞いが掴めないので、cachegrindでD1キャッシュ読み回数(D1read)を数えてみた。 関数 メモリ time D1read yane0 malloc 9.79 62M wkpd0…

挿入ソートの話の途中経過

Atom/gcc -O3だとループ変数をj=iからj=i-1に変えるといった、本質的ではない変更でも20〜30%の速度変化が起こり得るようだ。これはiccで比較してみた方が良いかもしれない。それらを含めた印象としては Wikipedia版もやね版も最適化がよく効いている場合に…

引数の評価順序。

ありがちダメなコードのダメな理由を書くコーナー。 現象。 #include <stdlib.h> #include <stdio.h> int main() { printf("puts(\"A\"), puts(\"B\"), puts(\"C\")+puts(\"D\") = %d, %d, %d\n", puts("A"), puts("B"), puts("C")+puts("D")); return 0; }をコンパイルして実行</stdio.h></stdlib.h>…

副作用のタイミング

ありがちダメなコードのダメな理由を書くコーナー。 現象。 C99のソースコード(tmp.c) #include <stdlib.h> #include <stdio.h> int main() { int i = 0; printf("(++i) + (++i) = %d\n", (++i) + (++i)); return 0; }をコンパイルして実行すると、 $ gcc -std=c99 -pedantic -O</stdio.h></stdlib.h>…

v8もたらいまわし

http://d.hatena.ne.jp/kilrey/20091111#p2の話。 function tarai (x, y, z) { if (x <= y) { return y; } else { return tarai(tarai(x-1, y, z), tarai(y-1, z, x), tarai(z-1, x, y)); } }; for (var i = 0; i < 0x10; ++i) { (tarai(12, 6, 0)); } print…

マルチスレッドのvolatile

ありがちダメなコードのダメな理由を書くコーナー。 現象。 C99+POSIX(SUSv3)のソースコード(tmp.c) #include <stdlib.h> #include <stdio.h> #include <pthread.h> volatile int count = 0; int const COUNT_PER_THREAD = 0x100000; int const THREAD_NUM = 0x10; void* work(void* arg) {</pthread.h></stdio.h></stdlib.h>…

google golangでたらいまわし

http://golang.org/の話。 とりあえずたらいまわしてみたら、gcc -O3の4倍くらいの所要時間だった。なかなか速い。 package main import "fmt" func tarai(x int, y int, z int) int { if x <= y { return y } else { return tarai(tarai(x-1, y, z), tarai(…

情報漏洩関連

Web

http://slashdot.jp/~GetSet/journal/490564の話。以前、/.-jで読んだものだけれど。 問題のレベルが違う。 拾得者 大人げない。対応する権限がない人に文句を言っても意味がないし、電話後の処置も適切ではないだろう。 クロネコ 情報漏洩事故。罰則規定に…

固定小数点数のフォロー

http://www.kt.rim.or.jp/%7ekbk/zakkicho/09/zakkicho0910c.html#D20091027の話。 Wikipediaだと。 固定小数点数(こていしょうすうてんすう)は、コンピュータにおける実数の近似値の表現方式。固定小数点数では整数部分に用いるビット数と小数部分に用い…

日本語文法では音便や省略が重要

http://d.hatena.ne.jp/kanimaster/20091022/1256217225に書いたブックマークへの追記。 「おいしいです」はやや崩した表現。「おいしゅうございます」の方がより丁寧。選択肢としては「おいしいのです/おいしいんです」も。 「おいしいのです」は書き言葉、…

free_LIST()

http://www.tees.ne.jp/~sin-x/200910a.html#0901 http://shinh.skr.jp/m/?date=20091011#p01 http://www.tees.ne.jp/~sin-x/200910b.html#1201 http://homepage1.nifty.com/herumi/diary/0910.html#12 の話。 作るべきもの。 仕様の話としては リストの先頭…

あるにはあるけど

http://www.kt.rim.or.jp/~kbk/zakkicho/09/zakkicho0910b.html#D20091013-2の話。 一応、インデックスソート(タグソート)というものはある。が、Javaではまったく意味がないし、C言語でもほとんど意味がない。Fortranなら少しは意味があるかも。 要するに…

配列とポインタ

http://d.hatena.ne.jp/heiwaboke/20091012/1255275804の話。 別の場所で教えた内容をちょっと引っ張ってみる。 前提として。 配列とポインタは違う。 アドレスだけではなく、型も考慮するべき。 譬え話ではなく、仕様書を読もう。 具体的には。 #include <stdio.h> #</stdio.h>…