セキュリティ&プログラミング
    キャンプ2011
     8/10/2011


            吉岡弘隆
   mailto:hyoshiok@gmail.com
http://d.hatena.ne.jp/hyoshiok/
       twitter @hyoshiok
                                  1
お題
●   自己紹介
●   セキュリティ&プログラミングキャンプ2011
●   インターネットが変えた社会
    〜オープンソースソフトウェア〜




                             2
プロフィール
1958年9月4日生まれ、慶応義塾大学大学院工学部修了
日本ディジタルイクイップメント、日本オラクルを経てミ
ラクル・リナックスを2000年に創業。取締役、最高技術
責任者(CTO)。2009年8月より楽天株式会社所属、技術
理事
セキュリティ&プログラミングキャンプ、プログラミング
コース主査
U-20プログラミングコンテスト委員
カーネル読書会主宰、勉強会勉強会
2008年経済産業省商務情報政策局長表彰、楽天テクノロ
ジーアワード金賞
                              3
ブログ、日記
●   未来のいつか/hyoshiokの日記
    http://d.hatena.ne.jp/hyoshiok/
●   mailto:hyoshiok@gmail.com
●   http://twitter.com/hyoshiok
●   DEBUG HACKS
    −   吉岡弘隆、大和一洋、大岩尚宏、安部東洋、吉田俊輔 著
    −   2009年04月 発行
    −   424ページ
    −   定価3,360円
    −   ISBN978-4-87311-404-0




                                      4
●    情報処理2011, vol. 52, No.4.5

●    全国技術系勉強会マップ
●    ~技術者のライブセッションに
     参加しよう~




●
●   http://d.hatena.ne.jp/hyoshiok/20110227#p1
デブサミで『ハッカー中心の企業文化を日本で根付かせる』という講演をし
●
てきた
                                                 5
カーネル読書会

 ●   LinuxやOSSに関する技術的な
     話題を扱う勉強会。
       −   10年間、100回続いている
       −   第100回、Linusさんや世界中のカーネルハッ
           カーも参加してくれた。うれしい。




http://itpro.nikkeibp.co.jp/article/NEWS/20091023/339312/
セキュリティ&プログラミング
         キャンプ2011
●   プログラミングの楽しさを伝えたい、共有した
    い
●   (わたしの野望)プログラミングが好きな人と
    いっぱい出会う事。そのような人を増やす事。
●   世界最高の講師を準備した。
    http://jibun.atmarkit.co.jp/lstudent/special/camp2009/01.html
●   インターネットが変えた社会
     −   オープンソースという考え方



                                                                    7
プログラミングコース宣言
●   ソフトウェアは人が創る。人がすべてだ。
●   このキャンプで、プログラムを創ることの
    −   楽しさ
    −   達成感
    −   難しさ
        を共有したい
●   オープンソース開発者の卵を育てたい



                          8
このキャンプ卒業生のイメージ
●   使う人というより作る人
●   既存のオープンソースなども、どんどん利用し
    て、改善、改良する人
●   コミュニティに積極的に参加する人
●   ソフトウェアによって社会をよくする人
●   ハッカーマインドを持っている人



                            9
ハッカーマインド
• ハッカーって
  –   コンピュータ技術に精通した人(辞書的
      な定義)
  –   ちょっとした技巧(ハック)を操る人
  –   社会を変えた人
  –   (なんでもかんでもハッカー?)




                           10
インターネットが変えた社会
• オープンソースソフトウェア




                  11
オープンソースについて
• オープンソースソフトウェア(OSS)という、
  ソフトウェアの作り方について




                       12
質問
• プログラムを書いたことがある人?
• 複数の人とプログラムを作ったことがある人?
• 1万行を越えるプログラムを作ったことがある
  人?
• 10万行を越えるプログラムを作ったことがある
  人?
• オープンソースソフトウェアの開発に参加した
  ことがある人?
• オープンソースソフトウェアの開発に参加した
  い人?
                       13
オープンソースという考え方
• オープンソースって?
• クローズドソースソフトウェア(多くの商用ソ
  フト)の作り方とどう違うのだろう。
• 何が優れているのだろう。




                      14
