月別アーカイブ: 2006年5月

文章内の単語数を調べる

結城さんからトラックバックを頂いた。Haskellもかなりシンプルに書けるんですね。いつか勉強するときがくるかもしれないです。

さて、しばらくは標準出力から取得した文字列で遊んでみることとする。

countwords.py

def countwords(s):
count = 0
space = " "
index = -1
for i in range(len(s)):
if i > index:
if s[i] != space:
for j in range(i,len(s)):
if (s[j] == space) or (j == len(s) - 1):
count += 1
index = j
break
return count
while(1):
s = raw_input()
if s == '':
break
c = countwords(s)
if c > 1:
print 'The string has %d words' % (c)
else:
print 'The string has just %d word' % (c)

実行結果

C:\Python24>python.exe countwords.py
This is a pen
The string has 4 words
My Name is John
The string has 4 words
It's nice to meet   you!
The string has 5 words

空白が多かったときなどの処理に気をつけなければならなかったので、少し苦戦。

しかし遊びのプログラムは本当に楽しい。

The World is Flatの日本語版が発売

The World Is Flat: A Brief History of the Twenty-first Century

The World Is Flat: A Brief History of the Twenty-first Century

前々から読みたい読みたいと思っていたトーマス・フリードマンの「The World is Flat」だが、モタモタしている内に日本語版(フラット化する世界(上))が出てしまった。買うときどっち買おうか迷ってしまう。内容からして日本語で読んだ方が良さそうな気もするが。

レクサスとオリーブの木―グローバリゼーションの正体〈上〉もまだ読んでないんだけどね。

標準入力から文字列を受け取る

じゃあ次は標準入力から文字列を受け取るプログラム。受け取った後表示するだけでは芸がないので、文字列の長さもついでに返すようにしてみる。空白を受け取った場合は終了と判断する。

stdinput.py

while(1):
s = raw_input()
if s == '':
break
print 'What you have just typed is \'%s\'' % (s)
print 'The length of the string is %d' % (len(s))

実行結果。

C:\Python24>python.exe stdinput.py
hatena
What you have just typed is 'hatena'
The length of the string is 6
What is your name?
What you have just typed is 'What is your name?'
The length of the string is 18

これは色々拡張して遊べそうだ。

結城浩のHaskell日記

結城さんが今度はHaskell日記を始めてる。こうやって勉強のプロセスを公開して頂けるのはありがたい。こっちも色々と勉強になる。そして結城さんの、

学ぶ→いまの知識で出来そうなことを考える→やってみる

というプロセスには非常に感慨感銘を受けた。やっぱ小さいところから色々やってみるのが良いですよね。

てな訳で早速、本ブログでも勉強中のPythonで出来ることやっていこうと思う。ソースも恥ずかしがらずUpするのが大切だがや、きっと。

しかし執筆で多忙でしょうに、流石です。今度暗号技術入門-秘密の国のアリス買います。

岡嶋裕史「数式を使わないデータマイニング入門」

数式を使わないデータマイニング入門 隠れた法則を発見する (光文社新書)

数式を使わないデータマイニング入門 隠れた法則を発見する (光文社新書)

「暗証番号はなぜ4桁なのか?」「郵便と糸電話でわかるインターネットの仕組み」に続く、岡嶋先生の第三弾はどうやらデータマイニングがトピック。路線は相変わらずで、データマイニングって何だっけ?という人でもすんなりと世界に入っていける入門書の入門書。このお方、こういう入門書の入門書を書かせたらかなりの腕前かも。

本書は非常に単純で身近な例を用いながら、データマイニングのさわり(回帰分析、連関規則、ニューラルネット)の考え方を教えてくれる本である。タイトルにあるように一切数式は出てこないため、「数式出てくると読む気なくす」という人でも大丈夫。逆に言うと「数式出てこないと物足りない」という人は読むのはちょっと辛いかもしれません。

本書では著者がWEB2.0やamazonのサービスにまで言及する部分があり、今までの二作とそこは随分色の違う記述だった。というかそもそもインターネットサービスが爆発的に普及する中で、再びデータマイニングが利用され始めているからこそ、著者は本書を書いたんでしょうね。

それにしても岡嶋先生、今度は先生の数式ありの本も読んでみたいのですが、出版のご予定はございますでしょうか?即買いすると約束します。

