【緊急】腕に覚えのあるプログラマー来てくれ!!
■ このスレッドは過去ログ倉庫に格納されています
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等のテストをしているわけだが
いろいろぐだぐだなわけだ
そこでこの板のみんなにいろいろ改造してほしいわけだ
0011nobodyさん
2006/03/09(木) 22:12:56ID:fEiFeGWnワロウタ
0013nobodyさん
2006/03/10(金) 02:51:16ID:???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あいあい。必須です。
0015nobodyさん
NGNGold_log.phpをちょこっと改造しただけですが、
過去ログみるやつです。
ひろゆきが名無しで発言はじめてみた
口癖の「あいあい。」とbeですぐわかったけど
0017nobodyさん
2006/03/10(金) 04:39:45ID:???0018nobodyさん
2006/03/10(金) 04:53:49ID:???ありがとです。
ところでところで、過去ログみるやつのSQLデータ
ちょこっとだけ恵んでほしいかも。。無理でしょか??
0019ひろゆきのビジョン(私見で抜粋)
2006/03/10(金) 04:55:35ID:???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:???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さん
NGNG0022現在までの経過(私見でまとめ)
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:???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テーブルロックを使ってるみたいですが、
競合でデータ飛んだりってのはないです。
0026nobodyさん
2006/03/10(金) 05:36:46ID:???アクセスが減る時間帯とかで、八百長が簡単にできそう。
ただの遊びでとどめるのが無難では?
0027nobodyさん
2006/03/10(金) 05:42:57ID:???出力見つけてみました。↓
<?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");
}
?>
0028nobodyさん
2006/03/10(金) 05:44:45ID:???ほしい度30%ぐらいなで、他のほにゃららややこしい理由でダメならぜんぜんOKです。
▼ インスパイア元
つ http://ns1.php.gr.jp/pipermail/php-users/2003-December/019800.html
002927-28
2006/03/10(金) 06:09:37ID:???csv自分で作ってインポートすればイイっぽい。
ごめんなさい。お騒がせしました。。
0030nobodyさん
2006/03/10(金) 06:21:39ID:???SQLコマンドでdumpってあったっけ?
0031nobodyさん
NGNG0032nobodyさん
NGNG0033nobodyさん
2006/03/10(金) 06:44:32ID:???0034nobodyさん
NGNG0035nobodyさん
NGNG「サーバとローカルPCの時間ズレ(ラグ含):210秒」
http://info.2ch.net/jinro/test/frame.html
ファイルを直接見ると、javascriptがうまく動かないようです。
http://info.2ch.net/jinro/test/game_play.htm
何が原因かわかりますでしょうかー?
0036nobodyさん
2006/03/10(金) 07:17:25ID:???一度ファイルに書き出して、読むときに弄るぐらいしか。
でもそれなら、順番に読みだしながらエンコしていったほうが速いかも?
こちらWin機のみなので、シェルのコード指定できるかどうかは知らないです。
0037nobodyさん
2006/03/10(金) 07:23:33ID:???1つめは保留で2つ目
コード内で沢山ある parent.frames['up'] これ。
フレーム名「up」を指定してあるから、
該当するフレーム名を持ったフレームがないとエラーになります。
0038nobodyさん
2006/03/10(金) 07:37:46ID:???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:???これを解決する方法ってのは無いのかね。
0041nobodyさん
2006/03/10(金) 08:20:07ID:???0042nobodyさん
2006/03/10(金) 08:23:48ID:???ここからDLできるよ。
0043nobodyさん
2006/03/10(金) 08:27:35ID:???0044nobodyさん
2006/03/10(金) 08:29:59ID:???こんな感じらしい。
>>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:???0046nobodyさん
2006/03/10(金) 08:41:34ID:???常にファイルに書き込む処理が存在するようには見えないけど。
他にもファイルをすぐ閉じる工夫とかしてないし、
ちゃんと整理してflockで十分なような・・・
0047nobodyさん
NGNGhttp://info.2ch.net/jinro/test/game_play2.htm
どうもですー。
0048nobodyさん
2006/03/10(金) 08:47:20ID:???0049nobodyさん
2006/03/10(金) 09:08:35ID:???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で分岐してからループまわした方が速い。
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:???オレには厳しそうw
ただ、出来るだけmy使うように心がけるように気をつけねば。
>マッチしない条件が多いループをまわすとき〜
後で条件追加するとかの修正がわかりづらかったり面倒そうだけど、
そっちの方が負荷的にはかなり良さそうだね。
ただ、この辺まで弄ったらかなり大掛かりな改造になりそうな予感。
whileとforがたくさんあるから呼び出しをいかに減らすかでかなり変わってきそうだなぁ。
0056594
2006/03/10(金) 11:33:40ID:0Au2Ffzr0057nobodyさん
NGNGバグでコンパイルができなくなるとコンパイルエラー。
バグが原因でコンパイルエラーは現象ですね。
0058594
2006/03/10(金) 11:58:11ID:0Au2Ffzrありがとうございます。
バグがある=コンパイルエラーって解釈でOKですか?
0059nobodyさん
2006/03/10(金) 12:01:47ID:???バグは想定していない挙動をすること。
バグっててもコンパイルは成功することもありますね。
0061nobodyさん
NGNG0062nobodyさん
2006/03/10(金) 12:18:48ID:???コンパイル後実行できるが想定外の動きはバグである(仕様と言い張る場合もある)。
コンパイルしないインタプリタ言語(JavaScriptとかPerlとかPHPとか)で実行できない原因はバグである。
インタプリタ言語で想定外の動きはバグである(仕様と言い張る場合もある)
で、わかるかな・・・説明力無いや。
0063みずき ◆WnmizUKIg6
NGNGあぼ〜ん
0064nobodyさん
2006/03/10(金) 12:47:08ID:???0065nobodyさん
2006/03/10(金) 14:07:35ID:???0066nobodyさん
2006/03/10(金) 15:24:27ID:???0067nobodyさん
2006/03/10(金) 16:44:21ID:???参照渡しはやめろといっぱい怒られた
でマニュアルでsscanfみたらちゃんと参照渡しにする必要があると書いてある
0068nobodyさん
2006/03/10(金) 19:54:33ID:Fu+U56m/【特機隊】 人狼テスト中 5村目 【プロテクトギア】
http://live22x.2ch.net/test/read.cgi/news/1141986358/
0069nobodyさん
2006/03/10(金) 22:21:27ID:???バグは仕様と違う動きをするプログラム(文法としてはあってる)に潜むエラー
くらいの解釈で良いと思うです
0070nobodyさん
2006/03/11(土) 03:31:36ID:???誰かが作ってる?作品
0072nobodyさん
2006/03/11(土) 21:33:13ID:???0073nobodyさん
NGNGこんな感じのsqlなのですが、同一のuser_idの中でprofileやunameがいろいろある場合には、
profileやunameに入る値を指定することは可能なんでしょうかー?
0075nobodyさん
NGNG0076nobodyさん
2006/03/12(日) 08:14:07ID:???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:???, ←これいらないのです。。
0078nobodyさん
NGNGmaxではなく、order by timeみたいに、最新のものを拾うようにするのは
難しいんでしょうか?
0079nobodyさん
2006/03/12(日) 20:49:18ID:???FROM t_users a INNER JOIN t_users b
ON a.f_time = b.f_time
GROUP BY b.user_id
0080nobodyさん
NGNG0081nobodyさん
NGNG0083nobodyさん
2006/03/13(月) 12:10:01ID:???ひろ(ryだし
>>81
常に最新の監視をしたいなら、監視専用ファイルに書き出す処理を増やせば楽になれるかも。
いちいちDB弄るより負荷へりそうだし。
0084nobodyさん
NGNGwin_lose ='w'の多い順にユーザーを並べたいのですね。
http://info.2ch.net/jinro/game_ranking.php
0085nobodyさん
NGNGいいといえば、いいんですが、
1回のSQLでやる方法があるんだったら、後学のために知りたいなぁ、と。
>>83
0087nobodyさん
2006/03/13(月) 18:25:44ID:???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:???0090nobodyさん
2006/03/13(月) 19:01:42ID:???0091nobodyさん
2006/03/13(月) 22:54:42ID:???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:???0093nobodyさん
2006/03/14(火) 00:12:48ID:???0094nobodyさん
2006/03/14(火) 00:15:17ID:???0098nobodyさん
NGNGおぉ、、こんな手があるんすかぁ。
0099nobodyさん
NGNG0100nobodyさん
2006/03/14(火) 13:03:33ID:???0101nobodyさん
NGNGhaving win_lose ='w'とかやるとエラーでるですよ。
0102nobodyさん
2006/03/14(火) 13:25:50ID:???0103nobodyさん
2006/03/14(火) 13:28:58ID:???0104nobodyさん
NGNG0105nobodyさん
2006/03/14(火) 13:40:45ID:???select user_id, count(user_id)
from users
where win_lose = 'w'
group by user_id
order by count(user_id) desc
な感じじゃダメなも?
0106nobodyさん
NGNGに繋がるわけです。
0107nobodyさん
2006/03/14(火) 16:49:48ID:???0108nobodyさん
2006/03/14(火) 16:51:26ID:???0109nobodyさん
2006/03/14(火) 19:09:09ID:???だから >>73「同一のuser_idの中でprofileやunameがいろいろある場合には、
profileやunameに入る値を指定することは可能なんでしょうかー?」
の「指定」って言ってる条件はなんなん?
user_id,profile,uname,win_lose,time
1,aho,baka,w,2006-03-14 19:00:00
1,roli,hiroyu(ry,w,2006-03-14 16:00:00
1,hoge,piyo,w,2006-03-12 11:00:00
のどれがほしいのよ
0110nobodyさん
NGNG■ このスレッドは過去ログ倉庫に格納されています