SlideShare a Scribd company logo
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
イノベーション人材育成のための
オープン・ソース・ソフトウェア概説
山上俊彦
ACCESS IoT 事業本部, ACCESS
Toshihiko.Yamakami@access-company.com
2017/03
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 1 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
前編
オープンイノベーション
オープンソースとは
ツール
オープンソースの掟
オープンソースのご法度
オープンソースのビジネス活用
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 2 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
オープンイノベーション
OSS (Open Source Software): ソフトウェアの著作者の権利を守りながらソースコードを
公開することを可能にするライセンス(ソフトウェアの使用許諾条件)を指し示す概念
(Wikipedia)
二元論の終わり
オープンソース
ソフトウェア
商用
ソフトウェア
現代工学の
主要課題
オープン
イノベーション
越境
ソフト工学
説明するソフト開発
大規模ソフト開発、分散開発
顧客や提携相手と
イノベーション
現代研究開発戦略
標準化 or 財団
工学
コンセンサス工学
個人戦 → 団体戦
経済生態系
工学
フリー経済
フレームワーク
生態依存性工学
プラットフォーム戦略
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 3 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
OSS に見るプログラミングスキル転換
スキル パワー
10 年前の
プログラミング
アーキテクト
能力
スキルパワー
今の
プログラミング
ソフトは資産ではなくて負債 (1 行でも書かないほうがいい)
80 % 以上はフレームワークが仕事をしている
何をどう流用し、組み合わせるかを知っていることが決定的
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 4 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Hollywood Principle
フレームワークデザインのガイドライン
“don’t call us, we’ll call you”
コントロールの放棄: デバッグ、維持、試験の容易さ
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 5 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
フレームワークへの変遷
機械
?
信号
機械 信号プログラム
メモリ
?
信号
【フォンノイマン型コンピューティングの誕生】
機械 プログラム 変数
ROM RAM
?
信号
機械 プログラム 変数
?
信号
ファイルシステム
ソース → バイナリ
【ソースコードプログラミングの誕生】
機械 プログラム 変数
?
信号
ファイルシステム
フレームワーク
WS 要素 FW 要素
コード コード
→ バイナリ
(OSS or Proprietary)
サーバ
クラウド, Web Services
(OSS or Proprietary)
ネットワーク
【フレームワークプログラミングの誕生 (OSS による普及)】
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 6 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
OSS とは?
オープンソースはソフトウェア以外にもある
知財の一部を無償公開し、周辺領域で事業運営する
ソフトの場合は OSS (オープンソースソフトウェア)
OSS とは何かは非常に難しい (私だけ?)
複雑な概念だという理解が不足 (OSS= 無料という程度の理解)
IT インフラ進化により加速
OSS はプロジェクトによって千差万別
コード
SourceForge
e.g Meego(1 億行)
ライセンス
GPL, LGPL (GPL 汚染)
BSD
Dual License
XXX Public License 乱立
開発手法
、バザール方式
設計 + コード + デバッグ
+ 運用の一体化
哲学・
社会運動
フリーソフトウェア
普及方法
プロフェッショナル OSS
コミュニティ
属人的, 感情的摩擦
Maintainer, 標準ツール,
プロジェクト数 30 万
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 7 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
[参考] OSS の歴史
GNU
(1983)
FSF
(1985)
BSD
License
(1990)
GPLv2
LGPL
(1991)
Linux
(1991)
OSS, OSI
(1998)
Black Duck
(2002)
Apache
S. F.
(1999)
SourceForge
(1999)
GNOME
Foundation
(2000)
Linux
F.
(2007)
LiMo F.(2007)
OHA (2007)
Symbian F. (2008)
Mozilla
Foundation
(2003)
Eclipse.org
(2001)
Eclipse
Foundation
(2004)
Ubuntu
(2004)Red Hat
Software
(1995)
MySQL AB
(1995)
MySQL 買収
(2008)
注 1: Red Hat は copyleft 注 2: Linux は今でもバザール方式
注 3: GNU/Linux はアプリも含めたパッケージ注 4:BSD 系ライセンスは派生ライセンスが自由
注 5: Bugzilla(1999)山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 8 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
オープンであること
オープンであることは痛みを伴う
プロジェクト毎にやりかたはいろいろ
汗を流した人に決める権利がある
大規模であれば、実は OSS でなくても課題は同じ
コーディング
コミュニ
ケーション
コーディング
コミュニ
ケーション
多少の誇張はあるが…
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 9 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
オープンソース
共同開発の新しい形態
今後のソフトウェア開発の方法として有望
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 10 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
オープンソース (2)
オープンソースとは
単にソースコードを公開する、ということではない
会社に入る、と同じような、ある作法に従うことを前提とする開発
の仕方の選択
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 11 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
オープンソース (3)
オープンソース化したい
自分を証明する
仲間の一員として認めてもらう
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 12 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
仲間にはいる方法
自分を知ってもらう (1)
IRC(チャット) にはいって話しかける
メーリングリストに入ってメール交換する
自分がどのようなソフトを作ろうとしているかをチャットやメール
で話す
変なおたくジョークをチャットで披露
自分を知ってもらう (2)
Bugzilla(バグ管理ソフト) の中からバグを取り上げて直す
Project の作業項目の中から何かを貢献する
相手を知る
Maintainer, Contributors を知る
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 13 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
仲間にはいる方法 (2)
中世のギルドのようなもの
おひかえなすって、…
自分の知識を紹介
その中で時間を使う: 存在証明
作業を分担し、信頼してもらう
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 14 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ご法度
いきなり大貢献
こっそり半年作業して、いきなり 15 万行の改変コードを貢献する
誰もレビューできない:レビューシステムの無視
他人との共同作業の拒否と見られる
部分的に何かつくっていた人々の時間が無駄に
いろいろなアイディアがあって進行している他作業や経緯の無視
大きな tarball を出すくらいならプロジェクトを起こす
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 15 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
貢献
Bugzilla にそって行う
パッチ (修正) を投稿
パッチのレビュー
パッチの承認/拒否
パッチの受け入れ
パッチのコミット
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 16 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
貢献 (2)
大きな貢献1回より小さな貢献たくさん
不安定でも早く何回もリリース
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 17 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
プロジェクトの掟
プロジェクトの掟はプロジェクト毎に違う
プロジェクトは基本的には Maintainer の Baby
Getting Involved
慣例もプロジェクトによって違う
例: 偶数バージョンは安定版、奇数バージョンは試用版: プロジェ
クトによって違う
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 18 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
プロジェクト
プロジェクトは次のものからなっている
人: Maintainer, Reviewers, Contributors
コード
ツール: Web, Wiki, IRC, Mailing List, blog, RCS, doxygen, Bugzilla,
SDK, …
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 19 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ツール
コミュニケーションツール
開発ツール
バグ管理ツール
コード維持ツール
ドキュメンテーションツール
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 20 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
人
Maintainer
Main Contributors
Occasional Contributors
Breeding Edge Users
Users
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 21 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
エコシステムの一員になる
プロジェクトのツールを使う
プロジェクトの情報交換の一部となる
プロジェクトの貢献・レビューシステムの一員となる
ロードマップを共有する
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 22 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
エコシステムの一員になる (2)
まず Maintainer, Contributors と相談
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 23 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
尊敬と責任
オープンソースエコシステムの一部となる
信頼を勝ち得る
尊敬を勝ち得る
責任を勝ち得る
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 24 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
開発の方法
Internal Temporary Branch
Temporary Branch: No Guarantee
Pre-release Branch
Stable Branch
Upstream への貢献
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 25 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
よい OSS プロジェクト
強い開発コミュニティ
確固たるユーザベース
メジャーディストリビューションでの採用
安定したリリースサイクル
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 26 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
なぜオープンソース
メンテナンスコストの削減
標準のツール、ドキュメンテーションの利用:継続可能なシステ
ムの採用
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 27 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
オープンソース化するには
オープンソースコミュニティのメンバを雇用
オープンソースコミュニティメンバをコンサルタント契約
e.g. オープンソース廃人の活用
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 28 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
オープンソースのバリア
時間的制約
英語圏のチャットに参加するには時差が壁
言語的制約
IRC やおたくジョークはしきいが高い
開発文化的制約
制約された開発計画の拒否
定期的ミーティングや出社の拒否
自宅勤務
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 29 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
オープンソース会社
オープンソースのビジネスモデル
デュアルライセンス
開発コンサルタント
勤務形態
自宅勤務
グローバル: オーストラリア、ブラジル
採用形態
バグ修正の経験をみて採用
はずれがない
コミュニティの束縛
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 30 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
哲学
オープンソース・ソフトウェアの哲学の尊重
プログラミングはアート
プログラマはアーティスト
新しい思考方法, 勤労方法
プログラマの情熱の共有
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 31 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
コミュニケーションスキル
なにもかも話さなければならないわけではない
開発プランの一部を秘匿しても深い技術的議論はできる
隠したがっているという態度は NG
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 32 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
オープンソースにする
オープンにしながら自分の優位性を保つには
基盤プラットフォームは人と共通化する
よりクリエイティブになる
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 33 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
オープンソースにする (2)
プロトコル、などは成功例が多い
開発環境、もオープンソース向き
ユーザエクスペリエンス、などは難しい
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 34 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
オープンソースにする (3)
プロジェクトを理解するのに時間を惜しまない
信頼を勝ち得るのには時間がかかる
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 35 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
前編のまとめ
オープンイノベーション
オープンソースとは
ツール
オープンソースの掟
オープンソースのご法度
オープンソースのビジネス活用
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 36 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
後編のはじめに
書く技術より読む技術
ソースコードを読むことは状況を読むことに近い
読む目的を理解
外部依存性の理解
すべては読まない技術
構造の理解
リスクの理解
成り立ちの理解
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 37 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ソースコードを読む技術
他人のソースを読むことは書くことより難しい
読む技術を教えることは難しい
読む技術は教えられていない
自分で書いたソースも忘却により他人のソースと同じになる
多くのコミュニケーションと同様、ソースコードを読むことも苦
痛
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 38 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ソースコードを読む技術 (2)
よいコードを書くためによいコードを読めといわれた時代
技術の習得
よい習慣の習得
統一的なコーディング
書かないために読む、時代へ
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 39 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ソースコードを読む技術 (3)
オープンソース時代にはソースを読むことが重要
規模
複雑さ
完成度
外部依存性
自分で書くか、オープンソースを使うかを判断
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 40 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ソースコードを読む技術 (4)
添付されているドキュメントを読む
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 41 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ソースコードを読む技術 (5)
巨視的な理解
規模の把握 (ファイル数、行数など)、ディレクトリ構造、ドキュメ
ントの精査、プロジェクトのポータルサイトの確認 (サイトマッ
プ)、メーリングリスト、掲示板等コミュニティサイトの確認、名前
付け規約の確認、ソースコード管理システム、バグ管理システム
微視的な理解
ソースコード、ソースコードリファレンス、ChangeLog、バグデー
タベース、ソースコード管理システム (バージョン間の差分)、検索
エンジン、メーリングリスト
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 42 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
、
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 43 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ソースの読み方
静的に読む
そもそも静的に読むだけでも大変
IDE, gdb などを使い、ツールで読む
動的に読む
ツールなどを使い、性能などを解析する
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 43 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ソースの読み方 (2)
もっとも非効率な読み方
はしから順番に読む
ソースコードははしから読むようにできていない
ソースコードははしから順番に書かれたわけでもない
効率的な読み方
コードを読む技術とはコードを読まない技術
読まなくていいところを判断する技術
ツールを使う: gprof, oprofile など → 読むべきところを把握
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 44 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ソースの読み方 (3)
読み方はサイズに依存
プログラムのサイズ
サイズはありとあらゆる人間の協調活動に影響
サイズは読み方、書き方、メンテナンスに仕方に影響
プログラムのサイズ
小規模: 1-5 万行 (10 人以下で半年以下)
中規模: 5-20 万行
大規模: 20 万行以上 (100 人で 1 年以上)
メンテナンス、依存関係にもよる
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 45 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
大規模なソース
OSS は 100 万行なんて珍しくない
(MySQL/PHP/PostgreSQL/Samba/Perl …)
Linux カーネルなんて 500 万行 (2007)
ひらメソッド(超精細)なんてのもある:
LKH-jp(旧読学のススメ)で提案されているコードリーディング手
法.
関数単位で Wiki にメモを残しながら,ボトムアップに読み進める.
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 46 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
大規模なソース (2)
WebKit (browser) テスト除いて 80 万行
Android  カーネル除いて  800 万行
OSS でなくてもブラウザ、Java、など 100 万行超える組み込みソ
フトはごろごろ
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 47 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
静的な読み方
読む目的の設定
構造を理解する
インタフェースを理解する
改造の準備をする
利用可能性を評価する
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 48 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
静的な読み方 (2)
読むこと
名前の塊を理解すること
関数名、変数名、定数名、…
コメントのスタイル
ファイル名
名前付けの体系
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 49 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
静的な読み方 (3)
歴史を読むこと
設計の開始点を読む
チーム構成を読む
変更の時間間隔、最新の変更を読む
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 50 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
静的な読み方 (4)
構造を読むこと
ファイル構成、ディレクトリ構成
バージョン管理
グローバルな名前体系、コーディングルール
インタフェース仕様
拡張の方法
想定されているデバッグのしかた
外部依存関係
データ構造
制御構造
データベース構成
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 51 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
静的な読み方 (5)
ヘッダファイルを読むこと
基本的なデータ構造
分岐やデバッグの作法
依存関係
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 52 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
静的な読み方 (6)
権利を読むこと
ライセンス条件
配布条件
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 53 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
静的な読み方 (7)
静的な解析ツール
ctags, doxygen, …
呼び出し関係の可視化ツールなどもある
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 54 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
静的な読み方 (8)
ソースコードには著者の意思や哲学がちりばめられている
書いたひとを理解できればソースの理解は格段に効率化する
拡張する方法、好きなデータ構造などテーストを理解
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 55 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
静的な読み方 (9)
テストコードを読むこと
テストの環境設定
テストの網羅性
テストの対象
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 56 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
後編のむすび
書く技術より読む技術
ソースコードを読むことは状況を読むことに近い
読む目的を理解
外部依存性の理解
すべては読まない技術
構造の理解
リスクの理解
成り立ちの理解
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 57 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
参考
ソースコードを読むための技術 http://i.loveruby.net/ja/misc/readingcode.html
その後、Ruby ソースコード完全解説序章にはいった模様
Code Reading: The Open Source Perspective (by Diomidis Spinellis, 2003 Addison-Wesley)
オープンソースのコードサーチエンジン http://www.koders.com/
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 58 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
最近の潮流
単体で読みやすくする
ユニットテストをしっかりする
リファクタリングする
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 59 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
(参考)Eclipse
IBM によって開発された Java 用統合開発環境 (IDE)
Java で書かれている
1998 年開発開始, 2001 年 11 月オープンソース化
2004 年 Eclipse Foundation 設立
プラグイン
さまざまな機能をプラグインとして組み込めるよう設計
非常に拡張性が高い
プラグインでさまざまな言語 (C++, Perl, C#, Python, …) に対応
CVS 連携, JUnit 連携, Ant 連携
SWT(Standard Widget Toolkit) を使い、動作が軽快
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 60 / 61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
(参考) リファクタリング
振る舞いを変えずにソースコードの内部構造を整理する)
主な技術
長いメソッドの抽出
双方向関連を単方向に変更
継承を委譲に書き換える
コンストラクタを Factory Method に書き換える
引数オブジェクトの導入
クラス、メソッド、属性の名称を変更
最近の IDE はリファクタリング機能が具備
アジャイルプログラミングの XP などでは開発の習慣としてリファクタリングを挙げてい
る
山上俊彦 (ACCESS Confidential) イノベーション人材育成のためのオープン・ソース・ソフトウェア概説2017/03 61 / 61

