Rubyist Hotlinks 【第 25 回】 加藤勇也さん

はじめに

著名な Rubyist にインタビューを行う企画「Rubyist Hotlinks」。前回に引き続き、関西編をお送りします。関西編 (2) は、Exerb の作者である加藤勇也さんにお話を伺いました。お楽しみください。

プロフィール

yuya1.jpg 株式会社那由多屋を経営されてる加藤勇也さん。2002 年度の未踏ソフトウェア創造事業 (未踏ユース) では、18 歳でスーパークリエータに認定されました。趣味はバー巡り。座右の銘は「継続は力なり」。

好きな言葉
継続は力なり
尊敬する人
父親
ご本人のサイト
はてなTwitter

インタビュー

yuya2.jpg
聞き手
okkez さん
語り手
加藤勇也 (Yuya) さん
野次馬
cuzic さん、西山さん、KazukiMatz さん、Sixeight さん
日にち
2010 年 7 月 24 日
場所
株式会社 那由多屋 *1

(右の写真について。後列左から、Sixeight さん、cuzic さん、西山さん。前列左から Yuya さん、okkez さん。)

目次

プロフィール

okkez では、Rubyist Hotlinks のインタビューを始めます。

全員 いえー (拍手)

okkez えー、では今、時間は 21 時 16 分。

cuzic なんか取り調べみたいになってんで (笑)

okkez 2010 年 7 月 24 日、晴れ時々雨。場所は前回と同じく那由多屋さんをお借りしています。ありがとうございます。

生年月日、出身地、現住所、家族構成

okkez じゃあ、まず定番の質問からいきます。プロフィール。生年月日、出身地、現住所、家族構成とか。

Yuya (笑)。家族構成ってすごいな。

cuzic ひとつずつどうぞ。(笑)

Yuya 1984 年 5 月 11 日生まれ。現在 26 歳です。

cuzic 若い!

okkez 若い!

cuzic ぴちぴち。

Yuya (笑)

okkez 出身地は?

Yuya 大分県の日田市と言う所で、猛暑日の日本記録のある所ですね。

okkez へぇー、すげえ。

Yuya 今日、調べなおしたら、1994 年に一夏で 45 日の猛暑日があったと記録されてました。

cuzic 猛暑日って何度以上やったっけ?

Yuya 35 度以上。

okkez 大分県日田市……。あんまりよくわかんないけど、九州の真ん中辺りですかね?

Yuya そうですね。福岡県との県境にあります。

okkez 出身地がそこで、現住所がここ (那由多屋) ですね。

Yuya ここですね。

okkez (笑)

Yuya 兵庫県神戸市でございます。

okkez で、家族構成は?ここには一人で住んでるんですよね?

Yuya はい、一人暮らしです。

okkez 家族はみんなどの辺にいたりするですかね?

Yuya 家族は、両親が大分にいて、兄が神奈川……。違うか、東京に引っ越したのか。妹がニューヨークにいます。

okkez もうニューヨークに行ったん?

Yuya もうニューヨークに行って、カメラの勉強しています。

okkez ほー、すばらしい。

cuzic かっこいいな。

Yuya 僕だけ留学したことがないんです。ショボーン。

okkez へぇー。まあ、でもまだ、これからできるよ。

Yuya (笑)。まあ、でもあんまりするつもりもないんですけど。

okkez (笑)。

好きな言葉、座右の銘

okkez えーっと、好きな言葉。座右の銘。

Yuya 「継続は力なり」ですかね。オーソドックスだけど一番好きですね。短いし。

okkez あー。なるほど。

Yuya 継続すれば力となるし、力があるから継続できるんです。

okkez なるほど。

尊敬する人

okkez 尊敬する人。

Yuya あー、そういえばそんな質問ありましたね。「父親」ですかね。

okkez おおー。お父さん。

Yuya もちろん、母親も尊敬はしてますけど、同性として父親かなぁ。

okkez ああー、なるほど。

cuzic すごい!かっこいい。

Yuya 父親は会社の経営者でちゃんと社員も養ってるし、兄弟 3 人+母親も養ってますので。かつ特許も取ってますからね。負けられないですね。

okkez 特許、すげー。

Yuya 大分手伝ったんですけどね、申請のとき。

okkez へぇー。

Yuya 試作機を作るのを手伝いました。

okkez すばらしい。

Yuya だから父親かな。まあ、後はクリエーターの方々は全員好きですけど。なんか作ってる人は素晴らしいですね。

代表作

yuya3.jpg

okkez では、代表作。代表作はその特許取るときに作った試作機ですか?

全員 (笑)

Yuya えっと、カメラを削って(笑)。いやカメラを削ったわけではない。カメラの固定具を削って……。代表作はやっぱり Exerb なんですかね?

cuzic まあ、使われている度合いでいえば。

Yuya そうですよねぇ。

okkez でも他の物もいっぱい作ってますよね?

Yuya こまごまと。最近ものは全部 GitHub にあげてますね。最近は何作ったかな?MessagePack の Pure Ruby 実装 *2 ですかね?

okkez あー、Pure Ruby 実装。

Yuya あれは、Google AppEngine で使いたくて作りました。拡張ライブラリ版はもちろん使えないので、Pure Ruby で実装して、自分のプロジェクトの多くで使っていたはず。まあ、動いてますね。

okkez なるほど。まあ、昔からなんかいろいろしてますよね。なんか SVG のやつとか。

Yuya そうね。SVG のライブラリ *3 とか、グラフの描画 *4 とか形態素解析器のラッパー *5 とか。

okkez ライブラリ、めっちゃ作ってますよ。なんか一つの所にはまとまってないから探しにくいけど……

Yuya (笑)。

KazkiMatz 速度はどれくらいなんだろ?

cuzic まあまあ、早いよね、MessagePack の Pure Ruby 実装。

KazkiMatz それは Native のやつと比べて?

Yuya それは Native の方が絶対早い。

KazkiMatz 何十倍?

Yuya 30 倍くらい行ってんじゃないかな?

cuzic あの、文字別のメモリ確保周りは大分しょぼいからね。Pure Ruby なんは。

Yuya Mapのキーが多くなると一気に遅くなる。でも、かたや AppEngine で動かないのと、かたや AppEngine で動く、ですから。

okkez メリット、デメリット、いろいろあって。

Yuya もともと MessagePack の規格がとてもよく出来ていて、さらに分かりやすいのでいいですね。cuzic さんも JavaScript 版を。

cuzic 作ってたね。*6

KazkiMatz マジっすか。それは興味あるな。えー、いいな、クライアント側で MessagePack か。

Yuya ここにいる人だけでインプリメンテーションが 2 つある。

cuzic (笑)

okkez あと、著作ってありますか?

Yuya 本は書いたこと無いですね、残念ながら。

okkez 書きたいですか?

Yuya 書いてみたいけど、あまり文才はないな (笑)。まあ、日々、仕様書は書いてますが。

okkez 本はいつか書くということで。

Yuya そうねぇ。

cuzic やった。お買い上げ。

Yuya ネタなし。

好きなメソッド、嫌いなメソッド

okkez じゃあ、次は、好きなメソッド、嫌いなメソッド。

Yuya 好きなメソッド……。なんだろな。instance_eval かな。

全員 (笑)

Yuya まあまあ、黒魔術。

cuzic なんで、eval じゃなくて、instance_eval なんですか?

Yuya eval はどの言語にもあるけど、instance_eval 相当のものがあるのって、少ないですよね。

okkez ああ、コンテキストを指定して実行する的な。

Yuya eval だと、なんか色々出来ないことがあるじゃないですか。プライベートなメソッドにアクセスできないとか。instance_eval だとなんでもありなので。

okkez ああー、なるほど。

Yuya だから、instance_eval は結構好きですね。

cuzic Ruby はなんでもあり。

Yuya それがあんなに手軽に出来ていいのか?みたいな。object.instance_eval do 〜 end で、もう何でもありみたいな。

全員 (笑)

Yuya 「カプセル化?何それ、おいしいの?」みたいな。

okkez 嫌いなメソッドは?

Yuya instance_eval ですかね。

全員 (笑)

Yuya 何でも出来すぎて恐ろしいですね。両刃の剣ですね。

okkez class_eval とか module_eval には別に興味は無いの?

Yuya いや、でもまあ、同系列として。普通の eval ではなく、コンテキストを持った eval 系列。

okkez ああー。

Yuya module_eval ってそんなに使ってない。

cuzic あんまり使わへんなー。

Yuya instance_eval の方が圧倒的に多い。

okkez module_eval より class_eval を使うかな、俺は。まあ、同じやけど。

Yuya class_eval ってほとんど使ったこと無いなぁ。

cuzic 途中でインスタンスメソッド増やしたいときにしか使わへん。

