1 :
仕様書無しさん:01/10/18 09:21
伝説のプログラマ小熊ちゃんのような、なんだかもう笑うしかないような
エピソードをアプしてちょろまげ。
どんなネタかっつーと
>>2-9みたいな感じ。
※小熊ちゃんのハンドルやURLの書き込み厳禁
旧スレからコピペするときは編集よろしく
2 :
仕様書無しさん:01/10/18 09:22
小熊ちゃん、いつものように、自分のパソコンからUNIXマシンにつないで仕事
をしています。要するに、自分のマシンはただの端末なわけです。
熊「あれ?…おかしいなぁ…」
△川氏「何?どうしたの?」
熊「急にリンクでエラーが出るようになったんっすよ!」
△「リンク?」
熊「そう、コンパイルは通るんだけど…その後でエラーになるんっすよ!!」
△「リンク……ちょっと待って」
小熊ちゃんのプログラムには、△川氏の作ったモジュールをリンクしていま
す。そこで、△川氏は自分の作ったところを調べようとしたのでした。
熊「いや、いいよ。再起動してみるから」
△「え!?」
再起動?…UNIXマシンの再起動でもする気なのか?
△「………」
小熊ちゃん、自分のパソコンを再起動し始めたのでした。
そして、待つこと数分…。再起動してUNIXマシンに接続し直した小熊ちゃん、
もう一度コンパイル・リンクを始めました。
熊「おっ!ちゃんと通った!…やっぱり再起動して良かった」
△「えぇっ!?」
えぇーーーーっっ!!??
3 :
仕様書無しさん:01/10/18 09:22
●君 「変数名は、意味のある名前にしてね」
小熊ちゃん(以後「熊」と略記)「わかりました」
(しばらく経って)
熊「できました」
●「どれどれ…」
●「……」
熊(自信ありげな顔)
●「何これ、意味のある名前にしてって言ったでしょ」
熊「え?意味あるじゃないですか」
●「えー?…じゃ何で名前がみんな value なの?」
(註:全ての関数で変数名が value になっていた)
熊「だって、値ですから」
●「……(溜息)」
熊「え?値って意味じゃだめですか?」
●「……」(肩を落とす)
(更に、データは data、名前は name になっていた)
(´-`).。oO(他のネタは・・・?)
(´-`).。oO(ネタが無くて沈んでいきそうね・・・)
ガ━━(゚Д゚;)━━ン!
わかりにくいよ。一見さんには意味不明。
立て直そう。
>6
もういいよ。
旬は過ぎた。
8 :
仕様書無しさん:01/10/18 19:33
いろいろあったがネタそのものは面白かった。保存してあるひとアップきぼーん
9 :
仕様書無しさん:01/10/18 19:44
10 :
仕様書無しさん:01/10/23 02:42
京都といえば混同くん。
小熊ちゃんなんて、かわいいもんだよ。
11 :
仕様書無しさん:01/10/23 02:44
少なくとも小熊ちゃんは
政治家になろう、とかは
思わないだろう?
12 :
仕様書無しさん:01/10/23 11:29
仕事は結構できるんだがURLをウールを読んではばからん奴がいる。
>11
宗教起こすかも
13 :
仕様書無しさん:01/10/23 20:07
京都では『一見さん、お断り』という風習があります。
一見さんとは、馴染みでない客のことで
京都の人は閉鎖的で外の人に冷たく嫌味でハラが黒いといわれています。
15 :
仕様書無しさん:01/10/24 19:44
16 :
仕様書無しさん:01/10/24 19:45
関西に原爆おちねーかな
17 :
仕様書無しさん:01/10/24 19:57
もともと京都に落とすつもりだったらしい
アメリカはね。
落ちればよかったのに
>>15 京都に通わなくてはならない身です。
ついでに、京都の人間は二枚舌だといわれることもある。
京都は外人多いよ。
>>17 ハァ?小倉か新潟の間違いだろ?京都奈良は、文化財保存のために
攻撃する意図はなかったはず。
22 :
仕様書無しさん:01/10/24 23:41
かれらには中性子爆弾がちょうどいい
>>23 グンジオタクカコワルイ
つーか。。。
25 :
仕様書無しさん:01/10/25 01:06
軍事も歴史も関係ない
京都人が死滅さえすればいい
京都はそんなに悪いところじゃないよ。
四条とか都市部はコンクリートに固められてて、人が多くて嫌になるけどね。
スレ違いって言うか、板違いって言うか・・・。
京都なんてどーでもいいよ。
28 :
仕様書無しさん:01/10/25 04:03
小熊の話から京都・原爆へ。
こんな荒れ方はじめて見た。
小熊スレは荒れるんだよ。反省しやがれ。>小熊
やめてくれ〜!
俺も死んじゃうかも知れないじゃん>角漠
近隣諸国に済むものとして(w
小熊ちゃん、geoから逃亡した可能性もあるな。
閉鎖したんだよな……
32 :
仕様書無しさん:01/11/13 15:20
再浮上
せっかくageるなら、旧スレの面白かったネタあっぷしてよーん
わたしゃとっといてないからあっぷできないのよーん
34 :
いつかの508:01/11/13 17:45
>>34 わーうれちい。
誰かもっとわかりやすいタイトルでまとめなおしてプリーズ〜
こゆ困ったちゃんなネタであらたなスタートを切りたい。
お前やれ
ていうかスレ乱立やめて…
小熊の言っていること、半分以上共感できてしまう
逝ってきます
小熊ちゃんも、Cのソースにコメントを付けます。でも、
a = b; /* a に b を代入 */
とか、
strcpy(fname, "FILE.TXT"); /* ファイル名を編集する */
といった、難易度の低いものにしか付けてくれません。
これ以上難易度の高いコードに無理にコメントを付けさせると、こんな具合に
なっちまいます。
●氏「ここのコメントの意味が分からないんだけど」
小熊ちゃん(以後「熊」と略記)「え?ここですか?」
熊「……」
●「……」
熊「……」
●「……」
熊「…………」(頭を抱えている)
●「……」(いらいら)
熊「…………………………」(ソースを頭から読み返している)
●「…………」(ぶちぶちっ)
小熊ちゃんには、コメントを暗号化する能力があるらしい……でもそれを翻訳
する能力はないらしい…。
小熊ちゃん(以後「熊」と略記)「質問です」
私「何?」
熊「このソースなんですけど……ここで代入が出来てないんです」
私「どれ…」
(ソースリストを見せられる ※関数、変数、型名は覚えていないので適当です)
typedef struct {
int a;
(中略)
} A;
A x[7]; ←外部変数として宣言
sub()
{
…
sub1(&x[1]);
sub1(&x[2]);
sub1(&x[3]);
(中略)
sub1(&x[6]);
…
}
sub1(x)
A *x;
{
x->a = x[0].a; ←ここで代入が出来てないと言っている
…
}
私「…は?」
熊「sub1()に x の1番目から6番目を渡してるじゃないですか。そこで、0番
目の内容を代入しているだけなんです」
私「え?…これって実質的に何もしてないぞ」
熊「してるじゃないですか。ほら(x->aを指差して)これって x の1番目から
6番目のどれかですよね。ここに(x[0].aを指差して)x の0番目の内容を
入れてるじゃないですか」
私「……」(既に答える気が失せる)
私(しかし気を取り直して)「この x->a も x[0].a も同じ内容でしょ…それに
x は外部変数なんだから、わざわざ引数にする必要も無いでしょ」
熊「同じじゃないですよ」
私「何で?」
熊「だって、x->a の方はポインタだから、引数ですよね。でも、x[0].a は配列
だから、この場合外部変数になりますよね」
私「………」(誰かこいつを何とかしてくれー)(#-_-)
●「変数名は、意味のある名前にしてね」
熊「わかりました」
(しばらく経って)
熊「できました」
●「どれどれ…」
●「……」
熊(自信ありげな顔)
●「何これ、意味のある名前にしてって言ったでしょ」
熊「え?意味あるじゃないですか」
●「えー?…じゃ何で名前がみんな value なの?」
(註:全ての関数で変数名が value になっていた)
熊「だって、値ですから」
●「……(溜息)」
熊「え?値って意味じゃだめですか?」
●「……」(肩を落とす)
(更に、データは data、名前は name になっていた)
…その時、小熊ちゃんの作ったプログラムは Core dump していた。原因が分か
らなかったので、●氏のところに向かった小熊ちゃん。
熊「ここの printf() で Core dump してるんですよ」
●「どれどれ」
※ちなみに、ソースはこんな感じ。
sub()
{
int a;
…
a = 5; ←printf() の前に a に行う最後の操作
… ←この間、何十行もあります
printf("%d\n", a); ←ここで Core dump
…
}
●「…これはちょっと、アドレスを壊してるみたいだね」
●「じゃあ、試しに Core dump してる printf() より前で a の値を出してみて」
熊「分かりました」
(しばらく経過)
●「どうだった?」
熊「a にこんな数値が入ってるんです」
確かに、a にはゴミと思われる数値が入っていた。
●「この a には何が入ってないといけないの?」
熊「5です」(※上のソース参照。尚、小熊ちゃんのチェック出力は、ちゃんと
a = 5; より後でやっていた)
●「うーん、これは a が壊れちゃってるんだよ。だからこんな数値が出てるん
だ」
熊「いや、a に5が入らないんです」
●「…じゃなくて、a が壊れちゃったからこんな数値になってるわけ」
熊「そうじゃなくて、a に5が入らないんです!」
●「………」(そんな反論するなよ…)
●「いい? a = 5; って書いたら、a には絶対5が入るわけ」
熊「でも、入らないんです!」
●「………」(絶句)
その後、デバッガで処理を追うことになった小熊ちゃん。しかし、彼は
a = 5; の前後しか調べていなかった。…まだ a に5が入らないと思って
いるらしい…。
●「………」(茫然)
熊「質問です」
私「何?」
熊「エラーメッセージなんですけど、意味が良く分からないんですよ」
私「何てメッセージ?」
熊「えーと…(ディスプレイを覗き込みながら)エネルギーが無いって事かなぁ」
私「え?エネルギー!?」
熊「ノット・エネルギー…何とかって出てるんですよ」
私「Not energy…??」(何だそりゃ)
熊「これ、エネルギーですよね…エネルギー以外に読みようが無いよなぁ…」
…そのディスプレイには、"Not enough memory" のメッセージが静かにたたずん
でいた…。
私「………」(唖然、というか、笑いをこらえている)
私(深呼吸して気を取り直す)「それ、メモリが足りないって事だよ」
熊「えー?」
この後、小熊ちゃんは「メモリがエネルギー?」とか何とかブツブツ言ってい
たが、取りあえず無視。しかし…
熊「○○さん、ハードディスク増設しないとだめですよ」
私「………」(何故、ハードディスク?)
熊「質問です」
私「何?」
熊「ルッキングってメッセージが出てるんですけど」
私「Looking!?」(またかよ…)
熊「そう、ただルッキングっていうメッセージが出てるだけなんですけど、どう
いう意味なんですか?」
私「Looking なんてメッセージは出ないぞ、きっと」(ディスプレイを見る)
*** ディスプレイの内容 ***
% cc -o (中略) *.c
compiling a.c
compiling b.c
(中略)
Linking...
%
私「…そりゃ Linking だろっ!!」
熊「ちょっとソース見て欲しいんですけど」
私「どれ?」
熊「これなんですけど…」(ソースリストを広げる)
*** ソースリストの内容 ***
sub()
{
int a1, a2, a3,(以下略);
int b1, b2, b3,(以下略);
int c1, c2, c3,(以下略);
(以下略)
}
私「何だこれ…宣言が多いな」
熊「この a1, b1, c1 が1組のデータなんですよ。それが何種類かあるんで a2,
b2, c2、a3, b3, c3 っていう風に…」
私「いや、普通はこういう風には…」
熊「…ですよね。やっぱり構造体にした方が良いですよね」
私「a, b, c で構造体にした方が良いね」
熊「分かりました。そうします」
(しばらく後)
熊「構造体にしてみたんですけど」
私「どれどれ…」
*** ソースリストの内容 ***
sub()
{
typedef struct {
int a1;
int a2;
(以下略)
} A;
A a;
typedef struct {
int b1;
int b2;
(以下略)
} B;
B b;
typedef struct {
int c1;
int c2;
(以下略)
} C;
C c;
(以下略)
}
私「……おいおい…普通こうはしないだろ…」
熊「…?」
45 :
仕様書無しさん:01/11/13 20:48
とまぁ、これが「小熊ちゃん」だ。いるだろお前の隣にも