The Art of Computer Programmingを読み始めた。
Amazon.co.jp: The Art of Computer Programming Volume1 Fundamental Algorithms Third Edition 日本語版 (ASCII Addison Wesley Programming Series)
きっかけは、数学ガール(結城 浩著)を読んで。参考図書になっていたので、気になって読みたくなった。と思いふと見上げると、研究室の目の前の本棚にちょうど置かれていた。偶然だ。
数学ガールは小説的でありながら、ひさびさに数学の雰囲気を味わえてよかった。高校時代に数学の歴史を一時期調べていたことがあって、そのときにバーゼル問題に出会った。あのときの感覚が蘇ってきた。πの不思議さを感じ、オイラーの世界への入り口を垣間見たのもそのときだった。感傷にひたってしまった。
僕はずっと小学校から高校までサッカー部に所属していた。高校に入ってからは、受験勉強をしなければならないという環境にありつつも、数学は楽しんでとりくんでいた。高校の数学の先生は本当に数学が好きな人で、よく本を紹介してもらったり、受験とはまったく関係のない数学の話題で盛り上がったりした。ちょうどそのころの感覚が、この数学ガールのなかの世界観に似ている。
アプリケーションを実装するということをはじめてしまうと、どうもプログラミングの面白さから離れてしまうところがある。(けれどまた、別の面白さもある。)プログラミングの面白さが、数学の素敵な部分につながるという瞬間が少なくなっていく。確かにコンピュータが動いているというだけで興味深いし、その挙動自体も僕の興味の対象の1つだ。けれど、学生でいる間に、もう少し計算機科学を興味の赴くままに味わいたいと思う。
2011/06/29
2011/06/21
もともと人間なんてソーシャルなんだから
最近いろいろなWebサービスのローンチの相談をうけることが増えた。今はアイデアをすぐに形にできる時代だし、面白いと感じるものはできるだけ早く世の中に出した方がいいと僕は思っている。
しかし、Webサービスを創るにあたって、発案者が自分でエンジニアリングをできないため、エンジニアやデザイナーを集めたいという場合がよくある。僕は依頼を受ける側の人間だ。そして「このサービスは素晴らしいから是非作ってほしい」と言われることがある。
そのとき僕が考えるのは、サービスの自体の魅力とメンバーの魅力だ。だから、初めてサービスを説明してもらうときには本気で話を聞く。ここは極めてシビアだ。時間は限られているし、何より魅力的なものでなければ作る気が起きないからだ。マーケティング的な観点で破綻していないことはもちろんのこと、そのプロダクトに込める熱意と、どういう価値をユーザに提供したいかということについては細かく聞いている。ときに厳しいと思われるかもしれないが、それくらい答えられない人と一緒に働きたくはないのだ。
最近よくあるのが、「このサービスはユーザ同士をつなげて、面白いんです!」との一点張りで主張されることだ。重要なのはユーザ同士を繋げることだけではない。しかし、ユーザを繋げることだけが目的になりがちだ。ソーシャルなサービスが増えるに従って、ユーザ同士を繋げるというアイデアが多く見受けられるようになった。でももっと掘り下げてほしい。なぜ人は交流したいと思うのか。そのサービス上で繋がることで今までにない価値が生まれるのか。代替えできるサービスがあるとして、優位性は何か。そしてそこで人が繋がり、十分なユーザが得られたらどのようにマネタイズしていくのか。そういう視点が足りないと感じてしまうと、ユーザ体験に落とし込むには先が長いと思ってしまう。
そんなこともあって、人間なんて放っておいても仲良くなる人はなるし、話もするんだから、もっとWebでやるから面白いことを純粋に考えてみたらどうか、と感じることが増えた。僕は人の生々しさに惹かれる。きっとそういうコンテンツのあるところに、人は集まる。その人が今まで考えつかなかったことをその場でやってもらうという経験作りが、どんなサービスであれ大事だ。
しかし、Webサービスを創るにあたって、発案者が自分でエンジニアリングをできないため、エンジニアやデザイナーを集めたいという場合がよくある。僕は依頼を受ける側の人間だ。そして「このサービスは素晴らしいから是非作ってほしい」と言われることがある。
そのとき僕が考えるのは、サービスの自体の魅力とメンバーの魅力だ。だから、初めてサービスを説明してもらうときには本気で話を聞く。ここは極めてシビアだ。時間は限られているし、何より魅力的なものでなければ作る気が起きないからだ。マーケティング的な観点で破綻していないことはもちろんのこと、そのプロダクトに込める熱意と、どういう価値をユーザに提供したいかということについては細かく聞いている。ときに厳しいと思われるかもしれないが、それくらい答えられない人と一緒に働きたくはないのだ。
最近よくあるのが、「このサービスはユーザ同士をつなげて、面白いんです!」との一点張りで主張されることだ。重要なのはユーザ同士を繋げることだけではない。しかし、ユーザを繋げることだけが目的になりがちだ。ソーシャルなサービスが増えるに従って、ユーザ同士を繋げるというアイデアが多く見受けられるようになった。でももっと掘り下げてほしい。なぜ人は交流したいと思うのか。そのサービス上で繋がることで今までにない価値が生まれるのか。代替えできるサービスがあるとして、優位性は何か。そしてそこで人が繋がり、十分なユーザが得られたらどのようにマネタイズしていくのか。そういう視点が足りないと感じてしまうと、ユーザ体験に落とし込むには先が長いと思ってしまう。
そんなこともあって、人間なんて放っておいても仲良くなる人はなるし、話もするんだから、もっとWebでやるから面白いことを純粋に考えてみたらどうか、と感じることが増えた。僕は人の生々しさに惹かれる。きっとそういうコンテンツのあるところに、人は集まる。その人が今まで考えつかなかったことをその場でやってもらうという経験作りが、どんなサービスであれ大事だ。
2011/06/20
インスピレーションの源泉
上原ひろみさんのアルバムを借りて、いま聴いている。
ものすごいエネルギーのこもった演奏。こういう音楽を聴いてまた、人から人へインスピレーションが伝播していくのだと強く感じる。
私の音楽は毎日成長しています。ミュージシャンだけでなく、バスケットのマイケル・ジョーダンやサッカーのジネディーヌ・ジダンのようなヒーローとか、私は人生においてたくさんの人から刺激を受けています。最終的には、私のゴールは自分の音楽を通じて聴衆にエネルギーを与えることなのです。私にとってはこれが一番すてきなことなのです。マイケル・ジョーダンが宙に舞っているとき、誰もが彼からものすごいエネルギーを与えられています。私の音楽は人々のエネルギーのケミストリーについてのものなのです。その人々とはみんなのことです。私のオーディエンス、家族、ミュージシャンたち。それに私は木々や海、太陽からもたくさんのインスピレーションを受けます。深遠なエネルギーの在るもの全てに私は惹かれるのです。この世の中で一番奥が深くて素晴らしいのは物事と人々との間でエネルギーが行き来することであると、私は思っています。
〜 上原ひろみ - another mind ライナーノーツより。
ものすごいエネルギーのこもった演奏。こういう音楽を聴いてまた、人から人へインスピレーションが伝播していくのだと強く感じる。
2011/06/13
演奏≒プログラミング
最近色々な人と会うことが増えた。特にこの3ヶ月はすごい勢いで色んな人に会っている。なぜこうして人と会うことが増えたのだろうかと、ふと考えた。
僕がものを作ることが増えてから、機会が増えた。今までは閉じたところでものをつくってきた。自分の技術が本当に通じるかわからなかったからだ。でも、必要に迫られて表に出すようになった。不足はまだまだある。けれど、今までより確実に面白くなった。人との出会いが増えたからだ。人と会うのは無条件に嬉しいことだ。
とはいえ、作ることのモチベーションを保ち続けるのは、大変なことだ。作るものには、
がある。前者は無条件に楽しい。砂場で遊ぶのと一緒だ。無邪気に色々なことを試す。これは新しい技術を試すときに多い。作ることは楽しい。小学校の図工の授業何かで、どういう仕組みなのかよくわからないもので戯れる、そのときの感覚に近い。わからないなりに試して、友達とあれこれ話しながら何かを作ってみる。いつになろうとそういう感覚というのは楽しいものだ。
しかし、気乗りがしないこともある。後者の場合だ。作っているものは時として一緒なのに、なぜか前者のような無邪気な楽しさはそのうちどこかへ消えて行ってしまって、気がついたら締切りに追われている。人から依頼されて作るのが100%ダメかというと、そういうことでは全くない。一緒に相談していていろいろな気づきがあることの方が多い。自分一人では考えてなかったであろう領域で物作りをすることができるのは、エンジニア冥利につきる。特にWebのエンジニアリングやスマートフォン周りなんかは身近な人にアプローチしやすいため、人の数だけアイデアがある。それを形にする時はやはり面白いものだ。それでも中には気が乗らないものもある。プロではないからなのだろうか。
今ギターを弾いていて、プロの音楽家の方々と話す機会もここ2、3年で増えて、改めて仕事に対する考え方が変わってきた。音楽家(特に演奏家)の方々も、仕事で弾いているのだ。プロのオケも、ソロ奏者も生活のために弾かなければならない。でもその演奏を聴いて僕達は感動したり、新しい発見をしたりする。
良い演奏をすることと良いプログラムを書くことは、似ている。でも、良い音楽をすることと良いプログラムを書くことは似ていない。良い音楽をすることと、良いプロダクトを出すことは似ている。たどり着くのは、「経験」だ。
とにかく今も先も、何か経験をつくれるところに身を置きたい。
僕がものを作ることが増えてから、機会が増えた。今までは閉じたところでものをつくってきた。自分の技術が本当に通じるかわからなかったからだ。でも、必要に迫られて表に出すようになった。不足はまだまだある。けれど、今までより確実に面白くなった。人との出会いが増えたからだ。人と会うのは無条件に嬉しいことだ。
とはいえ、作ることのモチベーションを保ち続けるのは、大変なことだ。作るものには、
- 自由に作ってよいもの。いくらでも好き勝手に遊んでいいもの。
- 依頼されるもの。創意工夫の幅が狭いもの。
がある。前者は無条件に楽しい。砂場で遊ぶのと一緒だ。無邪気に色々なことを試す。これは新しい技術を試すときに多い。作ることは楽しい。小学校の図工の授業何かで、どういう仕組みなのかよくわからないもので戯れる、そのときの感覚に近い。わからないなりに試して、友達とあれこれ話しながら何かを作ってみる。いつになろうとそういう感覚というのは楽しいものだ。
しかし、気乗りがしないこともある。後者の場合だ。作っているものは時として一緒なのに、なぜか前者のような無邪気な楽しさはそのうちどこかへ消えて行ってしまって、気がついたら締切りに追われている。人から依頼されて作るのが100%ダメかというと、そういうことでは全くない。一緒に相談していていろいろな気づきがあることの方が多い。自分一人では考えてなかったであろう領域で物作りをすることができるのは、エンジニア冥利につきる。特にWebのエンジニアリングやスマートフォン周りなんかは身近な人にアプローチしやすいため、人の数だけアイデアがある。それを形にする時はやはり面白いものだ。それでも中には気が乗らないものもある。プロではないからなのだろうか。
今ギターを弾いていて、プロの音楽家の方々と話す機会もここ2、3年で増えて、改めて仕事に対する考え方が変わってきた。音楽家(特に演奏家)の方々も、仕事で弾いているのだ。プロのオケも、ソロ奏者も生活のために弾かなければならない。でもその演奏を聴いて僕達は感動したり、新しい発見をしたりする。
良い演奏をすることと良いプログラムを書くことは、似ている。でも、良い音楽をすることと良いプログラムを書くことは似ていない。良い音楽をすることと、良いプロダクトを出すことは似ている。たどり着くのは、「経験」だ。
とにかく今も先も、何か経験をつくれるところに身を置きたい。
2011/06/05
学術
昨日まで盛岡で人工知能学会だった。普段関わらないような分野の研究発表を聴けるのは学会の魅力だ。自然言語処理、ロボット、中には市民活動を対象とした発表もあった。聴講者としても楽しい3日間だった。
僕はLinked Data関連セッションで発表させていただいた。Linked Dataとは、様々な事実の集合をデータとして公開し、相互に利用し合う枠組みのことを言う。欧米やアメリカでは政府主導でデータの開示が進んでおり、進展が著しい。Linked Open Dataといわれているところには、多くのRDFデータが集積し、新しいサービスの開発が進められようとしている。セマンティクスの世界が事実の集合の世界に根ざし、良い効果を生み出す布石になるのではないかと個人的には感じている。
この分野において最も難しいところは権利関係になのではないかと思う。研究用途だとある程度寛容ではあるものの、Web上のデータを利用するとなると、サービスプロバイダーの保有するデータの著作権といったものを無視することはできない。これらに対する解決策は大きく分けて2つある。
欧米各国では1の方法で普及が進んでいった。しかし同様のことを日本で行おうとすると、まだまだ現実には遠いのではないかという印象をうける。だとすると従来のWebがやってきたように、データを自製しつつ、サービスを立ち上げていくということの方が現実味がある。結局のところ、データが役に立つかどうかはサービス次第なのだ。それらのサービスに対し、役に立つと感じる人が増えたとき、初めてデータの価値が広く認識される。もちろん時間はかかるのだが、学術的な理論から飛び出して役に立つものをつくるというフェーズは、どの分野においても生じるものなのではないかと思う。
Webサービスを作りつつ、Webについて研究するということは、ある側面から見れば矛盾もあるが、お互いの分野から譲歩することは今後さらに必要になった行くと感じている。実際のサービスで利益をあげることを頑に否定するのでもなく、実現まで遠い技術や概念のことを遠くに置きすぎるのでもない。先を見据えつつ、一般の人に対して価値を提供するものを作ること。これが将来的に自分の役に立っていく視点なのだろうと感じた学会だった。
僕はLinked Data関連セッションで発表させていただいた。Linked Dataとは、様々な事実の集合をデータとして公開し、相互に利用し合う枠組みのことを言う。欧米やアメリカでは政府主導でデータの開示が進んでおり、進展が著しい。Linked Open Dataといわれているところには、多くのRDFデータが集積し、新しいサービスの開発が進められようとしている。セマンティクスの世界が事実の集合の世界に根ざし、良い効果を生み出す布石になるのではないかと個人的には感じている。
この分野において最も難しいところは権利関係になのではないかと思う。研究用途だとある程度寛容ではあるものの、Web上のデータを利用するとなると、サービスプロバイダーの保有するデータの著作権といったものを無視することはできない。これらに対する解決策は大きく分けて2つある。
- トップダウン的に押し進め、役に立つサービスの立ち上がりを待つ
- ボトムアップ的に役に立つものを先に作り、世に示す
欧米各国では1の方法で普及が進んでいった。しかし同様のことを日本で行おうとすると、まだまだ現実には遠いのではないかという印象をうける。だとすると従来のWebがやってきたように、データを自製しつつ、サービスを立ち上げていくということの方が現実味がある。結局のところ、データが役に立つかどうかはサービス次第なのだ。それらのサービスに対し、役に立つと感じる人が増えたとき、初めてデータの価値が広く認識される。もちろん時間はかかるのだが、学術的な理論から飛び出して役に立つものをつくるというフェーズは、どの分野においても生じるものなのではないかと思う。
Webサービスを作りつつ、Webについて研究するということは、ある側面から見れば矛盾もあるが、お互いの分野から譲歩することは今後さらに必要になった行くと感じている。実際のサービスで利益をあげることを頑に否定するのでもなく、実現まで遠い技術や概念のことを遠くに置きすぎるのでもない。先を見据えつつ、一般の人に対して価値を提供するものを作ること。これが将来的に自分の役に立っていく視点なのだろうと感じた学会だった。