Let's be honest. Most people have no idea what an algorithm actually is, so you can frighten them by saying that you're using an algorithm.

An ALGORITHM is simply a limited set of instructions used to compute something.

So, an algorithm could be:

1) Take the relay the user typed in and find events (json files) from that relay.

2) Return the events as an array (ordered collection of events).

3) Find relevant events for this type of client.

4) Use the events to customize the client and define what to display in the feed.

Reply to this note

Please Login to reply.

Discussion

tl;dr

algorithm means a procedure to filter and modify information

Yeah. Well, CRUD, mostly: create, read, update, and delete.

There is just data and algorithms that do stuff with the data.

This is something all clients do. All of them. Nobody is using a client that doesn't do this. The client has to do this or it would have nothing to do.

There is no such thing as an executable software program without algorithms. It has to contain some set of instructions that are used to compute something, otherwise, it's a data file, not a program.

All we are discussing is whose algorithms users can use where and how easily they can customize them or view the logic behind them. The "Nostr Ethos" is not "Stop people from developing or using algos you don't like". It's "Make algos personal again". Allow people to customize them, turn them off, add their own, buy one and plug it in, etc.

You could make an algo that searches your feed for notes about astronomy and puts a little ✨ emoji in the top-right corner of the note, for instance.

When people talk about "the algorithm" in a vernacular sense (i.e. not the technical definition), they mean the thing that chooses what they see in their social feed. All mainstream social media select content for you, promote stuff you never asked for, while not necessarily even showing you all the messages from the sources that you specifically subscribed to. That's "the algorithm".

The clients that I use in Nostr don't do any of that. They just show me the notes of people I subscribed to, end of.

This isn't accurate. All of the relays do some filtering, so the algorithm is just a level lower. You don't know what was sorted out before it got to you, even if it was a bot or spam from one of the npubs you follow. The relays would eventually collapse under notes, if they didn't curate, at least a bit.

That is a simple attack vector: just flood them with nonsense notes saying "Happy Birthday!" or containing kiddie-porn, or whatever, and shut down the server.

Indeed, you can't prevent filtering, although you can improve the chances by subscribing to multiple relays, especially relays that you have in common with your follows.

But is there a nostr client that mixes in crap you didn't ask for? I think that's the main problem with "the algorithm". I'm amazed at how much outrage p*rn gets shoved down your throat in Twitter/X, Youtube, etc.

The closest we have to that is Primal, but you can get around their regarded Highlights feed, so it's not a real barrier.

And your example helps me illustrate:

How does your client know who you subscribed to?

1) You wrote a list "follows" or "favorites" or "people who know about Formula-1 racing" and posted an event containing the list, and the client lets you select that list.

2) Your client lets you select someone else's "Cool Nostriches" list.

3) You client assumes you subscribed to everyone not on your "mute" list.

4) You paid to be let onto a relay, that you know lots of interesting people write to, and the client allows you to add that relay and see the notes in your feed.

5) You plugged into a DVM, that suggests interesting notes to you in your DMs, and your client doesn't block those DMs.

6) You downloaded the source for a client (like oddbeans) and changed the filter code, to show you what you want to see.

Etc. There are many different algorithms for showing you the notes you want to see.

Algorithms aren't even strictly for computation. If you're building a house, buying groceries, budgetting, driving to work you're using an algorithm to efficiently do that task, it's just not written down.

Same if you manually curate. The algorithm is the thought process in your head and you execute it with your keyboard and mouse.

that's only accurate if you don't consider words to be codes that represent a value

no, that's what words are, even if they don't compute the same, that's because they are ... what is the word

ordinals

ordinals are a priority sequence, the basis of the concept of value - what is first is most important, lesser things are less important

and after being ordinals, words are another thing:

tensors

tensors are multi-parameter values that encode many ordinals together from different ordering schemes

not meaning this as anything more than conveying the idea that ideas have a calculus, and thus they are a computation, just that the actual math involved is exactly the kind of computation that our brains do well and computers are shit at because of the incredible permutations of such scales