2007-01-01から1年間の記事一覧

FizzBuzz 問題

1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。ちゃんとしたプログラマであれば、これを実行するプログ…

flock を使わない排他制御

moe

man ページを見ると flock(2) は NFS 上のファイルのロックをしないとある。つまりそういうことなのだろう。しかしそれで排他を諦めるわけにはいかない。flock(2) の代替として提示されている fcntl(2) によるロックは Ruby からは使用できない。できるのか…

flock リベンジ

moe

唐突だが、前々から不審を抱いていた LaCoocan サーバの flock の挙動を検証してみた。 サーバ側 : flock を取得して 5 秒 Sleep する #!/usr/local/bin/ruby -Ku require 'logger' LOGFILE='logfile.log' LOCKFILE = '.lockfile' def main open(LOGFILE, 'a…

超短期戦

moe

Q. ボードゲームと同じように、15分ピリオド侵攻の1日で終わる ディプロマシーは、本MOEのシステムで実現可能でしょうか? Diplomacy MOE 掲示板 No.71 A. 結論から言えば、超短期仕様は MOE のシステムとは相性が悪そうです。 主に負荷耐性と即応性に起因し…

環境変更

会社へのメールにうっかり asagi 名義のアドレスを使ってしまうミスが続いたので対策を講じた次第である。 おさらいすると、我が家のメール環境は全てのメールを Gmail に集約し、スパムをふるい落としてから fetchmail で自宅サーバに持ってきて、procmail …

shiogi

http://homepage1.nifty.com/asagi/program/program01.htmlなんか変にやる気がでたので書き直してみたら結果が違ってたヨ。 #!/usr/bin/ruby -Ku class Char attr_reader(:char_j) attr_reader(:char_e) attr_reader(:vowel) attr_reader(:consonant) def in…

再挑戦

先日のスクリプトを C でリライトしてみた。いやはや C なんて何年振りだろう。 #include <stdio.h> #include <string.h> #include <time.h> #include <math.h> #define MAX_LENGTH 9 #define MIN_LENGTH 7 #define NO_MORE_REPEAT 2 void generate(char[]); int is_over_repeated(char[], int);</math.h></time.h></string.h></stdio.h>…

挑戦

ラマ僧 挑戦してみた。 #!/usr/bin/ruby -Ke MIN_LENGTH = 7 MAX_LENGTH = 9 class String def over_repeated? return false unless self[-1] == self[-2] return false unless self[-1] == self[-3] return true end def short_length? return size < MIN_L…

更新通知メール障害解決

moe

http://d.hatena.ne.jp/asagix/20070126/1169780168@nifty からの回答。 弊社側にて確認したところ、複数のメール送信CGIを同時に起動した際に、 不具合が発生し、ご連絡の現象が発生しておりました。該当の現象につきましては、機器の調整を行わせていただ…

更新通知メール実験

moe

やはり LaCoocan の sendmail がおかしい。 01: require 'net/http' 02: 1.upto(10) do |num| 03: fork do 04: start = Time.now 05: print sprintf("%02d: ", num) 06: print Net::HTTP.get('asagi.la.coocan.jp', "/***.rb?num=#{num}") 07: puts sprintf(…

ぐだぐだ

moe

多重 flock 争奪テストをやってみたが正常に動いた。 更新通知メールの不具合も排他制御のすり抜けもテストだと問題ないように見える。もう訳分からん。どうなってんだ LaCoocan。 結局負荷の問題なんだろうか。

File.flock

moe

もしかして 1 プロセスがロックできる数って上限があるのだろうか。もちろん OS やコンパイルオプション等によるとは思うが、どうも外部ライブラリが 2 回目の flock をやっていそうなタイミングで最初のロックが解除されている印象だ。あまりきちんと調べた…

排他制御

moe

調べてみると排他制御は CGI 製作者にとっては根が深い問題のようだ。MOE は色々と試した結果 flock は信用ならんと mkdir 方式を採用しているのだが、別に flock が悪かったわけではなく、mkdir でもアクセスが集中すると結局似たような頻度でロックが効い…

最適化

moe

一部の処理の最適化を試みたところ、それまで 6 秒かかっていた処理が 0.5 秒を切るまで高速化された。速くなりすぎて逆に気持ち悪い。勢い余って何か重要な処理を削ったりしてないだろうな。まあ、この程度の高速化だとユーザは気付かないと思うが、排他制…

#006 埋まらず

moe

しかしどこで宣伝すりゃいいのか。 http://asagi.la.coocan.jp/diplomacy/?room=6

#006 募集中

moe

引き続き人柱求ム。 http://asagi.la.coocan.jp/diplomacy/?room=6#home