2005年3月28日
コード=ドキュメント
カテゴリー: [プログラミング]私は,コードを読みやすく書くことを常に心がけます.最初はいい加減に書いても,必ず,徐々に整理していきます.どんなにドキュメントを詳しく書いても,結局,コードが一番正確で詳しいと思っているからです.
ドキュメントをいっさい用意しないで,コード読め,っていうのは,もちろん勘違いですが,コードよりも,いろいろなドキュメントを書く方に注力するのは,大事なところを間違えていると思います.
ちなみに,私が書くドキュメントというのは,Javadocのように自動生成されたドキュメントとその補足,ユーザ向けの使用方法などです.ソフトウェアの種類や,その設計の内容によっては,設計の概略についてドキュメントも書きます.ただ,設計について詳しく書けば書くほど,コードが変わったときに,ドキュメントを追従させるコストが発生するので,一定以上に詳しくは書きません.
ただ,こういうことを誤解を招かずに説明するのは非常に大変です.その点,この文章は,非常にわかりやすいです.
ソフトウェア系の人には有名な Fowler さんの文章の日本語訳です.
Martin Fowler's Bliki in Japanese - コードがドキュメントだ
無駄なドキュメントというのは,結局読まない(読まなくても問題ない)ドキュメントや,読んでも意味が分からないドキュメントですね.
あとは,古くなって最新コードと一致していないドキュメントなんかは,害の方が大きいです.
こういう無駄なドキュメントというのは,結構あるようです.
詳細な実装なんかはコードを読めばわかるのですから,ドキュメントには,コードを読んでもわからないような,設計の大枠とか,設計方針とか,そういうものを書いておくべきものだと思います.
コードがあれば,自動で生成できるものについて,手で詳細なドキュメントを書くのも変な話です.
もちろん,設計過程でいろいろと書くものは別です.ただ,私はこれは,ドキュメントと言うよりメモだと思っていますが.
どこかで読んだ記憶があるものの受け売りですが,昔は計算機の環境が貧弱で,ソースをドキュメントとして使えるほどわかりやすく書くことができなかったので,フローチャート等のドキュメントが必要だったが,今はそういうことはなく,コードと重複するものを書く必要はないわけです.
ちなみに,フローチャートは,名前の通り,流れ(フロー)をもろに書ける(流れしか書けない)ので,構造化プログラミング以前のものですから,もう捨てるべきもののはずですが,未だに使っているところがあるそうなのです.この話を聞いたときには,ちょっとびっくりしましたね.あんまり,詳しくは書けませんが.
それが役に立つのかと言えば,きっとそんなことはないのです.結構な残業代を使って書いているんだろうなあ,と思います.
投稿者 shingo : 20:28 | コメント (1) | トラックバック
2005年3月26日
抗原テスト
カテゴリー: [日常]今日,病院に行って来てアレルギーの抗原を調べるテストをしました.
最初にもらった薬で症状はおさまっていましたが,その日は試しに5日分だけ薬をもらったので,もう薬が無くなりそうだったので,もう一度行って来ました.
テストは,腕に抗原のエキスを垂らしてから,針でなでるようにして皮膚に傷をつけて体内に入れます.そのまま,15分待ちます.待っていると,だんだんかゆくなってきます(^^;
暇ですので,ずっと作業を観察してました.13種類の抗原を調べたのですが,垂らすのは対照液を加えて14種類です.
15分たったら,液を拭き取って,赤くなった箇所の大きさを測っているようでした.アレルギーのある抗原の場所では,赤くなったり,蚊に刺されたようにふくらんだりするのですが,多かれ少なかれ,すべての液を垂らした箇所が赤くなります.(もちろん,アレルギー反応がある箇所がひどいのですが)
それで,対照液の箇所がどのくらい赤くなっているかを見て,それを基準とするようでした.
ふき取ったというのに,診察の後で見てみると,さらにひどく赤くなっていました.まだ,わずかですが跡が残っています.
ちなみに,結果はアレルギー反応の強い方から順に,ダニ,スギ,ハウスダストでした.
薬は,ザジテン という薬です.私が,昔,小児喘息だったころ,1年近く飲んでいた薬と同じものです.もう1種類,点鼻薬もあって,こちらは成分が「プロピオン酸フルチカゾン」,いわゆるステロイドのものです.これも,アレルギー性鼻炎で病院に行くともらう典型的な薬ですね.
薬が良く効いているようで,ほとんど症状が消えました.やっぱり,鼻が落ち着いていると集中できます.
車の運転中は,くしゃみで事故を起こしやしないかと心配したりもしました.絶対,くしゃみで起きた事故があるはずだと(勝手に)思っています.それとも,慎重になるから案外事故にならないのかな?
投稿者 shingo : 23:23 | コメント (0) | トラックバック
Eclipseの欠点?
カテゴリー: [プログラミング]この前,Eclipseについて,いろいろと書きましたが,今回は欠点についてです.
といっても,大したことではありません.普段は忘れていて,ほとんど文句などでないのですが,たまに思い出す重大な問題があります.
それは,重いことです.
もちろん,こればっかりはどうしようもないのですが.
それに,Javaのアプリケーションとしては軽い方ですし,そもそも速いPCなら,気になりません.
しかし,ノートPCで開発しているときは,本当に重いと思います.
今は,また実家に帰ってきているので,ノートPCで作業しているわけですが,Pentium III 800MHz メモリ 640MB の環境では,どうしてものろのろになります.メモリはめいっぱい積んでいるのですが,私の使い方だと,足りないようです.
まあ,私が普段から,マシンにかなり無理をかける使い方になれているというのもあるのですが.
このノートPCは,2年半くらい前のモデルですから,やはりいろいろと無理があるのでしょう.
もう一つ問題があります.これまた,Eclipseだけの問題ではなく,統合開発環境全般に言える問題です.それは,画面の広さ(解像度)を要求することです.
このノートPCは,1024x768 の解像度しかないので,左側にパッケージエクスプローラをおくと,かなりエディタが狭くなります.また,下にコンソールや,そのほかのビューをおくと,もう狭くて狭くてたまりません.
ですから,できるだけ広さを稼ごうと,エディタのフォントサイズは 8pt にしています.ただ,普通のフォントでは,8pt にするとつぶれてしまうので,つぶれにくいフォントとして,モトヤのフォントを使っています.
(ただ,どうしても判別しにくい文字があるのも事実ですが...)
普段は 20インチ,1600x1200 の液晶モニタでの開発ですので問題ないのですが,たまに狭い画面を使うと面倒です.ちなみに,20インチもあると,液晶なら,1600x1200 でもかなり小さい字まで判別できますので,さらにフォントを 8pt にして広さを稼いでいます.
やっぱり,今度ノートPCを買うときには,SXGA(1400x1050)の解像度にしたほうがよいかもしれません.
投稿者 shingo : 22:59 | コメント (0) | トラックバック
2005年3月22日
自宅サーバの消費電力
カテゴリー: [自宅サーバ]この前見つけたエコワットが,近くで売っていたので,サーバの消費電力を計ってみました.
実際には,サーバ,ADSLモデム,スイッチングハブ,無線LANの合計の消費電力です.
これで計れるのは電力量(kWh)です.これに加えて,測定開始からの経過時間,電気料金の概算が表示されます.ただ,私が知りたかったのは消費電力(W)なので,1時間ちょっと計ってから,時間から計算しました.
結果,だいたい80Wでした.UPSの負荷からも,消費電力がだいたいわかるのですが,それも70W~80W位になりました.
両者がだいたい一致したので,ほぼ80Wであっているんでしょう.
ちなみに,ハブ自体が,仕様では平均11.5Wの消費電力,無線LANが最大3.6Wらしいので,サーバ本体は,65W位ということになります.
どうでもいいですが,スイッチングハブの方が,無線LANより電力を食っているんですね.
このあたりの電気料金は,電力会社のページで分かります.
消費電力量に応じて,1kWh あたりの料金は変わるのですが,一番高い料金で計算してみると,サーバとネットワーク関係の消費電力は,一月で,
0.08kW × (24h × 30)(h) × 21.4410(円/kWh) = 1235円
になりました.
サーバ本体だけの分は,消費電力が65Wであるとすると,一月約1000円です.
このくらいは食っているんですね.だいたい予想通りです.一応,低消費電力マシンとして組んだ成果はあったようです.
投稿者 shingo : 19:25 | コメント (0) | トラックバック
2005年3月18日
迷惑メール
カテゴリー: [情報技術]ITmedia エンタープライズ:手元に届いた「イマドキの日本語スパムメール」実例編 (1/2)
多いですよねえ,迷惑メール(スパム).
以前,迷惑メールが増えてきた頃,道楽でフィルタを書いたことがあります.
最近,いろんなメールソフトについている,学習させるタイプです.私は,Becky を使っているので,そのプラグインにしてみました.(既存の物の存在も知っていましたが,まあ道楽なので)
このあたりの文献を参考にして適当に作りました.まあ,こういう資料があるから,作ってみようと思ったんですが.
A Plan for Spam
Better Bayesian Filtering
しかし,分かち書きが,かなりいいかげんなので,非常に弱い^^;
判定材料となる言葉の抽出がへたくそなわけです.最初の頃は,結構うまく動いていたのですが,最近はよく間違えます...
ただ,私の作ったフィルタがへぼというだけでなく(まあへぼなんですが),原理的に無理なんだろうなと思うメールも最近は多いです.
例えば,極端に短いメールです.判別に使える情報が少ないわけで,必ずと言っていいほど判別できません.また,間違いメールを装った,いかにも普通っぽいメールも,取りこぼすことが多いようです.
典型的な,アダルト系の迷惑メールはけっこう効率よくはじいています.
逆に,必要なメールを迷惑メールと誤判定することもあるのですが,だいたいは,大量の広告が入ったメールです.メールマガジンなんかに多いですね.言い回しがそっくりなことが多いので,迷惑メールと区別できないのでしょう.
まったく使えないわけでもないとは思います.公開できる性能じゃないですけど^^;
でも,正直言って,迷惑メールよりも多いのが,ウィルス付きのメールなんですけどね...
ISPがフィルタを入れたので,「検知しました」というお知らせメールしか来ないのですが,そのお知らせメールが大量にやってきます.
Netsky ばっかりです.これも何とかならないものなんでしょうかね...
投稿者 shingo : 23:24 | コメント (0) | トラックバック
花粉症@実家
カテゴリー: [日常]今日の夜,ちょっと実家に帰ってきたのですが,なんとなく,花粉症が悪化しているような気がします.
やっぱり,地域差ってやつがあるんでしょうか.
ものすごく距離が離れているというわけではないんですが.
投稿者 shingo : 22:16 | コメント (0) | トラックバック
2005年3月15日
電気代
カテゴリー: [自宅サーバ]PCの常時稼働が当たり前になって数年,今更気にする事じゃないのに,急に電気代が気になってきました.
というのも,エコワット という簡単な電力量計があることを知ったからです.
せっかく Pentium M でサーバを作って,省電力な構成にしたのですから,実際どのくらいの電力を使っているのか知りたくなったわけです.
つまり,単に測りたいだけかも.きっと,測ったら満足して終わるでしょう^^;
さて,どこに売っているかな.通販でもいいけど.
投稿者 shingo : 20:10 | コメント (0) | トラックバック
2005年3月14日
Let's note W2かY2か
カテゴリー: [その他]ずいぶん前から,Let's noteをほしいと思っていました.が,今使っているノートPCのHDDがクラッシュして,換装したばかりなので,しばらく保留していたんですが...
また,ほしくなってきました^^; 今のノートPCは,ちょっと遅い上に,液晶にドット欠けやら,変なシミやら,傷やらがあって画面が見づらいので.バックライトもへたってきているみたいですし.
これは以前ある人に指摘されたことですが,私が購入を迷っているときは,買うべきかどうか悩んでいるのではなく,いつ買うべきか悩んでいるだけなんだそうで.
昨日もパソコンショップに行ったとき,CF-W2 をさわってみました.
ほぼ満足なのですが,どうしても気になるのがキーボード.CF-W2 のキーボードは,縦横のピッチが違います.縦が 16mm で,横が19mm です.つまり横長なんですが,これがどうしても気になるんですよね.どうにも打ちにくくて...
例えば,実家に帰ったときなど,出先で作業する環境として使ったりすることを考えると,打ちやすいキーボードは必要です.いや,極端に打ちにくくなければ,特別打ちやすくなくてもいいのですが.
キーボードにこるなら,ThinkPad にしろと言われるかもしれません.まあ,その通りなのですが,何となくLet's note を気に入ってしまっているので...
CF-Y2 なら縦横とも19mmなので,今のノートPCと変わらず問題なさそうなんですが,Y2だと少し大きくなってしまいます.液晶の解像度が高いのは逆にいいんですけど.
今週末に実家に帰るので,本当はその前に買って,実家でセットアップするっていうのがいいかなと思っていたんですが,Y2 or W2 のどっちにするか,いつまでたっても決心つかないので,購入は当分先になりそうです.
投稿者 shingo : 17:54 | コメント (4) | トラックバック
2005年3月11日
再びAWStatsにセキュリティホール
カテゴリー: [自宅サーバ]ここを読むと,AWStats の 6.3, 6.4 にもセキュリティホールが見つかっているようです.6.2以前のものよりは,危険度は低いのですが...
すでに,開発版として6.5が公開されています.
アクセス解析を公開する予定もないことですし,AWStats を使うとしても,アクセス制限して使う方が良さそうです.
投稿者 shingo : 15:52 | コメント (4) | トラックバック
2005年3月10日
IEのダイジェスト認証のバグ
カテゴリー: [自宅サーバ]いままで,Webのアクセス制御にBasic認証を使っていました.これはパスワードが平文で流れます.
いつかは変えようと思っていたので,今回,Digest認証にかえたのですが,一部のページがIE(Internet Explorer)だと見られません.URLがマッチしないというようなメッセージとともに,400 Bad Requestになってしまいます.
リクエストとレスポンスを覗いてみたところ,URLがCGIを指していて,hoge.cgi?foo=bar のようにパラメータを渡している場合,IEの送り出すAuthorizationヘッダの,uri に ?以降が含まれないことが分かりました.最初は設定ミスかと思ったのですが,調べたら,どうも,これはIEのバグらしいのです.(HTTP クライアントを作ってみよう(6) - Digest 認証編 -)
Digest認証は,URLによってDigestが変わるわけで,これが間違っていたらお話になりません.
このバグ,いつまでたっても直らないそうで,Apache-2.0.51 から,これを強制的に回避するオプションが追加されたようです.
こんな風にして,UserAgent にMSIEが含まれている場合だけ,回避オプションをONにします.
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
ところが,私は何となくapache 1.3系を使っています.特に理由はないんですが.
mod_auth_digest にパッチでも当てようかと考えたりもしましたが,管理が面倒になるだけなので,すなおに apache 2.0 系に変えました.
しかし,Microsoft は何でこんな単純なバグを直さないのでしょうね.直すと互換性の問題が起きるというわけでもないだろうし.謎です.というか,どうやるとこういうバグを作れるのか^^;
MicrosoftのWebサーバであるIIS(Internet Information Services)は,どういう実装になっているんでしょう.こういうバグありのリクエストを処理できるんでしょうか.まあ,身内のソフトだから処理できるんだろうと思いますが...
せめて,このくらいは標準に従ってほしいです.
2005年3月 9日
質問サイトの問題点
カテゴリー: [情報技術]「はてな」などの人力検索というか,質問専用のサイトがはやっています.
Google で検索しても,引っかかることが多くなってきているように思います.
質問者にとっては便利なシステムだろうと思いますが,私には多少問題点があるように思えます.(ちなみに,私自身は利用したことはありません)
質問に限定したコミュニケーションですから,そこで議論になったりはしません.というより,回答者同士はコミュニケーションすることが禁じられます.
その結果,回答者の知識不足から,回答が不正確だった場合に,訂正不能になってしまいます.
回答を評価するシステムがありますが,回答の正当性を判断するのは,質問者だけになります.
この問題に拍車をかけるのが,締め切りというシステムです.質問者は,満足すると質問を締め切って,回答の受付を停止できます.このため,回答に問題があったとしても,後から閲覧した人は,それを訂正する機会を失います.
また,回答はまともでも,質問者からのお礼として書かれているレスポンスに,明らかに勘違いして理解しているコメントがついていても,締め切られたらおしまいです.質問者自身にも,また後から閲覧する人にも,訂正する機会がありません.
質問者が一人で自爆しているのははっきり言ってかまわないのですが,問題はこれらのログがずっと残ることです.検索で似たようなことを調べている人が引っかかったとき,誤りが拡大するおそれがあります.誤りだと知っている人が,それを後で指摘する手段がありませんから,これは止まりません.
はてなの人力検索には,締め切り後に,関連する議論をするための掲示板が出現するようですから,ある程度は防げるでしょう.しかし,これは他のサイトにもあるものではありません.
有益なログもあるので,もちろん,すべてを否定するわけではありません.
ちょっとした捜し物とか,人生相談とか,専門的な質問だとしても,たいていの人が答えられる初歩的な質問なら有益でしょう.
でも,(特に専門性の高い質問では)問題になる場合がありそうです.
投稿者 shingo : 02:32 | コメント (2) | トラックバック
花粉症な季節
カテゴリー: [日常]月曜日から花粉症の季節が本格的に始まってしまいました...
その日は,研究室で飲み会があったのですが,くしゃみがとまらず,ティッシュの箱をずっと抱えていました.
外出時にはマスクをするようにしたので,二日目はそれほどひどくはなかったのですが,相変わらずティッシュは手放せません.保湿ペーパーを買ったのですが,どんどん減っていきます.
保湿ペーパーを使っているにもかかわらず,ティッシュ・ペーパーによる機械的な摩擦で,すでに鼻の周辺の皮膚が,異常に乾燥,摩耗してきています.
これは,病院に行くべきかも.皮膚がこれ以上すり減らないうちに...
それにしても,うっとうしいです.ただでさえ少ない集中力が,落ちてしまいます.
投稿者 shingo : 01:04 | コメント (0) | トラックバック
2005年3月 7日
花粉症
カテゴリー: [日常]今日はひどいです.花粉症.
大学に来る途中,くしゃみが止まりませんでした.
数日前から,花粉症の予兆は感じていたんですが,今日は一気に来た感じです.
ニュースを見ると,今週は一気に大量飛散するようで...憂鬱です.
ティッシュを買いだめしておかないと...
大学生協の人,保湿ティッシュをおいておくと,売れ行きがよいと思いますよ(^^;;
ここ数年,症状がひどくなかったので,今年は大丈夫かと思っていたんですが,今年はそうもいかないないようです.花粉症になると,くしゃみや目のかゆみがうざったいだけでなく,体全体がだるくなるので,勘弁してほしいんですけどね.
やっぱり,スギが多いから,こういうことになるんですよね.スギばっかり植えた奴は誰だよ.
投稿者 shingo : 14:37 | コメント (1) | トラックバック
2005年3月 5日
論文書き...
カテゴリー: [その他]いま,まさにこんな感じな気がします.
はたして,本当に新規性があるのかどうか,ということは常に頭を悩ませるところです.
特に,ソフトウェアなんて,同じようなことをやっている人,企業などが多いですからね...
これでも読んでがんばりますか...
投稿者 shingo : 18:33 | コメント (0) | トラックバック
2005年3月 3日
ck(cygwin用ターミナルエミュレータ)
カテゴリー: [ソフトウェア]よさげな,cygwin用の端末エミュレータを見つけました.
私は仕事上,コマンドラインインタフェース(CLI)を使うことがおおいわけですが,Windows上でも cygwin をよく使います.
cygwin は,Windows のコマンドプロンプトから使うわけですが,この Windows 標準のコマンドプロンプトという奴は,お世辞にも使いやすいとはいえません.
たとえば,ウィンドウの大きさが自由にならない.縦にはのびますが,横にはのびません.また,ウィンドウとしても特別扱いされている物らしく,メッセージフックがかからないようで,仮想デスクトップツールや,キーマップ変更ツールなども,コマンドプロンプトのウィンドウには,効果が及ばないことがあります.
そこで,cygwinに入っている rxvt などの他の端末エミュレータを試したりしていたのですが,いまいちしっくりこなかったんです.
今回見つけた ck というのは,その点十分に満足がいく物でした.ついに見つけたっていう感じですかね.作った人に感謝です.
ちなみに,これは半透明のウィンドウが使えます.これもなかなかいいです.