Oddbean new post about | logout

Notes by Vitor Pamplona | export

 H/t to nostr:nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqppemhxue69uhkummn9ek... 
 It's because we wanted more tests before we advertise it. Thanks for your work! It really helps having a second pair of eyes on this.  
 Yeah, there is no space between the emoji and the https. We don't render those things to force clients fix their stuff. There should be a space to make it easier to parse an http out of a word.  
 It might be your phone's clock or your timezones. This event was sent with a date/time in the future. 10 mins from now.  
 The clown emoji is what made it. You can judge my methods, but I get things done. :) 
 The thing is that this proposal would have been immediately rejected or become very political very quickly. The joke took everybody out of they game and nostr:nprofile1qqs8d3c64cayj8canmky0jap0c3fekjpzwsthdhx4cthd4my8c5u47spzfmhxue69uhhqatjwpkx2urpvuhx2ucpz3mhxue69uhhyetvv9ujuerpd46hxtnfduq3vamnwvaz7tmjv4kxz7fwdehhxtnnda3kjctvll3q2p used the opportunity to score. Sometimes we just need something out of nowhere to move things.  
 More like I saw the joke but made a real PR. I knew people would make fun of it and that would give power to the other side to react. Since the PR didn't really break anything, it was easy to feel bad and just support the freedom some people want to say their pronouns.  
 Yep, but proposing a nip just to standardize that was going to stir a lot of emotions.  
 There is always some drama on anything you want to do. The best pushers figure out a way to move things forward in spite of it.  
 Is there a new protocol called Neutral? WTF... 😳
nostr:nevent1qqsw22ankwkhjn252l5hj4dr026elst5flr2sl8f4m7rtp3d44x0wjgpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsygrcwvu82l7zt4jumy5njn27wufu7smr36xjt85deaw88wp5awz37gpsgqqqqqqsttmzcl 
 Is there a new protocol called Neutral? WTF... 😳
nostr:nevent1qqsw22ankwkhjn252l5hj4dr026elst5flr2sl8f4m7rtp3d44x0wjgpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsygrcwvu82l7zt4jumy5njn27wufu7smr36xjt85deaw88wp5awz37gpsgqqqqqqsttmzcl 
 You know what I realized I want on nostr!

NIP Proposal: nostr:npub180cvv07tjdrrgpa0j7j7tmnyl2yr6... 
 If you have different keys per app, then you can keep notifications about those things in those apps, which is a win. 

However, the issue are DMs. If you are using a different key in each app, the DMs will be different between your apps. And people might confuse your keys, sending DMs from their Olas account to your Amethyst account, instead of your Olas account. It will be messy.

But otherwise, you can already use multiple keys today.  
 Yeah, we can link the two, but DMs, mentions, notifications to the sub key will not show up on the main key's client. Even if they are all linked, every sub key is its own thing. 

There is a proposal for using FROST for multi-key setups with key rotation without changing the public key. But I have not seen it working yet. 
 But can you rotate keys (deauthorize old, add new) without changing the pubkey?  
 Sure, but only clients that implement this NIP will tag both. Majority of the clients will just do the basic one and tag the subkey. Which now turns into a mess because some clients work others don't. 

+ For DMs, the encryption happens to each key. You can't just tag both. You have to create a NIP-17 group with the 3 of you (2 of your keys + 1 for your friend) so that you can reply to the other two at all times.  
 I thought It was something to do with finding a new polynomial matches the keys you want to keep. But idk...  
 researching a way to build a minimal perfect hashmap of words to store alongside the binary note ... 
 Back in 2004, I developed I wiki where the text was always split into words and the words were saved on the database. Then a post was just a list of word indexes.

It saved a TON of memory because most texts are just lots of duplicated words.

If you have that option, then you could quickly re-compute muted events by splitting the mute word into many, finding posts that each word appears in sequence and setting the mute flag.  
 If Nostr was only long form, that would be how I would save the .content of every event. 
 Bonus points if you do all of that WHILE also storing the markdown/ascii doc/Nostr node information. 

For instance, the database would store an nprofile word, but you have to load the user, write the user's name, with a link, and then run the muted words procedure against the user's name, not the nprofile string :)  
 Yeah, the dictionary of keys and IDs was the first thing I did on Amethyst. It's why our memory use is minimal. There are no duplicated bytearrays anywhere in memory. 
 What clients let me set my nostr pronouns? 😂 
 Looks like ditto and nos.social 
 Nos nao. Mas outras pessoas precisam. Escolha delas. 
 My wife agrees—the 'baby pressure' is constant and overwhelming, especially from family members. No one has ever asked me when we’re having babies; it’s always directed at her.
