No.002 : 掲示板への質問投稿作法

ここではCGI駆け込み寺も含めた「質問掲示板」への投稿の作法を説明します。
CGIがうまく動かなかったり、わからない事だらけだったりしてかなりあせってるのは良くわかりますが、あなたがそのまま何も考えずに「わからない!!」と叫んでも、それを見た人はもっと「わからない」のです。
効果的な質問はあなたの問題を速く解決する手助けになります。


戻る


質問者の心理

昔々、私が初心者だった頃、(当時の)パソコン通信のBBS(掲示板)に出入りするようになって、初めて質問をしたことがあります。確かMSXというパソコンのグラフィックプログラミングについてだったと思うのですが、今にしてみるととても簡単な事だったように思います。

内容は「〇〇というグラフィックチップの〜〜という機能を使いたいのですができません。誰か教えていただけないでしょうか?」みたいなものだったと思います。

が、待てど暮らせどレス(返事)は付きませんでした。
その後、偶然にも書籍でその情報を見つけることができ、実験の末解決する事ができたのですが、結局かなり長い時間が経たないとレスは付きませんでした。
やっと付いたレスは「***という本に出てるよ。」みたいなものでしたが、それは既に私が読んで実験していた本であり、あまり役には経たなかったということを覚えています。

初心者だった私は、
「みんなできる人たちばっかりだから、私の事はバカにしているのか?」
と思ったものです。

月日は流れ、いつのまにか私も人にパソコンの事やインターネットの事を教えるようになってしまいました。
すると不思議なもので、みんな初心者の人はとても理不尽な事ばっかり言う「甘えん坊」のような気がしてきました。

「そんな事は自分で考えろ!」「マニュアル読め!」「過去ログ読め!」と、日々悪鬼のように罵詈雑言を吐きたくなるのを抑えつつ、それでもやっぱり答えてしまうのです。

しかし、ふと気づきました。
「ひょっとしたら彼らは質問の仕方を知らないのではないだろうか……?」

そう考えるととても納得がいくのです。
確かに初心者の質問と、ある程度経験を積んだ人の質問にはある決定的な違いがあることに気づきました。
それは「解決するための材料」です。

確かに質問に答える人たちは経験を積んだ人たちですが、エスパーでも魔法使いでもありません。
やっぱり「言葉」を介してトラブルの状況を把握して、自分の経験のデータベースから一番適当であろう解決策を答えているに過ぎません。
どんな達人でもトラブル状況を把握できなくてトラブルを解決できる人はいません。

誰かにトラブル解決の手助けをしてもらおうと思ったら、まずそのトラブルを正しく伝えなくてはならないのです。

 

大前提

とりあえず、回答者がまず知りたいのは「何をしたいのか」という事です。
まあ、たいていの人は「箱庭を動かしたい」または「箱庭を改造したい」というのが普通なのでしょう。
「なんだあ〜」と思いがちですが、パニクってる時には以外に忘れがちです。特に、自分のやった事や経緯をだらだらと書いているとついつい忘れてしまいます。

そして、回答者が次に、そして最も知りたいのが「何が起こっているのか」です。
初心者は「それがわからないから質問してるんだ!!」と言いたいでしょうが、これはとても大事な事です。

例えば、車を修理工場に持って行ったとしましょう。
工場の修理工の人に「動かないんです」と言ったとして、修理工の人は何をすればいいのでしょうか?
エンジンがかからないのか、ギアが入らないのか、タイヤがパンクしているのか、はたまたシートに穴が開いて座れないのか、「動かない、動かせない」理由も様々で、それに対処する方法も様々です。
こう言われてしまったら修理工の人は全部をチェックしてまわってからでないと作業できなくなります。
CGIもおんなじです。

よく「動きません」とだけタイトルに書いて投稿してしまう人がいますが、それは回答者に「全部調べなくちゃいけないのか……めんどくさいな」という気持ちを起こさせます。
もし早めにレスが着いて欲しいならタイトルは具体的に書くべきです。
「わかりません、教えてください」は論外です。

サーバーエラー

厄介な事に、インターネットのWWWサーバは、CGIでのほとんどのエラーに「500 Internal Server Error」を返してきます。
perlの文法エラーも、1行目の#!/usr/bin/perlの書き間違いも、ファイルの転送ミスも、スクリプト内部の結果的なエラー(例えば、変数の最大値を越えてしまった)も、.cgiファイルの実行属性が許可されていなかったのも、データファイルが壊れていたのも、全部「500 Error」です。

あるスクリプトをアップロードして最初に実行させた時の「500 Error」はパーミッションの間違いだったとして、パーミッションを直した後にもまた「500 Error」が出るかもしれません。
「パーミッションの間違いを直したのに直らない!」と思うかもしれませんが、実は単純なperlの文法ミスなのかもしれません。

ここで重要なのは「切り分け」です。
切り分けとは、エラーが何で起こされているのかを特定する作業です。

