2006年5月28日日曜日

Bob Dylan が40年以上前に高橋メソッドを実践!! [memo]

前回のエントリー で,

それからなんといっても高橋さんの「生高橋メソッド」が見れたこと.特にテンポ良くパッパッとスライドをめくっている時は,Bob Dylan の Subterranean Homesick Blues のビデオクリップを思い出してしまった (…って分かる人いますかね?).

と書いたんだけど,まさかと思って YouTube で探したらこのビデオクリップありました (もう何でもアリですね,YouTube).

もう1度おさらいしておくと,高橋メソッド とは,「とにかく大きい字で」「スライドあたりの字数は少なく」「簡潔に」を特徴とし,今やとても有名になりあちこちで使われている,日本 ruby の会の高橋さんが提唱したプレゼン手法.ご存知無い方は高橋メソッドを高橋メソッドで説明した こちらのスライド が参考になるかと.

…で,今日私が始めて高橋さん本人による高橋メソッドを見て思い出したのがこちらのビデオクリップ.高橋メソッドを見たことある方には必ず笑ってもらえると思うし,見たことない方はこのビデオを見て「ああ,こういうものなのね」と思ってもらって大筋まちがいないはず (ホントか?)

というわけで,今日から高橋メソッドは「Subterranean Homesick Blues メソッド」と呼びましょう…って名前長っっ!!



それにしてもこんないい加減で金もかかってないビデオクリップなのに,Dylan めちゃめちゃカッコいいなぁ.

1965 年の Bringing It All Back Home より.


GREE Labs 第3回 オープンソーステクノロジー勉強会 [seminar]

今日は GREE Labs のオープンソーステクノロジー勉強会に行ってきた.
GREE Labs -オープンソーステクノロジー勉強会 第3回

元々,日本 ruby の会会長の高橋さんによる Ruby on Rails (最近流行りの Web アプリフレームワーク) の話が聞けるということで興味を引かれたわけだが,どうも最近は本業よりも Web プログラミング (というかそっち方面の開発) にどんどん自分の関心が寄ってきている気がする.

個人的に興味深かったのは,高橋さんが Rails の話の流れで「少し PHP の話をさせて下さい」と,プレゼンの 1/3 ぐらいを PHP に費やしていたこと.曰く,Ruby on Rails のような最先端の開発環境は人々の関心も集まり一躍脚光を浴びているが,PHP は軽視されていて「みんな PHP の良さが分かっていないのでは?」と言うのだ.

「Geek や言語マニアには PHP は不評」としながら,PHP は「手段」としての言語であり,サービスで勝負したい,と述べていた (Geek や言語マニアは,言語を「目的」としている).

それから GREE の CTO,藤本さんが,彼の開発したフレームワーク,Ethna を説明をしている時に,その開発信念を,

絶妙に妥協
柔軟に拡張
高速に開発

と語っていたこと.
これは別に Web フレームワークに限った話ではないと思うし,私も業務でアーキテクチャ設計の話をすることがあるが,改めてこう言われるとなんか目から鱗が落ちるようだった.


本質とは関係無い話題で印象に残ったのは,藤本さんが,なんかのイベントでアメリカかどこかの会社の有名な CTO (すんません,関係無い話題だと思って聞き流してたので名前とかは一切覚えてません) に「CTO にとって一番大切なことは?」と聞いたら「採用」と言われたこと.

それからなんといっても高橋さんの「生高橋メソッド」が見れたこと.特にテンポ良くパッパッとスライドをめくっている時は,Bob Dylan の Subterranean Homesick Blues のビデオクリップを思い出してしまった (…って分かる人いますかね?).


勉強会後の懇親会では様々な情報交換をしてネットワークを広げられると思っていたけど (むしろこのテのイベントはそっちがメインだったり…),極度の睡眠不足だったので今日はパスさせて頂きました.


【2006/05/31 追記】
勉強会の様子,発表資料,議事録,音声がアップされました.
GREE Labs -オープンソーステクノロジー勉強会 第3回 −開催のご報告−


2006年5月27日土曜日

六本木ヒルズ ダ・ヴィンチ・コード展 [diary]

Google と Sony Pictures が 提携して 宣伝サイト を開設したり,今年度オープニング興行収入 No.1 を記録し5月公開作品オープニング成績としても過去最高記録をしたり,その一方で内容に キリスト教団が反発 しソニーの不買運動を始めるなど,とにかく話題にこと欠かないダ・ヴィンチ・コード.たまたま無料券があったので,六本木ヒルズで開催されているダ・ヴィンチ・コード展に先日行ってきた.

