Oddbean new post about | logout

Notes by Magister Michael Dilger M.Sc. | export

 I have a cool font on my name 

but clients don’t like cool fonts 

it’s impossible to find m... 
 I had to add a petname for you in my client otherwise I just got a bunch of tofu as your name. 
 I will complain to my client developer. 
 Ah!  Your name is all tofu!  I will have to give you a pet name....    Hmmmmm... now what is appropriate... 
 Whew ok.  Fixed.  You are "La renarde d'onyx" 
 I don't even know what that is an emoji of.  Damn sucky emoji font on my client.   I will complain to my client developer. 
 That is the new meme 
 Is anyone looking to hire a rust developer? 
 If in the future you receive a note from me like this, how would you react?

"After some deliberation I have decided not to host your content on my relay. You are free to repost your content onto other relays. Your subscription fee of 0 sats will be fully refunded once you provide a bitcoin or lightning address. Considering that content on nostr is generally mirrored, it has already been deleted from my relay." 
 You are a cool cat. 
 I'm just wondering (as I write relay management) if the relay should send this kind of message automatically to anybody that has their pubkey banned via relay management.  Seems like the right thing to do. 
 Could be a problem actually if my relay is their inbox. 
 Understood.  I've never banned anybody and don't expect to, but I am writing moderation tools for chorus so I want to think through how chorus should deal with this. I'll make it require a reason and include the reason in the notice. 
 Nostr provides censorship resistance via replication.  You use multiple relays and hope they don't all ban you at once. But there is no way we can force a relay to not censor.

Relay operators will censor, almost all of them will remove spammy posts and CSAM.

I have never censored anyone and I don't plan to (because I don't operate a relay that needs it given it is not public access).  But I develop the chorus relay and I'm writing the moderation code, and so I thought it would be useful to get community feedback on what that 'banning' process looks like.  Sending the banned person a notification seems right to me, including a reason, and a way to download their data. 
 Nostr provides censorship resistance through replication. You use multiple relays. If stuff is taken off one of those relays you are not censored, you just have 1 fewer replication points. At that point you go add another relay to your relay list.

