Oddbean new post about | logout

Notes by tyiu | export

 Who knows what a "parameterized replaceable event" is and agrees we should rename that to "addres... 
 There’s parameterized and non-parameterized replaceable events. The former has a “d” tag that stays constant over replacements, which is useful when you can have multiple events of a given kind. The latter does not have the “d” tag, which means only one event for a given kind should exist, in theory. 
 Asking for pro advice: If you would create a multiplatform mobile app today, which language and f... 
 I just discovered skip.tools yesterday. Write in Swift / SwiftUI, transpiles to native Android / Kotlin / Jetpack Compose, with some added compatibility layers.
nostr:note1fxqwqcnt6fdufd372xmax25c23dq34r4vys5w6lm4gw3922pkcysq5zqg6 
 The SwiftUI framework is closed source. The Swift language is open source. 
 I likely won't be doing any Bitcoin conferences next year as I need a change of pace...

For now,... 
 Dang, I’m missing TabConf. Would have been good to meet you. 
 Landed in the worst and best place lol. nostr:npub1ymt2j3n8tesrlr0yhaheem6yyqmmwrr7actslurw6annls... 
 Shots fired. 
 Skip: a transpiler for Swift / SwiftUI -> Android / Kotlin / Jetpack Compose. An easier way to launch an existing iOS app to Android? 🤔
https://skip.tools/ 
 This is actually incredible. They take a demo app that Apple wrote and transpile it over to Android with Skip.
https://www.youtube.com/watch?v=EBp8m8h2fIY

Here’s their breakdown matrix comparing to other approaches of building dual-platform mobile apps. Take it with a grain of salt as they created the matrix themselves so it probably has some bias, but it seems to make sense to me.
https://skip.tools/compare/

I’m going to try to port Comingle iOS over to Android with this approach. 
 Pulled out my Android phone after a long while and tried some of the new Nostr Android apps. Man, zap.store is slick. @Zapstore @franzap well done. Amber too, @greenart7c3 
 I think there’s two official ways of going about this:
1. Publish an alternative app marketplace in the European Union under Apple’s draconian rules. https://developer.apple.com/documentation/appdistribution/creating-an-alternative-app-marketplace/
2. Make @Zapstore also a web client and have the download links go to the official App Store or TestFlight. 
 Go test out nostr:npub1c0nfstrlj0jy8kvl953v84hudwnpgad0zx709z0ey7nmjp0llegslzg243 on TestFlight!
... 
 That would be really cool and has useful applications. I love the calendar event NIP, not only because I wrote it, but because of the opportunities of bridging relationships between online identities and physical in-person ones (for those who want to). 
 Hey nostr:npub1yaul8k059377u9lsu67de7y637w4jtgeuwcmh5n7788l6xnlnrgs3tvjmf - is the 🔍 button in... 
 I think both the Home and Explore tabs should show a search bar. For Explore, it’s probably the wrong image for what it’s actually intended for. It’s more like “explore all events that aren’t created or RSVP’d by someone you follow”. Maybe an image of the globe would make more sense. I made tapping the icon scroll to the top intentionally.

There aren’t any specific relays that I know of yet that are for calendar events. I will probably spin up a comingle.co relay in the future for this purpose. Defaulting to the Primal relay at the moment is just a temporary easy stopgap as it’s a popular relay.

Thanks for the feedback about the UI and experience. I appreciate it! 
 Going to answer your question in the Alby Community Call that I didn’t get to.

> I'm trying to search for the NostrValley event that Derek was creating (not sure if he has done so yet). Did your reply on Nostr this morning just mean that the magnifier icon should jump to the top for search, or did you also mean that the searchbar function itself  isn't built yet? 

The Nostr Valley event has been created, I see it on the Primal relay.

The search icon will no longer be a search icon, I’m changing it to a globe icon. But what I meant was that tapping on any tab, “Home”, “Explore”, “Upcoming”, “Past”, will scroll you to the top.

