ぱろっと・すたじお

技術メモなどをまったりと / my site : http://parrot-studio.com/

Developers Summit 2012 2日目まとめ

1日目はWeb関連の話ばかりでしたが、
2日目は(結果的に)Ruby絡みが多かった気がします


おそらく、2日目のキーワードは「Rubyの感染力」かとΣ(・ω・ノ)ノ

17-B-3 言語の世界 by まつもと ゆきひろ 氏

  • 2009年にまつもとさんの話を聞いたのが、今につながっている
    • あれからいろいろな言語の本を読んだ
    • 今ではGunma.webの「言語担当」になっている・・・
  • その時のBlogは自鯖で書いたけど、もうない
    • サルベージすべき・・・?
  • プログラミング言語
    • 手順書記述用人工言語
    • 思考表現人工言語
    • 「機械」のためか、「人」のためか
    • 機械に手順を教えるものか?
    • 人が思考するためのものか?
      • 角谷さんの話とある意味つながる?
      • 「言語」は「人工」だよね、「形」があるので
  • FORTRAN
    • 数式っぽいもので書ける
    • つまり、人のわかる言葉
    • 言い換えれば、「人のため」の言語
    • 「(コンピュータが)遅かった」&「言語の常識」がまだない
  • LISP
    • LISt Processor
    • とても数学的
    • =人のための言語
    • 数学的なものを書いていたら機械で動いちゃった
    • 一方で、機械のための仕様も
    • car/cdrはIBM704のレジスタに合わせた仕様
    • GCの仕組みも人のため
  • LISP vs FORTRAN
    • 数学 vs 機械
  • 勝者は「Algol」Σ(・ω・ノ)ノ
  • 人が書きたかったのは「アルゴリズム」
  • プログラミング言語を作る動機
    • 作りたかったから
    • 新しいパラダイム
    • 新しい環境
    • 新しい制約
  • パラダイム
  • 過去のパラダイム
    • 構造化
    • オブジェクト
    • 関数型
  • ここ20年くらいはこれらの組み合わせ
    • それぞれを組み合わせた言語が存在する
  • ただし、「バランス良く」が難しい
    • Rubyはバランスがいいんですね、わかります
    • ・・・いや、マジで
  • 環境
    • OS / CPU / アプリ
    • "Web"
    • MapReduce
  • 制約
    • CPU / メモリ / データ / アクセス規模
  • どこまでが「言語」か?
  • 文法 / ライブラリ(資産) / アーキテクチャ
  • デザインパターン
    • ある言語では「パターン」でも、他の言語では「仕様」だったり
  • コミュニティ
  • エコシステム
  • 思想(哲学)
    • "Enjoy Programing!!"的な
  • 人格
  • 歴史の振り子
    • RubyKaigiでも言っていた
  • 集中 vs 分散
  • 性能 vs 生産性
    • ハード vs 人間
  • 静的 vs 動的
  • 正確さ vs 柔軟さ
  • これから来る言語は?
  • APL・・・は2009の時に
    • 結局来なかった(´・ω・`)
    • APL記号はUnicodeの中に
  • WhiteSpace・・・はさすがに冗談
    • でもあれアホらしくて素敵
  • 影響を与える要素
    • 大規模 / 高抽象化
    • CPU / メモリ
    • データ
    • 大量アクセス
      • ソーシャル / クラウド
  • Erlang / Node.js / R /SQL ・・・の後継
  • Erlang
  • Node.js
    • 非同期I/O
    • 大量のアクセスをさばける
  • R
    • 統計・解析に便利
    • OracleもR-ODMを提供
  • SQL
    • 「宣言的データ取得」
      • やりたいことを宣言すると、その結果を返す
    • 高抽象度
    • HadoopのHiveとか
  • これらの後継が将来的に「来る」・・・かも?
  • あるいはこれらの要素が既存に追加されるか
  • 言語の楽しさ=プログラミングの楽しさ
    • 思った通りに動く
    • Like a DogΣ(・ω・ノ)ノ
  • 言語=プログラミング
  • 言語実装=プログラミングの総合芸術
  • 言語設計=発想をプログラミング
  • Rubyistsの脳=まつもとさんがプログラミング(((((( ;゚Д゚)))))
    • We Programing You!
      • 似た例:一太郎の設計が、結果的に日本語変換を定義している
  • Enjoy Programming!

17-B-4 マイクロソフトの変化を体現するAzureエバンジェリスト2人が語る今後10年を見越したオープン戦略 by 砂金 信一郎 氏&佐藤 直生 氏

  • ぶっちゃけ、まつもとさんと角谷さんが17日の大本命
  • だから、この時間は息抜きのはずだったのだが・・・
  • クラウディアさん・・・もといAzureなめてた(ノ´・ω・)ノミ(m´_ _)m
  • 全体に資料が綺麗
    • Metroスタイルでインフォグラフィック的な表現
    • あまり見ないスタイルだったので面白かった
  • 砂金さんはITmediaでBlogを書いていたはず
  • クラウディアさんのプロデューサー
    • なるほど、この人ならサブカル系に強そうだ・・・
  • 講演者二人ともOracleからMS
    • 他も経由していたけど
  • 資料にクラウディアさんのイラストを突っ込んだ理由
  • 「これがあればとりあえず開けてくるはず」
    • 確かに・・・(´-ω-)
  • 今日のテーマ:MSはNode.jsに本気
  • Azureは10円/hくらい
  • AWSとの違い:AzureはPaas
    • 開発者からするとコーディングに集中できる
    • インフラ担当からすると細かいところをいじれない
      • AWSはまんまOSだけど、AzureはWindowsの「上」
      • こういうスタンスを見ると、MSは相変わらず開発者寄り
  • 事例
  • FacebookCMS
  • mixiクリスマス
    • 250万人以上が1.8億回以上のベルを鳴らす
    • 以前はGoogleApps
    • MSがスポンサーだったので、「Azureでやりませんか?」
    • ASP.NET / MVC3
    • マルチデバイス対応が大変
      • しかも、それを1ヶ月で
    • 10秒ルールの壁
      • D/Gは5秒
    • インスタンスを増やそうとするが、与信審査の壁
      • 契約時に「無制限」になってなかった
      • 本社を全力で説得
    • Azureで正確に「実行時間」を計るのは難しい
    • フロントのnginxで強制的にレスポンスを返すとか
      • 何か変えれば10秒ルールに引っかからない
    • Azureのキャッシュ機能ではなく、memcachedを使用
      • 個人的には、これらのOSS的技術がAzureで動くことに驚き
      • IISに.NETのイメージしかなかった・・・
  • FF13-2のプロモ
    • PHP on Azure + CDN
    • APは香港が一番近いが、CDNは東京にも
      • というより、日本からのアクセスだと東京に振られる
    • コストパフォーマンスがいい
      • Akamaiとかは速いけどお高い・・・
  • OSSの話
  • Node.js / jQuery Mobile / Hadoop / PhonGap
  • Apacheのお偉いさんが連携のためにMS入社していたり
  • ビルゲイツがOSSへ進めたという最近の記事
  • DEMO:Node.js
    • Azure SDK for Node.js
    • シェルでいろいろ作業できる
      • 各言語(SDK)ごとに、それにあったタスクを用意しているらしい
      • JavaならAntとか
    • コマンドでひな形が作られる
    • ローカルでインスタンスを起動したり
      • このあたりのツールUIはさすがMSというところ
    • npmでNode.jsアプリのインストールも
      • npmはWindowsでも動くようになっていたという
    • Azureのインスタンスはリモートデスクトップでつなげる
      • Windowsだし
    • 個人的に一度Node.js環境をサーバに作ろうとして挫折したことが
    • それからすると、この「手軽さ」はすばらしい
      • 開発者寄りということか
  • DEMO:Cloud9
    • ブラウザIDEでNode.jsアプリを作ってAzureにデプロイ可能
    • これもMSが協力したらしい
  • DEMO:mongoDB・・・は時間がなくて割愛Σ(゚Д゚)ガーン
    • クラスタを組んで動かせるっぽい
    • 見たかった・・・(´・ω・`)
  • DEMO:Hadoop
    • 限定プレビュー(?)中らしい
    • 円周率計算のサンプル
    • 非常にUIが綺麗
      • Metroスタイル
    • ブラウザからHadoopの制御ができるというのは(・∀・)イイ!!
    • JSでHadoopの操作ができる
  • AzureのUIがMetroっぽく変わる?
  • 4〜5月に何かある?
  • 月曜はMSのトップページに注目
    • 何があるんだ・・・

