Unplugged: Optimize KDE for Long-Term Offline Computing
Open, Needs TriagePublic

Description

Motivation

Computers are not really a communications medium. From how we talk about them today, that statement might come as a surprise. It is the letter-post, the telegraph, the radio, television, telephones, fax machines etc. which have connected people across the globe. What the computer has done, as a "logic amplifier" which has grown into "fantasy amplifier" and simulator, is virtualize these communications media as content, or applications. Most of our computers are connected to the internet all the time now, constantly communicating. But why should they be?

Nobody will deny that privacy and the security of personal information are a primary concern today. Of the billions of "smartphone" "owners" today, many have never had a primary computing device which was not connected to the internet. For as long as they've known, their data has been stored and processed remotely, in "the cloud." Yet, before the normalization of broadband in the 21st century, being offline was the standard for computer owners. The processing of one's personal information was performed locally, and its storage and backing-up was entirely the responsibility of the owner of such a "personal computer." I'd like to emphasize two things. First of all, this totally-localized computation was clearly the most supremely private and secure that one could ever hope to achieve. Second, being offline is precisely what made the PC personal.

I propose that the KDE community focus on achieving the goal of ensuring the full-ensemble of their software is adapted toward ease-of-use for an entire-offline personal computing ecosystem. I acknowledge immediately the vast majority of users may not ever desire or implement an entirely-offline personal computer ecosystem for themselves. However, the effects of optimizing toward that radical use-case will nevertheless benefit all KDE users in many ways. Let's begin by describing the benefits of such a focus for users who do desire a primarily-offline personal computer ecosystem, before moving on to the general benefits for the total community.

  1. The Benefits of Being Offline

One major psychological "selling point" for Free Software is the peace of mind offered by source-code availability and community auditing for security vulnerability. To use free software is, of course, to actually own one's computer. Nevertheless, computing technology is never perfect. Security vulnerabilities are found every day at every level of the computer stack from hardware and CPU microcode up to exploits of social engineering. Air-gaping—the disabling of both wired-Ethernet or wireless NICs—is the ideal setup for an "offline" machine. No amount or quality of assurances of security coming from a remote, 3rd party service cloud or internet service can approach the feeling of security and privacy which being offline—being air-gaped—engenders. And access to the feeling of refuge, security, or temporary isolation from the world which is sometimes necessary for feeling secure or private is had today only by foregoing computers and technology entirely—by leaving one's phone at home, or by hand-writing in paper notebooks, for instance. The desire to use a computer and feel secure all-too-often means familiarizing one's self with encryption, highly technical "hacker distros" affiliated with "dark nets" and other such subversive-feeling approaches. Why must it be this way? Why do we stigmatize the feeling of being safely disconnected?

Privacy, however, might not be the reason one wants to go entirely-offline. The commercialized internet and world of smartphone "apps" are in a marketing war for your attention. It's called the "attention economy," and no trick is too dirty to be tried by some of the biggest names. Our computers have become like casinos: designed to keep us distracted and lost, forever chasing after whatever is made to feel novel and exciting. Our limbic centers have been hijacked by algorithms which are optimized to keep us paying attention to whomever pays these companies the most money. Being offline offers a refuge from this world of distractions which doesn't rely on the exertion of self-control. The feeling of personal failure when one "gives in to temptation" and checks social media—along with all its negative psychological effects—can be entirely avoided simply by being offline. Even someone not worried about privacy or cloud-services can experience great increases in productivity by owning a single "always-offline" machine for focusing on their work. Take your "offline laptop" into your office, or out on your deck, and start typing without any hope of wandering off onto the internet to follow the lure of its many siren calls.

  1. Benefits for Everyone

For many people, the web-browser has become the computer, encumbering a great deal of unnecessary latency and performance issues for tasks which can be performed instantly when done locally. The answer is not a faster internet connection, or javascript engine! Consider the user who searches a for a simple dictionary definition. A dictionary database of a few megabytes can be polled instantly, compared to a DNS look-up and the loading of two-pages worth of 3rd party javascript which accompanies any dictionary consultation done through a web-based search engine.

