SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
行指向ソースコード検索エンジン	
  
Milkodeを使ってみる
2013/7/20	
  関西Firefox	
  OS勉強会  2nd	
  GIG
*  中山  雅也(なかやま  まさや)	
  
*  twitter:	
  @masaya	
  
*  組み込み(と言っても携帯電話のみ)アプリ畑出身
自己紹介
最近(ソースコード)検索してる?
*  Firefox	
  OSのソースコードを取得したなら、色々調べた
いじゃないですか。	
  
Firefox	
  OSと何の関係が?
というわけで
*  Androidのソースコードを調
べることが多く、外部のサイ
トに頼りきっていた。	
  
*  Firefox	
  OS(B2G)で類似サ
イトを探したものの、見つけ
ることができなかった。
経緯
Androidソースコード検索サービス  -­‐	
  Developer	
  Collaboration	
  Project	
  
https://sites.google.com/site/devcollaboration/codesearch	
  
こんな機能が欲しい	
  
*  検索スピードが速い	
  
*  簡単に導入できる	
  
*  GUIを使った検索ができる	
  
*  カスタマイズ無しで必要十分に使える
仕方ないので	
  
検索エンジンを探してみる
良い点(個人の主観です)	
  
*  “Androidソースコード検索サービス”で使われている	
  
*  使い方は↑で慣れている	
  
*  検索方法が充実している	
  
	
  
悪い点(個人の主観です)	
  
*  ゼロから導入するには環境構築がタイヘン	
  
候補1	
  -­‐	
  OpenGrok
良い点(個人の主観です)	
  
*  導入が比較的容易	
  
*  emacsやviなどのエディタとの親和性が高い	
  
	
  
悪い点(個人の主観です)	
  
*  非シンボルの検索には弱い?	
  
*  親和性の高いエディタは普段使ってない	
  
*  GUIが使いにくい	
  
	
  
候補2	
  -­‐	
  GNU	
  Global
候補3	
  -­‐	
  Milkode
Milkode公式サイト	
  
http://milkode.ongaeshi.me/index.html	
  
Milkodeとは?
*  数万オーダーのソースコードを素早く検索
*  行指向の検索ルーチン
*  簡単インストール
*  gitライクなコマンドラインインターフェース
*  コマンドラインから検索
*  便利なwebアプリ
(公式サイトより)
Milkodeとは?
*  数万オーダーのソースコードを素早く検索
*  行指向の検索ルーチン
*  簡単インストール
*  gitライクなコマンドラインインターフェース
*  コマンドラインから検索
*  便利なwebアプリ
(公式サイトより)
Milkodeとは?
Milkodeのインストール
公式サイトによると…(OSXの場合)
Milkodeのインストール
$	
  gem	
  install	
  milkode	
  
$	
  rbenv	
  rehash	
  
$	
  sudo	
  gem	
  install	
  milkode	
  
*  rbenv	
  
*  MacPorts
これだけなら確かに簡単…?
しかし…
Milkodeのインストール
$	
  gem	
  install	
  milkode	
  
ERROR:	
  	
  While	
  executing	
  gem	
  ...	
  (Gem::FilePermissionError)	
  
	
  	
  	
  	
  You	
  don't	
  have	
  write	
  permissions	
  into	
  the	
  /Library/Ruby/Gems/1.8	
  directory.	
  
$	
  sudo	
  gem	
  install	
  milkode	
  
Password:	
  
Building	
  native	
  extensions.	
  	
  This	
  could	
  take	
  a	
  while...	
  
ERROR:	
  	
  Error	
  installing	
  milkode:	
  
	
  rroonga	
  requires	
  Ruby	
  version	
  >=	
  1.9.3.	
  
結局、Ruby+rbenvの環境が整っている必要があった。
Milkodeのインストール
$	
  brew	
  install	
  rbenv	
  
$	
  brew	
  install	
  ruby-­‐build	
  
$	
  brew	
  install	
  readline	
  
$	
  brew	
  install	
  openssl	
  
$	
  brew	
  install	
  ruby	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  :	
  
なお、Rubyは	
  ruby	
  2.0.0p247	
  を使用しました。
再びトライするも…
Milkodeのインストール
$	
  gem	
  install	
  milkode	
  
Fetching:	
  highline-­‐1.6.19.gem	
  (100%)	
  
Successfully	
  installed	
  highline-­‐1.6.19	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  :	
  
Fetching:	
  rroonga-­‐3.0.4.gem	
  (100%)	
  
Building	
  native	
  extensions.	
  	
  This	
  could	
  take	
  a	
  while...	
  
ERROR:	
  	
  Error	
  installing	
  milkode:	
  
	
  ERROR:	
  Failed	
  to	
  build	
  gem	
  native	
  extension.	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  :	
  
checking	
  for	
  groonga	
  version	
  (>=	
  3.0.5)...	
  no	
  
downloading	
  http://packages.groonga.org/source/groonga/groonga-­‐3.0.5.tar.gz...	
  done	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  :	
  
