デブサミ2013に行った その1 #devsumi

Developers Summit 2013 の1日目だけ参加しました。

資料は↓に適宜アップされていく模様。
デブサミ2013、講演関連資料まとめ:CodeZine

エンタープライズ、ソーシャル、スタートアップ 3つの世界 玉川さん(司会)、三谷慶一郎さん、naoyaさん、孫泰蔵さん


今回はこのセッションが圧倒的に印象的だった。パネルというよりは3人の凄い人が色々と喋ってたという感じでしたが、玉川さんの問題提起も興味深かったし、何より、孫泰蔵さんの話が強烈でした。

東アジアベンチャー生態系の話等夢見心地にさせてくれる話もありつつ、自分的には、手を変え品を変え今がいかに恵まれた、チャンスの多い時代であるかを語っていたのが、とても心に染みました。
時代の変化や技術の進化に対して、会社/個人ともについていかなければダメになるという危機感駆動で変化を促す話が巷には多いような気がしますが、それだとどうしても変化や進歩に対して(わずかながらにでも)負の感情を抱いてしまう。

が、孫さんのように、「それによっていい時代なったから挑戦しようよ!」と言ってもらえると、全く違う気持ちでチャレンジ心や向上心が持てるな〜と感じました。何かを学んだりする時も、焦りながら勉強するより、好きでワクワクしながらやってるほうが楽しいし長続きする。
そういうモノの見方に気付けたことが一番の収穫だったと思います。

  • 玉川さんからの問題提示
    • 日本のIT業界は二つの世界に袂を分かった!?
    • エンタープライズ系
      • 大資本、高品質、高可用性、高コスト、Information Technology
    • web, social系
      • 低コスト、スピード重視、Internet Technology
    • プラスで、スタートアップの登場。
      • スタートアップ元年と言われた2012年
    • 他の世界と自分の世界を見比べることで見えてくるものがあるのではないか?
    • 良い人生とは? ワーク・シフト ― 孤独と貧困から自由になる働き方の未来図〈2025〉 

エンタープライズのいままでとこれから by 三谷さん
  • エンタープライズの特徴
    • 省力化、自動化
    • 対象はバックオフィス業務中心
    • 業務内容がかっちりしている方が自動化がはまる
    • 信頼性、安全性
    • 要求収束と大規模PMの安定的推進が鍵
    • こういった需要がなくなることは無いだろう。
  • IT投資の推移
    • 日本のIT投資は全然伸びておらず、アメリカとの差は開くばかり
      • アメリカは80年代は投資効果はなかったが、2000年代はぐいぐい伸びた。日本はその逆。
    • 80年代の投資は省力化・自動化を対象にした投資。アメリカは苦手で日本が得意。
    • 2000年代の投資は付加価値向上を目的としたIT投資がアメリカは上手い。日本は苦手。
    • が、80年代のモデルは一巡すると後が続かない。2000年代のモデルは市場がどんどん拡大していっている。
      • これがIT投資額の推移の差に現れている!

  • 新しいパラダイム
    • 人間のやってることをIT化するのではなく、ITでしかできない付加価値を生み出す必要がある。
    • ユーザーとともに構想するデザイン型人材が必要!
    • 他の世界(web、スタートアップ)では当たり前!?そういった世界との協調が重要。

webサービスの世界 by naoyaさん
  • 二つのwebサービス
    • 既存のビジネスをITで提供
      • EC,交通予約
    • ITそのもので価値提供 ※今回はこっちにフォーカスをあてる

  • これまでの展開
    • Googleの台頭
    • web2.0 へ(Googleがやらないところじゃないと潰される)
    • Facebook
    • Post PC (スマフォ、タブレット)
      • Post PCの時代は既にきてる!

  • PCインターネット
    • 儲かったのはgoogleだけ
      • 広告資本をインターネットに取り込んだ
      • (他の儲かったのは既存ビジネスの持ち込み組)

  • 現状の課題
    • モバイルプラットフォームの寡占、アプリストアの飽和
    • 国内市場の相対的縮小
    • webの大衆化

  • 世界を変えていく要因
    • モバイル
    • アジアの興隆 スマフォの普及による。
    • エンタープライズのコンシューマライズ

  • これから
    • サービス開発
    • 建前のないベストプラクティス
    • モバイルの波には抗えない
    • webの理想を追い求めることはできるのか??


