<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>躓いたところ on Nyanmo main blog</title>
    <link>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/</link>
    <description>Recent content in 躓いたところ on Nyanmo main blog</description>
    <generator>Hugo</generator>
    <language>ja</language>
    <lastBuildDate>Tue, 27 Jan 2026 13:36:11 +0900</lastBuildDate>
    <atom:link href="https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>2025/9/19-やったことリスト</title>
      <link>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-9-19/</link>
      <pubDate>Fri, 19 Sep 2025 19:00:14 +0900</pubDate>
      <guid>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-9-19/</guid>
      <description>&lt;h2 id=&#34;この記事を作った動機&#34;&gt;この記事を作った動機&lt;/h2&gt;
&lt;p&gt;　2025/9/10 から、今日に至るまでの間で OneNote 代替に関して、実装をするなど研究を進めているうちにわかったことなどを簡易的に記録する。&lt;/p&gt;
&lt;h2 id=&#34;networking&#34;&gt;Networking&lt;/h2&gt;
&lt;h3 id=&#34;フロントエンドがレスポンスを識別できない可能性&#34;&gt;フロントエンドがレスポンスを識別できない可能性&lt;/h3&gt;
&lt;p&gt;　作っている途中でわかったこととして、今回の websocket による実装だと、無数の React コンポーネントがデータサーバに対してリクエストを送った場合、どのコンポーネントがリクエストを送ったのかレスポンスが帰ってきたときにわからないという問題があった。&lt;/p&gt;
&lt;p&gt;　具体的には、リクエストに対して、”誰”がリクエストを送ったのかという識別子がないことと、バックエンドからメッセージが帰ってくると一斉に、addEventListener で onmessage イベントを待っているコンポーネント全体にメッセージが届いてしまい、結果としてレスポンスの受け取りで整合性が取れなくなるというものである。&lt;/p&gt;
&lt;p&gt;　そこで今回は、各リクエストに対し、UUIDを付与し、データサーバから返信するときはそのUUIDとリクエストしたコマンド名をレスポンスに含めるようにすることで、フロントエンドの各コンポーネントが自分が送ったリクエストかどうか識別できるようにした。&lt;/p&gt;
&lt;p&gt;　ちなみに今回のような問題は HTTP プロトコルで実装すると起こらなそうである。&lt;/p&gt;
&lt;h3 id=&#34;パフォーマンスの懸念&#34;&gt;パフォーマンスの懸念&lt;/h3&gt;
&lt;p&gt;　フロントエンド側の websocket の addEventListener の onmessage イベントは現状の実装だと、コンポーネントの数次第でその数だけコールバック関数があり、処理が走ることになる。&lt;/p&gt;
&lt;p&gt;　そのため、その数だけ自分に対するリクエストのレスポンスかどうか識別することになり、パフォーマンスにおいて懸念がある。とりあえずは顕著になるまではこの問題はおいておこうと思う。&lt;/p&gt;
&lt;h2 id=&#34;データサーバとフロントエンドが分離しているアーキテクチャについて&#34;&gt;データサーバとフロントエンドが分離しているアーキテクチャについて&lt;/h2&gt;
&lt;p&gt;　現状のアーキテクチャだと、例えばリモートのデータサーバにアクセスしていて、必ずしもネットワークが安定していなかったり、一時的にオフラインになる可能性がある環境において、安定しないことが考えられた。&lt;/p&gt;
&lt;p&gt;　そこで、ローカルでスタンドアロンで動かすときと、データサーバがVPN経由などで遠隔地にある場合の２つで異なる考え方をすることにしてみた。&lt;/p&gt;
&lt;h3 id=&#34;スタンドアロンでデータサーバもローカルで動いているとき&#34;&gt;スタンドアロンでデータサーバもローカルで動いているとき&lt;/h3&gt;
&lt;p&gt;　単純にデータサーバが一つ起動し接続される。
　&lt;/p&gt;
&lt;h3 id=&#34;データサーバがリモートにあるとき&#34;&gt;データサーバがリモートにあるとき&lt;/h3&gt;
&lt;p&gt;　フロントエンドが動いているクライアント側にもcacheとしてデータサーバーがある。開いたページやインデックスを保持したりする。&lt;/p&gt;
&lt;p&gt;　フロントエンドは、リモートのデータサーバと直接通信せず、フロントエンド側にあるデータサーバからリダイレクトしてもらうように指示する。&lt;/p&gt;
&lt;p&gt;　cacheは通常のノートブックと同じようなデータ形式で保存する。&lt;/p&gt;
&lt;p&gt;　cacheには、notebook を保存する場所にしてされたフォルダ内に、サーバーごとに専用のフォルダが作られる。&lt;/p&gt;
&lt;p&gt;　serverName はホスト名やIPアドレスとする。
　&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;notebooksFolderRoot
&lt;ul&gt;
&lt;li&gt;localNotebook1&lt;/li&gt;
&lt;li&gt;localNotebook2&lt;/li&gt;
&lt;li&gt;localNotebook3
&amp;hellip;&lt;/li&gt;
&lt;li&gt;serverName-cache
&lt;ul&gt;
&lt;li&gt;remoteNotebook1&lt;/li&gt;
&lt;li&gt;remoteNotebook2&lt;/li&gt;
&lt;li&gt;remoteNotebook3
&amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;各ページと各ファイルのメタデータ&#34;&gt;各ページと各ファイルのメタデータ&lt;/h2&gt;
&lt;p&gt;　メタデータの扱いで悩んだこと。info と pageInfo コマンドを作っていて悩んだことがある。&lt;/p&gt;
&lt;h3 id=&#34;各ページのメタデータ&#34;&gt;各ページのメタデータ&lt;/h3&gt;
&lt;p&gt;　今の仕組みだとpageとしては、markdown 形式と、独自に自由に定義できる json 形式のものがあり、json形式の物に関してはどんなファイルが添付されているかとか、どんなタグが付いているかとか、独自に定義して、容易に管理することが可能である。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;pageType&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;free&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;tags&amp;#34;&lt;/span&gt;: [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;This&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;is&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;testpage&amp;#34;&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;files&amp;#34;&lt;/span&gt;: [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;testfile.txt&amp;#34;&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;pageData&amp;#34;&lt;/span&gt;:{ &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/*&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;page&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;data&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;*/&lt;/span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;　しかし、markdown については、あんまり markdown に特殊なデータを埋め込みたくないことから、専用の.metadataファイルでも設置しようかと悩んだ。&lt;/p&gt;</description>
    </item>
    <item>
      <title>2025/9/21-やったことリスト</title>
      <link>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-9-21/</link>
      <pubDate>Sun, 21 Sep 2025 22:25:43 +0900</pubDate>
      <guid>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-9-21/</guid>
      <description>&lt;h2 id=&#34;この記事を作った動機&#34;&gt;この記事を作った動機&lt;/h2&gt;
&lt;p&gt;　2025/9/10 から、今日に至るまでの間で OneNote 代替に関して、実装をするなど研究を進めているうちにわかったことなどを簡易的に記録する。&lt;/p&gt;
&lt;h2 id=&#34;nested-dict-python&#34;&gt;nested dict (python)&lt;/h2&gt;
&lt;p&gt;　dict 型のデータ内部に、dict型のデータを単純にネストすることはできないようである。何かしらの方法でアクセスできないデータが dict型のデータの内部で発生すると、以下のようなエラーが出るようである。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;&amp;lt;&amp;lt;{&amp;#34;command&amp;#34;:&amp;#34;info&amp;#34;,&amp;#34;UUID&amp;#34;:&amp;#34;94035132-f796-4b75-bb16-6619d8bf7bc1&amp;#34;,&amp;#34;data&amp;#34;:null}
connection handler failed
Traceback (most recent call last):
  File &amp;#34;/usr/lib/python3.13/site-packages/websockets/asyncio/server.py&amp;#34;, line 376, in conn_handler
    await self.handler(connection)
  File &amp;#34;/home/username/work/OneNoteAlternative/firstPrototype/backend/dataServer/main.py&amp;#34;, line 13, in mainLoop
    await receiveLoop(websocket,controller.controler)
  File &amp;#34;/home/username/work/OneNoteAlternative/firstPrototype/backend/dataServer/helper/netwrok.py&amp;#34;, line 23, in receiveLoop
    await callback(message,websocket)
  File &amp;#34;/home/username/work/OneNoteAlternative/firstPrototype/backend/dataServer/controller.py&amp;#34;, line 41, in controler
    await commands[requestedCommand](request,websocket)
  File &amp;#34;/home/username/work/OneNoteAlternative/firstPrototype/backend/dataServer/commands/info.py&amp;#34;, line 88, in info
    &amp;#34;data&amp;#34;: {
            ^
        notebookJSONinfo
        ^^^^^^^^^^^^^^^^
    }
    ^
TypeError: unhashable type: &amp;#39;dict&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;notebookjsoninfo-の中身&#34;&gt;notebookJSONinfo の中身&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;{
    &amp;#39;test&amp;#39;:{
        &amp;#39;name&amp;#39;: &amp;#39;test&amp;#39;,
        &amp;#39;createDate&amp;#39;: &amp;#39;2025/09/13&amp;#39;,
        &amp;#39;updateDate&amp;#39;: &amp;#39;2025/09/13&amp;#39;,
        &amp;#39;id&amp;#39;: &amp;#39;bb6f7d1c-c722-495c-923b-ab9e9574ef5b&amp;#39;, 
        &amp;#39;pages&amp;#39;: [&amp;#39;test.md&amp;#39;, &amp;#39;test.json&amp;#39;], 
        &amp;#39;files&amp;#39;: [&amp;#39;testfile.txt&amp;#39;]
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;問題のコード&#34;&gt;問題のコード&lt;/h3&gt;
&lt;p&gt;　以下の状態だと、data key の中に、アクセスできないデータ (notebookJSONinfo) が発生している。&lt;/p&gt;</description>
    </item>
    <item>
      <title>2025/10/2-やったことリスト</title>
      <link>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-10-2/</link>
      <pubDate>Thu, 02 Oct 2025 03:28:54 +0900</pubDate>
      <guid>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-10-2/</guid>
      <description>&lt;h2 id=&#34;この記事を作った動機&#34;&gt;この記事を作った動機&lt;/h2&gt;
