|
|
Subscribe / Log in / New account

Kolibri and GNOME

By Jake Edge
August 10, 2022

GUADEC

Offline computing and learning was something of a theme at GUADEC 2022 as there were multiple talks by people from the Endless OS Foundation, which targets that use case. Dylan McCall and Manuel Quiñones had a talk on day two about a switch that Endless has made over the last few years away from its home-rolled "knowledge apps" to apps based on the Kolibri learning platform. While Endless has its roots in GNOME, and Kolibri runs well in that environment, the switch will allow Endless to reach users who are not running a GNOME desktop.

The talk would be a project update on some of the work Endless has done to bring the value of the internet to those beyond its reach, McCall said. Some of that also came up in two other talks at GUADEC: one on digital autonomy the previous day and another on an Endless OS project in Oaxaca, Mexico the next day, both given by foundation CEO Rob McQueen. McCall said that they wanted to present what Endless is working on now, especially as it relates to how GNOME makes a "really great platform to develop this type of software". He began by introducing himself a bit, he is from Vancouver, Canada and has been with Endless since 2019; Quiñones said that he is from the Litoral region of Argentina and has been with Endless since 2017.

The internet provides lots of benefits, Quiñones said, but there are large numbers of people who cannot access it for a variety of reasons. The Endless solution to that problem is to use storage, which is inexpensive these days, to bridge the gap. A small, cheap USB storage device can hold most of Wikipedia plus additional educational content—and even some entertainment options.

Endless has learned that integration with the operating system is important; "people understand apps". So making apps that work as people expect is needed. "What if they can search in their GNOME desktop in the same way that they 'Google'?" Endless OS has various "knowledge apps" that are well integrated with the desktop. The operating system comes with content from a variety of sources and "many apps", including general-purpose tools like Encyclopedia and more specialized apps depending on the needs of the target users.

But, he asked, "if we have something working, why change it?" The answer is "scale"; in order to reach more people and scale out its efforts, Endless needed to shift gears. The existing apps are great for Flatpak-enabled systems, but in order to reach more people, other types of platforms need to be supported as well. In addition, the development pipeline for creating content apps for Flatpak was expensive to maintain; it made creating the apps easy, "but we want to go farther".

Enter Kolibri

It turns out that Endless is not the only organization trying to solve these problems. Learning Equality, which created the Kolibri open-source, offline-first learning platform, has an overlapping mission. Kolibri comes with a "massive library" of freely licensed content and has tools to add more. It can be used in various kinds of deployments and runs on multiple platforms, including in the web browser.

[Manuel Quiñones]

One of the selling points of switching to a Kolibri-based system is the huge content library. The content is organized into channels, which can contain different types of media, such as books or videos; each channel is organized into different topic areas. Some of the channels are enormous, so all or part of them can be downloaded. There are tools for creating new channels and remixing content from existing channels into new ones as well.

The library has video and audio lectures with subtitles in multiple languages, books in EPUB and PDF format, as well as interactive content. For example, educational games and simulations can be included into channels. Content types are implemented with plugins, so new types can be added easily.

Quiñones then passed the microphone to McCall to describe how Endless would be using this rich content library and tools for developing instructional materials. The server is the other half of Kolibri, he said; it can store various channels that can be accessed from a web browser. The channels can be searched in different ways and all of the content types can then be displayed in the browser.

There are also some e-learning features in the server. Classes can be created and learners can be assigned to them. A teacher can monitor the progress of the learners, and so on. Each instance of the server can connect with other instances to share content, class information, and more. There are some public Kolibri servers out there, including one from Endless and another from Learning Equality.

But nobody really wants to run a web server, McCall said. Luckily, there is a friendlier solution. The Kolibri server itself is a complicated beast, however. It is a "back-end-heavy application", in part because it is designed to be cross-platform; it supports a lot of operating systems and, even, Python 2 for some reason, he said. As part of the collaboration on Kolibri, Endless has been working to make the server more flexible and more straightforward to use on a single-user desktop system.

For an end user who does not want to think about running a web server, there is the Kolibri app for GNOME, which handles all of that stuff in the background. The app is based on WebKitGTK and is distributed as a Flatpak. That means it is available for many different Linux distributions, including, of course, Endless OS.

There are still some problems, however. Most of them stem from the fact that Kolibri is a "really big application". It takes a long time to start and stop it, and it stores a lot of data on the system. The latter is of particular importance to Endless because many of its users share their computers with others. If each user installs Kolibri and a bunch of the same content, there is a lot of wasted space. Since it needs to be a Flatpak, the permissions model does not allow sharing the duplicated content between the users.

