2007年3月31日土曜日

披露宴でスローバラード [diary]

DSC01365.JPG
今日は後輩の結婚披露宴.新入社員として入社した時から身近にいて,最初の数年は仕事も同じだった後輩だけに,「あーとうとう結婚するのねー」と感慨深いものがありました.

彼女から,前に 書いた元上司と私に,2人で歌を歌ってほしいと言われて,選んだ曲は RCサクセションのスローバラード.

あらためて,いい曲だなーと.
そしてなにより,おめでとう.


2007年3月29日木曜日

テレビは次世代の開発プラットフォーム - Steve Rubel [ce]

Blog PR のカリスマとして知られるアルファブロガー,Steve Rubel の Micro Persuasion より.
Micro Persuasion: TV: The Next Great Development Platform

曰く,

最初の偉大な開発プラットフォームは PC
- マイクロソフト,アップル,サンなどを輩出した
- 彼等の OS は,コンピュータをより簡単かつパワフルなものにした
- 業界はまだまだ活発
- ムーアの法則も,我々の欲求もしばらく続くだろう
- モバイル端末はコンピュータにどんどん近づいてきている
- まだこの分野の将来は明るい

次なる偉大な開発プラットフォームは Web
- ブラウザ上で動く素晴らしいツールが開発されている
- 個々 (HTML, Javascript, Flash, Ajax など) は変わっても,コンセプトは残る
- ウェブベースのアプリケーションは大きな価値をもたらしていく
- ブロードバンドは普及してきているし,開発環境も簡単に手に入る
- この分野においては,まだインパクトの序章に過ぎない

みたいな話があって,"Think about what comes next (次に来るのは何だろう?)" と続ける.

What hardware will emerge as a fertile ground where developers will want to plant some software seeds? Is there a piece of hardware that many people own that makes this all economically viable?

開発者が仕込みを入れておくべき,肥沃なハードウェアは?
たくさんの人が所有し,経済的に生存できるハードウェアは存在するだろうか?


…で,随分長い前置きの後,彼のパンチラインとしては,

The answer is yes and that platform is your television.

とのこと.

それで,その後

- Apple TV や XBox 360,SlingCatcher を繋げて,テレビの可能性が広がる
- ソフトウェアはそれを可能にするマジック
- ソニーのテレビならサードパーティーすら要らない

- テレビは「ルネッサンス」を経験しているところ
- 5年もすれば,試聴コンテンツの50%はインターネットから来る
- テレビでは,ウィジェットや,他の繋がるアプリが走ることになるだろう

- これらは,PC で動くものとはまた違い,さらにそれを補完するものだろう

- テレビでのデファクト OS を作るのはどこの企業になるだろう?
- Microsoft? Apple? Google? セットトップボックスメーカー?

…みたいに続き,最後はこう締めくくられている.

the Golden Age of Television may be a head of us, not in our rear-view mirror.

テレビの黄金期 (1949 - 1960 年を指す言葉) は,バックミラーにではなく,この先にあるのかもしれない



ところで,この「プラットフォーム」という言葉は非常に曖昧に使われることが多く,人によってハードに近いものを指したり,純粋にソフト (サービス) だったりするのだが,これについては Ning Blog の主張が,個人的に非常に気に入っている.
Ning Blog - What is a Platform?

A platform is typically defined as:
"a software program that makes services available to other software programs through Application Programming Interfaces (APIs)."

This is an accurate definition but to me it doesn't communicate the full power of a platform. Platforms are the cornerstone of software innovation for one reason:

Platforms give everyone the freedom to create what they want.


プラットフォームは,一般的には「他のソフトウェアに対して,API を通して一連のサービスを提供するソフトウェア」と定義されており,これはこれで正確なのだが,プラットフォームの持つ強力さを伝えきれていない.

プラットフォームが,ソフトウェアイノベーションにおいて要であるたった1つの理由は,「プラットフォームは,人々が望むものを創造する自由を与える」からだ.

"It's the software equivalent of Home Depot." とか,「Doom や Second Life はプラットフォームで,MySpace はプラットフォームではない」みたいな例えもおもしろい.


…っと,ちょっと横道に逸れたけど,いずれにしてもテレビに対して大きな可能性を感じるという点では,同感.


2007年3月27日火曜日

産隆大學應援團 [diary]

今井雅之さん脚本・演出の「産隆大學應援團」という舞台を観てきました.もともと深夜に放送されていたテレビドラマなのだとか.

産隆大學應援團 全国ツアー2007


舞台とかあまり観に行く方ではないんだけど,タケウチコウの「しがらみの向こうに」 の打ち上げで意気投合した松本勝さんを始め,その時に少しお話した最所美咲さんや田崎那奈さんが出演するということで,これは絶対行こうと.

それほどストーリー性がある内容ではないけど,エンターテイメントとして素直におもしろい.

今井雅之さんとか,巧みに客をいじるところなんかさすがだなーと.

松本勝さんの歌は,やっぱりハンパなく上手い.「しがらみ…」の打ち上げの時に少し歌声を聴いてぶっとんだんだけど,この人ニューヨークのアポロシアター (JB やマイケルジャクソンを生み出した黒人音楽の殿堂) のコンテンストで優勝したことがあるんです.

というか,演者さん1人1人のダンスや演技はもちろんだけど,照明とかの裏方さんを含めて,パフォーマンスのレベルがすごく高かった.

本日が東京公演の初日,その後福岡,神戸を始め全国で公演される予定とのことなので,上質のコメディを観に足を運んでみてはいかがでしょう.


2007年3月26日月曜日

Plagger で遊んでたら週末が終わっていた [plagger]

前から試そう,試そうと思っていた話題の Plagger を導入してみました.mixi のマイミクの方とかはこれから足あとがつきまくると思いますが,気にしないで下さい.

Plagger をご存知無い方は,この辺りでも.
一足早く「Plagger」の便利さを実感してみよう - @IT
plagger - otsune FreeStyleWiki

要は,「いろいろな」データを入力して,加工して,「いろいろな」ものに出力するフレームワーク.「いろいろな」というところがポイントで,誰かが MacBook を勝手に持ち出したら携帯にメールする とか,Google で「はらへった」と検索してピザを注文する なんて人まで.

