Welp, 10pm and flowers still not delivered. I know which flower delivery service not to use again.
Hey nostr:npub1yaul8k059377u9lsu67de7y637w4jtgeuwcmh5n7788l6xnlnrgs3tvjmf
The following solution may possibly work. I am not an expert in iOS app development (in fact never done it). So, please take what I say with a pinch of salt :D
The call flow in damus goes like this from my preliminary analysis of the code on Github š
```
damus.c :: parse_hashtags ==>
cursor.h :: consume_until_boundary ==>
cursor.h :: is_boundary
```
I believe the fix is to change how the `is_boundary` function is implemented in damus.
When we look at the implementation of hashtags from the other clients, the regular expression based matching does not have any check for alphanumerics, but instead just a set of 'prohibited characters' (a black list)
Amethyst regex is this:
```java
"#([^\\s!@#\$%^&*()=+./,\\[{\\]};:'\"?><]+)(.*)"
```
Snort regex is this:
```js
/(#[^\s!@#$%^&*()=+.\/,\[{\]};:'"?><]+)/
```
Both of these regexes try to just write a blacklist of chars that can't be there in a hashtag, instead of whitelisting alphanumerics.
If, in c code, we can come up with a function that will check for blacklisted characters and return a boolean, we could use this to implement international hashtags in damus too.
Not sure if my theory is correct.
I could get behind that idea. Feel free to take a stab at it.
Rebased and moved the popToRoot call to the open profile/event/search functions only. Didnāt want to touch the wallet one because I donāt understand how itās used and what the implications are.
#[1]ā important to get fixed before Miami as Damus users network in person. Not sure if itās the correct approach since I pop navigation back out to root.
Saving keys from account creation still doesnāt work for me. Login with autofill does though.
Screen time at the beach. This is the way. Just donāt get sand in your laptop. (Just kidding, taking breaks are the best)
I havenāt heard of MAUI. Looks like XML UI development, which some may or may not like. Regardless, I think multiplatform frameworks are great for developers who are willing to use non-native tools to build a uniform experience that everyone can use while minimizing code duplication, as long as the look and feel seem native feeling to the end users. If someone wants to build one, Iām all for it. More client implementations mean more choices for end users, itās great for market competition and everyone wins. I think Plebstr is multiplatform but not sure what their stack is, theyāre not open source.
I started building native iOS and Android for a new app because I wanted to have experience building purely native apps (Iām usually a backend developer)
This isnāt the right way of thinking about the problem. If youāre trying to draw parallels to Bitcoin Core development, what youāre looking for is not a multiplatform Nostr super app. What you actually want is a multiplatform Nostr SDK client library and relay library that people can use to build their own experiences that conform to the protocol.
Trying to build consensus through a multiplatform super app will fail and no one will rally around that. Consensus, in this case, is achieved through conversation, not technology. The reason why Nostr has worked up to this point is because itās an open development environment. If you try to limit what developers can do with tooling, it will fail.
If you think Android needs a good Nostr client that doesnāt deviate from the protocol in a breaking way, there are already alternatives that exist. If they arenāt living up to expectations, send feature or issue requests or bounties to the developers. If youāre a developer yourself and the client is open source, contribute pull requests.
I canāt speak to Damus going to other platforms. Thatās up to Will. But in my opinion, thatās the wrong way of thinking about the problems discussed in this thread.
I spent a non-trivial amount of time unsuccessfully trying to solve it in Damus by extending the hashtag parsing code to pull in the icu4c library to leverage multilocale Unicode parsing. The API was too confusing so I stopped. Happy to have someone else try. Itās possible my approach isnāt the best.
when i said im not confident of what i do,
one of my idol programmer sent me this link,
The very beginning nostream commit
https://github.com/Cameri/nostream/commit/6f26ac8fd6f1397285c15ce631a8673453877812
Fake it until you make it
OG
I'm a sucker for action movies. This is one of my all-time favourites fight scenes, from Ip Man 3. The entire thing from start to finish is a masterpiece of amazing music, camera work, sound editing, and choreography. I must have watched it at least 100 times by now. https://www.youtube.com/watch?v=tQNwoX76IJs
Google is investing into Kotlin Multiplatform for Google Workspace (Docs, Sheets, etc). Their previous approach was transpiling Java down to Objective-C and JavaScript.
https://www.youtube.com/watch?v=C9gCm51RhsU
Meetup.com also built their app for event organizers from the ground up using Kotlin Multiplatform. This talk was incredible.
https://www.youtube.com/watch?v=VtFam_D1USw
All the KotlinConf 2023 talks can be found here: https://kotlinconf.com/talks/
That itās a grassroots effort, not by some company that needs to satisfy shareholders or VCs. Built by the community for the community and everyone. Made with š
Watching the BlackBerry movie tonight in theatersā.
Yep. Amended my commit. Added .to_string().

