Avatar
Vitor Pamplona
460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c
Nostr's Chief Android Officer - Amethyst Social

I thought about automatically creating a new delete with that event ID the relay has, but that could fill up the relay with lots of Delete events (one for each version)

Replying to Avatar cloud fodder

nostr:nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezuamfdejj7qgwwaehxw309ahx7uewd3hkctcscpyug im finally logcat enough to realize, somethin strange goin on w delete events. maybe they need to be purged on app close cause its 90% relay saying it already has that delete event (on every unsuspend) 🎁⚑😁

Check if it is a delete of an `a` tag. StrFry doesn't delete based on `a` tags and thus keeps sending replaceable version older than the delete. The app then notices that the event is older than the delete and resends that delete event to the relay.

Not exactly. The thinking happens when you try to make the right question. The solution is usually just knowledge that you don't want to memorize or some steps that should be following rules you don't want to memorize.

Think UI coding, for instance. If "thinking" means putting UI components one after another in a way a given language and framework likes it, sure. But I would argue that is not thinking at all. It's just formalization of thought that already happened in somebody's mind.

Layer 1 - Relay network

Layer 2 - Phone to Phone (P2P)

Layer 3 - In-device App to App

We can have other event kinds like those for other types of time series. But making one kind the generic kind for everything is bad for filtering and storing.

If there is one thing AI is doing to kids is to teach them to ask better questions.

I was born in the 80s. The whole cultural and educational system back them was designed to make you stop asking questions.

Folks look at a picture of the Earth from space and think they are seeing 50% of it. No πŸ‘‡

Santa uses cold storage for everything. Be like Santa.

It depends on what you want to do. Bluetooth 5 leaks a random number that people can use to track you.

USB-C connection, in the other hand, can take full control of your device if you are not careful.

There is also an option to remove DMs from Twitter-like clients in favor of Chat clients (I am currently considering that). It all depends on how many people use DMs on primal.

What do we do a day before Christmas? We write NIPs. https://github.com/nostr-protocol/nips/pull/1658

It went nowhere. I think nostr:nprofile1qqsrhuxx8l9ex335q7he0f09aej04zpazpl0ne2cgukyawd24mayt8gprfmhxue69uhhq7tjv9kkjepwve5kzar2v9nzucm0d5hszxmhwden5te0wfjkccte9emk2um5v4exucn5vvhxxmmd9uq3xamnwvaz7tmhda6zuat50phjummwv5hsx7c9z9 and others believe kind1 should take an important role on the spec. I completely disagree. We focus way too much on kind 1 build ups. De-emphacizing from the spec could be a good move.

NIP01 should focus on the web of trust aspects of kind 1, not on the small notes itself.

One of the most difficult decisions a Nostr client faces is whether to fix an incorrect or non-compliant post from another client or simply not display it. If you fix it, the original client may never correct their mistake because "hey... it works!" β€” why would they? On the other hand, if you don’t, your users miss the intended content, and the author’s message is either lost or less impactful. Fixing it on the reader's side adds complexity across Nostr, as every client would then need to code a way to handle the same issue. And if you don’t fix it, users flood us with complaints about a "bug" in Amethyst, which means there is a perception that Amethyst is buggy, even though it’s not our problem.

If we fix it, other devs complain we are too permissive and "breaking" Nostr. If we don't, our users give us bad reviews.

There is no right or wrong answer. There is only pain.

Proton could just use Nostr instead of forcing people to create Proton accounts... 😏

#Amethyst v0.89.0: Profile Galleries, Base64 images and more!

This version adds Profile Galleries, flexible NIP-96 image server settings and relay recommendations based on the outbox model. To add an image to your Gallery, click on the Share button and hit Add Media to Galery. This works on posts from you or from other people.

Features:

- Renders Base64 images and gifs by nostr:nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7qgswaehxw309ahx7um5wghx6mmd9usjfpck

- Adds NIP-96 image server settings by nostr:nprofile1qqswc4nrhvp4lrjct0ayy0ps8f2hvj8e2guucp63dwcx6m6e8pka9fqppemhxue69uhkummn9ekx7mp0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qyt8wumn8ghj7etyv4hzumn0wd68ytnvv9hxgtcghxpeh

- Adds Profile Gallery by nostr:nprofile1qqsfnw64j8y3zesqlpz3qlf3lx6eutmu0cy6rluq96z0r4pa54tu5eqpz4mhxue69uhkummnw3ezummcw3ezuer9wchszyrhwden5te0dehhxarj9ekk7mf0qyghwumn8ghj7mn0wd68ytnhd9hx2tc3ec8km

- Adds outbox cache in order to resend events after relay authentication

- Force-updates relays that are sending old versions of replaceables or events that have been already deleted

- Adds follow-list based relay recommendations to the relay settings.

- Adds Malware Report type

Performance Improvements:

- Reduces interruptions to the main thread

- Adds performance monitors for framedrops in benchmark mode