While most KDE users will still continue to remain connected to the internet, their user experience will improve vastly when everything that can be done offline is done offline.

KDE Marble might include offline-routing which is easily exportable to a pocket device. A Plasma Mobile-optimized version might allow for the easy import of city-specific General Transit Feed Specification (GTFS) .zip files for offline bus-route/train timetables in one's pocket. Complex analysis of music preferences which are more-typically performed remotely on "scrobbled" track listings were once a feature of Amarok 1.4—bring that sort of local preference-learning back! Offer such local-analyses for other personal information which are today processed by commercial services, such as calorie counting or exercise stats or biometrics. Offer an offline-Wiki reader, offline dictionary. Create a workflow for one-click saving and backing-up of smartphone photos and screenshots, and a second-click to fill a USB key with photos to have professionally printed. Remember physical photo albums?

The focus on facilitating "entirely-offline" workflows will ensure that all KDE software allows, to the best of its ability, the user to take full-control and responsibility of their data. With that feeling of control comes the feeling of empowerment and ownership—given the choice between allowing a cloud-service to process your personal data and locally-executed software, many users would choose local! Optimizing for purely-local, offline workflows will ensure that those options are robust enough to compete with remote commercial services even for users who choose to remain always online.

And, of course, network and service outages are always possible. What better future-proofing can there be than always knowing your device is as useful as it can be when a remote server or the internet goes down?

Finally, the stewardship of an offline machine necessitates learning how your computer works. There are concerns today that many people whose first computer has been a modern smart-device are unfamiliar with basic filesystem metaphor. That's right... there are millions of people out there who have no experience saving, copying or moving files within computer folders! As more and more people come to know only commercial "apps," there must also be new users in the world learning to actually reach deeper down the stack, taking control of their machine. By making the personal computer as personal as possible, and optimizing KDE for personal ownership of one's computer, one is ensuring that users can always stay grounded within the culture of UI metaphors which keep them close to the metal, helping to keep computer literacy alive.

Yes, the internet age is here. Of course the internet is not going away. Nevertheless, offline computing must be made a first-class user experience. It must be maintained and normalized as a regular, unexceptional pro-social activity. The personal computer must be reclaimed from the category of mass-communication medium, as the universally-programmable device it is when standing alone.

The KDE community has the leverage to tip the balance toward privacy and ownership liberated from all the security concerns and psychological effects of ubiqitous, necessary internet connection.

Plan

In order to be useful, a modern computer must of course have many applications to facilitate productivity and living. Luckily, history provides us with the many of the targets necessary for creating a useful offline computer. In the '80s and '90s billions of dollars were poured into researching many various offline software designs which competed for market success. The simple observation of the winning strategies from that era will point point to the models to be emulated.

A thorough inventory ought to be made of every major, popular application which made personal computers useful and marketable in the '80s and '90s. All such applications for which KDE already offers an implementation should then be considered for testing/refactoring for usefulness in totally-offline usage.

For example:

Personal Information Management (PIM) was a major, popular application for offline computers. Consider the market success of the Palm corporation's pocket digital assistant, (PDA). It was a PIM solution containing a calendar, address book, todo list, and simple note application, directly syncable to a PC by wired connection. The owner's personal information never left that tightly-coupled, localized network of two devices (the PDA and the PC).

Therefore, consider KDE's implementation. While the KDE PIM suite today offers CalDAV server solutions to pair with cloud-service providers like NextCloud, where is the option for directly localized synchronization and storage? How has this—the simplest of all use-cases—been overlooked?? Why should users who forego commercial cloud services be burdened with maintaining and updating and paying for any private web service just to have their calendar on their desktop and in their pocket? The implementation of an Akonadi plugin for completely localized phone sync of PIM data is a logical first step. Accompanying phone-side software might be implemented through KDE Connect, or other standalone service.

So the option for an offline pocket computer, synced through wired serial connection (or other suitable protocol) should also eventually be implemented.

This process could be repeated indefinitely for every application.

One necessary consideration will be how to manage the "sneakernet" interface between online computers with the offline-ecosystem. Obviously software updates, transfer of files, etc. will still entail some connection to the internet down-the-line. So-called "offline package managers" already point to feasible implementation of such interfaces.

