雑KiN3-改

ここは自分にとっての過去ログです。すなわち、他人にとっては単なるゴミ。

 楽しい楽しい移植作業は漸く走らせられるところまで到達した。午前中に不足している設定ファイルを探索してきて、それらを入れて起動したのだ。するとすぐさまセグメンテーションフォールトで落ちる。抜けていた環境変数を追加したりとかデバッグプリントを入れたりとかして追って行くと予想もしなかった落とし穴もあったりして。1例を挙げるとCの文字列操作のライブラリ関数だがstrcmpと言うのがある。ある文字列を別のところにコピーするしろものだが、元の文字列が空の場合に昔は問題なく抜けてくれたようだが今はエラーとなる。多分、セキュリティ対策で処理が変更になったんじゃないかと思う。よって空の場合のチェックを追加したりとか文字の長さを指定してコピーするものに変更したりとか色々と手管を使う。そのほかのエラー原因として走らせているマシンのホスト名が当然のことながら違うので起動しないとかオラクルとの接続がハードコーディングされていて、それまた違うとか。


 確かにそれらを作った時点では決め打ちでハードコーディングしても構わないとされる。作るのはベテランの外注であったりしても、それを引き取ってメインテナンスするのは入社したばかりの新人だったりせいぜい数年と言うプログラムには詳しくない者があたることになるのだ。下手に高性能なプログラムを作ってもメインテナンスする方のレベルが低いから対処できない。勢い、ハードコーディングも仕方が無いと言うことになってしまう。


 若いときはプログラムを作ってもある程度経ったら外れて管理に回るというのは、会社の持つ技術力を無駄に落としているわけだ。長年かけて蓄積しないと身につかないレベルの技術ってある。それを無視しているのだな。また、それと作らないモノづくりと言う概念があって、カスタマイズするだけで望みのものを得ようというのがある。これは間違った考え方ではないし今回のも下手に移植するよりも出来合いの機能に任せられればそのほうが簡単なはず。ただ、どうさの判定条件が複雑すぎるんでカスタマイズの範囲を超えてしまっている。そこでロートルを呼び出して移植する羽目になるのだな。作らないわけにはいかないということ。


 そう言う訳でもう完全に移植どころか作り直しなところも多々あったりして。それと文字コードとシェルの問題が。Linuxなのに何でEUCcshなの、というやつだ。LinuxならUTF-8bashでしょ、と。今までがEUCcshだったからと言うので言われたとおりにしてきたのだが、ここまで手を入れることになるとな。それにデフォルトと異なるからツールの設定を忘れて文字化けしてしまうというのがある。コンパイル自身はUTF-8でも問題ないしな。まあ内部でちょっと気になるぶbんはあるが、それ以外のところは文字コードは関係無いし。また、シェルは関連するシェルスクリプトがshだから、今までもcsh上でshシェルで走っていたわけだし。と言うことでiconvして文字コードを変換するシェルスクリプトをものの数秒ででっちあげて走らせる。正規表現を使えないとこれは1日仕事になる量だったが、それを理解できる人間が身の回りにいないからなぁ。ちと虚しい。出来たものは勝手にローカルに立てたgitリポジトリに入れておく。マスタはsubversionだが、そちらはネットが別系だから一旦バージョン管理から抜いてtarボールにして持って行って、という作業が要る。ちょっとあれだ。


 そうこうして、やっと動き出した。でも、データがないのだな。Oracleに突っ込むデータを作ったり、突っ込むための接続設定をしたりとか、まだまだやることは多いのだった。