というわけで、LL Ring 参戦です。
えんどうさんに誘っていただいたのですが、気軽に OK してしまいまったのでした。でも、よく考えてみたら (考えなくても分かるって。そりゃ、そうです)、思いっきりアウェイなのでした。
去年は LL Day and Night で、星さんの記事などでなんとなく雰囲気は分かっていました。それから考えると、ある程度くだけた雰囲気なので、何をやっても構わないかなぁと。
時間も短いし、アウェイだし、ブーイングされること覚悟で以前より考えていたことを実験してみることにしました。
- 講演中、ずっと Dukelele を弾いて、歌い続ける
- 講演中、PC に触らない
牧伸二でもギター侍でもはなわでもなんでもいいのですが、楽器持ったまま講演するのです (実をいうとギター侍もはなわも存在は知っていても、見たことないんですけどね)。
今までも公演中に Dukelele を持っていることはありましたけが (というか最近は Dukelele 持たない講演の方が少ないのです ^^;;)、あまり活用しているわけではありませんでした。だいたい、一番はじめにちょっとだけ弾いて後は抱えているだけ。
でも、それじゃ Dukelele 持っている意味がないっ、というわけで活用を考えたのでありました。
どうせ、Dukelele 持っていっても、これがウクレレと分かる人も少ないだろうし、なぜ私がウクレレを持っているかを分かる方はもっと少ないと思うので、何でもやりたい放題です。
さて、唄うのはいいのですが、何を唄うか。替え歌でもいいのですが、やはり自作の曲がいいでしょう。で、どんな歌がいいか考えはじめました。
はじめに思いついたのはブギウギ。なぜか? 簡単だからです ^^;;
ブギは基本的に 1 コード。適当なリフでもつけて、最初から最後までずっと同じ調子で弾いていればいいので、講演で緊張していてもなんとか形になるでしょう。
ブギといえば John Lee Hooker。Boogie Chillen' などを参考にしようと聞いてみたのですが... かっこよすぎる。
このかっこよさは、私が画く絵のテイストに合わない。しかも、ウクレレはギターのように低音が出ないので、どうしても渋く決めるような音が出ないですよね。まぁ、単に私がへたくそだからというのもあるのですが...
ウクレレでブルースというとやっぱり Taj Mahal の Hanapepe Dream のように楽しい音になってしまうのです。
しかたないので、路線変更。でも、難しいのはやっぱり嫌なので、1 コードでどうにかならないかと模索していたのでありました。でも、やっぱり落ち着かない。なんか落ちがないんですよね、1 コードだと。
ブルースのコード進行は、 I - IV - I - V7 というコード進行で、歌詞は A A B C という形式(もちろん古典的なブルースの話ですけど)。たとえば、クロスロードの場合
I went down to the crossroads, fell down on my knees
I went down to the crossroads, fell down on my knees
Asked the lord above for mercy,
"Save me if you please"
となります。
この場合、問題になるのは I - IV のところが、同じ歌詞の繰りかえしになるという点。今回は対立軸 (Java とスクリプトね) があるので、同じ歌詞の繰りかえしはやりにくいのです。
そこで、I - I - V7 というコード進行でいこうと考えました (厳密にいえば I - I - V7 - I ですけど)。はじめの I が Java の側、次の I がスクリプト側、そして最後の V7 でまとめるという形です。
ここまで決まれば、後は歌詞を考えて適当にメロディをでっち上げるだけです。Java とスクリプトの対比軸で考えなくてはいけないので、たとえば、Java は静的型付けでスクリプトは動的型付けとか、コンパイルの有無と。で、思いついたのは Java って固くない? ということ。逆にいえば、スクリプトってやらかくない? ということですけど。
で、メインのフレーズとして
Java はかたい
スクリプトはやわらかい
いっしょにつかえばちょうどいい
というのを考えついたわけです。後はこれを基軸にすれば OK。
さて、次に資料の方です。PC に触らないということは、はじめから時間配分を考えて資料を作らなければいけないということです。
そんでもって、Dukelele 弾きながらだし、あまり深いことを喋っても Java をやっている人は少数派なので分からないだろうと考えて、なるべくイメージ的に Java がスクリプトに対応したことが分かればいいだろうと。
そのためには、字よりも絵。それもアニメーションが効果的です。ということで、今回はアニメーションを多用することにしました。
アニメーションを作るときには絶対することが絵コンテを描くこと。絵は適当でいいのですが、流れを絵コンテとして描いておかないと、わけ分からなくなってしまうのです。
さて、問題はどういうアニメーションにするかということ。今回の基軸は、「Java はかたくて、スクリプトはやわらかい」です。そいうえば、JavaOne のセッションでスクリプトの使い道には Super Glue タイプと Liquid Core があったなぁ、と思いだしたわけです。
それじゃ、ほんとにのりでくっつけるアニメにしてみようということで、今回のように Java がかたくてもろいので、スクリプトののりでくっつけましょうというアニメになりました。
後はそこからどうやって JSR-223 に導入するかです。JSR-223 はスクリプトと Java の間にあるので、橋のイメージで何か作れないかとおもったのですが、うまいアイディアを思いつきませんでした。
ということで、苦心惨憺、思いついたのは、接着剤の補助剤のようなもの。そこで、思いついたのが虫めがねのアイディアだったわけです。
もう 1 つアニメーションを使ったのが、JSR-223 に対応したスクリプトを列挙する場面。事前に入場曲を決めてあったので、その入場曲をそのまま流用。
入場曲はやる気のないベーダーマーチ。だから、Star Wars の一番はじめのプロローグの場面のように文字が手前から後ろに流れるようにしてみました。
いつものごとくプレゼン資料を作るのは Adobe の Flash を使っているのですが、このアニメーションが一番苦労しました。スタッフロールのように単に下から上に流れるだけなら簡単なのですが... 結局、1 行ごとにオブジェクトにして、イージングしながら (はじめは早く動いて、だんだん遅くなるようにします) 小さくするということをしました。
資料があらかたできたので、後はウクレレや喋りとの時間調整。これが結構時間がかかりました。まぁ、時間がかかるだけなので、たいしたことはないのですが...
問題だったのは、全部通しで時間を計ってみると 5 分しかなかったことです。講演時間は 8 分。後、3 分をどうにかしないと。
というわけで、後から苦し紛れでコードの解説部分などをくっつけたわけです。
このせいで、歌い続けるということができなくなってしまいました。だって、コード解説を唄いながらやるのはむちゃくちゃ難しいですから ^^;;
本番では、やはり後から足した部分の時間配分がいまいちでした。これは反省材料です。
さて、当日。
リングに立って弾きだしたのはいいのですが、「Java はかたい」と歌った後、いきなり頭が真っ白。で、次のフレーズは歌えず... orz
それでも、その次のフレーズは歌えたので、被害は最小ですみました。やはり、本番は怖いですね。
そんなこんなで、テンポが練習のときよりずっと速くなってしまいました。ふと、PC の画面を見ると、自分が想定したところとずいぶん食い違っていることに気づいたわけです。このままいったら、かなり先にいってしまうところでした。あぶない、あぶない。
その後は比較的、落ち着いて喋ることができました。
それにしても、「残り時間、1 分」といわれるとなんとなくあせりますね。絶対、8 分以内で終わるように作ってあるので、焦る必要はぜんぜんないのですが、なんとなく焦ってしまいました。
ブーイングも覚悟していたのですが、終わってみるとブーイングもなく、ちゃんと聞いていただけました。よかった、よかった。
発表資料 (要 Flash Player 8)
クリックしないと進まない版
はじめにクリックすればそのままずっと進む版 (いっておきますけど、全部見るのは 7 分 30 秒かかりますよ)
さて、他の方の発表ですが、みなさん工夫されていておもしろい。
FORTH なんてむちゃくちゃなつかしぃ。MZ-80 で FORTH が動いていたんですけど、そんなこと誰も知らないですね ^^;;
Lisp の中村さんの発表は聞きたかったのですが、私のすぐ前なので聞けませんでした。残念。
個人的には Squeak が好きなんですけどね。でも、Croquet はいまさらという感じもしましたけど。
昼休みの後の関数型言語まで聞いて、途中で退出。本当は最後の Gong まで見たかったのですが...