エンジニアのソフトウェア的愛情

または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか

2007-07-01から1ヶ月間の記事一覧

フロ・メシ・ネル・プロセス

「○○の進捗が見られません。状況を教えてください」 「○○はバグじゃありませんか」 「ログからわかることを先に報告してください」職場での、進捗管理担当から現場の担当者へのメール。メールで連絡する内容がこれだけというのは、ちょっとさみしくないかい…

最後の一押し

今日、現場担当者から、報告なのか、なにかの依頼なのか、承認を求めているのか、内容をとらえにくいメールが届きました。なにか訴えようとしているのはわかるんですが、じゃぁ、わたしはどうすればいいのか、わからない。わからないことは直接訊くに限るの…

開発のフットワーク

先日、携帯電話開発でのデザイン競争の裏舞台をTVで見ました。番組の焦点はデザインでしたが、ソフトウェア開発の様子も暗示させられるような内容。韓国メーカーと国内メーカーを取り上げて、開発の様子を追ったのですが。なによりもフットワークの軽さの違…

3Tは遠く

先日の、先輩のとある台詞。 「どいつもこいつも定時で帰りやがって」 いや先輩、それ違いますから。定時で帰るのが正常なんですから、よしとしないと。残業しなければならない事態が非常事態なわけで。 こういった台詞が疑問なく出てきてしまう環境自体がか…

わかりやすいコードPart2・その3

いよいよもってわかりやすいコードからかけ離れてしまった感があるものの。 当り判定追加。相変わらずスコアを表示できず。代わりにコンソールにだだ流し。 かなりに雑なのは、わたしのHaskellスキルの限界か。でも、これだけのことを200行余りで書けてしま…

わかりやすいコードPart2・その2

エイリアン登場。まだ当り判定がありません。 一度作ったものの書き直しだからというのもあるのですが、思いのほか作業が早い。言語の違いにもっと手こずると思っていただけに、少し予想外でした。「わかりやすいコード」を意識したことで、より抽象的なレベ…

わかりやすいコードPart2

もう、コードがわかりやすいかどうかはどうでもよくなっている節がありますが。 こんどはHaskellで挑戦。 まずは、ウィンドウ上をなにかが動くところまで。 ghc --make moreComprehensible.hs ってな感じでコンパイルしてください。以下、コード。

心もオープンに

今日は同僚が悪態をつくのを見てしまい。その場にいない人への文句。悪態をつきたくなる気持ちはわからなくもない。でも、肝腎のその人にそのことばを伝えなかったら意味ないのに。と、ひそかに聞き耳を立てるわたしもよくないのですが。 フィードバックがな…

わかりやすいコード・その6

コードがブログに書くには長くなりすぎてしまったのでここにアップロード。 一応「わかりやすさ」というのに気をつけて書いてみたものの、書くうちに「わかりやすさ」がわからなくなってきます。 for(std::vector<Bullet>::iterator i = bullets_.begin(); i != bull</bullet>…

bool型の値を比較する

C++

今日始めて知りました。次の結果はどうなるか? std::cout << (static_cast<bool>(1) == static_cast<bool>(2)) << std::endl; C++のbool型は整数型なのでこの結果は0(偽)になると思っていたのですが、正解は1(真)。我ながら予想以上のショック。bool型専用の比較演算子が</bool></bool>…

わかりやすいコード・途中経過

元のお題とずいぶん違うものになりつつありますが。

二つの言語

C/C++における、プリプロセッサとコンパイラ。 わたしはC/C++のプリプロセッサがどうも好きになれなくて。より正しくは、プリプロセッサのある種の書き方がすきになれなくて。いわゆる、こういう書き方。 void foo() { #ifdef DEBUGGING デバッグのときだけ…

自分の色を加えない

コーチはアドバイスしないというのがコーチングの基本にあります。同じようにファシリテータは議論を自分の考えに誘導しない、というのを最近知りました。 ふと考えたアナロジーが、コーチもファシリテータも「自分の色を加えない」。 自分がコーチングをす…

わかりやすいコード・その5

エイリアンが攻撃してくるようになりました エイリアンの弾にあったたら即終了 プログラムを実現する、という目的の他に、タイトルにもしている「わかりやすいコード」が実現できているか、考えながら進行中。個人的にはBounds(0, 0, width, height).include…

わかりやすいコード・その4

エイリアンを倒せるようになりました スコアがつきました 表示をダブルバッファリングに替えたのでいくぶん綺麗になった気分 行数かかる書き方とはいえ、500行を越えてしまった まだグローバル変数がおおいなぁ、マジックナンバーも 以下、コード。

VDM

VDMというのを知る。ここにある例題を見ながら、「宣言的に定義する様子が関数型言語みたい」と思った、ので、書いてみました。 swap swapは普通に。 swap (x, y) = (y, x) max・その1 集合や列の代わりにリストを使って。 max_value (n:ns) = max_value' n …

操作の横恋慕

仕事をしていて、こういうコードをしばしば目にしてます。 class A { public: void doSomething() { doSomethingForB(b); } private: void doSomethingForB(B& b) { // Bに対する操作 } B b; }; 「操作の横恋慕」ですね。 これを、こう書いたほうがよいよ、…

概要と詳細

ここ2、3日、少しずつ時間をとってコンスタントにコードを書いてみて感じたこと。 わたしは割とボトムアップでコードを書く癖があります。今回のコードでしたら、まず自機を表示して、次に動かせるようにして、次に弾を撃てるようにして、次にエイリアンを表…

わかりやすいコード・その3

エイリアン登場。課題もどんどん登場。 グローバル変数が増えている マジックナンバーもいっぱい エイリアンの登場パターンがただのランダム エイリアンを倒せない エイリアンが減らないので画面上に溢れる 他、スコアがでないとか、エイリアンが弾を撃って…

わかりやすいコード・その2

エントリのタイトルはIBM developerWorks : ご指定のページは見つかりませんでしたから。ここで紹介されているゲームを目標にちまちまやっているところです。ここまで来ました。カーソルキーで上下左右に動いてスペースキーでファイア! 上下に動くのは反則っ…

わかりやすいコード

近く、グラフィックを使ったプログラムを書くつもりなので、それに先立ってサンプルを書いてみる。後ほどHaskellで再挑戦予定。 実は。カテゴリはOpenGLでなくて、GLUTが正しそうだけど、大目に見てください。わたしが使っている環境はMac OS Xなので、Linux…

想像力、大事!

思いやり駆動でひとつエントリを書きました。同じように大事なものが、少し乾いたことばで、「想像力」なんじゃないかな、と思います。自分以外の人の思いは、けっしてすべてを知ることができないものだけに、相手の思いを知るには想像する必要があります。…

ωのワルツ

数学ガールを読み進めつつ。 「ωのワルツ」を読みながら、「学生のときよくやったよなー」などと思い出す。1のn乗根は複素平面上に正n角形を描くんですよね。理系と言ってもわたしがやっていたのは工学なので、交流を複素平面で考えて、Cで進むだのLで遅れる…