オープンソースソフトウェア
●   ソースコードを公開して、自由に実行、変更、
    再配布を可能にしたもの。
●   ソースコード:人間がプログラミング言語など
    を用いて記述したもの。
    −   そのままではコンピュータは実行できないので、通
        常、コンパイラと呼ばれるソフトウェアで直接実行
        できる形式に変換して実行されるか、インタプリタ
        と呼ばれるソフトウェアで字面を解釈し実行され
        る。


                              15
オープンソースソフトウェア
●   企業の作った商用ソフトウェアではなく、楽し
    いからと作ったソフトウェアがどんどん普及し
    ていった。
●   インターネットを動かしているソフトウェアの
    多く(ほとんど)はオープンソースソフトウェ
    アだ。(Linux, BIND, Apache, sendmail,
    MySQL, Perl, Ruby, ...)
●   世界中のボランティアが改良、開発をしてい
    る。
●   そんなことが信じられるか?
                                     16
オープンソースソフトウェア
●   90年代になってインターネットが普及した。
●   低額で自由に情報交換ができるようになった。
●   ソフトウェアをインターネットで公開したら、
    世界中の人たちがよってたかって利用して、時
    には改良しはじめた。
●   公開して自由に利用、変更、改良、配布できる
    ようにしたソフトウェアをオープンソースソフ
    トウェアと呼ぶことにした。(1998年2月)


                         17
インターネットが全てを変えた
●   大規模ソフトウェアをチームで作る場合、昔は
    同じ場所に集まってみんなで開発していた。
    (企業)
    −   一つの場所にあつまらないとコミュニケーションの
        コストが高い。
●   ところがインターネットがあれば、同じ場所に
    集まる必要性が少なくなった。
    −   メールでプログラムをやりとりできる。
    −   広域分散ソフトウェア開発
●   一つのところに全員集まらなくてもいい。
                              18
商用ソフトウェア
●   70年代、米国IBM社がソフトウェアとハード
    ウェアとを別々に売るようになった。
●   商用ソフトウェアがビジネスとして成立。
●   商用ソフトウェア(商品)なので通常は有償。
    ソースコードの利用も自由ではない。
    例:米国Microsoft社のWindows(ソースコード
    は自由に変更、再配布などできない)



                                19
フリーソフトウェア
●   商用ソフトウェアがある一方、自由(フリー)
    に利用できるものがある。
●   ソフトウェアは自由に利用できるべきだと考え
    ている人がいる。
●   リチャード・ストールマンさん(米国)は、フ
    リーソフトウェアをいっぱい作っている中心的
    な人。
●   80年代から積極的に活動をしている。


                        20
ハッカー倫理

• スティーブン・レビー「 ハッカーズ 」で次のように記してい
  る。
  ISBN978-4875931003
• コンピュータへのアクセス、加えて、何であれ、世界の機能の
  仕方について教えてくれるものへのアクセスは無制限かつ全面
  的でなければならない。実地体験の要求を決して拒んではなら
  ない。
• すべての情報は自由に利用できなければならない。
• 権威を信用するな--反中央集権を進めよう。
• ハッカーは、学歴、年齢、人種、地位のような、まやかしの基
  準ではなく、そのハッキングによって判断されなければならな
  い。
• 芸術や美をコンピュータで作り出すことは可能である。
• コンピュータは人生をよいほうに変えうる。
• 60年代〜70年代の民族誌




                                  21
共通の価値観

•   コンピュータによって社会をよくする
•   管理より自由、反権威的
•   ラフなコンセンサスと動くコード
•   許可を求めるな、謝罪せよ




                        22
オープンソースソフトウェア
●   プロジェクトリーダとか、開発スケジュールと
    か、開発予算とか、企業があるわけではない。
●   世界中のボランティアがよってたかって開発に
    参加している。
●   誰もコントロールできない。
●   混沌の世界から開発されている。
●   バザール(市場、お祭騒ぎ)のようなソフト
    ウェアの開発方式。
●   エリック・レイモンドさん「伽藍(大聖堂)と
    バザール」、1997年          23
バザールのような開発方式
●   ウィキペディア:世界中の人がボランティアで
    百科事典の項目を書いている。
