SlideShare a Scribd company logo
1 of 60
Download to read offline
セキュリティ&プロ
グラミングキャンプ
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
●   対象年齢外の人
    ●   周りの若い人に紹介してあげてください
ご清聴ありがとうございました
  続きは懇親会で!!

More Related Content

What's hot

第1回Go勉強会 - Go紹介
第1回Go勉強会 - Go紹介第1回Go勉強会 - Go紹介
第1回Go勉強会 - Go紹介
敦志 金谷
 
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
shoma h
 
他人が書いたコードのリファレンスをSphinxで作る方法
他人が書いたコードのリファレンスをSphinxで作る方法他人が書いたコードのリファレンスをSphinxで作る方法
他人が書いたコードのリファレンスをSphinxで作る方法
Takeshi Sugiyama
 
Python札幌 2012/06/17
Python札幌 2012/06/17Python札幌 2012/06/17
Python札幌 2012/06/17
Shinya Okano
 

What's hot (17)

Let's write understandable Japanese!
Let's write understandable Japanese!Let's write understandable Japanese!
Let's write understandable Japanese!
 
第1回Go勉強会 - Go紹介
第1回Go勉強会 - Go紹介第1回Go勉強会 - Go紹介
第1回Go勉強会 - Go紹介
 
底から見上げるデブ(Dev) 〜俺と執事と自動化と〜
底から見上げるデブ(Dev) 〜俺と執事と自動化と〜底から見上げるデブ(Dev) 〜俺と執事と自動化と〜
底から見上げるデブ(Dev) 〜俺と執事と自動化と〜
 
初めての自動化、Jenkins
初めての自動化、Jenkins初めての自動化、Jenkins
初めての自動化、Jenkins
 
スクレイピングとPython
スクレイピングとPythonスクレイピングとPython
スクレイピングとPython
 
OSS事例から学んだ プロジェクトを進める技術
OSS事例から学んだ プロジェクトを進める技術OSS事例から学んだ プロジェクトを進める技術
OSS事例から学んだ プロジェクトを進める技術
 
Django learning
Django learningDjango learning
Django learning
 
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
 
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
 
「LINQ」っていう名前だけでも 覚えて帰ってください!
「LINQ」っていう名前だけでも 覚えて帰ってください!「LINQ」っていう名前だけでも 覚えて帰ってください!
「LINQ」っていう名前だけでも 覚えて帰ってください!
 
Nginxで日本語入力を遊んでみよう!
Nginxで日本語入力を遊んでみよう!Nginxで日本語入力を遊んでみよう!
Nginxで日本語入力を遊んでみよう!
 
210630 python
210630 python210630 python
210630 python
 
プロ生ちゃんbotを作ろう!
プロ生ちゃんbotを作ろう!プロ生ちゃんbotを作ろう!
プロ生ちゃんbotを作ろう!
 
他人が書いたコードのリファレンスをSphinxで作る方法
他人が書いたコードのリファレンスをSphinxで作る方法他人が書いたコードのリファレンスをSphinxで作る方法
他人が書いたコードのリファレンスをSphinxで作る方法
 
Python札幌 2012/06/17
Python札幌 2012/06/17Python札幌 2012/06/17
Python札幌 2012/06/17
 
2015/07/11 第7回G-Study発表資料-ITエンジニアのためのDTM入門
2015/07/11 第7回G-Study発表資料-ITエンジニアのためのDTM入門2015/07/11 第7回G-Study発表資料-ITエンジニアのためのDTM入門
2015/07/11 第7回G-Study発表資料-ITエンジニアのためのDTM入門
 
Git for Begineers GitHub ハンズオン
Git for Begineers GitHub ハンズオンGit for Begineers GitHub ハンズオン
Git for Begineers GitHub ハンズオン
 

Viewers also liked

Youblisher.com 1153016-revista terra-cia_195
Youblisher.com 1153016-revista terra-cia_195Youblisher.com 1153016-revista terra-cia_195
Youblisher.com 1153016-revista terra-cia_195
Lela Gomes
 
приказ до ко № 5 558
приказ до ко № 5 558приказ до ко № 5 558
приказ до ко № 5 558
Demanessa
 
Operações com o soroban
Operações com o sorobanOperações com o soroban
Operações com o soroban
Aldizio Moreira
 

Viewers also liked (20)

