午前中は出荷する装置の梱包作業。前に梱包品のリストを作ったことがあったが、今回から装置の構成が変わるので変更が必要になる。また、今回の出荷先は海外なのでリストも英語にしておいた方が良いだろう。てなことで前回のリストを参考にして仮のリストを作り、それを実際の作業と突き合わせて手直ししていく。

午後からはこの前壊れた社内用在庫部品データベースの再構築の段取り。電子部品などの部品を探すのが面倒だったので、部品名から置き場所や社内コード番号を調べられるようにデータベース化した。このデータベースがこの間壊れてしまったのだが、最近は自分で利用することがほとんど無いので、ほかの社員から直してほしいと言われるまで放置するつもりでいた。ようやく今日になって依頼があったので少しずつs行を進めることにする。
最新の部品情報はMicrosoft SQL Server上にある在庫管理業務用のデータベースにある。WebサーバーのLinux機からこのデータベースを直接読めれば一番良いのだが、LinuxからWindows2003ServerのMicrosoft SQL Serverへの接続がうまくいかない。そもそも何故かWidnows2003上でSQL Serverが起動できない?!何がどうなっているのか分からないが、仕方がないので、面倒だが前回と同様に、在庫管理の端末でデータをエクセル形式で出力したものをOpenOffice.orgCSVに変換し、それをLinux上のMySQLに登録して検索に使うことにする。
今日は、在庫管理の担当者からもらったエクセル形式のファイルをCSVに変え、文字コードを変換したり文字列を整形したりといった簡単な作業を行うRubyスクリプトを作った。MySQLへの接続はまた今度。できればワンアクションでデータの更新(再構築)ができるようにしておきたい。

あまり業務改善作業に時間を取ってばかりもいられない。ほどほどで切り上げた後は、ソフトの外注先に送る資料とサンプルコードを書いた。こちらで作ったデータを先方のソフトで読めるようにしてもらうという案件だ。先方が夏休みの間にこちらで決めたデータフォーマットが少し変わったので、最新の仕様とその読み方についての資料を作って送らなければならない。
相手は海外の企業なので資料は英語で書かねばならない。前はフォーマットの仕様を英語で書いて送ったのだが、ちゃんと伝わったかどうか非常に不安が残った。資料を送った直後に先方がvacationに入って作業に着手されていないので内容が伝わったかどうかは不明ではあるが…。
今回は、仕様の説明ではなく、実際にデータを読むサンプルプログラムを書いて送ることにした。下手な英語でデータ空間の設計などの抽象的な内容を説明するよりも、実際に動くコードを見せた方が誤解を避けられるのではないかと考えたからだ。先方が開発言語に何を使っているのか不明(質問したが教えてくれなかった)なので、無難にC言語で書くことにした。
とりあえずはデータサイズが大きな場合は考えないことにして、ファイルを読み取るコードを書く。途中でデータを保存する側にバグを発見したので保存側ソフトもさくっと修正した。読み取りまでは完了した。後は1次元に並んでいるデータ列を3次元配列に解釈する方法と、データ中の値を実際の物理量に換算する方法を説明するコードを書けば良い。頭が疲れてしまったので続きは明日。