More Related Content

What's hot

ソーシャルスマートの7つの秘訣 - シリコンバレーの最新スキル (in Japanese)
ソーシャルスマートの7つの秘訣 - シリコンバレーの最新スキル (in Japanese)ソーシャルスマートの7つの秘訣 - シリコンバレーの最新スキル (in Japanese)
ソーシャルスマートの7つの秘訣 - シリコンバレーの最新スキル (in Japanese)
Toshihiko Yamakami
 
シンギュラリティ哲学:超知能時代の教養の行方 (in Japanese)
 シンギュラリティ哲学:超知能時代の教養の行方 (in Japanese) シンギュラリティ哲学:超知能時代の教養の行方 (in Japanese)
シンギュラリティ哲学:超知能時代の教養の行方 (in Japanese)
Toshihiko Yamakami
 
行動誘導技術による習慣獲得術 (in Japanese)
行動誘導技術による習慣獲得術 (in Japanese)行動誘導技術による習慣獲得術 (in Japanese)
行動誘導技術による習慣獲得術 (in Japanese)
Toshihiko Yamakami
 
シンギュラリティ・リテラシーに向けて 超知能誕生後の人と社会の生き方の教育 (in Japanese)
シンギュラリティ・リテラシーに向けて 超知能誕生後の人と社会の生き方の教育 (in Japanese)シンギュラリティ・リテラシーに向けて 超知能誕生後の人と社会の生き方の教育 (in Japanese)
シンギュラリティ・リテラシーに向けて 超知能誕生後の人と社会の生き方の教育 (in Japanese)
Toshihiko Yamakami
 
