🔥🔥🔥LFG 🗣️🎙️🎧 View quoted note →
david
david@bitcoinpark.com
npub1u5nj...ldq3
neurologist and freedom tech maxi
Co-Founder @ NosFabrica
🍇 Grapevine, 🧠⚡️Brainstorm, Tapestry
GM all fine people 🌞 ☕️
Today I’m using Windsurf to continue work on a personalized Webs of Trust relay. Yes that’s webs plural, bc there are many types of “trust” and many ways to calculate trust scores.
Progress so far:
✅ strfry integration
✅ Neo4j graph db, Neo4j graph data science, APOC integration
✅ data pipeline from strfry to Neo4j
✅ follow, mute, & report relationships in graph db updated in real time
✅ periodic calculation of hops and personalized PageRank scores using neo4j
✅ periodic export of WoT scores as kind 30382 notes to the local relay
Current tasks:
- add personalized GrapeRank calculation
- continue work on GUI
- continue organizing it all as a nodejs package
Future tasks:
- add personalized recommendation pages to GUI
- make scores available by API using WoT DVM
- start cranking out CONTEXTUAL GrapeRank WoT scores 🍇 🧠 ⚡️
I just accidentally uploaded 90k events from an experimental protocol to relay.primal.net … sry guys next time I won’t forget —dir down when I use strfry sync I promise 😅
Take a look at this fantastic pen roll that I just received from the legendary nostr artist @Scott •••! Only one pen in it now but soon it will have many more!
Have a pen lover in the family and need gift ideas? Hit up @Scott ••• for one of these. Pay in sats, #valueforvalue !
#artstr


Using Windsurf. This is absolutely incredible. 🤯


Windsurf 🤯🤯🤯🤯🤯
How long before AI can build an entire nostr app from scratch?
An example of something the FOSS graph database #neo4j makes super easy: calculation of the minimum number of hops it takes to get from a reference pubkey to any other pubkey. This can be used in a personalized grapevine WoT relay where neo4j maintains a graph of NostrUser nodes connected by FOLLOWS relationships, and the reference pubkey is YOU (you are always at the center of your grapevine!)
You only need 3 cypher commands:
MATCH (u:NostrUser) SET u.hops=999
MATCH (u:NostrUser {pubkey:'<reference pubkey>'}) SET u.hops=0
MATCH (u1:NostrUser)-[:FOLLOWS]->(u2:NostrUser) WHERE u2.hops - u1.hops > 1 SET u2.hops = u1.hops + 1
The third command repeats until no more nodes get updated, typically around 7 or 8 iterations. Each iteration typically takes well under one second.