aoki ブログ

第2回 WAZA CTOセミナー 『技術系サービスができるまで”日本発の検索エンジン”』 【7月29日(土)14:00~】

以下のようなセミナーで話をすることになってしまった!緊張しまくりっす!
検索関連で実績のある方がいっぱい来るそうなので、下手なこと言えないよ。。。どうしよう。
今更ですがコソ勉します。

まだ若干名の空きがあるようなので、もしよろしければ声をおかけください。

第2回 WAZA CTOセミナー
『技術系サービスができるまで”日本発の検索エンジン”』
後援:情報大航海プロジェクト・コンソーシアム

●パネラー
・Team Lab株式会社CTO 青木俊介「Sagool」http://sagool.jp/
・paperboy&co. 大日田貴司「Qooqle」http://qooqle.jp/
・経済産業省八尋俊英(情報大航海プロジェクト・コンソーシアム責任者)
・筑波大学情報学類吉田光男「CEEK.JP」http://www.ceek.jp/
●コーディネーター
・早稲田大学理工学術院教授山名早人

2006年7月29日(土) 14:00~
@国際フォーラム会議室G408

http://www.insprout.com/company/news_release/2006/20060710_release.pdf

1248ʬ59 on 2006ǯ0725 by aoki - お知らせ - 49 comments

ジダン

「W杯は見ない!」と宣言しましたが、結局本当に1試合も見なかったです。
見てても出れるわけじゃないですし。。。誰かが言ってましたが所詮は他人の祭りなんですよね。

ところで、ジダンが決勝戦で頭突きをしてくれたそうですね。やはりジダンです。さすがです。一世一代の大舞台でレッドカードを食らうなんて素敵です。しかも人生最後のW杯!

彼がヒヨって頭突きもできないような男であれば、彼はスーパースターのジダンではなく、W杯にも出ていない無名選手のジダンだったでしょう。 スーパースターのジダンだからこそ頭突きしたのであり、頭突きをしてしまうような男がジダンなのです。

だから、頭突きに対して「もったいないことをした」とか「がまんすればいいのに」という批判は無意味!!

人が思想を作り、思想が人を作る。そして思想は、一瞬の無意識の価値判断にこそ鮮明に現れるのだと思います。

ジダンの才能を花開かせた思想が、ジダンに頭突きをさせたのです。ジダンの才能を愛でるためには、彼の頭突きをも受け入れなければならないのです。ジダン万歳!

1930ʬ12 on 2006ǯ0713 by aoki - ネタ - comments

Windows上で複数ファイル内一括置換とか

Windows上で、Perlワンライナーと dos の for文を組み合わせるといろいろできることがわかったよ。

①サブディレクトリ以下全てのjavaファイルにgrepをかけたいとき。("pattern"という文字列でgrep)

for /R .\ %A in (*.java) do perl -ne "++$line;if(/pattern/){ print '%A ('.$line.'):'; print; }" %A >> grep.txt

②サブディレクトリ以下全てのjavaファイル内で置換をかけたいとき。("before(***)"を、"after(***)"に置換)

for /R .\ %A in (*.java) do perl -i.bak -pe "s/before\((.+?)\)/after\($1\)/g;" %A

やっぱCygwinを入れるべきなのだろうか。。

2345ʬ29 on 2006ǯ0622 by aoki - ネタ - 186 comments

仕事について考えるときの本

仕事について悩んでいるのだけど、何か役に立ついい本はないだろうか、という相談を受ける機会があったので、僕が読んだ本の中から、本当に役に立った本をまとめてみた。

以下、自分が影響を受けたと思う順番に、アマゾンのURLと感想を載せておきます。

「7つの習慣」スティーブン・R. コヴィー
http://www.amazon.co.jp/gp/product/4906638015/503-6066555-4291135
習慣こそが力をもっている。自分を変えるとは習慣を変えることである。習慣を変える力を持つ人間のみが成功できる。

「自分の中に毒を持て―あなたは“常識人間”を捨てられるか」岡本 太郎
http://www.amazon.co.jp/gp/product/4413090101/503-6066555-4291135
自分自身を徹底的に追い込んで爆発させてきた、岡本太郎の厳しくて温かい言葉が詰っている。
”自分はだめな人間なんだとか、こうやったらきっとだめになるだろう、それならそのマイナスの方に賭けてみるんだ。一度でいいから思い切ってぼくと同じにダメになる方、マイナスの方の道を選ぼう、と決意してみるといい。そうすれば、必ず自分自身がワァーと盛り上がってくるに違いない。それが生きるパッションなんだ。”

