* coracle has this functionality for groups
you can decide a blocking time
they can always arrest someone
I’m new here. Found Nostr by way of the Primal app, that I found by way of nostr:npub1spdnfacgsd7lk0nlqkq443tkq4jx9z6c6ksvaquuewmw7d3qltpslcq6j7 on IG when he mentioned using Primal for bitcoin zaps amd transactions.
What I notice over here in Nostr land is Devs talking about getting more conversions to Nostr, yet it seems more geared to Devs…
As a non technical human artist,
I am asking what is Nostr anyway.
#asknostr
Nostr is a protocol, primal is an app. There have been various attempts with grownostr and things like that, to bring different content
like this but actually made for an app, it would be nice https://www.youtube.com/watch?v=JF3zxE8kzfk
video of Jack or Elizablue, Onigirl article
the bridge between brainstorm and nostViewstr https://github.com/TsukemonoGit/nostviewstr
Lets see how this works, sorry if I repeat or get too verbose:

https://res.cloudinary.com/lesswrong-2-0/image/upload/v1568584395/Zettelkasten_Svg_1_iuqopd.svg
Just to reference the architecture of Zettlekasten for the architecture I'm trying to emulate.
Conceptually - think linked list
Implementation - think of kind 30040s as containers that can connect together. Why containers? Because we need a way to reference the article as a whole, whereas a linked list only deals with immediate neighbors for traversal.
If we have 3 article headers, where id# represents the id of a short text note and ah# is the id for a kind 30040
ah0 : [id0, id1, id2],
ah1 : [id3, id4, ah0],
ah2 : [ah0, id6, ah1]
Each of them contain 3 notes each, but ah1 contains ah0 while ah2 contains both ah0 and ah1.
Even though ah2 contains two headers with one being nested - traversing over the ids in the header allows everything outside that level to be loaded when needed.
Going back to the rendering function
```
def render(e, kind):
if kind == 0 or kind == 30040:
metadata = JSON.decode(event.content)
if kind == 0:
print(metadata.name)
print(metadata.website)
else:
print(metadata.title)
print(metadata.author)
if card.clicked:
eventList = e.tags
return renderEvents(eventList)
elif kind == 1 or kind == 30041:
print(e.content)
else: # output raw json
def renderEvents(eventlist):
for e in eventList:
render(e, kind)
```
It is just a giant wrapped if-else statement that has rules to render the specific kind that appears in the list. The rule to render kind 30040 would be to just display the metadata from content. At minimum you can render the title, which can also be a section or chapter title. All events in the list should have a rule that says how to display it.
Referencing the spec:
```
{
"id": ...,
"pubkey":...,
"created_at":
"kind": 30040,
"tags": [ // influenced from nip-51 lists
['e',
['e',
['e',
...
],
...
],
"content": `{'title':
}
```
Some extra reading:
https://zettelkasten.de/introduction/
https://www.lesswrong.com/posts/NfdHG6oHBJ8Qxc26s/the-zettelkasten-method-1
So basically ah0 is a nosli (a book of notes) ah1 is 30001 ah2 is 30001
I'm not sure but it's an interesting way to represent keys.
see also https://github.com/1l0/hexpattern
is similar to nostrudel? https://next.nostrudel.ninja/#/u/npub1ty3ftnetpxnlj42lgwkmwdxta69gfm5f9mfljvmwdgymvsf6pkuswhxq4p
no you knew...
Today #albumstr
Scream from New York, NY | Been Stellar
Compassion | Rui Gabriel
something came out
0.5 kind 1, 1 kind 7

I don't know about nip, but 30003 can be found on nostree me and 30004 long form curations on yakihonne and highlighter
"How do you not know this story? 😡
@walker asked the @dave bot (that I can't tag correctly) to tell him a joke about Nostr. The bot replied that Nostr is a Nosy ostrich. Boom. We now have our mascot. This happened almost a year ago".
it's not a percentage 😅
