バーr……blog のようなもの 2025 年 04 月

04 月 04 日 ( 金 )

思考整理のためのツールを考える Part 1

タイトルとは若干異なり、思考整理に流用できるシステム設計用ツールの使いかた、というお話になります。

この連載のきっかけは Heritage と名付けた自分の疾患の 30 年に渡る知見をまとめたサイトを作り、それを訪問看護の看護師さんに見せたことになります。

話の流れでツールを教えて欲しいとの看護師さんにお願いされたので、PlantUMLGraphViz ですよとツール名は伝えたのですが、それらを自分は思考整理のために使っていることもあるし、他の IT 技術者にも役立つことが予想もされたので、どのようにそれらのツールを使うのかということを整理するのも悪くないかと考えたわけです。

Heritage には PlantUMLGraphViz というソフトウェアで作成した svg フォーマットの図が描かれています。これらのソフトウェアはテキストエディタで作成したテキストファイルを svg、png、jpeg などの画像ファイルに変換します。

画像のレイアウトはほぼ全てをソフトウェアに任せるということになり、あまりユーザが自由自在にレイアウトできるわけではありません。というよりも自由にレイアウトするのはほぼ不可能です。

システム・エンジニアやプログラマーは、時間に追われる職能であり、なるべくならシステムの要件整理やシステムの最適化、システムの設計、システムの実装など頭脳労働に重点的に時間を割り振りたいと願うようになる職能です。

なので例外はあるものの仕事上では図の作成や修正などのオペレーション作業になるべく時間を取られたくない、凝りたくないと願うことが多い人種です。そのためソフトウェアに任せることができることは任せてしまえと考える人間が非常に多い職種でもあります。筆者も当然その一人です。

というのは嘘八百で IT エンジニアは通常道具大好き、ツール大好き人間です。テキストエディタの設定に平気で数日時間を潰すような人種です (もちろん例外もあります)。ですが仕事の時間は自制して……自制できてるかなぁ……自信があまりありません。でも思考の邪魔をするなっ!!とキレやすい人種というのは確かです……確かだと思います……まぁちょっと覚悟はしておけ?

話を戻します。

Photoshop などの画像編集ソフトは美しい図を作成することができます。ただ Photoshop などの画像編集ソフトの問題は IT エンジニアにとっては編集に時間がかかりすぎるということに尽きます。なにかの成果物を最も早く編集できるものは何かと問われたら、プログラマーなら十中八九それはテキストファイルだと答えるでしょう。

そのように考える先人はたくさんいたに違いありません。そのようなニーズを持つ先人たちが作り上げ、今もメンテナンスが続けられているのが先に述べた PlantUMLGraphViz などのツールになります。

これらのツールを使う前提として、ユーザが以下の手順で画像を得ることになるということを知っておかねばなりません。

  1. ユーザはソフトウェアが処理できる決められた書式のテキストファイルを作成する
  2. テキストファイルをそれらのツールで画像に変換する
図 作業手順概念図 (D2 により作成)

変換作業があるので一見手間がかかりそうな気がするかもしれません。ですが実際には変換自体はプログラムが行うので、変換中の図を作っている本人の手間はまったくありません。

それだけではなくテキストファイルの編集の過程で、思考の整理に集中できます。これは大きなメリットです。それに伴ってさまざまなエピソードを思い出したり、新しい知見が発現することすらあるので、テーマに対する知見がますます広がったり深まるという効果もあります。

筆者はマインドマップや KJ 法、その他ブレインストーミングのための技法など、様々な非 IT 的なメソッドを仕事で活用してきました。それらの仕事の様々な場面で活用されている各種メソッドと、連載で取り上げているテキスト画像化法との共通点を非常に強く感じています。そのようなこともあり、テキストファイルを利用した思考整理は非エンジニアにも是非ともお勧めしたいところです。

更に述べるのならテキストファイルで思考を整理するのもかなり有効なのですが、そのテキストファイルを元にして自分の思考を図の形で可視化することは、自身の思考を俯瞰するのに非常に適しています。

それはまるで山を登ったり国内外を旅するときに地図を大きく目の前に広げて、自分の現在位置やこれまで歩んできた道、これから歩むべき道、その地形や困難さ、容易さなどを俯瞰するようなものです。

自分自身の思考でここはおかしんじゃないか?とか、これは間違ってるなとか、ここは過剰ではないか?とか、そもそも進むべき道を間違えてるとか、そのような自身の考えの間違いや、望ましくない考えや、望ましくない考えの強度にも気が付きやすくなります。

単純化して言うなら一連の作業は自分自身の思考の整理と見える化、そしてアップデートに非常に有効だということになります。

次回は具体的にどのようなツールがあって、それぞれどのようなときに向いているのかを、不完全なものになるかもしれませんが、整理していこうと思います。

思考整理のためのツールを考える Part 2

日記であるにもかかわらず日が変わっていませんが書きはじめました。

ツールを選択する場合にそれぞれのツールのデモを見ることができると助かります。そして幸いにもそのような Web サイトがあります。Community list of comparisonsbetween Text to Diagram tools というサイトがそうです。

