Rewriting syncing mechanics in @LinkoraApp. Been experimenting around CRDTs and they shine when dealing with collections of items that need to be merged. Martin Kleppmann has great explanations on this (which I'll use for @LimaeApp in future). 1/9
I might still need specific operations like edit title, note, or parent rather than naturally merging two edits the CRDT way. Especially if the update is happening post operation. 8/9
I could package the entire object as a collection instead and get rid of every specific operation, which would make the codebase much easier to maintain, but it might increase bandwidth usage. So, that's that. 9/9
v0.16.0 of @LinkoraApp makes imports/exports a lot more efficient. Both now run in O(n) instead of O(n^2).
JSON imports: 56.1% less heap memory, 17% better CPU efficiency. HTML imports: 58.7% less heap memory, that's ~225MB less. (1/4)
Pagination is now cursor-based instead of offset-based. Sliding window is still there (was before too), using Kotlin Flows to keep only viewport items in read connections. (3/4)
Android Studio's profiler is goood, wish it had an inbuilt thing to trim out a specific time frame's info.
Release: github.com/LinkoraApp/Linkor… (4/4)
uploading files to a release on GitHub without a VPN takes forever. The moment you switch to USA server, it "magically" fixes it (╯°□°)╯︵ ┻━┻
was working on a custom paginator to handle local mutable data. it works great. still need to make a couple of minor improvements, and then it should be good to go in @LinkoraApp
Published a new write-up on my @openSUSE Tumbleweed experience (and some thoughts), as it's been more than a year since I started using it.
sakethpathike.github.io/blog…