<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-10-08T20:04:55Z</updated>
  <generator>https://njump.me</generator>

  <title>Nostr notes by blue note.</title>
  <author>
    <name>blue note.</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://njump.me/npub1wrjyjn2pvtfs0qznqzcs5n9phex3cx2fmjnpdu870p7es0fls9ds2gjejk.rss" />
  <link href="https://njump.me/npub1wrjyjn2pvtfs0qznqzcs5n9phex3cx2fmjnpdu870p7es0fls9ds2gjejk" />
  <id>https://njump.me/npub1wrjyjn2pvtfs0qznqzcs5n9phex3cx2fmjnpdu870p7es0fls9ds2gjejk</id>
  <icon>https://write.blue0a6m5c.yokohama/img/avatars/b.png</icon>
  <logo>https://write.blue0a6m5c.yokohama/img/avatars/b.png</logo>




  <entry>
    <id>https://njump.me/nevent1qqsdgth280wezwgpydwmz2wf4c975v7vf87cjfwdjmke5y6kuzefquczypcwgj2dg93dxpuq2vqtzzjv5xly68qef8w2v9hsleu8mxpa87q4kw9w7p6</id>
    
      <title type="html">#WriteFreely #Fediverse #ActivityPub #サーバーいじり ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsdgth280wezwgpydwmz2wf4c975v7vf87cjfwdjmke5y6kuzefquczypcwgj2dg93dxpuq2vqtzzjv5xly68qef8w2v9hsleu8mxpa87q4kw9w7p6" />
    <content type="html">
      #WriteFreely #Fediverse #ActivityPub #サーバーいじり #ChatGPT #VibeCoding&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;## &lt;br/&gt;&lt;br/&gt;経緯&lt;br/&gt;&lt;br/&gt;これまで個人ブログとして **WriteFreely**&lt;br/&gt;を運用していたが、ActivityPub周りの不具合修正や、投稿URLを日時ベースにするカスタマイズなど、独自の変更が少しずつ増えてきた。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;当初は本番環境への個別パッチとして扱っていたものの、今後のWriteFreely本家への追従や変更管理を考え、**WriteFreely v0.17.2をベースとしたForkとして正式に管理する**ことにした。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Forkの名前は **BlueNote** とした。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;## &lt;br/&gt;&lt;br/&gt;今日やったこと&lt;br/&gt;&lt;br/&gt;### &lt;br/&gt;&lt;br/&gt;回帰テストの追加&lt;br/&gt;&lt;br/&gt;まず既存の独自変更について回帰テストを追加し、今後upstreamを更新してもBlueNote固有の動作を確認できるようにした。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;現在のBlueNoteには、主に以下の変更が入っている。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;li&amp;gt;ISO 8601形式で出力される投稿日時のUTC化&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;ActivityPub &amp;lt;code&amp;gt;Article&amp;lt;/code&amp;gt; の &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; をプレーンテキスト化&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;空のfollowers / following collectionでpaginationを正しく終了&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;日時ベースの投稿スラッグ&amp;lt;/li&amp;gt;&lt;br/&gt;&lt;br/&gt;### &lt;br/&gt;&lt;br/&gt;日時スラッグを設定可能に&lt;br/&gt;&lt;br/&gt;これまで特定ブログ向けに実装していた日時ベースのスラッグ生成を汎用化した。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;config.ini から以下のように設定できる。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;code class=&amp;#34;language-ini&amp;#34;&amp;gt;[app]&lt;br/&gt;datetime_slugs = true&lt;br/&gt;datetime_slug_timezone = Asia/Tokyo&lt;br/&gt;&amp;lt;/code&amp;gt;&lt;br/&gt;&lt;br/&gt;datetime_slugs で機能のON/OFFを切り替えられ、datetime_slug_timezone&lt;br/&gt;にはIANA timezoneを指定できる。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;日時には記事の保存された公開日時である Created&lt;br/&gt;を使用する。既に生成済みのURLについては、後から公開日時やtimezone設定を変更しても勝手に変更しない。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;### &lt;br/&gt;&lt;br/&gt;プロジェクト文書の整理&lt;br/&gt;&lt;br/&gt;README、CONTRIBUTING、SECURITY、AUTHORS、Issue / Pull Request&lt;br/&gt;templateなども確認した。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;元々はWriteFreely本家の内容がそのまま残っていたため、BlueNoteが&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; WriteFreelyをベースとした非公式Fork&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;であることが分かるように整理した。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;また、本家のCLAやFundingなど、BlueNoteにはそのまま適用できないものも削除・整理した。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;### &lt;br/&gt;&lt;br/&gt;BlueNote独自のバージョン管理&lt;br/&gt;&lt;br/&gt;BlueNoteとWriteFreely本家のバージョンを分離して管理する仕組みも追加した。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;現在は、&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;BlueNote:&amp;lt;/strong&amp;gt; &amp;lt;code&amp;gt;0.1.0&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;WriteFreely base:&amp;lt;/strong&amp;gt; &amp;lt;code&amp;gt;0.17.2&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br/&gt;&lt;br/&gt;としている。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;CLIでは次のように表示される。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;code class=&amp;#34;language-text&amp;#34;&amp;gt;BlueNote 0.1.0 (based on WriteFreely 0.17.2; commit 0f67085)&lt;br/&gt;&amp;lt;/code&amp;gt;&lt;br/&gt;&lt;br/&gt;NodeInfoについては、Fediverse上での既存の互換性を考えてsoftware名は当面&lt;br/&gt;writefreely のままとし、versionを&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;code class=&amp;#34;language-text&amp;#34;&amp;gt;0.17.2&#43;bluenote.0.1.0&lt;br/&gt;&amp;lt;/code&amp;gt;&lt;br/&gt;&lt;br/&gt;としてForkであることを識別できるようにした。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Web画面のfooterにも **BlueNote 0.1.0** とソースコードへのリンクを表示するようにした。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;## &lt;br/&gt;&lt;br/&gt;BlueNote 0.1.0を本番投入&lt;br/&gt;&lt;br/&gt;ここまでの変更を本番サーバーでビルドし、実際に稼働中のブログへ投入した。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;NodeInfoでも、&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;code class=&amp;#34;language-text&amp;#34;&amp;gt;software.name    = writefreely&lt;br/&gt;software.version = 0.17.2&#43;bluenote.0.1.0&lt;br/&gt;&amp;lt;/code&amp;gt;&lt;br/&gt;&lt;br/&gt;となっていることを確認。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;これで、これまで単なるWriteFreelyへのローカルパッチだったものが、ひとまず&lt;br/&gt;**BlueNote 0.1.0** として動き始めた。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;## &lt;br/&gt;&lt;br/&gt;そしてサイドバーが消えた&lt;br/&gt;&lt;br/&gt;......と、ここまで順調だったが、本番投入後にブログを確認すると**サイドバーが消えていた**。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;調べてみると、サイドバーそのものを生成しているJavaScript、&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;code class=&amp;#34;language-text&amp;#34;&amp;gt;/local/blue-note.js&lt;br/&gt;&amp;lt;/code&amp;gt;&lt;br/&gt;&lt;br/&gt;は残っていた。JSONデータやCSSも無事だった。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;しかし、以前の本番環境ではテンプレートへ手作業で追加していた、&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;code class=&amp;#34;language-html&amp;#34;&amp;gt;&amp;amp;lt;script src=&amp;#34;/local/blue-note.js?v=12&amp;#34;&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt;&lt;br/&gt;&amp;lt;/code&amp;gt;&lt;br/&gt;&lt;br/&gt;という読み込み部分が、今回Gitで管理している新しいテンプレートへ更新したことで消えていた。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;この一行を現行テンプレートへ戻してWriteFreelyを再起動し、無事復旧。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;## &lt;br/&gt;&lt;br/&gt;今後&lt;br/&gt;&lt;br/&gt;今回のトラブルによって、本番環境にしか存在しないカスタマイズがまだ残っていることも分かった。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;今後は、&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;li&amp;gt;BlueNoteそのものに含める機能&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;自分のブログ固有のUIや設定&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;本番サーバー側の運用設定&amp;lt;/li&amp;gt;&lt;br/&gt;&lt;br/&gt;を整理して、BlueNote本体とインスタンス固有カスタマイズを明確に分離して管理していきたい。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;とりあえず今日は、WriteFreelyへのローカルパッチ群だったものを「BlueNote&lt;br/&gt;0.1.0」という一つのForkとして整理し、本番で動かすところまで到達した。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2026-09-05T13:26:37Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsqtcqnttu0adqjtcuehl94kkluuu5dwa6eu9xf3mxvvk53l740k6gzypcwgj2dg93dxpuq2vqtzzjv5xly68qef8w2v9hsleu8mxpa87q4kvm7s9r</id>
    
      <title type="html">#WriteFreely #Fediverse #ActivityPub #サーバーいじり ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsqtcqnttu0adqjtcuehl94kkluuu5dwa6eu9xf3mxvvk53l740k6gzypcwgj2dg93dxpuq2vqtzzjv5xly68qef8w2v9hsleu8mxpa87q4kvm7s9r" />
    <content type="html">
      #WriteFreely #Fediverse #ActivityPub #サーバーいじり #ChatGPT #VibeCoding&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;2年ほど存在を忘れていたこのブログを、ふと思い出したので色々改造なども行ってみました。&lt;br/&gt;（とはいえ僕はコードの読み書きができるわけではないので、ChatGPTを使ったVibe-Codingです。）&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;li&amp;gt;独自テーマの整備 — WriteFreely標準UIをベースに、ダーク系の個人ブログらしいレイアウト・配色へカスタマイズ。&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;記事インデックスの独自実装 — 記事情報をJSON化し、JavaScriptから記事一覧・タグなどを扱える仕組みを追加。&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;タグ機能の追加 — WriteFreelyの記事からタグを扱い、サイドバーなどから記事を辿れるようにした。&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;記事シェアボタンの追加 — Mastodon・Misskey・Xへの共有と、URLコピー機能を記事下部に実装。&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;ActivityPub Actorアイコンの変更 — WriteFreely標準の「ブログ名先頭文字アイコン」を独自画像へ差し替え。&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;サイドバー「Links」の追加 — 外部サイトやSNSへのリンク集を独自に追加。&lt;br/&gt;リンク情報のJSON外出し — リンクを blue-note-links.json で管理し、JavaScript本体を編集せず追加・変更できるようにした。&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;リンクバナー対応 — リンクごとにバナー画像を指定でき、未指定ならテキストリンクへフォールバックするよう実装。&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;自サイト用リンクバナーの設置 — 「リンクフリー・相互リンク歓迎」とblue note.のバナーをサイドバーへ追加。&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;カスタマイズ資産のバックアップ拡張 — JS・JSON・アイコン・バナー・テンプレート・インデックス生成スクリプト等をバックアップ対象へ追加。&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;記事URIを日時形式へ変更 — WriteFreely本体をGoで改造し、新規記事のURIをタイトル由来ではなく YYYYMMDDHHMMSS に変更。&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;URI改造をblue note.限定に実装 — blue0a6m5c Collectionへの公開時だけ日時slugを適用し、WriteFreely本来の挙動への影響を限定。&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;WriteFreelyをソースから独自ビルド — Go 1.25環境を導入し、v0.17.2をベースに独自改造版バイナリを作成・稼働。&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;ついでに謎のスパムアカウントを調査・除去 — 過去のWriteFreely登録制御バグを突いたBotによるアカウント・投稿を特定し、証拠をバックアップしたうえでDBから削除。&amp;lt;/li&amp;gt;&lt;br/&gt;&lt;br/&gt;かなり使いやすくなったし、ブログっぽい見た目に出来たと思います。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2026-09-02T08:20:36Z</updated>
  </entry>

</feed>