Avatar
kako-jun
6f87b1ba22d8a659070008af6d5f3fe1d711e0162c65d8961728d04fb8657bfc
金沢@🇯🇵/お菓子料理/植物/釣り/コンピューティング

この土日のコミット回数は137回でした

予告してた機能は、粗削り版がとりあえず実装できた

M-1を観てた時間がなければ、もっと行けた

あるのがいけない!

つかみで30秒切りしようと思ってたのに、どの漫才師も面白いのがいけない!

土曜の朝にスーパーメンション機能を作るお

と書いた時の

https://github.com/kako-jun/mypace/commit/80a16d5c240746502e741620e363915995b4cf2a

から

https://github.com/kako-jun/mypace/commit/e51b6fc

...READ MORE → https://mypace.llll-ll.com/user/npub1d7rmrw3zmzn9jpcqpzhk6helu8t3rcqk93ja39sh9rgylwr9007q83kemm

@@M-1グランプリ2025

ドンデコルテの名前がなかなか覚えられません

ダリルバルデとかになっちゃいます

インスタを貼るテスト

https://www.instagram.com/p/DEB2lxxxXrO/?igsh=MTN2eHM2ZTUwdnU5Zg==

埋め込みは

ユーザーに1クリックしてもらったほうが安全だから

ちょっと不便

MY PACEに直接アップするメリットはあるのね

余ってる基板を飾るのが好き

録音添付機能のテスト

https://video.nostr.build/33430f9269f1ccce30a03e0325dc83341cdf89d5165bbbd85e3bf4bcced2de40.webm

こういうリラックスできる音楽を

垂れ流しながら開発してます

サントラには悲鳴ごと入ってて

ビクッ

文字の背面シールのテスト

座標投稿のテスト

@@1日外出録ハンチョウ/21巻

石和のケバブ回を読んで

食べたくなったので

金沢のケバブ屋さんを探して行きました

水タバコのチューブを初めて見たけど

エイリアン2のビショップの腸みたいだった

禁煙マークがあるけど吸ってたり

飲み物タダにしてくれたり

やたら美味かったり

情報量が多いっ

手描き投稿のテストです

スプラのアレを再現しようと思ったけど

42秒以内に描く制限をつけました

@@b.hatena.ne.jp/entry?url=https%3A%2F%2Fqiita.com%2Fkako-jun%2Fitems%2F41941de983d8cc50766b

MY PACEから、はてぶにコメントしてみるテスト

このMY PACEの書き込みに対して、はてぶでコメントもできる

永久機関が完成しちまったなぁああ〜〜

@@mypace.llll-ll.com

URLに対するスーパーメンションのテスト

まずは、このサイト自身

シール機能のテストぉおおお

5時にソファで起きたので

劇場版ゆるきゃん△を流して

メガバシャーモにオートで戦わせながら

MY PACEの機能追加をします

ずっと前から構想してた

@の独自拡張を試しに実装します

テーマは、「万物に対する言及」

ドラえもんの宇宙完全大百科が好きなので

あれくらい途方もない構想をやりたい

はてぶで遊びまくったのだけど

はてぶはURLのあるサイトに対して、なんでもツッコめる立場

けど

- ツッコまれたほうは、はてぶに反論できない

- URLのない対象にはツッコめない

SNSの#文化は

- URLのない対象にもツッコめる

- URLを書くことで

...READ MORE → https://mypace.llll-ll.com/user/npub1d7rmrw3zmzn9jpcqpzhk6helu8t3rcqk93ja39sh9rgylwr9007q83kemm

riscfetch をアップデートしました

https://github.com/kako-jun/riscfetch

バージョン1では、2023年のRISC-V仕様を参照してたのだけど

今日時点の最新に対応したので、めっちゃ表示内容が増えた

https://raw.githubusercontent.com/kako-jun/riscfetch/main/assets/screenshot.webp

そろそろ英語圏にリリースノートを書こうかしら

MY PACEのユーザープロフィールを開けば

その人の作ったリリースが、こうやって並ぶわけです

ht

...READ MORE → https://mypace.llll-ll.com/user/npub1d7rmrw3zmzn9jpcqpzhk6helu8t3rcqk93ja39sh9rgylwr9007q83kemm

@@ゆるキャン△

夜の草むらでペッパーくんが走るシーンがホラーだった

以下が、そうやってClaude Codeに書いてもらった仕様書です

これをMY PACEの長文投稿エディタで

右にMarkdownのプレビューを見て、シークレット書かれてないよね?

みたいに確認してから投稿できます

mdを投稿欄にドラッグしたら、あとは送信ボタンを押すだけ

という機能も、そろそろ付けます

MY PACEで実現したい、「ライブ感ある個人開発者同士のつながり」というのは

これくらいの簡単さと、スピード感なんです

---

# ユニバーサルリファレンス(万物への言及)

> **「万物の擬人化」** - ハンチョウに「面白かったで」、酸素に「いつもありがとう」と呼びかける

