At the end this system recalls that used in the mafia,
some sects, and actually is the same as in any hierarchically organized mob.
But don't take it wrong, and let's just analyze why this happens.
Firstly, there is no such thing as a world-wide conspiration against
the customer.
Instead, there is a wild competition,
where everyone is looking for his own short-term profit,
without any law or regulation organism,
without any professional ethics.
That is, we face some law-of-the-strongest anarchy, which naturally
structures itself in this mob-like organization.
The Tunes project strives to provide means for a fair competition
to appear.
Also see
Computing System,
Computing Freedom,
Computing Liberalism,
Operating System,
Programmers,
Users,
End-Users.
Computing System
A computing system, as the name says, is a system that
allows men to do computations. Do not mix it up with a computer system
which is may be any kind of system based on a computer. A computing
system is for dynamic human interaction, so that men may express their
creativity, and adapt to an ever changing world.
It encompasses all of a computer's hardware and software
that make it interact with the external world of human beings.
Also see
Tunes,
Operating System.
Computing World
The computing world, as the name says, is the concept
encompassing all computers in the world, that are considered
as being running different versions of a common
Operating System,
and linked to a global network.
In fact, using our OS definition, the global OS
is the greatest common divisor of all existing systems (that is, not much),
and even computers remotely linked to an actual network through weekly,
monthly, or yearly floppies is considered as being on the global network.
Expediency
We say that something is expedient if it benefits
one's (or a few ones') short term interests, even though it
may be disastrous for the global long term welfare.
Mass murdering and concentration camps are expedient to
dictatorial governments;
racketing, selling drugs and weapons are expedient to the mob;
industrial monopoly is expedient to the owners of these monopolies
and partners of trusts (a.k.a. the legal mob);
wasting the Earth's natural resources may be expedient to those who exploit
these;
wasting human work is expedient to those who sell broken cheapo products in
a cheated market with unfair competition;
but all these are extremely harmful to the world.
We thus oppose mere expediency to real Utility.
In the Tunes project, we refuse any expedient solution to problems,
and seek really useful ones.
God
Considering a system or universe, anyone that has power to defy the laws
of the universe is a God.
Then of course a God does not exist
inside the considered universe, but in some outer greater universe,
even though he might constantly show his presence through perpetual miracles
(see input/output).
He may also do punctual miracles, but these are completely beyond
understanding from inside the system (as a corollary, anything that's
not completely beyond understanding is not a miracle).
Particularly, the human user who can shutdown a computer is a God to the
computer programs running on the computer.
Also see Holy, root.
Grain
The grain of a system is the minimal or typical size of objects this
system can handle. The larger this size, the coarser the grain;
the smaller this size, the finer the grain.
The coarser the grain, the more expensive it
is to create, handle, maintain, dispatch, objects.
Thus, computing liberalism tells us
that to have a system that adapts better, you must reduce the grain as
much as possible.
However, handling objects may involve
administrative
overhead.
Thus, to achieve a better system, you must also reduce the administratrivia
together with the grain, wherever possible.
Traditional Operating Systems have a very high grain
(the basic object size being a file, and the typical packaging grain being
the huge "application"), thus yielding poor performance and adaptability.
The unsecure C language forbids a
smaller grain. As long as OSes will use such a language, the
computer industry is bound
poor results.
Hole
See security hole.
Holy
That something be holy shall mean that it is absolute and does not
depend on any human-reachable thing.
Some pretend that (at least some) words are holy. That's pure nonsense.
If you're not convinced, take the word "God",
and pronounce it to a french man, he will understand you refer to a tool
which decency prevents me from saying here.
The latin for "God" is "Deus", which if you pronounce it in english,
is "deuce" which is a scoring term in tennis.
Thus, for a word to be holy, the language it is spoken in must be holy too;
however, History tells us how quickly languages appear, evolve and disappear,
as humans do and undo them, and thus are not holier than humans; now, humans
are quite human-reachable, and not holy at all.
Actually, humans can only reach human-reachable things, thus no holy thing
is in a human's grasp. Conversely, nothing in human grasp is holy. Thus,
anything we can successfully talk about is not holy, and there's no point
trying to talking about holy things.
If you don't want to apply this to the human world, at least you can
apply it to the computer world, where nothing is holy as everything was
decided and can be changed by humans.
Note that happily, things do not need be holy to be useful.
Isolation
When a computer object is not secure,
it must be isolated from possible sources of failure.
In traditional OSes,
processes are so
unsecure that
the system has to completely, systematically paranoidly isolate processes
one from the other.
This isolation is like having people put in quarantine to prevent possible
diseases to propagate. But it also prevents people from interacting one
with the other (i.e. to have any social life), and finally people have to
cheat it to live at all, and it then loses its few advantages after having
wasted a living.
Kernel
Some central part in a software program.
As any centralized bloat, it turns out to be easier to design,
but completely unefficient to use.
Also see
Centralization,
Microkernel.
Liberalism
In its original, nineteenth century sense,
liberalism is the theory which shows
that in any evolving system, there is a natural
selection by survival of the fittest to that system's constraints,
so that to achieve the best state possible,
you must allow the fairest competition,
and the broadest liberty, so that
people may automatically adapt to all of the system's
natural constraints.
Liberalism is commonly applied to economy,
where it tells that to achieve prosperity,
you must firstly
allow the fairest (not the wildest) competition between companies
to have the quickest adaptation.
Particularly, information should be freely available,
and discussion freely allowed, so that people may compare and choose;
choice should be free, and not based on prejudices.
And secondly, you must
encourage free enterprise (not free crookery)
and small businesses when possible, to achieve the finest
adaptation.
Particularly, trusts and monopolies should be fought whenever
they eventually appear, and stricly, democratically,
controlled when they are inevitable.
Liberalism does not apply only to economy,
as show the works of John Stuart Mill in the moral sciences,
or Charles Darwin in the natural sciences.
Some even speak about economical or biological Utilitarianism,
or moral or social Darwinism !
In the Tunes project, we apply those ideas to the
field of computing systems, that is, we defend
Computing Liberalism.
All this has of course nothing to see with the "liberal" parties
of various countries, who claim to defend the name, but seldom the ideas,
and never the according policies.
Liberty
John Stuart Mill has written the excellent essay
"On liberty" (1859), which I recommend to everyone.
It will explain much better than we may what liberty is,
at least what we think about it in the Tunes project.
Whereas it is very well worth the purchase of a paper copy,
it is also available on-line
"here" (283K),
or gzipped
here
(103K).
Man
Some fragile machine that takes several tens of years to manufacture,
with a low success rate, and only seconds to get definitely out-of-order.
The most powerful and most versatile machine known to date, however.
Meta-
A prefix that means beyond, or transcending.
The Webster says:
used with the name of an discipline to designate a new but related discipline
designed to deal critically with the original one (e.g. metamathematics)
We also apply this prefix to objects in the meta-discipline,
e.g. if the discipline deals with bars, the meta-discipline
will deal with meta-bars.
Meta-Space
An object is defined in a space, in a context. This space itself is
defined in its own space or context, which we name the meta-space.
Microkernel
As people understood that kernels only introduce
overhead without adding any functionality, they
tried to reduce kernel sizes as much as they could. The result is called
a microkernel, which is pure overhead, with no functionality at all.
The latest craze in Operating System research is to
boast about using a microkernel. Note that the size of the OS is not
reduced at all, as the functionality has only been moved elsewhere.
Nucleus
See
kernel.
Object
a Unified concept to manipulate
computer abstractions. The name object is commonly used
for that, although the first unified frame to manipulate
computer abstractions, namely LISP,
used lists.
Look out the fake:
It's also a fad to be "Object-Oriented" !
Object-Oriented
There's a craze about any new software claiming to be
Object-Oriented.
But if you ask people what it means to be "OO",
most won't be able to tell anything,
because it's only a craze.
The meaningful idea behind this dull fad is
that of having a unified
way to manipulate objects,
but few understand it even partially, and even
fewer are those fully conscious of what it means.
For true OO languages, see
BETA,
Dylan,
SELF,
For languages with true OO extensions, see
LISP,
FORTH,
For false OO languages, see
ADA,
C++,
Visual BASIC,
Open
An open system is a system that is ever subject to
dynamic enhancement, to external suggestions, whose development team
is ever awake and open-minded
(i.e. receptive to arguments or ideas: IMPARTIAL).
The only meaningful criteria for an open-mind, besides immediate interest
(see expediency), is
rationality
and selection through free competition
(see Liberalism)
Open Development
Open development means that a project is constantly publishing
its result and accepting feedback. Liberalism tells us that if an
open-developped project has got enough publicity, it will succeed better
than any other one.
Linux and GNU are projects under open development,
to write a free implementation of the POSIX specifications
(i.e. a Unix clone), and is quite successful as being the most popular
and supported OS by internetters. Tunes is committed in open
development, though its goals are quite different from Linux:
Tunes should design a new system before to implement it.
Operating System
In the Tunes project, any common cultural background
between different computers.
In the false-hearted paradigm imposed by
computer industry,
an arbitrarily delimited part of a
computing system
that only deals with limited, first-order, low-level, services
while inducing severe "context-switch"
overhead for every single operation.
Overhead
Unproductive expense.
Administration is known to produce a lot
of overhead.
Passive
The opposite of active.
Persistence
The quality of being
persistent.
Persistence is a natural concept, according to which an
object
cease to exist only when nobody thinks about it anymore.
The opposite concept, as proposed by all "industry standard" operating
systems, is that the users are forced to explicitly force their data to
be "saved" and "restored" to and from persistent media, in unsafe binary
files. This most ridiculous concept results in systems being difficult,
slow, and error-prone to use at all levels, so that no one is satisfied,
except the #$&*"%! who sell those systems.
Persistent
An object
is said to persist, or to be persistent if it continues to
exist and keeps its state accross multiple sessions or shutdowns of
the computing system.
See Persistence
Process
A process is a very
coarse-grained
active object.
We know from computing liberalism
that coarse-grain is bad, so that processes should be
avoided when possible.
However, in traditional systems, processes are the basic
execution unit, and are very coarse-grained. In fact,
traditional systems use
unsecure languages
(like C),
and thus all programs obtained are intrinsicly unsafe, and thus
need be wrapped into some paranoid protection frame for the system
to be secure at all; this frame is the
process.
Programmer
Someone who programs a computer, who gives orders to a it.
In traditional systems, users are opposed to
programmers.
This is not the case in Tunes; everyone works according to his own
knowledge and proficiencies, and produces or consumes objects independently
from these objects' technicality.
Pure
That has no
side effect
Religion
In its original meaning, the religion is a collection of rites that
constitute a link between man and man, between man and nature,
so that men respect the resources of nature, and the work of other
people.
Philosophers showed how ultimately one's religion is one's lifestyle,
one's habits and manners.
In this original meaning, religion is useful when and as long as it helps
people locate themself with respect to the world; sharing the same religion
also helps people locating each other, which is only an easy case of the
more generally useful fact of knowing each other's religion.
Now, the common meaning associated to this word is quite perverted
by the superstition of the poor, the interest of the mighty, and the
confusion between container and contents cultivated by slimy and bogus
intellectuals.
According this meaning, a religion would still be such a collection of
rites, but those rites would be holy,
and would have to be followed for their own sake,
as they would allegedly contain some absolute truth
revealed by a god through prophets.
Whereas religion in its original meaning deserves much respect,
the second of religion is deeply contemptible. The mere facts that
religion is acquired and not innate, that so much different people
follow so much different religions, that religions appear, evolve and
disappear with men, shall show how silly the idea that any religion
contain anything holy is.
If you are shocked by this glossary entry, please remind that we are
only talking about computers ;-> and computer religions
(see your nearest jargon file).
Root
See Super-User.
Security
Security is the dual concept of Liberty:
.....
side effect
An operation is said to have side effects if it modifies
the context in which it is executed. Else, it is said to be pure,
or reversible.
This notion depends on the space of variables considered as
meaningful:
a function pure function in some
context may not be so pure when you consider its implementation.
For example, in the limit case, if you consider that storage is limited,
then no function is pure, but one that does nothing is impure,
because all functions must consume memory to store their result...
Super-User
In all systems, system management is done by some human users who are
given all the power on the system.
In traditional systems,
all users are a security hole
and super-users are a super-security hole...
In Tunes, we have the same concept of beings that have total control
on the system, but rather use the word God, because it
already exists in non-technical vocabulary, and we dislike unneeded
technical jargon, and at the same time it isn't tainted with the same nuance
of security hole as the word "super-user".
Thread
The standard model for computing is to consider a computer as a sequential
machine (which single CPU computer actually are). Parallelism is then
modelized (and simulated/faked inside sequential computers) as multiple
sequential machines interacting; each virtual sequential machine is named
a thread of execution.
In traditional OSes, threads are light, user-rewritten versions of
the OS's processes.
When programmers see that their OS's process concept is too bulky,
that their OS's scheduler introduces too much overhead, that they
need a potentially high number of asynchronous procedures that share data
quickly and don't overflow the "process table" or do numerous system
calls, they use thread packages to cope with it. Thread packages are
unsecure dirty (but sometimes necessary) hacks.
TUNES
Actually, Tunes means
Tunes is a Useful, Not Expedient, System,
which name refers to J.S. Mill's
"Utilitarianism"
The philosophy behind Tunes is deeply inspired by J.S. Mill's
works, and particularly
"On liberty".
Unified
The Tunes project proposes that there be Unified frame to
manipulate objects;
that is, all computer abstractions are equal,
and may equally be subject to any operation,
without any arbitrary prejudice or discrimination,
including "code" vs "data", or "persistent" vs "transient".
The unified concept for computer abstractions may be named
Object,
or term,
or list,
or pattern,
or God,
or whatever; it doesn't matter.
What counts is the Unity, or Simplicity that
flows from this unified point of view, which frees computing from
stubborn constraints; it abolishes prejudices about the objects.
This is the meaningful concept behind the "Object-Orienting" craze.
It means that all computing objects are made equal in front of man.
See SELF......
Unsecure
The opposite of
secure
User
Someone who uses a computer or a piece of software, or whatever, in any way.
Sometimes opposes to a provider of this whatever.
Note that we at the Tunes project make no arbitrary distinction
between using or programming. Programming is using computer
programs, compilers or interpreters, so programmers are users (they also
use a lot of other programs, as most computer users). Conversely,
by interacting with a computer, any user actually programs, even without
knowing it. Hitting a key is some trivial kind of programming, but it is;
writing a short macro is programming; filling a form is
programming. Thus computer users are programmers.
Of course, there are different levels of programming, more or less
proficient programmers, programmers with more or less technical,
theoretical, or practical knowledge; there are infinitely rich different
ays of using a computer.
But you may not cut a clear line to differentiate "users" from
"programmers", or "programmers" from "system developers" that would not
be purely arbitrary and without any intrinsic meaning
(in mathematical terms, we'd say the space of computing levels is connected).
Thus, the system must provide an equally integrated interface to all possible
computing abstractions the users-programmers
(the term "user" will be used herefrom in this text to encompass any
kind of using the system)
We must distinguish the current computer technical proficiency of a
computer user from
his being providing or consuming information to others.
One may provide information such as text, sounds, images, without
computer programming proficiency, or write very complex programs without
ever publishing them. Conversely, one may use (read) a computer document
See Programmer.
Users
Traditional systems enforce "security" paradigm of a finite number of
users, each controlling his own files, and having no right on those from
others.
Though it is certainly more secure than systems with no security at all
(e.g. MS-DOS),
such finite security systems are just as unsecure as soon as arises the
need to share any data:
whenever a program
To circumvent this difficulty, many propose that no sharing is done;
but then it is sometimes (it especially was in the time when no free Unix
was available to the masses, and perhaps still is when few users are
concerned) better and cheaper to get a smaller machine for each human user
than to get a big centralized one bogusly shared between them.
Others (see VSTa) have invented infinite systems
.....
In Tunes, there is no such concept of static "user" erected as a
fundamental axiom of the system. Instead, actual human users are free
to define many variously specialized contexts, having different signatures
as needed, and free to dynamically manage and share their resources at will,
ever creating new contexts owning part of the resources, as needed. Again,
dynamism and higher order, which allow adaptation, wins over lame finite
static allocation.
Utility
We say that something is useful if and only if it improves the world.
Utility is not an absolute concept:
it depends to both to the moral concept of "good",
and to the set of considered possible alternatives.
An excellent reference is
"Utilitarianism"
by John Stuart Mill, 1863.
Utility is opposed to mere Expediency,
which is helpful only for the local short term interest of some people,
whereas Utility implies global and/or long term moral moral considerations.
In the Tunes project, we do try to develop and follow some moral;
however, the techniques of fine-grained competition we develop are generic
enough so that according to the way they are used
(i.e. to the way feedback is provided to potential and actual providers
of competing modules),
they will be the best developping techniques for any considered moral.