Youblisher.com 1153016-revista terra-cia_195
Youblisher.com 1153016-revista terra-cia_195Youblisher.com 1153016-revista terra-cia_195
Youblisher.com 1153016-revista terra-cia_195
 
Model view controller: un pattern per l’interaction design
Model view controller: un pattern per l’interaction designModel view controller: un pattern per l’interaction design
Model view controller: un pattern per l’interaction design
 
Nova Apresentação Oficial Boulevard Monde 2015
Nova Apresentação Oficial Boulevard Monde 2015Nova Apresentação Oficial Boulevard Monde 2015
Nova Apresentação Oficial Boulevard Monde 2015
 
Imagenes
ImagenesImagenes
Imagenes
 
TDD&Refactoring Day 01: Refactoring
TDD&Refactoring Day 01: RefactoringTDD&Refactoring Day 01: Refactoring
TDD&Refactoring Day 01: Refactoring
 
приказ до ко № 5 558
приказ до ко № 5 558приказ до ко № 5 558
приказ до ко № 5 558
 
AutoDock_Raccoon_japanese_ver.1.0
AutoDock_Raccoon_japanese_ver.1.0AutoDock_Raccoon_japanese_ver.1.0
AutoDock_Raccoon_japanese_ver.1.0
 
Opp pres jan12_eng-2
Opp pres jan12_eng-2Opp pres jan12_eng-2
Opp pres jan12_eng-2
 
Bí mật gia tăng doanh số với Internet Marketing
Bí mật gia tăng doanh số với Internet MarketingBí mật gia tăng doanh số với Internet Marketing
Bí mật gia tăng doanh số với Internet Marketing
 
Bauhaus
BauhausBauhaus
Bauhaus
 
Tic
TicTic
Tic
 
Trabalho de ciencias
Trabalho de cienciasTrabalho de ciencias
Trabalho de ciencias
 
Relações ecológicas
Relações ecológicasRelações ecológicas
Relações ecológicas
 
Multimédia PFV AP-B
Multimédia PFV AP-BMultimédia PFV AP-B
Multimédia PFV AP-B
 
A febre que eu posso fingir (em construção)
A febre que eu posso fingir (em construção)A febre que eu posso fingir (em construção)
A febre que eu posso fingir (em construção)
 
Artigo do publico 27 dez 2013
Artigo do publico   27 dez 2013Artigo do publico   27 dez 2013
Artigo do publico 27 dez 2013
 
Tic
TicTic
Tic
 
Operações com o soroban
Operações com o sorobanOperações com o soroban
Operações com o soroban
 
Relatório wikipédia
Relatório wikipédiaRelatório wikipédia
Relatório wikipédia
 
Iss
IssIss
Iss
 

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

デブサミでLiveコーディングしてきた - きよくらならみ
デブサミでLiveコーディングしてきた - きよくらならみデブサミでLiveコーディングしてきた - きよくらならみ
デブサミでLiveコーディングしてきた - きよくらならみ
WPArch
 
PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)
nishikawa_makoto7
 
るりまの1/nはMatsue.rbでできています。
るりまの1/nはMatsue.rbでできています。るりまの1/nはMatsue.rbでできています。
るりまの1/nはMatsue.rbでできています。
Sho Hashimoto
 
秘伝:クラウドに開発環境をえいっ!と構築する方法
秘伝:クラウドに開発環境をえいっ!と構築する方法秘伝:クラウドに開発環境をえいっ!と構築する方法
秘伝:クラウドに開発環境をえいっ!と構築する方法
Masahiko Hashimoto
 
opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2
Takuya Nishimoto
 

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

デブサミでLiveコーディングしてきた - きよくらならみ
デブサミでLiveコーディングしてきた - きよくらならみデブサミでLiveコーディングしてきた - きよくらならみ
デブサミでLiveコーディングしてきた - きよくらならみ
 
Goで始める言語処理系実装入門
Goで始める言語処理系実装入門Goで始める言語処理系実装入門
Goで始める言語処理系実装入門
 
ソフトの終わりは、技術の終わり?
ソフトの終わりは、技術の終わり?ソフトの終わりは、技術の終わり?
ソフトの終わりは、技術の終わり?
 
PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)
 
ペアプロデモの裏話 #tddbc
ペアプロデモの裏話 #tddbcペアプロデモの裏話 #tddbc
ペアプロデモの裏話 #tddbc
 
