投擲

2008/01/23

このところ、本業の酷い激務に追われて、人としての生活の全てが犠牲になっている。一年近くかけて作ってきたシステムが本番稼働したと同時に無数の障害が発生して、その対応に追われているのだ。

しかも、ただ現れた障害に対応し続けているばかりではない。障害時に備えてデータを保護するための機能だとか、縮退運転時にユーザ操作を支援するための機能などを同時に作らされている。無論、その間にも障害は発生するから、その暫定対策及び原因追及も同時にやらなければならない。

それだけではない。どう考えたって障害とは何の関係もない新規機能を、障害対応という名の下にロハで作らされている。それも、到底考えられないような短納期で対応しろと抜かす。500stepの改修が一晩で終わるわけがないだろうが。馬鹿野郎。しかも、自分たちの日程が合わないからといって、勝手にどんどん納期を短くするんじゃねぇ。

テメェらのヒラめいたオナニー機能を実装しているせいで、肝心の原因追及は全く進まないし、それどころか暫定対策もままならず、おまけに無理矢理作り込まされた奇妙な機能のせいで、新たな障害が発生するし。

挙げ句の果てには、明らかにおかしい部位があるから修正させてくれと言っても、なんのかのと難癖を付け改修を許可しない。どう見てもこれは、只で開発をやらせるための口実を温存しようとしているとしか考えられない。

他にも、一度障害の起きた端末は使いたくないとか言い始めるし。ここまでくればもう、純粋な恐喝以外の何物でもない。なぜ、実行プロセスが異常終了したらPCを新しいものと交換しなければならないのだ。ただ単に、新品のPCが欲しいだけじゃネェか。

確かに、作られたシステムの品質は悪い。それについてはこちらに非があるのだろう。しかしだからといって、その弱みを握って金品を要求したり、ありもしない不具合について言いつのり、物品を脅し取ったりすることが許されるのだろうか。ただ個人の楽しみの為だけに無意味な無理難題を押しつけ、開発要員を無駄に疲弊させるようなマネが許されるのだろうか。

会社としては、お客のシステム担当のチンコをしごいておけば、訴訟リスクを軽減することができるかも知れないと考えているのだろう。確かにそうかもしれない。だが、そのズリネタにされる俺らは一体どうなるんだ。身も心も摩耗して、後に残るのは魂の抜け殻だけだ。俺は、そんなのはお断りだ。

結局、残業代なんてまともに出やしないこの会社では、働けば働くほど損をするのだ。そう思うと全くやる気など出やしない。ありもしない自分の責任を果たすつもりにもならない。客が困ろうが損をしようが、会社が賠償金を支払らおうが何しようが、俺には関係ない。

ヤクザ対応はヤクザ好きにやらせておけばいいのだ。俺はもう、この仕事はやりたくない。隣の奴は数日前から姿を消した。俺もそろそろ、それに倣うことにしよう。

Unicode

2008/01/01

とりあえず、Shift-JISとEUC-JPについては、それっぽい自動認識機能を実装することができた。認識対象とするエンコード名を優先順位と共に入力させ、はっきりとそうだといえる場合には然るべき結果を返し、複数の可能性が残る場合には優先順位に従って結果を返す。同じ優先順位のエンコードが複数残った場合には、判断がつかない旨のメッセージを表示する。

条件がややこしく作りにくかったが、結果として何とかなった。後は動作確認をどうするかという問題が残されてはいるのだが。

それはいいとして、とりあえずそれっぽく動くようになったから、今度はUnicodeの判定を行うロジックを作り始めた。だが、これがまた難しい。

今更な話ではあるのだが、やはりUnicodeは文字コードの規格としては非常に複雑で難しいものだと思う。はっきり言えば見苦しい。そもそも、何で同じUnicodeの中にあんなに沢山の種類のエンコード方式があるんだ? というかUTF-8って、ありゃ一体なんなんだ?

愚痴はいいとして、Unicodeらしきテキストを読み込んだときに、それが本当にUnicodeのテキストとして正しいか否か判断する方式について考えてみる。

まず、UTF-8ならUTF-8でエンコードされたデータを読み込み、それを元にUnicodeのコード値とかいう値を求める。この時点で入力データがおかしいと判断できる可能性がある。

次に、得られたコード値がUnicodeの文字として正しいか否かを判断するには、Unicodeの標準として公開されているコード値の一覧と付き合わせて、存在する値か否か判断する。

面倒なことこの上ない。

しかも、単純なビット演算により正誤を判断できないため、処理時間が長くなる恐れがある。特に、コード値の一覧とのマッチングには十分に注意しなければならない。

この辺りはまだ実装していないが、何らかの高速な処理方式を実装しなければならないだろう。

全く、面倒なことこの上ない。