慣れてくればカンやそれまでの経緯で切り分けができるようになってきますが、なれないうちはCGIチェッカーを使うのが最も効果的でしょう。
telnetが使えるのであれば、perl -cで文法チェックをかけるのもいいかもしれません。
CGIチェッカーはあっぽーさんのホームページ(http://appoh.execweb.cx/)などで入手可能です。
(これもCGIなので、これが設置できない人はあっぽーさんのHPを良く見るか、CGI入門の本を買いましょう^^;)

ちなみに、CGIチェッカーの一部やperl -cでのチェックでは英語で結果が表示されます。
「英語は読み飛ばしてしまう」ということは誰もが良くやる事でしょうが、解決のためには我慢してちゃんと読みましょう。そんなに難しい英語じゃないはずです。

経緯は?

特に改造系に多いのですが、何をやったかを言わないでただ「わかりません」で済まそうとする人がいます。
独自な改造をしていればしているほど他の人にはこの人が何をやりたがってるのかわかりません。
「ゴール」とダブる部分があるかもしれませんが、「元はどこから入手した何で、」「バージョンはXXで、」「どのファイルの何行目(もしくはルーチンの名前)あたりをいじって、」「最終的にはこういう風にしたい」という事を明確にしないと、回答者は何をしてあげればいいのかわかりません。

また、初心者に多いのは、「設置したんだけど動きません」です。
「設置した」と一言で済ませてしまっている中でも、「ソースファイルの入手」「自分のマシンでの修正」「何で修正したのか」「FTPでのアップロード」「アスキーモード・バイナリーモード」「漢字コード」「アップロード後のパーミッションの設定」などなど、たくさんの作業が含まれているはずです。

最低限でも、
・どこから入手した、バージョン何か?
・修正しているテキストエディターは何を使っているか?
・漢字コードは何か?
・FTPソフトは何か?
・ファイルのパーミッションは何にしたか?
・フォルダのパーミッションは何にしたか?
ぐらいは押さえてから質問しましょう。


環境

コンピュータ用語で、プログラムを動かすマシンやOSやサーバーの設定状態の事を「環境」と言います。

同じCGIであっても、違うプロバイダーに持っていくと動かないかもしれません。
あるいは、同じプロバイダーでもどのディレクトリに設置するかによって動きが変わってくるかもしれません。

少なくともCGIプログラムの質問をする時は、
・プロバイダーはどこか?
・CGIは許可されているか?
・許可されているパーミッションは何か?
・CGIを設置するディレクトリに制限はないか?
・プロバイダーで設置されているperlのバージョンは何か?
・プロバイダーのperlのパスは何か?
ぐらいはチェックしておきましょう。

また、NIFTYのようにCGIとHTML、イメージを別のサーバーに置かなくてはならないようなところもあります。
プロバイダー自体で箱庭の設置に対して自動的に禁止処理がかかるようなところもあるようです。
注意してプロバイダーからもらったハンドブックや、プロバイダーのホームページをチェックしてみてください。
プロバイダのホームページは、例えばあなたのサーバースペースのURLがhttp://www2.hogehohe.com/~funya/ だったとすると、大体 http://www.hogehoge.com/でアクセスできるはずです。

質問のエチケット

 

大前提

どんなにエチケットを守っても「言葉が通じない」とお話になりません。回答者のフラストレーションもたまります。
質問をする場合、特に初心者の場合、拙作・CGIの設置に関する最低限の基礎知識(コラム001)を読んでから質問するようにしてください。
「パーミッションってなんですか?」と質問しても黙殺されるのがオチでしょうし、パーミッションも分からないでそもそも箱庭はおろかカウンターさえも設置できるわけがないのですから……。

 

 

心構え

ここの駆け込み寺でもそうですが、基本的にインターネットの世界は「自己責任」の世界です。
今の所インターネットには「国家」だの「法律」だの言った堅苦しい概念はありません。

ただ、それだけに「自己防衛」「自己練磨」「他人への思いやり」がとても重視されます。
逆に言えばそれらがインターネットの法律なのかもしれません。

CGIについて何かわからないことがあったら、周りの人にヒントを求める事はできても手取り足取り教えてもらう事は「できない」と考えておいた方がいいでしょう。
自分のHPで「やりたい事」は自己責任の範囲内ですし、それを越えた事をやろうと思ったらまず自分の技術レベル・知識レベルをそこまで引っ張り上げなければなりません。

特に箱庭諸島のようにサーバに負担をかけるようなスクリプトをインターネットの世界に放とうとするには、単にCGI設置の知識だけでなく、そこに集まる人々のケアですとか、「管理人」としての使命が重くのしかかってくるのです。
「重複登録」や「騙り」や「荒らし」にあなたは「管理人」としてガイドラインを定め、それを監視しなくてはなりません。
あなたのページが正しく適切に管理されていない事は単にあなたの責任と言うだけでなく、箱庭諸島、あなたのプロバイダ、ひいてはインターネット世界のイメージや信用を失落させ、インターネットを楽しむべきあなたやあなたにかかわり人々を不愉快な気分にさせるでしょう。
これは決して大げさな表現ではありません。

誰でも最初は初心者です。
しかし、「誰かに助けてもらう」からにはそれをモノにし、次にそれにつまづく誰かを助けなければなりません。
インターネット社会の一員として。


戻る

Tsubasa.S
Copyright (C) 2000  [Himajin] All rights reserved.
更新日 : 2001/04/06 .