Plagger については,既にネット上にインストール方法や設定方法がたくさんあるので,わざわざここで書くことはないんだけど,ひとまず自分の備忘録を兼ねて書いておきます.


- RSS を整理
まずは RSS の整理から.
私は RSS リーダーに Google Reader を使っているが,Bloglines のフィードリストをアップデートしようとして「Google Reader で OPML をエクスポート → Bloglines でインポート」すると,変な名前のフォルダとか勝手にできて上手くいかなかった.

結論としては,livedoor Reader を踏み台にして,「Google Reader で OPML をエクスポート → livedoor Reader でインポート → エクスポート → それを Bloglines でインポート」すると,OK だった.

…って後から考えれば,livedoor Reader にエクスポートした時点で,Subscription::LivedoorReader を使えば十分だったのだが.


- さくらインターネットのレンタルサーバーを契約
Plagger を導入するのは自宅の環境でも良かったのだが,常時稼働環境が望ましいことと,2週間の無料お試し期間があるということで,さくらのレンタルサーバーで試してみる.
SAKURA Internetのレンタルサーバ
SAKURA Internet : レンタルサーバ 概要
さくらのレンタルサーバ非公式FAQ

とりあえずお約束で,vim をコンパイルして $HOME 以下にインストールしたり,"chsh -s /usr/local/bin/zsh" したりと設定に小一時間.


- CPAN の設定
ポイントは,root 権限が無いレンタルサーバーなので,$HOME 以下にインストールすることだが,otsune さんの記事 が非常に参考になった.というかほぼこの通りにしただけだが,一応やったことは以下の通り.

$ mkdir -p ~/local
$ echo no | cpan
$ vim ~/.cpan/CPAN/MyConfig.pm



MyConfig.pm の内容を以下に書き変える (mbuildpl_argの項目は存在しないので追加する).

