Well I'm glad to hear it. 1912. Sheesh. What was he thinking? He should have listened to his 1879 elders.
Actually not the feature I was talking about, but yes that is cool too. Unfortunately it will be difficult to release a packaged build with ffmpeg support .. the build will have to work even if ffmpeg and SDL libraries are not found. So video is for people who compile their own, at least for a while longer.
I fucking love what is going to be coming next in gossip. I especially love that I didn't do it. I didn't even know about it until yesterday.
You will know about it soon enough.
Classic purity spiral
So that's where Shapiro got the movie name from "Run. Hide. Fight."
I have no factual data about this matter. I'm arguing in the abstract. Maybe someone else knows.
Great conversation. It's making me think.
I don't know if people are cultist. Maybe they are mad at you for questioning Jack. I don't assume that, but maybe. I'm blind to other people's reasons.
There is a common exception to free speech regarding "exposing troop movements during a time of war" because that is probably going to get them killed. This Elon jet thing seems similar, EXCEPT that you have to presume that there are people who want to harm him, and who would indeed actually harm him, if only they knew where he was. That is not in evidence. I think it's a fantasy that is not true. Because if it were true, someone would have harmed him by now since these movements have been exposed for some time.
But what value does it serve, tracking his jet? Is it only malicious? I don't know. Weighted against questionable value, maybe it is immoral. I just don't have enough data to judge that one.
The morality of censoring speech of other people that you consider immoral is itself fraught with issues. The younger woker generation believes in cancel culture: censor whatever you find immoral if you legally can. I think that pathway leads to a deeply broken culture, because we have very different beliefs about what is and isn't moral. But I can't say it's wrong. In the 1970s, the ACLU legally defended nazis, because they felt the moral thing to do was to defend free speech, even if that speech itself was immoral. They could have turned a blind eye. I'm not sure it was the right decision. Moral calculus is complex.
So the solution to this Elon jet data, if you want to persue this, is to contact relay operators and ask them to block these posts. They will consult their own morals and decide. Unfortunately we built this thing to be censorship resistant: even if you do that for 90% of relays (and there are lots of relays), you can't get them all. That is, technically speaking, it's not feasable to actually censor anything on nostr. There will always be some relay operator somewhere that allows it. NIP-56 allows you to try, however, and do the best you can.
I take issue with several of your characterizations.
First is that "nostr" is a thing to be judged in an overall sense as in "Nostr has no morals". Nostr is both a technology and a network of things, and I'd prefer if you judge them independently.
For example, you could judge an aspect of the technology: is NIP-04 immoral? Perhaps, since it suggests certain actions that exposes metadata about someone's secret dealings. Is it's protocol lacking in the means to report on bad content? Actually no: https://github.com/nostr-protocol/nips/blob/master/56.md
Or you could judge a nostr relay: Is it immoral for some particular relay operator to fail to filter out information about Elon's jet? You make the call.
But I can't comprehend how to judge nostr 'overall', in the same sense that I wouldn't say that "the Internet has no morals."
Second, by implication, that people who believe in free speech have no morals. I consider myself highly moral. I recognize that I cannot ask others to do what I will not do myself, and in treating others as equal to myself I have concluded on a standard by which we can compromise our desires: free speech. That means I have to allow others to say things I would prefer they don't, and in return I will be allowed to say what I believe needs to be said. There are very many situations in which somebody needs to speak up, and I do. But I can't morally assert my right to speak up while denying that right to other people.
It is immoral to hold other people to a standard that is beyond that of the law. The purpose of the law is to be the social agreement of what we can and cannot do. It just wouldn't be fair to throw out that agreement and require even more of people. If we wanted to stop people from reporting on jet movements, we should have passed a law about that. It's our fault and it's too late now, ex post facto laws are even more immoral.
Morning Nostriches! So I just saw that the Elon jet tracker joined Nostr. I am outraged that something like this is encouraged by you nostr:npub1sg6plzptd64u62a878hep2kev88swjh3tw00gjsfl8f237lmu63q0uf63m. Elon is a father and the information shared about his movement could be dangerous. We are talking about the safety of a family here.
This shows how dangerous Nostr can be. There are NO safety rules. This isn't funny nor cool. To possibly put the safety of a family in danger at very hard economical times. nostr:npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5s nostr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z nostr:npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6
and all the creators of this space. My question for you guys is how can you guarantee the safety of people in this space? If any information can be out with no moral boundaries. I'm all for freedom of speech but safety is important too.
Can you guarantee that water will not be used to drown people? Since you can't, shall we ban water?
We cannot guarantee that nostr will be used only for good things. Nevertheless, nostr is a public good.
I agree that exposing where Elon's jet is, in a "stochastic terrorism" kind of way, might help enable someone who wants to harm him or his family. But it isn't directly harming him or his family. The actual harming is where we draw the line -- harming someone is illegal.
When you flip it over and ask "should it be illegal to mention somebody's whereabouts" the answer is obviously no.
We live in a world full of risks. We cannot eliminate them. And we have to draw sensible bounds on what behavior is and isn't legal. AFAIK tracking Elon's jet is legal.
If you sync it. This is a stick-shift, not an automatic. Go to the People > Followed page and press "Publish" to send them out, or press "Overwrite" or "Merge" to pull them in. The manual control and details about what the latest event says versus what your local database says are all provided so that you don't accidently lose all your contacts (that has been a problem among clients that just do it all automatically).
Very cool. Thanks for the explanations.
On the separate mmap, I'm writing the serialized OpaqueEvent first, then writing the indexes. On a crash we might have a useless event that didn't get indexed, but it wouldn't be corrupt. The writer locks a write-lock, appends, then updates the 'end' pointer at the beginning of the map, then releases the write lock.
Also, these events are opaque (customer-ready, pre-validated). I never access the fields.
I noticed strfry does an index scan of these flatbuffers (of stripped down events) when necessary, using the fields to filter. I'm instead trying to use multiple btree-like indexes:
id -> offset
(created_at, id) -> offset
(pubkey, created_at, id) -> offset
(event_kind, created_at, id) -> offset
(tagdata, created_at, id) -> offset
Each key has to be unique per event, hence the id on each. And the created_at is to scan a since/until range. It's a lot of data to store, but I think that is okay on a personal relay. I don't think it would cause more page faults and cache misses.
I'm finding the set of events that match the filter by doing a functional intersection over the results from these filters. I say functional because I don't collect each result into a set and then intersect them, I intersect as I go: first index: collect the offsets in a hashset; second index: check each in the previous hashset and if it exists, copy to the next hashset (thus functionally being a set intersection) otherwise drop it.
Maybe this is a dumb algorithm. Databases are more my brother's thing, but I'm stubbernly trying to reinvent them myself (I would never learn as well otherwise).
I think deleted events will just be marked as such in another hash table, and a periodic rewrite will filter them out. I haven't really worked that out and now that I'm thinking about it, it could be quite expensive.
A lot of these OS level features like sendfile() or pwritev() become very difficult to use when relying on an upstream library that doesn't expose it's API in a way to utilize those. If I use tungstenite for websockets, I don't think I can write into it's outbound buffers at a low level.
At this point I'm really still exploring. It will change.
The ruleset I desire is (no AUTH requried):
READ:
* Allow whitelisted people to read everything
* Allow everybody to read events by whitelisted people
* Allow everybody to read all 10002 events
* Deny the rest
WRITE:
* Allow whitelisted people to write anything
* Allow everybody to write events where a whitelisted person is tagged [they won't be able to read them back, and that is very important]
* Allow everybody to write any 10002 event
* Deny the rest
I started work on a relay that uses similar ideas to yours but it is very early days. Events are appended to a mmapped file where readers are not blocked during writes (except during resize). Indices use concurrent lock-free kv system optimized for SSDs (rust package "sled") whose interface is like a BTree map between two binary blobs. I'm keying them with things like (pubkey,created_at) pairs so that I can handle since/until quickly. The value is just the offset in the mmapped events file. I'm using a form of serialization (called "speedy") that (at least in rust) performs faster than flatmaps (that may not count when switching languages). Incoming events go through slower processing to canonicalize their encoding and validate their ID and signature. Outgoing reads should be pretty close to as-fast-as-possible. All asynchronous to keep all the cores busy whenever there is work to be done.
Let's start a NIP
There must be a way...
... to purchase a linux setup. 😂
Gossip starts up on a help page that guides you through getting it setup. Click "Help" in the upper right and then "Getting Started" on the next line down, and follow the instructions.
Unfortunately just about every other nostr client is manipulating you by automatically hooking you up with their preferred relays, driving your business and your private information through the relays that THEY selected for you, without even so much as a disclaimer. I refuse to engage in that behavior. I think it is disrepsectful and centralizing, not to mention fragile. This is why gossip doesn't have any relays setup when you start. Because I respect you and think that relay selection should be your choice, not mine.
Finally figured out and set up Gossip by @nostr:npub1acg6thl5psv62405rljzkj8spesceyfz2c32udakc2ak0dmvfeyse9p35c on my desktop. The UI is unapologetically bad, but it's still a fantastic client with a ton of features that matter. Can't wait to watch it improve.
eh... I apologize. There. Now it's apologetically bad.
I started working on a relay because the remaining work for gossip is more tedious then it is challenging, and challenge is what motivates me. I think I can beat strfry.
In modern times you can spell words any way you want to and they now mean anything you want them to mean. Kind-of like gender.
🤣
I was today years old when I learned that rocking chairs are primarily for putting babies to sleep. I just thought everybody liked to rock back and forth.
Glad you're here and came and said hi. People were memeing about you so I used you as an example. Hope you're cool with that. Yeah, I wasn't into bitcoin when I got involved, I was looking for a Twitter replacement. I'm cool with bitcoin though.
I don't talk about bitcoin (much at all), but I do talk about nostr technology a lot, world politics, and any crazy idea that I think up and want feedback on. Hope that provides you some diversity. 🤙
I'm not sure that nostr is a strong enough lever to use it to lever people into bitcoin. I think it will just snap off. If people have to be bothered with the new concepts of nostr AND the new concepts of bitcoin, new terms like sats and zaps and wallets, I think a lot of normies will find it all too much.
I personally find it easy. And it seems like some new people like nostr:npub1drkv6h6k47s3fc40f0h884m6qr256kvrqvhc0p6wtrg9ywp9tt5qf3tgev find it fun and hop right in. And it can be built-in and made as easy as possible if we get the clients right.
But there will be people who say "Bitcoin, oh no. That's why my computer got cryptolockered. Fuck them." and other people who will feel like criminals for associating with bitcoiners ("why don't they just use money? clearly they are buying and selling illegal things"). Or even "this is going to complicate my taxes beyond what I'm willing to bear."
If we want to grow nostr beyond bitcoiners, relays are going to have to accept fiat.
Anybody have any advice for writing extensive documentation that outputs to multiple HTML pages? I've been fighting with docbook related stuff and I'm coming to the conclusion that it is a hyper-complex ill-maintained stack of shit.
On climate change:
* I believe it is happening, based on satellite temperature measurements.
* I believe CO2 is increasing very predictably based on atmospheric measurements.
* I don't believe anybody doing those measurements is intentionally deceiving the world. I'm just not that much of a conspiracy theorist.
* I believe these changes are anthropogenic (human caused)
but
* I think most models and predictions are pretty suss.
* I think selection bias is endemic: in journals selecting papers, in governments selecting who to fund, etc. An extreme bias rejecting "deniers" yields a certain and unscientific (potentially untrue) outcome.
and
* I don't think it's important to stop these changes in the near term
* I think climate change is a net-win currently as Canada, Greenland, northern Russia and maybe even Antarctica are mostly unusable currently; there are far more uninhabitable places due to too-cold than too-warm; far more people die each year because of being too-cold vs too-warm.
* Species will die, but I don't care. Life continues to evolve. There will be new species.
* People will move. But much moreso in the short term, people will adapt.
yet
* Eventually we will have to convert away from fossil fuels that put CO2 into the atmosphere because it is very hard to draw it back down in sufficient quantity.
* We need fossil fuels now in order to innovate the technology needed to not use fossil fuels. We have no hope of doing it on bamboo bicycles.
The dream sequence in my head was very short, probably 15 seconds, but it had all that detail I described maybe not fleshed out like that, but that was the feeling I had. Definitely I was seen as unable to compete in the social game at even the beginner level, I was totally unskilled and totally foreign and looked down on. There was no progression of this story. I just woke up with this feeling that I'm totally ignorant of how other people see the world, and I've been terribly naive my entire life by being open and honest all the time, and maybe I should be more discreet or that I should consider my audience before I speak or something like that.
Sorry, maybe you wanted me to make up an intriguing story, and here I am being open and honest instead. See what I mean?
Dreams are strange. I don't recall saying anything, just that everybody around me had judged me as wanting. And people were dressed very sharply in traditional dress, and reveling in this social game. It was honestly more like Japan now that I think of it awake, but in my dream it was China. Somebody's mother in particular disapproved of me, I wasn't good enough for her daughter, and some slickly dressed Chinese guy (black slacks, silk shirt) who knew all the right things to say was definately this mother's choice for her daughter. But this daughter, I wasn't sure what she wanted and she had run away or something so I was stuck with her mother and this other guy in some awkward situation. I remember being kind of excited to learn how to play these social games because I had no idea such a thing even existed and I wanted to learn. But I was also posing and trying to pretend that I had some secret up my sleeve so I didn't look like a total fool. I'm embellishing a bit to make the dream coherent because like all dreams, it wasn't coherent. And I can't remember my dream very well this late in the day, but that was the gist of the feeling I got when I awoke.
In my dream last night I was in China, and I was being judged very negatively by most Chinese people I was interacting with because I wasn't being strategic or subtle in my language I was just being open and honest, and they all saw that as a very negative trait. And I started thinking about how I could work on becoming more strategic and manipulative in my language. Then I woke up.


