|
|
Subscribe / Log in / New account

Development

An asynchronous Internet in GNOME

By Nathan Willis
September 8, 2016

GUADEC

At GUADEC 2016 in Karlsruhe, Germany, Jonathan Blandford challenged the GNOME project to rethink how its desktop software uses network access. The GNOME desktop assumes Internet connectivity is always available, which has the side effect of making the software stack considerably less useful and, indeed, usable to people who live in those places regarded as the developing world.

Blandford currently works for Endless Mobile, which makes computers for the developing world, he said, using GNOME as its desktop environment. He is also one of GNOME's longest-serving project members, having been a GNOME developer at Red Hat long before the 1.0 release.

The Internet is ubiquitous in people's lives and is fundamental to most software, Blandford said, so most developers lapse into thinking about it as omnipresent. But, in fact, Internet access is neither "always on" nor is it cheap in many places around the globe. "Less than half of humanity has access to it today," he said. Thus, software that takes Internet connectivity for granted fails to function for users in the developing world. "We're seeing a split between 'Internet-haves' and 'Internet have-nots.'"

But, he added, the fact that the software industry as a whole lets this market down means that there is an opportunity for GNOME to do better than simply follow the status quo. "And I'm as guilty of this as anyone," he admitted. Nine years ago, he noted, when he worked on GNOME as part of Red Hat's desktop team, that team fully embraced the concept of the "online desktop" that would seamlessly integrate with remote services—which has worked out well for the software project, but has left a lot of people behind.

The barriers that keep ubiquitous high-speed Internet connectivity out of the hands of most of the world's population are fairly well known. Infrastructure costs associated with wired networks mean that the majority of the world uses cellular connections for network access. In addition, data charges are frequently too high for many people, and the bulk of the Internet remains rather English-centric. Finally, while bandwidth is increasing rapidly in the US and Europe, speeds are creeping up far less rapidly everywhere else around the globe.

With the majority of GNOME developers hailing from Europe and North America, Blandford said, the project needs to adopt a new mindset in order to serve users in the developing world. He then showed some raw numbers regarding speeds and pricing in different areas of the world. One of the most striking was that the average desktop uses 60GB of data every month in the developed world—a number far too high to be sustainable elsewhere.

Blandford then pointed out that although a lot of time is spent discussing "instant data" like email and social media messages—data that users consider highly valuable—such data makes up only a tiny fraction of the overall Internet bandwidth. The majority is "cacheable data," he said, like web pages and video content that is produced once and requested many times.

Currently, cacheable data is "extremely expensive," he said; although media companies use commercial content-delivery networks (CDNs) for the developed world, the same data is virtually inaccessible in the developing world. So one important way GNOME could improve the computing experience for people in the developing world is to build an "asynchronous Internet" within the GNOME desktop, utilizing alternative means to distribute and store cacheable data.

People have already created various methods to distribute data in bulk outside the Internet, he noted. El Paquete Semanal, for example, is a hard drive image circulated weekly in Cuba through underground means, currently including about 2TB of data. The Android app Zapya lets users download a web site to their phone while they are online at some public location, saving it to read (and share) once at home. In both cases, the latency of these "networks" is exceptionally high, but the overall throughput of a hard drive delivered weekly via motorbike is pretty good, he noted.

There are also projects like Toosheh, which uses television satellites to "backpack" one-way data signals onto unused bandwidth, enabling users in Iran who have satellite dishes to access web content that is officially censored by the government. Endless has discussed the idea of cell network providers letting users download data at reduced rates overnight when there is substantially less demand for voice service. And, of course, peer-to-peer technologies like BitTorrent are widely used in the developing world to distribute data.

But raw support for asynchronous network access is only one piece of the puzzle: applications would need to support data access through different means, such as offline caches. This is an area where Endless has already been working, Blandford said. Endless systems include a variety of GTK+-based applications that use local data caches to provide access to informational content (from news to topical, Wikipedia-like references). They retrieve updates from Endless servers in off-peak hours, if there is Internet access.

GNOME could adapt similar techniques for many of its applications, he said. The existing GNOME Recipes application, for example, retrieves recipes live over the web; the equivalent Endless app uses a local database that is updated incrementally when it is convenient. Still, he said, his goal was not to dictate that GNOME copy Endless's designs, but rather to inspire the GNOME community to think about how it could improve offline usability in its applications.

There are several areas where GNOME applications can improve, he said. The first is to stop assuming connectivity is available and to build in ways to deal gracefully with connectivity problems and disconnects. "And I'm looking at you, Evolution," he said. Dealing with degraded connectivity includes being careful not to download data more than once, he added. The second is to be conscious of the user's bandwidth, including being explicit about when the application is using the network. "It's a precious resource," he said, "It's not 'free.'" Android works along those lines already with the "download for offline use" options in Google Maps and Translate, he said, but so far GNOME does not use that design pattern. Related to that improvement area is "aggressively caching data," he said, as in the Endless examples.

