まさにバッドなノウハウだなと思ったので紹介。

   1  $KCODE = 's'
   2  require 'calendar/japanese/holiday'
   3  $KCODE = 'u'

こうしないとエラーが出ます。

posted by Png genki on Sun 27 Apr 2008 at 23:13

TokyoCabinet のBDBが使いたくなったので導入手順をメモ。

といっても非常に簡単で、上記リンクからLatest Packageをダウンロードしてきて /usr/local/src等の場所に展開し、

   1  # ./configure --enable-devel
   2  # make
   3  # make install

でOK。あとはRubyBindingも こちら から最新版をダウンロードしてきて展開し、

   1  # ruby extconf.rb
   2  # make
   3  # make install

でOK。tokyocabinet.soが生成されてインストールされます。

あとは、Rubyから

   1  require 'tokyocabinet'
   2  
   3  bdb = TokyoCabinet::BDB.new
   4  bdb.open("somefile",
   5    TokyoCabinet::BDB::OCREAT | TokyoCabinet::BDB::OWRITER)
   6  
   7  # do work
   8  
   9  bdb.close

等のようにして使えます。

posted by Png genki on Sun 27 Apr 2008 at 01:34

EC2のインスタンスのイメージをバックアップする手順のメモです。 以下はEC2上のインスタンスにSSHでログインしての作業です。 まずは以下のようなコマンドでイメージを書き出します。

   1  # ec2-bundle-vol -d /mnt -k /mnt/pk-XXXXXXXXXX.pem -c /mnt/cert-XXXXXXXXXX.pem -u <AWSのユーザID>

AWSのユーザIDはAWSの「Your AWS Profile」のページから参照できます。 XXXX-XXXX-XXXXのような数字の羅列でした。

結果として、/mnt/の下にimage.manifest.xmlimage.part.XXというファイルが書き出されます。

処理が終了するまでの間に、10分弱ぐらいかかったかな。 Have a coffee break!

続いてはイメージのS3へのアップロードです。以下のコマンドで先ほど生成されたファイル群をS3にアップロードします。

   1  # ec2-upload-bundle -b s21g-ubuntu -m /mnt/image.manifest.xml -a <アクセスキー> -s <秘密アクセスキー>

アクセスキーと秘密アクセスキーはAWSのページで確認してください。 -bで指定した名前は、S3のバケット名になります。

こちらは2分ぐらいで終了。トータルで10分ちょっとですね。

最後に、ローカル環境から以下のコマンドを実行して、作成したイメージを登録します。

   1  % ec2-register s21g-ubuntu/image.manifest.xml
   2  IMAGE   ami-8a789de3

これによって、AMIを指定してインスタンスを起動できるようになります。

posted by Png genki on Fri 25 Apr 2008 at 17:09

EC2onRailsを使うついでにCapistrano用Zsh補完関数を書きました。

.cap_completion.zsh

   1  _cap () {
   2    `cap -T | grep '^cap ' | sed 's/^cap //' | sed 's/ .*//' | sed 's/^/compadd /'`
   3  }
   4  
   5  compdef _cap cap

posted by Png genki on Fri 25 Apr 2008 at 16:37 with 1 comment

RaptのサブコマンドをZshで補完するためのスクリプトです。

.rapt_completion.zsh

   1  _rapt () {
   2    `rapt help | grep "^  [a-z:][a-z:]*" | sed 's/^ *//' | sed 's/  *.*//' | sed 's/^/compadd /'`
   3  }
   4  
   5  compdef _rapt rapt

何度か欲しいと思ったので書いてみました。

posted by Png genki on Thu 24 Apr 2008 at 11:02

ちょっと昔のコードのRSpecをAutotest対応にした時の作業ログです。

script/spec

   1  #!/usr/bin/env ruby
   2  $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + "/../vendor/plugins/rspec/lib"))
   3  require 'rubygems' #追加
   4  require 'spec'
   5  #::Spec::Runner::CommandLine.run(ARGV, STDERR, STDOUT, true, true)
   6  ::Spec::Runner::CommandLine.run(
   7    ::Spec::Runner::OptionParser.parse(ARGV, STDERR, STDOUT))  

See Also

posted by Png genki on Wed 23 Apr 2008 at 23:26

勉強会参加者の皆様、昨日はお疲れ様でした。

P1000162.JPG

今回は、事前に参加登録していただいた方々がほとんど全員お越しくださったようで、配布資料も3度増刷がかかる盛況ぶりでした。内容のほうも昨年のComet勉強会を彷彿とさせるような非常に濃い話が飛び交い、想定していた以上に勉強ができる会になりました。ありがとうございます。

P1000163.JPG

全体的な振り返りとしては、大体以下のような次第でした。

  1. 自己紹介+自分がかかわっているOpenID活動の紹介
  2. rakuto氏によるOpenIDの動作原理の詳説
  3. ZIGOROu氏によるプレゼンテーションx2
  4. OpenIDとビジネス化の方向性について議論
  5. 各所での利用状況に関する情報交換
  6. OpenID関連のイベント・勉強会情報の告知
  7. 名刺交換タイム(?)
  8. 懇親会(6時間に及ぶ延長戦)

非常に密度の濃い議論や意見交換ができたと思います。 内容の濃さという意味では、昨年のComet勉強会を髣髴とさせるものがありましたね。勉強会後の満足感は、参加者によるところが大きく、最高の参加者が集まった時点で今回の勉強会の成功は決まっていたといって過言ではないと思います。 ありがとうございました。

最後になりましたが、会場提供をしていただいたドリコム様、ありがとうございました。

See Also

サーバ移行中で自動トラックバックがオフになってるのを忘れていました。Googleで探して見つけ次第手動で追加しています。

posted by Png genki on Sun 20 Apr 2008 at 09:25 with 2 comments

Rails 2.0 以降から導入されたCSRF対策のAuthenticityTokenですが、 JavaScriptからこれを取得する方法のメモ。

   1  $$('input[name="authenticity_token"]')[0].value

Ajax.Request等で呼び出す場合のお供に。

posted by Png genki on Sat 19 Apr 2008 at 09:46

サーバ移転作業を行っております。

移転作業中、しばらくの間、サービスが不安定になる可能性があります。

ご不自由をおかけいたしますが、よろしくお願いいたします。

posted by Png genki on Wed 16 Apr 2008 at 16:46
posted by Png genki on Tue 15 Apr 2008 at 15:27