The Commandments Of Computing

Everyone is a developer and an engineer. No one is "only" a user. Concessions
in design must not be made to accomodate or encourage ignorance.

A computer's operating system must be text-based. It is acceptable to have a
GUI that sits on top of the CLI, but the basic operating system kernel must
be text-based, and provide an option to boot into a pure CLI mode. Text modes
do not require special graphics drivers to be loaded, and therefore greatly
reduce driver overhead. (So-called "safe modes" which are graphical are
inefficient and foolish.)

All computer code must be open-source. Selling software for money is fine,
but all source code must be included with the software. This applies to
hardware, as well: All hardware products which include firmware ROMs must
come with the complete firmware source code, and all electronic devices must
come with complete circuit schematic diagrams.

The documentation for any product must fully explain every command, feature,
file, and component that the product consists of. Providing this information
only in separate "developer kits" is not acceptable; everyone is a developer
and an engineer.

A user must be able to have fullly local control over their machine.
Architectures which depend on remote connections like ASPs (Application
Service Providers) or "thin clients" are wrong.

Computer support techs must be familiar with all hardware and software. There
are many hardware devices and software programs available for computers, and
when certain combinations of these come together, virtually any conceivable
conflict can be created. Therefore, all support techs must be familiar with
all hardware and software available in the world (regardless of whether it is
manufactured by their company or not), because otherwise their support is

Computer hardware should, when possible, be made such that it can be
constructed to be easily openable and removable with bare human hands,
without the use of any tools (including screwdrivers). When this is not done,
valid and well-thought-out reasons must be provided (such as when creating
the casing of a hard disk drive).

A company must avoid using proprietary hardware or software protocols. The
only exception is if no other standard exists, and the proprietary technology
achieves something genuinely useful. If an existing open standard already
exists, a company must not create a proprietary standard which does the same
thing. In cases where proprietary technology is created due to lack of an
existing open standard, the technology must be fully documented, with all
applicable source code and diagrams shipped with the product, resulting in a
new open standard.