ぱろっと・すたじお

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

Developers Summit 2010 2日目メモ

今日も午後からデブサミに行って来たわけですが、
昨日以上に疲れました(´-ω-)


昨日はまだ最後のセッションへの参加を迷う余裕があったのですが、
今日は午後の4本目が終わった段階で即会場を出ました


というわけで、昨日以上に簡単なメモだけ残します...φ(・ω・`)

開始前

  • 今日は三連続で同じ会場だったのと、買い物をしたかったので、昨日より早めに
  • まずはオライリーブースでHadoop本を購入
    • Amazonでは売り切れ中
    • 昨日見たときはまだ結構あったんだけど、今日の昼の時点で@4冊くらい
    • 当然そのうち1冊を私がGET∠( ゚д゚)/
    • 4000円以上買い物するともらえるというタンブラーをもらった
    • 動物の柄とAndroidのマスコットの三種類だったので、Android
  • 後は早めに会場に並んでTwitterのTLをチェックしたり
    • 2日に渡り、PocketWifiがいい仕事をしていた(`・ω・´) b
      • PCもiPhoneもこれ一つでOK
    • やっぱりSBの回線は解約だな・・・

自分でできるWebアプリケーション脆弱性診断

  • @ITでこの連載を持ってる人のセッション

「わざと脆弱性を持たせたWebアプリ」で練習を − @IT

  • デモもこのサイトで
  • 「脆弱性診断」と「ペネトレーションテスト」は違う
    • 前者はテストケースに従ってテストする
    • 後者は無理矢理サーバをこじ開けてrootを奪う感じ
    • ペネトレーションテストについては@ITの以下の連載を

セキュリティ対策の「ある視点」 連載インデックス - @IT -

  • 「脆弱性」の種類は知っていても、何をテストしたらいいか、というのは難しい
    • 方法がわからない
      • CSRFを知っていても、その存在をどう見抜くのか
      • その方法が客観的に妥当かってのも判断できないかも
    • 当然仕様書も作れない
      • 作るにしても、無駄に大量の項目を作っちゃうとか
    • どこを見たらいいかもわからない
    • 判定基準がわからない
      • 何が返ってくればOUT?
    • そもそも自分たちで作ったテストじゃ信頼してもらえない
      • だから高いお金を払って専門業者に依頼したりする(´・ω・`)
      • 某Amebaもそんなこと言ってたよね・・・
  • お金のない地方自治体のシステム向けに、脆弱性診断するサービス
  • 項目を絞り、定型のテストを安く
  • 定型とはいえ、「お役所向け」に「客観的」な仕様が定義されている
    • 仕様の策定には「あの」高木氏も関わってるらしい
    • ならば致命的な「抜け」はないはず
  • 各脆弱性について、「テスト内容」と「判断基準」が「簡潔に」定義されている
  • これを使えば(・∀・)イイ!!
  • 先ほど書いたサイトで、実際の診断デモ
    • proxyツールを噛ませることで、複数のテストを一気にやらせることが可能
      • 昔、この手のツールをいじったことがあったけど、使いづらかった
      • 技術は進歩していくものね・・・

クラウド開発に役立つ OSS あれこれ

  • 前提として、このセッションは(私には)はずれだったΣ(゚Д゚)ガーン
    • 相当な数の立ち見が出たようだけど・・・
    • 前の方に座ってるのに、寝てる人とか結構いた(´-ω-)zzz...
      • いっそ私も寝れば良かったか・・・
  • なので、なぜ「はずれだったか」を検証して、自分の今後に生かす
  • 以下のメモは「内容そのもの」についてではないので注意!
    • ぶっちゃけ、何も頭に残ってないし・・・
  • まずタイトルが間違っている
    • 正確には「クラウド連携に使えるOSS技術」
    • 多くの人は「クラウド」と「OSS」って言葉に釣られたはず
    • しかし、実際のターゲットは「クラウド連携」
      • つまり、相当に大きなシステムを想定した話
    • 要は、期待と実態が大きく異なった
      • 期待例:GAEで動かすJRubyのコードをEclipseからデプロイできるツール
      • そんなのがあるかは知らんΣ(・ω・ノ)ノ
    • そういった話と知っていれば、たぶん私も他に行ったはず
    • ついでにこんなことも書かなかったわけで
    • お互いデメリットがでかいね(´・ω・`)
  • 「クラウド」ってそもそもなんだっけ?
    • IBMのCMでも全然具体的なことを言ってない現実
    • つまり、人によってたぶん捉え方が違う
    • 言い換えれば非常に抽象的
    • とすれば、具体的なサービス名で実例を挙げるべきだった
    • にもかかわらず、「実例」と言える要素が何一つなかった
      • 全部抽象的な話
    • 抽象的な概念に抽象的な話をかぶせたので、ポイントが全くつかめない
  • スピーカーの問題
    • 前半の人も何を言いたいのかわからなかったけど、後半の人がまずすぎた
      • でも、自分も同じことをやりそうだから、自戒の意味でまとめる
    • 自分が知っている知識を、聞き手もわかっているという前提で話している感じ
    • あと、資料が詰め込みすぎ
    • しかも、実例がないので、文章だけ見ても何のツールかさっぱり
      • 「クラウド連携」に興味がある人ならわかったのかも
      • だからこそ、それをタイトルに入れるべきだった
    • 話し方も早口でぼそぼそ気味
      • とはいえ、ああいう場なら確実に私もやるな・・・(´・ω・`)

C++0xRuby、ECMAScript5 言語の国際標準化について

  • Rubyの標準化」ってテーマに興味が
    • 仕事に使ってるってのもあるし
  • でも、たぶんGoogleとかDDDに流れたよね・・・
  • 「標準化って何?」って話から
  • 細かい話なのでバッサリ省略Σ(・ω・ノ)ノ
  • C++0x」の話
    • ゲーム制作関連書籍にあるC++のコードが読める程度の知識で聞いていた
    • そもそもC++にバージョン的なのがあるって認識がなかった
      • Ruby1.9とかJava6みたいなバージョン表記じゃないし
    • 最新版は最近の言語の仕様をいろいろ取り入れて、簡潔に書けるようにしたいらしい
    • ただ、詰め込みすぎて遅れているのだとか(´・ω・`)
  • ECMAScript5について
    • 要するにJavascriptとかActionScriptの元のあれ
    • ver4はJSやASからいろいろ要素を詰め込んで破綻したらしい
    • ver5は3.1の進化版なんだとか
    • "use strict"で厳密なコード
    • 新機能的なのをちらほら
    • ここで衝撃的なデモ
      • RubyでいうString#[]が追加されたって話
      • これを利用して、ただの「alert(Hello World)」を回りくどく書いてみる
      • falseを文字列化して"false"にして"false"[0]から"f"を切り出す的な
      • これで欲しい文字列を作り出して、最後にevalするという・・・(lll゚Д゚)
      • しかも任意のコードをこの方式に変換するツールまで作っていた(; д ) ゚ ゚
    • ちなみに、ver5が動くのはFirefox3.6以降らしい
  • Rubyの標準化
    • 一言で言えば「仕様の追認」
    • 仕様は今まで通りcore-MLとかで決めるんだけど、それを文書化する的な
      • 現状、まつもと氏が仕様を決めている
      • でも、それを後まで覚えているかは保証できない現実
    • あくまでコアな部分をまとめている
    • Ruby1.8.7をベースに1.9の要素を部分的に入れてる感じ
    • だから、それだけで元のRubyが復元できるわけではないらしい
      • あえて決めないことで仕様の拡張を許している部分がある
    • 特異クラスのあたりはもめたのだとか
      • そもそも「特異クラス」をどう英訳するか決まってないという・・・
  • 面白かったのが、Rubyの資料に仕込まれた時間管理の仕組み
    • スライドの一番下で、亀とウサギが左から右に進んでいる
    • 亀は少しずつ勝手に進む
    • ウサギはスライドを進めると進む
    • たぶん、亀は持ち時間いっぱいで右端に到達する
    • つまり、亀とウサギの位置を比較することで、発表時間の管理をしている
    • うまいやり方だ・・・