groongaがないらしいのでインストールする
Milkodeのインストール
$	
  brew	
  install	
  groonga	
  
もう一度…
$	
  gem	
  install	
  milkode	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  :	
  
Successfully	
  installed	
  milkode-­‐1.1.0	
  
Parsing	
  documentation	
  for	
  milkode-­‐1.1.0	
  
Done	
  installing	
  documentation	
  for	
  milkode	
  after	
  3	
  seconds	
  
1	
  gem	
  installed	
  
どうやらOKぽい。
Milkodeの使い方
データベースの作成
Milkodeの使い方
$	
  milk	
  init	
  –default	
  
$	
  milk	
  add	
  firefoxos/B2G/gaia/	
  
デフォルトでは	
  ~/.milkode	
  に作成される(変更可能)。
パッケージの追加
B2B丸ごとは何故か失敗したので、今回は	
  ~/gaia,	
  ~/gecko	
  のみとしました。	
  
※パッケージの追加には時間がかかります。	
  
 (計ってませんがこのマシンでも20分はかからないくらい)
Webアプリの起動
Milkodeの使い方
$	
  milk	
  web	
  
*  “本体のインストール”は簡単	
  
*  検索機能は必要最低限	
  
※調査の取っ掛かりにgrep検索したい場合などに良さそう	
  
*  思っていたよりも高速	
  
※ファイル数が数万を超えるとさすがに遅くなるとか云々	
  
Milkodeを使ってみて
以上

Mais conteúdo relacionado

Mais procurados

ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
Yoshiki Shibukawa
 
Addon sdkはじめの一歩
Addon sdkはじめの一歩Addon sdkはじめの一歩
Addon sdkはじめの一歩
EnsekiTT
 
Play2の裏側
Play2の裏側Play2の裏側
Play2の裏側
masahitojp
 
Firefox OSのカスタムROM開発を始めてみた
Firefox OSのカスタムROM開発を始めてみたFirefox OSのカスタムROM開発を始めてみた
Firefox OSのカスタムROM開発を始めてみた
android sola
 

Mais procurados (20)

【Zabbix jp】明日から職場で使えるざびたん
【Zabbix jp】明日から職場で使えるざびたん【Zabbix jp】明日から職場で使えるざびたん
【Zabbix jp】明日から職場で使えるざびたん
 
Sphinx GO!!
Sphinx GO!!Sphinx GO!!
Sphinx GO!!
 
Sphinx で手軽に作るドキュメント
Sphinx で手軽に作るドキュメントSphinx で手軽に作るドキュメント
Sphinx で手軽に作るドキュメント
 
VyOS Users Meeting Japan #4 VyOS 1.2.0の開発の様子と自動テストの話
VyOS Users Meeting Japan #4 VyOS 1.2.0の開発の様子と自動テストの話VyOS Users Meeting Japan #4 VyOS 1.2.0の開発の様子と自動テストの話
VyOS Users Meeting Japan #4 VyOS 1.2.0の開発の様子と自動テストの話
 
Wordpress on heroku
Wordpress on herokuWordpress on heroku
Wordpress on heroku
 
俺のZabbixがこんなに可愛いわけがない(おかわり)
俺のZabbixがこんなに可愛いわけがない(おかわり) 俺のZabbixがこんなに可愛いわけがない(おかわり)
俺のZabbixがこんなに可愛いわけがない(おかわり)
 
Sphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメントSphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメント
 
【Qp08】ざびたん2リリース報告lt 20111022
【Qp08】ざびたん2リリース報告lt 20111022【Qp08】ざびたん2リリース報告lt 20111022
【Qp08】ざびたん2リリース報告lt 20111022
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
 
ドキュメントの話、しませんか? #428rk01
ドキュメントの話、しませんか? #428rk01ドキュメントの話、しませんか? #428rk01
ドキュメントの話、しませんか? #428rk01
 
Firefox OSアプリをタブレット端末で動かしてみた
Firefox OSアプリをタブレット端末で動かしてみたFirefox OSアプリをタブレット端末で動かしてみた
Firefox OSアプリをタブレット端末で動かしてみた
 
Addon sdkはじめの一歩
Addon sdkはじめの一歩Addon sdkはじめの一歩
Addon sdkはじめの一歩
 
Oktavia全文検索エンジン - SphinxCon JP 2014
Oktavia全文検索エンジン - SphinxCon JP 2014Oktavia全文検索エンジン - SphinxCon JP 2014
Oktavia全文検索エンジン - SphinxCon JP 2014
 
Play2の裏側
Play2の裏側Play2の裏側
Play2の裏側
 
執筆中のPythonプロフェッショナルプログラミング第2版でsphinxを使っている話
執筆中のPythonプロフェッショナルプログラミング第2版でsphinxを使っている話執筆中のPythonプロフェッショナルプログラミング第2版でsphinxを使っている話
執筆中のPythonプロフェッショナルプログラミング第2版でsphinxを使っている話
 