WordCamp Yokohama2010 プレゼン
WordCamp Yokohama2010 プレゼンWordCamp Yokohama2010 プレゼン
WordCamp Yokohama2010 プレゼン
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方
 
名古屋生まれのPHP逆引きレシピ
名古屋生まれのPHP逆引きレシピ名古屋生まれのPHP逆引きレシピ
名古屋生まれのPHP逆引きレシピ
 
るりまの1/nはMatsue.rbでできています。
るりまの1/nはMatsue.rbでできています。るりまの1/nはMatsue.rbでできています。
るりまの1/nはMatsue.rbでできています。
 
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LLRubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
 
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
 
Raspberry pi最新情報アップデート&いろいろ比較
Raspberry pi最新情報アップデート&いろいろ比較Raspberry pi最新情報アップデート&いろいろ比較
Raspberry pi最新情報アップデート&いろいろ比較
 
秘伝:クラウドに開発環境をえいっ!と構築する方法
秘伝:クラウドに開発環境をえいっ!と構築する方法秘伝:クラウドに開発環境をえいっ!と構築する方法
秘伝:クラウドに開発環境をえいっ!と構築する方法
 
サービス開発者の読書会#4
サービス開発者の読書会#4サービス開発者の読書会#4
サービス開発者の読書会#4
 
20120515 アジャイルサムライ読書会 第4回
20120515 アジャイルサムライ読書会 第4回20120515 アジャイルサムライ読書会 第4回
20120515 アジャイルサムライ読書会 第4回
 
opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2
 
「RSpec初心者に送るRSpec最強チュートリアル」発表資料 #sg_study
「RSpec初心者に送るRSpec最強チュートリアル」発表資料 #sg_study「RSpec初心者に送るRSpec最強チュートリアル」発表資料 #sg_study
「RSpec初心者に送るRSpec最強チュートリアル」発表資料 #sg_study
 
BarCamp is very fun! & Kayak is also fun!
BarCamp is very fun! & Kayak is also fun!BarCamp is very fun! & Kayak is also fun!
BarCamp is very fun! & Kayak is also fun!
 
簡単に楽しくはじめよう!Raspberry Pi入門
簡単に楽しくはじめよう!Raspberry Pi入門簡単に楽しくはじめよう!Raspberry Pi入門
簡単に楽しくはじめよう!Raspberry Pi入門
 
20120920中間発表2
20120920中間発表220120920中間発表2
20120920中間発表2
 

More from Shoot Morii

Gyazo for Linux 最新ビルド事情紹介 @ KMC学習発表会 in OSC京都
Gyazo for Linux 最新ビルド事情紹介 @ KMC学習発表会 in OSC京都Gyazo for Linux 最新ビルド事情紹介 @ KMC学習発表会 in OSC京都
Gyazo for Linux 最新ビルド事情紹介 @ KMC学習発表会 in OSC京都
Shoot Morii
 
Don't you want to use Gyazo on Nintendo 3DS etc ?
Don't you want to use Gyazo on Nintendo 3DS etc ?Don't you want to use Gyazo on Nintendo 3DS etc ?
Don't you want to use Gyazo on Nintendo 3DS etc ?
Shoot Morii
 
はてなインターン自己紹介
はてなインターン自己紹介はてなインターン自己紹介
はてなインターン自己紹介
Shoot Morii
 
Matcha139 26th-lt
Matcha139 26th-ltMatcha139 26th-lt
Matcha139 26th-lt
Shoot Morii
 
Pasta kの取扱説明書
Pasta kの取扱説明書Pasta kの取扱説明書
Pasta kの取扱説明書
Shoot Morii
 
Osc神戸学生lt
Osc神戸学生ltOsc神戸学生lt
Osc神戸学生lt
Shoot Morii
 
セキュリティ&プログラミングキャンプに参加してから
セキュリティ&プログラミングキャンプに参加してからセキュリティ&プログラミングキャンプに参加してから
セキュリティ&プログラミングキャンプに参加してから
Shoot Morii
 
高校生がイベントを作るということ
高校生がイベントを作るということ高校生がイベントを作るということ
高校生がイベントを作るということ
Shoot Morii
 