ダ・ヴィンチ・コード展 (公式サイト)
六本木ヒルズ・Roppngi Hills:「ダ・ヴィンチの謎」を六本木ヒルズで体験する!!
六本木ヒルズ・Roppngi Hills:ダ・ヴィンチ・コード展 The Da Vinci Code Museum

【ダ・ヴィンチ・コード展について】
この展覧会は世界初の試みとして「本で読み、ミュージアムで体験し、映画を観る」という3つの楽しみを提案するエンタテインメント・プロジェクトとして開催されています。
会場は、原作・映画のストーリーを軸に構成されており、作品に登場する「ダ・ヴィンチの名画」「空間・建築」「人物」等をデジタルメディア、高精細映像を駆使しながら再現されています。


Full HD の4倍を超える画素数を誇る SXRD (Silicon X-tal Reflective Display) で映し出された原寸大の「最後の晩餐」は確かに圧巻だったし,ダ・ヴィンチの代表的な絵画をその裏にあるストーリを語りながら紹介するデジタルミュージアムも非常に興味深かった (特に私にとっては知らないことばかりだったので).

会場は厳粛な雰囲気を作り出しなかなか良い演出をしていたと思うのだが,出口のところに売っていた「ダ・ヴィンチのぬいぐるみ」のあまりのマヌケ面に全てがぶち壊し… (撮影禁止だったので写真を掲載できないのが非常に残念).

本来は入場料が1,500円とのことなのでちょっと微妙な気はするが,興味のある方は足を運んでみるのもいいかもしれない.むしろ私のように美術にあまり造詣が深くなく,ダ・ヴィンチのバックグラウンドを全然知らない人の方が楽しめるかも?

あ,そうそう.5/28 (日) の 世界遺産 (23:30 - 24:00 TBS 系全国ネット) ではダ・ヴィンチ・コードの公開に合わせて「世界遺産の記憶 レオナルド・ダ・ヴィンチ」を放送するとのこと.こちらもチェックしてみてもいいかもしれない.


2006年5月26日金曜日

失うものの大きさ [diary]

会社で一番尊敬していたマネージャーが辞めてしまわれるとのこと.

うーむ激しくブルーです…

「この人の為にいい仕事がしたい」
心からそう思える人でした.


2006年5月23日火曜日

Presentation Zen にドリカムとみのもんた [memo]

エンジニアという職業は技術的なことだけではなく,プレゼンテーション能力も非常に重要で,しかも英語によるプレゼン (いわゆる public speaking skill, persuasion speech skill) が必要とされる場合も多い.そんなわけで私が情報収集するサイトの1つに Presentation Zen というものがある.

いつものようにここをチェックしていると,なにやら見たことのある顔が…と思ったら,ドリカムの吉田 美和と中村 正人だった.
Presentation Zen: The power of the genuine smile
なんでも大阪でドリカムのコンサートを見ていたく感動したようで,「プレゼンでは表情が大切」としながら,

last night in Osaka I was inspired by one of the world's greatest smiles and biggest musical talents.

と賞賛し,記事の大半をドリカムの紹介に費やしている.


ところでこの Presentation Zen,過去に 高橋メソッド (日本 Ruby の会の高橋 征義氏が提唱する今や世界的に有名なプレゼン手法・先日日本で開催された YAPC でも たくさん使われていた模様) を紹介したこともあり,
Presentation Zen: Living large: "Takahashi Method" uses king-sized text as a visual

さらにその後,その高橋メソッドと対比しながら bricklife. の ooba さんが冗談半分で名付けた もんたメソッド (みのもんたがよくやる,というか今やテレビでは良く見かける,文章の一部分を隠しながら話すこと) を真面目に紹介していたのが印象的だった.
Presentation Zen: The "Monta Method"

Oba says it is similar to the way people become more curious about adult videos in Japan because the "naughty bits" are blurred out with a mosaic filter.
(大庭氏曰く,日本のアダルトビデオでは局部にモザイクがかけられており,これと同じ要領で人々の好奇心を煽っている)

と真面目に書かれているのにちょっとひいたのを覚えている.

ま,いずれにしてもこんなネタまでピックアップするなんて,アンテナが高いことには間違いないんでしょうがね.



