Oddbean new post about | logout

Notes by きみのぶ a.k.a. vorotamoroz | export

 検索ワードでクラスタリングされた何かを思い出した。 
 F#→JS/TSコンパイラのFable面白そうだな。 
 Rune対応いいよ。ホント。Runeで救われるコードベースがそこに存在する。 
 仮想スクロール、何度か色々使ったり作ったりしたけど、ブラウザが耐えるなら耐えさせた方がスムーズだったんだよなぁ(そらそう) 
 Twitterの実装、溜まったら自力で追加読み込みだし、結構遡ったら消えてる気がする。 
 (ロジックで再帰的に更新したりしてなければ)VSCodeで割合サクッと変換できますよ!だいぶ助かりました。
なおアカンやつは本当に辛かった… 
 なんか座標が数万になるとおかしくなるんだけど、それまではなるべく耐えてくれるよ。
このツリーの要素一つ一つがそう。 https://image.nostr.build/20c0d73f1cf53857238dde489489d0db97274942db6306623c857b3490f82ff0.jpg 
 Svelte、レイアウトが変わるような要素の個数の変更をどうこうするコストって実は安くなかった(v5ではまだ実測してない)ので、スクロールアウトすると中身を消す仕組みを作って使ってる。こういうの。
悲しいけど。
https://github.com/vrtmrz/tagfolder/blob/master/OnDemandRender.svelte 
 あっ、わかったぁ。これLiveSyncが削除され、そして同じ更新日付でファイルが作成された場合、それを保存できないという闇にひっかかってるわ。 
 人間の目ってそんなにサッカード無しに左右に動かないので、2カラムは人間の設計にあってると思う 
 論文のこの段組ホントすき 
 Self-hosted LiveSyncのCustomisation Sync部分だけのプラグイン作った。Usher。

なお普通に便利な設定フォルダ複製機能みたいなのもついてます。

https://github.com/vrtmrz/usher 
 こんな素晴らしいプラットフォームは無いよ。 
 なんでなんだろ。 
 過去これであらゆる良くない状態に入った記憶があるので何とかここでとどまりたい。 
 こういうの困るなぁ。 
 ダメだ思い出したらまだ怒ってる 
 昨日1時間ぐらいしか起きてなかったけどずっと怒ってた。 
 最近心に余裕がないわ… 
 ムチャクチャする人ってのは居るのよね。普通に使ってない時間帯は寝させてあげれば良いのに、無料だから、とインスタンスを起こし続けたり、設定で出来なければさらに、cronでリクエストし続けて起こし続けたり。。 
 OSS実装があって、HTTPベースのプロトコルで通信できるDBがあったら多分対応します。そして比較的Free Tierの大きいDBaaSが複数存在したらほぼ確実に対応します(切実)
一応、代替としてMinIOにも対応してて。ただこれは小さいファイルにランダムアクセスすると絶望的に酷いパフォーマンスしか出ない(上に高くつく)ので、ジャーナル全部受信して、ジャーナルにない物を追加で置きあう、みたいな雑な方法で実現してます。ホントいうともう少しちゃんと足りないもの同士を交換したい。。
ちなみに、どのみちPouchDBに再構築するので、競合検出とかは今まで通り出来ると思います。

nostr:nevent1qqsf4luf6epad05dyxv899v8q5qfdaksnvv4ccef3a9ym0sfwp63zhsppemhxue69uhhjctzw5hx6ef0qgszclxx9f5haga8sfjjrulaxncvkfekj097t6f3pu65f86rvg49ehqrqsqqqqqp2vrekm 
 ジャーナル同期はこんな仕様(なんか気が乗ってちゃんと英語で書いた)

https://github.com/vrtmrz/obsidian-livesync/blob/main/docs/design_docs_of_journalsync.md 
 ほんとよくわかんないけど、これでいつも無料にしてもらってた。ごく最近またプランが変わったんだけど、多分それでも極小の請求はスルーしてくれると思う。クレカの手数料の方が高いようなやつは特にw

nostr:nevent1qqsdkemw4hmwpdsxsvzhq5zwm5teucvkqyzu7tq37l8a4jqm7muujwcppemhxue69uhhjctzw5hx6ef0qgszclxx9f5haga8sfjjrulaxncvkfekj097t6f3pu65f86rvg49ehqrqsqqqqqpuusacj 
 Self-hosted LiveSync の画面もいずれ CouchDB 以外も対応しそうな感じに見える... 
 OSS実装があって、HTTPベースのプロトコルで通信できるDBがあったら多分対応します。そして比較的Free Tierの大きいDBaaSが複数存在したらほぼ確実に対応します(切実)