But also, separately, there is a search bar that I will add soon that will enable you to search for events, profiles, locations, etc. 
 Just scroll through. I’ll add search soon! 
 @GrapheneOS I haven’t been able to connect to my home WiFi for a while now on my Pixel 6a, even after forgetting the network and re-adding it. Is there some OS / device-level issue and fix for it? 
 Oh that’s the Mostr bridge account. @final [GrapheneOS] 📱👁️‍🗨️ I haven’t been able to connect to my home WiFi for a while now on my Pixel 6a, even after forgetting the network and re-adding it. Is there some OS / device-level issue and fix for it? 
 “Limited connection” with a ! exclamation mark next to the WiFi symbol. Signal strength “fair”. I don’t have this issue with my iPhone or any other device. 
 It was running the stock Android OS by default  but installing GrapheneOS wipes it. Not sure, it was working for a long time, and then it wasn’t. It’s either an issue with GrapheneOS or my router. 
 I wiped my device and did fresh install of GrapheneOS. WiFi works now. 🤷🏻‍♂️ 
 Congrats 🎉 to Terry on nostr:npub1c0nfstrlj0jy8kvl953v84hudwnpgad0zx709z0ey7nmjp0llegslzg243 a... 
 Thank you! 🫂 
 Thanks to everyone who has tried Comingle so far! Kudos to @The: Daniel⚡️ and @Derek Ross for the bug reports. TestFlight version 0.1.0 (2) has a bunch of changes and fixes. Keep the feedback coming! nostr:note1cpcy4xwvn5xxd0h8g9et3vvepc9jsz8xkcvplqw055dnt5qfg4vs40wk65 
 I hear you! I’m the only developer working on Comingle at the moment, so unfortunately, you’ll have to wait while I work on the Android version. I’ve chosen the difficult path of writing the app natively on each platform rather than using a cross-platform framework, so it’ll take twice as long, but it’ll be worth it for the user experience. 
 Comingle seems to work well thus far. I look forward to a future Android release. Great job nostr... 
 Thanks for whipping out your iPhone to try Comingle, and thanks for the feedback! Android is in the works, though very early. 
 Oof. They’re not paid relays, are they? @The: Daniel⚡️ had a similar issue but was able to resolve it by using a different relay. 
 Oh shit. I see the bug. It’s dumb but a major one. The active relay pool isn’t updated when a relay is added or removed from settings. Sorry about that, guys. I’ll push out an update as soon as I can. 
 Fixed on the latest TestFlight - 0.1.0 (2). 
 I’m excited to announce the release of the first public beta of Comingle iOS, an events app powered by Nostr. Please try it out and let me know what you think! cc @Comingle nostr:note1pwajms8k7wm485jpre9we8f66y0c5qjgrp4lh55rw8nujw4f9tksup5n9j 
 Comingle doesn’t support nsecBunker yet, but I’ll add it to the backlog!
https://github.com/comingle-co/comingle-ios/issues/34 
 njump.me, coracle.social, and troop.is (new version of Flockstr?) should support it. With that said, I can’t find your event through those clients. Maybe it didn’t publish properly. Which relay did you try to publish it to? 
 I need to add event publish retries and rebroadcasting into Comingle. If it fails to publish, it’ll just stay stored locally. A workaround would be to modify your event and hit save to publish another revision. 
 Epic event. If you scroll down to the bottom, does it say which relays it published to? If it doesn’t, then it didn’t publish. In which case, try modifying something in the event and re-save. See if that does it for you, and then grab the event id from the top right toolbar afterward. 
 Sure! When is it? 
 I’ll try to attend the call this Thursday! 
 Yes, except I don’t know of anyone who uses the social features of Meetup. I certainly don’t.  They’re a centralized solution with a lack of network effect. Comingle gets network effects and portable identity for free with the power of Nostr as a protocol. We will make Meetup obsolete. 
 Thanks for your interest! If it’s an online event that people call into, it doesn’t matter what the time zone is because there isn’t a specific one. The time zone is wherever the participant will call in from. Time zones make sense if all the participants are guaranteed to be at the same location or in similar time zones. 
 Yep! It should work in that scenario. If you create an online meeting, just toggle the Time Zone setting off. It’ll show you, as the event organizer, the event in your local time zone. For others, it’ll show the event in their own local time zone. 
 Final push today. Announcement coming soon! 
 Why not both? 🤭 
 GM Nostr!

