• Save
ソフトウェア開発と起業
Upcoming SlideShare
Loading in...5
×
 

ソフトウェア開発と起業

on

  • 2,830 views

慶應SFC「ソフトウェア工学」でのゲストレクチャー向けに作った資料です。

慶應SFC「ソフトウェア工学」でのゲストレクチャー向けに作った資料です。

Statistics

Views

Total Views
2,830
Views on SlideShare
2,715
Embed Views
115

Actions

Likes
8
Downloads
0
Comments
1

3 Embeds 115

http://www.ousia.jp 113
https://twitter.com 1
https://abs.twimg.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

ソフトウェア開発と起業 ソフトウェア開発と起業 Presentation Transcript

  • ソフトウェア開発と起業慶應義塾大学SFC『ソフトウェア工学』ゲストレクチャー山田 育矢株式会社Studio Ousia代表取締役CTO慶應義塾大学政策・メディア研究科 後期博士課程
  • 山田 育矢(Ikuya Yamada) 職業:起業家/プログラマー/研究者 Studio Ousia代表取締役CTO 慶應義塾大学政策・メディア研究科 後期博士課程 好きなこと:映画・ドラマを見ること 好きな映画:スター・ウォーズ、トロン、ハリーポッ ター 好きなドラマ:リーガル・ハイ、チャック、フリンジ、 メンタリスト
  • 中学・高校 中学時代  コンピュータゲームをきっかけにプログラミングに興味 を持つ  オンラインソフト(シェアウエア)を開発し、パソコン 通信や雑誌等に投稿、販売 高校時代  7,000人以上の開発者が参加する、当時世界最大規模の Webサイトコンテスト、Oracle ThinkQuestに応募  国際大会にて、国内大会にて最優秀賞、国際大会で 日本人チームでは初の銀賞を受賞
  • 大学 大学入学時に慶應SFCの学部生・中高生と学生ベン チャー企業「ニューロン」を起業 IPA未踏ソフトウェア創造事業・未踏ユース(竹内郁 雄PM)、未踏ソフトウェア創造事業(徳田英幸 PM)、次世代ソフトウェア開発事業(後藤滋樹 PM)に3年間採択 P2P通信におけるNAT越え問題を解決するための通信 ミドルウェア(NAT Traversal SDK)を開発
  • 社会人 開発成果の展開を加速するため、ニューロンをフラク タリスト社に売却し、同社の取締役CTO就任 ニューロンでの開発成果を「Nomadic Node」とい う製品としてリブランディングし、家電メーカ等に 展開、数社に導入 同社の株式上場を前に退社 Nomadic Nodeは、社団法人日本ニュービジネス協 議会連合会の主催する第一回ニッポン新事業創出大賞 にて最優秀賞を受賞
  • 現在 株式会社Studio Ousiaを創業 2011年、慶應義塾大学政策・メディア研究科後期博 士課程入学
  • 本日のテーマ 現在リリースしている製品について Phroni キーワードなう ソフトウェア開発の視点での起業について
  • 開発の背景 新聞、雑誌、書籍など、多くのテキストを読む デバイスがスマートフォンやタブレットなどのタッチス クリーン端末に置き換わりつつある スマートフォンやタブレットにおいてスワイプは スクロールに使われているため、テキストの選択にはス クリーンの長押し・スワイプなどの面倒な操作が必要 ユーザが検索したいと思うキーワードを全て リンクにしてしまえば良いのではないか
  • デモンストレーション Vimeoへ
  • 仕組み ユーザが「検索したい」と思うか否かを予測する 機械学習のアルゴリズムを作成 Webからクローリング・収集した様々な数値から、 「検索したい」キーワードかどうかを判断  Wikipedia関連の統計量  Freebase関連の特徴  自然言語処理(固有表現抽出)で用いられる特徴 開発したモデルを用いて、ドキュメントからキーワード 抽出を行い、キーワードを動的にリンクに変換
  • 機械学習のモデル 重み×特徴量 最も簡単な線形分類器 http://ja.wikipedia.org/wiki/線形分類器 機械学習のモデルとして、シンプルな二値分類の 最大エントロピー法(ロジスティック回帰)を使用
  • 最大エントロピー法のメリット 最大エントロピー法のメリット: 特徴量が見やすい 確率付きで出力される SVMのようにモデルがブラックボックスにならない Decision Treeより精度が良いことが多い 自然言語処理系の研究において多く使用されており、 論文等のリファレンスできる資料が豊富 SVMに比べて高速である (L1正規化を使うと)特徴選択が同時に出来る
  • 詳しくは… 本を読んでください 集合知プログラミング(一冊目にオススメ) Machine Learning for Hackers(最近出た) 言語処理のための機械学習入門(一通り機械学習寄りな 自然言語処理系) パターン認識と機械学習(バイブル)
  • 既存の固有表現抽出との違い 固有表現抽出は主に機械処理をターゲットに「全ての固 有表現を精度よく抽出すること」を目的としていた Phroniは、ユーザが検索したいと思うような 「面白いキーワード」だけを抽出することが目的 Phroniは、固有表現だけでなく、専門用語や難しい 単語など、検索したいキーワードを抽出 既存のコーパスではなく、ニュースやソーシャルメディ ア等のコーパスから独自に学習データを作成し、モデル を生成
  • Webの文脈からのPhroni Semantic WebやLinked Dataの文脈で、多くの データがmachine-readableな形式で、Web上に 公開され、相互に接続されている それらのデータの多くは、Wikipediaのエントリを 中心に相互に接続されている Wikipediaのキーワードから、多くのサイトの データをクエリすることが出来る
  • Webの文脈からのPhroni Semantic WebやLinked Dataの文脈で、多くの データがmachine-readableな形式で、Web上に 公開され、相互に接続されている それらのデータの多くは、Wikipediaのエントリを 中心に相互に接続されている Wikipediaのキーワードから、多くのサイトの データをクエリすることが出来る
  • Phroniの開発プラクティス
  • 開発に対する考え方 必要なことを必要なだけ書く時代になっている 固く冗長にプログラムを書いていくのではなく、優良 なソフトウェアやサービスを組み合わせて、なるべく 短いコードでソフトウェアを作っていく時代になって いる 情報を収集し、効率性を追求することで、良いソフト ウェアが、従来では考えられなかったほど高速に実装 できる 良い情報は英語でしかない場合が多いため、 必ず英語で調べるクセをつけよう!
  • プログラミング言語 サーバサイドのプログラミング言語としてPythonを全 面的に使用 特に計算負荷の重い部分については、C++で実装 負荷が高いが、C++で実装するとコストのかかる部分に ついては、Pythonのソースコードを等価なC言語のソー スコードに変換する技術であるCythonを使用  型をstaticに宣言しておくことで、ほぼC言語と同様の速度 を実現することが出来る “easily tune readable Python code into plain C performance by adding static type declaration”  http://cython.org/ C/C++実装、PythonのCへの変換(Cython)、 Python実装の三段階を柔軟に混合できる
  • サーバ管理の自動化 専用のプログラミング言語(ドメイン固有言語)でサーバの 状態を記述することで、サーバの構築を自動化できる技術で あるPuppetで全てのサーバを管理  サーバ上で全くコマンドを打つことなく、ユーザの作成からhosts、 サーバ監視等々、全ての初期設定を完了させることが出来る Iptables等のセキュリティ設定等が細かく、漏れなく記述で きるため、設定ミス等も効率良く防ぐことが出来る FabricというSSH経由でサーバにコマンドを打てるライブラリ を用いて、初期設定後のサーバへのデプロイも全て自動化 サーバ管理コストの劇的な削減・ ヒューマンエラーによる不具合を低減
  • クラウドサーバ クラウドサービス各社のベンチマーク(UnixBench) http://journal.uggedal.com/vps-performance-comparison/ クラウドサーバにはAmazon EC2よりもパフォーマンスが 良く、コストが安いLinodeを使用
  • HTTPサーバ Tornadoとその他Webフレームワークとのベンチマーク http://developers.facebook.com/blog/post/301/ HTTPサーバとしてFacebook(FrendFeed)の公開しているPythonで 書かれた高速HTTPサーバであるTornadoを採用 HTTPサーバからアプリケーション実装まで全てシングルプロセス・ スレッドで非同期的に実行可能のため、高速  Apacheやnginxを使った場合にように別のHTTPサーバプロセスを立てて、 そこからPythonやPHP等を呼び出す必要がない
  • クローラ データのクローラとして、Pythonの任意の関数をリ モートで動作しているクラウドサーバで実行すること ができるPiCloudを使用。 cloud.realtime.request(„s1‟, 200)のように命令する だけで、動的に200台の固有なIPアドレスを持った サーバが確保され、任意のクローリング処理を実行す ることができる必要な時に、必要な台数だけクローラを確保できるた め、非常に安価に大規模クローリングを実行可能
  • 形態素解析/POS-Tagging 高速・高精度なサーバサイドでの解析を実現するため、 MessagePack-RPCを用いた、RPCによる形態素解 析サーバを独自に実装 形態素解析(POS-Tagging)エンジンには、英語は OpenNLP(Apache Incubator)、日本語はMeCab を使用  OpenNLPはソースも読みやすく機能も豊富なため、自然 言語処理を最初に学び始めるには最適
  • MessagePack/MessagePackRPC MessagePackの速度 http://msgpack.org/ JSONの10倍、Protocol Buffers(Googleが開発)の4倍高速 RPCライブラリも付属していてとても便利
  • 活動のヒストリ
  • Plug and Play Expo シリコンバレーの最も有名なベンチャーイン キュベータの一つ「Plug and Play」が開催す る大規模なスタートアップ向けのイベントに 出展 米国のVCや起業家を中心とした数百名の前で 2分以内に自分の事業のプレゼンをする 日本からは日本創生ビレッジによる予選を 勝ち抜いた2社が参加
  • Startup Asia シンガポールで行われたアジア最大規模の スタートアップイベント 日本、韓国、台湾、マレーシア、シンガポー ル、フィリピンからの数百件の応募の中から 選ばれたスタートアップが出場 日本からは予選を勝ち抜いた3社が参加
  • DEMO Asia アメリカを中心として行われている世界最大の ローンチイベントDEMOのアジア版 北米やアジアを中心とした14カ国から74の製 品が紹介された 日本からは予選を勝ち抜いた数社が参加
  • Tech In Asia: Japan-based Studio Ousia Tech Crunch JAPAN: Phroniは文章中から気Finally Launches Phroni になるキーワードを抽出するテクノロジー
  • 今後の展開 国内大手アプリプラットフォームへの採用 (6月リリース予定) Google Chrome for Android、Firefox Mobile、 Opera Mobile、Sleipnir for Android、Dolphin Web Browserなどの大手ブラウザ対応 (6月以降順次対応予定) 電子書籍リーダー(PDF・ePub)等への応用 国内・アジア展開からグローバル展開へ(夏以降)
  • キーワードなう
  • キーワードなう• ネットで話題のキーワードをランキングするiPhone/iPadアプリ。• ネットで話題になっている芸能人や政治家、映画、テレビ等、あらゆ るニュースのキーワードをリアルタイムに知ることができる。
  • 開発コンセプト 新聞を時間をかけて読まなくても、短時間に、 リアルタイムな話題・ニュースをスマート フォンで収集できるようにする。 話題やニュースに関する詳しい情報を簡単に 調べられる。
  • 概要TitaniumというiPhone/Androidアプ リ開発のためのフレームワークと Pythonを用いて、1人で3日程度の 工期で開発を行った。日本語・英語・フランス語・ドイツ 語・イタリア語・ロシア語・中国語の 計7ヶ国語に対応。
  • 仕組み 毎時間、サーバサイドでWikipediaに登録されている キーワードを対象として、Web上に公開されている データのクローリング処理を行い、ランキングを生成。 検索エンジン等が公開している既存の集計済みデータ ではなく、Wikipedia APIや関連するデータの特徴量 を独自に集計し、ランキング生成を行っている。 サーバ側でランキングのJSONデータを生成し、アプ リ側に配信。
  • 実績 累計6万件を越えるダウンロード 日本のAppStoreでニュースカテゴリ内で2位 フランス・ロシア・イタリアでユーザ増加中
  • iTunes人気作品トップに掲載「ニュース」ランキング2位を獲得
  • イタリアでのメディア掲載 ロシアでのメディア掲載 (iPadItalia) (macster.ru)
  • ソフトウェア開発の視点での起業について
  • サービス開発の考え方 ソフトウェアのプロトタイプ実装は非常に簡単に 出来る場合が多い1. まずプロトタイプを作ってみる2. プロトタイプが良かったら、なるべくコストを かけずに製品にし、まずユーザに使ってもらう3. ユーザの反応を聞きながら改善する いかにこのイテレーションを回せるかがポイント コードの大半は書きなおすことになるので、コードのリ ファクタリングや細かなユニットテストの追加等の改善 は随時やっていく
  • サービス開発の考え方 最初から理想を目指さない 難しく考えずに「何がユーザ・ベネフィットなのか」を 絞り込む 対象となるユーザ・ベネフィットに開発資源を 集中させる 改善点を示唆しないネガティブな意見は無視する 何を言われようと1年くらいはやり続けてみる 目移りせずに、他の仕事をやらない 楽しむことを忘れない
  • マーケットに対する考え方 日本のマーケットはとても恵まれたマーケット シリコンバレーと比べて、求められるサービスの品質が 低い マネタイズの手段が国内の(比較的)閉じた市場の中で 豊富に用意されている ユーザの評価が比較的厳しく、フィードバックを得やす い (日本的な?)独自の視点を持っている 国内に閉じたサービスでは、ビジネスとして十分に スケールしないことが多い 日本でリリースして、鮮度の落ちないうちにグローバル に出す
  • おわり