オープンで行こう!...

44
オープンで行こう ! オープンソース・ソフトウェアと オープンソース・コミュニティの基礎知識 野方純 <[email protected]> 2014.08.01 平成 26 年度 教員免許状更新講習 @ 姫路獨協大学 2014.08.02 オープンソースカンファレンス 2014 Kansai@Kyoto

description

オープンソースカンファレンス2014 Kansai@Kyotoのスライドです。

Transcript of オープンで行こう!...

Page 1: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

オープンで行こう !オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

野方純 <[email protected]>

2014.08.01 平成 26 年度 教員免許状更新講習 @ 姫路獨協大学2014.08.02 オープンソースカンファレンス 2014 Kansai@Kyoto

Page 2: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

自己紹介

仕事仕事姫路獨協大学 非常勤講師 姫路獨協大学 非常勤講師 / / サーバーエンジニア サーバーエンジニア / / たまに雑誌記事たまに雑誌記事

オープンソースコミュニティオープンソースコミュニティDebian JP Project/Debian JP Project/ 関西関西 DebianDebian 勉強会 勉強会 / LILO / / LILO / 姫路姫路 ITIT 系勉強会 系勉強会 / OpenStreetMap/ OpenStreetMapマッパー マッパー / / 関西関西 LibreOfficeLibreOffice 勉強会で発表とか勉強会で発表とか

趣味やボランティア趣味やボランティアFM GENKIFM GENKI でスタッフやパーソナリティ でスタッフやパーソナリティ / / たまにたまに DJ / DJ / 車いすマップの作成 車いすマップの作成 / / 姫路姫路観光コンベンションビューロに出入りしてたり観光コンベンションビューロに出入りしてたり

のがたじゅんのがたじゅん

Page 3: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

今日、お話しする内容

お話しすることオープンソース・ソフトウェアとはなんだろうオープンソースを支えるオープンなコミュニティオープンソースと教育

お話しないことソフトの使い方情報モラル・情報セキュリティ

Page 4: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

オープンソースとかオープンデータとか

オープンガバメントとかのオープンってなんですのん?

→ これらに共通するオープンは「オープンソース」の考えが基本になってます。

Page 5: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

オープンソースとはなんだろう

Page 6: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

オープンソースには 2 つの面があります

オープンソース

「オープンソースの定義」に合致したソフトウェア

● ライセンス● 人種・立場・分野に関係な

く利用できる● ソースコードも入手でき研

究・改良できる● 改変のあるなしにかかわら

ず再配布できる

「バザール方式」といった開発手法とコミュニティ

● バザール方式● 誰でも参加● 問題を楽しむ仕組みづくり● 早めにしょっちゅうリリー

ス・意見をフィードバック● ダメになっても捨てて別のこ

とができる準備

ソフトウェア コミュニティ

通常「オープンソース」はソフトウェアのみを指します

Page 7: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

オープンソース・ソフトウェアってなんだろう

Page 8: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

オープンソース・ソフトウェアはどこで使われている ?

→ 様々な場所で使われています

Page 9: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

たとえば、このプレゼンテーション

Debian GNU/Linux 上の LibreOffice を使っています。フォント (M+ FONTS と Lato) もオープンソースです。資料は Creative Commons License BY-SA で公開予定です。

Page 10: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

ほかにも

● スマートフォンやタブレット● Android, FirefoxOS, Tizen, Ubuntu Touch など

● インターネット上でサービスを提供するサーバー● Apache, nginx, Postfix, Bind など

● その上で動く CMS といったシステム● WordPress, Drupal, Joomla など

● システムを書くためのプログラミング言語● Ruby, Python, PHP など

● 家電製品からゲーム機、スーパーコンピュータ● Nintendo WiiU やスーパーコンピューター京など

● etc...

Page 11: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

ありとあらゆるところに使われています

Page 12: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

オープンソース・ソフトウェアはどんなソフトウェア ?

→ 自由に利用できるソフトウェアです。

Page 13: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

「オープンソース」の由来と定義

1998 年「オープンソース・イニシアチブ」(OSI) が、自由に利用できるソフトウェアの概念として「オープンソース」という言葉を作った

