収録時間: 1:12:30 | Download MP3 (35.2MB)
Kazuho Okuiさんをゲストに迎えて、goto fail、Podcast トランスクリプト、Github Atom、レーティング、Flinto などについて話しました。
- パソコンサンデー
- Happy ending: @N has been restored to its rightful owner
- On the Timing of iOS's SSL Vulnerability and Apple's 'Addition' to the NSA's PRISM Program
- sslKeyExchange.c diff
- Download iOS 6.1.6 for iPhone 3GS and iPod touch 4G
- Transcripts: Rebuild
- Rebuild ep33 Transcript
- Introducing Atom - Atom Blog
- Komodo Edit | Komodo IDE
- Why is Atom closed source? - Atom Discussion
- The right way to ask for a review.
- Flinto - iPhone, iPad and Android Prototyping
- LinkSnap: How Potato Chips Inspire Magical Software
- From PNG to Prototype in 45 seconds
- Flinto Now Supports Android
- Add to Homescreen - Google Chrome Mobile
0:00
naan: 毎週日曜朝ってことになったの。
miyagawa: (笑)
naan: そういうわけではないの?
miyagawa: そういうわけでは…スケジュールがある程度決まってたほうが聞きやすいかもね。
naan: ま、確かにね。日曜朝のパソコン番組。
miyagawa: パソコン番組。それまったくわかんないと思うけど。
naan: (笑)パソコンサンデーね。
miyagawa: (笑) 僕ですら分かんないしさ。
naan: (笑)そっか。
miyagawa: 聞いてる人のなかには懐かしい、って人もいるかもしれないけど。えっと、この番組で @N さんの事件については毎回フォローアップしてきたんで。今週ついに返還されたんだよね。一応、その報告をしないといけない。
naan: 報告(笑)
miyagawa: 皆さんよかったね、ということでね。
naan: (笑)
miyagawa: あんまり話すことはないっていうか、
naan: そうなんだよね。突然水曜日くらいに戻った、みたいな話になって。詳細は誰も何も言わないし、Twitter も何も発表しないし、みたいな感じで。
miyagawa: その辺は空気を読め、っていう
naan: そうなんだろうね。
miyagawa: ですかね。僕らも、知り合いとかいるので知ったり知らなかったりしますけどあんまり話さない方がいいと思うので。
naan: うん。どこまで話していいのかもよく分からない、みたいな。
miyagawa: そんな感じなんで。今後、もしかしたら色んなことがあるのかもしれないし、ないのかもしれないし。みんなが忘れたころに何かあるかもしれないし、みたいな。
naan: 今回もだって、もうそろそろ忘れたかな、って頃くらいに戻って。
miyagawa: そうだよね。
naan: もう1ヶ月位たつのか、それこそ。誰もさすがに話題にしなくなった、と思ったら「戻った」みたいな感じで。
miyagawa: そうだね。ま、戻ってよかったね、ってのが1つですけど。それくらいですかね(笑)
naan: (笑)そうね。
miyagawa: 先週の最後のネタで話してた iOS のセキュリティアップデートの goto fail。
naan: goto fail。
miyagawa: 先週では、マージミスだろ、っていう風に僕が予想して、 Apple と Google にテストカルチャーの違いがあって、これ全然 Apple はテストしてないからそれが問題だ、みたいな話をしたんすけど。
naan: うんうん。
miyagawa: John Gruber をはじめとして、NSA ですね。Edward Snowden がリークした PRISM 計画に Apple が追加された日付とこのバグが仕込まれた日付がほとんど一致してるって言って。
naan: そうそう。
miyagawa: ちょっと陰謀論的なところで盛り上がってるんですよね。
naan: 結構ね。これ、日本に住んでる人どれくらいみんな知ってるのかな、って気がするけど。そもそも NSA がなんなのか、みたいなところから。
miyagawa: そうだね。
naan: 国防総省なのかな。National Security Association、いや Administration か。(注: Agency)
miyagawa: そうだね。
naan: なんか「国民を監視する」みたいな計画があって。
miyagawa: そうね。
naan: その計画が出たのとこのバグが入ったのが時期が近いみたいな感じで。
miyagawa: そうだね。僕も最初はやっぱ、Gruber なんで Daring Fireball に出てて、「さすが Apple 教の信者は違うな」っていう風に思ったんだけども。
naan: 違うね(笑) Apple のせいではないっていう。
miyagawa: ただ、そのブログポストもよく読んでみると、5つくらいシナリオが考えられるっていって。実際に NSA が社員の probe を使って仕込んだっていうのが1つと、あとはこのバグについては知ってて、わざと仕込んだわけはないけど、このバグが確認されたのでこのプログラムに Apple を追加したって考え方。あとは、たまたま全く関係がなく追加されたって見方と。ま、色々あって、その真ん中じゃないか、っていう見方をしてるんだけど。
naan: うん。
miyagawa: こないだそのdiff をちゃんと見てみたんだけど、Show Notesのとこに貼ってあるやつ、確かにこの diff はすごい不自然なんですよ。ReadyHash とか SSLFreeBuffer とかいう関数の引数の数が1個変わってんのね。
naan: あ、ほんとだ。
miyagawa: で、コンテキスト、ctx っていう変数がなくなって。ただ、これだけでいいのになぜか不自然に goto fail だけ追加されてんのよ。
naan: ほんとだねぇ。これは不自然だな、確かに。
miyagawa: しかも最後の SSLHashSHA1.final っていう検証するところの直前に巧妙に仕込まれてるように見えなくもないんだよね。
naan: うんうんうん。
miyagawa: だから、そう言われてみると「うーむ。確かに都合がよすぎるな」っていうのは分かるんだけど。
naan: たしかになぁ。う~ん。これは怪しいね。
miyagawa: (笑)
naan: マージミスじゃないよね、これね。
miyagawa: その間に色々あって、最終的にこういう diff になったのかもしれないし。
naan: 確かにね。
miyagawa: その起源はちょっと分かんないんだけども。
naan: 最近のエディタでラインをコピーするキーボードショートカットみたいなのあるから、なんか間違って…いやでもなぁ、ちょっとなぁ。それにしてもこれはない気がするけどなぁ。
miyagawa: そうなんだよね。でも、どっちか分かんないけど、このバグを仕込んだ人はクビになってるのかどうかっていうの気になる。
naan: (笑)そうだね。どうなんだろ。これ、ちなみにオープンソースなんだよね?
miyagawa: そうなんだよね。
naan: ソースが出てるってことは。
miyagawa: Apple のなかの Darwin のなかのオープンソースになっている部分の SSL 実装。
naan: Darwin のなかだったら結局ほとんど Apple がいじってるんだろうなぁ。
miyagawa: そうそう。他からコントリビュートされたコードではないので。仮に NSA が仕込んだとしても、 Apple の社員をつかまえてやらせた、っていう。すごい陰謀論的な話だけどね。
naan: (笑)内通者がいた、みたいな。
miyagawa: 内通者(笑) 確かに。そんな感じなので。
naan: すごいな、確かにこれは。
miyagawa: 実際に iOS 7.0.5以前とか、あとは Mac OS X の場合は 10.9.1 とかを使ってる人はすぐにアップデートしないと。例えば、カフェとかオープン WiFi みたいなところだと SSL でも簡単に盗聴が出来てしまう、っていうね。
naan: そうだね。これ、iOS6 のときに入っちゃったって書いてあるんだけど。iOS6 ってマイナーアップデートしたのかな、これで。みんな 7.0.6 の話ばっかりしてるんだけど。
miyagawa: 確かに。
naan: 6 って確か 6.2. なんとかまで出てたような気がするんだけど。どうなんだろな、と思って。
miyagawa: 確か Mountain Lion はセキュリティパッチ出てるんですよね。確か。
naan: じゃあさすがに出てるか。これだけ大きなバグを「古いから」って放置はしないか。
miyagawa: でもどうなんだろ、iOS の場合1個前のメジャーバージョンをセキュリティアップデートするってのは昔あったかね。
naan: うーん。ちょっと記憶にないね、確かにね。
miyagawa: ちょっと分かんない。ただ面白かったのは、iOS とか Apple TV とかは1日でセキュリティパッチ出たんだけど、Mavericks は確か3日くらい間があったんだよね。
naan: そうそう。ちょうど週末だったのもあるけど。結局火曜日くらいまで出なかったんじゃないのかな。
miyagawa: そうそう。それが多分、元から 10.9.2 をリリースしようとしてたんだろうね、やっぱり。で、10.9.2 は別にセキュリティフィックスだけじゃなくて、FaceTime Audio がついたりとか。
naan: そう、細かいアップデートがいっぱいついてるよね。
miyagawa: Mail アプリの Gmail バグ、IMAP 対応を直したりとか。結構いろいろ修正があったので、 Apple 的には10.9.2 のスケジュールを死守するほうが、10.9.1 にマイナーセキュリティアップデートをするよりも大事だったのかなっていう。
07:55
naan: あれはさすがにちょっとなあ、って気はしたけどなぁ。やっぱり、しばらくは「いつ出るんだろ」とみんな気になってたしね。
miyagawa: 実際に何百万、何千万台って Mac がゼロディに晒されたまま週末を迎えたからね。ちょっと良くないな、とは思ったけど。goto fail に関してはそんなところで。
naan: うん。
miyagawa: 先週のね、ポッドキャストのエピソードタイトルを考えた時に、"goto fail" を使おうかなって思ったんだけど、海外の他のポッドキャストでそのタイトルのが絶対あるだろなって思って、
naan: (笑)
miyagawa: 僕がよく聞いてる Accidental Tech Podcast の最新話がそのタイトルだった。
naan: goto fail だったね。
miyagawa: かぶんなくてよかった、と思ったけどね。そうそう、gotofail.com っていうとこに行くとチェックが出来るらしいです。
naan: そうそうそう。そうね。僕もチェックしました。
miyagawa: もし Safari とかで開いて「危険」って出ても、出てなくても、アップデートした方がいい。
naan: あれ、Chrome で行くとアップデートしても "Probably OK" とかしか出ないんだけど。あれはなんでだろな、って思って。
miyagawa: あ、そうなの。違うスタックを使ってるからじゃない。Firefox とかもそうだし。そこら辺の検証が出来ない、というか。逆に僕はね、Lion を使ってて、先週まで。Lion の Chrome で行くと OK って出た。
naan: ふーん。
miyagawa: 古い OS X の場合は事情が違ったみたいなんだけどね。
naan: なるほどね。
miyagawa: そんなとこですかね。えっと、お知らせなんですけども。
naan: はい。
miyagawa: 先週の配信のあと、トランスクリプト、文字起こしっていうのの配信、販売を開始しまして。今ですね、現時点でエピソード1、5、29、32 というのと、ちょうど30分くらい前に先週のエピソード33の文字起こしも買えるようになってますんで。欲しいという人がいればぜひ買ってもらえればな、と思います。
naan: これ、32をみやーんが書いたんだよね。
miyagawa: そう、32は僕がひいこら言いながら自力で文字起こししました。どんなものかな、っていうのを見たかったってのもあるでんすけど。実際、1時間弱のエピソードをやるのに4時間くらいかかったので。これはほんとしんどいな、と思って。
naan: (笑)ていうか、書くのも大変だと思うけど、書いたあと間違いチェックもしてそのあと文章ももういっぺん誤字脱字とかは見て、とか。
miyagawa: 誤字脱字チェックはするんだけども、基本的には起こす段階である程度自然な文になるようには気をつけながら書いた方があとで直すよりは楽かな、って気はしますね。
naan: うんうんうん。
miyagawa: 僕の場合顕著なんですけど、文を切らないまま次の文に行ったりするのがすごい多いのと、「そのー」とか「あー」とか「まぁ」とか、無駄なことを結構いっぱい言ってるんで、その辺を削りながら、でも意味は変わらないままに、みたいな。バランスが難しいな、と思った。
naan: これ、32 はテストしてるときに見せてもらって全部読んだんだけど。なんかうまく纏まってるというか、インタビューっぽくなってて、
miyagawa: そうね。
naan: 「かっこ笑い」の位置とかがうまいな、っていう。
miyagawa: (笑)
naan: みやーんけっこううまいなっていう。ここに入れるんだ、みたいな。
miyagawa: 結構雑誌のインタビュー的な感じに読めるよね。
naan: そうそう。
11:20
miyagawa: なんでこうやったかっていうと、色々考えてたんですけど、日本に行ったときに色んな人に会うと、「配信のペースが早いよ」とか、「一時間長いよ」とかで毎回聞いてられないって人が結構、いや結構ではないんですけど、何人かいて。そういう人たちは実際は1週間に1時間の番組を聞く時間がないってことはありえないと思うんですよ。言いたいことは、1時間かけて聞く価値があるかどうか分からないとか、ネタが自分の聞きたい話かShow Notesを見てもちょっと分からない、とか。そういうところがあるんだろうな、と思って。でやっぱり、ポッドキャスター、僕らとしては、じゃ文字起こしだけ配信しましょうってだけじゃなくてやっぱり聞いて欲しいわけですよ。
naan: そうだよねー。
miyagawa: だからそのバランスはどこがいいかな、と思った時に、そういう人たちは時間をお金で買えるって発想で言えば、トランスクリプトを売るのは悪くないんじゃないかな、というのは1つですね。あとは、文字起こしすると検索できるようになったりとか。実際に配信してる文字起こしはテキストと EPUB と PDF で全部 DRM かかってないんで、自分で検索可能にしたりとか。Dropbox とか Evernote に入れたければ入れてもいいし。その辺はなんでも出来るので。そういうメリットもあるかなと思ってます。
naan: これ、確かにトランスクリプト読んで他のも聞こうかな、って思う人も増えるっていう可能性はもちろんあるよね。
miyagawa: うん、あるね。
naan: やっぱり全部聞いていくのは大変だし。もうなんだかんだでエピソード34とかでしょ、これ。最初から聞いてる人はいいけど、今からキャッチアップするのは相当大変だと思うから。
miyagawa: そうなんだよね、確かに。聞きたいやつだけつまみ食いしてもいいんだけども、結構つらかったりするし。あとは、回ごとにすごいトピックがディープな回があるじゃない。
naan: うん。
miyagawa: 例えば docker とか、DevOps 関係のやつを扱ったときとか。用語とかが分からないって話はよく聞くのね。
naan: そうね。確かにね、聞いてる時に止めて調べるんだけど、調べてちょっと聞いて、巻き戻して、とかやってるとすごいめんどくさいから。
miyagawa: うんうん。
naan: わりとちゃんとした話、ちゃんとした話ってのもあれなんだけど、技術的に細かい話をしてるときはテキストの方がやっぱり楽だなっていうか。止まってそこで調べてとかできるから。
miyagawa: そうなんだよね。ま、一応そのためにShow Notesは用意してはいるけど。単語1個が分かんなかったりとかはたまにあるとは思うので。そういう補完にもなるかな、ということで。新しい最近のエピソードは3ドルで、古いものは今2ドルで実験的に売ってます。値上げするかもしれないし、値下げするかもしれないし。あと、毎回毎回買うのめんどくさいんで、月額いくらでダウンロードし放題にするとか。
naan: サブスクリプションね。
miyagawa: そういうのもやっていきたいとは思ってますね。サイトの方で、rebuild.fm に行くと、トランスクリプトがあるエピソードにはマークがついてますんで。それを見てもらうか、実際にトランスクリプトがあるやつだけ一覧したい場合は rebuild.fm/transcripts に行ってもらうと買えます。例えば、33 のところにマークがついてて、Gumroad っていうサイトで買えるようになってます。gum.co/rebuild.fm-33 とか。そういう感じでダウンロード出来るんで。ご意見とかもらえればと思います。
naan: Gumroad っていうのはこういうの販売するのに割と適したサイト?
miyagawa: そうだね。一番最初出てきたときは、URL 貼ってその URL のファイルを買うための EC サイトだったのね。今は URL だけじゃなくて、自分でファイルをアップロードしたりとか、月額いくらのサブスクリプションとかメールマガジンみたいなことも出来るんだけど。なかなか手軽で手数料も10%なので、いいですね。
naan: 一応日本語も出る、というか僕なぜか行ったら最初が日本語で。そっからどこに行っても日本語にしかならなくて色々困ってたんだけど。ちゃんとサイト全般的に日本語になってて、そういう意味ではよかったというか。
miyagawa: そうだね、その辺もご意見いただければ改善していきたいと思ってるんで、フィードバックお願いします。ほんとはね、公式アプリがあって、
naan: 公式アプリあるじゃないですか(笑)
miyagawa: いやあれ公式じゃないから(笑)
naan: あそっか、あれ非公式か。
miyagawa: 一応非公式だからね。Android と iOS のアプリがあって、In-App (Purchase) で買えたりとかするといいんじゃないの、ってのはフィードバックもらっていて、僕もそう思いますけども。そこまで手が回ってないので。色々今後よくしていきたいと思ってます。
16:00
miyagawa: トランスクリプトに関してはそれくらいかな。
naan: そんなところかな。
miyagawa: あとはもう1つ時事ネタ、かどうか分かんないですけど、GitHub が新しいエディタ、Atom ってのを出しまして。atom.io っていうとこにありますけども。これは試してみました?
naan: これ、出た日に GitHub のファウンダーが Tweet 書いてて。「Atom 作った人頑張ってくれてありがとう」みたいな Tweet 出してて、その次の Tweet が「これは RSS とどっちがいいのかな?」みたいなこと書いてて。それは冗談で書いてたんだけれども。
miyagawa: (笑)
naan: その人はね。
miyagawa: それ、僕が多分 Retweet したやつじゃないかな。
naan:あ、そうなのかな、もしかしたら。
miyagawa: 多分混ざったんじゃないかと。
naan: 僕はそれを両方とも朝見て、「僕あんま関係ないな」と思って、半日くらい放っといたんですよ。みんなわーわー言ってるんだけども、今更 Atom が RSS がとか、なんで GitHub がそんなことしてんのかな、と思って。エディタとはまったく思ってなくて。で、しばらくしたら、みやーんから「使う?」とかっていうプッシュがきて。その時僕は人と会ってたからそれすらも無視してたら、そのうちほんとに Invite が来て、これは「使え」ってことなんだろうな、っていう。で、使ってみたんだけど、これでもすごく面白いプロジェクトではあるというか。
miyagawa: うん。
naan: GitHub がエディタを作るっていうのは、結構なるほどなって感じがして。Make sense するというか。
miyagawa: どの辺が繋がるんだろうね。
naan: やっぱりギークの会社なんで、エディタを自分たち好みのエディタを作っていきたいってのが結構あったと思うんすよ。というのと、カスタマイズできるっていうのと。今そんなでもないけど、これから GitHub とインテグレーションして、diff がもっと簡単に見れるとか、そういうのもっとやっていくんじゃないかなーと。GitHub らしいというか。
miyagawa: そうね。紹介するブログポスト読んでたんだけど、多分2つやりたいことがあって。1つは今ギーク的に人気があると言われてる Sublime とか Textmate とかよりも更にハックがしやすくて、っていうのが1つと、もう1つはフリーの代替はあるかっていうと、emacs とか vim とかになっちゃって、ちょっと初心者にはとっつきにくいというか。カスタマイズもすごくしにくいし。
そういう意味で GitHub って結構、エデュケーション領域とかに力入れてると思うんですよ。学校とかにディスカウントしたりとか、アカデミックディスカウントとかで。そういうところの人たちに無料で使ってもらうには何がいいかってときに「emacs とか vim を使いましょう」じゃないでしょ、っていうところが多分あると思っていて。そこがアプローチしやすいフレンドリーなもので、かつ究極にカスタマイズできるっていう。そこのバランスを取りたかったんだろうなっていう気がする。
naan: 多分、エンジニアにとってエディタって生涯でもっとも時間を使ってるアプリだと思うんで、その割にはバリエーションとしては他のアプリケーションと比べるとすごい少ないと思うんですよね。それこそ TextMate が出る前は、emacs か vim か。もちろん他にもあったけども、言ってもメジャーどころだしても10種類くらいかな、みたいな感じで。で、そっからも別にそんなに増えてないじゃないですか。
miyagawa: うん。
naan: だから、割とコンサバティブな領域なんだろうけれども。一方で TextMate なんかが出てきた時には、「これはいい、これはいい」とかってみんな言ってる割には TextMate だけがしばらくいて、TextMate がアップデートがちょっと滞ってきたあとようやく Sublime とかが出てきたって感じで。
miyagawa: そうだね。
20:16
naan: そんなにコンペティションがないっていうか。
miyagawa: TextMate はしばらくフリーズしてたと思ったら、2 がずっとベーパーウェアみたいな感じで、
naan: (笑)
miyagawa: いつ出るいつ出る、って感じだったんだけども。あるときにオープンソースにしちゃったんだよね。確かね。
naan: そうだね。
miyagawa: で、オープンソースにして一瞬加速したんだけども、そのときには Sublime の方にモメンタムを取られちゃったような感じはあったよね。で、僕こないだ、文字起こしの確認のついでにエピソード1を聞いたんだけど、エピソード1でもやっぱりこの Sublime の話ししてて。
naan: あ、ほんと。
miyagawa: Sublime が良さそうだ、みたいなことを言ってるんだけど。その時も「僕は emacs からスイッチできない」って話をしてて。今回も Atom をダウンロードして入れたんだけど、ちょっと使ってみて悪くないなぁという印象を持ちつつもスイッチするのは難しいかなぁ、という印象は得たんだけども。
naan: そうだね。僕もみやーんのこと言えなくて、つい3年前まで emacs を使ってて
miyagawa: (笑)
naan: emacs の使用歴が15年とか20年くらい多分あったと思うんだけど、ヘタすれば。抜けにくいエディタではあるよね(笑)
miyagawa: ほんとそうだと思うんだよね。
naan: やっぱ、その割に出来ないこともいっぱいあって、僕の場合は emacs 抜けた最大の理由は iOS の開発かな、やっぱり。
miyagawa: はいはい。
naan: Objective-C をやって。あれメソッド名がむちゃくちゃ長いんですよ。で、覚えきれないから補完がきちんとできるエディタがいいなっていうのと。やっぱ IDE って便利なので、これまでも結構昔に Windows の開発をしてたときも emacs でエディットして、Visual C でビルドだけする、みたいなことやってて。前々回くらいに naoya さんも似たようなこと言ってたと思うんすけど。
miyagawa: 言ってたね。
naan: emacs でビルドして Xcode はビルドだけ、みたいな。それ1ヶ月くらいやってたんだけど、もうやってらんないなーと思って、Objective-C では。
miyagawa: (笑)
naan: それで IDE を使い始めたら、やっぱ便利なわけですよ。
miyagawa: うんうん。
naan: 補完もしてくれて、サジェッションもしてくれて、エラーとかもインラインで出して、とかなると。便利だから、じゃあ iOS は Xcode で書いて。で、その当時は Javascript のコードも書いてたから、それ以外は emacs で書いてたんだけども。そのうち段々他のコードもそういう風に書きたくなってきて、僕は実は最初はね、Komodo っていうエディタを使ったんですよ。
miyagawa: うん。
naan: Komodo って Perl かなにかの…
miyagawa: ActiveState じゃないかな。
naan: そうそう、ActiveState が作ってるエディタで。彼らが Komodo エディタってのを作ってるんだけども、何がよかったって言うと XUL で書かれてるんですよ。
miyagawa: ほぉー。
naan: だから Mozilla/Gecko エンジンで、XUL で全部書かれてて、仕組み的には Atom に似てるんだけれども。
miyagawa: 似てるね。HTML と Javascript みたいなところだとね。
naan: そうそう。僕当時、Echofon の Firerox 版もやってたんで。Firefox 版は だから XUL なんですよ、要するに。
miyagawa: はいはい。
naan: で、XUL って、ちょっと気持ち悪い言語で、XML のなかに ctag (CDATA) 貼って、ctag のなかに Javascript 書く、みたいな。
miyagawa: なるほど。
naan: で、emacs ってマルチモードがすごくダメなので。ダメっていうか、基本的に対応してないじゃないですか。1ファイル1モードなので。mmm-mode とかあるんだけれども、ちょっとイマイチだったのね。けど、それはさすがに XUL で作られてるからそういうのにちゃんと対応出来て。
miyagawa: はいはい。
naan: Javascript のなかになるとちゃんと Javascript のファンクションが効いて、XML に行くと XML が効いて、っていうのが出来て。それでしばらく使ってて、それからずっと使ってたんだけども。Echofon を止めて新しく Web のアプリを作るときもしばらくは使ってたんだけど、ちょっと遅いよのやっぱし。それはずーっと感じてんだけども、使い始めたころから。
miyagawa: ネイティブじゃないから?
naan: ネイティブじゃないから。なんかいいのはないかな、っていうときにちょうど Sublime とかが流行りだしたので、僕はそういう意味では段階的にスイッチしてるんですよね。emacs からいきなり他にはいけなかったので。僕も過去に10回くらいトライしてるんですよ。emacs 捨てようと思って。
miyagawa: (笑)
naan: 少しずつ他のエディタに慣らしていって。今はまだ、emacs は /etc/ の下のファイルいじるときは開きますけど、基本的なコードエディットは Sublime か Xcode かって感じで。
miyagawa: それは面白いね。僕は /etc/ とかいじるときはつい vi を使ってしまうんだよね。
naan: あー、なるほどね。
miyagawa: root で emacs を使うと、~(ニョロ)とか出来てよくないとかいうのを昔叩きこまれてて。
naan: そうそうそう。
miyagawa: ついつい、sudo って打つと vim って打ってしまうんだけども。その違いがちょっと面白くて。
naan: 僕、ほんと vi はほんとに「終わる」以外のコマンド知らない(笑)
miyagawa: (笑):wq しか知らない。
naan: そう。ちょっと無理なんだよね、本当に。
miyagawa: 確かに、emacs から抜けるにはそういう段階を踏むっていうのはいいかもしれない。
naan: なんかこう、リハビリ的な
miyagawa: (笑)しかもその、IDE みたいなものを使わないと、使ったほうが便利であるっていうのがないと、emacs を止める動機にならないっていうか。
25:39
naan: やっぱり慣れてるってのは強いから、どうしてもそういうとこに無理やり叩き込んで「これはやってられない」みたいなもっと便利なものを見ておいて。だから、最初は「いいなぁ」と思ってただけですよ、Xcode 使ってる人見て。なんか便利そうだなぁ、と思って。でも止められないから、みたいな感じで emacs を使ってたんだけど。頑張ってやれば出来る、でもそれでも1年くらいかかったかな、全部は。
miyagawa: すごいな。
naan: もう、手が勝手に emacs って打っちゃうんだよね。
miyagawa: (笑)
naan: もう、本当に。
miyagawa: あと保存するときとかさ、C-x C-s とか C-x C-f とか打っちゃうっしょ。
naan: うん、打っちゃう。今でも、いや、今はもうなくなったかな。だから、最初は C-x C-s はセーブにキーアサインしてたし、emacs 的なキーアサインが出来るやつは出来る限りして。
miyagawa: そうだね。Atom もそういうキーバインドはあった。
naan: そうそうそう。
miyagawa: emacs キーバインドってのが。
naan: あとほら、Mac のアプリはどこでも実は emacs のカーソルのが使えるので。
miyagawa: そうなんだよね。
naan: 意外とそういうのが助かるというか。
miyagawa: そこは別に emacs じゃなくても、ほとんどのテキストのアプリで使えるからね。なんだろ、2014年になって emacs の話をするっていうね。
naan: (笑)ほんとね。
miyagawa: いやでも、Atom のパッケージとかテーマとかのファイルを見たんだけど、Javascript と CSON っていう、JSON の CoffeeScript 版なのかな、面白い言語というか、データフォーマットがあるんだけど。そういうのを使って拡張するみたいで。
naan: うん。
miyagawa: elisp 書くよりは全然楽だろうな、と。
naan: そうなんだよね。だから、emacs の拡張、なんでも出来るって言われればそうなんだけど、やっぱ elisp 結構大変なので。
miyagawa: (笑)
naan: 僕も一時期やってたけど、やってらんないっちゅうかさ。
miyagawa: しかも覚えてあんましつぶしが利く言語でもないので。
naan: (笑)確かにそうなんだよね。
27:39
miyagawa: Richard Stallman の思想にハマるんならいいのかもしんないけど。
naan: (笑)
miyagawa: Lisp とかでね、Paul Graham みたいにショッピングサイト作って Yahoo に売った、っていうはなくはないけど。
naan: Hacker News も未だに Lisp だって言うからね。ほんとかどうかちょっと分かんないけど。
miyagawa: (笑)
naan: そのせいであのサイト、アップデートしないんじゃないか、って気がするんだけど。もう Paul Graham 以外誰もいじれないんじゃないの、っていう(笑)
miyagawa: ほんとだよね。まあそういう意味で言うと、Javascript で書けるっていうのは悪くないと思うんすけど。
naan: そうそう。Sublime が Python で書けて、TextMate が確か Ruby で書けるんだよね。
miyagawa: そうなんだよね。
naan: だから、Web の開発してる人にとっては、どれとっても拡張しやすいというか。
miyagawa: うんうん。確かにそれはありそう。
naan: あとこれ、Web Inspector が開くんですよ。Command-Shift-I かな、Chrome と同じキーボードショートカットで。
miyagawa: うん。
naan: でほんとに全部 HTML で出来てるので、どこがどのエレメントで書かれてるかって、CSS のどの class とか、ちょっと見るとすぐ分かるので。Web サイトをデバッグ、ハックしてるような感じでプラグインとか簡単にかけるっていうのはちょっと面白いな、と。
miyagawa: 実際、Chrome、というか Chromium をベースにしてるようなことを書いてあった。
naan: そうそう、Chromium と Node.js かな。
miyagawa: 実際、Mac のネイティブエディタにそういうテクノロジーを使って大丈夫かどうかっていうのは結構議論があるような気がするんだよね。さっきの Komodo の話じゃないけど。パフォーマンス的な部分とかね。
naan: やっぱ起動もちょっと Sublime とかと比べると遅いし。
miyagawa: メモリー容量とかもね。
naan: メモリーも多分増えるしね。やっぱりね、いろんなとこで、使っててワンテンポ遅れるっていうか。ファイルのタブを切り替えた時に一瞬じゃないとか。意外と、数10ミリ秒とかしか変わんないと思うんだけど、それって意外と
miyagawa: 積もり積もるよね。
naan: ターミナルにいてリモートサーバーに入った時ちょっと遅れるじゃない、数ミリとか。あれがイライラするのと同じで。ちょっとイラッとするなぁ、てのが結構あって。で、Komodo は、さっき XUL で出来てるって言ってたんだけど、実はエディット部分だけはネイティブコードなんですよ。
miyagawa: へ~。
naan: エディタだけは C で書いてて。カーソルが動いてテキストが表示されてっていう部分の一番大事なところだけは実は全部ネイティブだから。周りの UI をいじらなければ実はそんなに遅くなかったんだけど。Atom は完全に全部 HTML なので。
miyagawa: そうだね。
30:30
naan: これ、何千行とかあるファイルをたまに開いちゃったりするとどのぐらいの速度で動くのかなぁ、とか。
miyagawa: レンダリングとかさ、ハイライトとかも Javascript で書けるんだけど、そういう何千行もあるファイルをかますと相当やばそうかな、っていうのはあるよね。
naan: 今ディスカッションに行くと、「1MB以上のファイルには対応してない」とか書いてあって、
miyagawa: おぅ。
naan: 確かに、1MBのファイルをテキストエディタでエディットするなよ、て感じもするんだけど。
miyagawa: 元々ね。なるほど。あと面白かったのは、emacs とか vim とかとアプローチャブルかどうか、みたいな話だと、emacs/vim はオープンソースなんだけども、これは "Free Software" 的な文脈でのオープンソースではないので、クローズドソースだし、ベータ期間中はフリーって書いてあるので、有料になりそうな雰囲気があるんだよね。そこら辺が、"Free Software" 的なキャンプから来てる人は文句を書いてるところがあって、
naan: ただ、これほんとかなぁとは思うんだけど、一応ディスカッションに行くと、別のスレッドか別のページだったかもしれないけど、Windows とかはどうなんだ?とか、フリーじゃないのはなんでなんだとかいうのに対して、「いや、Windows 版も出すし、フリーでオープンソースにするよ」みたいなことを答えた人がいて、「答えてるけど、お前だれ?」っつったら「いや、GitHub の人だよ」みたいな感じで、中の人ですみたいな感じで言ってて。ただ、ほんとにそうなのか分かんないんだけれども、一応、そういう話もあるというか。
miyagawa: 僕も GitHub 関係者的なところから聞いたところによると、いわゆる GPL とかみたいなフリーソフトウェア、オープンソースではないんだけども、ソースは公開されるし無料版もあるし、ソースコードを見ることもできるしプルリクエストを送ることも、ライセンスアグリーメントに同意すれば出来る、って言ってるね。
naan: 実際、Windows 版はキーバインドとかのファイルを見ると、win32 みたいなのが予約されてて、
miyagawa: もう準備はされてるんだね。
naan: 準備はされてるっぽい。確かに Chromium だから。
miyagawa: 確かに。それが動けばね。あとはファイルシステムにアクセスできれば。
naan: そんなに大変じゃないっていうか。
miyagawa: Node.js のバイナリとかを Windows でちゃんと動かせるのかとか、そっちの方が大変そうな気もするけど。
naan: あるんじゃないのかな。結構 Node もだいぶ長いことやってるから。
miyagawa: なるほど。これはそんなところですかね。さっきの iOS6 にセキュリティアップデートが出たのか、て話ですけど。さっき Twitter でタレコミが来て、iOS6.1.6 っていうのがそれを直すために出たらしいです。
naan: 出てるんだ、なるほど。
miyagawa: だから 6 で、7 に上げたくないって人も一応当てた方がいいっと。
naan: 大丈夫ってことね。5 はそもそも関係ないから大丈夫、と。
miyagawa: そういうことらしいっす。
じゃあ、もう1つ小ネタですけど、29回か何かで、アップレーティングの話で盛り上がったんですけども。レイティングダイアログを出すのがよくない、やるべきだっていう話があって。
naan: うんうん。
miyagawa: こないだポッドキャストでも紹介した、Threes! ってアプリがあるんだけど、それのアップデートが面白かったって話ですよね。
naan: これゲームだよね。
miyagawa: うん。
naan: ゲームなんだけど、普通はみんな「バグ直しました」とか「こんな機能つけました」とか書くとこに、「もしよかったらレビューしてください」みたいな風に書いてて。書き方がうまかったのは、ゲームだからみんなの邪魔をしたくないからゲームの中には出さないけど、レビューはして欲しいな、みたいな。こう、うまいこと書いてあって、アップデートノートのなかに。
miyagawa: そうだね。
naan: で、あ、なるほどな、っていう感じで。
miyagawa: 確かに、アップデートノートを読む人たちっていうのは、特に iOS7 で自動アップデートになってからは、読む人はどんどん少なくなってくるわけだよね。
naan: そうだね。
miyagawa: そこを読むってことは、熱狂的なファンである可能性が相当高いと思うんで。そういう人たちに対して「書いてくれ」ってお願いして、しかも邪魔をすることなく。
naan: そうそう。
miyagawa: ゲーム中にバーンってポップアップダイアログが出るのではなくて、そこにやるっていうのはいい感じだよね。
naan: こないだそんな話があって、僕 iRate とかちょっと見たんだけれども。iRateって、レイティングする簡単なライブラリがあるんだけれども。いろいろコンフィグは出来るんだけども、多分基本的に「全員に出す」みたいな感じだと思うんですね。レビューしてね、っていうのを。ユーザーが少なければそれでいいんだけど、いっぱいいると、こないだ話してた話じゃないけど、「動かない。★1」みたいな人もいっぱい来るわけですよ、全員に出しちゃうとね。
miyagawa: はいはい。
naan: 「このバージョンはこんなバグがあるけど、良いアプリだよ」って書いてくれる人もいれば、たまたまダウンロードして動かないから「動かない」って来るみたいな人もいるわけで。レビューの数が多ければいい、ってもんじゃないじゃないですか。なんかこう、一応ちゃんとしたレビュー書いてくれて、仮に悪いバージョンだとしても全体としては「良いアプリだよ」と書いてくれる方がいいので。そういう意味では、敢えてそんなに見なくなった場所に「レビューしてね」って書くほうが、実は賢いんじゃないかなっていう。
miyagawa: あんまりアテンションを求めない方がいいっていう感じ。
naan: そうそうそうそう。だから、誰彼なく来て書いて欲しいわけじゃなくて、ちゃんと使ってて色々気にしてる人だけが来て「良いアプリだ」って書いてくれる方が、全体的な質があがるというか。
miyagawa: そうだね。
naan: レビューを読む方も、ちゃんとしたレビューの方が。実際、App Store のレビュー読んで買ってる人どれぐらいのか、って気はすんだけれども。仮にいたとするならば、ちゃんとしたレビューを書いてある方がいいと思うんで。結構賢いな、と思って。
36:40
miyagawa: あと、iRate の亜流みたいなやつだと、「このアプリ気に入りましたか?」ってダイアログが出てきて、YES を押すとレイティングに飛んで、NO を押すと「何が不満ですか?」っていうフォームが出てきて、それがカスタマーサポートの方に飛ぶっていう。
naan: おーっ、なるほどね。
miyagawa: 悪い点をなるたけレビューに書かれないように誘導するっていうのがあるみたい。
naan: (笑)なるほどなぁ。それは確かに賢いっちゃあ賢いなぁ。やっぱレビューはただ、なんだろ、やっぱ Interrupt するのは基本的によくないので。Echofon のときも僕が会社を売る前まではレビューとか出してなかったんだけども、売って1年半くらいしてからかな、ずっと言われたんですよ、「レビューのダイアログみんな出してるから出そうよ」っつって。僕は「いやいや、これ出してもうっとおしいだけだし、十分来てるから。Echofon それなりのユーザーいるし」って、そこであんまりレビューの数とかで言ってもしょうがないんじゃないって言ってたんだけど。けど広告系の人とかは、そこで評価されるみたいなポイントもちょっとあるというか。自分たちの仕事がそこだ、みたいな人たちがいるので。
miyagawa: それを基準にしないといけないっていうね。
naan: そうそう。色々言われたから泣く泣くつけたんだけれども。結果、これは Echofon の場合だけれども、何があったかっていうと、確かに 20 倍くらいくるんですよ、レビューが。
miyagawa: おー、数は。
naan: 数は。で、評価も 0.5 くらい上がるんですよ。3.5 だったものが 4 にあがるとか、4 だったものが 4.5 に上がるとか。なんだけど、ほんとそれだけ。ダウンロードの数が上がったとか、それで広告の売上があがったとか、paid バージョンを買ってくれる人が増えたとかいうのはまったくなくて。
miyagawa: (笑)
naan: レビューの数だけがあがったっていう。ほんとにそれだけのためじゃない、っていう感じで。でも、そういう追試はしないんですよね。しないといけないんだけども、その人たちはしなかったってことなんだけれども。上がった上がった良かった良かった、って言ってて、「いや、そうなんだけど結局誰も得してないじゃん?」っていう。ユーザーは Interrupt されるし、レビューは増えたけど売上があがるわけでもないし。
miyagawa: そうだね。Echofon とかの場合、元からそういうことしなくてもある程度のレビューが貯まってたんであれば、そういうのはほとんど意味がないかな、っていう気はするよね。
naan: 確かにね。アプリの種類にはよると思うんだよね。出したばっかのアプリとかだと結構大事なのかな、っていう気はしなくもないんだけども、一方でゼロになるのはやだな、っていう気持ちは分かるんですよね。誰もレビューしてなくてアップデートするたびにリセットされちゃうから。
miyagawa: はいはい。
naan: だけど、ある程度あれば、「ここでそんなに変わるのかな?」って僕は思うだけれども。ま、5 と 1 じゃそれはもちろん違うんだけども、1 の場合は必ず他のところに原因あるはずだから。
miyagawa: (笑)
naan: そもそもね。だから、そんなにレビューをどうのこうのっていうのはないと思うんだけれども。
miyagawa: Threes! みたいに違う方法でね、ユーザーを Interrupt しない方法で出してくっていう方向にみんな変わってきてるから。それ自体はいい流れかな、と思うけどね。
40:05
naan: そうね。
miyagawa: この話もそんなとこなんですけど。今 Echofon の話をしてて、前回出てもらったときも Echofon の開発の時の話をちょっとだけしてもらったんだけど。Echofon を売却してその後、新しく最近 naan がやってる Flinto っていうのについて、結構ね、日本行った時とか「使いたい」「使ってる」っていう人から話を聞いたりすることもあって。せっかく naan が出てくれるからその話もちょっと聞こうと思ったんだけれど。
naan: はいはい。
miyagawa: 聞いてて、実際に知らない人とかも結構いると思うんで、実際どういうものかとか、どういう経緯で始めたか、とかいう話を軽くしてもらいたいと思うんだけど。
naan: Flinto はそもそも僕のアイディアではなくて、一緒にやってるデザイナーの Nathan っていう Echofon のデザイナーで。Echofon を作ってる時に hire したデザイナーがいて、彼が Echofon のデザインをしてるときに自分で作ったツールが最初なんですよね。Web 用のアプリケーション作ってて。それまでは僕が全部1人でやってたわけです、全部。
miyagawa: デザインもね。
naan: デザインから何から全部。で、彼が来て、彼は本職のデザイナーですから、色々良くしていくなかで、いろんな UI のフローとかも「こういう風に変えていこう」っていうのがあって。そのなかで彼がアイディアを出してきてくれるんだけれども、当時は、フローチャートじゃなくて、UI フローを紙に書いて「ここをタップするとこっちに行って」っていうのを説明すると、僕が「ここはこうの方がいいね」って言ったりして。
で、僕は iOS の開発をその時既に1年くらいやってるので、フレームワーク的に「ここがこうなった方がいいよね」とかいうのは彼よりも分かってたりするんですよ。デザイナーとしてはもちろん彼の方が優秀なんだけれども、彼はそれが iOS の初めてのアプリで、僕はもう1年やってるから、「これはこうだよね」って言ったりするとお互いにチグハグしちゃうんですよね。向こうが言ってるのを紙だけで見ると僕は「それは違うんじゃないかな」って思うんだけど、実際に彼が言ってることと僕が言ってることは同じだったりするんだよね。けど、紙だけ見てるから伝わらない、みたいなことが結構あって。
一方で僕は、ちょっとアイディアがあると自分でコード書いちゃうんですよ。ナビゲーションバーとか作って。こんな感じで出来るよね、とか話をすると、彼としてはすごく羨ましいというか、Xcode でちゃちゃっとプロトタイプ作れていいなと思っていて。で、最初は彼は Xcode ちょっと勉強したんだけども、さすがにデザイナーの人が片手間でやるには Objective-C は結構大変なので。それを代わりに Web で出来るようにしようって。絵だけを描いてサーバーにアップロードして、画面のどこをタップするとどの画面に飛ぶか、みたいなのを作る簡単なプロトタイプのツールを。最初は2週間くらいで簡単に Rails で作って。
miyagawa: 彼が作ったの?
naan: そう。彼はデザイナーなんだけど、学校はコンピューターサイエンスの専攻をとってて。ただ、実際にはデザインが好きだからデザイナーになった、みたいな感じなので、Rails 書けるし CoffeeScript も書けるし。割となんでも出来るっていう。もちろん本職のエンジニアではないので1人で全部は出来ないんだけども。そうやって最初に作ったのを僕が見て、「これはすごいいいアイディアだから、Echofon なんかやってなくていいからこれやったら?」みたいな話をしたんだけれども、結局、今言った話じゃないけれども、デザイナーなので最後のデプロイしてとか、サーバーメンテしてとか、データベースがどうのこうのとか、そこまで全部出来ないんですよ。だから、やりたいなと思いつつも出来ないなぁ、って感じで。僕も当然、Echofon をまだまだやってた時期だったから、手伝いたくてもやってられないし、みたいな感じだったんだけども。
で、その後3年くらい結局何もしなかったんだけども。あ、その前に彼がね、CCA っていう、この辺にあるデザイン学校の講師をやってて、初めて彼が「iOS UI デザイン」みたいなクラスの先生をやって。で、生徒に最後の課題を出して、「自分で iOS のアプリをデザインしてみてください」って言って。けど、生徒はデザイナーなので、アプリのプロトみたいなの出せないんですよ。で、デザインの学校とかで最後に何か形になるものを作らせてあげたい、っていうのが結構あるんだよね、デザイン学校とかだと。コンピューターとかだと演習問題とかでプログラム、とかだと思うんだけど。で、それ用に彼がちゃんと1ヶ月くらいかけて作って。
miyagawa: 前に作ったやつを改善してって感じかな?
naan: そう、改善して。生徒用に使わせて、それでもすごい評判よくて。だけどやっぱり全部は自分では出来なくて。っていうのをやって、3年位そんなことが続いてたんだけど。一昨年の秋くらいに、その前に僕はサンフランシスコに引っ越しして彼と家がすごく近くなって、ちょいちょい会うようになってはなしてるうちに「やっぱりやりたいな」とか言うから。じゃあ僕も Echofon そろそろやめようと思ってるから一緒にやろうか、ってことで始めて。それが2012年の終わりくらいかな。Echofon やめる直前とか。
miyagawa: ちょうど1年半弱くらい前かな。
naan: うん。だから、元々彼がデザイナーとしてすごく必要だなと思う部分から出来てるプロダクトなので、素性はすごくいいというか。
miyagawa: 確かに。「こういうのが必要だろ」って言って出すんじゃなくて、自分が必要にかられて作ったものを出すっていう。37 Signals 的に言うと "by-product" ってことになるよね。自分のメインプロダクトを作るために必要だったものを1個プロダクトアウトしてしまうっていう。
46:45
naan: そんな感じで最初は作り始めて、で、作ってベータをあちこちに持ってくと、ベータをテストしてくれたのはみんなデザイナーさんなんだけれども、殆どの人が「僕も1回自分で作ったんだよね」みたいなことを言ってて。
miyagawa: (笑)
naan: でもやっぱり作りきれないんですよ。これ多分デザイナーだけじゃなくてエンジニアでもそうなんだけど、ちょっとめんどくさいと思って簡単なスクリプト書いて便利になったけど、「まあそれくらいでいっか」みたいな感じで製品にしないじゃないですか。
miyagawa: うんうん。
naan: で、僕 Echofon やってたとき Crash Report ってのを自分で作ったんですよ。クラッシュしたらどこでクラッシュしたか分かんないから、自分でクラッシュしたときに自分たちのサーバーに送って、バックトレース書いて、ていうのをやって。2週間くらいで作って「すごい便利だねー」って言ってて。でもこれ便利だけど、もうちょっとちゃんと作ればもっといい製品になるかなとか言ってるうちに、Hockey とか色んなクラッシュ系のアプリがいっぱい出てきて。「あるんだったらこれ使おっか」みたいな感じで(笑) 当時 Echofon ってもうビジネス回ってたから、敢えてそっち側にピボットする必要もなかった、っていうのもあるんだけども。やっぱデザイナーさんに聞いてても「これが欲しかった」ってことで、「これはいけるんじゃないかな」って。で、本格的に始めて。
miyagawa: やっぱり使うのはデザイナーなんだろうけど、フリーランスのデザイナーとかクリエイティブ系とかね。要は広告用のアプリを作るための会社がまとめて使う、とか色々用途があると思うんだけど。どういう人がメインで使ってる感じなのかな?
naan: 今 Flinto はモバイルしかサポートしてないから、基本的には iOS のアプリをデザインするデザイナーさん。半々くらいで、半分はそれなりに名の通った会社のなかで働いてるデザイナーさんとか。例えば Airbnb とか。
miyagawa: はい。
naan: そういうとこが彼らが作ってるモバイルアプリケーションのプロトを Flinto で作りたい、とか。彼らは色んなツール使ってるなかの1つが Flinto なだけなんだけれども。そういう風にインハウスデザイナーが使ってくれるのが半分くらいで、残り半分がデザインエージェンシーみたいな、数人でやってるような会社からすごく大きなデザインコンサルティング会社みたいな、100人くらいデザイナーがいるような会社まで含めていろいろあるんだけれども。
そういう人たちは基本的に外注をもらって、その人たちのためにデザインを作るっていう。例えば AT&T みたいなああいうおっきい会社とかはデザインは外注しちゃったりとか、場合によっては開発全部を外注したりとかするので、そういうところがデザインだけを専門に請け負って「じゃ、こんなデザインでどうですか?」っていうのを。
miyagawa: そういうのを請け負った時にプレゼンとかコンペティションみたいになった時に、実際に紙で出すんじゃなくてプロトタイプがあるんで、これを使ってみて「こういう風に僕らは作りたいんです」みたいな。そういうツールとして使うってことだよね。
50:00
naan: そうそう。大事なのが、最初にプロトタイプ作るっていうのがものすごく大事で。これは誰でもそうだと思うんだけれども、特に外注を受けるような人は最初にちゃんとプロト見せてないと。発注する側の人って分かってない、分かってないっていうのは失礼なのかもしれないけど、割とざっくりとしか仕様を出さなくて、「良いデザインで作ってね」みたいな感じで出して。で、そういう人は最初の頃は柄とか色とかしか見なかったりするんですよ。あーこんな感じね、とかって言って。で動き出して何週間もかけて開発し始めたころに「いや、ここはこんなんじゃないよね」みたいなことを言い出すわけよ。
miyagawa: (笑)
naan: 非常に困るわけ、そういうのって。それは別に外注だけじゃなくて社内でも結構あって。
miyagawa: まさにそうだね。
naan: 誰から作り始めるかとか、どっちがリードして開発するか、っていうのも結構重要だと思うんだけれども。作っていくうちにどんどんそうじゃない方向に行って、開発の後期になってくるとガラッとデザイン変えるのものすごい大変だから。変えられないけどどうしようってなって、変えずに出すか、無理やり変えてやり直すか、とかっていうのがすごくあって。
特にモバイルは画面小さいので、ちゃんと UI、グラフィックもそうだし UX もそうだし情報デザイン的にも、一画面にどれくらい情報出すかとかってものすごい考えていかないと。例えば、Twitter のアプリとかで言うと、最初タイムラインっていうのがあって、名前があってツイートがあって。タイムスタンプがあってっていうのが標準的だと思うんだけれども、やろうと思えばもっと出せるわけですよ。Retweet 何回されて、Favorite があって、名前もスクリーンネームだけじゃなくて本名もあって。でその下にリプライとか Retweet とか全部ボタンが並んでてっていうのをやると、多分セルが画面の半分くらいになっちゃうんだよね、全部表示しちゃうと。
miyagawa: はいはい。
naan: で、それだと使えないからっていうんで、どの画面にどのくらい情報出すかっていうのを最初に考えないといけなくて。じゃあ最初のタイムラインビューにこれだけの情報がいるんだったら最初の API の JSON はこれだけ返せばいいから、っていう風にして API の設計とかも、それさえなされてれば。で、次の画面に行くとツイートビューなんだけど、そこにカンバセーションも出したいな、っていうと、この画面に2個 API いるな、3個 API 呼ばないといけないな、とかって。そういうのって、割とどこに何出すかで変わってきて。
で、僕の場合は Twitter のアプリとかは Twitter がサーバーやってるので、「サーバーの人は向こうで頑張って」みたいな感じで僕らは好き勝手やれたんだけれども、自分でそれ両方やる場合は、あるビューに行くと API 10個位呼ばなくちゃいけなくて、あるビューに行くと2個呼ぶだけでいいんだけどその2個目のやつってほんとは1個で済むよね、とかいっぱいあるんですよね、そういうことが。ほんとちょっとした情報を足したいとか引きたいとかいうだけなのに、割とめんどくさいことしないといけない、みたいなのがあって。そういうのを割と最初の段階で「こうだね」っていうのを決めて、クライアントとデザイナーとサーバー側とみんながわかってる状態で作っていくっていうのは、非常に効率がいいというか、最初に完成度の高いアプリを出せるっていうのは結構あって。
miyagawa: やっぱりそういうのも、プロトタイプをある程度動かしながらじゃないと「これがいる、いらない」っていうのの判断材料としては難しいもんね。
naan: で、画面が小さいっていうのは結局、例えば文字を何文字表示すると何行になって、何行って画面の何%くらいなんだろ、とかっていうのは割とプロトタイプを書かないと分かんなくて。そういうの書かずになんとなく紙で書いてると、「最初の画面を書いて、この文字があって、タイトルここにあってディスクリプション3行くらいで」とかって言ってるんだけど、作ってみたらフォントをすごく小さくしないとそれだけ全部入らない、とか、フォントをすごく大きくしないとスカスカになっちゃうとか、割とそういうことが頻繁に起こって。ま、慣れてくると多分感覚的に分かると思うんだけれども、最初のうちは小さい画面にうまく必要な情報をフィットさせるっていうのは大変な作業というか。フォントサイズが1ポイント変わるだけでもガラッと変わっちゃうので。
54:49
miyagawa: 実際にそういうのは、さっき言ってたみたいに、アプリ開発者の方がプロトタイプをコードで書けばもちろんいいんだけれども、それに対する工数とか、そういう部分を含めて大変なので、Web ベースでやりたいっていうことが1つあって。で、これ実際 Flinto を今使おうとすると、絵を描いて、ってことになるわけだよね。
naan: そうだね。こういう系のプロトタイプツールは大雑把に言うと2種類あって。1つは、 Flinto みたいに絵を描いた状態で絵を上げてそこからプロトを作るっていうのと、もう1つは白紙の状態から始められて自分で部品を置けるっていうタイプもあって。ボタンとか予め定義されたものがあって。Flinto は絵を描くっていう風にしてるんだけど、これはちゃんと理由があって。ターゲットユーザーはデザイナーなんですよ。使おうと思えばデザイナーも使えるし、ビジネスディベロップメントの人が「アイディアを見せたい」みたいのにも使えるんだけれども、基本はデザイナー向けだから。デザイナーって自分の favorite なグラフィックツール必ず持ってるので、そこが絵を描くのに一番効率がいい。ボタンとかを並べてプロトが作れると、例えば僕でも出来るし、それこそデザインもエンジニアもできないビジネス系の人でも出来るようになるんだけれども、なんの Chrome なのそりゃ、みたいな感じに。
miyagawa: (笑)
naan: そのボタンは iOS のボタンでもないし、Android のボタンでもないし。デザイナーは「僕がデザインしたボタンでもないのに」みたいな画面が出来ちゃって。エンジニアとかビジネスの人にはそれでいいかもしれないけど、デザイナーには訴求しないな、っていう。やっぱちゃんと、やるんだったらちゃんとしたいっていうデザイナーの人多いので。ちゃんとしないんだったら逆にスケッチとかで、
miyagawa: そうだよね。
naan: うん。写真撮ってとかでいいので。
miyagawa: 紙に絵を描いてそれをアップロードする、でも一応使えるわけでしょ。
naan: そうそう。それと、グラフィックちゃんと描くっていうのの間になるのは非常に良くないな、と思って。
miyagawa: 1つのツールで両方をサポートする、というよりは、絵をアップロードしてどちらでも出来るっていう方が分かりやすいかな、っていう気がするよね。
naan: まあ、そういう理由でそこは最初から割とカッチリ決めて。中途半端なグラフィックツールにはならないようにしようと。
miyagawa: 僕もちょっと使ったんだけども。一番面白いのはグラフィックアップロードするでも手描きでもそうなんだけど、ボタンっぽいとことかタップできそうなところってのが勝手に見つけてくれるっていうのが結構すごくて。
naan: LinkSnap ね。LinkSnap って言ってるんだけども。
miyagawa: 画像解析してるんだよね。
naan: そう。Javascript で画像をキャンバスに読んで、どの辺がボタンかっていうのブラウザのなかでリアルタイムに解析して、サーバーには送らずに。で、この辺がボタンじゃないっていうのを自動的に表示してくれるっていう機能なんだけども。これは Nathan が最初から言ってるんだけども、とにかくすぐにプロトタイプが作れるようにしたい。だから、プロトタイプ1回作るのに30分とか1時間かかると、それだったらエンジニアに頼んだ方が早いんじゃない、みたいな話になってきたりするわけよ。
miyagawa: 1時間でも相当早いとは思うけどね(笑)
naan: まあね。だけど、その前にそもそも絵を描かないといけないわけで。
miyagawa: そうか、それも含めてなわけね。
naan: そこからして2時間とかかかってて、ちょっと何か直したらまた10分くらいかかるみたいなツールってちょっとやってられないっていうか。で、プロトタイプまだまだ作らない人多いんですよ、最初の段階で。で、作って欲しいわけですよ。作るとその後の開発どんどん楽になるし良くなるし。それを encourage するためには「簡単ですよ」ってやっぱ言わないと。「これですごいプロトタイプ作れますよ。2時間かかるけど」だとちょっとね。だからみんな作んないんですよ。いや、大事なのはわかってるけど時間かかるからね、って言ってみんなやらないのをやってもらいたいので。とにかく早くしようってことで、早くするにはどうするかってことで色々考えた結果、ボタンを自動で解析してくれるといいよね、みたいなことを彼が突然言い出して。最初それ聞いたときは「何言ってんだこいつ」とか思ったんだけども。
miyagawa: (笑)
naan: 「そりゃお前人間だから出来るんだけど」みたいな感じで言ったんだけど、色々アイディアを話してるうちに、「画像をこういう風に解析すればだいたいボタン分かるんじゃない」みたいな話が段々出てきて。でもそれ C とかだと出来るけど、とか思って、まあ Javascript でやってみようかと思ったら意外とまともな速度で動いたんで、「出来るかもね」って感じで。
miyagawa: トップページに今行くと、flinto.com ってとこにあるんだけど、動画があって。実際に45秒で
naan: 45秒で作ってる。
miyagawa: そう、作って、更に、実際にプロトタイプが完了すると Web アプリケーションとしてインストールできるリンクがね、携帯の SMS とかメールとかで送ることができるので、それを実機でタップしてインストールするとホームスクリーンに追加されて、っていうのが実際45秒で出来る。まあこれはかなり急いでやってるからね。本当に45秒で出来るかどうかは難しいとは思うけど。
naan: すごく慣れた人が、っていう意味なんだけどね。
60:19
miyagawa: うんうんうん。
naan: ただあれ、どこも早送りとかしてないので。最初の30秒はエディタのなかにいるんだけど、そのエディタは本当にリアルタイムで撮ったスクリーンキャストをそのまま載せてるだけっていう。
miyagawa: なるほど。でまあ、iOS 専門でずっとやってたと思うんだけど、先週か、
naan: 先々週くらいに Android 版をやっとサポートして。
miyagawa: Android 版はそもそも Web アプリをインストールするのが難しかったんだよね。
naan: そうね。最初に Flinto をリリースしたときから、みんな「Android 欲しい」って言ってたんだけど、そもそもそういう風に出来なかったってのも1つあって。「出来ないですから」って最初ユーザーに答えてたんですよ。そしたら「いや、出来るよ」って言って、「まず ADB を繋いで」みたいな話をされて。
miyagawa: (笑)
naan: それは出来るって言わないし、みたいな。Android の人ってそういう人が多い。やっぱエンジニア寄りなのかなって思うんだけど。出来るよって言っていきなりターミナル開くみたいな人がいて。いやいや、エンジニア向けのツールじゃないからこれ、みたいな。それは出来るとは言わないんだけど、という話をしてたんだけど。Chrome の30ベータからようやくその機能がついて。去年の11月くらいかな。で、これはようやく出来るかも、とも思ってリサーチをしたら出来そうだってことが分かって。で12月くらいから本格的にサポートしようかってことで開発を始めて、2ヶ月くらいかけて色々テストしたりとか色々変えてサポートしたっていう。ちょうど Chrome がベータだったのが 32 で正式にサポートになって。その32っていうのが1月末に出たのかな。
miyagawa: じゃあ、ちょうど出てすぐ、って感じだね。
naan: ちょうどすぐサポートしました、みたいな感じでやって。
miyagawa: 実際にホームスクリーンに置くアイコンの画像とか、開いた時にツールバーというか、ロケーションバーを隠すとか、そういうのがちゃんとサポートされるようになったっていうこと?
naan: サポートされてる。最初は Android って僕は普段は使ってないので、何がどれくらい出来るのかっていうのはよく分かんなかったんだけども。Chrome のなかにいると割と安心するというか、そんなに iOS と変わんないっちゅうか。ブラウザのなかだと。
miyagawa: はいはい。デバッグとかもね、ツールとかが多少あるし。
naan: そうそうそう。意外と Chrome のデバッガは割とよく出来るなっていうか。Chrome でデバッグ出来るのもいいな、っていう。Mac でも Chrome 使ってるんで。
miyagawa: リモートデバッグみたいな感じでね、繋いで出来るってのもあるし。Flinto 自体は COOKPAD でも何件か使っているみたいで、デザイナーの人がプロトタイプするのに使うのもあるし、さっき言ったみたいにビジネス寄りの人が HTML を使って紙芝居みたいに作ったものを Flinto の方にポートして。多分 HTML でやろうとすると、ボタンを押すところ、ロケーションバーを Javascript で移動して、とかそういう風になると思うんだけど。
naan: うんうんうん。
miyagawa: そういう風の描くのちょっとだるいんで、スクリーンショットぱちっと撮って、Flinto にあげて「こういう感じでやりたい」ってのをデザイナーとかエンジニアの方と話すときの道具にするっていう。そういう使い方もされてるみたいだね。
naan: なるほど。ありがとうございます(笑)
miyagawa: (笑)これは無料ではないツールだよね、基本的に。
naan: 無料ではないっすね、一応有料版。30日間のトライアルはあるんだけど無料版は作ってなくて。無料版が欲しい、パーソナル版が欲しいとか、結構色々言われるんだけども。37 Signals の本、REWORK にも書いてたんだけど、ちゃんとお金をとるビジネスを最初はやるべきだ、みたいなことを書いてあって。彼らはスタートアップというよりはスモールビジネス寄りのスタートアップなんだけども、「自分たちの値段を自分たちで決められない会社はダメだ」みたいなことを結構書いてあって、それはほんとだなぁ、っていうのと。特に最初のうちはあんまり「気軽にやってます」みたいな人は、来て欲しくないとは言わないんだけれども、誰にでもオープンにしちゃうと色んな人が来ちゃって。ていうのは、要望とかが来るんですけど、「タップしてる場所解析して云々」とかだから、解析系の人とか、そういう人たちが来て。それはアイディア的には面白いなぁとは思うんだけれども、そういう方向に最初のうちに行きたくないのが1つあって、
miyagawa: うん。
65:06
naan: で、無料のユーザーの人って、ちょっと違うんですよね、お金をちゃんと払ってくれる人たちと。趣味でやってる開発で、とか。ビジネス的にやってない、みたいな人たちが多くて。だけど、そういう人たちもお客さんはお客さんだから、一緒に扱ってあげないといけないので。ていうのを全部面倒見てるとすごいやっぱ大変なので。今は月20ドルなんですけど、個人ではすごく高いんだけども、それなりに儲かってる会社にしては「殆どないに等しい」みたいな値段になっちゃうので、それぐらいの会社の人たちにまずは使ってもらって、何が必要で何が必要でないかっていうのをちゃんと見極めていきたいな、と。
miyagawa: 確かにね。無料版でいっぱいの人に使ってもらってプロダクトのフォーカスが分からなくなるよりは、最初っから有料版で自分のターゲットを明確にしたうえでそういう人たちにどんどん特化していいもの作っていく、って方がいいよね。
naan: で、Flinto のあとに無料のやつが出てきたんですよ。さすが無料だからアテンションがみんなあって、「これはいい」「これはいい」とか。Flinto と比べてこっちは無料だからね、とか言ってるんだけども。それですごいユーザー増えてもサーバーのコストとかもかかるし、この人たちどうしてくつもりなのかな?ってのはあるんだけども。
miyagawa: (笑)
naan: そういうビジネスではないっていうか。無料のソフトが悪いって言ってるわけじゃないんだけど、僕らの場合はやっぱりちょっと、無料でやってくには相当きついかな、っていう。
miyagawa: 無料でやるんだったら人が増えることによってみんながメリットがある、例えば Facebook とか、そういうのだったらいいけど、これだと単純に人が増えてサーバーが重くなって会社が潰れて…みたいなことがね。
naan: で、8~9割の人がお金払ってくれない、とかだとね、まったく何やってるか分かんないので。やっぱ最初のうちはこれくらいの値段でも「出しますよ」って言ってくれるシリアスなデザイナーさん、デザインで仕事を出来てる人たちにしようかな、っていうのがありますね。
miyagawa: なるほどね。
naan: ただ、教育向けには違うパッケージを今考えていて。
miyagawa: さっきの「Nathan が学校で教えてた」みたいなそういう話?
naan: そうそうそう。これなんでかっていうと、教育の場合は、デザインなんとか学校とかって「2年間 iOS の勉強する」とかじゃないので。「今 semester は iOS のなんとかやりますよ」「次はグラフィックデザインの何かやりますよ」とかやるなかの1つのクラスでプロトタイプとか UX のクラスとかがあって。それってだいたい2~3ヶ月で終わるんですよ。だから、こっちとしては2~3ヶ月だけサービスしてあげればよくて。だからその2~3ヶ月分無料にするという感じにして使ってもらって。学生とかだとその後デザイナーになるので、早いうちに「Flinto があるよ」ってのを認識してもらうのはいいかな、っていうのと。
miyagawa: 餌付けしとくわけですね。
naan: (笑)そうそう。あと、その人たちは永遠に無料ではないので。この学校のこの期のこのクラスの人たちが2~3ヶ月無料ですよ、っていうのは、こっちとしてもコストがそんなにひどくないので。
miyagawa: うん。わかりやすいしマネージできるよね。
naan: そっちの方には少し頑張ろうかな、というのは。まあ、頑張ろうかなって思ってるだけで、まだ何も出来てないんだけども。
miyagawa: (笑)
naan: 頑張りたいな、っていう。
miyagawa: なるほどね。結構面白いやつだと思うんで。デザイナーの人も結構この番組聞いてる人最近いるみたいだし、あとは iOS とかデベロッパーで一緒にデザイナーと組んで作ってる人とか結構いると思うんで、使ってみて、もしフィードバックとかあれば Flinto の方に送ってもらうといいかな、って感じですね。
naan: はい。ぜひ。
miyagawa: えっと、サイトの方が、
naan: flinto.com ですね。フリントドットコム。日本語読みというか、そのままいけるんで。
miyagawa: これ、どういう由来ですか?
naan: これはね、由来はない。
miyagawa: (笑)まったくないの?
naan: まったくない。naan studio と同じで、まったく由来がない。あの、短くて、発音間違えなくてっていう単語でいい単語がないかなっていうのを Nathan が探してて。で、彼が見つけて、空いてたからたまたま取ったっていう。これは1番最初に作った時に、3~4年前に作ったときに Flinto って名前はもう取ってて。
miyagawa: あー、そのときからもう取ってたんですね。
naan: そのときから取ってた。
miyagawa: 値段の方も月20ドル。
naan: 月20ドルですね。
miyagawa: で、年間でちょっと割引がある、みたいな感じかな。
naan: 年間払いにしてくれると10%割引。で、チームでやる場合チームメンバー1人ずつ出していくごとに20ドルずつっていう風にして。バルク的なプライシングは今回してない。あるじゃないですか、「なんとかプラン」みたいなの。
miyagawa: うん、サイトライセンスみたいのとかね。
naan: そういうのは今んとこやってない。
miyagawa: はい。そういう感じなんで、聞いてる人も興味があれば、
naan: ぜひ。
miyagawa: と思います。1時間を超えてしまいましたけど、
naan: ちょっとね。今日は長かったね。
miyagawa: 長かった。でもすごい面白かったんでいいかな、と思うんですけど。Show Notesとかは、rebuild.fm/34 から見れます。あとまだ大々的に言ってないんですけども、今年からスポンサーシップをもうちょっと取ろうかなと思ってまして。
naan: おぉーー。
miyagawa: 去年ね、Listen-IT に1回スポンサーしてもらった回があったんですけども。
naan: そうだね。
miyagawa: ああいう感じでやっていきたいので、興味がある人、自分の会社の製品宣伝したいとかですね。ギーク向けというか、デベロッパー向け、デザイナー向けに結構アピール出来る場所だと思うので、興味ある人は rebuild.fm/contact ってとこに Google Docs のフォームを置いたので、興味ある人がいれば送ってください。Twitter とかでも書こうかな、とも思ったんですけども、この番組を聞いてる人にスポンサーして欲しいな、と思ったんで、番組のなかで告知をしようかな、と思って。
naan: なるほど。
miyagawa: しかも一番最後にね、やろうと思って。
naan: なるほどね。ちなみに、Listen-IT の成績とか言ったほうがいいのかな?
miyagawa: もう、よければ言ってください。
naan: 広告費以上に儲かりました。
miyagawa: (笑)
naan: 倍以上は儲かりました。結構ユーザーも来てくれて。僕は広告あんまり試してないんだけど、試したなかでは割と成績がいい方というか。
miyagawa: よかったね。
naan: ブログとかよりも。1時間とか聞いてくれる人がいるとアテンションがだいぶ違うと思うので。
miyagawa: そうだね、エンゲージメントの率が相当高いと思うから。
naan: そうそう。
miyagawa: そういう評判もありますんで、ぜひお願いします。じゃ、そんなところで。
naan: はい。
miyagawa: ちょっと長くなりましたけど。ありがとうございました。
naan: はい、どうもー。
Transcribed by @harupong http://blog.harupong.com/