ちなみに過去に Peace Pipe でプレゼンのことに触れたエントリーはこのあたり.
Peace Pipe: CES 2006の基調講演とプレゼンテクニック [ce]
Peace Pipe: Macworld SF 2006の Steve Jobs 基調講演 [ce]
Peace Pipe: Steve Jobs のプレゼン失敗集 [memo]

Presentation Zen の記事を引用したこともあった.
Peace Pipe: Steve Jobs のプレゼンから「真似すべきではない」点 [memo]


2006年5月20日土曜日

松本人志オススメの「旨いぞお」 [diary]


昨日は嫁さんの誕生日,ということでグッチ裕三がプロデュースしている居酒屋, 旨いぞお に行ってきました.

もともとこのお店,以前もちょっとネタにした 松本 人志と高須 光聖の 放送室 の中で,2人がベタ褒めしていたのを聞いてから1度行ってみたかったのだ.

ラジオを聞く限り2人は山崎 邦正なども連れて何度か訪れているようで「これだけ行ってるんだからグッチさんちょっとオマケしてくれてもいいのになー」と冗談混じりに話していたし,店員さんにちょっと尋ねてみたところ「松本さん,ちょくちょくいらっしゃいます.ラジオで宣伝してくれたおかげで最近はリスナーのお客さんも増えてるんですよ」と話していた.


実際には「グッチ裕三プロデュース」なんていうネームバリューなんかまったく必要ないぐらいどれも本当においしく,全てのメニューを食べてみたいと感じるほど.値段はちょっと高めだけど,味はまさに噂通りで,料理やお酒の種類も豊富だし,店の雰囲気も店員さんの接客も最高でした.

写真は松ちゃんが絶賛していた「ナンと奈良漬け」


私の一番のヒットは「にんにくの茎と蜂の巣の炒め物」 (こちらは食べるのに夢中で写真撮るの忘れてました…)


とにかくこの「旨いぞお」,全然名前負けしてません.The Band (60 〜 70年代に活躍した最高のバンド) と同じぐらい名前負けしてません.


そしてなにより,誕生日おめでとう.
いつも家のこと,娘のこと,本当にありがとう.


2006年5月17日水曜日

はてな技術勉強会 .vimrc 説明補足 [vim]

前回に引き続き,はてなの技術勉強会は vim ネタで,今回は .vimrc の説明会だった模様.
secondlife/.vimrc

というわけで,前回に続いて,今回も少しコメントしてみようと思う.

まず勉強会ページで公開されている .vimrc に

" タブ幅の設定
set expandtab
set tabstop=2
set softtabstop=2
set shiftwidth=2
とあったけど,vim のタブ設定は複雑なので少し補足.

expandtab というのはタブをスペースに置き換える設定で,インデントに関する設定は残りの tabstop, softtabstop, shiftwidth となる.で,これらに関しては以前,2ちゃんねるの vim スレ に KoRoN さんが分かりやすい説明をしていたので,それをそのまま引用してしまいましょう.

2ch Vim6 Part3 94 より:

インデントには'tabstop'、'shiftwidth'、'softtabstop'の3つのオプションが関わっています。これらのうち'softtabstop'はvimオリジナルのオプションになります。cindentやautoindent時に挿入されるタブの幅は'shiftwidth'で決定されます。少々ややこしいですが各オプションの意味は下記のとおりなので、ちょっとがんばって理解しておけば柔軟に設定できるようになるでしょう。

'tabstop' (短縮名'ts')
ファイル中の<Tab>文字(キャラクターコード9)を、画面上の見た目で何文字分に展開するかを指定する。既にあるファイルをどのように表示するのか指定したい時に便利。

'shiftwidth' (短縮名 'sw')
vimが挿入するインデント('cindent')やシフトオペレータ(>>や<<)で挿入/削除されるインデントの幅を、画面上の見た目で何文字分であるか指定します。自動的に挿入される量、と覚えておくと良いです。

'softtabstop' (短縮名'sts')
キーボードで<Tab>キーを押した時に挿入される空白の量。'softtabstop'が0以外の時には、例え'ts'を4に設定していても、<Tab>を1度押しても'softtabstop'分だけ空白が挿入されます。逆に'softtabstop'が0の場合には挿入されるのは'ts'で指定した量になります。

vimが自動的に挿入したか<Tab>キーによって挿入された空白は、'ts'に設定された幅でTab文字へと自動的に置き換えられます(ただし'expandtab'が設定されていない場合)。これは十分に賢い機能なので特に意識しなくても良いでしょう。