&lt;p&gt;　2025/9/24 から、今日に至るまでの間で OneNote 代替に関して、実装をするなど研究を進めているうちにわかったことなどを簡易的に記録する。&lt;/p&gt;
&lt;h2 id=&#34;フロンエンド関連&#34;&gt;フロンエンド関連&lt;/h2&gt;
&lt;h3 id=&#34;動作の様子&#34;&gt;動作の様子&lt;/h3&gt;
&lt;div style=&#34;display: flex; justify-content: center;&#34;&gt;



    
    

        &lt;video style=&#34;margin:10px; width: 100%;&#34; src=https://www.nyanmo.info/posts/idea/onenoteAlternativeCreation/WhereIstumbled/2025-10-2/2025-10-2-%e7%a0%94%e7%a9%b6%e8%a8%98%e9%8c%b2%e3%81%ae%e5%8b%95%e7%94%bb.mp4 controls/&gt;
        
&lt;/div&gt;
&lt;h3 id=&#34;ネットワーク関連&#34;&gt;ネットワーク関連&lt;/h3&gt;
&lt;h4 id=&#34;データの扱いを変更&#34;&gt;データの扱いを変更&lt;/h4&gt;
&lt;p&gt;　websocket 経由でデータサーバとフロントエンドがやり取りする型をフロントエンド側に拡張する前提で汎用的に定義した。自分で data key の項目は書かなければならない。(database.tsx)&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-tsx&#34; data-lang=&#34;tsx&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// frontend -&amp;gt; dataserver
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;interface&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;baseResponseTypesFromDataserver&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;status&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;errorMessage&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;UUID&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;null&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;command&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;null&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// frontend -&amp;gt; datasever
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;interface&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;baseRequestTypesFromFromtend&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;command&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;UUID&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// dataserver -&amp;gt; frontend
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;interface&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;baseInterruptRequestFromDataserver&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;componentName&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;command&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;UUID&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;　以下は、(createNotebook.tsx) における baseResponseTypes の例&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-tsx&#34; data-lang=&#34;tsx&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;import&lt;/span&gt; { &lt;span style=&#34;color:#66d9ef&#34;&gt;type&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;baseResponseTypes&lt;/span&gt; } &lt;span style=&#34;color:#66d9ef&#34;&gt;from&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;../network/database&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;interface&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;pageType&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;extends&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;baseResponseTypes&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;data&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; []
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;ネットワーク送信処理の共通化&#34;&gt;ネットワーク送信処理の共通化&lt;/h4&gt;
&lt;p&gt;　database.tsx で共通の websocket でデータをバックエンドサーバに送るための専用のコードを書いた。接続中や切断されていてまだ再接続がされていないときは、 interval 秒後に再試行する仕組みにした。&lt;/p&gt;</description>
    </item>
    <item>
      <title>2025/10/9-やったことリスト</title>
      <link>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-10-9/</link>
      <pubDate>Thu, 02 Oct 2025 14:30:34 +0900</pubDate>
      <guid>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-10-9/</guid>
      <description>&lt;h2 id=&#34;この記事を作った動機&#34;&gt;この記事を作った動機&lt;/h2&gt;
&lt;p&gt;　2025/10/2 から、2025/10/9 に至るまでの間で OneNote 代替に関して、実装をするなど研究を進めているうちにわかったことなどを簡易的に記録する。&lt;/p&gt;
&lt;h2 id=&#34;動作の様子-フロントエンド&#34;&gt;動作の様子 (フロントエンド)&lt;/h2&gt;
&lt;div style=&#34;display: flex; justify-content: center;&#34;&gt;



    
    

        &lt;video style=&#34;margin:10px; width: 100%;&#34; src=https://www.nyanmo.info/posts/idea/onenoteAlternativeCreation/WhereIstumbled/2025-10-9/%e8%a8%98%e9%8c%b22025-10-9.mp4 controls/&gt;
        
&lt;/div&gt;
&lt;h2 id=&#34;todos&#34;&gt;TODOs&lt;/h2&gt;


&lt;p&gt;&lt;details &gt;
  &lt;summary markdown=&#34;span&#34;&gt;TODOs&lt;/summary&gt;
  &lt;p&gt;　2025/10/9 になる間やる項目たち。やりきれなかった分は次に持ち越し。&lt;/p&gt;
&lt;h3 id=&#34;主な項目&#34;&gt;主な項目&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ノートブック作成機能のバグチェックと修正&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ノートブック、ページ関連における作成、削除、コピー名前の変更があった時、selector の情報やページviewを更新するようにする&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ページ作成機能の実装
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンド&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンド&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 新しい階層構造を指定できるようにする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; linux だけでなく windows 環境において、再帰的にフォルダを作成できるようにする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ノートブック削除機能の実装
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンド&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンド&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ページ削除機能の実装
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンド&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンド&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; markdown における編集機能、データセーブ（更新）の実装
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンド (buggy)&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンド&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Selector に未保存の表示を行う&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 別のページを開いても未保存のデータのバッファが管理されるようにする&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 内部構造を説明する図を作る
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンド&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンド&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンド&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンド&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;他の事項&#34;&gt;他の事項&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; File API 周りの実装&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; マルチメディアの対応&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; messagebox の実装&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>2025/10/16-やったことリスト</title>
      <link>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-10-16/</link>
      <pubDate>Thu, 09 Oct 2025 14:10:11 +0900</pubDate>
      <guid>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-10-16/</guid>
      <description>&lt;h2 id=&#34;この記事を作った動機&#34;&gt;この記事を作った動機&lt;/h2&gt;
&lt;p&gt;　2025/10/9 から、2025/10/16 に至るまでの間で OneNote 代替に関して、実装をするなど研究を進めているうちにわかったことなどを簡易的に記録する。&lt;/p&gt;
&lt;h2 id=&#34;動作の様子-フロントエンド&#34;&gt;動作の様子 (フロントエンド)&lt;/h2&gt;
&lt;div style=&#34;display: flex; justify-content: center;&#34;&gt;



    
    

        &lt;video style=&#34;margin:10px; width: 100%;&#34; src=https://www.nyanmo.info/posts/idea/onenoteAlternativeCreation/WhereIstumbled/2025-10-16/%e8%a8%98%e9%8c%b22025-10-16.mp4 controls/&gt;
        
&lt;/div&gt;
&lt;h2 id=&#34;todos&#34;&gt;TODOs&lt;/h2&gt;


&lt;p&gt;&lt;details &gt;
  &lt;summary markdown=&#34;span&#34;&gt;TODOs&lt;/summary&gt;
  &lt;p&gt;　2025/10/16 になる間やる項目たち。やりきれなかった分は次に持ち越し。&lt;/p&gt;
&lt;h3 id=&#34;主な項目&#34;&gt;主な項目&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ページ作成機能の実装&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; linux だけでなく windows 環境において、再帰的にフォルダを作成できるようにする。 -&amp;gt; winpath = someFullAbsolutePath.replace(&amp;quot;//&amp;quot;,&amp;quot;/&amp;quot;).replace(&amp;quot;/&amp;quot;,&amp;quot;\&amp;quot;)&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;mkdir&lt;/code&gt; helper 関数の実装&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 編集機能、データセーブ（更新）の実装&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バッファーのデータストアを実装&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 別のページを開いても未保存のデータのバッファが管理されるようにする&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 内部構造を説明する図とかドキュメントを作る&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンド
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 共通のUIについて、使い方の説明について、ドキュメントを書いた。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; overlayWindow&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; messagebox&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; toolsbar&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; page&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; drawio で説明する図を作る
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; とりあえず図を書くための準備をした。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 他人が構造の理解に必要な分を記録できたか&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; z-index について、どのような割り当てになっているか記録&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンド(更新)
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 新たに追加した、task の仕組みについて、ドキュメントを整備する。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページの実装&lt;/p&gt;</description>
    </item>
    <item>
      <title>2025/10/23-やったことリスト</title>
      <link>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-10-23/</link>
      <pubDate>Thu, 16 Oct 2025 14:04:00 +0900</pubDate>
      <guid>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-10-23/</guid>
      <description>&lt;h2 id=&#34;この記事を作った動機&#34;&gt;この記事を作った動機&lt;/h2&gt;
&lt;p&gt;　2025/10/16 から、2025/10/23 に至るまでの間で OneNote 代替に関して、実装をするなど研究を進めているうちにわかったことなどを簡易的に記録する。&lt;/p&gt;
&lt;h2 id=&#34;動作の様子-フロントエンド&#34;&gt;動作の様子 (フロントエンド)&lt;/h2&gt;
&lt;div style=&#34;display: flex; justify-content: center;&#34;&gt;



    
    

        &lt;video style=&#34;margin:10px; width: 100%;&#34; src=https://www.nyanmo.info/posts/idea/onenoteAlternativeCreation/WhereIstumbled/2025-10-23/%e8%a8%98%e9%8c%b22025-10-23.mp4 controls/&gt;
        
&lt;/div&gt;
&lt;h2 id=&#34;todos&#34;&gt;TODOs&lt;/h2&gt;


&lt;p&gt;&lt;details &gt;
  &lt;summary markdown=&#34;span&#34;&gt;TODOs&lt;/summary&gt;
  &lt;p&gt;　2025/10/23 になる間やる項目たち。やりきれなかった分は次に持ち越し。&lt;/p&gt;
&lt;h3 id=&#34;主な項目&#34;&gt;主な項目&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 編集機能、データセーブ（更新）の実装&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 別のページを開いても未保存のデータのバッファが管理されるように各ページタイプを実装する&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 内部構造を説明する図とかドキュメントを作る&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンド
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; drawio で説明する図を作る
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 他人が構造の理解に必要な分を記録できたか&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンド(更新)
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 新たに追加した、task の仕組みについて、ドキュメントを整備する。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページの実装&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンド
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 共通のUIについて、使い方の説明について、ドキュメントを書いた。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; overlayWindow&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; messagebox&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; toolsbar&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; page&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; オブジェクト変形用に汎用的なコンポーネントを定義する。カーソルがオブジェクトをホバーしているときに出現するようにする。タッチでは、一回タップで出現。（サイズ変更、移動）
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 移動について実装&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; リサイズ機能についての実装
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 右下について実装 (とりあえずこれだけにするかも)&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 下について実装&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 右について実装&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 左上について実装 （正しくitemを更新できないバグありで解消中）&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 左について実装&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 上について実装&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 左下について実装&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 右上について実装&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 編集モードを各アイテムの要素の種類ごとに実装。汎用的には、ダブルクリックされた場合に編集モードに移行するようにする。タッチではダブルタッチで移行する.&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンドを拡張するうえで重要そうな zustand のデータストアの仕様リストを作り、記録を行う。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンド&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; selector の改善&lt;/p&gt;</description>
    </item>
    <item>
      <title>2025/10/30-やったことリスト</title>
      <link>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-10-30/</link>
      <pubDate>Thu, 23 Oct 2025 15:55:41 +0900</pubDate>
      <guid>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-10-30/</guid>
      <description>&lt;h2 id=&#34;この記事を作った動機&#34;&gt;この記事を作った動機&lt;/h2&gt;
