よたらぼ
自分の興味の赴くままにIT技術系のネタを取りとめもなくメモっています。
Ruby言語やLinuxのネタが多いです。

September 30, 2003 [おもひで]

[Ruby] (続 x 4) 2つの文字列の先頭から等しい文字列を抜き出す

ZnZさんがRWikiにまとめページを作ってくれました。ありがとうございます。

まとめページにあるZnZさんの2つ目のは楽しいですね。二分探索って言えば良いのでしょうか。

オーバーヘッドがあるので小さい文字列には向かないですが、大きい文字列を扱ってもスピードがあまり落ちないのが良いですね。

メソッド名ですがmatch_firstは確かにおかしいかも。でも、shared_prefixですか...。prefixって言葉はこういう場合にも使うのかな。

[Ruby] (続 x 5) 2つの文字列の先頭から等しい文字列を抜き出す

シンXさんがsed版の解説をしてくださっています。実はよくわかっていなかったので(^^;)大変勉強になりました。

ちなみにRubyは楽しいですよー。デビュー(?)お待ちしております(^^)。

[Ruby-GNOME2] Musicextras

音楽のextra情報(詞やアーティスト画像、アルバムカバーなどの情報らしい)を表示するツール。GUI frontendとしてRuby/GTK2, Ruby/Libglade2を利用する。

最近、Ruby-GNOME2を使ったアプリケーションがちょこちょこ出てきている。それを紹介できるのはとてもうれしいことだ。

やっぱり、ライブラリは使ってもらってなんぼだもんねぇ。

[Misc] そういえば

今朝、オープニングトークでおぐらさんがLinuxとSCOの例の訴訟について語っていた。五分くらい。うひょー。

[Ruby] Etcモジュール

Etc.passwdとEtc.groupって使いづらいような気がする。Rubyっぽくないというか。何より一度イテレートした後にまた最初に戻る方法がわからない(-o-;)。ひとまず/etc/passwdファイルの情報だけ欲しかったので以下のようなモノを作ってみた。

require 'etc'
                                                                                  
module Users
  extend Enumerable
  @users = []
  while user = Etc.passwd
    @users << user
  end
                                                                                
  module_function
  def each
    @users.each do |user|
      yield user
    end
  end
end
                                                                                  
Users.each do |v|
  p v.name
end

本日のツッコミ(全9件) [ツッコミを入れる]
matz (October 01, 2003 08:21)

Etc.passwd{|pw|...}とか使えばよろしいのでは。

むとぽん (October 01, 2003 12:46)

げっ、Etc.passwdってブロック使えるんですね...<アホだ。

kjana (October 01, 2003 16:09)

"shared prefix of" で google 検索しても 31 件しか出て来なかった....<br>列の先頭からある点までを prefix っていうのは一般的だと思うんですが.

むとぽん (October 01, 2003 17:44)

てっきり、列の先頭からある点で共通の意味がある文字列をprefixっていうのかと思ってました。<br>例えば、MutohとMasaoで、Mが同じだからといってもMをutohとasaoのprefixとは言わないような気がするんですけど...。<br><br>あ、あと、aがbを完全に含む場合とか。<br>(例)ruby rubyistでrubyが返る

なかだ (October 01, 2003 18:07)

sharedよりはcommonというのが思い浮かぶので"common prefix of"でぐぐると3410件でした。<br>python-devにも、"String method: longest common prefix of two strings"というsubjectのスレッドがあるようです。

kjana (October 01, 2003 18:32)

手元の教科書より:<br><br> x が y の前部分語 (initial subword) あるいは接頭語 (prefix) であるとは、<br> xz = y となる z が存在するときをいう。<br><br>ここで x、y、z は簡単に言えば文字列、文字列の積は連接を表わします。この意味で<br>M は Masao の長さ 1 の prefix です。

むとぽん (October 01, 2003 20:10)

なるほど。<br>でも、揚げ足を取るようですが、その引用だと、MはMasaoの長さ1のinitial subwordを指しているとも取れますね。<br><br>オンラインの英英辞書でprefixを見たら以下のようになってました。<br>http://dictionary.cambridge.org/define.asp?key=62385&dict=CALD&desc=prefix<br><br> <br>Definition<br>prefix (GRAMMAR) [Show phonetics]<br>noun [C]<br>a letter or group of letters added to the beginning of a word to make a new word:<br>In the word 'unimportant', 'un-' is a prefix.<br>See also affix (WORD PART). Compare suffix.<br><br>(from Cambridge Advanced Learner's Dictionary)<br><br>でも、なかださんの例を見るとやっぱり良いのかなぁ。<br>コンピュータ用語なんですかね。

kjana (October 02, 2003 12:03)

情報数学用語ですかね.上の引用は有限オートマトンの本からだし.<br>ふつうああいう書き方だと initial subword と prefix は同じ物の<br>別名だと読むのであげ足はあんまりとれてません :-) 「を指してい<br>る」んじゃなくて「である」のだと取り返してみよう.<br>情報数学.... 情報科学?

むとぽん (October 02, 2003 18:30)

なるほど。<br>一般的な用語の使い方とはちょっと違うぞということですね。


編集