Avatar
hzrd149
266815e0c9210dfa324c6cba3573b14bee49da4209a9456f9484e5106cd408a5
JavaScript developer working on some nostr stuff - noStrudel https://nostrudel.ninja - Blossom https://github.com/hzrd149/blossom - Applesauce https://hzrd149.github.io/applesauce

Calculating the WoT does take a while, so I need to find a way to either download a pre-built one or somehow have the app build it in the background without slowing the app down

good idea. should also help to see if something went wrong and you have 0

Most web clients cant easily validate the hashes since its not possible to get the raw blob from a element. I have a button to do it in noStrudel but the user has to intentionally click it

Also it does not detect https://github.com/willnorris/imageproxy which is the image proxy that noStrudel can use :)

https://api.nostr.land/detect-cache/v1.jpg" class="embedded-image" loading="lazy">

Replying to Avatar semisol

What are you using to detect proxies? User agents?

Also blossom can help prevent tampering with media since the files sha256 is in the URL which is in the signed event

The porn scares of new users and makes existing users leave.

Spam attacks are expected and clients and relays are trying to find new ways to mitigate them, but when you spam porn your not just spamming your trying to hurt the small community

Replying to Avatar semisol

gn Nostr

a lot is coming to https://nostr.land… what is your biggest complaint and/or favorite feature?

very small complaint. there are lots of layered dialog modals :)

https://cdn.hzrd149.com/4dfdb31ae7d25cd121f0e20f8eec73fe98a31792d0ab66a7cff09fdc43534c1b.webp

Replying to Avatar semisol

Hi nostr:npub1fjqqy4a93z5zsjwsfxqhc2764kvykfdyttvldkkkdera8dr78vhsmmleku.

Kindly go fuck yourself.

nostr:note14qklh45n8gpjmr55hunr7l9fd35n0h0qhyp3usav7tycknddxwdqw3wheg

Well this should be interesting...

Introducing: https://playground.chat

Prompt up to 4 AI models at once and save up to 80% on AI subscription fees.

Instead of subscribing to each AI provider individually, get access to over 40 models under one app, starting at just $10/month.

https://v.nostr.build/O07Y5k49PlFzOBxC.mp4

Free queries available for everyone to start without logging in, feel free to give it a spin!