サイバーセキュリティをマーケティングする枠組み(in Japanese)
サイバーセキュリティをマーケティングする枠組み(in Japanese)サイバーセキュリティをマーケティングする枠組み(in Japanese)
サイバーセキュリティをマーケティングする枠組み(in Japanese)
Toshihiko Yamakami
 
サルでもわかるディープラーニング入門 (2017年) (In Japanese)
サルでもわかるディープラーニング入門 (2017年) (In Japanese)サルでもわかるディープラーニング入門 (2017年) (In Japanese)
サルでもわかるディープラーニング入門 (2017年) (In Japanese)
Toshihiko Yamakami
 
行動誘導技術で考えるエリアマーケティング(in Japanese)
行動誘導技術で考えるエリアマーケティング(in Japanese)行動誘導技術で考えるエリアマーケティング(in Japanese)
行動誘導技術で考えるエリアマーケティング(in Japanese)
Toshihiko Yamakami
 
グロースハック
グロースハックグロースハック
グロースハック
Toshihiko Yamakami
 
CODE FES 2017 講演資料(後篇)
CODE FES 2017 講演資料(後篇)CODE FES 2017 講演資料(後篇)
CODE FES 2017 講演資料(後篇)
Youichiro Miyake
 
ソーシャルゲームが生んだおもてなし:ソもてなし理論 (in Japanese)
ソーシャルゲームが生んだおもてなし:ソもてなし理論 (in Japanese)ソーシャルゲームが生んだおもてなし:ソもてなし理論 (in Japanese)
ソーシャルゲームが生んだおもてなし:ソもてなし理論 (in Japanese)
Toshihiko Yamakami
 
人造幸福を作り出すコンピュータ技術  ゲームをビッグビジネスにした「夢中」の創造の原理 (In Japanese)
人造幸福を作り出すコンピュータ技術  ゲームをビッグビジネスにした「夢中」の創造の原理 (In Japanese)人造幸福を作り出すコンピュータ技術  ゲームをビッグビジネスにした「夢中」の創造の原理 (In Japanese)
人造幸福を作り出すコンピュータ技術  ゲームをビッグビジネスにした「夢中」の創造の原理 (In Japanese)
Toshihiko Yamakami
 

What's hot (11)

