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

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

2006-01-01から1年間の記事一覧

ソフトウェアプロジェクトのドップラー効果

向かう先の時間は圧縮され、一週間後に設定されたはずの締め切りは瞬く間に眼前に迫り、 過ぎ去った時間は引き延ばされ、一週間前の対策は遙かな過去の陳腐化した出来事になる。嗚呼、ドップラー効果(違…仕事中、更新している場合ではないのですが、書かずに…

Haskellのちから

必要に迫られて、タブを空白に展開する機能が必要になり、自分でコードを書く。行に分割すれば、改行を考えなくてよいので、単純に一行分の文字列を展開するものです。考えた手順はこんな感じ。 文字列から一文字ずつ読み込み、タブ文字でなかったらそのまま…

一回に一つだけ

「もしもウサギにコーチがいたら」という本の中にでてくる言葉です。 書籍名のとおりコーチングの本なんですが、この一節を読んでリファクタリングのことを連想しみたり。 一緒に「何でも簡単に取り入れると、システムが混乱したり、壊れてしまうからです」…

スケジューリング

計画を守れなかった場合、作業者と計画者のどちらが悪い? 現場の立場から、こういう書き方をするからには、計画者が悪いといいたい思いが強いのだけれども。そうではなくて。 こういうことなのではないかと、漠然と。(1)計画を守れなかった場合、作業者と計…

あえて組み込みでC++を使うというのならば

必要なのは、標準となるライブラリだと思います。リソースが足りないことを言い訳にしているのか、どうも組み込みの環境のライブラリは貧相な気がしてなりません。デバイスを操作するためのビット演算やビット列の分割結合、タスク間通信のためのシリアライ…

C++なんか使ってる場合じゃない。

Webアプリケーションとかをされている方から見れば、なにを今さらな話題ですが。ここで話をしたいのは組み込みのお話。 少ないリソースで機能を実現しなければならない組み込みソフトウェア。長らくC言語が使われ続け(少なくともわたしの職場では)、一昨年に…

列挙型をインクリメント

C++

C++での話。 列挙型の値を、最初から最後まで順に使いたいとき。たとえばこんなとき。 enum Month { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Nov, Oct, Dec }; // JanからDecまで順に使いたい... 試しにfor文を使ってみる。 for(Month month = Jan; m…

「マジックナンバー」はなにか?

プログラマとしては、今更な話題ですが。プログラミングの基礎として、マジックナンバーを使うのをよそうというのがあります。 for(int i = 0; i < 10; ++i) // `10'ってなに? ちゃんと名前をつけようと。 static const int ArrayCount = 10; // ... for(int…

人を、責める。

今日は人を責めました。「言葉で説明できないことをプログラムに書けるのか」と。今回のプロジェクト、行くはデスマーチ。理解が深まるのを待つだけの余裕がありません。今理解せずに先に進むことは、命綱なしの綱渡り。それに気付いてほしかったのか、こん…

いまさらICFP Programming Contest

いまさらながらICFP Programming Contestに手を付けてみたところ。まるまる半日がかりで仮想マシンを書いてみたものの、ひとまず動けばいいと、いたって低機能、必要最小限。夜中になってシステムが動きだし、その中に課題があるのだけれども。階層の違う思…

職業プログラマにとってアルゴリズムの教えはどう映るのだろう?

ソフトウェアを開発する企業に属し、プログラミングを職業とする人は、多かれ少なかれソフトウェアの勉強をしてきているのだと思っています。学校で学んできた人もいるでしょうし、企業に属してからはその企業内でも研修などで学んでいると思います。そのよ…

プロジェクトのイメージトレーニング

脳は、実際に経験したことと想像したことの区別がつかないという話を聞いたことがあります。そんなわけでイメージトレーニングで想像で成功を経験させることはとても有効なんだという話。記憶に頼っているので、間違いがあるかもしれませんが。 最近、仕事の…

勝つ気でいる

このところ気に入っている言葉。「勝つ気でいる」。 わざわざ勝つ気でいるなどと表現するということは、負ける確率の方が高い状況で使う言葉のような気がする。実際、今の状況は、とても負けそう=プロジェクトが失敗しそう、な様子。 そんな状況で「勝つ気…

プロジェクトに必要なもの

このところ強く思うのは、それは「士気」ではないかと。プロジェクトに必要なものは。 士気で問題が解決するわけではありませんが、問題を解くという行為の最初の一押しに士気が必要な気がしてきています。士気が劣るとどうしても逃げ腰になってしまう。 士…

パーサライブラリを作ってみた。

Boost.spiritに触発されて、自分でもパーサライブラリを作ってみました。サブセットの模倣みたいなものですが、シンプルな割には機能するものができたのではないかと自己満足。2006/04/12 追記 再帰構文に対応できないことに気がつきました。それと、一部よ…

打ち合わせで必要なもの…

打ち合わせで必要なもの…でっかい紙。打ち合わせの質もよるけれど、参加者から意見を引き出したいときは、全員から見えるでっかい紙に、でてきた意見をどんどん書き込んでいくのが効果的。自身、オブジェクト倶楽部のイベントのワールドカフェの中で体験して…

体力不足を補うには、

病を抱えていることを差し引いても、体力のなさはいかんともしがたい。なにごとも。まずは体力をつけることがなにより大事なのはわかっているものの。太れない体質が全てを物語っているかのように、体力もまたなかなかつかず。 そうすると。いかに体力を使わ…

人を、育てる。

ここ2、3年は仕事の質も人を動かすことが多く、年齢的にも、立場的にも、人を育てる立場になってきました。 実感として、結論から先に言うと、人を育てるのは無理。わたしが、というよりも、そもそも人が人を育てるのには無理があるような感じがしています…

C++のイディオムは、バッドノウハウか?

vector<int> n; // do something ... vector<int>().swap(n); // n を空にする コンテナを空にする方法として、各所で紹介されているC++のSTLのイディオム。これはこれで、スマートかもしれないけれど、やっぱり自然ではないような。C++の習得の難しさは、言語仕様の難</int></int>…

C++のルール

「C++ Coding Standerds」を購入。副題に「101のルール、ガイドライン、ベスとプラクティス」。C++はわたしが好んで使っているプログラミング言語ですが、あまりに複雑過ぎる言語だとあらためて実感。「言語好き」としては、面白く読みつつも、これを仕事に…

へこんでいるうちに…

へこんでいるうちに、年を越してしまった。 っつーか。ひと月以上へこんでたみたい。