← 先月分 | 翌月分 →

Copyright © 2001 Yasuhiro (Spiegel) ARAKAWA
このページは GNS を使用して作成しています

開発日記 (2001年07月分)

2001年07月04日

今日のは長いぞ! 覚悟したまい。

TeX (for Windows) をインストールしよう

先日のクラッシュ以来懸案だった TeX のインストールを行うことにした。

ところで, ドキュメント環境なんてのは一度構築できてしまえばそうそう変えたりしないものである。 MS の Office 製品のように, 新パッチや新バージョンが出る度に適用しないと使い物にならない例もあるが... TeX についても, 前回アップグレードしたのが1999年 (!) である。 このときは, TeX → DVI → PDF という工程を要求されていて, 日本語の使える Ghostscript 環境を捜し回ったのであった。 (結局その後 Adobe Acrobat を購入したので,どうでもよくなったんだけど)

実は前回のクラッシュ時に, TeX 環境についてはほぼサルベージできていたので, 環境変数等を再設定すればそのまま使えたのであるが, あれから何年も経ってるし, ここはひとつ最新版を導入しようってなことになったのであった。

今回の目標は

である。

TeX ツールのダウンロード

さて, Windows 用 TeX 最新版を導入するにあたってチェックしなければならないページはたった2箇所しかない。

角藤さん奥村さん, こんな便利なページを公開してくださってありがとうございます。

TeX に限らないが, UNIX/GNU 関連のツールを Windows ユーザが使う際の最大の面倒事は 「ツール同士の関連性が分かりにくいし,そもそもファイルが多すぎる」 ことである。

実行モジュールが雑多すぎる点では今の Windows (および関連MSアプリケーション) も負けず劣らずだが, 少なくともユーザからはこの「雑多さ」が見えないようにうまくパッケージングされている。 (もっとも,このやり方がトラブル時に裏目となるのだが)

そういう意味では, Web2C 7.3.3 (Win32) ページで示されているパッケージングは非常にうまいと思う。 パッケージに関する詳細情報を得るは,まず 説明ファイル をダウンロードし, そこに示されている インストールドキュメント をダウンロードすべし。 この文書は, できれば紙に印刷して, いつでも見れるようにしておいたほうがよい。

今回のキーワードは 「日本語環境」 および 「PDF」 である。 そこで, 最少インストールと標準インストールのパッケージ群全部と, フルインストールから以下のパッケージをダウンロードすることにした。

いや, 「ダウンロード」 と簡単に言ったけど, 実は簡単ではなかった。 ダウンロード作業はテレホーダイ時間に (寝てる間に) 行ったのだが, どういうわけか匿名アクセスが時々 「拒否」 されるのである。 アクセスが殺到しているのか, あるいは何らかのセキュリティ上の制限をかけているのかも知れない。 おかげで全部ダウンロードするのに2晩かかってしまった。 ダウンロード作業は, もし可能であれば, 昼間 (飯時以外) をお薦めする。

私は NT/W2K 環境だが, 敢えてDLL版を導入することにした。 リソースキットはとうの昔に破棄している。

ちなみに Omega は全くのシャレで導入してみた。 当分使うつもりはないが, これから GNU 環境に関っていくなら UNICODE は避けて通れない道なので, いずれは使うことになるだろう。

その他のツールのダウンロード

TeX ツール以外では, 「Windows へのインストール」 ページを参考に以下のツールをダウンロードした。

Ghostscript って導入が (特に日本語環境が) すンごく面倒だった憶えがあるんだけど, 世の中変わっていくんだねぇ。

すわインストール

必要なパッケージをダウンロードすればインストール作業は大して難しくない。 「Windows へのインストール」 ページを参考に, TeX ツール → Ghostscript → dviout → WinShell の順でインストールを行う。 TeX ツールのインストールは比較的時間がかかるので, ここで coffee break だ!

dviout で関連ツールの設定を行うのだが, ディスク上に古いバージョンの環境を残しておくと誤検出してしまうので注意が必要である。 できれば, Ghostscript までのインストールの完了を確認した時点で, 古いバージョンやバックアップ用に残しておいたものは全部チャイしてしまうのがいいかも。 ツールの検出はドライブ名を昇順に検索していくので, Cドライブ以外に TeX & Ghostscript をインストールした人は, ここでも coffee break できる。 ちなみに,夏は水出しコーヒーがいいぞ! (これだからコーヒー依存症の奴は...)

WinShell の [Program Calls] 設定で [DVI PS] ツールに dvipdfm を設定した。 この場合 [cmd - Line] には 「%s」 のみ記述すればよい。 (悩んだんだってば!)

全てのツールが動作する事を確認できたらインストール成功である。 簡単簡単。

dvipdfm