okkez Rails でクラスを リオープンするときに、class_eval じゃないとうまいことメソッドを追加できない場合があって、そういうときには使う。

cuzic それはあるな。

Yuya 普通に class 文で書きたいけど、書けない。

okkez そうそう、そういう時に。

cuzic なんか外側のローカル変数にアクセスしたいときは、class_eval を使わんと、どうしょうもない。

Yuya あー、そうねぇ。

cuzic Class やなくて、新しいスコープを作っちゃうから。self をローカル変数に 1 回格納した後に、class_eval をブロック形式で呼んで……

Yuya 確かにありますね。というわけで、instance_eval に尽きる。

okkez 好きなメソッドも嫌いなメソッドも instance_eval。なるほど。

Yuya 他に特別好きなのはないので。

okkez map とか collect とか大人気なんですけど。

Yuya ああ、過去のインタビューには結構出てきてましたけど、普通になんか好きとか通り越して、無いと生きていけないメソッドですね。

okkez ああ、なるほど。

Yuya 生命にかかわる。

西山 instance_exec じゃダメなんですか?

okkez instance_exec って使わないよね。

Yuya instance_exec ってどんなんでしたっけ?

okkez 引数を渡せる。

西山 Thread.new みたいに、ブロック引数に引数が渡せる。instance_eval だと、ブロック引数が self になるのかな。

okkez そんな感じ。

Yuya ちゃんと意識したことが無かった。

cuzic 俺も instance_exec は使ったことが無い。

okkez なんか、でも、あるシチュエーションではすごい便利らしいよ。入ったことにめっちゃ喜んでた人がいたから。*7

Yuya (笑)

cuzic いつから入ったんだっけ?

okkez 1.9。

Yuya あ、だから知らないんだ。僕 1.9 全然使ってないんですよ。

Ruby に関して

Rubyist になったきっかけ

okkez じゃあ、次は Ruby について。まず、Rubyist になったきっかけ。

Yuya Rubyist になったきっかけは、一番最初に就職した会社の社長さんに会ったときに、「Ruby っていう言語があってね、すごい面白いんだ」って言われたのがきっかけかな。約 11 年前。

okkez それは社長が Ruby の存在を教えてくれたんですか?

Yuya そうですね、その社長が Ruby の存在を教えてくれて、入社前にちょろっとだけ調べて、入社してから本格的に教えてもらった。

okkez へぇー。それはいくつの時ですか?

Yuya 正式入社は 16 歳の時ですね。確か 15 歳の時から試用期間的なものが始まって。まあ、5 月だったから微妙ですけど。誕生日前後。6 月 1 日から正式入社。2000 年の 6 月 1 日ですね。

okkez おおー。

Yuya 社会人、丸 10 年の 11 年目。

okkez 多分、この中で一番社会人歴が長い。

Yuya 何も学んでないので、働かないとしょうがないです。

現在の Ruby との付き合い

okkez 現在の Ruby との付き合いはどんな感じですか?

Yuya 相変わらず仕事でも使ってはいるんですけど、ちょっと最近メインではないかな。でも少し前のプロジェクトは Ruby ばっかり……。っていうか、Rails ばっかりか。

okkez そう、去年、おととしはずっと Rails ですよね。

Yuya Rails で電子カルテを作ってましたね。

cuzic ふーん。

Yuya 正確には医療ではないですけども、カイロプラクティックの電子カルテを作っていて。もうそれは別の人が引き継いでいて、その人が一人でやってるんですけど。ガーっと開発する時期に僕がその人に Ruby を色々教えたんですが、すぐに覚えてくれましたね。

okkez Ruby、素晴らしい。

Ruby の好きなところ、嫌いなところ

yuya4.jpg

okkez 次、Ruby の好きなところ、嫌いなところ。

Yuya 好きなところ?好きなところってなんだろうな。もう、とても手に馴染む道具なので、あんまり意識することはないですけど。あ、コミュニティがいいですね。

okkez コミュニティですか?

Yuya こんな感じで、コミュニティがあるのが。ま、Ruby 自体が好きなところではないですけど、まあ、Ruby 全部を含めてみたところでは、そこかな。

okkez 嫌いなところは、やっぱり、instance_eval ですか?

全員 (笑)

cuzic 嫌いな「ところ」なんかい。そこは「コミュニティが嫌いですね」じゃないの?

全員 (笑)

Yuya 両刃の剣なんですね (笑)

cuzic そうそう、コミュニティの悪口を……

Yuya 飲む人が少なくてさー、みたいな。お酒は重要ですよ。まあ、Ruby の嫌いなところってないですね。昔思ってた悪いところはどんどん、たとえば、速度にしてもバンバンあがってるし。それに、マシンの速度も上がってるので。不便なところも、言語仕様がコロコロ……。コロコロじゃないな (笑)。着実に良くなってるし。コロコロ変わったら嫌ですね。

okkez うん。でも、そんなコロコロ変わってるところって無いよね?1.9 でコロコロ変わったところはあるけど。

Yuya うん。だから嫌いなところっていのは無いですね。

Rubyを使った成功事例

okkez えっと、Ruby を使った成功事例。まあ、お仕事でも 10 年とか使ってるんで色々とあると思うんですけど。

Yuya そうですね、もうずっと前から。何が一番うまく出来たかな?

okkez まあ、うまく出来たやつ、列挙したらいいんじゃないですかね?

Yuya でもまあ、ほとんど Web 系ですね、

okkez でも 10 年前とかだったら、Web 系じゃないんじゃないの?

Yuya いや、一番最初に作ったやつも Web 系ですね。

okkez CGI で?

Yuya そうですね、その時は CGI でした。最初に使った Ruby は 1.4 系だったかな。まだクラス変数も無い時代です。

okkez 1.4 系で、CGI でそんな使ってたってのは、僕は初めて聞いたんですけど。

Yuya 一番最初に作ってって言われたのは、社内で使うシステムで、領収書とか請求書とかを印刷するもので、まあ、最終的には PostScript ファイルをプリンタへ投げていくやつなんですけど。それが一番最初に作ったやつですね。

okkez なるほど。

Yuya PostgreSQL と Ruby を使って。それが一番最初の仕事ですね。

okkez へぇー。

cuzic 当時としては先進的や。Perl とかやったらありそうやけど。

okkez すごいと思う。

cuzic PostgreSQL も今よりずっとバージョン古いはず。

okkez PostgreSQL、10 年前やったら、6.0 系かな?*8

Yuya そうですね。その当時は PostgreSQL ばっかりでしたね。成功事例……、そうねぇ、成功事例ってこまごましたツールの方が、下を支えてるから。

okkez ああー。

Yuya 結構、Java のプロジェクトでもコードジェネレーターはガンガン Ruby で書いて。仕様書のファイル、例えば Excel ファイルをスクリプトに食わせて Java のコードを吐かせるみたいな。

okkez コードジェネレーションは楽しいですよね。

Yuya 楽しいし、かなりそういう使い方が多かったんじゃないかな。それぞれのプロジェクトは動いてるわけだから、それぞれ成功してるって言うことですかね。一番大きいのは、なんだろうな、Ruby で。Ruby で作って一番大きいのは、前回プロジェクトでやった、電子カルテかな。

okkez ああー、Rails?

Yuya Rails ですね。

okkez それが rake stats で言うとどれくらい?

Yuya なんぼだったかな?ちょっと数値は覚えてないですね。

okkez 5000 行とか、1 万行とかですか?

Yuya 2 万行は、いってる。

okkez 2 万行いってて、テストの比率が?

Yuya 3 から 4 にかけてですね。3.5 とかぐらいじゃないかな。

okkez なるほど。

Yuya 僕がやったとこだからその辺になると思います。

okkez 2 万行で……。テストコード 6 万行か、すげえな。

西山 2 万行、すげえ。

Yuya あー、プロダクトコードが 2 万行ってことですか?いや、そこまではいってない。

okkez 全部で 2 万行で、その中で、1:3 とか、1:4 とか位だから……

Yuya そんなに大きいわけでもない。2 人でやってましたしね。

okkez プロダクトコードが 5000 行ってことか。

Yuya あるかな?その辺のプロダクトの stats はとってないからな、最近。

okkez ま、それもすごい成功事例ですね。

Yuya そうですね、道具としてすごい役にたってますね。

Ruby のキラーアプリケーション

okkez では次、Ruby のキラーアプリケーション。何でしょう?

Yuya キラーアプリ?もう Ruby 自体がキラーアプリなんで。

okkez あー。

Yuya これがあるから、Ruby を入れるとかじゃなくて……

okkez Ruby があるから Ruby を使う!

Yuya (笑)。むしろ、今まで作ってきた、こまごましたツールとかがキラーアプリですかね。

okkez 自分にとって?