'make_install_arg' => qq[SITEPREFIX=$ENV{HOME}/local],
'makepl_arg' => qq[INSTALLDIRS=site LIB=$ENV{HOME}/local/lib/perl5 PREFIX=$ENV{HOME}/local],
'mbuildpl_arg' => qq[./Build --install_base $ENV{HOME}/local],
'urllist' => [q[ftp://ftp.cpan.jp/], q[ftp://ftp.kddilabs.jp/CPAN/]],



必要な環境変数を追加する.
前述の通り,私はシェルを zsh に変更したが,さくらインターネットのサーバーは FreeBSD でデフォルトは csh なので,以下では .cshrc を変更する例を紹介しておく.

$ echo 'setenv PATH $HOME/local/bin:$PATH' >> ~/.cshrc
$ echo 'setenv PERL5LIB $HOME/local/lib/perl5:$HOME/local/lib/perl5/site_perl' >> ~/.cshrc

$ echo 'setenv PKG_DBDIR $HOME/local/var/db/pkg' >> ~/.cshrc
$ echo 'setenv PORT_DBDIR $HOME/local/var/db/pkg' >> ~/.cshrc
$ echo 'setenv INSTALL_AS_USER' >> ~/.cshrc
$ echo 'setenv LD_LIBRARY_PATH $HOME/local/lib' >> ~/.cshrc

$ source ~/.cshrc

$ mkdir -p ~/local/var/db/pkg



CPAN を最新に更新.

$ cpan -i Bundle::CPAN
$ cpan


質問には全てEnter で.
最後に

cpan> o conf commit


を忘れないように.


- Plagger のインストール
ネット上には,Template,DateTime::TimeZone,DateTime::Format::Mail,Encode::Detect あたりでつまづくとの記事が多く見られたが,今日時点の環境ではどれも問題無かった.というわけで素直に,

cpan> install Plagger


するだけ.ここも質問は全て Enter でデフォルト値を受け入れる.

後から必要になったモジュールは,

cpan> install WWW::Mixi
cpan> install URI::Find
cpan> install WWW::Mechanize
cpan> install Image::Info


のあたり.

assets はどこか適当な場所にコピーしておく (後から yaml の global で読み込む).

cp -r ~/.cpan/build/Plagger-0.7.17/assets ~/plagger




- Plagger の設定
yaml はインデント構造を保持することと,最終行に改行を入れておくことに注意.

メール配信は,Gmail の smtp を使っていたのだが,遊びすぎて

Data failed: 550 5.4.5 Daily sending quota exceeded. v50smxxxxxxxxx

とか怒られてしまったので,さくらインターネットの smtp を使っている.さくらの smtp は POP before SMTP なので,POP のアカウントも記述しておくことに注意.

base.yaml:
全てから読み込む共通設定.
最初はメール送信部分やレシピ定義などをしていたが,結局 global だけになったのであまり意味がない.

global:
  plugin_path:
    - /home/<username>/local/lib/perl5/Plagger/Plugin
  assets_path:  /home/<username>/plagger/assets
  timezone:     Asia/Tokyo
  log:
#   level: debug
    level: info
  cache:
    base:  /home/<username>/plagger

define_recipes:



bloglines.yaml:
Bloglines のフィードを Gmail へ.
Bloglines や del.icio.us へのリンクを追加したり,はてブ数や page rank を表示させたり,全文配信しないフィードの全文取得をしたり,余計な広告を除去したり…などなど.メール配信は Bloglines のフォルダ別にアドレスを分けて,後で Gmail でフィルタできるようにしている.

include:
  - /home/<username>/plagger/.yaml/base.yaml

plugins:
  - module: Subscription::Bloglines
    config:
      username:   XXX
      password:   base64::XXX
      mark_read:  1
      fetch_meta: 1

  - module: Widget::Simple
    config:
      widget: bloglines
  - module: Widget::Simple
    config:
      widget: delicious
  - module: Widget::Simple
    config:
      widget: hatena_bookmark_users
# - module: Widget::Simple
#   config:
#     widget: livedoor_clip_users
# - module: Widget::Simple
#   config:
#     widget: delicious_bookmark_users
  - module: Widget::Simple
    config:
      widget: google_pagerank

# - module: Filter::BreakEntriesToFeeds
  - module: Filter::EntryFullText
  - module: Filter::ImageInfo
  - module: Filter::ResolveRelativeLink
  - module: Filter::StripRSSAd
  - module: Filter::TTP
  - module: Filter::TruePermalink

  - module: Publish::Gmail
    rule:
      expression: $args->{feed}->has_tag('alpha')
    config:
      mailto:   XXX+plagger_bloglines_alpha@gmail.com
      mailfrom: noreply@plagger.com
      mailroute:
#       via:      smtp_tls
#       host:     smtp.gmail.com:587
#       username: XXX@gmail.com
#       password: base64::XXX
        via:      smtp
        host:     <domain>.sakura.ne.jp
        username: XXX@<domain>.sakura.ne.jp
        password: base64::XXX
      pop3:
        host:     <domain>.sakura.ne.jp
        username: XXX@<domain>.sakura.ne.jp
        password: base64::XXX

  - module: Publish::Gmail
    rule:
      expression: $args->{feed}->has_tag('ce')
    config:
      mailto:   XXX+plagger_bloglines_ce@gmail.com
      mailfrom: noreply@plagger.com
      mailroute:
#       via:      smtp_tls
#       host:     smtp.gmail.com:587
#       username: XXX@gmail.com
#       password: base64::XXX
        via:      smtp
        host:     <domain>.sakura.ne.jp
        username: XXX@<domain>.sakura.ne.jp
        password: base64::XXX
      pop3:
        host:     <domain>.sakura.ne.jp
        username: XXX@<domain>.sakura.ne.jp
        password: base64::XXX

  - module: Publish::Gmail
    rule:
      expression: $args->{feed}->has_tag('music')
    config:
      mailto:   XXX+plagger_bloglines_music@gmail.com
      mailfrom: noreply@plagger.com
      mailroute:
#       via:      smtp_tls
#       host:     smtp.gmail.com:587
#       username: XXX@gmail.com
#       password: base64::XXX
        via:      smtp
        host:     <domain>.sakura.ne.jp
        username: XXX@<domain>.sakura.ne.jp
        password: base64::XXX
      pop3:
        host:     <domain>.sakura.ne.jp
        username: XXX@<domain>.sakura.ne.jp
        password: base64::XXX

  - module: Publish::Gmail
    rule:
      expression: $args->{feed}->has_tag('peace-pipe')
    config:
      mailto:   XXX+plagger_bloglines_peace-pipe@gmail.com
      mailfrom: noreply@plagger.com
      mailroute:
#       via:      smtp_tls
#       host:     smtp.gmail.com:587
#       username: XXX@gmail.com
#       password: base64::XXX
        via:      smtp
        host:     <domain>.sakura.ne.jp
        username: XXX@<domain>.sakura.ne.jp
        password: base64::XXX
      pop3:
        host:     <domain>.sakura.ne.jp
        username: XXX@<domain>.sakura.ne.jp
        password: base64::XXX

  - module: Publish::Gmail
    rule:
      expression: $args->{feed}->has_tag('personal')
    config:
      mailto:   XXX+plagger_bloglines_personal@gmail.com
      mailfrom: noreply@plagger.com
      mailroute:
#       via:      smtp_tls
#       host:     smtp.gmail.com:587
#       username: XXX@gmail.com
#       password: base64::XXX
        via:      smtp
        host:     <domain>.sakura.ne.jp
        username: XXX@<domain>.sakura.ne.jp
        password: base64::XXX
      pop3:
        host:     <domain>.sakura.ne.jp
        username: XXX@<domain>.sakura.ne.jp
        password: base64::XXX

  - module: Publish::Gmail
    rule:
      expression: $args->{feed}->has_tag('topics')
    config:
      mailto:   XXX+plagger_bloglines_topics@gmail.com
      mailfrom: noreply@plagger.com
      mailroute:
#       via:      smtp_tls
#       host:     smtp.gmail.com:587
#       username: XXX@gmail.com
#       password: base64::XXX
        via:      smtp
        host:     <domain>.sakura.ne.jp
        username: XXX@<domain>.sakura.ne.jp
        password: base64::XXX
      pop3:
        host:     <domain>.sakura.ne.jp
        username: XXX@<domain>.sakura.ne.jp
        password: base64::XXX

# - module: Publish::Gmail
#   config:
#     mailto:   XXX+plagger_bloglines_ALL@gmail.com
#     mailfrom: noreply@plagger.com
#     mailroute:
#       via:      smtp_tls
#       host:     smtp.gmail.com:587
#       username: XXX@gmail.com
#       password: base64::XXX
#       via:      smtp
#       host:     <domain>.sakura.ne.jp
#       username: XXX@<domain>.sakura.ne.jp
#       password: base64::XXX
#     pop3:
#       host:     <domain>.sakura.ne.jp
#       username: XXX@<domain>.sakura.ne.jp
#       password: base64::XXX



mixi.yaml:
mixi の日記を Gmail で読む.メッセージとかも取得できるようだが,ひとまず日記だけ.

include:
  - /home/<username>/plagger/.yaml/base.yaml

plugins:
  - module: CustomFeed::Mixi
    config:
      email:               XXX
      password:            base64::XXX
      fetch_body:          1
      fetch_body_internal: 1.5
      fetch_items:         10
      show_icon:           1
      feed_type:
        - FriendDiary
#       - RecentComment
#       - Message

  - module: Filter::Rule
    rule:
      module: Fresh
      mtime:
        path:       /home/<username>/plagger/.tmp/mixi
        autoupdate: 1

  - module: Publish::Gmail
    rule:
      - module: Rating
        rate:   '>= 0'
    config:
      mailto:   XXX+plagger_mixi@gmail.com
      mailfrom: noreply@plagger.com
      mailroute:
#       via:      smtp_tls
#       host:     smtp.gmail.com:587
#       username: XXX@gmail.com
#       password: base64::XXX
        via:      smtp
        host:     <domain>.sakura.ne.jp
        username: XXX@<domain>.sakura.ne.jp
        password: base64::XXX
      pop3:
        host:     <domain>.sakura.ne.jp
        username: XXX@<domain>.sakura.ne.jp
        password: base64::XXX



amazon.yaml:
Amazon アソシエイトレポートを Gmail で読む.

include:
  - /home/<username>/plagger/.yaml/base.yaml

plugins:
  - module: CustomFeed::AmazonAssociateReportJP
    config:
      email:    XXX
      password: base64::XXX

  - module: Publish::Gmail
    config:
      mailto:   XXX+plagger_amazon@gmail.com
      mailfrom: noreply@plagger.com
      mailroute:
#       via:      smtp_tls
#       host:     smtp.gmail.com:587
#       username: XXX@gmail.com
#       password: base64::XXX
        via:      smtp
        host:     <domain>.sakura.ne.jp
        username: XXX@<domain>.sakura.ne.jp
        password: base64::XXX
      pop3:
        host:     <domain>.sakura.ne.jp
        username: XXX@<domain>.sakura.ne.jp
        password: base64::XXX



…と,ひとまず.定番の使い方だけ.

あとは crontab -e して,

PERL5LIB=/home/<username>/local/lib/perl5:/home/<username>/local/lib/perl5/site_perl

0  * * * * /usr/bin/perl /home/<username>/local/bin/plagger -c /home/<username>/plagger/.yaml/bloglines.yaml > /dev/null 2>&1
30 5 * * * /usr/bin/perl /home/<username>/local/bin/plagger -c /home/<username>/plagger/.yaml/mixi.yaml      > /dev/null 2>&1
30 6 * * * /usr/bin/perl /home/<username>/local/bin/plagger -c /home/<username>/plagger/.yaml/amazon.yaml    > /dev/null 2>&1


とか適当に.


これからレンタルサーバーの無料お試し期間の2週間,遊び倒してみます.

非常にたくさんの情報を残してくれた先駆者の方々に感謝.


2007年3月21日水曜日

だし粉かけてしぞーか流 [gourmet]

DSC00596.JPG
東京でしぞーかおでんが食べられる店.

しぞーかおでんは,かつお,さば,いわしのけずり粉と青のりで作られた,だし粉をかけて食べるのが特徴.

厳密に言えば,ここのおでんはこの店なりのアレンジを加えているそうで,本場のしぞーかおでんは牛すじを煮込んだ真っ黒のつゆは飲まないそうだが,ここでは牛すじの代わりに手羽先を使い,つゆを飲めるようにしたのだそう.本家本元のしぞーかおでんが食べれる店は,下北沢にあるのだとか.

私は名古屋出身なので,「おでん」といえばドロドロの赤味噌で食べるものを想像してしまうが,しぞーかおでんもかなり美味い (ところで,名古屋ではコンビニのおでんにも味噌がついてくるって,知ってました?)

この店のもう1つのウリは,3月から12月まで食べられる生しらす.マスターが毎朝湘南の港までとりに行き,小田急線で持ち帰るのだとか.今日はたまたましらすがとれなかったようで,非常に残念.

検索しても,みんなあえて店の名前は伏せてるかんじなので,ここでもあえて書きませんが,キーワードで検索すればすぐ分かると思います.

あ,ちなみに「しぞーかおでん」とは「静岡おでん」のことです.

DSC00600.JPG DSC00597.JPG


2007年3月20日火曜日

TV における「編成」の概念は変わるか [ce]

江口さんの Blog より.
E_GUCCI Daily: 「定曜定時」が決め手だと思う

これはたとえば日曜日の夜6時半はサザエさんとか
金曜の深夜はタモリ倶楽部というように、テレビ番組の編成が
曜日時間で固定されていて、人々の生活パターンの中に
とけ込んでいることを指します。


なんとなく,ボンヤリと,「いつの日か,ライブの放送・ネット上のコンテンツ・記録済みのコンテンツを意識することなく,視聴履歴などから個人の趣向を反映して,自動的に自分の見たい番組が検索されて映し出される」みたいな生活を描いていたけど,確かに放送局の「編成」という概念はあまりに強力だ.

彼の結論には激しく同感.

テレビの強みは
「生」というポイントと、「永遠のワンパターン」で
人々の暮らしをある程度強制することだと思っています。
オンデマンドなどは皆が思うほど求められてはいないのだろうと
私は思っています。

いくらコンテンツが豊富にあったとしても,単純な pull 型のビデオ・オン・デマンドが "life changing" だとは思わないし,例えば Rimo は「編成」まで含めて提案しているところが,なにより素晴らしいのだろう.

いくら番組を探さなくても良い時代が来たとしても,例えば今日の昼食時に同僚と話した「昨日のガキ見た? 山崎やっぱりしょーもねーよなー」みたいな会話は本当に無くなるのだろうか?

というか,最近「将来のリビングルームを支配するのは PS3 や Xbox360などのゲーム機か,PC か,Apple TV か,あるいは家電メーカーが既存のテレビを進化させて新しいライフスタイルを提案するのか」みたいな,ハードウェアの方向に頭が行きがちだったんだけど,やっぱりコンテンツ (中身だけではなく見せ方も含めて) が重要なんだよなーと再認識させてくれたエントリー.


2007年3月16日金曜日

Stax 50周年記念 [music]

恥ずかしながらまーったく知らなかったのですが,なんとあの Stax が去年末に Concord Music Group により復活していたとのこと.
Concord Music Group: Stax

Stax ってなによ? って方はこちらでも.
Peace Pipe: 選曲に大注目 - ファン泣かせの Stax Profiles [music]

そういえば今年は Stax 創立50周年.それを記念して,50周年記念ベスト盤が今週発売されたり,今月末には復活後のオリジナル第1弾 (Interpretations: Celebrating the Music of Earth Wind and Fire) が発売予定らしい.

さらには,50周年記念特設サイトや,YouTube,MySpace にオフィシャルサイトが設立されている模様.
Stax Records 50th
http://www.youtube.com/Staxrecords
http://www.myspace.com/stax50


こちらは 50周年記念プロモ.んーカッコいい.





2007年3月14日水曜日

BLUES'N ROLL - 三宅 伸治 [music]

三宅伸治
価格
あまなつShopあまなつで見る同じレイアウトで作成

前に三宅さんのことを書いた時,「ダサカッコいい」と表現したが,そんな彼のニューアルバム.

やはり最高にダサカッコいい音に仕上がっている.
まるで「だって俺,直球しか投げられないんだもんねー」とでも言わんばかり.

例えば4曲目の "Forever Young" という曲.「作詞・作曲 三宅伸治」となっているが,曲の調子も歌詞の内容も完全に Bob Dylan の "Forever Young" だったり… 特に出だしの「月まで届くはしごを登る 足を踏み外さないように」という歌詞なんて,Dylan の方の "May you build a ladder to the stars and climb on every rung" のまんまだったり…

タイトルまで同じにして,ここまで分かりやすくしてしまうところが三宅さんらしいというか,自分で「まあ細かい事言いなさんな」って気になってしまう.


カッコ悪くて,カッコ良くて,無性にどこか懐しくて.
間違いなく伝わってくるのは,彼自身が音楽が大好きで,最高に楽しんで演っているということ.

彼はその生活の大部分を旅の中で過ごし,そしてその旅のほとんどの夜に,ギターを弾き歌を歌っている.

夜ごとに人々に感動や生きる勇気を与えたりするのだ.それだけではなく,旅の途中で曲を作ったり歌詞を書いたりもしている.

三宅はそんな旅の喜びをとてもよく知っている.

誰もが一度は夢に見た,憧れのバンドマンそのものだ.

-- 忌野 清志郎


2007年3月13日火曜日

QA と QC とテストエンジニアリングの違い [google]

Google Testing Blog より,QA と QC とテストエンジニアリングの違いについて.
Google Testing Blog: The difference between QA, QC, and Test Engineering

コミュニケーションを円滑に進める為に「用語の定義」は非常に大切だが,重要なのは世間一般の定義よりも,その組織 (や関連組織間) で定義が統一され,役割が明確になることだと思う.

ということで,これはあくまでも Google Testing Team の見解に過ぎないが,まあなにかの参考にはなるかな,と.


まず QC (Quality Control) はというと…

In the classic definition QC is short for Quality Control, a process of verifying predefined requirements for quality.

(QC は元来 Quality Control (品質管理) であり,品質に関する,決められた要件を確認するプロセスである)


For software the QC function may involve checking the software against a set of requirements and verifying that the software meets the predefined requirements.

(ソフトウェアの世界では,QC の機能は,例えばソフトの一連の要件に対する確認だったり,ソフトが決められた要件を満たしているかの立証だったりするだろう)



そして QA (Quality Assurance) は…

Quality Assurance, on the other hand, is much more about providing the continuous and consistent improvement and maintenance of process that enables the QC job.

(一方で Quality Assurance (品質保証) は,QC を上手くまわす為の,首尾一貫した継続的な,改善・保守活動である)



つまり…

We use the QC process to verify a product does what we think it does, and we use the QA process to give us confidence that the product will meet the needs of customers.

(QC は製品が想定通りの挙動をするかどうかの確認であり,QA は製品が顧客の要求を満たすことができるかどうかの確証を得るためのものだ)


To that end the QA process can be considered a meta process that includes aspects of the QC process. It also goes beyond that to influence usability and design, to verify that functionality is not only correct, but useful.

(その為,QA プロセスは QC の側面を持つメタプロセスと解釈することができる.さらにはそれを超えて,機能要件が満たされているだけではなく,便利であることを確証する為に,ユーザビリティやデザインにまで影響を及ぼす)



さて,ここまでは一般的な話で,ここからが彼らの本題.

Here at Google, we tend to take a third approach that we call Test Engineering. We look at this as a bridge between the meta world of QA and the concrete world of QC. Our approach allows us to ensure that we get the opportunity to think about customers and their needs, while we still provide results that are needed on day to day engineering projects.

(Google では,「テストエンジニアリング」という,第3のアプローチを取っている.これはメタ世界の QA と,実世界の QC を橋渡しするものと捉えている.つまり我々のアプローチは,日々のエンジニアリングプロジェクトで成果を出しながらも,同時に顧客と顧客の要求を確実に考慮入れることを可能とする)



それで,Google Testing Team はソフトエンジニアと QA / QC もやりつつ,テスト容易性を高める工夫をしたり,設計ドキュメントをレビューして test hook の要求をしたりしますよーみたいな内容に続くのだが,目を引いたのはこの一文 (の後半部分,というか訳だと前半部分か).

We put an emphasis on building automated tests so that we can let people do what people are good at, and have computers do what computers are good at.

(人間には人間の得意なことをやらせ,コンピューターにはコンピューターの得意なことをやらせる為に,自動化テストの構築に重きを置いている)



日本でもテストエンジニアの地位が向上しますように.

あ,訳はいつも通り,意訳です.


2007年3月11日日曜日

フラガール [movie]

去年公開された,日本アカデミー賞の最優秀作品賞を含む5冠を始め,数々の映画賞を受賞した,李相日監督の話題作がリバイバル上映されていたので,観に行ってきました.

昭和40年代の福島県を舞台にした,常磐ハワイアンセンター (現スパリゾートハワイアンズ) の誕生にまつわる実話を基に,フラダンスを通じたドラマを描いたストーリー.

「とっても泣ける映画」と聞いていて,確かにまわりでは鼻をすする音が聞かれたし,私自身もグッと来るものがあった.

それは,寒い東北の地に常夏の楽園を誕生させるという,言わば存在しない理想郷を追い求める人間本来の虚しさがあるからなのか,家族や友人に対する情が描かれているからなのか,思春期の少女の人生舞台や東京で夢破れたダンサーの感情変化を目の当たりにしているからなのか,あまりに圧倒的かつ圧巻のダンスのためか,日本が石炭から石油に移り変わるエネルギー革命の時代背景とそれに対する人々の苦悩が垣間見えるからなのか…

正確に言えば,そのどれでもあるし,そのどれでもなかった.
冷静に考えて,ありがちなストーリーだと言ってしまえばそれまでだ.

それでも,ここまで胸に残るものがあったのは,ひとえに「蒼井優の笑顔」に尽きると思う.

正直,個人的には「パッとしない」「あかぬけない」というイメージがあった蒼井優だが,スクリーンの中の彼女の笑顔は,目映いばかりに輝いていた.男が女性に対して感じる愛しさというより,人間が人間に対して感じる愛しさ…とでも言えばよいだろうか.この笑顔だけで払った金額の元は十分に取れる.


そしてその蒼井優に最後まで食われなかった,主演の松雪泰子も見事だった.ダウンタウンのごっつええ感じで頭叩かれてた彼女が,こんな素晴らしい役者になったんですねぇ.個人的には松雪泰子の60年代ファッションもツボだったりしたんだけど.

今週には DVD も発売されるようだが,しばらく各地でリバイバル上映されているようなので,去年見逃した方は,炭鉱に咲く花の笑顔を見に劇場に足を運んでみるのも良いかも.

フラガール オフィシャルサイト

松雪泰子
価格
レビュー昭和40年、福島県いわき市は炭鉱の町だったが、石炭から石油へエネルギー源が変わり、閉山が続いていた...

涙腺が容赦なく刺激されるが、熱い感動と共感を感じる映画。必見!
 見事な映画である。観る者に様々な映画的記憶を呼び起こしながら、それをリミックス、昇華させつつ、臆...
あまなつShopあまなつで見る同じレイアウトで作成
松雪泰子
価格
レビュー昭和40年、福島県いわき市は炭鉱の町だったが、石炭から石油へエネルギー源が変わり、閉山が続いていた...

熱い感動と共感を感じる映画、必見!
見事な映画である。笑いのツボを押えつつ、観る者の涙腺を容赦なく刺激しながら、感動の世界へ誘ってくれ...
あまなつShopあまなつで見る同じレイアウトで作成


ソフトウェアアーキテクチャ その12 - ドキュメントを書く上での6つのテクニック [arch]

前回 に引き続き,ドキュメンテーションについて.
前回は「健全なドキュメントを書く7つのルール」を紹介したが,今回は「ドキュメントを書く上での6つのテクニック」を紹介したいと思う.

本シリーズでアーキテクチャドキュメントを扱うのは,今回で最後の予定.

Reference:
Documenting Software Architectures: Views and Beyond,
by Clements, et al. Addison-Wesley 2003

--> Chapter 9, Chapter 11.1 - 11.3

タイトル通り,アーキテクチャのドキュメント記述方法に関する本で,SEI の Product Line Systems Program の成果物の1つとして出版された.Product Line とは,SEI の代表的貢献として有名な CMM (Capability Maturity Model) に比べれば後発だが,最近注目されているソフトウェア開発の新しいアプローチの1つであり,本シリーズでもいずれ取り上げる予定.

本書には,Appendix に ECS Software のアーキテクチャ仕様書がそのまま例として載っており,私もアーキテクチャ仕様書を記述する際に大いに参考にしている.

但し,本書には関わっている著者が多く,全体的に若干繁雑な内容になっていることは否めない.最初から最後まで読了するというよりは,必要に応じて適切な内容を参照するカタログ代わりに利用すると良いかもしれない.

こちらがその和訳本.
多くの技術書がそうであるように,この和訳書も日本語が非常に奇怪だ.特に本書はその傾向が顕著で,例えば linked list (リンクリスト) が「結合した一覧表」などと訳されている.特に本書に関しては,極力オリジナルを読まれることを強くお勧めする.


Technique 1: Context Diagrams
(コンテキストを明確にする)

システムやサブシステムを表現するにあたり,何がそこに含まれ,何が含まれないかを読み手に把握させることが重要である.

コンテキストダイアグラムを供給することにより,「システムが相互作用する環境」「外部インターフェース」「対象システムが依存する他のシステム」を明確する.

View によって明確にしたい対象は様々だろう.例えば Layered view (Module viewtype) ならシステムと階層構造,Shared data view (C&C viewtype) なら外部要素とのインタラクションパス,Deployment view (Allocation viewtype) なら同じリソースを共有している他システム,など.

Technique 2: Combining Multiple Views
(複数の view を合成する)

これまで,構造を複数の view に分割し,視点を統一させることが重要だと述べてきたが,こうすることで全体像が掴みにくくなり,構成要素間の関係が捉えにくくなることがあるので,ドキュメントではそこをフォローしておきたい.

複数の view を合成するには,2つの方法がある.1つは combined view (合成 view) を構築するやり方.これには "overlay" と呼ばれる view を重ね合わせる方法と,"hybrid" と呼ばれる複数の view の構成要素を結びつける方法がある.もう1つはそれぞれの view の要素と関係同士を説明する bridging document (ブリッジドキュメント) を記述するやり方.

注意したいのは,combined view を用いて view を合成することは,ドキュメンテーションの上では全体像の把握や view 間の関連性の理解に繋がるが,やはり設計プロセスにおいては1つの視点から問題を分離し,複雑度を軽減させて pattern や tactics を検討することが本質であるということだ.

Technique 3: Using Hierarchy
(階層構造を使用する)

読み手にとっても書き手にとっても管理・理解しやすくする為に,アーキテクチャの説明に階層構造を取る.

具体的には,まずはトップレベルの view を記述し,詳細は別の view を用いて説明する.

Technique 4: Documenting Interfaces and Behavior
(インターフェースとその挙動を記述する)

当たり前のことに聞こえるかもしれないが,インターフェースは2つの独立した要素がどのように相互作用するかの境界であり,コミュニケーションの手段である.

つまりこれを明確にするということは,その要素の特性を,外部に対してどこまで意識させるかという宣言になり,それを意識してインターフェース定義を行う.

Technique 5: Notations
(様々な表記方法)

世の中には UML や ADL (Architecture Description Languages) など,既に定義された表記方法があり,それらを使うメリットも多い.

例えば「view を表現する多彩な記述方法を備えていること」「標準化されており,共通言語として利用価値が高いこと」「関連ツールが充実していること」などがメリットとして挙げられる.

但し,同時にそれらのデメリットも意識しておく必要がある.例えば UML は C&C の様々なコネクタやポートを完全に表現できない点 (UML 2.0 でいくつか定義はされたが),より実装に近いことを表現してしまう点などである.

本書第11章には,UML を始めとする様々な表記方法と,これまで解説してきた view との対応が説明されているので,参考にされると良いだろう.

Technique 6: Choosing the Views
(View を選択する)

最後に一番重要なテクニック.
それは「読み手に適した view と粒度を選択する」ということだ.オーディエンスを意識した内容に仕上げることは,プレゼンテーションでもドキュメンテーションでも同じことである.

本書第9章では,マネージャー,開発担当者,テスター・インテグレーター,他システムの開発者,メインテナー,プロダクトラインアプリケーション担当者,顧客,ユーザー,アナリスト,インフラ担当,新規利害関係者,将来のアーキテクトなど,実に様々な想定読者に対して,それぞれ何をどれぐらい記述するべきかが解説されている.非常に参考になるので,ぜひ一読されることをお勧めする.


2007年3月10日土曜日

憲法九条を世界遺産に - 太田光 [book]

太田 光
価格

一読の価値は充分にアリです
テーマがテーマなだけに、重くタブーとされているギリギリのところまでどうしても斬り込んでいかなくてはならないような危うさ...
あまなつShopあまなつで見る同じレイアウトで作成

爆笑問題の太田光と宗教学者・哲学者の中沢新一の対談.
憲法九条に対する改正論が盛んになっている昨今において,それを守っていこうという主張を,「憲法九条を世界遺産に」と表現する太田のセンスは素晴らしいの一言に尽きる.

もともと本書を手に取ろうと思ったきっかけは,「太田光の私が総理大臣になったら…秘書田中。」 という,太田やゲストが様々なマニフェストを出して,議員や評論家,タレントと討論をする日テレの番組で,本書と同名のマニフェストを太田が掲げているのを見たからだった.

テレビの中の太田は,それこそ見る人が見れば滑稽なほど熱くなっていた.「俺達大人が夢を語れないでどうする」と叫び,「憲法九条は暴力を伴なわないテロだ」と主張し,反対派の石破元防衛庁長官に対して「アンタの頭は俺の高校生の頃のレベルと同じだ」とまくしたてる太田が強く印象に残っていた.

実際に太田が即興で反対派と討論し,感情のおもむくままに顔を真っ赤にしてつばを飛ばしながら喋っていたテレビに比べれば,同じ歩調の2人が対談する本書は当然落ちついたトーンであり,テレビで見た時のようなダイナミズムやインパクトには欠ける.それでも宮沢賢治の思想や,人間の愛情と資本主義 (貨幣は愛への恐怖から生まれたもの) など様々な観点からの議論は非常に興味深い.

また,太田が単純に能天気な平和主義から九条を守ろうと言っているのではなく,そこには様々な苦悩や矛盾,葛藤が伴なっていることもよく読み取れる.

少し前に別の番組で,東国原宮崎県知事 (そのまんま東) がゲストに来た時,「世間を変えるには政治家になった方がてっとり早いかもしれないが,政治で決めたことはまた別の法案で変わるかもしれない.芸で世間を変えるということは,すなわち文化を変えるということだから,政治家よりも芸人の方が偉いんだ」と太田が言っていたのを思い出す.彼が「芸」で表現せずにストレートに主張している本題に対してジレンマを感じていることも,本書の中で認めている.

好き・嫌いがはっきり分かれる芸人かもしれないが,少なくとも私は,文化人を気取るわけでもなく,勇気を持ってあくまで誠実に自身を主張し,キラリと光るセンスを持つ太田光という「芸人」が好きだ.


ところでもうすぐ花見の季節だが,本書で桜のことが非常に興味深く語られていた.

それは太田の奥さんが,体調を崩していた時に桜を見て精神的に不安定になってしまい,薔薇を病室に飾ったら気持ちが落ち着いたというエピソードだった.

太田は,満開の桜は「かつて日本人が表現していた死」だと言う.

殺すことによって得られる恍惚感・エクスタシーは確かに存在し,殺人や自殺は気持ちいいものであり,「死の魅力」は実在するということ.世間ではそれは表現してはいけないことになっており,存在すらしないことになっているということ.そして美しく咲いたまま散っていく桜こそ,その狂気に満ちた死の花であるということ.

太田曰く,桜は狂気も毒も,その美しさの中に含んでおり,その表現は隠しているが,我々の潜在意識はその狂気を感じ取ってしまうのではないか,と.だからこそ太田の奥さんは,桜を見てバランスを失い,毒を (棘によって) きちんと表現している薔薇を見て落ちついたのではないか,と.

そして太田は,憲法九条は桜であり,改正して軍隊を持つと明言することは薔薇であると言う.

「九条を守ることは,特別な国であり続けるということであり,それこそ恍惚である」「そして桜の国であり続けるということは,冒険である」という彼の言葉を,自分自身でよく考えてみようと思う.

日本国民は,正義と秩序を基調とする国際平和を誠実に希求し,国権の発動たる戦争と,武力による威嚇又は武力の行使は,国際紛争を解決する手段としては,永久にこれを放棄する.

前項の目的を達するため,陸海空軍その他の戦力は,これを保持しない.国の交戦権は,これを認めない.

-- 日本国憲法第九条


2007年3月9日金曜日

野見さんは神 - 松本人志の放送室より [memo]

何週間か前の 放送室 で松ちゃんが「野見さん (「働くおっさん劇場」の名物おっさん) は神だと思う」という発言をしていた.

僕は最近気付いたんです.
あの人はやっぱ神様ですね.

こんなにおもしろくてええんかな?…と思ってね.

とにかくおもしろいからこれは見ましょう!


ちょうどその時の音声が YouTube にアップされていたので,まずは最初の2分ぐらいだけでもそちらを (ラジオなので画像は黒画のままです).




松ちゃんがこんなに興奮しているのも,「働くおっさん劇場」で,ものすごいシーンが録れてしまったから.

松ちゃんに「こんなにおもろいものが録れてしまうと,お笑いインポになる」とまで言わしめたそのシーンがこれ.もうあとは説明はいらない.



働くおっさん劇場 - Wikipedia


2007年3月7日水曜日

Mutt 1.5.14 のビルド [mutt]

私は家でも会社でも,Mutt というメールクライアントを愛用している.

今まで様々なメーラーを試したが,カスタマイズ性が非常に高く,痒い所に良く手が届く Mutt が,個人的には一番手に馴染む.というか,CUI 前提の Vimmer が大量の未読メールを毎日さばく効率を考えると,他に選択肢が無いのが現状だ.

ちなみに "mutt" というのは雑種犬のこと.その名の通り,他の様々な MUA を参考に良い所が取り込まれており,

All mail clients suck, this one just sucks less

という心憎いスローガンを打ち出している.

最近,Mutt の開発リーダーが交代し,長年拒否され続けていたパッチが取り込まれたり,新バージョンの 1.5.14 がリリースされるなど,動きが活発になっている模様.
ぞえ の戯れ言 - BrendanがMuttの開発リーダーに

実際に Mutt を初期導入する場合には,libiconv や glibc 2.2 以降などの iconv,S-Lang などの curses ライブラリ,さらに MTA などが必要になるが,今回はひとまず Mutt を 1.5.14 にアップデートした時の作業記録を残しておく.


まずは ここ からソースコードと日本語パッチを取得.

$ wget http://www.emaillab.org/mutt/1.5.14/mutt-1.5.14.tar.gz
$ wget http://www.emaillab.org/mutt/1.5.14/patch-1.5.14.mutt-j.ja.1.gz

さらに このあたり から好きなパッチを取得.既に header cache, mutt thread, attach count などの超便利パッチは本線に取り込まれている.私は maildir mtime,trash folder,purge message,pattern broken を組み込んでいる.
$ wget http://www.mutt.ca/patches/patch-1.5.6.dw.maildir-mtime.1
$ wget http://cedricduval.free.fr/mutt/patches/download/patch-1.5.5.1.cd.trash_folder.3.4
$ wget http://cedricduval.free.fr/mutt/patches/download/patch-1.5.5.1.cd.purge_message.3.4
$ wget http://cedricduval.free.fr/mutt/patches/download/patch-1.5.1.cd.pattern_broken.1

ソースコードを解凍して,パッチをあてる.
マニュアルに対して No file found となったものは全てスキップ,rej されたパッチは手で修正.
$ tar xzvf mutt-1.5.14.tar.gz
$ cd mutt-1.5.14
$ patch -p1 < ../patch-1.5.6.dw.maildir-mtime.1
$ patch -p1 < ../patch-1.5.5.1.cd.trash_folder.3.4
$ patch -p1 < ../patch-1.5.5.1.cd.purge_message.3.4
$ patch -p1 < ../patch-1.5.1.cd.pattern_broken.1
$ gzcat ../patch-1.5.14.mutt-j.ja.1.gz | patch -p1

configure して make して make install で終了.
$ CFLAGS="-O2 -I/usr/local/include -I/usr/pkg/include -I/usr/pkg/xorg/include -I/usr/include -I/usr/pkg/include/db4"
$ LDFLAGS="-L/usr/local/lib -Wl,-R/usr/local/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/pkg/xorg/lib -Wl,-R/usr/pkg/xorg/lib -L/usr/lib -Wl,-R/usr/lib"
$ export CFLAGS LDFLAGS

$ ./prepare && ./configure \
--enable-pgp \
--with-regex \
--with-homespool=Maildir \
--enable-external-dotlock \
--enable-pop \
--enable-imap \
--with-ssl \
--enable-flock \
--disable-fcntl \
--enable-nfs-fix \
--enable-nls \
--without-wc-funcs \
--with-mixmaster \
--without-sasl \
--enable-default-japanese \
--enable-hcache \
--with-libiconv-prefix=/usr/pkg \
--with-slang

$ make && sudo make install
configure オプションはお好みで.
ちなみにこれは,NetBSD 3.0,(libslang 1.4.9nb5,libiconv 1.10nb3) という環境だが,Linux や Mac OS X の場合は CFLAGS,LDFLAGS の明示的な指定はおそらく不要.--with-libiconv-prefix の値は環境に合わせて変えること.


ところで私は,Mutt 1.5.11 からのアップデートだったが,その時はパッチとしてあてていた attach count が,本線に取り込まれて設定方法が変わったようだ.

muttrc の
set             attach_ignore_fundamental
set             attach_recurse
attach-allow    */.*
attach-exclude  text/x-vcard application/pgp.*
attach-exclude  application/x-pkcs7-.*
inline-allow    text/plain
attach-exclude  message/external-body
inline-exclude  message/external-body
という記述で起動時にエラーが吐かれていたが,
attachments     +A */.*
attachments     -A text/x-vcard application/pgp.*
attachments     -A application/x-pkcs7-.*
attachments     +I text/plain
attachments     -A message/external-body
attachments     -I message/external-body
みたいに書きかえたら動くようになった.


2007年3月3日土曜日

カエルのサーカス [diary]

DSC00583.JPG
Blog を書いていて良かったと思うことはたくさんあるが,最近一番嬉しかったのは私の大好きなバンド,Big Frog のドラムのトンさんからメールをもらったこと.

の Big Frog に関する記事に検索エンジン経由で飛んできた彼が,なんと直接メールを送ってくれたのだ.

今日は SuperDeluxe でライブがあり,ひな祭りということで娘を持つ父としては見に行けなかったが,元々ライブ会場でしか売られていない "Boot Frog" というアルバムを買いに顔だけ出そうと思っていたら,トンさんが「残り少ないから取り置きしといてあげる」とのこと.会場につくなり,「トシヤ君だよね?」と声をかけてくれました.

というわけで,トンさんとボーカルのサトちゃんと.
DSC00582.JPG

最近,Big Frog は MySpace にページを開設.
http://www.myspace.com/bigfrogjp

私の iTunes の "Most played list" の1位を飾る "zenkey" を含む彼等のナンバーも流れてるので,ぜひチェック,チェック.


2007年3月2日金曜日

開発プロジェクトで使える (かもしれない) アニメの名台詞 [memo]

2つ目.
Geekなぺーじ:開発プロジェクトで使える(かもしれない)アニメの名台詞

今はそんな哲学を語っている暇はない。

おもしろすぎ.笑えないけど.


5秒で見る名作映画 [memo]

ネタを2つほど.まずは1つ目.
[まとめ]あの名作映画をわずか『5秒』で把握できる動画

タイタニックがもう最高.