携帯電話専門TV局Qlick.TV

携帯電話専門TV局Qlick.TV(クリック ドット ティービー)さんの取材を受けてきました。
SANY0039.JPG
取材といいつつ、ケータイ向けストリーミング放送の制作会社に行く機会なんてそうそうないので、僕らはその内部に興味津々。
「ページビューは?」などとこっちから質問しまくりでした(笑)
来週火曜日からケータイ魂で見られるそうですので、ドコモ携帯持っている方は、ぜひぜひ見てくださいませ。

google入社試験

時計の針とか、スクールバスにゴルフボールが何個はいるかとか、おもしろ系の質問が紹介されていますが。
金曜日にGoogleの鵜飼さんもちょうどこのお話をしていました。
それによると、FizzBuzz問題程度の簡単な問題を出して、その場でホワイトボードに書いてもらうのだとか。
ググるのはナシ。つまり、簡単な内容なので、考えたことをすぐにコードに落とせる能力を求めています、と。
正しい試験だなぁ、と思いました。これができるとできないとで、実装の速度が違ってきますよね。
あ、ボクは落ちるぞ。

ITpro Challenge!行ってきた

というわけで、
ITpro Challenge!
に行ってきました。
ライトニングトークさせていただいた件は
「明日10時」「来週火曜日」で日付を扱うライブラリHumanDate
に書かせていただいたので、こっちでは、参加者としてのレポートを。
すでに良質なレポートが上がっていますので、補足するような形で行きたいと思います。
maeda.na@はてな – ITpro Challenge!のメモとか

濃かった

 ちょっとありえない濃度でした。Lingrの江島健太郎さん、Googleの鵜飼文敏さん、はてなの伊藤直也さん、ドワンゴの戀塚昭彦さん、ひとりでも 100人規模の人を呼べそうな人を四人呼んできて、さらに司会に弾さんを持ってくるという出血大サービスのイベントなのに、会場に入れるのはたった70 人。ライトニングトーク枠でもぐりこむ僕みたいなのもいるから、単純に入場できた人って50人くらいしかいなかったんじゃないでしょうか。
 僕としては濃厚な空気で勉強させていただけてとてもうれしかったですが、さすがにこれは、お話していただいた方に申し訳ないので、入場料を取ってもうちょっと広い会場を用意してもよかったんじゃないのかな、と思いました。
5000円なら安いと思えるレベルだったと思います。
 たいへんいいイベントを開催していただいたスタッフのみなさま、どうもありがとうございました。

How we built Lingr

>2年くらいじゃ英語うまくなんない
話の経緯を補足。
Q:Lingrが意に反して日本で人気、世界でマイナーになってしまった、ということでしたがその原因はなぜだと考えていますか?
A:チーム構成として自分がマーケティングも見ないといけない位置だったのだけれど、その自分が日本語でブログ書いてしまった。
 英語ができないわけじゃないけど、人気の出るブログを書くとなるとまた別の話で。二年くらいじゃ英語ができるようにならない。
 これ、実際自分もそうだと思いました。二年も行っていませんが。
 職場が英語なので、それなりに英語は話せるようになってきたのですが。それはあくまで「相手が聞こうとしているときに、自分の意思を相手に伝える」ための英語であって、
「なんとなくみている、聞いている人に違和感なく自分の意思を伝える」にはほど遠い状態です。
相手が聞こうとしてくれているときであれば、ちょっとくらい変な英語でも相手が察してくれるので何とかなりますが、ブログを書いて自分の作ったものを宣伝しようと思ったら、
そこにはもう一段上のレベルの英語が必要になるんじゃないのかな、と。
そうか、国際的に勝負しようと思ったらこれじゃダメなんだな、と痛感いたしました。

ハッカーのソフトウェアエンジニアリング