As well, granular file-sync between two or more networked machines—such as an offline desktop and an off-line laptop or Plasma Mobile device—must be implemented with all the conflict-resolution features of any cloud-sync software.

In the long-term, a suitable milestone would entail the matching of features of a typical always-offline desktop computer from the era of CD-ROM software. Given ample hard-drive capacities today, an offline computer ought to be able to do what any '90s PC could do with a library of the best-selling CD-ROM software. Encyclopedia software and other offline-reference material are an obvious hole in the offerings of the contemporary Free Software world, as is offline documentation and software tutorials. We make the apps "easy", but the content, being always-online, is slapdash and permanently incompete.

You had to do a book right before you printed it. Offline computing offers the same constructive challange.

Community

Obviously the KDE and Free Software communities can provide many suggestions and ideas for particular optimizations which are necessary to bring their lifestyle and workflows "offline."

Beyond that, however, there are many ways specific to "offline computing" which would require a community effort to achieve.

The major tasks for creating a useful, enjoyable, and productive offline desktop environment would be the curation of application data and content. If I want to write a book without being distracted, then I'd still like to have a dictionary, an encyclopedia, and perhaps many other books at my fingertips, complete with all the affordances of modern computer software like word-search, hyperlinks, multi-media content and the like. Hard-drives and bandwidth may be ample today, but they are not infinite, so much discretion and careful selection must be made. Offline data must be selected and developed with the professionalism and careful selection modelled after the popular CD-ROM based encyclopedias of the '90s, which were then limited to 750mb. The very work of selection and curation—whcih amounts to playing "what would I bring with me to a desert island?"—will help give direction and focus to any collection of media, be it Creative Commons stories, music, learning materials, or anything else.

Furthermore, offline computing requires the selection of particular protocols, formats, and standards which are optimized toward "sneakernet", or filesystem-based synchronization and storage, rather than network transmission. The synchronization of iCal and vCards wouldn't be done with CalDAV, for instance. Time-stamp comparisons and diffs would likely be used to raise conflicts for manual user resolution. Workflows and schedules for regular backups would need to be emphasized and performed diligently. When offline, printing to paper can become a more-regular practice for sharing information, or "emails" might be written to USB-key to then be sent-off at once with an "online" computer. All of these niche cases will require many different expertise and UX studies to consider, drawing on the skills and creativity of the whole community.

Retro-computer enthusiasts might likely find this proposal extremely enticing for potentially revitalizing their old gadgets. An always-offline ecosystem practically begs to be adapted to support retro hardware and software from the '80s and '90s! The primary reasons for abandoning old technology are the lack of modern software-support and software-vulnerabilities when connected to the internet. But with the normalization of offline-computing that could be achieved by this goal would foster the development of a functional, modern computing environment which would be safe for these insecure devices to participate in as fully-fledged members.

Risks and needs

In the long term, fragmentation of the KDE software eco-system across temporal scales is a likely inevitable outcome. At some point, offline computers will stop being updated. As development of KDE software continues, incompatibilities may arise between differently-arrested personal set-ups—especially across larger time-scales.

By sticking to long-established standards, focusing on implementations which work on the most basic, universal levels, such as file-based setups and human-readable files, the problems arrising from this fragmentation can be largely mitigated.

Champion

My name is Clinton, and I've been running GNU/Linux as my primary desktop since 2013, when I first installed a Debian derived distro called Mepis Linux. The next year, I spent an entire three weeks installing Gentoo from scratch, learning my computer inside-and-out in the process. In high-school, my life was organized on my Palm PDA, synchronized with Kontact through KPilot—digital life was never that good again. My current NextCloud setup messes up at least once every few months in some new, exciting way—that is far, far, far too frequent. I do not need hundreds of megabytes of Enterprise-level software operating on a remote server across the planet in order to have my calendar on my phone, and likely neither do you!

