68user's page 掲示板

Prev< No. 1105〜1173> Next  [最新発言に戻る] [過去ログ一覧]
No. 1105 # ふくし [E-mail] 2000/08/22 (火) 20:35:27
>68userさん

あれー、会社のApache1.3.9と自宅に構築中のApache1.3.12は
期待通り(というか期待を裏切ってというか)Content-length:13 を返しますねー。

これって最近話題になった改○○ー○を勝手に変えてくれる問題ですか?

No. 1106 # gongo [E-mail] 2000/08/22 (火) 22:52:29
@68user様
カラーマップについては私も調べているのですが、
どうもよくわかりません。ただ、少なくとも私の環境では
ビジュアルクラスがTrueColorとなっているため
カラーマップを書き換える事ができないようです。

>とあります。たぶん、rgb:f/f/0 = rgb:ff/ff/00 =
>rgb:ffff/ffff/0000 ですね。
>ちなみに rgb 表記は X の色が指定できるところならどこでも使えます。
〜省略〜
>なので、この環境だと 256*256*256 で 1677万色

ということはrgbを二桁(00やF0)で表せば必ず指定した通りの色が
でるのでしょうか。そうなるとなぜ四桁(FFFFなど)で表現する方法も
あるのでしょうか。逆に四桁だとカラーマップにないという事態に
なる確立が高まってしまうのでしょうか。
それと256*256*256というのはどこからわかるのでしょうか。

う〜ん、もう少し考えてみます。

No. 1107 # has 2000/08/23 (水) 00:37:34
いつもながらおかしな質問だったらごめんなさい。
perlでプログラムを作っていて、whileの中に置いたdo-whileの中で
ある条件のときはlastでdo-whileを抜けようとしていたのですが、
うまくいきませんでした。
結局いろいろ調べているうちに、lastはdo-whileをループと見なして
いないらしく、その外にあるwhileを抜けてしまっているということが
わかったのですが、これはそういうものなのですか?

No. 1108 # 68user 2000/08/23 (水) 01:59:41
@ふくしさん
> 改○○ー○
ではないんです。答えを書いちゃうと
    - $tmp = "tmpfile.$$";
    + $tmp = "/tmp/tmpfile.$$";
です。あほらしくて泣きそうです。


@has
そういうものだと思います。perl では
    do { block } while (expr)
の do は直後のブロックを実行するための命令で、
while は修飾子です。要は
    foo if ( expr );
と同じ形なわけですね。これはループではないので
last も next も redo も使えません。まぁ、
    { do { block } while (expr) }
とすれば大丈夫ですが、そこまでして do〜while を
使いたいかという話になりますか。


@gongo さん
> ということはrgbを二桁(00やF0)で表せば必ず指定した
> 通りの色がでるのでしょうか。
じゃなくて、X の内部では RGB それぞれ16ビットだけど、
16ビット×3なんていちいち指定するのがめんどくさいだろうから、
    1. ユーザは色名 (red とか) で指定できる
    2. ユーザは rgb:x/x/x rgb:xx/xx/xx rgb:xxx/xxx/xxx という
         簡略化した形式で色を指定できる
とした、ということだと思います。どの指定方法でも
XAllocNamedColor の内部で RGB それぞれ 16ビットの
色情報に展開されると。
# X のソースを持ってるなら GetColor.c あたりを
# 追っかけると、展開方法はわかると思います。

> XAllocNamedColorの一番後ろの引数には指定した色の
> 正確なRGB値が入るとのことなので調べたところ、
> Red=0 Green=0 Blue=61680 となっていました。
ということは、rgb:00/00/f0 は rgb:0000/0000/f0f0 に
展開されたということですね。

で、その 16ビットに展開した色情報が本当に使えるかどうかは、
カラーマップや X サーバ次第、ということです。

> ビジュアルクラスがTrueColorとなっているため
> カラーマップを書き換える事ができないようです。
TrueColor だと XAllocColorCells でプライベートカラーセルを
取得できないんでしたっけ? もしできないとしたら XCreateColormap
と XInstallColormap を使うんですかね (わかってない)。

> depth って、1色ごとの bit 数じゃなかったかなぁ。
これは違いました。多分。depth は1ドットごとのビット数です。

ところで、gongo さんはカラーセルを使って何をしようと
思っておられるんですか?