このサイトのデモでは以下のソフトウェアの実行結果を閲覧することができます。GraphViz、D2 は複数のレイアウトエンジンから 1 つを選ぶこともできます。

  • MermaidJS

    生成される図はカラフルで美しいのですが、汎用的な図を描くの適しているかと言うと PlantUML や D2 とあまりかわらないように感じます。また最新の PlantUML でも同等の美麗さで図が作成されるようになっています。そのような事情もあり個人的にはあまり必要性を感じられず、ほとんど使っていません。やはり綺麗ではあるのですがだ。

    ただマインドマップは本当にマインドマップらしい画像を出力します。もちろんオリジナルのトニー・ブザン氏のマインドマップにはかないませんが。

    またいわゆる普通のグラフ、円グラフ、レーダーチャートなど他のソフトウェアでは描けない図を描くことができますので、何が描けるのかを公式サイトのドキュメントでチェックしておくとよいと思います。

    いろんな図がカラフルに描かれるので、使ってみたいと惹かれるソフトウェアであることは間違いありませんし、Web との親和性も高いので人気があります。

    コネクションの矢印ヘッドの種類がもっと増えるかカスタマイズできるようになれば、他を押しのけて個人的利用時の第 1 選択肢になると思います。時間をつくってもう少し評価を深めたいところです。

  • D2

    もしかすると汎用的な図を描く目的があって、このソフトが目的を満たすのであれば PlantUML 以上によい選択肢かもしれません。

    ソースの構造が html や css、オブジェクト指向言語の影響を受けており可読性が非常に高い (ただしそのためにパンチ量が増える場合もある) という特徴があります。プログラマーだと一番好きになりそうな変換プログラムかもしれません。筆者はこのテキストファイルの記法が一番気に入っています。

    使用可能なレイアウトエンジン
    • Dagre: GraphViz のレイアウトに似たレイアウトになる D2 のデフォルトレイアウトエンジン
    • ELK: 矢印線が垂直線と水平線になるようにレイアウトされるエンジン
    • TALA: 表現力は最高のレイアウトエンジンであるが利用にはサブスクリプション契約が必要 ($20/月 ≒ ¥3000/月)
  • 先に紹介したCommunity list of comparisonsbetween Text to Diagram tools でデモを見ることができるのですが、このサイトではほぼ全てを TypeScript という Web ブラウザで動作するプログラミング言語で実装していることもあり、パフォーマンスや Web ブラウザへの負荷が高いという問題もあります。とはいえ簡便に各プログラムの差異を確認する程度の利用であれば大きな問題は発生しないかもしれません。

    それぞれのプログラムに特徴や得手不得手がありますので、デモを見た上でこれらのツールを都度適切にチョイスすればよいかと思います。筆者がつくった図ももちろん参照していただければ幸いです。

    次回から実際のそれぞれのプログラムの使い方について説明していきたいと思います。最初に筆者が最も使っている PlantUML を取り上げたいと思います。

    思考整理のためのツールを考える【付録 A】

    これまで述べてきたツールや Web でも使えるアイコンのリストを見つけたのでメモしておく。

    Icônes
    概要
    @antfu によって開始され、現在は貢献者のチームによって維持されているパッケージ群のうちの svg アイコン。素晴らしい。
    Web サイト
    https://icones.js.org/
    ライセンス
    MIT License - Anthony Fu 2020
    Icons for D2
    概要
    Terrastruct 社が維持管理している svg アイコン群。法的に有効なライセンスがどこにも明記されていないので不安は残るが Terrastruct 社は将来的にも D2 や Web で無償で使って構わないとホームページに記載している。
    Web サイト
    https://icons.terrastruct.com/
    ライセンス
    詳細は不明だが Web ページに以下の記載がある (原文は英語)。
    "D2 ダイアグラムで使用するために厳選されたアイコンとグラフィックのコレクション。これらのホストされたアイコンは、お客様の便宜のために無料で提供されていますが、D2 はこれらを使用することに一切制限されていません。D2 のアイコンは、Web またはローカル上の任意の画像に設定できます。アイコンは追加または削除される可能性がありますが、既存の URL のアイコンが期限切れになったり変更されたりすることはありません。"
    少なくともオープンソースライセンスであるとはどこにも明記はされていない。Terrastruct, Inc. が Social にある各社意匠のライセンスフィーを負担しているのかもしれず、それらを問題なく使用し、成果物を公開してもかまわないのかもしれない。しかしライセンスが明確化されているわけでもない。Social にある各社意匠は保守的に利用、つまり私的利用にとどめた方が法的に安全かもしれない。
    SVG Repo - Free SVG Vectors and Icons
    概要
    有限会社 SVG Repo が維持管理するフリーなライセンスで公開されている svg アイコン集。これも素晴らしい。
    Web サイト
    https://www.svgrepo.com/
    ライセンス
    ライセンスのページにライセンスの種類がリストされている。個々の svg 画像のライセンスは各画像のページに記載されているので、そこで確認することになる。
    Font-Awesome
    概要
    Font Awesome というコミュニティ(?) が維持管理している svg リソース集。株式会社なのか任意団体なのか不明だが github.com 上でオープンソースライセンス等のオープンなライセンスにより svg アイコンが公開されている
    Web サイト
    https://github.com/FortAwesome/Font-Awesome
    ライセンス
    ライセンスに複数のライセンスがリストされており、画像単位でライセンスが明記されてはいないので、デュアルライセンスだと思われる。公式ホームページでは有償ライセンスの拡張版も販売されている。
    Google Fonts
    概要
    Google が公開管理している icon 集。
    Web サイト
    https://fonts.google.com/icons?icon.size=24&icon.color=%231f1f1f
    ライセンス
    icon のライセンスは Apache License 2.0
    Tango Desktop Project
    プロジェクトが終了している?サイトがすでに存在していない。

    早めに終わらせておかないといけないかもリスト

    つい先程、これはやっておきたいことを早めに終えておかないといけないかも、と思わせるできごとがあったので、その早めにやっておきたいことリストをメモしておく。できごと自体は確定ではないので確定したら公開するかもしれないし、しないかもしれない。現時点ではもしかして、という個人の予感にすぎないので伏せておく。