Creator of Blowater BJJ & Fitness I self identify as a Pro Sleeper DM me using blowater.app
Public Key
npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf
Profile Code
nprofile1qqsxh8dfyrztdm9l9sfqrzn6952rkn0alxrccwl2c60rnw6e0pqucmskwxjna
Author Public Key
npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Show more details
Published at
2024-04-29 04:39:05 Event JSON
{
"id": "49a72d5b9c3e7cb8da9b99f266d26458b8446651a71f7f65579862f786a59161" ,
"pubkey": "6b9da920c4b6ecbf2c12018a7a2d143b4dfdf9878c3beac69e39bb597841cc6e" ,
"created_at": 1714358345 ,
"kind": 0 ,
"tags": [],
"content": "{\"picture\":\"https://i.pinimg.com/564x/c9/83/9b/c9839b712d428b0ee5377df243b25312.jpg\",\"lud16\":\"[email protected] \",\"website\":\"https://blowater.app\",\"name\":\"Waterdan\",\"about\":\"Creator of Blowater\\nBJJ \u0026 Fitness\\nI self identify as a Pro Sleeper \\nDM me using blowater.app\",\"display_name\":\"\",\"banner\":null,\"nip05\":\"\"}" ,
"sig": "fae37e4a4941730746d1698f1859b57361b22a7cf5b468d17b95ffaadbd84ce2a8a2d34bf65efb97258d2ed605bb93c478af7ff001898970acba7f74491b0513"
}
Last Notes npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan 20K lines of code is the sweet spot that a good developer can realistically hold in his brain at once per year. Which means, the code size should be Total Lines of Code / (People - 1) <= 20K You always want to -1 because you want shared knowledge about the codebase. If your team is suffering from complexity but the number is <= 20K, you designed the wrong architecture. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Shouldn’t the dot be at the center? npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Go to https://blowater.app/ and you will see a very unique design, our V2 design is finally rolled out! npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Freedom is power. Power comes with responsibilities npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan People don’t want more choices. People want more confidence in their choices. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan @npub1zfs…w445 Do you have experience in Svelte? Just curious. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Plain text is the best UI human has invented so far. It’s insanely effective. That’s why chat apps are so powerful. You can arrange meetings, events and complex tasks in the chat, without using a specialized app. Chat is the app of everything. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan I really enjoy the 1 hour before sleep. I feel the complete ownership of this hour. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Yes. This discussion has changed my attitude towards Nostr Signin/Connect npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan So a private key is stored locally on device and the corresponding public key is stored in the server. That’s pretty much just Nostr sign-in. The only difference is that passkey approach generates a new key for every app. It’s like using a different private key for every nostr client. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan What are passkeys? npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan It’s even harder than BTC private key protection because the moment you suspect that your BTC key is leaked, you can transfer remaining fund to another key. This is achievable because BTC requires global strong consistency. Nostr trades consistency with availability by design so that it’s impossible to transfer the ownership of events. This problem is just so damn hard. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan What are subways? npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan The new UI of profile settings. Each relay has a different profile. https://i.nostr.build/mlXAk.jpg npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Dependency injection and currying are the sort of design patterns that when people first get a taste of it, they go too far. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Bring Nostr to system programming is important @npub1drv…seet keep going! npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan I always wondered why Bill Gates looked like a teenager nerd in his 30s npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan An important direction to explore. Useful for 1. Better security in general 2. Business accounts What is the npub of the author? npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan I want to try it npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Also https://jsr.io/@blowater/nostr-sdk if you are using Deno All of them have different flavors npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Do you have code examples? Any language is ok npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Can we do multi sig in Nostr? npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Gitea can just run GitHub CI. It is nice. The UI is not as good but bearable. Just the price is high to have a fast setup. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan https://i.nostr.build/9zMaQ.png blowater.app now has a floating modal display for settings. More new design is coming out npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Gitea is good npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan I believe this is true in general in the software industry but more obvious among web developers. Every 1 - 2 years, there is a new web frameworks that solves the same problem in slightly different ways. People spend lots of energy learning these new web frameworks but don’t spend the same amount of time to just learn JavaScript and the browser itself. If you think about it, the Web API is already a framework. React/Vue/Svelte are just super frameworks on top of a poorly designed legacy framework called HTML/CSS. The choice of React/Vue/Svelte does not matter. Some use virtual Dom and some don’t. It does not matter. If the developer does not know how to write JavaScript, it will end up be the same shit. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan I got my account back. Everything is ok. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan The worst thing a junior dev can do is not to review code of senior team members and treat code reviewing as some sort of extra burden. Code review is not 1. a privilege that only your team lead has 2. a responsibility that only your team lead has It should be, the job requirement for every single programmer in the team. In my professional experiences, developers who review other people’s code grow faster than those who don’t. Code review is one of the best ways to grow as a software engineer, regardless of seniority. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Or just not buying a big house npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Long GitHub, long Microsoft, short nostr, short bitcoin npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Apparently, random dudes or gals working in big corps can decide if you can stay in the industry or not. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Thank you Geoffrey but no, I won’t use GitHub again. https://i.nostr.build/oM5d7.jpg npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Thanks for all the suggestions and I am happy to see this topic is widely discussed. https://git.blowater.app/ is now where all my code is hosted. General public can't access it yet. I will figure out how. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan It’s more relevant for companies. Imagine your team account is suspended with no prior warnings and you have no clues why. I am more confused than angry. Alternative code hosting is easy. The hard part is rebuilding CICD. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Is this a real thing? npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan All I wanted was to write harmless code, have fun, and enjoy my beer. Now I need to solve problems? So much work! Let’s make them irrelevant. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan @npub16vr…p2va One of the problem of that my GitHub got suspended is that my proposed talk is gone. It was the 2nd most 👍 issue yesterday night. If I could not get my GitHub account back, what’ the alternative way for me to submit this talk? npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Yes npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan So my GitHub has been suspended with no explanation, no warning, no emails. I guess the development of blowater.app will stop for several days before I have an alternative code hosting solution. @npub1sg6…f63m was right for wanting a decentralized code hosting software. Are there anybody still working on it? npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Has anyone used https://radicle.xyz/ ? npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan You are cycling and doing Nostr dev at the same time? npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Just released a new JSR package https://jsr.io/@blowater/csp npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Thanks for @ me and yes, I am working on blowater.app, a team chat on top of Nostr. Seems like this kind of software is getting more love in Nostr now. However, that’s the reason @npub1m4n…c2jl you dislike Slack so much? I don’t dislike Slack this much. There are a few improvements that I want and that’s why I am working on it. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan I just realized that how uncomfortable my emotion becomes if I don’t train for a day. I want to train everyday! npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan mod keys { const BYTE_LEN: usize = 32; #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct PrivateKey([u8; BYTE_LEN]); #[derive(Debug)] pub enum Error { FromHexError(hex::FromHexError), Not64Length(usize), } impl PrivateKey { // Public constructor pub fn new(id: &str) -> Result<PrivateKey, Error> { if id.starts_with("npub") {} if id.len() != BYTE_LEN * 2 { return Result::Err(Error::Not64Length(id.len())); } let h = hex::decode(id); let bytes = match h { Ok(bytes) => bytes, Err(err) => return Result::Err(Error::FromHexError(err)), }; let mut array: [u8; BYTE_LEN] = [0; BYTE_LEN]; for (i, b) in bytes.iter().enumerate() { array[i] = b.to_owned(); } Result::Ok(PrivateKey(array)) } pub fn hex(&self) -> String { hex::encode(&self.0).clone() } } } Is this good Rust? npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Simply realizing that there are many people in your life who need you to live well and show up for them will make you feel better immediately. It’s not just deep relationships such as lovers and families. The dentist appointment, the pizza delivery. They may not be your friends. But by simply showing up and don’t be late, you are expanding your energy and gradually making your life better. P.S. why I sound like a personal growth guru? It’s so bad. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan https://www.youtube.com/watch?v=rpAfCxXctlY anyone? Can’t believe that it has been 10 years. Rwby is my favorite anime series. RIP, Monty. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan https://i.nostr.build/dwBWY.png New navigation is coming to blowater.app npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan I will keep an close eye on it because I want to refactor away from the browser as well npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan @npub1zfs…w445 ’s https://lume.nu/ is the most beautiful desktop client that I know of. Check it out. I still miss some of the UI design from 3.X. Especially because 3.X shows lots of content by default. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan I never saw one npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Look forward to it npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Focus, I know npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan It would be great if Nostr clients can remind me of live stream nostr events that’s happening. I should implement it into Blowater. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Has anyone used https://www.every.org/ before? How are their services? Secure? npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Ok npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan https://www.youtube.com/watch?v=Hnj-JezAsmE npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Each language has a mood associated with in my head npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Set is my favorite data structure npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan https://www.youtube.com/watch?v=HTcL9WkB_wg 12 years, I like this song more npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Are you happy? https://i.nostr.build/3P0ZM.jpg npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan https://www.capcut.com/ is a very good video editing software, despite that it is from the creator of TikTok npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan https://i.nostr.build/wGwBq.png Now Blowater has a UI to see all the npubs in a relay npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan How do they know where you live? npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan https://www.youtube.com/watch?v=kPBzTxZQG5Q npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan The concept of platforms is not necessarily evil. For example, as a consumer, if I purchase a bad quality good or service, without a platform, I have to face the provider along and usually individual customer is at huge disadvantage because the business has essentially no worries to ignore my requests. The platform can help individuals to negotiate in situations like this. The largest platform is of course the state and legal system. Platforms become problems only when they stop to caring about neither individuals nor businesses or only care about businesses. A good platform gives bad actors huge risks to do bad things and rewards good actors. In this sense, Nostr is the platform of reputation. Because bad comments about any npub can not be deleted, npubs with commercial activities will be very careful with how they treat customers. Also with Web of Trust, we can filter out 99+% fake comments/reviews. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan They are not enemies npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Imagine that CSS looks like Tailwind since the very beginning. The humanity will save lots of time. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan It looked so much fun in Prague #note1ptl…sep6 npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Does it assume that all or majority relays are permissionless? npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan I might write a more in-depth article about it. Short: with the equipment of new generation social media, web of trust, decentralized reputations, we will see the rise of super individuals (don’t confuse with centralized platform influencers). The concept of corporations will still exist for things that individuals simply couldn’t do such as international logistics. But, every other aspects of your local life will be back to individuals. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Why not return an event in http get for nip 11? npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan https://cdn.satlantis.io/1718125847347-screenshot_2024_06_05_at_13.58.53.png This is a test that has nothing to do with Bangkok npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Just had this empowering thought: despite self identifying as a lowly effective person, I’ve achieved a lot so far. It’s ok to be suboptimal. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan The fact that NIP-11, relay information is not an event, is a mistake. If the relay information is an event, we get: 1. Real time update on the client 2. Know which npub updated the relay info 3. Use real time update to change administration features on the client To implement a Discord style client, we need real time relay information. It’s not just a relay information, it’s a full description of the configuration of this relay. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan https://www.youtube.com/watch?v=MFCn4ce5dVc This will the most important tech announcement for the Web in 2024. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan No. I know it. The proposition bun takes does not fit my needs and taste. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan The build tool written by Evan You, the creator of VueJS. Vite is not part of VueJS. Think of it as the webpack done right. But, I haven’t been using any NodeJS tools ever since I start to use Deno. Problems that can be solved by the language runtime should never be leaked to the user space and be solved by libraries. Analogy: problems that can be solved at the protocol level should never be leaked to applications. (Nostr speaking) npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan It is my believe that Vite or previous gen bundle/build tools are just fancy hacks to the flaws of NodeJS. With Deno, you can get rid of most of that shit. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Just because there are calculators, doesn’t mean people give up on math. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Is it common for a small business owner to start a warehouse? npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan The only thing I know is that logistic providers in different countries probably have different APIs. It’s easier to get started in Japan, experiment and extract the pattern. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan I still think Blowater as a NIP7 extension is a good idea. I did some experiments with it during last year’s NostrAsia conference but never fully pursued it. After the current refactoring is done. I want to try it one more time. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Yes, it is necessary to integrate. But I don’t have domain knowledge in e-commerce to advice. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan https://blowater.app is the project I work on npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Random Thought: What if I create a globally available relay as a serverless platform that a developer can upload scripts (in a secure language) to customize the relay’s behavior? For example, my-global-relay-server.com/this-developer-s-route Each relay is a route. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan One problem is that programming is mostly not interests based because it’s a high paid job so that 95% programmers I know don’t give a shit and the culture of excellence is vastly lost in the programming culture. BJJ on the other hand, won’t let any bad practitioners made a dime so that the culture celebrates excellence. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Nostr is not even one project. This is so misleading. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Can programming be learned like BJJ? Everyday, we just go to the classroom and the instructor(black belt in programming) simply gives a small demo about some practical problems and offer solutions. Then students start to hack. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan https://www.youtube.com/watch?v=Vll10vExnJo Every time I watch videos like this, I wonder what the fuck I did with my life when I was 10 years younger. I spent most of my time in front of a screen and I haven’t become an amazing programmer yet. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan I don’t know the answer but I have some important questions to consider: 1. If the legacy browser API is designed poorly, do we really need to design Nostr in a way that makes legacy API happy? 2. If we want to be innovative, shouldn’t we be brave enough to throw away the legacy infrastructure all together? Bold statement: Native clients, desktop and mobile, will be where we win and they are overlooked. If Nostr is really the next gen protocol, it needs solid implementations in system languages such as Rust and Zig in both SDK and applications. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Depending on how we judge it. 1. I understand that supporting browsers is necessary to bootstrap the ecosystem 2. Even with WebSocket itself, the browser API does not implement the full websocket spec defined in its RFC 3. WebTransport looks more secure and flexible but I haven’t used it. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Knowledge and muscles are proof of work npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan A remote attestation with signatures npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan I don’t want to make you feel bad but I am a fit nerd. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Hell yeah!!! npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan JSON or plaintext in general? npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Because it’s very easy to horizontally scale a stateless backend service and very hard to horizontally scale a database to a cluster. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan If a service does not have like 10 million users and 10K+ QPS, the choice of language can hardly be the bottleneck. The choice of database is usually more influential on performance. npub1dww6jgxykmkt7tqjqx985tg58dxlm7v83sa743578xa4j7zpe3hql6pdnf Waterdan Yes and WebSocket is a bad 2-way communication protocol and the Web API of WebSocket is even worse. As long as Nostr sticks with WebSocket, it can not be amazing. 2 way communication is great, WebSocket is horrible.