> The library also supports recognizing two-finger simultaneous swipe input through the SwipeEngine::recognize_multi method.
61 karma · joined July 16, 2020
> The library also supports recognizing two-finger simultaneous swipe input through the SwipeEngine::recognize_multi method.
I don't think that the conflict detection/resolution needs to live inside the CRDT data structure. Ultimately you might want to bake it in out of convenience, but it should be possible to handle separately (of course the resolution will ultimately need to be written to the CRDT, but this can be a regular edit).
Keeping the conflict resolution in the application layer allows for CRDT libraries that don't need to be aware of human-in-the-loop conflicts, and can serve a wider range of downstream needs. For example, a note app and a version control system might both be plain text, but conflict resolution needs to be handled completely differently. Another example would be collaborative offline vs. online use cases, as noted above, they are very different use cases.
I'm skeptical that an algorithmic solution will be possible, but I can see this being handled in a UX layer built on top. For example, a client could detect that there's been a conflict based on the editing traces, and show a conflict resolution dialog that makes a new edit based on the resolution. The tricky part is marking a conflict as resolved. I suspect it could be as simple as adding a field to the crdt, but maybe then it counts as an algorithmic solution?
Wikipedia has a pretty good visual of this. https://en.m.wikipedia.org/wiki/QR_code#Encoding
[1]: https://developer.thunderbird.net/planning/roadmap#firefox-s...
autocmd BufNewFile,BufReadPost *.txt noremap <buffer> <silent> k gk
autocmd BufNewFile,BufReadPost *.txt noremap <buffer> <silent> j gj
autocmd BufNewFile,BufReadPost *.txt noremap <buffer> <silent> 0 g0
autocmd BufNewFile,BufReadPost *.txt noremap <buffer> <silent> $ g$
If you want this for all filetypes, just remove everything before "noremap". noremap <buffer> <silent> k gk
noremap <buffer> <silent> j gj
noremap <buffer> <silent> 0 g0
noremap <buffer> <silent> $ g$https://www.freelists.org/post/luajit/How-does-LuaJITs-trace...
python 3.10: 60s
python 3.11: 46s
pypy 3.9.12: 6s
Looks like pypy performs comparatively better on x86_64> The expressive power of Lisp has drawbacks. There is no such thing as a free lunch. > - The Lisp Curse
The basic idea is to call this tool anytime you would be setting up a complex chain of unix pipes, and instead do the scripting in a an interactive environment that allows you to see output as you type. It's just a toy implementation right now and only supports python, but could eventually support any scripting environment (even bash).
I don't really see this as a serious tool, but it can be useful for the odd shell job. Or just for those who like immediate evaluation on every key stroke ;)