お絵かきチャットつくったょ

WebSocketを使って、リアルタイム連動お絵かきチャットを作ってみました。

http://paint.ecpplus.net/

WebSocket はぇぇー、って感じます。数人でやると、毎秒サーバと50回とかやりとりしてるのだけど、サーバ側はほとんどCPU食ってないみたいですね。すごぃ。2窓開いてみると、遅延はほぼ0で通信できてることが分かると思います。

お絵かき部分と、チャット部分でWebSocketを使っています。サーバ側のWebSocket部分は em-websocket を使いました。HTMLを生成する部分は sinatra ちゃんです。sinatra ちゃん可愛いよ。

愛を実装する

def love
  love
end

love
SystemStackError: stack level too deep
        from (irb):6:in `love'
        from (irb):6:in `love'
        from (irb):8

`love'
`love'

愛を叫んでいるかのようだ。

愛は深い、らしい。too deep と・・・


だが実際はこうだ。

def love
  exit
end

ひどいと

def love
  raise
end


現実をみると2次元に投影。

def love(val)
  require 'matrix'
  m = Matrix[[1,0, 0],[0, 1, 0],[0, 0, 0]]
  m * val
end


なんでもいいや。

上野の七志いった

七志ラーメンとチャーハン食べたけど、チャーハンが水っぽかった。ラーメンはうまかった。

チャーハンすごいネギが多い。ネギ美味しい。

自炊するときは、ひたすらキノコを食べまくる。しめじ、舞茸、エリンギ辺りを。多いときは、6個くらいしめじのストックがある。きのこカロリーないけど、栄養はそこそこあってホントにいい食べ物だよね。

url_for でつまづく

 Rails で以下のメソッドで 該当アクションへの URL を生成することが出来るけれども、呼ぶ場所によって挙動が違ってちょっとつまずいた。

url_for :controller => 'user', :action => 'show', :id => 100

動かしてるサーバが http://localhost:3000 とすると、以下の様になりました。

Controller内
http://localhost:3000/user/show/100
View, Helper内
/user/show/100

View, Helper 内で絶対URL をとるのに一番簡単そうなのは、config/route.rb に以下のように書いて、それを呼ぶという感じかなぁ…。

config/route.rb

ActionController::Routing::Routes.draw do |map|
  map.user '/user/show/:id', :controller => 'user', :action => 'show'
end

viewやhelperで

config/route.rb で map.user と定義すると、user_url() が定義されて使えるようになるので、viewやhelper で以下の感じで以下のようにすると絶対URLが取れます。

user_url(:id => 100)


View から絶対URL を取りたいとすると、どっか外部に戻りURLをくっつけて投げる処理などで使うくらいしか思いつかないです。