2003年05月01日 [長年日記]
_ [Becky] MoveTo Plugin Ver.0.20 公開。
メッセージビューにフォカスがあるときに、メニューキー(キーボードのWindowsキーの隣にあるやつ。正式名称なんだっけ?(汗))を押してしまう事が多々あったので、メッセージビューの右クリックメニューにも「メールを移動」を追加するようにした。キーボード派な自分にはかな〜り使いやすくなったので満足、満足。
2003年05月02日 [長年日記]
_ tDiaryのバージョンを上げてみた。
ずっとやりたかった、tDiaryのversion1.5化をやっとすることができた。なにやらいろいろやらかしてしまったので、今日ウチにやってきた人はアレやコレがおかしかったかもしれない。すまんですm(_ _)m
んで、この版ではRD形式で日記が書けるようになってるらしいんだけど、サーバにRDToolをインストールしなきゃいけないんで、とりあえず断念。そのうち挑戦してみよう。
さらに、この版ではカテゴリ機能とかゆーものがあるらしい。とりあえず、過去にっきを使っていろいろテストしてみよう。
_ つーわけで。
カテゴリ機能のテストをしてみた。こんな感じで今までのリリース時のにっきが一覧表示されるのは結構楽しいかも。暇を見つけて少しずつ過去にっきを手直ししていこう。
_ ふぅ。。。
tDiaryで管理している分の日記全てにカテゴリ名を入力した。
そのついでに今までの日記を読み返していたんだけど、ほんっっとに買ったリストを更新してないんだねぇ。多分載っていない本を200冊Overくらい勝ってると思われ。・・・これを更新していくのは至難の業だぞ(T-T)
_ ももたろ [1.5でもちゃんとツッコめるかテスト。]
2003年05月03日 [長年日記]
_ 早速。
Becky! Ver2.05.11がリリースされて、問題が修正された模様。確かに、自動送信&自動添付をしなくなっている。なんとなく、セキュリティ対応するための暫定対応っぽい香りが漂ってるけど、まぁ気のせいなんだろう。
2003年05月04日 [長年日記]
_ [tDiary] category.rbの改造。
カテゴリ一覧の右上の日付の変更のところでカテゴリを選択できるようにならないかな〜、とか思いながらGoogleってみたら、こんな文書を見つけたので早速試してみた。
確かに、category.rb内で@categorized(カテゴリの内容が入っているインスタンス変数・・・だと思う)を使えるようになっていい感じ♪だったんだけど、@categorizedにはとーぜんながらそのとき表示されるカテゴリの内容しか入っていないんだよね。多分「あとは適当にやる」とか言っている中でいろいろやんなきゃいけないんだろーけど、なんだかよくわからず断念(T-T)
改造した方のtDiaryはちゃんと全カテゴリが見えているようなので、できるはずなんだろーけどね・・・。
_ [買った] 進め!未来の大英雄 新ソード・ワールドRPGリプレイ集(1) 清松みゆき:監修 秋田みやび/グループSNE:著
リプレイなんて買うのも読むのも久しぶり。
・・・とりあえず、屋敷内探索なんてシーフがメインのイベントなんだから「飽きた」とか言って聞き耳もせずに扉を開けるのはどーかと思うぞ。ノリス。
_ [買った] つかめ!明日の大勝利 新ソード・ワールドRPGリプレイ集(2) 清松みゆき:監修 秋田みやび/グループSNE:著
このリプレイ、GMの葛藤やらなんやらがつらつらと書かれているのが面白い。自分がGMになった気分でプレイヤーの行動を見ながら「あ゛〜!」とか「そっちぢゃない〜」とか叫べる。・・・まぁ、解説で山本弘も言っていたけどね。
・・・とりあえず、「センス・イービル」万歳(T-T)
2003年05月06日 [長年日記]
_ [tDiary] category.rbの改造(解決編)。
できない〜ってうだうだうなっていたら、改造版を作った方が「後は適当にやる」部分も公開してくださった。いわれるがまませこせこと修正をしたら(バージョンが違うっぽかったので手動パッチ(泣))、なんと、いともあっさりと動くものが。そうか。tDiary.rb側で@categorizedの中身を取捨選択していた部分をごっそりとcategory.rbに持っていけばよかったのね。気付いてみれば納得できるんだけど、まだまだ精進が足らんね。修行せねば。
skel/category.rhtmlの側は既に直してあったので、コメントアウトしてあった部分をはずすだけでOKだったんだけど、一箇所詰まってしまった。何も考えずにoption要素のvalueの中身をURLエンコードしてたんだけど、POSTしたときに二重にescapeされてしまった。ここはURLエンコードする必要なかったのね・・・φ(.. )
何はともあれ、Pyonさんありがとうございましたm(_ _)m
_ [買った] スレイヤーズ 水竜王の騎士 1巻 原作:神坂一 作画:トミイ大塚
長編小説の続編っぽかったので買った。結界の外に出てるので、スレイヤーズシリーズで語られなかった謎がとけるのかも。楽しみ〜。
_ [tDiary][Becky] よし。メールからのにっき更新成功!
これで、ネットワークに繋がってなきゃ更新できないよ問題は解決かな。
ただし、私のやり方はいろんな人がやってる(と思われる)、メールデーモンを立ち上げてそいつがメールを受信したらtDiaryにPOSTって方法ではなかったりする。ではどーしてるのかというと、Beckyのpluginとして実装して、OnSendを横取りしてHTTPでPOSTしてやるという方法をとっている。レンタルサーバなんで勝手に余計なデーモンを動かせないんだよね。。。
まぁ何はともあれ、beckrbとTMailに感謝。汚いソースだけど、下記にUPしてみよう。誰か添削してくれるかもしれないし。
_ [tDiary][Becky] Becky! 2からtDiaryを更新する為のPlugin。
下記ソースをBeckrbのスタートアップスクリプトフォルダに置き、"tDiary"宛にメールを書けばOK。そのときに、Subjectには更新したいにっきの日付を、設定情報類はX-tDiary-Hogeを適宜指定してあげよう。X-tDiary-Hogeの指定はテンプレート機能を使うとよさげ。ちなみにProxy経由の接続テストはしてないです。要Beckrb&TMail。
require 'tmail' require 'parsedate' require 'net/http' require 'kconv' require 'cgi' TDiaryAddres = 'tDiary' class CallbackTDiary def on_send(msg) mail = TMail::Mail.parse(msg) return 0 if !mail.to.include?(TDiaryAddres) time = nil begin case mail.subject.upcase when 'NOW', 'TODAY' time = Time::now when 'YESTERDAY' time = Tiem::now - (24 * 60 * 60) else time = Time::local *(ParseDate::parsedate(mail.subject.untaint))[0..-3] end rescue Exception return Becky::ONSEND_ERROR end host = get_header(mail, 'X-tDiary-Host') document = get_header(mail, 'X-tDiary-Document') port = get_header(mail, 'X-tDiary-Port') || 80 proxy_host = get_header(mail, 'X-tDiary-ProxyHost') proxy_port = get_header(mail, 'X-tDiary-ProxyPort') auth_user = get_header(mail, 'X-tDiary-AuthUser') auth_pass = get_header(mail, 'X-tDiary-AuthPass') body = mail.body.tosjis.untaint data = "year=#{time.year}&month=#{time.month}&day=#{time.day}&title=&body=#{CGI::escape(mail.body.tosjis)}&append=#{CGI::escape(' 追加 ')}" Net::HTTP.start( host, port, proxy_host, proxy_port ) do |http| response,body = http.post( document, data, 'Authorization' => 'Basic ' + ["#{auth_user}:#{auth_pass}"].pack('m').strip) end return Becky::ONSEND_PROCESSED end def get_header(mail, header) h = mail[header] h = h.to_s.untaint unless h.nil? return h end end Becky.add_callback CallbackTDiary.new
_ ぴょん [御芽出度う御座います。旨い事行つて良かつたです。]
2003年05月07日 [長年日記]
_ [tDiary][Becky] tDiaryをBeckyで更新するPluginを微調整。
エラーを適当にrescueしてあげたり、URIクラスを使うことでX-tDiary-Hogeの数を減らしたりするようにした。なんか使うライブラリが増えて遅くなってしまった気がするが気のせいということにしておこう。
class CallbackTDiary # tDiaryメールのアドレス TDiaryAddres = 'tDiary' def on_send(msg) begin # tDiaryメールを取得 require 'tmail' mail = TMail::Mail.parse(msg) return 0 if !mail.to.include?(TDiaryAddres) # パラメータの解釈 require 'uri' time = parse_date(mail.subject.untaint) uri = get_header(mail, 'X-tDiary-URI') raise "X-tDiary-URI ヘッダを指定していない。" if uri.nil? uri = URI::parse(uri) proxy_host = get_header(mail, 'X-tDiary-Proxy') proxy_host, proxy_port, = proxy_host.split(':') unless proxy_host.nil? # 送信データ作成 require 'kconv' require 'cgi' body = mail.body.tosjis.untaint data = "year=#{time.year}&month=#{time.month}&day=#{time.day}&title=&body=#{CGI::escape(mail.body.tosjis)}&append=#{CGI::escape(' 追加 ')}" # 送信 begin require 'net/http' Net::HTTP.start( uri.host, uri.port, proxy_host, proxy_port ) do |http| response = http.post( uri.request_uri, data, 'Authorization' => 'Basic ' + ["#{uri.user}:#{uri.password}"].pack('m').strip ) end rescue Exception raise "送信できない:#{$!}" end return Becky::ONSEND_PROCESSED rescue messageBox($!.to_s, "tDiary失敗") return Becky::ONSEND_ERROR end end private # Timeオブジェクトを生成 def parse_date(d) case d.downcase when 'now', 'today' time = Time::now else require 'parsedate' time = Time::local *(ParseDate::parsedate(d))[0..-3] end end # TMail::Mailよりuntaintしたヘッダを取得 def get_header(mail, header) h = mail[header] h = h.to_s.untaint unless h.nil? return h end # メッセージボックス表示 def messageBox(msg, title) require 'Win32API' messagebox = Win32API.new('user32', 'MessageBox', %w(p p p i), 'i') messagebox.call(0, msg, title, 0) end end Becky.add_callback CallbackTDiary.new
_ [V友] ふとももを久しぶりに使ってみた。
めちゃくちゃ久しぶりに、ふとももを使ってみたんだけど。結構ちゃんと作りこんでいたんだねぇ。我ながらちょっと感心。データもまっさらだから速いし。
で。なんか、「スレッド表示するとROOTの投稿以外は未読の*が太字にならない」とか「Alt+TabしたときのアイコンがVBのデフォルトのまま」とか「クエリー検索ダイアログで右側のリストからD&Dしたときは[Table名].[Field名]の方がいいかも」とか「クエリー検索ダイアログが出てるときはAlt+Tabのリストに出てこない」とかなんか細かい問題(?)をいろいろ見つけてしまった。
・・・修正したほうが良い?(汗)
_ [TTBase] オープンソース化。
された。原作者(既にそんな呼び方でいいのか?(汗))であるK2さんは、TTBaseに時間を割けなくなってしまっているようで、それならば、とオープンソース化を提案してくださった。そんでまー、一応プラグインを(多分)一番大量に公開してしまっている身としては、役に立たねばならんだろうとゆーことで、Delphi書けないくせにsourceforge.jpのプロジェクト管理者に名乗りをあげてしまったのであった。
まぁ、TTBaseに実装して欲しかった機能があったりしていたので、願ったりかなったりなのかもしれない。まずは、Delphiになれないといけないのかな。
とりあえずはわかるところから、ということでプロジェクトホームページにPukiWikiを立ててみたんだけど、やっぱりWiKiは便利だね。でも、プラグインのアップ場所として使うって利用法は思いつかなかった。いい案かもしれない。UPできる体裁を整えてみようか。
2003年05月08日 [長年日記]
_ [TTBase] PukiWikiにLast-Modifiedを出力させるようにした。
pukiwiki.ini.phpの134行目あたりにある、$lastmodを1にするだけでよかったみたい。
これで、WWWC系の更新チェッカを使うのが楽になったぞ。サイトのどこかが更新されていれば、って条件にしたければhttp://〜〜/pukiwiki.php?cmd=listを見に行くとよさげ。毎回「一覧」は更新してるんだろうね。
_ 一日中、打ち合わせ。
今日は一日中打ち合わせをしていた。9:30〜19:00。・・・途中のお昼休みを除いても8.5hもやっていたわけか。そりゃ疲れるわけだ。
・・・ってことで、今日はとっとと家に帰ることにしよう。
と、思ったら、雨降ってるぢゃない。今日は原付通勤だったのにどうしよう・・・(T-T)
_ 時期Crusoe搭載マシンは9月出荷?
TM8000ってぽしゃったわけじゃーなかったのね。ってことは、秋まで待てば、時期Librettoが発表されるのかなぁ。一年ぐらい前から「次のLibrettoが出たら、モバイルマシンを買い換えよう」と思っていたんだけど、もーちょっと辛抱してみよう。
発表だけでも早くしてくれないと、Let's Note W2に鞍替えしちゃいそうだよ。まぁ、キーボード配列がイヤ&タッチパッドなポインティングデバイスは嫌いってのがあるから、今のままLibretto L2を使いつづけると思うけど。
2003年05月09日 [長年日記]
_ 音楽ジャンルの解説サイト。
を見つけた。普段ぽっぷんなんかで使っているジャンルの用語の意味がわかったりしていろいろと興味深い。・・・興味深いんだが、「おはロック」と「氷室ロック*1」が載っているのはどーなんだろう・・・(汗)
*1 「ヒムロック」と読むらしい(^^;;
_ ツッコミ返し。
確かに、メールでにっきを更新できるのはなかなか嬉しい・・・のだが、結局ちゃんと更新されてるかどーかが気になってしまってブラウザで確認してしまう私には、もしかしたら無用の長物だったのかも・・・(汗)
しかも私のやり方ではBeckyからしか使えないので、外出先で携帯から気軽ににっき更新♪・・・とかできるわけでもないし。
_ 結局。
Amazonで注文しちゃった。本屋巡って探すのも面倒だしね。
Amazonアソシエートに登録してから注文してみたんだけど、ちゃんとウチから紹介されたことになってるのかなぁ。貰ったメールには「あなたのWebサイトを確認させていただいた後、プログラム正式参加の承認通知をEメールでお知らせします。」って書かれていたから、仮登録中の場合は紹介料が発生しないのかもしれないぞ(T-T)
早まったか。
_ 給料日。
そして、昇給。ばんざ〜い♪
_ 呑み屋にて。
二人で呑みに来たはいいけど、相方に寝られてしまった。今はこーしてLibretto使ってにっきを更新したりして時間をつぶしているけど、このまま起きなかったらどうしよう。。。「朝まで呑みましょう!!」って言われて誘いに乗ったはずなのに・・・。
_ すんません。
ツッコミにタグは基本的に使えないみたい。http://〜〜で始まるURLを入力すりゃ勝手にリンクが張られるのでとりあえずなんとかなるとは思うんだけどね・・・。
すまんです。>藤代さん
2003年05月10日 [長年日記]
_ [買った] Honey 1〜5巻 橘裕
絵が可愛かったんで思わず購入。崩したときの絵が飯坂友佳子に似ているかも。
_ [買った] フェアリー・マスター 橘裕
同時収録の読みきり「月光熱」の方が好きかな。。。
2003年05月14日 [長年日記]
_ MSのエイプリルフールって・・・。
5月にあるんだとさ。なんだかなぁ。まぁ、存在自体がエイプリルフールみたいなもんだからいいのかもしれないが。
つーか、周りにアホ呼ばわりされて慌てて引っ込めたってのが真相のよーな気も・・・。アレなら対して開発費用もかけていないだろうし。
2003年05月15日 [長年日記]
_ [TTBase] オープンソース計画。
うーむ。早速、動きがなくなってしまった(T-T) 今のところ本体に手を入れる必要性は感じられないってことなのかな?私もいまいち時間がとれなくて向こうでいろいろ書きなぐってることを具体化させられないでいるし。
_ [買った] 学生の領分 全3巻 なかじ有紀
これで、なかじ作品はほぼコンプリートかな。「買った」リストには載せていないけど、実はほとんどの作品を手に入れてしまっていたのであった・・・。
んで、この作品。かな〜り昔のものだけあって、時代を感じさせる。「イモ」とか「NOWい」とかとか・・・(あ〜、書いてるだけで恥ずかしい)
_ [買った] 決めろ!最後の大逆転 新ソード・ワールドRPGリプレイ集(5) 清松みゆき:監修 秋田みやび/グループSNE:著
まぁ、正確には「届いた」だけど。
・・・とりあえず、ノリスが生き返ってくれてうれしいな。でもいなくなって寂しいな(ファンだったらしい)
_ [買った] 賭けろ!世紀の大勝負 新ソード・ワールドRPGリプレイ集(6) 清松みゆき:監修 秋田みやび/グループSNE:著
・・・とりあえず・・・。・・・あれ?どんな話だった既に忘れてしまっている・・・。
_ [買った] 集え!へっぽこ冒険者たち ソード・ワールド短編集 清松 みゆき (著), 江川 晃 (著), 西奥 隆起 (著), 秋田 みやび (著), 北沢 慶 (著), 安田 均 (編集)
あ゛ぁ。タイトル長すぎ(T-T)
・・・とりあえず、グレートソードの話が面白かったかな。あーゆー、「変化球」な話は好きなのかもしれない。
_ やっぱり本気だったんだ・・・。
昨日ぼそっと言った内容が真実だったらしい。エイプリルフールの冗談だってことが嘘で、「論争や嘲笑、反感を招いたために打ち切られた」んだとさ。いーかげん、すぐにバレる嘘をつくのはやめりゃぁいいのに。
_ con [TTBase、あちらで言われているようなプラグイン同士の連携はユーザーにとっても開発者にとっても利益があると思います..]
2003年05月17日 [長年日記]
_ [TTBase] プラグイン同士の連携。
conさんも言っているけど、やっぱり実現させるうまい方法が思いつかない。。。
_ [買った] 魔法戦士リウイ 1〜9巻(第一部完) 水野良
Amazonのレビューにある、「文章は三流」ってのは微妙に違うような気がする。なんつーかSNEの人たちって、世界観やらキャラクターやらシナリオやらやらのRPGを構成する要素を作るのは巧いんだけど、それを物語とするのは苦手としているように感じるんだな。上手く言えないんだけど、文章が下手なんじゃなくて(いや上手くもないが)、ドラマを作るのが下手なんじゃないかな〜。リプレイの方が圧倒的に面白いのは、その「ドラマ」の部分が偶然の産物(ヤラセもあるだろうが)だからであると考えると納得できるし。
まぁ、作者自身もある程度は解っているのか、あとがきでいろいろ言い訳しているけど。それがまた腹立たしいんだけど。
なんだかんだ言ってはみたが、「シナリオ」の部分には面白さを感じているので、良作なんだとは思う。
2003年05月18日 [長年日記]
_ [TTBase] タスクトレイをアクティブにする Ver.1.00 公開。
TTBaseスレのネタを見てて、ふと思い立って作ってみた。何をするものかはソフト名から押して知るべし。
あんまり複雑な事はできないけど、キーボードだけでタスクトレイを操作できるってのはかなり嬉しいかも。
コアの実装が4行だけってのも開発者にとっては嬉しい(^^;;
2003年05月20日 [長年日記]
_ [tDiary] サイト改造。
にっきのトップにカレンダーを表示させるようにしてみた。
前からず〜っと表示させたいと思っていたんだけど、なぜかウチの環境ではうまくいかず挫折していた。calendar2.rbってプラグインがあってそれを使うだけなはずなはずなんだけどねぇ。・・・とか思いつつ、ふと設定情報を見てみたら「calender」ってなってただけだったとさ(号泣)
あ゛あ゛あぁぁあぁ。今までの苦労はなんだったんだろう。
あ、もー一個。を受けて、各ページの最後に「きびだんご」へのリンクを追加した。これでちょっとは見やすくなった・・・のかなぁ?
_ ツッコミ返し
藤代さん>うぎゃ。.htaccessでBasic認証かけていたのに、いつの間にやら動作しなくなってる。。。どうも画像表示プラグインを導入したときになんかやらかしてしまったらしい。慌てて直したのでこれで使えないようになってるはず。
・・・つーわけで、さっきまでは誰でも日記を更新できてしまっていましたとさ(号泣)
_ ぴっちからにっきを更新してみよう。
打つのはめんどいがこれができると、楽しいぞ、と。
2003年05月21日 [長年日記]
_ [tDiary] つーわけで。
posttdiary.rbによるメールでにっきを更新計画は見事成功した。一応作業手順をメモしておこう。
posttdiary.rbのチュートリアル(?)を参 考に、.forwardファイルに転送設定を書こうとしたんだけど、日記を受け取る専 用のメールアドレスがなかったため断念。SPPDではメールアドレスが一個しかもらえ ない代わりに、10個までのエイリアスが指定できるようになっていたため、 tDiary@momo-lab.net*1を別名として登録して、ここにメールを送ったときだけ転送するよ うにすればOK、OKかな・・・と思ったんだけど、ここで問題発生。.forwardによ る転送設定では条件による分岐ができないらしいのだ。さて、困った・・・と思 いながらGoogle君に聞いてみたら、procmailなるものを発見。きめ細かな転 送設定ができるものらしい。ってことで、結局下記のように設定して、無事にっきを メールで更新できるようになった。
$cat .forward "|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #user" $cat .procmailrb LOGFILE=$HOME/procmail.log :0 *^To.*tDiary | $HOME/posttdiary.rb http://www.momo-lab.net/saru/update.rb user password
これで、Becky!のプラグインとか使っていろいろやっていた事は無駄になっちまったな・・・(涙)
*1 例なので、ここにメールを送ってもunknownになる はずよ
_ ありゃ。
日付またがっちまったか。上の内容は、昨日いろいろ試してた事の続き。・・・と注釈しておこう。
_ ご使用いただきありがとうございます。
よく見つけましたね(^^;;
Beckyのプラグインを普通に探してたら多分見つからないものだというのに。特にどっかのサイトで宣伝されているわけじゃないしね。・・・まぁ、それでも一応、当サイトトップのダウンロード数を誇る人気ソフト・・・ということにはなるんだけど。
とまぁ、使っている人がいると嬉しくて反応してしまう今日この頃なのであった。
_ うぎゃ。
tDiaryで遊んでいたら、終電なくなってるぢゃない。一応原付で通勤しているから大丈夫なんだけど、この雨のなか原付で帰るのはいやだったのになぁ・・・。しくしく。
_ [tDiary] 前に言っていた事は
まるで検討はずれだったみたいだぁね。.forwardとかprocmailとかの存在を知らなかったものだから、無知丸出しのことを書いてしまっている・・・。まぁ、使用しているサーバによっては.forwardファイルを自由にがりごりできない環境の人もいるかもしれないし、そーゆー人には役に立つものかもしれないから、あのソースは消さないでおくことにしよう・・・。
・・・あー、はずかし。
_ ちょっと古い記事だけど。
玄人志向ってメルコだったんだ・・・。衝撃の事実。
2003年05月22日 [長年日記]
_ きびだんごのLast Update。
・・・が、表示されない問題をOratorさんから受けて修正。
どうも、返信のない投稿が最新の投稿になっているときに、Last Updateが表示されなくなっていたらしい。以下にデータ解析時のメモを書いておこう。
cbbs.dat*1ってデータの順序が投稿順ではなくてツリー表示したときのツリー順に並ぶようになってる。しかし、一行目は常に最新投稿の記事番号だけが入っていたから、てっきりこれは最新投稿を表すダミーデータかと思っていた。そしたら、最新投稿=ツリーの一番上(すなわち新規投稿をした状態)のときはダミーデータに見えていた一行目に実データが入る仕様になっていたらしい。
*1 Child Treeの掲示板データファイル
2003年05月23日 [長年日記]
_ [ももめも] メモっぽい入力。
ももめもの入力でメモっぽいものが入力されたら、Enterを押したときに自動でメモに追加するようにしてみようと、試行錯誤している。今のところ、下記のようなソースになっているんだけど、こんな感じでうまくいくかなぁ。
Private Function CheckLikeMemo(ByVal strCommand As String) As Boolean CheckLikeMemo = True If LenB(StrConv(strCommand, vbFromUnicode)) = Len(strCommand) Then '一バイト文字のみなのでメモっぽくない。 CheckLikeMemo = False Else Dim FirstWord As String FirstWord = Split(strCommand, " ", 2)(0) If LenB(StrConv(FirstWord, vbFromUnicode)) = Len(FirstWord) Then '最初の単語が一バイト文字のみなのでコマンドっぽい。 CheckLikeMemo = False End If End If End Function
_ Orator [午後3時。ももちん、起きれましたかー?……忙しいみたいだけど、ももめもの改良案考えてる所を見ると、まだ余裕はありそう..]
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の紹介とレシピの書き方のサイトをメモしておく。
_ Orator [http://yougo.ascii24.com/gh/11/001128.html]
_ ももたろ [Application Keyって言うのね。フォローさんくす!]