In the past few years, my interests have turned toward various post-modern theories in the humanities involving embodiment and media effects. Many theories discussed in Universities and academic journals today involve our nature as we turn into "cyborgs" or experience our identity or bodies as "porous," susceptible to "ruptures" and "flows." It is my own personal belief that the cultural reconstruction of a strict division of computers as offline-media away-and-apart from mass communications media would be extremely helpful for further exploration of these avenues of theoretical exploration. I've been independently researching the work of Canadian media theorist Marshall McLuhan, and his ideas of technology as "extensions" of our mind and body. I think that if my technology is actually an extension of my own being, I'd prefer that my as much of my body and mind as possible not be leaking out into the world much farther than the walls of my house. I may be weird for taking such considerations more seriously than most, but life on the internet has assured me that I'm certainly I'm not alone in indulging in strange notions from time to time!

And, most importantly: I have terrible impulse-control on my computer. When I write, I like to do so without distractions, but also without losing all the great ways computers make the writing process easier!

Oh, and this year I presented to the LibrePlanet about the intersection of "media ecology" with Free Software! Find that, and my writings about McLuhan and media ecology at ConcernedNetizen.com.

As champion of this goal, I will invest time and effort clarifying the vision and scope of "offline computing", taking part in discussions to arrange and prioritize milestones and levels of implementation. I will write publicity and produce any media which raises awareness. I am happy to do out-reach to any groups who might be interested in helping or taking part in the initiative, such as retro-computer enthusiasts, privacy enthusiasts, etc.

Interest

This section is intended for people other than the Champion to sign up and show support for the Goal.
If you are interested to actively join the effort and do the work, add your name below (this does not count as voting for the Goal):

cignatov created this task.Jun 22 2022, 4:17 AM
cignatov updated the task description. (Show Details)Jun 22 2022, 4:30 AM
cignatov updated the task description. (Show Details)
cignatov updated the task description. (Show Details)Jun 22 2022, 4:34 AM
cignatov updated the task description. (Show Details)Jun 22 2022, 4:36 AM
cignatov updated the task description. (Show Details)Jun 22 2022, 5:16 AM
cignatov updated the task description. (Show Details)Jun 22 2022, 5:19 AM
cignatov updated the task description. (Show Details)Jun 22 2022, 8:31 AM
cignatov updated the task description. (Show Details)Jun 22 2022, 8:58 AM
cignatov updated the task description. (Show Details)Jun 22 2022, 9:22 AM

Don't bother; even if what you're suggesting is adopted, it won't last long. Mandatory backdoors are coming soon (in EU too). What gives you the impression that they will even let computers to remain offline once these laws are passed, given the swift expansion of satellite and mobile coverage?

KDE devs have essentially confirmed that they share my belief that we are all doomed when I urged them to speak up, despite their refusal to admit it to themselves.

We must all acknowledge what we already know in our hearts: we are not people. We are only the cattle of the rich and powerful. And we're reaching the point where humans are no longer useful; at that point, we'll either be replaced by machines or forced to sacrifice even our right to the privacy of our thoughts by getting cyborg implants, which will undoubtedly be even less free than today's smartphones. Human freedom's brief golden age is coming to an end...

cignatov added a comment.EditedJun 22 2022, 6:00 PM

Thanks for your thoughts, lordhelpus! They indicate the level of passion and concern that issues of privacy and computer ownership may evoke in much of the Free Software community. In the siege-mentality terms which frame this argument for you, I'm not ready to accept defeat quite yet.

But... it's just an Akonadi plugin and a robust diff-based file-sync/back-up engine. At least, that's all it would appear to be. 🤫

I don't think that this apocalyptic framing will be helpful for measured consideration of the goal, or its merits, however. There are many causes which drive a contributor's passion, and this goal is about much more than those particular concerns. Why shouldn't a computer be as useful as possible, even when disconnected from the internet for long periods of time?

"lordhelpus" is a troll who posts doom porn everywhere, and can be safely ignored. I delete his negative and demotivating comments on my blog on a regular basis.

@lordhelpus if you derail this comment thread with your nonsense, I'll ask sysadmins to ban your account and IP address and delete your comments (and this one). I'm a little surprised it hasn't already happened.

adam added a subscriber: adam.Aug 21 2022, 6:23 PM

