WEBVTT

00:00.000 --> 00:10.000
Okay, we're ready to start the next talk, Robert, you have the floor.

00:10.000 --> 00:12.000
Thank you.

00:12.000 --> 00:17.000
I'd like to talk about the level of energy,

00:17.000 --> 00:19.000
and we'll see what's in this acting.

00:19.000 --> 00:21.000
What's it?

00:21.000 --> 00:23.000
No?

00:23.000 --> 00:28.000
I can't speak up, let's listen.

00:28.000 --> 00:31.000
So, yeah.

00:31.000 --> 00:35.000
I'm going to talk about,

00:35.000 --> 00:39.000
I just think, we've seen a couple of examples they already

00:39.000 --> 00:41.000
in the room.

00:41.000 --> 00:48.000
So, I'm going to talk about the media weekend,

00:48.000 --> 00:49.000
why am I?

00:49.000 --> 00:50.000
Thank you so much.

00:50.000 --> 00:52.000
Okay, I think that would be better.

00:52.000 --> 00:55.000
Great.

00:55.000 --> 00:58.000
But first of all, I want to introduce myself,

00:58.000 --> 01:01.000
and the software that I'm going to talk about.

01:01.000 --> 01:03.000
So, my name is Robert Fogel.

01:03.000 --> 01:06.000
I'm a software developer at the Halibald company,

01:06.000 --> 01:09.000
since 15 years now,

01:09.000 --> 01:14.000
and we develop a media week heat distribution.

01:14.000 --> 01:16.000
So, that is, I think,

01:16.000 --> 01:19.000
very different to many other open source projects

01:19.000 --> 01:21.000
that we have seen today.

01:21.000 --> 01:27.000
So, we're not developing the whole set of code

01:27.000 --> 01:29.000
in this application,

01:29.000 --> 01:33.000
but basically, we're distributors of an existing software,

01:33.000 --> 01:36.000
and the media week is software,

01:36.000 --> 01:38.000
and we extend this software,

01:38.000 --> 01:40.000
we add a different functionality,

01:40.000 --> 01:42.000
we adapt it to use cases,

01:42.000 --> 01:45.000
especially from the business world.

01:45.000 --> 01:54.000
And this is what I'm going to talk about today,

01:54.000 --> 02:00.000
that is the media weeky portion,

02:00.000 --> 02:01.000
basically.

02:01.000 --> 02:06.000
So, as I said, we're just building up on that.

02:06.000 --> 02:08.000
We're bundling it, and distributing it.

02:08.000 --> 02:12.000
And media weeky is a very famous project,

02:12.000 --> 02:15.000
I believe most of you probably heard of it.

02:15.000 --> 02:18.000
It empowers the Wikipedia project,

02:18.000 --> 02:22.000
and is also widely used in third-party,

02:22.000 --> 02:25.000
yeah, in wyamands, in organizational,

02:25.000 --> 02:28.000
organizations of different types.

02:29.000 --> 02:33.000
And obviously, the most important part of

02:33.000 --> 02:36.000
a weeky is the wiki content,

02:36.000 --> 02:39.000
and the wiki page editing.

02:39.000 --> 02:46.000
And as many other wiki,

02:46.000 --> 02:49.000
media wiki also uses special,

02:49.000 --> 02:52.000
special word version of content,

02:52.000 --> 02:55.000
or special type of content that is so called wiki text.

02:56.000 --> 03:01.000
Wiki text is a plain text mark language,

03:01.000 --> 03:04.000
just like mark down, for example,

03:04.000 --> 03:07.000
or other wiki text, yeah,

03:07.000 --> 03:09.000
variance that you might know.

03:09.000 --> 03:13.000
And now there's many people on that much

03:13.000 --> 03:18.000
into using plain text, wiki text anymore.

03:18.000 --> 03:22.000
So, the demand for wiki editing arose,

03:23.000 --> 03:25.000
many years ago already,

03:25.000 --> 03:27.000
and in that context,