&lt;p&gt;　2025/10/23 から、2025/10/30 に至るまでの間で OneNote 代替に関して、実装をするなど研究を進めているうちにわかったことなどを簡易的に記録する。&lt;/p&gt;
&lt;h2 id=&#34;動作の様子&#34;&gt;動作の様子&lt;/h2&gt;
&lt;div style=&#34;display: flex; justify-content: center;&#34;&gt;



    
    

        &lt;video style=&#34;margin:10px; width: 100%;&#34; src=https://www.nyanmo.info/posts/idea/onenoteAlternativeCreation/WhereIstumbled/2025-10-30/2025-10-30%e8%a8%98%e9%8c%b2.mp4 controls/&gt;
        
&lt;/div&gt;
&lt;h2 id=&#34;todos&#34;&gt;TODOs&lt;/h2&gt;


&lt;p&gt;&lt;details &gt;
  &lt;summary markdown=&#34;span&#34;&gt;TODOs&lt;/summary&gt;
  &lt;p&gt;　2025/10/30 になる間やる項目たち。やりきれなかった分は次に持ち越し。&lt;/p&gt;
&lt;h3 id=&#34;メイン持ち越し新規混合&#34;&gt;メイン（持ち越し、新規混合）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページの実装&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンド
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 共通のUIについて、使い方の説明について、ドキュメントを書いた。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; overlayWindow&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; messagebox&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; toolsbar&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; page&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; オブジェクト変形用に汎用的なコンポーネントを定義する。カーソルがオブジェクトをホバーしているときに出現するようにする。タッチでは、一回タップで出現。（サイズ変更、移動）
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 移動について実装&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; △ リサイズ機能についての実装
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 右下について実装 (とりあえずこれだけ)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 編集モードを各アイテムの要素の種類ごとに実装。汎用的には、ダブルクリックされた場合に編集モードに移行するようにする。タッチではダブルタッチで移行する.&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 実際に変更があったら、変更内容をリアルタイムで保存するようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 別のページを開いたときとかに、バグって変なタイミングでデータを保存しようとするのを止める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; セーブする際に、ページのUUIDが一致するか確かめてからセーブする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 書式設定に関する edit toggleable を作る。文章をどこに寄せるかとか、フォントサイズとか、フォントカラーとかそういう細かい設定ができるようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; アイテムが何もないページにおいて、アイテムの追加時に、どんなアイテムタイプが利用可能か取得するのに失敗するのをどうにかする。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; リアルタイムセーブがバグることについて調査する。別のページを開いたとき、Freeページコンポーネント自体やその変数の中身が、どういう状態になっているのかを調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Metadata を表示できるようにする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Free ページの要素について、基本要素の項目にアイテムの色をRGBAで設定できるようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; とりあえず、まだ色を変更するUIがないが、RGBAとしてCSSスタイルを設定してアイテムごとの色を反映するようにFreeページの実装を更新はした。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 色を設定するUIや項目へのアクセスボタンを実装する。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 編集機能、データセーブ（更新）の実装&lt;/p&gt;</description>
    </item>
    <item>
      <title>2025/11/6-やったことリスト</title>
      <link>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-11-6/</link>
      <pubDate>Thu, 30 Oct 2025 13:17:40 +0900</pubDate>
      <guid>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-11-6/</guid>
      <description>&lt;h2 id=&#34;この記事を作った動機&#34;&gt;この記事を作った動機&lt;/h2&gt;
&lt;p&gt;　2025/10/30 から、2025/11/6 に至るまでの間で OneNote 代替に関して、実装をするなど研究を進めているうちにわかったことなどを簡易的に記録する。&lt;/p&gt;
&lt;h2 id=&#34;動作の様子&#34;&gt;動作の様子&lt;/h2&gt;
&lt;div style=&#34;display: flex; justify-content: center;&#34;&gt;



    
    

        &lt;video style=&#34;margin:10px; width: 100%;&#34; src=https://www.nyanmo.info/posts/idea/onenoteAlternativeCreation/WhereIstumbled/2025-11-6/%e8%a8%98%e9%8c%b22025-11-6.mp4 controls/&gt;
        
&lt;/div&gt;
&lt;h2 id=&#34;todos&#34;&gt;TODOs&lt;/h2&gt;


&lt;p&gt;&lt;details &gt;
  &lt;summary markdown=&#34;span&#34;&gt;TODOs&lt;/summary&gt;
  &lt;p&gt;　2025/11/6 になる間やる項目たち。やりきれなかった分は次に持ち越し。&lt;/p&gt;
&lt;h3 id=&#34;メイン持ち越し新規混合&#34;&gt;メイン（持ち越し、新規混合）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;バックエンドの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ターゲット層を明確にする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ネットワーク監視について実装を思いついた案に基づいて進める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンドの設定についてフロントエンドにUIを設けたい&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンド
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 共通のUIについて、使い方の説明について、ドキュメントを書いた。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; overlayWindow&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; messagebox&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; toolsbar&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; page&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 実際に変更があったら、変更内容をリアルタイムで保存するようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 別のページを開いたときとかに、バグって変なタイミングでデータを保存しようとするのを止める&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; セーブする際に、ページのUUIDが一致するか確かめてからセーブする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 書式設定に関する edit toggleable を作る。文章をどこに寄せるかとか、フォントサイズとか、フォントカラーとかそういう細かい設定ができるようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; アイテムが何もないページにおいて、アイテムの追加時に、どんなアイテムタイプが利用可能か取得するのに失敗するのをどうにかする。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; リアルタイムセーブがバグることについて調査する。別のページを開いたとき、Freeページコンポーネント自体やその変数の中身が、どういう状態になっているのかを調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Metadata を表示できるようにする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Free ページの要素について、基本要素の項目にアイテムの色をRGBAで設定できるようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; とりあえず、まだ色を変更するUIがないが、RGBAとしてCSSスタイルを設定してアイテムごとの色を反映するようにFreeページの実装を更新はした。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 色を設定するUIや項目へのアクセスボタンを実装する。 -&amp;gt; すべてのアイテム共通の設定項目であるため、汎用に設定項目を表示できる&lt;code&gt;properties&lt;/code&gt;とは独立して、&lt;code&gt;commons&lt;/code&gt;の一部として実装する。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 設定UIで色の一部が正しく表示できていないバグをなおす。 -&amp;gt; &lt;code&gt;padStart&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;commons&lt;/code&gt;が正しく色を更新できないバグを何とかする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; z-index をちゃんと更新するようにする&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; useFreePageItemsStore の items や activeItems の配列をページごとに分離して管理するようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; どうしてもzustandを使ったグローバルなアイテム管理が暴走する場合は、Freeコンポーネント内部でアイテムを管理するように実装を変更する。 -&amp;gt; とりあえず zustand を使った実装で続行。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 範囲選択の実装 -&amp;gt; activeItemsを操作する&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 編集機能、データセーブ（更新）の実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページにおいて、保存が成功するまでは、変更があってから保存されるまでの間に、バッファーを保持するようにする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンド割り込みの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;updatePage&lt;/code&gt;の割り込みがあった時に、どのページがセーブされたかIDをUUIDをデータとして含める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;updatePage&lt;/code&gt;があったら差分を扱えるように、先にセーブされたデータをバッファーにためるようにして、diffをマージできるようにする&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバに接続されているかどうかなどの、ステータスインジゲーターを作る&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバの&lt;code&gt;updatePage&lt;/code&gt;コマンドの&lt;code&gt;UUID&lt;/code&gt;検証ロジックについて正しく機能しているか調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; addTag deleteTag コマンドの実装&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; queryTag コマンドの実装&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;前回からの持ち越し&#34;&gt;前回からの持ち越し&lt;/h3&gt;
&lt;h4 id=&#34;持ち越し分&#34;&gt;持ち越し分&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 内部構造を説明する図とかドキュメントを作る&lt;/p&gt;</description>
    </item>
    <item>
      <title>2025/11/13-やったことリスト</title>
      <link>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-11-13/</link>
      <pubDate>Thu, 06 Nov 2025 13:09:28 +0900</pubDate>
      <guid>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-11-13/</guid>
      <description>&lt;h2 id=&#34;この記事を作った動機&#34;&gt;この記事を作った動機&lt;/h2&gt;
&lt;p&gt;　2025/11/6 から、2025/11/13 に至るまでの間で OneNote 代替に関して、実装をするなど研究を進めているうちにわかったことなどを簡易的に記録する。&lt;/p&gt;
&lt;h2 id=&#34;動作の様子&#34;&gt;動作の様子&lt;/h2&gt;
&lt;div style=&#34;display: flex; justify-content: center;&#34;&gt;



    
    

        &lt;video style=&#34;margin:10px; width: 100%;&#34; src=https://www.nyanmo.info/posts/idea/onenoteAlternativeCreation/WhereIstumbled/2025-11-13/2025-11-13%e3%81%ae%e8%a8%98%e9%8c%b2.mp4 controls/&gt;
        
&lt;/div&gt;
&lt;h2 id=&#34;todos&#34;&gt;TODOs&lt;/h2&gt;


&lt;p&gt;&lt;details &gt;
  &lt;summary markdown=&#34;span&#34;&gt;TODOs&lt;/summary&gt;
  &lt;p&gt;　2025/11/13 になる間やる項目たち。やりきれなかった分は次に持ち越し。&lt;/p&gt;
