Avatar
fiatjaf
3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefa459d
~
Replying to Avatar sommerfeld

Now I have to abide by whatever I wrote on the "very short summary" forever?

And also if you see yourself wanting to save preferecens, settings, anything that you know other apps won't care about. That's probably the way to go. The NIP can still be improved.

So here is the solution for writing apps "on Nostr": https://github.com/nostr-protocol/nips/blob/master/78.md

Ganhaste, mas não te zaparei pois meu cliente não me permite que eu zape.

Ah, se eu zapasse como outrora zapara! Ah, se tu zapasses como outrora zaparas! Ah, se ele zapasse como outrora zapara! Ah, se nós zapássemos como outrora zapávamos! Ah, se vós zapásseis como outro zapáreis! Ah, se eles zapassem como outrora zaparam!

Eu zaparia, tu zaparias, ele zaparia! Nós zaparíamos, vós zaparíeis, eles zapariam!

Quando eu zapar tu zaparás! Quando tu zapares ele zapará! Quando ele zapar nós zaparemos! Quando nós zaparmos vós zapareis! Quando vós zapardes eles zaparão! Portanto que eu zape, que tu zapes, que ele zape! Que nós zapemos, que vós zapeis, que eles zapem!

Eu zaparei, tu zaparás, ele zapará, nós zaparemos, vós zapareis, eles zaparão.

Eu zapei, tu zapaste, ele zapou, nós zapamos, vós zapastes, eles zaparam.

Eu zapo, tu zapas, ele zapa, nós zapamos, vós zapais, eles zapam.

You need the &xs= parameter pointing to the URL of the torrent file otherwise it will only work if someone is seeding (because magnets themselves do not hold the torrent metadata, only a hash of the metadata, and the metadata is required to verify the downloaded pieces, so it must be fetched first from either peers or from the &xs= URL).

Replying to Avatar ⚡️🌱🌙

I have an idea for a nostr GitHub replacement but it seems too simple. 😂 There’s no code. 🤣

Maybe this could be a NIP?

To create a repo you create a new pubkey (maybe with multisig).

The repo pubkey will publish notes (repo notes) that include nothing but a list of noteID’s.

eg

noteID1

noteID2

noteID3

(these noteID’s are the files, but how? Each of these notes contains a path/file.name and the source code of a file, they are code notes)

These code notes listed on the repo note can be created by anyone, but the repo pubkey only publishes repo notes. Repo notes only contain lists of noteIDs that make up the source code of the repo, the code notes. Whoever controls the repo pubkey controls which noteID’s are on the repo notes published by the repo pubkey.

Each source code noteID, listed in the repo note that is published by the repo pubkey must have the following syntax:

Line 1: path/file.name

Line 2: line 1 of source code

Line n: line n-1 of source code

To get the files from a nostr repo all you need is the pubkey. You pull the latest note of the repo pubkey and then download every noteID that is listed in the latest repo note from the repo pubkey and you run a script that creates path/file.name from line 1 of each code note and injects the source code from line 2-n of the note.

Anyone can make changes to the source code, but only when the repo pubkey publishes a more recent repo note that references new noteID’s that represent code changes do the changes actually go live.

Does this make sense? 🤔

This is insanely powerful. Everything already exists!

❤️‍🔥

We don't want to throw away git entirely.

The nicest thing about Nostros is the refusal to publish to Google Play.

#[3]

I think the way this bounty is stated is put is not the ideal. I think most people will read this and think we need a big website that is just like GitHub but using Nostr somehow. I think that is not what we should see (and hopefully that's not what #[1] wants either).

What I would want to see are multiple apps that can interoperate and are able to perform separate functions:

- browse code

- comment on code (referenced by a commit)

- create issues and comment on issues

- send patches

- comment on patches

And how these should be done? I am not sure, but here's what I have in mind:

- most of the comment things should probably be kind:1 events, I don't know, with some extra tags (so they could be interacted with from the normal "social" Nostr clients? or not?)

- code should probably be hosted by standalone dedicated git servers -- and there could be centralized providers offering these services but they should interoperate seamlessly between themselves and with standalone personal servers

- sending patches should probably be done using something like this approach by #[0]: http://git.jb55.com/git-nostr-tools/file/README.txt.html

#[2] has opened a discussion on this topic on the NIPs repository that could possibly be used to coordinate the efforts: https://github.com/nostr-protocol/nips/pull/223

I think we could have multiple different smallish webapps, native apps and specially command-line tools that implement one or multiple of the separate functions described above, and with that we can achieve a much better result both in terms of quality and of decentralization than if someone or some big team decides to tackle the entire cake and come up with some centralizing architecture on their own.

I'm not seeing impacts or results either way. But I dislike the feel of bounties. They are like hiring someone without screening them first and without being able to tell them what to do.

Good question. Ask the creator of the universe.

I have never heard that phrase inside ZBD, sir.

Replying to Avatar fiatjaf

I think I am not going to put out any bounties anymore, that is not working. If you have a project idea in your head -- or more than one project idea. Talk to me on https://t.me/fiatjaf (yes, yes, I know) and I can create an instant bounty for it pre-committed to you if I think it is worth it. Does that sound sensible?

Also if you think someone deserves a bounty but hasn't gotten any please let me know.

I think I am not going to put out any bounties anymore, that is not working. If you have a project idea in your head -- or more than one project idea. Talk to me on https://t.me/fiatjaf (yes, yes, I know) and I can create an instant bounty for it pre-committed to you if I think it is worth it. Does that sound sensible?

Replying to Avatar fiatjaf

I need help implementing it. It exists at https://github.com/nbd-wtf/nostr-tools/blob/nip41/nip41.ts but I need someone else to implement it elsewhere so we can compare things and clarify the spec. Then we can start using it.

The beauty of NIP-41 is that it doesn't need any existing client to support it. You just need one thin micro app that people visit every now and then to update their contact lists after invalidation events and then that gets pulled in by other clients.

#[0]