Avatar
ismyhc
c5cfda98d01f152b3493d995eed4cdb4d9e55a973925f6f9ea24769a5a21e778
Building coolr.chat and Hollow a long form Nostr reader/publisher application.

If anyone remembers the JavaScript game framework impact you will love this. The guy rewrote it in C. Itโ€™s super simple and targets Mac, Linux, Windows and wasm.

https://github.com/phoboslab/high_impact

This is amazing. ๐Ÿ™

nostr:note1px4q7envatfydmwfrllss4dryvjwltdd9hmtfg7wa5sw38wk53ts4mjl20

Enjoying the sun and beach this weekend but canโ€™t keep my mind off of nip29. ๐Ÿ˜…

A nip29 Relay-based Groups client. It's still under heavy development and not ready for use yet.

https://seerapp.chat

My open heart surgery of Seer yesterday seems to be success so far. I eliminated a ton of complexity around how data is stored and in relay management.

Hey! Guess what? SwitData seems to have a bug where you can't use predicates with UInt16. ๐Ÿ˜… Thanks Apple!

ffs. Anyways, storing kind as Int works.

I haven't used value transformers before. Im going to look into them though.

Right now I have a handful of models that I create from events as they come in, then store them into SwiftData, but that code is getting overly complicated. So before I dig too deep Im experimenting with something that may or may not work.

Instead of having all these different SwiftData models, Im simply storing a single model for the event. Almost as it would be stored on a relay. One addition to the model is that I serialize the tags into a single special formatted string since trying to use a predicate on nested arrays might get messy.

The idea is that this keeps my data model more simple as well as code path where I store these events.

Then I will use the queries to map the stored event's into their more detailed object where needed.

The unknown I have now is if doing this will cause too much overhead on the UI. I just don't know yet, but my code is early enough that I can try it and if it works as I hope it does it simplifies the code around this a lot.

Yeah, it's missing somethings that would make life easier like conditional update/insert, explicit indexes ( I think it does some automatic indexing) and dealing with migrations seems more complicated than it should be. That said, it integrates so nicely with SwiftUI for me it's hard to not give it a go. Im going to keep going with it for now. The unknown for me is performance. I haven't had any issues there yet, but I haven't pushed it.

My fallback option will probably be Realm which I've used in the past and is quite nice.

GM Nostr!

Fighting with SwiftData this morning. When using predicate's for queries, etc it absolutely does not like computed properties. A pain in the ass. I really want SwiftData to work though because it so tightly integrates with SwiftUI.

GM Nostr! Back to the grind!

Anytime! SwiftUI is my jam so feel free to reach out anytime. ๐Ÿ˜ƒ

GM Nostr! Bitcoin conference was fun. Was fun to meet people I know from here in real life like nostr:npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5s.

Now it's time to get back to building! ๐Ÿ˜‰

Anyone have an extra After Party ticket? ๐Ÿ˜…. Didnโ€™t pick one up before they sold out.

Iโ€™m gonna be a day late, but Iโ€™m ready and weโ€™ll see everyone tomorrow! ๐Ÿ˜€

Letโ€™s go! ๐Ÿ™

nostr:note1ykt4cc75u5pkr8u8xqcrnkut9s0685dwmgayj84ltzq9jusfqdqq24u3x6

Got my extra Bitkey wallets in today. They were on sale for $25 last week. Bought 4 of them to give to family members. Bitkey is really a great introductory wallet.

Thanks nostr:npub1sg6plzptd64u62a878hep2kev88swjh3tw00gjsfl8f237lmu63q0uf63m

Gm Nostr! Please follow myself and nostr:npub1seerapp785zmhxm80js9vep6680ekcqu0tpac92q659vdftwvqustrexkf for updates on Seer development!