← 先月分 | 翌月分 →

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

開発日記 (2001年08月分)

2001年08月09日

Code Red 騒動

いや,これを騒動と言わずして何と言おう。 日本がこれだけ大変なんだから欧米はさぞや, と思いきやそうでもなかった。 これじゃ日本のユーザが凄くマヌケみたいだなぁ (^^;)

Code Red II は特に質が悪い。 勤務先でもルータのログが大変なことになっている。 うちは外からのリクエストを一切遮断しているのでまだマシだけど, ルータ落っこちちゃったところも結構あるらしい。 って,ルータ設定用のWebサービスを外向けに開けるなよ! マヌケだなぁ。

一段落したら統計とってみよ。

あちこちのサイト/ページで色々反応が違ってて楽しい。 が,皆さん結構 「噂」 やマスコミのいい加減な報道に翻弄されてるようで。 「中村正三郎のホットコーナー」 とか特に酷いし。 (って,まぁあそこはいつものことだけど) Microsoft はそんなにマヌケじゃない。 Microsoft の Code Red に関する公式ドキュメントはちゃんとある。 対策だってそんなに難しくない。 セキュリティパッチあてるときは (Windowsでなくても) 普通こういう手順でするでしょ? Microsoft 以外では 「Code Red II についての警告」 がお薦め。 ルータ/ファイアウォール管理者とかは見た方がいい。 今日の日付で更新されてるので (前に見た人も) もう一度チェックした方がいいぞ。

IEEE802.11b

以前日記で書いた悪口を会社でも言ったら, 無線LANについて調査する羽目になってしまった。 とほほほほ。 取り敢えず予備学習として以下の本を買う。

たまたま入った本屋で他になかったので買ってしまった。 まるっきり知識のない人向けの本だが, お薦めはできないか。 1年前に出た本で旬を外してる感じもするし。

しかし, WEPはつくづくマヌケだなぁ。 規格策定段階で誰も止めなかったのか? (暗号理論の専門家をワザと無視したとかいう噂もあるらしいけど) 大体このご時世にRC4ちうのもアレだけど。 対称暗号鍵をユーザが手動で 「書き込む」 ってのも凄いし, その同じ鍵をノード内の全てのコンピュータが 「共有」 して 「使い続ける」 ってのも凄い。 凄すぎる。 こんなユーザをなめた 「標準」 仕様があっていいものだろうか。

ISAACの例の資料から, 7月のブラックハット会議の資料 (スライド) へ辿れる。 必見である。

2001年08月11日

職業プログラマーはハッキングできるか

山根さんのところから 「システム開発におけるハッカーの倫理についての考察」 をダウンロードして読んでみる。

ページ数の制約があるそうだが, なかなか面白い。 「コンピュータ依存症」 呼ばわりされている時代ってのは, 自分の中では, 実はあまりリアルじゃなかったり。 文字通り 「手動」 でコンピュータをブートする話や, 紙テープやカードに手で 「パッチ」 をあてる話など色々聞いてはいるけれど。

それはともかく...
日本企業だけの特殊事情なのかも知れないが, コンピュータシステムの開発手法は製造工場の現場のそれに倣っている。 その製造工程の中では, 表向きは色々批判されているものの, プログラマーは人月勘定で定量的に計上できる 「コスト」 に過ぎない。 管理職や役員・経営者は生産性の高いプログラマーをより好む傾向がある。 生産性が高いプログラマーとは, モノを安定供給でき, 定量的に計算できる (つまり管理しやすい) 人材を指す。 技術的に優れているからといって生産性が高いとは限らない。 逆に生産性が高ければ技術的に特に優れてなくてもかまわない。 ヤバそうなら頭数を揃えればいいのだ (と思っている)。 まっそういう状況だから私のようなものでも何とか食っていけるんだけど。

プログラマーなら誰だって色んな手法を試してみたいし, できたものをもっと多角的に評価してみたい, と思うのではないだろうか。 でもそれは製造工程の中では許されない。 それは企業の中では調査とかマーケティングとか言われるものであり, 「他人の縄張り」 なのだ。 工場の部品はモノを考えてはいけないのである。