ソーシャルスマートの7つの秘訣 - シリコンバレーの最新スキル (in Japanese)
ソーシャルスマートの7つの秘訣 - シリコンバレーの最新スキル (in Japanese)ソーシャルスマートの7つの秘訣 - シリコンバレーの最新スキル (in Japanese)
ソーシャルスマートの7つの秘訣 - シリコンバレーの最新スキル (in Japanese)
 
シンギュラリティ哲学:超知能時代の教養の行方 (in Japanese)
 シンギュラリティ哲学:超知能時代の教養の行方 (in Japanese) シンギュラリティ哲学:超知能時代の教養の行方 (in Japanese)
シンギュラリティ哲学:超知能時代の教養の行方 (in Japanese)
 
行動誘導技術による習慣獲得術 (in Japanese)
行動誘導技術による習慣獲得術 (in Japanese)行動誘導技術による習慣獲得術 (in Japanese)
行動誘導技術による習慣獲得術 (in Japanese)
 
シンギュラリティ・リテラシーに向けて 超知能誕生後の人と社会の生き方の教育 (in Japanese)
シンギュラリティ・リテラシーに向けて 超知能誕生後の人と社会の生き方の教育 (in Japanese)シンギュラリティ・リテラシーに向けて 超知能誕生後の人と社会の生き方の教育 (in Japanese)
シンギュラリティ・リテラシーに向けて 超知能誕生後の人と社会の生き方の教育 (in Japanese)
 
サイバーセキュリティをマーケティングする枠組み(in Japanese)
サイバーセキュリティをマーケティングする枠組み(in Japanese)サイバーセキュリティをマーケティングする枠組み(in Japanese)
サイバーセキュリティをマーケティングする枠組み(in Japanese)
 
サルでもわかるディープラーニング入門 (2017年) (In Japanese)
サルでもわかるディープラーニング入門 (2017年) (In Japanese)サルでもわかるディープラーニング入門 (2017年) (In Japanese)
サルでもわかるディープラーニング入門 (2017年) (In Japanese)
 
行動誘導技術で考えるエリアマーケティング(in Japanese)
行動誘導技術で考えるエリアマーケティング(in Japanese)行動誘導技術で考えるエリアマーケティング(in Japanese)
行動誘導技術で考えるエリアマーケティング(in Japanese)
 
グロースハック
グロースハックグロースハック
グロースハック
 
CODE FES 2017 講演資料(後篇)
CODE FES 2017 講演資料(後篇)CODE FES 2017 講演資料(後篇)
CODE FES 2017 講演資料(後篇)
 
ソーシャルゲームが生んだおもてなし:ソもてなし理論 (in Japanese)
ソーシャルゲームが生んだおもてなし:ソもてなし理論 (in Japanese)ソーシャルゲームが生んだおもてなし:ソもてなし理論 (in Japanese)
ソーシャルゲームが生んだおもてなし:ソもてなし理論 (in Japanese)
 
人造幸福を作り出すコンピュータ技術  ゲームをビッグビジネスにした「夢中」の創造の原理 (In Japanese)
人造幸福を作り出すコンピュータ技術  ゲームをビッグビジネスにした「夢中」の創造の原理 (In Japanese)人造幸福を作り出すコンピュータ技術  ゲームをビッグビジネスにした「夢中」の創造の原理 (In Japanese)
人造幸福を作り出すコンピュータ技術  ゲームをビッグビジネスにした「夢中」の創造の原理 (In Japanese)
 

Viewers also liked

МЭИ, крионика
МЭИ, крионика МЭИ, крионика
МЭИ, крионика
Valerija Pride (Udalova)
 
Apostila super
Apostila superApostila super
Apostila super
Saymo Wendel
 
Manual diseño de pisos industriales
Manual diseño de pisos industrialesManual diseño de pisos industriales
Manual diseño de pisos industriales
German Moreno Escobar
 
Cmasr 2 def
Cmasr 2 defCmasr 2 def
Cmasr 2 def
Caty Pérez
 
Lagom, reactive framework(paris jug2017)
Lagom, reactive framework(paris jug2017)Lagom, reactive framework(paris jug2017)
Lagom, reactive framework(paris jug2017)
Fabrice Sznajderman
 
Agenda 7°5
Agenda 7°5Agenda 7°5
COMMISSION STAFF WORKING DOCUMENT
COMMISSION STAFF WORKING DOCUMENTCOMMISSION STAFF WORKING DOCUMENT
COMMISSION STAFF WORKING DOCUMENT
Do outro lado da barricada
 
Curso de Android Xamarin desde cero
Curso de Android Xamarin desde ceroCurso de Android Xamarin desde cero
Curso de Android Xamarin desde cero
Indevo
 
2 My First Day at School
2 My First Day at School2 My First Day at School
2 My First Day at School
Edwin Alvarado
 
Taking Dynamic Search Ads to the Next Level
Taking Dynamic Search Ads to the Next Level Taking Dynamic Search Ads to the Next Level
Taking Dynamic Search Ads to the Next Level
Michelle Morgan
 
родитељ едукатор2
родитељ едукатор2родитељ едукатор2
родитељ едукатор2
Tamara Ilić
 
Lavandaria
LavandariaLavandaria
Lavandaria
Monalisa Ferreira
 
Perfil de egreso del estudiante I.E. Luis Ponce Garcia - Callalli
Perfil de egreso  del estudiante I.E. Luis Ponce Garcia - CallalliPerfil de egreso  del estudiante I.E. Luis Ponce Garcia - Callalli
Perfil de egreso del estudiante I.E. Luis Ponce Garcia - Callalli
trinidad mogollon herrera
 
Higiene oral
Higiene oralHigiene oral
Higiene oral
Monalisa Ferreira
 
Securing the global routing system and the approach of operators
Securing the global routing system and the approach of operatorsSecuring the global routing system and the approach of operators
Securing the global routing system and the approach of operators
APNIC
 
Technology in the early years
Technology in the early yearsTechnology in the early years
Technology in the early years
Rebecca Davies
 
Actividad
ActividadActividad
Actividad
Eva Gallardo
 
Bertha act10
Bertha act10Bertha act10

Viewers also liked (18)

МЭИ, крионика
МЭИ, крионика МЭИ, крионика
МЭИ, крионика
 
Apostila super
Apostila superApostila super
Apostila super
 
Manual diseño de pisos industriales
Manual diseño de pisos industrialesManual diseño de pisos industriales
Manual diseño de pisos industriales
 
Cmasr 2 def
Cmasr 2 defCmasr 2 def
Cmasr 2 def
 
Lagom, reactive framework(paris jug2017)
Lagom, reactive framework(paris jug2017)Lagom, reactive framework(paris jug2017)
Lagom, reactive framework(paris jug2017)
 
