Active
Objects
are said to be active if they have
side effects,
passive otherwise.
This notion depends on the space of variables considered as
meaningful: a pure function
Administration
The fact of managing information about people or computer objects,
that is not directly needed as an important result,
but is useful to achieve proper scheduling.
The institution or software that manages it.
The right attitude is to bypass administration
when it is not needed (that is, most of the time),
but to cooperate with it on a regular basis, because it can be helpful.
Always remember that administration is to serve man,
not man to serve the administration.
The role of the administration is not to decide, only to
make information available to all (primarily concerned people).
Decisions should be deduced straightforwardly by laws from collected
information, and may be applied by the administration or other institutions.
Of course, the administration must be designed according to the previous
principles, or else the system is heading toward
Centralization.
Centralization
Centralization is the fact or tendency to have a one decision center
that everyone will have to refer to and obey, a place where all activity
is concentrated, a software portion that all programs jump into.
It means that the center will be responsible for everything to go well.
Centralization is the simplest design: have a one lord who will rule
the land, and transfer all worries, all responsibilities, onto him.
Even if perfectly honest all well behaved, the central referee is limited in
the amount of information he can handle, and the speed with which he
can handle it. Soon, he won't be able to treat all the requests that
everyone has to address him. So he'll demand always more and more power
to be able to complete his duty; and people will have to wait for his
decisions, and obey to his orders. And when he doesn't have time at all,
people will have to do things themselves, without any help from him, and
sometimes despite his irksome and inexpert administration, or even against
his fascist police.
He can be a dictator, or a central administration;
as far as computing is concerned,
He can be a hardware or software "vendor",
a "server" computer or application,
or an operating system "kernel".
The problem is not his lack of kindness and good will,
even if with heady power and false-hearted sycophants,
He may lose all occasions to show it.
The problem is that even if He remains upright,
a system based on centralism heads straight to disaster.
See
Dictatorship,
Communism,
Democratic Centralism,
Server,
Kernel,
Vendor,
Monopoly,
Computer industry,
Committees.
Committees
Committees are a most useful way to take technical
decisions. Technicians with different points of view meet, discuss, and vote.
However, there is a great danger about committees:
firstly, when some people not being represented and defended in the committee,
the committe will completely disregard those people's interest,
perhaps vowing them to a certain death, or to eternal doom.
Such committees may share out anything subject to them as a loot,
and define private grounds for committee members to establish their
domination upon.
Then, when the committee members do not feel bound enough to the interest
of people they supposedly represent,
so they will start doing work for themselves;
they will issue irksome pernicky rules, because it makes them feel
useful and knowledgeable;
and they will divide their work into an arbitrary hierarchical layering,
because it allows them to summon more subcommitees made of even more idiotic
eggheads than themselves, and feel superior.
That's why any committee should be strictly and controlled,
its members democratically elected or dismissed,
and its debates and decisions never secret; that's also why committee
members should be considered as responsible of any harm they may cause.
Only that way can those serious traps be avoided; for committees are
needed whenever technical decisions are necessary.
See
Administration,
Computer industry.
Computing Freedom
The freedom to use computers according to one's personal needs and
tastes, and to undertake any computer work that won't deprive other
computer users, while no one will be allowed to deprive anyone else
likewise. It is freedom to have access to all existing common computer
knowledge (computer education), and to freely reuse it at will.
It is freedom to pay or to be paid for computing services at a rightful
price as determined by the fairest and finest competition.
See Computing Liberalism.
Computer Liberalism
It's the application of Liberalism.
It proclaims that only through
computing freedom
can the computing world achieve power, performance and reliability.
This means computerware consumers must have access to real information,
not advertisement or propaganda, and be free to discuss computer problems
and acquire computer education.
This means that there must be the fairest possible competition
between computerware providers: no single vendor or vendor trust
should ever have any monopoly;
This means .....
This freedom is being able to adapt and extend the system
according to one's needs and taste, while still reusing existing parts
of the system one already has It is the freedom not having the choice
to stick with the lame tools currently provided by a company or rewrite
everything from scratch. It is the freedom not being subjugated to a
computer vendor ever after you finally choose between those monolithic
software. It is the freedom not having to buy ever bigger computers to
support ever growing packages that contain ever more features you do not
need and not the ones you do need.
at the finer possible grain of software. This theory of freedom constitutes
some kind of computer liberalism. It is fight for individual freedom against
undue company (or worst, state) monopoly to achieve the natural selection of
the best for the greatest welfare of all. The arguments for liberalism have
been sufficiently developed since the late eighteenth century, so that we do
not have to repeat them extensively. We just point out that the same
arguments apply to the computer market as well as any market, and that by
providing a most secure fine-grained modular system, the fairest possible
competition and greatest liberty is made possible.
Computer Industry
Considering the
Computing System
as a whole is the most natural thing;
but for mostly commercial reasons,
this is not what the
computer industry
does and provides to its purchasers. Instead,
the computer industry imposes a layered paradigm where
-
an Operating System,
maintained exclusively and jealously by a computer vendor's team,
provides the lower layers of interaction with the machine,
while
- applications are secretly written by software corporations,
that
- programs are privately developped by engineering companies,
that are used by
- end-users, customers who can only choose which master they
will be the slave of.
This paradigm, based on secrecy and coarse-grained delivery,
generates wondruous revenues to computer corporations,
while the customer, who must pay for these or be a pirat,
obtains very low service quality:
- corporations and intermediates earn a lot of money at each step of this
commercial chain;
- because of secrecy, they also can impose arbitrary fees to those in the
next link of the chain to use their products;
- by imposing secrecy, they forbid any kind of lawful competition
based on rightful arguments and objective comparison;
- by providing coarse-grained software,
they can sell the same fine-grained modules several
times to the same customer, sometimes without bringing any new modules
really useful to him;
- by maintaining this secret clustering, they forbid third parties
to provide replacements or extensions for their flawed tools, but by
short-circuiting them;
- by the former, they a brake on computer progress, and deprive
customers from reliable computerware adapted to their needs;
- by maintaining this system, they also create monopolies,
which allows them to impose arbitrarily high prices disproportionate with
actual service rendered and development cost.
This system recalls that used in the mafia, some sects, and actually is
the same as in any hierarchically organized mob.
Of course, all this layering is purely arbitrary, with no efficiency or
design ease reason.
The victim is the next link of the chain (sometimes
all links, when a corporation is present in the whole chain), and
ultimately, the customer.
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:
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 to 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.