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

https://m.primal.net/KTou.mp4 I agree. I started a pretty interesting iOS app a while back which is a secure nostr keystore. Stores your private keys in iOS keychain. Then allows you to open various nostr web clients in wkwebview that support nostr extension. It injects nip-07 support so that the web client can talk to app and request signatures, etc. I also have an extension that will allow you to open a site from safari in the app.โ€จโ€จIt still needs a lot of love, but you can get the gist of how it would work. I may revisit it sometime.

I just whipped up a chess server, running on wss://chorus.mikedilger.com:444/ using all ephemeral events, no access control required.

I was having a horrible week, doing huge coding but getting no wins and probably have to throw out my efforts. I really needed a win. So I did this chess thing which was (for me) easy with super rapid progress.

Here is the protocol, anybody can write a client for this. People connect and get paired up and play each other. There is no fancy Elo score matching yet. Nor did I write a client yet. Just the server... which is currently running and listening for chess events tagging this pubkey(hex): dbb45efeb8cc10e6f75fdff7e561e7db39cc7ba6592f4c22e26f3ee36b2e7bc2

(NIP-64 is not related to this work... yet)

Please somebody write a nice client.

// Event kinds (not yet allocated in nostr)

const REQ_TO_PLAY: EventKind = EventKind::Ephemeral(20300);

/*

* {

* "pubkey": ,

* "kind": 20300,

* "tags": [

* ["p", ],

* ],

* "content": "",

* ...

* }

*/

const RESP_TO_PLAY: EventKind = EventKind::Ephemeral(20301);

/*

* {

* "pubkey": ,

* "kind": 20301,

* "tags": [

* ["p": ],

* ],

* "content": "queued", // 'queued' or 'error:' or 'started:'

* ...

* }

*

*/

const GAME_STATE: EventKind = EventKind::Ephemeral(20302);

/*

* {

* "pubkey":

* "kind": 20302,

* "tags": [

* ["d": ],

* ["p": ],

* ["p": ],

* ],

* "content": ,

* ...

* }

*/

const GAME_MOVE: EventKind = EventKind::Ephemeral(20303);

/*

* {

* "pubkey": ,

* "kind": 20303,

* "tags": [

* ["d": ],

* ["e": ],

* ["p", ],

* ["p": ],

* ["p": ],

* ],

* "content": , // or various other signals like 'quit' TBD.

* ...

* }

*/

const GAME_ERROR: EventKind = EventKind::Ephemeral(20304);

/*

* If the game is known, and the error event came from a player of the game:

* {

* "pubkey": ,

* "kind": 20304

* "tags": [

* "e": ,

* "d": , // if relevant (not present if game not found)

* "p": , // if game not found, this is the author of event reacted to

* "p": , // only if game was found, this is the other player

* ],

* "content":

* ...

* }

*

* If the game is not known:

* {

* "pubkey": ,

* "kind": 20304

* "tags": [

* ["e": ],

* ["p": ],

* ],

* "content":

* ...

* }

*/

Love this! I do the same. When my main project is getting bumpy I write something fun to get that win!

Iโ€™ve been wanting to build an open world space strategy game on Nostr where relays are different galaxies with randomly generated resources that can be mined via pow events. Havenโ€™t really put much thought into it, but I will at some point. ๐Ÿ˜…

GM Nostr!

Just learned yesterday that swift has recently brought over some of the missing pieces of Foundation to open source side. This is great. Now with just a little finesse my swift Nostr Libraries should work across apple/linux/windows platforms. ๐Ÿ˜ƒ The missing piece was some of the networking api's like URLSessionWebSocketTask which is used in NostrClient. This allows me to only have a single third-party dependency in my libraries. (secp256k1.swift).

Down the road I will bring Seer to Linux and Windows Desktop.

https://github.com/apple/swift-corelibs-foundation

Trump is putting together the dream team! RFK Jr and now Tulsi Gabbard.

The Unity Party for the win!

GM Nostr! Now my three kids are back in school itโ€™s really good time! Ready to write some code! ๐Ÿ™

Took the day to spend with the family! ๐Ÿ™

Here's a quick video of nostr:npub1seerapp785zmhxm80js9vep6680ekcqu0tpac92q659vdftwvqustrexkf from startup and importing key. Still a lot todo, but coming along ๐Ÿ˜ƒ https://m.primal.net/Jupd.mp4

If youโ€™re into retro gaming and computers youโ€™ll love this movie.

https://youtu.be/_0PwMNAkEgk?si=mfdoA1GqmN8O5243

For friends and family I've found that Block's Bitkey has the best UX + security.

Actually caught them on sale for $25 each not to long ago.

Not a fan of RN. Feels like duct tape and fishing wire holding it all together. Dependencies galore. Feels like a security nightmare. Flutter and dart code feels overly verbose to write.

Iโ€™m biased because Iโ€™m a swift developer, but building with the native platform tools seems to always produce performance and results. Of course this means you need two codebases, however even that will be easier to maintain imo.

I also believe that in terms of UI, you donโ€™t want it to look exactly the same across Android/iOS. Android users expect it to feel like a native Android app and iOS users expect it to feel like an iOS app. The platforms have their own UI nuances.

https://skip.tools is worth looking at though.

Nothing against RN and flutter devs. You do you, just not my cup of tea.

Amazing song. In fact the entire album is perfect. Start to finish.

nostr:note1zysjmjhcf4mxq5wywjpsth33g0rp4lthqll9scne8fnad5jzduwsdlg575

Very grateful to be a part of this! ๐Ÿ™

nostr:npub1seerapp785zmhxm80js9vep6680ekcqu0tpac92q659vdftwvqustrexkf full steam ahead!

nostr:note1jp4qckfqkk09w4xsmagkf0l292x53njawwl25859fvlxwf0r9z9qv3c6sk

Very grateful to be a part of this ๐Ÿ™

nostr:npub1seerapp785zmhxm80js9vep6680ekcqu0tpac92q659vdftwvqustrexkf full steam ahead!

nostr:note1r2qlfhal0m4lpldr9pr90v0hzqu9jpuz7qf5dlz6xmshfp2tsgfsqcws78