03:27.000 --> 03:29.000
the wiki media community,

03:29.000 --> 03:31.000
the wiki media foundation,

03:31.000 --> 03:35.000
decided to implement visual editor.

03:35.000 --> 03:38.000
And unlike many things that we've seen today,

03:38.000 --> 03:41.000
they did not decide to use

03:41.000 --> 03:42.000
an existing solution,

03:42.000 --> 03:45.000
like CK editor or whereas others,

03:45.000 --> 03:47.000
that are around,

03:47.000 --> 03:50.000
but to implement their own solution.

03:51.000 --> 03:54.000
And this solution is called visual editor.

03:54.000 --> 03:57.000
Now, visual editor comes,

03:57.000 --> 03:59.000
it's a little bit,

03:59.000 --> 04:01.000
it's ambitious.

04:01.000 --> 04:06.000
So, there are two types of visual editor,

04:06.000 --> 04:08.000
basically, if you read about it,

04:08.000 --> 04:10.000
in a context of wiki media or media wiki.

04:10.000 --> 04:11.000
First of all,

04:11.000 --> 04:14.000
visual editor is just a regular HTML editor,

04:14.000 --> 04:18.000
as you know it from other implementations.

04:19.000 --> 04:22.000
Runs completely in JavaScript in the browser,

04:22.000 --> 04:24.000
just as all the other ones.

04:24.000 --> 04:26.000
But then, on the other hand,

04:26.000 --> 04:29.000
there is the media wiki visual editor extension,

04:29.000 --> 04:32.000
which is nowadays a core extension,

04:32.000 --> 04:37.000
so it's delivered together with the media wiki core.

04:37.000 --> 04:45.000
And it basically builds up on the standalone version of wiki editor,

04:45.000 --> 04:49.000
and as a little editor standalone,

04:49.000 --> 04:52.000
it definitely can only edit HTML.

04:52.000 --> 05:00.000
There needs to be some code that transfers wiki text

05:00.000 --> 05:04.000
from plain text wiki text into HTML,

05:04.000 --> 05:05.000
and vice versa.

05:05.000 --> 05:06.000
And the other way around,

05:06.000 --> 05:10.000
so we can properly store it in wiki page again.

05:10.000 --> 05:11.000
And for that,

05:11.000 --> 05:14.000
there's a service that is called parsoid,

05:14.000 --> 05:16.000
which I will not go into detail here,

05:16.000 --> 05:21.000
because it's not really important for the use case of,

05:21.000 --> 05:25.000
yeah, of simultaneously editing,

05:25.000 --> 05:29.000
but that's the basics here.

05:29.000 --> 05:34.000
So, media wiki itself needs wiki text for storing,

05:34.000 --> 05:36.000
for comparing, for working with,

05:36.000 --> 05:40.000
but visual editor needs HTML for,

05:41.000 --> 05:45.000
yeah, for modifications for the modifications to that content.

05:45.000 --> 05:51.000
And when they started with the visual editor implementation,

05:51.000 --> 05:53.000
many years ago,

05:53.000 --> 05:56.000
they very quickly,

05:56.000 --> 06:01.000
the media foundation very quickly realized that there's a chance

06:01.000 --> 06:06.000
of implementing a real-time collaboration editing functionality,

06:06.000 --> 06:11.000
and that is due to the way visual editor handles,

06:11.000 --> 06:14.000
the handles changes,

06:14.000 --> 06:16.000
basically handles the document and handles changes,

06:16.000 --> 06:20.000
I will go into more detail here.

06:20.000 --> 06:24.000
That was back in 2011 as you can see.

06:24.000 --> 06:28.000
It was also the time where Google Docs already was a thing,

06:28.000 --> 06:32.000
and Etherpad came up, so, yeah.

06:33.000 --> 06:37.000
They put in some effort into that,

06:37.000 --> 06:40.000
and they actually developed a back-end component,

06:40.000 --> 06:43.000
the server component, and a front-end integration,

