騒がしい未来

サッカーやインターネット、旅行、日々のお仕事など、普段思ったことををつらつらと書いていく、高須正和のブログサイトです。 さいきんはtwitterばかり。

新しい動画検索サイトです!

サグールテレビ
http://sagool.tv/

サグールテレビは、経済産業省の2007年度情報大航海プロジェクトの採択事業の研究成果として、動画検索・レコメンド・マッピングサーチ・インターフェースなど、さまざまな技術の実証実験サイトとして開発されました。

 世界中の動画共有サイト60以上のサイトから動画を検索し、視聴することができます。動画に対し、ブログ等から動画の評判情報を検索用メタデータとして収集する独自の方法により、これまでは検索できなかった動画を検索することができます。また、検索結果は”オモロジック”により、オモロい順(主観的な興味が強く注がれている動画順)に表示されます。
動画に対して、関連する動画が2次元マップで表示されることで、直感的に動画を検索することができます。(マッピングサーチ)
 また、利用者が視聴している動画に対して、動画のオススメ(レコメンド)が表示されることで、より動画が選びやすくなります。
関連する動画が続けて表示されることで、テレビのように動画を流し見することができます。

実証実験サイトとして、サグールテレビで取得された行動・視聴データは、情報大航海プロジェクトの研究用途で使用されます。

チームラボ読書会、第2回です!今回は7冊の図書が推薦され、3冊の本をラボで購入することになりました!

 

ご冗談でしょう、ファインマンさん〈上〉 (岩波現代文庫)
ご冗談でしょう、ファインマンさん〈下〉 (岩波現代文庫)
仕事を加速する技術

今回の本7冊の紹介はこんな感じです!

———————————————

ご冗談でしょう、ファインマンさん〈上〉 (岩波現代文庫)
リチャード P. ファインマン Richard P. Feynman 大貫 昌子
岩波書店 (2000/01)
売り上げランキング: 130

 

ご冗談でしょう、ファインマンさん〈下〉 (岩波現代文庫)
リチャード P. ファインマン Richard P. Feynman 大貫 昌子
岩波書店 (2000/01)
売り上げランキング: 336

 読もうと思った人 4(ラボ読書会棚に置きます)

 物理学の天才、ファインマンさんは、世界一の天才のすべてを人をおちょくることに費やした人でした。
 この本にはそのようなオチョクリの話がいっぱい書いてある。

 ただ、その手の面白いエピソードが詰まった伝記本はいっぱいあるが、この本とほかの本を分けるポイントは、ファインマンが人をおちょくる・権威を否定することで、既存の学説の間違いを見つけ、新しい学説を立ち上げた人だったことを書いてあることにある。
 文中で、かつてずっと信じられていた学説が間違いだったことを実証する話がある。物理学はその学説から大きく外れた実験結果が出ると、結果のほうを否定していた。「それは物理学の恥の歴史である」と活写してることにある。
 権威を否定すること、アタマを使うことで、どのような価値を生み出せる人生が歩めるか、にあります。

———————————————

仕事を加速する技術
仕事を加速する技術
posted with amazlet on 08.02.26
梅津 信幸
ソフトバンククリエイティブ (2007/09/26)
売り上げランキング: 91875

 読もうと思った人 3 (ラボ読書会棚に置きます)

「あなたはコンピュータを理解していますか」、と同じ作者が書いたもので、
原理を把握し、それぞれを分析するという「あなたはコンピュータを理解していますか」と同じ手法で、仕事が分析されています。
 具体的には、情報のやり取りであるホワイトカラーの仕事を、同じく情報処理の機械であるコンピュータの処理になぞらえて要件把握(フェッチ)・手順の立案(デコード)・処理(実行)・報告(ストア)のフェーズにわけ、特に・無駄なデコードをなくすことで仕事全体の効率を上げるやり方が書かれています。
 これは、通り一遍の心構えやだれでも「わかってるけど、できない大事なこと」が書いてある、多くの仕事本とは一線を画す出来です。
 ログをとって問題点を洗い出してチューニングするなどの効率アップ方法、具体的にどんな道具を使うかなどが書いてあるのもオススメで、内容