孫さん
  • 年間投融資総額の推移
    • 2006年の半分、アメリカの1/20。IPO件数もorz...
    • が、全く悲観的になる必要はない!
    • こういった統計資料に新しいムーブメントは反映されてない。
      • ex. 日本を代表する企業の平均値である日経平均は10年前よりも下落している。が、全ての企業の平均としては57%の企業は株価が上がっている。

  • 誰でもスタートアップできる時代!スタートアップムーブメント!
    • クラウド環境、オープンソース、モバイル
      • 10年前のラグナロクの時代、、設備投資に三億円必要だったが、五千万しか集らずorz。ログインゲームと言われた。。
      • 試しに今AWSで同じことをやろうとした場合を見積もってみたら15万円/月!
    • ダウンサイドリスクはほとんど無い。
    • でも成功したら世界中へ!

  • EXIT戦略
    • M&Aが主流。
      • IPOが少なくても関係ない!

  • 起業環境
    • シリコンバレー
      • 17000社できて、12000社がexitしたり潰れたり
      • 毎年5000社増えてる
      • ベンチャー生態系ができているから
    • 日本
      • 砂漠みたいな感じ
      • 補助金は砂漠に水を蒔くようなもの
  • 孫泰蔵さんの野望
    • 2030年までにシリコンバレーのようなベンチャー生態系を東アジアに作りたい!!
    • 韓国や中国にもそういう動きはある
    • インドネシア/シンガポールにもある
    • MOVIDA School

  • バンドを組むようにスタートアップしよう!!
    • 起業者の人格 + 動くプロトを見て、500万円くらいはぽーんと出すよ!
  • サービス作りに関して
    • 英語で作れ!
      • 言葉が使いこなせないから、言語に依存しないUXができる。
      • 日本語で作ると日本の暗黙のコンテクストが入り込んでしまう。
      • インド人の英語、シングリッシュ(シンガポール英語)等、英語の逆輸入も始まってる?日本人もみんなで話せば、、



今年のデブサミのお題のAction!はすぐには決められませんが、、とりあえず出来ることからということで、AWSをもっと勉強するべくポチってみた。仕事で使ってみたいな〜。

Amazon Web Services クラウドデザインパターン実装ガイド

Amazon Web Services クラウドデザインパターン実装ガイド

macでfluentd のインストール 〜 out_exec_filterのrubyを試した #fluentd

@studio3104さんのエントリーを読んでて、↓は確かにできると便利そうだな〜と思ったものの、如何せんperlは使ったことがないのと、丁度Ruby修行中の身なので挑戦してみた。

webのアクセスログを解析する場合は、クエリストリングをパースしてゴニョゴニョしますよね。
解析のたびにパースするんだし、どーせなら全部fluentdにやってもらいたいところですよね。

とりあえずローカルだけでやってみた所、意外とローカルに全部盛りでやってる説明ってあんまり無かったのでまとめてみました。(最近だと皆td-agent使うでしょうしね。)
RVMやbrew等は入っている前提です。(丁度先日のエントリーでまとめてた。)


  • Fluentdのインストール
    • Installing Fluentd Using Ruby Gem | Fluentd
    • mac用のtd-agentってのは無さそうだったので素のFluentd。
    • すげー当たり前の話かもしれませんが、最後に"&" をつけてfluentdを起動した後は、jobs -l で該当のプロセスを確認して、killしてください。
      • mac端末でjobsってコマンドを入れるのはちょっとドキドキしますw


$ brew install mongodb
$ fluent-gem install fluent-plugin-mongo
$ gem install bson_ext -v=mongo_gemと同じバージョン


  • out_exec_filterで実行するRuby
    • スタジオさんのと違って、各パラメータを1フィールドにしています。
      • いつかTreasure Dataに上げる時にこっちのほうがHiveクエリ書き易そうな気がしたので。
    • 確実にもっと綺麗に短く書ける。。
    • printの代わりにputsって書いてて、エラーが出て一部欠落するという現象に結構苦しみました。。


  • 設定ファイル(ローカルの1プロセスで全部やってます。)
    • スタジオさんのblogを参考にout_formatはmsgpackにしています。
    • 今は公式ドキュメントにも書いてありました。

  • ローカルのindex.htmlにランダムなcategoryパラメータをつけて適当にアクセス
  • こんな感じで結果がとれる。
    • Mongoのクエリを駆使することで色々できそう。
    • parseの所で適当に間引いたり、何か目印となるフィールドを入れることもできるはず。