06:43.000 --> 06:46.000
but it was never went into production,

06:46.000 --> 06:50.000
on any wiki media project on any wiki,

06:50.000 --> 06:53.000
it was just for testing purposes, basically.

06:53.000 --> 06:57.000
The main reasons for that were that,

06:57.000 --> 07:01.000
they were concerns from the community,

07:01.000 --> 07:03.000
from the wiki PD community,

07:03.000 --> 07:06.000
especially regarding contributor attribution.

07:06.000 --> 07:09.000
So, basically, if they are multiple people,

07:09.000 --> 07:12.000
editing a wiki page at once, and you save that,

07:12.000 --> 07:15.000
the wiki can only store one revision of the change,

07:15.000 --> 07:19.000
and two should then be attributed as the author of that change, for example,

07:19.000 --> 07:23.000
and that was subject to discussions in the community,

07:23.000 --> 07:25.000
and in the end,

07:26.000 --> 07:30.000
there was a second approach, as you can see here around 2017,

07:30.000 --> 07:35.000
to restart this, but in the end,

07:35.000 --> 07:38.000
they basically abandoned this code,

07:38.000 --> 07:41.000
and it set there for some time.

07:41.000 --> 07:44.000
And yeah, then we came around that,

07:44.000 --> 07:48.000
and we did some analog, some tests with that code,

07:48.000 --> 07:52.000
and we decided that it was really worth looking into that,

07:52.000 --> 07:55.000
and adopting that code,

07:55.000 --> 07:58.000
and we did.

07:58.000 --> 08:09.000
So, what are the things that are required for setting up

08:09.000 --> 08:13.000
such a kind of collaborative editing in the wiki context?

08:13.000 --> 08:16.000
This is the set back and part,

08:16.000 --> 08:18.000
it's called rebaser,

08:18.000 --> 08:22.000
and this context.

08:22.000 --> 08:26.000
Basically, it consists of two parts, a server application,

08:26.000 --> 08:29.000
which was originally written in Node.js,

08:29.000 --> 08:31.000
so that JavaScript application,

08:31.000 --> 08:33.000
and the client integration,

08:33.000 --> 08:38.000
which still lives in the wiki editor code,

08:38.000 --> 08:41.000
unchanged, since basically 2019.

08:41.000 --> 08:46.000
And the second part that is really important for that,

08:46.000 --> 08:49.000
is this so-called linear model or linear data model,

08:49.000 --> 08:51.000
and it turns out to transaction.

08:51.000 --> 08:57.000
Because this is what actually enables this kind of functionality,

08:57.000 --> 09:02.000
the way the visual editor represents the data,

09:02.000 --> 09:07.000
the HTML data, and the way it interacts with it using transactions.

09:07.000 --> 09:09.000
And this linear data model,

09:09.000 --> 09:13.000
I want to spend a little bit of time on it,

09:13.000 --> 09:15.000
so what does this mean?

09:15.000 --> 09:19.000
What does linear model mean in this context?

09:19.000 --> 09:22.000
So, this is a regular HTML,

09:22.000 --> 09:25.000
everybody recognizes that it's very simple.

09:25.000 --> 09:27.000
Actually, it is a wiki text,

09:27.000 --> 09:29.000
it's, I have mixed this example,

09:29.000 --> 09:31.000
it's a regular HTML, the span element,

09:31.000 --> 09:34.000
but you can also see those similar quotes

09:34.000 --> 09:37.000
surrounding the words hello and what,

09:37.000 --> 09:40.000
which is, in this case,

09:41.000 --> 09:44.000
wiki text.

09:44.000 --> 09:49.000
And now let's see how the visual editor itself represents

09:49.000 --> 09:54.000
this kind of content.

09:54.000 --> 09:56.000
I have drunkered a lot of things,

09:56.000 --> 09:59.000
because otherwise it would be not very readable,

09:59.000 --> 10:05.000
but what I want to show here is that it basically splits up