「プロ論」B-ing編集部
http://www.amazon.co.jp/gp/product/4198619611/503-6066555-4291135
インタビュー記事をまとめたものなので、内容はそこまで深くない。だが、一流の仕事をしている人たちの話だけあって、どの言葉の中にも迫力がある。僕が特に感動を覚えたのは、宮内義彦、平尾誠二、養老孟司、井筒和幸、のインタビューだった。わずか数ページの内容でも、鳥肌が立って涙がでるほど。

「巨富を築く13の条件」ナポレオン ヒル
http://www.amazon.co.jp/gp/product/4877710698/503-6066555-4291135
古典的な成功術の本。教材の強引なセールスからあやしいイメージを持たれがちだが、ナポレオン・ヒル自身の書いている本書の内容はいたってオーソドックスで示唆に富んでいる。
要は、成功に最も必要なのは強い願望と信念だと説いている。願望と信念が異常に強い人間が成功しているということは、ナポレオン・ヒルが自分で集めたデータから確信したようだ。そして、願望と信念を強めるために、手帳に自分の願望や信念を書く、等の手法で無意識に働きかけるべきであると述べている。これと似たような手法は現在、ナポレオン・ヒルとは直接関係ないところでも、スポーツ選手や経営者の間で広く行われている。(中村俊輔はナポレオン・ヒルの言葉をそのままノートに書いているようです。)

「リクルート流仕事ができる人の原理原則」中尾 隆一郎
http://www.amazon.co.jp/gp/product/4861360129/503-6066555-4291135
パフォーマンスを上げるために、実践的で役に立つ習慣を紹介。これだけの習慣を発見した著者には尊敬を覚える。
”自分のやりたいことは周りに言い続けろ”、”数値化せよ”、”選択肢のないことを悩むな”、”一度やった仕事を転用してROIを上げろ”、”完成度80%でレビューを受けよ”、”最高の結果をイメージせよ”

「iモード事件」松永 真理
http://www.amazon.co.jp/gp/product/4043566026/503-6066555-4291135
社会的インパクト、やりがい、メンバー、全てが申し分ない理想的なプロジェクトの様子。楽しそう!

「iモード以前」松永 真理
http://www.amazon.co.jp/gp/product/4000220098/503-6066555-4291135
iモードの仕掛け人、松永真理の成長記。フツーの女の子がいきいきと働く様子が描かれていて楽しい。仕事って何だろう、誰のためにしているんだろう、会社って何のためにあるんだろう、という原点を考えさせてくれる。特に女性がよめばモチベーションUP間違いなしだと思う。

「リクルートという奇跡」藤原 和博
http://www.amazon.co.jp/gp/product/4163589007/503-6066555-4291135
仕事と会社に熱い思い入れをもった男の、魂の仕事記!こんな人間を生み出すリクルートという会社に憧れた。

「かもめが翔んだ日」江副 浩正
http://www.amazon.co.jp/gp/product/402100081X/503-6066555-4291135
巨大メディア企業、リクルートを一代で築きあげた学生ベンチャーの元祖、江副氏が自ら書いた回想記。立ち上げから、会社が成長していく様子、リクルート事件まで、読みごたえ満点。人は、窮地にあるときにこそ真価が問われるものだ、ということを実感した。

0411ʬ08 on 2006ǯ0612 by aoki - 読んだ本 - 373 comments

Perl ワンライナー その3

さらにワンライナーを使ってみた。

①ハッシュの値でソートできる!
perl -lane
'$a{$F[1]}=$F[-2];$b{$F[1]}=$F[-1];END{foreach(sort{$a{$b}<=>$a{$a}}keys
%a){print $_."\t".$a{$_}."\t".$b{$_};}}' test.txt
test.txt中の、行末から2番目の項目の逆順でソート。
ふふふ、awkでやろうとすると結構大変なんじゃないかな。さすがPerl。
(sortコマンドを使えばスマートにできそうだが。。)