Agenda 7°5
Agenda 7°5Agenda 7°5
Agenda 7°5
 
COMMISSION STAFF WORKING DOCUMENT
COMMISSION STAFF WORKING DOCUMENTCOMMISSION STAFF WORKING DOCUMENT
COMMISSION STAFF WORKING DOCUMENT
 
Curso de Android Xamarin desde cero
Curso de Android Xamarin desde ceroCurso de Android Xamarin desde cero
Curso de Android Xamarin desde cero
 
2 My First Day at School
2 My First Day at School2 My First Day at School
2 My First Day at School
 
Taking Dynamic Search Ads to the Next Level
Taking Dynamic Search Ads to the Next Level Taking Dynamic Search Ads to the Next Level
Taking Dynamic Search Ads to the Next Level
 
родитељ едукатор2
родитељ едукатор2родитељ едукатор2
родитељ едукатор2
 
Lavandaria
LavandariaLavandaria
Lavandaria
 
Perfil de egreso del estudiante I.E. Luis Ponce Garcia - Callalli
Perfil de egreso  del estudiante I.E. Luis Ponce Garcia - CallalliPerfil de egreso  del estudiante I.E. Luis Ponce Garcia - Callalli
Perfil de egreso del estudiante I.E. Luis Ponce Garcia - Callalli
 
Higiene oral
Higiene oralHigiene oral
Higiene oral
 
Securing the global routing system and the approach of operators
Securing the global routing system and the approach of operatorsSecuring the global routing system and the approach of operators
Securing the global routing system and the approach of operators
 
Technology in the early years
Technology in the early yearsTechnology in the early years
Technology in the early years
 
Actividad
ActividadActividad
Actividad
 
Bertha act10
Bertha act10Bertha act10
Bertha act10
 

Similar to イノベーション人材育成のためのオープン・ソース・ソフトウェア概説 (in Japanese)

査読付き論文を高速生産する1つのマインドセット、3つの方法 (in Japanese)
査読付き論文を高速生産する1つのマインドセット、3つの方法 (in Japanese)査読付き論文を高速生産する1つのマインドセット、3つの方法 (in Japanese)
査読付き論文を高速生産する1つのマインドセット、3つの方法 (in Japanese)
Toshihiko Yamakami
 
音楽・エンターテインメント x AI (29 Aug 2017)
音楽・エンターテインメント x AI (29 Aug 2017)音楽・エンターテインメント x AI (29 Aug 2017)
音楽・エンターテインメント x AI (29 Aug 2017)
Yuki Abe
 
2016/4/16 Softlayer Bluemix Community Festa 2016講演資料
2016/4/16 Softlayer Bluemix Community Festa 2016講演資料2016/4/16 Softlayer Bluemix Community Festa 2016講演資料
2016/4/16 Softlayer Bluemix Community Festa 2016講演資料
Mitsutoshi Kiuchi
 
行動誘導技術で読み解くアイディアマラソン (in Japanese)
行動誘導技術で読み解くアイディアマラソン (in Japanese)行動誘導技術で読み解くアイディアマラソン (in Japanese)
行動誘導技術で読み解くアイディアマラソン (in Japanese)
Toshihiko Yamakami
 
オープンイノベーション時代の工学スキル:国際標準化エンジニアリング
オープンイノベーション時代の工学スキル:国際標準化エンジニアリングオープンイノベーション時代の工学スキル:国際標準化エンジニアリング
オープンイノベーション時代の工学スキル:国際標準化エンジニアリング
Toshihiko Yamakami
 
APIエコノミーとは何か? それはどこへ続く道なのか(2017年) (in Japanese)
APIエコノミーとは何か? それはどこへ続く道なのか(2017年) (in Japanese)APIエコノミーとは何か? それはどこへ続く道なのか(2017年) (in Japanese)
APIエコノミーとは何か? それはどこへ続く道なのか(2017年) (in Japanese)
Toshihiko Yamakami
 
負債返済の下準備「コメント付与まつり・準備編」
負債返済の下準備「コメント付与まつり・準備編」負債返済の下準備「コメント付与まつり・準備編」
負債返済の下準備「コメント付与まつり・準備編」
Atsushi Yasuda
 
NRI流 検索ソリューション導入時にこれだけはおさえておきたい鉄則
NRI流 検索ソリューション導入時にこれだけはおさえておきたい鉄則NRI流 検索ソリューション導入時にこれだけはおさえておきたい鉄則
NRI流 検索ソリューション導入時にこれだけはおさえておきたい鉄則
aslead
 
認知科学に基づく「効果的なデモ」のヒント (in Japanese)
認知科学に基づく「効果的なデモ」のヒント (in Japanese)認知科学に基づく「効果的なデモ」のヒント (in Japanese)
認知科学に基づく「効果的なデモ」のヒント (in Japanese)
Toshihiko Yamakami
 
業務分析方式的手法の落とし穴
業務分析方式的手法の落とし穴業務分析方式的手法の落とし穴
業務分析方式的手法の落とし穴
株式会社エイチ・ピィ・ピィ・ティ
 
短時間説明動画の解体新書 リバース・エンジニアリングで解説する説明動画の作り方(in Japanese)
短時間説明動画の解体新書 リバース・エンジニアリングで解説する説明動画の作り方(in Japanese)短時間説明動画の解体新書 リバース・エンジニアリングで解説する説明動画の作り方(in Japanese)
短時間説明動画の解体新書 リバース・エンジニアリングで解説する説明動画の作り方(in Japanese)
Toshihiko Yamakami
 
東京都日野市創業セミナーで講演「創業時に有効なWebプロモーション」
東京都日野市創業セミナーで講演「創業時に有効なWebプロモーション」東京都日野市創業セミナーで講演「創業時に有効なWebプロモーション」
東京都日野市創業セミナーで講演「創業時に有効なWebプロモーション」
竹内 幸次
 
HCI分野の紹介と最新研究
HCI分野の紹介と最新研究HCI分野の紹介と最新研究
HCI分野の紹介と最新研究
ota42y
 
IoTセキュリティガイドラインの検討
IoTセキュリティガイドラインの検討IoTセキュリティガイドラインの検討
IoTセキュリティガイドラインの検討
Toshihiko Yamakami
 
ソフトウェア開発炎上の検討 (in Japanese)
ソフトウェア開発炎上の検討 (in Japanese)ソフトウェア開発炎上の検討 (in Japanese)
ソフトウェア開発炎上の検討 (in Japanese)
Toshihiko Yamakami
 
アクセシビリティを高める「micro IA」
アクセシビリティを高める「micro IA」アクセシビリティを高める「micro IA」
アクセシビリティを高める「micro IA」
Kazuhiko Tsuchiya
 
