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/でアクセスできるはずです。
質問のエチケット
- ・質問掲示板は質問を投げるところです。質問を投げるからには何かわからないことがあるからに決まっています。
そこに来て「わかりません」とか「おしえて〜〜」とかいう題名はナンセンスです。
それよりかは「〇〇に付いて教えてください」とか「**の設定について」など、質問の具体的な内容が見て取れる題名を付けるべきです。
質問に答える人も「内容が何だかわからない」といって閲覧を避けるかもしれません。
- 基本的に、有料会員制のところを除けば、質問に回答してくれるのは親切な「先輩」です。
彼らは何かの見返りを期待するのではなく、ただ「自分も昔は初心者だった。そして誰かに教えてもらってここまで来る事ができた恩返しをしよう。」という事で質問に答えてくれています。(多分)
質問にすぐ返事がないからといって短気を起こしたり非難したりすることは失礼です。
その辺は常識的な「礼儀」をもってやり取りしてください。
- また、誰かが回答してくれた答えやヒントで自分の問題が解決したら必ずお礼と解決までの経緯を掲示板に返答しましょう。
答えてくれた人は問題が解決した事を知って安心するでしょうし、その解決方法の公開は次に同じ問題で悩む誰かを助ける事になります。
- 質問の内容も、ただ「エラーが出ます。何とかしてください。」では何が何だかわかりません。
確かに「何が何だかわからない」から質問してくるのかもしれませんが、それでは「何が問題なのか」すら回答者には伝わりません。
5W1Hってありますよね?そこまで行かなくてもとりあえず。
・ 箱庭のバージョン、タイプ
・ 改造しているのかいないのか
・ どこに設置したいのか(プロバイダー、サーバ)
・ どんな現象が起こっているのか、そこに至るまでの経過はどんなか?
・ エラーメッセージが出る場合は何と出ているのか?
・ Perlチェッカーの出力は何と出ているか?
・ 最終的にどうしたいのか?何を知りたいのか?
これらをなるべく簡潔にまとめてください。(がんばって!)
- CGIでエラーになる場合に多いのですが、CGIのソースを掲示板に載せて「どこが悪いのか指摘してください」というのは掲示板の容量を食うのでやめましょう。
どうしてもソースコードを見てもらいたい場合は、拡張子を.txtなどに変えたファイルを自分のサーバスペースに掲載し、掲示板にはそのリンク(URL)だけ載せるようにしてください。
(掲示板の発言をクリックしていきなりソースコードがズラズラと出てくると思わずブラウザをクローズしたくなります)
- CGIの使用条件に抵触するような改造や設置に関する質問は原則的に公の場で質問するのは止めましょう。
箱庭で言えば、配布元の注意書きで「無料系サーバへの設置は禁止」と書いてあるので、「Freewebに箱庭を置きたいのですが……」という質問はやめましょう。
また、チャットCGIの設置を禁止しているサーバでは大抵重たいCGIも設置禁止のはずです。チャットが禁止されているサーバには、たとえそれが有料レンタルであったとしても、箱庭は設置しないようにしましょう。
- また不当に邪道な改造(例えば、他人の島の計画が覗ける隠しコマンドを作るにはどうしたらいいか、とか)の質問もできればやめた方がいいと思われます。モラルに反します。
- お互い顔は見えなくても「ここは公共の場所で、相手には礼儀正しくしなくては」という心がけを忘れないようにしましょう。
特に、何か気に食わない事を言われて「バトルモード」になってしまう人々をまれに見かけますが、単に醜いだけで他の人にはうっとおしいので本気になって喧嘩しないようにしましょう。
文章だけでやり取りしているので本の些細な語尾・表現でニュアンスががらっと変わってしまいます。
つまらない事でトラブルを引き起こさないように、書いた文章を「送信」する前に必ず一度読み直しましょう。
- いつまでたっても返事がこないからといって、掲示板の管理人や回答の常連の人にメールで直接質問を投げるのは止めましょう。
その為の掲示板ですし、回答者には回答者のプライベートがあるのです^^;
掲示板の主催者も主催者なりの事情がありますので、メールのすべてに答えるわけにはいかないのです。
本人たちが質問メールを受け付ける意思を示していない限り、質問メールを投げるのは止めましょう。
(っていうか、私の場合、そんなに詳しいわけではないので、投げられても答えられません(爆))
大前提
どんなにエチケットを守っても「言葉が通じない」とお話になりません。回答者のフラストレーションもたまります。
質問をする場合、特に初心者の場合、拙作・CGIの設置に関する最低限の基礎知識(コラム001)を読んでから質問するようにしてください。
「パーミッションってなんですか?」と質問しても黙殺されるのがオチでしょうし、パーミッションも分からないでそもそも箱庭はおろかカウンターさえも設置できるわけがないのですから……。
心構え
ここの駆け込み寺でもそうですが、基本的にインターネットの世界は「自己責任」の世界です。
今の所インターネットには「国家」だの「法律」だの言った堅苦しい概念はありません。
ただ、それだけに「自己防衛」「自己練磨」「他人への思いやり」がとても重視されます。
逆に言えばそれらがインターネットの法律なのかもしれません。
CGIについて何かわからないことがあったら、周りの人にヒントを求める事はできても手取り足取り教えてもらう事は「できない」と考えておいた方がいいでしょう。
自分のHPで「やりたい事」は自己責任の範囲内ですし、それを越えた事をやろうと思ったらまず自分の技術レベル・知識レベルをそこまで引っ張り上げなければなりません。特に箱庭諸島のようにサーバに負担をかけるようなスクリプトをインターネットの世界に放とうとするには、単にCGI設置の知識だけでなく、そこに集まる人々のケアですとか、「管理人」としての使命が重くのしかかってくるのです。
「重複登録」や「騙り」や「荒らし」にあなたは「管理人」としてガイドラインを定め、それを監視しなくてはなりません。
あなたのページが正しく適切に管理されていない事は単にあなたの責任と言うだけでなく、箱庭諸島、あなたのプロバイダ、ひいてはインターネット世界のイメージや信用を失落させ、インターネットを楽しむべきあなたやあなたにかかわり人々を不愉快な気分にさせるでしょう。
これは決して大げさな表現ではありません。誰でも最初は初心者です。
しかし、「誰かに助けてもらう」からにはそれをモノにし、次にそれにつまづく誰かを助けなければなりません。
インターネット社会の一員として。