最新にしたらpaths.rbとBackgroundが追加されていたのでメモ。

features/support/paths.rb

Cucumberを最新にしてfeatureをgenerateしようとしたらpaths.rbがないと怒られたので、script/generate cucumberでpaths.rbファイルを生成しました。

Scenarioで記述するページはここで定義:

   1  #features/support/paths.rb
   2  module NavigationHelpers
   3    def path_to(page_name)
   4      case page_name
   5      when /the homepage/
   6        root_path         

Background

1feature内のScenarioに共通な前提条件を記述する。
Backgroundで書かれた条件は、各Scenario実行前、かつBefore Hookの後に実行されるようです。

The background is run before each of your scenarios but after any of your Before Hooks.
http://wiki.github.com/aslakhellesoy/cucumber/background

   1    Background:
   2      Given a global administrator named “Greg   3      And a blog named “Greg’s anti-tax rants” 
   4      And a customer named “Dr. Bill   5      And a blog named “Expensive Therapy” owned by “Dr. Bill

posted by Png satoko on Fri 17 Apr 2009 at 04:04
16th Thu

s21gってなに

なにもわからず、新しいブログサイトにsingupしてしまった:-)

posted by Face ac1965 on Thu 16 Apr 2009 at 17:36 with 1 comment

僕は普段の研究活動などで読んだ文献などはフォルダに適当に入れて管理しているのですが、研究者の方々はどうやってるのでしょうか?

最近iTunesにPDFを突っ込めることを知ったので、ひょっとしたら文献管理に使えるのではないかと思い、試しています。

ネタっぽいですが、わりと真剣です。

用意するもの

設定

「編集」メニューの「設定」より。

「ライブラリへの追加時にファイルを[iTunes Music]フォルダにコピー」にチェックを入れます。

itunes01.jpg

これで、iTunesにファイルを追加したときに指定したフォルダにファイルがコピーされます。

プレイリストの追加

「ファイル」メニューの「新規プレイリスト」より。

適当に名前をつけましょう。

僕はわかりやすく「論文」としました。

このプレイリストの中に読んだ論文を入れていきます。

論文をiTunesに入れていく

さきほど作った「論文」プレイリストに追加していきます。

ドラッグ&ドロップするだけです。

itunes02.jpg

論文情報を入力する

ドラッグ&ドロップしたファイルの「右クリック」→「プロパティ」の「情報」タブより。

itunes03.jpg

僕流のiTunesと文献情報の対応は、以下のとおりです。

iTunesと文献情報の対応
iTunesでの項目文献情報
名前文献名
アーティスト著者
アルバム出展
コメントアブスト
ジャンル論文のジャンル

iTunesを使うと良い点・悪い点

良い点

  • 無料!
  • ファイル開くときにキチンと関連付けられたアプリで開いてくれる
  • 入力した情報については検索できる
  • レートをつけることができる
  • おそらくLAN内で共有ができる? (試してないです)

悪い点

  • ファイルの中身の全文検索ができない
  • おそらくBibTeX形式に出力できない(なんかしらのスクリプト書けばいいのかな)
  • 文献はTunesじゃない

まとめ

以上、ネタっぽいけど割と真面目な話でした。

単純にフォルダに入れて管理するよりは、少しはましになった気がします。

みなさんどのように管理しているのでしょうか?

学生はお金がないので、できるだけ安く(できれば無料)の方法を知っている方がいれば、教えていただけるとありがたいです。

posted by Png y_tsuda on Wed 15 Apr 2009 at 19:18

Rakeでnamespaceなどを使った場合に、Rubyのシンボルをネストさせたい時があるのですが、

   1  task :foo => :"bar:baz"

のように書くのが、DSL的にちょっとかっこうわるいです。 そこで、以下のようなものがあればちょっと奇麗に書けます。

   1  class Symbol
   2    def method_missing(method, *args, &block)
   3      if args.empty? && block.nil?
   4        [self, method].join(':').intern
   5      else    
   6        super 
   7      end
   8    end
   9  end
  10  
  11  >> :foo #=> :foo
  12  >> :foo.bar #=> :"foo:bar"
  13  >> :foo.bar.baz #=> :"foo:bar:baz"

いかがでしょう。

posted by Png genki on Wed 15 Apr 2009 at 05:49

GAE/Jにはファイル数制限(1000まで)があるので、なるべく不要なファイルは減らしたいのが人情というものです。 ということで、unpackしたgemsから不要なファイルを掃除するために、以下のようなスクリプトを使用しています。