10:05.000 --> 10:09.000
the whole content of a page in a linear way,

10:09.000 --> 10:12.000
basically character by character,

10:12.000 --> 10:14.000
or section by section,

10:14.000 --> 10:16.000
it will add,

10:16.000 --> 10:18.000
it will split this up,

10:18.000 --> 10:20.000
and it will annotate those things,

10:20.000 --> 10:22.000
which we can see very easily here,

10:22.000 --> 10:25.000
though, so the second pair of brackets here,

10:25.000 --> 10:27.000
that is the annotation,

10:27.000 --> 10:30.000
which basically tells what kind of formatting

10:30.000 --> 10:35.000
is applied to this particular part of the content.

10:36.000 --> 10:38.000
Here on the other side,

10:38.000 --> 10:42.000
I've shown the various things like bold span

10:42.000 --> 10:44.000
and the telek, this is what it wants,

10:44.000 --> 10:49.000
that we saw in the previous slide.

10:49.000 --> 10:51.000
So,

10:51.000 --> 10:54.000
and the next part of this,

10:54.000 --> 10:57.000
of this process is now the transaction,

10:57.000 --> 10:59.000
so every time somebody changes something,

10:59.000 --> 11:02.000
somebody selects something,

11:03.000 --> 11:06.000
a transaction is created,

11:06.000 --> 11:11.000
and the change is first applied to the linear model,

11:11.000 --> 11:15.000
and then the linear model will be synchronized

11:15.000 --> 11:19.000
with the view in the HTML,

11:19.000 --> 11:23.000
basically what the editor shows to the user, to the end user.

11:25.000 --> 11:27.000
Transactions,

11:27.000 --> 11:31.000
obviously, like, basically, many,

11:31.000 --> 11:34.000
most transactions are atomic,

11:34.000 --> 11:37.000
and they can be undone, basically.

11:37.000 --> 11:41.000
Here you can see this is an example for deleting,

11:41.000 --> 11:46.000
sorry, for inserting some character in this case,

11:46.000 --> 11:48.000
I believe.

11:48.000 --> 11:50.000
Next to the actual transaction,

11:50.000 --> 11:54.000
there's a lot of other things that go with the change,

11:55.000 --> 11:56.000
that is,

11:56.000 --> 11:58.000
there are stores and selection information,

11:58.000 --> 12:00.000
which I did not put in here,

12:00.000 --> 12:03.000
because it's not that important for this example.

12:03.000 --> 12:06.000
It's just so you know that,

12:06.000 --> 12:09.000
for sharing, basically,

12:09.000 --> 12:12.000
which part of the document are selected,

12:12.000 --> 12:14.000
or what the cursor is,

12:14.000 --> 12:19.000
you also need to have this inside of a change object.

12:20.000 --> 12:23.000
Also, there is the stores,

12:23.000 --> 12:26.000
the stores are very important for anything that is,

12:26.000 --> 12:27.000
let's say,

12:27.000 --> 12:29.000
not part of the actual document,

12:29.000 --> 12:31.000
but some external resource.

12:31.000 --> 12:33.000
For example,

12:33.000 --> 12:35.000
the,

12:35.000 --> 12:38.000
for example, templates,

12:38.000 --> 12:39.000
templates the way,

12:39.000 --> 12:40.000
and in a way,

12:40.000 --> 12:42.000
to include content from other pages,

12:42.000 --> 12:44.000
these are indoor stores,

12:44.000 --> 12:47.000
and they need to also be transferred,

12:47.000 --> 12:50.000
at least the information about it needs to be transferred,

12:50.000 --> 12:53.000
in a proper way.

12:53.000 --> 12:55.000
So, as I said,

12:55.000 --> 12:57.000
there is this rebase backend,

12:57.000 --> 12:59.000
there's this rebase client,

12:59.000 --> 13:03.000
and the rebase client runs inside of the wheel editor,

13:03.000 --> 13:05.000
extension,