Notes from refinement session:

The proposal is a bit long, perhaps a shorter version could help with sparking interest in this? Also, the Goal name could use some work to be more exciting?

adam added a comment.Aug 21 2022, 6:46 PM

The voting starts in a week, so any changes that you intend to do should be done soon :)

pgess added a subscriber: pgess.EditedAug 30 2022, 8:14 PM

Thanks for excellent articulating of the importance of this issue.

Since more and more people choose smart phones and tablets as their main computing devices to perform every day activities, the desktop eventually will be used rather for niche use cases only, among them privacy and productivity orienteded workflow. Thus for any desktop OS like Linux / KDE the "privacy and productivity first" should become increasingly more important principle just to to be able to successfully compete in the shrinking desktop niche.

On the other hand, in the world of constant personal data leaks, privacy breaches and ubiquitous surveillance (in totalitarian regimes), there should always be an alternative, however small and insignificant it is, especially in the future era of implants, etc.

All in all, I already try to replace online services by "low tech" workflows (where it makes sense) but would love to see any offline, local or selfhosted solutions better supported by KDE anyway.

On a side note, can you suggest papers or books in plain old English expanding more on "post-modern theories in the humanities involving embodiment and media effects" and "our nature as we turn into "cyborgs" or experience our identity or bodies as "porous," susceptible to "ruptures" and "flows."?

Hi @pgess, thanks for the comment. The book How We Became Posthuman by N. Katherine Hayles is probably the best book to fit the "plain English" requirement. The latest two books from Arthur and Marilouise Kroker, Exits to the Posthuman Future and Technologies of the New Real also explore the problem in depth, albeit in a more difficult prose.

A major problem with lots of these books are a (to be frank) bad writing style, alongside origins within ideological frameworks which may or may not help or distract from the subject as I'd like to discuss it, which is technology as extension of self. In fact, it seems to me that many in the humanities who write about this stuff have no idea a) how computers work, b) that they can be owned and programmed and liberated via Free Software, and c) how Free Software mitigates many of the psychological and identity problems they lament. At best, they might handwave toward "open source" in general, thinking only of its uses in professional development, not end-user liberation.

Rather than just write more papers and engage with academics in the media ecology and post-humanities fields, as I've been doing for several years, I'd like to just get on with finding and encouraging the search for solutions within the Free Software world.

cignatov renamed this task from Totally-Offline Productivity and Privacy PC/PDA Workflow to Unplugged: Optimize KDE for Long-Term Offline Computing.Aug 31 2022, 4:38 PM
In T15624#279787, @adam wrote:

The voting starts in a week, so any changes that you intend to do should be done soon :)

Thanks Adam!

esari moved this task from Selected to Ready for voting on the Goal Setting 2022 board.
bcooksley changed the edit policy from "All Users" to "Goal Setting 2022 (Project)".Sep 1 2022, 6:51 PM

I agree: this is still a default assumption for me, that free software is intended to run on personal computers. The PC experience (which includes KDE) is not the same as the mobile-first/online/cloud experience. And yet there is room for mobile operating systems to be more PC-like too.

But I'd go a bit further: follow the plan9 principle that anything that can be stored in a simple human-readable file, should be. You brought up PIM synchronization, calendars and such. My solution to this problem would be that a calendar should consist of a directory full of ical files, one per appointment. If you receive an ical file from an email, you just drop it in that directory. (You can have multiple directories too, to separate work, personal, holidays, and shared family calendars.) File-reading overhead is nowadays not so large that your GUI calendar program can't just read all those files at startup. But if you really find a bottleneck with that, then it's ok to have a hidden index file that the GUI program (or some shared library) maintains on its own, that the user never has to see, touch or maintain, and that never causes a failure if it gets corrupted. But it's not ok to store your entire calendar in one database, or to require any kind of server to hide it behind (akonadi, postgres, nextcloud, etc.) The single source of truth should be the original ical file for each appointment, period. (I gave up on nextcloud the very first time I did a version upgrade and it failed to start, because the database schema had changed. It's completely absurd that they didn't even automate data migration between adjacent versions, IMO. And KDE software has had its share of historical mistakes like this too.)