●   オープンソースソフトウェア:世界中の人がボ
    ランティアがソフトウェアを書いている。
●   コミュニティ:地球規模のコミュニティで開発
    されている。




                        24
バザールのような開発方式
●   金銭的な報酬はない。(企業に勤めている人は
    給与を貰っているけど)
    −   お金儲けをするために開発しているわけではな
        い??
●   ボランティア:自主的にある活動に従事する人
    のこと。(誰かに命令されてやるのではない)
●   組織ではなく個人がベース
●   コンセンサスをベースに開発
●   信頼と尊敬
                                25
コミュニティによる開発
●   見たことも会ったこともないない人たちが協力
    している。国籍も性別も肌の色も年齢も組織も
    関係ない。様々な改良を世界中から受け入れ
    る。
●   どんどん改良されていく。
●   Linux
    −   1000万行以上の大規模なソフトウェア。
    −   最新版の改良には800名以上の人が参加した。
    −   延べ数千人の人が改良に加わっている。

                                 26
なんでコミュニティに参加するのだ
       ろう
●   インターネットの謎
●   楽しいから、愛、尊敬、…
●   カネ
●   一人でできないことをみんなでやれるから
●   多様な動機、人それぞれ、…
●   誰にも強制されない。自主的に参加している
●   10人いれば10の理由がある


                           27
コミュニティに参加する企業
●   なぜ企業はコミュニティに参加するのだろう
    −   ハードウェアを売るため
    −   サービスを提供するため
    −   ディストリビューションを売るため
    −   開発コストを削減できる
    −   …
    −   営利企業は基本的には自社の利益になるから、コ
        ミュニティに参加する。(利益=売上−費用)


                                 28
プログラミングコースの人たち
●   オープンソースの中の人たち(世界のトップク
    ラスの人たちを集めましたbyプログラミング
    コース主査)
    −   Rubyの中の人
    −   Linuxの中の人
    −   OSの中の人
●   講義や休み時間になんでオープンソースにハ
    マったのか聞いてみよう。


                           29
わたしの場合
●   この話長いよ〜
    −   10年以上前、Oracleというデータベースの会社にい
        た。その時、Netscape社がブラウザのソースコー
        ド(Mozilla)を公開した…




                                  30
技術はみんなのものだ
●   技術は会社に独占されるべきではなく、みんな
    のものだ。それが社会を豊かにし進歩させると
    いう考え方。公開させるために一定期間独占。
    −   技術の公開を奨励する例:特許
    −   著作権。
●   オープンソースソフトウェアは、みんなのもの
    にしたら進化、進歩したという例だ。



                         31
バザールモデル
●   多くの人の知恵の結集。
●   善意を信用している。
●   インターネットを利用することによって地球規
    模の協力が可能になった。
●   地球規模のバザール(市場)だ。
●   オープンソースソフトウェアを使ったり、改良
    したり、作ったりしたら参加できる。
●   世界中の人と協力して何かを成し遂げる。
●   一人ではなしとげないことを世界中の人と作り
    上げる
                        32
バザールモデル
●   コミュニティの人たちとソフトウェアを作る。
    楽しいし、わくわくする。
●   ソフトウェアによって世界をよい方へ変えるこ
    とができる。
●   誰でも、参加できる。もちろん君達も。
●   参加資格は、情熱。
●   ちょっとした勇気と、行動力。



                        33
まとめ
●   オープンソースの開発について
●   バザールモデルについて紹介した




                      34
最後に
●   ソフトウェアを作るのは楽しい
●   世界中の人たちと協力して作るのはもっと楽し
    い
●   世界規模のソフトウェア開発コミュニティがあ
    る
●   君たちも参加できる
●   21世紀のソフトウェアを作るのは君たちだ
●   どう?


                        35
●   参考文献
●   オープンソースソフトウェアの育て方、Karl
    Fogel著、2009年7月、高木正弘、高岡芳成
    訳、ISBN978-4-87311-412-5
●   アート・オブ・コミュニティ――「貢献したい
    気持ち」を繋げて成果を導くには、Jono
    Bacon著、渋川よしき訳、2011年05月
    ISBN978-4-87311-495-8