Yuya もう、Ruby がないとやっていけない。だから、キラーアプリっていうキラーアプリは無いですね。Ruby の存在だけですごい価値のあるものだから。

okkez なるほど。

Ruby の習得

okkez Ruby の習得は簡単でしたか?

Yuya Ruby の習得は簡単でしたね。別に違和感無く。最初は yield はどうやって使ったらいいんだ見たいな、その辺の慣れないやつはありましたけど。

okkez いっぺん挫折した僕とは違う。

Yuya (笑)。なんか悩んだかなぁ?

okkez まあ、でも 10 年以上前から使ってるから。

Yuya てか、10 年前を思い出せって言われても、なんか難しい(笑)

okkez まだ 10 代半ばで超若かったから、覚えるのも超早いと。

Yuya かつ、他の言語もあまり知らなかったわけだから。違和感なく。

okkez リファレンスとか学んだんですか?それともいきなりガリガリ書いて動かして見たいな?

Yuya 基本的には書いてかな。リファレンスは黄色い Ruby の本 *9 が出ていたと思う。あと 256 本ですね。結構会社で買ってたから、それを読んでたくらいかな。当時リファレンスって何が出てた?

okkez まつもとさんが書いたやつが多分昔はあったはず。

cuzic それ、聞いた黄色い本じゃないの?

Yuya うん、黄色い。

cuzic その黄色い本だったら 2000 年くらいかな?そして 256 本の流行が 2001 年から 2002 年だから、11 年前だったらその頃、1.4 の頃だったら、まあ、黄色い本だけがある時代じゃないかな?

okkez ああー。でも Web にリファレンスはそんなに無かったかもしれない。

cuzic あるある、Web にはリファレンスはある。

okkez でも yhara さんの回でも、Web の 1.6 とか 1.4 とかのリファレンスを見て学びましたって書いてあるんやけど、多分それと同じような感じだったんだじゃなかろうかと。

Yuya 多分、黄色い Ruby の本と、白い、原さんの本?原先生の本も古くないですかね?*10

okkez その本、俺は見たこと無い。

Yuya 初期に、白い本があった気がしますね。その本も見た気がしますけど。でも通して読んだわけではないですね。

okkez ああー、飛ばし読みで。

Yuya うん、必要なところを。

okkez 当時は言語仕様もそんな大きくなかったから。

Yuya そうですね。標準添付ライブラリも少なかったし。

KazukiMatz Proc は最初からあった?

cuzic Proc は最初からあったやろ。1.4 と 1.6 ってそんなに大きかった印象無いけどな。標準添付ライブラリはずっと大きくなっているけれど。

Yuya クラス変数が入って……

cuzic 大雑把なところで言えばそんなに変わってないけどな。Symbol がちゃんと整数から Symbol になったとか。

Yuya おおー。

cuzic あとは Numeric 関係の細かい動作が変わったとか。

Yuya ものすごい把握してますね。

全員 (笑)

cuzic そんなん、しょうも無い仕様の話やん。

okkez いや、Numeric 関係はそんなしょうもなくないよ。

cuzic (笑)。いやいや言語仕様の大きな変更って言う意味ではたいしたこと無いよ。

Yuya そう言われれば、ソースコードを大きく書き換えたことはほとんどない気がするな。

okkez 最初に書いたコードが今も動いている?

Yuya いや、さすがに当時のコードは全然残ってないんじゃないかな。なんかあったかな?探せばあるかもしれない。

okkez 実家にあるんじゃないですか?

Yuya あー、バックアップはあるから探せばある。

プログラミング全般

初めてのプログラミング

okkez じゃあ、次。プログラミング全般について。初めてのプログラミング。初めてコードを書いたのはいつくらいですかね?

Yuya 多分、小学校 5 年生の時に Visual Basic を使ったのが最初ですね。

okkez おー、正統派ですね。

Yuya 入門としては?

okkez 入門としてはって言うか、始めた年齢も正統って言う感じ。

Yuya そうねぇ。なんかその辺だいたい多いですね。

okkez なんか、俺とかみたいに遅くない。

cuzic でも遅い人だっていっぱいいると思うけどな。

okkez いままでの Hotlinks に出てきた人はみんな早いよ。

cuzic えっ、そうなんや。

okkez みんな、小学生や中学生からやってる。

Yuya VB の 4.0 だったかな?

cuzic VB って、当時すごい新しい言語だと思ったけどな、俺。

Yuya VB 4.0 も 16bit 版と 32bit 版があって、うちは 32bit 版の方を使ってた。

okkez 何のきっかけなんですか?

Yuya 叔父が SE なんですよ。

okkez へぇー。

Yuya あと、きっかけとしてあるのは父が仕事用にコンピュータを買ったことですね。その時に叔父が VB 与えてくれたんです。

okkez 父親が買ったコンピュータなのに、叔父がやってきて VB をくれて、で、パクッて食いついたみたいな (笑)。なるほど。

Yuya そっちが先だった気がします。

okkez やっぱり周りの人の影響は大きいですね。

Yuya そうですね。あとタイミングと。小学生時代はずーっと VB ばっかりですね。ほんと単純なものですけど。

cuzic VB は簡単にすごいアプリ作れるから。

Yuya ほんと小学生でも簡単に。

okkez 何を作ってたんですか?

Yuya 5 年生のときは、しょうもない数当てゲームみたいなものですね。で、そのうちシステムツール寄りのものを作り始めて。プロセスのリストを見たりするツールを。

okkez Unix でいう ps みたいな?

Yuya ああ、そんな感じ。あと、ウィンドウの状態の詳細な情報を表示するようなツールを作ってた気がする。

okkez へぇー。

cuzic 小学生が関心を持つテーマではないような気がする。

Yuya (笑)

okkez いやでも、今の Yuya さんから考えると想像つくよね。

cuzic あー、想像つく。

Yuya で、小学生のときか中学生のときか忘れたんですけど、実行ファイルを解析して DLL の依存関係を調べるっていうのを作った。

okkez へぇー!すげぇ!

Yuya それが叔父にえらい受けてですね、これはいけると。で、シェアウェアにして中学生の頃に売ってたかな?それが実は今だに Vector にあがっているという。『LibraryLinkViewer』だったかな?

okkez へぇー。それは何本くらい売れたんですか?

Yuya いやー、数は覚えてないですけど。100 本も売れてないんじゃないかな?

cuzic すごい。

Yuya Vector で見ると 2 本くらいシェアウェアが残っていて、1 個は父親から頼まれて作った『空調・冷凍サイクルアドバイザー』というものです。うちの父親は空調関係の工事の仕事をやってるんですけども、その空調機の健全性を判断するというツールです。

okkez 組み込み?

Yuya いや、違う違う。ま、普通の Windows のアプリケーションで、空調機のいろんなパラメータ……、たとえば吸気の温度とか排気の温度とか電圧の具合とかを入れると、この空調機が今どういう状態ですよという、健全性な範囲内に保たれてますよというのを出してくれるアプリです。それは親父に頼まれて作って、結局なんかお金になりそうだからっていうんでシェアウェアにしたんですが、それが 1 本 5000 円 *11 かな?だからなんか中学生とかだと、1 本売れるだけで 1 ヶ月くらいの小遣いを手に入れるわけですね。

okkez おおー、素晴らしい。

cuzic 売れてたんですか?

Yuya いや、全然ですよ。ニッチですから。でも 30 〜 40 本くらいは売れたかな?子供には結構大きい金額でしたよ。

okkez 1 本 5000 円が 30 本売れたら 15 万超えるわけですからね。

cuzic ほんまや、うわー。

Yuya そんなに売れてたかな?ま、いいや。

okkez でもようけ売れたってわけですね、結構。

Yuya ま、お小遣いにはなりましたね。

Ruby 以外のプログラミング言語

okkez えっと、次は、Ruby 以外のプログラミング言語は何を使ってましたか?

Yuya さっき話したように、小学生時代はずっと VB で、中学生になって C++ をやって、その後に C 言語をやったみたいな感じですね。

全員 へぇー。

Yuya オブジェクト指向の C++ をやって、その後になんか、オブジェクト指向じゃない C ってこうなんだみたいな。なんで「::」が無いの?見たいな (笑)

cuzic なんかいきなり C++ を触ったのは初めて聞いたな。

Yuya 先に C++ でしたね。

cuzic だって、超でかいやん、C++ って。

Yuya そら、全部言語仕様把握してたわけじゃないですよ (笑)。さすがにテンプレートとかもいじってないし。使ってはいたかもしれないけど。

cuzic その流れやったら、Visual C++ 始まりってこと?

Yuya あ、そうです。Visual C++ 始まりですね。でもなんか MFC *12 は苦手で、そうじゃない Win32API をたたいてアプリケーション作ってましたね。

cuzic 自分でウインドウを作るパターン?