Other areas for improvement include expanding language support and developing documentation that reaches beyond GNOME's existing stable of users and developers. This is an area in which the project already does a good job, he said, but it needs to go further. Although GNOME takes a lot of flak for simplifying the desktop too much, Blandford said, Endless found in its real-world user tests that much of the documentation and the wording used on the desktop was written to serve a small niche of college-educated people with extensive experience with technology concepts. Ultimately, the point is that developing a desktop system for the entire world requires recognizing that "our needs" are not "everyone's needs."

Blandford ended by proposing that asynchronous Internet support be added to the list of concepts that GNOME cares about, like accessibility and internationalization—he suggested "a18t" as one possible abbreviation, and "Int··n·t" (for "spotty Internet) as another.

Whatever the abbreviation is, he concluded, this is a concept that GNOME should think about while it develops its software. Most of the people who are not yet online want to get online, Blandford said, and when it comes to the desktop software they use, they have not picked one yet. So GNOME's opportunity with asynchronous networking support is a chance to serve an underserved population, but also to grow the GNOME community with new people who are excited about getting access to computing.

[The author would like to thank the GNOME Foundation for travel assistance to attend GUADEC 2016.]

Comments (29 posted)

Brief items

Quotes of the week

I also don't think working on Apache OpenOffice is much of a resume builder, since there is no other project like it and probably will never be. There are far easier projects to build an open-source reputation with, ones that build developer skills in areas where there is a growing and future demand.
Dennis E. Hamilton

Please keep in mind that we're already 10 years into a breaking change to Python's text handling model, with another decade or so still to go before the legacy Python 2 text model is spoken of largely in terms similar to the way COBOL is spoken of today. There is no such thing as a "significant, but easy to fix" change when it comes to adjusting how a programming language handles text data, as text handling is a fundamental part of defining how a language is used to communicate with people.
Nick Coghlan

Comments (2 posted)

Z-Wave protocol specification now public

The Z-Wave wireless home-automation protocol has been released to the public. In years past, the specification was only available to purchasers of the Z-Wave Alliance's development kit, forcing open-source implementations to reverse-engineer the protocol. The official press release notes that there are several such projects, including OpenZWave; Z-Wave support is also vital to higher-level Internet-of-Things abstraction systems like AllJoyn.

Comments (21 posted)

Anticipating KDE's 20th anniversary

The announcement of a project to develop the "Kool Desktop Environment" went out on October 14, 1996. As the 20th anniversary of that announcement approaches, the KDE project is celebrating with a project timeline and a 20 Years of KDE book. "This book presents 37 stories about the technical, social and cultural aspects that shaped the way the KDE community operates today. It has been written as part of the 20th anniversary of KDE. From community founders and veterans to newcomers, with insights from different perspectives and points of view, the book provides you with a thrilling trip through the history of such an amazing geek family."

Comments (1 posted)

LLVM 3.9 released

Version 3.9 of the LLVM compiler suite is out. "This release is the result of the LLVM community's work over the past six months, including ThinLTO, new libstdc++ ABI compatibility, support for all OpenCL 2.0 and all non-offloading OpenMP 4.5 features, clang-include-fixer, many new clang-tidy checks, significantly improved ELF linking with lld, identical code folding and initial LTO support in lld, as well as improved optimization, many bug fixes and more."

Full Story (comments: 2)

Git v2.10.0

Git 2.10 has been released, with lots of updates to the user interface and workflows, performance enhancements, and much more. See the announcement for details.

Full Story (comments: none)

Samba 4.5.0 is available

Samba version 4.5.0 has been released. Among the included changes, the NTLMv1 authentication option has been disabled by default, multiple DNS forwarders are now supported on the Active Directory Domain Component, and SMB 2.1 leases are now enabled by default. See the announcement for the full list of new features.

Full Story (comments: none)

Newsletters and articles

Development newsletters from the past week

Comments (none posted)

Tor: A New Bridge Authority

The Tor blog has announced that the network's current bridge authority, an infrastructure server that keeps track of Tor's unpublished entry nodes ("bridges"), is being decommissioned and will be replaced with a new server donated by a new provider. The new authority, Bifröst, will be gradually taking over duties from the old authority, Tonga. "This transition does not affect Tor users, regardless of whether or not Bridges are used to connect to the Tor network. However, it is extremely important that relay operators running Bridges upgrade to tor-0.2.8.7 or tor-0.2.9.2.-alpha, which contains a patch to replace Tonga with the new Bridge Authority." Bridges that do not upgrade will no longer be used for incoming connections. The post also notes that several opportunities exist for interested developers to improve how Tor bridges are tracked and managed.

Comments (none posted)

Page editor: Nathan Willis
Next page: Announcements>>


Copyright © 2016, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds