Twitter | Search | |
James Long
Contracting as Shift Reset LLC. Furiously working on and will despair if not launched soon. Created . Ex-Mozilla.
15,289
Tweets
805
Following
17,056
Followers
Tweets
James Long 20h
Replying to @phil_lgr @actualbudget
no idea, there's a million libraries and I prefer to talk about the underlying abstractions like CRDTs, operational transform, etc
Reply Retweet Like
James Long 22h
Tons of things to evaluate - at the end of the day, you do what works best for your use case. In my case I'm betting that what I've done is going to serve me the best over time. (Yes, I looked a many and they all had show stoppers)
Reply Retweet Like
James Long 23h
Replying to @gozala
I'd love to! I'm always open to video with people because I work from home. If you want to meet next week just give me a time, my schedule is open. Or DM me
Reply Retweet Like
James Long 23h
Read the existing thread, it's all in there
Reply Retweet Like
James Long 23h
Replying to @gozala
Which tech are you involved in, dat, beaker, etc? I'd love to sit down and understand them better
Reply Retweet Like
James Long 23h
Replying to @gozala
Definitely! My blog list is a bit backed up but by the end of the year hope to blog a bunch
Reply Retweet Like
James Long Sep 21
Nice :) With last-write-win though, you don't even need to store the entire history of changes, just the latest one. Anyway, all tradeoffs. I was able to still leverage sqlite with very efficient storage of this info. Pouch has different tradeoffs, still good!
Reply Retweet Like
James Long Sep 21
Yep there are still some bugs in the reactive part of the system - all the underlying data is properly synced though. If I restarted the app it'd be correct
Reply Retweet Like
James Long Sep 21
Fair enough, good to clarify. Still a big problem that versions are document-level and not field-level though, hard to use CRDTs accurately with that
Reply Retweet Like
James Long Sep 21
Very cool about the encryption!
Reply Retweet Like
James Long Sep 21
By losing data, I mean from the UX perspective. User syncs, from their view the data is gone. Sure it’s internally there, but they’d have to manually bring it back. This is fully conflict free
Reply Retweet Like
James Long Sep 21
Yeah I know :) but since the version is only stored per-document, not per-field, you will end up losing data. You could try to auto-resolve by ways merging conflicts... but in which order? You can’t be sure and have to ask the user or something
Reply Retweet Like
James Long Sep 20
Very cool, that's exciting!
Reply Retweet Like
James Long Sep 20
Replying to @0xCMP @actualbudget
That's actually not too far from what this is, but with LWW you just don't need to keep the full log. Someone else pointed out a library Logux which you should check out as well, it uses a CRDT of logs.
Reply Retweet Like
James Long Sep 20
Replying to @kentcdodds
Sure, just commented
Reply Retweet Like
James Long Sep 20
Replying to @0xCMP @actualbudget
Thanks! didn't intentionally avoid, just using a last write wins based on whoever is more recent, "recent" being defined by a hybrid logical clock
Reply Retweet Like
James Long Sep 20
Almost everything out there is not built to be purely a local database. First result from google about firestore:
Reply Retweet Like
James Long Sep 20
Yes 😅 there are still some edge cases with the reactive system. If I reloaded the app they’d be the same, the UI just isn’t updating everywhere it should be
Reply Retweet Like
James Long Sep 20
Replying to @tomasdev
never ask - it must be conflict free. Whoever changed it later wins, "later" being defined by the hybrid logical clock
Reply Retweet Like
James Long Sep 20
Replying to @kentcdodds
it is a bit restricting - only works if you've separated out your components so you can render them without any react-navigation/etc. Can't test certain components either. But it's fine for testing general logic
Reply Retweet Like