Yuya そうですね。

cuzic おー、それは面倒やから、それはめっちゃ大変やん。

Yuya ウィンドウを生成して、自分でメインループ作って。

cuzic そうそう。VB だったら 10 行くらいで出来ることが、300 行みたいな。そんな時代だよね?

Yuya 最初にウィンドウ出すまでにすごい長い。

全員 (笑)

Yuya うまくいってるのか分からない。

okkez よく分らないまま、300 行を書き続けるという、今では考えられないスタイル?

Yuya そうそう。Win32API の本はたくさん持ってましたね。

cuzic 絶対いるやんな。情報も転がってないから。

Yuya もう無いと無理。で、さっきの LibraryLinkViewer を C++ に移植して。結局リリース版はどっちにしたのかな?VB のやつが売ってるのか、C++ のやつが売ってるのか分からないですけども。ちなみに C++ 版のソースはまだ手元にあります。案外ちゃんと作ってましたよ、久しぶりに見ても。

okkez へぇー。

Yuya だからそこで実行ファイルに対してすごい興味があったんで、まあ後々 Exerb みたいなところに落ち着くんですけど。その時点では Win32 の実行形式については大体知っていたんで。

okkez あー。

Yuya どういうコードで入っていて、どういう依存関係で入っていて、見たいな。

okkez なるほど。すげー。

cuzic すごい。なんて早熟なんだ。

Yuya たしかあれは中学……。そうですね、LibraryLinkViewer 作ってたのは中学生の時です。

okkez 中学生の時って言っても、13 歳、14 歳じゃないですか。その 2、3 年後にはもう働いてるんですよ。

cuzic もうちょっとで Exerb の Yuya さんやん。

okkez ほんまや。

Yuya まあ、そもそも僕はあんまり中学校には行ってないので。まあ、いわゆる登校拒否児ですからね。簡単に言えば。

okkez まあ、その辺は生い立ちの時に。

Yuya (笑)。じゃあ、後ほど。それで、言語の話に戻ると、その後に Ruby がきて Java がきて、 C# とかがきて……

okkez Scheme が。

Yuya Scheme はきてないです (笑)

okkez JavaScript ?

Yuya あ、そうですね。

okkez JavaScript で、最近だと Python ?

Yuya Python はそうですね。

okkez 一緒にやりましたね。

Yuya Google AppEngine で使いたいがために覚えた。多分、ちゃんと勉強したのは Python が最後じゃないかな?後は Scala とかは、かじってるだけですからね。ま、言語遍歴はそんな感じですかね。

okkez じゃあ、今、本気で書けって言われて書けるのが、Ruby と C ?

Yuya C は書けるかな?まあ、ちょいちょい調べながらなら書けるかもしれないか。そらで書けと言われて書けるのは Ruby だけの気がしますね。

okkez 俺、Ruby も調べながら書くよ。

Yuya (笑)。僕も出来れば調べたいですけど。それはダメって言われたら、Ruby だけかな?書けるのは。

okkez それ以外だと C++、C#、 JavaScript、Java くらいは仕事で使おうと思ったら使える?

Yuya そうですね。Ruby と Java が仕事で使用頻度が高いので。Java は最近でも仕事で書いてますし。

okkez そういえば、C# ではあれですよね、Windows Mobile のアプリ*13とかも作ってますよね?

Yuya おお、そういえば。何で僕が忘れてるものを okkez さんが覚えてるんですか?

okkez ファンですから (笑)

全員 (笑)

cuzic ファンがいる、すげー。

Yuya それはアレじゃないですか?前回のインタビューイとの関係のところで出てくる予定だったんじゃないんですか (笑)

okkez (笑)。前はお友達って言ったかな?「プログラミング Gauche 」の読書会とかもやったんだっけ?

Yuya Gauche の勉強会しましたねぇ。

okkez 途中で終わったけどねぇ、あれ。

Yuya そうですね。あの人が忙しくなってしまったから。あの人の名前を思い出せない。

okkez うん。東京行っちゃったんじゃないかな?

Yuya えっ、そうでしたっけ?奈良先端大に行ったんじゃなかったでしたっけ?

okkez あ、そうか。奈良先端の人でやってたけど、忙しくなってなんもできなくなったんか。

Yuya と、思ってますけどね。

okkez ま、でも後もうちょっとやしな。自分で読んでもいけるはず。

Yuya 言語を覚えるのは好きですね。

美しいソースコード

okkez じゃあ、次。これ重要な質問。いままで読んだ中でもっとも美しいコードはなんですか?

Yuya かなり難しいですね。あまり人のコードを読んだことって……。仕事でかかわるコードを読もうって、実はあんまりしたことが無くって。

okkez 僕もね、そう思ってたんですけどね。でもめっちゃ人のコードを読んでました (笑)。インタビュー終わってから振り返ってみたら、めっちゃ人のコード読んでるのを思い出しました。

Yuya それは、オープンソースソフトウェアで?

okkez Hiki はコミッタだから全部読むし。

Yuya おおー、それだけでもすごいですね。

okkez Ruby のコードも、全部じゃないけど、標準添付ライブラリとか、自分がリファレンス書いたとことかは全部読んでる。

Yuya 読んだ率が高いオープンソースソフトウェアは、やっぱり Ruby ですね。インタプリタのコード。MRI *14 のコードを、1.6 か 1.8 かは忘れましたけど。まあ、とても読みやすいですからね。多分それじゃないかな?一番綺麗なコード。

okkez そうですね。C で書かれてるコードは、C らしいところを除けば、読めるよね。

Yuya まあ、邪悪なところを除けば。とっても読みやすいですよね。

okkez システムコールとかしてるところは、よう分からんけど、そうじゃないところは俺でも読める。

Yuya OS 依存のとことかは、ちょっとしんどいけど、それ以外はとても読みやすい。美しい。と言うことで Ruby インタプリタです。

okkez それは美しいんですか?

Yuya 美しいと思います。うーん、読みやすい、美しい。うーん。いいんじゃないですかね (笑)

okkez なるほど。

Yuya はい。

okkez 自分のコードはどうですか?

Yuya うーん、客観的に見れないので、どうなんでしょう。僕なりにポリシーを持って書いてはいるつもりなんですけど。

okkez 僕は好きですけどね、結構。

Yuya ありがとうございます。なるべく、リズム感のあるコードを書くようにはしているつもり。

okkez 中カッコと、do 〜 end の使い方は、ちょっと趣向の合わないところがあるけど、それ以外は好き。

Yuya (笑)。そっか、そこは相容れないのか……

okkez いや、相容れなくはないんだけど、一瞬つまる。

cuzic 俺は昔は Yuya さん派だった頃があるけど、俺は今は do 〜 end 派やな。

Yuya (笑)。なんですか、Yuya さん派と do 〜 end 派って。二極化して(笑)

okkez 俺、両方使うからさ。

Yuya 僕は、両方使うって言うのが、リズム感が無くてあまり好きではないというだけですね。

okkez 美しいコードは Ruby と。

Yuya はい。あ、じゃあ、自分のコードも入れときます。俺様のコードを見ろと(笑)

okkez (笑)。詳しくは GitHub で。

Yuya コメントがバンバンついたらどうしよ。「ここ汚いですよ」って。

okkez ここ汚いですよはあんまりないんじゃないかな。このテスト無駄ですよ、はありそうやけど。

西山 (笑)

Yuya たしかに。僕のテストは若干、過剰ですからね。

興味を持っているテーマ

yuya5.jpg

okkez 次、興味を持っているテーマ。

Yuya それはコンピュータ関係でってことかな?

okkez うーん、プログラムと言うか、ソフトウェアと言うか、アプリケーション何作りたいとか。

Yuya 最近はやっぱり、スマートフォンで動くアプリケーションですかね。

okkez ああー。今は主に Android やってますよね。

Yuya そうですね、今は Android を中心にやっていて、今年中には iPhone のアプリも作りたいな、と思っています。

okkez アレ (いまどこ?鉄道マップ) *15 を移植する感じですか?

Yuya そうです!アレを移植するんです!まずは作ったことがあるやつを移植するのがやりやすいですね。そんなわけで、興味があるのはモバイルアプリですね。

okkez ちなみにいままで何本作ったんですか?

Yuya うーん、何本?Android マーケットにリリースしてるものという数え方で言うと、20 本くらいですね。

okkez 「いまどこ?鉄道マップ」用の追加データを除くと?

Yuya データを除くと、3 本です。

okkez データが 17 本?

Yuya データが 17 本 (笑)。20 本中有料が 11 本じゃないかな?

okkez ああ、そうなんだ。へぇー。意外と少ないですね。

Yuya うーん、どうなんでしょう。半分が有料と言うことは (笑)

okkez 多いのか、少ないのかよく分からない。

