So let's welcome Mikhail Mikhail Mikhail
Who will talk Mikhail?
We'll talk about using the strategies for collaborative commenting on your favorite free software desktop
Work processor, you have to guess which one it is, or maybe you got it already
Let's welcome him with a round of applause
Okay, so first I want to thank Annette Foundation for the funding for this project because otherwise it wouldn't be possible
And yeah, so we've worked on this for a little while and I guess you all know the writer application
That is a very famous desktop application this 30 years old is very complex as many features
And we wanted to explore as a prototype whether it's possible to enable some sort of collaborative editing in writer using CADDs
And you should not expect that this is perfectly working on its prototype just to explore the possibility
And so how does it look like?
This is an example here where we have two writers running on the same system connected over local software
And in the comments edit comments and format comments, so the main document itself is read only so you can only interact with the comments
This is because yeah, writer has too many features and the comments have much fewer features
So this was a realistic way to get anything working at all
Yeah, and we even have some implementation of Andrew which is a bit fragile but kind of works
Using also the right
So the first question which we started with is which CADDs should we use and we looked at a few papers it definitely looked like
There were very smart people working on CADDs much smarter than we are so we should reuse an existing library not write our own
So we picked the wires CADDs library and this hasn't happened with also the first rust code that anybody integrated into into writer or which is otherwise CADDs plus
And why we choose the wires because it has a rich text editing types of white text that supports all of the features that the edit engine text editing component in our application offers
So there are actually two text editing components the other one is writer itself basically but the comments use edit engine
Yeah, so we wrote a lot of boring civilization code
What does the CADD itself look like?
So we have a white document it can change the map of comments
The each comment has an anchor position that is just two integers which have to be manually updated for any editing of the writer document
And that's why you can only insert and delete comments
Then we have a map of properties that the comment has and the white text itself that basically duplicates all of the states of the internal edit engine edit document
So the way it works to use a does something then it goes into the edit engine
And that then updates the white text and that it's sent over the network and the other end it is received is applied to the white text
And then that updates the edit doc and then someone invalidates to window and the user CZ update
And actually turn out that figuring out how this invalidation and updating things should work in our own code
It took more time to figure out than the white slavery interface and so on and how to use that
Okay, then we also have the colors of each peer we have a color as you continue in the demo in writers just to introduce in edit engine
We could also use the reference from the way it's library
So how does it work well kind of it kind of works here
We can do all of the formatting we can we have curves of we have under which is a bit fragile
Yeah, as I said, why is it basically as it's alphabet works we had just one problem with an experimental feature
Yeah, we're only testing these two peers there are some open questions that I don't know the answers to and I think we're out of time
Thank you very much