がわかりやすいのもオススメする点ですが、「伝達可能であり、習得可能な、仕事能力の向上技術」という本はほかに読んだことがなく、オススメ
です。

———————————————

 読もうと思った人 1
 コンピュータは1930年代に根本の原理が発明されてから進化していない、情報を扱う機械です。
 その「情報」とは何なのか、コンピュータがどうやってその「情報を処理」しているのか、
「情報量が多い・少ない」、「情報が伝わる・伝わらない」ということはどういうことか、
 情報を研究する理論である計算機科学の考え、シャノンの定理やオートマトンという考え方など、そうした情報の根本が、非常にわかりやすい図で説明されていて、誰でもわかるように書かれてあります。
 ラボの言う、「情報化社会になって、アートもコンピュータも同じく情報を扱っている」という言葉の意味が、この本を読むと理解できたように思います。

 深いことを書いているにもかかわらず、説明がわかりやすくて例と図が適切なので、非常に読みやすく、いつ読んでも新しい発見があることも魅力です。

———————————————

メディチ・インパクト (Harvard business school press)
フランス・ヨハンソン 幾島 幸子
ランダムハウス講談社 (2005/11/26)
売り上げランキング: 49743

 読もうと思った人 1

中世ヨーロッパのメディチ家は多くの芸術家や学者などを集めて交流を奨励し
た。これが様々な文化の交流を呼び起こし、ルネサンスの隆盛の一因となった。

こんな歴史から、”優れたイノベーションは異文化が交わる「交差点」から生ま
れる”ということを解説した本です。単なる成功事例の説明だけではなく、連想
のバリアを壊すために意図的に交差点を作り出す「交差点ハンティング」の手法
の紹介や、失敗にくじけないための心構えなども解説されています。

「イノベーターは成功したから多くを生み出すのではなく、多くを生み出すから
成功したのだ」というのは本書の中の一文で、アイディアの量がアイディアの質
を生むことが述べられています。天才と呼ばれる人たちが生涯で最高の仕事をし
た時期は、最も多くの作品を生み出した時期であり、結果として不出来な作品を
最も多く出した時期でもあるそうです。

新しいことに挑んだ末の失敗は、一般的な慣習に従った結果の失敗よりも冷たい
目にさらされがちです。そんな社会のなかでイノベーションを目指す人にとっ
て、この本に書かれていることは大きな力になるかもしれません。

———————————————

イノベーションのジレンマ―技術革新が巨大企業を滅ぼすとき (Harvard business school press)
クレイトン・クリステンセン 玉田 俊平太 伊豆原 弓
翔泳社 (2001/07)
売り上げランキング: 649

 読もうと思った人 1

 技術には
 持続技術(もともとの技術の性能を上げるもの)と、
 破壊的技術(今あるものの性能が下がる代わりに安くとか速くとかできる)
 があるとする。

 最初にまず、持続技術として性能が高いものが出てくる。そのころの破壊的技術は、価格が安くても、顧客が求めるところにいかないので、意味がない。
 ところが、顧客が求める水準はあまりあがらない。
 そのうち、破壊的技術の水準が、顧客の水準に届く。そうなると、一気に安価なものが売れてしまう。

 こうした、持続的技術と破壊的技術の追いかけっこをいろいろ調べて分析したところが、この本の前半。

 本の後半は、持続的技術を作っていた人間も、作ろうと思えば破壊的技術をつくれたはずなのに、なぜ作らなかったか?の、研究を記してきている。

 それは、ハイエンドの製品を好む顧客の話をずっと聞いてきたマーケティングが原因であったり、ハイエンド製品のもたらす高い利益率を前提にした経営であったりする。その事例研究は非常に興味深いし、市場にあるほとんどのものに応用できて面白い。
 ここ数年のデジカメ、ゲーム機などは、ほとんど発展した持続的技術がまさに破壊的技術に取って変わられる段階にある。

