60
セキュリティ&プロ グラミングキャンプ 2009参加レポート Pasta-K [email protected] 2009/10/17 まっちゃ139勉強会

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

[email protected]

2009/10/17まっちゃ139勉強会

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

宣伝!

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

@IT就職Labに記事書いたよ!!

● 「Pasta-Kのはじめて作るIT勉強会」● http://lab.jibun.atmarkit.co.jp/entries/264

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

but...

要会員登録

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

m(_ _)m

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

自己紹介

● Pasta-K● http:/d.hatena.ne.jp/Pasta-K● http://twitter.com/pastak● http://pastak.cosmio.net

● 京都の高1です● さっきまで土曜講座でした

● セキュリティ&(ry 参加者

● Online.sg主宰

● GoogleWaveの招待欲しいなぁー

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

*謝罪*● セプキャンの濃ゆい5日間を15分のLTで全てを紹介するのは無茶です。● スライドが60枚!!!

● 講義とかの内容は参加者のブログとかに感想とともに載ってそうな感じなので、今回はブログとかに書けないような話をします

– 講義の内容というよりは会場の雰囲気を少しでも伝えられたら

● さっきまで突貫で作っていので、あんまりまとまりが無いかもです…

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

休憩時間とか休み時間とかの話を中心に

します※講義の話もあるよ

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

セプキャンに行ってきました!● セキュリティ&プログラミングキャンプ2009

● プログラミングコース– プログラミング言語組

Me

http://jibun.atmarkit.co.jp/lstudent/special/spcamp2009report/03.html

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

セキュリティ&プログラミングキャンプ

● 知ってる人?● 当日会場にいた人?

– 講師・チューター?

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

講義の内容

● 全員共通科目● 情報セキュリティ基礎● プログラミング入門

● プログラミング組共通科目

– ソースコードの管理入門– ソースコードの読み方– Debug Hacks– オープンソフトウェアの歩き方

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

講義の内容

● プログラミング言語組の講義内容

● 笹田さんによるRuby関係の講義

– Rubyをビルドしてみよう/使ってみよう– Ruby処理系の構成について– Rubyコミュニティの紹介

● 稲葉さんの言語理論のお話

– いまどき!?のプログラミング言語理論

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

プログラミング言語組について● 笹田耕一氏

● Rubyの言語処理系YARV開発者

● 園田裕貴(Yugui)氏

● Ruby 1.9系統リリースマネージャ● 西尾泰和氏

● 未踏ユーススーパークリエータ● 稲葉 一浩氏

● 言語関係の何かよく分からないけどスゴい人● 吉岡弘隆氏

● 説明いいよね?● MLのみの参加

● まつもとゆきひろ氏

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

初日(会場到着までの話)● N700系でインターネットが使える!

● 参加者とTwitterを用いて連絡とったり● @siritoriと東京駅で遭遇

● 事前にTwitterに「WindowsなTシャツ着てる」って書いておいたらエスカレーターでバレた– インターネットプロコトルがどうこうって本を持ってたから怪しいなぁと思ってはいた

● 会場最寄り駅〜会場までの間に参加者っぽい人たちが等間隔に歩いていたので連いて行く

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

初日の会場での話(1)● id:daiki41tiに即効で「Pasta-Kだー」っと言われた。

● 始めのミーティングでいきなり吉岡さんの向かいの席に座る。

● daiki41tiがP2Pの小難しい話を始めたり…

● 全員共通講義「アンチウイルスソフトを使わずにウイルスを見つける方法」● 参加者:「パケットやプロセスの監視」● 模範解答:「長年の経験による勘」

– pdfとか開く動作が遅くなる…

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

初日の会場での話(2)

● 夜はid:amachangプレゼンツの交流会

● 意気込みをみんなで紙に書いて掲示–手が動かない参加者の手を動かした「Twitterに書く感じで」

●「腹減ったぁ〜」● 名刺交換ゲーム

– 講師陣の手書き名刺が!!●レア?

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

初日の夜

● 事前に参加者と交流しているときの指令「八つ橋買ってこい」を忠実に守り、僕が京都駅で買った八つ橋を食べつつ交流を図る集いを16階談話室で開催w● 部屋に入ったら「好きなエディターは?」

– エディタ宗教論争– 2日目くらいからTWitter上に「16階なう」が登場

● 裏で酒を飲む講師陣

● @hyoshiokのTwitterなどで発覚

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

通称16階組● 各々が延長コードを持ち込んでの開発

● 普段の成果見せたり、tipsの交換とか● ニコ動を談話室のテレビに写しての鑑賞会

● Emobileすげー● 繋ぐためのケーブルを持ってきてた人がいた● 何を見てたかは(ry

● 言語組講師陣も混ざってた● ささださん「はやくねろよー。言ったからなー」

(棒読み)

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

初日の夜事件は起こった

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

事件その1

● 隣の部屋であった言語組のid:yayyuguさんがキー閉じ込みを○時30分にしてしまう

● 「キー閉じ込み第2号」

– すでに1人いた!!

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

事件その2

●部屋で新幹線で使ったHotSpotパスが使えたのでインターネットをしていたらさらに事件は起こった

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

バレてたw

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

「また上野宣かw」

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

2日目午前

● 午前中はプログラミング組共通科目

● 調子に乗って使ったことの無いvimを使うなどしてしまう

● 実習としてRubyのビルドを行う

–予習しているはずの言語組勢がなかなかスムーズに行かない

●笹田さん「お前ら予習してないだろ」●言語組「・・・」

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

2日目午後

● ここから組に分かれる● 言語組

–自己紹介をしつつ、各自Skypeの導入●言語組グループチャットの存在

–コミュニケーション・質問–講師へのツッコミ

●講師の横には常にSKypeの画面がw–「セキュリティな人たちに怒られそう」➔今も活躍中

– 笹田さんによる今回扱うRubyについての話がこの日は中心

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

2日目の言語組

● Yuguiさんにサインを貰うpokutuna● 「DebugHacks」の文字組みにダメ出しをする人もいたw

● 大人気のチョコレート● 日を増すにつれて減る速度もアップー!

● Rubyなどの本が並ぶ本棚

● はじめてのRuby● DebugHacks

– こんな本まで・・・ →

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

3日目午前

● 企業見学会

● プログラミングコースはDeNAへ–モバゲーの会社

● モバゲーの登録者がほとんど居ないw● サーバ室見せてもらったり、開発者さんと座談会みたいなことも

● 行きのバスで東京の街を見て「TVで見たやつや!」

● 帰りの社内ではOS組講師の川合さんから印税生活の素晴らしさを教えてもらうw

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

3日目午後● 言語組は課題に取りかかる

● 「Rubyの見える化・聞こえる化」という課題に挑戦

– 1人で…(Git……– 西尾さんのサポートで進めることに

●以前からblogとか見てたので緊張したw●もちろん2人もSkypeチャット開設

–参考になるサイトのURLとか–「2人で愛を育むためのチャット」by Nishio

● 方向性としては「聞こえる化」に決定

–詳しくは最後に話します● 以後、黙々と作業に打ち込む参加者

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

4日目午前● 朝に食券を無くしていたことに気付き、朝に再発行してもらうなど

● 午前中に課題をほぼ完成させないといけなかったので、無言で作業に取り組む● チョコレートはすぐに無くなる

● 突如鳴り響くピーっという音

● セキュ組が無線APを見つけると音がなるソフトを立ち上げて練り歩いていた

● 僕&西尾さん「先を越された」– その後無事音を鳴らすことに成功– 「うるさい」と笹田さんに怒られるw

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

4日目午後

● 特別講師による講義● ハイテク検事 大橋さん● はてなの伊藤さん

– プログラミングで世界を変える●10000人が同じアイデアを思いつく●100人が実行出来る力がある●10人が実際に実行する●1人が成功する

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

4日目午後 その2

● はてなの伊藤さんにはてなTにサインしてもらった!!● 名刺交換もしてもらいました!

– id:naoya「Pasta-Kさんですか、知ってますよ!」

– \(^ ^)/ <ワーイワーイ● 夕飯時講師陣に囲まれる

● 言語組チュータ*2+はせがわさん+吉岡さん+Yuguiさん+竹迫さん+天野さん+僕

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

4日目 夜 BOF2

● 何人かのグループに分かれてのセッション*2● 吉岡さん+天野さん「勉強会に行こう」

– 吉岡さんから話をふられて困るなど– やっぱり勉強会に興味ある人多かった!!!

● 竹迫さん+はせがわさん「脆弱性〜」

–夕飯の時に講師陣に勧められた●「竹迫さんとはせがわさんの漫談は必見」

–竹迫さんが楽○のサイトのXSSを発見してきた!

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

最終日の朝にも事件が起こった

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

まさかのキー閉じ込み

● 鍵をフロントに返しに行こうとしたときに鍵を持ち出すのを忘れていたw

● 続々とフロントに鍵を返しにくる参加者たちの横でスペアを受け取る…

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

5日目 午前

● プログラミング組内での成果発表会

● 一人5分● OS組は自分で作ったOSの紹介とデモ● Linux組はカーネルの改良成果など● 言語組はそれぞれの課題への取り組み成果

– というわけで、そこで使ったスライドを今から見せます。

●デモ有!

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

Rubyの聞こえる化

Pasta-K - [email protected]

セキュリティ&プログラミングキャンプ2009Supported by 西尾泰和

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

目的

If文中の条件式がtrueかfalseかによって音を鳴らす➔ 画面を見なくても、条件式がtrueかfalseかが音で分か

➔ 退屈なデバッグ中に音が鳴ることによって、ちょっぴりハッピーになれる

➔ make testの曲なんていうのも表現できる?➔ ニコニコ動画にうp

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

変更の方針

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

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

手順

1.実際にRuby のソースコードを読み、 (実行するRubyのスクリプト内の)if文中の条件式が構文木に評価されるところを見つける

2.同じように関数の呼び出しを行うコードを見つけ、1、部分に実際に埋め込む

3.pなどを用いて、関数の呼び出しが行われているのか動作確認

4.音を鳴らすrubyスクリプトを作り埋め込む

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

1,if文の条件式を評価しているところ

何をしている部分? NODE_XXXXを受け取って、それをもとにして、どんな

構文が書かれているのかを判断し、適切なバイトコードに変換している。

➔ つまり、この部分でthen節とelse節をバイトコードに変換する前に、音が鳴る動作を付けてやれば、それも一緒にバイトコードに変換されるのではないか

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

変換後のバイトコードのイメージ

if 条件文

else

end

then

trueの音を鳴らす

trueの場合の動作

falseの音を鳴らす

falseの場合の動作

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

2,Rubyスクリプト内の関数を呼び出す方法

実際にRubyの関数を呼び出している部分を参考に、1,で見つけた部分に記述していった。

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

音を鳴らすRubyスクリプト

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

n=""2560.times{|i|

a=i*15%256n=n+a.chr

}f.puts nf.closeend

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

音を鳴らす方法

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

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

検証中に・・・

音を鳴らす関数内にオプション的に出力を変えるためにif文を用いた分岐を書いていたら、そのif文に反応して、音を鳴らす関数が呼び出された

➔ また、検証用のif文が実行されるときに(ry

➔ また(ry

➔ 無限ループ突入 orz

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

…実際の実装は

true、falseの場合に鳴らす音をそれぞれ分けて実装

始めは、各rbファイルに逐一記述していたが、prelude.rbやgem_prelude.rbに記述すれば、Cの文字列として、rubyに埋め込まれると分かったのでprelude.rbに記述 prelude.rbやgem_prelude.rb内のif文にも適応され

て、「関数が見つからないよ><」エラーが出てました。 ダミーの関数を用意することで解消

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

聞いてみたいですよね?

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

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

感想

CもRubyもあまり書いた経験がなかったので、ソースを読んだり、スクリプト書くのもとても大変でした 講師の皆さん、Google先生ありがとうございました

gdbでのデバッグも初体験で新鮮でした。

将来的には、rbファイルを楽譜代わりに演奏なんていうのも・・・

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

ご清聴ありがとうございました

Thank you for listening!!!

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

5日目 午後

● 全員が集まっての成果報告会● セキュ組:ディスカッションの成果報告● プログラミング組は各組から代表チームが発表– 言語組は笹田さんが全員の成果を紹介する

●BGM:test_prime.rbの動作テスト● 修了式

● 修了証授与+今後の意気込み● 「帰るまでがキャンプです」

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

修了式後

● 書籍などが貰えるプレゼント大会

● 当たりの人にはデスクトップPC+SP課題!● 著者の人が居る本もあるからサイン本化も可

● HackerJapan–記事の執筆者な上野さんと竹迫さん

● Ruby逆引きレシピ

– Ruby組の講師陣にサイン貰った● DebugHacksの缶バッチ

– 吉岡さんのサイン入り

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

解散後に・・・

● @ITの件で打ち合わせも兼ねてITmediaのオフィスに入れて貰えることになっていたので、参加者10人を引き連れてITmediaのオフィスを見学したりしてました。

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

セプキャン感想まとめ● とにかく、話が合う同世代の人にたくさん出会える!!

–楽しくないはずが無い!!!!●話題が尽きない尽きない

– 今も交流してる人も多いです● 講師陣のレパートリーも半端無い

● 「世界最高の講師を準備した」by吉岡さん

– そんな講師の人たちが隣で飯食ってる環境● 言語組だけに限らず、その道のエキスパートに直接教えて貰える

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

セプキャンtips的なまとめ ● 事前に講師陣のことを知ってたりすると緊張するので、あまり知らない方が良いと思います● 個人的に西尾さんとか天野さんとかスゴイ緊張した。。。

● 逆に参加者のことは調べておくと良いかも

– 「Twitterで『〜』って言ってたけど」● 講師陣に近づいて行くと、意外な裏話が聞けるかも

● Itmediaとか取材クルーにも近づいて行くと、コメント求められたりして、掲載なんてことも

● お土産とか貰えるかもだからカバンに余裕を持たせておくと良いかも

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

さいごに…

● 対象年齢(〜22歳)の人

● 是非!来年のキャンプに参加してみて下さい!

– この後、はせがわさん(セプキャン講師)を捕まえて話を聞き出そうw

● 対象年齢外の人● 周りの若い人に紹介してあげてください

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

ご清聴ありがとうございました続きは懇親会で!!