Yuya 個人的には多い気がしますけど。まあ、今のところデータが多いですね。Android アプリに関しては他にも色々作りたい物はあるんですけど、なかなか時間が無くて。

okkez そのデータを作るのにも、Ruby が大活躍してるってことですよね?

Yuya 大活躍してる。ガリガリ使っております。

okkez Ruby ではなんか気になるテーマはありますか?

Yuya Ruby ですか?うーん、実はあんまり追ってないんですよね。

okkez おっと。これは許せない発言。

Yuya (笑)。実はまだ 1.9 も全然使ってないし。まぁ JRuby は使ってますけど。そういう意味では、JRuby を Google AppEngine で動かすと言うのが、個人的にはホットなネタではありますね。

okkez ちゃんと動きますか?

Yuya うん、動いてますよ。AppEngine 上で動いてる、JRuby アプリケーションは 8 本くらいあります。

okkez へぇー。

Yuya Python で書いたのは結局 1本だけですね。後は全部 Ruby ですから。

okkez あれだけ?雨宿りだけですか?

Yuya そうですね。「雨宿り最適化計画」っていうアプリケーションだけがいまだに Python ですね。あれは書き換えて無いです。

okkez え、それは Google AppEngine で 8 本って、解析系とかのやつ?

Yuya そうですね。えーっと。ベイジアンフィルターのやつと……

okkez ironnews のバックエンドのやつ?

Yuya そうですね、鉄道ニュースを自動的に分類してくれるアプリケーションのクローラーがいたり、記事タイトルを取得するやつがいたり。あと、ベイジアンフィルターで記事を判断するやつとか、ニューラルネットワークで同じく判断するやつとかが AppEngine 上で動いてますね。提供しているアプリケーションとしては 1 個なんですけど、AppEngine 上のアプリケーションとしては 8 個くらいあるんじゃないかな?

okkez それはやっぱ分けた方がいいってことなんですよね?

Yuya まあ、開発がしやすい。

okkez AppEngine の制限にひっかかりにくくなるとか。

Yuya いや、ちゃんと有料にしてるので、お金を払ってますよ。そのフリークオータを逃れたいから分けてるってわけではないですね。

okkez あー、なるほど。

Yuya それぞれのアプリケーションはたしかに ironnews 用ではあるんですけども、汎用には作ってあります。 ironnews 自体は鉄道専用というわけではないですね。目的が違うやつは Google AppEngine 上で別のアプリケーションとして動かしてます。

okkez たとえば、テーマが決まってれば、そのテーマに沿ったニュースが集められると。

Yuya まあ、基本的にはそうですね。別に鉄道に特化しては書いてないです。

okkez 最近、 ironnews の精度めっちゃ高いよね。

Yuya 最後にアップデートしたやつがうまく効いてるのかな?学習データが 3 万件か、4 万件くらいになりました。

okkez 鉄道の関係ないニュースがあんまり来なくなった。

Yuya そうですね、昔は交通事故が多くて。「衝突」にやたら反応してるのが多かったけど。最近は確かに少ないです。

okkez この前はインドの列車事故のやつはちゃんときてたし、それ以外も電車のニュース、事故以外のニュースもほのぼの系のニュースもちゃんときてるし、素晴らしい精度だと思います。

Sixeight Ruby 系のニュースとかはやらないんですか?

Yuya 「Ruby」は難しいな。

okkez Ruby の場合、定点観測してれば大体大丈夫だし、はてなダイアリーとか、はてブとかで Ruby タグを拾えば大体拾えるし。

Yuya 適度にニッチなやつじゃないと意味がないという。

okkez 俺、なんか Delicious *16 で、Ruby タグを拾おうとしてるけど、なかなか来ないね。

Yuya 確かに、ソーシャルブックマークで済むものであるのかもしれない。まあ、ソーシャルブックマークもデータの一つとして使ったりはしてますけどね。

okkez まあ、色々 API あるし、何でもあると思うけど。

Yuya Google ニュースと、各種ニュースサイトのフィード分析して鉄道っぽいやつを入れてる。まあ、本当はジャンルの分類とかもやりたいんですけど。

okkez あ、「事故」とか「イベント」とか?

Yuya うん。あと、「痴漢」のニュースは余分なので、「痴漢」はカテゴリ分けして省きたい。

okkez あー。

Yuya 別に鉄道好きでも、鉄道で起こった「痴漢」のニュースは読みたくないので(笑)

okkez 確かに。

Yuya でも、鉄道ニュースとして拾われるのは OK だと思ってるんだけど、カテゴリとして外せるようにしたい。まあ、「痴漢」っていうジャンルだけ見ていたら、それは変態ですね (笑)

全員 (笑)

cuzic そんなニッチなジャンル。

Yuya 鉄道痴漢ネタ RSS とか。出そうと思えば出せる状態ですからね。

okkez えー。でもそれいるかな。

cuzic 鉄道痴漢マニアにはたまらない(笑)

Yuya あと、地域では分けたいと思っている。カテゴリは用意はしてるんですけども。今は手動で割り当てたものしかタグは振られてないですね。あとは、はてなブックマークで地域が振られている場合は、そこから持ってきてます。

okkez ああー、なるほど。まあ、そんな感じで。

Yuya 何の話なんでしたっけ?

okkez えっと、多分、興味があるテーマ?

Yuya ああー。だから機械学習には興味があります、みたいな。

okkez 鉄道に興味がありますってことですね(笑)

Yuya 鉄道って言うか、機械ですけどね。機械全般が好きなんで。

okkez 俺も機械学習、ちゃんと勉強したいんだけどな。自分で実装してみたいんだけど、なかなか。

生い立ち

生い立ちについて

okkez じゃあ、次。生い立ちいきましょう。

Yuya 生い立ちってそんな後の方にあったんですね。

okkez うん、なんか後の方ですね。

Yuya そうですね。まあ、 1984 年生まれ。すごいド田舎で生まれ、15 歳の時に実家を出て、2 年間は叔父夫妻の家に居候をしてました。

okkez SE の叔父?

Yuya そうです。そこに2年間居候して、17 歳の時から一人暮らしですね。

okkez ええー、すげえ。

Yuya もう、10 年近く。

okkez なんかドラマ化決定!って感じですね。

Yuya (笑)。小池徹平 *17 が主演みたいな (笑)。それからひたすら仕事して、まあまあ、同じソフトウェアエンジニアを続けてはいるんですけども、外的要因もあって、転職を 2 回してます。

okkez 徐々に東に。

Yuya 徐々に……、そうですね。北へ東へ。そうでもないか。1 回目は福岡に就職して 2 回目というか、自営業の期間が 3 年間くらいありました。それからまた就職して神戸に来たんですよね。それからはまだずっと続いてる。だから過去最長ですね、今の会社にいるのが。とはいえまだ 5 年目かな?

okkez いや、大丈夫。俺は 5 年も続いたところが無い。

Yuya (笑)

okkez まだ社会人としても 5 年目か 6 年目くらいやし。大分、すっ飛ばされたけど、ちっちゃい頃の話とか無いんですか?

Yuya 小さい頃?ほんとに子供の頃から機械が好きで。うちの父親が電気工事やったり、設備工事やったりだったので、家に機械がいっぱいあって……

okkez ラジオ作ったりとか?

Yuya ラジオは壊したことしかないですね。ビデオやラジオを分解してましたね。

okkez 分解して戻せなくなって怒られる?

Yuya いや、壊れたやつしか分解して無いので。分解してダイオードとかの部品取りをして、こまごま遊んで……

西山 目的が (笑)

Yuya ほんとに部品取りでしたね。

okkez (笑)

Yuya 1 度危なかったのは、CD プレーヤーのレーザーダイオードを分解してた時にバネが目に向かって飛んできて、それは大分痛かったですね。

okkez 当たったんか (笑)

Yuya あ、でも目は閉じてたのかな?相当ビビりましたよ。でも戦利品はレーザーダイオードですよ。

okkez おー。

Yuya すぐ焼き切りましたけどね。

okkez あれ?

Yuya あれ、結構シビアなんですよね。電圧の許容値が広くないので。

okkez レンジが狭い?

Yuya でも光らせることは出来ましたけど。確かすぐ焼き切れたんじゃなかったかな?あと、LED を破裂させたことがあります。

okkez えー、危なー。

Yuya ほんとに破裂しました。LED って赤いやつだと 10mA から 20mA くらいの電流を流すんですけど、それを鉄道模型のレールに挟んで、1A の電流をかけたんです。

全員 (笑)

Yuya そしたらパーンって。でもしばらく光ってましたけどね。

okkez へぇー。

Yuya その時も、破片が顔の近くを飛んでいって、結構危なかったですね。

okkez 危なかった。