17-B-5 アジャイルマニフェスト ディケイド by 角谷 信太郎 氏

  • 相変わらず熱い
  • たぶん、このメモ書きでは熱量が伝わらない(´-ω-)
  • あと、仮面ライダーが好きな人だともっと面白かったはず
    • わからなくても面白かったけど
  • ところどころ、「私の言葉」を交ぜているので注意
  • アジャイルサムライ」の話
    • あれはわかりやすいので読むべき( ゚д゚)o彡゚
  • 「道場」の人達が集まってなんかやるらしい
  • "次の10年を駆け抜ける未来のヒーロー達へ"
  • 2001年:アジャイルマニフェスト
  • Waterfall = 人口のソフトウェア
  • 環境の変化が加速
  • 「自然なソフトウェア」
  • やるべきことをやらない「不正義」
  • 「XP」の誕生
  • 建築の手法をソフトウェアへ
    • 「パターン、Wiki、XP」に細かいことが書いてあるらしい
      • 買わないといかんか・・・(´-ω-)
  • 成長 / 感性 / 繰り返し
  • これが「正義」
  • つまり、「仮面ライダー」Σ(・ω・ノ)ノ
  • Decade=10年
  • ここから「仮面ライダーディケイド」の説明が始まるΣ(゚Д゚;≡;゚д゚)
    • 今までのライダーになって戦う
    • 並行世界
    • 世界が融合を開始
    • 「自分の世界」を守るために、ライダー同士が戦う
      • という話でいいのかしら(´・ω・)?
    • 人材の流動で世界が消える?
  • 「ディケイドに物語はありません」Σ(・ω・ノ)ノ
  • Nature of Software
  • Nature : 自然、本質
    • Softwareの本質=コード
  • 「人とソフトウェアの間に価値がある」
    • 人が使ってみるまでわからない
    • ソフトウェアは目に見えない、頭の中にあるもの
    • 頭の中=ユーザの認識
  • システム「全体」を構成
    • ハード・ソフト・文書・運用がセットでなければならない
  • 変更への対応が求められる
    • "Soft"
    • 育てることと技術的"負債"
  • 世界観を構築・世界を作る
    • 決して「文字を並べるだけの簡単なお仕事」ではない
  • 頭の中は膨大である
  • プログラマは「詳細の管理者」
  • 「コード=ドキュメント」
    • ならばどう「クリアに書く」か?
  • コードに"したこと"
  • コードに"しなかったこと"
  • これがプログラマの仕事
    • 力には責任が伴う
  • 人工 -> 自然へ
    • お金等が絡まない世界
    • Free/OSS
    • ハッカー文化
    • バザール方式
  • 開発"プロセス"
    • 成長 / 感性 / 繰り返し
      • どうでもいいけど、海外のGeekも某魔法少女が好きなのか・・・
      • QBさんの台詞が書かれたTシャツを着ていたΣ(・ω・ノ)ノ
  • アジャイル
    • "できない"?
  • Agileは名詞ではない、形容詞である
    • 身軽に、気軽に、生き生きとした
  • Agileは「度合い」である
  • 「方法」ではない
    • 「現場」は全て異なる
  • 例:Scrum
    • 軽量 / 理解は容易
    • "習得は非常に困難"
  • 「人はパターンを認識する生き物である」
  • 「方法」や「名前(言葉)」にとらわれてはいけない
  • 文脈や制約が「裏」にある
    • 「そのまま」適用してもうまくいかない
  • 形だけの「朝会」に意味はあるか?
    • アジャイルサムライの例:「昨日、世界をどう変えたか?」
    • その他は本を参照
  • アジャイルの12の原則
    • 読むのはたやすい
    • 考えはじめるとものすごく難しい
    • アジャイルサムライはこの原則について語った本
      • だから読むべきなんだってщ(゚Д゚щ)
    • 自分の「コンテキスト」に置き換える
    • "噛みしめる"
  • "できない理由"は山ほどある
  • ならば、「それ」がなかったら「できる」のか?
    • 例えば、全部自由ならOSSのようなプロセスが実行できるのか?
  • 「セイヤーーーーー」というソフトウェア
    • 会心の一撃というか
    • 「これキタ━━━━(゚∀゚)━━━━!!!!」というか
      • 感覚的な世界
      • いいたいことはものすごくわかる( ゚д゚)o彡゚
  • いいソフトウェアに触れたときの「心地よさ」
    • 個人的に、Rails2では感じられなかったが、Rails3にはそれがある
  • そういったものは優秀な人にしか作れない?
  • なら、「普通の人」はどうする?
  • "コミュニティの一員になる"
  • ソーシャルコーディング
    • github
  • 内側と外側の「質」
  • 内側の質=コードの品質
  • "内なる平和"
  • "安心感"
    • カンフーパンダ
  • ユニットテストは「失敗」を検知できなければ意味がない
    • 必ず通るテストに価値はない
      • だからRedから始めるんだよね
  • "偉大なる質問者"
  • ところどころメモが読めなくて完全ではない・・・(´-ω-)
  • 教訓:メモは綺麗に書きましょう