そういえばその昔下記の書籍も読んだ。これももう持ってないんみたいなんだけど、とっておけば良かったかな。

ウォルマートに学ぶデータ・ウェアハウジング―流通業界“巨人”の躍進を支える情報基盤の全貌

ウォルマートに学ぶデータ・ウェアハウジング―流通業界“巨人”の躍進を支える情報基盤の全貌

  • 作者: ポールウェスターマン,日本NCR,Paul Westerman,須藤晶子,平田真理
  • 出版社/メーカー: 翔泳社
  • 発売日: 2003/02
  • メディア: 単行本
  • クリック: 15回
  • この商品を含むブログ (6件) を見る

ユークリッド互除法

宣言どおり始めてみよう。とりあえず基本からやるってことで、ユークリッド互除法を書いてみる。うろ覚えで書いてみると、こんな感じ?

def euclid(x,y):
if x == y:
return x
else:
if x > y:
return euclid(x - y,y)
else:
return euclid(y,x)

結果は合っているようだが、見た目がイマイチ?Wikipedia見てみたら、そのまんまPythonの例が出てた。

def gcd(m,n):
while n != 0:
t = m%n
m = n
n = t
return abs(m)

美しいです。

dysonの掃除機に見るヒット商品論

先日dysonの掃除機を買ってみた。噂に聞いたとおり素晴らしい吸引力だし、溜まったゴミを捨てるのも簡単だし、後ろから出てくる空気がクリーンだというのもどうやら本当のようだ。うん、ちょっと高かったけど買ってよかったと思わせる商品である。

さて、世の中のヒット商品には以下の二種類があるように思う(あるいは両方という場合もあるだろうが、それは前者であるとここでは考える)。

  • モノが良いからヒットした
  • 売り方が上手いからヒットした

dysonの掃除機は明らかに前者に属するものだと思う。特に日本では無名だった訳だし、ブランド名も販売力も無しにあれだけ市場に食い込んだんだから、相当にモノの良さが認められていると言える。
他にもモノの良さで売れている商品はいくつかある。良いモノは徐々に売れる、そして長く売れる傾向にあるから、販売曲線を見れば結構判断できそうだけど、最近ではiPodの良さがついに認められて大ヒットしたのが印象的だったし嬉しかったな。

一方、世の中にはいわゆる宣伝(マーケティングとは言わない)で作られてしまうヒット商品が多数存在する。典型的なのは音楽業界や出版業界、映画業界、ゲーム業界。「売ったから売れた」というモノばかりで、いささか閉口してしまう。モノは良いから売れるべきであり、宣伝とはそのモノの良さを市場に伝える為に存在するべきなんだろうけど、資本主義の宿命上、金のある一部の企業が大したことないものを大げさに宣伝したり、どこかのブレイクスルーをさも自分の成果のように売り出しているのが現状だ。ビジネスマンとしては勿論こういったヒット商品を作り出すことも大切なんだろうけど、エンジニアが「宣伝で持ち上げてくれ」と考え出したら終わりだ。エンジニアが持つべきマーケティング心というのは「この製品のここが革新的なんだ。これによって消費者にこんなメリットがあるんだ。これを伝えてくれれば絶対に売れるんだ」というようなものでなければならない。そして広告屋さんはそれを分かり易く消費者に伝えること。それが一番大事。

Paul Grahamのスピーチ「Great Hackers」の一部分を再び掲載しておきます。訳はshiroさんです。

http://www.shiro.dreamhost.com/scheme/trans/gh-j.html

けれども、他の条件が全て同じなら、偉大なハッカーを引き付ける会社には巨大なアドバンテージがある。これに同意しない人々もいるだろう。私達が1990年代にベンチャーファームから資金集めをしていた時に、いくつかのファームはこう言ったものだ。ソフトウェア会社は凄いソフトを書くことで勝つんじゃない、ブランドと独占チャネルと、うまい取り引きで勝つんだ、とね。

彼らは本当にそれを信じているようだった。その理由を私はわかると思う。ベンチャーキャピタルの多くが、少なくとも無意識のうちに求めているのは、次のマイクロソフトなのだろう。マイクロソフトがモデルなら、もちろんすごいソフトを書いて勝とうなんて考えている会社を探しちゃだめだ。でも、次のマイクロソフトを探すベンチャーキャピタルは間違っているんだ。あるベンチャーが次のマイクロソフトになるためには、ちょうどいい時期に沈んで、次のIBMになってくれる会社が不可欠だからだ。