オープンソースは造語で OSI の商標です作ったのは、GNU のフリー ( 自由 ) ソフトウェアと区別をつけるビジネス戦略上の意味もあった

自由に利用できるソフトウェアを判定するため Debian フリーソフトウェアガイドラインを元に「オープンソースの定義」が作られた

実際には、OSI 認定ライセンスであるかで判定できるOSI に認定されていないライセンスでも、定義に合致するライセンスもある

Debian 社会契約 : https://www.debian.org/social_contract#guidelines

Page 14: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

自由 is 何 ?

Page 15: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

オープンソースの「自由」とは

「オープンソースの定義」のおおまかなポイントは、「利用」「改変」「再配布」について制約・制限が無いこと

ほかの「オープン」でも基本になります。オープンの定義 | Open Definition: http://opendefinition.org/od/japanese/

フリーカルチャー作品の定義 - Definition of Free Cultural Works: http://freedomdefined.org/Definition/Ja

制約がない=自由に利用できる=発展させることができる「オープンソースの定義」はOSI が考える自由の基準

「自由」についての考えは GNU や Debian, OSI その他、それぞれで考えは異なるので注意

Page 16: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

オープンソースの定義(要約)

1.再頒布が自由にできる

2.ソースコードが入手できる

3.改良したソースコードが配布できる。そして同じライセンスで配布できる

4.改良部分を分けて配布するとき、完全なソースコード配布も求めることができる

5.個人やグループに対する差別の禁止

6.利用分野に対する差別の禁止

7.再頒布に追加のライセンスを求めてはいけない

8.特定の製品に依存しない

9.他のソフトウェアを制限しない

10.ライセンスは技術的に中立である

The Open Source Initiative: オープンソースの定義 ( 日本語 ): http://www.opensource.jp/osd/osd-japanese.html

Page 17: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

なぜ「自由」に使えるのだろうか

著作権は、無断で利用させない権利だが、許諾を与えるれば使用・利用させることができる。

これを応用して、自由に利用できることを保証する一般公衆許諾 ( ライセンス ) をつけ、利用者は同意すれば作者に断りなく利用できるようにした。

この方法は、ソフトウェア以外にも活用されていますメディア向けライセンス : Creative Commons License

データベース向けライセンス : OpenDatabase License

Creative Commons: http://creativecommons.org/Open Data Commons Open Database License (ODbL) | Open Data Commons: http://opendatacommons.org/licenses/odbl/

Page 18: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

フリーは「自由」と「無料」で大違い

→ 「フリー」という言葉があいまいに使われていますが違いを知っておきましょう

Page 19: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

「使う」で分けたソフトウェアの分類

● 「オープンソースの定義」に合致したソフトウェア● フリーソフトウェア

(自由ソフトウェア)

オープンソース プロプライエタリ

● 商用ソフトウェア● フリーウェア

(無償ソフトウェア)

● 著作権では「使用」にあたることしかできない● 「使用」とは、著作物を見る,聞

く等のような単なる著作物等の享受を指す。

● 著作権では「利用」にあたることができる● 「利用」とは、複製や公衆送信等

著作権等の支分権に基づく行為を指す。

Page 20: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

自由ソフトウェアと無償ソフト

「自由」と「無償」では価値基準が大きく異なります。

フリー ( 自由 ) ソフトウェアGNU が提唱した自由に利用できるソフトウェア。価値基準は「自由」。「自由」であることが保証されているなら販売してもかまいません。

自由ソフトウェアとは ? - GNU プロジェクト - フリーソフトウェアファウンデーション : https://www.gnu.org/philosophy/free-sw.html

フリーウェア ( 無償ソフトウェア )

無償で提供されるソフトウェア。価値基準は「お金」です。中身を見ることもできず、保証もなく無償で使用できるだけ。

Page 21: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

「著作権フリー」は意味の通らない言葉

「著作権フリー」とは日本だけで使われる、意味の通らない言葉です

著作権を「財産権」と仮定。フリーを「無償」と解釈それは「ロイヤリティフリー」です。