17-C-6 ライターズ・フィロソフィー―IT業界で書いて食っていくひとたちの哲学をきこう

  • 一言で言うと、「@IT無双」Σ(゚Д゚;≡;゚д゚)
  • PublicKeyの人は@ITの人だったのか・・・
  • 「西村さんとPublicKeyの人の話」を聞きにいったのは事実
  • でも、実質的にその通りになってしまったΣ(・ω・ノ)ノ
  • この時間、かなり疲れ切っていたので、メモも部分的
  • 気になったところだけ書き残す
    • 残り二人の話がほとんど出てこなくて申し訳ない(´・ω・`)
  • 西村さんのLT
    • Rails情報局の人
    • という形でセルフブランディングしているんだよね、この人も
      • 私は「何の人」だろう・・・?
  • 週刊アスキー -> @IT
    • エンタープライズ系がやりたかった
  • まつもとさん&笹田さんのインタビュー記事
  • 「この人達おもしれー(*゚∀゚)=3」
    • この人も感染者ということに・・・
  • そこで、自分でも作ってみる
    • 作ってるよね・・・(`・ω・´) b
  • Asaksa.rbに飛び込んだり
  • 紙面からWeb(HTML)へ
  • 今はブログ(プログラム+DB)がメディアの時代
  • 次に来るのは「サービス(システム)がメディア」の時代
  • @ITで新サービス構築中Σ(・ω・ノ)ノ
    • BBSではなく、QAサービス
  • 「コードが重要」
  • 「コードの書けないITジャーナリスト」で生き残れる?
  • 「(記事を)"書く"だけでは食えない」
  • PublicKey新野さんのLT
    • "数年後には@ITを超える"宣言Σ(゚Д゚;≡;゚д゚)
  • この人もエンタープライズ志向でアスキーを辞める
    • その後少しフリー
  • @ITの創設者
  • 大きくなるにつれてマネージメント寄りに
    • 2000年の創設時には10人(編集2人+α)
      • 資本金3000万円だが、すぐに使い切る
    • 2006年にアメリカでBlogメディアブーム
  • 「記事を書きたい」
  • 2008年にフリーへ戻る
  • 2009年にPublicKey
    • サーバコストは1年で15000円@さくら
    • 人件費:自分だけ
    • オフィス:特になし
    • PV30〜40万
    • バナー400万
    • その他にアフリエイトとか
  • 2011年のサイト収入は480万弱
  • 既存メディアはコストが高すぎる
  • 優秀な人ならメディアを離れてもフリーで食っていける、という実験
  • この時点で残り10分Σ(゚Д゚)ガーン
  • もはや本来のディスカッションは不能な状態
  • 自己プロデュース
  • "by company"から"by name"の時代
    • 例:ユカタン
    • これはライターに限らず、技術屋も
  • 自己プロデュースできない記者は役に立たないと会社も気づいている
    • この場合の会社=@ITというかITmedia
  • もはやプログラマもフリーランスでいいのでは?
    • 松田さんみたいに
  • というよりも、それを可能にするだけの「スキル」の有無
    • それだけの「スキル」がある人を会社としてもほしい
  • 「10年やればスキルになる」
  • 「現場に行かないとわからないことがある」
    • Ustでも伝わらないことがある
    • 熱気とか、空気とか