BugFixes:

- Several improvements in the Push Notification API to never miss a Zap

- Fixes lack of text update when switching edited versions

- Fixes poll rendering behavior after deleting an option by nostr:nprofile1qqswc4nrhvp4lrjct0ayy0ps8f2hvj8e2guucp63dwcx6m6e8pka9fqppemhxue69uhkummn9ekx7mp0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qyt8wumn8ghj7etyv4hzumn0wd68ytnvv9hxgtcghxpeh

- Fixes discovery top nav list watcher staying active when the app goes to the background

- Fixes scoping issues with flattenMerge freezing Top Nav List updates

- Fixes Top Nav lists after a deletion event has been received

- Fixes a bug on clicking the user profile but loading the wrong one

- Fixes the post button disappeering when the Relay Settings top label is too large

- Fixes text cut off for very long posts by nostr:nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7qgswaehxw309ahx7um5wghx6mmd9usjfpck

- Fixes double auth triggering NOTIFY from inbox.nostr.wine

Updated translations:

- Czech, German, Swedish and Portuguese by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsshgmkj

- Polish by nostr:nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpr3mhxue69uhhqunv9ecxcatn9ulhyet2v43hg0fn9smzcdc8fdk3q

- French by nostr:nprofile1qqs8av5uzf4nv2q80chrmp3mj9a9dd6zjw4fmz56hsn2gzar72rxhtcpzpmhxue69uhkummnw3ezumt0d5hszrnhwden5te0dehhxtnvdakz7qg3waen5te0w4kkyun9dsargwp58qhsnxcg72

- Chinese by nostr:nprofile1qqsyxnuhnymz0u0xru2watmqe25vlh8vzzje9jhlsfgvsff9942gc9gpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszxthwden5te0wfjkccte9ekk7mt0wd68ytnsd9hxktcpzfmhxue69uhkymmnw3ezucmc9ekhxtc24vk7q

- Arabic, Bengali by nostr:nprofile1qqsgs9hgjw87vz36jf2r83m5zree2q87zvs8s7kty9jljdz7wprytyspremhxue69uhkummnw3ezu6m0de5kueedv3jkwunpv9nzumnv9uq3kamnwvaz7tm5d4cz6un9d3shjtnrv4ekxtn5wfskgef0qy28wumn8ghj7mn0wd68yt3k8quzummjvuhsg63aw2

- Thai by nostr:nprofile1qqsxdhmq2cke8xk6scfyxeyfj3dyancavg6xk0v50r023gec7vsrceqpzemhxue69uhkvun9deejumn0wd68yvfwvdhk6qg6waehxw309aex2mrp0yezumn0wd68yctnd9sjumn9wsq3yamnwvaz7tm0venxx6rpd9hzuur4vghen3hm and nostr:nprofile1qqs93adzxqyt5k58xzjrta50rrdqkyxw2wxxu2495xmczgrkxpx4nacpr3mhxue69uhkummnw3ez6vp39eukz6mfdphkumn99e3k7mgpr3mhxue69uhkummnw3ez6vpj9eukz6mfdphkumn99e3k7mgpremhxue69uhkummnw3ez6vpj9ejx7unpveskxar0wfujummjvum84tx8

- Hindi by nostr:nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cppamhxue69uhkummnw3ezumt0d5qs6amnwvaz7tmwdaejumr0dsq32amnwvaz7tmjv4kxz7fwd4hhxarj9ec82cs0t5vfr

- Spanish by nostr:nprofile1qqs07tjpyvvlq9ugdpax8h3jfrpwn7kr72k3tc7ky83tggn4et9eangpr9mhxue69uhhqatzd35kxtnjv4kxz7tfdenju6t09uq3vamnwvaz7tmjv4kxz7fwd4hhxarj9ec82c30qy2hwumn8ghj7mn0wd68ytn00p68ytnyv4mz76xu9qg

- Dutch by nostr:nprofile1qqs82l74z7g3x8j3avpn2wrjrwn855nyvmpxa4v5pftfvtv5lrvrc5cpz9mhxue69uhkummnw3ezuamfdejj7tk0drp

Code Quality Improvements:

- Removes decryption for DVM responses since it doesn't encrypt statuses

- Upgrades lifecycle to 2.8.3, Kotlin to 2.0.0, Lint to 1.3.1 and AGP to 8.5.1

- Migrates sdk requirements to the version catalog

- Removes unnecessary dependencies for Ammolite

- Fixes several memory issues on CI due to Kotlin 2.0

- Removes the bugfix for reproducible builds since it has been fixed

- Solves build slowdown on spotless dependencies

Download via [Obtainium](http://amethyst.social) or [Zap.Store](https://zap.store/)

only the public part. Amethyst saves it to the private part of the list but other apps might use the public one. Either way, if Amethyst updates the private part, everyone in the public part receives the updated list's notification (as they should). But maybe Clients should not show that as a notification (because it isn't a notification).