1週間以上の長期出張から部下が帰ってきた。いくつかのバグが起こってしまったらしい。前から設計のまずい箇所なので、場当たり的に直せるかどうか自信が無い。待ってもらえるなら、次のメジャーバージョンで修正したいところだが。
他にも、またなんだかんだと要望を言われてきたらしいが、大して必要性があるようには思えないので「そのうち」カテゴリーに分類。

このごろは、棚上げになっていた機能の設計をしている。この機能は、結構ややこしく、テストもしづらく、しかもマルチスレッドがからむのでバグがあると固まりやすい。コーディングの前にしっかり考えておく必要がある。にもかかわらず、仕事場は集中して物を考えられるような環境では無かった。席が屋上に登る階段のすぐ脇にあるため、誰かがドアを開けるたびに寒気が吹き込むのだ。しかもその階段の上は喫煙場所になっていて、冷気と一緒に副流煙も吹き込んでくる。喫煙処での話声も聞こえるし、タバコを吸っている社員に電話がかかってきた時には、ドアを開けて呼び出さなければならない。しかも近頃は社内の喫煙者は増加傾向にあるのだ。
かように頻繁に邪魔が入って、そのたびに思考が中断されるので、やってられなくて複雑な機能は棚上げにしていた。このごろになってそういった設計をやり直しているのは、寒さがだいぶ和らいできたのと、電話の呼び出しなどの面倒なことを無視するようにしているからだ。そのために手間をかけさせてしまっている社員がいるのは心苦しいが、いい加減に自分の仕事をこなさなければならない。私にとって喫煙者は迷惑以外の何者でもないが、おそらく本人達に自覚は無いのだろう。いっそ社内を完全禁煙にしてくれればいいのに。


それはともかく、今日はデータストリームを正しく分配する方法を考えていた。データストリームは測定装置からPCに送出される。データストリームには測定データが順番に詰め込まれているのだが、その順番は測定装置の設定によって変化する。受信したPC上ではこのデータの並びを正しく振り分ける必要がある。
最初は紙に描いて考えていたのだが、複雑すぎるのでRubyでプロトタイプを作って考えてみた。やはりこういう時にRubyは楽だ。もっとも、調子に乗ってRubyっぽく書いてしまうと後でC++で書き直すのが面倒なので適度にC言語っぽく書いているところある。