rubeque2012/02/13

rubeque

を最近始めた。

得点が、

  • 1問正解すると1点
  • 正解した問題は他人の解答を閲覧できるようになり、優れた解答(だと思うもの)には投票することができる。

の合計で決まるのが面白い。

ただ、問題が不定期に削除されているようで、現在見える全問を解答しても、トップランカーの回答数に追い付けないのがちょっと不満。

その他気になった点としては、入力のバリデーションがやや厳しすぎるのか'\1'等の表現の認識に難があるようで、

gsub(/(\d)/, '\1,')

だと期待した動作をしてくれなくて

gsub(/(\d)/, '\\1,')

とする必要がある。 多分同じような理由で、"\200"とかの表現も通らない。

あとは、

Dateクラスはrequireしなくても使える。

ActiveSupportが有効になってるという噂だけど、tryメソッドは使えなかった。

whileが通らないという噂だけど通った。

RVM をマルチユーザー用にセットアップする2011/10/05

Installing RVM

の Multi-User installations にあるとおり、

$ sudo bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

で良い。

インストーラが

/etc/profile.d/rvm.sh

のファイルを作成してくれるので、.bashrc等の編集も要らない。

rvm配下のファイル群は

/usr/local/rvm

以下に作成される。

注意事項

  • インストーラは直接rootでは実行しない
  • rvm install等 /usr/local/rvm 以下のファイルを操作するコマンドを実行するユーザーは rvm グループに所属させる。(sudoはしない)
  • インストール時に ~/.rvmrc が存在したら事前に消しておく

前2つは前述のページに書いてあるが、最後のは無い。 まあ、新規インストール時に .rvmrc があることは無いのだけれど、個人用にインストールした後で、マルチユーザー用に切り替えようとした場合(まさに今回)、 .rvmrc に

export rvm_path=~/.rvm

と書かれているせいで、インストール先が /usr/local/rvm にならなくて悩む。

RubyKaigi 2011 LT2011/07/19

芸人としては美味しすぎる弄られ具合だったので、自分的には大変楽しかったのですが、発表自体の出来については、正直スマンかったとしか言いようがなく……。

需要があるのかどうかは判りませんが、スライドを置いておきますね。

RubyKaigi 2011 LTで喋ります。2011/06/28

当選したらしいので、バッチを貼ってみるテスト。
しかし、画像のアップロードが難しいblogだなあ。
そろそろ引っ越したいかも。

最近パッチを書いていたActiveLdapについて話す予定です。

Tokyo Ruby Kaigi 052011/02/04

当選した人の義務らしいので、遅れ馳せながら何か書きとめておく。

場所は渋谷のECナビ8Fの「Ajito」という洒落た名前の社内バー?
いきなり缶ビールを渡されたりいろいろ戸惑う。
あと、参加者若いよ。おじさんはそれだけで辛い。

まず、高橋さんによる「Rubyの楽しさ」についての講演。
会場中をマイクが転々としていたのが印象的だった。

あと、自宅環境はMacだけど、会社とか事務所での作業スペースはWindowsって人は少なくない気がする。

で25分入れ替え制で2セットのセッション。

前半はテストについて。

テーブルを囲んで、みんな結局同じようなところで悩んでいるんだなあと。
いくつかの素敵なソリュショーンについて教えてもらった。

Capybara https://github.com/jnicklas/capybara

Cucumber と一緒に使うと幸せになれるらしい。
通常 Cucumber は webrat 経由でビューの出力を得るけれども、この手法だとa-jaxばりばりのページにはほぼ無力になってしまう。
その際に、必要に応じてビューを生成するしくみを切り替えて(例えば Selenium に)テストが実行できるようにしてくれるライブラリ。
今度試す。

もう一つ、Jasmin &#40;だっけ?)はなんだか、それっぽいのが発見できず……。

あと、心得をいくつか。
・自明はテストは書かない
・テストしやすい構成にする(ロジックはモデルに集める。コントローラは極力シンプルに)
・ビューのテストはCucuのシナリオレベルで良いんじゃないか

後半はメタプログラミングについて。
・「メタプログラミングRuby」重要(テクニックに名前を与えたことにデザインパターン的な価値がある。名前重要)
・デバッグが大変
・BasicObject使え&#40;ActiveRecordに言ってやりたい)


あと、隣のテーブルのメモ(今回は各テーブルに大きな模造紙が広げられていて、メモはそこに取るように指示があった)にあった「TRPGのセッションみたい」という書き込みがちょっと気になった。
確かに言われて見れば、似ていたような気もする。