dvipdfm の日本語化で, やっと Acrobat に頼らずともちゃんとした日本語PDF文書が作れるようになった。 実際, Acrobat Distiller を使うにしたって, いったんPSファイルに変換しないといけないのでリンク情報などが消えてしまい, あまり嬉しくなかったのだ。 私にとっては, 今回の一連のインストール作業で, 一番の朗報だった。

ドキュメンテーション

今やプログラマの仕事の最大比重はドキュメンテーションにあると言ってよい。 コーディングだって一種のドキュメンテーションなのである。

余談だが, プログラマとして 「オープンソース」 を主張してはばからないくせに, 他人に読めないソースコードを書く奴をみると 「帰れ!」 といいたくなる。 昔は (今もそう?), 自分の持ってるノウハウを盗まれないようにわざと難解なソースコードを書くやつが結構いた。 (特にメリケン国のエンジニアとか) そんな奴の書いたソースコードを引き継がされた日には, 怒りをとおりこしてもう踊るしかない。 (いや, 私のソースコードが読みやすいっちう訳じゃないけどさ。 私のコードが読みにくいのは,単純に技術的に拙いせいです。 すみません)

ドキュメントには2種類ある。 「クエリー」 型のドキュメントと 「ブラウジング」 型のドキュメントである。 ソースコードは一種のクエリー型ドキュメントと言えよう。 (日々ソースコードを「眺めて」暮らす人とはあまりお友達になりたくない) マニュアルも設計書もクエリー型ドキュメントである。 WWWプラットフォーム上のドキュメントも 「ほぼ」 クエリー型ドキュメントといってよい。 インターネット (あるいはそれに類するネットワーク) という環境は クエリー型ドキュメントの置き場所として最も適している。 今や「ネット」はクエリー型ドキュメントで溢れている。

TeX や PDF やその他のワープロソフトで書いた文書はどうだ? もちろんクエリー型として利用することもできるけど, やはりその真価はブラウジング型ドキュメントにあると言えよう。 プログラマがブラウジング型ドキュメントを書く場合とはどんな時だろう? それは相手 (主に上司や客) を説得する場合である。 相手を納得させるためのプレゼンテーションの手段が「ドキュメント」なのである。

私は職業プログラマである。 最近気がついたのだが, 「職業」 プログラマと 「真の」 プログラマの違いはドキュメンテーションにあるのではないか。 職業プログラマの書く仕様書や設計書や試験成績書など等は開発のためのものではない。 お客さんを説得し,納得させ,お金をもらうための「経文」なのである。 そしてそれらのドキュメントは間違いなくブラウジング型ドキュメントである。 上司やお客はそれらのドキュメントを文字通り 「ザッと眺め」 て, 形式があっていれば承認のハンコを押す。 そこに真実や事実などひとかけらもないのだ。

だから私は上司やプロジェクト管理者に声を大にして言いたい: 「そんなものはお前が書け!」
(いや,書いてくれてるプロジェクト管理者もいるけどさ)

2001年07月08日

ホントにこれで 「わかる!」 のか?

思いたって雑文書いてみました。 有識者からのツッコミをお待ちしております。 あぁ, そういや電子署名の説明いきなり間違えてるんだよなぁ。 明日直しとかないと。

2001年07月10日

共通鍵暗号処理時に署名データを含ませる方法

PGPの conventional + sign で共通鍵暗号化+署名を行うと, 復号化時に署名検証も同時にやってくれるので便利である。 しかし, GnuPGでは,--sign コマンドと --symmetric コマンドは同時に指定できないので, ひとひねり必要である。 手順としては

  1. 元メッセージに署名して中間ファイルに出力する。
  2. 中間ファイルに対して共通鍵暗号化処理を行う。

である。 このとき, 普通に暗号化処理を行ったのでは, 元データはただのリテラルデータとみなされてしまい, 復号化・署名検証を同時に行えなくなる。 そこで, 共通鍵暗号化処理時に --no-literal オプションを付加する。 これによって元データの 元メッセージ+署名 の構造を保持したまま暗号化処理を行うことができる。

早速訂正

「わかる! PGP暗号 (笑)」 の間違いを訂正した。 詳しくは末尾の 「変更・訂正履歴」 を参照のこと

2001年07月17日

PGP Tips

あじゃじゃ, 山根さんの日記で紹介されてる。 恐縮です。

BkGnuPG は, 基本的には Becky2 に標準で付いている BkPGP のリプレース版なので, 大した機能はないです。 いや, 色々要望はいただいてるんで次のバージョンは何とかしようと思ってるんだけど, PSOが忙しくって (←他人のせいにしようとしている)

BkGnuPG に添付している方の Tips で typo を指摘していただく。 しかし改めて読んでみると, 内容が古くなっているような気が。 でも, あっちのを修正する場合には, 日英同時に直さないといけないので, かなり気合が必要。


[Top Page] [日記最新版]