昨日うまく動かなかったRubyスクリプトの原因調査。調べている途中で、Rubyスクリプトを走らせただけでWindowsXPブルースクリーンになってビビッた。
どうやら参考にしたシリアル通信のソースに原因があったらしい。このソースでは、データを受信するときに受信サイズを指定せず、関数が呼ばれた時に受信バッファにあるだけのデータを読んで返す仕様になっている。なので受信するときは全てのデータをバッファに受信するまで待ってやらないといけない。
バッファに全部溜っていない時点で関数を呼び出すと、データは途中までしか読み出せない。本来は読み出したデータ(文字列)をsplitなどで切り出すが、途中でとぎれた文字列では、場合によっては区切り記号がなかなか見付からずにsplitの結果が非常に大きな(長い)文字列になることがある。おそらくこのせいで後の処理でメモリ範囲エラーが起こったのだろう。
これを避けるには、待ち時間を十分に取るか、あらかじめ受信するサイズを決めて受信処理を行えばよい。もしくは終端文字列を受信するまで受信処理を繰り返すようにしてもいいかも知れない。

気が滅入る

なぜか今日は精神が不安定。うつ状態の頃と同じくらい気分が沈んで緊張性の頭痛がする。
以下グチ注意。
急に会社がすごく嫌になった。一体上はどこまでソフトウェア開発を嘗めているのだろうか?
これまでたった一人で開発・テスト・メンテ・マニュアル書きまでやってきた。競合他社では同様の製品を最低でも10人前後で開発しているところを、こちらは一人で踏ん張ってきた。
他の社員にはこちらが必要としている知識もスキルも無いのでほとんどあてにできない。自分の部下なら時間をかけて力をつけてもらうこともできるが、他の部署の社員に「勉強して手伝ってくれ」とも言えない。そもそも彼らには彼らの仕事がある。

訳が分からないのは、同業他社2社の競合品の代理店をやっているということだ。(他社の開発人数などはこれで知ることができた)しかも他社製品のカスタマーサポートに1人の人員を充てているにもかかわらず、社内開発に充てているのが技術者が1人だけということ。

以上のことからは、社内開発より代理店販売に力を入れているとしか思えない。ならばいっそ内製を止めて代理店に徹すれば良いだろうに、利幅が大きいからと社内開発をあきらめようとしない。

他社と張り合うにはいくらなんでも戦力差がありすぎるから、それなりの技術のある人を増やしてくれ、なんなら代わりに自分が辞めてもいいからと、社長や上司に何度も訴えたが、何も決断してもらえない。会社の支援は全くと言っていいほど得られず、結局自分一人で苦戦を続けるしかない。せめて仲間がいればしんどさも共有できるのだろうけど。

一人で負け戦を続けるのに疲れた。

今ふと気が付いたが、もしかして自分が鈍感だっただけで、これは退職に追い込むためのいやがらせなのだろうか?
もしそうなら、そんな手間をかけなくてもそう言ってもらえばすぐ他所を探すのに。