このページは、古いです。。。

nicotalk&キャラ素材配布所 http://www.nicotalk.com/charasozai_kt.html (2024年5月16日)

動機

onenoteがプロプライエタリで不自由なので、自分中心の無料の代替品を適当にwebベースで作りたい。

リポジトリ

現時点でのわかることリスト

OneNote

 OneNote は Office 365などに含まれていて、有償版とMS store からダウンロードできる無償版の2種類がある。無償版はしつこく MS 365 に課金するように催促される。

 windows 環境であればローカルにデスクトップ版をインストールし、今までのOffice 2021とか、Office 2007みたいに使うこともでき、OneNote も同じ感じである。クラウド機能もあるらしいが、私は大抵のクラウドサービスには否定的で明るくないので、使ったことはない。

 私がOneNoteを使っていたときは、半期ごとにノートを分けて、その中に授業ごとのセクションを作り、ページで細かい授業単位のデータ管理をするという感じであった。

OneNote サンプル
階層構造の利用例
OneNote サンプル
OneNote利用例
OneNote サンプル
様々な入力やメディアを扱える例

既存の代替っぽいもの(全てはリストアップしていない)

Google keep

 数カ月ほど使ったことはあるが、使っていくうちに古いメモが下の方に行き、しかも、せっかくメモの付箋を書いたのに、あとから見返さないという問題があった。

 一応メモを色やピン留め、リマインドという形で分類したりできるという機能はある。情報が少ないうちはいいかもしれないが、あまり大規模なことはできないという印象がある。

 逆に言えば、Google keep 的な付箋スタイルUIや機能は、プロジェクト単位での軽いタスクの管理としては、一つありかもしれないあり方ではあった。

 今回のソフトウェア?では、Google keep みたいなUIや機能をもたせた特別な”ページ”をテンプレとして選べて作れ、タスク管理の一助として使えるようにするのはありかもしれない。

 実装としては、ページを拡張できるように色々インタフェースを定義したりAPIを定義したりとかになる気もする。

Evernote

 聞いたことはあるが、使ったことはない。私の印象としては、使うとロックダウンされてしまいそうなので使いたくないという印象だった。

Notion

 一ヶ月ほど使ったことはあるが、AI機能が、意思にかかわらずに有効になっていたり、記録した内容にいちいち”良くする”というスタンスで干渉してくるところが嫌であった。

 かつ、クラウドベースで、オフラインやローカル、LAN内だけで完結するインターネットのない環境で、プライベートに完結することを許さない感じが、どこか監視されているようで閉塞的でかなり息苦しいと感じられる。

既存の代替品の候補としてよく挙げられるツールの共通点

  • 商業ベース
  • クラウド
  • ローカルで動かすことを前提としてない
  • クラウドベースだとAIモデルの学習にデータが使われてしまう可能性
  • 最初は無料としつつも、あとからしつこく課金させるビジネスモデルへの誘導がある可能性
  • クラウド系だとサービスが潰れたとき、データ消失、非互換の恐れ
  • ある程度包括的にOneNoteの機能を持っているものはなく、いくつかの独自の設計や思想に基づいたものが乱立している印象

OneNote の機能

階層的な管理

Office 系列と似たような書式フォーマットや操作

自由なオブジェクトの配置

ポイント

  • サーバクライアントモデル

    • UI 処理をするクライアント(クライアント側)
    • OS依存のAPIや実装のためのバックエンド(クライアント側)
    • データ関連のバックエンド(サーバー側)
    • P2P
  • オープンなデータ構造

    • JSON や XML などをサポートしたい
    • human readable な仕様にしたい
    • 大きなバイナリデータとかはどうするかが課題 それについては、Unityみたいにディレクトリ構造を形成して管理してみてもいいかもしれない。
  • 拡張可能
     テキストや画像、インクオブジェクトだけでなく、独自のバイナリ構造を持つファイルや、独自のガジェットやオブジェクト的なものも扱えるように、機能を追加できる仕様にしたい。

基本的なアーキテクチャ

 x11みたいなサーバークライアントモデルな構造にしたい。

フロントエンド

 chromeやfirefoxなどのブラウザ、Electornなどを使う。vite,react,typescriptとかだと比較的モダンに仕上がると思う。

バックエンド

 適当にpythonとかphpでもいいので、データ処理とOS固有のAPIの抽象化と呼び出しを担う

基本的なデータ構造

ノート構造

  • Notebooks
    • Section
      • Pages1
      • Pages2 …

ページ構造

 基本的には、汎用の位置情報などを保持するオブジェクトが定義され、それを継承することで、テキストや画像、動画、PDF、インク、3D view(include pmx and blender ext files -> three.js) バイナリデータなどをそれぞれ専用のクラスを用意し、扱う。

基本的なUI機能や入力など

  • ファイルのドラックアンドドロップ
  • 貼り付け、コピー
  • InkAPI
  • マウス、キーボード、タッチ
  • 複数ウィンドウ

ChatGPT

Open as a page
Open as a page

カバー画像のリンク

Ref