②BEGINでファイルをオープンできる!
perl -lane 'BEGIN{open(IN,"<test1.txt")||die"file not
found";while(<IN>){@E=split();$a{$E[1]}=true;}close(IN);}if($a{$F[2]}){print;}'
test2.txt
test2.txt中から、test1.txtの行頭から1番目の項目を含んでいる行のみを表示。
ここまでは、awkでもできまい、、と思ったのだが、どうだろう?
こんなときはDBを使ってテーブルをJOINしたいですね。

おまけのシェルスクリプト。
ディレクトリ内のファイルの拡張子を .htm から .html に変える。ここでもPerlを利用してみた。
for i in *.htm ; do mv -i $i `echo $i | perl -pe 's/htm$/html/'` ; done

1921ʬ08 on 2006ǯ0607 by aoki - ネタ - 63 comments

Perl ワンライナー その2

Perl でも awk の"BEGIN", "END" が使えることが判明!完璧じゃん!(←ちゃんと調べようね)

  • n オプション、および -p オプションをつけたときに、使えます。こんな感じ

perl -pe 'BEGIN{ print "---begin--- \n";} END {print "---end---\n";}' test.txt

これによって、先日のワンライナーを書き換えると
perl -lane '$x=exp(0.5*int(2*log($F[-1]+1e-20))); $a{$x}++; END{ foreach (sort {$a <=>$b} keys %a){ print $_."\t".$a{$_}."\n";}}' test.txt
になります。こっちのがベンリ!

参考:Perlのコマンドラインオプションの公式ぽい解説
http://search.cpan.org/dist/perl/pod/perlrun.pod

1245ʬ50 on 2006ǯ0530 by aoki - ネタ - 66 comments

メモ

やろうと思ったことのメモ

・スタイルシートを修正して見やすく
・アクセスカウンタつけてみようかな

0054ʬ09 on 2006ǯ0529 by aoki - メモ - 137 comments

Perl ワンライナー

Perlのワンライナーというのが、すんごく便利!と今日初めて知りました。秀丸の正規表現と同じぐらい、手軽につかえるよ。

仕事でテキストデータの整形が必要で、awkというのを同僚に教えてもらっていたんですが、データがデカすぎるらしく異常終了してしまう。何かいいやり方ないかねーー、そういやPerlで -e つけるとなんかできたっけ・・・と調べてみたら、お手軽に動いた!エラーも出なくて没問題!

ここに、コマンドラインオプションをメモっておこう。これさえ覚えとけば、すぐ使えるはず。

  • n オプションは、以下の意味

while(<>) {
....
}

  • p オプションは、以下の意味(-nと違って自動で出力してくれる)

while(<>) {
....
print $_;
}

  • l オプションは、chomp

while(<>) {
chomp($_);
....
}

  • i オプションは、ファイル内の置換!これは便利。

perl -i.bak -pe 's/,/\t/g' test.csv
のように、-iの後に拡張子をつけてあげると、自動バックアップ。

  • a オプションは、split してくれる。結果は、自動で@Fに入ります。(こいつを一番使った。)
  • F は区切り文字の指定。awkと一緒ですね。例) -F':'

以上を使うと、例えば、

perl -lane 'if($F[-3] ne "0"){ print "$F[-3] $F[-2] $F[-1]"; }' test.txt

⇒「行ごとにスペース区切りで分割、最後から3番目の要素が"0"以外だったら、最後から3番目・2番目・1番目の要素を出力する」

こんな使い方ができちゃいます。

いろいろといじって、今日の最後にできたものがこれ。

perl -e 'while(<>){ @F=split(); $x=exp(0.5*int(2*log($F[-1]+1e-20))); $a{$x}++; } foreach (sort {$a <=>$b} keys %a){ print $_."\t".$a{$_}."\n";}' test.txt

⇒「行ごとにスペース区切りで分割、その最後の要素を、Logのスケールで連想配列%aに集計、最後に%aのキーの値の大小でソートした順番に、集計結果を出力する」もの。値のレンジが大きい場合は、Logスケールがわかりやすい、ということでこういう集計をしてます。データの分布状況のチェックなどに使ってみてください。

結局あんましワンライナーぽい書き方じゃなくなっちゃいましたね。awkのENDにあたる処理が、Perlにはなさそうな気配だった(「Perl ワンライナー その2」を参照)ので、こんな書き方をしておきました。もしかして、もっといい書き方があるのでしょうか。誰か教えてください。