$ mongo
$ use fluent

-- category="01"のアクセス数
db.test.find({path: "/index.html", category: "01"}).count()

-- cateogry単位のアクセス数一覧
db.test.group({key:{category:true}, cond:{path:"/index.html"}, reduce:function(obj,prev) {prev.csum += 1;}, initial:{csum:0 } });


この形式であればTreasure Dataにそのままアップしてごにょごにょできそうなので、後日試してみる。とりあえず、アカウントは作った!


Software Design (ソフトウェア デザイン) 2012年 06月号 [雑誌]

Software Design (ソフトウェア デザイン) 2012年 06月号 [雑誌]

Rubyの写経時の環境

最近、コツコツとRubyの写経をしているのでその環境のメモ。




  • ブックスタンド(Ruby関係ない)
    • ソース忘れましたが、t_wadaさんが写経時には必ずブックスタンドを利用しているということなので模倣してた。
    • The RSpec Book のような分厚い本に加え、iPadも立てれていい感じ。
      • Railsの本はPDFで購入したが、初代iPadの純正カバーは写経にはすごく不向き。。
      • これはもっと早くから導入しておくべきだった。

ELECOM EDH-004 ブックスタンド

ELECOM EDH-004 ブックスタンド




数年前を考えると、オンラインでの学習環境も信じられない位整っていますが、ちょっとした時(電車や寝る前)の復習や、業務時に「あれ、どうやるんだったっけ?」みたいな時の読み直しのことを考えると、まだまだ書籍での写経にもメリットがあるのかな〜と思ったり。
Ruby on Railsの基礎 (全46回) - プログラミングならドットインストール
Code School
そして、オンライン学習がネット完結ではなく、テキスト(PDFや紙書籍)を用いたものになれば最強な気がするので、今後の進化に期待。



初めてのRuby

初めてのRuby


The RSpec Book (Professional Ruby Series)

The RSpec Book (Professional Ruby Series)


RailsによるアジャイルWebアプリケーション開発 第4版

RailsによるアジャイルWebアプリケーション開発 第4版

「新年会ハッカソン ゼンリン地図を無料で使い倒せ!!」に参加しました

↓のイベントに参加しました。
新年会ハッカソン ゼンリン地図を無料で使い倒せ!! on everevo


  • やったこと
    • ゼンリンの地図でGeoHexを描画できるようにした。
    • 検索実行時に自分のサーバにダミーリクエストを飛ばし、fluentd経由でMongoDBにユーザの利用状況が蓄積されるようにした。
      • ただ、検索APIでエラーが出たのを放置したまま進んでしまい、検索自体がダミーのまま。。


  • 思い/ 狙い
    • ユーザが位置情報アプリをどのように利用しているかを簡単に見ることができれば、街の様子が見えてくるはず!!
      • 今ここでどんなワードで検索が行われているか?
      • どんなスポットが見られているか?
    • javascript APIだけで作ったサイトの利用状況を簡単に蓄積したい。
      • ログ集計スクリプトを作ったり、それ用にサーバの実装追加/修正をしたりというのは避けたい。
      • しかもリアルタイム。
    • Fluentdを使いたかった。(これがあって無理矢理つなげた感が無くもない。)
    • GeoHexベースで情報を蓄積したい。
      • メッシュベースもいいけど、見た目/大きさの融通/範囲指定等々でGeoHexに分がある。
      • ライセンス注意。



<source>
  type tail
  format /^(?<host>[^ ]*) [^ ]* (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^\?]*)\?word=(?<word>[^ ]*)&level8_x=(?<level8_x>[^ ]*)&level8_y=(?<level8_y>[^ ]*) +\S*)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)")?$/