maeda.na@はてな – ITpro Challenge!のメモとかをみていただいてもわかるかもしれないですが、
教科書に載ってるんじゃないのか、と思うくらい当たり前の話が多くて、ちょっと退屈そうにしている方もおられました。
でも、実はそれがハッカー/Googleエンジニア/鵜飼さん(どれか)の本質なんじゃないのかな、と思ったり。
たとえば、Googleの入社試験ではホワイトボードにその場でコードを書いてもらうそうです。
「ググるのはナシ?」
「ナシです。ごく簡単な問題ですから。簡単な日本語の文章を書くのにいちいち辞書引かないのと同じように、開発言語も使えることを求めています」
僕落ちます(笑) もちろんそうなるべきだと思いつつも、実際には、あれ、%Qと%qはどっちがどっちだっけ、と思ったり、文字列操作のsplitの名前が出てこなくて
ググったりしながらRubyのコード書いています。
でも、これができるようになっていれば生産性が大幅に上がるのは間違いないわけで。そこを入社時点で求めるというのは、妥当な足きりだと思いました。
つまりハッカーというのは、そういう地道な努力の集合体で、それを馬鹿にしないからこそすごいんじゃないのかな、と。

ベンチャー志向プログラマ

 質問してきました。
Q:えらくなると、自分が集中してコード書き始めたところで「直也さーんっ!」って割り込まれることが増えると思います。それでもコードを書き続けるためにどうやっていますか?
A:かつては「その質問は今じゃないとダメなの?」とか言って切れていました。よくないとは思うけど、集中したいし。
  最近は、AMは周りのサポートに注力して、PMは会社を抜け出してスタバでプログラミングしたりしています。
  メールもメッセンジャーも全部切って集中!
Q:そうすると、はてなブックマークが503出してます、とか言うことにならない?
A:その時は携帯に電話が入ってきます(笑)

ニコニコ動画の創りかた

 ゆっくりと、ポツポツとしたしゃべり方が印象的でした。「あ、きっと人前で話をするのが得意でないのだなぁ」と。
けれども、一つ一つ丁寧にお話ししていただけたので、とてもわかりやすかったです。
 こういう人のすごさを見抜いて活躍の場を与えるのって、かなり難しいことだと思うのです。
自分みたいな出たがりは、どんな場でも勝手に主張して仕事を取りに行くのでそれなりの成果を出してくるけど、
たぶんこういう方は、放っておくとオロオロしちゃってなんにもできないタイプ。
#すいません。勝手に妄想しています。
でも、適切な活躍の場があった結果、僕なんかよりずっとすごい成果を出されているわけで。実はニワンゴすごい?とか思いました。

ライトニングトーク

 自分の発表で頭が真っ白だったので、何にもメモしていません(笑)
それでも印象に残っていたお話をあげさせていただくと。

フログラミング 増井 雄一郎氏

 バッチリお話してきました!しかしフログラミング、威力強すぎです。

開発環境と言語 氏久達博氏

 言語開発合宿やるそうです!その場で小飼さんとか伊藤さんを勧誘(笑)

思いやり駆動開発 五十嵐邦明氏

 ベアプロ:ペアプロできないさみしいあなたに!机にクマのぬいぐるみを置いておいて、行き詰ったら彼に話しかけてみましょう。たいていの問題は解決します。
 ネタに見えるけど、実際これ有効だと思う。これやろうかなぁ。

私がApacheモジュールを書く理由「wafful.org」竹迫良範氏

 この人のプレゼンのうまさは異常だと思います。
実は今回、ライトニングトークに竹迫さんの名前を見つけて、ひそかに対抗心を燃やしていたのですが。勝負にもなりませんでした。
あんな写真どこから集めてくるんだろう…

懇親会

 これも参加してきました。ここでは一般参加の方は結構減った一方、講演したハッカーのみなさまはそのまま懇親会に参加していただけたので、ハッカー密度が臨界点を超えた状態でした。
 会場のプロジェクタにPCを接続させていただけたので、みんなもちネタを披露。

とても楽しい一日でした。

「明日10時」「来週火曜日」で日付を扱うライブラリHumanDate

本日はITpro Challenge!でライトニングトークをさせていただきました。

pdfファイル
HumanDate.pdf
HumanDate.rbのgemファイル。
HumanDate-0.0.1.gem
あと、プレゼンで紹介した、HumanDateをつかって携帯電話(というか電子メール)からGoogleカレンダーに登録するスクリプトはこちら。
pop3togcal.rb
このスクリプトを
cronで定期的に呼び出すようにすることで、
設定したメールアドレスのメールをチェックしにいって、
該当するメールがあればgoogle calendar apiをつかってGoogleカレンダーに登録するようになっています。
なお、このスクリプトは
zorioの日記 – メールからGoogle Calendarに登録するサンプル
を元にさせていただきました。素敵なコード、どうもありがとうございます。
(追記 2007-09-08 08:28:27)
maeda.na@はてな – ITpro Challenge!のメモとか