———————————————

ブルー・オーシャン戦略 競争のない世界を創造する (Harvard business school press)
W・チャン・キム レネ・モボルニュ 有賀 裕子
ランダムハウス講談社 (2005/06/21)
売り上げランキング: 589

 

 読もうと思った人 1

 前職でIBMのコンサルタントから進められました。
 この「ブルー・オーシャン」ですが、これは競争のない市場を指します。
それに対して、価格競争、性能競争などの激しい市場をレッドオーシャンと表します。
どうやって、競争のないブルーオーシャン市場に行くか、という方法や事例が書いてあります。

 この本を読んで、しばらくは目の前のものが青くなったり赤くなったりするほど影響を受けました。

たとえば、美容室は一時期、「長い時間居心地よく過ごす」のがテーマの場所になり、
とはいえ床屋は「オッサンがやっていて、流行の髪型にしてくれない」場所でした。
QBハウスは、髪を切ることに専念すれば、10分ですむことを発見した。
ここで、10分ですむことで、
・予約が要らない
・マンガ本などがいらない
 という価値が生まれ、シャンプーを節約することで
・狭い場所で、水回りがなくても出せる
 という価値を生み出した。

 これによって、ほかの床屋が絶対出店できない場所で出店出来る、ブルーオーシャンに出て行くことができるようになった。
「ライバルよりも良いもの」という発想だと、レッドオーシャンにハマってしまう。

 自分が考えるに、Wiiもゲームの価値を考え直して、新しい価値を生み出すことで、ブルーオーシャンにたどり着いた事例だと思う。

 ラボはいかにブルー・オーシャンを生み出すかに価値がある会社なので、この本を読んで、ブルーオーシャンをいかに探すかを考えるのはいいん
じゃないか。

質問:
 その手のビジネス本は、毎回毎回、たとえば先行者利益とか規模の拡大とか、もともとの商売の優位性を言葉を変えて解説しているにすぎないの
ではないか?

 議論:・商売の本質が変わらないから、内容が似通っていてその時々の流行の考え方で
     分析した本がでることはあると思う。
    ・絶対儲かるような意思決定・フローがあるわけではないから、
     言葉や説明の仕方が違ういろいろな本を読むことで、成功事例失敗事例を
     深く考えることは必要だと思う

     などなど

———————————————

入門 GNU Emacs 第3版
入門 GNU Emacs 第3版
posted with amazlet on 08.02.26
Debra Cameron James Elliott Marc Loy Eric Raymond Bill Rosenblatt 半田 剣一 宮下 尚 新井 貴之 鈴木 和也
オライリー・ジャパン (2007/03/12)
売り上げランキング: 17547

読もうと思った人 0

Emacsはエディタではありません!OSです!
Emacsはどこのプラットフォームで走ろうが、その上にEmacsという環境を作っているものです。
たまたま、エディタの機能が多く含まれるからエディタと言われているだけです!
 EmacsはLispで構築され、Emacsで動くアプリはすべてLispによって構築されています。
 当時マルチウィンドウやカット&ペーストを実現するのはEmacsしかなかったため、今でも熱烈なユーザーがいます。
この本はEmacs愛好家・Emacsに興味を持った人にはお勧めです。

———————————————

計算機プログラムの構造と解釈
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン Gerald Jay Sussman Julie Sussman Harold Abelson 和田 英一
ピアソンエデュケーション (2000/02)
売り上げランキング: 28119

 現在開催中のSICP勉強会のため、会社で買うので、投票はしませんでした

これはアメリカの Structure and Interpretation of Computer Programs(SICP)の邦訳で、MIT の新一年生用の、計算機科学の教科書です。「計算機のすべてが書かれている」との呼び声のあるくらい、その網羅性と水準は高く、計算機科学の世界最高の教科書と呼ばれることもあります。コードはすべてLISP の方言 Scheme で書かれ、コンパイラ、OS、CPUの設計までを含んでいます。