高校生がイベントを作るということ
高校生がイベントを作るということ高校生がイベントを作るということ
高校生がイベントを作るということ
Shoot Morii
 
XML Http Request Level2 の噂を聞いたので調べてみた
XML Http Request Level2 の噂を聞いたので調べてみたXML Http Request Level2 の噂を聞いたので調べてみた
XML Http Request Level2 の噂を聞いたので調べてみた
Shoot Morii
 

More from Shoot Morii (20)

2016年はFitbitで生体データを監視元年!
2016年はFitbitで生体データを監視元年!2016年はFitbitで生体データを監視元年!
2016年はFitbitで生体データを監視元年!
 
Gyazo for Linux 最新ビルド事情紹介 @ KMC学習発表会 in OSC京都
Gyazo for Linux 最新ビルド事情紹介 @ KMC学習発表会 in OSC京都Gyazo for Linux 最新ビルド事情紹介 @ KMC学習発表会 in OSC京都
Gyazo for Linux 最新ビルド事情紹介 @ KMC学習発表会 in OSC京都
 
JavaScriptでわくわくシンセサイザーっぽい音が鳴るやつを作る入門
JavaScriptでわくわくシンセサイザーっぽい音が鳴るやつを作る入門JavaScriptでわくわくシンセサイザーっぽい音が鳴るやつを作る入門
JavaScriptでわくわくシンセサイザーっぽい音が鳴るやつを作る入門
 
とにかくシュッと検索っぽいことをしたい!
とにかくシュッと検索っぽいことをしたい!とにかくシュッと検索っぽいことをしたい!
とにかくシュッと検索っぽいことをしたい!
 
Firefox Add-on SDK 入門
Firefox Add-on SDK 入門Firefox Add-on SDK 入門
Firefox Add-on SDK 入門
 
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyotoGo言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
 
Don't you want to use Gyazo on Nintendo 3DS etc ?
Don't you want to use Gyazo on Nintendo 3DS etc ?Don't you want to use Gyazo on Nintendo 3DS etc ?
Don't you want to use Gyazo on Nintendo 3DS etc ?
 
Pastapy
PastapyPastapy
Pastapy
 
はてなインターン自己紹介
はてなインターン自己紹介はてなインターン自己紹介
はてなインターン自己紹介
 
Matcha139 26th-lt
Matcha139 26th-ltMatcha139 26th-lt
Matcha139 26th-lt
 
Shibuya xss lt
Shibuya xss ltShibuya xss lt
Shibuya xss lt
 
情報と社会レポート1
情報と社会レポート1 情報と社会レポート1
情報と社会レポート1
 
Pasta kの取扱説明書
Pasta kの取扱説明書Pasta kの取扱説明書
Pasta kの取扱説明書
 
Ict challenge+r2011 final
Ict challenge+r2011 finalIct challenge+r2011 final
Ict challenge+r2011 final
 
Gitの紹介
Gitの紹介Gitの紹介
Gitの紹介
 
Osc神戸学生lt
Osc神戸学生ltOsc神戸学生lt
Osc神戸学生lt
 
セキュリティ&プログラミングキャンプに参加してから
セキュリティ&プログラミングキャンプに参加してからセキュリティ&プログラミングキャンプに参加してから
セキュリティ&プログラミングキャンプに参加してから
 
高校生がイベントを作るということ
高校生がイベントを作るということ高校生がイベントを作るということ
高校生がイベントを作るということ
 
高校生がイベントを作るということ
高校生がイベントを作るということ高校生がイベントを作るということ
高校生がイベントを作るということ
 