ハッキングによる開発手法が優れていることは認めるし, 実際に実用的な成果を上げていることも知っている。 しかし, それを企業の現場に持ち込むのはかなり無理がある。 少なくともトップダウンで意識改革から断行し, 開発手法のみならず製造工程やマーケティングを含めた広い範囲を見直す必要があるだろう。 例えば, 最低5年は採算を度外視した 「第七騎兵隊」 みたいなのをつくるとか。 成果評価も半年とか1年とかいった短いタイムスケールじゃなく, 3年とか5年とか長めにしないと。 Linux だってはじめの頃はオモチャみたいなもんだったし。 (最近のは使ったことないから知らん)

教育現場

そう言えば, ここ近年新卒で入ってくる新人君がとてもつまらない。 (もっとも最近は諦観状態だが) 何でそう思うのか自分でもよくわからなかったのだが, 今年たまたま4,5月にOJTで新人君と組むことになり, この機会によく観察してみることにした。 スケジュール的に遅れても自分でリカバリできる程度のボリュームだったので, できるだけ放ったらかしにしてみる。 (まっ私がリーダやる時は大抵放ったらかしなのだが)

改めて気づいたのだが, 彼等は 「言われたことしかやらない」。 つまらないと思ったのはこの辺か? その代わり仕事をこなすのはすこぶる速い。 これを 「問題解決能力が高い」 と言っていいものだろうか。 与えられた課題をただ解くだけの行為に評価を与えるべきなのだろうか。

ある程度経験を積んだプログラマーなら, ある機能を実装しようとする際に即座に3つや4つくらいのロジックを思いつくのではないだろうか。 解は1つとは限らない。 っていうか大抵の場合, 複数解があるのがプログラミングの面白いところであり, それを探す作業がプログラミングの本質だと思う。 そこまでできればコーディングなんて実に退屈なルーチンワークだ。 (「プログラミングの中ではデバッグが一番楽しい」 と言う方がおられるが気持ちはちょっと分かる。 仕事でなきゃね)

まぁ,でも, 職業プログラマーとしては彼等は (現時点では) 有望なのかも知れない。

コーディング規約

先日やったチャットは面白かった。 ひとりは課長さんでSE。 もうひとりはフリーのプログラマー。 私は契約社員だけど,専属なので,まぁ会社所属の職業プログラマーといえる。

SEってのは各社で定義が違っていて実体がない言葉である。 本当は 「システム設計をする人」 くらいの意味なんだろうけど, そんなの今時のプログラマはみんなやるので, 私がSEと書くときは 「プロジェクト管理者」 程度の意味である。 実際SEの仕事の90%以上はプロジェクトメンバや客との折衝である。

3者3様の立場でこの手の話をすると盛り上がる。 その時は, 派遣で来てた男の子が書いたプログラムにダメ出ししたら来なくなったという話から, コーディング規約の話まで。

確かに最近は,一部の大手を除いて,コーディング規約なんて作らなくなった。 書式を統一すれば読みやすくなると思うのは錯覚に過ぎない。 どんなに奇麗に書いても他人のコードは基本的に読みにくいものである。 逆に (私のコードみたいに) どんなに汚いコードでも自分のコードなら読める。 (3年以上経つと自分でも読みにくくなるけど)

コードを 「解読」 する作業は一見無駄なコストのように思えるが, 上記のように統一書式で書いても結局読みにくいので, コーディング規約を作る作業の方が無駄なコストといえる。 前にも書いたけど, 他人のコードが読めるようになって一人前ちょっと手前 だよね。

2001年08月13日

FIPS 186-2

仕事サボって GnuPG 関連の調査。 (何やってンだか) 8/3 にDSSのドラフトが公開されている。 2/6 に報道された, DSAの実装上の問題点についての修正がされているようである。 どうせ半分も分からないんだろうけど, 取り敢えずダウンロードしておく。

PGP/GnuPG 鍵の寿命

PGPの鍵は長く使っているほど信頼性が高いと言われる。 実際 JPCERT/CC なんか1997年に作ったRSA鍵を今だに使っている。 しかし, アルゴリズムや実装の問題が指摘されていく中で, いつまでも古い鍵を使い続けるのはどうなんだろう。 1対1の個人的なやりとりならそれでもいいのかもしれないけど, 業務に使ったり, ネット上で放送形式のメッセージを送る場合に, 欠陥があると分かっている鍵を使い続けるのは問題のような気がする。 かといって頻繁に鍵を変えるのは信頼関係を結ぶ上でどうかとも思うし。 まっ, 期限付きにすればいいんだろうけど, そうなると 「鍵の寿命」 はどのくらい,ということになる。 今の状況だとせいぜい1,2年くらいじゃないだろうか。