一応、代替としてMinIOにも対応してて。ただこれは小さいファイルにランダムアクセスすると絶望的に酷いパフォーマンスしか出ない(上に高くつく)ので、ジャーナル全部受信して、ジャーナルにない物を追加で置きあう、みたいな雑な方法で実現してます。ホントいうともう少しちゃんと足りないもの同士を交換したい。。
ちなみに、どのみちPouchDBに再構築するので、競合検出とかは今まで通り出来ると思います。

nostr:nevent1qqsf4luf6epad05dyxv899v8q5qfdaksnvv4ccef3a9ym0sfwp63zhsppemhxue69uhhjctzw5hx6ef0qgszclxx9f5haga8sfjjrulaxncvkfekj097t6f3pu65f86rvg49ehqrqsqqqqqp2vrekm 
 昨日デザインドキュメントメチャクチャ書いたのでパワーが足りない。 
 Deno大好きなんだけど、jsrが始まってから、うーんこれだとnode_modulesがどっかに保存されてるだけじゃん…?って思うようになっちゃった。
vendorしたいときにvendor出来るようになったというか、ホントにnode_modules使えるようになったのは進歩っちゃ進歩なんだけど「進歩っちゃ進歩」以上の言葉は悪口になりそう。 
 よしオッケー 
 シャワーだけでも浴びたい(あと15分) 
 在宅勤務なのですごく時間的余裕があって、逆にギリギリ行動している。 
 今日Twitterに居たらなんかSAN値どんどん削れてしまったのでひっこんできた。 
 女の子のフリしてサクラするの、人の心を持ってない僕には無理すぎて、今で居うアセットエンジニアみたいな事してた。そのまま広告代理店にスッと移って、よくわからんサイトとか、広告さばく自社コンテンツサイト作ったりしてた。 
 まぁ僕は女の子の名前いっぱい作るツールとか作って早めに解脱したけど(白目)
20年ぐらい昔の話。 
 今までやったデータ入力のバイトは、だいたいデータ入力というのは隠語で、出会い系のサクラとかだったよ。 
 一時間だけ実家片付けてくる 
 やりたいこととやらないといけないことが多すぎてエンジンが掛からない 
 いかん、ホントに片付けに行かなければ… 
 ホントはこうして、マイクラのサーバを立てるところから開発者が生えたように、サーバを立てるみたいな所から「開発者」の裾野が広がってくれたらいいなと思うなど…。 
 ちなみに、OCIとtailscaleを使うと本当に完全無料でSelf-hosted LiveSyncのサーバは立てられるんだけど、若干手数が多いのよね。

https://github.com/vrtmrz/self-hosted-livesync-server-tailscale 
 Worker書いたら普通にそこそこのパフォーマンスでレプリケーションできそう。
人の書いたワーカーをポンとデプロイする仕組みあるなら、これで書こうかな。

fly.ioが無料じゃ無くなったの痛すぎる。 
 Cloudflareのアレか。 
 でも同期はCouchDBが一番賢いよやっぱ。 
 最近カスタムのレプリケーターを書いたので、この知見的には大抵のKVS的なものとは同期できると思う。 
 DynamoDBは意外と課金対象になってしまうので、ちょっと引いてる。でもこれLiveSyncのバックエンドになったら良いんだけどな。 
 やはりウェブブラウザベースが良いよ… 
 うーん、amethystやっぱり文字の入力の体験が良くない。 
 これだけでXとは違うのよね。まさか検索で見えなくなるとは… 
 ブルーシート買いに行くかぁ… 
 みんなCouchDBやろうず… 
 Notesって凄い仕組みだったのよ。 
 シャーディングは素がちゃんと一様に分布してないと難しいからな…。