&lt;h3 id=&#34;メイン持ち越し新規混合&#34;&gt;メイン（持ち越し、新規混合）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;バックエンドの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ターゲット層を明確にする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ネットワーク監視について実装を思いついた案に基づいて進める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンドの設定についてフロントエンドにUIを設けたい&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンドのネットワーク周り
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;useDatabaseStore&lt;/code&gt;を&lt;code&gt;useNetworkStore&lt;/code&gt;に名前を変更する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;send&lt;/code&gt;関数を&lt;code&gt;useDatabaseStore&lt;/code&gt;（&lt;code&gt;useNetworkStore&lt;/code&gt;）内にあるものに置き換え、旧来の&lt;code&gt;send&lt;/code&gt;関数の実装を廃止する。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンド
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 共通のUIについて、使い方の説明について、ドキュメントを書いた。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; overlayWindow&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; messagebox&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; toolsbar&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; page&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 実際に変更があったら、変更内容をリアルタイムで保存するようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 別のページを開いたときとかに、バグって変なタイミングでデータを保存しようとするのを止める&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; セーブする際に、ページのUUIDが一致するか確かめてからセーブする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 書式設定に関する edit toggleable を作る。文章をどこに寄せるかとか、フォントサイズとか、フォントカラーとかそういう細かい設定ができるようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; アイテムが何もないページにおいて、アイテムの追加時に、どんなアイテムタイプが利用可能か取得するのに失敗するのをどうにかする。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; リアルタイムセーブがバグることについて調査する。別のページを開いたとき、Freeページコンポーネント自体やその変数の中身が、どういう状態になっているのかを調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Metadata を表示できるようにする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Free ページの要素について、基本要素の項目にアイテムの色をRGBAで設定できるようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; とりあえず、まだ色を変更するUIがないが、RGBAとしてCSSスタイルを設定してアイテムごとの色を反映するようにFreeページの実装を更新はした。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 色を設定するUIや項目へのアクセスボタンを実装する。 -&amp;gt; すべてのアイテム共通の設定項目であるため、汎用に設定項目を表示できる&lt;code&gt;properties&lt;/code&gt;とは独立して、&lt;code&gt;commons&lt;/code&gt;の一部として実装する。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 設定UIで色の一部が正しく表示できていないバグをなおす。 -&amp;gt; &lt;code&gt;padStart&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;commons&lt;/code&gt;が正しく色を更新できないバグを何とかする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; z-index をちゃんと更新するようにする&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; useFreePageItemsStore の items や activeItems の配列をページごとに分離して管理するようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; どうしてもzustandを使ったグローバルなアイテム管理が暴走する場合は、Freeコンポーネント内部でアイテムを管理するように実装を変更する。 -&amp;gt; とりあえず zustand を使った実装で続行。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 範囲選択の実装 -&amp;gt; activeItemsを操作する&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 編集機能、データセーブ（更新）の実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページにおいて、保存が成功するまでは、変更があってから保存されるまでの間に、バッファーを保持するようにする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンド割り込みの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;updatePage&lt;/code&gt;の割り込みがあった時に、どのページがセーブされたかIDをUUIDをデータとして含める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;updatePage&lt;/code&gt;があったら差分を扱えるように、先にセーブされたデータをバッファーにためるようにして、diffをマージできるようにする&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバに接続されているかどうかなどの、ステータスインジゲーターを作る&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバの&lt;code&gt;updatePage&lt;/code&gt;コマンドの&lt;code&gt;UUID&lt;/code&gt;検証ロジックについて正しく機能しているか調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; addTag deleteTag コマンドの実装&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; queryTag コマンドの実装&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;前回からの持ち越し&#34;&gt;前回からの持ち越し&lt;/h3&gt;
&lt;h4 id=&#34;持ち越し分&#34;&gt;持ち越し分&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 内部構造を説明する図とかドキュメントを作る&lt;/p&gt;</description>
    </item>
    <item>
      <title>2025/11/20-やったことリスト</title>
      <link>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-11-20/</link>
      <pubDate>Thu, 13 Nov 2025 14:14:21 +0900</pubDate>
      <guid>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-11-20/</guid>
      <description>&lt;h2 id=&#34;この記事を作った動機&#34;&gt;この記事を作った動機&lt;/h2&gt;
&lt;p&gt;　2025/11/13 から、2025/11/20 に至るまでの間で OneNote 代替に関して、実装をするなど研究を進めているうちにわかったことなどを簡易的に記録する。&lt;/p&gt;
&lt;h2 id=&#34;動作の様子&#34;&gt;動作の様子&lt;/h2&gt;
&lt;p&gt;　今回は特に前回から目立って進捗していないのでなし。&lt;/p&gt;
&lt;h2 id=&#34;todos&#34;&gt;TODOs&lt;/h2&gt;


&lt;p&gt;&lt;details &gt;
  &lt;summary markdown=&#34;span&#34;&gt;TODOs&lt;/summary&gt;
  &lt;p&gt;　2025/11/20 になる間やる項目たち。やりきれなかった分は次に持ち越し。&lt;/p&gt;
&lt;h3 id=&#34;メイン持ち越し新規混合&#34;&gt;メイン（持ち越し、新規混合）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;バックエンドの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ターゲット層を明確にする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ネットワーク監視について実装を思いついた案に基づいて進める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンドの設定についてフロントエンドにUIを設けたい&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンドのネットワーク周り
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;useDatabaseStore&lt;/code&gt;を&lt;code&gt;useNetworkStore&lt;/code&gt;に名前を変更する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;send&lt;/code&gt;関数を&lt;code&gt;useDatabaseStore&lt;/code&gt;（&lt;code&gt;useNetworkStore&lt;/code&gt;）内にあるものに置き換え、旧来の&lt;code&gt;send&lt;/code&gt;関数の実装を廃止する。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンド
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 共通のUIについて、使い方の説明について、ドキュメントを書いた。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; overlayWindow&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; messagebox&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; toolsbar&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; page&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 実際に変更があったら、変更内容をリアルタイムで保存するようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 別のページを開いたときとかに、バグって変なタイミングでデータを保存しようとするのを止める&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; セーブする際に、ページのUUIDが一致するか確かめてからセーブする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 書式設定に関する edit toggleable を作る。文章をどこに寄せるかとか、フォントサイズとか、フォントカラーとかそういう細かい設定ができるようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; アイテムが何もないページにおいて、アイテムの追加時に、どんなアイテムタイプが利用可能か取得するのに失敗するのをどうにかする。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; リアルタイムセーブがバグることについて調査する。別のページを開いたとき、Freeページコンポーネント自体やその変数の中身が、どういう状態になっているのかを調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Metadata を表示できるようにする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Free ページの要素について、基本要素の項目にアイテムの色をRGBAで設定できるようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; とりあえず、まだ色を変更するUIがないが、RGBAとしてCSSスタイルを設定してアイテムごとの色を反映するようにFreeページの実装を更新はした。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 色を設定するUIや項目へのアクセスボタンを実装する。 -&amp;gt; すべてのアイテム共通の設定項目であるため、汎用に設定項目を表示できる&lt;code&gt;properties&lt;/code&gt;とは独立して、&lt;code&gt;commons&lt;/code&gt;の一部として実装する。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 設定UIで色の一部が正しく表示できていないバグをなおす。 -&amp;gt; &lt;code&gt;padStart&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;commons&lt;/code&gt;が正しく色を更新できないバグを何とかする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; z-index をちゃんと更新するようにする&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; useFreePageItemsStore の items や activeItems の配列をページごとに分離して管理するようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; どうしてもzustandを使ったグローバルなアイテム管理が暴走する場合は、Freeコンポーネント内部でアイテムを管理するように実装を変更する。 -&amp;gt; とりあえず zustand を使った実装で続行。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 範囲選択の実装 -&amp;gt; activeItemsを操作する&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 編集機能、データセーブ（更新）の実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページにおいて、保存が成功するまでは、変更があってから保存されるまでの間に、バッファーを保持するようにする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンド割り込みの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;updatePage&lt;/code&gt;の割り込みがあった時に、どのページがセーブされたかIDをUUIDをデータとして含める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;updatePage&lt;/code&gt;があったら差分を扱えるように、先にセーブされたデータをバッファーにためるようにして、diffをマージできるようにする&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバに接続されているかどうかなどの、ステータスインジゲーターを作る&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバの&lt;code&gt;updatePage&lt;/code&gt;コマンドの&lt;code&gt;UUID&lt;/code&gt;検証ロジックについて正しく機能しているか調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; addTag deleteTag コマンドの実装&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; queryTag コマンドの実装&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;前回からの持ち越し&#34;&gt;前回からの持ち越し&lt;/h3&gt;
&lt;h4 id=&#34;持ち越し分&#34;&gt;持ち越し分&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 内部構造を説明する図とかドキュメントを作る&lt;/p&gt;</description>
    </item>
    <item>
      <title>2025/11/27-やったことリスト</title>
      <link>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-11-27/</link>
      <pubDate>Thu, 20 Nov 2025 13:17:57 +0900</pubDate>
      <guid>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-11-27/</guid>
      <description>&lt;h2 id=&#34;この記事を作った動機&#34;&gt;この記事を作った動機&lt;/h2&gt;
&lt;p&gt;　2025/11/20 から、2025/11/27 に至るまでの間で OneNote 代替に関して、実装をするなど研究を進めているうちにわかったことなどを簡易的に記録する。&lt;/p&gt;
&lt;h2 id=&#34;動作の様子&#34;&gt;動作の様子&lt;/h2&gt;
&lt;p&gt;　今回は特に前回から目立って進捗していないのでなし。&lt;/p&gt;
&lt;h2 id=&#34;todos&#34;&gt;TODOs&lt;/h2&gt;


&lt;p&gt;&lt;details &gt;
  &lt;summary markdown=&#34;span&#34;&gt;TODOs&lt;/summary&gt;
  &lt;p&gt;　2025/11/27 になる間やる項目たち。やりきれなかった分は次に持ち越し。&lt;/p&gt;