In order to address that, Endless created a kolibri-daemon to decouple the server from the Flatpak. Kolibri instances talk to the server using the D-Bus interprocess communication (IPC) mechanism. The daemon can run as part of the user session, but that means data may be replicated among different users on the system. For Endless OS, there is a new package that gets installed as part of the immutable OSTree-based system partition to provide a system-wide version of the kolibri-daemon D-Bus service. That means the data on the system can be shared between multiple users without replicating it for each. The Endless OS daemon is small and specific to the OS, but the rest of the code is the same on each installation. This architecture is meant to help isolate platform-specific code.

Endless wants the individual Kolibri channels to look like individual applications, with their own icons; clicking the icon will bring up a window for that channel, Quiñones said. The work was done for Endless OS, but it can also be used on any GNOME desktop; behind the scenes, it is all a single kolibri-gnome instance, but it looks like each is its own app. The channels have also been integrated with the desktop search, so that a search query will bring up results from each of the installed channels. Normally, Kolibri users have to register and log into the system, but that does not make sense for desktop users, who have already logged into their user account. So Kolibri for GNOME effectively logs in automatically to Kolibri.

Using kolibri-daemon as a system service allows Endless to install a big chunk of content in a single place that can be shared between users, McCall said. That allows creating custom versions of Endless OS that have the content that will be useful to a targeted group of offline users, such as those in Oaxaca as was described in the talk on the following day. It makes it easy for Endless and its partners to pick out a collection of content from the library and/or create their own, and then get it into the hands of the communities they are trying to reach.

Lessons

Endless has had similar talks at GUADEC before, McCall said; the Endless developers have built much of this infrastructure without using Kolibri "and it actually worked pretty well". The older knowledge apps were "technically very sound", lightweight, and still work, but the problem is that "they're insular" because they are not available for all of the different platforms. Because Endless has widened its goals, it has had to accept some limitations; it is putting its focus more on the ends, rather than the means.

[Dylan McCall]

That has meant integrating with Kolibri, which has been a somewhat rocky process; "it isn't really built for GNOME desktops", McCall said. The offline-content world is a small one, though, so it makes a lot of sense for the players to team up. "There's a lot to gain by accepting that little bit of weird if it means we can fit together better and reach more people."

Another lesson was that the lightweight system component added to Endless OS was a good choice for working around some problems that currently cannot be solved with Flatpak portals. Most of the code in Kolibri remains the same, but adding that component unblocked a lot of features. McCall said that he was sometimes surprised at how well the Linux desktop plumbing made certain seemingly difficult features fairly straightforward to solve.

Offline learning is as important as ever, he said. Another Kolibri-using project is Endless Key, which is targeting the surprising number of students in the US who do not have internet access at home. That problem was particularly acute during the COVID lockdowns. Endless Key provides Kolibri-based content on USB media that can be used from any operating system. Even those who have good internet access can benefit from a pile of curated content. It gives a certain amount of peace of mind that there is a trove of information "and none of it is trying to trick you", McCall said.

Endless developers are already working with the Kolibri upstream to bring some of the features added for Kolibri on GNOME to other platforms, Quiñones said. There are also plans to port to GTK4 and libadwaita. Work is being done on the overall architecture to generally improve the performance, including reducing the startup time. Kolibri has a simple concept of content collections that they would like to enhance to support removable storage and to better serve self-guided learners, he said.

The work that Learning Equality, Endless OS, and others are doing is definitely interesting and seems likely to be useful to many students—of all ages—for a long time to come. These kinds of projects are highly visible reflections of some of the ideals that the free-software movement holds dear. It is great to see them being put into practice.

A YouTube video of the talk is available.

[I would like to thank LWN subscribers for supporting my trip to Guadalajara, Mexico for GUADEC.]

Index entries for this article
ConferenceGUADEC/2022


to post comments

Kolibri and GNOME

Posted Aug 25, 2022 21:39 UTC (Thu) by sammythesnake (guest, #17693) [Link]

I just thought of post a comment as there aren't any yet to say thanks for the article, Jake! I read pretty much all the content on LWN and this is an example of the kind of thing I do that for.

An article I likely wouldn't have specifically picked out to read but leaves me feeling enriched for having read about something in an area I've not bumped into elsewhere. Broadening my horizons and, potentially, stumbling into a subject I didn't realise should be on the list of stuff I *do* pick out to read is worth the effort! :-D

Forza to these guys making the world better in places too often outside the reach of more mainstream tech efforts!


Copyright © 2022, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds