【緊急】腕に覚えのあるプログラマー来てくれ!!
■ このスレッドは過去ログ倉庫に格納されています
ごめんねν速民バカばっかりでごめんね(´・ω・`) お、みんなで弄るのか モリタポとか絡むならひ(ryとその仲間の妖弧で弄るのかと思ってた まあ、そっちだけ自力で弄ればいいのか、、、 webprog板でやれよボケって書こうと思ったらここwebprog板だった ▼ 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? http://info.2ch.net/jinro/watch_log.txt old_log.phpをちょこっと改造しただけですが、 過去ログみるやつです。 >>15 ひろゆきが名無しで発言はじめてみた 口癖の「あいあい。」とbeですぐわかったけど 元ネタ知らないから、何をしたいのかさっぱりわかんない。 >>14-15 ありがとです。 ところでところで、過去ログみるやつのSQLデータ ちょこっとだけ恵んでほしいかも。。無理でしょか?? 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ゲームとかだと、緊張感もないし、 すぐに切断されるので、ある程度緊張感があって、 ホスト役の人がいるところのほうが楽しい。 っていうプレイヤーと、ある程度ホスト役をするだけで、 生活の糧になるってのをマッチングさせると面白いかなぁと。 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を使いやすくすることにしたおいらなのですよ。 特定のテーブルのdumpの仕方がわかってないおいらです。。 というわけでν速民に煽られながら↓を一人で弄ってる方がいらっしゃいます これはとても危険な状況です、どなたか助けを、、、 【テスト中URL】 汝は人狼なりや?〜テスト〜 http://info.2ch.net/jinro/index.php 【使ってるファイル】 汝は人狼なりや?のPHP+MySQL移植版(from ふたば) http://f45.aaa.livedoor.jp/ ~netfilms/ phpはマルチバイト実行でこけるぐらい無知なんだけど、 DBにまるなげならロックうんぬん関係ないよね?違ってる? 【ニュース速報板現行スレ】 【首都警】 人狼テスト中 その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)がニュー速での流れっぽいものです どなたかフォローよろしく >>23 テーブルロックを使ってるみたいですが、 競合でデータ飛んだりってのはないです。 システムは判ったけど、賞金つけるって無理じゃないかな。 アクセスが減る時間帯とかで、八百長が簡単にできそう。 ただの遊びでとどめるのが無難では? >>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"); } ?> 今、すごいことに気づきました! csv自分で作ってインポートすればイイっぽい。 ごめんなさい。お騒がせしました。。 ただのdumpなら$ mysqldump [OPTIONS] データベース名 [テーブル名]だけど、 SQLコマンドでdumpってあったっけ? 出てくるデータはEUCっぽいから、クライアントに合わせてエンコしないと mysqldumpでエンコード指定ってできますっけ? フレームから呼び出すと時間表示が出るのですが、 「サーバとローカルPCの時間ズレ(ラグ含):210秒」 http://info.2ch.net/jinro/test/frame.html ファイルを直接見ると、javascriptがうまく動かないようです。 http://info.2ch.net/jinro/test/game_play.htm 何が原因かわかりますでしょうかー? >>34 一度ファイルに書き出して、読むときに弄るぐらいしか。 でもそれなら、順番に読みだしながらエンコしていったほうが速いかも? こちらWin機のみなので、シェルのコード指定できるかどうかは知らないです。 >>35 1つめは保留で2つ目 コード内で沢山ある parent.frames['up'] これ。 フレーム名「up」を指定してあるから、 該当するフレーム名を持ったフレームがないとエラーになります。 >>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がどのタイミングで時間を取っているかが問題かも。 出力を終えるギリギリで時間だしてるとは思うけど・・・ ざっとコード追ってみたけど、わかる範囲では特におかしいところはないかと。 perl版のwwwolfって、ファイルロック関連がアクセス多い時にダメになるらしいけど、 これを解決する方法ってのは無いのかね。 ttp://park1.wakwak.com/~aa1/wwwolf/ ここからDLできるよ。 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は投票してない人がわかるです。 間違えてひろゆきの発言に「こんな感じらしい」って書いちゃったけどまあいいやw cgi実行開始しょっぱなからロックかけないといけないものなんですか?これ。 常にファイルに書き込む処理が存在するようには見えないけど。 他にもファイルをすぐ閉じる工夫とかしてないし、 ちゃんと整理してflockで十分なような・・・ >>46 perlかじった程度なのであまりわからないけど、sub disp_msgの辺りとか? どうせ一気に出力するんだから、最初にまとめて全部読み込んでしまって、 1行ずつ抜き出して処理して吐き出すバッファに格納していく感じにすると、 ましになりそうって感じなのかな。 ですね。 ゲーム系のCGIだと、メモリ犠牲にしてでも、ファイル解放させないと。 実際ファイルサイズがどれだけ膨らむか知りませんけど、 フェイズごとにファイル分けるとか、 データサイズ決めてアドレスへ直接読みにいくとか、 いくらでも軽量化の方法は・・・ なるほどー。 ちょっと試してみた。 こんな感じの処理でいいのかな。 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)); 〜以下略〜 } 他に、ifの入れこが多すぎるので、 ifで分岐してからループまわした方が速い。 while () { if () { if () { ・・・よりも if () { while () {} } if () { while () {} } ・・・として whileの中でnext連発してさっさとlastで抜けた方が速い。 でもって、展開するものがないならシングルクオートにするとちょびっと速い。 ダブルクオートの中で展開無しでエスケープ文字乱発では意味がない。 なるへそー。 積み重ねで結構違ってくるって事ね。 という事はmyとかもどんどん設定してった方がいいか。 たしかlocalはmyとかグローバル変数より遅いって見た気がするから、その辺も要修正か。 負荷の面で結構いい勉強になりそうだな。 使い捨ての変数はできるだけブロックの中で終わるようにする。 とりあえずuse strict;でも動くように心がける。 マッチしない条件が多いループをまわすとき、 パターンマッチする前に2度手間だけど先にindexで判断したほうが速いとか。 use strict;はどの処理がどの名前空間にあるのかの把握が大変っぽそうなので オレには厳しそうw ただ、出来るだけmy使うように心がけるように気をつけねば。 >マッチしない条件が多いループをまわすとき〜 後で条件追加するとかの修正がわかりづらかったり面倒そうだけど、 そっちの方が負荷的にはかなり良さそうだね。 ただ、この辺まで弄ったらかなり大掛かりな改造になりそうな予感。 whileとforがたくさんあるから呼び出しをいかに減らすかでかなり変わってきそうだなぁ。 バグとコンパイルエラーの違いを教えて下さい。お願いします。 コンパイルの意味がわかってるのであれば、、、 バグでコンパイルができなくなるとコンパイルエラー。 バグが原因でコンパイルエラーは現象ですね。 >nobodyさん ありがとうございます。 バグがある=コンパイルエラーって解釈でOKですか? ソースコードを機械語に翻訳できないのがコンパイルエラー バグは想定していない挙動をすること。 バグっててもコンパイルは成功することもありますね。 さらに言うと、コンパイルしない言語もあったりするので、、 コンパイルできない原因はバグである。 コンパイル後実行できるが想定外の動きはバグである(仕様と言い張る場合もある)。 コンパイルしないインタプリタ言語(JavaScriptとかPerlとかPHPとか)で実行できない原因はバグである。 インタプリタ言語で想定外の動きはバグである(仕様と言い張る場合もある) で、わかるかな・・・説明力無いや。 7 名前:あぼ〜ん[あぼ〜ん] 投稿日:2006/03/09(木) 20:56:49 ID:あぼ〜ん あぼ〜ん >>7 参照渡しはやめろといっぱい怒られた でマニュアルでsscanfみたらちゃんと参照渡しにする必要があると書いてある コンパイルエラーは言語の文法的にあってるかどうか バグは仕様と違う動きをするプログラム(文法としてはあってる)に潜むエラー くらいの解釈で良いと思うです ttp://up.spawn.jp/file/up13517.jpg 誰かが作ってる?作品 >>15 ゴールドの帯のところ消したのGJ!! ブツ、わん、ひそ。で見えなくしてのどして?どして?? SELECT uname, handle_name, profile , user_id, count(*) from users group by user_id こんな感じのsqlなのですが、同一のuser_idの中でprofileやunameがいろいろある場合には、 profileやunameに入る値を指定することは可能なんでしょうかー? >>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)文字列の最大値だけになっちゃう。。 わ、row_count, の後ろの , ←これいらないのです。。 おぉ、そこにも関数いれることができるんですね。 maxではなく、order by timeみたいに、最新のものを拾うようにするのは 難しいんでしょうか? 自信なさげに、つ 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 うーん、やっぱりMAX(b.f_time) の数字だけ新しくなっちゃいますね。 諦めてwhileの中でもう一回SQLを呼ぶようにしてみました。 >>80 何がしたいのかはっきり書けば、それに応じたSQLがだせるが、 後出しで仕様を追加すると相手にされなくなる。 >82 ひろ(ryだし >>81 常に最新の監視をしたいなら、監視専用ファイルに書き出す処理を増やせば楽になれるかも。 いちいちDB弄るより負荷へりそうだし。 結果は最新のものじゃなくて、1時間に一回とかでも いいといえば、いいんですが、 1回のSQLでやる方法があるんだったら、後学のために知りたいなぁ、と。 >>83 >>84 order by [カラム名] descってことではなく? 最新timeのuname(time8桁として) SELECT SUBSTR(MAX(CONCAT(time,uname),9) AS uname,user_id, count(*) AS cnt from users group by user_id まちがえっち SELECT SUBSTRING(MAX(CONCAT(time,uname),9) AS uname,user_id, count(*) AS cnt from users group by user_id 機能追加して、つ 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 うわー、勘違いしてたみたい。。 >>88 ごめんね、ごめんね。 >>89 作れるよ。Stored ProcedureじゃなくてFunctionという機能。 SUBSTR(MAX(CONCAT(time,uname),9) おぉ、、こんな手があるんすかぁ。 groupでまとめちゃうと、whereって使えなくなるんですよね。。 havingの使い方がいまいちわかってません。 having win_lose ='w'とかやるとエラーでるですよ。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる