Perkify - FAQ
Written by Rich Morin.
- Why base Perkify on Linux?
- Why base Perkify on the APT?
- Why base Perkify on Ubuntu?
- What does Perkify add, in general?
- What makes Perkify “blind-friendly”?
- Expected Users
- Does Perkify support naive users?
- Do users need to be Linux experts?
- Is Perkify just for the disabled?
- Host Platforms
- What host platforms are supported?
- What does Perkify add to Linux?
- What does Perkify add to macOS?
- What does Perkify add to Windows?
Precis: Frequently Asked Questions about Perkify
The purpose of an FAQ is generally to provide information on frequent questions or concerns; however, the format is a useful means of organizing information, and text consisting of questions and their answers may thus be called an FAQ regardless of whether the questions are actually frequently asked.
This page is only a start on an FAQ; keep those cards and letters coming in!
Why base Perkify on Linux?
As well as being the most popular open source operating system, Linux is the primary target platform for open source software developers. Even if a package was developed on another system, it’s likely to have a “port” that runs on Linux. Better yet, tens of thousands of packages can be downloaded from archive sites and installed automagically. Given that Perkify is an open source distribution, Linux is the obvious starting point.
Why base Perkify on the APT?
Although every Linux distribution uses (roughly) the same kernel, each one includes a particular set of commands, libraries, etc. Various families of Linux distributions share common characteristics, including package management archives, practices, and tooling.
Getting reliable numbers is pretty much impossible, but it’s clear that the Debian family is the most popular. It includes Mint, Raspbian, Ubuntu, WSL, and many other distributions. With that popularity comes a wealth of open source software, available via Debian’s Advanced Package Toolkit (APT).
The APT is a very convenient and extremely reliable set of tools, supported by a worldwide network of archive sites, developers, etc. It greatly simplifies the task of creating Perkify. For example, we only have install about 200 packages explicitly; the APT brings in all of the others they depend on or recommend.
Why base Perkify on Ubuntu?
Unlike Debian, Ubuntu releases new versions every six months. So, the software in their distributions tends to be reasonably current. Nonetheless, it has a very good reputation for reliability. And, because Ubuntu is targeted at a broad range of users, one need not be a Linux expert to make use of it.
What does Perkify add, in general?
Many experienced Linux users regularly install open source packages. However, adding, configuring, and removing packages can be a hassle. More seriously, it can destabilize the host operating system. Because Perkify runs entirely inside a virtual machine, it is much less likely to have troublesome interactions.
Given that Perkify adds several thousand packages to Ubuntu, these interactions require (and receive) a certain amount of care. Also, as Perkify becomes more mature as a distribution, its components will become better integrated with each other. So, it should become ever more convenient and powerful as time goes on.
What makes Perkify “blind-friendly”?
We started by selecting a number of interesting, text-based packages. Many of these have been around for years, but may not be familiar to most modern users. These can typically be used via the host computer’s screen reader(s), using HTTP, SSH, or (sometimes) X11.
We are now working on bringing up flexible and solid audio support, using ALSA, JACK, PulseAudio, and some ancillary packages. Once this is in place, we’ll work on configuring various assistive packages (e.g., music players, screen readers) to use it.
What distribution sizes are available?
Initially, our plan was to have only one Perkify distribution. After all, we reasoned, storage is pretty much a non-issue. And, in fact, we currently have only one “box” up on Vagrant Cloud.
However, even though storage may be a non-issue, the time taken to download the “box” may not be. So, we are now planning to create and upload multiple distributions, in order to handle a range of use cases and user preferences. For example:
The Perkify_S (Small) distribution will mostly add a11y-related packages. It should download rather quickly (about as fast as Ubuntu).
The Perkify_M (Medium) distribution will add packages of general utility and interest. It will be a few GB in size and take somewhat longer to download.
The Perkify_L (Large) distribution will add every plausible package. It will be 10+ GB in size and take a lot longer to download.
The Perkify_W (Work In Progress) distribution will add packages we’re currently working on. Its size (and download time) will thus be somewhat variable.
What distribution types are available?
At the moment, the only distribution type we support is a Vagrant “box”, based on VirtualBox and Ubuntu. We’re willing to consider supporting other distribution types, but our development bandwidth is quite limited. So, feel free to pitch in…
Does Perkify support naive users?
Perkify’s users will always have to be reasonably computer-savvy: able to run the Vagrant and VirtualBox installers, deal with a command-line user interface, etc. And, in the short term, they will have to put up with configuration issues and other vagaries of early software releases.
Do users need to be Linux experts?
No, but they need to be interested in trying it out and willing to Read The Fine Manual, ask questions, etc.
Is Perkify just for the disabled?
Our primary goal is to serve the blind, dyslexic, and/or visually impaired. However, sighted users may also find Perkify useful. After all, installing open source packages can be a lot of work, particularly for relatively non-technical users. Having a well equipped, turnkey virtual machine takes away a lot of pain.
What host platforms are supported?
Because Perkify is based on Vagrant, it only supports Linux, macOS, and Windows as host operating systems. And, because it is based on VirtualBox, the host hardware needs to have a 64-bit AMD or Intel CPU. Of course, it may be possible to relax these restrictions in the future.
What does Perkify add to Linux?
Someone who uses Linux regularly may see little reason to use Perkify. However, an Arch Linux user might not have a convenient way to install some of the packages that Perkify contains. So, it can be useful to have a turnkey VM on hand, if only as a way to (conveniently and safely) try out packages.
What does Perkify add to macOS?
Because macOS is based on a Unix variant (FreeBSD), many open source packages are able to run on it. However, there are several package management systems for macOS (e.g., Fink, Homebrew, MacPorts). Some of these may support a desired package; other may not. Worse, they can get in each other’s way.
What does Perkify add to Windows?
Historically, relatively few open source packages have available for Microsoft Windows. However, recent versions of Windows include Windows Subsystem for Linux (WSL), which is based on Ubuntu Linux. In theory, WSL can install all of the same packages that Perkify can. So, the main advantages of Perkify on these systems have to do with the fact that it is an isolated, turnkey way to use open source software.
Is Perkify entirely open source?
Basing Perkify entirely on open source software allows us to redistribute it freely (gratis and libre). That is, we don’t charge for it and we don’t add any restrictions. However, we are open to supporting proprietary add-on software that is particularly popular and/or useful. Feel free to contact us with questions, suggestions, etc.
Why does Perkify use Vagrant?
There are several things we like about Vagrant:
It allows the VM to be used and administered entirely from the command line, which is great for blind users.
It allows the possibility of supporting multiple “providers”. At the moment, we’re only using VirtualBox, but Docker and “custom” providers such as QEMU and VMware may also be of interest at some point.
It’s written in Ruby, making it comfortable for us to work with and extend.
virt-manager appears to offer a similar set of management capabilities, albeit for a somewhat different set of VMs: “[It] primarily targets KVM VMs, but also manages Xen and LXC (linux containers)”. However, it only supports Linux as a host platform.
Why does Perkify use VirtualBox?
VirtualBox meets our major criteria (e.g., licensing, portability) for infrastructure. That said, it’s far from perfect (e.g., high latency audio). Here are some brief notes on alternative approaches; additions, comments, and corrections are welcome!
Docker requires that the container be running the same kernel as the host platform, so it can’t provide a cross-platform solution.
To be continued…