history

青木日記 RSS

<前の日 | この月 | 次の日>

2004-05-16

RHG読書会 reloaded #9

今回はいつにも増して各種雑談に熱が入っていたため 10.3 スキャナしか読めず。記録はいつも通り RWiki に書きました。

http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RHG%C6%C9%BD%F1%B2%F1%3A%3A%C5%EC%B5%FE+Reloaded

RHG読書会 2-9、独断と偏見によるトピックス: 設定ファイルをどうするか

一言で要約すると XML と YAML と Ruby スクリプト。 それぞれの特性に合わせて選びましょうね、 という、はしょってしまうとあまり面白くない結論?

BitChannel の設定ファイルも Ruby スクリプト (bitchannelrc) ですが、 これはあえてユーザにスタートアップの責任を押しつけ敷居を上げようとして採用しました。 もうちょっと真面目な理由としては、 Ruby のロードパスとか $KCODE を設定するのが楽そうだったという事情もあります。

ちなみに、Ruby スクリプトを使うにしてもデータを受け渡す方法には いくつか選択肢があり、それぞれ長短があります。

  • インスタンス変数で渡す (tDiary)
@datapath = '/var/tdiary'
  • グローバル変数で渡す (Hiki, AsWiki, その他いろいろ)
$DATADIR = '/var/tdiary'
  • 定数 (モジュール) で渡す (ftpup, その他いろいろ)
module AppConfig
  DataDir = '/var/tdiary'
end
  • メソッド定義で渡す (BitChannel)
def bitchannel_context
  require 'bitchannel'
  BitChannel::Repository.new({:datadir => '/var/bitchannel'})
end
  • 最後の値で返す (これは見たことがない)
{:datadir => '/var/tdiary'}

ちょうど arton さんの日記にも設定ファイルの話があるなあ。

http://arton.no-ip.info/diary/20040515.html#p04

BitChannel と CVS

今回の RHG 読書会で akr さんに教えてもらったところによると ruby-cvs はローカル CVS の代わりに使えるそうです。 なんで、これをダイレクトに使うオプションを作ろうと思ってます。

(22:39)

『Rubyレシピブック』内容紹介

5/31 発売予定の『Rubyレシピブック』の内容を簡単に紹介しておきます。

まず、この本はクックブックの類で、 かなり細かい、独立したセクションに分割されています。 話題がつながっているわけではないので、頭から読む必要はありません。 必要になったときに検索して読んでください。

※ いまのところ本文を公開する予定はありませんが、 本文を検索して見出しを出すシステムは欲しいねえ…… と勝手に話し合ってます。

  • 第1章「Rubyの文法」……Rubyの文法の要約。あくまでまとめであって、これだけでRubyが書けるわけではない。
  • 第2章「文字列」……文字列処理
  • 第3章「配列とハッシュ」……コレクション (Enumerable) の処理
  • 第4章「ファイルとディレクトリ」……ファイルシステム関連の操作。dirname とか unlink とか
  • 第5章「入出力」……IO。よーするに read write
  • 第6章「数値」…… Numeric, Math, Rational, Complex, ...
  • 第7章「時刻」…… Time, Date, DateTime
  • 第8章「環境とのかかわり」……他の章に入れられなかったもの全部
  • 第9章「プロセスとプロセス間通信」……sleep とか fork とかソケットとか、そのあたり
  • 第10章「CGI」…… CGI プログラミング特有の話題。
  • 第11章「オブジェクト」……クラス、モジュール、リフレクション

ぼくは文字列・環境・IPC・オブジェクトの 4 章を担当しました。 その中では文字列処理、特に日本語処理を重視しています。 紹介した処理について逐一マルチバイト処理が可能かどうかチェックして、 できないものにはその旨追記し、代案を示します。

また、対応する Ruby は 1.6.7〜1.8.1 (基準は1.8) です。 こちらもまた全処理について動作をチェックして、 バージョン間の非互換をすべてリストアップし、 可能ならバージョン独立な書きかたを示しました。

ついでに言えば、今回は Windows での動作についてかなり真面目に調べました。 ただし NT 系のみです。9x 系は忘れてください。

最後に、そのうち項目見出しも公開します。

(23:51)

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|

Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved. LIRS