83's

Top > Archives > 2007 > October

October 22, 2007

URI#+がかしこい 23:50

ただ単純に連結するだけかと思ってたら違った。

uri = URI.parse('http://example.com/foo/bar.html')

puts uri + 'hoge.html'    #=> http://example.com/foo/hoge.html
puts uri + './hoge.html'  #=> http://example.com/foo/hoge.html
puts uri + '/hoge.html'   #=> http://example.com/hoge.html
puts uri + '../hoge.html' #=> http://example.com/hoge.html
puts uri + '..'           #=> http://example.com/
puts uri + '.'            #=> http://example.com/foo/

何も考えずに+したい勢い。 余計なコードがオレは何もしてないのにどんどん消えていく。 これはいよいよゆとりだと思うよ。

October 27, 2007

capistranoメモ 19:19

capistranoってバージョンとか環境とか変わったときにトラブルなく動いたことないような気がする。 知らないことだらけでいつもググるカスになってるオレだから、 もう同じことを検索窓に書き込むのも鬱なのでメモっとく。

こんなのが出たんよ。

yz@prime % cap deploy:web:disable                                                                                  [eniblo]
  * executing `deploy:web:disable'
    servers: ["eniblo.com"]
connection failed for: eniblo.com (Errno::ENOENT: No such file or directory - /tmp/ssh-dbgwju6194/agent.6194)

10日前は問題なかったから、これはubuntuをgusty gibbonにしたからかな。 ssh-agentの説明を読みつつ

eval `ssh-agent`
ssh-add ~/.ssh/id_rsa

としたらいけた。ふむ。ssh-agentだのkeychainだの、なんだろうと思いつつ使ってなかったな。 秘密鍵はパスワードなしにしてたけどこっちにしよう。

次はcap deploy中に

 ** [err] Permission denied (publickey,password,keyboard-interactive).

とか出てsvn coが失敗した。ホッとした矢先にこれだよ!

Permission denied (publickey,keyboard-interactive)のがそうかなと思ってconfig/deploy.rbに

   default_run_options[:pty] = true 

でいけた。

SQL logic error or missing database 23:45

むう。ActiveRecordでSQLite3使ってみてるんだけど、スレッドの数2つ以上にして読み書きしてると SQL logic error or missing databaseてのが出るよ。 書き込みが集中してるときに出てるみたい。スレッドセーフじゃないのかな……。

あとtimeout指定してるのにたまにSQLite3::BusyException飛んでくるし。 まったく! SQLiteはまったく!

一応バージョン書いておくか……。最新の3.5じゃないんだねubuntuタン。

% sqlite3 --version
3.4.2

そういえばRailsのconfig/database.ymlでtimeout書けるのをソース見て知ったよ。

development:
    adapter: sqlite3
    dbfile: db/development.db
    timeout: 10000

でもググると常識ぽい。

普通に使うときはこう。

  ActiveRecord::Base.establish_connection(
    :adapter  => "sqlite3",
    :dbfile => "foo.db",
    :timeout => 10000
  )