13:05.000 --> 13:08.000
and to,

13:08.000 --> 13:12.000
yeah, make things work,

13:12.000 --> 13:15.000
basically, on every key,

13:15.000 --> 13:16.000
the first of all,

13:16.000 --> 13:19.000
we established a web-socket connection

13:19.000 --> 13:21.000
to the backend,

13:21.000 --> 13:23.000
and then on every keystroke,

13:23.000 --> 13:24.000
the change,

13:24.000 --> 13:25.000
including the transactions,

13:25.000 --> 13:27.000
is transferred to the server,

13:27.000 --> 13:28.000
and here,

13:28.000 --> 13:30.000
some magic needs to happen,

13:30.000 --> 13:34.000
because we cannot just send out the same change

13:34.000 --> 13:36.000
to all the other documents,

13:36.000 --> 13:39.000
but you need to rebase it,

13:39.000 --> 13:40.000
basically,

13:40.000 --> 13:42.000
because in the meantime,

13:42.000 --> 13:44.000
due to concurrency,

13:44.000 --> 13:45.000
things may have changed.

13:45.000 --> 13:46.000
So,

13:46.000 --> 13:49.000
it's not just a distribution mechanism,

13:49.000 --> 13:52.000
where one change arrives at the server,

13:52.000 --> 13:54.000
and then it's being sent out to the client,

13:54.000 --> 13:59.000
but there's also some rebasing being done on the server side,

13:59.000 --> 14:02.000
and so that the change arrives

14:02.000 --> 14:04.000
in a proper,

14:04.000 --> 14:06.000
in a proper place,

14:06.000 --> 14:07.000
basically,

14:07.000 --> 14:09.000
of the document.

14:09.000 --> 14:13.000
Also, the server stores a whole history of the document,

14:13.000 --> 14:16.000
so whenever a new client joins the session,

14:16.000 --> 14:19.000
this entire document can be loaded

14:19.000 --> 14:23.000
for directly from the rebase of server.

14:23.000 --> 14:26.000
Okay,

14:26.000 --> 14:28.000
and yeah,

14:28.000 --> 14:29.000
that's time,

14:29.000 --> 14:30.000
not some for a little demo,

14:30.000 --> 14:32.000
it's not super exciting,

14:32.000 --> 14:33.000
I believe,

14:33.000 --> 14:36.000
but it should still want to show it to you.

14:37.000 --> 14:41.000
So,

14:41.000 --> 14:42.000
let's see,

14:42.000 --> 14:49.000
I've hit two browsers open with two different users,

14:49.000 --> 14:51.000
logged in,

14:51.000 --> 14:55.000
and currently we have,

14:55.000 --> 14:57.000
as well,

14:57.000 --> 14:58.000
yeah,

14:58.000 --> 15:01.000
as this feature is pretty new to a blue spot,

15:01.000 --> 15:04.000
about half a year,

15:05.000 --> 15:07.000
maybe in production.

15:07.000 --> 15:11.000
We still have a dedicated button for edit together,

15:11.000 --> 15:12.000
we call it that way,

15:12.000 --> 15:15.000
it's a nice sort of term that collaborative editing,

15:15.000 --> 15:16.000
a real-time editing,

15:16.000 --> 15:18.000
add it connected together,

15:18.000 --> 15:23.000
which basically starts this change,

15:23.000 --> 15:25.000
and I can now,

15:25.000 --> 15:29.000
in white people,

15:29.000 --> 15:31.000
like, for example,

15:31.000 --> 15:33.000
this other user here,

15:34.000 --> 15:37.000
and yeah,

15:37.000 --> 15:38.000
in this case,

15:38.000 --> 15:43.000
we get a notification about entering the,

15:43.000 --> 15:46.000
entering the,

15:46.000 --> 15:48.000
a collaborative,

15:48.000 --> 15:50.000
collaborative editing mode,

15:50.000 --> 15:51.000
and here we go.