time_format %d/%b/%Y:%H:%M:%S %z
  path /var/log/httpd/access_log
  tag apache.access
</source>

<match apache.access>
  type mongo
  database zenrin_0126
  collection words
  flush_interval 1s
</match>



f:id:seikoudoku2000:20130126173406p:plain

> db.words.group({key:{word:true}, cond:{level8_x:"33789", level8_y:"-12063"}, reduce:function(obj,prev) {prev.csum += 1;}, initial:{csum:0 } });
[
	{
		"word" : "%A5%AB%A5%D5%A5%A7",
		"csum" : 1
	},
	{
		"word" : "%A5%D3%A5%B8%A5%CD%A5%B9%A5%DB%A5%C6%A5%EB",
		"csum" : 1
	},
	{
		"word" : "cafe",
		"csum" : 3
	},
	{
		"word" : "lunch",
		"csum" : 1
	},
	{
		"word" : "%A5%E9%A5%F3%A5%C1",
		"csum" : 1
	}
]


> db.words.find().limit(1);
{ "_id" : ObjectId("5103814a67ba440bd2000010"), "host" : "118.21.107.15", "user" : "-", "method" : "GET", "path" : "/zenrin/dummy.html", "word" : "%A5%AB%A5%D5%A5%A7", "level8_x" : "33789", "level8_y" : "-12063", "code" : "304", "size" : "-", "referer" : "http://ec2-54-249-128-153.ap-northeast-1.compute.amazonaws.com/zenrin/index.html", "agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17", "time" : ISODate("2013-01-26T07:09:09Z") }





  • 今後
    • in_tailの使い方がいけてないので、out_exec_filterを使ったやり方に変更。
    • GeoHex v3のruby gem作成。
      • サーバ側でごにょごにょしたくなったら欲しい (& 自分的にRubyの練習)
    • 蓄積した情報を活かしたコンテンツの検討
      • 利用者増えないと意味ないですが、、、
      • 仕組み自体は色んな所で使えると思うので、皆でLet's データマイニング
  • 結果
    • 惨敗。。
  • 感想

優勝した人は、4sqの検索が貧弱で近くのコンビニ探すのも一苦労だから、ゼンリンのコンビニPOIと4sqのコンビニPOIを紐づけてチェックインできるようにする、みたいのを作っていました。
自分もすごいな〜と思ってこれに投票しましたが、1dayハッカソンということで、さくっと他社のAPIを絡めれる引き出しと、現状の課題を絞り込んだ上で解決に導くという所がすごいな〜と。
発表driveで頭の中だけで思っていたことをやるのにもいいし、自分に足りない部分も見えてきたり、社外の色んな人の取り組みが見えて、とても刺激になったので、今年は座学形式よりもハッカソン形式のイベントに多く参加したいな〜と。(土/日の開催が多いので難ですが。。)

2013年にやりたいこと

2013年にやりたいこと というか、新年の抱負というか。

2011年にそんな感じのことを書いて、何個かちゃんとできたのに対し、
http://seikoudoku2000.hatenablog.com/entries/2011/01/11
2012年は書かずじまいで、いまいち新しい取り組みができなかったな~というのがあるので、2013年版を書いてみる。
一年の計は元旦にありってのはほんとですね。(もう、とっくに過ぎてるけどww)

  • Rubyの勉強
    • 昨年、↓あたりを買って一通り読んだものの、身についてないので、写経したり。

初めてのRuby

初めてのRuby


RailsによるアジャイルWebアプリケーション開発 第4版

RailsによるアジャイルWebアプリケーション開発 第4版


The RSpec Book (Professional Ruby Series)

The RSpec Book (Professional Ruby Series)


  • アルゴリズムに強くなる
    • この辺をRubyでやってみる。

世界で闘うプログラミング力を鍛える150問 ~トップIT企業のプログラマになるための本~

世界で闘うプログラミング力を鍛える150問 ~トップIT企業のプログラマになるための本~

  • 作者: Gayle Laakmann McDowell,秋葉拓哉,岩田陽一,北川宜稔,Ozy
  • 出版社/メーカー: マイナビ
  • 発売日: 2012/11/13
  • メディア: 単行本(ソフトカバー)
  • 購入: 136人 クリック: 7,620回
  • この商品を含むブログ (32件) を見る

プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?

プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?



  • ラジオ英会話を再開。



今の仕事にどうこうって所にとらわれすぎず、自分的に面白そう/これで仕事してみたいって思ってるものを、学ぶこと自体の面白さを意識しながら学習していきたいなと。



  • 小笠原に行く(7月or8月あたり)。
    • 屋久島、北海道も行きたいが、、、


  • 子どもと高尾山に登る。


  • 車の運転の練習をする。



昨年の12月に家族が1人増えて、これから、どんな生活が待っているのかよく分かりませんが、まあ、ボチボチやりたいと思います。

Cloudera World Tokyo に行った #cwt2012

行ってきました。

Cloudera World Tokyo | Cloudera Japan
↑に色んな資料もあり。

全体的な感想として、
CDH4やImpalaといった最先端のhadoopの進化に興味のある人、
一方でhadoopとは/clouderaとは?みたいな所からの人と、
出て数年のプロダクトではありますが、これだけのブーム(今回は600名の参加登録!)になると、
もはや"hadoop"という言葉でまとめて何かやるっていうphaseでは無いのかな~と。

とはいえ、これだけの利用者がいるからこそ、この規模のイベントが無料で、しかも、clouderaロゴ入りカステラやNTT Dataラベルの水がいただけるわけなので、ありがたい話です!!

あと、セッションのターゲットが先端を行く人向けと、これから使いだす人向けと、どちらかに寄ってたので、
真ん中くらいのレベルの人(単純なバッチ等でhadoop自体はそこそこ使ってて、次はマイニングとか機械学習ででホゲホゲしてどんどんサービス改善につなげたいが、敷居が高くて中々手が出ない、、、みたいな。)向けにも何かあるといいのかな~と思ったりしました。
## 自分がそういうのを聞きたいだけですが。。


以下、メモとったやつと感想

ビッグデータ最新動向 cloudera ジュゼッペ小林さん

「Big Data:六つの誤解」

  • 今日の話を理解するためのclouderaの考え方の説明です
  • Big Dataではなく、Bigger Data。
    • データ自体は昔からあったが、これからどんどん大きくなっていく。
  • Dataの使い方が大事
    • 風が吹けば桶屋が儲かる
    • 今の人たちが求めているのも極論するとこれと同じではないか?データから何らかの因果関係を見つけて一儲け。
  • Dataの使用目的は何?
    • 日本の冷蔵庫
      • サイズの問題であまりたくさん入らない。毎日のように明日何が必要かを考えて、買い物をして必要なものを入れる。
    • 欧米の冷蔵庫
      • 大きいので、どかっと色々買って入れておく。その中から色んな組み合わせで何かを生み出す。
    • これまでの解析は日本の冷蔵庫で、big dataは欧米の冷蔵庫
    • コストコで今日のおかずを考えるか?売っているものを見ながら利用方法を考える。
    • 目的よりも先に一箇所に集めることが大事。
  • 解析
    • 南アフリカ vs オランダ
      • 南アフリカはダイヤ原石の採掘をしている。
      • オランダでそれを磨き加工することで、価値が何倍、何十倍になる。
    • big dataは南アフリカ。big dataのbigは大雑把の大
  • バッチ処理
    • 日本のお風呂と欧米のシャワー。手段が違うだけで目的は同じ。
    • バッチもリアルタイムも両方Big data
  • データサイエンス
    • 何でてくるか分からないアドベンチャー。
      • 勿論、アドベンチャーするための知識は必要
    • こんな面白いことを外部にはやらせたくない。 by clouderaのお客さんの言葉
    • やらせるべきではない。 by ジュゼッペさん
    • 何が出てくるか分からないデータのアドベンチャーを切り開くpassionが無いと、何も出てこないよ!

リクルート流 ビッグデータを使いこなす3つの観点 リクルート 菊地原さん

