« 2005年6月 | トップページ | 2005年8月 »

2005年7月31日 (日)

赤ん坊は、大変だよね…の巻き

一年ぶりに友人の所に
遊びに行った…。

『どうだー!
可愛いだろー。』

早速、抱っこして連れてきた…。

親バカだ…。

満一歳、大変な時期は、
越えたのかな?

未体験者には、
分からんが…。

まあ飲みの時に
やんちゃな坊やで
大変だと聞いてはいるが…。

『抱いてみるか?』

と差し出そうとするが
その子は、しっかと
篭城状態。

『なんだお前!』

と目が言っている…。

うむ、このままでは、
抱く前に触ることさえ
拒否されそうだ…。

無理に触ると
泣くかも…。

噛むかも…。

そいつはまずい。

…。

せめて帰る前に
抱いてみるぐらいは
してみたいジャン…と
欲望がふつふつと…。

…。

そう言えば、
『おもちゃ三原則』
とか言うのがあったな…。

・光る!
・回る!
・鳴る!

…て、赤ん坊に効くのか?

まあ、だめ元でやってみる…。

取り合えず、体を
ゆ~ら~ゆ~ら~
と揺らす。

お、目が追っているぞ…。

目で追ってる追ってる…。

おし!行けそうだ!

次は、口をぱふぱふさせて
「ぱっ!ぱっ!ぱっ!ぱっ!」と
鳴らす。

真似をするが同じように鳴らない。

悔しそうだ!

目が怒っている…。

意外に表情がダイナミックだ。

これはこれで面白いかも…。

…。

苦労の末…
ようやく抱っこが出来た…。

丸々と肥えた12キロは、
ずっしり重い…。

これを毎日抱いてあやすのか…。

運動不足が解消できて
良いかも…。

高い高いをする…。

めちゃめちゃ喜ぶ!

いい気になって
何度もやる。

キタ━━━━(゚∀゚)━━━━ッ!!

腰にキタ━━━━━!!

…。

居間で休む…。

向こうからよたよた歩て来る…。

よろよろだ…。

どた!と倒れそうだ…。

倒れながら家具に頭を
ぶつける様を想像すると
びくびくものだ。

子育ては、図太くないと

子が育つ前に
心労で倒れるかも…。

その前に慣れるかも…。

奥様があやす姿を見て
『お持ち帰りする?』

ちょっと待て…
多分俺は、耐えられん…。

半日は、面白いが
毎日は、地獄だ…。

まだ命は、惜しい。

『お断りします。』

子育てとは、
かくも大変なものなのか…。

などと思いながら友人宅を後にした。

Baby







メンチ切られています…。

| | コメント (0) | トラックバック (0)

誰かネタをくれ!

Cには、バグがあるんだよね-。

て、ネタが無くなったので…

ちょいとお休み。

| | コメント (0) | トラックバック (0)

2005年7月24日 (日)

バグで哲学?

バグ…。

それは、プログラムに棲む何か…。

永遠の謎…。


でも、バグの無いプログラムもある!

それは、…

void function( void ){}

この、入力も出力も無いプログラムだ!

って…

何にもならないのだが…。

バグも無い…。

これは、是か?非か?

…。

って非だよね…。

う~ん…

哲学だよね…。

て、哲学かぁ?

哲学かも…。

| | コメント (0) | トラックバック (0)

2005年7月20日 (水)

誤差…そいつは、困ったちゃん

誤差に対応するには、ど~したら
いいのか?

include <stdio.h>
double absd( double d )
{
    return d >= 0.0 ? d : -d;
}
void main( void )
{
    double    A;
    int    i;

    A    = 0.0;
    for( i = 0 ; i < 10 ; i++ )
        A    += 0.1;

    printf( "結果:%f - %s\n", A, absd( A - 1.0 ) < 0.01 ? "1.0ぽいです。\n" : "1.0ぽくないです。\n" );
}

結果:1.000000 - 1.0ぽいです。

多分、こんな感じでやれば
いんじゃないかなぁ~。

まあ、だめでもともと
その時には、固定小数点にでも
すればいいし…。<それで良いのか?

しかし、連続して計算していくと
誤差は、どんどん蓄積していく…。

そして、誤差が一定量を超えると
コンピュータは、爆発するのだ!

気を付けよう。

…。

…。

うそだぞ。

| | コメント (0) | トラックバック (0)

2005年7月19日 (火)

精度に潜む罠…

精度をが必要なときには
多分「double」を使うと思うが…。

しかし…。

#include <stdio.h>
void main( void )
{
    double    A;
    int    i;

    A    = 0.0;
    for( i = 0 ; i < 10 ; i++ )
        A    += 0.1;

    printf( "結果:%f - %s\n", A, A == 1.0 ? "1.0です。\n" : "1.0でありません。\n" );
}

結果:1.000000 - 1.0でありません。

おいおい、なんだよこれ?

表示結果が1.0なのに
1.0と等しくない?

でもこうすると…。

#include <stdio.h>
void main( void )
{
    double    A;
    int    i;

    A    = 0.0;
    for( i = 0 ; i < 5 ; i++ )
        A    += 0.2;

    printf( "結果:%f - %s\n", A, A == 1.0 ? "1.0です。\n" : "1.0でありません。\n" );
}

結果:1.000000 - 1.0です。

今度は、合った?

…。

謎である…。

Cには、
まだまだ解明されない
深い闇が
広がっているのである…。

…。

…。

…。

では、済まないので
敢えて結論を言おう!

微妙に1.0なのであると!

人は、これを誤差と呼ぶ!

| | コメント (0) | トラックバック (0)

2005年7月16日 (土)

小人が現れるとき…

人間寝ないと
死ぬ…。

死なないまでも、
頭がおかしくなる…。

おかしくならないまでも、
判断能力が落ちる…。

たまに小人さんが現れて…
作りかけのプログラムを完成させる時がある。

大抵バグバグである。

妖精に頼っては行けない!

だからといって、パソコンモニターに
話し掛けるのは、やめよう。

周りが引く…。

真夜中にモニター画面に向かって
「ダメだよ~。なに間違えてんだよ~。」
と会話する奴をみると…

ああ、奴も一人前だ…

と思うのはやめよう…。

知的作業のはずなのに
体力勝負!
これいかに?

土方の方が健康的では?

だから徹夜は、やめよう…。

| | コメント (0) | トラックバック (0)

2005年7月14日 (木)

神の降臨?

たまにプログラマーに
神が降りることがある…。

今まで思い悩んでいた処理が…

悩ましい競合が…

一瞬で解決し、

あっという間にプログラムが出来上がる!

まさに神がかりな時が…
一生に一回ぐらいは、ある!

そして、去ってから気付く…。

オーマイゴッド!

| | コメント (0) | トラックバック (0)

2005年7月12日 (火)

コメントは、過去の自分からの贈り物?

人間は、忘却の動物である…。

たいてい三ヶ月も前の事など忘れる。

少なくとも3ヶ月前に書いたプログラムを
暗誦できるプログラマーは、まれだと思う。

もしかしたら、そんなプログラマーが
居るのかもしれない…。

でも自分の周りには、見かけないので
居ないものとする!

つまり三ヶ月前に書いたプログラムは、
過去の自分という他人が
書いたものになる…。

ボケは、三日で忘れる…。

だから毎日、他人のプログラムと
熱いバトルを繰り広げている…。<おいおい。

…。

だから、三日後に見直す自分に
愛を込めて説明文を書いておく。

イッツア・ラブ・コメンツ!

愛は、偉大だ!

助かる。

役に立つ。

しかし…

たまに、お茶目なコメントで
混乱することもある…。

誰だ!こんなコメントを書いた奴!

俺だ…。

| | コメント (0) | トラックバック (0)

2005年7月11日 (月)

暗黙のキャスト

この前は、
「演算を行う場合には、演算中の
最も範囲が大きい変数に
合わせてから演算する。」

と書いたのだが…

この適用範囲が振るっている!

    A    = 1   / 2 * 0.5
    A    = 1.0 / 2 * 0.5

両方とも計算結果は、0.25だ。
間違い無い!

間違ってたらゴメンナサイ…。<弱気…。

#include    <stdio.h>
void main( void )
{
    double    A;

    A    = 1 / 2 * 0.5;
    printf( "結果:%f\n", A );

    A    = 1.0 / 2 * 0.5;
    printf( "結果:%f\n", A );
}

結果:0.000000
結果:0.250000

となる…。

不思議不思議…。

どおやら初めのは、
(double)0.00 = (double)( (int)1 / (int)2 ) * (double)0.5

次のは、
(double)0.25 = (double)( (double)1.0 / (double)2 ) * (double)0.5

らしい…。

この辺は、慣れ…?

結局みんな「double」で計算すればOK?

安直が最大の対策かも…。

謎は深まるばかり…。

| | コメント (0) | トラックバック (0)

2005年7月 8日 (金)

変数の範囲

Cで使用する変数には、全て範囲がある…。

で、たまに以下のようなプログラムを作ると
無限にループして終わらない…。

#include    <stdio.h>
void main( void )
{
    char    Count;

    printf( "Start\n" );
    for( Count = 0 ; Count < 128 ; Count++ )
    {
        printf( "%3d\n", Count );
    }
    printf( "End\n" );
}

結果は、
Start
  0
  1
~中略~
126
127
-128
-127
~無限ループ~

「char」の範囲は、「-128 <= char <=127」なので
「char < 128」は、必ず成立する…。

でも、ちょっと待て!

それ以前になぜに「char < 128」が

エラーにならないのか?!

エラーだろ…!?

少なくともワーニングでも出してくれれば気を付けるよ!

バグでしょうか?

#include    <stdio.h>
void main( void )
{
    char    A;

    A    = 127;    /* ワーニング出ませんが…。 */
    A    = 128;    /* ワーニングが出ます…。 */
}

だと
「warning C4305: '=' : 'const int ' から 'char ' へ切り詰めます。」
て、ワーニング出るぞ!

演算を行う場合には、演算中の
最も範囲が大きい変数に
合わせてから演算する。

に引っかかっているのでね…。

暗黙のキャストってやつですか…。

つまり、「(int)Count < 128」となっていたのですね…。

この辺は…

誰も教えてくれないCの常識と言う奴ですか…?

暗黙の了解?

このルールは、たまに良く分からんバグとして
プログラマーをもだえさせてくれます。

私も、もだえました…。

| | コメント (0) | トラックバック (0)

2005年7月 4日 (月)

そのプログラムは、たまたま動いていたんだよ!?

『SCEI 久夛良木社長インタビュー(3)』でこんなことが書いてあった…。

『ソフトを開発している人は意外な、想像できないことをやってしまう。
例えば、プログラムとして論理的でないけど、
たまたま動いた
といった。
動いているけど、でもそれは
全く別の理由で動いてた

というようなケースがある。
我々のテストもくぐり抜けて、
「何だこのコードは!」
みたいコードが通ってしまう場合がある。』

大爆笑!

ばっちりツボに嵌まった!

吹けば飛ぶようなボケプログラマーが言うより、
遙かに破壊力が…もとい説得力がありますな!

プレイステーション2等のコンシューマゲームは、
かなり強力なデバッグテストを経てから製品化されるはずなので
大抵のバグまたは不具合は、叩き出されるはず…。

でも、潜伏しているのですね…バグは…。

笑える…。

全文笑える…。

なぜ動くか分からないけれど動いている…。

全くもって謎なプログラム。

そうプログラマーは、日々そんなプログラムを組んでいるのだ!

てなことはないよ…。

| | コメント (0) | トラックバック (0)

2005年7月 3日 (日)

表計算ソフトはお友達!

プログラムを助けてくれるアプリケーションがあります。

それは!

プログラマーのお友達、表計算ソフト!

まあ、エクセルなんか有りますが…。
1-2-3でも三四郎でももちろん良いです…。
そういえば、クラリワークス…。

そう、クラリスがいい!

…何がいいかは、置いといて…。

2つの結果をプログラム内で作るのが難しい場合、
表計算から引っ張ってくるのは、良くある手…。

表計算の結果をテーブル化して計算結果と突き合わす。
すると、どちらかが間違っている場合がある。
その時は、手計算でチャレンジ!
三つ巴に違っていたら、頭がウニっているので寝る!

取り合えず、ちょっとしたデータテーブルの作成を
手軽に出来るので使い方を覚えて損は無い!

と最近気づいた…。

もっと前に知っていれば…。
もう少し、楽できたのに…。

| | コメント (0) | トラックバック (0)

« 2005年6月 | トップページ | 2005年8月 »