logo logo

January 02, 2020 07:39

Jupyter NotebookみたいなMarkdown wiki、「Dendoron」を作ってみた

Dendoronはどんなサービスか

昨今、多くの方は情報整理ツールとしては個人や業務関わらず、様々なサービスをご利用されていると思います。

  • はてなブログやqiitaにブログを書いている人
  • trelloやbacklog、wikiでチームの情報を共有している人
  • slackやteamsで小さいハードルで細かい単位でスピーディーに情報共有している人

それぞれが色んな要求を満たしてくれています。

Jupyter Notebookみたいな情報整理ツール

  • 私個人はデータサイエンスを主な業務にしているため、Jupyter Notebookを頻繁に使います。これはインタラクティブなpython実行環境であり、セルというカード単位でプログラムを実行し、結果を出力できるのが最大の魅力のアプリケーションです。インタラクティブに途中結果を見ながら試行錯誤的にコードを実行できるため、データサイエンス的な開発に非常にマッチしています。

  • 私自身、常日頃から仕事をこなす際は京大カードアイデアの作り方に習い、カードや一枚ノート単位の書き物をフル活用しています。例えばslackやteamsでToDoや思考の整理事を個人の独り言チャネルに呟くように使っている方も多いかと思いますが、このような使い方に特化すると、もっと欲しくなる機能が色々と思いついたわけです(機能のところで後述)

  • Jupyter Notebookを情報整理ツールのように使えたら、またwebの特性を活かして多人数でそれができたら便利だなと思い、Dendoronの開発を個人の趣味プロジェクトとしてスタートさせました。

主な機能

主だった機能は以下にあげるようなものです。

  • 一つのボードにカードを追加していく形で情報整理していく
  • markdownとmathjax(数式編集)をサポート
  • 一つのボードの中でカードの順番の入れ替え、ボード間での移動ができる機能
  • 階層情報を付加できるので、マインドマップのように使ったり、畳み込む機能(アウトライナーも標準装備)
  • タグとカテゴリーをボードに付加できるので、wikiのように管理する機能
  • 複数人で一つのボードを同時編集できる機能
  • 公開/非公開を制御できるので個人の勉強メモにも、ブログのようにも利用することができる機能

簡易デモ

description for this picture

カード単位の利点

カード単位で情報整理することによって、以下のような利点があると考えています。

  • 発散思考のモードでは流れや論理構造に束縛されることなくアウトプットできる(どこに何を書くべきか考えたり探したりしたくない)
  • 一方で収束思考のモード、或いは人に見せるようなアウトプットも目指せるように、カードの並び替えや階層構造が随時付加できる要件を満たせる
  • 情報の再利用性をあげたい
    • まだ機能に反映しきれていないが、将来的にはカードを検索してコピーしたりtwitterのリツイートのように情報収集できるようにしたい

まとめ

基本的には本業の業務をこなしつつ、企画から実装、デザインまで一人でやっていて、途中知人に協力してもらいながら、少しずつ開発を進めていきました。

個人的に頭にあるものをこしらえていく過程が面白いと感じる性分で、それを実現する過程で様々な実装上の困難やしんどいことも経験したものの、皆さんにも是非個人の開発プロジェクトを初めてみて欲しいなと感じています。

今後の計画

  • 現時点で行いたい機能改修、追加は色々あります。 ただこと機能の数の点では極力少ない方がサービスとしては好ましく、ブラッシュアップを優先するつもりです。
  • 身辺のエンジニアの方にも厳しい改善案と共に好評をいただいているので、コミュニティとしての側面も育てていきたいという思いが現時点では強く、皆さんに使ってもらいながら要望に答えていけるような開発体制にシフトしていきたいと考えています
  • トップページからは機能制限版でエディターのデモを動かせるので、使用感をおたしかめの上、ユーザー登録できるようにもなっています