2004年11月3日号

復刻第29弾!

━━━━━━━━━━━━━━━━━━━━━ 2004.11.03 Vol.1040━━━━━
 ■□■□■
 ■□■□■ 日刊「WEBのツボ!」
 □■□■□              http://www.soho-union.com/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                             配信部数 3234部

「続々 システムはオブジェクト指向 Ruby & Flash」(#009)
                                                         福井修@Fsys.NET

【○】本日のお題 「 関西オープンソース2004 と vCard 」   ━━━━━

まず 被災者の皆様に心よりお見舞い申し上げます。
11月になりました。 まいど Fsys福井システムリサーチの福井です。 

11月3日は、文化の日ですし、「カンデジ フューズ 1st」もありますね。
前回は「 複雑さ と 簡単さ と るびま 」注1) で 「複雑性の縮減」というキー
ワードの論考を紹介しました。

今回はメタとベタ、関西オープンソース2004な話とvCard変換実装な話で
す。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 関西オープンソース2004
────────────────────────────────────
 関西オープンソース2004が10月22日(金)23日(土)に産創館で催され
ました注2) 。
今回で3回目ですが、Apple User Group Conference (AUGC)というアップル関係
者も参加されオープンソースの裾野の拡がりを感じます。オープンソースは、既
にキャズムでいうところの Early Adopters段階は、越えたのでしょう。基調講
演もお役所の方々が目立ちましたし。

キャズムでの普及段階表現
[1]Innovators 革新者段階
[2]Early Adopters 初期導入者段階
[3]Early Majority 初期大衆段階
[4]Late Majority 遅延大衆段階

をビジネス向けに次のように言い換えると
[1]種を撒いて
[2]世話して育てて
[3]花が咲いて
[4]実がなる

[3][4]段階になると、もう向こうから寄ってくるようになるわけです。
( Ruby も早く キャズムの溝を越えたいものです :-)

いろいろ講演を拝聴しましたが、経済産業省商務情報政策局情報政策課課長補佐
村上敬亮氏 の「オープンソースを巡る著作権論議と知的財産政策への示唆」が
強く印象に残っています。

この講演の内容は、日経BPの記事になってよくまとめられていました。
「300年ぶりの著作権パラダイム・シフトが起きている」経産省 村上敬亮氏
http://itpro.nikkeibp.co.jp/free/ITPro/NEWS/20041025/151699/

著作権は流通業者を保護するために作られたという指摘や著作物を発見し取り上
げる読み手が価値を作り出すという話も面白かったです。
さらに経済産業省 blog で情報発信を始めたと紹介されていましたのでこちらも
注目です。

IT@RIETIe-Life Blog 「情報家電産業の収益力強化に向けた道筋」
http://www.rieti.go.jp/it/elife/

家電屋さんが、店頭に商品を供給するところで競争していては、利益は上らない
(競争が厳しい)。使い手の満足に歩み寄って(例えばDVDプレーヤを売って 後は
ユーザが勝手に使ってね ではなく、例えば趣味の山登りの映像を見る為のセッ
トとして付加価値付で高くてもユーザに選んでもらうように)ハードだけでなく
ソフトというか「ライフソリューションサービス」(と命名されている)まで踏み
込んで提供する必要がありそう。携帯は、ハードだけでなく利用全体まで踏み込
んで供給しようとしている事例。その方向が今後のベンダーの選択肢のひとつ。

情報家電産業の収益力強化に向けた道筋
http://www.rieti.go.jp/it/elife/docs/elife-souron.pdf
の 
5.まとめ 図26 多階層化する情報家電の市場構造

は、状況をひと目で鳥瞰できる濃い図なので 一読をお勧めします。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ Windows版 One-Click Ruby Installer
────────────────────────────────────
まだ Ruby をインストールして使っていない方に朗報です。

