...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

お仕事のためのプログラミング

うちの職場では,PCを使いこなす知識はまったくいらない.そもそも事務作業がないから雑務にPCを使う必要がない.基本的にそのPCは,あらかじめ決まった目的に合わせて作られたシステムのインタフェースであり,

  • 車両状態をチェックする試験機
  • 車両が出すログを記録するデータベース
  • 日々の車両状態を報告するための印刷機

などの定型処理を行うソフトウェアを使うためだけのものだ.要するにうちらはユーザーなのだ.

ただ,これらのシステムは,かゆいところに手が届かないレベルの小さな問題や,操作ミスを回復できない大きな問題がある.ソフトウェアの動作を解析することによって,Windows XPに詳しい人ならば生データをいじることでなんとか操作ミスを回復できるようになった.でも,直接データを書き換える行為は危険だし,本来は誰でも簡単にできないといけない機能のはずだ.かといって,その程度の問題だけのためにソフトウェアの改修を依頼してお金を無駄遣いするのはもったいないし,そこまでするほどのことではないだろう.さあ,どうしよう.

ハッカーは言う。

「あるものを使え、ないものは作れ。」

オーケー,わかったよ.

そんなわけで,お仕事のためのプログラムを作った.それによって,

  • 不要データの選択削除
  • 二重書き込みなどによる重複データの削除
  • 2つのファイルに分かれたデータの結合

などが簡単かつ安全にできるようになった.処理方法を工夫した介があり,大量のデータを扱う割に重複データの削除が現実的な処理時間で実行できている.

使ったプログラミング言語は例によってD言語.今回のプログラミングのおかげで,GUIライブラリDFLを使ってアプリケーションを作ることに慣れてきたと思う.ただ,それなりのGUIアプリケーションを書いてみて得た印象は,やはりD言語は文字列の扱いが難しいということ.「書き換えるときはコピーしてから」の原則に従おうと努力したが,実際にどこでコピーすれば無駄がないのかを判断するのが難しいと思った.後は文字コード周りで面倒に巻き込まれやすい.char[]に代入した文字列がUnicode文字列として正しくないと実行時エラーになるのはありがたいのか迷惑なのか.

まあ,なんというか,要するに,腕を振るう場所がないから無理やり用事を作っているわけだ・・・.嗚呼,これを手段と目的の逆転と呼ばずになんと呼ぼう.