nostr:nevent1qqs9uy2j0v8hz62udferd9l8l8jyatjfhnz0wp65vr3wael6fqj3ywspzdmhxue69uhhwmm59e6hg7r09ehkuef0qgs9k2f9t4024t44wa2jhux3zqcrwm6805v6qzw97k5qmhrn6jf4nasrqsqqqqqptjcuee 
 The AI to take over so we don't need more humans. 
 I hope you agree that I am free to choose to not having any child ever. 
 In this house, there no "refuse to help". We don't builshit each other.  
 Just look at the comments to my post.. everyone just trying to convince us to have babies.  
 I will give you an AI smarter than any human before I die. Just to compensate. 
 The good thing is that in this case your opinion/judgment is irrelevant. And voicing it out loud is only making us (and millions of people out there) go more against your opinion. 
 No, the point is that after a decision is made (to not have kids - for any reason, preference or economic/career) everybody else feels the need to put pressure and change that without offering any significant advantages to the woman. Governments, family, society, nostr, etc.  
 I believe humans are good. That doesn't mean I want to make them. 
 Agreed. 
 Humans are just this intermediary limited civilization that existed between the dinosaurs and whatever comes next. 
 > Their intentions are not virtuous. My advice however is.

Lol.  
 We are counting on you. Don't fuck this up. 
 I see people and whole countries freaking out about low birth rates and trying to come up with wa... 
 My wife agrees—the 'baby pressure' is constant and overwhelming, especially from family members. No one has ever asked me when we’re having babies; it’s always directed at her.
nostr:nevent1qqs9uy2j0v8hz62udferd9l8l8jyatjfhnz0wp65vr3wael6fqj3ywspzdmhxue69uhhwmm59e6hg7r09ehkuef0qgs9k2f9t4024t44wa2jhux3zqcrwm6805v6qzw97k5qmhrn6jf4nasrqsqqqqqptjcuee 
 Sharing and reading highlights is probably my favourite nostr feature so far 
 We just don't render the `comment` yet.  
 Imagine if corn subsidies are removed. 

What may follow? 

-eliminate damage to and prolong life... 
 But how can farmers survive without subsidies? 
 The best ecash app just got better for Nostr.
nostr:nevent1qqsdkc8q2vmuenqg7l79ed8nnx9szhvl2vwkyt2u62720dxykqcl3qcpzemhxue69uhkummnw3ex2mrfw3jhxtn0wfnj7q3qkvaln6tm0re4d99q9e4ma788wpvnw0jzkz595cljtfgwhldd75xsxpqqqqqqz884wad 
 People are always free to rug pull themselves 
 The best ecash app just got better for Nostr.
nostr:nevent1qqsdkc8q2vmuenqg7l79ed8nnx9szhvl2vwkyt2u62720dxykqcl3qcpzemhxue69uhkummnw3ex2mrfw3jhxtn0wfnj7q3qkvaln6tm0re4d99q9e4ma788wpvnw0jzkz595cljtfgwhldd75xsxpqqqqqqz884wad 
 nostr:nprofile1qy2hwumn8ghj7un9d3shjtnddaehgu3wwp6kyqpqgcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjak... 
 This limit is BS. Gotta get out of Mastodon. :)  
 One of the thongs that bug me about nostr:nprofile1qqs24yz8xftq8kkdf7q5yzf4v7tn2ek78v0zp2y427mj3s... 
 Is this happening only when you view the threads or in the main home feeds as well? 

The threads bug has been fixed and will be available in the next version. 
 Very interesting... I never seen it. 