15:51.000 --> 15:52.000
So,

15:56.000 --> 15:58.000
we had to do,

15:58.000 --> 16:02.000
with a couple of design decisions here,

16:02.000 --> 16:05.000
which were different from the original implementation.

16:05.000 --> 16:07.000
The original implementation,

16:07.000 --> 16:08.000
for example,

16:08.000 --> 16:11.000
was not even integrated into a regular wiki page,

16:11.000 --> 16:12.000
as we see here,

16:12.000 --> 16:15.000
as a mode of editing,

16:15.000 --> 16:19.000
but it was a standalone page on the wiki,

16:19.000 --> 16:22.000
where people could just enter very similar to what you know from,

16:22.000 --> 16:23.000
either path for example,

16:23.000 --> 16:25.000
then people could,

16:25.000 --> 16:27.000
could type something,

16:27.000 --> 16:28.000
could collaborate on that,

16:28.000 --> 16:31.000
and then they could export it and save it to some,

16:32.000 --> 16:33.000
some page.

16:33.000 --> 16:35.000
We have integrated it as a,

16:35.000 --> 16:36.000
as a full,

16:36.000 --> 16:37.000
flat,

16:37.000 --> 16:38.000
and well it,

16:40.000 --> 16:41.000
edit mode,

16:41.000 --> 16:43.000
can save that.

16:43.000 --> 16:45.000
If I'm saving a page,

16:45.000 --> 16:46.000
I can't,

16:46.000 --> 16:48.000
I'm not,

16:48.000 --> 16:50.000
not necessarily leaving the page.

16:50.000 --> 16:52.000
There will be a revision created in the background,

16:52.000 --> 16:54.000
but it doesn't mean that I need to leave the,

16:54.000 --> 16:55.000
to leave the edit mode.

16:55.000 --> 16:57.000
I can even leave,

16:57.000 --> 17:00.000
collaborative editing sessions,

17:00.000 --> 17:02.000
so I don't,

17:02.000 --> 17:04.000
there's no need to save it.

17:04.000 --> 17:05.000
Obviously,

17:05.000 --> 17:09.000
it's only going to be persisted into the wiki's revision,

17:09.000 --> 17:11.000
store once people's safe,

17:11.000 --> 17:14.000
but you can use that as a draft mechanism as well.

17:14.000 --> 17:17.000
So let's see if I just,

17:17.000 --> 17:19.000
if I just leave that now,

17:19.000 --> 17:21.000
okay,

17:21.000 --> 17:22.000
okay,

17:22.000 --> 17:24.000
the session is ended,

17:24.000 --> 17:27.000
and now we should see a,

17:27.000 --> 17:29.000
in the history,

17:29.000 --> 17:31.000
which you see both the users,

17:31.000 --> 17:34.000
as contributors here.

17:34.000 --> 17:35.000
Again,

17:35.000 --> 17:36.000
this is,

17:36.000 --> 17:38.000
this is the way we implemented it in blue spies,

17:38.000 --> 17:40.000
in the order of the media wiki implementation.

17:40.000 --> 17:42.000
This was very different,

17:42.000 --> 17:46.000
and let's go back to,

17:46.000 --> 17:48.000
the slides.

17:48.000 --> 17:52.000
Uh,

17:52.000 --> 17:53.000
I've heard,

17:53.000 --> 17:55.000
but before we come to the,

17:55.000 --> 17:57.000
to the future plans that we have,

17:58.000 --> 18:00.000
quick,

18:00.000 --> 18:02.000
quick information for you.

18:02.000 --> 18:04.000
If you're interested in that,

18:04.000 --> 18:07.000
so we have published this as a,

18:07.000 --> 18:10.000
as a standalone media wiki extension.

18:10.000 --> 18:15.000
It's not in any way bound to blue spies as a distribution,

18:15.000 --> 18:18.000
but it is included in blue spies.

18:18.000 --> 18:20.000
And,

18:20.000 --> 18:21.000
there,

