hzrd149's avatar
hzrd149
_@hzrd149.com
npub1ye5p...knpr
JavaScript developer working on some nostr stuff - noStrudel https://nostrudel.ninja - Blossom https://github.com/hzrd149/blossom - Applesauce https://hzrd149.github.io/applesauce
hzrd149's avatar
hzrd149 4 months ago
Every time I make a big release of applesauce I get tempted to go back and build more... I really should move on and actually implement the features I've added into noStrudel On a totally unrelated topic. what do the typescript devs thing about building a library of zod schemas for common event types? I've been trying to think of how to prevent invalid events from getting to the UI components and causing a crash and I think strong types with validation might help
hzrd149's avatar
hzrd149 4 months ago
I built my own nostr notifications solution... image Although its not a NIP or a protocol. its just a simple Bun server that is designed to run on your server (Umbrel) and uses ntfy.sh to send the notifications. It still needs more work but its installable on your Umbrel if you add my app store
hzrd149's avatar
hzrd149 4 months ago
Sorry to everyone who uses noStrudel. I broke the latest version... There is an issue that only shows up in the production build, I'll try to have a fix out tomorrow PSA to all JavaScript developers. Be very carefully using top level await in your modules. Things might work in dev mode but when the app is bundled it can create promises that never resolve due to circular module imports. Even using async import()
hzrd149's avatar
hzrd149 4 months ago
I have this saying I like to repeat to myself a lot when it comes to software development. "don't lie to your users" It sounds obvious but so many developers don't get it, or at least don't see the whole picture and there is a moment in this podcast that illustrates my point perfectly. At 42:00 Chris looks down at the recording software and it says "connection unstable". he gets upset, and starts asking why and how the connection could be unstable but because the software cant talk back it never answers his question... Obviously we don't want software to talk (yet) but my point is that it notified him that it detected an issue but refused (lied) to tell him the reason why, or how it detected the issue. Was the connection unstable because it lost 50% of packets? is the latency over 5 seconds? is the recording software lagging due to CPU? The software *knows* the issue, otherwise it couldn't have detected it. but the developer decided to lie to the user. probably because they thought the user wouldn't understand. but this just leaves the user in the dark and easily frustrated which leads to them quickly loosing confidence in your software. Don't lie to your users, if there is an issue tell them about it and what it is. even if they don't understand at least you will still have a user. Video link with time: https://blossom.primal.net/979bf277264f6c42a99be43a33ade167e2711f103247ee243653f1ebd3dcec8d.mp4#t=2520 View quoted note → P.S. @Chris Liss might be better to use OBS to record long podcast (vlogs) then some internet connected thing. but idk, I don't vlog :)
hzrd149's avatar
hzrd149 4 months ago
#asknostr does anyone know of a good NIP-84 highlights app or browser extension that works on mobile? I read a lot of articles on my phone and I'd like to post those to nostr
hzrd149's avatar
hzrd149 4 months ago
Released applesauce v3. there were some breaking changes and a lot of exports were renamed There is also a bunch of new features. Ill try to write a release article about them, but there is a short list: - New applesauce-wallet-connect package for client and provider NIP-47 - NostrConnectProvider class for the server side of NIP-46 signers - Added "reconnect" option to publish, request, and subscription methods on relays - Support for NIP-53 live streams - Support for NIP-52 calendar events - Support for NIP-84 highlights - Support for NIP-88 polls - Basic NIP-61 nutzap support Also lots more vibe-coded examples to play with. my favorite is the NWC service example that lets you create a fake wallet for testing :)