Look forward to your thoughts and thank you for noticing there is no nostr login (it's not a nostr app)

And now it just needs another AI to summarize the differences 😁

Setup a new relay wss://relay.nsite.lol that only accepts kind 34128 and NIP-65 events for nsites. it shouldn't have a publishing rate limit and its max request limit it set >1000 so that its easy to download all events for an nsite

so if your deploying your app using nsyte, nsite-cli or any of the other tools at https://github.com/nostrver-se/awesome-nsite make sure to add it to the relay list

also setup https://nsite.lol to use it as the first relay to check, so it should make things a little faster and more consistent

cc. nostr:npub1uac67zc9er54ln0kl6e4qp2y6ta3enfcg7ywnayshvlw9r5w6ehsqq99rx nostr:npub1q3sle0kvfsehgsuexttt3ugjd8xdklxfwwkh559wxckmzddywnws6cd26p

I'm going to try and setup a relay for nsite.lol so that its a little faster and easier to deploy to :)

Pretty sure I remember telling you it was just going to take time and some work 😁

But I'm glad to hear its working for you. next step is probably to integrate it into some browser or something with a browser extension

Replying to Avatar Leo Wandersleb

nostr:npub1ye5ptcxfyyxl5vjvdjar2ua3f0hynkjzpx552mu5snj3qmx5pzjscpknpr I wonder why here the video defaults to English while on YouTube it defaults to German. I'm German. Did I set this preference in my browser or in YouTube? Should noStrudel do something so I can see it in German here?

I don't think I'm setting any language settings when embedding the video. so maybe youtube defaults to English when its embeded

I'm not too worried about the server lying, since ideally users could choose their provider or maybe run their own.

The way I see it there are two uses for pagerank or "WoT"

1. The client wants to hide content that is outside of the users social network (subjective distance or score)

I'm not sure how this could work without the server sending the whole graph (probably Mb of data) or the client making API requests to check each pubkey (not great for privacy)

For this case I think the simple kind:3 WoT is good enough, at least for now

2. The client wants to sort events or pubkeys by "reputation" or score

Vertex already does this well for user search ( query -> pubkey[] ) but it may be useful to have some kind of generic sorting method for events to allow a client to sort replies ( again probably bad for privacy )

I tend to agree with nostr:npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn. I want my client to work without a dependency on a server. but I'd also like to integrate with some kind of server to improve performance or to get better sorting / filtering results

Once I finish NIP-17 support I think I'm going to start looking into nostr:npub1g53mukxnjkcmr94fhryzkqutdz2ukq4ks0gvy5af25rgmwsl4ngq43drvk double ratchet NIP. It requires the client to keep state, but If I remember correctly it requires a lot less decryption requests from the users pubkey since it uses rotating random keys

https://github.com/nostr-protocol/nips/pull/1813

nostr:nevent1qvzqqqqqqypzqfngzhsvjggdlgeycm96x4emzjlwf8dyyzdfg4hefp89zpkdgz99qyf8wumn8ghj7mn0wd68yat99e3k7mf0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qpqh76z8vrufl3f2x6r3w2tgzm53uvmguugg8s03v8e2d26z7f7ta7sfvcnpm

Out of all the apps and libraries I've built I'm probably most proud of the applesauce-relay package.

In ~1.5k lines of code I've managed to build the cleanest API for connecting to relays, and its all stream based so its super flexible.

Also did I mention it also supports client side negentrapy sync? ( although I haven't found a use for it yet πŸ˜₯ )

nostr:nevent1qvzqqqqqqypzqfngzhsvjggdlgeycm96x4emzjlwf8dyyzdfg4hefp89zpkdgz99qyf8wumn8ghj7mn0wd68yat99e3k7mf0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qpqw9tjg79fycymqv9ppzksk6fmafpw9tzlsy7sqckvxd5ggqpy49as5x0yxh

I'm looking for help with this issue https://github.com/max21dev/groups-relay/issues/4

I'm using groups-relay which is built on top of khatru to host the noStrudel, blossom, and nsite groups. but there is an issue with chachi / flotilla and the relay which is making it so when users send messages the relay rejects them and no one else in the group see them

I'm not sure whats going on and I don't have the ability to debug it without taking a week or two to learn go

nostr:nprofile1qy88wumn8ghj7mn0wvhxcmmv9uq32amnwvaz7tmjv4kxz7fwv3sk6atn9e5k7tcqyra4jk2dr769dekxxpzsceunsyqmeu6hsk420s2u9w4url5rpazfyluu7dq

It does not support NUT-18 payment requests 😞

> do you not think that relays should protect the privacy of users DMs?

Please rewrite the github issue without the snide remarks...

The existing v0.42.0 version is using nostr-tools and custom auth handling logic. there aren't any checks if a relay needs auth before making a REQ so it probably keeps spamming REQs while its waiting for the user to approve the authentication

The next v0.43.0 version is using rx-nostr which has checks if relays require auth. the auths still have to be manually approved by the user (or auto if an option is enabled) but this should at prevent the app from spamming REQ while the auth process is happening

If the k:33333 signed the feed GUID then that at least would prove that you say you "own" the GUID, but still the feed could be modified and there is know way to know what the original one is 😞

1. Read through the NIPs and if your use case sounds somewhat like what they are designed for. look into using them, otherwise invent your own and ask for a lot of feedback from other devs

2. Pick your favorite number. your birthday. the birthday or your cat. anything as long as you are reasonably sure your not going to conflict with other developers. (you can check this by querying popular relays)

3. Draft a new NIP before your finished. IMO the purposes for NIPs is to *invite* other developers to work with you by explaining to them how your data is structured and what its used for

4. Write it as simple and strait forward as you can, don't explain why users use your app / event kind. instead try to explain to other devs how they can use your new event kind

5. IMO there really isn't a "process". the closest thing we have to a process it the requirement that at least two independent clients implement the standard. beyond that its just developers arguing on the internet...

I would say a good way to think about NIPs is "an invitation for integration". your not writing a standard that will be enforced on other developers. your writing an invitation to ask them to work with you. and generally invitations are best kept short and to the point (think of wedding invitation cards)

Then if they accept, you get to share users and both your apps get better

I couldn't help myself 😁

nostr:naddr1qvzqqqr4gupzqfngzhsvjggdlgeycm96x4emzjlwf8dyyzdfg4hefp89zpkdgz99qyw8wumn8ghj7umpw3jkcmrfw3jju6r6wfjrzdpe9e3k7mf0qyf8wumn8ghj7mn0wd68yat99e3k7mf0qq2xgmmwwskkyatfd3jz6mmw94ek7cmfv9kqv738cv

Cant remember where I learned it, but its one of the few commands I've memorized

One of the most useful linux commands I know "fuser -k /tcp" kills the process that is using a certain port. really useful for killing that dev server you forgot to shutdown

that or a simple SQL database, AI's aren't the best tool for analyzing large amounts of unknown data

Thanks for the massive zap, but what do you mean by standalone?