セキュリティ&プロ
グラミングキャンプ
2009参加レポート
               Pasta-K
    pasta0915@gmail.com
           2009/10/17
        まっちゃ139勉強会
宣伝!
@IT就職Labに記事書いたよ!!
●   「Pasta-Kのはじめて作るIT勉強会」
●   http://lab.jibun.atmarkit.co.jp/entries/264
but...




要会員登録
m(_ _)m
自己紹介
●   Pasta-K
    ●   http:/d.hatena.ne.jp/Pasta-K
    ●   http://twitter.com/pastak
    ●   http://pastak.cosmio.net
●   京都の高1です
    ●さっきまで土曜講座でした
●   セキュリティ&(ry 参加者
●   Online.sg主宰
●   GoogleWaveの招待欲しいなぁー
*謝罪*
●   セプキャンの濃ゆい5日間を15分のLTで全
    てを紹介するのは無茶です。
    ●スライドが60枚!!!
●   講義とかの内容は参加者のブログとかに感
    想とともに載ってそうな感じなので、今回
    はブログとかに書けないような話をします
      講義の内容というよりは会場の雰囲気
        –
      を少しでも伝えられたら
●   さっきまで突貫で作っていので、あんまり
    まとまりが無いかもです…
休憩時間とか
休み時間とか
の話を中心に
  します
 ※講義の話もあるよ
セプキャンに行ってきました!
●   セキュリティ&プログラミングキャンプ2009
    ●   プログラミングコース
        – プログラミング言語組


             Me




http://jibun.atmarkit.co.jp/lstudent/special/spcamp2009report/03.html
セキュリティ&プログラミングキャンプ

●   知ってる人?
●   当日会場にいた人?
     –   講師・チューター?
講義の内容
●   全員共通科目
    ● 情報セキュリティ基礎
    ● プログラミング入門


●   プログラミング組共通科目
        – ソースコードの管理入門
        – ソースコードの読み方
        – Debug Hacks
        – オープンソフトウェアの歩き方
講義の内容
●   プログラミング言語組の講義内容
    ●   笹田さんによるRuby関係の講義
        – Rubyをビルドしてみよう/使ってみよう
        – Ruby処理系の構成について
        – Rubyコミュニティの紹介
    ●   稲葉さんの言語理論のお話
        – いまどき!?のプログラミング言語理論
プログラミング言語組について
●   笹田耕一氏
    ●   Rubyの言語処理系YARV開発者
●   園田裕貴(Yugui)氏
    ●Ruby 1.9系統リリースマネージャ
●   西尾泰和氏
    ●未踏ユーススーパークリエータ
●   稲葉 一浩氏
    ●言語関係の何かよく分からないけどスゴい人
●   吉岡弘隆氏
    ● 説明いいよね?
●   MLのみの参加
    ●   まつもとゆきひろ氏
初日(会場到着までの話)
●   N700系でインターネットが使える!
    ●   参加者とTwitterを用いて連絡とったり
●   @siritoriと東京駅で遭遇
    ●   事前にTwitterに「WindowsなTシャツ着て
        る」って書いておいたらエスカレーターでバ
        レた
        – インターネットプロコトルがどうこうって
          本を持ってたから怪しいなぁと思ってはい
          た
    ●   会場最寄り駅〜会場までの間に参加者っぽい
        人たちが等間隔に歩いていたので連いて行く
初日の会場での話(1)
●   id:daiki41tiに即効で「Pasta-Kだー」っ
    と言われた。
●   始めのミーティングでいきなり吉岡さんの向か
    いの席に座る。
    ●daiki41tiがP2Pの小難しい話を始めたり
     …
●   全員共通講義「アンチウイルスソフトを使わず
    にウイルスを見つける方法」
    ●   参加者:「パケットやプロセスの監視」
    ●   模範解答:「長年の経験による勘」
        – pdfとか開く動作が遅くなる…
初日の会場での話(2)
●   夜はid:amachangプレゼンツの交流会
    ●   意気込みをみんなで紙に書いて掲示
        – 手が動かない参加者の手を動かした
          「Twitterに書く感じで」
           ● 「腹減ったぁ〜」

    ●   名刺交換ゲーム
        – 講師陣の手書き名刺が!!
           ● レア?
初日の夜
●   事前に参加者と交流しているときの指令「八
    つ橋買ってこい」を忠実に守り、僕が京都駅
    で買った八つ橋を食べつつ交流を図る集いを16
    階談話室で開催w
    ●部屋に入ったら「好きなエディターは?」
     – エディタ宗教論争
     – 2日目くらいからTWitter上に「16階な
       う」が登場
●   裏で酒を飲む講師陣
    ●   @hyoshiokのTwitterなどで発覚
通称16階組
●   各々が延長コードを持ち込んでの開発
    ●普段の成果見せたり、tipsの交換とか
●   ニコ動を談話室のテレビに写しての鑑賞会
    ● Emobileすげー
    ● 繋ぐためのケーブルを持ってきてた人がいた


    ● 何を見てたかは(ry


●   言語組講師陣も混ざってた
    ●   ささださん「はやくねろよー。言ったからなー」
        (棒読み)
初日の夜
事件は起こった
事件その1
●   隣の部屋であった言語組のid:yayyuguさんが
    キー閉じ込みを○時30分にしてしまう
    ●   「キー閉じ込み第2号」
        – すでに1人いた!!
事件その2

●   部屋で新幹線で使った
    HotSpotパスが使えたの
    でインターネットをして
    いたらさらに事件は起
    こった
バレてたw
「また上野宣かw」
2日目午前
●   午前中はプログラミング組共通科目
    ●   調子に乗って使ったことの無いvimを使うな
        どしてしまう
    ●   実習としてRubyのビルドを行う
        – 予習しているはずの言語組勢がなかなかス
          ムーズに行かない
           ● 笹田さん「お前ら予習してないだろ」

           ● 言語組「・・・」
2日目午後
●   ここから組に分かれる
    ●   言語組
        – 自己紹介をしつつ、各自Skypeの導入
           ● 言語組グループチャットの存在


              – コミュニケーション・質問
              – 講師へのツッコミ
                 ● 講師の横には常にSKypeの画面がw

              – 「セキュリティな人たちに怒られそう」
              ➔ 今も活躍中

        – 笹田さんによる今回扱うRubyについての話が
          この日は中心
2日目の言語組
●   Yuguiさんにサインを貰うpokutuna
●   「DebugHacks」の文字組みにダメ出しをする
    人もいたw
●   大人気のチョコレート
    ● 日を増すにつれて減る速度もアップー!
●   Rubyなどの本が並ぶ本棚
    ●   はじめてのRuby
    ●   DebugHacks
         – こんな本まで・・・ →
3日目午前
●   企業見学会
    ● プログラミングコースはDeNAへ
      – モバゲーの会社
    ● モバゲーの登録者がほとんど居ないw


    ● サーバ室見せてもらったり、開発者さんと座

      談会みたいなことも
●   行きのバスで東京の街を見て「TVで見たやつ
    や!」
●   帰りの社内ではOS組講師の川合さんから印税生
    活の素晴らしさを教えてもらうw
3日目午後
●   言語組は課題に取りかかる
    ●   「Rubyの見える化・聞こえる化」という課題に挑戦
        – 1人で…(Git……
        – 西尾さんのサポートで進めることに
           ● 以前からblogとか見てたので緊張したw


           ● もちろん2人もSkypeチャット開設


              – 参考になるサイトのURLとか
              – 「2人で愛を育むためのチャット」by
                Nishio
    ●   方向性としては「聞こえる化」に決定
        – 詳しくは最後に話します
    ●   以後、黙々と作業に打ち込む参加者
4日目午前
●   朝に食券を無くしていたことに気付き、朝に再
    発行してもらうなど
●   午前中に課題をほぼ完成させないといけなかっ
    たので、無言で作業に取り組む
    ●チョコレートはすぐに無くなる
●   突如鳴り響くピーっという音
    ●   セキュ組が無線APを見つけると音がなるソフ
        トを立ち上げて練り歩いていた
    ●   僕&西尾さん「先を越された」
        – その後無事音を鳴らすことに成功
        – 「うるさい」と笹田さんに怒られるw
4日目午後
●   特別講師による講義
    ●   ハイテク検事 大橋さん
    ●   はてなの伊藤さん
        – プログラミングで世界を変える
           ● 10000人が同じアイデアを思いつく

           ● 100人が実行出来る力がある

           ● 10人が実際に実行する

           ● 1人が成功する
4日目午後 その2
●   はてなの伊藤さんにはてなTにサインしてもらっ
    た!!
    ●名刺交換もしてもらいました!
     – id:naoya「Pasta-Kさんですか、知ってま
       すよ!」
     – (^ ^)/ <ワーイワーイ
●   夕飯時講師陣に囲まれる
    ●   言語組チュータ*2+はせがわさん
        +吉岡さん+Yuguiさん+竹迫さん
        +天野さん+僕
4日目 夜 BOF2
●   何人かのグループに分かれてのセッション*2
    ●   吉岡さん+天野さん「勉強会に行こう」
        – 吉岡さんから話をふられて困るなど
        – やっぱり勉強会に興味ある人多かった!!!
    ●   竹迫さん+はせがわさん「脆弱性〜」
        – 夕飯の時に講師陣に勧められた
           ● 「竹迫さんとはせがわさんの漫談は必見」


        – 竹迫さんが楽○のサイトのXSSを発見してき
          た!
最終日の朝にも
事件が起こった
まさかのキー閉じ込み
●   鍵をフロントに返しに行こうとしたときに鍵を
    持ち出すのを忘れていたw
●   続々とフロントに鍵を返しにくる参加者たちの
    横でスペアを受け取る…
5日目 午前
●   プログラミング組内での成果発表会
    ●   一人5分
    ●   OS組は自分で作ったOSの紹介とデモ
    ●   Linux組はカーネルの改良成果など
    ●   言語組はそれぞれの課題への取り組み成果
         – というわけで、そこで使ったスライドを今
           から見せます。
            ● デモ有!
Rubyの聞こえる化




       Pasta-K - pasta0915@gmail.com
                       2009.08.15.Sat
    セキュリティ&プログラミングキャンプ2009
                 Supported by 西尾泰和
目的

   If文中の条件式がtrueかfalseかによって音を鳴ら
    す
    ➔   画面を見なくても、条件式がtrueかfalseかが音で分か
        る
    ➔   退屈なデバッグ中に音が鳴ることによって、ちょっぴり
        ハッピーになれる
    ➔   make testの曲なんていうのも表現できる?
            ➔   ニコニコ動画にうp
変更の方針

   構文木からバイトコードへの変更を担当している
    compile.cを書き換えて、Rubyのif文を書いたとき
    に出力されるバイトコードを変えて、音をならすよう
    にする。
手順

1.実際にRubyのソースコードを読み、 (実行する
Rubyのスクリプト内の)if文中の条件式が構文木に評
価されるところを見つける
2.同じように関数の呼び出しを行うコードを見つけ、
1、部分に実際に埋め込む
3.pなどを用いて、関数の呼び出しが行われているの
か動作確認
4.音を鳴らすrubyスクリプトを作り埋め込む
1,if文の条件式を評価しているところ

   何をしている部分?
       NODE_XXXXを受け取って、それをもとにして、どんな
        構文が書かれているのかを判断し、適切なバイトコード
        に変換している。
➔   つまり、この部分でthen節とelse節をバイトコード
    に変換する前に、音が鳴る動作を付けてやれば、そ
    れも一緒にバイトコードに変換されるのではないか
変換後のバイトコードのイメージ

  if       条件文        then
         trueの音を鳴らす
        trueの場合の動作
 else
        falseの音を鳴らす
        falseの場合の動作
 end
2,Rubyスクリプト内の関数を呼び出
す方法
   実際にRubyの関数を呼び出している部分を参考
    に、1,で見つけた部分に記述していった。
音を鳴らすRubyスクリプト

def sound()
f=File.open("/dev/dsp","w")
i=0

n=""
2560.times{|i|
   a=i*15%256
   n=n+a.chr
}
f.puts n
f.close
end
音を鳴らす方法

        OSS(Open Sound System)というUnix オペレー
         ティングシステムで音を作成したりキャプチャしたり
         するための標準インターフェイスのAPIを叩いて音
         を鳴らす。




引用元:http://ja.wikipedia.org/wiki/%E3%81%AE%E3%81%93%E3%81%8E%E3%82%8A
%E6%B3%A2
検証中に・・・

    音を鳴らす関数内にオプション的に出力を変えるた
    めにif文を用いた分岐を書いていたら、そのif文に
    反応して、音を鳴らす関数が呼び出された
➔   また、検証用のif文が実行されるときに(ry
➔   また(ry
➔   無限ループ突入 orz
実際の実装は…

   true、falseの場合に鳴らす音をそれぞれ分けて実
    装
   始めは、各rbファイルに逐一記述していたが、
    prelude.rbやgem_prelude.rbに記述すれば、Cの
    文字列として、rubyに埋め込まれると分かったので
    prelude.rbに記述
       prelude.rbやgem_prelude.rb内のif文にも適応され
        て、「関数が見つからないよ><」エラーが出てました。
                ダミーの関数を用意することで解消
聞いてみたいですよね?

   (多分)世界初のtest/test_prime.rbの音です
       素数を求めるスクリプトです
感想

   CもRubyもあまり書いた経験がなかったので、ソー
    スを読んだり、スクリプト書くのもとても大変でした
       講師の皆さん、Google先生ありがとうございました
   gdbでのデバッグも初体験で新鮮でした。
   将来的には、rbファイルを楽譜代わりに演奏なんて
    いうのも・・・
ご清聴ありがとうございました

   Thank you for listening!!!
5日目 午後
●   全員が集まっての成果報告会
    ● セキュ組:ディスカッションの成果報告
    ● プログラミング組は各組から代表チームが発

      表
      – 言語組は笹田さんが全員の成果を紹介する
         ● BGM:test_prime.rbの動作テスト

●   修了式
    ●   修了証授与+今後の意気込み
    ●   「帰るまでがキャンプです」
修了式後
●   書籍などが貰えるプレゼント大会
    ●当たりの人にはデスクトップPC+SP課題!
●   著者の人が居る本もあるからサイン本化も可
    ●   HackerJapan
         – 記事の執筆者な上野さんと竹迫さん
    ●   Ruby逆引きレシピ
        –  Ruby組の講師陣にサイン貰った
    ●   DebugHacksの缶バッチ
         – 吉岡さんのサイン入り
解散後に・・・
●   @ITの件で打ち合わせも兼ねてITmedia
    のオフィスに入れて貰えることになって
    いたので、参加者10人を引き連れて
    ITmediaのオフィスを見学したりしてま
    した。
セプキャン感想まとめ
●   とにかく、話が合う同世代の人にたくさん出会
    える!!
       楽しくないはずが無い!!!!
        –
        ● 話題が尽きない尽きない

     – 今も交流してる人も多いです
●   講師陣のレパートリーも半端無い
    ●「世界最高の講師を準備した」by吉岡さん
     – そんな講師の人たちが隣で飯食ってる環境
●   言語組だけに限らず、その道のエキスパートに
    直接教えて貰える
セプキャンtips的なまとめ 
●   事前に講師陣のことを知ってたりすると緊張するの
    で、あまり知らない方が良いと思います
    ● 個人的に西尾さんとか天野さんとかスゴイ緊張し
      た。。。
    ● 逆に参加者のことは調べておくと良いかも


      – 「Twitterで『〜』って言ってたけど」
●   講師陣に近づいて行くと、意外な裏話が聞けるかも
●   Itmediaとか取材クルーにも近づいて行くと、コメ
    ント求められたりして、掲載なんてことも
●   お土産とか貰えるかもだからカバンに余裕を持たせて
    おくと良いかも
さいごに…
●   対象年齢(〜22歳)の人
    ●是非!来年のキャンプに参加してみて下さ
     い!
     – この後、はせがわさん(セプキャン講師)
       を捕まえて話を聞き出そうw
●   対象年齢外の人
    ●   周りの若い人に紹介してあげてください
ご清聴ありがとうございました
  続きは懇親会で!!

セキュリティ&プログラミングキャンプ2009参加レポート (PDF版)

  • 1.
    セキュリティ&プロ グラミングキャンプ 2009参加レポート Pasta-K pasta0915@gmail.com 2009/10/17 まっちゃ139勉強会
  • 2.
  • 3.
    @IT就職Labに記事書いたよ!! ● 「Pasta-Kのはじめて作るIT勉強会」 ● http://lab.jibun.atmarkit.co.jp/entries/264
  • 4.
  • 5.
  • 6.
    自己紹介 ● Pasta-K ● http:/d.hatena.ne.jp/Pasta-K ● http://twitter.com/pastak ● http://pastak.cosmio.net ● 京都の高1です ●さっきまで土曜講座でした ● セキュリティ&(ry 参加者 ● Online.sg主宰 ● GoogleWaveの招待欲しいなぁー
  • 7.
    *謝罪* ● セプキャンの濃ゆい5日間を15分のLTで全 てを紹介するのは無茶です。 ●スライドが60枚!!! ● 講義とかの内容は参加者のブログとかに感 想とともに載ってそうな感じなので、今回 はブログとかに書けないような話をします 講義の内容というよりは会場の雰囲気 – を少しでも伝えられたら ● さっきまで突貫で作っていので、あんまり まとまりが無いかもです…
  • 8.
  • 9.
    セプキャンに行ってきました! ● セキュリティ&プログラミングキャンプ2009 ● プログラミングコース – プログラミング言語組 Me http://jibun.atmarkit.co.jp/lstudent/special/spcamp2009report/03.html
  • 10.
    セキュリティ&プログラミングキャンプ ● 知ってる人? ● 当日会場にいた人? – 講師・チューター?
  • 11.
    講義の内容 ● 全員共通科目 ● 情報セキュリティ基礎 ● プログラミング入門 ● プログラミング組共通科目 – ソースコードの管理入門 – ソースコードの読み方 – Debug Hacks – オープンソフトウェアの歩き方
  • 12.
    講義の内容 ● プログラミング言語組の講義内容 ● 笹田さんによるRuby関係の講義 – Rubyをビルドしてみよう/使ってみよう – Ruby処理系の構成について – Rubyコミュニティの紹介 ● 稲葉さんの言語理論のお話 – いまどき!?のプログラミング言語理論
  • 13.
    プログラミング言語組について ● 笹田耕一氏 ● Rubyの言語処理系YARV開発者 ● 園田裕貴(Yugui)氏 ●Ruby 1.9系統リリースマネージャ ● 西尾泰和氏 ●未踏ユーススーパークリエータ ● 稲葉 一浩氏 ●言語関係の何かよく分からないけどスゴい人 ● 吉岡弘隆氏 ● 説明いいよね? ● MLのみの参加 ● まつもとゆきひろ氏
  • 14.
    初日(会場到着までの話) ● N700系でインターネットが使える! ● 参加者とTwitterを用いて連絡とったり ● @siritoriと東京駅で遭遇 ● 事前にTwitterに「WindowsなTシャツ着て る」って書いておいたらエスカレーターでバ レた – インターネットプロコトルがどうこうって 本を持ってたから怪しいなぁと思ってはい た ● 会場最寄り駅〜会場までの間に参加者っぽい 人たちが等間隔に歩いていたので連いて行く
  • 15.
    初日の会場での話(1) ● id:daiki41tiに即効で「Pasta-Kだー」っ と言われた。 ● 始めのミーティングでいきなり吉岡さんの向か いの席に座る。 ●daiki41tiがP2Pの小難しい話を始めたり … ● 全員共通講義「アンチウイルスソフトを使わず にウイルスを見つける方法」 ● 参加者:「パケットやプロセスの監視」 ● 模範解答:「長年の経験による勘」 – pdfとか開く動作が遅くなる…
  • 16.
    初日の会場での話(2) ● 夜はid:amachangプレゼンツの交流会 ● 意気込みをみんなで紙に書いて掲示 – 手が動かない参加者の手を動かした 「Twitterに書く感じで」 ● 「腹減ったぁ〜」 ● 名刺交換ゲーム – 講師陣の手書き名刺が!! ● レア?
  • 18.
    初日の夜 ● 事前に参加者と交流しているときの指令「八 つ橋買ってこい」を忠実に守り、僕が京都駅 で買った八つ橋を食べつつ交流を図る集いを16 階談話室で開催w ●部屋に入ったら「好きなエディターは?」 – エディタ宗教論争 – 2日目くらいからTWitter上に「16階な う」が登場 ● 裏で酒を飲む講師陣 ● @hyoshiokのTwitterなどで発覚
  • 19.
    通称16階組 ● 各々が延長コードを持ち込んでの開発 ●普段の成果見せたり、tipsの交換とか ● ニコ動を談話室のテレビに写しての鑑賞会 ● Emobileすげー ● 繋ぐためのケーブルを持ってきてた人がいた ● 何を見てたかは(ry ● 言語組講師陣も混ざってた ● ささださん「はやくねろよー。言ったからなー」 (棒読み)
  • 20.
  • 21.
    事件その1 ● 隣の部屋であった言語組のid:yayyuguさんが キー閉じ込みを○時30分にしてしまう ● 「キー閉じ込み第2号」 – すでに1人いた!!
  • 22.
    事件その2 ● 部屋で新幹線で使った HotSpotパスが使えたの でインターネットをして いたらさらに事件は起 こった
  • 24.
  • 25.
  • 26.
    2日目午前 ● 午前中はプログラミング組共通科目 ● 調子に乗って使ったことの無いvimを使うな どしてしまう ● 実習としてRubyのビルドを行う – 予習しているはずの言語組勢がなかなかス ムーズに行かない ● 笹田さん「お前ら予習してないだろ」 ● 言語組「・・・」
  • 27.
    2日目午後 ● ここから組に分かれる ● 言語組 – 自己紹介をしつつ、各自Skypeの導入 ● 言語組グループチャットの存在 – コミュニケーション・質問 – 講師へのツッコミ ● 講師の横には常にSKypeの画面がw – 「セキュリティな人たちに怒られそう」 ➔ 今も活躍中 – 笹田さんによる今回扱うRubyについての話が この日は中心
  • 28.
    2日目の言語組 ● Yuguiさんにサインを貰うpokutuna ● 「DebugHacks」の文字組みにダメ出しをする 人もいたw ● 大人気のチョコレート ● 日を増すにつれて減る速度もアップー! ● Rubyなどの本が並ぶ本棚 ● はじめてのRuby ● DebugHacks – こんな本まで・・・ →
  • 30.
    3日目午前 ● 企業見学会 ● プログラミングコースはDeNAへ – モバゲーの会社 ● モバゲーの登録者がほとんど居ないw ● サーバ室見せてもらったり、開発者さんと座 談会みたいなことも ● 行きのバスで東京の街を見て「TVで見たやつ や!」 ● 帰りの社内ではOS組講師の川合さんから印税生 活の素晴らしさを教えてもらうw
  • 31.
    3日目午後 ● 言語組は課題に取りかかる ● 「Rubyの見える化・聞こえる化」という課題に挑戦 – 1人で…(Git…… – 西尾さんのサポートで進めることに ● 以前からblogとか見てたので緊張したw ● もちろん2人もSkypeチャット開設 – 参考になるサイトのURLとか – 「2人で愛を育むためのチャット」by Nishio ● 方向性としては「聞こえる化」に決定 – 詳しくは最後に話します ● 以後、黙々と作業に打ち込む参加者
  • 32.
    4日目午前 ● 朝に食券を無くしていたことに気付き、朝に再 発行してもらうなど ● 午前中に課題をほぼ完成させないといけなかっ たので、無言で作業に取り組む ●チョコレートはすぐに無くなる ● 突如鳴り響くピーっという音 ● セキュ組が無線APを見つけると音がなるソフ トを立ち上げて練り歩いていた ● 僕&西尾さん「先を越された」 – その後無事音を鳴らすことに成功 – 「うるさい」と笹田さんに怒られるw
  • 33.
    4日目午後 ● 特別講師による講義 ● ハイテク検事 大橋さん ● はてなの伊藤さん – プログラミングで世界を変える ● 10000人が同じアイデアを思いつく ● 100人が実行出来る力がある ● 10人が実際に実行する ● 1人が成功する
  • 34.
    4日目午後 その2 ● はてなの伊藤さんにはてなTにサインしてもらっ た!! ●名刺交換もしてもらいました! – id:naoya「Pasta-Kさんですか、知ってま すよ!」 – (^ ^)/ <ワーイワーイ ● 夕飯時講師陣に囲まれる ● 言語組チュータ*2+はせがわさん +吉岡さん+Yuguiさん+竹迫さん +天野さん+僕
  • 36.
    4日目 夜 BOF2 ● 何人かのグループに分かれてのセッション*2 ● 吉岡さん+天野さん「勉強会に行こう」 – 吉岡さんから話をふられて困るなど – やっぱり勉強会に興味ある人多かった!!! ● 竹迫さん+はせがわさん「脆弱性〜」 – 夕飯の時に講師陣に勧められた ● 「竹迫さんとはせがわさんの漫談は必見」 – 竹迫さんが楽○のサイトのXSSを発見してき た!
  • 37.
  • 38.
    まさかのキー閉じ込み ● 鍵をフロントに返しに行こうとしたときに鍵を 持ち出すのを忘れていたw ● 続々とフロントに鍵を返しにくる参加者たちの 横でスペアを受け取る…
  • 39.
    5日目 午前 ● プログラミング組内での成果発表会 ● 一人5分 ● OS組は自分で作ったOSの紹介とデモ ● Linux組はカーネルの改良成果など ● 言語組はそれぞれの課題への取り組み成果 – というわけで、そこで使ったスライドを今 から見せます。 ● デモ有!
  • 40.
    Rubyの聞こえる化 Pasta-K - pasta0915@gmail.com 2009.08.15.Sat セキュリティ&プログラミングキャンプ2009 Supported by 西尾泰和
  • 41.
    目的  If文中の条件式がtrueかfalseかによって音を鳴ら す ➔ 画面を見なくても、条件式がtrueかfalseかが音で分か る ➔ 退屈なデバッグ中に音が鳴ることによって、ちょっぴり ハッピーになれる ➔ make testの曲なんていうのも表現できる? ➔ ニコニコ動画にうp
  • 42.
    変更の方針  構文木からバイトコードへの変更を担当している compile.cを書き換えて、Rubyのif文を書いたとき に出力されるバイトコードを変えて、音をならすよう にする。
  • 43.
  • 44.
    1,if文の条件式を評価しているところ  何をしている部分?  NODE_XXXXを受け取って、それをもとにして、どんな 構文が書かれているのかを判断し、適切なバイトコード に変換している。 ➔ つまり、この部分でthen節とelse節をバイトコード に変換する前に、音が鳴る動作を付けてやれば、そ れも一緒にバイトコードに変換されるのではないか
  • 45.
    変換後のバイトコードのイメージ if 条件文 then trueの音を鳴らす trueの場合の動作 else falseの音を鳴らす falseの場合の動作 end
  • 46.
    2,Rubyスクリプト内の関数を呼び出 す方法  実際にRubyの関数を呼び出している部分を参考 に、1,で見つけた部分に記述していった。
  • 47.
  • 48.
    音を鳴らす方法  OSS(Open Sound System)というUnix オペレー ティングシステムで音を作成したりキャプチャしたり するための標準インターフェイスのAPIを叩いて音 を鳴らす。 引用元:http://ja.wikipedia.org/wiki/%E3%81%AE%E3%81%93%E3%81%8E%E3%82%8A %E6%B3%A2
  • 49.
    検証中に・・・ 音を鳴らす関数内にオプション的に出力を変えるた めにif文を用いた分岐を書いていたら、そのif文に 反応して、音を鳴らす関数が呼び出された ➔ また、検証用のif文が実行されるときに(ry ➔ また(ry ➔ 無限ループ突入 orz
  • 50.
    実際の実装は…  true、falseの場合に鳴らす音をそれぞれ分けて実 装  始めは、各rbファイルに逐一記述していたが、 prelude.rbやgem_prelude.rbに記述すれば、Cの 文字列として、rubyに埋め込まれると分かったので prelude.rbに記述  prelude.rbやgem_prelude.rb内のif文にも適応され て、「関数が見つからないよ><」エラーが出てました。  ダミーの関数を用意することで解消
  • 51.
    聞いてみたいですよね?  (多分)世界初のtest/test_prime.rbの音です  素数を求めるスクリプトです
  • 52.
    感想  CもRubyもあまり書いた経験がなかったので、ソー スを読んだり、スクリプト書くのもとても大変でした  講師の皆さん、Google先生ありがとうございました  gdbでのデバッグも初体験で新鮮でした。  将来的には、rbファイルを楽譜代わりに演奏なんて いうのも・・・
  • 53.
  • 54.
    5日目 午後 ● 全員が集まっての成果報告会 ● セキュ組:ディスカッションの成果報告 ● プログラミング組は各組から代表チームが発 表 – 言語組は笹田さんが全員の成果を紹介する ● BGM:test_prime.rbの動作テスト ● 修了式 ● 修了証授与+今後の意気込み ● 「帰るまでがキャンプです」
  • 55.
    修了式後 ● 書籍などが貰えるプレゼント大会 ●当たりの人にはデスクトップPC+SP課題! ● 著者の人が居る本もあるからサイン本化も可 ● HackerJapan – 記事の執筆者な上野さんと竹迫さん ● Ruby逆引きレシピ – Ruby組の講師陣にサイン貰った ● DebugHacksの缶バッチ – 吉岡さんのサイン入り
  • 56.
    解散後に・・・ ● @ITの件で打ち合わせも兼ねてITmedia のオフィスに入れて貰えることになって いたので、参加者10人を引き連れて ITmediaのオフィスを見学したりしてま した。
  • 57.
    セプキャン感想まとめ ● とにかく、話が合う同世代の人にたくさん出会 える!! 楽しくないはずが無い!!!! – ● 話題が尽きない尽きない – 今も交流してる人も多いです ● 講師陣のレパートリーも半端無い ●「世界最高の講師を準備した」by吉岡さん – そんな講師の人たちが隣で飯食ってる環境 ● 言語組だけに限らず、その道のエキスパートに 直接教えて貰える
  • 58.
    セプキャンtips的なまとめ  ● 事前に講師陣のことを知ってたりすると緊張するの で、あまり知らない方が良いと思います ● 個人的に西尾さんとか天野さんとかスゴイ緊張し た。。。 ● 逆に参加者のことは調べておくと良いかも – 「Twitterで『〜』って言ってたけど」 ● 講師陣に近づいて行くと、意外な裏話が聞けるかも ● Itmediaとか取材クルーにも近づいて行くと、コメ ント求められたりして、掲載なんてことも ● お土産とか貰えるかもだからカバンに余裕を持たせて おくと良いかも
  • 59.
    さいごに… ● 対象年齢(〜22歳)の人 ●是非!来年のキャンプに参加してみて下さ い! – この後、はせがわさん(セプキャン講師) を捕まえて話を聞き出そうw ● 対象年齢外の人 ● 周りの若い人に紹介してあげてください
  • 60.