僕はなんでもフルレプリケーションする文化圏なので、これはこれでまた別のエグみがある。 
 みんな気軽にVPNサービスみたいなの使うけど、結構怖いよねって思ってるのよ… 
 ただそうすると、悪意のあるネットワーク管理者がそのルートに悪意のある行為をしかねないので、出来ればデフォである程度の冗長化はあって欲しい。 
 コンテンツ自身ではなく、コンテンツを産んだ人にそのコントロール権を持たせるのであれば、そら都度取りに来て貰うしかないのはそうだよね。 
 設計意図はすごくわかる。なるほど…。 
 コンカレ面白いな。逆メールボックスみたいな思想なのか。
メールボックスとしてのNostrリレーみたいなのもアリかと思ってたけど、これもかなりアリだと思う。 
 みんな技術書典行ってるのか、いいな。 
 基本的にはSNSはモバイル派なのよ。でもPWAは良いね。同じものが使える喜びがそこにある!! 
 はじめてMacからNostrする件。 
 めっちゃ意味深な言い方してしまったwwそして公式では無く有志のサイトだった…。
 
 Nostrの始め方、書くっていったけど、nostterの公式見た方が百倍わかりやすいな… 
 自分だけなら良いんだけどワークステーション持ってんだよな 
 無いわ。そして相当降ってる。 
 置き傘あったかな 
 ああっ、雨! 
 DXFの沼にはまってる。 
 しゃーねえ、仕事Dayにするか 
 今日は早めに家出れてる 
 ドメインが無くても、tailscale funnelでSelf-hosted LiveSynx用のCouchDBをバァンと立てるdocker composeなイメージ作りました!ご家庭に転がってるラズパイとかでどうぞ!
https://github.com/vrtmrz/self-hosted-livesync-server-tailscale 
 ボンゴ楽しそうだよね。カホンも良いぞ… 
 暖かい物いいな。とりいれよ… 
 閻魔帳ばかり伸びていく(怖) 
 仕事も楽しいんだけど。 
 たのしいことがしたい 
 メンタルの乱高下のせいで睡眠時間も安定しない。よくないね… 
 リレーをノーコントロールで立てるのは昨日やってできた。 
 サーバが起動したよ、とか、なんか変やで、みたいなの、Twitterのbotにやらせてたのよね。 
 今日はリレー立てよう。そして、僕用のbotを立てよう。 
 他の人には発言しない奴ね。DM送らせても良いな。 
 最近猛烈なメンタルの乱高下で、ちょうど零点か少しその上を通過するときのみ発言をするようにしてる。 
 関東が良いなぁと思うのはこれ。 
 そういえば、Svelte 5で、MPA作ったりSPA作ったりするテンプレート作った。書いたっけ。

https://github.com/vrtmrz/karst 
 OCIでいったんセットアップできてしまったら、Self-hosted LiveSync用のCouchDBぐらい余裕でホスト出来ちゃうんだけどなぁ。
Container InstancesにSSLのエンドポイントが付いてれば… 
 ほんとにこれ。 
 なんかもっとこう、良い感じにワンボタンでやりたい(fly.ioは本当にワンボタンでサーバセットアップが終わる) 
 そういえばバケット同期のSetup URIジェネレーターはまだ無いのか。。 
 Remotely Save プラグイン使ってるけどちょこちょこ競合解決がうまくいか... 
 Remotely Saveの保存の先はS3ですか?S3であれば、LiveSyncからも使えますよー 
 ああっ…なるほどぉ…。無念…。。
あれ、今色んなのと保存できるんですね。 
 重い腰上げてObsidian Live Sync設定しようとしたら
IBMの決済がカードセキュ... 
 3Dセキュアが設定されていたら通らない、とか罠が多すぎて超キツいです。。
少し前まではfly.ioがタダで使えたのですが、これも無料プランが無くなってしまいました。
Hugging face Spacesで無料でホストするのもプルリクは来てるのですが、果たしてあれをDB鯖につかってよいものやら悩んでます。
 
 もしコンテナが動かせるマシンが余ってたら、CouchDBをホスティングするほうが楽かもですwあとは、CloudRunとかですかね。
一応、Cloudflare R2とかで同期もできますー 
 そうなんですよね。なんかジェネレーティブな事してるならまぁ…という感じではあるのですが…。。 
 ホントは依存している型のメソッドを呼びたいのだが、それが叶わないために依り代mainにみんな噛みついてる。 
 頭捻っても良い方法思いつかなそう。 
 アクターモデルにしたいが、アクターモデルにするには同期処理。シグニチャの置き場所にも悩むしどうしたもんかなぁ。