&lt;h3 id=&#34;メイン持ち越し新規混合&#34;&gt;メイン（持ち越し、新規混合）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;バックエンドの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ターゲット層を明確にする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ネットワーク監視について実装を思いついた案に基づいて進める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンドの設定についてフロントエンドにUIを設けたい&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; deleted.json に対して、ページUUIDも記録するようにし、過去に削除されたページと同じ階層構造で同じ名前を持つページが新規作成されても衝突しないようにする。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 削除されたことになっているが、まだ物理的にファイルシステム上からは消されていないページと同じ階層構造で同じ名前を持つページが新規作成された場合、重複としては扱わず、削除対象のページを退避する。というか、元から削除されたページは退避する場所（フォルダー）をノートブック内に専用に作る。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 全体的なページやノートブックのメタデータなどにおける時間の扱いを全部 UnixTime の秒単位に置き換える&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンドのネットワーク周り
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;useDatabaseStore&lt;/code&gt;を&lt;code&gt;useNetworkStore&lt;/code&gt;に名前を変更する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;send&lt;/code&gt;関数を&lt;code&gt;useDatabaseStore&lt;/code&gt;（&lt;code&gt;useNetworkStore&lt;/code&gt;）内にあるものに置き換え、旧来の&lt;code&gt;send&lt;/code&gt;関数の実装を廃止する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;createPage.tsx&lt;/code&gt;の実装で、ページタイプを取得するとネットワーク周りがバグってリクエストした履歴が消えない結果、未接続の状態として判定されてしまうというバグを何とかする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンド
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 共通のUIについて、使い方の説明について、ドキュメントを書いた。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; overlayWindow&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; messagebox&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; toolsbar&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; page&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 実際に変更があったら、変更内容をリアルタイムで保存するようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 別のページを開いたときとかに、バグって変なタイミングでデータを保存しようとするのを止める&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; セーブする際に、ページのUUIDが一致するか確かめてからセーブする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 書式設定に関する edit toggleable を作る。文章をどこに寄せるかとか、フォントサイズとか、フォントカラーとかそういう細かい設定ができるようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; アイテムが何もないページにおいて、アイテムの追加時に、どんなアイテムタイプが利用可能か取得するのに失敗するのをどうにかする。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; リアルタイムセーブがバグることについて調査する。別のページを開いたとき、Freeページコンポーネント自体やその変数の中身が、どういう状態になっているのかを調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Metadata を表示できるようにする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Free ページの要素について、基本要素の項目にアイテムの色をRGBAで設定できるようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; とりあえず、まだ色を変更するUIがないが、RGBAとしてCSSスタイルを設定してアイテムごとの色を反映するようにFreeページの実装を更新はした。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 色を設定するUIや項目へのアクセスボタンを実装する。 -&amp;gt; すべてのアイテム共通の設定項目であるため、汎用に設定項目を表示できる&lt;code&gt;properties&lt;/code&gt;とは独立して、&lt;code&gt;commons&lt;/code&gt;の一部として実装する。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 設定UIで色の一部が正しく表示できていないバグをなおす。 -&amp;gt; &lt;code&gt;padStart&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;commons&lt;/code&gt;が正しく色を更新できないバグを何とかする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; z-index をちゃんと更新するようにする&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; useFreePageItemsStore の items や activeItems の配列をページごとに分離して管理するようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; どうしてもzustandを使ったグローバルなアイテム管理が暴走する場合は、Freeコンポーネント内部でアイテムを管理するように実装を変更する。 -&amp;gt; とりあえず zustand を使った実装で続行。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 範囲選択の実装 -&amp;gt; activeItemsを操作する&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 編集機能、データセーブ（更新）の実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページにおいて、保存が成功するまでは、変更があってから保存されるまでの間に、バッファーを保持するようにする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンド割り込みの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;updatePage&lt;/code&gt;の割り込みがあった時に、どのページがセーブされたかIDをUUIDをデータとして含める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;updatePage&lt;/code&gt;があったら差分を扱えるように、先にセーブされたデータをバッファーにためるようにして、diffをマージできるようにする&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバに接続されているかどうかなどの、ステータスインジゲーターを作る&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバの&lt;code&gt;updatePage&lt;/code&gt;コマンドの&lt;code&gt;UUID&lt;/code&gt;検証ロジックについて正しく機能しているか調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; addTag deleteTag コマンドの実装&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; queryTag コマンドの実装&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;前回からの持ち越し&#34;&gt;前回からの持ち越し&lt;/h3&gt;
&lt;h4 id=&#34;持ち越し分&#34;&gt;持ち越し分&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 内部構造を説明する図とかドキュメントを作る&lt;/p&gt;</description>
    </item>
    <item>
      <title>2025/12/4-やったことリスト</title>
      <link>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-12-4/</link>
      <pubDate>Thu, 27 Nov 2025 13:03:19 +0900</pubDate>
      <guid>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-12-4/</guid>
      <description>&lt;h2 id=&#34;この記事を作った動機&#34;&gt;この記事を作った動機&lt;/h2&gt;
&lt;p&gt;　2025/11/27 から、2025/12/4 に至るまでの間で OneNote 代替に関して、実装をするなど研究を進めているうちにわかったことなどを簡易的に記録する。&lt;/p&gt;
&lt;h2 id=&#34;動作の様子&#34;&gt;動作の様子&lt;/h2&gt;
&lt;div style=&#34;display: flex; justify-content: center;&#34;&gt;



    
    

        &lt;video style=&#34;margin:10px; width: 100%;&#34; src=https://www.nyanmo.info/posts/idea/onenoteAlternativeCreation/WhereIstumbled/2025-12-4/2025-12-4%e3%81%ae%e8%a8%98%e9%8c%b2.mp4 controls/&gt;
        
&lt;/div&gt;
&lt;h2 id=&#34;todos&#34;&gt;TODOs&lt;/h2&gt;


&lt;p&gt;&lt;details &gt;
  &lt;summary markdown=&#34;span&#34;&gt;TODOs&lt;/summary&gt;
  &lt;p&gt;　2025/12/4 になる間やる項目たち。やりきれなかった分は次に持ち越し。&lt;/p&gt;
&lt;h3 id=&#34;メイン持ち越し新規混合&#34;&gt;メイン（持ち越し、新規混合）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;バックエンドの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ターゲット層を明確にする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ネットワーク監視について実装を思いついた案に基づいて進める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンドの設定についてフロントエンドにUIを設けたい&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; deleted.json に対して、ページUUIDも記録するようにし、過去に削除されたページと同じ階層構造で同じ名前を持つページが新規作成されても衝突しないようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 削除されたことになっているが、まだ物理的にファイルシステム上からは消されていないページと同じ階層構造で同じ名前を持つページが新規作成された場合、重複としては扱わず、削除対象のページを退避する。というか、元から削除されたページは退避する場所（フォルダー）をノートブック内に専用に作る。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 全体的なページやノートブックのメタデータなどにおける時間の扱いを全部 UnixTime の秒単位に置き換える&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンドのネットワーク周り
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;useDatabaseStore&lt;/code&gt;を&lt;code&gt;useNetworkStore&lt;/code&gt;に名前を変更する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;send&lt;/code&gt;関数を&lt;code&gt;useDatabaseStore&lt;/code&gt;（&lt;code&gt;useNetworkStore&lt;/code&gt;）内にあるものに置き換え、旧来の&lt;code&gt;send&lt;/code&gt;関数の実装を廃止する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;createPage.tsx&lt;/code&gt;の実装で、ページタイプを取得するとネットワーク周りがバグってリクエストした履歴が消えない結果、未接続の状態として判定されてしまうというバグを何とかする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンド
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 共通のUIについて、使い方の説明について、ドキュメントを書いた。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; overlayWindow&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; messagebox&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; toolsbar&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; page&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 実際に変更があったら、変更内容をリアルタイムで保存するようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 別のページを開いたときとかに、バグって変なタイミングでデータを保存しようとするのを止める&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; セーブする際に、ページのUUIDが一致するか確かめてからセーブする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 書式設定に関する edit toggleable を作る。文章をどこに寄せるかとか、フォントサイズとか、フォントカラーとかそういう細かい設定ができるようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; アイテムが何もないページにおいて、アイテムの追加時に、どんなアイテムタイプが利用可能か取得するのに失敗するのをどうにかする。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; リアルタイムセーブがバグることについて調査する。別のページを開いたとき、Freeページコンポーネント自体やその変数の中身が、どういう状態になっているのかを調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Metadata を表示できるようにする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Free ページの要素について、基本要素の項目にアイテムの色をRGBAで設定できるようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; とりあえず、まだ色を変更するUIがないが、RGBAとしてCSSスタイルを設定してアイテムごとの色を反映するようにFreeページの実装を更新はした。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 色を設定するUIや項目へのアクセスボタンを実装する。 -&amp;gt; すべてのアイテム共通の設定項目であるため、汎用に設定項目を表示できる&lt;code&gt;properties&lt;/code&gt;とは独立して、&lt;code&gt;commons&lt;/code&gt;の一部として実装する。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 設定UIで色の一部が正しく表示できていないバグをなおす。 -&amp;gt; &lt;code&gt;padStart&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;commons&lt;/code&gt;が正しく色を更新できないバグを何とかする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; z-index をちゃんと更新するようにする&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; useFreePageItemsStore の items や activeItems の配列をページごとに分離して管理するようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; どうしてもzustandを使ったグローバルなアイテム管理が暴走する場合は、Freeコンポーネント内部でアイテムを管理するように実装を変更する。 -&amp;gt; とりあえず zustand を使った実装で続行。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 範囲選択の実装 -&amp;gt; activeItemsを操作する&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 編集機能、データセーブ（更新）の実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページにおいて、保存が成功するまでは、変更があってから保存されるまでの間に、バッファーを保持するようにする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンド割り込みの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;updatePage&lt;/code&gt;の割り込みがあった時に、どのページがセーブされたかIDをUUIDをデータとして含める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;updatePage&lt;/code&gt;があったら差分を扱えるように、先にセーブされたデータをバッファーにためるようにして、diffをマージできるようにする&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバに接続されているかどうかなどの、ステータスインジゲーターを作る&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバの&lt;code&gt;updatePage&lt;/code&gt;コマンドの&lt;code&gt;UUID&lt;/code&gt;検証ロジックについて正しく機能しているか調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; addTag deleteTag コマンドの実装&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; queryTag コマンドの実装&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;前回からの持ち越し&#34;&gt;前回からの持ち越し&lt;/h3&gt;
&lt;h4 id=&#34;持ち越し分&#34;&gt;持ち越し分&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 内部構造を説明する図とかドキュメントを作る&lt;/p&gt;</description>
    </item>
    <item>
      <title>2025/12/11-やったことリスト</title>
      <link>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-12-11/</link>
      <pubDate>Thu, 04 Dec 2025 15:13:55 +0900</pubDate>
      <guid>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-12-11/</guid>
      <description>&lt;h2 id=&#34;この記事を作った動機&#34;&gt;この記事を作った動機&lt;/h2&gt;