I am not suggesting censorship, nor am I promoting it.  I have no intention of sending anybody such a message. But I develop the chorus relay, and some operators will censor stuff, and I wanted to add code to make sure that when this does happen at least the person being censored finds out about it. 
 I bet Julian Assange will reoffend and be right back in prison. Criminals can't be rehabilitated. 😉
 
 What!??!  But they are painted RED!  If they were water trucks they would be painted blue! 
 Wow! I just got a "fatal error in execution unit" bug in my CPU that rebooted my machine and displayed the error in UEFI after reboot (but so quickly I coudln't read it all).

Computer is not running hot, has over-the-top cooling, is not overclocked, was not doing anything at the time (not compiling).

AMD Ryzen 9 5900X 12-Core Processor.

The screens went blank and then a short while later "beep" it was rebooting. 
 I'm making this known so that those guys at the NSA who just failed to hack me have the information they need to debug their hack. 
 I thought only I would go blind, not my computer. 
 GOSSIP USERS:  If you run off of master branch, you should pull and update now. Then go read your inbox over the last few weeks. There was a serious bug that failed to load notes that should have been in your inbox. I apologize for any inconvenience. 
 Now remove the atmosphere, add 30 mps wind speed, add huge amounts of radiation from space, add toxic perchlorates to the soil, remove all water entirely, and put it 225 million kilometers up into space.  That is where Elon Musk wants to go.  What a nutter. 
 I guess I'm a contrarian when I say:   Even after a massive global thermonuclear war, Earth will still be FAR more habitable than Mars even with tax men and cluster munitions or tank crews.  If you have to dig underground on Mars, you could dig underground on Earth and probably avoid all the tax men, cluster munitions and tank crews just as well.  If half as much money was poured into surviving post-holocaust perhaps underground on Earth, I think that would be money better spent. 
 apple’s private relay (MASQUE) seems better than a vpn for web requests:

1. you encrypt the re... 
 If you mean postgres without custom configuration, absolutely. But postgres can run entirely in memory via mmap just like LMDB does.

Nonetheless I find it too heavyweight to configure and manage whereas LMDB is just compiled in, doesn't need the multiple-client stuff, the SQL parsing, the query planner, etc... if you code that stuff into your client, which can be done when the queries are not too numerous or complex.

So yeah I like LMDB better for this use case, but my brother the postgres core dev insists postgres can do key-value, nosql, all-in-memory, etc, just as good as the other databses.  I say "there there little brother, I'm sure it's real good." 
 No it isn't.  LMDB is so lightweight and fast that I don't need async function calls.  I can just assume they return virtually instantly. 
 I remember when it came out in 2011 or so, people were agahst and in awe of how fast it was.. like this was impossible.  And some smart developers went digging to try to find the "problem" because it must be doing something wrong to get that speed.  And what they discovered was that it was simply using several really smart techniques in ways people hadn't put together before, like copy-on-write, b+ trees, mmap returning direct pointers to the data instead of copying it, etc.

I also think it is probably at or very near the maximum theoretical performance.

Of course unlike you, I don't utilize that performance on my relay.  wss://chorus.mikedilger.com:444/ is currently only serving 15 connections. 
 How many nsec can be created before they run out?  Does anyone have the math on this? 

#AskNostr 
 Because of reflections and a few invalid keys at the very top, it is only about half that.

So closer to 57896044618658097711785492504343953926634992332820282019728792003956564819968 
 Has anyone else noticed that people who call you expect you to answer within just a few rings?  I'm always running to get my phone and it stops ringing before it gets there. Annoying.  Let it ring at least 6 times ffs.  I am never going to carry my phone on my body at all times. 
 Oh hang on... it's going to voicemail.  I wonder if I can change that somehow.
 
 Do you believe that all people have natural talents?
 
I talked to someone at work about this and... 
 I do.

Because we can all get very judgemental about people and races/genetics, my evidence comes from dogs.  There is a game called Schutzhund that includes a part where a german shepherd bites the handlers (heavily wrapped) arm and doesn't let go.  My german shepherd bitch descends from a Schutzhund champion. And unlike any dog I've ever known, if I wrap a towel around my arm she wants to bite my arm.  I never taught her that.  Uncanny.

Also, when we walk down the valley, she goes to the opposite side.  She tought me to do this... so if we flush any animals either way they run, one of us can catch them (well I can't but she doesn't know this).  That was inborn, nobody taught her, and I didn't even think of it, she taught me.  I raised her from a pup.

So yes we all have natural talents. Different ones too. 
 He had to plead guilty, but it is good news
nostr:nevent1qqs89nfps27cw9x60rts8lyukg9pggeca9nuwg5t... 
 What he is pleading guilty to at least is what he did. He doesn't have to lie about it. He did disseminate classified information. That's traditionally been (and is constitutionally) legal. 
 Companies are very very slowly killing technology. Ask anyone in the industry for 20+ years. This... 
 What do you trust on your desktop?  Openbsd? 
 This is very true. We are not programming PDP-11s anymore. I think compilers are far far better now though so we can still kinda pretend that we are, as long as we are aware of 2 or 3 footguns that compilers aren't really going to be able to save us from, things like cache coherency, stack versus heap, core pinning,  context switching, the costs of data copies across threads, malloc speed, ... ok well actually maybe there are more footguns than I was thinking 'cause I'm just getting started. 
 People look at this and see nothing wrong with using DNS-based image urls or url-based relay hint... 
 Yes I think we should have an event kind that allows somebody to cryptographically bind an IP address and port (SocketAddr) to a relay's keypair.  But we would need:

1) Relays to have keypairs
2) Nostr to reference relays by keypair instead of by url
3) A means of distributing the binding event (because of the chicken-and-egg problem) maybe just blast them, or maybe a DHT.