Yuya ま、同じようなネタでいくと、科学の実験とかだったと思うんですけど、アルミホイルとコップを重ねてコンデンサを作るみたいなのやったことあります?それを 3 層くらいやって接続して放電させようと思ったら、感電して。

cuzic うわー。

okkez ビリビリビリって?

Yuya どれくらいの時間か分からないですけど、ほんとに動けなかったですね。

okkez へぇー。

Yuya あれが 1 番の感電ですね。

okkez それは、普通 1 層にしか、しないの?

Yuya 1 層にしかしない。それを 3 つ直列につないで、それをパチってやって遊ぼうかなと思って。まあ静電気みたいに放電するんですけど、それで感電したのはビビりましたね。

okkez それは授業中にやっちゃった?

Yuya いや、自宅で一人で遊んでるとき。

okkez 一人で?よけい危ないな。

Yuya いや、まあ、本来そんな危険なものではないんですけど。でもそれを 3 連続にするやつはなかなかいないんじゃないかなと。

全員 (笑)

Yuya 1 個なら、ほんとパチってくるくらいのやつですけど。でもどんな風に接続したかは覚えてないですけど、多段にしたって言うのは覚えてますね。

okkez へぇー。俺は感電無いかも。注意深かったからかな?

西山 なんと。

Yuya LED は爆発させてなんぼですよ。

全員 (笑)

okkez LED 自体、触ったことないかも。

全員 えー?

okkez LED 電球はあるで。家にあるから。

Yuya (笑)

cuzic LED の単体部品を自分で触ったことがないの?

okkez 無いと思う。ラジオくらいしか作ったことないから。

Yuya そっちは逆に無いですね。結構、大きくなるまで半田付けってしたこと無かったです。

cuzic へぇー。

Yuya むしろ最近ですね。

okkez 半田付けは小 5 くらいにやったくらい。

Yuya 小中学生ではまったくやってなくて 10 代後半ですね。H8 *18 とか AVR *19 っていうマイクロコントローラを使って色々作るときにはじめたくらいですね。

okkez へぇー。

Yuya その時にはプログラミングの知識もありましたし。その時は C 言語でしたけどね。

okkez なんか、機械を作ったりとかはしてますけど、外で走り回ったりとかはないんですか?

Yuya 全然ないですね。

okkez なんかさ、大分県の日田市って言ったら、周りに電気街とかもなさそうなのに、外で遊ばない?

Yuya 電気街はないですけど、そんなに外で遊んだ覚えは無いですね。

cuzic 電気街か外で遊ぶか、自宅で機械作るかしか選択肢がないの?

全員 (笑)

okkez 自宅が電気街みたいなもんやから。

cuzic あ、そういうこと。

okkez なんか田舎の子は外で遊ぶイメージがあるんだが。

Yuya 小さい頃はほんと太ってました。コロコロしてましたよ。体重は今とあんまり変わらないです。

okkez ええー!

Yuya 当時 51kg くらいで、今も 50kg くらいしかないので。なんで、かなりの肥満児でしたね。色は白くて白豚ちゃんと呼ばれてたくらい。

okkez ええー、それはすごい。

Yuya 中学生になって、急に痩せた感じ。

okkez 痩せたっていうか、上に伸びたからっていうこと?

Yuya かもしれないですね。で、中学生くらいでピタって止まって、小さいままですけど。

okkez へぇー。部活とかは?

Yuya 部活ってしたこと無いですね。

okkez ずっと帰宅部?

Yuya まー、そもそも小学 4 年くらいのころから行っていないので。そうですね。小学校 4 年くらいから学校に行かなくなり始めて……

okkez 4 年生くらいから部活が始まるんですよ。だから部活をやってなくて不思議はない。

Yuya 中学校もほとんど行ってないので。ま、たまにコンピュータ室に行ってたくらいで。授業は全然受けてないので。でもまあ、中学校の頃は普通に友達と遊んではいましたけど。

okkez ワルやったんですか?

yuya6.jpg

Yuya いや、違いますよ。

okkez ワルではなかったんだ?学校行かなかったのは何でなんですか??

Yuya なんか馴染まなかったんですね。

cuzic あるある。よくあること。

Yuya 中学生の頃は、結構父親の手伝いをしてました。工事の工程表をひいたりとか。

okkez えー (笑)。

Yuya あ、紙で書いてあるやつを、パソコンに入力するってことですけど。

okkez あー、なるほど。オペレーター系の仕事をしてたと。

Yuya そうそう。それのアルバイトのおかげで本を買えてたと。

okkez なんかあれですね。普通の人の 10 年くらい先を生きてますね。

全員 (笑)

okkez 僕の知り合いで高卒で働き始めた人は、大体 SE やるっていっても、オペレーターから始まって、とかだったんで、それの 5 年くらい先いってる感じですね。

cuzic 下積み時代が中学生みたいな。

okkez そうそう。

cuzic それで 15 歳で作者になって、今ではもう神みたいな。

全員 (笑)

okkez 中学校は行ってなくて、さっきの働き始めた頃の話になるんですね。

Yuya そうですね。

okkez なんか未踏やってたと思うんですけど。

Yuya あ、そうですね。それは最初の会社に入って、3 年目くらい……。18 歳の頃ですね。

okkez 未踏は本体の方なんですよね?

Yuya いや、ユースの方。一番最初の未踏ユースですね。確か本体の方にも応募したんですよ。我ながらすげー適当なネタだった気がします。未踏を知ったのが期限の直前で、とりあえず何か書き上げよーぜ見たいな感じで。

cuzic ユースの方だけ Exerb 申し込んで、本体の方は Exerb じゃなかったの?

Yuya はい。でもとりあえず Ruby 関係でしたよ。すごい適当なやつですけどね。Exerb のやつ は公表されてから締め切りまで、ちゃんと時間がありました。結構会社の人たちや勉強会のつながりの人たちが協力してくれて、最終的には自分の文章なんですけども、訂正を入れてくれたりとか。プレゼンテーションがあるんですけど、それは東京と TV 電話をつないで、東京の人に見てもらったりとか。何回も練習しましたね。おかげで、プレゼンの評価はやたら高かったです。

okkez へぇー。

cuzic さすが。イケメン。

Yuya 関係ない (笑)。プレゼンの評価はなぜか高かったですね。足はガクガクブルブルでしたけど。でも時間はぴったりでした。1 ページ 1 ページ、きっちり時間を計って、それにあわせるように練習したんですけど、その通りに出来たので、それは気持ちよかったですね。

cuzic へぇー。

Yuya 「残り 1 分ですよ」のベルは予定通りのところで鳴って、10 秒くらいしか残らずに終わったみたいな。

okkez あー。理想的な流れ。

Yuya まあ、うまく出来たんじゃないんですかね。

okkez そこまでプレゼン練習する人っていないんじゃないかな。

Yuya 僕も、過去にそれだけですよ。

cuzic そもそもプレゼンするっていうのがほとんど無いよね。

okkez じゃあ、そろそろ Ruby 勉強会で発表の方を。

Yuya おっと。

cuzic Yuya さん、1 回か 2 回くらいしかやったことない?

Yuya 1 回しかないですよ。

okkez もっとやらないと。

Yuya 他の勉強会でも 1 回くらい。 C# 入門っていうのを九州プログラミング勉強会でやったのと、Ruby 勉強会で Exerb 入門をやったのと……、くらいですね。あんまりプレゼンテーションの経験って無いですし、得意でもないですけど。

okkez 未踏ユースは Exerb 作って、最終的な評価はどうだったんですか?

Yuya 結果は、スーパークリエータを頂いた *20 とかそういうことですかね?

okkez そういうことです。

cuzic (笑)

okkez という、誘導尋問です。

全員 (笑)

Yuya スーパークリエータに任じて頂いたので、まあ、ユース自体が初めてでしたし、その中でも最年少だったので、必然的に最年少のスーパークリエータでもありました。*21

okkez その記録はまだやぶられていない? *22

cuzic いや、やぶられてるんやないかな?登大遊さんって若いよね?当時の年齢で言えば。*23

okkez スーパークリエータのリストってどこにあるんだろうね?

cuzic スーパークリエータだけのリストってないんちゃう? *24

okkez 「未踏 IT 事業でスーパークリエータ 12 名を認定」って、12 人も出たりするの? 1 年に一人、そのもっとも優秀なプロジェクトの人だけやと思ったらそうじゃないんや。

cuzic 違う違う。

Yuya それだったらすごい嬉しいですけど。僕のときで 6 人ですね。

普段の生活スタイル

okkez 普段の生活スタイル。

Yuya そうですね、大体 8 時から 9 時の間に起きて、朝ご飯にバナナとチョコレートを食べて、9 時から 10 時の間に会社に出社するかな。

okkez なるほど、朝早いですね。

