Christian Bitcoiner and developer of coracle.social. Learn more at info.coracle.social. If you can't tell the difference between me and a scammer, use a nostr client with web of trust support.
Public Key
npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn Profile Code
nprofile1qqsf03c2gsmx5ef4c9zmxvlew04gdh7u94afnknp33qvv3c94kvwxgsprpmhxue69uhkscnj9e3k7unpvdkx2tnnda3kjctvqyw8wumn8ghj76r0v3kxymmy9e3k7unpvdkx2tnnda3kjctvl079se
Show more details
Published at
2026-03-10T21:11:31+01:00 Event JSON
{
"id": "2b83d820477f318d432445c5f861bac51db955250f890f3cd8bededccc7e10cc" ,
"pubkey": "97c70a44366a6535c145b333f973ea86dfdc2d7a99da618c40c64705ad98e322" ,
"created_at": 1773173491 ,
"kind": 0 ,
"tags": [
[
"client",
"Coracle",
"31990:97c70a44366a6535c145b333f973ea86dfdc2d7a99da618c40c64705ad98e322:1685968093690"
]
],
"content": "{\"lnurl\":\"lnurl1dp68gurn8ghj7em9w3skccne9e3k7mf09emk2mrv944kummhdchkcmn4wfk8qtmgdajxccn0vs7d8uvx\",\"name\":\"hodlbod\",\"display_name\":\"\",\"about\":\"Christian Bitcoiner and developer of coracle.social. Learn more at info.coracle.social.\\n\\nIf you can't tell the difference between me and a scammer, use a nostr client with web of trust support.\",\"website\":\"stuff.coracle.social\",\"nip05\":\"[email protected] \",\"banner\":\"https://hbr.coracle.social/571c66854bdba58bc77def7b0fcfe2f7b8109a35d7952888a9e4381b9791cec4.jpg\",\"lud16\":\"[email protected] \",\"picture\":\"https://hbr.coracle.social/9d20c2f4e4e5bc3914c02acf08b56742139508df833c3c98c72bda23c2b76409.jpg\"}" ,
"sig": "71720d711e1d197de361af502bf713ab045efe80c02d34e6c492003e19d46821fb34a02376278a834c0e5bda05274bf9476bf060d7a4404b46660548bc04f1a4"
}
Last Notes npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod I like learning too, I'm just not a computer science nerd in the narrow sense npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod I'm just a dumb javascript dev so I don't care that much about the low-level stuff. Just copy and arc everything and I'm happy, haven't had to read any lifetimes yet npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod My back has never felt better npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Rust is straight up ergonomic. I like this language. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod "smat" 😂 npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Rip npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod However you reframe the question you still have to change people's minds npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod In theory, but actually executing something like this depends on all the tangential concerns involved in making any decision. Leaving aside taxes/accounting, doing this assumes a high level of consensus in the leadership or entire church over something that is not a core competency of the church. It's also a narrowly articulated version of a broader proposition, which is just "churches should invest in assets", which isn't universal either. The technical dimension is a barrier for sure (understanding multisig, what hardware to buy, how to sign things), but so are procedures for handling hardware devices and signing transactions, when and why to liquidate or rebalance into another asset, etc. I think if a church is already investing in stocks or something the barrier to entry for adopting bitcoin is way lower. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod It worked now, they stopped after I sent a comment "hello from wisp" which never showed up on zap.stream. Maybe that publish failure blocked something npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod I'm also not getting comments streaming in npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Also my phone wants to fall asleep while the stream is open npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod @nprofile…3aqw joining the RHR stream on Wisp worked. Just wanted you to know. But also, you should allow scanning a NWC QR when connecting your wallet. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod I have a deep love/hate relationship with it npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod @nprofile…2w7z has, I only give bitcoin to my church, although they immediately convert to fiat. Speaking from some experience doing bookkeeping involving bitcoin payments, bitcoin is a nightmare both operationally and in terms of accounting. You have to worry about: - lightning channel management - ecash <> lightning <> onchain <> exchanges - key management (bonus points for multisig) - hardware signers - per-wallet capital gains tracking and IRS' shifting rules - short term gains related to drift between invoice amounts and actual exchange rates (or override capital gains exchange rates based on invoice amount) - invoicing in a non-native currency It's just not worth it, even if you do the lamest possible thing and hold your bitcoin on an exchange. It makes me incredibly sad. The cost of accounting for bitcoin in any normal business or church massively outweighs any benefits. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Facebook's form factor plus the ability to browse and join private groups feel like a winning combination. Both are possible on nostr but the index (and the network effect that fuels it) is the tricky part. I feel we have to start with groups that are not self-selected based on neutral discovery, but have intentional organizers with a defined audience, and build from there. The nature of the initial groups will inform what discovery looks like (because those early groups are the ones users can select from), leading to a specific type of group being on nostr (tg = crypto, fb = moms, discord = gamers). Curating this broad group gestalt will be very challenging without a marketing team, and might not work at all, although I do think it's possible the broad culture of nostr groups will fall out naturally. We are unlikely to replace any existing platforms any time soon, although we might siphon off users from each based on UX or "freedom". Unfortunately the latter value prop is not much different from just self-hosting, especially in a group context. Nostr isn't exceptionally private or easy to set up, which makes it hard to pitch to new groups, who can also pick Matrix or ActivityPub. Success with individual groups does not imply success as a groups product in general. These are very hard problems to crack, especially when the approach is so development-centric. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod I realized today that one difference between AI-generated code and human-generated code is the story implicit in it. Code is linguistic, not merely mathematical. Its meaning is more than its function — code has a purpose and a meaning outside of itself. An LLM might write "correct" code based on some validation function, but there is no "story". Consider: ``` function doY() {} function doX() {} function doZ() { doX() doY() } ``` The inconsistency in how the function definitions and invocations are ordered will cause no trouble to an LLM. It transparently sees the semantics, and isn't bothered by concerns unrelated to function. But this is confusing to a human, because it interrupts the structure of the narrative. Structuring code is a discipline by and for humans, based on human aesthetics and mind. Machines need an index; humans need concepts, meaning, and purpose. It just so happens that our conceptual boxes work well as indexes, but the converse is not true — it would be very hard to navigate a codebase indexed by functionality rather than concept. Relationships exist in the spaces between things, and are therefore mostly implicit. Likewise, the purpose of a system is embodied by the system, but is essentially external to it. LLMs cannot code in the same way humans do, because they cannot tell a story. Telling a story means caring about what is told, for its own sake as well as its purpose. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod https://blossom.primal.net/e77b261b0c5e53c6ec6534eaec6a4514dbf7316cf1491ac69e76c3f2dc8fc7a2.png npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Coracle 0.6.32 and Flotilla 1.8.0 are out — both releases include a fix to welshman for NIP 46 login (another switch_relays bug). Thanks to @nprofile…lx9y for the report. Changelog for Flotilla: * Fix relay badge overflow * Suppress programmatic scroll when user is scrolling * Fix vertical alignment of emoji and overflow buttons in shared event action row * Use type=email for signup/login email inputs, validate password * Improve toggle switch placement on settings screens * Fix relay auth privacy toggle * Improve field layout * Add progress bar to signup flow * Bundle emojis properly * Rework hosting page * Fix padding on pages on small screens * Add richer link preview support * Fix pasting into event summary * Publish fewer join/claim requests * Fix new messages not rendering in safari * Avoid capturing stale cleanup function in chat * Hide keyboard on app resume * Add email rendering support * Fix bunker login * Fix undefined chat draft key * Allow sharing to chat without a message * Make sure to show date on calendar events when embedded * Improve space search Thanks to all the contributions by Summer of Bitcoin participants! npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod I recently started using https://nostrarchives.com/ by @nprofile…64sm for this npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod @nprofile…056v getting a cert error for cdn.zapstore.dev: Error: failed to upload file: upload failed: Put "https://cdn.zapstore.dev/upload": tls: failed to verify certificate: x509: certificate has expired or is not yet valid: “cdn.zapstore.dev” certificate is expired npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod The way I'm handling this is to ask nip 29 relays to push events to user (client)-selected push servers. This keeps the events off of public relays, allows nip 29 community relays to choose not to support notifications if they prefer privacy, and supports fcm/apns push. See below for the nip: https://github.com/nostr-protocol/nips/pull/2194 npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Not again, you have a problem npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod It's an interesting tradeoff npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod A diversity of implementations solves Hyrum's law, in which implementation details are transformed implicitly into interface guarantees. Nostr has some gross conventions (like error: prefixes on OK messages), but the compensation is that every implementation chooses different wording, and so clients have to be pretty ambivalent about relying on how messages are parsed. This reduces reliability, but improves compatibility. https://lawsofsoftwareengineering.com/laws/hyrums-law/ npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod This is one of the few typographical shortcuts I know, but I can't tell you because it's stuck in my fingers. Also, annoyingly I can't enter it into my terminal emulator for some reason. I have a weird number of emdash problems. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod I fully believe it, that movie must have been so expensive to make npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Just watched Redline. What a wild movie. Thanks to @nprofile…6rfd iirc for another great anime recommendation. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Coracle renders custom emoji but doesn't have a way to add them to notes npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Bolting is tragic npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Sorry for the slow reply, I had surgery yesterday 😅 From your previous note it sounds like welshman isn't authenticating, you'll want to run: ``` import {defaultSocketPolicies} from '@welshman/net' defaultSocketPolicies.push(makeSocketPolicyAuth({sign: event => signer.sign(event), shouldAuth: socket => true}) ``` If that doesn't work, maybe send the message log from the devtools. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Good questions to which I don't have the answers. The simplest thing would be to use a separate relay, since zooid enforces relay membership. If you used it for signing it could create chicken/egg scenarios where you couldn't sign AUTH events to prove you are a member of tge relay. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod If you don't take a vacation, eventually a vacation will take you npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod This is clever, going to try it with flotilla when I get a chance npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Just had surgery for a 3-4 cm diameter abscess in my neck. So that's how my Thursday has been. Appreciate any prayers that they got everything and it wouldn't recur. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Genesis 9:2–3 The fear and dread of you will fall on every living creature on the earth, every bird of the air, every creature that crawls on the ground, and all the fish of the sea. They are delivered into your hand. Everything that lives and moves will be food for you; just as I gave you the green plants, I now give you all things. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod The reason it works with card numbers is that they're just opaque identifiers interpreted by a machine. Private keys have to be held to be used, and aren't passed around directly and so can't be linked by the non-existent server. By definition something that can directly create valid signatures on behalf of another key is that key. Keys are cool and weird. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Guys, stop commenting on this, it's been 2 years. Primal is good and @nprofile…xka5 is a nice person #nevent1q…kuej npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod That's what a bunker is npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod A bluesky-integrated github alternative is getting some attention on hackernews. Upvote my comment mentioning ngit: https://news.ycombinator.com/item?id=47951360 npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Anyone have opinions about Jolla? I never heard of them until today. https://jolla.com/ npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod It's because the LLM gamed the benchmarks and wrote an empty function body npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod lol npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod This is a pretty good heuristic. I put reference stuff very low, and books that I want my kids to pick up when they're bored on the second shelf from the bottom. Other than that, I try to organize by topic: theology, literature, technology, etc. But my shelves are a disaster at the moment. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Mastodon minus identity, minus client. It's significantly less centralized/controlled npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Honestly think that probably would have been a better choice npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod You guys are going to get me in trouble 😂 npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod The QR in QR Code stands for "quantum resistant" npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Got it, sounds like everything is working as designed but there are some documentation gaps. First of all, the url to make requests against is the one in the config file, not the one printed when zooid starts up. That's where it's listening, but you have to proxy other ports (or hostnames) to zooid in order for it to serve those. This is probably why your nginx setup helped. If you want to run without a reverse proxy, then the `host` in your config file should match the host/port that zoooid is running on. So, by default it's `localhost:3334` - you need to include that exact value in your config: ``` host = "localhost:3334" ``` You should then be able to make requests against zooid using nak: ``` nak req -k 1 --auth localhost:3334 connecting to localhost:3334... ok. authenticating to ws://localhost:3334 as npub10x…kge6d... ws://localhost:3334 CLOSED: restricted: you are not a member of this relay ``` `nak event` and `nak relay` should work in this setup too. Docker is fine, podman and docker have the same API. Caravel is still a work in progress, hopefully we'll have it up next week, and then it will include a dockerfile (and built image). Let me know if this clears things up for you! npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Here I am, and I see your PR on zooid but I haven't had a chance to look yet. Happy to take any other contributions/answer any questions npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Sure! npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Yeah, flotilla doesn't connect to relays without ssl. This is a long standing bug deep in the stack. Use ngrok or a self signed cert or something if you can npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Nostr is a bubble of cutting edge tech. I just talked to some people working at my former employer and mentioned agent factories in passing. They had never even heard of them. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Reminds me of Richard Heart npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Pasting keys is poor security hygeine, so we don't support it. Try Amber if on android, Aegis on ios, or a nostr browser extension on web npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Yeah, I appreciate you bringing that to my attention, I was believing the hype. Never believe the hype npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Is there even that much content on nostr npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod A lot of people think they are using AI in a meaningful way npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Doing it well takes an incredible amount of discipline. Writing code is easy because it keeps your mental model in sync with the product. Agentic coding is hard because you have to deliberately slow down to maintain your mental model, when the entire reason you're using the tool is to speed up. I haven't been able to strike that balance myself yet. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Flotilla 1.7.3 (and 1.7.4) is out — this one is mostly quality of life improvements (with the addition of polls). The big change protocol-wise is the addition of kind-9 wrapping of non-chat content types per a discussion with @nprofile…t65r and @nprofile…7tvu. This prevents missing context when sending non-chat messages to NIP 29 rooms, but also allows for adding stuff like polls etc to chat. You can read the NIPs PR here: https://github.com/nostr-protocol/nips/pull/2310 Much of the work was done by contributors coming to nostr via the Summer of Bitcoin program. So thanks to all of you! https://www.summerofbitcoin.org/ Full Changelog: * Add native share support for space invites * Stop sending duplicate requests per room * Add more robust thumbnail url generation * Make space reordering discoverable with smoother drag animation * Improve relay member list * Add room mentions and clickable room/relay refs * Support native clipboard image paste on mobile * publish kind 9 quote after room content creation for cross-client interoperability * Improve feed pagination logic and performance * Support Aegis URL scheme for NIP-46 login * Various UI and bug fixes * Raise message size limit in chat * Fix realtime updates for room members and admins * Add video to calls * Remove follow graph building * Add start chat FAB * Add drafts * Redesign toast notifications * Remove room/space leave indications * Hide report badge for non-admin users * Add polls * Add search to recent activity page * Fix notification badge on mobile nav * Change audio devices in call npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Thanks for the reminder, used it today to look up a note by @nprofile…8yl7 npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Literally overhearing some college students telling each other about it right now npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod And we wouldn't want them to be npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod I present to you... Claude Opus 4.7 https://blossom.primal.net/35df3fb3e2f77db2ca90875f72b00c99e5670c98d5a8ac896410b4246ec39905.png npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod I can't remember why it was bad. I think part of it had to do with the fact that nostr.build optimizes images itself and he wanted clients to use those directly so that they didn't have to serve the full sized file over and over. But caching on the proxy's side should improve that, and clients don't know to download the smaller files anyway. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod I vibes this, works for my purposes: https://highlights.shakespeare.wtf/ npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Flotilla does this npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod This has also been my experience npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod No, I haven't found a lot of good harnesses. Which is why I was looking for something like this. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod yeah, me neither npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod It's good at parallelizing sub-agents with well-defined prompts and context boundaries. It makes it possible to use the research -> plan -> implement flow without filling up your context. I haven't written any custom flows yet, I just use archon's built-ins with custom skills. Here's the video that got me to use it: https://www.youtube.com/watch?v=qMnClynCAmM&pp=ygUKY29sZSBtZWRpbg%3D%3D npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod A week, can't say how reliable yet. I think it's good at what it does, but that reveals other unsolved problems (building new code is much easier, maintenance I haven't cracked, hence my snarky tweet) npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod The boring parts are inextricably tied up with the interesting parts npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Unfortunately I'm still stuck on a computer npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod https://github.com/coleam00/Archon npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod I hope so npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Archon is incredible. It has 10x'd my output, which means I can now one shot 100k LOC instead of only 10k LOC before throwing it away npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod I miss writing code npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Just got my local smoke shop to enable bitcoin payments npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod I think a tag for this kind of thing (like `-` and `expires`) would be the right way to generalize, but as far as I know this kind of thing is only one-offs so far npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod This is probably the correct answer npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Regards are my favorite leftovers npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod What does this mean? https://blossom.primal.net/ac1939c69db000c03dbd3291388b02a3593afe906d34a33c3a06d33e57fa2bd6.png npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Phlegmonade npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod No, much npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Mich* npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod I like this,uch better name npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Yeah, see https://github.com/coracle-social/pomade. Everything is implemented in flotilla for reference. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod I resemble that remark npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Hackernews doesn't like it when I tell them nostr is decentralized and bluesky is not https://news.ycombinator.com/item?id=47719975 npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Is there an existing implementation of NIP 29 roles or is it just dead spec? @nprofile…ptmr @nprofile…z8s8 npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod And you were right all along. Allowed kinds might be worth adding, although nostr event kinds have different purposes sometimes and it mght get confusing or restrict utility behavior npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod https://github.com/nostr-protocol/nips/pull/2310 npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Ok, I've been letting this simmer, and I am going to switch to only rendering kind 9 in chat. When publishing a calendar event (for example), I'll h tag it, then create a kind 9 even which q tags the calendar event and send that to the room as well. When fetching content, I will only fetch kind 9s and show other content as embedded cards. Thoughts? https://gitea.coracle.social/coracle/flotilla/issues/185 npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod Thanks, that was what I was looking for! Although when I query your relay I get this: ``` nak req -k 0 --search "jack" wss://brainstorm.world/relay wss://brainstorm.world/relay... ok. [nl][info] 2026/04/09 13:45:47 {wss://brainstorm.world/relay} bad signature on id::5b9f240083555491a3acfd3df247e33317082d7285a101afd8a7ecc338b835bd [nl][info] 2026/04/09 13:45:47 {wss://brainstorm.world/relay} bad signature on id::5df9771027e02d745070738192bf96a046a71d280279048cd0b86e5fafc9bd1a [nl][info] 2026/04/09 13:45:47 {wss://brainstorm.world/relay} bad signature on id::ed18c1d3758ef4eb73073d9ea810919453418a1218d55eff79ba787b560a8c7f [nl][info] 2026/04/09 13:45:47 {wss://brainstorm.world/relay} bad signature on id::1f28480d0467f165d0aff53b69271c7ca148bad3407a119ddc5200141e90cfdc [nl][info] 2026/04/09 13:45:47 {wss://brainstorm.world/relay} bad signature on id::6708e37cc1c0197e502db7ae9fc66b4548c43cc60414be527c4a66907ad15903 [nl][info] 2026/04/09 13:45:47 {wss://brainstorm.world/relay} bad signature on id::1a25b23204af6b75f86461f40e1e762da793dddfe1f9eb5e557d4f615bf9ab5e [nl][info] 2026/04/09 13:45:47 {wss://brainstorm.world/relay} bad signature on id::bd61fe55146d55adea00168421b23283bd4988a53ab0064031e8ac3bf71abf50 ``` npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod More just trying to improve performance in flotilla right now. If it means I have to accept something slightly more centralized/suboptimal, that's ok for now. But long-term, I want decentralized + personalized with global fallback in case of insufficient data. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod I discovered this weekend that I am part Welsh, which is a great source of joy to me npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod So how do I use this as a client developer? Do users have to calculate their scores in advance, or can they be auto-generated? How many events do I have to download? How long does it take to do it on demand? Can I calculate scores for a single target pubkey? npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod I'm the first person to advocate for the idea that "there is no global". Giving users context asap is important for powering all kinds of recommendations — which is why I have invite links with built in follows/communities, and why I think communities are a great starting point. So ideally, search should take all this into account: members of communities the user is part of, follow based wot, etc. At the same time, there is a point of view that has no context (a fresh user who didn't go through curated onboarding), and there is such a thing as a generally popular account. Of course you need a relay/pubkey to bootstrap from, but I'm happy to outsource that to a pagerank-style provider. The question to ask is: "what is a new user trying to accomplish when he uses the search functionality?" It will almost always be "I'm looking for a particular person." If a user has no follows, communities, etc, there will be zero results for every search. On the other hand, a pagerank-style crawler will have something like 80%+ of the network available. That's certainly better than zero. That's what I mean by "good results". npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod I'm building a search page right now, so complete, spam free, ordered search results is the goal. Secondarily I want to power the wot indicator, so a "rank" of some kind. These are blunt force instruments, so while personalized scores are better, pagerank style will suffice. npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn hodlbod I think it balances a lot of different concerns (dx, safety, speed) pretty well. What do you dislike?