「リクルート流ビッグデータを使いこなす3つの観点」

  • リクルートのビジネスモデル
    • 顧客とサービス提供者のマッチング
    • ライフイベント と ライフスタイルのニ軸
    • 海外では例えづらい。
    • ネットモデルの売り上げが着々と伸びている。
  • 組織
    • 10月に分社した。リクルートテクノロジーズ。旧MIT
    • ビッグデータgroupがある。70人!
      • 新技術/ロジックの開拓、基盤整備、ビジネスへの導入 という3つのミッション
  • 2種類のアナリスト
    • コンサル型アナリスト
      • 昔から存在していたアナリスト。掲出メディアの最適化等。
    • エンジニア型アナリスト
      • 新技術をビジネスに持ち込む。カーセンサーの例を探してね。
      • hadoopの発展と共に現れた
    • 最初から共同はしていなかった。
      • コンサル型の人が作ったロジックをエンジニア型の人がhadoop化したり、コラボの価値があった。
      • 分社のタイミングで一緒になった。
    • データ活用 = 事業担当 + コンサル型 + エンジニア型 がベスト!
    • ビッグデータ部も全員がガリガリのアナリスト/エンジニアという訳ではない。
      • すっごく難しい所を全員がやれる必要はなくて、それをどうビジネスにつなげていくかという所に注力できることが大事。
  • システムのライフサイクル
    • 開拓
      • 色々試す
    • 実装/展開
      • 早く導入する
    • 運用
      • 安定して横展開
    • 会社単体ではトータルしてもマイナスだけど、グループの利益を最大化することがミッション!

hadoop成功の鍵となるエンジニアのスキル&開発

hadoopというプロダクトで誕生したデータマイニングのニーズやエンジニアの新しいキャリアパス自体をビジネスにしてしまうという、リクルートという会社の凄さを感じました。
そして、実は自分が転職適齢期ど真ん中なことを知るなど。


データ分析におけるhadoop活用のメリット 新日鉄重金 大坪さん

  • 新日鉄ソリューションズの取り組み
    • 意思決定支援に関する研究開発
      • 20年前から取り組んでる
      • hadoopへの調査開始は2008年から。2010年ごろから他社との連携。最近、clouderaと提携。
  • hadoopで挑戦kdd cup
    • 毎年開催されるマイニングの世界的コンテスト
      • 今年のお題は広告クリック率の予測
    • 分類とは
      • 様々なデータをもとにそのデータのカテゴリの予測をすること
      • 既知のデータでモデルの構築を行う
      • カテゴリが未知のデータに適用
      • 評価を行うためのデータがトレーニングデータ
  • random forest
    • 多数の決定木を作成
    • それぞれの決定木で判定を行い、多数決で判定
    • mahoutに実装済み
      • in memoryとpartialモード
    • in memoryと同様の条件でpartialモードを実行するとすごく遅くなる。


サンプル数をがんがん増やせることがmahoutの強みな気がするので、同一のインプット量で精度云々を測るのは何か微妙なような気がしていたら、「データ増やしてどうなったか、、、続きはFEGで(近々行われる別のイベント。ちらし置いてきた & ググっても出てこないので詳細不明ww)」とのことでした。

f:id:seikoudoku2000:20121113000749j:plain
f:id:seikoudoku2000:20121113000806j:plain
f:id:seikoudoku2000:20121113000819j:plain
f:id:seikoudoku2000:20121113000831j:plain
f:id:seikoudoku2000:20121113000839j:plain
f:id:seikoudoku2000:20121113001108j:plain
f:id:seikoudoku2000:20121113001126j:plain
f:id:seikoudoku2000:20121113001142j:plain


hadoopのシステム設計、運用のベストプラクティス cloudera 嶋内さん

すごく具体的で有益な情報が多かった。ただ、結構ペース速かったのでメモは諦め、聞くことに集中。
「Hadoopのシステム設計・運用のポイント」

  • 象本読むべし。
  • hadoop operationsもいいよ。

Hadoop Operations

Hadoop Operations



その他の見つけたエントリー:
Impala Q&A - still deeper
Cloudera World Tokyoにいってきた - tagomorisのメモ置き場
Cloudera World Tokyo 2012 #cwt2012 でとったメモを公開しよう - garage-kidz tweetz

おまけ:
ニュース - 「Hadoopは低遅延に向かう」、米クラウデラのアワダラーCTO:ITpro