マイクロソフトの文化は、その幸運なチャンスをものにしたところから全て始まっているから、それをモデルにするのは間違っている。マイクロソフトはデータ上の特異点なんだ。それを捨ててしまえば、良い製品を作っているところがマーケットで勝っているのを確かに見ることができるだろう。ベンチャーキャピタルが探すべきなのは、次のAppleであり、次のGoogleであるべきなんだ。

本和訳テキストの複製、変更、再配布は、この版権表示を残す限り、自由に行って結構です。
Copyright 2004 by Paul Graham
原文: http://www.paulgraham.com/gh.html
日本語訳:Shiro Kawai (shiro @ acm.org)

サーゲイ・ブリンのインタビュー映像

またYouTubeでGoogle関連の映像を見つけてきた。

http://www.youtube.com/watch?v=aeb_or6-N0s

創始者のサーゲイやザ・サーチの著者であるジョン・バッテルのインタビューを通してGoogleを知っていこうという番組。番組を通して英語が聞き取り易いので、興味がある方なら楽しく見られること間違いなしです。GLATテストってのは初めて知ったな。

Googleのリクルート用映像

http://www.future-planning.net/x/modules/news/article.php?storyid=1447

Googleの新人採用ビデオを見る機会が有りました。社員採用の目的で人事部が作ったものですが、とっても面白いです。それが何と!!プロモーション・ビデオとしてライバルのYouTube に投稿されています。映像に強い人が欲しいのでしょうが、それにしても凄いですねえ!!

Googleが早速YouTubeに採用目的の映像を投稿したみたい。いやぁ最近はどこもかしこもYouTubeの話題ですけど、今度はGoogleのリクルート映像ですか。

とりあえずチェックしてみてくださいな。今回は女性をターゲットにしているようで、出てくる社員は女性ばかりです。僕が感じたことは以下。

  • Googleがこういう宣伝する必要あるんかいな(労働市場では完全に売り手だろう)
  • Googleもやはり普通の会社だなと思ったのが、出てくる人の見かけがまとも。そういう人を選んだんだろう。
  • 託児所はいいな
  • 「飯が美味い」って有名な話だけど、アメリカ人基準かも…
  • なんだあの靴…

英語が分からなくても雰囲気は分かります。

芳沢光雄「算数・数学が得意になる本」

算数・数学が得意になる本 (講談社現代新書)

算数・数学が得意になる本 (講談社現代新書)

面白かったし懐かしかったけど、この本完全にマーケティングに失敗していないだろうか。中身は小中学生、高校生、もしくはその先生が対象って感じだけど、新書の中心読者層じゃないだろうし。数学を懐かしむサラリーマンが主な購入層になりそうだけど、それじゃあ芳沢先生の想いが届いて欲しい人に届かないと思いますが。どうなんでしょう、芳沢先生。あ、子供に上手いこと算数教えたいって人が買うとよいかも。

内容としては、算数・数学を学ぶ上で「つまずき」易いと思われる部分、つまり挫折のきっかけとなり易い部分をとり上げて、解き方を教えるのではなく理屈を教える、きちんと説明する、というスタンスで著者が解説をしていく。本書の裏にある論理は前作の数学的思考法と同様のものだが、本書はもう少し具体的な問題を取り上げ「解法の理由を子供に納得してもらう」を目指して書いている本だと思います。例えば「なんで分数の割り算をするとき、分母と分子をひっくり返してから掛けるのか」を子供に説明するにはどうすればよいのか、それがこの本を読むと分かる。そういう本です。

帯にもあるけど、上記で挙げた「つまずき」というのがこの本の最重要キーワード。つまずいて数学に苦手意識を持つものが多いのが現状だが、著者の主張はむしろ「つまずき」を経験するからこそ、数学が得意になれる、数学を好きになれるというもの。

  • 足し算の筆算でつまずいてしまった著者
  • 繰り上がり、繰り下がりで子供のころ苦戦した友人の数学者

などを例に挙げている。この辺は数学的思考法の最重要キーワード「試行錯誤」と繋がってくる部分。「つまずき」に対して試行錯誤することが大事なんだよね。そして最終的にそれを乗り越えられればもっといい。

この本読んで思い出したけど、ホント空間的な思考が苦手なんだよな。ジャガイモでも切って特訓するかな。