OVH Cloud OVH Cloud

Consideration sur les notions de facilite de configuration

15 réponses
Avatar
Yannick Patois
En francais, Bonjour,

A mon tour de demarrer le troll de l'ete.

Je vais tenter de definir le contexte dans lequel je me place, puis par
rapport a ce contexte de definir une notion de "facilite de
configuration", et voir ensuite comment elle s'applique aux systemes
existants et conclure.

Tout d'abord, le contexte. Je ne m'interesse pas ici aux hackers, mais
bien aux personnes non specialites et qui ne le seront jamais mais qui
doivent utiliser et configurer leur ordinateur au quotidien (cas de la
plupart des ordinateurs familiaux). Ces personnes ont aucunes notions
theoriques en informatique, et une experience limite des systemes
d'exploitation. De plus elles n'ont ni le temps ni la motivation d'en
apprendre beaucoup.

Fournir a ces personnes un systeme fiable, robuste qu'ils puissent
utiliser sans faire trop appel a une aide exterieur me parait important.

Je vais definir la Facilite de Configuration pour Non Experts (FCNE),
par rapport a la population defini precedemment: qu'est-ce qui pour elle
sera plus simple ?

Bien sur, toute generalisation est abusive, et je risque de me planter
parfois, j'espere toutefois arriver a exprimer des tendances averees.



Mais tout d'abord, un peu de definitions.

Soit \Omega l'ensemble des etats de configurations possibles sur une
machine. Je restreint volontairement \Omega aux elements
"configurables", meme si cette notion reste un peu flou, je pense que le
discours reste valide si l'on etends \Omega a l'ensemble des etats
possibles (en gros 2^{40.10^9*8}*2^{256*2^20*8}*2^10, en imaginant un
disque dur de 40Go, 256 Mo de RAM et environ 1000 etats de la PROM).

L'etat E0 est un etat initial fonctionnel de la machine. Ce peut etre
l'etat juste apres installation du systeme, ou mieux, l'etat juste
*avant* installation du systeme, mais je prendrai la premiere
definition, moins generale mais qui possede plus de proprietes
interessante et suffit a la discussion.

Un sous-ensemble de \Omega est \Omega_{ok}, qui sont les etats dans
lequel le systeme fonctionne de maniere satisfaisante pour
l'utilisateur. Cette notion est tres floue mais ne peut etre evitee dans
la mesure ou c'est celle qui preocupe l'utilisateur. Nous allons
cependant nous interesser a un sous-ensemble un peu plus large mais
mieux defini, \Omega_{okc} qui est le sous-ensemble des etats de
configurations dans lesquels l'utilisateur a acces au systeme de
configuration de maniere totalement fonctionnel (il permet d'acceder a
l'ensemble des etats de configuration, ceci suppose bien sur que celui
ci soit stable - voir ci-dessous -).

\Omega_{ok} etant tres vague quoi que central, je vais introduire
\Omega_{coherent}, qui est l'ensemble des etats de configuration qui
sont fonctionnels et susceptible de repondre au besoin d'un utilisateur
non expert (par exemple, un etat dans lequel apache charge le module php
mais dans lequel aucunes extensions n'a ete defini pour l'appeler n'est
pas coherent).

Le systeme de configuration est une fonction F_c qui fait passer le
systeme d'un etat E1 vers un etat E2 (E1, E2 inclus dans \Omega) sous
l'action de l'utilisateur.

