N2 ToolBox(跡地)

跡地です。引っ越しました。http://d.hatena.ne.jp/nosen

Scala: traitのパワー

2008-09-30 21:31:08 | オープンソース
A Scala-style "with" Construct for Ruby
↑ScalaのtraitがどうすごいかをRubyとの比較において述べたエントリ。

Rubyとの比較云々は良いとして、クラスをnewするときにtraitをmixinできるのは非常に面白いと思いますね。

Chain Of ResponsibilityとかDecoratorのパターンでオブジェクトの構造を組み立てるところとか、Javaの動的プロキシとか、AOPライクなこととかがとっても簡潔に記述できそうです。

追記:
良く考えると、似たようなことがObjectクラスの変更で出来てしまうRubyの柔軟さもやっぱりすごい。

Scala

2008-09-30 07:10:39 | オープンソース
実はScalaには数ヶ月前から興味をもって調べ始めています。

長い時間をかけて LiQ Container を作っていたあたりから関数型の言語には強い関心をもっていて、
その中でもJVM上で動き、関数型言語の特徴を持ちながら既存のJava資産を活かせるScalaはいずれちゃんと勉強しようと心に決めてました。

しかし、文系出身で社会人になってからプログラミングの勉強を始めた私は関数型の言語に全く免疫がなかったので、Scalaを勉強する前にHaskellあたりを勉強しておこう、とHaskellを勉強していました。Haskellはひどく難しい言語でした。。

でも結果的にはScalaを勉強するときに再帰によるリスト処理や高階関数やカリー化やパターンマッチといった、関数型言語特有の機能を理解できたので良かったと思っています。

で、最近漸く Scala 自体を勉強し始めました。意外に覚えることが多い言語なので、習得にはそれなりの時間がかかりそうですが、このBlogでも今後折に触れてScalaネタも展開していきたいと考えてます。

人を信頼する、というスキル

2008-09-26 09:58:10 | マネジメント全般
「人を信頼する」ということはそれ自体一つのスキルだと思うのです。
それはリーダーたるべき人にとって必須だと思うのですが、かつ私自身なかなか会得できないスキルです。

リーダーは、自分のチームのメンバを無条件で信頼すべきです。
人間、信頼されていると感じるときのほうが、信頼されていないと感じるときより生産性はあがると思われます。その前提に立つと、リーダーには自分のチームのパフォーマンスを向上させることにあらゆる手を尽くす責任があるので、リーダーがメンバを信頼しないということは、リーダとしての責任を果たしていないのと同じことになります。

リーダーのメンバに対する信頼とは、自分の期待した成果を他人があげてくれるということに対する安心感のことです。リーダーがあるメンバを信頼できないとき、多分その期待の方が間違っています。その人が出来ないことを勝手に期待して、期待が裏切られて、勝手に不信感を抱いているだけなのです。

つまり「人を信頼するスキル」というのは、言い換えると「人の出来ることを正しく期待するスキル」といえると思います。

とまあ、ここまでは理屈なのですが、実際には正しく期待することは非常に難しいです。いつも上記のようなことを自分に言い聞かせてはいるのですが、、まだまだ修行が足りないですね。

朝型生活崩壊その2

2008-09-24 01:33:08 | その他
なんだか休みのたびに朝型生活が逆転してる気がします。

今回の原因は明白です。 一日中初音ミクと遊んでいたからです。
他にもいくつかやりたいことがあったのに、まったく手についていません。恐ろしい勢いで時間が消費されていく。
なにか歯止めが必要です。
とはいえ、初音ミクを使った曲を9末になにか納品しなければいけないことになっているので、あまりおろそかにも出来ないのですが。

本当はオリジナル曲をやりたかったのですが、時間がないので、練習がてら歌わせている「コンピューターおばあちゃん」を納品することになりそうです。

時間をかけているだけあって、ようやくコツはつかめてきました。
つかんだコツをメモ。

------
重要だと思われるパラメーターは以下の3つ。

・ベロシティ
・アクセント
・オープニング(口の開け加減)

この3つのパラメーターを組み合わせて、基本的なフレージングを組み立てて行きます。歌詞の文節の切れ目やフレーズの切れ目に合わせて強めのベロシティやアクセントを配置してから、オープニングを調整して細かい表情をつけます。

子音を強調したいときには部分的にブレシネス(息の混ぜ加減)をちょっとだけあげると効果的。