多分, 年内に上記のDSAの欠陥を修正したバージョンが出そうな気がするので, それを待って自分の鍵を一新しようかな。

手直し

「わかる! PGP暗号 (笑)」 を修正。 これで一段落か。

2001年08月14日

GPGrelay 0.75

いや, GPGrelay なんてものがあるとは知らなんだ。 これならMUAの方で無理にPGP/MIMEを実装することもない。 ダウンロードして試してみたが, なかなかのできである。 設定等で融通の利かない部分もあるが, 充分使えるのではないだろうか。 なにしろお手軽なのがよい。 今後に期待大だ!!

WinPT 0.3.3

ついでに WinPT の最新版もダウンロードする。 これも最初の頃は 「う〜ん」 だったけど, 最近はかなり使えるようになっている。 基本的にショートカットキーでしか他のツールと連携が取れないのが惜しいところ。 コマンドラインとかでファイルの暗号化/復号化あるいは署名/検証ができるといいんだけどねぇ。 Win32環境ならCOMちう手もあるんだけど, セキュリティ面で難がありそう。

2001年08月16日

CGI

最近 C でCGIなんぞ組んだりしている。 しかも, UNIX系とWin32の両方をサポートしないといけない。 いや, もう本当に勘弁して欲しい。

まぁそもそも (C++ですらなく) C で組むこと自体どうかと思うが, CGIのあの入出力仕様は堪えがたいものがある。 今時パイプなんて使うなよう。 アナクロニズムの極致。 BkGnuPG をいじってる時も痛感したが, パイプってUNIX系プラットフォーム依存の機能だよね。 確かに DOS/Windows もパイプの真似事みたいなことはできるけど, あくまでも真似事であって互換性があるとは言いがたい。 標準入力からバイナリデータが出てくるのを見ると目眩いがする。 _setmode 関数でバイナリモードに切換えないといけないことに気づくまで, しーばらくかかってしまった。 (いや,客先で資料が少なくてさ) プロセス間でデータの受け渡しするんならもっとスマートな方法がいくらでもあろうに。

そもそもWebアプリケーションを 「無理矢理」 Windowsプラットフォームに実装すること自体に疑問を感じてしまう。 サーバサイドアプリなんだからUNIX系でいいぢゃん。 Linux だってそこそこ使えるんだしさ。

街に出て色々文献をあたってみたけど, 「CGI=Perl」 なのね。 「Perlでもできる」 んじゃなくて 「Perlじゃなきゃダメ」 みたいな。 ひょっとしてこれが最大の罪なのかも。

こう言っちゃ何だが, VBとCGIには早めに引退していただきたい。 Perlなんて意地でも覚えないことに決めた! (下っ端にやらせる)

そうか

問題解決能力じゃなくて課題解決能力か。 なるほど。 そういうことなら, 新人君にそこまで要求するのは難しいか。 問題 (目的) 発見能力って, 適正もあるんだろうけど, それまで積んできた経験も大いに影響するだろうし。

まっ, おいおい解るでしょう。 (解って欲しい)

2001年08月22日

ビザールって

「伽藍とビザール」 よかった, 私の考え方って異端じゃなかったのね。 おんなじ事考えてる人がいるんだもの。 全ての悪は sh だと思うぞ。 sh を捨てない限り, どれだけ崇高な理想を掲げてもマイノリティの戯言にしかならない。

MinGW

そろそろ BkGnuPG の開発をはじめたいんだけど, 今だに MinGW のセッティングに手間取っている。 っていうか, sh のセッティングができないんだけど。 Cygwin を入れれば簡単なのは分かってるけど, 私の目的は Windows を UNIX 化する事ではないので (そのつもりなら真っ新から Linux でも入れた方がはやい), 他の方法を模索している。

しかも例によって本業の方が月末締めで忙しくなるし, 無理難題は言われるし, 流川のイベントも目白押しだし, どーせーちうねん。

2001年08月30日

てくてくTeX

最近, 社内向けの文書をちまちま書いている。 面倒臭いので最近は HTML でスパスパっと書いてしまうのだが, 今回は紙に出力する事を意識して TeX (厳密には pLaTeX2e) で書いている。 久し振りでコマンド忘れてたり。