ロイヤリティフリー : ロイヤリティ ( 著作権使用料 ) フリー ( 無料 ) 。著作権使用料が無料。それ以外には制限がある。

著作権を「独占的な権利」と仮定。 フリーを「自由」と解釈それは「パブリック・ドメイン」です。

パブリック・ドメイン : 著作権が切れた状態、または意図的に行使しない著作物。金額関係無し。

Page 22: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

オープンソース・ソフトウェアまとめ

● オープンソース・ソフトウェアは、ソースも含めて自由な利用ができるソフトウェア

自由な利用ができるソフトの判定は「オープンソースの定義」に照らし合わせます

実際には OSI 認定ライセンスで判断。認定外でも定義に合致するソフトウェアもある

定義のポイントは「利用」「改変」「再配布」に制限・制約がないこと● オープンソースは、自由な利用ができるソフトの概念を表すために

作られた造語● いわゆる「フリーウェア」「フリーソフト」ではありません

フリーウェアは無料ソフトウェア。「使用」以外は激しく制限されていますオープンソース / 自由ソフトウェアのように「利用」できません

Page 23: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

オープンソース・コミュニティとはなんだろう

Page 24: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

オープンソース・コミュニティとは

コミュニティとは地域や趣味、市民活動など、特定の目的のために思いを持って集まった集団とその活動

オープンソース・コミュニティとはオープンソース・ソフトウェアを開発するために集まった開発者とユーザーの集団とその活動インターネット上を通じて活動をする「バザール方式」でプロジェクトが運営されることが多い

Page 25: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

バザール方式とは

1997 年 Eric S Raymond が「伽藍とバザール」という論文で紹介したオープンソース・ソフトウェア開発の手法

The Cathedral and the Bazaar:http://www.catb.org/%7Eesr/writings/cathedral-bazaar/cathedral-bazaar/

日本語訳 :The Cathedral and the Bazaar: Japanese: http://cruel.org/freeware/cathedral.html日本語訳は「How Many Eyeballs Tame Complexity 」が無くて古い。

「バザール方式」に対しての言葉は「カテドラル方式」限定された人の中で計画的に進めていく方式

いわゆる会社などでのプロジェクトの進め方

良い悪いではなく、あくまで対比

Page 26: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

バザール方式の特徴

問題はオープンにする出発点は個人の悩み問題を解決するには、自分にとって面白い問題を見つける興味がなくなれば誰かに譲る問題解決のためには、あらかじめ捨てることを予定しておく

誰でも参加できるようにする人が集まれば問題を見つけやすくなり解決も早いユーザーを共同開発者として扱うことが改良と問題解決の楽な方法任せられることは人に任せるユーザーのアイデアが次の解決策かもしれない

早めにしょっちゅうリリース。顧客の話を聞くとにかく出す。間違いが見つかったら直してすぐ出す

Page 27: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

コミュニティに参加してみよう

Page 28: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

使っているソフトがあるならそれが一歩

愛用しているソフトがあるなら、そのコミュニティに参加すでに愛用しているオープンソース・ソフトウェアがあるなら、そのソフトウェアのコミュニティに参加してみましょう

愛用しているソフトウェアがないならまず、何かを使ってみましょう。疑問などが出れば、それがコミュニティ参加のきっかけになるでしょう

Page 29: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

コミュニティに参加するには

コミュニティが用意した方法で参加しようオープンソース・ソフトウェアのコミュニティは、インターネット上で情報や意見交換するためのさまざまな場所を用意しているので、そこに参加します

メーリングリストやチャットが主ですが、最近では掲示板やSNSグループ、github なども見かけるようになりました。

ダメな方法コミュニティ公式ではない方法を使う

2ch などの掲示板。Yahoo! 知恵袋などの質問サイト。個人的にSNS や自分のブログに書く。コミュニティの人はそんなところまでチェックできません…

Page 30: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

コミュニティでどうすればいい ?

質問などから始めましょう疑問に思ったことなどを質問してみましょう。質問から雰囲気に慣れたら、今度は質問に答える側に回ってみるなど、徐々にできる幅を増やしてみるとよいでしょう。

行動規範も読んでみましょうコミュニティによっては、振る舞いの基本となる「行動規範」を用意しているところもあります。