&lt;p&gt;　2025/12/4 から、2025/12/11 に至るまでの間で OneNote 代替に関して、実装をするなど研究を進めているうちにわかったことなどを簡易的に記録する。&lt;/p&gt;
&lt;h2 id=&#34;動作の様子&#34;&gt;動作の様子&lt;/h2&gt;
&lt;p&gt;特に大きな変更はないので今回はなし。&lt;/p&gt;
&lt;h2 id=&#34;todos&#34;&gt;TODOs&lt;/h2&gt;


&lt;p&gt;&lt;details &gt;
  &lt;summary markdown=&#34;span&#34;&gt;TODOs&lt;/summary&gt;
  &lt;p&gt;　2025/12/11 になる間やる項目たち。やりきれなかった分は次に持ち越し。&lt;/p&gt;
&lt;h3 id=&#34;メイン持ち越し新規混合&#34;&gt;メイン（持ち越し、新規混合）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;バックエンドの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ターゲット層を明確にする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ネットワーク監視について実装を思いついた案に基づいて進める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンドの設定についてフロントエンドにUIを設けたい&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 全体的なページやノートブックのメタデータなどにおける時間の扱いを全部 UnixTime の秒単位に置き換える&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンドのネットワーク周り
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;useDatabaseStore&lt;/code&gt;を&lt;code&gt;useNetworkStore&lt;/code&gt;に名前を変更する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;send&lt;/code&gt;関数を&lt;code&gt;useDatabaseStore&lt;/code&gt;（&lt;code&gt;useNetworkStore&lt;/code&gt;）内にあるものに置き換え、旧来の&lt;code&gt;send&lt;/code&gt;関数の実装を廃止する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;createPage.tsx&lt;/code&gt;の実装で、ページタイプを取得するとネットワーク周りがバグってリクエストした履歴が消えない結果、未接続の状態として判定されてしまうというバグを何とかする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンド
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 共通のUIについて、使い方の説明について、ドキュメントを書いた。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; overlayWindow&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; messagebox&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; toolsbar&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; page&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 実際に変更があったら、変更内容をリアルタイムで保存するようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 別のページを開いたときとかに、バグって変なタイミングでデータを保存しようとするのを止める&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; セーブする際に、ページのUUIDが一致するか確かめてからセーブする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 書式設定に関する edit toggleable を作る。文章をどこに寄せるかとか、フォントサイズとか、フォントカラーとかそういう細かい設定ができるようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; アイテムが何もないページにおいて、アイテムの追加時に、どんなアイテムタイプが利用可能か取得するのに失敗するのをどうにかする。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; リアルタイムセーブがバグることについて調査する。別のページを開いたとき、Freeページコンポーネント自体やその変数の中身が、どういう状態になっているのかを調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Metadata を表示できるようにする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Free ページの要素について、基本要素の項目にアイテムの色をRGBAで設定できるようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; とりあえず、まだ色を変更するUIがないが、RGBAとしてCSSスタイルを設定してアイテムごとの色を反映するようにFreeページの実装を更新はした。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 色を設定するUIや項目へのアクセスボタンを実装する。 -&amp;gt; すべてのアイテム共通の設定項目であるため、汎用に設定項目を表示できる&lt;code&gt;properties&lt;/code&gt;とは独立して、&lt;code&gt;commons&lt;/code&gt;の一部として実装する。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 設定UIで色の一部が正しく表示できていないバグをなおす。 -&amp;gt; &lt;code&gt;padStart&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;commons&lt;/code&gt;が正しく色を更新できないバグを何とかする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; z-index をちゃんと更新するようにする&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; useFreePageItemsStore の items や activeItems の配列をページごとに分離して管理するようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; どうしてもzustandを使ったグローバルなアイテム管理が暴走する場合は、Freeコンポーネント内部でアイテムを管理するように実装を変更する。 -&amp;gt; とりあえず zustand を使った実装で続行。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 範囲選択の実装 -&amp;gt; activeItemsを操作する&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 編集機能、データセーブ（更新）の実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページにおいて、保存が成功するまでは、変更があってから保存されるまでの間に、バッファーを保持するようにする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンド割り込みの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;updatePage&lt;/code&gt;の割り込みがあった時に、どのページがセーブされたかIDをUUIDをデータとして含める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;updatePage&lt;/code&gt;があったら差分を扱えるように、先にセーブされたデータをバッファーにためるようにして、diffをマージできるようにする&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバに接続されているかどうかなどの、ステータスインジゲーターを作る&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバの&lt;code&gt;updatePage&lt;/code&gt;コマンドの&lt;code&gt;UUID&lt;/code&gt;検証ロジックについて正しく機能しているか調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; addTag deleteTag コマンドの実装&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; queryTag コマンドの実装&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;前回からの持ち越し&#34;&gt;前回からの持ち越し&lt;/h3&gt;
&lt;h4 id=&#34;持ち越し分&#34;&gt;持ち越し分&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 内部構造を説明する図とかドキュメントを作る&lt;/p&gt;</description>
    </item>
    <item>
      <title>2025/12/25-やったことリスト</title>
      <link>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-12-25/</link>
      <pubDate>Thu, 18 Dec 2025 14:50:21 +0900</pubDate>
      <guid>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-12-25/</guid>
      <description>&lt;h2 id=&#34;この記事を作った動機&#34;&gt;この記事を作った動機&lt;/h2&gt;
&lt;p&gt;　2025/12/18 から、2025/12/25 に至るまでの間で OneNote 代替に関して、実装をするなど研究を進めているうちにわかったことなどを簡易的に記録する。&lt;/p&gt;
&lt;h2 id=&#34;動作の様子&#34;&gt;動作の様子&lt;/h2&gt;
&lt;p&gt;今回は変更はなかったので特になし。&lt;/p&gt;
&lt;h2 id=&#34;todos&#34;&gt;TODOs&lt;/h2&gt;


&lt;p&gt;&lt;details &gt;
  &lt;summary markdown=&#34;span&#34;&gt;TODOs&lt;/summary&gt;
  &lt;p&gt;　2025/12/25 になる間やる項目たち。やりきれなかった分は次に持ち越し。&lt;/p&gt;
&lt;h3 id=&#34;メイン持ち越し新規混合&#34;&gt;メイン（持ち越し、新規混合）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;バックエンドの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ターゲット層を明確にする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ネットワーク監視について実装を思いついた案に基づいて進める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンドの設定についてフロントエンドにUIを設けたい&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 全体的なページやノートブックのメタデータなどにおける時間の扱いを全部 UnixTime の秒単位に置き換える&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンドのネットワーク周り
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;useDatabaseStore&lt;/code&gt;を&lt;code&gt;useNetworkStore&lt;/code&gt;に名前を変更する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;send&lt;/code&gt;関数を&lt;code&gt;useDatabaseStore&lt;/code&gt;（&lt;code&gt;useNetworkStore&lt;/code&gt;）内にあるものに置き換え、旧来の&lt;code&gt;send&lt;/code&gt;関数の実装を廃止する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;createPage.tsx&lt;/code&gt;の実装で、ページタイプを取得するとネットワーク周りがバグってリクエストした履歴が消えない結果、未接続の状態として判定されてしまうというバグを何とかする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンド
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 共通のUIについて、使い方の説明について、ドキュメントを書いた。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; overlayWindow&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; messagebox&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; toolsbar&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; page&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 実際に変更があったら、変更内容をリアルタイムで保存するようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 別のページを開いたときとかに、バグって変なタイミングでデータを保存しようとするのを止める&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; セーブする際に、ページのUUIDが一致するか確かめてからセーブする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 書式設定に関する edit toggleable を作る。文章をどこに寄せるかとか、フォントサイズとか、フォントカラーとかそういう細かい設定ができるようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; アイテムが何もないページにおいて、アイテムの追加時に、どんなアイテムタイプが利用可能か取得するのに失敗するのをどうにかする。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; リアルタイムセーブがバグることについて調査する。別のページを開いたとき、Freeページコンポーネント自体やその変数の中身が、どういう状態になっているのかを調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Metadata を表示できるようにする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Free ページの要素について、基本要素の項目にアイテムの色をRGBAで設定できるようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; とりあえず、まだ色を変更するUIがないが、RGBAとしてCSSスタイルを設定してアイテムごとの色を反映するようにFreeページの実装を更新はした。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 色を設定するUIや項目へのアクセスボタンを実装する。 -&amp;gt; すべてのアイテム共通の設定項目であるため、汎用に設定項目を表示できる&lt;code&gt;properties&lt;/code&gt;とは独立して、&lt;code&gt;commons&lt;/code&gt;の一部として実装する。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 設定UIで色の一部が正しく表示できていないバグをなおす。 -&amp;gt; &lt;code&gt;padStart&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;commons&lt;/code&gt;が正しく色を更新できないバグを何とかする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; z-index をちゃんと更新するようにする&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; useFreePageItemsStore の items や activeItems の配列をページごとに分離して管理するようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; どうしてもzustandを使ったグローバルなアイテム管理が暴走する場合は、Freeコンポーネント内部でアイテムを管理するように実装を変更する。 -&amp;gt; とりあえず zustand を使った実装で続行。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 範囲選択の実装 -&amp;gt; activeItemsを操作する&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 編集機能、データセーブ（更新）の実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページにおいて、保存が成功するまでは、変更があってから保存されるまでの間に、バッファーを保持するようにする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンド割り込みの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;updatePage&lt;/code&gt;の割り込みがあった時に、どのページがセーブされたかIDをUUIDをデータとして含める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;updatePage&lt;/code&gt;があったら差分を扱えるように、先にセーブされたデータをバッファーにためるようにして、diffをマージできるようにする&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバに接続されているかどうかなどの、ステータスインジゲーターを作る&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバの&lt;code&gt;updatePage&lt;/code&gt;コマンドの&lt;code&gt;UUID&lt;/code&gt;検証ロジックについて正しく機能しているか調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; addTag deleteTag コマンドの実装&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; queryTag コマンドの実装&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;前回からの持ち越し&#34;&gt;前回からの持ち越し&lt;/h3&gt;
&lt;h4 id=&#34;持ち越し分&#34;&gt;持ち越し分&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 内部構造を説明する図とかドキュメントを作る&lt;/p&gt;</description>
    </item>
    <item>
      <title>2025/12/18-やったことリスト</title>
      <link>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-12-18/</link>
      <pubDate>Sun, 14 Dec 2025 21:43:29 +0900</pubDate>
      <guid>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2025-12-18/</guid>
      <description>&lt;h2 id=&#34;この記事を作った動機&#34;&gt;この記事を作った動機&lt;/h2&gt;
