O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

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

1.298 visualizações

Publicada em

第19回まっちゃ139でのLTに使用したスライドのPDF版です。(アニメーション無し。原版と同じフォント)

  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

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

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

×