Code of Conduct(行動規範) | Ubuntu Japanese Team: https://www.ubuntulinux.jp/community/conduct

Page 32: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

地域コミュニティとのハイブリッドなコミュニティ

OpenStretMap マッピングパーティOSM マッピングパーティは、みんなで集まり、まち歩きをして地域の地図を作るイベント。地図 ( オープンデータ ) 作成と、まち歩き、地域学習、防災などの面から一般のかたと IT 系をつなぐ活動として注目されています。

OpenStreetMap (オープンストリートマップ)OpenStreetMap( オープンストリートマップ ) は、オープンデータとして作成・自由に利用できる地図を作るプロジェクト

OpenStreetMap: http://www.openstreetmap.org/

Page 33: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

1. まち歩きで情報収集

2. 集めた情報を登録

3. 地図ができるデジカメで写真を取ったりメモを取っデジカメで写真を取ったりメモを取ったりタブレットなどで直接入力もたりタブレットなどで直接入力も

登録はブラウザや専用ソフトを使います登録はブラウザや専用ソフトを使います

マッピングパーティでは、まちを歩き、情報を集め、地図を作成します。

姫路でのマッピングパーティの様子

Page 34: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

オープンソース・コミュニティまとめ

オープンソース・コミュニティは「バザール方式」と呼ばれる方法で運営しているコミュニティが多い

「バザール方式」では開発者主体のコミュニティにユーザーが加わっている実際のところは規模などにより形態は様々

コミュニティに参加することはソフトウェアを良くしますまずは簡単なところからはじめよう臆病になる必要はないけれど礼儀は忘れずに

Page 35: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

オープンソースと教育

→最近のコンピュータ教育とオープンソースについて

Page 36: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

アメリカの中学生全員にノート PC を配布した結果、何が起きたのか?

ホーボーケン校の無償ノート PC 支給プログラムは当初からトラブルつづきだったと言います。コンピュータネットワークエンジニアのジェリー・クロカモ氏が2011年に同校のプログラムに参加した時点で、毎日のようにやってくる修理依頼に圧倒されたとのこと。(中略)「完全なまでに破壊されたノートPC 」が持ち込まれてくるのを止めることはできなかったそうです。

また、クロカモ氏は盗難防止用の追跡ソフトウェアをすべてのノート PC に導入していたにもかかわらず、紛失して見つかることのないノートPC が続出したとのこと。

ホーボーケン校では配布したノート PC にポルノサイトやオンラインゲームサイトにアクセスできないようにする「Net Nanny 」と呼ばれるソフトウェアを導入していましたが、このような対策は「12歳のハッカー」たちにはまったくもって無意味で、ネット上にNet Nanny をハックする方法を詳細に示した掲示板が立ち上がり、次々とハッキングされるのを防ぐ術はなかったとのこと。

中学生全員にノート PC を配布した結果、何が起きたのか? - GIGAZINE: http://gigazine.net/news/20140731-give-note-pc-all-student/

Page 37: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

アップトン:英国では、ICT( Information and Communications Technology)という教育プログラムがあります。これは主に子どもたちに手段としてのコンピューターの使い方を教えるもので、プログラミングを教えるものではまったくありません。

この教育プログラムはいまのところ、概して失敗であったと受け止められています。またこの授業は、子どもたちからも「最もつまらない科目」と評価されることがよくあります。つまり、コンピューターに関する授業を導入することには一応成功しましたが、その授業が最もつまらない科目になってしまったということです。

35 ドル PC開発者へ 9 つの質問:子どもがコンピューターに夢中になる“力”とは « WIRED.jp: http://wired.jp/2012/08/16/eben-upton/

35 ドル PC 開発者へ 9 つの質問:子どもがコンピューターに夢中になる“力”とは

Page 38: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

英国では、義務教育としてプログラミングが始まりました

昔ながらの ICT 教科が、9月からの新カリキュラムで置換される。つまり、Word 、Excel などをベースとするコンピュータリテラシーの教育が、プログラミングの仕方、プログラムの作り方、コンピュータの動作原理の理解、といったより今日的な社会経済ニーズに対応する授業内容へと一変するのだ。政府の新方針では、5歳から 16歳までの全児童生徒にプログラミングの学習が義務化される。