&lt;p&gt;　2025/12/11 から、2025/12/18 に至るまでの間で OneNote 代替に関して、実装をするなど研究を進めているうちにわかったことなどを簡易的に記録する。&lt;/p&gt;
&lt;h2 id=&#34;動作の様子&#34;&gt;動作の様子&lt;/h2&gt;
&lt;div style=&#34;display: flex; justify-content: center;&#34;&gt;



    
    

        &lt;video style=&#34;margin:10px; width: 100%;&#34; src=https://www.nyanmo.info/posts/idea/onenoteAlternativeCreation/WhereIstumbled/2025-12-18/2025-12-18%e3%81%ae%e8%a8%98%e9%8c%b2.mp4 controls/&gt;
        
&lt;/div&gt;
&lt;h2 id=&#34;todos&#34;&gt;TODOs&lt;/h2&gt;


&lt;p&gt;&lt;details &gt;
  &lt;summary markdown=&#34;span&#34;&gt;TODOs&lt;/summary&gt;
  &lt;p&gt;　2025/12/18 になる間やる項目たち。やりきれなかった分は次に持ち越し。&lt;/p&gt;
&lt;h3 id=&#34;メイン持ち越し新規混合&#34;&gt;メイン（持ち越し、新規混合）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;バックエンドの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ターゲット層を明確にする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ネットワーク監視について実装を思いついた案に基づいて進める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンドの設定についてフロントエンドにUIを設けたい&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 全体的なページやノートブックのメタデータなどにおける時間の扱いを全部 UnixTime の秒単位に置き換える&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンドのネットワーク周り
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;useDatabaseStore&lt;/code&gt;を&lt;code&gt;useNetworkStore&lt;/code&gt;に名前を変更する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;send&lt;/code&gt;関数を&lt;code&gt;useDatabaseStore&lt;/code&gt;（&lt;code&gt;useNetworkStore&lt;/code&gt;）内にあるものに置き換え、旧来の&lt;code&gt;send&lt;/code&gt;関数の実装を廃止する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;createPage.tsx&lt;/code&gt;の実装で、ページタイプを取得するとネットワーク周りがバグってリクエストした履歴が消えない結果、未接続の状態として判定されてしまうというバグを何とかする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンド
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 共通のUIについて、使い方の説明について、ドキュメントを書いた。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; overlayWindow&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; messagebox&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; toolsbar&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; page&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 実際に変更があったら、変更内容をリアルタイムで保存するようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 別のページを開いたときとかに、バグって変なタイミングでデータを保存しようとするのを止める&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; セーブする際に、ページのUUIDが一致するか確かめてからセーブする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 書式設定に関する edit toggleable を作る。文章をどこに寄せるかとか、フォントサイズとか、フォントカラーとかそういう細かい設定ができるようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; アイテムが何もないページにおいて、アイテムの追加時に、どんなアイテムタイプが利用可能か取得するのに失敗するのをどうにかする。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; リアルタイムセーブがバグることについて調査する。別のページを開いたとき、Freeページコンポーネント自体やその変数の中身が、どういう状態になっているのかを調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Metadata を表示できるようにする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Free ページの要素について、基本要素の項目にアイテムの色をRGBAで設定できるようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; とりあえず、まだ色を変更するUIがないが、RGBAとしてCSSスタイルを設定してアイテムごとの色を反映するようにFreeページの実装を更新はした。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 色を設定するUIや項目へのアクセスボタンを実装する。 -&amp;gt; すべてのアイテム共通の設定項目であるため、汎用に設定項目を表示できる&lt;code&gt;properties&lt;/code&gt;とは独立して、&lt;code&gt;commons&lt;/code&gt;の一部として実装する。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 設定UIで色の一部が正しく表示できていないバグをなおす。 -&amp;gt; &lt;code&gt;padStart&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;commons&lt;/code&gt;が正しく色を更新できないバグを何とかする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; z-index をちゃんと更新するようにする&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; useFreePageItemsStore の items や activeItems の配列をページごとに分離して管理するようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; どうしてもzustandを使ったグローバルなアイテム管理が暴走する場合は、Freeコンポーネント内部でアイテムを管理するように実装を変更する。 -&amp;gt; とりあえず zustand を使った実装で続行。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 範囲選択の実装 -&amp;gt; activeItemsを操作する&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 編集機能、データセーブ（更新）の実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページにおいて、保存が成功するまでは、変更があってから保存されるまでの間に、バッファーを保持するようにする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンド割り込みの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;updatePage&lt;/code&gt;の割り込みがあった時に、どのページがセーブされたかIDをUUIDをデータとして含める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;updatePage&lt;/code&gt;があったら差分を扱えるように、先にセーブされたデータをバッファーにためるようにして、diffをマージできるようにする&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバに接続されているかどうかなどの、ステータスインジゲーターを作る&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバの&lt;code&gt;updatePage&lt;/code&gt;コマンドの&lt;code&gt;UUID&lt;/code&gt;検証ロジックについて正しく機能しているか調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; addTag deleteTag コマンドの実装&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; queryTag コマンドの実装&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;前回からの持ち越し&#34;&gt;前回からの持ち越し&lt;/h3&gt;
&lt;h4 id=&#34;持ち越し分&#34;&gt;持ち越し分&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 内部構造を説明する図とかドキュメントを作る&lt;/p&gt;</description>
    </item>
    <item>
      <title>2026/1/8-やったことリスト</title>
      <link>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2026-1-8/</link>
      <pubDate>Mon, 29 Dec 2025 19:35:02 +0900</pubDate>
      <guid>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2026-1-8/</guid>
      <description>&lt;h2 id=&#34;この記事を作った動機&#34;&gt;この記事を作った動機&lt;/h2&gt;
&lt;p&gt;　2025/12/25 から、2026/1/8 に至るまでの間で OneNote 代替に関して、実装をするなど研究を進めているうちにわかったことなどを簡易的に記録する。&lt;/p&gt;
&lt;h2 id=&#34;動作の様子&#34;&gt;動作の様子&lt;/h2&gt;
&lt;div style=&#34;display: flex; justify-content: center;&#34;&gt;



    
    

        &lt;video style=&#34;margin:10px; width: 100%;&#34; src=https://www.nyanmo.info/posts/idea/onenoteAlternativeCreation/WhereIstumbled/2026-1-8/2026-01-8%e3%81%ae%e8%a8%98%e9%8c%b2.mp4 controls/&gt;
        
&lt;/div&gt;
&lt;h2 id=&#34;todos&#34;&gt;TODOs&lt;/h2&gt;


&lt;p&gt;&lt;details &gt;
  &lt;summary markdown=&#34;span&#34;&gt;TODOs&lt;/summary&gt;
  &lt;p&gt;　2026/1/8 になる間やる項目たち。やりきれなかった分は次に持ち越し。&lt;/p&gt;
&lt;h3 id=&#34;メイン持ち越し新規混合&#34;&gt;メイン（持ち越し、新規混合）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;バックエンドの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ターゲット層を明確にする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ネットワーク監視について実装を思いついた案に基づいて進める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンドの設定についてフロントエンドにUIを設けたい&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 全体的なページやノートブックのメタデータなどにおける時間の扱いを全部 UnixTime の秒単位に置き換える&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンドのネットワーク周り
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;useDatabaseStore&lt;/code&gt;を&lt;code&gt;useNetworkStore&lt;/code&gt;に名前を変更する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;send&lt;/code&gt;関数を&lt;code&gt;useDatabaseStore&lt;/code&gt;（&lt;code&gt;useNetworkStore&lt;/code&gt;）内にあるものに置き換え、旧来の&lt;code&gt;send&lt;/code&gt;関数の実装を廃止する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;createPage.tsx&lt;/code&gt;の実装で、ページタイプを取得するとネットワーク周りがバグってリクエストした履歴が消えない結果、未接続の状態として判定されてしまうというバグを何とかする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンド
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 共通のUIについて、使い方の説明について、ドキュメントを書いた。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; overlayWindow&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; messagebox&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; toolsbar&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; page&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 実際に変更があったら、変更内容をリアルタイムで保存するようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 別のページを開いたときとかに、バグって変なタイミングでデータを保存しようとするのを止める&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; セーブする際に、ページのUUIDが一致するか確かめてからセーブする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 書式設定に関する edit toggleable を作る。文章をどこに寄せるかとか、フォントサイズとか、フォントカラーとかそういう細かい設定ができるようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; アイテムが何もないページにおいて、アイテムの追加時に、どんなアイテムタイプが利用可能か取得するのに失敗するのをどうにかする。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; リアルタイムセーブがバグることについて調査する。別のページを開いたとき、Freeページコンポーネント自体やその変数の中身が、どういう状態になっているのかを調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Metadata を表示できるようにする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Free ページの要素について、基本要素の項目にアイテムの色をRGBAで設定できるようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; とりあえず、まだ色を変更するUIがないが、RGBAとしてCSSスタイルを設定してアイテムごとの色を反映するようにFreeページの実装を更新はした。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 色を設定するUIや項目へのアクセスボタンを実装する。 -&amp;gt; すべてのアイテム共通の設定項目であるため、汎用に設定項目を表示できる&lt;code&gt;properties&lt;/code&gt;とは独立して、&lt;code&gt;commons&lt;/code&gt;の一部として実装する。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 設定UIで色の一部が正しく表示できていないバグをなおす。 -&amp;gt; &lt;code&gt;padStart&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;commons&lt;/code&gt;が正しく色を更新できないバグを何とかする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; z-index をちゃんと更新するようにする&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; useFreePageItemsStore の items や activeItems の配列をページごとに分離して管理するようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; どうしてもzustandを使ったグローバルなアイテム管理が暴走する場合は、Freeコンポーネント内部でアイテムを管理するように実装を変更する。 -&amp;gt; とりあえず zustand を使った実装で続行。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 範囲選択の実装 -&amp;gt; activeItemsを操作する&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 編集機能、データセーブ（更新）の実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページにおいて、保存が成功するまでは、変更があってから保存されるまでの間に、バッファーを保持するようにする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンド割り込みの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;updatePage&lt;/code&gt;の割り込みがあった時に、どのページがセーブされたかIDをUUIDをデータとして含める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;updatePage&lt;/code&gt;があったら差分を扱えるように、先にセーブされたデータをバッファーにためるようにして、diffをマージできるようにする&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバに接続されているかどうかなどの、ステータスインジゲーターを作る&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバの&lt;code&gt;updatePage&lt;/code&gt;コマンドの&lt;code&gt;UUID&lt;/code&gt;検証ロジックについて正しく機能しているか調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; addTag deleteTag コマンドの実装&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; queryTag コマンドの実装&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;前回からの持ち越し&#34;&gt;前回からの持ち越し&lt;/h3&gt;
&lt;h4 id=&#34;持ち越し分&#34;&gt;持ち越し分&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 内部構造を説明する図とかドキュメントを作る&lt;/p&gt;</description>
    </item>
    <item>
      <title>2026/1/15-やったことリスト</title>
      <link>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2026-1-15/</link>
      <pubDate>Thu, 08 Jan 2026 13:52:12 +0900</pubDate>
      <guid>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2026-1-15/</guid>
      <description>&lt;h2 id=&#34;この記事を作った動機&#34;&gt;この記事を作った動機&lt;/h2&gt;