How long is "long time"? Half an hour? 
 If the feed is empty and it is slowly loading again. Android has killed the app. Then the feed comes back to whatever comes down first from your relays :(  
 No. Even Gmail gets killed from time to time. It all depends on the amount of memory being used by all of your apps. If they need more, something will get killed. 

I need to change my architecture to store read positions in all tabs so that I can recover it. The issue is that encrypted storage on phones are quite slow. So, scrolling and saving things is not a good idea. I need to batch all these things up.  
 Android forces each app to be with in 512MB memory, with some exceptions for 1GB ones. The browser will take a lot. Indie non-native apps usually take a ton of memory. Apps that play video or deal with large images also take a good amount just because of the content. So, it's not that difficult to reach maximum. 

+ Amethyst has a growing cache issue. We clean a lot of things your are not seeing anymore, but many events still stay and it grows until it explodes. For regular users this doesn't happen because Android usually kills Amethyst before the cache even passes 50MB or so. But for "pro" users, the cache might grow so much that it triggers its own destruction.

This is specially true if you see a lot of GIF profiles. Many animated profile pictures use 20-50MB. If there are too many on the screen, like on the Notification's little profile parties, it will easily pass over 512MB and then it's up to Android to decide to kill or not. 

And what to kill. Sometimes Android just kills threads and leaves things in an inconsistent state. But those are rare.  
 No, that's just the disk cache. I would clean it when it crosses 1GB.  
 Wait, performance or posts jumping around? 

Performance should be pretty good these days, especially on higher-end devices. What are you seeing?

I am currently fighting the video player cache which hangs for a few milliseconds when opening new videos and is quite annoying. But other than that, Amethyst should run smoothly. 

You can go to the phone Settings/Apps/Amethyst and "Force Close" it to clear the memory cache and see if that was your source of issues.  
 I will try to figure out what can be happening with the jumping posts. I am not sure what can trigger that. The only code that makes that jump is a click on the home tab twice.

But yeah, Amethyst also downloads 50MB or so on every cold start (all your posts, all your DMs, all your notifications, etc). So, it's a 50MB over Tor issue. I need to reduce that amount and spread it better over the loading time.  
 Yeah, that has been fixed. I am just delaying the new release to finish the Blossom integration that nostr:nprofile1qqsw9n8heusyq0el9f99tveg7r0rhcu9tznatuekxt764m78ymqu36cpz4mhxue69uhhyetvv9ujuat50phjummwv5hszymhwden5te0wahhgtn4w3ux7tn0dejj7qg4waehxw309an8yetwwvh82arcduhx7mn99uuwx66a has been bugging me about. 
 People take the NIP repo way too seriously. 
 That's what it is for. But people think it is a spec that is mandating the development of Nostr to be in certain ways. 
 People think it's a spec that mandates how Nostr must develop, blocking everyone from doing what they want.

In practice, it's just a place for interoperability. Where devs throw ideas at each other in the hope that other clients implement their stuff as is. 

For instance, there are hundreds of kinds being used that we have no idea what they do. They are just not defined in the NIPs because their devs didn't care. But they still use Nostr.  
 Nao faco a menor idea :( 

But I don't trust them to be the initial pack.

That's why new users get an empty feed. I don't trust any algo out there to bring things they truly want to see in an unbiased way. 
 As a person that made a MediaTek-based phone, I agree. You better have the funds to walk through the development if you have any quality standards.  
 Standarization is required if you want clients to do something about the fields. If they are not doing anything (just displaying) then sure. 

PS: You can already write your list of labels and values on the About Me text. You can just add everything there.  
 The issue is that if clients are doing something with a field, it should be listed and upgraded on the NIP. 

There are over 30 fields or so that I have seen on Kind 0s that are not listed there. And it is fine. I am not sure what the extra array does that the current field list wouldn't do. 
 Right, so if pronouns are just listed as a field when the user visits a profile, it works. But if they are added after each person's name in the feed, then it becomes something else.  
 Anyone else getting timeout errors when uploading to nostr.build via #amethyst? 
 Paid or free account? 
 But Paid of Free Nostr.build account?  
 Gm,

Merging pronouns into our protocol spec as a joke is demonstrating that maybe we aren't seri... 
 Users can still add whatever they want to their profiles. I don't know why you are saying that a centralized committee is blocking it. Right now we already have 30 or so different fields on Kind 0 events. Just five of them are defined on the NIP. 

There are hundreds of kinds that were never defined as NIPs. This centralization idea you make of Nostr is so strange. I don't know if you are just saying things in bad faith or if you truly don't know how Nostr works.

The NIP is just an interoperability point so clients can understand each other and bounce ideas off each other. It is not a W3C spec.

 
 There are so many poll specifications that every dev is just doing their own thing. And all of them are highly scammable... By the author, by relays, by real users, and by actual scammers. It's a clusterfuck.  
 Agree, it makes the most sense, but still quite meaningless in terms of the trustworthiness of the results. It's not very different from an emoji poll many people do with regular reactions.  
 The issue is that people think they can get some info out of a poll when they can't without post processing the to remove all the crap. 

I was with you that polls didn't need to be super serious, but in practice people get really dissatisfied when their poll becomes irrelevant. So much that they stop creating polls altogether. 

Idk..  
 I wish we had an amber equivalent signer on iOS 😢 
 A simple Nip-46 bunker app with good push notifications are probably the best bet for iOS,  since Apple doesn't even have a native protocol for inter-app comms.  
 It's dead. Last commit was 1 year ago. 
 I am going to send all my PRs as jokes since review times are so much faster and approval rates so much more certain.  
 You can simply walk away from the modern systems of slavery.
Why don't you? 
 Because freedom is expensive. 
 I have noticed a general trend among kids to prefer apps with more extremely ephemeral content --... 
 Why? Just do an `expiration` tag with now + 1 second and boom the event is gone before its even downloaded from the relay. 
 Dr. B (dentist) is answering your questions on Nostr and given 10% of profits to OpenSats.
nostr:nevent1qqsfwsvqlaj66lcylw8p8s2pqxxdft2hrq8xddgecntahel55t23h2gpz9mhxue69uhkummnw3ezuamfdejj7q3qmahqm44d3n9ztsrecl8tlxt93nu3ys94f3d5mjgyggh86gtfqp0qxpqqqqqqzc6pk4g