NRI流 検索ソリューション導入時にこれだけはおさえておきたい鉄則
NRI流 検索ソリューション導入時にこれだけはおさえておきたい鉄則 NRI流 検索ソリューション導入時にこれだけはおさえておきたい鉄則
NRI流 検索ソリューション導入時にこれだけはおさえておきたい鉄則
aslead
 
川崎市産業振興財団/新分野・新技術支援研究会「ITツール・Webツール研究会」で講演「自分で行うSEO(検索エンジン最適化)」
川崎市産業振興財団/新分野・新技術支援研究会「ITツール・Webツール研究会」で講演「自分で行うSEO(検索エンジン最適化)」川崎市産業振興財団/新分野・新技術支援研究会「ITツール・Webツール研究会」で講演「自分で行うSEO(検索エンジン最適化)」
川崎市産業振興財団/新分野・新技術支援研究会「ITツール・Webツール研究会」で講演「自分で行うSEO(検索エンジン最適化)」
竹内 幸次
 
【Unite Tokyo 2018】XR x AI Watsonで もっと拡がるUnity開発
【Unite Tokyo 2018】XR x AI Watsonで もっと拡がるUnity開発【Unite Tokyo 2018】XR x AI Watsonで もっと拡がるUnity開発
【Unite Tokyo 2018】XR x AI Watsonで もっと拡がるUnity開発
UnityTechnologiesJapan002
 
Bluemixとapache sparkでできる io tデータの収集と分析
Bluemixとapache sparkでできる io tデータの収集と分析Bluemixとapache sparkでできる io tデータの収集と分析
Bluemixとapache sparkでできる io tデータの収集と分析
Mitsutoshi Kiuchi
 

Similar to イノベーション人材育成のためのオープン・ソース・ソフトウェア概説 (in Japanese) (20)

査読付き論文を高速生産する1つのマインドセット、3つの方法 (in Japanese)
査読付き論文を高速生産する1つのマインドセット、3つの方法 (in Japanese)査読付き論文を高速生産する1つのマインドセット、3つの方法 (in Japanese)
査読付き論文を高速生産する1つのマインドセット、3つの方法 (in Japanese)
 
音楽・エンターテインメント x AI (29 Aug 2017)
音楽・エンターテインメント x AI (29 Aug 2017)音楽・エンターテインメント x AI (29 Aug 2017)
音楽・エンターテインメント x AI (29 Aug 2017)
 
2016/4/16 Softlayer Bluemix Community Festa 2016講演資料
2016/4/16 Softlayer Bluemix Community Festa 2016講演資料2016/4/16 Softlayer Bluemix Community Festa 2016講演資料
2016/4/16 Softlayer Bluemix Community Festa 2016講演資料
 
行動誘導技術で読み解くアイディアマラソン (in Japanese)
行動誘導技術で読み解くアイディアマラソン (in Japanese)行動誘導技術で読み解くアイディアマラソン (in Japanese)
行動誘導技術で読み解くアイディアマラソン (in Japanese)
 
オープンイノベーション時代の工学スキル:国際標準化エンジニアリング
オープンイノベーション時代の工学スキル:国際標準化エンジニアリングオープンイノベーション時代の工学スキル:国際標準化エンジニアリング
オープンイノベーション時代の工学スキル:国際標準化エンジニアリング
 
APIエコノミーとは何か? それはどこへ続く道なのか(2017年) (in Japanese)
APIエコノミーとは何か? それはどこへ続く道なのか(2017年) (in Japanese)APIエコノミーとは何か? それはどこへ続く道なのか(2017年) (in Japanese)
APIエコノミーとは何か? それはどこへ続く道なのか(2017年) (in Japanese)
 
負債返済の下準備「コメント付与まつり・準備編」
負債返済の下準備「コメント付与まつり・準備編」負債返済の下準備「コメント付与まつり・準備編」
負債返済の下準備「コメント付与まつり・準備編」
 
NRI流 検索ソリューション導入時にこれだけはおさえておきたい鉄則
NRI流 検索ソリューション導入時にこれだけはおさえておきたい鉄則NRI流 検索ソリューション導入時にこれだけはおさえておきたい鉄則
NRI流 検索ソリューション導入時にこれだけはおさえておきたい鉄則
 
認知科学に基づく「効果的なデモ」のヒント (in Japanese)
認知科学に基づく「効果的なデモ」のヒント (in Japanese)認知科学に基づく「効果的なデモ」のヒント (in Japanese)
認知科学に基づく「効果的なデモ」のヒント (in Japanese)
 
業務分析方式的手法の落とし穴
業務分析方式的手法の落とし穴業務分析方式的手法の落とし穴
業務分析方式的手法の落とし穴
 
短時間説明動画の解体新書 リバース・エンジニアリングで解説する説明動画の作り方(in Japanese)
短時間説明動画の解体新書 リバース・エンジニアリングで解説する説明動画の作り方(in Japanese)短時間説明動画の解体新書 リバース・エンジニアリングで解説する説明動画の作り方(in Japanese)
短時間説明動画の解体新書 リバース・エンジニアリングで解説する説明動画の作り方(in Japanese)
 
東京都日野市創業セミナーで講演「創業時に有効なWebプロモーション」
東京都日野市創業セミナーで講演「創業時に有効なWebプロモーション」東京都日野市創業セミナーで講演「創業時に有効なWebプロモーション」
東京都日野市創業セミナーで講演「創業時に有効なWebプロモーション」
 
HCI分野の紹介と最新研究
HCI分野の紹介と最新研究HCI分野の紹介と最新研究
HCI分野の紹介と最新研究
 
IoTセキュリティガイドラインの検討
IoTセキュリティガイドラインの検討IoTセキュリティガイドラインの検討
IoTセキュリティガイドラインの検討
 
ソフトウェア開発炎上の検討 (in Japanese)
ソフトウェア開発炎上の検討 (in Japanese)ソフトウェア開発炎上の検討 (in Japanese)
ソフトウェア開発炎上の検討 (in Japanese)
 
アクセシビリティを高める「micro IA」
アクセシビリティを高める「micro IA」アクセシビリティを高める「micro IA」
アクセシビリティを高める「micro IA」
 
NRI流 検索ソリューション導入時にこれだけはおさえておきたい鉄則
NRI流 検索ソリューション導入時にこれだけはおさえておきたい鉄則 NRI流 検索ソリューション導入時にこれだけはおさえておきたい鉄則
NRI流 検索ソリューション導入時にこれだけはおさえておきたい鉄則
 
