Quo vadis, LibreOffice extensions?
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 561 | |
Author | ||
License | CC Attribution 2.0 Belgium: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/44503 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
FOSDEM 2019375 / 561
1
9
10
15
18
19
23
24
27
29
31
33
34
35
38
39
40
43
47
49
52
53
54
55
58
59
60
63
65
67
69
70
78
80
82
87
93
95
97
102
103
104
107
110
111
114
116
118
120
122
123
126
127
131
133
136
137
139
141
142
148
153
155
157
159
163
164
168
169
170
171
172
173
174
181
183
185
187
188
193
196
197
198
199
200
201
205
207
208
209
211
213
214
218
221
223
224
226
230
232
234
235
236
244
248
250
251
252
253
255
256
257
262
263
264
268
269
271
274
275
276
278
280
281
283
284
288
289
290
293
294
296
297
300
301
304
309
311
312
313
314
315
317
318
321
322
327
332
333
334
335
336
337
338
339
340
343
345
346
352
353
355
356
357
359
360
362
369
370
373
374
375
376
377
378
383
384
387
388
389
390
391
393
394
395
396
406
408
409
412
413
414
415
419
420
425
426
431
432
433
434
435
436
438
439
440
441
445
446
447
448
453
455
457
459
466
467
471
473
474
475
476
479
480
484
485
486
489
491
492
496
499
500
502
505
507
508
512
515
517
518
529
531
533
534
535
536
539
540
546
550
551
552
553
554
555
557
558
559
560
561
00:00
Kummer-TheorieOffice suitePerspective (visual)Software developerMacro (computer science)Plane (geometry)Slide ruleNumberComputer configurationSensitivity analysisRight angleField extensionReal numberElectronic mailing listSet (mathematics)Link (knot theory)Error messagePoint (geometry)Macro (computer science)Menu (computing)Canadian Mathematical SocietyCodeInformationFlow separationTerm (mathematics)Computing platformMessage passingSheaf (mathematics)Projective planeSystem administratorComputer fileMedical imagingField (computer science)WebsiteWeb pageSoftware developerReading (process)Kummer-TheorieOffice suiteSource codeFeedbackAsynchronous Transfer ModeGreatest elementoutputTouchscreenBitHome pageCursor (computers)Proper mapEmailProcess (computing)Green's functionMereologyDescriptive statisticsGeneric programmingExecution unitComputer fontView (database)Computer animationXML
07:59
Plane (geometry)Field extensionOpen setCollaborationismService (economics)Perspective (visual)Computer fontMacro (computer science)Task (computing)Software maintenanceField extensionError messageInformationProjective planeCartesian coordinate systemWebsiteLoginOnline helpComputer fileSoftware testingWeb pageHypermediaOpen sourceMultiplication signCategory of beingMenu (computing)Office suiteOpen setRight anglePresentation of a groupFile formatMereologyMorley's categoricity theoremFeedbackPhysical systemMobile appShared memoryType theoryProcess (computing)CollaborationismPosition operatorDifferent (Kate Ryan album)Computer fontoutputCASE <Informatik>Combinational logicStructural loadArchaeological field surveyLatent heatTouchscreenPoint (geometry)Revision controlNumberComputing platformService (economics)VideoconferencingSet (mathematics)Descriptive statisticsComputer architectureSlide rulePerspective (visual)PlanningSoftware maintenanceINTEGRALLimit (category theory)Letterpress printingClient (computing)Program flowchart
15:52
Perspective (visual)Template (C++)Formal languageContent (media)Numbering schemeMenu (computing)Keyboard shortcutConfiguration spaceMacro (computer science)Computer iconAreaTable (information)LaptopCodeProduct (business)Core dumpFocus (optics)UsabilityInterface (computing)Slide ruleRead-only memoryComputer-generated imagerySmith chartType theoryPhysical systemStructural loadField extensionMacro (computer science)Data dictionaryConnected spaceCartesian coordinate systemInformation privacyElement (mathematics)WindowKeyboard shortcutComputer iconPoint (geometry)Formal languageScaling (geometry)Computing platformGraph coloringMathematicsMenu (computing)Configuration spaceCategory of beingElectronic mailing listFilter <Stochastik>Computer programmingInteractive televisionAdditionPerturbation theoryInstance (computer science)Internet service providerLocal ringOnline helpCore dumpMobile appSlide ruleTerm (mathematics)UsabilityHash functionComputer fontObject (grammar)Ferry CorstenExpert systemNumbering schemeCASE <Informatik>Revision controlTemplate (C++)Arithmetic meanContent (media)LaptopCodeFunctional (mathematics)Closed setWeb pageProduct (business)Software developerComputer fileFlow separationInformation securityOpen sourceDifferent (Kate Ryan album)Computer animation
23:45
Arithmetic progressionWebsiteComputer configurationExistenceField extensionComputer animation
24:11
Computer animation
Transcript: English(auto-generated)
00:05
I prepared a number of slides with a lot of pictures and I think I have to go quite quickly through it. The idea for the talk was to give you an idea, an impression how our extension website
00:22
works today and where we can move to in the future. It is one example, one option out of a couple and that's the basic idea. We have two views to the extension. One is from the people who upload an extension to the site, the other is for people who download
00:42
and the first part is about the developers, the uploader of an extension and there we have also two separate kind of users. One is the average person or personas if here in this term who uploads simple stuff. Let's say a gallery item.
01:00
Gallery is just images and we have more difficult stuff or more sensitive things like macros or real code. Two options here which are not so relevant for this part but you will see later that I have a particular view on it.
01:22
Plone is our CMS for the extension site and it starts with this page and when you click on log in you get this dialogue which is not SSO compatible so you need a different account. After logging in you face this site and it has just a dark sidebar which is a little
01:43
bit weird. How do you continue? Any idea? No, it is here. There is upload a new extension below this section that is a list of my extension that I uploaded before I can open it via links. Our design is not optimal in this regard because we show links as green text, green
02:05
font, just green font without underlining. Okay, after clicking on new extension you get a page at extension project. You get a title, probably you cannot read it, a title, a short description, a long description
02:22
and below you get a number of options for what module it can work. You get also an email reference and a home page and you can enter and you have to enter
02:42
some more data that are more or less relevant for you to create the extension. After pressing save at the bottom you get this screen and now the sidebar is filled. Is the extension online? It is not.
03:01
The point here is that you create a project and not you don't upload an extension. It is a very special workflow that users likely do not expect and many people who I talk to do not understand the workflow including me. It took me years to understand it.
03:23
Okay, what do I have to do now? You get at the sidebar, I cannot read it myself, a couple of options that are also not self-explaining. Let's ignore the info, the blue info section here and go to the first option. This is some apparently editing feature.
03:41
Here you get additional information to the project that you created including a delete button. It is not what we want. So the second part is edit extension project, no. Next one, it is a submenu where you can create a linked release.
04:05
This is, it looks not that bad but a linked release is also not what you want because it is not the release, it is the actual extension file that goes into an extension project and when you link it you don't upload that file to our site.
04:22
So what you actually are looking for is the extension release. That is the next point on the submenu on the sidebar, add extension release. It gives you again a lot of options to input. It's not optional, it's a mandatory input.
04:41
You have to enter the name of the extension again. You have again to enter some description and when you scroll down you get more. You have a number of, in this part where the cursor is, a number of possible licenses
05:01
and you have to check it what license the extension is released under. Below you get all the LibreOffice releases and you have to check the releases where your extension is working because extension might not work in all older releases or are
05:24
not compatible with a new one. If you scroll down you get a large disclaimer and you get more input fields and including a field where the source code is. In our page if you don't include the source code you have to add a reference to it.
05:46
I think we can come later to it. And the last point is about the platform where this extension works. So you press save and here is a little bit of feedback. If you do a mistake, if you don't enter a certain information you get a little bit
06:05
feedback but hard to read. It is not again not really self-explaining. So I added everything and after that I added some file. We can only deal with OXT files. You get again an error.
06:21
It says error. Cannot read it but it's a very generic error message that does not tell you what is wrong. So we have we would have rooms for improvement. When you have done everything, you created the project, you uploaded a file, you understood
06:41
the process then you enter at this page and again there's a green bar and it tells you remember the status of your extension is not in the proper mode. Okay, status. It is in the sidebar. There is again a menu with a lot of options.
07:04
What you have to do, I cannot read, it's true everything. What you have to do is to set it to active or to publish. It is one point here in the list and you send a message to the admin of our site to release the project including the extension and to make it public.
07:25
The admin is responsible for checking it to make sure that the license is set, that the extension is containing all the files that are needed and all this stuff. What you get as a developer is exactly this message.
07:42
You get it from the admin of the developer's extension site. The status has changed and you get it again if it is not accepted. So you do not know why things are not working in a way that you expected. What else do you have? A couple of menus more.
08:02
You can change the project here again. You can change the maintainer, the rights to deal with it. And finally, you can of course also delete it.
08:23
After deleting, the project is still there. So if you not understood so far that a project is not an extension file, then you realize some weird things are ongoing. Actually, going back, I had it on the first slide of this.
08:46
On the side, there's one button, one big red button where you can delete the project itself. So you cannot download the pony hoof anymore. That's for sure. How does it look with open collaboration service?
09:02
It is a website. It has developed for a number of years. It was before Gnome eye candy or the like. I'm not perfectly sure, but it is one website that has extension for different projects, mostly for KDE and Gnome, but also a large number of different sites.
09:29
The project itself is called open collaboration service, but the website is open desktop, so you can take a look at that. From my perspective, it looks like a modern page. You have on the top some kind of login button.
09:47
I wanted to tell you before, it is not necessary to have one site. You can also, one look and feel of the open desktop site, you can also personalize the start site.
10:03
Video Land Client has the add-ons on this page and has created an own start site that looks different to the main page, but it's on the same site. After logging in, you get a screen.
10:21
It works with SSO and you see again the page. You get a menu where you can create a new extension. It starts similarly with the input of the name of your extension with a longer description. You have also some information about small print,
10:48
let's say the license and some categorization information. You get logos there. I uploaded the same logo here, and you can finally add some social media references for your project.
11:05
After saving this, you get to the next step. Or in this case, I missed the point to categorize the pony hoof and you get an error message quite close to what we did. Categorization is done in the standard format.
11:21
You go to let's say apps office and liberal office maybe. When you have done everything, then you need to upload the files and this platform has a cool feature of the git integration, which means an extension project could have all the fancy stuff which git offers.
11:46
I didn't do it here. I stepped over and said I want to upload a file. This is how file uploading works. You say you load the file to the platform, then you set up a version number where it works on what system and the architecture.
12:07
That's all. After that, your extension is online. And this is really online, meaning the user can download it. If you have as a contributor, if you want to participate in the project
12:22
you do some design related stuff, some small, not really hard things. You still want your stuff being shown in the project. And actually that's what you want. You want to upload it and immediately get feedback and share these things on social media.
12:43
That's what is working here. There are also some additional really fancy features. The company is called Pling and they give plings for download. I uploaded for testing purpose to one application,
13:02
one extension here to the site and it got downloaded in total by 15 times. So I earned 15 plings which makes it 15 cent US cent that I earned from the company. I can get my salary for the hard work only with one dollar.
13:22
But this is a cool thing. The yellow disclaimer tells you the company is probably stopping this survey at some point. I think when you get a million downloads you don't earn a hundred thousand from the Pling company.
13:41
But the idea is pretty nice to give the people a way to monetize their work. It has also a cool feature that is relevant for the user perspective. User means how do you get the extension, how do you download.
14:02
And typically you have a couple of requests. In this case I listed a theme. Maybe you also want a new font or you want to download the help files. Today you have to go to a certain page. You need to know where the stuff is. You need to download it.
14:22
And in case when it's an extension it is placed at the right position. But not when you do these things with help files or whatever. And it's not possible right now like the personalization themes. If we stick to make the combination with Momet's presentation.
14:45
If we stick to this Mozilla everything remains at Mozilla. But when we consider to dump it and do our own themes. Then themes would be a part of the extension or could be part of this system. So user wants to download it.
15:01
And it is possible. Of course it's possible on both sides. They list it. They have an opportunity to filter things. You can go through the categories. What type of application it is. You can list on this main page only the LibreOffice themes.
15:24
But you can also search for it. Oh miss it. And you can filter all this stuff. That's possible. I think it's pretty much clear how it works. But I wonder if a user really wants to go to some weird website and load it from a website.
15:42
That's actually not true. Let's say you want to use a specific font that's in a process while you edit a document. You create a text and you see OK I do not want to use a serif font. I want something fancy, a monotype font.
16:03
In this case you don't want to exit the application, load a font, put it on the right page, start the application, load the file. No. You want to go within the workflow at the point where the object is being used.
16:21
There you want to load it. And that's what is known from KDE as get hot new stuff. In this case it is some background image or the like. I don't know. But you get these filter pieces of apps. I would call it better not extension but apps.
16:41
It's a nice term. You get the type of additional features here listed. You click on it and you download and you can use it. We can do the same. We can provide similar dialogue. It is a very easy thing to download the extension.
17:00
The let's say the font and whatever we need in the program and put it at the right place. It could be for instance in the properties dialog below the font list. If you see I'm missing a font, it could be written in.
17:22
If you get a document from a Windows user and you don't have the or Mac user, you don't have the Helvetica font, then you can just click on the load font button at the dialog. You get another connection dialog to the extension platform and you download it.
17:43
Developers are concerned about security in that regards. And the nice thing is of this get hot new stuff feature is that it is known from KDE. And you have the flex access platform to put it into this workflow
18:02
or to have it as a separate type of extension. I think we can do it only for, we shouldn't do it for macros. Going back to the first slide when I said we have users who want to contribute with simple design add-ons, those should be integrated very closely in the program.
18:26
But others like macros that are safe to element, maybe privacy relevant that could be excluded from this workflow. What type of extension could be possible?
18:41
So we have right now, we have dictionaries, we have templates, we have language tools. We could also have color schemes. That's what we have today, color schemes, gallery content, clip art. But we could add menu configuration. Why? The design team is continuously trying to improve the menus,
19:04
improvement is not an improvement for many people. And we get a lot of complaints. Where is my function? And we could upload the menu from let's say version 5.4. And the user just loads the menu configuration with one click
19:22
and gets the behavior that is known to him or her. That's true also for shortcuts. We could provide shortcuts, let's say localized shortcuts. You load a shortcut definition for English or for French or for German, Spanish, whatever
19:41
that fits into your system. Makes a lot of sense to me. Icon seams, it is ridiculous that we ship four or five different icon seams. Those have to be placed in some external things. I don't go through the rest of the ideas here.
20:02
The last point, the least in my opinion is macros. With macros, we get some people who are experts in the programming. But most contributors start with simple things. Of course, when I talk about macros, we can also make the application even more
20:22
broad and more lean and let's say exclude all filters from the program and provide only the basic ODT features. But put everything which is a filter, let's say OXML into one extension.
20:43
And you load the filters into the program. That allows to be way more faster in updating the interaction. Of course, it is a big scale change. Why not hard code as stuff? It is pretty clear. We clutter our system with requests.
21:04
Here it is about notebook bars. We have a million requests to change the notebook bar. How should we as a, let's say, QA team or design team deal with a request of one user saying, why do you not include this button in your notebook bar?
21:23
That might make sense. Of course, it is a good request. But in my opinion, we should exclude all these requests from the core system and put it into the design of this particular look and feel layout. The same is true for, what is it, icon themes.
21:41
We have many requests about icons. And this one is about the menu bar. So the point is, QA should focus on the core product. We want to encourage people to contribute. That should be as easy as possible.
22:01
We want to allow crazy ideas. If someone shows up and presents a notebook bar with just three buttons on it and thinks it is a good thing, I have no means to allow him to share it.
22:21
Or I would refuse it, of course. But why not? We have to duplicate stuff. We update, for example, fonts when the liberation font got into a new release recently. So we have to think, or to remember, to update the font from one place,
22:45
copy it to our place, upload to our platform, and create a hash sum and put it into our release. That's not necessary. And finally, I think keeping the code clean is also a good thing.
23:01
And it improves usability, of course, when you get things into the program. If you can download dictionaries and help. And let's say also localization. In the same way, how you deal with everything, it's easy to understand. I don't have to say anything more.
23:23
So it's a funny closing slide. Thank you.
23:41
Eight minutes or seven minutes are left. Five minutes on my watch. So if there's no question. It is work in progress. It is not the only option. We also think in the team about different ways to improve our extension site. It was one few how we could deal with it, one existing.
24:03
And we will see how it turns out in the future. Thank you.