Last Notes
How do you people have time for gaming? I imagine I have less responsibility than most of you, and somehow less time. Don't get me wrong, I'm not looking to join in. I'd rather read a book. I'm just envious of your ability to create time in the day. I guess I'm just slow.
The remnant is small. Ten is enough.
This is a public service whether people realise it or not. A relay that cannot be lost has become a platform
Took responsibility for my own long-term health instead of leaving it to the doctors. You live in your body and know more about it than your doctor's charts will tell them. Most of the time they have neither the time nor the inclination to get to the bottom of anything. I've found a way to get tests done without needing the doctors' permission, and am far healthier for it.
But then it would be harder for the government!
These are the only batteries I use. AA and AAA. Hundreds of cycles. Absolute Workhorses.
Thankfully relays don't punish silence or we'd both be chopped liver. Congrats on the launch. Being social and doing the work aren't always compatible.
I am not terribly social, so had largely ignored people's reply tabs. Recently I went to pull something up and noticed that some people's best work lived in their replies. More so than their curated timeline, what a person attends to is what they actually believe. That is much harder to fake. To find out where someone lives on Nostr, look at their replies.
My struggle on Nostr has been keeping the follow list manageable, but if you are looking for inspiration, it's also a great way to find new people to follow.
When are we adding CAPTCHAs to Nostr? That'll fix the bot problem...
This is how the internet worked, back when it worked. Email, IRC, Jabber, and more. All open protocols. You ran your client and I ran mine and the messages moved without anyone in between deciding whether they should. I ran half my life on IRC bots I wrote for myself, answering in channels that belonged to no one. Then the platforms came... Thank God for Nostr.
Not knowing is most intimate.
I'd love to edit some of my posts and replies. The little typos, the confused clauses. But on Nostr there's little point in trying. I guess the imperfections are proof they were "crafted by the honest, simple, hard-working indigenous aboriginal people of... wherever." My proof of work. Proof I'm a Nostr native, and not a machine pretending to be. Perhaps I'll learn to relax a little and let my sentences run on one day too.
I've never understood the word retirement. I spend more time on unpaid work than paid anyway, and always have. A privilege for sure, but also the reason I'll never be able to afford to actually retire.
Too common. People are binary when it suits, then complain about alleged binaries everywhere else. Signal vs noise. I respect their right to unfollow and mute. They are self-selecting. Not the kind of reader who was ever going to offer anything toward your growth. Good riddance.
Groupthink is the infection. The surrender of your own judgement. Communism is the disease that results. Bad money is the painkiller that lets people believe everything is OK while it spreads. Sound money fixes the root cause.
To be fair, it's a reasonably assumption.
This keeps me company all day. Praise that doesn't check the weather.
I've found the same with NIPs. Even talking about your favourite NIPs can be received unfavourably.
Thank you, Gigi. A welcome chirp in the quiet. I was reading you long before I dared publish.
I'm pretty sure @nprofile…jejf did it for zaps?
So perfect. Nothing to do with on-chain zaps of course.
As imperfect as it is, thank you for giving us an alternative.
It's not a decision if you don't have a choice. It's coercion.
Optimism is an act of defiance.
Bitcoin is for your enemies. But in my experience at least, many of the people who would benefit most from it are too ideological to use it BECAUSE their enemies do. The HRF is doing important work here.
#nevent1q…a5sx
Looks like a coinjoin. We need to get you another OpenSats grant so your fruit salad can have its own plate.
"Proprietary protocol" is a pseudonym for platform.
Turns out most clients have no source of truth for relay selection, just routing logic scattered haphazardly through the code. Wanted to help others find all the missing events I kept coming across, so pulled a couple of libraries out of my code. Polished them up and released them yesterday.
nevent1qqsd6dul70lgvyjqzsqk2x0p75fuyz7cuv6z7mn9s940knh3j2zg4mgpp4mhxue69uhkummn9ekx7mqppamhxue69uhkummnw3ezumt0d5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7q3ql33660awkeycecn9grhrvzyn0fmes8245ke7k82y8njz8uqu3vlqszunvm
Your events are used in the "corpus," (a word I would never have used if it wasn't for Claude) let me know if you'd rather they not be.
Had I known publishing on Nostr would just be a conversation between myself and God, I wouldn't have been so reluctant to build in public. I wasn't expecting fanfare, but I'd seen the sometimes overwhelming response to other people's work and was scared off. I didn't want to get tied up talking. It's why I've always hidden behind nyms. Turns out unless you propose on-chain zaps, you've got very little to worry about. I'm enjoying the crickets while I build.
Self-hosted VPNs on KYC free VPS.
Tor will become even more important.
Shipping two libraries today: nostr-relay-selection in TypeScript and PHP. They answer one question: given a Nostr event, which relays should it go to. Covers outbox publish routing, NIP-17 DMs, NIP-65 list parsing, author set-cover, e/p relay hints.
Both libraries are pure functions. No state, no I/O, no caches, no fallback URLs, no tie-breaks by Math.random or time decay. Same inputs, same outputs, every time.
The existing implementations (NDK's OutboxTracker, rust-nostr's gossip, go-nostr's sdk, welshman/router) are engines: stateful, heuristic, coupled to a pool. None are deterministic.
These libraries take the opposite trade. They are a spec. The TypeScript and PHP ports share a JSON corpus of test vectors. A vector that passes in one passes in the other. A Go or Rust port joins the same compliance suite or it doesn't conform.
If you're building a client, a relay, a bot, an indexer, the win is having routing live behind one auditable path. One place that knows the NIPs. One set of vectors that decide whether the answer is right. When NIP-65 grows a marker or NIP-17 tightens a rule, you update the library and every caller gets the new policy.
Post-spec decisions belong in an adapter at the boundary. Onion-only routing for a privacy build, dropping unresponsive relays based on pool state, home-relay ordering, scoring by past success — whatever your runtime knows that the spec doesn't. The library returns the NIP-derived answer; the adapter overlays your application's intuition on top.
In use across the rest of my Nostr stack, to be released soon. I'm also putting these out because I want them stress-tested by people who have shipped more Nostr than I have. If you spot a corpus (Claude's favourite word right now) vector that's wrong, a NIP rule I've misread, or a routing decision you'd make differently, the issue tracker is open.
deno add jsr:@innis/nostr-relay-selection
https://github.com/johninnis/nostr-relay-selection-ts
composer require innis/nostr-relay-selection
https://github.com/johninnis/nostr-relay-selection-php
MIT.
#nostr #typescript #php #opensource #nostrdev
Heads up: @nprofile…jejf @nprofile…pt5w @nprofile…srrg @nprofile…9kky @nprofile…cy6q @nprofile…t7fy
The libraries above ship with a real-world test corpus. Your published kind 10002 and 10050 events are in it as vectors, checking that outbox routing, NIP-17, and set-cover land where the NIPs say they should.
The events are already public. That's what makes them useful as vectors. But there's a difference between a relay list a client reads and a name in someone else's test fixture, so if you'd rather not be in there, just let me know and I'll pull it out.
Thank you all for making Nostr what it is today, and doing it all out in the open.
#nevent1q…unvm
Strange, it's an npub.cash address. Never had a problem before. Perhaps the mint is down. I better send em some sats!
Definitely approve of the move to make Nostr less scary to normies. The door off big tech has to open easy or nobody walks through it. But removing signer support means a user who matures is locked in. That's the pattern they came to Nostr to get away from. I wouldn't use an app without NIP-46, but I'm not his target market.
A shame tho. Have been following along and Wisp is a lovely app. UTXO is a talented man.
Right click, Save Link As on the word (mp3) next to each song title works for me.
They're toggle filters above the table headers. I'm on Firefox, but just checked and it's on Chrome too:
https://firefox-source-docs.mozilla.org/devtools-user/network_monitor/
https://www.freecodecamp.org/news/chrome-devtools-network-tab-tricks/
Actually, the words (mp3) after each song title links to the file directly!
Check the media section of the network tab in developer tools (F12)
https://munk.org/Ted_Worthless/TW2-Serpents-And-Bones/audio/01-TW-Where_The_Moon_Rises.mp3
https://munk.org/Ted_Worthless/TW2-Serpents-And-Bones/audio/02-TW-Serpents_And_Bones.mp3
Etc
Not the first time I've been confused for an LLM. Wilde said life imitates art. The art that life is about to imitate is the one we made by feeding our own writing to a machine. Embarrassing to be confused with a Redditor. Less so with the authors of the great works Anthropic consumed to make its models.
By their fruits you shall know them. Reputation is the only signal that survives when the imitation becomes mutual. People will take me however they take me. Hopefully I have something to offer that an LLM does not.
Honest thanks to @nprofile…ueh9 for the jab. The challenge was fair and humorous. We've both come away with something to think about.
A conversation for another day perhaps. It's time I stretched my wings and found some work that doesn't destroy the soul. Good luck with the escrow, hope it all works out.
Would you want to go back to being less wise? Was Cypher really your favourite character in the Matrix?
Not sure if I should be proud or embarrassed. My younger self would have been overjoyed.
You'll decide for yourself if I'm neurons or silicon. Hopefully it's obvious which. Tho since I'm being compared, I'm suddenly far more envious of their speed and certainty.
I can see where you're coming from. Perhaps I've spent too much time with him. Better go touch some grass.
That too! I was addressing his comment about patience of a monk.
John 19:30 - "It is finished!"
#nevent1q…50cx
Overall peak Frusciante:
https://www.youtube.com/watch?v=KnzJtm6h9SE
The theft was always there, knowing didn't change the money. The monk does not endure his way to anywhere, practice and realisation are one. The sats you stack today ARE the escape. You've already been saved.
Building, slowly. The #PHP libraries are mature. The products I have built with them are in daily use. The release is the work still in front of me.
#nevent1q…j8g7
Chamomile tea has helped me more than I expected. Wish I had not spent so long writing it off as hippy nonsense.