irbからシェルのコマンドを実行

たぶん既出だと思うけど自分のためにもメモ。

.irbrcにmethod_missingを定義してコマンドを実行させるとIRBからちょっとした確認が出来て便利。

module Kernel
  def method_missing(meth_sym, *arg, &block)
    str = `#{meth_sym.to_s} #{arg.join " "}`
    if str == ""
      raise NoMethodError
    else
      puts str
    end
  end

  private :method_missing
end

実行例はこんな感じ。

pwd
/home/walf443
  #=> nil

hoge
(irb):3: command not found: hoge 
NoMethodError: NoMethodError
        from /home/walf443/.irbrc:52:in `method_missing'
        from (irb):3

"abc".hoge
(irb):5: command not found: hoge 
NoMethodError: NoMethodError
        from /home/walf443/.irbrc:52:in `method_missing'
        from (irb):5

"abc".hogeにもKernel#method_missingが効いてるのとcommand not foundが出てるのがちょい気に入らない・・・。

ただtypoでうっかり知らないコマンド引き当てちゃったりするかもしれないので諸刃の剣かも。使う際にはご注意ください。それから補完などが効かないのでシェルの方がやっぱり良いかもしれません。

タグの表記ゆれを防ぐテクニック

ライフハックの心理学: 情報整理ツール『TOMBO』より。
screenshot

そのためには、「後で見る」とか「後で参照」とか「重要」とか「要チェック」などのように、表現を揺らさないことが望ましいわけです。後で見たいものには、いつでも「参照」というタグ(キーワード・ラベル)を付けておきたいものです。「後で参照」なら、ちゃんと「参照」の文字が入っているからまだいいですが、「要チェック」では「参照」フォルダに入ってきません。

そこで私は、ATOKの「単語登録」機能を使って、「たぐ」と打ってから変換すると、「参照」と変換されるように、してあります。実際には、 [参照]と変換されます。こうして、「たぐ」に頻繁に使う「キーワード」、例えば私の場合ですと、「心理学」とか「ロボット」とか「認知」とか「意識」などを入れておきます。そうすれば、自分の使うキーワードを、いつでもリストアップして選ぶことが出来る上に、紛らわしいキーワードを使わずに済むからです。
From: http://www.month-psy.com/blog/2006/05/tombo.html

タグの表記ゆれにははてダなどで困らされていたのですが、この手がありました。顔文字とか最近使ってないので忘れてました。

個人的には一般的な表記だと普通の変換をする際に困るので「_たぐ」などとしておくのがオススメです。サービスごとに「_はてだ」「_はてぶ」と管理しておくと良さそうですね。

とおもったのですが、すべて「_たぐ」で統一してしまった方が探すという観点からするとサービス間の表記ゆれが少なくなって良いかもしれません。