2008-04-29[n年前へ]
2009-04-27[n年前へ]
■素人がRails入門書を買ってWEBサーバを立ち上げた後の苦難の道 その1
これは、あくまで”素人”が、自分で作った「自分のWEB LOG(というより、やはりWEB日記)」を運用するまでの(これからもまだまだ続くだろう)苦難の道の記録です。
書店に並んでいるRailsプログラミング本を買い、小さなプログラムを書いて、自宅サーバを(手書きHTMLとハイパーニッキシステムから移行し)動かし始めて1年と少し経ちます。今は、趣味サーバとしては普通に動いているようですが、プログラミング素人が書店で入門書を買って、Railsサーバを立ち上げた後は結構大変でした。大変だったといっても、何しろいちばん最初は入門書のステップ1に書いてあるようにInstantRailsをインストールしただけで動かしてみたのです(逆にいえば、一番最初に買った入門書 がそれだけわかりやすく、本を読むだけで簡単にアプリケーションを作ってみることができた、ということでもあります)。当然、キャッシュも使わず、プロセスも1つだけで動かしたわけです。何しろ、知識は書店で買った入門書だけなので、そんな感じで動かしてみたのです。
すると、たいしたアクセスもないにも関わらず、数分も立たない内にWebrickは反応をしなくなり、サーバはすぐに黙ってウンともスンとも言わなくなってしまいました。今考えてみれば、それは当たり前の話で、画像もファイルも何から何まですべての配信・処理をひとつのプロセスが行おうとしていたのですから、ちょっと無理があり過ぎ、です。そんなわけで、素人が「Rails入門書」のステップ1を読んだだけでサーバを立ち上げた結果は、趣味・個人サーバですら、1時間も安定した稼働をさせることができない状態になりました。
そこで、次のステップとして、その次に買った本で運用の仕方を学びつつ 、1台のPCでmongrelサーバをクラスタリングさせることにしてみました。次のような感じの(こんな感じというだけで実際に使っているものとは違いますが)スクリプトを書き、10個くらいのmongrelサーバを起動させ、再起動をたまにさせることでメモリーリークや、いろんな問題に目をつぶって動かしてみることにしたのです。
# gem install win32-process # gem install windows-pr require 'win32/process' require 'windows/handle' include Windows::Process include Windows::Handle class ProcessController def initialize(command) @pi=nil start(command) end def start(command) @pi=Process.create( :app_name=>command[:cmd], :cwd=>command[:cwd]) end def stop Process.kill(9, @pi.process_id) CloseHandle(@pi.process_handle) end end @comands=[ {:path=>"Z:\\blog", :cmd=>'mongrel_rails start -p 8080 -e production'}, {:path=>"Z:\\blog", :cmd=>'mongrel_rails start -p 8081 -e production'}] while true @proccesses=[] @comands.each{|comand| @proccesses << ProcessController.new(comand) } sleep 60*60*24 @proccesses.each{|process| process.stop } end
しかし、素人がRails入門書を買ってWEBサーバを立ち上げた後の苦難の道は、まだまだその先も長かったのです。今もたくさん問題を抱えているのですが、とりあえず、二番目に生じた課題は、プログラミングに時間を使うのが嫌だったので、負荷分散をPCの数で解決しようとした時に起きた色んなトラブルでした。
2010-02-05[n年前へ]
■激増する「素人偽札」の世界
激増する「素人偽札」の世界。なぜ「1000円札」「子どもの犯行」が多いのか。その「理由」
実は最近、コピー機やパソコンなどを使って、子どもたちが偽札を作る事件が増えているのが現状だ。
偽札は、犯罪者の目的から見れば、2種類ある。自動販売機を通過させればこと足りるものと、実際に人の目や感触もだますための精度の高いものである。
「自販機偽札」は被害が小さい反面、現行犯でない限り、逮捕しにくい。犯罪者から見れば、リターンも少ないが、リスクも低いというわけだ。そのため、最近では子どもでも大人でも、「素人」が手を出すことが多い。
彼らは専門誌などで磁気インクの意味も理解し、紙幣をコピーしたものに特殊な加工を施し、自販機を通過するように細工した。
素人に対し、プロはやはり1万円札をターゲットにする。たとえば4~5年前に、偽1万円札で駅の券売機が集中的に狙われたことがある。この偽1万円札は、できはやはり「自販機をだませればいい」レベルのもの。