No. 1109 # ふくし [E-mail] 2000/08/23 (水) 02:04:17
>68userさん
あそっかぁ、、ぼくはこれを動かすために cgi-bin を 733 にしました。(^^;

>has さん
68user さんも書かれてますが、do の外側をさらに { } で囲むとあら不思議、
実行できるようです。

No. 1110 # has 2000/08/23 (水) 14:37:10
68user & ふくしさん、どうもありがとうございました。
{}でくくればいいなんて、なんか不思議な感じがします。

No. 1111 # gongo [E-mail] 2000/08/23 (水) 15:57:01
@68user様

> じゃなくて、X の内部では RGB それぞれ16ビットだけど、
> 16ビット×3なんていちいち指定するのがめんどくさいだろうから、

ということは二桁で表現するというのは本来0から65535なものを
大雑把にわけているということでしょうか。だとしたら大雑把に
分けているやつぐらいカラーマップに必ずあってほしいものですが・・・。

> # X のソースを持ってるなら GetColor.c あたりを

こ、これってどこにあるのでしょうか。

> 取得できないんでしたっけ? もしできないとしたら XCreateColormap
> と XInstallColormap を使うんですかね (わかってない)。

確かプライベートカラーセルは取得できなかったような気がします。
XCreateColormap や XInstallColormap についてはまだちょっと
詳しいことがわかりませんので本を見てみます。

> ところで、gongo さんはカラーセルを使って何をしようと
> 思っておられるんですか?

色を正確なRGB値で自由自在に扱いたいと思っております。
そして最終的には色の探索をするようなプログラムを作りたいと考えております。

以前お見せしたプログラムでは中央に窓を1個、
周りに10個の窓を表示しました。
で、各窓にはいろいろな色の服を表示しました。

具体的には中央の窓の服をターゲットとして、
周りの10個の服からユーザーがターゲットに最も近いと思われる
1つの服を選び、それによってあるアルゴリズムを通して
10個の服の色のRGB値をターゲットの色に近づけるように
改善したいと考えております。

1.服の提示(各窓の描画)
2.ユーザーによる選択
3.あるアルゴリズムを通して10個の服の色のRGB値を改善

この1から3の操作を繰り返すことで、提示されている10個の服の色が
ターゲットの服の色に収束していくようにしたいと考えております。
また実験段階なのでターゲットを表示しますが、
最終的にはターゲットの表示をやめ、ユーザーが心に思い描いた色へ
収束するようなアプリケーションを作りたいと考えております。

ここで問題なのは正確なRGB値を入れてもその色がカラーマップにない場合です。
近い色で勝手に代用されてしまうと、3で用意したアルゴリズムでの有効性
(いかによりよい色へどのくらいの回数で収束するかなど)を確認したいのに
別のところで収束する要因がうまれてしまうことになってしまいかねないからです。

No. 1112 # gongo [E-mail] 2000/08/23 (水) 19:30:47
@68user様
カラーマップの内容を知るための例みたいなのが本に載っていたので
試してみました。以下のtmp[k]はXColor構造体です。
尚、この例はRGB各32階調カラーマップのカラーセル内の表示色値を得る
といったものだそうです。

-----------------------------------------------------------------------------
    cmap = DefaultColormap(dummy_dpy,dummy_screen);

    for(k=0; k<32; k++)
        {
            tmp[k].pixel = k | k << 5 | k << 10;
            tmp[k].pad = 0;
            tmp[k].flags = DoRed | DoGreen | DoBlue;
            XQueryColor(dummy_dpy,cmap,&tmp[k]);
        }
-----------------------------------------------------------------------------

で、結果的に

-----------------------------------------------------------------------------
Red=0 Green=0 Blue=0 Pixel=0
Red=2114 Green=2114 Blue=2114 Pixel=1057
Red=4228 Green=4228 Blue=4228 Pixel=2114
Red=6342 Green=6342 Blue=6342 Pixel=3171
〜省略〜
Red=61306 Green=61306 Blue=61306 Pixel=30653
Red=63420 Green=63420 Blue=63420 Pixel=31710
Red=65535 Green=65535 Blue=65535 Pixel=32767
-----------------------------------------------------------------------------

といったようにPixel値が32767まできました。
ということは私の環境では 32*32*32=32768色 が
カラーマップにエントリされているようです。
実際 Red=61306 Green=4228 Blue=6342 などのように
色を指定したところ、XAllocColorを通してもRGB値が
変化しませんでした。

TrueColorということでカラーマップを書き換えられないので
この範囲内でうまくやりくりするしかないのでしょうか・・・。
XCreateColormap と XInstallColormap について
本を見てみましたが、まだよくわかりません。

No. 1113 # にゃ 2000/08/23 (水) 22:11:47
>あほらしくて泣きそうです。
なるほど。やはりopenの返り値は常にチェックすべきなのですね。(^_^;

しかし、こういうライブラリを作っておくと便利そうですね。
勉強になりました。

No. 1114 # 68user 2000/08/24 (木) 00:43:20
えっと、手短に返答をば。

@has
> {}でくくればいいなんて、なんか不思議な感じがします。
そうか、よく考えてみれば、変な仕様なんだな。
でも、ちょっと試してみましたが、next/last/redo が
そのまんま使えるわけでもないようで。


@gongo さん
> ということは二桁で表現するというのは本来0から65535なものを
> 大雑把にわけているということでしょうか。
です。ちと調べてみたところ、rgb:e/8/2 ってのは
    e は 14/15 なので、ffff の 14/15 = 61166
    8 は 8/15 なので、ffff の 8/15 = 34952
    2 は 2/15 なので、ffff の 2/15 = 8738
で、rgb = 61166/34952/8738 になるようです。

> 確かプライベートカラーセルは取得できなかったような気がします。
これはやはりできないようですね。

> こ、これってどこにあるのでしょうか。
例えば http://www.ring.gr.jp で「R6.4」などというキーワードで
探せば、http://ring.etl.go.jp/pub/X/opengroup/R6.4/tars/
行けます。

XFree86 など各種 X サーバというのは、(基本的には) これに X サーバの
実装を追加したものです。こっちのソースは例えばここ。
    http://ring.etl.go.jp/pub/XFree86/

> 近い色で勝手に代用されてしまうと、3で用意したアルゴリズムでの有効性
> (いかによりよい色へどのくらいの回数で収束するかなど)を確認したいのに
> 別のところで収束する要因がうまれてしまうことになってしまいかねないからです。
なるほど。でも、色が足りないのは根本的には仕方がないですよねぇ。


@にゃ さん
>なるほど。やはりopenの返り値は常にチェックすべきなのですね。(^_^;
ですね。ちなみにこれまでで一番はまったのは CGI やりはじめの頃。
    open(IN,"foo |");
ってのが動かない。理由は foo が core dump してたから、ってのです。
コマンドラインからは動くし、nobody 権限で動いていたから core が
できないので core 吐いてることがわからないという…。


@YAGI さん
> ロードアベレージ部の1分、5分、15分のところに表示される
> 0.09などといった値は何を基準に表示されるのでしょうか?
FreeBSD の w(1) から引用すると、
    平均負荷は、最近の1分、5分、15分間における実行キュー内の
    ジョブ数の平均値を表します。
です。すいませんが、わからなければ再度質問して下さい。
# これを説明し出すと長いんだわ、これが。

No. 1115 # gongo [E-mail] 2000/08/24 (木) 01:39:36
@68user様
いろいろありがとうございました。

>なるほど。でも、色が足りないのは根本的には仕方がないですよねぇ。

なので、カラーマップに存在する色だけを使って動くように
頑張ってみます。今後とも宜しくお願い致します。

No. 1116 # 68user 2000/08/24 (木) 02:17:51
>> なるほど。でも、色が足りないのは根本的には仕方がないですよねぇ。
> なので、カラーマップに存在する色だけを使って動くように
最初は TrueColor でも XCreateColormap/XInstallColormap で
いけるんじゃないか思いました。でも、手元のサンプルプログラムが
ことごとく動かないので、やっぱり TrueColor でもダメなのかと
あきらめかけました。ところが、X の設定を 8bpp (depth8) に
変えて PseudoColor にしても同じくサンプルプログラムが動きませんでした。

というわけで、サンプルプログラムがダメなのか、もともと
TrueColor だと不可能なのかはわかりませんでした。

ちなみに何をしたかったかと言うと、
    - netscape の起動時に -install オプションを付けると、
        マウスが netscape の中に入ったときだけカラーマップが
        変更され、netscape だけが色を独占できる
    - その代わり、netscape 以外の部分の色はちょっと変になる。
    - マウスを netscape から外すと、netscape の中の色が変になり、
        それ以外の色が正常に戻る
というようなやつです。

No. 1117 # gongo [E-mail] 2000/08/24 (木) 18:38:46
@68user様
> 最初は TrueColor でも XCreateColormap/XInstallColormap で
> いけるんじゃないか思いました。

私も本をみて XCreateColormap/XSetWindowColormap/XInstallColormap
といった感じで動かしてみようと思いましたが、うまくいきませんでした。
本の例をまねてXCreateColormapの2番目の引数(window)を
DefaultRootWindowにしたがまずかったのか、実行すると窓が画面左上に出て
動かせなくなってしまいました(ウィンドウマネージャが動いていない!?)。
窓の表示位置がおかしいのはともかくとして、肝心のRGB値がどうなったかというと
XAllocColorの後にやはり近い値に置き換えられたと思います。

しかも、プログラムを終了して、そのプログラムを書き換えようとmuleで
開いたらmuleが勝手に画面左上に行って動かせなくなってしまいました。
で、あわててXUninstallColormapをプログラムに書き加えて
再度実行したら元の状態に戻りました。
う〜ん、難しいです・・・。

それとちょっと思ったのですが、showrgbで表示される全ての色は本当に
カラーマップに存在するのでしょうか。結構数値が細かく変わっている
ところもあるので、本当にあるのかなぁと疑問に思いました。
それとも256*256*256を本当に表示できる環境を想定して
細かく用意されているのでしょうか。

No. 1118 # YAGI [E-mail] 2000/08/25 (金) 14:18:23
>68user様
レスありがとうございます。
大体のイメージは浮かぶ事が出来ました。
ただ、また質問となってしまうのですが、
その数値(0.01)はどれくらいの値になっていれば
高負荷がかかっているといえるのでしょうか?
やはり、1.00以上だと高負荷なのでしょうか?

No. 1119 # 68user 2000/08/25 (金) 21:55:26
以下の説明には多分何個・何十個もの嘘がありますが、「ここは
嘘かもしれない」と注釈を付け出すと、全部に注釈を付けるはめに
なるので、略。ツッコミは歓迎します。


まずは基礎知識。

プロセスにはいくつかの状態がありますが、簡略化して、以下の4つを考えます。

    実行状態   … まさに CPU がそのプロセスの処理をおこなっている状態
    実行可能状態 … CPU は同時に複数の処理をできないので、CPU が現在
                               実行しているプロセスの処理を終えるまで待っている状態
    入出力待ち  … ディスクに書き込む/読み込む命令を出した後、ディスク
                               コントローラからの「終わったよ」という知らせを
                               待っている状態
    sleep 状態  … sleep を使っているか、デバイスやソケットを見張っている
                               (listen や select や read している) が、まだデータが
                               届いていない) 状態

プロセスは必ず上記のうち1つの状態を取ります。


さて、本題。

load average というのは、ある瞬間の「実行可能状態のプロセスの個数」
の平均です。個数ですから整数なんですが、平均を取るので、0.12 などと
いった小数になります。

例えば
    0:00:00 の時点での実行可能状態のプロセス数が3
    0:00:01 の時点での実行可能状態のプロセス数が0
    0:00:02 の時点での実行可能状態のプロセス数が1
なら、load average は 4/3 = 1.33 です。これは3秒間だけプロセス数を
数えましたが、最近1分、5分、10分のそれぞれのプロセス数の平均を
取ったものが、top や uptime で表示される load average です。

つまり、
    - load average が 1 なら、常に CPU が何かしらの処理をしている。
        CPU が遊んでいる時間がない。
    - load average が 1 未満なら、実行可能状態のプロセスがない
        瞬間がある。その間、CPU は遊んでいる。
    - load average が 1 超なら、実行可能状態のプロセスが多く、
        待たされているプロセスがある。
ということです。

# あくまでも平均なので、本当はそうでない瞬間が多くあるでしょう。


だからといって、1 を閾値 (いきち) として負荷が低い/高いと
言っていいかというと、多分違うと思います。


なお、
    A.「変数を1ついじくって 1秒 sleep する」という処理を永遠に繰り返す
というプロセスと、
    B.「変数の内容を1増やし続ける」という処理を永遠に繰り返す
というプロセスでは、負荷が全く違います。

A は、実行可能状態から実行状態に移ると、変数を1ついじくって、
すぐに sleep 状態に入ります (実行可能状態でなくなる)。1秒経つと
再度 実行可能状態に移ります。

B は、実行可能状態から実行状態になると、変数の内容を1増やし
続けます。一定時間が経過すると、カーネルが強制的にプロセスを
実行状態から実行可能状態に戻します。

B のようなプロセスを実行すると、load average は大体 1 だけ
上がるはずです。なぜなら、B のプロセスは入出力待ちも sleep も
しないため、「常に実行可能状態になり得るプロセス」だからです。

たとえば C でもシェル上でもいいので、無限ループするだけの
プログラム
    % while (1)
    while ? end
を実行すると、load average が大体 1 上がり、もう1つ同じのを
実行すると さらに 1 上がるでしょう。

No. 1120 # CZ 2000/08/28 (月) 14:09:34
つかぬことをお聞きしますが,"リンク集のリンク集"のSSIはいつ動作するようになるのでしょうか。

No. 1121 # 68user 2000/08/28 (月) 17:04:12
おろ、いつのまにか止まってやがる (笑)。というか、SSI が効いてないのか…。
ウチに帰ったら直します。御指摘どうもです。

No. 1122 # 68user 2000/08/29 (火) 00:34:09
> SSI が効いてないのか…。
8/28 AM8:30 ごろから5時間ほど、SEGA BBS の過去ログの CGI に
199.172.149 あたりから怒涛のアクセスがあったようです。
apache のログを見ると、500 エラーが 9000件ほど記録されてました。
# トップページのカウンタも、壊れてもうた。

どうもそれ以来 apache の動作がおかしく、一部のページで SSI が
動作していないようです

CGI 側で同時起動の制限が必要なのかもしれませんね。

ま、こういうこともあるということで。

No. 1123 # とも [E-mail] 2000/08/29 (火) 06:18:52
皆様 始めまして。 ともと申します。
UNIX暦 3ヶ月の超初心者です。

スクリプトを書いておりますが、そのスクリプトのあるステップでどうしてもユーザーをスイッチしなくてはいけない事になってしまいました。
現在 su コマンドを使ってその部分だけわざわざパスワードを入れて、またスクリプトを実行するという 2スクリプト制になってます。
もしユーザーの変更も自動的にスクリプト上でできればとても楽なんですが、よい方法ありませんでしょうか?
当分はスクリプト自体にパスワードをハードコードしてもいいと思ってます。

どなたか お知恵をお貸しください!

とも

No. 1124 # 68user 2000/08/29 (火) 17:03:20
最も簡単なのは root 権限でスクリプトを動かし、適時 su で
特定のユーザ権限を得るか、su username command とすることです。

それが無理なら、suid なプログラムを作ればよいです。
    http://X68000.startshop.co.jp/~68user/unix/pickup?setuid

> 当分はスクリプト自体にパスワードをハードコードしてもいいと思ってます。
su は端末 (/dev/tty) からパスワードを読もうとするので、
標準入力などからデータを流し込むことは不可能です。

No. 1125 # 68user 2000/08/30 (水) 02:27:25
> 8/28 AM8:30 ごろから5時間ほど、SEGA BBS の過去ログの CGI に
> 199.172.149 あたりから怒涛のアクセスがあったようです。
今日も同じ時間帯に同じところから。うっとうしいのので、
SEGA BBS の CGI をしばらく止めます。

ところで、またカウンタが壊れました。/var/log/messages を
見るに、オープンしたファイル数が OS の最大値を越えたため
だと思われます。
# よく見ると、カウンタで open のエラーチェックを
# 全くしてなかった。そりゃ壊れるわな。

> su username command とすることです。
su username -c command でした。

No. 1127 # 戸川 [E-mail] 2000/08/31 (木) 15:38:36
シェルを創っているのですがSyslog(/var/log/messages) にログを出力したいのですがコマンドでできないのでしょうか?教えてください。
よろしくお願いします

No. 1129 # has 2000/08/31 (木) 17:57:02
以前から気になっていたことなんですが、
NTじゃなく一般のWindowsがTCP上で行っているサービスには、
どんなものがあるんでしょうか。
もし知っておられたら教えて下さい。
また、こういった類の情報はどうやったら入手できるものなのか、
よろしければあわせて教えて下さい。

No. 1130 # 68user 2000/09/01 (金) 00:11:30
眠い。ので、手短に。

netstat -a とか。少なくとも Win98 にはあります。
標準では netbios 関係くらいしか listen してないと思います。

logger(1) など。

No. 1131 # なむさむ 2000/09/01 (金) 11:18:27
「httptalker(http-client)について」
とてもわかりやすいサイトで
unixでいろいろできるんだなぁ、と感心してます
使い始めて三ヶ月位です(vinelinuxを使ってます
httptalkerでうまくget出来ないところがあるので
質問させてください
httptalker.pl -getに続けて
1:news.yahoo.co.jp/headlines/top/
2:username.hypermart.net/hoge/huga.html
この二つに関してですが1,2とも
wgetでは問題無く取れますが
httptalkerでは404や「そのページは存在しない」
となります。サイトにある
telnetでgetする方法だとでは1のみ問題無し
2ではやはり404となります
何か別の(httpdなどの)知識
が必要なのでしょうか?
何かアドバイスがあれば
よろしくお願いします

No. 1132 # やまま 2000/09/01 (金) 12:55:40
> なむさむ さん
うーむ、ハイマは、バーチャルホストがなんたら..
Host: username.hypermart.net(CRLF)
つければいいのかな。。

No. 1133 # なむさむ 2000/09/01 (金) 22:11:34
>やままさん
アドバイスありがとうございます
バーチャルホストについて勉強してみます
確かにhost付けてなかった・・・
ところで(CRLF)っていうのは
\r\nとか、そんな意味ですか?

No. 1134 # やまま 2000/09/01 (金) 22:53:12
バーチャルホストについては。
http://x68000.startshop.co.jp/~68user/net/http-4.html
ここにあったよ。

CRLFはUNIXなら\r\nでいいみたいです。

No. 1135 # 68user 2000/09/02 (土) 01:37:03
hypermart は Host ヘッダです。

> 1:news.yahoo.co.jp/headlines/top/
こっちは yahoo の WWW サーバが悪いです。

WWW サーバの返すヘッダとボディの間のセパレータが
CR LF LF (もしくは CR LF で、最後の LF はボディの
一部かもしれない) となっているので、httptalker が
ボディ部もヘッダの一部だと解釈しています。

まぁ、セパレータが CR でも LF でも CR LF でも
認識できるようにするのがダウンローダとしては正しい道でしょう。

No. 1136 # とも 2000/09/02 (土) 02:21:20
su についてのご返答ありがとうございました。 早速挑戦してみます。

No. 1137 # なむさむ 2000/09/02 (土) 14:57:43
あ゛・・・きちんと読んでなかった
取り敢えずhost付けてやってみたら
上手く行きました
yahooの方はちょとむつかしくて
ヘッダーの役割とかがいまいち解ってないので、
もう一度きちんと読んでからやってみます
取り敢えずありがとうございました

No. 1138 # has 2000/09/02 (土) 19:35:18
@68user
> netstat -a とか。
> 標準では netbios 関係くらいしか listen してないと思います。
なるほど、どうもありがとうございました。

No. 1139 # 68user 2000/09/03 (日) 03:08:06
ところで やままさんへ。

1時間に一度くらいこのページにリンクチェックをかけておられる
ようですが、このページは Last-modified を GMT で出しています。
しかし、そちらのページでは JST として扱っているようで、
常に 9時間前に更新されたものと見なされています。

No. 1140 # カワエ [E-mail] 2000/09/03 (日) 19:47:49
はじめまして、カワエといいます。今受験生です。
私は将来プログラマーになりたいのですが、PCを買ってまだ半年、まともに触ったこともない超初心者です。
プログラマーの具体的なことについても知らず、ネットで検索したりしているのですが、
他の掲示板で「大変だ」「引退が早い」「プログラミングは趣味にしておくべきだ」等の発言をよく見ましたが、実際のところどうなのでしょうか?
それと、やはり女性差別があったりするのでしょうか?
68user様、プログラマーの方、教えてください。

No. 1141 # 68user 2000/09/03 (日) 22:24:40
あらら、進路相談ですか。

ゲームプログラマになりたいのなら、ここより
    http://www.lares.dti.ne.jp/~yagiyama/
で聞くのがいいでしょう。

でなくて、いわゆる SE を目指すならば
    http://village.infoweb.ne.jp/~watany/selink/index.htm
を読むといいかもしれません。

僕は一応 SE ですが、社会人一年目なので、軽々しくアドバイス
するのはやめておきます。

No. 1142 # カワエ [E-mail] 2000/09/04 (月) 01:57:44
有り難うございます。
では、そっちに行ってみることにします。

No. 1143 # ぽち [URL] [E-mail] 2000/09/04 (月) 11:15:52
すみませんが、HPの紹介をさせてください。

ゲーセンはゲーマーだけの物って誰が決めた!!
もっとゲーセンを楽しもう!!をテーマに
ゲームセンターのゲームをゲーマーのみならず
カップルや女の人も楽しめるように、
情報をセレクト&紹介するページです。
内容は音ゲーの手ほどきや僕のホームグラウンドの
ゲーセンの最新機種入荷情報などです。
是非おいでください。
この書き込みが掲示板の意に反する内容でしたら、
お手数ですが削除してください。

No. 1144 # みちこ [URL] 2000/09/07 (木) 04:57:14
はじめまして。
インフォシークからとんできました。
今、一生懸命UNIXのことを書いたHPを作っています。
ここに書いてあることがとっても役立ちました。
また参考にさせていただきます。

学校でunixを使っていて、けっこうはまってきました。
家はまだウィンドウズですが・・・
もしよろしかったら私のHPにも足を運んでください。
けっこう頑張って勉強しています。

No. 1145 # 68user 2000/09/07 (木) 09:30:39
> 今、一生懸命UNIXのことを書いたHPを作っています。
ほほぅ、一番オジサンっぽいコマンドが cal ですか (笑)
僕は cpio と vi じゃないかと思います。なんとなく。

No. 1146 # gongo [E-mail] 2000/09/08 (金) 20:18:26
@68user様
どうも、gongoです。

Xウィンドウ・システムのことで質問があります。
以前見ていただいたプログラムなどで画面に表示される窓を
なんらかの形で保存して、texなどにはりつけたいと考えております。
そこで画面を保存するにはどのようにしたらよいのでしょうか。

xwd というコマンドを用いると窓の内容を保存できるようなのですが
自分の環境ではこの方法で保存した .xwd ファイルを xv で
表示しようとすると真っ黒になっていました。
で、他のマシンでもやってみたところ、中には窓を取り込めるものも
ありました。しかし、そのマシンだと今度は以前見ていただいたプログラムが
期待通りに動きません(カラーマップのインデックスがすくない模様)。

自分のマシンと xwd がうまくいったマシンでは OSは一緒です。
ちなみにOSはFreeBSD 2.2.8Rです。インストールした人間が違うので
ひょっとすると何かX関連で細かい設定がまずいのかもしれませんが
そこら辺の確認の仕方もよくわかりません。
なにか良い方法はないでしょうか。

また xwd 以外に窓を取り込む良い方法はないでしょうか。

よろしくお願い致します。

No. 1147 # gongo [E-mail] 2000/09/09 (土) 01:24:04
@68user様
度々すみません、gongoです。

>また xwd 以外に窓を取り込む良い方法はないでしょうか。

自分で書いておいてあれなのですが、xvの機能でGrabというのが
あるようなので試してみます。

No. 1148 # 68user 2000/09/09 (土) 15:55:36
> 自分の環境ではこの方法で保存した .xwd ファイルを xv で
> 表示しようとすると真っ黒になっていました。
原因や正しい回避方法は知りません。ただ、display や xwud で
見ると正しく表示されるので、僕は特に困ってないです。

おそらく xwd 形式で保存しておく必要はないのではないでしょうから、
(TeX に貼るということなので)
    % convert foo.xwd foo.eps
しておけばいいでしょう。

> xvの機能でGrabというのがあるようなので試してみます。
あと、import ってのもあります。display, convert, import は
ImageMagick に含まれています。

No. 1149 # gongo [E-mail] 2000/09/09 (土) 23:17:32
@68user様
xvのGrabで保存でき、表示もうまくできました。

>% convert foo.xwd foo.eps
こちらについても試させていただきます。

>ImageMagick に含まれています。
このImageMaickというのは何なのでしょうか。
標準でインストールされるもの(?)なのでしょうか。

何はともあれなんとかTexにはれそうです。
ありがとうございました。

No. 1150 # 68user 2000/09/10 (日) 00:00:56
> 標準でインストールされるもの(?)なのでしょうか。
されないです。FreeBSD なら ports か packages でインストール
しましょう。結構有名なプログラムなので、NetBSD でも Linux でも
パッケージは作成されているはずです。

No. 1151 # gongo [E-mail] 2000/09/10 (日) 00:37:06
@68user様
>FreeBSD なら ports か packages でインストールしましょう。
なるほど、わかりました。
あぁ、でも勝手にマシンに入れちゃうとまずいかも・・・。
私のマシンではないので様子を見てインストールできたらやってみます。

No. 1152 # konan [E-mail] 2000/09/10 (日) 02:08:28
HTTP クライアントを作ってみよう(2)
http://www2.startshop.co.jp/~68user/net/http-2.html

のhttp-client.plを実行すると下記のエラーで止まってしまいます。
Use of uninitialized value in subroutine entry at http-client.pl line 14.
Use of uninitialized value in concatenation (.) at http-client.pl line 21.

対策方法をお知らせください。

perlはperl, v5.6.0 built for MSWin32-x86-multi-threadを使っています。
OSはWin98SEです

No. 1153 # 68user 2000/09/10 (日) 02:30:28
こちらの perl-5.6 では動いているので、おそらく 7行目の
    $port = getservbyname('http','tcp');
で値が取得できていないんでしょう。
    $port = getservbyname('http','tcp') || 80;
でどうですか。

No. 1154 # konan 2000/09/10 (日) 03:23:28
>$port = getservbyname('http','tcp') || 80;
>でどうですか。

うまくいきました。ありがとうございました。

ところでこのスクリプトを会社の2台のUNIXで走らせたら
1台は動作してもう一台はUse of uninitialized valueの
エラーで止まってしまいました。それではとWINDOWSでやって
みたら同じエラーで止まってしまいました。原因がわからないので
質問をさせて頂きました。WSによって動いたりそうでなかったり
する原因は何なのかな?っと言う新たな疑問がありますが
宜しければお知らせください。

No. 1155 # 68user 2000/09/10 (日) 03:29:44
man getservbyname すればわかりますが、この関数は
/etc/services (NIS を使っているなら ypcat services の
結果) を読むだけの関数なので、/etc/services がオープン
できないとか、ファイルはあるけど中身に
    http 80/tcp
というエントリがない、などというときポート番号の取得に
失敗します。

サンプルとはいえ、本来は getservbyname に失敗したら 80 に
決め打ちするか、あるいは die すべきですね。次回更新時に
直しておきます。

No. 1156 # konan 2000/09/10 (日) 23:50:34
お返事ありがとうございました。

perl http-client.plとするとうまく動作するのですが
ブラウザから起動するとInternal Server Errorとなります。
起動例(http://www.???.ne.jp/cgi-bin/http-client.pl)
もともとそういうスクリプトなのかもしれませんがスクリプト内
もしくは引数でわたされたアドレスのhtmlやjpg,gif等を
ブラウザに表示するのはどうしたらよいのでしょうか。
よろしくお願いします。

No. 1157 # 68user 2000/09/11 (月) 00:28:23
    #!/usr/bin/perl
    print "Hello world";
は CGI 経由では動きません。しかし
    #!/usr/bin/perl
    print "Content-type: text/html\n\n";
    print "Hello world";
は動きます。そういうことです。

No. 1158 # みちこ [URL] 2000/09/12 (火) 01:05:45
くだらないことですが・・・
HPを置いているサーバにbashのファイルがありますが、
これはunixシェルが使えるということなのでしょうか。

そして、Apacheを使うときにはDNSの設定を行う必要がありますか?
もしよろしければお答えください。
よろしくお願いします。

No. 1159 # 68user 2000/09/12 (火) 01:19:17
> HPを置いているサーバにbashのファイルがありますが、
どこにどういうファイルがありますか? /bin/bash や
/usr/local/bin/bash ですか? また、どうやってその
ファイルを見付けましたか?

> Apacheを使うときにはDNSの設定を行う必要がありますか?
ローカルでテスト用に使うのですか? なら必要ありません。
# ってこともないんだけど。自ホストさえ引ければ問題なし。

apache を使って web を一般に公開するにしても、普通に
telnet や nslookup が使えているなら、DNS の設定は不要
です (それは DNS が設定済ということだから)。

No. 1160 # みちこ [URL] 2000/09/12 (火) 04:04:37
ftpソフトでファイルを取得すると、
一覧のところに
.bash_logout
.bash_profile
.bashrs
というファイルが置かれています。
ちなみに、binディレクトリ内には何もありません。
(これはcgiが使えないということ?)
bashファイルに関しては所有者が私になっているので、
(rootではないということ)
・・・・どういうことなんでしょう。

なんか、よくわからない質問で申し訳ありません。

No. 1161 # gongo [E-mail] 2000/09/12 (火) 20:36:48
@68user様
どうも、gongoです。

X関連(というよりもC言語かもしれませんが)で質問があります。

label = XtVaCreateManagedWidget(name,・・・)

と書けば、labelというウィジェットを生成できますが
複数個のウィジェットを生成したい場合
for文などでこの文章を繰り返して生成することは可能でしょうか。

例えばlabel00,label01,label02,・・・、そしてname00,name01,name02,・・・
などのように変化させていくつもりで

unsigned char labelname[]="label00"
unsigned char widgetname[]="name00"

といったように最初のlabel00とname00をchar型の配列に入れて
for文で回るたびに数値のところだけを書き直すといったことを
やろうとしたのですが、どうもうまくいきませんでした。

for(i=0; i<NUM; i++){
labelname = XtVaCreateWidget(widgetname,・・・);
labelとnameの数字をカウントアップする;
}

といった感じでウィジェットを生成できれば簡単なのに・・・と思ったのですが
やはり個々に宣言しないとまずいのでしょうか。
labelnameのところは本来Widget型じゃないといけないからうまくいかない
のでしょうか。widgetnameのところは本来String型ですがこちらもよくわかりません。

また、同様にイベント処理でイベントハンドラを用いる時も
for文で回すことは可能でしょうか。

つまりは以前見て頂いたプログラムのようにlabelをいくつも用意し、
それぞれの窓にButtonPressをイベントハンドラとして登録するという一連の文を
書くと結構大変ですし、後々窓の個数を変える時のことを考えると
for文で回せたらよいなぁと考えた次第です。

何卒宜しくお願い致します。

No. 1162 # 68user 2000/09/12 (火) 22:45:18
@gongo さん
> label = XtVaCreateManagedWidget(name,・・・)
むむ? 前のソースではそこらへんをやっておられたと思いましたが…。
    Widget label[10];
    char name[256];
    for( i=0; i<sizeof(label)/sizeof(label[0]) ; i++ ){
        snprintf(name, sizeof(name), "name%02d", i);
        label[i] = XtVaCreateWidget(name, ...);
    }
ではダメですか?

> 最初のlabel00とname00をchar型の配列に入れて for文で
> 回るたびに数値のところだけを書き直すといったこと
はできません。C 言語では、変数名や関数名などのシンボルを
動的に生成することはできないからです。
# …という表現は正しいかな?

> unsigned char labelname[]="label00"
> labelname = XtVaCreateWidget(widgetname,・・・);
また、「labelname の*内容*」と「メモリ領域」には何の関係も
ないので、XtVaCreateWidget の戻り値を格納する領域がどこにも
ない、ということになります。


@みちこさん
> これはunixシェルが使えるということなのでしょうか。
一言で言えば、
    「~/.bash* がある、ということだけでは何とも言えない」
です。相手側に telnet サーバが上がっているか、IP アドレスにより
telnet の接続元を限定していないか、パスワードエントリが適切に
設定されているか、ログインシェルが適切に設定されているか、
などを全てクリアすればログインできるでしょう。

逆に言うと、プロバイダが客にリモートログインさせないように
するには、たくさんの方法があるということ。その情報がない
以上、ログインできるとも できないとも判断できません。

> ちなみに、binディレクトリ内には何もありません。
> (これはcgiが使えないということ?)
bin と CGI には関係はありません。

あと、質問の仕方がいまいちですね。例えば、「binディレクトリ」
というのは、/bin なのか、ホームディレクトリの bin なのか
判断ができません。何を書けばよいかがわからない、というのは
理解できますが、その場合は調べた情報を全て書いて下さい。

No. 1163 # 68user 2000/09/12 (火) 23:08:11
最近うちに届いたメール。

From: * <*@mti.biglobe.ne.jp>
Date: Sat, 2 Sep 2000 00:24:57 +0900
(内容なし)

From: * <*@da.mbn.or.jp>
Date: Wed, 6 Sep 2000 21:24:05 +0900
(内容なし)

From: * <*@calltoweb.com>
Date: Fri, 8 Sep 2000 12:43:55 +0900
(内容なし)

From: *@themis.dricas.com
Date: Sat, 9 Sep 2000 12:49:08 +0900 (JST)
(内容なし)

From: * <*@d7.dion.ne.jp>
Date: Sun, 10 Sep 2000 09:11:30 +0900
Subject: あの
ホームページみました。何とかしてください。

From: * <*@f7.dion.ne.jp>
Date: Sun, 10 Sep 2000 10:29:26 +0900
届きました?

From: *@nifty.ne.jp
Date: Tue, 12 Sep 2000 00:05:51 +0900 (JST)
このホームページはどうなっているんですか?

From: *@aol.com
Date: Tue, 12 Sep 2000 09:44:30 EDT
Subject: エラー表示ありとでました。
和議申請について   和議申請とは

この人たちにはコミュニケーション能力というものがないのだろうか。

好意的に解釈すると、「SEGA BBS 過去ログが見れません」
と言いたいのかとも思うのだが、本当にそうなのか。

うちにイタズラメールを送ろうという活動でもやっているのでは
ないか。あるいは、どこかの web をクリックするとここにメールが
送られてくるような仕組みになっているのではないか、とも思えてくる。

謎である。真実を知っている人がいたら教えてください。

No. 1164 # gongo [E-mail] 2000/09/12 (火) 23:36:04
@68user様
素早いお返事ありがとうございます。

>むむ? 前のソースではそこらへんをやっておられたと思いましたが…。
たしか前のではすべてのlabelに対してXtVaCreateManagedWidget()やXtAddEventHandler()などをやっていたと思います。(^^;

>Widget label[10];
>char name[256];
>for( i=0; i<sizeof(label)/sizeof(label[0]) ; i++ ){
> snprintf(name, sizeof(name), "name%02d", i);
> label[i] = XtVaCreateWidget(name, ...);
>}
snprintfというのが使ったことがないので明日調べて
試させていただきます。

ありがとうございました。

No. 1165 # みちこ 2000/09/12 (火) 23:37:14
質問の仕方がうまくなくて、ごめんなさい。
これからもっと磨いていきますので、
よろしくお願いいたします。

初心者にはココに質問するのはちょっと高度なことなのでしょうか。
とかちょっと思ってしまった。
なにか超初心者向けのページがあったらご紹介ください。
ご迷惑おかけしました。

というわけで今日も本を読むばかりです。
コンピュータって難しい・・・
聞く人もいないのがホントにつらいところです。

No. 1166 # 68user 2000/09/13 (水) 02:00:14
> 質問の仕方がうまくなくて、ごめんなさい。
というところにさらに説教くさいことを書くのもアレですが、
回答をもらったときに「理解できたかどうか」「解決したか
どうか」をちゃんと書くことも重要です。

「ありがとう」と、お礼のみを書かれてもこっちは何も得る
ものがないわけですが、
    「〜が理解できた/できなかった」
    「〜と〜の関係がわからない」
    「言われた通りにやってみたら〜というトラブルが出たが、
        〜とすることで解決できた」
という返答が得られると、回答者が「こういう解説の仕方で
相手に理解させることができた」「この部分で嘘を言ってしまった」
「わかりにくい表現をしてしまった」などということに気づく
ことができます。

で、みちこさんは apache の件も bash の件も、解決したのか、
理解できたのか、を書いておられません。これでは回答した
僕には何のメリットもありません。

要は「お礼よりも結果報告」です。

これは初心者向けのコミュニティでも上級者向けのコミュニティでも
同じですので、今後は注意されることをお勧めします。

> なにか超初心者向けのページがあったらご紹介ください。
逆に、fj やメーリングリストなど、ここよりもずっとレベルの
高いところに行くのもいいでしょう。しばらく読み続ければ、
「よい質問の仕方とはどういうものなのか」がわかってくると
思います。


> @68user様
ところで、「様」はご勘弁を>gongo さん

No. 1167 # gongo [E-mail] 2000/09/13 (水) 17:41:55
@68userさん

> snprintfというのが使ったことがないので明日調べて
> 試させていただきます。

と思っていたら、マシンが起動しなくなってしまいました。
試す以前に修理手続きやら何やらやらなければ・・・。
D◯S/Vパラダイスというお店で去年の6月に購入したマシンなのですが、
昨日突然フリーズして以後起動しなくなりました。(泣)
HDDのランプとかはつくのですが一瞬HDDのカラカラって音が鳴って
それ以後進まなくなってしまいました。

それとsnprintfというのはsprintfのことでよろしいのでしょうか。
今日、本を見た感じではsnprintfというのがなかったもので。
どっちにしろsprintfも使ったことがなかったので
他のマシンで試してみます。

No. 1168 # gongo [E-mail] 2000/09/13 (水) 18:54:40
@68userさん

sprintf()を使ってやってみたらうまくいきました。
といっても、最初はうまくいかなくて
labelを生成するところで segmentation fault で
止まってしまったので、2番目の引数である sizeof(name) というのを
削除したら通るようになりました。

No. 1169 # みちこ [URL] 2000/09/14 (木) 00:03:30
>apache を使って web を一般に公開するにしても、普通に
>telnet や nslookup が使えているなら、DNS の設定は不要
>です (それは DNS が設定済ということだから)。

やはりDNSの設定はいらなかったようです。
Perlがうまくインストールされていなかったため、
動作しなかったようでした。

しかしながら、単にパソコンの調子が悪いだけだったかも、
という疑問も捨て切れません。
というのも、Apacheを立ち上げると、突然フリーズしたりするので。
詳しい理由はちょっと見当がつきません。


>相手側に telnet サーバが上がっているか、IP アドレスにより
>telnet の接続元を限定していないか、パスワードエントリが適切に
>設定されているか、ログインシェルが適切に設定されているか、
>などを全てクリアすればログインできるでしょう。

IPアドレスによってtelnetの接続もとの限定をしているかどうかは、
向こうに聞かないとわからないのでしょうか。
特にそのような項目はメール確認の時にはふくまれていなかったのですが。
またログインシェルが適切に設定されている、とはどういう状態をいうのですか。

>例えば、「binディレクトリ」
>というのは、/bin なのか、ホームディレクトリの bin なのか
>判断ができません。

おっしゃるとおりです。
私が言ったのはホームディレクトリのbinのことです。


少しはましになったでしょうか。
MLも探してみることにしました。
もう少しうまく質問できるようになったら
またこちらにこさせてください。
お世話になります・・・

No. 1170 # 68user 2000/09/14 (木) 00:38:48
@gongo さん
> それとsnprintfというのはsprintfのことでよろしいのでしょうか。
失礼ながら、man の見方はご存知でしょうか? man snprintf です。
日本語訳はこちら。
    http://www.jp.FreeBSD.org/cgi/mroff.cgi?subdir=man&man=printf&dir=jpman-3.1.0%2Fman&sect=3
なお、(FreeBSD なら) section 3 の日本語訳は現在の jman には
含まれていないので、web 上でしか見られません。

@みちこさん
> IPアドレスによってtelnetの接続もとの限定をしているかどうかは、
> 向こうに聞かないとわからないのでしょうか。
基本的にはそうですが、まぁ実際に telnet で接続して
みればわかる場合もあります。

Connection refused とか Connection closed by foreign host とか、
言われたら、無理ということです。
# Connection refused だからといって、IP アドレスによる
# 制限をかけている、とは断言できませんが。

あと、こういうことはプロバイダに確認すべきことです。
ちゃんとお金を払っているのでしょうから「telnet 接続は
可能か」と堂々と問い合わせましょう。

> またログインシェルが適切に設定されている
/etc/passwd (あるいは /etc/master.passwd, /etc/shadow など) の話です。
    username:*:1001:1001:HOGEHOGE:/home/username:/bin/csh
    username:*:1001:1001:HOGEHOGE:/home/username:/nonexistent
前者はログインできますが、後者は /nonexistent というシェルは
存在しないので、結果的にシェルが起動せずログインできません。

No. 1171 # gongo [E-mail] 2000/09/14 (木) 02:50:38
@68userさん
>> それとsnprintfというのはsprintfのことでよろしいのでしょうか。
>失礼ながら、man の見方はご存知でしょうか? man snprintf です。
manの見方は知っていましたがほとんど使ったことがなく、C言語辞典の
ようなものにも載っていなかったものでてっきり近くに載っていた
sprintfだと思っていました。

>snprintf(name, sizeof(name), "name%02d", i);
お教えいただいた日本語マニュアルHPの方を見ました。
で、読んだ結果snprintfの前にprintfもなんだか
わからなくなってきてしまったので、"name%02d"の部分について
確認させてください。まず、「%d」と書けば整数を表示させると
思いますが、その前の「2」というのは整数二桁の精度ということですか?
あと、その前の「0」はiが一桁の時、01、02、・・・のように「0」を
いれてくれるということでしょうか。

そしてsizeof(name)についてですが、これがあるsnprintfと、
ないsprintfの違い(両方ある必要性?)がいまいちよくわかりません。
snprintfではsizeof(name)の容量を超えるものを
一番目の引数のnameに入れることを許さない
ということなのでしょうか??う〜ん・・・。

No. 1172 # ケイ 2000/09/17 (日) 19:00:32
はじめまして。
Perlで質問があります。
パケットを送るときにその容量を
どうやって指定するのですか?
例えば1000バイトをUDPで送りたい場合
どうすればいいんでしょうか?
そのパケットの作成方法がわかりません。
よろしくお願いします。

No. 1173 # 68user 2000/09/18 (月) 05:14:57
@gongo さん
> manの見方は知っていましたがほとんど使ったことがなく
わからなければ、とにかく man です。まずマニュアルを読まないと、
理解できる/できないというレベルにさえたどり着けませんから。

> printfもなんだか わからなくなってきてしまったので、
ま、これは宿題ということで。いろんな値を %d, %2d, %02d で
表示させてみればわかるでしょう。

# printf(3) は、よく使うわりにわかりにくいマニュアルの
# 代表だと思うので、あまり気にしなくてよいと思います。

> これがあるsnprintfと、ないsprintfの違い
snprintf だと、適切な値を第二引数に与えれば、いかに
生成される文字列が長くても、その領域を越えて書き込む
ことはありません。要は、バッファオーバーラン対策です。

strncat/strncpy/strlcat/strlcpy も同じです。

@ケイさん
> パケットを送るときにその容量をどうやって指定するのですか?
> 例えば1000バイトをUDPで送りたい場合どうすればいい
> んでしょうか?
C の send/sendto と違い、perl の send では長さを与える
必要はありません。perl 君がよきにはからってくれます。

> そのパケットの作成方法がわかりません。
まさか IP データグラムを自前で作る、とかいう話じゃないですよね?

Prev< No. 1105〜1173> Next  [最新発言に戻る] [過去ログ一覧]