ミームの死骸を待ちながら

We are built as gene machines and cultured as meme machines, but we have the power to turn against our creators. We, alone on earth, can rebel against the tyranny of the selfish replicators. - Richard Dawkins "Selfish Gene"

We are built as gene machines and cultured as meme machines, but we have the power to turn against our creators.
We, alone on earth, can rebel against the tyranny of the selfish replicators.
- Richard Dawkins "Selfish Gene"

今日の研究記録


Rubyをいろいろいじって勉強。深いなRubyは。多分非常に初歩的なことなのだが、気づいたことをメモ的に書く。明日は計算系のRMSDがなぜか不安定な根拠を探ろう。

Rubyからシェルコマンド

%x{}で囲めばいい。バッククオートでもいける(backticksという)が、バッククオートの入力法がわからん。まぁ%x{}はbackticksを使うらしいので、前者で良い。
今までがんばって慣れないシェルスクリプトを使っていたのが馬鹿みたいだ。僕の認識では

だったのだが、%x{}を使えばRubyのデメリットは消える。これはRubyだけでよさそう。


RubyのModule

便利だ。なるほどこうして使うのか
ファイル1"hoge.rb"に

module Hoge
  aaa = 100
  def Hoge.bar(x)
  #...
  end
end

とか書いて、他のファイルから

require 'hoge'
percent = value / (Hoge::aaa)
y = Hoge.bar(Hoge::aaa)

とか。定数アクセスが「::」だ。


正規表現

あるパターンを指定して、そいつをそのままにして部分的置換。「さっきマッチしたもの」を参照する特別な表現があるはず…と探した。

:%s/ \([A-Z][A-Z]*\) \1 / \1 /g

[A-Z][A-Z]*は、「一文字以上の大文字アルファベット」にマッチする(※1)。 注目すべきは、これを囲む\( \)である。 このようにエスケープした丸括弧で囲まれた部分は、 その後に続く検索、置換文字列内で参照することができる(※2)。 \1の部分がそれである。 これは[A-Z][A-Z]*でマッチした文字列に置き換えられる。

例えば、[A-Z][A-Z]*にONがマッチしたときは、置換コマンドは

:%s/ ON ON / ON / g

と指定したことになる。

(略)

\( \)は複数個配置できるし、入れ子にもできる。 それらは、\1, \2, \3, ..., \9を用いて9個まで参照可能である。 この番号は、最も左にある\(から、1から順に割り当てられる。

(略)

なお、検索文字列全体は、&で参照することができる。

load to vi master - 技

→前のマッチ全体は"&"で参照できる。
 また、/\(...\)/ とエスケープ丸括弧で囲んだ中身を\1, \2, ..., \9で参照可能。


Finderが落ちた

フロッピーに入れたデータを読もうとしてUSBでつないだら、実験装置依存で作成されるフォルダの変わりになぜかUNIX実行ファイル(名はフォルダの時のと同じ)があって、ロック解除して実行したらFinderが落ちた。立ち上がらないのでセーフブートで再起動。一方フロッピーは、撮影所(?)のやつでフォーマットした(リモコンから)。

→入った。とりあえずデスクトップにデータを移し、もっかいノーマルで再起動。


gnuplotの描画ターミナル設定

Aquatermを使うようになってくれない。X11で妥協。

~/.gnuplotを作成し、

set terminal x11

と記述。~/.bashrcには

export DISPLAY=:0.0

と記述。

X11を起動した状態でターミナルからplotするとX11に描画される。