When it comes to synchronization, that's a solved problem: just use https://syncthing.net/ (or something like it; unison is older). You can have the same files on as many computers and phones as you like. Each computer can be offline as long as necessary, and you still have your files (even if they may be somewhat out-of-date on some machines). As long as at least one computer is online most of the time, syncing to each "mobile" computer resumes each time it goes online again. All the data is eventually consistent on all the machines. There's no central point of failure. No services to maintain: just keep syncthing itself running, and keep as many machines online as often as possible. It's mostly maintenance-free (except for rare sync conflicts, which can be resolved at your leisure; being able to resolve them does depend on the file having some linear structure that can be hand-edited).

I do the same thing with my passwords: https://www.passwordstore.org/ has exactly the right architecture IMO. TODO lists? use todo.txt format. Notes? use markdown files. I have all of these (and much more) syncing continuously to multiple machines, which takes care of easy availability and backups at the same time. Eventually I want to do it with email too: my inbox should be a directory with one file per email (or perhaps a directory per email so the attachments can go in there), and I want the files to be nicely named so that I can list the latest ones and see the subjects with ls -ltr, not like maildir.

Thus, most front-end viewer programs (GUI or otherwise) don't need network communication code. And coincidentally, this is the same way that pre-internet software was written: just read and write files; so no good program need ever become obsolete.

The plan9 architecture extends to abstracting servers behind filesystems: instead of using arbitrary network protocols, you always write a 9p file server that can be mounted, which serves up the data in a form that can be explored with ordinary tools like ls and cat. Servers for email, irc, git, and so on all work that way. (And then next you want to write a GUI, so you don't have to use the command-line tools.) But as you point out, requiring a network at all can sometimes be problematic: so those servers which "forget" everything they have downloaded each time they shut down, are not so great. Syncing is better than mounting: if you have syncthing, you can do without a network filesystem most of the time. Of course you still need other kinds of server daemons to put the files there in the first place (to connect to legacy PIM servers, mail servers and other kinds of communication networks): file-syncing is ok for your personal cloud (where it's best for your sanity that the same files are organized the same way on all the machines), but not so much for different people to share with each other.

SSB is a social network designed for intermittent communication: you sync up periodically, and you can read and post offline. (A bit like communication in the dial-up BBS days, but with a much better user experience.) I like the fact that they did that, but I don't like the opaque architecture. If each post was one file, you'd have full control: reading and posting could be done with multiple tools, you could use a simple find -mtime command to remove old posts, and so on. Some day there should be an ActivityPub-compatible social network daemon that works that way: sync online when possible, but be able to read and write posts (files) any way you like.

I like IPFS as a file-sharing protocol: a lot of services can be built on top of it; but again there is the issue that the actual files are too hidden most of the time. It's not a very big change to fix that, to make it work more like syncthing.

I like quassel for irc, but the quassel server has the usual issue: it uses a database instead of the filesystem. Guess where the bottleneck is, after you've used it for too long?

iOS is terrible for this way of working, simply because there's no shared filesystem between apps. So you can have syncthing (there's a version on the app store), but the other apps can't read the files: each app would have to sync its own data. How redundant. Apple defaults to treating every application as untrusted. This is not the case in the free software world. Apps should not be put into silos like that. We use free software precisely so that we can trust it. And we have reliable backup solutions that we understand how to manage ourselves, just in case of bugs.

Given that I have one or more computers, I have a filesystem, a home directory where I keep "my stuff". KDE is not for people who don't understand filesystems. The user has responsibility to maintain order and structure on the filesystem. It's a matter of basic computer literacy, which should be taught in schools. But going beyond that, to network admin skills, is not for everyone. Saying "files are too complicated, let's put it in the cloud" is not even a simplification. Those who don't have computer literacy are doomed to always being out-of-control, to losing data periodically because of capricious changes in how things are done. Filesystem management is a way to bring order to chaos. I don't see a way out of it. We've had filesystems since the beginning of computing, and we still do. So why not admit that it's not only a necessary evil, but the very foundation of data organization?