X



【緊急】腕に覚えのあるプログラマー来てくれ!!
0001ひろゆき代理垢版2006/03/09(木) 18:59:22ID:QGdZvsUO
>鯖まとめ
>旧鯖 http://info.2ch.net/webwerewolf/index.htm
>新鯖 http://info.2ch.net/jinro/index.php
>新新 http://info.2ch.net/jinro2/jinro_index.htm

本スレ
http://live22x.2ch.net/test/read.cgi/news/1141871872/

要約:
現在ひろゆきが人狼プロジェクトでCGI等のテストをしているわけだが
いろいろぐだぐだなわけだ
そこでこの板のみんなにいろいろ改造してほしいわけだ
0002nobodyさん垢版2006/03/09(木) 19:01:07ID:xa6y59HU
ごめんねν速民バカばっかりでごめんね(´・ω・`)
0003nobodyさん垢版2006/03/09(木) 19:01:49ID:C0OBrQez
age
0004nobodyさん垢版NGNG
2げっと
0005nobodyさん垢版2006/03/09(木) 19:05:07ID:QGdZvsUO
過疎板だなw
0006nobodyさん垢版2006/03/09(木) 20:53:08ID:???
久しぶり新しい話題のスレだね。
0008nobodyさん垢版2006/03/09(木) 20:57:52ID:r4Q+iI7I
狐にお願いしろよ
0009nobodyさん垢版2006/03/09(木) 21:19:48ID:???
お、みんなで弄るのか
モリタポとか絡むならひ(ryとその仲間の妖弧で弄るのかと思ってた
まあ、そっちだけ自力で弄ればいいのか、、、
0010nobodyさん垢版2006/03/09(木) 21:33:04ID:???
webprog板でやれよボケって書こうと思ったらここwebprog板だった
0011nobodyさん垢版2006/03/09(木) 22:12:56ID:fEiFeGWn
>>10
ワロウタ
0013nobodyさん垢版2006/03/10(金) 02:51:16ID:???
▼ game_veiw.php
193:print("<a href=\"user_manager?room_no=$room_no\"><strong>[住民登録]</strong></a>");
↑は↓
  print("<a href=\"user_manager.php?room_no=$room_no\"><strong>[住民登録]</strong></a>");
でFA?
0014nobodyさん垢版NGNG
>>13
あいあい。必須です。
0017nobodyさん垢版2006/03/10(金) 04:39:45ID:???
元ネタ知らないから、何をしたいのかさっぱりわかんない。
0018nobodyさん垢版2006/03/10(金) 04:53:49ID:???
>>14-15
ありがとです。
ところでところで、過去ログみるやつのSQLデータ
ちょこっとだけ恵んでほしいかも。。無理でしょか??
0019ひろゆきのビジョン(私見で抜粋)垢版2006/03/10(金) 04:55:35ID:???
http://live22x.2ch.net/test/read.cgi/news/1141784985/351+373+385+393

351 名前:番組の途中ですが名無しです[] 投稿日:2006/03/08(水) 13:02:03.79 ID:expAqeMd0
人狼って別に新しいことでもないと思うんだけど、なんでひろゆきが始めたんだろ。

373 名前:ひろゆき[] 投稿日:2006/03/08(水) 13:09:20.35 ID:2Q5xWps60 ?#
>>351
勝者が賞金もらえたりランキングつけたりしたいなぁと。

ちょっとしたゲームのGMが職業になるってのもありだと思うんだけどなぁ。

ゴールデン街のバーテンさんなんで1日に10人ぐらいの相手してるだけで、
暮らしてたりするわけで。
MMOみたいに何万人を相手にするんじゃなくて、
ちょっとした人数でちょっと楽しいってものが、
乱立したほうが選択肢としては面白いと思うんだけどなぁ。

385 名前:番組の途中ですが名無しです[] 投稿日:2006/03/08(水) 13:12:30.31 ID:expAqeMd0
>>373
ちょっと面白そう。
TV番組のチーターとか昔のヘキサゴンを一般人が賞金付きでやれたらいいなあとか思ってたけど
そんな感じ?

393 名前:ひろゆき[] 投稿日:2006/03/08(水) 13:14:36.64 ID:2Q5xWps60 ?#
>>385
人狼はあくまで1例なんだけど、ちょっとしたゲームを数人とやりたい。
でも、yahooゲームとかだと、緊張感もないし、
すぐに切断されるので、ある程度緊張感があって、
ホスト役の人がいるところのほうが楽しい。

っていうプレイヤーと、ある程度ホスト役をするだけで、
生活の糧になるってのをマッチングさせると面白いかなぁと。
0020現在までの経過(私見で抜粋)垢版2006/03/10(金) 05:02:55ID:???
http://live22x.2ch.net/test/read.cgi/news/1141871872/421+660+690+692+947

421 名前:ひろゆき[] 投稿日:2006/03/09(木) 17:44:21.72 ID:yUANQFXM0 ?#
いまのところ、3種類のスクリプトがあって、
3種類なりに一長一短で、各々の長所を調べた上で、
どれをベースにして長所を移行するかってのを考えてるですよ。

660 名前:ひろゆき[] 投稿日:2006/03/09(木) 22:05:09.01 ID:yUANQFXM0 ?#
perl版のはディレクトリロックだから、やっぱり負荷には向いてない予感。
690 名前:ひろゆき[] 投稿日:2006/03/09(木) 22:07:34.25 ID:yUANQFXM0 ?#
高負荷になる>ロックが頻繁になる>ロックの削除が間に合わなくなる。
>ますますリロードする>ますますロックが削除されない。

以下ループ

692 名前:ひろゆき[] 投稿日:2006/03/09(木) 22:07:57.20 ID:yUANQFXM0 ?#
ベースをphp版にしないとやっぱりだめっぽい。

947 名前:ひろゆき[] 投稿日:2006/03/10(金) 01:54:30.80 ID:jCCNow5z0 ?#
perlのほうは壊れるので、phpを使いやすくすることにしたおいらなのですよ。
0021nobodyさん垢版NGNG
特定のテーブルのdumpの仕方がわかってないおいらです。。
0022現在までの経過(私見でまとめ)垢版2006/03/10(金) 05:09:36ID:8amhdBES
というわけでν速民に煽られながら↓を一人で弄ってる方がいらっしゃいます
これはとても危険な状況です、どなたか助けを、、、

【テスト中URL】
汝は人狼なりや?〜テスト〜
http://info.2ch.net/jinro/index.php

【使ってるファイル】
汝は人狼なりや?のPHP+MySQL移植版(from ふたば)
http://f45.aaa.livedoor.jp/~netfilms/
0023nobodyさん垢版2006/03/10(金) 05:21:18ID:???
phpはマルチバイト実行でこけるぐらい無知なんだけど、
DBにまるなげならロックうんぬん関係ないよね?違ってる?
0024関連スレ・過去スレ垢版2006/03/10(金) 05:23:07ID:8amhdBES
【ニュース速報板現行スレ】
【首都警】 人狼テスト中 その4 【セクト】
http://live22x.2ch.net/test/read.cgi/news/1141929220/

【ニュース速報板関連過去スレ】
人狼のテストをするので、暇な人よろしくよろしく。  (part1)
http://live22x.2ch.net/test/read.cgi/news/1141784985/
【紅い眼鏡】 人狼テスト中 【ケロちゃん】  (part2)
http://live22x.2ch.net/test/read.cgi/news/1141807114/
【首都警】 人狼テスト中 その3 【セクト】
http://live22x.2ch.net/test/read.cgi/news/1141871872/

ニュー速の現行スレはすぐ消化されてしまうと思われます
なんかわかりにくく、いろいろ漏れてると思いますが
とりあえず以上(>>19+20+22)がニュー速での流れっぽいものです
どなたかフォローよろしく
0025nobodyさん垢版NGNG
>>23
テーブルロックを使ってるみたいですが、
競合でデータ飛んだりってのはないです。
0026nobodyさん垢版2006/03/10(金) 05:36:46ID:???
システムは判ったけど、賞金つけるって無理じゃないかな。
アクセスが減る時間帯とかで、八百長が簡単にできそう。
ただの遊びでとどめるのが無難では?
0027nobodyさん垢版2006/03/10(金) 05:42:57ID:???
>>21
出力見つけてみました。↓

<?php
//▼ talkテーブルcsv出力
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=talk".date(ymd).".csv");
//サーバー名--localhost ユーザー名--root パスワード--pass
$dbHandle = mysql_connect("localhost","root","pass");
if ($dbHandle == False) {
print ("can not connect db\n");
exit;
}
//db名
$db = "jinro";
$sql = "select * from talk";
$rs = mysql_db_query($db,$sql);
$fields = mysql_num_fields($rs);
$rows = mysql_num_rows($rs);
for($i=0;$i<$rows;$i++){
for($j=0;$j < $fields;$j++){
print(mysql_result($rs,$i,$j));
if ($j < $fields - 1)
print(",");
}
print("\n");
}
?>
002927-28垢版2006/03/10(金) 06:09:37ID:???
今、すごいことに気づきました!
csv自分で作ってインポートすればイイっぽい。
ごめんなさい。お騒がせしました。。
0030nobodyさん垢版2006/03/10(金) 06:21:39ID:???
ただのdumpなら$ mysqldump [OPTIONS] データベース名 [テーブル名]だけど、
SQLコマンドでdumpってあったっけ?
0031nobodyさん垢版NGNG
mysqldumpでテーブル指定できたんすかぁ。
0032nobodyさん垢版NGNG
うは、なんか文字化けしまくりです。。
0033nobodyさん垢版2006/03/10(金) 06:44:32ID:???
出てくるデータはEUCっぽいから、クライアントに合わせてエンコしないと
0034nobodyさん垢版NGNG
mysqldumpでエンコード指定ってできますっけ?
0036nobodyさん垢版2006/03/10(金) 07:17:25ID:???
>>34
一度ファイルに書き出して、読むときに弄るぐらいしか。
でもそれなら、順番に読みだしながらエンコしていったほうが速いかも?
こちらWin機のみなので、シェルのコード指定できるかどうかは知らないです。
0037nobodyさん垢版2006/03/10(金) 07:23:33ID:???
>>35
1つめは保留で2つ目
コード内で沢山ある parent.frames['up'] これ。
フレーム名「up」を指定してあるから、
該当するフレーム名を持ったフレームがないとエラーになります。
0038nobodyさん垢版2006/03/10(金) 07:37:46ID:???
>>35の1つめ
function realtime_before_output()
{
php_now = new Date(2006,2,10,7,01,44);
local_now = new Date();
diff_sec = Math.floor( (local_now - php_now) / 1000);
document.realtime_form.realtime_output.value = "サーバとローカルPCの時間ズレ(ラグ含):" + diff_sec + "秒";
}
これ見る限りでは
local_now = new Date();  でローカルの時間
php_now = new Date(2006,2,10,7,01,44);  でCGIの出力した情報から計算した時間
で、時間は1/1000秒で返すので1000で割るんだけど、
これだけだとローカルが早いか鯖が遅いかぐらいしかわかりません。
phpがどのタイミングで時間を取っているかが問題かも。
出力を終えるギリギリで時間だしてるとは思うけど・・・
0039nobodyさん垢版2006/03/10(金) 07:51:31ID:???
ざっとコード追ってみたけど、わかる範囲では特におかしいところはないかと。
0040nobodyさん垢版2006/03/10(金) 07:54:09ID:???
perl版のwwwolfって、ファイルロック関連がアクセス多い時にダメになるらしいけど、
これを解決する方法ってのは無いのかね。
0042nobodyさん垢版2006/03/10(金) 08:23:48ID:???
ttp://park1.wakwak.com/~aa1/wwwolf/
ここからDLできるよ。
0043nobodyさん垢版2006/03/10(金) 08:27:35ID:???
見つけたけど、ファイルロック何もやってないよ?
0044nobodyさん垢版2006/03/10(金) 08:29:59ID:???
462 名前:ひろゆき[] 投稿日:2006/03/09(木) 17:57:26.49 ID:yUANQFXM0 ?#
こんな感じらしい。

>>442
元々、暴走癖があってちょいと無理して直したので、
データ消える可能性があるです。

463 名前:ひろゆき[] 投稿日:2006/03/09(木) 17:58:17.07 ID:yUANQFXM0 ?#
>>449
負荷が高いだけならいいんですが、
負荷が高いときに挙動が変になるのが1です。

470 名前:ひろゆき[] 投稿日:2006/03/09(木) 18:01:50.83 ID:yUANQFXM0 ?#
ディレクトリ生成でロックをしてるので、
ユーザーが1秒以内にアクセスし続けると永遠にロックしっぱなしみたいになったりするです。
ロック処理をするスクリプトというのは高負荷に絶えられるアルゴリズムでなかったりします。
あと、1のスクリプトだと、GMですら誰が投票してないかわからないのです。
3は投票してない人がわかるです。
0045nobodyさん垢版2006/03/10(金) 08:31:44ID:???
間違えてひろゆきの発言に「こんな感じらしい」って書いちゃったけどまあいいやw
0046nobodyさん垢版2006/03/10(金) 08:41:34ID:???
cgi実行開始しょっぱなからロックかけないといけないものなんですか?これ。
常にファイルに書き込む処理が存在するようには見えないけど。
他にもファイルをすぐ閉じる工夫とかしてないし、
ちゃんと整理してflockで十分なような・・・
0049nobodyさん垢版2006/03/10(金) 09:08:35ID:???
>>46
perlかじった程度なのであまりわからないけど、sub disp_msgの辺りとか?
どうせ一気に出力するんだから、最初にまとめて全部読み込んでしまって、
1行ずつ抜き出して処理して吐き出すバッファに格納していく感じにすると、
ましになりそうって感じなのかな。
0050nobodyさん垢版2006/03/10(金) 09:16:53ID:???
ですね。
ゲーム系のCGIだと、メモリ犠牲にしてでも、ファイル解放させないと。
実際ファイルサイズがどれだけ膨らむか知りませんけど、

フェイズごとにファイル分けるとか、
データサイズ決めてアドレスへ直接読みにいくとか、
いくらでも軽量化の方法は・・・
0051nobodyさん垢版2006/03/10(金) 09:54:58ID:???
なるほどー。
ちょっと試してみた。
こんな感じの処理でいいのかな。
sub disp_msg{
〜ちょっとだけど省略〜

my @buffer;
my $logline;
open(IN, $file_log);
while (<IN>) { push(@buffer,$_); }
close(IN);
$log_line = @buffer;
while (@buffer) {
 $wk_msgwriteflg = 0;
 @wk_logdata = split(/\{\}/, shift(@buffer));
 〜以下略〜
}
0052nobodyさん垢版2006/03/10(金) 10:15:08ID:???
他に、ifの入れこが多すぎるので、
ifで分岐してからループまわした方が速い。
while () {
if () {
if () { ・・・よりも

if () {
while () {}
}
if () {
while () {}
}
・・・として
whileの中でnext連発してさっさとlastで抜けた方が速い。
でもって、展開するものがないならシングルクオートにするとちょびっと速い。
ダブルクオートの中で展開無しでエスケープ文字乱発では意味がない。
0053nobodyさん垢版2006/03/10(金) 10:22:52ID:???
なるへそー。
積み重ねで結構違ってくるって事ね。
という事はmyとかもどんどん設定してった方がいいか。
たしかlocalはmyとかグローバル変数より遅いって見た気がするから、その辺も要修正か。

負荷の面で結構いい勉強になりそうだな。
0054nobodyさん垢版2006/03/10(金) 10:31:46ID:???
使い捨ての変数はできるだけブロックの中で終わるようにする。
とりあえずuse strict;でも動くように心がける。
マッチしない条件が多いループをまわすとき、
パターンマッチする前に2度手間だけど先にindexで判断したほうが速いとか。
0055nobodyさん垢版2006/03/10(金) 10:41:22ID:???
use strict;はどの処理がどの名前空間にあるのかの把握が大変っぽそうなので
オレには厳しそうw
ただ、出来るだけmy使うように心がけるように気をつけねば。

>マッチしない条件が多いループをまわすとき〜
後で条件追加するとかの修正がわかりづらかったり面倒そうだけど、
そっちの方が負荷的にはかなり良さそうだね。
ただ、この辺まで弄ったらかなり大掛かりな改造になりそうな予感。
whileとforがたくさんあるから呼び出しをいかに減らすかでかなり変わってきそうだなぁ。
0056594垢版2006/03/10(金) 11:33:40ID:0Au2Ffzr
バグとコンパイルエラーの違いを教えて下さい。お願いします。
0057nobodyさん垢版NGNG
コンパイルの意味がわかってるのであれば、、、
バグでコンパイルができなくなるとコンパイルエラー。
バグが原因でコンパイルエラーは現象ですね。
0058594垢版2006/03/10(金) 11:58:11ID:0Au2Ffzr
>nobodyさん
ありがとうございます。
バグがある=コンパイルエラーって解釈でOKですか?
0059nobodyさん垢版2006/03/10(金) 12:01:47ID:???
ソースコードを機械語に翻訳できないのがコンパイルエラー
バグは想定していない挙動をすること。
バグっててもコンパイルは成功することもありますね。
0061nobodyさん垢版NGNG
さらに言うと、コンパイルしない言語もあったりするので、、
0062nobodyさん垢版2006/03/10(金) 12:18:48ID:???
コンパイルできない原因はバグである。
コンパイル後実行できるが想定外の動きはバグである(仕様と言い張る場合もある)。
コンパイルしないインタプリタ言語(JavaScriptとかPerlとかPHPとか)で実行できない原因はバグである。
インタプリタ言語で想定外の動きはバグである(仕様と言い張る場合もある)

で、わかるかな・・・説明力無いや。
0063みずき ◆WnmizUKIg6 垢版NGNG
7 名前:あぼ〜ん[あぼ〜ん] 投稿日:2006/03/09(木) 20:56:49 ID:あぼ〜ん
あぼ〜ん
0064nobodyさん垢版2006/03/10(金) 12:47:08ID:???
BEのプロフで遠まわしに宣伝ですかそうですか。
0065nobodyさん垢版2006/03/10(金) 14:07:35ID:???
beのプロフでの宣伝は禁止されてないしー
0066nobodyさん垢版2006/03/10(金) 15:24:27ID:???
PHPならできるけどPerlは・・・ごめんなさい
0067nobodyさん垢版2006/03/10(金) 16:44:21ID:???
>>7
参照渡しはやめろといっぱい怒られた
でマニュアルでsscanfみたらちゃんと参照渡しにする必要があると書いてある
0069nobodyさん垢版2006/03/10(金) 22:21:27ID:???
コンパイルエラーは言語の文法的にあってるかどうか
バグは仕様と違う動きをするプログラム(文法としてはあってる)に潜むエラー
くらいの解釈で良いと思うです
0070nobodyさん垢版2006/03/11(土) 03:31:36ID:???
ttp://up.spawn.jp/file/up13517.jpg
誰かが作ってる?作品
0071nobodyさん垢版2006/03/11(土) 21:22:12ID:???
>>15
ゴールドの帯のところ消したのGJ!!
ブツ、わん、ひそ。で見えなくしてのどして?どして??
0073nobodyさん垢版NGNG
SELECT uname, handle_name, profile , user_id, count(*) from users group by user_id

こんな感じのsqlなのですが、同一のuser_idの中でprofileやunameがいろいろある場合には、
profileやunameに入る値を指定することは可能なんでしょうかー?


0075nobodyさん垢版NGNG
省略してますよ。
0076nobodyさん垢版2006/03/12(日) 08:14:07ID:???
>>73
INSERT INTO new_table1 ( uname, handle_name, profile, user_id, row_count, )
SELECT Max(uname), Max(handle_name), Max(profile), user_id, Count(*)
FROM users
GROUP BY user_id;

↑作ってみました。
でもでも、これだと(uname/handle_name/profile)文字列の最大値だけになっちゃう。。
0077nobodyさん垢版2006/03/12(日) 08:20:55ID:???
わ、row_count, の後ろの
, ←これいらないのです。。
0078nobodyさん垢版NGNG
おぉ、そこにも関数いれることができるんですね。

maxではなく、order by timeみたいに、最新のものを拾うようにするのは
難しいんでしょうか?
0079nobodyさん垢版2006/03/12(日) 20:49:18ID:???
自信なさげに、つ SELECT a.uname, a.handle_name, a.profile, a.user_id, MAX(b.f_time)
FROM t_users a INNER JOIN t_users b
ON a.f_time = b.f_time
GROUP BY b.user_id
0080nobodyさん垢版NGNG
うーん、やっぱりMAX(b.f_time) の数字だけ新しくなっちゃいますね。
0081nobodyさん垢版NGNG
諦めてwhileの中でもう一回SQLを呼ぶようにしてみました。
0082nobodyさん垢版2006/03/13(月) 10:32:24ID:???
>>80
何がしたいのかはっきり書けば、それに応じたSQLがだせるが、
後出しで仕様を追加すると相手にされなくなる。
0083nobodyさん垢版2006/03/13(月) 12:10:01ID:???
>82
ひろ(ryだし

>>81
常に最新の監視をしたいなら、監視専用ファイルに書き出す処理を増やせば楽になれるかも。
いちいちDB弄るより負荷へりそうだし。
0085nobodyさん垢版NGNG
結果は最新のものじゃなくて、1時間に一回とかでも
いいといえば、いいんですが、
1回のSQLでやる方法があるんだったら、後学のために知りたいなぁ、と。
>>83
0086nobodyさん垢版2006/03/13(月) 12:58:28ID:???
>>84
order by [カラム名] descってことではなく?
0087nobodyさん垢版2006/03/13(月) 18:25:44ID:???
最新timeのuname(time8桁として)
SELECT SUBSTR(MAX(CONCAT(time,uname),9) AS uname,user_id, count(*) AS cnt
from users
group by user_id
008887垢版2006/03/13(月) 18:53:26ID:???
まちがえっち
SELECT SUBSTRING(MAX(CONCAT(time,uname),9) AS uname,user_id, count(*) AS cnt
from users
group by user_id
0089nobodyさん垢版2006/03/13(月) 18:58:44ID:???
MySQLじゃ独自関数は作れないのか。
0091nobodyさん垢版2006/03/13(月) 22:54:42ID:???
機能追加して、つ SELECT a.uname, a.handle_name, a.profile, a.user_id, COUNT(*) AS f_win, MAX(b.f_time) AS time
FROM t_users a INNER JOIN t_users b
ON a.f_time = b.f_time
GROUP BY b.user_id
ORDER BY f_win DESC
0092nobodyさん垢版2006/03/13(月) 23:40:27ID:???
返事待たずに次々出しても意味ないっしょ
0094nobodyさん垢版2006/03/14(火) 00:15:17ID:???
このスレの質問者はひ(ryだけ
0096nobodyさん垢版2006/03/14(火) 03:26:54ID:???
うわー、勘違いしてたみたい。。
>>88ごめんね、ごめんね。
0097nobodyさん垢版2006/03/14(火) 11:10:24ID:???
>>89
作れるよ。Stored ProcedureじゃなくてFunctionという機能。
0098nobodyさん垢版NGNG
SUBSTR(MAX(CONCAT(time,uname),9)
おぉ、、こんな手があるんすかぁ。
レスを投稿する


ニューススポーツなんでも実況