しかし、それだけにその難易度は高く、当のMITでも多くの学生にはなかなか歯が立たなかったそうです。「喉の渇いた人に、消火栓で水を飲ませるようなもの」と表現する人もいるくらいでした。そのためもあって MIT では現在、この本は一年生の教科書としては使われておらず、授業は Python で行われているそうです。

今、大学教育は大きく変貌しつつあります。かつては、専門的な研究をするために必要な知識を網羅することを主目標としており、ついていけないのは学生の側に問題があるという考え方でした。そのため、どんな学生も、難易度の高い網羅性の高い本に取り組まざるを得ませんでした。

この SICP もまさにそういう思想の本で、序文のアラン・パーリスの言葉が如実にそれを表しています。「『この本は MIT にいるような人間にだけしか理解できない』などという幻想に捉われてはいけない。LISP プログラミングに関するまともな本なら、誰が生徒だろうとどこで使われようと、このような内容でなければならないのだ」

それに対して今は、学生がどれだけ理解できるかを重視するようになり、教科書も読みやすく理解しやすいものに変わりつつあります。すべての学生が高木貞治の「解析概論」で数学に入門するような時代は過ぎ去ったのです。

しかしそれとは別に、職業プログラマの間に、きちんとした計算機科学を身につけようという動きが広がっています。IT産業には次々新しいものが生まれますが、実は計算機科学の世界では古くから知られていたものを再発見している場合が多いのです。そのため、計算機科学の基礎を身につけて、車輪の再発明の繰り返しから脱したい、経験則で進めてきた技術開発に、理論的裏づけがほ
しいという機運が高まりつつあるのです。

そんな中でSICPは、この一冊で計算機科学の大半を網羅できることから、設定しやすい目標として、プログラマから熱い視線を浴びることになりました。

とは言え、MITの学生でも家庭教師なしでは脱落するような内容ですから、これを仕事の間に読みこなすことは容易ではありませんし、すべての人に薦められる本ではありません。

しかし、計算機について本当にきちんと理解したい人には、これはまさに最高の本でしょう。意欲と決意を持って、時間をかけてでも何とか読みこなしたいものです。

ちなみに、かのジョエル・スポルスキは、ペンシルベニア大学でこの本を元にした授業を受けましたが、見事に脱落し、「こんなのフェアじゃないと、長い泣き言のメールを私は教授に書き送った」そうです。

その声が聞き入れられたのか、今はその授業はJavaで行われているそうですが、ジョエルはそのことを後悔しているそうです。
http://local.joelonsoftware.com/mediawiki/index.php/Java%E3%82%B9%E3%82%AF%E3%83%BC%E3%83%AB%E3%81%AE%E5%8D%B1%E9%99%BA

———————————————

その他議題

■参加者が減ったのはなんでだろう?また増やすにはどうすればいいだろう?
 ・日付が変わったのはよくない
 ・8時スタートだと、終わると10時になってしまう。遅いからでは
 もう少し参加者が増えるように、メーリングリストなどで意見を出しましょう

仕事を加速する技術
仕事を加速する技術
posted with amazlet on 08.02.18
梅津 信幸
ソフトバンククリエイティブ (2007/09/26)
売り上げランキング: 74501

梅津氏の本を読むのは「マイクロソフト・シンドローム」「あなたはコンピュータを理解していますか?」(これは名著!廉価版の新書も出た!)「伝わる!説明術」に加えて4冊目。

amazonの書評でも書かれているとおり、仕事とはどういう処理なのか、処理全体を見通して早くするのはどういう行動をとればいいのかが、コンピュータそのものに精通した理系の人だけに、非常にわかりやすく論理的に書かれている。とても頭の良い人が、心を砕いてわかりやすく書いた本、という印象。
こういう本はたいてい、価格の何倍も価値がある。