18:21.000 --> 18:22.000
we are,

18:22.000 --> 18:23.000
we are,

18:23.000 --> 18:26.000
doing regular releases on that.

18:27.000 --> 18:29.000
Using regular pet level releases,

18:29.000 --> 18:32.000
we are bound to the long term support,

18:32.000 --> 18:33.000
uh,

18:33.000 --> 18:34.000
version of media wiki,

18:34.000 --> 18:35.000
that's a,

18:35.000 --> 18:37.000
specialty of media wiki,

18:37.000 --> 18:40.000
actually the way they release.

18:40.000 --> 18:41.000
Um,

18:41.000 --> 18:42.000
and also to,

18:42.000 --> 18:46.000
to ease the setup of this whole thing.

18:46.000 --> 18:47.000
Um,

18:47.000 --> 18:48.000
we provide a,

18:48.000 --> 18:49.000
a localized,

18:49.000 --> 18:50.000
a container image,

18:50.000 --> 18:51.000
basically,

18:51.000 --> 18:52.000
for,

18:52.000 --> 18:53.000
um,

18:53.000 --> 18:54.000
that makes it easy to,

18:54.000 --> 18:55.000
to start up,

18:55.000 --> 18:56.000
um,

18:56.000 --> 18:58.000
and operate the rebase of back end.

18:58.000 --> 18:59.000
So yeah,

18:59.000 --> 19:00.000
setup is,

19:00.000 --> 19:01.000
fairly easy,

19:01.000 --> 19:02.000
actually.

19:04.000 --> 19:05.000
Um,

19:05.000 --> 19:07.000
let's move on to,

19:07.000 --> 19:08.000
uh,

19:08.000 --> 19:09.000
what you plan in the future.

19:09.000 --> 19:10.000
Um,

19:10.000 --> 19:12.000
I somehow,

19:12.000 --> 19:13.000
set this already currently,

19:13.000 --> 19:14.000
it is,

19:14.000 --> 19:15.000
um,

19:15.000 --> 19:18.000
an optional way of editing wiki pages,

19:18.000 --> 19:19.000
that you need to,

19:19.000 --> 19:20.000
uh,

19:20.000 --> 19:22.000
pick from a list of other options.

19:22.000 --> 19:23.000
Um,

19:23.000 --> 19:25.000
we want to make this the,

19:25.000 --> 19:26.000
um,

19:26.000 --> 19:28.000
the main way of editing stuff,

19:28.000 --> 19:29.000
uh,

19:29.000 --> 19:30.000
editing pages,

19:30.000 --> 19:31.000
and,

19:31.000 --> 19:32.000
um,

19:32.000 --> 19:33.000
obviously there are still some,

19:33.000 --> 19:36.000
some things that need to be optimized,

19:36.000 --> 19:37.000
um,

19:37.000 --> 19:38.000
um,

19:38.000 --> 19:39.000
even after,

19:39.000 --> 19:40.000
um,

19:40.000 --> 19:42.000
um,

19:42.000 --> 19:43.000
a lot of things that,

19:43.000 --> 19:45.000
that can be added for managing,

19:45.000 --> 19:46.000
for example,

19:46.000 --> 19:47.000
um,

19:47.000 --> 19:48.000
about orphan sessions,

19:48.000 --> 19:49.000
um,

19:49.000 --> 19:50.000
and especially,

19:50.000 --> 19:51.000
um,

19:51.000 --> 19:52.000
the backup restore,

19:52.000 --> 19:53.000
um,

19:53.000 --> 19:54.000
are things that,

19:54.000 --> 19:55.000
at the moment,

19:55.000 --> 19:56.000
back and be done,

19:56.000 --> 19:57.000
um,

19:57.000 --> 19:58.000
but it's,

19:58.000 --> 19:59.000
um,

19:59.000 --> 20:00.000
more difficult than it should be.

20:00.000 --> 20:01.000
And,

20:01.000 --> 20:02.000
especially,