Windows版 One-Click Ruby Installer が MoonWolfさんによって作成されました
。その名前のとおり getしたインストール実行ファイルをクリックするだけで
盛り沢山のライブラリも一緒にインストールされます。Ruby実装でのWebServere
であるWebrikもインストールされ、tDiary,Hikiまでがすぐに使えるようになり
ます。

MoonWolfさんのサイトから 入手できます。
http://www.moonwolf.com/ruby-setup-20041019.exe

また MoonWolfさんは Ruby 初心者のサポートも開始されました。
http://jp.rubyist.net/?MoonWolf

関西オープンソース2004 で配布した CD には、目玉として収録させて頂きまし
た。
http://ns2.fsys.net/koruby/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ vCard 形式 解説
────────────────────────────────────
 さて実装の話もないと面白くありませんので、年賀状が発売開始された時候で
もありますので Ruby での vCard 変換を紹介します。まずは vCard の解説から

vCardは、一言で言うと「電子名刺」フォーマットです。

昔Lotus Notesで始まって注3)今は Outlook や Yahoo住所録また各種年賀状ソフ
トでもサポートされましたね。rfc2426では1998年ですから6年程でこの普及度で
す。ただし 携帯の住所録操作では vCard に収束のようですから、「電子名刺」
フォーマットはvCardでまあ決まりでしょう。

管理単位(ひとり)毎に
BEGIN:VCARD で始まり 
END:VCARD で終わる 
テキストファイルです。

csv形式や XML形式でもない独特のスタイルです。

BEGINとENDの間にはいろいろな項目を列挙します。主要な要素を取り上げます。

通称 
例: 
FN:福井 修
  
氏名 
N:姓;名 
例: 
N:福井;修 
  
会社名 
ORG:会社名;所属部署1;所属部署2 
例: 
ORG:福井システムリサーチ;システム構築部 
  
役職 
TITLE:役職名 
例: 
TITLE:代表
 
住所 
TYPEには home:自宅, work:勤務先 などを指定します。
ADR:私書箱;事業所名やビル名;番地;市区町村;都道府県;郵便番号;国名 
例: 
ADR;TYPE=work:;橘ビル302号;2-3-12;神戸市中央区橘通;兵庫県;650-0016;日本 

電話番号 
TEL:電話番号 
TELは住所と同様にTYPE指定が出来る 
TYPE 
pref   優先(preferred-use) 
home   自宅 
work   勤務先 
 :
例
TEL;TYPE=work:078-341-5346 

メール
EMAIL:
例
EMAIL;TYPE=pref,internet:o-fukui@po.iijnet.or.jp


【vCardファイル例】FUKUIOsamu.vcf
BEGIN:VCARD
FN:福井 修
N:福井;修 
ORG:福井システムリサーチ;システム構築部 
TITLE:代表
ADR;TYPE=work:;橘ビル302号;2-3-12;神戸市中央区橘通;兵庫県;650-0016;日本 
TEL;TYPE=work:078-341-5346 
EMAIL;TYPE=pref,INTERNET:o-fukui@po.iijnet.or.jp
END:VCARD

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ RubyvCard 変換
────────────────────────────────────
このvCard形式が必要となる場面で、csvファイルから変換する場合のプログラム
例です。いろいろ処理を追加したり変更したり、加工して使ってみて下さい。

引数で .csv ファイルを渡すと .vcfファイルが行分生成されます。
namazu高林哲さんのプログラムを参考にさせて頂きました。

