Program your computer
---------------------

What is a computer?  Let's ask dict.

    $ dict computer

From The Free On-line Dictionary of Computing (30 December 2018) [foldoc]:

  computer
  computing
  
     <computer> A machine that can be programmed to manipulate
     symbols.  Computers can perform complex and repetitive
     procedures quickly, precisely and reliably and can store and
     retrieve large amounts of data.  Most computers in use today
     are electronic {digital computers} (as opposed to {analogue
     computers}).

A machine that can be programmed.  But programmed by whom?  The
definition doesn't specify, but I'm going to suggest an alteration:

     <computer> A machine that can be programmed by its user.

From this point of view, anything that you can't easily program
yourself is effectively not a computer.  Effectively, it's
an appliance (at best).

But why the pedantry?  Why would you program anything for yourself?
After all, there's a veritable army of professional programmers out
there, clambering over themselves to get you to run software that
they've written!  And their programs are *polished*; way better than
you or I could accomplish on our own.

If you asked me, I'd say there are several good reasons.

1. Nobody understands your needs better than you do.
   You might think that your needs are perfectly catered for by other
   people's programs, and maybe that's true!  But I find it hard to
   believe that there's _nothing_ you'd change if you had the chance.
   Even something as mundane as an annoying key binding or a
   frustrating dialog layout is something that exists only because,
   marketing aside, the program was written by somebody else for
   somebody else.  Not to mention the truly malicious anti-features
   often present in commercial software, such as user tracking, DRM,
   etc, etc, ...

2. Software you've written yourself is software you can easily change.
   Free software written by communities generally solves the problem
   of overtly user-hostile software, and in principle allows you to
   customize it to your whims, "in principle" is very different to "in
   practice".  Sure, you could spend your entire Saturday figuring out
   how to build GIMP so that you could finally rid yourself of some
   RSI-inducing key binding, but realistically?  It's not gonna happen.
   Contrast this with anything you've actually written yourself, and
   the difference is night and day.  The activation energy is
   essentially non-existent.

3. Programming and computers that permit you to do it are dangerous.
   Like any powerful magic, programming and user-programmable
   computers can be used for things that not everybody wants you to be
   able to do.  Some of these things are genuinely bad.  Others are
   arguably good, but inconvenient to powerful entities.  Thus, my
   final argument for writing your own software is that it helps keep
   this most important activity alive.  If nobody actually uses this
   amazing user-empowering ability, there won't be anybody to complain
   loudly enough when it's taken away "to thwart the terrorists" or
   "to protect the children".

We're quickly forgetting what makes computers special: their ability
to empower their *users* by abstracting away tedium, allowing *users*
to operate on a higher level. Just as we forgot what made the internet
special: seamless and free communication between *users*, geography be
damned. By forgetting why being able to program our computers ourselves
is important, we leave ourselves vulnerable to that ability being removed
by those who consider it inconvenient.

Use it or lose it!

---
p.s. Shout-out to matto, pi3145, prahou and co over at
#phloggersgarage on libera for the encouragement to post a bit more!
See gopher://box.matto.nl/0/pg.txt