1月27日研究会資料

コミュニティ情報共有の技術と未来
オープンソースからオープンプロセスへ
西本卓也
京都工芸繊維大学 工芸学部 電子情報工学科 助手
http://www-vox.dj.kit.ac.jp/nishi/
[email protected]
2001/01/27
1
技術が社会のあり方を決めるべき時代
• インターネットはなぜ進歩が早く変化が急なのか?
→ 仕事を加速する手段が確立されたから
• 革新的な技術:
– 既存の組織では追いつけない速度で進化
– オープンソース・ソフトウェアになる
• 技術がもたらした革命
– それを社会が受け入れざるを得ない
– その革命のプロセスを社会が後追いせざるを得ない
2001/01/27
2
オープンソースからオープンプロセスへ
• 「オープンソース」への社会の関心は高まる
• しかし、正しく理解されているとは言えない
• オープンソースとは:
– 単なる「価値の共有」ではない
– 「価値を生み出していくプロセスの共有」である
• 「オープンソース的な方法論」とは:
– 技術者に閉じた話題ではない
– 社会のあちこちで取り組むべき問題
2001/01/27
3
オープンプロセス・プロジェクト
• オープンソース・プロジェクト:
– 成果物のみオープン化
• オープンプロセス・プロジェクト:
– 仕事のプロセスからオープン化
– オープンソースはオープンプロセスの結果の一部
2001/01/27
4
オープンプロセスの技術と未来
• インターネット技術/ソフトウェア開発から始まった
• 必要な技術と手法を、技術者みずから整備してきた
• その技術と手法は、社会に広まりつつある
– WWWは技術者の情報共有手段として発明された
• これから何が当たり前になっていくのか?
• どのような活動に応用可能なのか?
– 技術を正しく理解するために
– 技術を正しく活用するために
2001/01/27
5
メーリングリスト
• メール同報=サーバを持っていれば簡単に作れる
• 「メーリングリスト」システムの重要機能:
– 参加・退会の処理の自動化(管理者が楽になる)
– 「サブジェクト=題名」にMLの名前や番号をつける
– 返信先(reply-to)がMLになるようにする
• eGroups: 進化したML(メールグループ)
– 無料でいくつでも作れる
– メールソフトからもウェブブラウザからも使える
– さまざまな付加機能
2001/01/27
6
「引用」と「返信」
• 非同期型メディアによる双方向的な議論
→ 発言の双方向的編集行為が不可欠
例:読んだ発言の一部を引用しコメントする
– どの発言に対する返答であるかを示す
– 発言のどの部分に注目しているかを示す
• テキストのカット&ペーストは偉大なる相互編集
2001/01/27
7
MLはなぜ無料でなくてはならないか?
• コミュニティへの帰属意識とは
– あるコミュニティ宛のメッセージを、
不快を感じることなく受け取り続けていること
– メールを受け取って読むこと=参加者のコスト
• Aさんだけ読みたくない/読ませたくないメールも
• 「ABC」のMLを作ると:
– 「BCだけ」のMLが欲しくなる
– 「ABCD」のMLも欲しくなる
– それを許容するような技術/マネジメントであるべき
2001/01/27
8
MLのセキュリティ対策
• 無差別広告メール(スパム)を配信しない
• 巨大なファイル・添付ファイルを拒否する
• 誤操作で送信されたメールを無限ループさせない
• メールが届かなくなったメンバーへの送信停止
2001/01/27
9
権利の管理
• 公開グループ
• 非公開グループ
• 受け取り専用グループ
– 公開グループ(誰でも投稿できる)
– 投稿には承認が不要
– メッセージはメンバーのみ閲覧ができる
• メールマガジン/お知らせ専用グループ
– 管理者だけがメンバーに送信できる
2001/01/27
10
ファイルの配布と共有
• WWW:ファイルをサーバに置いてみんながアクセス
– ファイルの受信が簡単になった
– ファイルの送信は簡単ではない
• eGroupsの共有フォルダ
– サーバへのファイルの送信が簡単になる
– 電子メールの添付ファイルよりも安全で確実
– 問題はバージョン管理
2001/01/27
11
バージョンとは
• バージョン:
– ファイルやシステムに改良や追加した場合に
そのことを「世代」によって区別すること
• バージョン番号:
– 改良するごとに数字が大きくなる「世代番号」
• バージョン管理:
– 修正や変更の内容や目的を履歴として残すこと
2001/01/27
12
人手でバージョン管理をすると
• 名前を変えて最新版とは区別して保存する
• 日付や通し番号をファイル名につけて保存する
• スペースの無駄
• いつどこを変えたか調べるのが大変
2001/01/27
13
バージョン管理はどう役立つか
•
•
•
•
•
バグを見つけるときに役立つ
パッチを簡単に作成するしくみを提供する
以前のバージョンに簡単に戻すことができる
変更の統合を簡単にする
グループ作業を簡単にする
2001/01/27
14
ファイルの整理術
• 管理したくなるバージョンを作る
– よい習慣
• 名前をつけて集中管理しよう
– 安定したファイル名やフォルダ名
– 置き場と置き方を決める
– 他の場所に他の置き方をしない
2001/01/27
15
「編集」情報の管理と共有
• テキストファイルは行単位で編集される
• ファイルそのものではなく、
「どこをどう書き換えたか」という編集情報を表現したい
• こまめに書き換えるファイル、
大勢が並行して書き換えるファイルを効率よく管理
– バージョン管理システムの基本思想
2001/01/27
16
テキストファイルの差分
古いファイル
新しいファイル
差分(diff)
古いファイル
差分ファイル
マージ(patch)
新しいファイル
2001/01/27
17
CVS=並行バージョンシステム
1.1
1.1
1.1+変更B
1.1+変更A
1.2
1.2+変更B
1.3
作業ファイル
2001/01/27
1.1
1.3
リポジトリ=貯蔵庫
1.2
1.3
作業ファイル
18
散らばるファイルを片づける
• ロッキング方式:
– 情報を大勢で共有しつつ、バックアップも取りつつ
– 同時に一人しか使えないようにする
– 誰かが編集しているあいだ、他の人はロックが
解除されるまで待たなくてはならない
• コピー・マージ方式:
– 誰でも何回でも取り出せる
– 変更を登録する権利は先着順
– 先を越された人は、前の人の変更を
まず取り込まなくてはならない
2001/01/27
19
コピー・マージ方式=CVS
• 誰もが手軽に最新バージョンを取り出して改良できる
• 並行して行われた他人の改良も取り込める
• 自分の改良を登録(コミット)するときだけ
みんなに報告・相談すればよい
• 大規模なソフトウェアを何人かで分担して開発
• インターネットを通じて不特定多数の人が協力
– オープンソースソフトウェアの開発
– 複数人でのウェブサイトの執筆
2001/01/27
20
サーバ・クライアントとピアツーピア
• サーバ・クライアント
– eGroups : すべてサーバ経由で作業する
– CVS: 普段はクライアントで作業、
ときどきサーバにつなぐ
• ピアツーピア
– サーバがいらない
あるいは、どこにあるのかわからない
– オンライン対戦ゲーム
– Groove
2001/01/27
21
共有情報の編集とは
• 編集とはそれ自身が価値創造プロセスである
– 編纂=コンパイル:機械的作業
– 編集=エディット:連想と要約を伴う創造的作業
• 編集とは人生のコストである
• ソフトウェアの時代
– 素材を生み出すコストの低減
– 素材を編集するコストの比率が増大、軽視されがち
– 編集しなくてすむことは編集しない
2001/01/27
22