XML Http Request Level2 の噂を聞いたので調べてみた
XML Http Request Level2 の噂を聞いたので調べてみたXML Http Request Level2 の噂を聞いたので調べてみた
XML Http Request Level2 の噂を聞いたので調べてみた
 

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

  • 1. セキュリティ&プロ グラミングキャンプ 2009参加レポート Pasta-K pasta0915@gmail.com 2009/10/17 まっちゃ139勉強会
  • 3. @IT就職Labに記事書いたよ!! ● 「Pasta-Kのはじめて作るIT勉強会」 ● http://lab.jibun.atmarkit.co.jp/entries/264
  • 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枚!!! ● 講義とかの内容は参加者のブログとかに感 想とともに載ってそうな感じなので、今回 はブログとかに書けないような話をします 講義の内容というよりは会場の雰囲気 – を少しでも伝えられたら ● さっきまで突貫で作っていので、あんまり まとまりが無いかもです…
  • 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に書く感じで」 ● 「腹減ったぁ〜」 ● 名刺交換ゲーム – 講師陣の手書き名刺が!! ● レア?
  • 17.
  • 18. 初日の夜 ● 事前に参加者と交流しているときの指令「八 つ橋買ってこい」を忠実に守り、僕が京都駅 で買った八つ橋を食べつつ交流を図る集いを16 階談話室で開催w ●部屋に入ったら「好きなエディターは?」 – エディタ宗教論争 – 2日目くらいからTWitter上に「16階な う」が登場 ● 裏で酒を飲む講師陣 ● @hyoshiokのTwitterなどで発覚
  • 19. 通称16階組 ● 各々が延長コードを持ち込んでの開発 ●普段の成果見せたり、tipsの交換とか ● ニコ動を談話室のテレビに写しての鑑賞会 ● Emobileすげー ● 繋ぐためのケーブルを持ってきてた人がいた ● 何を見てたかは(ry ● 言語組講師陣も混ざってた ● ささださん「はやくねろよー。言ったからなー」 (棒読み)
  • 21. 事件その1 ● 隣の部屋であった言語組のid:yayyuguさんが キー閉じ込みを○時30分にしてしまう ● 「キー閉じ込み第2号」 – すでに1人いた!!
  • 22. 事件その2 ● 部屋で新幹線で使った HotSpotパスが使えたの でインターネットをして いたらさらに事件は起 こった
  • 23.
  • 26. 2日目午前 ● 午前中はプログラミング組共通科目 ● 調子に乗って使ったことの無いvimを使うな どしてしまう ● 実習としてRubyのビルドを行う – 予習しているはずの言語組勢がなかなかス ムーズに行かない ● 笹田さん「お前ら予習してないだろ」 ● 言語組「・・・」
  • 27. 2日目午後 ● ここから組に分かれる ● 言語組 – 自己紹介をしつつ、各自Skypeの導入 ● 言語組グループチャットの存在 – コミュニケーション・質問 – 講師へのツッコミ ● 講師の横には常にSKypeの画面がw – 「セキュリティな人たちに怒られそう」 ➔ 今も活躍中 – 笹田さんによる今回扱うRubyについての話が この日は中心
  • 28. 2日目の言語組 ● Yuguiさんにサインを貰うpokutuna ● 「DebugHacks」の文字組みにダメ出しをする 人もいたw ● 大人気のチョコレート ● 日を増すにつれて減る速度もアップー! ● Rubyなどの本が並ぶ本棚 ● はじめてのRuby ● DebugHacks – こんな本まで・・・ →
  • 29.
  • 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さん+竹迫さん +天野さん+僕
  • 35.
  • 36. 4日目 夜 BOF2 ● 何人かのグループに分かれてのセッション*2 ● 吉岡さん+天野さん「勉強会に行こう」 – 吉岡さんから話をふられて困るなど – やっぱり勉強会に興味ある人多かった!!! ● 竹迫さん+はせがわさん「脆弱性〜」 – 夕飯の時に講師陣に勧められた ● 「竹迫さんとはせがわさんの漫談は必見」 – 竹迫さんが楽○のサイトのXSSを発見してき た!
  • 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文を書いたとき に出力されるバイトコードを変えて、音をならすよう にする。
  • 44. 1,if文の条件式を評価しているところ  何をしている部分?  NODE_XXXXを受け取って、それをもとにして、どんな 構文が書かれているのかを判断し、適切なバイトコード に変換している。 ➔ つまり、この部分でthen節とelse節をバイトコード に変換する前に、音が鳴る動作を付けてやれば、そ れも一緒にバイトコードに変換されるのではないか
  • 45. 変換後のバイトコードのイメージ if 条件文 then trueの音を鳴らす trueの場合の動作 else falseの音を鳴らす falseの場合の動作 end
  • 46. 2,Rubyスクリプト内の関数を呼び出 す方法  実際にRubyの関数を呼び出している部分を参考 に、1,で見つけた部分に記述していった。
  • 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ファイルを楽譜代わりに演奏なんて いうのも・・・
  • 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 ● 対象年齢外の人 ● 周りの若い人に紹介してあげてください