増井ラボノート コロンブス日和

第16回Scrapbox(1)

Scrapboxの紹介

前回ではさまざまなファイルや書類を「フラット」に管理する方法について説明しましたが、今回はさまざまな情報をより効果的に整理し共有できる「Scrapbox」というシステムを紹介します。

理想の情報整理システムとは

2017年現在における理想的な情報整理法とはどのようなものでしょうか? 現在のテクノロジ状況をふまえつつ要件を考えてみます。

ブラウザを使ってネット上で情報を管理する

ネットやブラウザを使えない環境は現在ほぼなくなりましたから、情報整理は当然これらを活用するべきでしょう。

一ヵ所で集中管理する

ネット上の1つの場所にあらゆるデータを保存してブラウザからアクセス可能にするのが良いでしょう。

気軽な入力と編集

ブラウザ上での入力/編集手法は極力単純にしておく必要があるでしょう。

タグを活用する

先月号でも解説しましたが、個人的な雑多なデータを階層的に管理することは常人にはとても難しいので、タグを使って管理するのが良いと思われます。

他人との情報共有

Web上に置いた情報を簡単に共有できると便利でしょう。

現在、Web上で情報を整理したり共有するためのさまざまなシステムが利用されていますが、上記の要望をすべて満たすものはありませんでした。

Scrapbox

図1 Scrapbox
図1 Scrapbox

私は、Web上に気軽に情報を書いて簡単に共有できるScrapboxというシステムを開発して利用しています。長年に渡って「Gyazz」という名前のWikiを作成して使っていましたが、Scrapboxはこれを大幅に改良して前述の要件をすべて満たすようにしたものです図1⁠。

Scrapboxは次のような特長を持っています。

ブラウザ上で情報編集/整理

Scrapboxではあらゆる情報をWeb上に置き、ブラウザで閲覧や編集を行います。このためあらゆるパソコンやスマホなどから同じデータにアクセスできます。

グループで利用

ScrapboxのページにはユニークなURLがついており、個人で利用することも共有して利用することもできます。

強力な編集機能

ScrapboxのページはEmacsのようなテキストエディタと同じようにブラウザ上でWYSIWYG(What You See Is What You Get)的に編集を行えます。編集されたテキストは自動的に保存されるので保存ボタンなどを押す必要はありません。

リアルタイム同時編集

ScrapboxではGoogle Docsと同じように、複数ユーザが同時にリアルタイムにWYSIWYG編集することができます。

リンクの活用

Scrapboxではタグを利用して情報管理を行います。ScrapboxはWikiなので、⁠増井」というページに「人物」というタグを書くとこれは「人物」というページへのリンクになりますが、このとき「人物」ページから「増井」ページへのリンクも同時に作成されるようになっています。このため「増井」のような名前を忘れたとしても「人物」ページから「増井」ページへのリンクを見つけることができます。

このような「逆リンク」を利用すると、特別なタグ検索機能を用意しなくても、タグ的なものをすべて独立したWikiページとして作成するだけでタグを用いた検索が利用できることになります。

また、Scrapboxではリンク先ページからリンクされているページ(2ホップ先のページ)までを関連ページとして表示するようになっているので、⁠Steve Jobs」のページも「人物」ページにリンクされている場合「増井」のページから「Steve Jobs」のページを直接参照できます図2⁠。

図2 リンクの構造
図2 リンクの構造

たとえば「湘南台」のページを表示したときは、湘南台のラーメン屋のページや私のページは表示されますがSteve Jobsのページは表示されませんし、Steve Jobsのページを表示したときは「人物」つながりで私のページやJonathan Iveのページは表示されますが、慶應大学や湘南台のページは表示されません。

代表画像

リンク先ページを表示するとき、ページに含まれる画像を表示するようになっているので、関連ページの視認性がよくなっています。

その他各種の便利機能

各種の簡単なタグ記法、プログラムコードをきれいに表示する機能、簡単な記法による文字装飾、テキストと同じ大きさで画像を文中に埋め込むアイコン表示機能など、たくさんの便利な機能が搭載されています。

Scrapbox利用例

ScrapboxはWebから利用できます。Scrapboxを長年に渡って利用してきた例を紹介します。

研究室での利用