20:02.000 --> 20:03.000
this is especially important because,

20:03.000 --> 20:04.000
as I said,

20:04.000 --> 20:06.000
as you can leave the session at any time,

20:06.000 --> 20:08.000
and you can use this mechanism for,

20:08.000 --> 20:09.000
uh,

20:09.000 --> 20:10.000
drafting,

20:10.000 --> 20:11.000
um,

20:11.000 --> 20:12.000
wiki pages.

20:12.000 --> 20:13.000
Um,

20:13.000 --> 20:14.000
those session,

20:14.000 --> 20:15.000
uh,

20:15.000 --> 20:18.000
uh,

20:18.000 --> 20:20.000
just those collaborative session data.

20:20.000 --> 20:21.000
Um,

20:21.000 --> 20:22.000
like,

20:22.000 --> 20:23.000
properly,

20:23.000 --> 20:24.000
and we need to make sure that they,

20:24.000 --> 20:25.000
they're not, um,

20:25.000 --> 20:27.000
getting lost in any way.

20:27.000 --> 20:28.000
Yeah,

20:28.000 --> 20:29.000
and I think that's it.

20:29.000 --> 20:30.000
Um,

20:30.000 --> 20:31.000
um,

20:31.000 --> 20:32.000
I have,

20:32.000 --> 20:33.000
on this slide,

20:33.000 --> 20:34.000
on the last page,

20:34.000 --> 20:35.000
I have also some resources that you can look up.

20:35.000 --> 20:36.000
Um,

20:36.000 --> 20:37.000
I will share this slide,

20:37.000 --> 20:38.000
later on,

20:38.000 --> 20:39.000
on the website.

20:39.000 --> 20:40.000
And, yeah,

20:40.000 --> 20:41.000
thank you very much.

20:41.000 --> 20:43.000
Thank you.

20:43.000 --> 20:45.000
Thank you.

20:45.000 --> 20:46.000
Thank you.

20:47.000 --> 20:49.000
Okay.

20:49.000 --> 21:06.000
So the question was,

21:06.000 --> 21:07.000
um,

21:07.000 --> 21:08.000
whether it's possible to see,

21:08.000 --> 21:11.000
precisely which changes a user,

21:11.000 --> 21:12.000
uh,

21:12.000 --> 21:14.000
applied during the session,

21:14.000 --> 21:15.000
after saving the page.

21:15.000 --> 21:22.760
No, that is not possible and it is also not desirable because the WikiTex is a plain text

21:22.760 --> 21:30.800
markup language that if you marked up everything that the user typed which is theoretically

21:30.800 --> 21:38.000
possible, you would pretty much mess up this WikiTex which makes comparing the WikiTex much

21:38.240 --> 21:48.240
difficult in the long run so we don't do that. We store who was part of that session

21:48.240 --> 21:53.360
but we do not store who actually contributed with the part because to be honest it doesn't

21:53.360 --> 22:02.000
really tell much so people might just fix typos or something like that and this is really not

22:02.000 --> 22:05.000
so useful information I believe.

22:32.000 --> 22:39.000
So the question was how do we deal with selecting changes basically?

22:39.000 --> 22:42.000
Yeah.

22:42.000 --> 22:55.000
Okay so how do we deal with the position of the character in the document during the edit?

22:55.000 --> 23:00.000
To be honest I cannot really answer this question at the moment I would need to look it up.

23:00.000 --> 23:10.000
I think it is part of the selections field but I'm not entirely sure how this is handled

23:10.000 --> 23:14.000
in the rebase logic kind of tell.

23:14.000 --> 23:23.600
By the way this is a very nice example of why open source is so important so this was a longer

23:23.600 --> 23:30.600
abandoned code since years it was not looked after anymore not maintained but as it was

23:30.600 --> 23:45.600
it was open source it was easy for us to pick up to learn from that and to bring it to life again which is great thing.

23:53.600 --> 24:00.600
Thank you very much.