川崎市産業振興財団/新分野・新技術支援研究会「ITツール・Webツール研究会」で講演「自分で行うSEO(検索エンジン最適化)」
川崎市産業振興財団/新分野・新技術支援研究会「ITツール・Webツール研究会」で講演「自分で行うSEO(検索エンジン最適化)」川崎市産業振興財団/新分野・新技術支援研究会「ITツール・Webツール研究会」で講演「自分で行うSEO(検索エンジン最適化)」
川崎市産業振興財団/新分野・新技術支援研究会「ITツール・Webツール研究会」で講演「自分で行うSEO(検索エンジン最適化)」
 
【Unite Tokyo 2018】XR x AI Watsonで もっと拡がるUnity開発
【Unite Tokyo 2018】XR x AI Watsonで もっと拡がるUnity開発【Unite Tokyo 2018】XR x AI Watsonで もっと拡がるUnity開発
【Unite Tokyo 2018】XR x AI Watsonで もっと拡がるUnity開発
 
Bluemixとapache sparkでできる io tデータの収集と分析
Bluemixとapache sparkでできる io tデータの収集と分析Bluemixとapache sparkでできる io tデータの収集と分析
Bluemixとapache sparkでできる io tデータの収集と分析
 

More from Toshihiko Yamakami

Toward Interactive People Analytics: A New Approach to Leverage Organizationa...
Toward Interactive People Analytics: A New Approach to Leverage Organizationa...Toward Interactive People Analytics: A New Approach to Leverage Organizationa...
Toward Interactive People Analytics: A New Approach to Leverage Organizationa...
Toshihiko Yamakami
 
Amazon SageMaker: 機械学習の民主化から工業化へ(in Japanese)
Amazon SageMaker: 機械学習の民主化から工業化へ(in Japanese)Amazon SageMaker: 機械学習の民主化から工業化へ(in Japanese)
Amazon SageMaker: 機械学習の民主化から工業化へ(in Japanese)
Toshihiko Yamakami
 
ホワイトペーパーの書き方 (in Japanese)
ホワイトペーパーの書き方 (in Japanese)ホワイトペーパーの書き方 (in Japanese)
ホワイトペーパーの書き方 (in Japanese)
Toshihiko Yamakami
 
An Experimental Implementation of an Edge-based AI Engine with Edge-Cloud Co...
 An Experimental Implementation of an Edge-based AI Engine with Edge-Cloud Co... An Experimental Implementation of an Edge-based AI Engine with Edge-Cloud Co...
An Experimental Implementation of an Edge-based AI Engine with Edge-Cloud Co...
Toshihiko Yamakami
 
Singularity Literacy: Civic Skill Shift from Workplace to Studyplace
 Singularity Literacy: Civic Skill Shift from Workplace to Studyplace Singularity Literacy: Civic Skill Shift from Workplace to Studyplace
Singularity Literacy: Civic Skill Shift from Workplace to Studyplace
Toshihiko Yamakami
 
Lessons Learned in Tokyo Public Transportation Open Data APIs
Lessons Learned in Tokyo Public Transportation Open Data APIsLessons Learned in Tokyo Public Transportation Open Data APIs
Lessons Learned in Tokyo Public Transportation Open Data APIs
Toshihiko Yamakami
 
A Dynamism View Model of Convergence and Divergence of IoT Standardization
A Dynamism View Model of Convergence and Divergence of IoT StandardizationA Dynamism View Model of Convergence and Divergence of IoT Standardization
A Dynamism View Model of Convergence and Divergence of IoT Standardization
Toshihiko Yamakami
 
A Visualization Framework to Empower Small and Medium-Sized Enterprises in Op...
A Visualization Framework to Empower Small and Medium-Sized Enterprises in Op...A Visualization Framework to Empower Small and Medium-Sized Enterprises in Op...
A Visualization Framework to Empower Small and Medium-Sized Enterprises in Op...
Toshihiko Yamakami
 
A Social Dimension View Model of Divergence of IoT Standardization
A Social Dimension View Model of Divergence of IoT StandardizationA Social Dimension View Model of Divergence of IoT Standardization
A Social Dimension View Model of Divergence of IoT Standardization
Toshihiko Yamakami
 
Device Stand-by Management Scheme of IoT: A Framework for Dealing with Real-w...
Device Stand-by Management Scheme of IoT: A Framework for Dealing with Real-w...Device Stand-by Management Scheme of IoT: A Framework for Dealing with Real-w...
Device Stand-by Management Scheme of IoT: A Framework for Dealing with Real-w...
Toshihiko Yamakami
 
論文SEOとは何か?(in Japanese)
論文SEOとは何か?(in Japanese)論文SEOとは何か?(in Japanese)
論文SEOとは何か?(in Japanese)
Toshihiko Yamakami
 
A Dimensional Model of Service Design Toward Utilizing Public Transportation ...
A Dimensional Model of Service Design Toward Utilizing Public Transportation ...A Dimensional Model of Service Design Toward Utilizing Public Transportation ...
A Dimensional Model of Service Design Toward Utilizing Public Transportation ...
Toshihiko Yamakami
 
シニア・イノベーションの視点
シニア・イノベーションの視点シニア・イノベーションの視点
シニア・イノベーションの視点
Toshihiko Yamakami
 
An Organizational Coordination Model for IoT: A Case Study of Requirement Eng...
An Organizational Coordination Model for IoT: A Case Study of Requirement Eng...An Organizational Coordination Model for IoT: A Case Study of Requirement Eng...
An Organizational Coordination Model for IoT: A Case Study of Requirement Eng...
Toshihiko Yamakami
 
An Evolution-by-design Approach: Toward Multi-disciplinary Life-cycle Manage...
 An Evolution-by-design Approach: Toward Multi-disciplinary Life-cycle Manage... An Evolution-by-design Approach: Toward Multi-disciplinary Life-cycle Manage...
An Evolution-by-design Approach: Toward Multi-disciplinary Life-cycle Manage...
Toshihiko Yamakami
 
A Migration-oriented Partial Adaptation Architecture for IoT-empowered City P...
A Migration-oriented Partial Adaptation Architecture for IoT-empowered City P...A Migration-oriented Partial Adaptation Architecture for IoT-empowered City P...
A Migration-oriented Partial Adaptation Architecture for IoT-empowered City P...
Toshihiko Yamakami
 
A Dimensional Framework to Evaluate Coverage of IoT Services in City Platform...
A Dimensional Framework to Evaluate Coverage of IoT Services in City Platform...A Dimensional Framework to Evaluate Coverage of IoT Services in City Platform...
A Dimensional Framework to Evaluate Coverage of IoT Services in City Platform...
Toshihiko Yamakami
 
