This is the argument against pharmaceuticals, and I think it is a strong one: If defeating your body's natural systems via interfering with a single biochemical pathway makes you healthier, then your ancestors would have easily evolved such a thing. Every biochemical pathway has regulators, and natural selection can adjust them. Exogenous substances adjusting these pathways is directly in contradiction to what your body is trying to do (for example, anti-inflammatories defeat your body's natural inflammation; anti-pyretics defeat your body's natural fever; pain relievers defeating our body's natural way of avoiding further tissue damage). And clearly your body is trying to be healthy.
There are exceptions, however; pharmaceutical interventions that don't fall into that category. But businesses want to sell more things to make more money, and so they will expand into drug targets that wise people would best avoid.
No that is a common misunderstanding.
In Athens, mean and median life length was 71.3 years (mean) and 70 years (median).
The reason life expectancy was about 35 was because of high infant mortality. If half of infants die, then you have to average in all these 0's into the overall life expectancy.
Modern medical science has wonderfully improved infant mortality. I cannot argue that. It is clear.
But it has done very little for the rest of us. ... antibiotics (which will eventually fail) probably accouting for the rest.
The difference comes from who is included in the life lengths, which were people of record on the books, which didn't include infant deaths.
Here was my source. They only had data on 83 people, but I think the gist is there... the vibe of it.... the fact that it wasn't 28.
https://pubmed.ncbi.nlm.nih.gov/18359748/
now now...
I feel sorry for Ukraine, Sure, the leadership are asshole racist criminal embezzelers with terrible judgement, but also they are trying to defend their own largely innocent people, and the nation doesn't deserve what is happening to them. The US tricked them into this role for the purpose of weakening Russia, and Russia has to do what it is doing, despite the horror, like how you feel when you put down a rabid dog. War is hell.
I agree with all of that. I see the context of your middle finger better now... more of a "fuck you, you can't have my money". Well I agree. Hey Ukraine… 🖕
I agree with you. I think topologists suffer from an off-by-one error. A sphere should be defined as the base topology, otherwise it would have -1 holes in it!
In the short term, price inflation can happen due to an increase in the velocity of money, which can happen based on crowd psychology.
But in the long term, in a free market society not at war (at least), prices go down in real terms not up. Because we get better, faster, cheaper, more industrialized, greater efficiency, etc.
Another exception that just came to mind is scarcity. Some things get more and more scarce and those will go up in value. Real estate, rare minerals, etc, go up in price due to supply constraints.
But the primary reason that prices go up in the long term is monetary inflation.
I'd like to add that the monetary inflation is intentional. It is not *just* profligate government spending out of borrowing. It is also from a belief that currency *should* go down in value in order to incentivize people to spend their money faster, which drives an economy to grow faster than it would have otherwise.
War is always bad for the economy.
You can see this clearly if you ignore all the money, the pieces of paper with dead presidents inked on them, and the bits in the computers. Money can psychologically manipulate people, but fundamentally money is just an accounting system. You can always look strictly at the real economy, real goods and services, and see whether things are improving or degrading.
War directs people away from production and towards destruction. People who could be growing carrots or building iPhones instead build bombs that are one-time use, and destroy not only the materials and effort that went into building them, but also the target. In aggregate war causes people to produce less and destroy more.
Henry Hazlitt's "Economics in One Lesson" Chapter II "The Broken Window" explains how this can be true while at the same time there can be the appearance of being good for the economy.
"A young hoodlum, say, heaves a brick through the window of a baker's shop. The shopkeeper runs out furious, but the boy is gone. A crowd gathers, and begins to stare with quiet satisfaction at the gaping hole in the window and the shattered glass over the bread an pies. After a while the crowd feels the need for philosophic reflection. And several of its members are almost certain to remind each other or the baker that, after all, the misfortune has its bright side. It will make business for some glazier. As they begin to think of this they elaborate upon it. How much does a new plate glass window cost? Two hundred and fifty dollars? That will be quite a sum. After all, if windows were never broken, what would happen to the glass business? Then, of course, the thing is endless. The glazier will have $250 more to spend with other merchants, and this in turn will have $250 more to spend with still other merchants, and so ad infinitum. The smashed window will go on providing money and employment in every-widing circles. The logical conclusion from all this would be, if the crowd drew it, that the little hoodlum who threw the brick, far from being a public menace, was a public benefactor.
Now let us take another look. The crowd is at least right in its first conclusion. This little act of vandalism will in the first instance mean more business for some glazier. The glazer will be no more unhappy to learn of the incident than the undertaker to learn of a death. But the shopkeeper will be out $250 that he was planning to spend for a new suit. Because he has had to replace a window, he will have to go without the suit (or some equivalent need or luxury). Instead of having a window and $250 he now has merely a window. Or, as he was planning to buy the suit that very afternoon, instead of having both a window and a suit he must be content with the window and no suit. If we think of him as a part of the community, the community has lost a new suit that might otherwise have come into being, and is just that much poorer.
The glazier's gain of business, in short, is merely the tailor's loss of business. No new "employment" has been added. The people in the crowd were thinking only of two parties to the transaction, the baker and the glazier. They had forgotten the potential third party involved, the tailor. They forgot him precisely because he will not now enter the scene. They will see the new window in the next day or two. They will never see the extra suit, precisely because it will never be made. They see only what is immediately visible to the eye."
-Henry Hazlitt, Economics in One Lesson
It is associated with certain kinds of thinking, generally the kinds of thinking that the leftist deep state hates. ... so there is that. Calling it a hate symbol is projection on their part.
The fact that since Windows 11 has been released three years ago, only 30% of people have upgraded from Windows 10... brings back a little faith in humanity.
We are experiencing chicken contango here in NZ. Frozen chicken drums are NZ$7/kg whereas fresh chicken drums are NZ$5.50/kg
Also potatoes are cheap where I live (bought 10kg at a time) at NZ$0.85/kg compared to the average price in the US is NZ$3.28/kg (USD 0.932/lb)
These aren't really exceptional prices. Frozen chicken was NZ$4/kg only a couple of years ago.
Just think about what has to happen and make sure that it can happen:
Outbox -- Make sure you can write to it (subscriptions/AUTH are ok). Make sure everybody can read from it (without needing a subscription or AUTH).
Inbox -- Make sure everybody can write to it without a subscription or AUTH, at least in so much as when they tag you. And make sure you can read from it (subscriptiuon/AUTH are ok).
Question: Should I be calling "friends of friends" your "web of trust" or is that the wrong term? Vitor thinks the web of trust is a google pagerank graph algorithm. We should coalesce around useful terms so as not to confuse each other. What term should I use instead?
I just decided to rename it 'friends of friends' and be done with it. I provide that to the spam script which can use it if useful.
// fof - Friends of friends: Among you, the people you
// follow, and the people they follow, how many
// follow the pubkey of the event?
When did the methodology for creating this data change? Right after 2024-09-20 did it change to "trusted" pubkeys due to the spam issue? Because if so the drop is an artifact.
All that happens if a spammer validates pubkeys on their domain is that their entire domain gets permanently blocked. How fast can they spin up new domains? Not very. We win. NIP-05 is still useful for spam prevention.
Relays shouldn't be blind to who is connecting to them. I've mentioned multiple times to other relay developers and nobody seems to listen... but you can ban IP addresses. Even if you are getting a DDoS those are from a subset of IP addresses that will have to repeat at some point and then you know which ones to ban.
Banning doesn't have to be only by pubkey.
Will this hurt VPN users... yes. But VPNers accepted this as part of the cost of privacy.
I don't know of a perfect solution.
#philosophy #war #peace
The belief that evil exists is the root of hate.
And hate is the root of violence and war.
Rather than thinking like a primitive, consider people who do bad things to be afflicted by a condition. If your dog becomes rabid, you need to put it down. But you don't hate the dog, nor believe it to be evil.
Hate evolved as a way to effectively carry out "putting down the dog", but it, like fear, is supposed to be a short-lived emotion.
After having added web-of-trust to gossip, I think that 2-degrees of separation is good enough for now. All the people I follow, plus all the people that they follow. I follow 262 people. They follow 17751 people. That is 67x as many people.
Some people are suggesting 3-degrees of separation. I didn't try it, but I suspect this would not grow another 67-fold because the nostr community isn't big enough for that. So if you do 3-degrees of separation today, you'll get just about everybody on nostr that isn't a spammer... which is ideally what we want. So go for it if you dare.
However, there is a cost to maintaining 3-degrees of separation data. As nostr grows, your table will grow to probably over a million people. And you will need to keep the contact list data for all of the people at 2-degrees of separation, so that as they follow and unfollow people you can apply increments and decrements to those people's WoT score. For me that is 17751 lists of public keys... which I feel is too much data for a client to be maintaining just to slightly reduce spam false positives.
Feel free to disagree if you feel the juice is worth the squeeze.
Table 1: Followings -- key = publickey, value = Vec<PublicKey> (this is computed from their kind-3 record, smaller than the event itself).
Table 2: WOT -- key = public key, value = WoT score (this is maintained as described below)
Subscribe to kind-3 events of people you follow (periodically, probably once a day is enough).
Whenever a kind-3 event comes in, convert it to a Vec<PublicKey> (but don't store into Followings just yet).
Compute symmetric differences between the old and new followings (perhaps using a HashSet to do it).
Start Transaction
For all the people they were following but no longer, decrement that WoT score in table 2.
For all the people they weren't following but now are, increment that WoT score in table 2.
Now replace their Followings table entry.
End Transaction
Also you need a rebuild_wot system that clears the WoT Table and Followings table, and iterates through all the ContactList events to build it from scratch. Then you need to do that once to kickstart the data.
Web of trust is coming soon (a simple count of how many people (that you follow) follow this person). Then you can act on that as well, e.g.: `if wot > 2 { ALLOW }`
For example, for me @dtonon has a WoT score of 84 and I have a WoT score of 122 (122 people that I follow follow me back).
The nice thing about the script is that users are empowered to control what they want to see, they don't have to rely on hard-coded rules.
I'd like to keep a pure and well understood 2-degrees-of-separation path count. If in the future people want to adjust that with 1984 reports data, they can do so in filter.rhai. It's a scripting language, it has math operations.
But presently we don't collect or provide 1984 data to the spam script.
Personally as I think about 1984 data I'm rather overwhelmed at how complex it will have to be before it is useful. For example, I follow @rabble and he has a WoT score > 100 for me. Lots of people I follow also follow him. But I know that his opinions on moderation differ from mine. So I can't just trust a 1984 report from anybody that I follow. What is going to happen is I'm going to have to make it so you can say things like "Trust Rabble to identify spam, but not for offensive content" or something like that. The data tables and UI/UX management of that data is kind of hairy. Which is why I haven't started into that work.
I'm hoping somebody implements an elegant and more simple system that deals with my concern somehow and then I can copy their idea.
I am sorry to see so many relays now require AUTH for reading. I don't AUTH to read. I want to read anonymously, just like I can read RSS or websites anonymously. Why require AUTH for reading (other than for DMs)?
NOTE: I totally understand requiring AUTH for writing. And if I reply to somebody and their inbox wants me to AUTH to send that reply, I get it. That is a good policy to prevent reply spam.
It feels to me that nostr is splitting, and a bunch of relays that have taken this AUTH-to-read policy are now unavailable.
Let me clarify that a little bit. Relays can be used for all kinds of things. AUTH-to-read is perfectly fine in many contexts.
It is only the OUTBOX context that I'm talking about.
IMHO nobody should have an OUTBOX relay that is AUTH-to-read.
Are you seeing clients that get disconnected immediately reconnect from a different IP to make the same request, or are you just assuming such?
Chorus blocks reconnections by IP address for 1 second to stop any kind of overwhelming. I don't know how well it works because of course my relays isn't heavily used:
* it has 107 open clients at the moment, which is the highest I've seen... it times them out too so they aren't just hangers-on
* Since it started, Inbound: 595880001 bytes (803.1994 B/s) Outbound: 1588855136 bytes (2141.6519 B/s)
It is not a bad workaround. But given the workaround exists, AUTH isn't achieving anything.
Nonetheless I'll implement it simply because it is easier to change my code than to change other people's thinking.
Chorus supports AUTH and prompts everybody with an AUTH when they first connect.
But it doesn't require AUTH to read. If they issue a REQ, it responds. It doesn't check if they AUTHed first.
It only checks if they AUTHed as an allowed user for writing events (in most but not all cases). Read the docs for the details.
Nice work. Glad to see this progressing, and if I hadn't started out on my own I would have liked to have used rust-nostr for gossip... but gossip is too riddled with nostr-types already.
It looks like quite a significant set of changes to the LMDB stuff, definitely not 'pocket' anymore but using some of those ideas. I'm glad it was of use.
Removing the event store is only a minor performance drop (1 more lookup).
mmap_append originally was only working on linux, but Ashkan Kiani replaced some of my code with memmap2 which is cross-platform. So now mmap-append works on Windows too, as does the stuff on top of it. I just noticed that the README is wrong 🤦 .. fixed.
This is very cool and I would love to use it. But pasting my nsec isn't something I'm willing to do anymore given NIP-07 and NIP-46 have been around for a while and I'm app setup to use either of those methods.
What I do is I don't write anything down, I promptly forget every wrong prediction, and then when I look back I have 100% accuracy. I feel great and learn nothing.
I've been in New Zealand so long that when I see a date like 5/2/2024 on a US based website, it takes me quite a while to realise that this does not mean Febuary 5th.
I was just riffing off the word "cotton" which ben got from Snowden saying "cotton on to". We are off in the weeds.
But I'm going to guess it was the more expensive and difficult to find mercury fulminate (with some potassium chlorate) undetectable by explosive detection systems looking for nitrate. Just a wild guess.
I am firmly pro-Semite.
I am also firmly anti-Israeli-foreign-policy, and also anti-American-foreign-policy. As an American citizen, that would be weird if it meant I was anti-American therefore anti-Self. Clearly being anti-Israeli foreign policy says nothing about my feelings towards the largely innocent Israeli people.
Before Israeli Jews migrated to Palestine, they were hounded by Europeans/Russians and collective punishment was inflicted upon them, called pogroms.
At that time, the term 'Semite' made sense to use. They called Jew-hatred "anti-semitism" because that broader accusation, that these people hate "all semites" not only made their group larger (by including the Arabs) but deflected from the term Jew which was already embedded as a dirty word deep in the psyche of people who were anti-Jew. (Even now, typing the word Jew feels like a slur, but it shouldn't). This term was appropriate and effective during and after the Nazi holocaust.
But it doesn't mean anything useful today and it should be retired. It no longer serves a useful purpose.
In the early 20th century reckoning (the truth is much more complex, but this historical reckoning defined some of these terms) and the Jewish traditional reckoning, Semites are descendants of Shem... usually also descendants of Abraham, whether via Isaac (the Jews) or Ishmael (the Arabs). Aryans (descendants of Iran, including Europeans and Asians) are not Semites but thought to descend from Japheth, one of Noah's other sons.
Now that Arabs are a major Israeli enemy, the term "anti-semite" doesn't work anymore. You cannot be anti-semite and pro-Palestine at the same time, because Palestinians are more pure Semites than Israelis are (which are Semites mixed with Europeans).
I see this note. I dont see it on my relay though, or any of my inbox relays, but I do see it on wss://nos.lol/
I'm not sure why. I haven't changed my relay or chorus throughout this spam epoch. I'll restart it.
Sorry I haven't been interacting on gitworkshop.dev. But I'll try to do that.
This is something I want among many things I want. I hope to get to it soon.
No, there are releases for lots of platforms: Windows (.msi), MacOS (intel or arm), Linux (debian), AppImage, Flatpak, and ArchLinux (via aur)
https://github.com/mikedilger/gossip/releases/tag/v0.11.3
We are working to tie up some loose ends and stabilize 0.12 so that people using release builds can get the newest stuff which includes: Spam prevention much improved (including web of trust), Global feed, and Bookmarks.
Notes by Mike Dilger | export