私が TeX を使い出したのは多分1992年か1993年頃。 勤務先が京セラプリンタ用のdviドライバの開発 (実際の開発は外注にやってもらった) と販売を始め, 私も一枚かんでいた。 (DOS用だし今は売ってない) 当時DOSで比較的まともに動く TeX は 「日本語MicroTeX」 くらいしかなかった。 しかも, 日本語MicroTeX に付属しているdviドライバがとても貧弱なものだったので, うちが売っていたあんなドライバでも大学関係を中心にそれなりの需要があったのを覚えている。

私は一発で TeX にハマってしまった。 何せ,フロッピのラベルまで TeX (厳密には LaTeX2.09) で組んでたのだから。 それまで私のドキュメンテーションは手書きが中心だったが, TeX に出会った後は環境が一変してしまった。

しかしDOSの特にフォントの環境は惨澹たるもので (NEC全盛時代でフォントはROM上に置かれるのが普通だったのである), あのころUNIXシステム (当時UNIXといえばSunかHPだった) を使える人が非常に羨ましかったことを覚えている。 UNIX MAGAZINE の 「てくてくTeX」 とか読んで自前でSunが買えるくらい稼ぎたいと思ったものである。 (当時はめちゃめちゃ高かったの!)

こんなDOSユーザの悶々とした気持ちが多少なりとも晴れたのは DOSがWindowsになってインプレス社から 「TeX for Windows」 が発売されてからだった。 いや, 感動したねぇ。 指定したとおりの大きさで文字が出力されるんだもん (^^;)

これで完全にUNIXへの未練はなくなった。 (他にも当時UNIXを取り巻く状況には暗澹たるものがあって,すっかり嫌気がさしていたのだ)

TeXを使うようになると文章レイアウト (つまり組版) に対する考え方が変わる。 UNICODEなんぞがいかに極悪なのかも理解できるようになる。 DOSからWindowsにかけてあらゆるワープロやDTPソフトを試したけど, TeXを超えるものは無いように思う。 (UNIX互換プラットフォームにはある?) TeX (および日本語対応の jTeX, pTeX) によって組版 (特に日本語組版) 規則はプログラミング可能であると証明されたのに, 今だにちゃんとした組版規則を実装したワープロ/DTPがないのが不思議である。

新ドキュメントクラス

実は私は (上記のような経緯があったので) 今まで LaTeX2.09 時代に自作したスタイルファイルをずうっと使いまわしてきた。 (ASCII TeX 標準の日本語用のスタイルファイルはヘボいのだ) でも今年に入って自宅職場の両コンピュータがクラッシュしてしまい, 新たにインストールし直したのを機会に奥村晴彦さんの jsclasses を使ってみることにした。

素晴らしい! 今更だけど, こういうのを見るとWebブラウザのレイアウトエンジンがいかにヘボいか分かる。 CSSだけではフォローしきれない 「問題」 がWebブラウザにはある。 というか, Webブラウザが日本語組版の基本規則を知らないからなんだけど。 インターネットを 「言語」 でゾーニングするなら, 世の中に出まわってるWebブラウザはほぼ欧米の舶来品であり, 本質的な部分で 「日本語」 を理解していない。 きっと他の言語圏でも同じだろう。

2001年08月31日

献本ありがとうございます

帰りに会社寄ってみたら 「iP!」 10月号が机の上にあった。 そういや, そんなやり取りあったっけ (^^;)

こういう機会でもないといわゆる 「パソコン雑誌」 って見ない。 「iP!」 はなかなか良い。 これは完全にWebサービスの 「通信販売カタログ」 だな。 どうせならこのくらい徹底してたほうがいい。

ちうわけで, BkGnuPG「iP!」 10月号の CD-ROM からもGETできます。

タブ型ブラウザ

Lunascape はなかなかいい感じ。 なんで Mozilla をタブ型にしないのか不思議。 UNIX互換プラットフォームでは難しいのかな? んな訳ないよね。 タブ型ブラウザを使い出すと, 普通の (Windowsでいう) SDI なブラウザなんかかったるくて使う気がしなくなる。 サイドバーなんか要らないからタブつけてくれ! 良いものは真似しなくっちゃ。

目につくもの色々

今日 (8/31) の 「セキュリティホールmemo」 はなかなか盛り沢山:

今見たら BkGnuPG のページのカウンタが10,000を超えていた。 何事? ベクタからのダウンロードも200超えてるし。 何かあった?


[Top Page] [日記最新版]