ブライトネスとかクリアネスはいまいち勘所がわかっていません。
-----
1コーラス分ざっと作って、Logic Expressに取り込んで簡単なオケをつけてみたら、結構それっぽく聞こえて、感動。DTM魂が完全に再燃してしまいました。折角テレビをやめたのに、テレビ以上に時間をとられる。。

いまからビール飲んで寝たら4時間しか寝れないじゃないか。。

ミクが言うこときいてくれない

2008-09-23 00:26:15 | その他
初音ミクと戯れるのにかなりの時間を割いているのですが、なかなかいうことを聞いてくれません。。
VOCALOID には音程と歌詞以外にもいろんなパラメータがあって、多分アクセントの付け方とか、「口のあけぐあい」とか「息の音の混ぜ加減」とかの調整が凄く重要だと思うのですが、いまいち勘所がつかめないです。

それで、ニコニコ動画に大量にアップされている初音ミク動画を研究したりしています。
変態的な完成度の作品が多々あるなかで特に私のツボにはまったのはこれ↓

【ニコニコ動画】音楽@ミクさん

「オンガク」っていうタイトルの知る人ぞ知るYMOの名曲のカバーですね。
ポップスでこのコード進行はないだろうていうインスト部分と、ほのぼの系の歌モノ部分のギャップとしかも初音ミクってところが泣かせます。
作者は本当にYMOと初音ミクが好きなんだろうなーというのが伝わってきます。やっぱりモノ作りには愛がなくちゃね。


XMLの方のSimple

2008-09-21 11:18:12 | オープンソース
HTTPの方のSimple Frameworkから分かれたXMLシリアライゼーション用のフレームワークがあります。その名もSimple。同じかよ!

HTTPの方と同様非常にシンプルだけれどもパワフルで、XMLの読み書きがバカみたいに簡単にできる良くできたフレームワークです。両Simple Frameworkともに、APIのデザインといい、コーディングのスタイルといい、今までのJava界のしがらみにとらわれない新しい世界を切り開くものだと思います。

なのに。

いかんせん名前がひどすぎる。最早、怒りすら覚えるレベルです。非常に惜しい。

Maven 2.1.0-M1 リリース

2008-09-19 20:38:36 | オープンソース
リリースされたようです。
アナウンスメールによると、2.0.x 系は今後end-of-life モードになるそうです。

今後は2.x系は比較的保守的な改善点のみを取り込むそうで、もっと根本的な変更は 3.0 系の方に対して行われるようです。
具体的なロードマップが書いてあるページ↓

Maven 2.1.0 Release Plan
Maven 3.0

これらのプランにはざっと目を通しましたが、なんとなくIvyの方が筋が良さそうな気がしている、今日この頃です。

Vimperator: feedSomeKeys.js

2008-09-19 08:50:14 | オープンソース
Vimperator はLivedoor Reader や GMailを使ったときにキーバインドがぶつかって若干問題があると以前書きましたが、 feedSomeKeys.js というプラグインを使うと解決できるらしい。

feedSomeKeys.js は指定したキーイベントをスルーしてWebページ側に送ることが出来るプラグインです。autocommand という、ページのロードやタブの切り替えといったイベントをトリガーとして自動的に何かを実行するVimperatorのコマンドと組み合わせて、
Livedoor Readerや、GMailを開いたときに大事なキーイベントをWebページ側にスルーする設定を行います。

こちらのページを参考にさせていただきつつ、設定してみました。

出来ました。

Vimperatorはカスタマイズがとっても簡単だということがわかりました。すばらしい。

PM進化論

2008-09-17 06:51:15 | マネジメント全般
まだ仕事もそんなに忙しくないので、昔読んだプロジェクトマネジメント関係の本を読み返しています。今、改めて読んでみると、「ああ、そういうことだったのか」と初めて実感をもって意味がわかるようになったポイントが沢山ありました。

プロジェクトマネジメントに関するスキルは、「予習が難しい」というのが今の私の実感です。事前に本を読んで、わかった気になっても、いざ目の前で本に書かれている事態が発生したときに、体がうまく反応できないのです。
それで、結局散々な目にあって、落ち着いて本を読み返したときに、初めてそこに書いてあることが実感を伴って理解できるようになるのです。。

というわけで、本日の私の主張です。

プロジェクトマネジメントのスキルはサイヤ人のようなものだ。死の淵から蘇る度に強くなる

大事なのは、「蘇る」ということで、復活不能なまでに木っ端微塵にやられてしまっては、折角貯めた経験値を次に生かせません。特に最近は精神的にやられてしまうケースが多いようなので、注意が必要です。