## 概要

`@/` 構文を使って、この世のあらゆるものに対してコメントできる機能。

```

@/manga/ハンチョウ

宮本さんのセリフ、ぐっときた

#mypace

```

## 構文

```

@/カテゴリ/対象

@/カテゴリ/対象/詳細

```

- `@/` で始まる

- `/` で階層を区切る

- UTF-8 文字列(日本語OK)

- スペースは使用不可(代わりにハイフンかアンダースコア)

- 推奨は2階層まで(サジェストUIができるまで)

## トップレベルカテゴリ

| カテゴリ | 用途 | 例 |

|----------|------|-----|

| `@/manga/` | 漫画 | `@/manga/ハンチョウ` |

| `@/anime/` | アニメ | `@/anime/エヴァンゲリオン` |

| `@/game/` | ゲーム | `@/game/ポケモン` |

| `@/movie/` | 映画 | `@/movie/千と千尋の神隠し` |

| `@/music/` | 音楽 | `@/music/YOASOBI/アイドル` |

| `@/book/` | 書籍 | `@/book/村上春樹/ノルウェイの森` |

| `@/tech/` | 技術・プログラミング | `@/tech/react` |

| `@/place/` | 場所 | `@/place/東京/渋谷` |

| `@/person/` | 人物 | `@/person/宮崎駿` |

| `@/thing/` | 物・概念 | `@/thing/酸素` |

| `@/web/` | Webサイト(URL) | `@/web/https://example.com` |

## Nostrタグへの変換

投稿時、`@/` 参照は `t` タグに変換される。

**投稿内容:**

```

@/manga/ハンチョウ

20巻の宮本さん、最高だった

```

**Nostrイベント:**

```json

{

"kind": 1,

"content": "@/manga/ハンチョウ\n\n20巻の宮本さん、最高だった",

"tags": [

["t", "mypace"],

["t", "/manga/ハンチョウ"]

]

}

```

- `t` タグを使用(既存のNostr仕様に準拠)

- `/` 始まりで通常のハッシュタグと区別

- 他のNostrクライアントでもタグとして表示される

## URL参照

`@/web/` カテゴリでURLを参照できる。

```

@/web/https://example.com/article/123

この記事について思うこと

```

URLへの言及は `r` タグも追加される(NIP準拠):

```json

{

"tags": [

["t", "/web/https://example.com/article/123"],

["r", "https://example.com/article/123"]

]

}

```

## 表示

投稿カードには参照バッジが表示される。

```

┌────────────────────────────────────┐

│ @username · 2時間前 │

│ │

│ 📎 manga/ハンチョウ │ ← 参照バッジ

│ │

│ 20巻の宮本さん、最高だった │

│ │

│ ★★★ │

└────────────────────────────────────┘

```

## 将来の拡張

### サジェストUI

```

ユーザー: @/manga/ と入力

┌─────────────────────────────┐

│ 📚 ハンチョウ (128件) │

│ 📚 ワンピース (89件) │

│ 📚 チェンソーマン (45件) │

│ ➕ 新しく追加... │

└─────────────────────────────┘

```

### Wikidataマッピング

```sql

CREATE TABLE ref_paths (

path TEXT PRIMARY KEY,

display_name TEXT,

aliases TEXT, -- JSON配列

wikidata_id TEXT, -- Q番号(後から紐付け)

use_count INTEGER DEFAULT 0,

created_at INTEGER

);

```

### 検索

特定の対象についての投稿を検索:

```

/posts?ref=/manga/ハンチョウ

```

## 設計思想

### はてブとの違い

- はてブ: URLのあるものだけ

- mypace: 万物(URLがなくてもOK)

### タグ乱立の解決

- 階層構造で整理

- サジェストで収束を促す

- 使用数が多いパスが上位に

### 万物の擬人化

`@` はメンション(呼びかけ)。作品や概念に対して「語りかける」ニュアンス。

```

@/thing/酸素

いつもありがとう

```

この要件を7:00まで(ゆるきゃんが終わるまで)に実装する方法を

3分クッキングのように説明します

この自分の投稿の本文を、Claude Codeに流し込みます

SNSの書き込み自体を要件として再利用できるのが

MY PACEの画期的なところです

(そのうちmdとしてエクスポート機能も付けます)

仕様駆動開発こえて投稿駆動開発!

Claude Codeが面白そうだねと言ってくるので

壁打ちしているうちに、現実的な仕様が決まってきます

曖昧な点がなくなったらリポジトリのdocsに

仕様をmdとして吐いてもらいます

あとは、そのセッションの

...READ MORE → https://mypace.llll-ll.com/user/npub1d7rmrw3zmzn9jpcqpzhk6helu8t3rcqk93ja39sh9rgylwr9007q83kemm

キャッチコピーは、「マイペースでいいミディアムレアSNS」にした

マイペースという英語は存在しないので

オリエンタルな印象になって

ファミコンとかポケモンみたいな任天堂の造語っぽくて得

