Oddbean new post about | logout

Notes by Vitor Pamplona | export

 I consider the obesity epidemic a failure of free markets to offer healthy food without government oversight and a failure of individual freedom to choose better foods for themselves. 

Yes, I know it's not completely free market and choosing healthy is not possible sometimes, but the point stands. Even with all gov interventions we have had, the market should have solved this.

Now RFK Jr is literally pitching more regulation to make America healthy again. 
 Testing. Is this thing on?

 #Nostr #Amethyst 
 Yes :) 
 Relay settings? Where is it stored?  
 #asknostr #amethyst nostr:nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqppemhxu... 
 You can only disable specific languages. Or use the f-droid flavor of the app to not have translations at all.  
 Once you disable it, it is disabled until you log off and log in again.  
 I have never asked for a donation but here it goes:

I host 4 relays now completely for free, the... 
 How to ask for money is the hallmark of a great entrepreneur.  
 Cloning apps? Easy. Building something truly new on Nostr? That's the hard part. 

We need to 100x the number of devs and designers to make it happen. Most projects will flop. Most designs will miss. Only a rare few will shine. 

Winning is a numbers game.  
 True. But entrepreneurs don't understand what problems exist. They are relentless proposers and testers. They just test so much that eventually they get something right.  
 I did a bunch of marketing in the past. I think non-marketing people severely overestimate how much magic marketing can do. Yes, it is important. But word of mouth, not marketing, rules any real sales growth.  
 That's what Kodak and IBM said in the 90s.  
 Agree. Especially with new ideas. Cloning stuff with a few tweaks is a natural thing to do. But pulling something new out of the hat is hard. 
 Which app is it? 
 I would like to see a client which puts the block height next to a notes timestamp. Actually, I w... 
 You can request a block timestamp on Amethyst. But we don't display block height because no one cares about it. We convert that to time. 
 Post's 3-buttom menu on the top right and hit Timestamp it. It takes several blocks to confirm but it eventually settles.  
 Na verdade bem mais pessoas te seguem e te acompanham, seus posts tem muito mais alcance do que v... 
 Exato. Não apenas não era um número confiável, mas permitia aos nossos servidores trackear tudo o que os usuários estavam vendo em tempo real. Nada bom.  
 Much freedom  
 Enable Tor for everything. But things get slow.  
 Getting more convinced that onboarding someone into Nostr can follow two paths: 

1. Onboard into a Client, not into Nostr. You "sell" a specific client and don't even use the word Nostr. You are onboarding people into Primal, Amethyst, Damus, etc. Not into Nostr. The protocol doesn't matter. 

2. Onboard into Nostr. If you want to onboard to the "protocol", you should onboard them to a Nostr app store, like Zap Store. The store will then on board them into everything else, including a client of your choice. 

In practice, you can choose to keep them attached to a brand or to take them into a freedom journey. 

But don't sell Nostr and then lock them into Amethyst. That doesn't work. Either sell Amethyst and get them into Amethyst, or sell Nostr and get them into a Nostr store.

 
 Of course, Nostr stores must be ready to onboard people from scratch, which none of them are. 

But we can fix that.  
 Back in the days, Nostr was just a few apps and all of them were kind 1 apps. It's much bigger now and people are getting confused by the options and how to set things up correctly. 

These days with so many NIPs doing different things that don't show up in every client makes it hard to figure out what event kinds your friend is using so that you can find the app that displays that kind. 

Moving forward it's going to get harder and harder onboard people in the clients with the right features.  
 Users emailing why things show up on some clients but not on others.  
 After half a year of so, suspend works again on my Ubuntu machine! Randomly. 
 I remember the days that WIFI would randomly work and then stop working. 
 User choice is fucking powerful. This needs to be made more apparent. 
 I made 10 different relay choices available and everybody hated it.  
 Pro Tip: Rocket fuel doesn’t work in a Prius.

You can't receive a large investment if you are not ready for it. 
 When people migrate from Twitter to.. say... Threads, they are not looking for a new tech stack or a new app. They are looking for a new **community**. There is a fundamental misunderstanding that people care about the apps. No. They care about the communities. And they so happen to be using specific app brands. 

Communities make the apps. Not the other way around.  
 Lots of people say a lot of different things...  
 Welcome back! I think we ate mostly one community yet, but the number of apps is growing, bringing new folks.  
 Had big plans to crush code today, but nostr:nprofile1qqs8y6s7ycwvv36xwn5zsh3e2xemkyumaxnh85dv7jwus6xmscdpcygprpmhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0ekucf3 & nostr:nprofile1qqspw5udc2nzw6wsj3plrrphe0343744h0ucz9e4g248chl3w8kh03qpzemhxue69uhhyetvv9ujumn0wd68ytnzv9hxgqgjwaehxw309ac82unsd3jhqct89ejhxqgswaehxw309ucngvpwvcmh5tnfdu4c0sa3 hijacked me into a 3hr call to discuss user onboarding. Result? 1 new client to build, 3 new NIPs to spec, and 0 lines of code written. Productivity? 🤷‍♂️  
 We are trying to see if we can do a Nostr invitation deep link that installs zap.store first and then opens the invitation data with a picture of your friend and a create a new Nostr user screen. When the user inserts his/her name to create a new account, zap.store installs a My Nostr Profile app (a signer, like Amber) and, in the background, asks the signer to create a new user. With the new user created, zap.store follows the friend recommendation to install a client.. say Amethyst. After installed, zap.store sends the users to an Amethyst that was already logged into from Amber straight into the user profile of the friend. 

Flow is: 
- New user receives a link (or scans a QR Code)
- Zap.store is installed, opens to a new user screen.
- User inserts the name, Amber is installed. 
- Zap.store points to Amethyst to install. 
- Amethyst is installed, logged in and ready to be used. 

Lots of things happening on the backgrond to simplify things. The new user gets a new key, a signer and an app installed and ready to go.  
 Yes, 3 months later if they are still here. No one gives two shits about a recently created nsec.  
 Yep, it's the recommendation of whoever is inviting the new user.  
 You are not the average new user, but it will be explained that apps will be installed. They just don't need to know about nsecs, permissions and all that.  
 Users don't tend to "accept/reject" installing new apps. Only techies understand that to be an option. Others just follow the flow. If the installer is asking them to do it, they will do it. If in order to use Facebook they have to install Instagram, WhatsApp, Messenger, they will do it. We will get to the same level of easiness in time.   
 That's the plan. nostr:nprofile1qqsrxra3gv0lnkxz2pcxh0xuq9k4f9dr7azwq3aypqtnay4w0mjzmtqpzemhxue69uhkummnw3ezu6m0wdkk7uewdaexwqgkwaehxw309aex2mrp0yh8qunfd4skctnwv46qzxnhwden5te0dehhxarj9ehhyctwvajhq6tvdshxgetkvjvusy and team are working on it :)  
 A great onboarding client could work, but the issue is that it needs access to an App store to install everything the user needs in order to see the different things different friends are doing. 

If I have friends using Zap.Stream, the onboarding must suggest a client that can see streams. If I have friends using NIP-17 DMs, the onboarding clients MUST suggest apps that support that specific kind, install and make them ready to use without any additional setup in each app. There are 100s of new kinds now and figuring out what I need to install to see my friends is the most important task of the onboarding tool. That's why a Store app can be a good place for this. 

Onboarding people to Nostr is basically onboarding them to a new app ecosystem.  
 What can we in Nostr learn from the recent surge in users for bluesky and mastodon? 
 That no one cares about censorship resistance. 
 ? You know it doesn't do anything if you do t click on that link right? 

And if you use Tor, that link is also protected by Tor.  
 One of the very few.  
 I gave up on FDroid last year. They are worse than the Play Store in terms of centralized control and app censorship. 

Use Obtainium or nostr:nprofile1qqs83nn04fezvsu89p8xg7axjwye2u67errat3dx2um725fs7qnrqlgzqtdq0 if you truly care about freedom. 
 Have you tried to publish apps there? You can also just download the APK directly if you want... FDroid is always weeks late anyway...  
 Feed algorithms on Nostr should not only be signed, open source and free to choose, but those running those algorithms must provide cryptographic proofs they are running them without any changes.

Trustless feeds for the win. 
 Did you see the last post using STARK proofs on Nostr DVMs to verify computational execution?  
 Nostr is verifiable data. 

Sign code into Nostr events, and you get Verifiable Code.

But here’s the problem: you still have to trust the environment running that Verifiable Code. If you rely on a third-party machine, how can you guarantee it’s executing your code as intended and not something entirely different?

Enter Verifiable Computations. Runners take verifiable data + verifiable code, execute them, and return the results + a cryptographic proof that nothing was changed.

Now, recipients can verify if the script ran exactly as intended, making runners trustless partners.