It's a great idea for nostr2, so nostr2 won't be dependent on DNS and shoudn't need to be dependent on SSL certificates issued by CAs that nobody really trusts anyways. 
 Gm! What improvements would you like to see on nostr? 
 Yeah. That was fun!  Let's do it again! 
 Who's gonna build the relays?

(Joke aside, I've heard that the post popular relay software is un... 
 Chorus is maintained. And I think it is pretty fast. 
 There are a lot of relay implementations and yes some aren't being maintained.

@fiatjaf has four! khatru, pyramid, relay29, relayer.
@Alex Gleason 🐍 ditto,
My chorus
@mleku replicatr
@scsibug nostr-rs-relay
@Doug Hoyte strfry
@Cameri's nostream 
 For some reason I'm reminded of that song:  Who put the dip in the dip de dip de dip 
 Guess what I'm holding?  My hand is wrapped around something big and brown and hard, and I don't want to hold it too tightly because it is warming up 
 It is 9 inches long 
 Nope!  Try again 
 Ok I finished that one, I'm gonna go get another. 
 No, it is not a Willie.  But good try! 
 Fluid came out of it and I swallowed the fluid 
 It was a brown bottle of cold beer. 
 2-3-C

#grownostr nostr:note19uv629lf7puys05yrm755r9apu2smleagjxm2c7dad7e9lhgx86qm3xu6n 
 So, when you said "2-3-C" you were putting in an order? 
 You remind me of the really sweet guys from the planet Krikkit who just happen to want to kill everybody. They just couldn't cope with the fact that they weren't alone in the universe, like you cannot cope with this... shall I say "abomination"?

https://www.hhgproject.org/entries/krikkit.html 
 I probably don't post enough about my ongoing nostr work.

gossip:  finishing up stuff for a release that will include new NIP17/NIP44/NIP59 DMs, feed "load more" is now loading a fixed count of events, a lot less relay chatter, and a lot of things that make gossip better but are harder to describe.

chorus:  upgraded dependent crates (big changes there), I/O byte counts and bandwidth are now accurate (they didn't used to include the bytes within TLS headers), allows kind 10050, no longer complains about DM kinds in REQ when no kinds are specified in a filter, and I'm currently working on the Management API (https://github.com/nostr-protocol/nips/pull/1325)

relay-tester: added tests for ephemeral events, public submission of relay lists and DM relay lists, sending OK after event, and find by multiple tags.  That's 59 tests (and I have 54 more planned) 
 I wish someone could explain to me in non-racist terms why South America is not part of "the west". 
 I will guess. I might be wrong.

The West I will define as Western Europe, extended to it's close allies.

The United States broke away from Britian but re-established ties during the World Wars.  So the US and Western Europe became close again.  Also, the US subsumed Japan and made it a vassal.  So Japan is part of the West

South America came from Portugual and Spain, but didn't get involved in the World Wars (maybe?) and so it remains independent from the military ties that bind the rest.  So the West has come to be a name for the allies of WW2. 
 With all the effort they spent trying to make ChatGPT not racist.... here it is, racist. 
 I guess we don't talk much about South America in our history of WW2 because we are racist.

As for Japan, it is Far East I guess. But in a lot of contexts it groups well with the rest of the West. 
 Perhaps none of your preferred relays have an event you are interested in. You could be reading a... 
 No, this is a new way to get events without connecting to the relays that already hold them. 
 Popularity is sometimes a proxy for quality. In a busy world manytimes we just turn to the popular choice thinking it is probably popular because it is the best.

None of us are immune. I probably put too much weight on this metric when choosing rust libraries to rely on.

nostr:nevent1qqs92h979dptsrzsa8dvvs0a5en003sr96gy2lhrdru0zswsv4uaxecppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7z3hnfu 
 nostr:npub1acg6thl5psv62405rljzkj8spesceyfz2c32udakc2ak0dmvfeyse9p35c do you pay taxes on both US... 
 Yes. I pay taxes to both countries. But there is a double tax treaty and provisions in the US tax code (foreign earned income exclusion) that means that I don't actually pay more taxes and essentially (so far) all my taxes have gone to NZ and the US tax bill has been $0 for a long time now.  But I still have to fill out the damn paperwork!

Sorry for the delay replying, there was an inbox bug in gossip. 
 At the age of 30 I still wake up from nightmares that ​I'm still imprisoned by the public schoo... 
 I still have nightmares that I missed so many classes in one subject that I'm going to fail it.  Or that I forgot to finish some paperwork and so I got realy close but never quite got my degree. 
 Longest night of the year. Full moon. Clear skies. The dog is amped. 
 Soulless corpo-mega grocery store for acquisition of food

vs.

Local farmer, farmers market, bac... 
 Still 85/15 at best and that's with a flock of sheep. But I buy coffee, rice, wheat, pulses dry in bulk mail order 5kg-20kg at a time, but from a soulless food distributor (except the wheat) 
 If you change pfps you become a stranger 🤣 New pfp who dat? 
 I wish I knew what a pfp was. 
 #asknostr If you are using smaller relays, we’d love to know: 
- how did you discover them? 
- ... 
 I'm using a small personal relay, wss://chorus.mikedilger.com:444/

- how did you discover them?  I created it.  I wrote the software. 
- are they with people you know IRL?  Yes I know myself well enough at least.
- what do you like about using a smaller relay?  Total control, helps me debug my client
- what if anything would you change or improve?  I'm not sure right now it's pretty stable, but as soon as I think of it I will improve it. 
 I wrote the chorus relay https://github.com/mikedilger/chorus which uses techniques similar to strfry to offer crazy performance, but with some extra techniques Doug didn't use to make the performance even crazier fast.  But I don't actually know if it is actually faster than strfry since nobody has run performance testing to find out (you know what they say about best laid plans and also about dry-labbing... I can't claim anything since I don't actually know).

But chorus can be configured as a personal relay (doesn't allow events that come in to be immediately read back by others, so it can't be responsible for spam or illegal content, making your life easier) or a regular relay.  I use mine as a personal relay and moderate content (so it can be read back out) and use it as both an INBOX and an OUTBOX (and DMs now too).

Yes, gossip is my main project, a desktop client.  Chorus helps me to improve gossip since I can clearly see and take to heart what is happening on both sides of a nostr connection. 
 Anyone interested in implementing custom feeds? Happy to answer any questions, I think this conce... 
 oh... I thought hashtags would be part of it.  Gossip only has person lists so far.

Is there a NIP for how this works? 
 Part of me is telling me to get out the brush cutter and finish cleaning up the yard. But a significant other part of me is telling me to be lazy and stay on the computer.... and these thoughts went through my head:

Being fat is an evolutionary adaptation to food scarcity. So is being lazy. By being lazy you conserve energy. Don't feel like your fat lazy body reflects some kind of moral failing. You were born fat and lazy for a good reason which just doesn't happen to make sense anymore in the modern food-rich world. If your ancestors weren't fat and lazy, you likely wouldn't even exist!

Samoans and Hawai'ians can be quite fat. Being fat was a huge (pun intended) advantage for sea-faring people. If the ship runs out of food, the fat people are the likely survivors. If you get separated from your boat and float for days, fat people float better, are better insulated against hypothermia, and can last longer having more energy. Ocean travel doesn't require much running or load bearing activities. I can imagine a long history of accidents, storms, and ya know all the shit that life throws at you, and in many of these cases the fatter Samoans and Hawai'ians lived to tell the tale, and more to the point lived to have kids.

Fat shaming doesn't work. We fatter people are piss poor at fighting against these genetics. I have a lifetime of trying and first hand knowledge. It isn't just about food choice (I only buy healthy food) or mindless eating, although bad choices can certainly make it worse. It is a drive that irritates your brain until you satisfy it, and significant weight loss makes programming a computer (for example) impossible to focus on against those constant amygdala wake-ups.

https://yt.thesamecat.io/watch?v=V1bFr2SWP1I 
 Yeah I watched an exposé on it.  They had to recall all those.  I'm using a Fisher & Paykel machine.