実践Cucumber 〜ユーザの視点でシステムの振る舞いをテストしよう

  • 前3つで相当疲れ切っている状況で参加
    • てか、このメモをまとめるのもそろそろ限界に・・・(´-ω-)
  • Web+DB Press」でCucumberについて見たことがあった
  • スピーカーは「Railsレシピブック」の著者
    • お世話になっております(ノ´・ω・)ノミ(m´_ _)m
  • (非技術者である)「客」と技術者の間で、共通認識を作るツール
    • SIで機能設計するときに、まず言葉の定義をしたりする
    • 定義した「言葉」で、仕様書兼テスト仕様を書いちゃえ的な
      • プログラムとは目的を達成するための言語を定義しているようなものと誰かが
      • 名前を定義することで共通の認識が生まれると、まつもと氏も書いている
    • 自然言語で書いた文章がそのままテストとして動いちゃうあたりがポイント
  • 技術的な話は探せば出てくるので省略Σ(・ω・ノ)ノ
    • 全然難しくないし
  • Q:なぜアジャイル
  • A:客を少しでも早く喜ばせたいから
    • いい言葉だ(`・ω・´) b

もうなんかいろいろ限界でぜんぜんまとまってないな・・・
後で部分的に書き直すか・・・


お風呂に入りながら思いついた、どうでもいいネタ
クラウドのあれ絡み

  • ドラ○もん、ドラ○もん!
  • どーしたんだいのび○くん
  • ぐーぐるとあまぞんが同じプロトコルで話してくれないんだ!
  • だいじょーぶだよのび○くん
  • (´・ω・)っ「ぷろとこるあだぷたー」
  • これを使えば二人とも同じプロトコルで話してくれるよ
  • すごいやドラ○もん
  • 例えば、GAEとAmazonEC2を連携させるのにこういう問題があって・・・
    • SOAPだか何かの仕様が違うとか言っていた気がする
    • でも、「何と何の間で」かは言ってない
  • それが具体的にこういう風に違っていて・・・
    • 簡単なサンプルでDiff
  • ここでこのツールを使うと、こう便利だったんだよщ(゚Д゚щ)
    • ΩΩΩ<ナ、ナンダッテー!!
  • ・・・みたいな
  • 要は、帰ってからそれに関する情報を集めるためのキーワードが何もない
    • 昨日の「CWE」とか、今日の「LASDEC」みたいな
  • これが一番の問題かな・・・