Gentoo勉強会平成26 11月-15日
Gentoo勉強会平成26 11月-15日Gentoo勉強会平成26 11月-15日
Gentoo勉強会平成26 11月-15日
 
GoでEPC作って本番運用している話
GoでEPC作って本番運用している話GoでEPC作って本番運用している話
GoでEPC作って本番運用している話
 
Firefox OSのカスタムROM開発を始めてみた
Firefox OSのカスタムROM開発を始めてみたFirefox OSのカスタムROM開発を始めてみた
Firefox OSのカスタムROM開発を始めてみた
 
ドキュメントシステムはこれを使え2015年版
ドキュメントシステムはこれを使え2015年版ドキュメントシステムはこれを使え2015年版
ドキュメントシステムはこれを使え2015年版
 
How to spread reST and Sphinx
How to spread reST and SphinxHow to spread reST and Sphinx
How to spread reST and Sphinx
 

Semelhante a 20130720 firefox os勉強会

Pf部2011年10月勉強会.1@androidsola
Pf部2011年10月勉強会.1@androidsolaPf部2011年10月勉強会.1@androidsola
Pf部2011年10月勉強会.1@androidsola
android sola
 
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法
Naruto TAKAHASHI
 
さわってみよう Firefox OS in 福岡
さわってみよう Firefox OS in 福岡さわってみよう Firefox OS in 福岡
さわってみよう Firefox OS in 福岡
Honma Masashi
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
2bo 2bo
 
KEONとPEAKが無くてもFirefox OS開発出来る
KEONとPEAKが無くてもFirefox OS開発出来るKEONとPEAKが無くてもFirefox OS開発出来る
KEONとPEAKが無くてもFirefox OS開発出来る
android sola
 
Fx OS n2_aoitan_firefox osことはじめ
Fx OS n2_aoitan_firefox osことはじめFx OS n2_aoitan_firefox osことはじめ
Fx OS n2_aoitan_firefox osことはじめ
Masami Yabushita
 
TestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテストTestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテスト
Yoichiro Sakurai
 

Semelhante a 20130720 firefox os勉強会 (20)

さわってみよう Firefox OS in 大阪
さわってみよう Firefox OS in 大阪さわってみよう Firefox OS in 大阪
さわってみよう Firefox OS in 大阪
 
go.mobile で Android 開発
go.mobile で Android 開発go.mobile で Android 開発
go.mobile で Android 開発
 
Secret of Firefox
Secret of FirefoxSecret of Firefox
Secret of Firefox
 
Pf部2011年10月勉強会.1@androidsola
Pf部2011年10月勉強会.1@androidsolaPf部2011年10月勉強会.1@androidsola
Pf部2011年10月勉強会.1@androidsola
 
Firefox OS パッケージ型アプリ インストールの仕組みを調べてみた
Firefox OS パッケージ型アプリ インストールの仕組みを調べてみたFirefox OS パッケージ型アプリ インストールの仕組みを調べてみた
Firefox OS パッケージ型アプリ インストールの仕組みを調べてみた
 
Firefox os hackathon
Firefox os hackathonFirefox os hackathon
Firefox os hackathon
 
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法
 
さわってみよう Firefox OS in 福岡
さわってみよう Firefox OS in 福岡さわってみよう Firefox OS in 福岡
さわってみよう Firefox OS in 福岡
 
2013.01.18 G*Workshop GGX 2012 Report
2013.01.18 G*Workshop GGX 2012 Report2013.01.18 G*Workshop GGX 2012 Report
2013.01.18 G*Workshop GGX 2012 Report
 
Firefox FAQ
Firefox FAQFirefox FAQ
Firefox FAQ
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
 
elasticsearchプラグイン入門
elasticsearchプラグイン入門elasticsearchプラグイン入門
elasticsearchプラグイン入門
 
中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS
中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS
中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS
 
シラサギハンズオン 1015 1016
シラサギハンズオン 1015 1016シラサギハンズオン 1015 1016
シラサギハンズオン 1015 1016
 
KEONとPEAKが無くてもFirefox OS開発出来る
KEONとPEAKが無くてもFirefox OS開発出来るKEONとPEAKが無くてもFirefox OS開発出来る
KEONとPEAKが無くてもFirefox OS開発出来る
 
Dive into the Cloud with our buddy, lovely PHP!
Dive into the Cloud with our buddy, lovely PHP!Dive into the Cloud with our buddy, lovely PHP!
Dive into the Cloud with our buddy, lovely PHP!
 
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19
 
Fx OS n2_aoitan_firefox osことはじめ
Fx OS n2_aoitan_firefox osことはじめFx OS n2_aoitan_firefox osことはじめ
Fx OS n2_aoitan_firefox osことはじめ
 
20150317 firefox os勉強会
20150317 firefox os勉強会20150317 firefox os勉強会
20150317 firefox os勉強会
 
TestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテストTestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテスト
 

20130720 firefox os勉強会