(第0回?)新宿鮫に行ってきた。 #jawsug

Amazon Web Services 勉強会(新宿) on Zusaar
今の所、仕事で導入するあてはないけれど、ただただ面白そうなのと、これからのキャリアプランとか考えると必須のスキルだよな〜という所で、CDP本を買ったりしつつ勉強中な所に見つけたので行ってみました。

ちなみにタイトルの"新宿鮫"というのは、この回の主催者の吉田さんがこれから立ち上げようとしている新宿コミュニティの仮称だそうですが、いい響きだなと思ったのと、普通に今回の資料の先頭に記載してあったので拝借。

最初に感想を書くと、本編の中ではAWSの共有責任モデルの話&コイニーの導入事例が印象に残りました。セキュリティって大丈夫?くらいの認識だったのが申し訳ない感じです。。逆に自分は何でオンプレの方が安全だと思っていたのだろうかと自問自答してしまいました。個人利用では中々気にすることはないですが、会社に導入するとなると必ず話題になるはずなので、聞かれた時用にしっかり勉強しておく必要があるなと。
あとはAWSカルタが面白かった。カルタデータ公開されたら社内の興味ある人と一緒にやってもいいかもしれないww。
懇親会はcloudpackさんのビール奢り(しかも余った分はお土産でいただきました。あざっす!)&500円でピザ。
人数少なめで、素人ながらに吉田さんから色々と聞けてとても勉強になりました。
来る日に向けて、楽しみながら、しっかりと知識を蓄えたり、ちょいちょい使ったりしつつ、時間が合えば新宿鮫にも参加してみたいなと思った次第です。


以下、本編のメモとか資料とか。

趣旨、AWSの概要とか

AWSカルタ





セキュリティに関して

  • 共有責任モデルの採用
    • インフラはAWSが責任を持つ。
    • その上で動くアプリに関してはユーザが責任を持つ。
  • AWSのセキュリティ
    • データセンターの場所は秘密!!
    • 第三者認証。
  • 利用側のセキュリティ

コイニーの導入事例

  • PCI DSS v2.0
    • クレジットカード会社5社が制定したセキュリティ基準
    • アメリカでは結構浸透している。
      • データが漏洩した場合、PCI DSSの運用をちゃんと行っていたことを証明できれば、被害の訴訟を避けることができる(州がある)。これがインセンティブになっている。
  • 登場人物
    • Coiney(サービス提供者)
    • cloudpack(AWS導入支援)
    • Payment Card Forensics(監査会社)





※懇親会で絶賛されてた#devsumiでのサーバーワークス 大石さんの講演資料

Amazon Web Services クラウドデザインパターン 設計ガイド

Amazon Web Services クラウドデザインパターン 設計ガイド


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

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




2/28 追記:
試しに"新宿鮫"でぐぐった所、大沢 在昌さんのシリーズ小説があることを知った。。

新宿鮫 (光文社文庫)

新宿鮫 (光文社文庫)


毒猿 新宿鮫II: 2 (光文社文庫)

毒猿 新宿鮫II: 2 (光文社文庫)


屍蘭 新宿鮫III: 3 (光文社文庫)

屍蘭 新宿鮫III: 3 (光文社文庫)

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

前回のエントリーの続き。

最初2つは言語の話。長年の付き合いのJavaと最近学び始めたRuby
付き合いの長さ(?)、自分はまだまだJava愛が強いなと感じることができましたww。

Ruby2.0 by Matz

  • ruby 生誕20周年!
    • 1993年2月24日に開発開始
    • 1995年12月21日に公開ver 0.95
    • 1996年12月に1.0
    • 以降順調にバージョンアップを重ねたが、1.8と1.9の間がかなり間が空くようになった。
      • 心理的な障壁。

  • とうとうやってきた2.0
    • RubyConf2001 で始めてruby2に言及
      • 第一回。31人の参加者。
    • 新VM、新GC、埋め込み、ネイティブスレッド
      • 2001年に考えていたことは1.9で実現された

  • 現代のRuby2.0の起源
    • ruby conf2003で言及していたのが最初。
    • 壁を乗り越える要因
      • 20周年!(誰に言われたか忘れたけど、強く後押しされた。)
      • ADD(=Aniversary Driven Development)
      • キーワード引数、メソッドコンビネーション、セレクターネームスペースが2011年位にできあがってきて、いけそうな気がした。


Java! 日本オラクル 寺田さん

寺田さんの話を聞いているうちに自分の中のJava愛が目覚めてきて、普段はあんまりやらないんですが、頑張ってつぶやいてみました。














QA@ITの事例 西村さん

GitHub時代の開発委託とは? デブサミの資料を公開しました - QA@IT公式ブログ



後半のパネルでメモった内容を補足。


Q.技術的負債、プロト作成について
負債を溜め込んででも開発速度を極限まであげるべきでは?
離陸しなければ、そもそも開発が継続しない。プロトを捨てる必要はあったのか?

A.うらしまさん
ケースバイケース。今回に関していうと、ローンチ = 開発終了というわけではなく、ゴールが明確ではなかった。この状況では、ある程度、きれいなものを積み上げていくしかなかった。
プロトは何を作るかを理解するために作ったもの。三回作れば勝てる仮説。

A.西村さん
テスト無いプロダクトで幸せになった人はいない。 by うらしまさん
(あとからの機能追加がすごく大変。メンテコストが高くなってプロダクトが死んでしまう。)



Q.これって特殊解なんじゃないの?

A.角谷さん
プロジェクトは全て特殊(そうじゃなかったら980円/月とかで提供されるでしょ)だけど、そこは掘り下げずに。
ジム・コブリン:三回起きたらパターン。二回だとcoincidence。一回だとaccident。
今は特殊かもしれないが、そういう潮流は肌感覚として感じている。これからあり得るんじゃないか。


朝のセッションで日本は付加価値をつけるIT投資が苦手だが、そこを伸ばしていかないといけないという話がありましたが、こういう事なのかな〜と思った。SI云々の話はよく聞くけれども、アメリカと比較して日本が全然伸びれていないということは、それだけの伸びしろを秘めてるとも言えなくもないので、逆にチャンスは転がっているんじゃないかと思ったり。
個人的にちょっと気になったのは、西村さんがpull-req送った話や、Github云々の話も多く、ツールにフォーカスあてすぎかなと感じました。本質的/普遍的な言葉で説明がもうちょっとあったら、腹落ちの度合いも増した気がします。
あとは角谷さんの↓がちょっと気になります。。

デブサミ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人増えて、これから、どんな生活が待っているのかよく分かりませんが、まあ、ボチボチやりたいと思います。