で以上のことと、一般のエディタがTabを4文字か8文字で表示することを踏まえると
:set ts=4 sw=4 sts=0

:set ts=8 sw=4 sts=4
という設定が必要になります。



あとは私の vim 設定ファイルからいくつか tips 紹介.


カーソル位置の highlight グループを取得する.

command! -nargs=0 GetHighlightingGroup echo 'hi<' . synIDattr(synID(line('.'),col('.'),1),'name') . '> trans<' . synIDattr(synID(line('.'),col('.'),0),'name') . '> lo<' . synIDattr(synIDtrans(synID(line('.'),col('.'),1)),'name') . '>'
自分で colorscheme とかを構築する場合などに便利.


runtimepath/macro 以下の plugin を読み込む.
command! -nargs=0 Macros :call <sid>Macros()
function! s:Macros()
  let bakz  = @z
  let baksb = &sb
  let @z=globpath(&rtp, 'macros/*.vim')
  set   splitbelow
  new
  exec "normal! i\<c-r>=@z\<Enter>\<Esc>gg"
  let @z=bakz
  if baksb==0
    set nosb
  endif
  setlocal   buftype=nofile
  setlocal nobuflisted
  setlocal   bufhidden=delete
  setlocal nomodifiable
  nnoremap <buffer> <silent> <cr>  :let f=getline('.')<bar>close<bar>exec 'source ' . f<cr>
  nnoremap <buffer> <silent> <esc> :close<cr>
endfunction
Plugin をたくさん入れていると起動などの動作が遅くなるので,定常状態で読み込む必要のない plugin は $HOME/.vim/macros あたりに入れておいて必要な時にだけ :Macros で選択する.


カーソルがある行をハイライトする.
nnoremap <silent> ,ha :HighlightCurrentLine Search<cr>
nnoremap <silent> ,hb :HighlightCurrentLine DiffAdd<cr>
nnoremap <silent> ,hc :HighlightCurrentLine Error<cr>
command! -nargs=1 HighlightCurrentLine execute 'match <args> /<bslash>%'.line('.').'l/'

nnoremap <silent> ,H :UnHighlightCurrentLine<cr>
command! -nargs=0 UnHighlightCurrentLine match
コードレビューをしていたり,プロジェクタでテキストを表示しながらなにか話している時に「ここの部分が…」と示す時に使える.


またなにか思いついたら投稿します.


2006年5月15日月曜日

「クリエイターに一番必要なものは?」松本人志の放送室より [ce]

先週の松本 人志と高須 光聖のラジオ番組,放送室 の中で,高須が何気なく松ちゃんに「クリエイターにとって,モノを作る人間にとって,一番必要なものは何ですか?」と聞いた.

思わず息を飲んで注目してしまった.
「お笑い」という世界で25年近くも第一線で新鮮さを保ち,単なる「芸人」という枠を超えて様々な文化を作り出してきたクリエイターの言葉である.畑は違えど私だってモノ作り屋として「クリエイター」の自負は持っているつもりだし,Blog を書いている人だって Flickr に写真を投稿する人だって「クリエイター」と言えるはず.いや,浅野 紀予氏の「人間はメディアである」という言葉を借りれば,人間はそれぞれのコミュニティで少なからず互いに影響し合って生きているわけで,広義な意味では全ての人はクリエイターの要素を持っている (というのは拡大解釈しすぎかな?).

ま,それはいいとして,「そうやな〜」と考えて松ちゃんはこう発言する.

答えは1つじゃないけど,最終的には「決断力」かも分からへんな.
やっぱり,もう,迷いだらけなんですよ.


決断力,なのである.例えば「洞察力」とかではなく,決断力.


例えばメーカーにとっては,作り手が直接ユーザーとコミュニケートできるわけではなく,作り手は「製品」を通して自分のメッセージをユーザーに伝えるわけだ.製品に込めた作り手のメッセージと,ユーザーがその製品を通して受けとったメッセージが近ければ近い程ハッピーなわけで,そもそも作り手の頭の中が曖昧だとこの方程式は成り立たない.

世の中を見渡してみると,決断力に欠けた迷いだらけの製品のなんと多いことだろうか.「A という仕様がいい? B という仕様がいい? うーん決められないから設定メニューでどちらでも選べるようにしておこう」みたいな… 自分達では決められないから切るべきところを間違えたり,逆になんでも入れる方向にして,結果として使い勝手の悪いあやふやな製品像になってしまっている.