自分より仕事のできる人を見ていると、その場その場で最適なことをすばやく選んでいるように見えるし、何をするか悩んでいる時間よりも、最適なものになるべく長く時間を使っているように見える。そのための、一度考え付いたもののフォーマット化・共有にも熱心だ。
とはいえ、自分がそうしようと思ってもあまりうまくいかず、いろいろ忙しく働いたように思うが、結果的にたいしたアウトプットを出していない時間が積み重なっていく。

この本は「どうやって仕事を加速するか」について、時間の使い方のチューニング、改善方法をわかりやすくまとめた本だ。
内容を本に書かれている以上に要約して、わかりやすく説明するのは難しい。
「頭脳労働をどういうものか分析して、改善するポイントを見つける技術、改善する技術について汎用化し、適用の方法例とわかりやすいように目安の数値をまとめた本」とでもいうべきだろうか。
本書の内容を実行すれば、結果として、「わからないものの見通しが立てられるように」なり、その分ムダな悩みが減って、仕事内容そのものに集中できることで、ストレスも減りそうだ。
実現できそうなところからはじめてみようと思う。

内容にはコンピュータに関するたとえが多い。そもそも本の内容が「”フェッチしてデコードして実行してストアする”という仕事のプロセスを以下に改善するか」というテーマで書かれた本なので。その意味でできればコンピュータに興味がある人が読んだほうが効果は高いと思う。

レッズの中でも自分が愛してやまない山田暢久が、なんとブログをはじめていた。

http://www.soccer-m.ne.jp/blog/nobu/

Q:やまさんはファールを貰ったあとによく倒れていますが、ぶっちゃけた話し、実は疲れたから倒れてみましたーとかあるんですか?

A:そういうのは、あるよ。

こんなの書けるのは暢久だけだ!最高だ!

めちゃめちゃすごい。

KeyHoleTV-wikipedia

KeyHoleTV(キーホールテレビ)は、総務省の「次世代P2P型コンテンツ流通高度化技術に関する研究開発」によって開発されたP2Pテレビを受信する為のアプリケーションである。通称「CRLサイバーセルフシステム」といい、送信アプリケーションKeyHoleVideo(キーホールビデオ)を使用すれば個人で配信することもできる。

http://www.v2p.jp/video/

とあるように、テレビ放送がどこでも、わずか200kぐらいの回線で、充分にテレビ放送が見れてしまい、放送もできてしまう。しかもビットレートを下げて権利侵害とならないような(フル品質でのデジタルコピーに当たらないような)クオリティを保つことで著作権問題もクリア。

P2P、テレビ放送が対象、総務省からの肝煎りと、なんというかすごく「未来」を感じさせるソフトです。

地方のローカルテレビとか見てるとついつい時間を忘れてしまいます。

いよいよ最終回。今日のテーマはデバッグです!

 

■Rubyにおけるデバッグの特色…
 Rubyは型のない言語で、スクリプト言語なのでコンパイルもない。
なので、コンパイル時の型チェックによってバグが見つかることも無い。

 ただし、Rubyのオブジェクトには型があり、これが実行時にバグを発見する大きな手がかりになっている。Rubyには他言語のような自動型変換があまり無く、型が異なるオブジェクト同士の計算はエラーになる場合が多い。

 型がない言語の割に、バグが多いわけでもないのは、前回発表されたテストや、今回発表されるような豊富なデバッグツールで、バグを少なくする工夫がいくつもあるから。

とくに、書いてる最中にprintf やpなどを送り込めば、その場で出力ができるのはとても手軽。
型によってバグを減らすのではなく、バグの修正をしやすくすることにより品質を上げようというものがRubyの文化です。

——————-
トリビア..printf
これは Rubyの関数名だが、C の同名、ほぼ同機能の関数がオリジナル。Cのデバッグで本体コードにprintf を埋め込むことが多かったことに由来。
Rubyでは printf ではなく、p や puts を使うことが多い。
——————-