【 csv形式から vCard形式に変換する Ruby プログラム 】csv2vCard.rb

  # csv2vCArd.rb
  #
  # CSV形式の台帳を vCard に変換する
  #
  # 〔使い方〕 ruby csv2vCard.rb hoge.csv
  #
  # 次の形式のcsvファイルを読んで vCard形式に変換し .vcfを生成
  # 氏,名,会社名,部署名,役職,〒,県,市区町村,番地,ビル名,電話番号,mail
  #
  # 2004-11-02 FUKUI Osamu (o-fukui@po.iijnet.or.jp)

  $KCODE = 's'   # Shift_JIS

  # vCard
  class VCard
    # 初期化
    def initialize
      @fname,@lname,@name,@org,@sec,@title,@zipno,@pre,
      @city,@adr,@buil,@addr,@tel,@mail = nil
      instance_variables.each {|name|
        type.class_eval { attr_accessor name.delete '@' }
      }
    end

    # 文字列編集
    def to_s
      buf = []
      buf.push("BEGIN:VCARD")
      buf.push("VERSION:3.0")
      buf.push("FN:#{@name}")
      buf.push("N:#{@lname};#{@fname}")
      buf.push("ADR;TYPE=work:#{@addr}")
      buf.push("TEL;TYPE=pref:#{tel}")
      buf.push("EMAIL;TYPE=pref,internet:#{mail}")
      buf.push("CLASS:PUBLIC")
      buf.push("END:VCARD")
      buf.join("\n")
    end
  end

  # 行分解
  def parse_line (line)
    items = line.split(',')

    vcard = VCard.new
    vcard.lname = items[0]
    vcard.fname = items[1]
    vcard.name  = items[0]+items[1]
    vcard.org   = items[2]
    vcard.sec   = items[3]
    vcard.title = items[4]
    vcard.zipno = items[5]
    vcard.pre   = items[6]
    vcard.city  = items[7]
    vcard.adr   = items[8]
    vcard.buil  = items[9]
    vcard.addr  = ';'+vcard.buil+';'+vcard.adr+';'+vcard.city+';' \
                  +vcard.pre+';'+vcard.zipno+';'+'日本'
    vcard.tel   = items[10]
    vcard.mail  = items[11]
    return vcard
  end

  # csvファイルを行毎に読んで vcfファイル書き込み
  readlines.each_with_index {|line, i|

    # 行分解
    vcard = parse_line(line)

    # ファイル書き込み ファイル名は、氏名
    File.open("#{vcard.name}.vcf", 'w') {|f| 
      f.puts vcard.to_s
    }
  }


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ まとめ
────────────────────────────────────
 オープンソース というのは、インターネット時代のデジタル知的権利に、検討
を迫ります。村上敬亮氏の講演を拝聴できたのは、良かったです。

それにしても インターネットってすごいメディアですなぁ


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※ 注釈、資料、参考情報
────────────────────────────────────
 注1) 続々 システムはオブジェクト指向 Ruby & Flash (#008)   
    「 複雑さ と 簡単さ と るびま」2004.10.20
http://wiki.fsys.net/Fsys/20041020.html
http://www.melma.com/mag/02/m00020302/a00000830.html

 注2)「関西オープンソース2004」開催
http://itpro.nikkeibp.co.jp/free/ITPro/NEWS/20041023/151633/
 
 関西オープンソース 2004 - 今年もオープンソース界のキーマンが集合
http://pcweb.mycom.co.jp/articles/2004/10/25/kansai/

 JPBE.net ニュース: 関西オープンソース 2004 初日レポート
http://www.jpbe.net/news/archives/2004/10/000768.html

 日本Rubyの会 公式Wiki - 関西オープンソース 2004 レポート
http://jp.rubyist.net/?KansaiOpensource2004

 注3) vCard MIME Directory Profile
http://www.ietf.org/rfc/rfc2426.txt

 Personal Data Interchange
http://www.imc.org/pdi/

 vCard【ぶいかーど】
http://www.itmedia.co.jp/mobile/0103/05/keyword_2.html

 vCard_Memo
http://www.orangesoft.co.jp/vCard/vcard_memo.html

 vCARD
http://www2.famille.ne.jp/~ymiz/tips/vcard.html

【プロフィール】
福井 修 ( FUKUI Osamu ) o-fukui@po.iijnet.or.jp
福井システムリサーチ http://fsys.net/  主幹。システム構築歴28年。
システム構築エキスパート
日本Linux協会、神戸商工会議所情報処理学会、関西IT共同体 会員
関西ソーホ・デジタルコンテンツ事業協同組合 監事