Fighting with SwiftData this morning. When using predicate's for queries, etc it absol... 
 GM! I’m finding SwiftData to be a bit difficult to work with, too. Are you using value transformers? For the time being, I’m using SwiftData as a semi-dumb data store for Nostr event kinds and local app settings, and I load everything into my in-memory cache on app launch. I hope to integrate more closely to SwiftData as Apple improves it over time. 
 Sounds similar to what I’m doing with the storage part. I store the serialized JSON of the Nostr event (and use a value transformer to get the deserialized object) and which relays the event was found into a single model. Then I map those to specific event kind classes on app launch. 
 Is anyone else’s home feed getting spammed with a tonne of identical notes, all asking for dona... 
 You can mute phrases as well, which fixed the problem for me. 
 Tap on your profile picture on the top left corner to bring up the side menu. Tap “Muted”, and then tap the + button on the top right corner. Add the phrase in the text field and tap “Add mute item”. 
 Random thought. What if we built Nostr clients that called public keys as usernames and private keys as passwords. They just need to be guided by the client to store that information in a secure place. That could be an easier onboarding experience for anyone who isn’t tech literate, or has little to no knowledge about public-key cryptography, decentralization, etc. They just want to use an app that solves some problem that they have in a familiar way, without needing to relearn their entire web or app browsing experience that they’ve been used to their entire life. 
 Good night Nostr.  Conference starts tomorrow. So glad to have come early and oriented myself to ... 
 Have fun! Good luck with your client. 
 Got Nostr event caching to work on Comingle iOS. Works while on airplane mode. The idea is that you can attend a physical event that has poor connection and still be able to access crucial event information. Good night! 
 Yeah, I want to do this, but Apple may make this difficult. 
 It’ll happen. I’m behind schedule. I’m trying to ship iOS TestFlight sometime soon and start Android right after. 
 If you’re interested in listening to a workshop on how to build Nostr apps on Apple platforms, upvote this talk with a 👍
https://github.com/nostrworld/nostriga/issues/9 nostr:note1e8nmsu4kc9mt9gu2tmp3uszlqq4p0htpn09p4gjs2546qk9zxy0qp768nz 
 I meant upvote on the GitHub issue, not on my note in Nostr. 🙂 
 GM Nostr! 

Seer development in full swing. I toyed with the idea of using Mac Catalyst for the m... 
 Nice npub. 
 FIXED! Thanks to nostr and nostr:npub160cxmqcwxwf87s30n5qv2xqtdgr3lrszg4eut2k4ck3lzll48hpsqupad5 ... 
 Mine a few weeks ago. 2.5 years without being cleaned. https://i.nostr.build/vRxbY474GsHwTeLe.jpg  
 What's a Nostr app that you want to use more often, but don't. Why? 
 Looks great!

It seems you’re displaying events using the UTC time zone instead of the time zone on the event / falling back to system time if unavailable. We should also get the image tag onto the NIP.

Just for fun, comparing 3 calendar event clients! Comingle, Troop, and njump! https://i.nostr.build/3cbUmkKiKluSAWO8.png https://i.nostr.build/OGXeLeGuAPAx8saA.png https://i.nostr.build/hoaCkvbeavhgFgbz.png  
 You can tell who really cares about censorship by how they react to the concept of unstoppable in... 
 Then they complain when they end up being censored themselves for reasons they don’t agree with. 
 PSA: The Damus emoji selector has been revamped with (English) keyword search and multi skin tone support. Enjoy! https://i.nostr.build/gW9g1qc6BhNxJG2R.jpg  nostr:note1navd0ulgy5ve67y5upznmwxww5wxjjzfkvxtr6umeej0mkfqv5wsaef0fp 
 One identity to rule them all. https://i.nostr.build/VxPFbZDLjDGp9YxA.jpg  
 The speaker in the middle is @Patrick Boehler ! Super interesting journalist, consultant, and great speaker with a ton of deep tech expertise, using that information in the context of autocratic regimes. Had the pleasure of talking to him for a while after the event. Thank you for your work and your talk! 🙏🏼 Also, thanks to @Linda and @nos.social for hosting! 
 How do New Yorkers live like this? It’s 35C / 95F outside and it’s even hotter inside the subway stations with no air conditioning or air circulation. Literally any other major city or country has this beat. #nyc