Avatar
tf
681ec9c0372b83b094388634092bf4bf8d0910c432e8b87ca7d722cafe78b4e7
Mostly wrong

Same. It really does feel like detoxing. Drawn much more to opening nostr. Still use X as a quick news feed. But it makes me tense and jittery. I can do without the forever war. Nostr is a calm place. I read about ppl making prickly pear juice and engineers talking of the benefits of the machinists rule and the builders trying to figure out this new technology. What's most important in life is what's right in front of me. And most ppl are good through and through. Nostr reminds me of both those things.

Best way to find content is searching for hashtags

Some clients do search better than others

Plebstr is good at search

nostr is great because it's permissionless for developers as well as users. No API keys needed!

Soooo I'm learning to build a nostr client for fun and maybe one day I'll build something useful

And I'll sporadically post resources which I've found helpful along the way and ramblings which will mostly revolve around React as it's the framework I'm learning with

I'm using Vite for starting a project https://vitejs.dev/

npm create vite@latest

npm run dev

Job done

This tutorial using the nostr-tools library is clear and well paced

https://www.youtube.com/watch?v=O9bzEvv-oFE

The nostr-tools library: https://github.com/nbd-wtf/nostr-tools

Later I'll try the NDK library by nostr:npub1l2vyh47mk2p0qlsku7hg0vn29faehy9hy34ygaclpn66ukqp3afqutajft which is higher level and does nice things with relays and uses nostr-tools internally: https://github.com/nostr-dev-kit/ndk

If like me you're new to this probably the first big (but fun!) hurdle will be the general social media challenge of working with streams of events. Not the nostr protocol itself which is dead simple.

Streams of events which affect other streams of events which affect your application state which affects your streams.

It's very easy to create an INFINITE LOOP

The first indication is the laptop fan preparing for takeoff

The second is the console log showing the relays spammed with hundreds of requests... to which they are remarkably tolerant

Working with event streams in React probably means using useEffect

There's a tendency to overuse useEffect because of not realizing the purpose of useEffect is synchronizing streams of events ("effects") i.e. just what we need it for and no more

This really is an excellent talk, both on useEffect and handling events in React in general

https://www.youtube.com/watch?v=bGzanfKVFeU

... I don't think a state machine is a practical fit to this particular problem but I might be wrong. One approach I'd like to try which is literally made for working with event streams is RxJS https://rxjs.dev/

Sometimes you have to do things which are ugly and you need to forgive yourself for doing ugly things because at the end of the day the ugly thing is solving the problem...

useEffect creates an infinite loop if passed vector dependencies because it does a shallow check on referential equality. Various workarounds are suggested including useMemo and useRef. Good discussion here:

https://www.youtube.com/watch?v=dH6i3GurZW8

I like doing JSON.stringify on the dependencies as it makes it abundantly clear what the purpose is

And TypeScript makes it safe to do JSON.stringify on Map keys 😃

Project status: amazed to see events come in. It's like building a crystal radio.

Agreed

The thing I love about nostr is that the protocol is agnostic

Ppl can build beautiful walled gardens or beautiful wild free for alls and everything in between

Build everything and let ppl choose

That's freedom

Also some ppl will never grasp key management

That's reality

Narrator: it will do absolutely nothing against spam bots

Hmmmmm

"There can’t be multiple winners"

Why not?

Metcalfe's law only impies that the overall adoption might be lower

Ppl are leaving centralized social media for very different reasons & if those reasons aren't catered for by a one-size-fits-all solution - and currently they're not - that prediction might be incorrect

And even if it isn't

What is winning?

Is it maximising adoption uber alles?

Or bridges and choice and decentralized decentralized protocols :)

There's no such thing as provocation

It's a choice

You always have a choice

Japan does this well

Mega cities with quiet main roads and without traffic jams even in the center

Because almost everyone cycles or uses fast & affordable public transport

Lower stress, better air quality

The hardest part of joining a social network is building contacts

Around 40 seems to be the critical mass where it gets a lot easier

Now I have some nice lists going and great content coming in and starting to spend too much time on my phone 😊

"oh no I'm following twice as many ppl as are following me & this will deep six my reach"

Why do users even need to think about such things?

Algorithms degrade user experience

I wandered into Global just now

Fuck that was scary 😂

The creator => consumer 'social' feed model is great for generating ad revenue but it's a replica of the corporate press with 10x the velocity and intensity

Caste systems promote friction and dysfunction and are an abomination before the Lord

"No more political parties"

Imagine the impact that would have on the media, both corporate and social

And on the inane culture wars

It would be an untried system so of course the unknown unknowns

But the sheer power to solve 90% of political dysfunction in one fell swoop

Why have I never heard this idea discussed before?

nostr:nevent1qqstrwzs6vdf6gg2eu5kual0j8nsrgzejn4q77txgxwe774r56yp3rgpzdmhxue69uhk7enxvd5xz6tw9ec82c30qgswuyd9ml6qcxd92h6pleptfrcqucvvjy39vg4wx7mv9wm8kakyujgrqsqqqqqp3gdkkg