松ちゃんはその後,「決断が例え間違ってたとしても間違ってないように導くから結局間違ってない」といったことを言っていた.

そういうもんやね,モノ作りってね.
要するにつじつま合わせですね.

と.それぐらい作り手のメッセージがブレてはいけないのである,と勝手に解釈してみた.


少し話はそれるけど,ラジオの中で「『決断力』は『自分の直感』によって持たらされる」という松ちゃんのコメントを受けて,高須が「自分の直感は何によって養われたかというと,子供の時に見た風景だと思う.だからあなたのコントは尼崎の匂いがする.松本人志が作るものが切なくなるのは,尼崎の街が原風景にあるからだ.」という話は興味深かったし,この話の流れで松ちゃんが「子供を自然の多いところで育てたいという親が多いけど,それには反対で都会で育てた方がいいと思う.いろんな人間を見せるべきだし,いろんな刺激を受けた方がいい」というコメントも「へーそんな考え方もあるのねー」と思って聴いていた.


2006年5月12日金曜日

「Linux は簡単」という小学生は90% [memo]

「Linuxは簡単」という小学生は90%,教員は60%---経産省による導入実験,結果公開:ITpro

思わず「最近の Linux すごい!!」と思ってしまった (小学生ではなくて).

使っている Linux が Slackware とかだったら「最近の小学生すごい!!」と思ったかもしれないけど (笑).


2006年5月10日水曜日

【便乗】はてな vim 勉強会勝手にリファクタリング [memo]

はてなの技術勉強会で vim のことをやったようで,
これだけは知っておけ! vim 勉強会

takayama さんがトラバをつけている.
はてな vim 勉強会勝手にリファクタリング

私は takayama さん作の TareRSS (vim 上の RSS リーダー) を愛用していたし,私も vim を「ヴィム」ではなく「ブイアイエム」と読むこともあってちょっと共感.やっぱりここは vim を広めていこうということで,1つ便乗して私も tip を紹介してみることに.


勉強会の中で, :s/foo/bar/g みたいな置換の話が出てくる (この例では foo を bar に起き換える) けど,実はこの foo というのを省略して :s//bar/g みたいに書くこともできる.そして省略した場合には最後に検索した文字が置換対象となる.

だから例えば

I live in Massachusetts.
My apartment is located just 5 minutes from University of Massachusetts.
I am originally from New York.
The weather is getting really nice and warm in Massachusetts these days.

みたいな文章があって,Massachusetts を Ohio に置換したい時に「『まさちゅうせっつ』なんて打つのめんどくさいな」と思ったら,上記文章の Massachusetts という文字列のどこかで * でも押して (* はカーソル位置の単語の前方検索),

:%s//Ohio/g
みたいな.

# とか * でサクっと対象文字列を拾うのがミソ.

ちなみに同じワザは global コマンド (:g) でも使えるので,例えば
:%g//d
すれば Massachusetts を含む行を削除できるし,
:%v//d
すれば Massachusetts を含む行だけ残すことができる.

:let @a=''
:%g//y A
して "a レジスタ に Massachusetts が含まれる行を入れてみたりとか (その後どこかで "ap ).


結構コードを書いてる時に FuncReallyReallyLongFunctionName みたいな関数名を置き換える時は重宝します.ヘッダファイルと split 表示している時は,
:windo %s//FuncNewName
とするとか.


ところで勉強会は非常に分かりやすかったけど,まわりには「Vim って覚えることが多すぎて良く分からない」って声が多い.だから丸暗記させようとするんじゃなくて,なんとなくコマンドのフレームワークというか体系を最初に説明してあげると,とっつきやすいかも.

例えば,まずコマンドは覚えやすいように
y は yank の y
d は delete の d
p は paste の p
x は文字削除だけど,これは昔のタイプライターで間違えた時に x を上から打って取り消し線のようにしていたから
みたいに説明してあげて,
- コマンドは大文字のものと対になっているものが多い
- コマンドの前に数字を入れるとその分繰り返しになる
- g を最初に打つと,そのコマンドに「ひねり」を加えた感じになるものがある
(勉強会でも絶賛されていた gj gk や,同じく勉強会に出てきた gJ,前述の * # に対して g* g# とか)
などなど…
といった具合に大筋のパターンを理解した上で,少しずついろいろなコマンドを覚えていって,なんとか使える → 便利に使える → すごく便利に使えるとなってきたらマクロやレジスタみたいな概念を覚えていくといいんじゃないかな.