MySpaceというSNSはソーシャルネットワークって映画で

もう滅びそうになってたけど

検索したら健在だったので、アメリカ人にとっては

うまい棒のドラえもん的な印象になるのも得かもしれない

ミディアムという部分は

日本でぜんぜん普及してないMediumから

SNSとブログの間、という点では同じだし

MediumはSNSじゃないらしいけど

私がやりたいのは、長

...READ MORE → https://mypace.llll-ll.com/user/npub1d7rmrw3zmzn9jpcqpzhk6helu8t3rcqk93ja39sh9rgylwr9007q83kemm

アイコンを黒から黄色にしました

既存のSNSとかぶらない色で

楽しそうな色

Snapchatはスイフトスポーツの色

それより赤が入った

山吹色と呼ばれるプジョー106の色

ドラゴボ大全集で鳥山先生が

亀仙流の道着は中国のめでたい色にしたと書いてた

たぶんそれは山吹色だと思う

山吹先生的に考えて……

1つしか選べないなら、その色で決まりでしょう

teaserタグによる長文の独自折りたたみ機能は

やっと、うまく動いたみたいです

Alchemistからの動作確認完了

MY PACE以外のクライアントから見ると、READ MOREが見えて、OGPカードをクリックすると

MY PACEに飛ばされて、続きを読める

興味ない長文を読みたくないユーザーと、

自然な誘導を兼ねたWin-Winな設計

そのURLを元々記事個別ページにしようと思ってたのですが

矛盾がありました

Nostrでは新規投稿のURLは予測不可能なので

投稿に、その投稿自体のURLを埋め込めない!

そこで、ユーザーページへのリンク

...READ MORE → https://mypace.llll-ll.com/user/npub1d7rmrw3zmzn9jpcqpzhk6helu8t3rcqk93ja39sh9rgylwr9007q83kemm

これまでの投稿の背景が全部デフォルトに戻り

見る人がライトテーマならば白いカード、

ダークテーマなら黒いカードに見えていると思います

これはMY PACEが独自拡張(主に見た目)のために使っていたtagsのタグ名を

ぜんぶ見直した結果、これまでのタグ名を解釈しなくなったためです

4隅の色指定に使っていたtagsの名前は、これからはaurora(オーロラ)になりました

Nostr標準だといいねは1回までなのですが、10回押せるようにするtagsは

stella(ステラ)にしました。

できないはずの長文自動折りたたみを実現するためのtagsは、tea

...READ MORE → https://mypace.llll-ll.com/user/npub1d7rmrw3zmzn9jpcqpzhk6helu8t3rcqk93ja39sh9rgylwr9007q83kemm

なんかバッジをもらったどん

Rustあまり書けないのに!

トリリオンゲームを読んで、真似してるだけだけど

ハルとガクを両方やらなきゃあいけないのが現実のつらいところ

第壱話

使

徒、襲来

フォントサイズが7段階は多すぎたので

5段階にしました

3が指定なしと同じサイズです

再投稿機能は、こういう訂正に便利ですね

>< 私は[最先端ロボット技術](https://samuraidamasii.com/tamasiitop/robotyuugoku/robotyuugoku.htm)を書いたとき

>< 先行者に向けて私はこう言った

>< 追いついてない

>< ちっとも追いついてないよ

Claude Code Maxプランの週リセットが木曜なので

我慢ギリギリライン

表を貼ってみるテスト

罫線はあったほうがいいのかなー

| タスク | 状態 |

|-------------------------------------------------------------------|---------|

| foldタグ検出関数 (hasFoldTag, getFoldContent, removeReadMoreLink) | ✅ |

| GUI側の切り詰め閾値を420→280に変更 | ✅ |

| タイムライン表示でfoldタグ有無による分岐 | ✅ |

| 個別ページでfoldタグ結合処理 | ✅ |

| 投稿時の280文字分割とfoldタグ生成 | ✅ |

| エディタに280文字超警告を追加 | ✅ |

| Kind 30023の取得をAPIに追加 | ✅ |

いまやってることは、長文投稿の折りたたみ機能です

Nostrの公開リレーに迷惑をかけないための仕組み

- まず、タイムラインに、Kind 1のSNSだけでなくKind 30023のブログも短文っぽく混ぜて表示する

- けど、MY PACEの長文投稿はKind 30023でなく、引き続きKind 1で投稿する

- 調べたらみんなKind 1を長文用としても使ってるから。多くのクライアントは折りたたみ表示してる

- けど、折りたたんでないクライアントもあるかもしれないし、MY PACEは長文の比率が高いので、さすがに迷惑かけそう

なので、Kind 1で280文字までは投稿し、281文字以降をfoldというtag内に隠して、ほかのクライアントからは短文に見える設計にしました

Nostrの仕組みを利用したまま、ユーザー体験だけハックできる

このtagsというメタ領域の仕組みは汎用的すぎて神だと思いました

狙い通りに動作すれば、古い実装による長文は、これが最後になります。