私の研究室では数年に渡ってScrapboxを利用しており、2016年末現在、約8,000ページが作成されています。研究室に所属する学生の興味はいろいろであり、論文や研究トピックや開発Tipsのような情報に加え、ラーメン情報もアニメ情報も部品情報もイベント情報もすべて同じところに置いてあります。雑多な情報が何千ページもあるとたいへんなことになりそうですが、とくに分類を行わなくても関連ページやカテゴリをページとして関連付けておくだけで、これらの情報が適切に分類管理されるのが便利です。

研究室のScrapboxのトップページは図3のようになっています。研究関連情報からアニメ情報、ラーメン情報までかなり雑多な情報が並んでいることがわかります。

図3 研究室のトップページ
図3 研究室のトップページ

ここで「AD620」という部品に関するページを選んで表示すると、その部品の詳しい情報が表示され、似た部品など関連研究のページが表示されます図4⁠。この部品ページには「ストレンゲージ」⁠オペアンプ」というページへのリンクが定義されているので、同じページへのリンクを持つ「キッチンスケール」「LMC660」が関連ページとして表示されているというわけです。

図4 1つの部品ページを開くと関連する情報がすべて表示される
図4 1つの部品ページを開くと関連する情報がすべて表示される

一方、藤沢のラーメン屋のページを選んで表示すると、藤沢やラーメン屋のページがたくさん関連ページとして表示されます図5⁠。部品情報もラーメン屋情報も同じ場所に書いてあるのですが、リンク関係がまったく違っているので別のクラスタとしてうまく管理できています。

図5 藤沢のラーメン屋のページを開いたところ
図5 藤沢のラーメン屋のページを開いたところ

UIPedia

前述の例は研究室内の人間だけが参照できるページでしたが、ユーザーインターフェースに関連する論文やシステムなどをScrapboxで公開しています図6⁠。UIPediaページは誰でも閲覧できますし、参加も可能になっています注3。

図6 入力インターフェースの研究ページ
図6 入力インターフェースの研究ページ

文献情報を管理するさまざまなシステムが利用されていますが、文献データベースでは入力できる情報の属性が限られているのが普通です。Scrapboxを使うと、タイトルや著者名のような一般的な書誌情報だけでなく著者の写真や弟子筋情報、配偶者情報を記述したり、普通の文献整理システムではできないことができるので味のある情報ページにできます。

家族情報

私は個人的なメモや予定表、TODOなどをすべてScrapboxで管理しており、現在6,000ページほどが作成されています。また家族間で共有したい情報もScrapboxで管理しています。親戚の連絡先、銀行口座情報、各種の契約情報、予定表など、家族間で共有したい情報は意外とたくさんあるものです。こういった情報は住所録やスケジュール帳のようなアプリケーションで管理している人が多いと思いますが、家族関連情報はすべて1つの場所に置いておけば何かと便利です。私の場合、家紋の情報、家系図、引っ越し履歴など家族に関連するさまざまな情報を書いていたら簡単に100ページを越えてしまいました。

私はこの考えに基づくシステムを10年以上利用しており、Scrapboxはその最新版です。多くの機能を盛りこんだために現在のScrapboxの仕様はある程度は大きなものとなっていますが、多くのアイデアは「コロンブスの卵」的であり、仕様のシンプルさは保てています。次号では、Scrapboxのさらに詳しい利用法および実装について解説します。

Software Design

本誌最新号をチェック!
Software Design 2022年9月号

2022年8月18日発売
B5判/192ページ
定価1,342円
(本体1,220円+税10%)

  • 第1特集
    MySQL アプリ開発者の必修5科目
    不意なトラブルに困らないためのRDB基礎知識
  • 第2特集
    「知りたい」⁠使いたい」⁠発信したい」をかなえる
    OSSソースコードリーディングのススメ
  • 特別企画
    企業のシステムを支えるOSとエコシステムの全貌
    [特別企画]Red Hat Enterprise Linux 9最新ガイド
  • 短期連載
    今さら聞けないSSH
    [前編]リモートログインとコマンドの実行
  • 短期連載
    MySQLで学ぶ文字コード
    [最終回]文字コードのハマりどころTips集
  • 短期連載
    新生「Ansible」徹底解説
    [4]Playbookの実行環境(基礎編)

おすすめ記事

記事・ニュース一覧