Welcome to verifiable, trustless DVMs on Nostr. 
https://video.nostr.build/699106b3c505e8a953b1508a497ea5b4c8019ea2f321e53d6ddf707a144ccd03.mp4
 
 Imagine sending your timeline algorithm to Twitter and getting the results back with a proof that Twitter run your algorithm without any changes.  
 nostr:nprofile1qqst3axzay8sm4n8zg2n84acmt7hwwztpdg9r7p89e2f83v007f7zjcpzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhgqgjwaehxw309ac82unsd3jhqct89ejhxqgdwaehxw309ahx7uewd3hkcws8qva's post on ... Twitter 😞 https://x.com/dimahledba/status/1857399684928552973 
 DVMs can sign provable structures of which event IDs they have access to and make that available (Bloom filters, hyperloglog, etc). 

Clients can even send signed Bloom filters from other DVMs as input to tell your DVM which events should be included as part of the verifiable computation process. 

Having a network of third-party proofs so that not everything needs to be verified by the phone in real time will make this possible.  
 Yep. We can add this to nostr:nprofile1qqs04xzt6ldm9qhs0ctw0t58kf4z57umjzmjg6jywu0seadwtqqc75spz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ec8y6tdv9kzumn9wshszxnhwden5te0wpuhyctdd9jzuenfv96x5ctx9e3k7mf0dv4ph5 infinite stream of dumb names. :)  
 Yep, stark proofs.  
 I am trying out Android about once a year, and this time I saw some improvements in usability, bu... 
 Sir, Google buys all the Apple data they want with the $25B/yr default search purchase. 

Or do you really think 25b is just to set Google as default?  
 70% marketshare globally says otherwise :)  
 I am just saying that your comment about how the customizations and lack of usability will confuse granny is false. Like you said, the poor (and thus less educated) people are using Android.  
 Yep, 95% of people never change any setting, neither on iOS or Android. Even on Nostr, 95% of people don't change their default Amethyst settings.  
 nostr:nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqppemhxue69uhkummn9ekx7mp0qy... 
 Only the ones you interact with... Otherwise it will be GB of data :)  
 Hum.. we send the like but not the base event I think  
 All I want is some good tasting milk  
 Yep 
 Yep, but that doesnt mean they can fix the tasteless milk situation...  
 You can, it's just not tasty. The issue is not pasteurization.  
 Let's fork the vote chain... Lol  
 Lol, who is up for forking the vote chain? 🤣
nostr:nevent1qqsgqeyjdyg8jx6smcjhjh7dj2rlc0x7hupzhnn6pandgkp9mlvld6qpz9mhxue69uhkummnw3ezuamfdejj7q3q64q45vfa8prpl7f63stsl9qm9n22v6julkasjdqxjc8kevchsj0sxpqqqqqqzhjll7p 
 Government will pre-mine all the votes for you. 
 We have a rule in our house: we don’t use the word “can’t”. 

You can and you will. It’... 
 Can you send me 15 BTC? 
 This is bullshit 
 Amethyst should never run in the background unless there is a video playing. Some Android phones are not sending pause events to the app :(  
 This might be a graphene thing. The only reports I have seen of background use like that has been on Graphene :( 
 No, there are concentration videos that people watch on repeat. But frankly something is wrong on the graphene side. Because the app does pause the video as soon as you leave the app. It's almost as if graphene never actually actually pauses the app when you send to the background. 
  nostr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z  nostr:npub180cvv07tjdrrgp... 
 Don't use kind 1 for chats. Never. They are feed posts and should always be rendered as such. 

If MLS is just for chat messages, we can have a new chat kind just for it. But if anything can be transferred inside if it, then reusing kind 14 makes sense. But we need to figure out a way to encode the group info in every event kind.  
 If it's unsigned, you can put whatever you want in the event. It just helps the client find events for each group in regular Nostr databases.  
 One of the goals for NIP 17 was to not require separate datastores. You can just save the decrypted events in the store the client already uses. It's much easier. I would suggest doing the same on MLS.  
 Why does it guarantee insecurity? Clients have to store events privately already (many use hardware-kept keys), so I don't think the extra encryption from MLS payloads will make a difference. Plus, chat screens tend to require lots of secondary cache/storage to make sure screens load fast, like the last message of each person to build the chat's home screen, pre-parsing markdown/quotes into their own cache, etc. There is no way the protocol can protect from a lousy client.  
 Yep, or the event already comes with the group id... But since it is unsigned, the client can fix stuff up or add more notes.  
 Do we all agree that X is now state-"owned" media again? 
 Which area of research are you in? Computer science? Cryptography?