例:
>> 1 + “1″
TypeError: String can’t be coerced into Fixnum
    from (irb):1:in `+’
    from (irb):1
>> 1 + “1″.to_i
=> 2
>> 1.to_s + “1″
=> “11″

■デバッグ実演
Rubyに標準で付属するデバッガを使う場合など
最初にプログラムのブレークポイントを設定して、プログラムを途中まで走らせるようにし、ステップ実行ができるようにします。
しかし、普段はデバッガを使う必要はありません。
たいがいはprint -f で足ります。
というか「print -fで実行できないようなコードは書くな!」
(複雑で終えないようなものを作るのはRubyらしくない)

——————-
トリビア..Rubyの開発環境

そもそも統合開発環境があまりないこともあって、正直、デバッグ自体はJavaとEclipseのほうがやりやすい。統合開発環境としてはNetBeansが最近有名だが、さほど普及していない。
またはemacsやvi上で開発支援ツールを使うことになる。

自動でリファクタしてくれるツールもあるが、値や型名が変わって、setされることが多いRubyでは、どういう修正が加えられるのかわからず、怖くて使えない。EmacsやViは、今開いているウィンドウの中(Emacsは開いている複数のウィンドウ)だけで補完をしようという考え方
——————-

ユニットテストを使うようになると、そもそもデバッガの出番は減ってくる。プログラムをもっと細かく して、常々ユニットテストするようになると、デバッガを使わなくてもバグを追いかけられるようになる。

テストをテストするコードはないので、重複しようがなんだろうが、テストコードはあとで読めてバグが入り込まないように、ダラダラと長く書いたほうがよい。

参考URL
JUnit 実践講座 -
プログラミングスタイルガイド
http://www.morijp.com/masarl/homepage3.nifty.com/masarl/article/junit/programming-style-guide.html
(JavaのJUnitだが、基本は同じ)

RSpecという、仕様書を書くかのようにテストを実行するツールもあります。
http://jp.rubyist.net/magazine/?0021-Rspec

みんなでテストコードを書きましょう!

 

■デバッグのやりかたについて

Ruby Debugで検索するといくつかサイトが出てきます。

特にこのサイト
Ruby で debug する7つの方法 - 川o・-・)<2nd life
http://d.hatena.ne.jp/secondlife/20061010/1160453355
のデバッグのやりかたは参考になります。

ppというコマンドがあり、デバッグ時の出力を見やすくしてくれます。
べったり表示するのではなく、見やすくインデントして表示してくれます。

実行中に表示する値についてもp callerで実行すると、それぞれの値について、どういうメソッドを経由して到着したかがわかり、追いやすくなっています。

set trace_funcで実行すれば、プログラム内のすべての関数をtraceつきで実行してくれるので、非常に詳細に追いかけることができます。

railsではloggerの実行もあるていど準備されていて、使いやすくなっています。

また、profilerを実行すると、どのメソッドが何回呼ばれたか、それぞれの実行時間などがわかるので、高速化のチューニングに役立ちます。

 

■先週紹介できなかった、テストに使うメソッドassert_selectの補足

assert_select
テストの成功条件をCSSのセレクタの構文を使って簡単に記述することができるので、これまで難しかったviewのテストが簡単にできる。

Railsでのプログラミングは、基本的に一人ですべてのコード(本体もテストも)書くことが前提となっている。

——————-

以下、テストの方法についての議論が続きました。

 テストドリブン開発方法の功罪とか、
 仕様理解とテストの役割とか、
 グループで開発する際のテストの役割とか、
 テストコードは誰が書くべきか
 (プロジェクトマネージャーか、プログラム書いた本人か、
  テスターかなど)

■JRuby
オマケとして、普段Javaを使っている人のために、JRubyを紹介しました。
JRubyは、JVM上で動作しますが、Rubyと同じインタプリタでコンパイル不要、
文法もRubyそのものです。そしてJavaのライブラリをそのまま使うことができ
ます。サンプルとして、Javaで書かれたオープンソース検索エンジン Lucene
のインデックスを生成するスクリプトを紹介しました。

Read the rest of this entry »