2003年05月30日 [長年日記]
_ 42件騒動・・・から始まった、オープンソースの定義と思想のこと。
なんかそこらじゅうで話題になっているので*1、(OSIの定義によると)オープンソースらしきものを公開しているらしい私もちょっと一言。
論点となっているのは
我々フリーソフトウェア開発者が個々のユーザから対価をもらわず日夜開発を行っているのは、自らの思想の実践であり、ソフトウェアの自由を実現するためである。
の一文だと思うんだけど、私が気になるのは次の二点。一つ目が「我々」って言葉で世の開発者さんたちの開発動機はこれだよ!って決め付けてしまっているように感じてしまう事。まぁ、その動機自身を決め付けてるわけじゃないんだけど、どんなことであれ「あんたはこうだよ!」って決め付けられるのは好ましくないと思う人がいるのは事実だろう。んで、二つ目が「自らの思想」って言葉の持つ重厚なイメージにある。まぁ、めちゃくちゃ主観なんだが、「思想」って言葉ってなんだか「確固たる思い」を表してるように感じる。まぁ哲学用語っぽいところがあるわけだし、同じ思いを持つ人って結構いるんじゃないかな?・・・これまた主観なんだけど。そんなわけで、私みたいに「『ソース欲しい』って言う人がいるからソースも公開しちゃいました。まーいーや。とりあえず、好き勝手にしちゃっておくれ」ぐらいの、周りに流されてなんとなく・・・なんて感じで結果的にオープンソースらしきものに手を染めちゃってるような人もいるわけで、そんな状態なのに「自らの思想」云々言われてしまうとなんだかこそばゆくてしかたない。
・・・あ゛〜。なんか言葉尻だけ捕まえてアレコレ言っているだけのような気がしてならない。書いてある言葉を単純に捉えてしまうと、こんな思いを持ってしまって、なんだか違和感を感じる人(私含む)がいるってことで。*2
_ やっぱ、Rubyでしょう。
現実逃避作業結果。
require 'getopts' if ARGV.size == 3 re = Regexp.new(ARGV.shift) x = ARGV.shift.to_f y = ARGV.shift.to_f else usage =<<-USAGE 書式: #{$0} [条件] [Xの増分] [Yの増分] [条件] : この条件にマッチする行の一つ前の行を対照とします。 [Xの増分] : Xの増える値を指定します。マイナス入力OK。 [Yの増分] : Yの増える値を指定します。マイナス入力OK。 概要: 標準入力の内容を変換して、標準出力に出力します。 適当にパイプでつなげてください。 例: #{$0} ^G101 -1 0 < test.txt > test2.txt test.txtの内容からG101の一行前のXを-1してtest2.txtに出力します。 #{$0} ^G101 0 +1 < test.txt > test2.txt test.txtの内容からG101の一行前のYを+1してtest2.txtに出力します。 USAGE STDERR.print usage.gsub(/^\t+/, '') exit 1 end def change_line(data, x, y) id, d_x, d_y = data.scan(/^(.*)X(\d{3}\.\d{3})Y(\d{3}\.\d{3})$/).flatten d_x = d_x.to_f + x unless d_x.nil? d_y = d_y.to_f + y unless d_y.nil? return "#{id}X#{d_x}Y#{d_y}\n" end prev = ARGF.gets ARGF.each do |line| if line =~ re print change_line(prev, x, y) else print prev end prev = line end print prev
_ [Tips] Procmailメモ。
今後よく使いそうなので、Procmailの紹介とレシピの書き方のサイトをメモしておく。
私も某所で現実逃避を。(^^;
でも、SAS の処理が 10 分も 20 分もかかる方が悪い(笑)。※逃避→矢印
Not (x Like "*[!a- ... その書き方は知らなかった。(@o@) φ(.. )