Developers Summit 2012: 1日目

入社2日目だけど、許可をいただいたのでデブサミに行ってきた。
10年後も世界で通じるエンジニアであるために Developers Summit 2012

聴いて回ったセッションの断片的メモ。間違いや誤解釈などありましたらご指摘いただけると嬉しいです。

  • 【16-A-1】見る前に翔べ 〜ギークの工夫で社会を変えよう〜 (@takorattaさん)
    • Launch & Iterate
    • テーマ・方向性
      • 機能をadd/removeするときの判断基準となる
    • プロダクトアウトとマーケットイン
      • 「良いだろうと思うものを世に出す」<->「顧客の要望から必要なものを作る」
    • 今日のユーザのための機能 明日のユーザのための機能
      • 前者に囚われすぎず 後者をちゃんと考えて
    • イノベーションのジレンマ
    • 思考実験・科学反応
  • 【16-C-2】大規模化するピグライフを支えるインフラ 〜MongoDBとChefについて〜 (@kuwa_twさん、@namikawaさん)
    • MongoDB
      • 開発スピード
      • スケーラビリティ
        • Sharding: Mongoの標準機能だけで横に拡げられる
      • 冗長性
        • ReplicaSet: 最小単位は2台
      • 現在140台!
      • index多用する場合は2.0系にバージョンアップしたほうが良い
      • グローバルロック
        • 書き込みが集中するようなものはクラスタ分けた方が良い
        • 改善されると思う
      • Chunkの偏り
        • autoではデータ量/オブジェクト数によって分割される
        • manualの方が良いことが多い
      • バグを踏んだ話 いくつか
      • ノウハウ蓄積したのでこの先も使っていける
    • 感想
      • これはMongoDBをヘヴィに使い込んだ経験ないと語れない話。素晴らしいノウハウ共有だと思いました
    • Chef
      • クラウド使ったら?」という意見に対して
      • Chefとは
        • 構築作業やシステム管理の自動化
      • 必要性
        • 時間短縮による機会損失、人為的ミスの防止
      • シェルスクリプトではダメ?
        • DSLで管理タスクが記述しやすく読みやすい
        • プラットフォーム差異を吸収
      • 登場人物
        • Node, Role, Cookbook など
      • イケてないところ
        • サーバのセットアップが面倒
          • 最初だけなので許容できる
        • dry-runできない!
          • テスト環境が必須
        • 名前がSEO的に…
          • ググるとマジ料理の情報が出てきてしまう
      • 実際の運用
        • PXE + kickstart + Chef
          • 電源オンして自動でOSインストール、chef-client実行でアプリをデプロイできる状態まで
        • ScriptResourceは基本的に使わない
        • 各サーバでchef-client実行
          • tomahawk, knife ssh
        • アンインストール、削除の処理も忘れずに
        • クラウドと連携して完全オートメーションしたい
  • 【16-C-3】趣味と実益の脆弱性発見 (@hasegawayosukeさん)
    • IEのContent-Type無視によるXSS
      • とにかく複雑なメカニズム MSの人も把握できていなかったw
    • UTF-7によるJSON Hijacking
      • JSONに埋める文字列にUTF-7のものを送り、罠ページから読ませる
      • IEがscriptタグのcharsetを優先してしまうため攻撃可能
      • 対策: リクエストヘッダの確認、"+"をエスケープ
    • E4X + WebWorker
      • E4X: ECMAScript for XML
        • {}内をJSとして実行可能
      • 解釈を厳しくすることで対策
      • しかしWebWorker内では効いていなかった
      • "枯れてない新しい機能は狙い目"
    • セキュリティ界に関わった経緯
      • 産業用計測機器の設計
        • セキュリティへの意識、脆弱性学ぶ
      • 問題を見つけても解決されない閉塞感
        • 「仕様です」は最近きかなくなってきた
        • ブラウザ競争によって減ったのかも?
      • 「その仕様を最も悪用できる方法を思いつくことが、世界平和の貢献につながる」
        • というアドバイスで世界が開けた
    • 10年後について
      • 標準化された機能を学べば10年後まで残る?
        • 10年間成長しないつもりですか
      • 独自機能を追いかける技術こそが10年後まで通用する
    • セキュリティの話をもっと発信してほしい
      • 日本発の話題が少ない
      • 発信されていないのは存在していないに等しい
    • CTFコンテスト
  • 【16-C-5】JavaScript 最新事情 ― 開発者なら知っておきたい次世代 JavaScript ― (@dynamitterさん)
    • JavaScriptの歴史
    • ES5について
      • Native JSON("じぇそん"?): IE 8+
      • ArrayExtra: filter, mapなど es5-shimで使える
      • Function.prototype.bind
      • Strict Mode
        • 関数単位でも利用可
      • Getter & Setter
        • Memorization: 巨大オブジェクトを遅延初期化
      • seal & freeze
      • その他いろいろ
    • ES6
      • より書きやすい、テスト可能、バージョニング、など目標
      • Simple Map, Simple Sets
      • Weak Map
      • const, let, BlockScope
        • constはまだ使わない方が良い
      • Destructuring assignment
      • for-of ループ
      • Iterator, Generator
      • TypedArray
        • 型固定配列 IEは10+でサポート?
      • Globalization
    • JS.Next楽しいね!
      • 勉強会やりましょう
    • 10年前DISられていても今はHTML5の基盤、10年後たのしみ
  • 【16-A-7】あの人の自分戦略を聞きたい! (司会: @t_wadaさん)
    • 女子大生メガネっ子ドラ娘
    • 「技術の意識的戦略」
      • 考えてきたこと、選んだもの、選ばなかったもの
      • "自分語り"を聞く
    • @takaiさん
      • http://www.slideshare.net/Naoto.Takai/ss-11614097
      • SIer -> Web系企業
      • 3つの項目
        • シンプルに時代を捉える
          • 技術の進歩、時代背景
        • 理想を管理する
          • どういう社会になってほしいのか
          • どうやって周りの幸福に寄与できるのか
          • 自分のコントロールできる範囲で
        • セルフブランディング
          • 希少性など意識して
    • @bleisさん
      • 好きなことを見つけ、それに結びつける
        • 例: 「シンプルなものが好き」
      • 学び続ける姿勢
        • 読書量、勉強会参加数がすごい
      • アウトプットする
        • インプットとして受け取れる範囲が拡がる
        • アウトプットを広めることも忘れずに
      • QuickTestSwitcherをよろしくお願いします
    • @takahashimさん
      • http://www.slideshare.net/takahashim/devsumi2012-jibun-senryaku
      • 元祖高橋メソッド
      • 持論: リスクは負いたくない
        • 回避した結果としての起業
      • 行き詰まり感
        • 収入を増やすために
        • そもそも企業の中だけで生きていけるか?
        • いっそ違う世界へ
      • 会社が倒れるまでの仮定を見た
      • 失敗経験を糧に
      • でもやばいことになったり
      • 終わり良ければすべて良し
        • 良い人生を
    • @kohsukekawaさん
      • 「失敗には理由があるが成功には理由がない」
      • ソフトウェアの公開、情報発信
      • 趣味のOSSからスタートしたJenkins
      • blog, 勉強会でのアウトプット
      • 「人がやってるから自分がやっても価値がない」という考えは間違っている
        • 数学の証明とかとは違う、色んな人が料理つくったって良いじゃない
      • 匿名はもったいない
      • サービス公開するだけでソース見せないのはもったいない
        • ユーザと開発者が非対称になってしまう
      • 英語おぼえよう
    • @kuranukiさん
      • sonicgarden.jp
        • プログラマを一生の仕事にする、高みを目指し続ける」
          • ライフスタイルカンパニー
      • ガラパゴスなキャリア戦略
        • 自分を取り巻く環境も自分の価値
      • オーナーシップ
        • 所属するだけでなく、会社と自分を対等に考える
        • 会社の中でも提案を。お客様、と考える
    • @papandaさん
      • "Start with Why"
      • SIの限界
        • 稼動率と新規ビジネスのジレンマ
      • サービス的な受託開発
      • 真剣勝負の運用保守
      • 「主観によって世界は変わる」
      • 時間切れ。続きは別の機会に
    • @moriyoshitさん
      • php + Xlibで書かれたプレゼンツール
      • 8bitマシン、ゲーム作りでの挫折、インターネットとの出会い
      • Netscapeオープンソースに」という衝撃
      • ソースコード読む習慣、バグ修正パッチ送っていたらコミッタに
      • 10年後に生きのこらないエンジニア
        • 過学習」と「局所解」
        • 適当だが最適でない解
      • 防ぐためにベンチマークを怠らないこと
      • 複数の見方を覚える、多くの人と話をする
    • Q&A
      • Q「40〜50代と年齢を重ねていくことへの心配は?」
      • A「流行ったもの、流行らなかったものを見てきた。不要なものは削れる」
      • A「年下からも学べると良い」
      • Q「希少性というところは狙った?自然に?」
      • A「自分の実力で最も価値あるところを出していけば良い」
      • A「30歳から始めたとき あまり周りがやっていなくてこれから来そうなものを」
      • A「希少というより差別化」
      • A「『人がやらないことをやりたい』性格、いたずら心」