script/strip_gems

   1  #!/usr/bin/env ruby
   2    
   3  Dir['gems/gems/*'].each do |dir|
   4    %w(
   5      Generaters TODO README.* README
   6      spec/**/* test/**/* examples/**/* tasks/**/*
   7      tutorial/**/* demo/**/*
   8      CHANGES CHANGES.txt CHANGELOG
   9      LICENSE MIT-LICENSE Rakefile CONTRIBUTORS
  10      Manifest.txt History.txt install.rb setup.rb
  11    ).each do |pattern|
  12      Dir[File.join(dir, pattern)].each do |path|
  13        command = "rm -rf #{path}"
  14        puts command 
  15        system command
  16      end
  17    end
  18  end

Gemの中に含まれているファイルには制約が無いので、 簡単なパターンで全てを掃除するのは難しいですね。

posted by Png genki on Wed 15 Apr 2009 at 04:54

Cucumberのfeatureを実行すると、上記のエラーが出て困ったので探したら

I resolved it by uninstalling the old "bryanary-webrat" gem and making sure that "webrat" was up to date (0.4.3)

When you have both installed, ruby tends to load the old one instead.
http://groups.google.com/group/webrat/browse_thread/thread/d8ea685a1b1931a5#

古いwebrat gemを消しなさいと。

   1  gem search webrat
   2  
   3  *** LOCAL GEMS ***
   4  
   5  aslakhellesoy-webrat (0.3.2.2)
   6  webrat (0.4.4, 0.4.3, 0.3.4)

案の定古いwebratがあったのでaslakhellesoy-webratをuninstallしたら動きました!

posted by Png satoko on Tue 14 Apr 2009 at 15:14

非常にシンプルなのですが、毎回GlobalHelpersに書くのが面倒なので、 Merbから GRAVATAR のアイコンを表示するための merb_gravatarプラグインを作りました。

http://github.com/genki/merb_gravatar/tree/master

インストール方法

   1  % sudo gem install merb_gravatar

使用法

dependencyでmerb_gravatarを指定して、viewで以下のように使います。

   1  <%= gravatar @user.mail, 16 %>

第二引数はアイコンのサイズを1~80で指定します。省略すると80が選ばれます。

ss1

GAE/Jでも使えます(See http://watch-me.appspot.com/people)

posted by Png genki on Tue 14 Apr 2009 at 11:11

dependencyでdata_objectsを指定すると、GAE/Jでなぜか突然exitしてしまうので理由を調べていたところ、data_objectsのtransaction.rbで以下のようなコードがあり、そこで落ちている事が分かりました。

   1  module DataObjects
   2  
   3    class Transaction
   4      HOST = "#{Socket::gethostbyname(Socket::gethostname)[0]}" rescue "localhost"     

Socket::gethostbyname を使っているところですね。

posted by Png genki on Tue 14 Apr 2009 at 04:36

Today I shipped a new DataMapper plugin that enables us to easily develop Merb-apps been worked with GAE/J.

By using this plugin, you can seamlessly develop your Merb-apps between local and GAE/J environment.

For example, this site is powered by Merb/DM with the dm-datastore-adapter and running on the GAE/J

(This service is under construction :-p)

As a matter of fact, because it is still being alpha status, you must treat various issues regarding gem dependencies yet. I appreciate any kind of feedback and of course patches :-)

Enjoy!

posted by Png takiuchi on Mon 13 Apr 2009 at 15:01 with 11 comments

一人で長距離を走るのが暇なので、 走っている間に会話ができる仲間を求めてはじめた MerbJog ですが、 勉強会系イベントの手法として優れた特性を持っている事が分かったので 開催する上でのポイントなどをまとめておきます。

特長

  • 会場スペースの制約が無く、参加人数に制限がいらない
  • 1〜2時間程度と、短時間で終わる
  • 仕切り、準備、後片付けなどがほとんど不要
  • 話した内容とは無関係に、走り終わったあとに満足感がある
  • フォーメーション的に中心人物ができにくいので、全員が比較的フラットに話題に参加できる
  • 体力の許す限り話したい人のそばに移動できる
  • 二次会をしないので安上がり
  • 健康的

短所

  • ググれないので脳に入ってる情報だけがたより
  • ホワイトボード、PCなどが無いので言葉だけで説明する必要がある
  • 悪天候時には中止・延期せざるをえない
  • 体力が無い人は参加できない
  • 参加者と遭遇できない場合がある

開催上のポイント

  • 皇居などの信号が少なく、5〜10kmぐらいのコースが良い
  • 遭遇できなくても泣かない。たまには一人で走るのもよし
  • 遭遇率を高めるために、主催者は携帯を持っていく
    • 携帯はランニングポーチに入れておくと気にならなくて良い
  • 筋肉の疲労が抜けるまで、なか2日程度あけた方が良い

See Also

posted by Png genki on Mon 13 Apr 2009 at 14:05 with 1 comment