眠いけどがんばってまとめときました。ではおやすみなさい。

0455ʬ02 on 2006ǯ0528 by aoki - ネタ - 65 comments

カルロス・ゴーンの言葉

カルロス・ゴーンのインタビューをテレビで見たのでメモ。

好きな言葉は、
 『透明性』
 『コミットメント』

普段心がけていることは、
 *発言にブレがなく、わかりやすいこと
 *背水の陣をしいて、覚悟を伝えること
 *思い、情熱のみが人を動かす
 *責任逃れの体質を徹底的に排除する

強い思い入れなしに、人は動かないし、よい仕事は生まれないと思う。
ただ、組織の中で、強い思い入れを持つことはとても大変なことだ。
強い思い入れには、その分だけの責任が発生する。

例えば自動車メーカーで、「流行のSUVを開発せよ!」という命令がトップから開発陣に下ったとする。
その際、組織の中で特に強い思いが共有されなかった場合、以下のような仕事になりがちだと想像できる。

開発陣の中では、「またこの会社は流行を追ってるなぁ、お蔵入りになりそうだ」というムードが漂いはじめる。
デザイン部門は、各社のSUVを比較し、また流行も少々取り入れつつ無難なデザインを仕上げる。
開発部門は、無難な部品を採用して、無難な性能の設計を提出する。
マーケティング部門は、無難なタレントを起用したCMをうち、無難な価格設定をする。
結果、非常に無難で、可もなく不可もないSUVができあがる。
もちろんあまり売れない。
でも、特に誰かが悪かったというわけでもない。

以上はとてもありがちな状況だと思う。自動車会社の場合は想像ですが、似たような状況には少なからず遭遇した。

誰もが思い入れを持って仕事をしたいはずだ。
でも、強い思い入れを持って意見を表明するということは、このような大きなプロジェクトであれば余計に、その分相当な責任が発生する。
無理に意見を通したはいいものの、最終的に売れなかった場合は、全責任を自分(あるいは自分の部門)が負うことになりかねない。
それを恐れて、無難な仕事をして、自分の責任を少しでも減らすことを考え、逃げ腰になる。防衛的な仕事をするようになる。
みな自分の意見を潜めて、日和見をするようになる。

何が足りないのか。自分は、組織に『リーダーシップ』がないのが原因だと考える。

組織のトップが自分の意見をわかりやすく発言し、かつその意見にコミットメントをする。
コミットメントとは、発言を覆さないこと、発言が本気であることを示すこと、そして発言を責任を持って実行に移すこと。
本気を見せるためには、背水の陣を敷く、自分の退路を断つしかない。
トップの人間が本気になっているのを見て初めて、人間は動き始めるものだと思う。

トップの言葉が信頼できれば、人は安心して責任を取れるようになる。最終的な責任は、トップがとってくれると考えるからだ。
自分の意見に思い入れを持って表明できるようになり、冒険的なアイデアも出せるようになる。

カルロス・ゴーンの言葉には、組織のトップがあるべき姿のエッセンスが見事に詰まっている。

1240ʬ16 on 2006ǯ0426 by aoki - ネタ - 1 comment

7行テトリス

<body onKeyDown=K=event.keyCode><script>X=[Z=[B=A=12]];h=e=K=t=P=0;function Y() {C=[d=K-38];c=0;for(i=4;i--*K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/ A)*145)])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1 if(e=!e){if(f|B){for(l=228;i--;)Z[h+B[i]]=k=1;for(B=[[-7,-20,6,17,-9,3,6][t=++t %7]-4,0,1,t-6?-A:-1];l--;h=5)if(l%A)l-=l%A*!Z[l];else for(P+=k++,j=l+=A;--j>A;) Z[j]=Z[j-A]}h+=A}for(i=S="";i<240;X[i]=Z[i]|=++i%A<2|i>228)i%A?0:S+="<br>",S+=X [i]?"■":"_";document.body.innerHTML=S+P;Z[5]||setTimeout(Y,99-P)}Y()</script>

わーーーおーーー!すげ!!
今すぐコピペして、tetris.htmlとか保存して、ブラウザで開いてみましょう!!!

解説はこちら↓
http://www.isl.cs.gunma-u.ac.jp/~shingo/make/7line/7line.html

0318ʬ06 on 2006ǯ0209 by aoki - ネタ - 154 comments