Horizontal Requirement Engineering in Integration of Multiple IoT Use Cases o...
Horizontal Requirement Engineering in Integration of Multiple IoT Use Cases o...Horizontal Requirement Engineering in Integration of Multiple IoT Use Cases o...
Horizontal Requirement Engineering in Integration of Multiple IoT Use Cases o...
Toshihiko Yamakami
 
A Gap Analysis Framework of IoT-empowered City Platform as a Service
A Gap Analysis Framework of IoT-empowered City Platform as a ServiceA Gap Analysis Framework of IoT-empowered City Platform as a Service
A Gap Analysis Framework of IoT-empowered City Platform as a Service
Toshihiko Yamakami
 
AWS greengrassとは何か (in Japanese)
AWS greengrassとは何か (in Japanese)AWS greengrassとは何か (in Japanese)
AWS greengrassとは何か (in Japanese)
Toshihiko Yamakami
 

More from Toshihiko Yamakami (20)

Toward Interactive People Analytics: A New Approach to Leverage Organizationa...
Toward Interactive People Analytics: A New Approach to Leverage Organizationa...Toward Interactive People Analytics: A New Approach to Leverage Organizationa...
Toward Interactive People Analytics: A New Approach to Leverage Organizationa...
 
Amazon SageMaker: 機械学習の民主化から工業化へ(in Japanese)
Amazon SageMaker: 機械学習の民主化から工業化へ(in Japanese)Amazon SageMaker: 機械学習の民主化から工業化へ(in Japanese)
Amazon SageMaker: 機械学習の民主化から工業化へ(in Japanese)
 
ホワイトペーパーの書き方 (in Japanese)
ホワイトペーパーの書き方 (in Japanese)ホワイトペーパーの書き方 (in Japanese)
ホワイトペーパーの書き方 (in Japanese)
 
An Experimental Implementation of an Edge-based AI Engine with Edge-Cloud Co...
 An Experimental Implementation of an Edge-based AI Engine with Edge-Cloud Co... An Experimental Implementation of an Edge-based AI Engine with Edge-Cloud Co...
An Experimental Implementation of an Edge-based AI Engine with Edge-Cloud Co...
 
Singularity Literacy: Civic Skill Shift from Workplace to Studyplace
 Singularity Literacy: Civic Skill Shift from Workplace to Studyplace Singularity Literacy: Civic Skill Shift from Workplace to Studyplace
Singularity Literacy: Civic Skill Shift from Workplace to Studyplace
 
Lessons Learned in Tokyo Public Transportation Open Data APIs
Lessons Learned in Tokyo Public Transportation Open Data APIsLessons Learned in Tokyo Public Transportation Open Data APIs
Lessons Learned in Tokyo Public Transportation Open Data APIs
 
A Dynamism View Model of Convergence and Divergence of IoT Standardization
A Dynamism View Model of Convergence and Divergence of IoT StandardizationA Dynamism View Model of Convergence and Divergence of IoT Standardization
A Dynamism View Model of Convergence and Divergence of IoT Standardization
 
A Visualization Framework to Empower Small and Medium-Sized Enterprises in Op...
A Visualization Framework to Empower Small and Medium-Sized Enterprises in Op...A Visualization Framework to Empower Small and Medium-Sized Enterprises in Op...
A Visualization Framework to Empower Small and Medium-Sized Enterprises in Op...
 
A Social Dimension View Model of Divergence of IoT Standardization
A Social Dimension View Model of Divergence of IoT StandardizationA Social Dimension View Model of Divergence of IoT Standardization
A Social Dimension View Model of Divergence of IoT Standardization
 
Device Stand-by Management Scheme of IoT: A Framework for Dealing with Real-w...
Device Stand-by Management Scheme of IoT: A Framework for Dealing with Real-w...Device Stand-by Management Scheme of IoT: A Framework for Dealing with Real-w...
Device Stand-by Management Scheme of IoT: A Framework for Dealing with Real-w...
 
論文SEOとは何か?(in Japanese)
論文SEOとは何か?(in Japanese)論文SEOとは何か?(in Japanese)
論文SEOとは何か?(in Japanese)
 
A Dimensional Model of Service Design Toward Utilizing Public Transportation ...
A Dimensional Model of Service Design Toward Utilizing Public Transportation ...A Dimensional Model of Service Design Toward Utilizing Public Transportation ...
A Dimensional Model of Service Design Toward Utilizing Public Transportation ...
 
シニア・イノベーションの視点
シニア・イノベーションの視点シニア・イノベーションの視点
シニア・イノベーションの視点
 
An Organizational Coordination Model for IoT: A Case Study of Requirement Eng...
An Organizational Coordination Model for IoT: A Case Study of Requirement Eng...An Organizational Coordination Model for IoT: A Case Study of Requirement Eng...
An Organizational Coordination Model for IoT: A Case Study of Requirement Eng...
 
An Evolution-by-design Approach: Toward Multi-disciplinary Life-cycle Manage...
 An Evolution-by-design Approach: Toward Multi-disciplinary Life-cycle Manage... An Evolution-by-design Approach: Toward Multi-disciplinary Life-cycle Manage...
An Evolution-by-design Approach: Toward Multi-disciplinary Life-cycle Manage...
 
A Migration-oriented Partial Adaptation Architecture for IoT-empowered City P...
A Migration-oriented Partial Adaptation Architecture for IoT-empowered City P...A Migration-oriented Partial Adaptation Architecture for IoT-empowered City P...
A Migration-oriented Partial Adaptation Architecture for IoT-empowered City P...
 
A Dimensional Framework to Evaluate Coverage of IoT Services in City Platform...
A Dimensional Framework to Evaluate Coverage of IoT Services in City Platform...A Dimensional Framework to Evaluate Coverage of IoT Services in City Platform...
A Dimensional Framework to Evaluate Coverage of IoT Services in City Platform...
 
Horizontal Requirement Engineering in Integration of Multiple IoT Use Cases o...
Horizontal Requirement Engineering in Integration of Multiple IoT Use Cases o...Horizontal Requirement Engineering in Integration of Multiple IoT Use Cases o...
Horizontal Requirement Engineering in Integration of Multiple IoT Use Cases o...
 
A Gap Analysis Framework of IoT-empowered City Platform as a Service
A Gap Analysis Framework of IoT-empowered City Platform as a ServiceA Gap Analysis Framework of IoT-empowered City Platform as a Service
A Gap Analysis Framework of IoT-empowered City Platform as a Service
 
AWS greengrassとは何か (in Japanese)
AWS greengrassとは何か (in Japanese)AWS greengrassとは何か (in Japanese)
AWS greengrassとは何か (in Japanese)
 

イノベーション人材育成のためのオープン・ソース・ソフトウェア概説 (in Japanese)