&lt;p&gt;　2026/1/8 から、2026/1/15 に至るまでの間で OneNote 代替に関して、実装をするなど研究を進めているうちにわかったことなどを簡易的に記録する。&lt;/p&gt;
&lt;h2 id=&#34;動作の様子&#34;&gt;動作の様子&lt;/h2&gt;
&lt;p&gt;　今回は特に大きな変化はないので特になし。&lt;/p&gt;
&lt;h2 id=&#34;todos&#34;&gt;TODOs&lt;/h2&gt;


&lt;p&gt;&lt;details &gt;
  &lt;summary markdown=&#34;span&#34;&gt;TODOs&lt;/summary&gt;
  &lt;p&gt;　2026/1/15 になる間やる項目たち。やりきれなかった分は次に持ち越し。&lt;/p&gt;
&lt;h3 id=&#34;メイン持ち越し新規混合&#34;&gt;メイン（持ち越し、新規混合）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;バックエンドの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ターゲット層を明確にする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ネットワーク監視について実装を思いついた案に基づいて進める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンドの設定についてフロントエンドにUIを設けたい&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 全体的なページやノートブックのメタデータなどにおける時間の扱いを全部 UnixTime の秒単位に置き換える&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンドのネットワーク周り
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;useDatabaseStore&lt;/code&gt;を&lt;code&gt;useNetworkStore&lt;/code&gt;に名前を変更する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;send&lt;/code&gt;関数を&lt;code&gt;useDatabaseStore&lt;/code&gt;（&lt;code&gt;useNetworkStore&lt;/code&gt;）内にあるものに置き換え、旧来の&lt;code&gt;send&lt;/code&gt;関数の実装を廃止する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;createPage.tsx&lt;/code&gt;の実装で、ページタイプを取得するとネットワーク周りがバグってリクエストした履歴が消えない結果、未接続の状態として判定されてしまうというバグを何とかする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; フロントエンド
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 共通のUIについて、使い方の説明について、ドキュメントを書いた。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; overlayWindow&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; messagebox&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; toolsbar&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; page&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 実際に変更があったら、変更内容をリアルタイムで保存するようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 別のページを開いたときとかに、バグって変なタイミングでデータを保存しようとするのを止める&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; セーブする際に、ページのUUIDが一致するか確かめてからセーブする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 書式設定に関する edit toggleable を作る。文章をどこに寄せるかとか、フォントサイズとか、フォントカラーとかそういう細かい設定ができるようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; アイテムが何もないページにおいて、アイテムの追加時に、どんなアイテムタイプが利用可能か取得するのに失敗するのをどうにかする。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; リアルタイムセーブがバグることについて調査する。別のページを開いたとき、Freeページコンポーネント自体やその変数の中身が、どういう状態になっているのかを調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Metadata を表示できるようにする&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Free ページの要素について、基本要素の項目にアイテムの色をRGBAで設定できるようにする。
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; とりあえず、まだ色を変更するUIがないが、RGBAとしてCSSスタイルを設定してアイテムごとの色を反映するようにFreeページの実装を更新はした。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 色を設定するUIや項目へのアクセスボタンを実装する。 -&amp;gt; すべてのアイテム共通の設定項目であるため、汎用に設定項目を表示できる&lt;code&gt;properties&lt;/code&gt;とは独立して、&lt;code&gt;commons&lt;/code&gt;の一部として実装する。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 設定UIで色の一部が正しく表示できていないバグをなおす。 -&amp;gt; &lt;code&gt;padStart&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;commons&lt;/code&gt;が正しく色を更新できないバグを何とかする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; z-index をちゃんと更新するようにする&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; useFreePageItemsStore の items や activeItems の配列をページごとに分離して管理するようにする。&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; どうしてもzustandを使ったグローバルなアイテム管理が暴走する場合は、Freeコンポーネント内部でアイテムを管理するように実装を変更する。 -&amp;gt; とりあえず zustand を使った実装で続行。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 範囲選択の実装 -&amp;gt; activeItemsを操作する&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 編集機能、データセーブ（更新）の実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; free ページにおいて、保存が成功するまでは、変更があってから保存されるまでの間に、バッファーを保持するようにする。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; バックエンド割り込みの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;updatePage&lt;/code&gt;の割り込みがあった時に、どのページがセーブされたかIDをUUIDをデータとして含める&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;updatePage&lt;/code&gt;があったら差分を扱えるように、先にセーブされたデータをバッファーにためるようにして、diffをマージできるようにする&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバに接続されているかどうかなどの、ステータスインジゲーターを作る&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバの&lt;code&gt;updatePage&lt;/code&gt;コマンドの&lt;code&gt;UUID&lt;/code&gt;検証ロジックについて正しく機能しているか調べる。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データサーバの実装
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; addTag deleteTag コマンドの実装&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; queryTag コマンドの実装&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;前回からの持ち越し&#34;&gt;前回からの持ち越し&lt;/h3&gt;
&lt;h4 id=&#34;持ち越し分&#34;&gt;持ち越し分&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 内部構造を説明する図とかドキュメントを作る&lt;/p&gt;</description>
    </item>
    <item>
      <title>2026/1/22-やったことリスト</title>
      <link>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2026-1-22/</link>
      <pubDate>Tue, 27 Jan 2026 13:36:11 +0900</pubDate>
      <guid>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/2026-1-22/</guid>
      <description>&lt;h2 id=&#34;この記事を作った動機&#34;&gt;この記事を作った動機&lt;/h2&gt;
&lt;p&gt;　2026/1/15 から、2026/1/22 に至るまでの間で OneNote 代替に関して、実装をするなど研究を進めているうちにわかったことなどを簡易的に記録する。&lt;/p&gt;
&lt;h2 id=&#34;動作の様子&#34;&gt;動作の様子&lt;/h2&gt;
&lt;p&gt;　今回は特に大きな変化はないので特になし。&lt;/p&gt;
&lt;h2 id=&#34;todos&#34;&gt;TODOs&lt;/h2&gt;
&lt;p&gt;　今は実装には手を出さないようにしているので、特になし。&lt;/p&gt;
&lt;h2 id=&#34;やったことの詳細&#34;&gt;やったことの詳細&lt;/h2&gt;
&lt;h3 id=&#34;卒論を書いた&#34;&gt;卒論を書いた&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;誤字脱字の修正&lt;/li&gt;
&lt;li&gt;冗長な表現を削除&lt;/li&gt;
&lt;li&gt;修正案の反映&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;参考にしたサイトとか&#34;&gt;参考にしたサイトとか&lt;/h2&gt;
&lt;p&gt;　今回は特になし。&lt;/p&gt;</description>
    </item>
    <item>
      <title>記事リスト</title>
      <link>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/articlelist/</link>
      <pubDate>Wed, 10 Sep 2025 14:22:17 +0900</pubDate>
      <guid>https://www.nyanmo.info/posts/idea/research/onenotealternativecreation/b4/whereistumbled/articlelist/</guid>
      <description>&lt;h2 id=&#34;この記事を作った動機&#34;&gt;この記事を作った動機&lt;/h2&gt;
&lt;p&gt;　単に、このブログの方針として、”自分が参照するノート”としてメインに掲げているところがある。それで、必ずしも &amp;ldquo;content/posts/idea/research/onenoteAlternativeCreation/&amp;rdquo; 配下に収まっているわけではなく、色んな所に関係のある記事が散らばっている。&lt;/p&gt;
&lt;p&gt;　それらをまとめるために、この記事にリンク集みたいな感じで、散らばってしまっている記事をまとめておこうと思った次第である。&lt;/p&gt;
&lt;h2 id=&#34;記事リスト&#34;&gt;記事リスト&lt;/h2&gt;
&lt;h3 id=&#34;react&#34;&gt;&lt;a href=&#34;https://www.nyanmo.info/posts/webdevelop/react/&#34;&gt;React&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.nyanmo.info/posts/webdevelop/react/nestcomponent/&#34;&gt;コンポーネント内にネストができる関数コンポーネント&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.nyanmo.info/posts/webdevelop/react/variable/&#34;&gt;変数&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.nyanmo.info/posts/webdevelop/react/zustand/&#34;&gt;Zustand 状態変数管理ライブラリ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.nyanmo.info/posts/webdevelop/react/hooks/&#34;&gt;Hooks の宣言、定義で躓いたこと&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.nyanmo.info/posts/webdevelop/react/websocketreconnect/&#34;&gt;Websocket を自動で再接続したい&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;typescript&#34;&gt;&lt;a href=&#34;https://www.nyanmo.info/posts/webdevelop/typescript/&#34;&gt;TypeScript&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.nyanmo.info/posts/webdevelop/typescript/dateclass/&#34;&gt;Date クラスで躓いたこと&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
  </channel>
</rss>
