Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

インターネットを支えるオープンソースの基礎について理解しよう

305 views

Published on

https://power-covid19.connpass.com/event/186727/

Published in: Engineering
  • Be the first to comment

インターネットを支えるオープンソースの基礎について理解しよう

  1. 1. インターネットを支えるオープンソースの基礎に ついて 理解しよう 宮原 徹(@tmiyahar) Open Source People Network
  2. 2. ospn.jp 自己紹介 宮原 徹 • 1972年生まれ。中央大学法学部法律学科卒 • 1994年、日本オラクルに入社。製品マーケティング に従事 • 2001年に独立起業し、エンジニア教育を行う(株) びぎねっとを設立 • 2004年9月に第1回の「オープンソースカンファレン ス」(OSC)を開催後、現在まで16年186回開催 – OSPN(Open Source People Network)はOSCを 開催するOSSメタ・コミュニティ • https://ja.wikipedia.org/wiki/宮原徹 2
  3. 3. ospn.jp なんとなくWikipediaに出ています 3
  4. 4. ospn.jp 今日のアジェンダ • オープンソースソフトウェアについて • コミュニティについて • OSSの最近の事例:OSSとAIについて 事前におことわり • 時間が限られているので要点を絞っています – 端折っていることが多々あります – 重要な関連事項は課題として挙げています • 厳密な正確さよりも理解しやすさを優先しています – 正確性の観点から原典に当たることは重要です 4
  5. 5. ospn.jp オープンソースソフトウェア 5
  6. 6. ospn.jp 最近話題になったオープンソースソフトウェア 「東京都 新型コロナウイルス感染症対策サイト」 – https://stopcovid19.metro.tokyo.lg.jp/ • アプリのソースコードが公開されている – https://github.com/tokyo-metropolitan- gov/covid19 – 修正要求などもGitHubで管理 • 様々な自治体で同様のサイトが開設 – MITライセンスでOSSとして公開 – GitHubからソースコードを取得して独自サイト開 設可能 6
  7. 7. ospn.jp 東京都 新型コロナウイルス感染症対策サイト 7
  8. 8. ospn.jp GitHubに公開されているソースコード 8
  9. 9. ospn.jp オープンソースソフトウェア(OSS)とは • 詳細な定義はOSI(Open Source Initiative)が定義 – 「The Open Source Definition」 – https://opensource.org/osd • ソースコードの公開 • 利用の自由 • 改変の自由 • 再配布の自由 • 無保証 • 著作権表示の保持 9 どのOSSにも共通する事項
  10. 10. ospn.jp OSSのライセンスの例 • GNU GPL(General Public License) – OSSムーブメントに繋がった「フリーソフトウェア」 のライセンス – AndroidのベースでもあるLinuxで採用されている • 修正BSD – 改変内容を公開しないでも良い – iOS/iPad OSのベースはBSD • MIT – 他のライセンスより制限が緩いので人気がある • 「コピーレフト」という思想 – https://www.gnu.org/licenses/copyleft.ja.html 10
  11. 11. ospn.jp コピーレフトとは(抜粋) • コピーレフト(Copyleft)とは、プログラム(もしくはそ の他の著作物)を自由(自由の意味において。「無償」 ではなく)とし、加えてそのプログラムの改変ないし 拡張されたバージョンもすべて自由であることを要 求するための、一般的な手法の一つです。 • プログラムにコピーレフトを適用するには、わたし たちは、まずそれに著作権を主張し、その上で配布 条項を加えます。それは、配布条項が変更されない 限り、プログラムのコード、もしくはそれから派生 したプログラムに対して、使用、改変、および再配 布をする権利をすべての人に与えるという法律手段 です。これによって、コードと自由は法律上、分離 できないものになります。 11 出典:https://www.gnu.org/licenses/copyleft.ja.html
  12. 12. ospn.jp 「東京都 新型コロナウイルス感染症対策サイト」を例に • MITライセンスで公開 – 自由に使える • 各自治体で独自のサイトを公開 – https://github.com/tokyo-metropolitan- gov/covid19/blob/development/FORKED_SITES .md • 課題はIssueに挙げられる • コード修正提案はPull Requestに挙げられる 12
  13. 13. ospn.jp GitHubに公開されているソースコード 13
  14. 14. ospn.jp OSSについて気になった人のために • 身近なOSS – スマートフォンやタブレット – デジタル家電 • ソースコードとは? – ソースコードとバイナリ – コンパイルとインタプリタ – GitHubのようなソースコード共有サービスの役割 • OSSとビジネス – OSSを販売してもいいの? – OSSをWebサービスで利用すると? 14
  15. 15. ospn.jp コミュニティ 15
  16. 16. ospn.jp コミュニティとは • ある条件や目的で形成された人の集まり 例)地域コミュニティ • ある地域に居住する住民が形成するコミュニティ • 自治会、子供会など、形態や目的は多岐に渡る • OSSコミュニティは特定のOSSの開発や情報共有を目 的に集まった人の集まり 16
  17. 17. ospn.jp OSSコミュニティの果たす役割 • ソフトウェアの開発 – ボランティアと職業プログラマー • フィードバック – バグレポートや修正提案 – 機能拡張リクエスト • 情報発信・情報共有 – WebサイトやWikiなどによる情報発信 – メーリングリスト、Slackなどによる情報共有 – 様々なイベント(勉強会)の開催 17
  18. 18. ospn.jp なぜOSSはコミュニティが形成されるのか • 協調(コラボレーション)モデル – 一般的なビジネスの貨幣価値交換モデルではない – 参加者がそれぞれ可能な範囲で貢献する – 支払われるのは敬意(リスペクト) • 情報が集積されることでコミュニティの価値が高まる – 知見・経験の蓄積が相乗効果を起こす – 情報が多い、人気のあるOSSが生き残る • 参加者が増えるとコミュニティに入らない(入れない) 人も増えてくる – コミュニケーションや意思決定の適正サイズ – OSSの成果へのフリーライド(ただ乗り)問題 18
  19. 19. ospn.jp コミュニティについて気になった人のために • コミュニティはボランティアか – コミュニティ活動は無償か – 「OSSとビジネス」の課題と絡めて • コミュニティの意思決定 – 企業が自社製品をOSS化する意味 – OSSは誰のもの? • オープンソースカンファレンスへの参加 – 現在、Zoom&YouTube Liveで開催中 – 次回はOSCオンライン京都(8/28-29) – 詳細はWebで(ospn.jp) 19
  20. 20. ospn.jp OSSとAI OSSの最近の事例 20
  21. 21. ospn.jp AI・機械学習のための代表的なソフトウェア • TensorFlow – Googleが開発 – Apache License 2.0 • Keras – Googleのエンジニアが開発 – MIT License • PyTorch – Facebookが開発 – 修正BSDライセンス • すべてOSSとして開発されている 21
  22. 22. ospn.jp なぜ最新の技術がOSS化されるのか • ソフトウェア販売モデルの崩壊 – 従来はマイクロソフトなどが得意としたモデル – 技術の進歩が早すぎて製品化できない • コミュニティを形成したい – 協調モデルで開発を加速し、利用者を増やす – オープンとクローズドのメリット/デメリット • 最終的に得たいものは何か – ソフトウェア(そのもの)の価値とは? – サービス中心型のビジネスモデルへの変革 22
  23. 23. ospn.jp その他のオープン○○ • オープンデータ – 公共データを中心に幅広く利活用 – 市民目線でのシビックテックによるサービス開発 • オープンハードウェア – 3Dプリンタの活用 – Raspberry PiなどIoTデバイスのコモディティ化 • クリエイティブコモンズ – 文章や音楽などのオープン化 23
  24. 24. ospn.jp まとめ • コンピューターとネットワークが普及する中、利活 用の促進に「オープン○○」が重要 • オープンを促進する担い手がコミュニティ • AIや機械学習分野など先進分野ではオープンが当然 となっている 24

×