This page displays the content of Areas/Content/Overviews/Perkify_Intro/main.toml.


(hide) (show)

You can download a copy of the content below (as PA_Perkify_Intro_main.toml).

# con_ove|Perkify_Intro/main.toml

[ meta ]

  actions     = 'publish'
  id_str      = 'Perkify_Intro'
  title       = 'Perkify - Introduction'

[ meta.refs ]

  f_authors   = 'cat_peo|Rich_Morin'
  f_editors   = 'NA'

[ about ]

  precis      = 'introduction to Perkify (VM-based Perkian)'

  verbose     = '''
Perkify provides a convenient and unintrusive way
to add [open source]{ext_wp|Open_source} software
to personal computers running [Linux]{ext_wp|Linux},
[macOS]{ext_wp|MacOS}, or [Windows]{ext_wp|Microsoft_Windows}.
The Perkify distribution provides thousands
of command-line tools and support libraries,
offers the prospect of personal web servers, and more.
To keep up with additions, discussions, and updates,
subscribe to the Perkify mailing list at ([$url]{}).

### Original Motivation

The open source community has produced a wealth of software,
much of which could be of use to the visually disabled.
For example, there are text-based applications
for processing audio, documents, images, and more.
There are also a number of specialized programs
that are intended to assist blind and/or visually-impaired users.

Unfortunately, installing and configuring this software
presents a largely impassable barrier to entry for many users.
Issues of library and operating system incompatibility
can make it difficult or even impossible to install packages.
Worse, the attempt to install software can destabilize the operating system,
causing existing software to malfunction.
Even when everything goes "as designed",
the process tends to be confusing, tedious, and time consuming.

The [Perkian Project]{con_ove|Perkian_Intro} has been
cataloging and evaluating accessibility-focused 
(and more generally, text-based) software,
in the hope of making it more widely available.
Eventually, Perkian may be released as a Linux distribution
for [mobile phones]{ext_wp|Mobile_phone},
[subnotebook computers]{ext_wp|Subnotebook}, etc.
In the meanwhile, Perkify provides a way to add this software
to personal computers.

The [LightHouse Labs talk]{con_ove|RM_2019_0508_LHL} page
is adapted from a short presentation I gave
at the [SF LightHouse]{cat_gro|LHBVI} in May 2019.
The first part discusses Pete's Alley;
the second part discusses Perkian
and describes the general approach taken in Perkify.

### The Text-Based Camel 

Once one lets the nose of the text-based camel into the tent,
keeping the rest of the beast outside can be a challenge.
Indeed, we seem to have invited the whole caravan inside.
However, if the result is our desired
"well-equipped workshop, just down the hall", maybe that's OK...

### Project Approach

The Perkify distribution begins life as a copy of [Ubuntu]{ext_wp|Ubuntu},
a "batteries included" version of [Linux]{ext_wp|Linux}
that is intended for end users.
Specifically, we start with [Vagrant]{ext_wp|Vagrant_(software)}'s
current, official Ubuntu "box",
which uses [Virtual Box]{ext_wp|Virtual_Box} as a "provider".
At this writing, the `vagrant init` command looks like this:

    $ vagrant init bento/ubuntu-19.04 --box-version 201906.18.0
Then, using [Debian]{ext_wp|Debian}'s
Advanced Package Toolkit ([APT]{ext_wp|APT_(software)}),
we explicitly install a "wish list" of a few hundred packages.
APT then satisfies thousands of dependencies and recommendations.
All told, the current release (0.2.0, at this writing)
includes about 4000 packages and compresses to about nine GB.
This means that you'll need 20-30 GB of free disk space
to install this release (and future releases may be even larger).

Although we make sure that none of our APT installations "fails",
it's very unlikely that every package is properly configured.
In particular, packages which require access to I/O hardware
are unikely to work at the moment.
(See [Perkify - Issues]{con_ove|Perkify_Issues} for details.)
However, we do have a release that folks can download and try out.
So, come on in; the water's (erm) wet...

#### Virtual Machines

Because Perkify's approach is based on
[virtual machine]{ext_wp|Virtual_machine} (VM) technology,
a short primer may be in order.
VMs allow software to pretend that it is running
in a different environment than the host computer provides.
This lets it sidestep various kinds
of [operating system]{ext_wp|Operating_system} incompatibilities,
including different [kernels]{ext_wp|Kernel_(operating_system)},
[file system]{ext_wp|File_system} layouts,
[libraries]{ext_wp|Library_(computing)}, and

Specifically, we use Virtual Box,
a [hypervisor]{ext_wp|Hypervisor}-based virtual machine monitor.
This lets our Ubuntu-based VM run as an isolated "guest OS",
avoiding unintended interactions with the "host OS".
Vagrant, an advanced tool for VM management,
allows all interaction to be performed via the command line.
Keyboards can work wonders, in the right hands:

> In [Star Trek IV: The Voyage Home
Chief Engineer Scotty<br> is trying to use
a first-generation (ca. 1986) Macintosh.

> Scotty: "Computer?", ..., "Computer?", ...<br>

> Dr. McCoy hands him the (boxy, single-button) mouse.<br>
Scotty: "Ahhh...  Hello, Computer"</br>

> Dr. Nichols (perplexed, but helpful): "Just use the keyboard."<br>
Scotty: "The keyboard...  How quaint!"</br>

> Scotty types furiously for a bit, then leans back, satisfied...</br>
Dr. Nichols (astonished): "Transparent Aluminum ?!?!?"

> -- [Great Moments in Star Trek History - Hello, Computer
     ]{} (video)

### Usage Overview

Once the Perkify VM is installed and running,
it can be accessed in various ways.
However, the most common modes will be command line and web access.
In either case, the VM acts like a mostly-independent Linux box
(with customizable amounts of file sharing).

Command line access lets the user obtain an interactive
[shell]{ext_wp|Unix_shell} session on the VM.
All of the normal Linux commands (e.g., `cd`, `ls`, `pwd`)
are available, along with thousands of added commands.
Web access supports [browser]{ext_wp|Web_browser} sessions
on [personal web servers]{ext_wp|Personal_web_server} running in the VM.
X11 access supports GUI-based applications (aka clients)
which run in the VM but display in an X11 server on the host.

By default, virtual machine access is limited to the host OS.
This can also be customized,
allowing access from other computers, cell phones, etc.
Please exercise suitable amounts of care:
web access can be controlled pretty easily,
but you probably don't want to allow command-line access for everyone
within range of your computer's [Wi-Fi]{ext_wp|Wi-Fi} signal!

### Getting Started

The [Perkify - Install]{con_how|Perkify_Install} page
describes the steps needed to install Perkify and its prerequisites.
Once things are working, you can move on Perkify's
[Package Index]{con_ove|Perkify_Pkg_Index}, and
[Package List]{con_ove|Perkify_Pkg_List} pages.

At some point, be sure to check out the
[Perkify - Index]{con_ove|Perkify_Index} page.
It's an informal, hand-edited index of pages on Pete's Alley
that are related to Perkify.
Finally, to keep up with announcements and discussion on Perkify,
be sure to join the [mailing list]{}.

To be continued...

[ zoo ]

  snippets    = '...'