古川氏のカレンダライブラリはいいと思う。

いえぇ~っ!そうそうたるメンバーに囲まれてどうしようかと思っていたのですが、このお言葉はうれしいです。
ライトニングトーク中毒になってしまいそうだ(笑)

pukiwikiのファイル名を文字列に変換 by ruby

pukiwikiのファイル名について
attachの中の余分なファイルを消したいと思っているのですが、
CBE2CBA1B7BFBCEDBEEC_A5DEA5B8A5C3A5AFA5A2A5EDA1BCB3CEBBA62E786C73
↑のようなファイル名ばかりなのでどれが不要でどれが必要なのかわからなくて困っています。
こういったよくわからない文字の羅列を普通のファイル名に戻すといったことはできないでしょうか?

ということで、perlのコードが紹介されている。
自分も変換する必要に迫られたので、rubyのコードを書いてみた。

require 'kconv'
Dir.foreach("./euc/") {|inputFileName|
if File.file?("./euc/"+inputFileName)
#出力ファイル名(デコードしておく)
outputFileName = inputFileName.scan(/([0-9A-F]{2})/).map{|a| a[0].hex.chr}.flatten.join("").gsub(/\//,'_')+".txt"
File::open("./euc/"+inputFileName) {|inputFile|
File::open("./sjis/"+outputFileName,'w'){|outputFile|
inputFile.each {|line|
#ついでに、文字コードをsjisに変換
outputFile.print line.kconv(Kconv::SJIS,  Kconv::EUC)
outputFile.print "\n"
}
}
}
end
}

日本語のファイル名がうまく戻せていないのは、linuxマシン上のファイルシステムの問題かこのコードの問題かちょっとわからない。

Thank you という理由

まず、Thank you と言うこと/ぼんやりと考えたこと

最近、何人かの英語初心者、もしくは英語慣れはしているけれどアメリカ初心者、もしくは英語もアメリカ慣れもしているいるけれど暮らしたことはない、という日本人を観察していて気がついたこと。
それは、客の時にはだれも Thank you とは言わないということ。さすがにこの場面なら言うかなという場面でも決して期待を裏切らない。彼らは絶対に店員にむかって Thank you とは言わない。

えー。僕いいますよ? Thank you madam♪ って。

あ、もちろん相手が男性の場合はThank you sir.

最長で一ヶ月くらいの海外出張しか経験はないけど、普通にThank you言ってます。
はじめて海外出張したとき、同伴してくれたのがアメリカ人(しかも南部出身の人)だったのです。
ひな鳥のようにその人の話し方、言い回しを覚えていった結果、お店で買い物をしたり、ホテルでチェックインしたときには、”Thank you madam♪”って言うんだね、と無意識に学習したのだと思います。最後に♪がつくのもそういう理由。
日本人がなぜ「Thank you」と言わないかの考察は、元記事の人と弾さんが説明されていますが。

「いちいちそんなことを言わなくてもまともなサービスが期待できる日本と、フレンドリーに振る舞わなければ何をされるかたまったものではないアメリカ」
(まず、Thank you と言うこと/ぼんやりと考えたこと)

それは「感謝の気持ちがない」のでは決してなく、感謝の背景をどう捉えているかの違いだと思われる。
(404 Blog Not Found:”Thank you” = 「すみません」)

たぶん、そんなに難しい理屈で自分を納得させなくても、現地で他の人がどうしているのかを見て、「あ、みんなThank youって言っているからマネてみよう」ってやったほうが早いんじゃないのかな、と思います。

movable type4にGoogle Analyticsのコードを埋め込む

Movable Type4で、Google Analyticsの追跡コードを埋め込む方法、という内容のページがまだないようだったのでメモ。
前提:
– Google Analyticsのアカウントを自分で作って、追跡コードを取ってくる。
– MovableTypeの編集画面にログインしている

この辺にある、「デザイン-テンプレート」をクリック
ブログのテンプレート
「ブログのテンプレート」で「メインページ」をクリック。
フッター
MovableType3だと、ここで直接追加していたみたいですが、そうではなくて、右にある「フッター」をクリック
フッター編集画面
フッター編集画面に出ます。
トラッキング コードを貼り付け
の手前に、トラッキング コードを貼り付けて保存すればOK. あ、再構築をお忘れなく。
(2008.04.11 09:56:23追記)
 せっかく見ていただいているのにページの内容が崩れていたので修正しました。

みんなちいさくなーれ

404 Blog Not Found:最近の若者たちはどうやって本を読んでいるか

右のグラフを見ての通り、全体の売上げ(ピンク)は1997年をピークに頭打ちになっている。いや、むしろバブル崩壊後もしばらくは市場の拡大が続いていたことこそ驚くべきか。
にも関わらず、新刊点数(ダークブルー)はうなぎ上りだ。

コンテンツ市場の細分化というのは、書籍に限らず長期的なトレンドだ。音楽から映画まで、およそありとあらゆる分野でこの傾向を観察することが出来る。かつては「誰でも読んだことがある本」とか「誰もが見た事がある映画」を挙げるのは簡単だったが、今ではそれを上げるのは難しい。宇多田ヒカルクラスでも、「何ですかそれ?」という人は大勢いるし、涼宮ハルヒクラスでも読んでいない人は大勢いる。

その結果何が起こっているかというと、売れもしない本をたくさん作らないといけないので、出版業界が大変、ということになるわけです。
今までは一人の著者が書いた本が一万冊売れていたところが、二人の著者が五千冊しか売れない本を二冊出すと、編集者も二倍、装丁やイラストを書く人も二倍必要ですから、そりゃきっと大変だと思います。
#他人事みたいに言っていますが、一応過去に本を出したことがあります。7人がかりで書いたので、印税もページ数比例配分になった結果、数万円の収入でしたが。
で、じゃあどうするべきか?ぼくたちが昔みたいに、みんなでおんなじ本を買ってみんな同じ話題で盛り上がる?冗談じゃない。
みんなが面白いと思って買っていたのだったらともかく、買わないと話が合わないとか、「○○くらい読んでおかないと」とかいう理由で本を買わされるほど、ヒマじゃありません。
それよりは、みんながそれぞれ面白いと思う本を買う、あるいは本よりCDのほうが楽しいのならそっちを買えばいい、本もCDもいやだけど海外旅行に行きたい?いいじゃないですか?萌え~?どうぞご自由に。
みんながそれぞれ自分が面白いと思うものを楽しむほうが、明らかに健全な世の中というものじゃないでしょうか?
だったら出版業界のほうがそれに対応するべきです。出版規模が小さくても耐えられるように事業構造を変える、読者が数人しかいなくても利益の出せるモデルを考える、それこそが時代の要請というものじゃないかと。
それに応えようとしたのが、新風舎であり、Amazonのはじめたオンデマンド自費出版サービスなんじゃないのかな、と。
#まあいろいろありましたけどね。
出版業界に限らず、音楽業界でも、自動車業界でも話はいっしょなんじゃないのかな、と。
みんなが同じものを買うことを前提として巨大化した業界は、早いところスリム化してぼくの欲しいものを作ってください、と思っています。

コーヒー100円事件

やっちゃった….orz
いいめもで、「間違ったときどうするの?」というユーザーさんがたくさんいたので、暫定対策として、マイナスの金額の入力を認めよう、ということになりました。
で、このとき、ユーザーさんにマイナスを入力してもらうと、-(マイナス記号)じゃなくて、「-」とか「―」とか、そういう文字をマイナスのつもりで使っちゃう人もいるよね、と思ったので、
正規表現で
/([-‐-─━―]?[0-90-9,.,.]+)/を探して価格とする、というふうにしました。
起こったこと:「コーヒー100円」と書いたら「コーヒ」が「-100円」になった。
…そりゃあそうだよねorz
「コーヒー」の危険性に気づかなかった自分の責任です。
こういうの、会社だとコード/デザインレビューでつぶせるのだけれど。できなくなって始めて分かるありがたみですね。勉強になります。