17-B-7 ソーシャルコーディングの世界 by 松田 明 氏

  • すでに限界を超えていたのでかなりメモがあいまいに(´-ω-)
  • でも、面白い話だったのよ?
  • デブサミ10thSPカテゴリのネタを「全部」突っ込む
  • なぜ、ただのリポジトリではなくなったのか?
  • githubがRuby(コミュニティ)と出会ったから
  • Ruby=「キメると気持ちいい」
  • 一人ではなく、みんなでキメるともっと気持ちいい
    • トランス状態Σ(゚Д゚;≡;゚д゚)
  • 化学反応
  • カルチャーが合っていた
    • つまり、githubも感染者・・・
  • かつて、コードは「機械」に対して語りかけていた
  • それが「人」へ語りかけるコードへ
  • コミュニケーションの手段としてのコード
  • 自己表現の手段へ
    • 著作・芸術
  • 「世界の構築」
    • このあたり、まつもとさんや角谷さんのとかぶる話
  • いわば、「ルネッサンス」である
    • 神から人へ
    • バッハからベートーベンへ
  • 「人間賛歌」
  • ソーシャルコーディングで友達100人できました
    • もちろん、100人は比喩
  • 世界中で使われる
  • 世界中からメッセージをもらう
  • 初対面でも友達感覚という一体感
    • OFF会の感覚に近いかもしれぬ
  • OSS
  • 「コミッター」と「使う人」
    • 「使わせてもらう」という感覚
    • 例:SourcrForge
    • プロジェクトを申請してリソースを「使わせてもらう」
  • Social Coding
    • 誰でもcommit/pull/fork
    • コミットの積み重ねがプロダクトを生む
    • 皆が「平等」である
    • 「価値のあるもの」だけが生き残る世界
  • お仕事 vs Social Coding
    • 業務系の人こそ外の文化に触れるべき
    • コードが外に出ない仕事だからこそ、アプトプットが重要
    • 枯れたプロダクトばかり使わない
    • 新しいプロダクトのバグからパッチを書く
    • せめて報告して貢献する
  • ビジネスのコア部分以外はOSSにしてしまう
    • 会社と自分の宣伝
    • 仕事のコードを他の人が書いてくれる
    • その「他の人」を採用できる
    • モジュール化するために綺麗なコードになる
  • 趣味で作って仕事に適用してしまう
    • 仕事でソーシャルコーディング
    • 趣味のメンテナンスが仕事に
  • 業務と余暇があいまいに
  • エンジニアの必須スキルへ
  • ソーシャルコーディングの未来
  • 「読む」時間が増えるので、gitlogリーダーがほしい
  • リアルタイムコミュニケーション
    • 今はBBSレベルの非同期コミュニケーション
    • チャットをしながらコーディングのような
  • テストをもっと楽に書けるように
    • Travis CI(githubリポジトリのCI)
    • テストがないコードはありえない
    • しかし、コミットしないとテストしない
    • しかもテストを通らない
    • CIのカジュアル化
  • インフラの信頼性
    • githubの一斉メンテ
    • アメリカ時間で日曜の夜だが、日本では月曜の朝
    • これでは仕事で使うべきとは言いづらい
    • クラウドとか、落ちないようできない?
  • セキュリティ
    • ローカルにあるべきものがWebにある
    • 詳細なアクセスコントロールができないか?
  • YES, WE CODE!