イギリスは義務教育( 5-16歳)公式カリキュラムにプログラミング教育を導入– 9月施行にさきがけ Year Of Code キャンペーンを助成 - TechCrunch:

http://jp.techcrunch.com/2014/02/05/20140204uk-government-backs-year-of-code-campaign-boosts-funds-to-teach-code-in-schools/

Page 39: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

米大統領「全ての人よ、プログラミングを!」

こういったスキルを学ぶのは単に将来に役立つからというだけではありません。 我が国の将来に必要なのです。 我が国が最先端をいく国であり続けたいのであれば、 私達の生活を変えてくれるような、ツールや技術を習得した、 あなたたちのような若い人が必要なのです。

だから、私はあなたたちにやってほしい!新しいゲームを買うだけではなく、つくってみよう!最新のアプリをダウンロードだけではなく、創造してみよう!スマホで遊ぶだけではなく、プログラミングしてみよう! 米大統領「全ての人よ、プログラミングを!」 | スタッフブログ | 中学生、高校生のためのプログラミング・ IT キャンプ/スクール :

http://blog.life-is-tech.com/blog/programming/messagefrompresidentobama-5843

Computer Science Education Week: http://csedweek.org/

Page 40: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

コンピュータ教育は、ソフトを使わせることからプログラミングに変わりつつあります

ソフトを使わせる事は教育ではない教えたこともソフトがバージョンアップすれば操作が全部変わって無駄になる

Windows8騒動に見られるように企業は企業の論理で動きます

将来の優良顧客を育てているだけお金を払って企業の宣伝は楽しいですか ?

プログラミングを学ぶメリット構造を知ることにより変化に対応できる論理立てて考えることができる他の学習と並行して学ぶことができる

Page 41: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

教育にオープンソースを取り入れるメリット

負担なくソフトや環境を揃えることができるコスト面の負担がなくなり常に新しいソフトが利用できる新しいソフトが利用できることにより、変化の差を少なくできる

学校と家庭を同じソフトの環境にできるコピー問題を気にしなくて良い

ライセンス管理から開放され管理の負担が減るソースコードを見てプログラムの仕組みが理解できる

サンプルではなく、実際に使われている本物のソースコード見ることができ、しかも自分の思うように変更できる

コミュニティに参加してチームワークが学べるコミュニティに参加すれば、プロと話しができる上にチームワークが学べる

コンピュータ科学 (CS) の教育にも現代化が必要だ - TechCrunch: http://jp.techcrunch.com/2014/07/24/20140723modernizing-computer-science-education/

Page 42: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

質疑応答で出た質問と答え

Page 43: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

Q: オープンソース・ソフトウェアの見分け方は ?

A: ライセンスで見分けます。代表的なライセンスにはGPLや、BSD, MIT, Apache ライセンスなどがあります。

Q: Windows では分かりませんが…確かにわかりにくいですね。これでどうでしょうか

ダウンロードするとき、Web サイトに書いてありませんか ?

インストールウィザードの途中でライセンス許諾がありますが読んでますか ? ( もしかして読まないで「はい」と押してるのでは…)

展開したファイルの添付文書に書いてありませんか ?

Page 44: オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識

Q: プログラミングを始めたばかりですがコミュニティに参加できますか ?

A: はい。参加できます。プログラミングの場合、一行パッチなど数行の変更でできる簡単なところから始めるとよいでしょう。コミュニティによっては参加しやすいように Easy Hacks と呼ばれる簡単に直せる ( かもしれない ) 問題を用意しているところもあるので、それに挑戦するのもいいかもしれません。

LibreOffice Easy Hacks - The Document Foundation Wiki: https://wiki.documentfoundation.org/Development/Easy_Hacks

プログラミング以外でも、バグの報告、ML や掲示板でのサポート、ドキュメントの整備・翻訳、UI などのデザイン、プレスリリースやイベント参加などの広報など、できる事は多岐にわたっているので自分の特異な分野を探して参加してみましょう。