Yuya それで、午前中にひたすらウェブサイトを眺めて、昼ごはんを食べて。昼ごはんを食べてる最中もひたすらウェブサイトを眺めている。まあ、主にニュースと技術系のサイトの巡回ですね。

okkez うん、なるほど。

Yuya そして、午後 2 時くらいに眠気が頂点に達して、それが覚めた 3 時くらいからガーっと仕事をすることが多いかな。

okkez だいたい何時くらいまで働くんですか?

Yuya 僕は 2 つ仕事をしてるんですね。昼間は普通に、とある企業に勤めてる普通の会社員なんですけども、夜は自分の会社を持ってるのでその仕事をしています。僕は昼の仕事と、夜の仕事と呼んでるんですけども……

okkez そうですね (笑)

Yuya 大体昼の仕事は午後 7 時か 8 時くらいには会社を出るかな。ご飯食べて帰ってくるなりして、家に帰った後からが夜の会社のお仕事で、最近は大体午前 2 時くらいまで仕事をしています。

okkez 夜の仕事は午前 2 時まで。

Yuya そうですね。で、寝るのが大体 3 時くらいかな。

okkez そうか、普通の夜の仕事と似たような感じですね。

Yuya 確かに、働いてる時間帯的には (笑)。たまにお酒を飲みながらも、夜の仕事をしてますけども。

okkez あー、お酒飲みながらコード書いてる人は結構聞きますけど、みんな、よく出来ますよね。

Yuya たぶん、MessagePack の Ruby 実装は、かなりのアルコール含有率じゃないかな?

okkez あー、MessagePack の半分はアルコールで出来てる?

Yuya アルコール度数 50 パーセントって結構きついですね。

okkez アルコール度数 50 パーセントって、お酒でいうと?

Yuya ウィスキーは度数の高いものだと、そんなもんだったりしますね。40 パーセントが標準なんですけど。

okkez テキーラは何パーセント?

Yuya テキーラも 40 パーセント。

okkez ええっ、あれで 40 パーセントなんや。

Yuya テキーラはなんとなく悪酔いしますね。

okkez テキーラはあかんで。あれは飲んだら。

Yuya まあ、ウィスキーの方が、少し高い物が多いですよね。寝かせるので。寝かせるというか、蒸留だからか。

okkez 普段の生活スタイルはそんな感じで。

仕事とプライベートの両立

okkez 次、仕事とプライベートの両立。でも、そんなに朝から晩まで働いてたら、プライベートはあるんですか?

Yuya そうね、基本的に昼間の仕事は、仕事としてちゃんとしてるつもりではあるんですけど、夜の仕事は結構ぐだぐだな感じで、プライベートと混ざってる感じですね。

okkez 昼の仕事が仕事で、夜の仕事がプライベート?

Yuya そう。まあ、夜の仕事しないときは、がっつり遊んでますけどね。飲みにいったり。なんで、若干、ごちゃごちゃです、と。

okkez ごちゃごちゃ。飲みに行くのはいつも一人で行ってるんですか?

Yuya そうですね。基本的には一人ですね。だれかを誘って行くとかは少なくて、基本的に飲みにいった先で、現地調達して現地解散してみたいな感じです。

okkez あー。なるほど。現地調達というと、エロスな雰囲気がありますね。

Yuya いやいやいや、男性も調達しますよ。

okkez (笑)。

Yuya 老若男女問わずに調達いたします。

okkez 老若男女っていうことは若い人も?

Yuya 老いも若きも、男も女も調達して解散します。

okkez 解散 (笑)。へぇー。でも勉強会の時とかしょっちゅう、昨日は朝まで飲んでたとか言ってますけど、どれくらいの頻度で朝まで飲んでるんですか?

Yuya でも朝まで飲むのは少ないですよ。月 1 回も無いですね。

okkez でも勉強会の時の朝まで飲んでる率は高いですよね。

Yuya 多分、okkez さんとは日曜日にやる勉強会で顔を合わせるんですけど、そん時は結構飲んでる。土曜日の勉強会では、そんなに。

okkez 金曜日の夜から出かけてるの?

Yuya 大体、土曜日の夜に飲みすぎるというか結構飲むので、日曜日に読書会とかあったりすると、「すみません、ちょっとフラフラしてます」みたいな。でもちゃんと読んでますよ。

okkez そういわれてみれば、日曜日の時はフラフラ率が高い。

cuzic なるほど、それは認識してなかったな。

okkez 土曜日の時は、割とシャキッとしてる?

Yuya そうですね、金曜の夜はあんまり飲まなくて。まあ、そんな生活スタイルです。

使っているマシン

machine.jpg

okkez じゃあ、使っているマシン。

Yuya 使っているマシン?えーっと、自宅で……、というか夜の仕事と個人で使ってるやつは、自作機ですね。それがうちにあるマシンで一番スペックが高くて。クアッドコアの Core i7 *25 かな。

okkez あっちの部屋にあるやつですよね?

Yuya そうですね。メモリが 6G くらいで、ハードディスクが 1TB のが 2 個の RAID1、あと SSD が 80GB くらい載ってますね。

okkez すげー。

Yuya うちでは一番使用率が高い。

okkez 高級なマシンだ。

Yuya うーん、とは言え、まあ安いですよね。あとはノートブックを 2 台使っていて、MacBook Air *26 と、最近は結構家に置きっぱなしですけども、黒い MacBook を使ってます。最近は AV 専用機と言うか、音楽再生専用機に成り下がってはいますけど、たまに使ってます。

okkez 何に使うんですか?

Yuya 何に使う?うーん、Core i7 のマシンが来る前はデスクトップのマシンが結構遅かったので、ちょっと重たい処理になると、2、3 台同時に動かしたり。機械学習のトレーニングをする時に分散させてやったりとか。

okkez あー。

Yuya と言うわけで、使用頻度はものすごい低いんですけど。ま、MacBook Air の方はまあまあ使いますよね。でも MacBook Air は熱いので。冬はいいんですけど、この季節にはちょっと……。夏に使うマシンではないですね。そろそろ新しい Air が欲しくなってきた。

okkez 新しい MacBook Air とかって、あるんですか?

Yuya これ初代なんですけど、もう過去に 2 度は改定がかかってます。見た目は変わってないです。

okkez じゃあ、今 3 代目?

Yuya 3 代目か 4 代目じゃないかな?でもこのボディはなんだか結構好きなので。実はそんなに薄く無いのに薄く見えるボディだとか。

西山 (笑)

Yuya 肌触りがすごい好きなので、頬ずりしてみたりとか。

okkez ケーキを切ったりとか。

cuzic えっ!そんなんできんの?

Yuya HP の人でしたっけ?あれ。プレゼントされた MacBook Air で、その場でケーキを切ったみたいなエピソードがあって *27。Engadget で見た気がしますね。

cuzic へー、すごい。

好きな女性のタイプ

okkez 次、おまちかねの質問。好きな女性のタイプ。

Yuya 奥さんです。

okkez あれ、誰かと同じ答えだな。

Yuya (笑)

okkez 奥さんいないじゃないですか。

Yuya あれ、奥さんいないのに奥さんって答えた人が過去にいるんですか?

okkez yhara さん。

Yuya なんと!

okkez まあ、でも同じ答えっていうか、同じネタは関西人としてはダメなので。

Yuya まあ、基本的には好きになった人がタイプなんですけど、たとえばサイズで言えば、身長の小さい女の子とかが好きですよ。

okkez あー。

Yuya 僕はとても身長が低くて 160cm しかないので。最近の女の子は結構大きい子が多いので困ります。

okkez そうですね、多いですよね。

Yuya 頭半個分くらい小さい方が、僕は好きです。

okkez なるほど。

Yuya 抱っこしやすい。

全員 ……。

Yuya あれ、なんでそこで静まる?

全員 (笑)

Yuya なんでみんな苦笑いをしてるんですか。ちゃんとタイプを答えてるのに。

okkez いや、苦笑いしてないよ。だって、抱っこの仕方がこうやったやん?

Yuya そうですよ、お姫様抱っこに決まってるじゃないですか。

okkez なるほど。

Yuya というわけで、小さい彼女を募集中なんで、よろしくお願いします。小さい彼女っておかしいな、小さい女の子。

okkez 「小さい女の子」っていうと、なんかアブナイですね。

Yuya いやいや、幼児とかではないので。

okkez じゃあ、身長 155cm 未満、145cm 以上くらいで。

Yuya そうですね。それ以外はタイプと言うタイプはないですね。過去に付き合った女性もタイプはバラバラですし。まあ、でもみんな、天真爛漫でしたけど。あと、お酒飲む人が多かったので、飲める方がいいかも。

今後について

今後の展望、将来の夢など

okkez 今後の展望、将来の夢など。

