機械学習, Rails, Androidが好きです - プログラマdogwood008のライフハック

最近のマイブームは機械学習, Ruby on Rails, Android、中でも機械学習を使った金融商品の自動取引に興味があります。

アイディアをカタチにする勉強会

講演情報

6/18(木)アイディアをカタチにする勉強会
〜アプリ開発からサーバサイド設計までの全貌〜 @ 渋谷 TECH LAB PAAK
https://atnd.org/events/66892

概要

  • 期限、目標などのゴールを決めて、真剣に取り組む
  • 自分でできないことは人を頼ろう
  • 「どう継続させるか」も考えておくと、自分がコミットできなくてもサービスがまわる

所感

  • 「いつか完成させたい」ではダメ、納期がないと往々にして進まない
    • 自分の場合特にそう。〆切を決め、逆算してこつこつやる!
    • モチベーションが続かないときは小出しでコミットする習慣を付けることが大事。
  • 来月の社内LTで発表したい
    • そのために今やっているプロジェクトを、なんとしても完成させる
    • 間に合うかではなく先に名乗りを上げてしまって、後から残り時間を考えようかな…

解決したい課題

  • 作りたいものがたくさんある
  • 普段の時間は勤務前後と土日しかない
  • 考えてるだけで終わってしまうのをなんとかしたい
  • 他の人はどうしているのか知りたい
    • マネタイズ
      • サーバー構成
      • 広告
      • 最新技術
    • 事業化
  • 休みたい欲求との兼ね合い
    • アウトプットが大切なことはわかっている

講演

「1週間でアイディアを形に」

増井さん自身

  • 毎年1つはリリース
    • 創りたいモノリスト
    • ゴールを定める
      • 「○日でつくる!」
      • 1つに絞る
      • 技術・プロダクト・ユーザ数・売上
      • 確認や勉強のためでも良い
      • 自分で使いたいモノ
        • 自分で自分が使うものを作れるのがプログラマの特権
        • どうせ作るなら公開したい!
          • リリースするなら英語で
  • バージョン1ができるまで人を呼ばない
    • 動くモノが無い状態での説明はコストが高い
    • 共通のゴールを見いだすことが難しい
  • 「伽藍とバザール」
    • コンピュータ分野以外ではオープンソースの考え方はない
    • 社会学的にみたIT分野の現象
    • 複数人による開発ではイノベーティブなモノは創りにくい
  • node.js
    • 増井さんもcontributer
    • 「自分の英語力で説明できるか?コミュニティに受け入れられるか?」を確かめたかった
  • 増井雄一郎さん
    • IT芸人

wri.pe

  • ブラウザで動くメモ帳
    • evernoteがメモ帳の定番
  • 1度過去にも作ったことがある「Stikea」
    • 「フロー型」のデータを「ストック型」として管理したかった
      • チャットは重たい
  • 基本機能は2日で作った
    • OAuthで認証
    • テストも兼ねた:Rails4 + Ruby 2.0
  • 1週間で作成
    • GWを使って
  • 毎日自分で使うために
    • メンテしたくない
      • サーバの運用は自分でしない
      • バックアップも全自動
  • 初日で200人の登録があった
    • 英語でメールが来た
  • 「個人サービスだから」と言われないものとして作り直す
    • 問題
      • 英語
        • ネイティブにお願いした
      • デザイン
        • 自分でした
          • dribbble.com
            • デザイナのポートフォリオを集めた感じのサイト
            • 「Flat, Mail, App」などで検索した
          • 弱点
            • bootstrap使った
              • いかにもbootstrapでヤダ
            • 特徴色となる水色が弱い
              • 5m後ろから見ても「wri.peだ!」とわかってもらえるのが重要
        • アイコンはFont Awesomeを使用した
          • オリジナルな部分は友人にお願いした

個人と法人の違い

  • 視点の違い
    • 継続性
      • 個人は継続するのが困難
      • コストが掛かりすぎるのも難しい
      • しばらく時間が空いてもコードを変更できる環境を作らねば
        • 趣味だと間が空く、その間に忘れてしまう
      • 1週間のうち半分はテストに時間を掛けている
        • 3ヶ月後にデグレが起きていないかのチェックにも
      • new relic
      • $200/monthかかる
        • プロセス監視など
      • メモ帳なので、止まると困る
        • 運用を担保しなければいけないか?
          • バックアップを使う
            • Dropboxへ日次自動バックアップ
            • Evernoteへリアルタイムバックアップ
          • ユーザを囲い込みたいわけではない
          • ユーザから観て、個人として信用が不明な部分は仕組みでカバー
  • PR
    • かなりちゃんとできるようになってきた
    • 人を集めすぎると持ち出しが増えてしまう
    • プレスを打った
      • 編集者の友達に書いて貰った
      • ネットで調べていろいろなメディアに送付
        • PR受付のフォームやメールアドレスがある
    • 英語圏向けには「HackerNews」で告知
      • Voteできる仕組み
      • RubyKaigiのRubyHirobaでVote依頼を書き込んだ

得たモノ

  • ユーザ数
  • レビュー記事
    • リクエスト
  • 知見
    • 「ライティングについて書いているライターに個別でメッセージを送れ」
      • =「興味を持ちそうな人個人」に送れ

Wrapping up

  • 「作る」ということ
    • なぜ
    • 誰のために
      • 「他人のために」作るのは難しい
        • 需要を本当にわかっているのか?
        • せいぜい家族のために
          • 汚い話ができる間柄
        • 友人の話
          • 「困っている:飲食店の予約台帳が面倒くさい」
          • 「メインで使う人」が自分から近い
        • 「誰かが便利になるのではないか」は往々にして失敗する
    • 何を
    • 最低限はどこ?
      • 何を重要視するか:「クオリティ」「時間」
      • 何を自分が担保したいのかを決める
      • 増井さん自身も、完遂するプロジェクトは2割程度
      • Webサービスの場合、継続が第一
        • サーバのメンテ
        • ユーザ数増による負荷増大、それに伴う対処
    • どう継続させるか?

最後に Q&A

  • schooに詳細の動画もあるので、興味があればどうぞ
  • 1週間で書き捨て、みたいなプログラムの場合、テストは書かない
  • Q. 会社にばれないためには?
    • A. 最初は日本をターゲットにしていませんでした
  • Q. モチベーションの維持はどのように?
    • A. マイルストーンを小出しにすることで保ちます
  • Q. 企画書はどれくらい書きますか?
    • A. A41枚、ピッチで説明できるくらい