Un systeme de configuration donnee ne permet pas forcement d'adresser
tout \Omega, mais plus probablement un sous-ensemble \Omega_{Fc(E0)}
depuis un etat initial E0 (accessible en une ou plusieurs etapes, par
exemple, E3=Fc_2(Fc_{1}(E0)) appartient bien a \Omega_{Fc(E0)}.

Simplification d'ecriture: \Omega_{Fc(E0)} sera ecrit \Omega0 dans la suite.

Je dis que le systeme de configuration est stable si quelque soit E_1 et
E_2 appartenant a \Omega0 alors il exite une serie fini de
transformation Fc_i tel que E_2=O_{tous les i}Fc_i (E_1) (O est ici la
composition de fonctions: Fc_1(Fc_2(Fc_3(....Fc_i(E1)).


- Il est evident que \Omega0 est inclus dans \Omega_{okc}, l'inverse
n'est pas forcement vrais: jette par des vent mauvais dans un etat E1
hors de \Omega0, il est possible qu'une serie de fonctions Fc nous y
ramene, c'est meme souhaitable (sinon le systeme doit etre repare par un
expert).

- Avoir un systeme de configuration stable est important. L'inverse veut
dire que l'on peu arriver dans des etats dont on ne peut plus revenir.

- Un systeme de configuration performant minimise probablement le nombre
d'etapes pour passer d'un etat a un autre.

- Une intervention exterieur (reboot sur CD ou disquette) est elle dans
\Omega0 ? Pour la discussion, je considererai que non, meme si en
pratique c'est parfois difficilement evitable. Ceci parce que sinon on a
trivialement \Omega0=\Omega, meme si c'est pas forcement "facile" a
obtenir. C'est pour cela aussi que \Omega0 a ete defini comme l'etat
*apres* installation. De la meme facon, un reboot en "mode sans echec"
ou avec des arguments autres que ceux par defaut sera considere comme
hors \Omega0 (essentiellement parceque ce sont des etats que
l'utilisateur non expert ne veut pas avoir a connaitre).

Dans la pratique, bien des systemes de configurations ne sont pas
stables (mettre "0" comme runlevel par defaut, par exemple).



Passons maintenant aux axiomes:

*** A/ Je pretends ici que si \Omega0 est inclus dans \Omega_{okc} la
FCNE est meilleure.

En francais, cela signifie que le systeme est plus simple a configurer
pour un non expert si quelque soit les erreurs que celui-ci fait, il se
retrouve toujours dans un etat ou il peut la corriger a partir de son
interface de configuration.

Justification: L'utilisateur non expert fera des erreurs (l'expert
aussi, mais moins et il aura access a des methodes d'experts pour les
corriger), si ces erreurs peuvent ammener la machine dans un etat ou le
systeme de configuration qu'il connait ne marche plus, il est coince et
doit faire appel a un expert.

*** B/ Je pretends que si \Omega0 est inclus dans \Omega_{coherent} la
FCNE est meilleure.

En francais, cela veut dire que le systeme est plus simple a configurer
si aucune fonction de configuration accessible ne peut mettre le systeme
dans un etat qui serait d'aucun interet pour un utilisateur non expert.

Limitation: j'aurais aime mettre \Omega_{ok}, mais cela me semble
impossible, il y a a developper la dessus, en gros, il faut que
l'interface de configuration lui presente des choix qu'il puisse
comprendre afin de les faire dans son interet.

Justification: en gros la meme que ci-dessus.

*** C/ Je pretends ici que plus l'ensemble des Fc est reduite meilleurs
est la FCNE.

Il doit exister peu de manieres differentes d'arriver dans un meme etat
E afin de ne pas compliquer la tache d'apprentissage.



- Considerations pour le hacker

Le hacker veut un controle maximal sur sa machine, pour lui, plus
\Omega0 se rapproche de \Omega, plus il est heureux, meme si en
contrepartis son systeme de configuration n'est plus stable, voir meme
peut planter serieusement.

Pour lui \Omega_{okc} se limite a "je peux deplanter en rebootant sur un
CD de rescue", et \Omega_{coherent}, il le fait avec ses petits doigts.

On voit deja que cela se distingue serieusement de ce que j'ai presente
des souhaits de l'utilisateur non expert.


- Consequences pratiques

* La configuration texte n'est pas adaptee a l'utilisateur non expert.

Justification: la config texte casse souvent les axiomes A et B et
toujours C.
Exemple, un fichier de config avec cette ligne:
RhostsAuthentication no

Casser C:
RhostsAuthentication no
RhostsAuthentication no
RhostsAuthentication no
RhostsAuthentication NO
(Une multitude de fonctions de configs ammene au meme resultat)

Casser B:
RhostsAuthentication yes
(L'utilisateur familial n'a pas besoin de cette option)
RhostsAuthentication Oui
RhostsAuthentication @#78)*&2
(ces deux entrees sont invalides, sshd se casse la figure, le systeme
est hors \Omega_{coherent})

Pour casser A, il faut suffit de modifier un fichier de config de base.
Par exemple, mettre dans un des script d'init la chaine:
reboot


- Qualites d'une interface graphique

Le gros probleme des interfaces graphiques de configuration sous linux,
et que souvent leur \Omega0g (espace de configuration accessible par
l'interface graphique) est:
a- tres petite devant \Omega0t (configuration par interface texte)
b- Ne couvre pas \Omega_{coherent}, ni meme \Omega_{ok}

a/ On y peut rien, on sait que c'est comme ca, c'est meme voulu.
b/ Tant que \Omega0g n'atteint pas \Omega_{ok}, le systeme est non
administrable par un utilisateur non expert.

Par contre, elles sont souvent assez bonne sur:
c/ stable
d/ inclus dans \Omega_{coherent}

Malheureusement, ce n'est pas parfait ici non plus, or ces points sont
cruciaux.

Pour moi, c'est sur le point b/ qu'il faut mettre les efforts dans la
mesure ou l'on souhaite pouvoir confier des machine a un environemment
non expoert type familial.


- Pour conclure, comparaison (subjective).

- Sous MacOS <10, on a \Omega0g a peu pres egal a \Omega_{coherent},
mais insufisant pour couvrir \Omega_{ok}. Tres stable et sort peu de
\Omega_{coherent}.

- Sous MacOS X, on a \Omega0g plus reduit que \Omega_{coherent}, mais
ouvrant a peu pres \Omega_{ok}, et \Omega0t, pour completer.

- Sous Windows, on a \Omega0g plus reduit que \Omega_{coherent},
probablement insufisant pour \Omega_{ok}, completer tient du cauchemar.

- Sous Linux, on a \Omega0g tres petit devant \Omega_{coherent},
totalement insufisant pour \Omega_{ok}, \Omega0t complete parfaitement.



Bref bref bref...


Yannick, qui a sans doute ecrit pas mal de conneries...


--
_/ Yannick Patois \___________________________________________________
| web: http://feelingsurfer.net/garp/ | Garp sur irc undernet |
| email: patois@calvix.org | |
| ATTAC dans le Pays de Gex: http://attacgex.ouvaton.org |

5 réponses

1 2
Avatar
Yannick Patois
Bonjour,

Merci de cette critique qui pointe mes erreurs et ommissions.

Christophe Delage wrote:
In article <cel3cs$ig1$, Yannick Patois wrote:
Perso, j'aime pas utiliser des lettres grecques pour les machins
pas bien definis, mais heureusement, dans la suite, ca s'arrange.


Je le laisse ou j'utilise un autre terme ?
J'ai pas d'idees...

Le systeme de configuration est une fonction F_c qui fait passer le
systeme d'un etat E1 vers un etat E2 (E1, E2 inclus dans Omega) sous
coquille: appartenant, pas inclus.



Oui, tu as raison.

l'action de l'utilisateur.
Un systeme de configuration donnee ne permet pas forcement d'adresser
tout Omega,
j'ajouterai meme qu'une fonction de configuration n'est pas definie

sur tout Omega. (genre, dans l'etat "j'ai efface le fichier
/etc/important" comment je modifie le fichier /etc/important ?)


Oui, tu as raison. Et une bonne interface ne doit proposer que des
fonctions définie pour l'état courant.

F_c est une fonction de Omega dans mathcal{P}(Omega).
(comme ca, F_c(E) = emptyset si pas definie)


C'est une maniere plus elegante de l'ecrire, si on veut.

et on peut rajouter :
pour tout E dans Omega, |F_c(E)| leq 1
parcequ'un processus de configuration est un processus deterministe,
c'est bien connu. (sic)


Si on admet que l'ordinateur est un systeme déterministe et que la seule
entrée est l'execution de F_c() alors ca doit etre vrais.

C'est effectivement un postulat implicite (mais raisonable) que j'ai
utilisé.


mais plus probablement un sous-ensemble Omega_{Fc(E0)}
depuis un etat initial E0 (accessible en une ou plusieurs etapes, par
exemple, E3ü_2(Fc_{1}(E0)) appartient bien a Omega_{Fc(E0)}.
Simplification d'ecriture: Omega_{Fc(E0)} sera ecrit Omega0 dans la suite.
avec ma definition, on peut rendre Omega encore plus cryptique :

(Cup_{c} F_c)^*(E0), c'est mieux non ? :)


Omega0, non ?


Je dis que le systeme de configuration est stable si quelque soit E_1 et
E_2 appartenant a Omega0 alors il exite une serie fini de
transformation Fc_i tel que E_2=O_{tous les i}Fc_i (E_1) (O est ici la
composition de fonctions: Fc_1(Fc_2(Fc_3(....Fc_i(E1)).


Je recapitule ce que j'ai cru comprendre :
- tu as un ensemble Omega
- tu appelles "systeme de configuration" un paquet de fonctions
partielles sur Omega
- tu choisis E0 dans Omega


E0 est sensé etre l'état inital, juste après l'installation, dans un cas
concret.

- tu consideres Omega0 la partie de Omega atteignable par ton
"systeme de configuration"
- tu dis que Omega0 est stable s'il est fortement connexe (pour
parler "graphes" parceque c'est classe d'utiliser le vocabulaire
d'une autre theorie, juste pour faire joli ;-))


Stable, ca serait juste connexe, le chemin pour y arriver peut etre non
direct.

(si j'ai bon, j'ai une remarque, la def du sys de conf est pas super
claire, elle dit "un sys de conf est _une_ fonction F_c". j'aurais
prefere "est une famille (F_c) de fonctions")


C'est un ensemble de fonctions en effet.


- Il est evident que Omega0 est inclus dans Omega_{okc}, l'inverse
n'est pas forcement vrais: jette par des vent mauvais dans un etat E1
hors de Omega0, il est possible qu'une serie de fonctions Fc nous y
ramene, c'est meme souhaitable (sinon le systeme doit etre repare par un
expert).
- Avoir un systeme de configuration stable est important. L'inverse veut
dire que l'on peu arriver dans des etats dont on ne peut plus revenir.
clair, c'est meme le principal, je dirais.



OK, nous voila d'accord sur un point (au dela des definitions).

- Un systeme de configuration performant minimise probablement le nombre
d'etapes pour passer d'un etat a un autre.
- Une intervention exterieur (reboot sur CD ou disquette) est elle dans
Omega0 ?
dans (F_c) tu veux dire ?



Si tu consideres l'operation "reboot" comme une fonction de config, mais
tu peux aussi considerer l'un des état de boot, et dans ce cas se
demander s'il est a considerer.
Mais je suis d'accord, c'est lpus clair de parler de la fonction ici.

Pour la discussion, je considererai que non, meme si en
pratique c'est parfois difficilement evitable. Ceci parce que sinon on a
trivialement Omega0=Omega, meme si c'est pas forcement "facile" a
obtenir.


je pense franchement qu'il y a des tas d'etats non atteignables (pas
seulement des "pas facile" a atteindre) dans les sys de conf qu'on
rencontre dans le vrai monde.
par exemple, les etats tels que tous les bits de la RAM sont a 0,
meme si t'as un un cd de boot, je parie que t'y arrive pas.
meme en ecrivant un noyau from scratch, je sais pas si c'est possible.


Je pense que c'est possible en ecrivant un noyau qui lance un programme
qui efface la RAM (et le noyau) dont la derniere routine soit
suffisement réduite pour tenir dans le cache processeur. Ensuite un
reset doit passer tous les états du proc en defaut et c'est bon.

OK, ca sert a rien, et il y a sans doute des états vraiment inacessible
a l'interieur du proc lui meme.

C'est pour cela aussi que Omega0 a ete defini comme l'etat
*apres* installation. De la meme facon, un reboot en "mode sans echec"
ou avec des arguments autres que ceux par defaut sera considere comme
hors Omega0 (essentiellement parceque ce sont des etats que
l'utilisateur non expert ne veut pas avoir a connaitre).
interdire les arguments au noyal, c'est violent comme contrainte

sur le sys de conf. :-)


Ils sont autorisés seulement s'ils sont défini avant un reboot (par
exemlpe, je change de noyau, je passe par le systeme de conf et au
procahin reboot un argument est appliqué). Je veux excclure la nécéssité
par l'utilisateur non expert de tapper des arguments obscurs dans une
interface tres réduite avant le boot. Ceci aussi oblige a considerer une
methode de config telle que "tu reboot en single user et on répare".

Passons maintenant aux axiomes:
*** A/ Je pretends ici que si Omega0 est inclus dans Omega_{okc} la
FCNE est meilleure.
le contraire, plutot ("Il est evident que Omega0 est inclus dans

Omega_{okc}" dixit plus haut), non ?


J'ai ecris quoi comme conneries, moi ? Je relis...
Oui, en fait, j'avais oublié que j'avais dis stable pluis haut.

En fait, cette condition oblige a avoir un systeme stable.
On peut éventuellement "récupéré" un systeme égaré (donc Omega_{okc}
n'est pas forcement inclus dans Omega0)

En francais, cela signifie que le systeme est plus simple a configurer
pour un non expert si quelque soit les erreurs que celui-ci fait, il se
retrouve toujours dans un etat ou il peut la corriger a partir de son
interface de configuration.


tu te restreints aux sys de conf stables ? (si oui, faut le dire)


Oui, c'est une justificaction tordus pour dire que le systempe doit etre
stable, je suppose.

*** C/ Je pretends ici que plus l'ensemble des Fc est reduite meilleurs
est la FCNE.

Il doit exister peu de manieres differentes d'arriver dans un meme etat
E afin de ne pas compliquer la tache d'apprentissage.


ah mais non, rien ne va plus la.
ca voudrait dire que la tache d'apprentissage de perl est compliquee ?
c'est pas possible ;-)


Hum, je maintiens. Dans le meme ordre plus le graphe est proche d'un
graphe fortemet connexe (ou disons pus le nombre maximum de noeuds a
franchir pour passer d'un état quelconque a un autre est faible) mieux
c'est.


- Considerations pour le hacker
Le hacker veut un controle maximal sur sa machine, pour lui, plus
Omega0 se rapproche de Omega, plus il est heureux, meme si en
contrepartis son systeme de configuration n'est plus stable,
je ne vois pas le rapport entre la taille de Omega0 et la stabilite.

du bidule. Et je trouve qu'au contraire, plus on a un controle fin,
plus on a de chance d'avoir un sys stable.


Tu as raison. Disons que plus tu étends Omega0 plus tu as de risque de
reoncontrer des états qui sont non fonctionnels, ou qui ne permette plus
de lancer un outils de configuration complexe (sous X avec gtk, pour
etre concret, par exemple). En contrepartis, avec des outils d'experts
on arrivera toujours a récuperer un systeme, c'est sur.
C'est ce que j'ai écris plus bas.

Pour lui Omega_{okc} se limite a "je peux deplanter en rebootant sur un
CD de rescue", et Omega_{coherent}, il le fait avec ses petits doigts.

- Consequences pratiques

* La configuration texte n'est pas adaptee a l'utilisateur non expert.

Justification: la config texte casse souvent les axiomes A et B et
toujours C.
Exemple, un fichier de config avec cette ligne:
RhostsAuthentication no

Casser C:
RhostsAuthentication no
RhostsAuthentication no
RhostsAuthentication no
RhostsAuthentication NO
(Une multitude de fonctions de configs ammene au meme resultat)

Casser B:
RhostsAuthentication yes
(L'utilisateur familial n'a pas besoin de cette option)
RhostsAuthentication Oui
RhostsAuthentication @#78)*&2
(ces deux entrees sont invalides, sshd se casse la figure, le systeme
est hors Omega_{coherent})

Pour casser A, il faut suffit de modifier un fichier de config de base.
Par exemple, mettre dans un des script d'init la chaine:
reboot


Ah oui mais la, tu consideres comme (F_c) *toutes* les modifs de /etc,
c'est trop gros. Si tu te restreints a des conventions de syntaxe
non ambigues, et aux modifs qui font que des trucs bien, ca va.


Le probleme c'est que l'utilisateur non expert, il sait pas tout ca. Il
clique et tappe du texte au hasard, disons un peu mieux que le hasard
mais d'un rapport signal/bruit qui décroit avec la compétance.

Le fait que je ne puisse pas écrire "Oui" en face d'un argument que je
veux activer est un probleme. Le fait qu'il ne soit pas immédiat que les
seules réponses possible soiuent "yes" et "no" (encore faut il connaitre
ces termes et leur sens dans une langue étrangere) est un autre
probleme, le fait que parfois on puisse en plus avoir, par exemple
"auto" ou "user-defined", je ne vois pas de moyen de borner cela.

L'interface interactive présente en meme temps que la question l'étendus
des réponses possibles.

- Qualites d'une interface graphique

Le gros probleme des interfaces graphiques de configuration sous linux,
et que souvent leur Omega0g (espace de configuration accessible par
l'interface graphique) est:
a- tres petite devant Omega0t (configuration par interface texte)
b- Ne couvre pas Omega_{coherent}, ni meme Omega_{ok}


euh... j'ai ptet loupe un truc dans tes definitions, mais j'avais
compris que Omega_{coherent} subset Omega_{ok}. (c'est dans l'autre
sens ?)


Non, tu as raison, il faut inverser. Tu fais souvent de la relecture
pour des publi ? ;)


a/ On y peut rien, on sait que c'est comme ca, c'est meme voulu.


"on n'y peut rien" n'est pas une raison pour tolerer n'importe quoi.
Il faut quand meme verifier que meme en restant dans Omega0g on peut
atteindre un etat ou on a sa disposition une machine de Turing
universelle. Sinon, c'est pas la peine d'avoir un ordinateur.


Ca, pas de probleme. Je travaille sur pleins de machines ou je n'ai pas
access à la configuration (je n'y suis pas root), je peux cependant y
executer tous les algorithmes possibles.

D'ailleurs j'aime pas les sys de confs qui sont pas turing-complets ;-)


Une conf pour non experts ne peut pas l'etre, en raison meme des
contraintes que l'on s'y est imposé (il me semble impossible d'assurer
algorithmiquement le bon fonctionnement d'un systeme de ce type).


Par contre, elles sont souvent assez bonne sur:
c/ stable
je suis pas du tout d'accord. je trouve qu'au contraire avec une GUI,

c'est super facile de casser un truc sans espoir de reparation.
(de reparation avec la GUI, bien sur)
genre, desinstaller le pilote de la souris sous windows, c'est
possible, non ? (j'ai pas de windows sous la main pour verifier)
(et celui du clavier, parceque sinon on peut faire tab* entree)


Oui, tu as raison, c'est un point tres important.


d/ inclus dans Omega_{coherent}
quoi quoi quoi ? on peut meme rien casser avec une GUI ?

tu te restreints peut etre aux GUI non-buggees ? :)


Oui, je veux que si le non expert veut faire quelque chose sans trop
savoir quoi, il puisse cliquer au hasard et toujours avoir une machine
qui marche "raisonablement".

OK, c'est un peu utopique.


vu que je trouve que c est dans "mauvais", je dirais qu'un mauvais c
est bien pire qu'un mauvais b (du point de vue du debutant). si je me
mets a la place d'un debutant, j'aurai vraiment trop peur de casser un
truc.


Tu as raison.

sinon, toutes ces definitions pour dire que :

- macos <10, on clique ca marche, mais c'est chiant de faire des
choses bizarres ;

- macos X, on clique ca marche, et ca permet meme de faire pas mal de
choses bizarres ;

- windows, c'est le bordel ;

- linux, on peut cliquer si on veut, mais ca marche quand meme mieux
avec un clavier ;

ca m'a bien amuse.


Ouais, cette construction m'est venu dans la nuit et je l'ai écrit tel
quel au matin... C'est probablement un peu ridicule...

FU2 fr.sci.maths ? :)


Pas vraiment, c'est aps des math, mais vraiment une question d'interface
humains/machines.

Merci encore pour cette critique pointue!

Yannick

--
_/ Yannick Patois ___________________________________________________
| web: http://feelingsurfer.net/garp/ | Garp sur irc undernet |
| email: | |
| ATTAC dans le Pays de Gex: http://attacgex.ouvaton.org |


Avatar
Michel Billaud
Yannick Patois writes:

Michel Billaud wrote:
Yannick Patois writes:
Ce qui peut être ou ne pas être correct, ce sont des couples
(etat de la machine, environnement)
Tu as raison.

Forcément.



C'est un axiome? ;-)


Carrément une théorie. Scientifique au sens Poppérien, cependant,
puis qu'on peut imaginer qu'elle puisse etre mise en défaut.

Alors c'est mal barré pour qu'il soit capable de préciser "la nature
des connexions" entre ses ordinateurs et internet.
Ils n'en sont pas capable, bien sur, ils indiquent ce qu'ils veulent faire.

Ils peuvent certes cliquer sans comprendre. Ca n'explosera pas.



Le but de l'interface bien faite est justement de permetre que des
clics, y compris quasiment au hasard (on a affaire a un non expert) ne
mette jamais la machine dans un etat non fonctionnel ou non secure.


Un message "mettez le CD installation #1" et un bouton OK dessous, ça
correspond à la description.
realiser la fonction, c'est vraiment le dernier stade. Déjà il faut savoir
ce qu'on a besoin de faire, choisir un compromis entre ce qu'on veut faire
et ce que permet le systeme, et ensuite lancer les actions qui permettont
de le faire.


Il faut donc determiner le minimum absolut d'informations necessaire
entre le stade "savoir ce qu'on a besoin" et "lancer les actions" etg
ensuite mettre en place l'interface qui ne demande que cela et sache
partir du besoin exprime.






Les premiers ordinateurs
n'etaient utilise que par des specialistes, tous docteurs en maths ou
ingenieurs de haut niveau.
Ceci dit les premiers ordinateurs n'avaient pas de

carte son, de modem ADSL, de firewall et d'imprimantes USB ni de Wifi,
encore moins de voisinage réseau et autres partages de fichiers.


Et pourtant ils sont devenu plus simples a utiliser.


est-ce bien sur.... Le pourcentage du temps perdu à des activités non
"productives" (genre je defragmente, je reinstalle, je reconfigure...)
a-t-il baissé notablement ?

Il faut dire que le niveau d'exigence concernant ce qu'on veut faire
avec un ordinateur a considérablement baissé. Dans le temps c'était
un investissement qui amenait un gain de productivité considérable par
ce que ça automatisait le traitement des informations. Investissement
financier et intellectuel: pour automatiser il faut programmer, donc
réfléchir.


Oui. Mais ces travaux exigeants ont aussi profite de la simplification
de l'interface. Entre perforer des cartes en Fortran et utiliser
Mathematica, y'a un gain enorme en productivite, y compris pour le
docteur en math.


Je ne parle pas de ce type d'utilisateur, qui doit bien représenter
quelques pourcent des acheteurs d'ordinateurs, et qui a d'ailleurs des
ingénieurs et techniciens sous la main pour se démerder avec les
problèmes techniques.

J'en étais à monsieur dupont, artisan plombier, qui s'achete un
ordinateur, et a qui une appli de 10 pages en basic bricolée par le
beauf fait gagner 3 heures de paperasse par semaine. Ce qui lui fait
3 heures de plus chez le client.


Dans un tout autre domaine, pense aux films d'animations. Il y aura
des codeurs pour le rendu, mais aussi beaucoup de monde pour coder
l'interface que les graphistes (non informaticiens) vont utiliser pour
decrire et manipuler les objets du film. Entre tapper des coordonnees
de polygones dans un .pov et utiliser des curseurs et des menus dans
une apllication dediee a l'animations de personnages, par exemple, la
quantite de connaissance a maitriser (et la productivite) est
incomparable.


Autre exemple où les graphistes ont sous la main des informaticiens.


Maintenant c'est un tourne-disque / telex à peine amélioré.


Dans ce cas, on doit pouvoir en rendre l'administration aussi simple
que celle de ces deux objet, non ?


On file un boitier figé + un abonnement haut débit, et le tout
(chargement/installation des applis en local, acces en client
léger/lourd aux applis distantes, configuration, sauvegardes) est géré
automatiquement par le fournisseur qui s'occupe de tout, moyennement
abonnement.

MB
--
Michel BILLAUD
LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792
351, cours de la Libération http://www.labri.fr/~billaud
33405 Talence (FRANCE)




Avatar
Yannick Patois
Michel Billaud wrote:
Yannick Patois writes:
Michel Billaud wrote:
Yannick Patois writes:
Ce qui peut être ou ne pas être correct, ce sont des couples
(etat de la machine, environnement)
Tu as raison.

Forcément.

C'est un axiome? ;-)

Carrément une théorie. Scientifique au sens Poppérien, cependant,

puis qu'on peut imaginer qu'elle puisse etre mise en défaut.


Si je retrouve une de tes copies ou tu n'as pas 20/20, j'ai mis en
défaut ? ;)


Ils peuvent certes cliquer sans comprendre. Ca n'explosera pas.
Le but de l'interface bien faite est justement de permetre que des

clics, y compris quasiment au hasard (on a affaire a un non expert) ne
mette jamais la machine dans un etat non fonctionnel ou non secure.
Un message "mettez le CD installation #1" et un bouton OK dessous, ça

correspond à la description.


Suis pas sur de suivre, la...

Les premiers ordinateurs
n'etaient utilise que par des specialistes, tous docteurs en maths ou
ingenieurs de haut niveau.
Ceci dit les premiers ordinateurs n'avaient pas de

carte son, de modem ADSL, de firewall et d'imprimantes USB ni de Wifi,
encore moins de voisinage réseau et autres partages de fichiers.
Et pourtant ils sont devenu plus simples a utiliser.

est-ce bien sur.... Le pourcentage du temps perdu à des activités non

"productives" (genre je defragmente, je reinstalle, je reconfigure...)
a-t-il baissé notablement ?


Je pense que c'est une question differente.
En ratio puissance utile/travailleur*heure de maintenance on a fait
d'indéniables progres, je pense.
Mais ca n'a pas rapport a la remarque précédente, je crains.

Oui. Mais ces travaux exigeants ont aussi profite de la simplification
de l'interface. Entre perforer des cartes en Fortran et utiliser
Mathematica, y'a un gain enorme en productivite, y compris pour le
docteur en math.
Je ne parle pas de ce type d'utilisateur, qui doit bien représenter

quelques pourcent des acheteurs d'ordinateurs, et qui a d'ailleurs des
ingénieurs et techniciens sous la main pour se démerder avec les
problèmes techniques.


Prenons alors la tache "télécharger un album en mp3 sur un réseau p2p
puis graver un CD".

La aussi, entre tapper des lignes ésothériques commencant par "cdrecord"
et un clic sur l'interface d'un logiciel (qui peut utiliser cdrecord
dessous, certe), y'a une différence en terme de quantité d'informations
à maitriser pour accomplir la tache.

J'en étais à monsieur dupont, artisan plombier, qui s'achete un
ordinateur, et a qui une appli de 10 pages en basic bricolée par le
beauf fait gagner 3 heures de paperasse par semaine. Ce qui lui fait
3 heures de plus chez le client.


:) Et donc ?


Maintenant c'est un tourne-disque / telex à peine amélioré.
Dans ce cas, on doit pouvoir en rendre l'administration aussi simple

que celle de ces deux objet, non ?


On file un boitier figé + un abonnement haut débit, et le tout
(chargement/installation des applis en local, acces en client
léger/lourd aux applis distantes, configuration, sauvegardes) est géré
automatiquement par le fournisseur qui s'occupe de tout, moyennement
abonnement.


Les gens n'en voudront pas, avec raison (tous les essais en ce sens ont
échoués). Avoir la maitrise du systeme que l'on utilise (à son niveau)
semble important a la plupart. Les problemes de confidentialite en
particulier sont insurmontables.

Mais on sort du sujet...

Yannick

--
_/ Yannick Patois ___________________________________________________
| web: http://feelingsurfer.net/garp/ | Garp sur irc undernet |
| email: | |
| ATTAC dans le Pays de Gex: http://attacgex.ouvaton.org |





Avatar
Michel Billaud
Yannick Patois writes:

Michel Billaud wrote:
Yannick Patois writes:
Michel Billaud wrote:
Yannick Patois writes:
Ce qui peut être ou ne pas être correct, ce sont des couples
(etat de la machine, environnement)
Tu as raison.

Forcément.

C'est un axiome? ;-)

Carrément une théorie. Scientifique au sens Poppérien, cependant,

puis qu'on peut imaginer qu'elle puisse etre mise en défaut.


Si je retrouve une de tes copies ou tu n'as pas 20/20, j'ai mis en
défaut ? ;)


C'est arrivé il y a 23 ans. Dans un devoir de DEA j'avais
utilisé le concept osé de symmétricité :-)


Ils peuvent certes cliquer sans comprendre. Ca n'explosera pas.
Le but de l'interface bien faite est justement de permetre que des

clics, y compris quasiment au hasard (on a affaire a un non expert) ne
mette jamais la machine dans un etat non fonctionnel ou non secure.
Un message "mettez le CD installation #1" et un bouton OK dessous, ça

correspond à la description.


Suis pas sur de suivre, la...


Ca remet la machine dans un etat fonctionnel et secure.


On file un boitier figé + un abonnement haut débit, et le tout
(chargement/installation des applis en local, acces en client
léger/lourd aux applis distantes, configuration, sauvegardes) est géré
automatiquement par le fournisseur qui s'occupe de tout, moyennement
abonnement.


Les gens n'en voudront pas, avec raison (tous les essais en ce sens
ont échoués). Avoir la maitrise du systeme que l'on utilise (à son
niveau) semble important a la plupart.


Ils ont l'impression de maitriser leur ordinateur ? Ce que je
constate c'est plutot de la pensée magique, ils pensent s'être attiré
ses bonnes graces et une relative neutralité, tout au plus. Mais
souvent, l'ordinateur, "il veut plus".

Les problemes de
confidentialite en particulier sont insurmontables.


C'est pour ça qu'on voit tant de disques partagés sur Internet ?

MB

--
Michel BILLAUD
LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792
351, cours de la Libération http://www.labri.fr/~billaud
33405 Talence (FRANCE)






Avatar
Christophe Delage
Bonjour,

In article <ceoqqk$117$, Yannick Patois wrote:
Merci de cette critique qui pointe mes erreurs et ommissions.


De rien.

Christophe Delage wrote:
In article <cel3cs$ig1$, Yannick Patois wrote:
Perso, j'aime pas utiliser des lettres grecques pour les machins
pas bien definis, mais heureusement, dans la suite, ca s'arrange.


Je le laisse ou j'utilise un autre terme ?
J'ai pas d'idees...


Bof, c'etait juste pour pinailler que j'ai ecrit ca.

Un systeme de configuration donnee ne permet pas forcement d'adresser
tout Omega,
j'ajouterai meme qu'une fonction de configuration n'est pas definie

sur tout Omega. (genre, dans l'etat "j'ai efface le fichier
/etc/important" comment je modifie le fichier /etc/important ?)


Oui, tu as raison. Et une bonne interface ne doit proposer que des
fonctions définie pour l'état courant.


Et toutes celles-la.


et on peut rajouter :
pour tout E dans Omega, |F_c(E)| leq 1
parcequ'un processus de configuration est un processus deterministe,
c'est bien connu. (sic)


Si on admet que l'ordinateur est un systeme déterministe et que la seule
entrée est l'execution de F_c() alors ca doit etre vrais.

C'est effectivement un postulat implicite (mais raisonable) que j'ai
utilisé.


Oui oui, je plaisantais, c'est tout.
On a tous eu l'impression de n'avoir "rien change du tout et pourtant
ca marche plus" de temps en temps.

mais plus probablement un sous-ensemble Omega_{Fc(E0)}
depuis un etat initial E0 (accessible en une ou plusieurs etapes, par
exemple, E3ü_2(Fc_{1}(E0)) appartient bien a Omega_{Fc(E0)}.
Simplification d'ecriture: Omega_{Fc(E0)} sera ecrit Omega0 dans la suite.
avec ma definition, on peut rendre Omega encore plus cryptique :

(Cup_{c} F_c)^*(E0), c'est mieux non ? :)


Omega0, non ?


Oups, oui, bien sur.

Je dis que le systeme de configuration est stable si quelque soit E_1 et
E_2 appartenant a Omega0 alors il exite une serie fini de
transformation Fc_i tel que E_2=O_{tous les i}Fc_i (E_1) (O est ici la
composition de fonctions: Fc_1(Fc_2(Fc_3(....Fc_i(E1)).


Je recapitule ce que j'ai cru comprendre :
- tu as un ensemble Omega
- tu appelles "systeme de configuration" un paquet de fonctions
partielles sur Omega
- tu choisis E0 dans Omega


E0 est sensé etre l'état inital, juste après l'installation, dans un cas
concret.

- tu consideres Omega0 la partie de Omega atteignable par ton
"systeme de configuration"
- tu dis que Omega0 est stable s'il est fortement connexe (pour
parler "graphes" parceque c'est classe d'utiliser le vocabulaire
d'une autre theorie, juste pour faire joli ;-))


Stable, ca serait juste connexe, le chemin pour y arriver peut etre
non direct.


Je suis pas sur de voir ce que tu entends par "non direct".

En fait, je considerais Omega comme l'ensemble des sommets, et les
couples (E,F_c(E)) comme les aretes. C'est-a-dire un graphe oriente.
Pour les graphes orientes, connexe veut dire "pour tous x,y, il y a un
chemin de x a y, mais c'est pas grave si on prend des aretes en sens
interdit", fortement connexe veut dire qu'en plus on respecte le code
de la route.

Du coup, je maintiens "fortement connexe".

- Avoir un systeme de configuration stable est important. L'inverse veut
dire que l'on peu arriver dans des etats dont on ne peut plus revenir.
clair, c'est meme le principal, je dirais.



OK, nous voila d'accord sur un point (au dela des definitions).


Cool :-)


Pour la discussion, je considererai que non, meme si en
pratique c'est parfois difficilement evitable. Ceci parce que sinon on a
trivialement Omega0=Omega, meme si c'est pas forcement "facile" a
obtenir.


je pense franchement qu'il y a des tas d'etats non atteignables (pas
seulement des "pas facile" a atteindre) dans les sys de conf qu'on
rencontre dans le vrai monde.
par exemple, les etats tels que tous les bits de la RAM sont a 0,
meme si t'as un un cd de boot, je parie que t'y arrive pas.
meme en ecrivant un noyau from scratch, je sais pas si c'est possible.


Je pense que c'est possible en ecrivant un noyau qui lance un programme
qui efface la RAM (et le noyau) dont la derniere routine soit
suffisement réduite pour tenir dans le cache processeur. Ensuite un
reset doit passer tous les états du proc en defaut et c'est bon.


En y reflechissant un peu, ca doit etre effectivement possible (mais
je suis pas sur que le cache aide, vu qu'on peut pas vraiment ecrire
dans la RAM, seulement dans le cache, qui est synchronise plus tard.)

S'il existe une instruction "mettre tel bout de memoire a 0" qui est
plus petite strictement que le bout qu'elle sait mettre a zero, alors
je vois comment faire. Je connais pas assez les divers assembleurs pour
savoir si on en trouve qui ont ce genre d'instruction.

En tout cas, meme si c'est vrai, je trouve pas ca "trivialement vrai"
:-)

OK, ca sert a rien, et il y a sans doute des états vraiment inacessible
a l'interieur du proc lui meme.


Et ben, maintenant que je vois comment atteindre "zero partout", j'ai
un peu du mal a me convaincre que des etats inaccessibles existent
vraiment. Mais il faut qu'on arrete de changer d'avis en meme temps,
sinon on va jamais etre d'accord ;-)

interdire les arguments au noyal, c'est violent comme contrainte
sur le sys de conf. :-)


Ils sont autorisés seulement s'ils sont défini avant un reboot (par
exemlpe, je change de noyau, je passe par le systeme de conf et au
procahin reboot un argument est appliqué). Je veux excclure la nécéssité
par l'utilisateur non expert de tapper des arguments obscurs dans une
interface tres réduite avant le boot. Ceci aussi oblige a considerer une
methode de config telle que "tu reboot en single user et on répare".


C'est vrai qu'un non expert n'est pas cense savoir ce qu'est un runlevel
(ni comment on le choisit.)


Passons maintenant aux axiomes:
*** A/ Je pretends ici que si Omega0 est inclus dans Omega_{okc} la
FCNE est meilleure.
le contraire, plutot ("Il est evident que Omega0 est inclus dans

Omega_{okc}" dixit plus haut), non ?


J'ai ecris quoi comme conneries, moi ? Je relis...
Oui, en fait, j'avais oublié que j'avais dis stable pluis haut.

En fait, cette condition oblige a avoir un systeme stable.
On peut éventuellement "récupéré" un systeme égaré (donc Omega_{okc}
n'est pas forcement inclus dans Omega0)


oui.

*** C/ Je pretends ici que plus l'ensemble des Fc est reduite meilleurs
est la FCNE.

Il doit exister peu de manieres differentes d'arriver dans un meme etat
E afin de ne pas compliquer la tache d'apprentissage.


ah mais non, rien ne va plus la.
ca voudrait dire que la tache d'apprentissage de perl est compliquee ?
c'est pas possible ;-)


Hum, je maintiens. Dans le meme ordre plus le graphe est proche d'un
graphe fortemet connexe (ou disons pus le nombre maximum de noeuds a
franchir pour passer d'un état quelconque a un autre est faible) mieux
c'est.


Je plaisantais juste sur le "there's more than one way to do it" de
perl.

Ah oui mais la, tu consideres comme (F_c) *toutes* les modifs de /etc,
c'est trop gros. Si tu te restreints a des conventions de syntaxe
non ambigues, et aux modifs qui font que des trucs bien, ca va.


Le probleme c'est que l'utilisateur non expert, il sait pas tout ca. Il
clique et tappe du texte au hasard, disons un peu mieux que le hasard
mais d'un rapport signal/bruit qui décroit avec la compétance.

Le fait que je ne puisse pas écrire "Oui" en face d'un argument que je
veux activer est un probleme. Le fait qu'il ne soit pas immédiat que les
seules réponses possible soiuent "yes" et "no" (encore faut il connaitre
ces termes et leur sens dans une langue étrangere) est un autre
probleme, le fait que parfois on puisse en plus avoir, par exemple
"auto" ou "user-defined", je ne vois pas de moyen de borner cela.


La doc est cense le borner, en fait.
Mais bon, lire la doc fait devenir expert, on peut dire.
Et c'est vrai que j'ai exagere un petit peu : je sais meme pas comment
expliciter le (F_c) que j'ai decrit.

L'interface interactive présente en meme temps que la question l'étendus
des réponses possibles.


C'est vrai. Du coup, il manque plein de choses a Omega0 (j'essaie
d'imaginer un outil de conf graphique a procmail qui permette de tout
faire en ne repondant qu'a des questions fermees... non, j'y arrive
pas.)


- Qualites d'une interface graphique

Le gros probleme des interfaces graphiques de configuration sous linux,
et que souvent leur Omega0g (espace de configuration accessible par
l'interface graphique) est:
a- tres petite devant Omega0t (configuration par interface texte)
b- Ne couvre pas Omega_{coherent}, ni meme Omega_{ok}


euh... j'ai ptet loupe un truc dans tes definitions, mais j'avais
compris que Omega_{coherent} subset Omega_{ok}. (c'est dans l'autre
sens ?)


Non, tu as raison, il faut inverser. Tu fais souvent de la relecture
pour des publi ? ;)


Non, mais ca devrait m'arriver un jour, si tout va bien :)
(je suis en deuxieme annee de these)


a/ On y peut rien, on sait que c'est comme ca, c'est meme voulu.


"on n'y peut rien" n'est pas une raison pour tolerer n'importe quoi.
Il faut quand meme verifier que meme en restant dans Omega0g on peut
atteindre un etat ou on a sa disposition une machine de Turing
universelle. Sinon, c'est pas la peine d'avoir un ordinateur.


Ca, pas de probleme. Je travaille sur pleins de machines ou je n'ai pas
access à la configuration (je n'y suis pas root), je peux cependant y
executer tous les algorithmes possibles.


Oui oui, je disais juste qu'il faut faire attention.

D'ailleurs j'aime pas les sys de confs qui sont pas turing-complets ;-)


Une conf pour non experts ne peut pas l'etre, en raison meme des
contraintes que l'on s'y est imposé (il me semble impossible d'assurer
algorithmiquement le bon fonctionnement d'un systeme de ce type).


Il faudrait dire proprement comment emuler turing dans le sys de conf,
definir proprement "bon fonctionnement", mais j'ai la tres nette
impression qu'on arriverait a reduire vers le probleme de la halte sans
difficulte. Du coup, ce serait effectivement impossible.

d/ inclus dans Omega_{coherent}
quoi quoi quoi ? on peut meme rien casser avec une GUI ?

tu te restreints peut etre aux GUI non-buggees ? :)


Oui, je veux que si le non expert veut faire quelque chose sans trop
savoir quoi, il puisse cliquer au hasard et toujours avoir une machine
qui marche "raisonablement".

OK, c'est un peu utopique.


Héhé, c'est rien de le dire :)

sinon, toutes ces definitions pour dire que :

- macos <10, on clique ca marche, mais c'est chiant de faire des
choses bizarres ;

- macos X, on clique ca marche, et ca permet meme de faire pas mal de
choses bizarres ;

- windows, c'est le bordel ;

- linux, on peut cliquer si on veut, mais ca marche quand meme mieux
avec un clavier ;

ca m'a bien amuse.


Ouais, cette construction m'est venu dans la nuit et je l'ai écrit tel
quel au matin... C'est probablement un peu ridicule...


Ca ne tue pas :-)

FU2 fr.sci.maths ? :)


Pas vraiment, c'est aps des math, mais vraiment une question d'interface
humains/machines.


"definitions", "Axiomes", ... :-)

Merci encore pour cette critique pointue!


Y a toujours pas de quoi.

--
Christophe Delage



1 2