Yuya 将来の夢は、まあ、そうですね……。cuzic さんを雇うことです。cuzic さんを秘書にすること。

okkez 秘書?

cuzic 秘書なん?じゃあ、政策秘書として働かせていただきます。

Yuya (笑)。僕はどこに進出するんですか。政界は嫌ですよ (笑)。後は手近なところでいえば、自分の会社を黒字化することですかね。じゃないと色々とまずいので。あと 50 歳くらいでリタイアしたい。

okkez あー。

Yuya 老後は、日本家屋の縁側でチェロを弾くというのが夢なので。

KazukiMatz チェロ弾けるんですか?

Yuya まったく。バイオリンを少々。もう弾けないですけど。というか、弾けてた時期も無いですけど。後はなぜか中学生の頃に、MIT で客員教授になるんだといい始めて。それはずっと、ネタとしてでもありますけど、言ってますね。

okkez あー。

Yuya 招聘されるくらい成果ができたらいいな、みたいな。

okkez どうなんかね?行けんのかね?

Yuya MIT、UCB、スタンフォード辺りで (笑)。ま、客員教授が夢かなと。そんなでかいこと言ってていいのかな (笑)。

okkez このインタビューを読んだ、MIT の教授が誘ってくれるわ。

cuzic あるある。

Yuya バーでの女性との距離感について研究して、心理学の分野で発表を。

西山 (笑)

okkez それはね、みんな知りたいと思いますよ。でも今いるの、バーに行かない人ばっかりだからね。昔ちょっとバーに行ったことあるけど、よく分からなかった。

Yuya 基本的に毎日のように行ってますからね。今日もこの後に行くと思います。先々週は 5 件はしごしたのかな?1 件目がご飯屋さんだから、バーに 4 件行ったんだけど。家に帰ってきたのが朝 5 時くらいかな?さすがに、べろべろでしたね。

okkez べろべろ。

Yuya 話し相手は現地調達、現地解散。

okkez (笑)

Yuya 調達だけして解散しないのはまずいでしょ。

okkez 調達して解散しなかったら、誘拐?拉致?

Yuya モテナイくんなのに、そんなことはいたしません。

okkez ええー?

Yuya まー、お酒は好きですね、ほんと。

okkez じゃあ、将来の夢は酒を飲み続ける?

Yuya お酒を飲んでいられる人生でいるというのもいいかも。お酒も飲めないような余裕の無い生活はちょっと。まー、そういう意味ではお酒を飲み続けたいな。

前のインタビューイとの関係、次のインタビューイ

okkez 前のインタビューイとの関係、次のインタビューイ

Yuya okkez さんとの関係は、まあ、勉強会仲間ですよね?元は。でも一番よく会ってる仲かな。飲み以外の友人では一番 okkez さんが会ってる気がする。

okkez お酒飲まない中では一番会ってるね。次のインタビューイはどうしましょうか?

Yuya 横にいる、cuzic さん。

okkez cuzic さん、いく?

cuzic マジでー?

Yuya cuzic さんにいって、西山さんとか?

cuzic 西山さんがいいんじゃない?

Yuya なんで逃げるの?

cuzic (笑)

Yuya じゃあ、西山さんいきます?

okkez cuzic さんと西山さん?

Yuya セットで?過去にセットだったのはあるの?

okkez ごとけんさんと後藤裕蔵さんの兄弟。

cuzic じゃあ、兄弟の契りをかわして。

全員 (笑)

okkez Hotlinks のためだけに義兄弟に (笑)

西山 cuzic さんでいいんじゃないですか?

okkez じゃあ、cuzic さんで。

Yuya 本も書いてるし。*28

若手に一言

okkez じゃあ、次。若手に一言。でも若いですよね?

Yuya どうなんでしょうね、もう 20 台後半ですからね。まあ、ソフトウェアの話に限って言えば、ソフト作るのはすごい安く色々できるので、バンバン試せばいいんじゃないですかね。コンパイラとかもただで手に入るし。まあ、マシンは手に入れないといけないですけど。それ以外のソフトウェアもただで手に入るし、作って壊してもコストはかからないわけですから、どんどん作るのがいいと思うよ、ですかね?

okkez うんうん、いいこと言った。

Yuya お、okkez さんに褒められた。

読者へ一言

okkez じゃー、最後。読者に一言。

Yuya (笑)。困りましたね、これ。えっと、僕の Android アプリケーション買ってください。

okkez あー。

Yuya 「 Nayutaya Inc. 」という名前で Android マーケットに登録されてる *29 ので、ぜひご購入のほどを。

okkez Android 端末で読んでる人向けに、マーケットのリンクを貼っとけばいいねん。

Yuya 全部って、20本?ま、有料のやつだけ貼っとくか(笑)。大分、悪いやつになってしまいますけど。

cuzic 有料のやつだけで単品で動くの?

Yuya 動かない。

全員 (笑)。

cuzic 普通に疑問に思ってしまった。だから、メインのやつを載せとけばいいんじゃないん?

Yuya そんな宣伝が許されるのかどうかはしらないけども。

okkez 許されるんじゃないんですか?だって、本書いた人は本のリンクが張ってあるし。

Yuya 買ってくれたらいいな?

okkez じゃ、 Android アプリ買ってくださいと。買ってくれたら、本を書きますとか?

Yuya その関連が分からない。僕が何について本を書けばいいんですか (笑)

cuzic バーについて?

全員 (笑)

okkez Rubyist のためのバーでの女性の口説き方みたいな?

Yuya (笑)。バーと女性に関する 10 の考察みたいな?

cuzic 俺買うわー。

okkez じゃ、Android アプリ買ってくださいということですね。

Yuya はい。お願いいたします。

okkez じゃあ、長々とありがとうございました。

Yuya いや、こちらこそありがとうございました。

終わりに

今回は Exerb の作者である加藤勇也さんにお話を伺いました。お忙しい中、本当にありがとうございました。次回の Rubyist Hotlinks は 「Rubyist Magazine 出張版 Ruby on Windows」の著者である cuzic さんにお話を伺います。お楽しみに。

(インタビュー:okkez、編集:くげ、磯辺)

Rubyist Hotlinks 連載一覧


*1 インタビューイの Yuya さんが経営されている会社に場所をお借りしました。

*2 msgpack-pure

*3 Ruby/SVG。XMLベースのグラフィック形式であるSVGを生成するためのRubyライブラリ。

*4 gRuby。Ruby/GDのラッパーライブラリ。

*5 玉露。形態素解析器「茶筅」のRuby用インタフェース「Ruby/ChaSen」のラッパーライブラリ。

*6 MessagePack-JS

*7 ねんがんのObject#instance_execをてにいれたぞ! 〜Object#instance_evalに引数が渡せるようになった〜 - (rubikitch loves (Emacs Ruby CUI))

*8 http://ja.wikipedia.org/wiki/PostgreSQL によると 2000 年 5 月に 7.0 がリリースされたそうです。

*9 『オブジェクト指向スクリプト言語 Ruby』。1999 年出版。

*10 『Rubyプログラミング入門』。2000年11月出版。

*11 正確には 1 本、4935 円でした。

*12 Microsoft Fundation Class。Visual C++ に付属する、Windows 用アプリケーションライブラリ。

*13 batty-agent-wm

*14 Matz Ruby Implementation。1.8 までの Ruby インタプリタのこと。1.9 以降は YARV(Yet another Ruby VM) と呼ばれる。

*15 時刻表から計算した列車の位置を地図に表示するアプリケーション。

*16 ソーシャルブックマークのサイト。以前は del.icio.us だったが、リニューアルして Delisious にサービス名を変更した。

*17 Yuya さんは「小池徹平に似ている」と言われることがたまにあるそうです。

*18 日立製作所が開発した 8 ビット CPU。

*19 米 Atmel 社が開発した RISC ベースの 8 ビットマイクロコントローラ。

*20 平成 14 年度 未踏ソフトウェア想像事業「未踏ユース (Youth)」

*21 スーパークリエータ認定当時は 18 歳。

*22 現在の最年少記録は、上野康平さんの 17 歳です。(2006 年度下期未踏ユース)

*23 登大遊さんも 18 歳で認定されています。(2003 年度の未踏ユース)

*24 未踏スーパークリエータの成果と近況。一覧はこちら

*25 Intel Core i7。http://ja.wikipedia.org/wiki/Intel_Core_i7

*26 世界で一番薄いノートブック。http://www.apple.com/jp/macbookair/

*27 HP のゲームシステム部門の CTO である Raful Sood 氏が、誕生日にもらった Macbook Air でケーキを切ったエピソードを、自身のブログで紹介している。『RAFUL SOOD - Ugh, it was my birthday...。』

*28 「Rubyist Magazine 出張版 Ruby on Windows」

*29 http://bubiloop.com/app-developer-nayutaya-inc