●   伽藍とバザール、Eric S. Raymond著、山形浩
    生訳 http://cruel.org/freeware/cathedral.html
                                                  36
Q&A
●
    −   オープンソースにふれたきっかけ
    −   どのオープンソースプロジェクトに参加したらいいのでしょう
    −   どの勉強会に参加すればいいのでしょう
    −   はじめてのコンピュータは




                                       37

Internet and Opensource at Security and Programming camp 2011

  • 1.
    セキュリティ&プログラミング キャンプ2011 8/10/2011 吉岡弘隆 mailto:hyoshiok@gmail.com http://d.hatena.ne.jp/hyoshiok/ twitter @hyoshiok 1
  • 2.
    お題 ● 自己紹介 ● セキュリティ&プログラミングキャンプ2011 ● インターネットが変えた社会 〜オープンソースソフトウェア〜 2
  • 3.
  • 4.
    ブログ、日記 ● 未来のいつか/hyoshiokの日記 http://d.hatena.ne.jp/hyoshiok/ ● mailto:hyoshiok@gmail.com ● http://twitter.com/hyoshiok ● DEBUG HACKS − 吉岡弘隆、大和一洋、大岩尚宏、安部東洋、吉田俊輔 著 − 2009年04月 発行 − 424ページ − 定価3,360円 − ISBN978-4-87311-404-0 4
  • 5.
    情報処理2011, vol. 52, No.4.5 ● 全国技術系勉強会マップ ● ~技術者のライブセッションに 参加しよう~ ● ● http://d.hatena.ne.jp/hyoshiok/20110227#p1 デブサミで『ハッカー中心の企業文化を日本で根付かせる』という講演をし ● てきた 5
  • 6.
    カーネル読書会 ● LinuxやOSSに関する技術的な 話題を扱う勉強会。 − 10年間、100回続いている − 第100回、Linusさんや世界中のカーネルハッ カーも参加してくれた。うれしい。 http://itpro.nikkeibp.co.jp/article/NEWS/20091023/339312/
  • 7.
    セキュリティ&プログラミング キャンプ2011 ● プログラミングの楽しさを伝えたい、共有した い ● (わたしの野望)プログラミングが好きな人と いっぱい出会う事。そのような人を増やす事。 ● 世界最高の講師を準備した。 http://jibun.atmarkit.co.jp/lstudent/special/camp2009/01.html ● インターネットが変えた社会 − オープンソースという考え方 7
  • 8.
    プログラミングコース宣言 ● ソフトウェアは人が創る。人がすべてだ。 ● このキャンプで、プログラムを創ることの − 楽しさ − 達成感 − 難しさ を共有したい ● オープンソース開発者の卵を育てたい 8
  • 9.
    このキャンプ卒業生のイメージ ● 使う人というより作る人 ● 既存のオープンソースなども、どんどん利用し て、改善、改良する人 ● コミュニティに積極的に参加する人 ● ソフトウェアによって社会をよくする人 ● ハッカーマインドを持っている人 9
  • 10.
    ハッカーマインド • ハッカーって – コンピュータ技術に精通した人(辞書的 な定義) – ちょっとした技巧(ハック)を操る人 – 社会を変えた人 – (なんでもかんでもハッカー?) 10
  • 11.
  • 12.
  • 13.
    質問 • プログラムを書いたことがある人? • 複数の人とプログラムを作ったことがある人? •1万行を越えるプログラムを作ったことがある 人? • 10万行を越えるプログラムを作ったことがある 人? • オープンソースソフトウェアの開発に参加した ことがある人? • オープンソースソフトウェアの開発に参加した い人? 13
  • 14.
    オープンソースという考え方 • オープンソースって? • クローズドソースソフトウェア(多くの商用ソ フト)の作り方とどう違うのだろう。 • 何が優れているのだろう。 14
  • 15.
    オープンソースソフトウェア ● ソースコードを公開して、自由に実行、変更、 再配布を可能にしたもの。 ● ソースコード:人間がプログラミング言語など を用いて記述したもの。 − そのままではコンピュータは実行できないので、通 常、コンパイラと呼ばれるソフトウェアで直接実行 できる形式に変換して実行されるか、インタプリタ と呼ばれるソフトウェアで字面を解釈し実行され る。 15
  • 16.
    オープンソースソフトウェア ● 企業の作った商用ソフトウェアではなく、楽し いからと作ったソフトウェアがどんどん普及し ていった。 ● インターネットを動かしているソフトウェアの 多く(ほとんど)はオープンソースソフトウェ アだ。(Linux, BIND, Apache, sendmail, MySQL, Perl, Ruby, ...) ● 世界中のボランティアが改良、開発をしてい る。 ● そんなことが信じられるか? 16
  • 17.
    オープンソースソフトウェア ● 90年代になってインターネットが普及した。 ● 低額で自由に情報交換ができるようになった。 ● ソフトウェアをインターネットで公開したら、 世界中の人たちがよってたかって利用して、時 には改良しはじめた。 ● 公開して自由に利用、変更、改良、配布できる ようにしたソフトウェアをオープンソースソフ トウェアと呼ぶことにした。(1998年2月) 17
  • 18.
    インターネットが全てを変えた ● 大規模ソフトウェアをチームで作る場合、昔は 同じ場所に集まってみんなで開発していた。 (企業) − 一つの場所にあつまらないとコミュニケーションの コストが高い。 ● ところがインターネットがあれば、同じ場所に 集まる必要性が少なくなった。 − メールでプログラムをやりとりできる。 − 広域分散ソフトウェア開発 ● 一つのところに全員集まらなくてもいい。 18
  • 19.
    商用ソフトウェア ● 70年代、米国IBM社がソフトウェアとハード ウェアとを別々に売るようになった。 ● 商用ソフトウェアがビジネスとして成立。 ● 商用ソフトウェア(商品)なので通常は有償。 ソースコードの利用も自由ではない。 例:米国Microsoft社のWindows(ソースコード は自由に変更、再配布などできない) 19
  • 20.
    フリーソフトウェア ● 商用ソフトウェアがある一方、自由(フリー) に利用できるものがある。 ● ソフトウェアは自由に利用できるべきだと考え ている人がいる。 ● リチャード・ストールマンさん(米国)は、フ リーソフトウェアをいっぱい作っている中心的 な人。 ● 80年代から積極的に活動をしている。 20
  • 21.
    ハッカー倫理 • スティーブン・レビー「 ハッカーズ」で次のように記してい る。 ISBN978-4875931003 • コンピュータへのアクセス、加えて、何であれ、世界の機能の 仕方について教えてくれるものへのアクセスは無制限かつ全面 的でなければならない。実地体験の要求を決して拒んではなら ない。 • すべての情報は自由に利用できなければならない。 • 権威を信用するな--反中央集権を進めよう。 • ハッカーは、学歴、年齢、人種、地位のような、まやかしの基 準ではなく、そのハッキングによって判断されなければならな い。 • 芸術や美をコンピュータで作り出すことは可能である。 • コンピュータは人生をよいほうに変えうる。 • 60年代〜70年代の民族誌 21
  • 22.
    共通の価値観 • コンピュータによって社会をよくする • 管理より自由、反権威的 • ラフなコンセンサスと動くコード • 許可を求めるな、謝罪せよ 22
  • 23.
    オープンソースソフトウェア ● プロジェクトリーダとか、開発スケジュールと か、開発予算とか、企業があるわけではない。 ● 世界中のボランティアがよってたかって開発に 参加している。 ● 誰もコントロールできない。 ● 混沌の世界から開発されている。 ● バザール(市場、お祭騒ぎ)のようなソフト ウェアの開発方式。 ● エリック・レイモンドさん「伽藍(大聖堂)と バザール」、1997年 23
  • 24.
    バザールのような開発方式 ● ウィキペディア:世界中の人がボランティアで 百科事典の項目を書いている。 ● オープンソースソフトウェア:世界中の人がボ ランティアがソフトウェアを書いている。 ● コミュニティ:地球規模のコミュニティで開発 されている。 24
  • 25.
    バザールのような開発方式 ● 金銭的な報酬はない。(企業に勤めている人は 給与を貰っているけど) − お金儲けをするために開発しているわけではな い?? ● ボランティア:自主的にある活動に従事する人 のこと。(誰かに命令されてやるのではない) ● 組織ではなく個人がベース ● コンセンサスをベースに開発 ● 信頼と尊敬 25
  • 26.
    コミュニティによる開発 ● 見たことも会ったこともないない人たちが協力 している。国籍も性別も肌の色も年齢も組織も 関係ない。様々な改良を世界中から受け入れ る。 ● どんどん改良されていく。 ● Linux − 1000万行以上の大規模なソフトウェア。 − 最新版の改良には800名以上の人が参加した。 − 延べ数千人の人が改良に加わっている。 26
  • 27.
    なんでコミュニティに参加するのだ ろう ● インターネットの謎 ● 楽しいから、愛、尊敬、… ● カネ ● 一人でできないことをみんなでやれるから ● 多様な動機、人それぞれ、… ● 誰にも強制されない。自主的に参加している ● 10人いれば10の理由がある 27
  • 28.
    コミュニティに参加する企業 ● なぜ企業はコミュニティに参加するのだろう − ハードウェアを売るため − サービスを提供するため − ディストリビューションを売るため − 開発コストを削減できる − … − 営利企業は基本的には自社の利益になるから、コ ミュニティに参加する。(利益=売上−費用) 28
  • 29.
    プログラミングコースの人たち ● オープンソースの中の人たち(世界のトップク ラスの人たちを集めましたbyプログラミング コース主査) − Rubyの中の人 − Linuxの中の人 − OSの中の人 ● 講義や休み時間になんでオープンソースにハ マったのか聞いてみよう。 29
  • 30.
    わたしの場合 ● この話長いよ〜 − 10年以上前、Oracleというデータベースの会社にい た。その時、Netscape社がブラウザのソースコー ド(Mozilla)を公開した… 30
  • 31.
    技術はみんなのものだ ● 技術は会社に独占されるべきではなく、みんな のものだ。それが社会を豊かにし進歩させると いう考え方。公開させるために一定期間独占。 − 技術の公開を奨励する例:特許 − 著作権。 ● オープンソースソフトウェアは、みんなのもの にしたら進化、進歩したという例だ。 31
  • 32.
    バザールモデル ● 多くの人の知恵の結集。 ● 善意を信用している。 ● インターネットを利用することによって地球規 模の協力が可能になった。 ● 地球規模のバザール(市場)だ。 ● オープンソースソフトウェアを使ったり、改良 したり、作ったりしたら参加できる。 ● 世界中の人と協力して何かを成し遂げる。 ● 一人ではなしとげないことを世界中の人と作り 上げる 32
  • 33.
    バザールモデル ● コミュニティの人たちとソフトウェアを作る。 楽しいし、わくわくする。 ● ソフトウェアによって世界をよい方へ変えるこ とができる。 ● 誰でも、参加できる。もちろん君達も。 ● 参加資格は、情熱。 ● ちょっとした勇気と、行動力。 33
  • 34.
    まとめ ● オープンソースの開発について ● バザールモデルについて紹介した 34
  • 35.
    最後に ● ソフトウェアを作るのは楽しい ● 世界中の人たちと協力して作るのはもっと楽し い ● 世界規模のソフトウェア開発コミュニティがあ る ● 君たちも参加できる ● 21世紀のソフトウェアを作るのは君たちだ ● どう? 35
  • 36.
    参考文献 ● オープンソースソフトウェアの育て方、Karl Fogel著、2009年7月、高木正弘、高岡芳成 訳、ISBN978-4-87311-412-5 ● アート・オブ・コミュニティ――「貢献したい 気持ち」を繋げて成果を導くには、Jono Bacon著、渋川よしき訳、2011年05月 ISBN978-4-87311-495-8 ● 伽藍とバザール、Eric S. Raymond著、山形浩 生訳 http://cruel.org/freeware/cathedral.html 36
  • 37.
    Q&A ● − オープンソースにふれたきっかけ − どのオープンソースプロジェクトに参加したらいいのでしょう − どの勉強会に参加すればいいのでしょう − はじめてのコンピュータは 37