Cette page est le reflet des échanges et des questions autour
des thèmes abordés sur Blady,
à la manière d'un forum. Envoyer vos questions ou réponses,
vos définitions, vos problèmes ou solutions.
Il s'agit de faire correspondre le choix d'un ensemble de
personnes (mettons de sexe féminin) vers un autre ensemble
d'éléments uniques (par exemple des robes). Chaque
femme émet une liste de choix de robes par ordre
préférentiel. Quel est l'algorithme qui permettra de
satisfaire au mieux les femmes ?
Cet algorithme d'attribution a pour principe de ranger les robes et
les choix des clientes dans un tableau à deux index. Le détail de
l'algorithme. Le code source du
programme Pascal et Ada mettant en oeuvre l'algorithme. Ce
programme est compilable notamment avec gpc et gnat donnant ce résultat. Il y a certainement d'autres méthodes, envoyez les, elles seront publiées
ici.retour en haut de la page
Attribution croisée :
Prenons deux ensembles d'éléments, par exemple, N
hommes et N femmes. Dans ce cas classique, on suppose que chaque
groupe d'individus a un ordre de préférence dans
celui de sexe opposé.
Si on effectue un appariement aléatoire, en mariant à
l'aveugle hommes et femmes sans tenir compte de leur avis, il y a
de très forte chance pour que la configuration soit
instable. Existe-t-il alors toujours une solution stable pour
éviter les divorces à répétitions ?
Est-elle unique ou bien y a-t-il plusieurs combinaisons stables ?
Quelle méthode utiliser pour trouver à coup sûr
une solution stable? Le détail de
l'algorithme. Le code source du
programme Pascal et Ada mettant en oeuvre l'algorithme. Ce
programme est compilable notamment avec gpc et gnat donnant ce résultat. Il y a certainement d'autres méthodes, envoyez les, elles seront publiées
ici. Retour en haut de la page
Remplissage optimisé :
Il s'agit de remplir un CD inscriptible avec un maximum de
morceaux de musique - ou autre - de durées inégales
mais de façon à obtenir l'utilisation maximale du CD.
Dans un passé révolu, c'était avec des
cassettes mais cela ne change rien au problème : quelle est
ou quelles sont les méthodes de remplissage de façon
à obtenir le meilleur remplissage ? Le détail de l'algorithme : exploration exhaustive. Le code source du programme
Pascal mettant en oeuvre l'algorithme. Algorithme optimisé le mois prochain.
(Les démonstrations envoyées de la formule
mathématique employée seront aussi publiées le
mois prochain)retour en haut de la
page
Carbon :
Carbon est un élément important de Mac OS X. Il
propose une compatibilité avec l'interface de programmation
(API) des versions antérieures de Mac OS. A partir d'un
minimum de modification, Carbon permet de faire fonctionner sous
Mac OS X quasiment toutes les applications antérieures avec
une simple recompilation et quelques modifications mineures. Carbon
propose des API revues et corrigées : suppression des API
peu utilisées ou obsolètes, modification des API peu
ergonomiques ou mal conçues au départ, introduction
de nouvelles API. Pour en savoir plus sur le site Apple. Retour en haut de la page
Les extensions de fichiers sont-elles
indispensables ?
L'extension d'un fichier est représentée par
quelques lettres à la fin du nom du fichier,
généralement 1 à 3 lettres
précédées d'un point. Celle-ci apparaît
comme un reliquat archaïque de systèmes anciens comme
VMS, CP/M ou encore MS-DOS. Les systèmes d'exploitation
dérivant de ceux-ci comme Windows emploient les extensions
(un point plus de 1 à 3 lettres) pour distinguer certains
fichiers spéciaux pour le système «.COM»,
«.EXE», «.DIR» & Les deux autres
principaux systèmes Unix (et dérivés) et Mac
OS (1 à 9), créés de toutes pièces, ont
évité cet écueil. Malgré tout, elle est
maintenant de retour sur Mac OS X. Ce retour suit une logique de
type de celle de Windows !? Par contre, le précédent
système d'identification n'est pas abandonné. Il est
basé sur un premier code qui indique le type du fichier
(texte, image...), le second indique l'application ayant
créé le fichier. Solution efficace pour afficher un
fichier avec une icône "parlante" à l'utilisateur et
pour lancer la bonne application d'utilisation du fichier.
Mais alors, les extensions de fichiers sont-elles indispensables
? Complément : Le nom d'un fichier désigne le
contenu du fichier. Ce qui intéresse principalement
l'utilisateur. Le format qu'il prend au sein du système (le
contenant) est accessoire pour l'utilisateur. Texte brut, RTF,
exécutable, image, son, vidéo, c'est au
système de connaître le format du fichier pour pouvoir
le manipuler correctement. Indiquer ce format au niveau du nom de
fichier devient une contrainte. Attention à ne pas perdre
l'extension, au risque de ne plus pouvoir utiliser le fichier. Sur
les systèmes Unix, l'utilisateur peut connaître ce
format avec la commande « file » qui est très
performante pour reconnaître quantité de formats.
Bizarrement, Mac OS X héritant de Mac OS (les
précédents) et d'Unix (NeXTStep), devient sensible
aux extensions. Pourquoi donc le système n'utilise-t-il pas
lui-même la commande « file » pour identifier le
format des fichiers à la place d'une extension ambiguë
? Vos réponses... retour en haut de la page
Automate :
Un automate est un graphe d'états et de transitions qui
décrit la réponse d'un objet à la
réception d'un stimulus externe.
Un état est une condition pendant la vie d'un objet durant
laquelle il satisfait des conditions, exécute des actions ou
attend des événements.
Un événement est un stimulus reçu par un
objet. La conséquence étant l'activation de la
transition associée qui peut comporter soit des actions
(sans durée) soit une activité (avec une
durée).
Une transition est une relation entre deux états indiquant
que l'objet dans le premier état passe dans le second
état et réalise certaines actions
spécifiées quand un événement
spécifié est reçu et si des conditions
supplémentaires éventuelles sont satisfaites.
Exemples d'automate : le jeu d'échec (début, noir
joue, blanc joue, noir gagne, blanc gagne, nul), le modem (attente
porteuse, connecté...), ascenseur (porte ouverte, monte,
descend, arrêter...), les feux de circulation (direction 1
passant, dir 2 tournant...), la boite de vitesse / l'embrayage,
machine à laver le linge, la vaisselle...
Pour en savoir plus voir le
compilateur d'automate. Retour en haut de la page
Quelle utilité pour
un ramasse-miettes ?
Le ramasse-miettes (ou Garbage Collector en anglais) est dans sa
définition un moyen extraordinaire de ne plus perdre de
mémoire (et non la mémoire malheureusement). En
effet, ce composant souvent proposé en complément
d'un langage comme le C++ ou intégré dans un langage
comme Java (il est facultatif pour Ada), présente l'avantage
pour le programmeur de récupérer toutes les
références mémoires inutilisées et de
les remettre à disposition de façon automatique. Fini
donc le casse tête des libérations de mémoire,
le programmeur n'a plus à se soucier de ses variables
allouées dynamiquement comme il ne se soucie pas non plus
des variables globales et locales.
Mais alors pourquoi le ramasse-miettes n'est-il pas
intégré directement au système
d'exploitation? Vos réponses... retour en haut de la page
AFAIK :
As Far As I Know...: locution anglaise pour écrire
"Autant que je sais"... retour en haut de la page
La licence GPL :
La "General Public License" fut développée pour le
projet GNU par la Free Software Foundation (FSF) de Richard
Stallman. La GPL permet de distribuer et d'utiliser les programmes
avec une gratuité totale. La GPL autorise quiconque le
désire à vendre ses programmes et à gagner de
l'argent avec, mais impose également que tout le monde
puisse parallèlement distribuer la même chose comme il
l'entend, sans restrictions. Le fait que le programme puisse
être distribué librement et gratuitement ne signifie
pas qu'il appartienne au domaine public. Un programme
protégé par la GPL, à l'opposé,
appartient à son auteur. La licence établit ainsi
quatre libertés pour l'utilisateur : exécution du
programme quelque soit l'usage, étude du fonctionnement du
logiciel, redistribution de copies du logiciel, modification du
logiciel.
Fin juin 2007, la version 3 de la licence est publiée.
Quelles en sont les différences ? D'un côté,
cette nouvelle version reprend des aspects d'autres licences
(notamment Apache) qui vont donc pouvoir maintenant s'y raccrocher
conduisant théoriquement à une diminution du nombre
de licences différentes. Également les termes de
droit américain ont été remplacé par
des termes du droit international simple pour pouvoir être
compris par l'ensemble des développeurs. D'un autre
côté, cette nouvelle version fait surtout face
à des utilisations frauduleuses ou fermées d'un
logiciel sous licence GPL soit dans des terminaux en prêt ou
location soit dans des prestations de service pour lesquels la
situation d'obligation de diffusion des sources par exemple
n'était pas claire. Elle protège également les
utilisateurs contre des menaces par des brevets.
Bien entendu le texte de la licence reste en anglais bien qu'une traduction française non officielle
existe, n'ayant pour but que la meilleure compréhension de
l'originale.
(Source april et
Le Site du Zér0)
Pour en savoir plus voir la page de la FSF ainsi que fr.wikipedia.org/wiki/Licence_publique_générale_GNU. retour en haut de la page
Quel est l'intérêt de faire
évoluer la norme du langage Ada ?
Il est acquis que la remise en question périodiquement de
la norme du langage Ada part d'une bonne intention. Un langage
informatique ne peut pas rester figé alors que le monde des
technologies évolue très rapidement autour de lui.
D'un autre coté, la remise en question du compilateur Ada
est certainement vu comme très coûteux de la part des
éditeurs. Ce qui amène à penser que les bonnes
intentions ne font pas le poids devant les considérations
économiques. Pourtant la norme Ada 95 a bien vu le jour
après Ada 83.
Le besoin est-il aussi fort ? Vos réponses... retour en haut de la page
Comment concilier simplement
données et ressources ?
Propre au système du Macintosh, les fichiers comportent
deux parties. Une première partie nommée
"donnée" comprend le contenu classique du fichier (texte,
images, etc.). Une deuxième partie nommée "ressource"
comprend des informations utilisables par le système ou
l'application (position de la fenêtre, icône,
localisation). De cette façon les applications
étaient construites comme un Lego avec des ressources codes,
icônes, chaînes de caractères, etc. Les deux
parties étaient indissociables. Unique et
plébiscité par sa convivialité cette
dualité se heurte à la base Unix du nouveau
système qui ne supporte pas. En parallèle le
système Windows propose une base de donnée unique
"base de registre" ou tout s'entasse de façon plus ou moins
touffue pour le néophyte. Mac OS X introduit pour cela un
répertoire spécial vu par l'utilisateur comme un seul
"fichier", mais contenant pour le système une
hiérarchie de répertoires et fichiers faisant office
de ressource. Est ce réellement le plus simple ou est ce une
astuce simpliste de rafistolage? Vos réponses... retour en haut de la page
IMHO :
In My Humble Opinion...: locution anglaise pour écrire
"À mon humble avis" (AMHA)... Celle-ci contient parfois une
connotation sarcastique indiquant que la personne à qui est
faite la réponse ne connaît pas le sujet dont elle
parle. retour en haut de la page
Ada :
Dans les années 1970, le département de la
Défense des États-Unis (DoD) utilisait de nombreux
langages différents, ce qui entraînait des
dépenses excessives en développement et maintenance.
En 1976, il lance un appel à développement d'un
cahier des charges pour définir un langage robuste et
fiable. C'est l'équipe du français Jean Ichbiah qui l'emporte et produit le cahier
des charges final. Le langage est appelé Ada, en
référence à celle qui a écrit le
premier embryon de programme informatique : Lady Ada Lovelace. En
1983, Ada83 est lancé avec la publication du standard Ansi
(American National Standard Institute). En 1995, l'évolution
du langage Ada95 est officialisée avec la publication du
standard ISO. Avant on développait en assembleur et, comme
pour Ariane 5 en LTR (langage temps réel), Fortran et C,
aujourd'hui ce langage normalisé est le meilleur compromis
pour la gestion temps réel et les calculs algorithmiques. Il
est aujourd'hui utilisé dans de nombreux secteurs de
l'industrie aéronautique ainsi que par la SNCF et Canal+
pour la gestion des abonnés. Ada séduit par son
côté sécuritaire qui peut apparaître
rébarbatif au premier abord. Il apparaît aussi comme
un excellent langage d'apprentissage de la programmation bien qu'il
soit mal connu du "grand public". retour en haut de la page
Interface de programmation :
L'interface de programmation d'applications ou en anglais
"Application Programming Interface" (API) est une couche logicielle
au travers de laquelle une application peut accéder de
façon standardisée aux ressources du système
sans en connaître les détails internes. Cela passe
souvent par l'utilisation de bibliothèque comme Carbon ou
Cocoa pour Mac OS X ou JDK pour Java. retour en haut de la page
BTW :
By The Way... : locution anglaise pour écrire "À
ce propos..." servant à introduire un sujet qui n'est pas
toujours en relation avec le sujet précédant. retour en haut de la page
Quelle protection pour nos fichiers
?
Paradoxalement la gestion de la sécurité en tant
qu'accès aux données reste locale alors que le
nombres d'utilisateurs sur Internet est en augmentation constante.
En effet que ce soit avec des systèmes du style Unix ou bien
Windows, l'accès aux fichiers n'est contrôlé
que localement par le système actif. Deux façons de
faire s'affrontent ici aussi. La première est une protection
additive (par exemple Windows NT). Les droits sur le fichier pour
le propriétaire ne sont ajoutés qu'une fois le
fichier créé. Les droits d'autres utilisateurs ou
groupes d'utilisateurs sont ajoutés suivant des
règles hiérarchiques ou manuellement. La seconde est
une protection soustractive (par exemple Unix). Le fichier est
créé au départ avec son propriétaire et
son groupe comportant tous les accès. Ces accès sont
diminués pour le propriétaire, son groupe et les
autres automatiquement grâce à un masque ou
manuellement. Cependant, une fois le système inactif
(ordinateur éteins par exemple) les fichiers ne sont plus
protégés. Le simple fait de retirer le disque dur et
de le connecter sur un autre ordinateur supprime toute
référence au propriétaire d'origine. De
même si le fichier est transféré sur une autre
machine via un support amovible ou Internet. Des palliatifs sont
possibles sur les réseaux locaux de type intranet. La
protection est liée au serveur qui référence
tous les utilisateurs de l'intranet. Est-il concevable d'identifier
tous les utilisateurs d'Internet ? Peut être que le cryptage
couplé à la signature sécurisée
apparaît comme l'avenir. Vos réponses... retour en haut de la page
La récursivité :
La récursivité est la division d'un
problème menant à la résolution de plusieurs
sous-problèmes de complexité inférieure en
utilisant le même algorithme. retour en haut de la page
GNU :
GNU is Not Unix: locution américaine (humoristique car
elle renvoie aux appels récursifs de la programmation)
utilisée lors de la création du projet de bâtir
un système "Unix" mais pas Unix car Unix est une appellation
commerciale. retour en haut de la page
Quel suffixe pour un site Internet
?
Ils existent une pléthore de suffixes Internet pour site
du .com jusqu'au .fr en passant par le .gov, .net ou .org. Mais
lequel choisir ? Mon premier choix se porte sur .fr. Logique, je
suis français éditant un site français. Mais
non, cela ce complique si mon site est commercial, ou s'il
représente une entité gouvernementale ou non. J'ai
alors le choix entre .com, .gov ou .org. Récemment j'ai
même découvert un site avec la terminaison :
.fr.eu.org. Cela paraît clair, mais est ce réellement
lisible pour le plus grand nombre qui ne connaît que les .com
? Vos réponses... retour en haut de la page
Refactoring :
Refactoring est un terme anglais mis à la mode dans de
nouvelles méthodes de programmation. Il désigne
simplement l'action de nettoyage du code source d'un logiciel. Ce
nettoyage va du simple reformatage jusqu'à la modification
des structures de donnée, en passant par le remplacement de
codes redondant par des routines appropriées. Le code source
est nettoyé et recompilé régulièrement
de façon que toute modification importante ne soit pas
polluée par des problèmes annexes de
cohérence. L'objectif est bien évidemment d'obtenir
un code contenant le moins d'erreur possible. En paraphrasant
Marcel Dassault nous pourrons dire qu'un "beau" code source est un
code source qui fonctionne. retour en haut de la page
OTOH :
On The Other Hand... locution américaine pour
écrire "D'un autre côté..." après avoir
développé une face d'un sujet. retour en haut de la page
Avoir un e-mail à vie ?
Un jour ou l'autre, nous avons été
confrontés à la situation suivante : envoyer un
e-mail à une personne sans en connaître le
sésame c'est à dire l'adresse e-mail. En
général cette personne a juste oublié de nous
la communiquer lorsqu'elle nous a fait part de la fantastique
nouvelle, à savoir qu'elle entrait dans la fabuleuse
communauté des privilégiés ayant un ordinateur
personnel tout juste connecté à Internet. Bien
sûr, un simple coup de fil résoudrait le
problème. Un appel du genre : "Eh, donne-moi ton adresse
e-mail, j'ai plein de chose à te dire, salut!" Non,
cherchons autre chose, les annuaires sur Internet par exemple ? Non
plus, pas de chance, rien à voir avec l'annuaire de France
Télécom. Ici, les inscriptions dans ce type
d'annuaire sont un acte volontaire. Puisqu'il en existe une
myriade, nous n'avons pas ou très peu de chance d'y trouver
notre correspondant. Mais alors pourquoi n'existe-t-il pas une
adresse attribuée à chacun facilement utilisable ? Vos réponses... retour en haut de la page
Orthogonalité :
L'orthogonalité est la propriété
mathématique des angles droits, par extension des vecteurs
indépendants. Elle s'applique aussi aux langages
informatiques. Avec un jeu d'instructions orthogonal, les
instructions et les données sont indépendantes les
unes des autres.
Une instruction peut utiliser n'importe quel type de donné
du langage et réciproquement. Un exemple typique vient des
jeux d'instructions des processeurs. Avec un 680x0, pour chaque
instruction, vous pouvez utiliser un registre quelconque. Ce jeu
d'instruction est orthogonal. A l'opposé, avec un 80x86,
chaque registre a une fonction particulière combinée
avec des instructions spécifiques. Ce jeu d'instruction
n'est pas orthogonal. Vous aurez compris qu'avec un langage
orthogonal, la souplesse est au rendez-vous. Un langage orthogonal
est basé sur le fait qu'un tout petit nombre de concepts
suffit à engendrer des constructions très riches. Ada
permet l'orthogonalité en procurant les unités
génériques. Une faible orthogonalité, comme
dans le C, provoque des exceptions dans la construction du code ce
qui le rend plus difficile à apprendre. Un excès
d'orthogonalité demandera un compilateur plus complexe, mais
bon il n'est fait qu'une fois et nous l'utilisons sans retenu, il
travaille pour nous. retour en haut de la page
RSN :
Realy Soon Now... locution américaine pour écrire
"Pour très bientôt..." Ce qui est une véritable
gageure en informatique ;-). retour en haut de la page
Entre MAJUSCULES et minuscules faut-il
choisir ?
Dans la vie courante, de même lorsque vous lisez ce texte,
vous reconnaissez immédiatement le sens du mot 'Afficher',
même s'il se présente comme ceci 'afficher' ou comme
cela 'AFFICHER'. Or, pour certains systèmes informatiques
les différentes écritures ne désignent pas la
même chose. Il y a bien longtemps au siècle dernier,
l'interface utilisateur avec l'ordinateur ne présentait que
des majuscules. Les minuscules n'apparaissent que peu à peu
mais sont ignorées des informaticiens qui les
considèrent comme un luxe pour bureautique. Il en a
été pratiquement ainsi jusqu'à l'apparition du
système Unix. Celui-ci, certainement par souci de simplisme
qui le caractérise, considère chaque caractère
comme différent. Donc 'a' est différent de 'A',
'Afficher' est différent de 'afficher, le fichier 'Mon
texte' est différent du fichier 'mon Texte'. Mac OS X
dérive à la fois de Mac OS 9 (Classic) système
intuitif laissant la liberté aux utilisateurs de choisir
librement entre majuscules et minuscules, et d'Unix système
robuste mais austère. Cette ambivalence peut parfois
conduire à la confusion.
Est-il indispensable de différencier le sens des noms avec
des majuscules et minuscules contrairement à la vie courante
? Vos réponses... retour en haut de la page
Interface Utilisateur :
La notion d'interface utilisateur en informatique rejoint la
notion plus générale d'ergonomie. L'interface
utilisateur regroupe tout ce qui concoure à
l'appréhension d'un programme informatique par celui ou
celle qui l'utilise de façon plus ou moins intuitive suivant
les programmes. Un parallèle dans la vie "réelle" est
l'interrupteur de la lampe de chevet, il s'agit d'un
élément de l'interface utilisateur de cette lampe. De
nos jour les éléments de l'interface utilisateur sont
graphiques (icônes, fenêtres, menus déroulants)
par opposition à une interface utilisateur textuelle
(commandes). retour en haut de la page
IMNSHO :
In My Not So Humble Opinion... locution américaine pour
écrire "À ma pas si humble opinion..." Celle-ci,
contrairement à une locution voisine (voir IMHO), est plus
honnête pour indiquer que la personne à qui est faite
la réponse ne connaît pas le sujet dont elle
parle... retour en haut de la page
Quel codage pour nos
caractères accentués ?
Si le codage ASCII répond aux besoins des anglophones
c'est qu'il propose le codage des caractères utilisés
par la langue anglaise. A part quelques exceptions dans
l'utilisation des caractères de contrôles, ce standard
de codage est bien respecté. Si les Anglais se comprennent
entre eux, il en va tout autrement pour les natifs aux langues
comportant des caractères accentués notamment. On
fait appel à des sur-ensembles du codage ASCII. On tombe
alors dans une multitude de codages combinant caractères
accentués et caractères graphiques, si bien qu'un
échange de texte a toutes les chances d'être mal
compris par les destinataires ne possédant pas le même
codage. La normalisation ISO n'a été d'aucun support
puisqu'elle a juste donné lieu à une multiplication
des codages et non sa réduction. Ne sont pas
évoqués ici les codages de plus haut niveau tel que
RTF ou même HTML qui combinent codage des caractères
et codage de la mise en forme du texte. Par rapport à ces
derniers, la difficulté est la reconnaissance du type de
codage puisque celui-ci ne peut pas être facilement
codé dans le texte. Chaque système reste donc sur son
standard, mais ne l'indique pas ou peu. Seule la commande 'file'
des systèmes Unix permet de se faire une idée sur le
fichier en question. Par contre, malgré le standard MIME
indiquant les types de fichiers transférés, il
n'existe aucune aide pour le courrier électronique. Quel
comble pour un outil d'échange multiculturel ! Alors qu'un
peu de rigueur dans la description du type de codage ou l'emploi
systématique d'un codage neutre serait salvateur.
Mais quel codage prendre ? UTF-8 ? Vos réponses... retour en haut de la page
Classe :
Plus encore que par le C++, la notion de classe a
été popularisée par Java. En effet Java
s'introduit partout à commencer par les navigateurs Internet
qui chargent des classes à tout bout de champ, puis aux
téléphones portables ou aux assistants personnels et
bientôt dans la Hi-fi ou l'électroménager. Il
s'agit en fait d'éléments de programme qui ont une
cohérence intrinsèque en regroupant des variables (ou
propriétés) et des procédures (ou
méthodes). Lié fortement à la notion d'objet
(voir la POO) les classes sont les
briques de bases d'une application Java. retour en haut de la page
TSTL :
Too Stupid To Live... locution américaine pour
écrire "Trop stupide pour vivre..." autre manière
pour indiquer que la personne à qui est faite la
réponse ne connaît pas le sujet dont elle parle... retour en haut de la page
L'anglais est-il une fatalité
?
Le constat a été posé maintes et maintes
fois: l'anglais prédomine dans l'informatique à
l'image de la prédominance de l'industrie informatique
américaine. Notre fierté aussi se rebiffe à la
vue de sites Internet français rédigés en
langue anglaise. Pourtant, ne sommes nous pas soulagés de
tomber sur une langue "amie" (l'anglais) lorsque nous naviguons sur
des sites allemands, espagnols ou japonais. Le paradoxe est
là. Il est donc naturel de proposer nos sites
français en langue anglaise pour que nos concitoyens de la
planète Terre puisse nous comprendre. Je vous vois encore
choqué, oui vous lisez bien ces lignes en français et
vous en êtes plutôt satisfait au fond de
vous-même, comme si la langue anglaise dénaturait
l'échange, le rendait plus standardisé, plus froid.
L'anglais ne sera plus une fatalité lorsqu'il existera des
traducteurs fiables et instantanés où passer d'une
langue à l'autre sera totalement transparent.
Ce site (précurseur ;-) est donc en français.
Cependant, n'aurait-il pas une audience supérieure en
anglais ? Vos réponses... retour en haut de la page
FYI :
For Your Information... locution américaine pour
écrire "Pour votre information..." manière d'indiquer
que la personne à qui est faite la réponse ne
connaît pas le sujet dont elle parle... retour en haut de la page
E.W. Dijkstra :
Né en 1930, Dijkstra a conçu et codé le
premier compilateur Algol, langage de programmation à la
base de plusieurs familles de langages informatiques.
Il est aussi reconnu comme le leader du mouvement pour l'abolition
de l'utilisation des instructions GOTO dans la programmation.
Plus sérieusement, Il a bâtit de nombreux concepts
touchant à la programmation structurée, la
programmation concurrente avec les sémaphores et son
fabuleux énoncé du dîner des philosophes.
Pour en savoir plus, son site web : www.cs.utexas.edu/users/EWD retour en haut de la page
Pourquoi cette course sans fin
à la puissance ?
L'ordinateur 64 bits "de bureau" vient de sortir chez Apple.
Quant on tourne notre regard derrière soi juste de
façon à entrevoir les étapes qui ont conduit
à ceci, on est en droit de se demander d'où vient ce
besoin en puissance? En vingt ans, les possibilités des
ordinateurs n'ont pas été multipliées par 10
ni même par 100 mais par 10000 que ce soit la
fréquence horloge des processeurs que la taille de leur
mémoire de travail ou de stockage. Que mon modeste programme
aille 100 fois plus vite ou soit capable d'accepter des
données 100 fois plus grande, d'accord, mais 10000 fois plus
c'est la noyade assurée ! Pourtant d'où vient cette
impression récurrente que mon ordinateur se traîne
poussivement et que j'ai un mal fou à trouver un peu de
place pour enregistrer mes fichiers? Vivement un 64 bits pour que
je puisse rêver au 128 bits ! Vos réponses... retour en haut de la page
Abandonware :
Logiciels qui ne font plus l'objet d'une commercialisation ni de
mises à jour par leur éditeur. Cette
définition est plus ou moins malmenée sur Internet.
On y trouve d'abord une focalisation générale sur les
jeux, qui appartiennent certes à une catégorie de
logiciels à durée de vie très courte.
Durée de vie qui est d'ailleurs fixée arbitrairement
à 4 ou 5 ans pour certains sites d'Abandonware. Après
cette période le logiciel est considéré
"diffusable" sur le site. Au-delà du constat d'abandon et de
sa manifestation idéologique, il s'agit bien de
suppléer à un manque en diffusant le logiciel tant
que l'éditeur ne se manifeste pas. L'aspect juridique est
intéressant puisque d'une part la diffusion sans
l'autorisation de l'éditeur est bien entendue illicite,
d'autre part on peut voir cette diffusion sous l'angle d'une
ingérence "humanitaire". Certains logiciels
mériteraient bien d'être reconnu comme patrimoine de
l'humanité. N'y a-t-il pas matière à faire
plus que de la simple diffusion? Il y a nécessité
à porter plus loin l'ambition en sauvegardant ces logiciels
par la restauration des programmes sources. On trouve la clé
de la maîtrise du futur : ne pas perdre le passé. Les
logiciels du domaine public sont l'exemple accompli du renouveau
à partir des sources sans cesse restaurées par la
communauté. Tous les domaines d'applications sont
concernés y compris les quantités de logiciels de
l'industrie perdus suite à leur oubli après une
période plus ou moins longue de momification et non de
réelle restauration, sans oublier les logiciels
multimédia ou éducatifs. Un premier pas "humanitaire"
serait de rendre disponible les codes sources de ces logiciels
abandonnés sous licence de logiciel libre par exemple si
l'entreprise ou l'éditeur n'a pas la capacité
d'effectuer une restauration. (En savoir plus sur le site www.abandonware-definition.org) retour en haut de la page
AFAICS :
As Far As I can See... locution américaine pour
écrire "comme je peux voir..." manière d'indiquer ce
que l'on a compris du sujet évoqué... retour en haut de la page
Lady Ada Lovelace :
Née en 1815, Lady Ada Lovelace est associée
à Babbage, le concepteur du premier ordinateur. À 17
ans, elle commença une correspondance volumineuse avec
Babbage sur des sujets mathématiques, logiques et autres.
Elle lui servit ensuite de traductrice pour un mémoire paru
en français sur une machine analytique. Par la suite, elle
écrivit des instructions pour la machine analytique
conçue par Babbage, ce qui permet de la considérer
aujourd'hui comme la pionnière de la programmation dans
l'histoire. Un langage de programmation, bien connu de nous, porte
aujourd'hui son nom : ADA.
Elle mourut d'un cancer à l'âge de 37 ans.
Pour en savoir plus une biographie en anglais de Betty A. Toole:
"Ada, the Enchantress of Numbers" (1992, Strawberry Press) comme
l'appelait Babbage lui-même. retour en haut de la page
IIRC :
If I Recall Correctly... locution américaine pour
écrire "si je me rappelle correctement..." précaution
"oratoire" avant de se lancer dans une affirmation suspecte... retour en haut de la page
Von Neumann :
John Von Neumann né en 1903 a le premier l'idée de
faire cohabiter le code d'exécution d'un programme et ses
données dans la même mémoire. Ainsi une seule
architecture matérielle peut réaliser toutes sortes
de calculs. Ce principe dit de Von Neumann est toujours
utilisé pour la conception des ordinateurs modernes. Il
apporte ainsi une importante contribution à la
cybernétique (fonctionnement des automates, intelligence
artificielle). De plus, en décrivant la possibilité
pour un programme de prendre le contrôle d'un autre, il
décrit par-là le fonctionnement d'un virus
informatique. Il meurt en 1957 après avoir contribuer
à d'innombrables autres sujets comme l'analyse probabiliste,
la théorie des ensembles, la mécanique quantique mais
aussi en participant à la réalisation de la
première bombe atomique.
(Sources : www.sciences-en-ligne.com, www.bibmath.net,
www.linux-france.org) retour en haut de la page
ASAP :
As Soon As Possible : locution américaine pour
écrire "Dès que possible". Deux possibilités
suivant que vous demander quelque chose ou bien que vous deviez
quelque chose. Si vous êtes demandeur, la locution signifie
alors "dès maintenant voire hier" ! Si vous êtes
débiteur, la locution signifie alors "dès que
j'aurais le temps" ! retour en haut de la page
Classic :
Avec l'apparition de Mac OS X nous nous trouvons en
présence de trois sortes d'applications du point de vue de
leur exécution. Les premières sont les applications
natives Mac OS X. Elles sont au format du noyau d'exécution
Mach. Elles utilisent les bibliothèques d'applications Unix,
Cocoa ou Carbon. Les deuxièmes sont
les applications mixtes fonctionnant à la fois sur Mac OS X
et Mac OS 9. Elles sont au format PEF. Elles utilisent la
bibliothèque Carbon. Les
troisièmes sont les applications ne s'exécutant que
sous Mac OS 9. Elles sont au format des ressources CODE. C'est le
format des premiers systèmes Mac. Ce format prend maintenant
le nom de Classic. Elles utilisent la bibliothèque ToolBox.
Avec Mac OS X son exécution est émulé par
l'application Classic. retour en haut de la page
Pourquoi le langage Ada ne
définit-il pas de priorité dans l'utilisation des
unités ?
Dès le départ Ada inclus des niveaux de
priorité concernant les identificateurs pour des
déclarations de types, de variables, de fonctions ou de
procédures. Cette priorité est donnée à
la proximité. L'identificateur retenu correspond à la
déclaration la plus proche de l'utilisation. Par contre les
unités sont traitées différemment. La
déclaration de l'identificateur déclaré dans
plusieurs unités sera retenue à condition de la
préfixer de l'unité choisie. La priorité est
fixée individuellement. L'ajout de 'use' pour les
unités ne nous aide pas, au contraire le compilateur fait
ressortir l'ambiguïté de choix. Une situation qui se
fait cruellement sentir pour les déclarations de
l'unité Standard qui sont toujours prioritaires face aux
déclarations d'une autre unité. Je soumets à
votre sagacité une solution simple qui donnerait la
priorité à la dernière unité
déclarée dans un 'use'. Bien sûr pour garder le
contrôle de cet automatisme on ajouterait une option au
compilateur pour afficher l'unité retenue lors de la
compilation. Une telle option ne serait-elle pas d'ailleurs bien
utile dans le fonctionnement actuel pour déterminer
l'unité de provenance d'un identificateur même issue
d'une seule unité ? Réponse de Gautier : Pas vraiment, le problème
est que le "use" de plusieurs unités peuvent rendre visibles
plusieurs choses ayant le même identificateur, et ce au
même niveau.
Cela n'est pas possible avec des déclarations: on ne peut
pas avoir plusieurs fois le même identificateur sur le
même niveau. C'est donc un problème spécifique
à "use[s]". Ada le résout en imposant le
préfixage. Borland le résout en donnant la
préférence au dernier venu, ce qui est très
facile pour eux du point de vue des tables d'identificateurs mais
pose de nouveaux problèmes au programmeur:
- le fonctionnement du programme peut changer si on échange
deux unités "Use"ées
- le traçage des identificateurs est plus difficile
- les collisions de noms ne sont pas annoncées Réponse de Blady : Il est vrai que la collision de
nom n'est pas annoncée dans ce cas, mais une option du
compilateur pourrait l'indiquer avec l'unité "choisie".
Le traçage des identificateurs est effectivement plus
difficile. C'est déjà le cas avec Ada95! Là
aussi une option appropriée pourrait indiquer l'unité
retenue. Je n'ai pas connaissance d'un compilateur qui la
propose.
Troisième argument : l'inversion induit un changement de
comportement, ah "fatal error"! Gautier a mis le doigt au bon
endroit, il s'agit certainement de la raison principale du rejet de
cette fonctionnalité, Ada voulant un fonctionnement
identique quel que soit l'ordre des unités.
Pourtant, pourtant, une hiérarchisation serait la bien
venue, plutôt que de mettre tout à plat...
Mais le dogme Ada reste le dogme Ada.
Peut-être que la solution ne se trouve pas au niveau du
compilateur, mais au niveau d'un éditeur de codes sources
Ada "intelligent" qui proposerait les diverses possibilités
à la frappe ou en automatique sur l'ensemble d'un code
source. Vos réponses... retour en haut de la page
FAQ :
Frequently Asked Question, locution américaine pour
désigner les questions les plus posées,
appelée aussi "Foire Aux Questions". En pratique, les
sections FAQ sur Internet sont très mal nommées car
elles se veulent répondre à toutes les questions
même celles qui ne seront jamais posées... retour en haut de la page
Swap :
Le fonctionnement d'une application nécessite de la
mémoire vive ou RAM. Malheureusement, la RAM de votre
ordinateur n'est pas illimitée et reste coûteuse.
Quand elle n'est plus disponible, le système copie une
partie des informations sur votre disque dur. Le système
peut alors continuer à fonctionner correctement comme si
votre ordinateur possédait une mémoire virtuelle.
Elle est dénommée également Swap. À
l'origine cette méthode, utilisée encore par
plusieurs anciens systèmes Unix, consiste à copier
l'ensemble de la mémoire utilisée par une application
inactive sur le disque dur. Et inversement lorsque cette
application devient active. Mac OS X diffère par
l'utilisation de pages mémoires de petites tailles
copiées ou lues suivant les besoins. On parle alors de
"paging" plutôt que de "swapping". La mémoire du
système est organisée en pages
réservées (utilisées principalement par le
noyau, elles restent toujours en RAM), en pages actives
(correspondent aux applications actives, elles sont lues à
partir du disque si elles n'étaient pas
précédemment en RAM), les pages inactives (seront
copiées sur le disque si les pages libres ne sont pas
suffisantes), les pages libres (servent à accueillir de
nouvelles applications). Créer une partition Swap
dédiée sur le disque dur permet de limiter grandement
les ralentis causés par l'échange d'informations
entre votre disque dur et la RAM physique de votre ordinateur.
Cette amélioration de performance est bien plus visible si
vous possédez deux disques durs...
(Source et en savoir plus sur la partition Swap de Mac OS X : www.mac4ever.com) retour en haut de la page
Pourquoi pas un accès permanent
à Internet abordable ?
Malgré les effets d'annonces de plusieurs fournisseurs
d'accès Internet (FAI), les prix des abonnements semblent
toujours élevés. L'accès à Internet
reste un luxe, pas un bien grand mais tout de même. Parce que
cela sans doute tient d'abord à l'aspect virtuel de la
marchandise. Le téléphone ainsi que le Minitel nous
avaient habitués à payer pour ce que l'on consomme en
fonction du temps et du service utilisé. Internet est
différent, le FAI vend moins un contenu (bien que certains
veuillent le croire) mais une connexion (avec il est vrai des
espaces pour une boite à lettres ou un site web) vers un
ensemble de sites qui sont pour la plupart gratuits. Il est de plus
en plus avéré que les communications avec Internet
entre dans notre quotidien. Les "www" et autre "@" sont
omniprésents dans nos média. L'utilisation d'un
ordinateur demande aussi par lui-même de plus en plus
l'accès à Internet. Les systèmes actuels
demande plus de mémoire plus de puissance mais aussi
l'échange d'un volume plus important de données par
Internet, logiciels, mises à jours, vidéo, musiques,
etc. La course à toujours plus dans le domaine informatique
poursuit sa logique commerciale dans le domaine du matériel,
dans l'intérêt du consommateur. Par contre cette
logique est mise à mal lorsqu'il s'agit de connexion
Internet. Ne serait-ce qu'une question de temps, le temps de
rentabiliser les équipements et les infrastructures ? Vos réponses... retour en haut de la page
RTFM :
Read The Fu**ing Manuel, locution américaine
imagée signifiant d'une part, que l'on aurait dû
consulter la documentation avant de poser la question et d'autre
part, que le manuel n'est pas "terrible" puisque il n'est pour
ainsi dire jamais lu. retour en haut de la page
Conway : voici deux Conway John et
Melvin :
Né en 1937, John Conway a montré très
tôt un intérêt pour les
mathématiques. Il invente le "jeu de la vie",
popularisé par l'économiseur d'écran des
stations Sun. Le jeu de la vie est un automate cellulaire, il
cherche une règle simple menant à des
comportements complexes. Il imagine alors un carré de
dimension n*n dans lequel chaque cellule peut être soit
vivante soit morte. L'actualisation des cellules est la
suivante : une cellule morte entourée (8
possibilités) par exactement trois cellules vivantes
renaît à la vie, tandis qu'une cellule vivante
entourée par moins de deux voisins meurt par isolement
ou par plus de 3 voisins meurt par surpopulation. Il
s'avère que le jeu de la vie engendre des structures
d'une complexité inattendue, qui évoluent, se
déplacent, engendrent d'autres structures, ne
dépendant que de la structure initiale. John Conway a
d'abord joué au jeu de la vie avec jeu de Go, puis les
ordinateurs s'en sont emparés comme reflet d'une
intelligence intrinsèque qui bien évidemment n'en
est pas une, mais seulement l'illusion.
Melvin E. Conway a suggéré que la structure
d'un système informatique devait être le reflet de
l'organisation de ses concepteurs. C'est devenu depuis la loi
de Conway. L'exemple donné est celui d'un compilateur :
"Si vous mettez quatre équipes sur la conception d'un
compilateur, vous obtiendrez un compilateur quatre passes."
On doit aussi à Melvin Conway d'être à
l'origine, en 1963, des fameux diagrammes syntaxiques
décrivant graphiquement la structure d'un langage
informatique. Il a démontré que tous les langages
déterministes pouvaient être décrit par
cette méthode. Celle ci fût reprise par d'autres
pour décrire toute sorte de concepts comme la
récursivité, les symboles non-terminaux, les
interfaces utilisateurs par exemple. Cette notation peut
construire des entités comparables à celles
définies par Backus-Naur ou à la machine de
Turing.
I See What You Mean, locution américaine pour
écrire "je vois ce que tu veux (vous voulez) dire".
L'expression peut être sincère ou ironique. retour en haut de la page
Base de données relationnelle :
Une base de donnée est une collection de valeurs, pouvant
être de natures différentes, groupées en
attributs pour caractériser une entité que l'on veut
classifier. Par exemple si l'on veut classifier des salles de
cours, on pourra retenir comme attributs l'identifiant de la salle,
le nom du professeur, la date et l'heure d'occupation de la salle.
L'ensemble des attributs formant la structure de la table des
salles de cours. Les valeurs correspondantes à chaque salle
de cours sont saisies dans des fiches. L'ensemble des fiches
formant les valeurs de la table. On pourra aussi créer une
table des professeurs avec sa structure propre. L'ensemble des
tables formant la base de données. L'ensemble des valeurs
est représenté d'une seule et même
manière. Elles sont indépendantes de la
représentation des données physiques. Une base de
données est dite relationnelle lorsque l'on peut
établir une relation entre deux tables. On établit
une relation entre la table des professeurs et la table des salles
sur l'attribut du nom du professeur. Si la matière
enseignée est un attribut de la table des professeurs, on
peut ainsi afficher l'ensemble des matières
enseignées dans une salle de classe à l'aide d'une
seule requête sur la base de donnée. On
s'aperçoit que la complexité d'une base de
données relationnelle vient de la préservation de son
intégrité au cours du temps. Si un professeur quitte
l'école la suppression de sa fiche dans la table des
professeurs ne suffit pas, il faut aussi supprimer toutes les
salles de cours utilisées par celui-ci. retour en haut de la page
Pourquoi les serveurs de mails ne
filtrent-ils pas les spams ?
Les serveurs de mails sont des automates très performants
qui font en sorte d'acheminer correctement notre message à
son destinataire. Notamment, ils opèrent toute une
série de vérifications pour adresser le message au
bon destinataire. Une simple erreur pourrait avoir des
conséquences néfastes pour l'émetteur - envoi
à un destinataire non désiré par exemple. Par
contre rien de la sorte chez le destinataire, les messages
s'accumulent dans sa boite aux lettres, qu'ils s'agissent de
messages attendus ou de messages indésirables nommés
spams. Au fond, rien de bien différent du comportement de
nos boites aux lettres - bien réelles celles-là - de
notre domicile, qui accumulent un nombre certain de prospectus non
désirés. Il n'empêche que le fournisseur
d'accès est le mieux placé pour verrouiller les
spams. En effet c'est lui qui à la base stocke ou rejette
les messages si le destinataire est connu ou non. En regardant les
spams de plus près, la grande majorité pour ne pas
dire tous, présentent une adresse e-mail qui n'est pas
valide. Pourquoi les serveurs de mails ne filtrent-ils pas les
messages en vérifiant si l'adresse de l'expéditeur
est active chez le serveur d'origine ? Vos réponses... retour en haut de la page
Java :
Plus qu'un simple langage de programmation orienté objet
dérivant du C++, Java comprend aussi de nombreuses
bibliothèques pratiques (interface utilisateur, graphisme,
réseau, web, etc.) et un environnement d'exécution
indépendant de la plateforme. Deux maximes
célèbres de Sun son créateur l'illustrent :
"un seul code source + une seule compilation = portabilité
parfaite" et "le réseau est l'ordinateur". Avec Java et
Internet les barrières traditionnelles
d'incompatibilité entre plateformes actuelles ou futures
tombent. Tous les développements en Java peuvent, en
théorie, s'interconnecter entre eux. Contrairement à
Ada de 10 ans son aîné, on regrette que Sun n'est pas
poussé plus loin l'épuration syntaxique du langage
C++ pour offrir une plus grande sécurité de
codage.
Pour en savoir plus : java.sun.com. retour en haut de la page
Pourquoi les serveurs ne s'identifient-ils
pas mutuellement par signature électronique ?
Dans la poursuite de la réflexion sur le Spam, oui la
boite aux lettres explose, beaucoup d'interrogations sur les
mécanismes d'échanges de courrier apparaissent. En
dépit de la non-existence de frontières dans Internet
et donc de délimitation juridique (sans porter de jugement
sur ce fait), les serveurs ont des connexions
hiérarchisées et réglementées par des
organismes internationaux. Un serveur américain sait
très bien reconnaître que vous vous connectez depuis
un serveur français et donc proposer une page
adaptée. Cependant il est vrai que des mécanismes
complexes peuvent flouer cette authentification. Ainsi la signature
électronique apporte une authentification correcte. Alors
pour faire le tri entre les messages voulus et les Spams, pourquoi
les serveurs ne s'identifient-ils pas mutuellement par signature
électronique ? Vos réponses... retour en haut de la page
ASCII :
Comme les ordinateurs ne comprennent que les nombres binaires,
on doit alors substituer un jeu de valeurs binaires à un jeu
de caractères pour faire enregistrer un texte par un
ordinateur. L'American Standard Code for Information Interchange
(ASCII) est un standard de codage de caractères apparu dans
les années 60. Il a été très populaire
avec le langage Basic des premiers micro-ordinateurs dans les
années 70-80. Bien qu'aujourd'hui les logiciels modernes
permettent de saisir des textes de niveau PAO sans ce
préoccuper du codage interne et que l'ASCII ait
été conçu pour des télétypes, il
est encore d'actualité car il est à la base de la
plupart des codages actuels : Windows, Mac, Unix et ISO. Ces
derniers comportent toujours une partie commune composée des
caractères ASCII. Ainsi, lors d'échange entre
ordinateurs avec des systèmes différents, ce codage
minimal est toujours employé comme dans les échanges
Internet.
Pour en savoir plus : www.commentcamarche.net/base/ascii.php3. retour en haut de la page
Comment identifier les versions ?
Établir une traçabilité des
différentes versions, révisions ou éditions
d'un fichier devient nécessaire à partir du moment
où il sort du domaine de cohérence défini ou
domaine privé. Ce domaine est souvent restreint à une
personne ou à un groupe de personne. Un système
très simple est la datation du document à chaque
diffusion. Si ce système permet d'identifier chaque
diffusion, il est par contre peu lisible directement et
difficilement manipulable simplement. On en vient alors à un
système d'indice à base d'une identification par
lettres ou nombres. On parle ainsi de version 3 ou d'indice C. Ce
qui n'empêche pas de dater pour établir un historique
sur une échelle de temps. Néanmoins la nature humaine
étant ce qu'elle est, l'explosion des versions est
inévitable. On arrive vite à épuisement de
l'alphabet ou à des nombres élevés qui n'ont
plus de signification (qu'elle est la signification de la version
100 par rapport à ce qu'à été la
version 10?) On en vient ensuite à définir des
numéros de versions majeures et mineures : 1.4. Le
numéro 1 étant celui de la version majeure
réservée au changement d'importance et le
numéro 4 réservé au changement de moindre
importance étant celui de la version mineure avec entre le
point comme séparateur. (Attention aux dérives du
type 3.2.4.1.1.2...) Comment déterminer un changement
important de celui qui ne l'est pas? Première réponse
: cela dépend de chacun. Mais cela ne nous aide pas. En
règle générale le changement majeur est
réservé à distinguer des phases bien
précise qui peuvent être des jalons, des
périodicités, un nouvel accord sur le contenu. Le
changement mineur intervient en correctif par rapport à la
version majeure. La version 7.4 correspond au 4ème correctif
de la 7ème version.
Il convient aussi de distinguer les diffusions non officielles
comme brouillon ou pour validation. On a la possibilité
d'ajouter un indice ou de changer de nature lettre ou chiffre pour
bien différencier d'une diffusion officielle. Ainsi on
utilisera 10.3c ou D1.
Il n'est pas souhaitable de lier une même version entre
différents fichiers. Chacun doit posséder sa version
propre, même pour un document décrivant un logiciel.
Un document spécifique décrira alors la composition
ou la nomenclature de l'ensemble. retour en haut de la page
CSV :
Comma Separated Variable (CSV) est une convention
d'écriture de données d'un tableau de valeurs ou
chaque ligne comporte plusieurs champs. Les données sont
écrites dans un fichier texte. Chaque ligne de la table
correspond à une ligne de texte. Les champs de chaque ligne
sont écris en texte, les uns après les autres
entourés de guillemets et séparés par des
virgules. Cette convention est de plus ou moins respectée.
Les guillemets peuvent se perdre. Les virgules se transformer en
tout autre caractère rare comme "|". Le but est de minimiser
la probabilité de retrouver ce caractère dans la
valeur d'un champ. Les tableurs et SGBD présentent quasi
systématiquement une fonction d'exportation à ce
format. La simplicité fait de lui un format passe
partout. retour en haut de la page
Pourquoi une entreprise irait confier son
informatique à un constructeur qui n'est pas leader ?
Les soucis de pérennité d'une entreprise font de
ses choix qu'ils sont plutôt conservateurs et même
s'orientent souvent vers le leader du secteur. À quoi bon
investir dans un fournisseur qui risque de disparaître ou au
mieux risque de rester marginal, par conséquent incapable
d'être compétitif sur l'offre et sur les coûts.
D'autre part, un produit acheté par la majorité ne
peut pas être mauvais. De ces postulats découlent deux
phénomènes se chevauchant. D'abord le marché
est segmenté. De cette façon un fournisseur sera plus
facilement leader dans son secteur (qualifié de niche s'il
n'est pas suffisamment représentatif). Ensuite on observe
des regroupements pour créer des leaders de fait. En va-t-il
de même dans l'informatique ? La nature virtuelle
spécifique à un logiciel permet l'existence de
fournisseurs alternatifs bousculant les précédentes
réflexions. Est-ce au point qu'une entreprise ferait le
choix de l'alternatif ? Vos réponses... retour en haut de la page
BNF :
Backus Naur Form (BNF) est une notation formelle pour
décrire la syntaxe d'un langage informatique. Le langage
Algol (ancêtre du Pascal) de Peter Naur a été
la première utilisation de cette présentation par
John Backus à la fin des années 50. Peter Naur est
tellement surpris des différences entre sa définition
du langage et de la présentation de John Backus plus
précise et plus complète qu'il décide que la
version suivante Algol 60 sera définie avec cette notation.
Il présente le tout au début des années 60
avec une notation adaptée prenant le nom des deux
compères. Depuis tout langage qui se respecte utilise cette
notation pour en spécifier les règles de la
syntaxe. retour en haut de la page
Update :
Le processus "update" vide les caches du système de
fichier toutes les 30 secondes. L'activité de celui-ci se
dévoile avec l'application "Moniteur d'activité",
onglet activité disque. Une écriture sur disque (en
rouge) est visible toutes les 30 secondes. Non, ce n'est pas un
virus par contre il permet de garantir l'intégrité du
système de fichier. Le processus est lancé lors de
l'initialisation du système Mac (processus père :
init).
Pour en savoir plus faire "man update" avec le Terminal. retour en haut de la page
Pourquoi je ne trouve pas de FAI
proposant la création de sites Web dynamiques avec Java
?
Première réponse rapide : je n'ai pas bien
cherché parmi les FAI (Fournisseur d'Accès Internet).
Bon une fois ceci dit, les seuls résultats de mes recherches
ont été les fournisseurs de serveurs cousus mains
mais sans Java. Il y a bien du PHP, des Applets mais pas de Tomcat.
Sans doute y a-t-il une question de sécurité. Le
paramétrage du serveur d'applications Java (les servlets)
est certainement plus complexe. Cependant, côté
concepteur du site dynamique, Java apporte une
sécurité accrue. Côté charge du serveur
même topo, le serveur exécute tout le code, ne
transmettant que la page HTML. Là aussi l'avantage est un
confort accru pour l'utilisateur. Cette technologie est reprise en
entreprise pour de nombreuses applications Intranet mettant en
avant sa souplesse de développement, sa
sécurité et sa facilité de déploiement.
Pourquoi pas une plus grande démocratisation de son
utilisation sur Internet ? Vos réponses... retour en haut de la page
Syslogd :
Le processus "syslogd" lit et enregistre les messages
envoyés par les applications courantes à la console.
À une époque par encore très lointaine, les
serveurs étaient surveillés par une console
branchée directement et bien souvent doublée d'une
imprimante. Sur cette console s'affichaient tous les messages
d'alerte sur le fonctionnement du serveur. Aujourd'hui, le serveur
s'est transformé en ordinateur personnel et la console
s'efface devant l'écran de l'utilisateur. Cependant, le
système fonctionne toujours à travers un ensemble de
fichiers dits "logs" qui sont créés ou mis à
jour par le processus "syslogd". Ces fichiers sont décrits
dans /etc/syslog.conf. Ce fichier définit quelle
priorité d'information (avertissement, erreur, alerte...)
est écrite dans quel type de fichiers logs. Une attention
particulière est mise sur la sécurité. La
plupart du temps, ces serveurs sont localisés dans des
pièces sécurisées et donc la console aussi.
Avec le système de fichier, "n'importe qui" peut lire ces
informations pouvant contenir des informations sensibles sur la
marche de l'ordinateur. Les messages consistent en une ligne de
texte débutant par la priorité. Le processus
récupère les messages traditionnellement de
/dev/console, de /dev/klog mais aussi maintenant d'une socket UDP
/var/run/syslog créée par le processus sur le port
UDP 514 par défaut (voir /etc/services à syslog).
L'application "Console" (Applications/ Utilities) permet de suivre
et de consulter les logs.
Le processus est lancé lors de l'initialisation du
système Mac avec "/usr/sbin/syslogd -s -m 0" (processus
père : init).
(-s indique de ne pas écrire les messages provenant d'autres
ordinateurs pour des raisons de sécurité - sinon un
individu malveillant pourrait remplir votre disque à
distance), -m 0 indique de ne pas insérer
périodiquement une marque temporelle dans les logs)
Pour en savoir plus : syslogd
(le man installé avec le système n'est pas à
jour). retour en haut de la page
Modèle réseau OSI :
Aboutissement de travaux de la fin des années 70, le
modèle réseau Open Systems Interconnection (OSI)
apparaît au milieu des années 80 pour
homogénéiser la multitude des protocoles
réseaux existants alors. L'interconnexion dépendait
alors du bon vouloir de chaque constructeur et surtout
présentait des pertes de performance inacceptables et
coûteuses pour l'époque. Néanmoins, il s'agit
de ne pas favoriser un protocole plutôt qu'un autre, comme
celui d'IBM, de DEC, de Bull ou bien du DoD (le fameux TCP/IP) et
d'autre part de prendre en compte les architectures
matérielles existantes. Le modèle OSI va
décrire ce que doit faire un protocole réseau mais ne
pas dire comment. Pour cela, la liaison réseau va être
découpée en plusieurs couches. Théoriquement
à chaque couche peut être associée une solution
d'un constructeur, pas forcément la même pour toutes
les couches. Ce qui fait la force et faiblesse de ce modèle.
C'est ainsi grâce à lui que l'on peut utiliser
Internet avec une ligne téléphonique ou avec un modem
USB. Mais il n'associe pas de label OSI, si bien que certaines
situations peuvent rester tout de même complexes bien que se
réclamant du modèle OSI. Les couches sont au nombre
de 7 de la plus basse (la plus proche du matériel) à
la plus haute (la plus proche de l'utilisateur final), chacune
ayant sa valeur ajoutée.
Les couches physiques (représentation électrique du
bit et mécanique de la liaison), liaison de données
(organisation des bits en trames avec gestion des erreurs),
réseau (organisation des trames en paquets avec gestion du
flux) et transport (organisation des paquets en messages avec
gestion des connexions) relèvent du matériel et du
système présent. Les couches session (gestion de
synchronisation de l'échange des messages),
présentation (formatage particulier comme la compression ou
le cryptage) et application (service offert à l'utilisateur
comme la messagerie) relèvent du logiciel présent.
Pour en savoir plus : réseau
OSI. retour en haut de la page
IANAL :
I Am Not A Lawyer... locution typiquement américaine pour
écrire "je ne suis pas un juriste..." précaution
signifiant que les propos émis doivent être
considérés sous toutes réserves, l'auteur
n'étant pas un spécialiste du sujet traité. retour en haut de la page
Mach_init :
Mach_init est le processus d'accès à la messagerie
interne de la partie Mach du noyau.
Il recense les services mis à disposition par le noyau aux
autres processus. Les services sont regroupés en
sous-ensembles permettant la mise en oeuvre de niveaux de
sécurité gérés par mach_init. Seuls les
processus enregistrés pour un service donné auront
accès à ce service décrit dans
/etc/mach_init.d pour les services systèmes et
/etc/mach_init_per_user.d pour les services utilisateurs.
L'activité (arrêt, démarrage) des services est
gérée par mach_init sur demande du processus
client.
Le processus mach_init est activé à la fin du
démarrage du noyau (processus père : init). C'est le
premier processus créé. C'est lui qui active le
processus init de la partie BSD du noyau.
Pour en savoir plus faire "man mach_init" avec le Terminal. retour en haut de la page
IRL :
In Real Life... locution américaine pour écrire
"Dans la vraie vie..." par opposition à la vie sur Internet.
Même sans forcément se dédoubler, s'inventer un
pseudo, la vie sur Internet via les forums, les chats, les blobs,
les listes de discussions qualifiées de virtuels (sans
contact physique réel vocal ou visuel) contamine l'individu
pendant les moments où il est connecté. Avec cette
locution, l'interlocuteur ouvre une parenthèse à sa
vie hors Internet, sa vie réelle qui reste
séparée de sa vie virtuelle où tout est
possible. retour en haut de la page
Le noyau :
Une façon de définir le noyau Unix (kernel en
anglais) est de l'opposer aux processus. Dans Unix toute action /
exécution de code est un processus. Le noyau est la partie
de code qui reste "résidente" alors que les processus sont
chargés ou déchargés suivant leur
exécution. Une autre façon de définir le noyau
consiste à regrouper toutes les opérations proches du
matériel. Cette dernière définition est floue
du fait que la frontière est elle-même floue. Mais les
deux définitions se rejoigne en un morceau de code
"résident", chargé au démarrage, qui prend en
charge les opérations proches du matériel. Avec Mac
OS X, une partie du noyau est issu de la famille Mach pour les
opérations de gestion multitâche préemptive et
coopérative, de gestion du multitraitement symétrique
(SMP), de gestion de la mémoire physique et virtuelle, de
communication entre processus de gestion des dispositifs
matériel et l'autre partie est issue de l'UNIX BSD pour les
opérations de gestions des utilisateurs et des permissions,
des piles réseau, des fichiers virtuels, des API Posix.
Pour en savoir plus voir les projets Mach
et FreeBSD. retour en haut de la page
ROTFL :
Rolling On The Floor Laughting... locution américaine
pour écrire "Je me roule par terre de rire..." Employez la
à bon escient, votre interlocuteur à l'autre bout du
réseau ne peut voir si c'est juste une boutade ou plus. retour en haut de la page
Init :
Le programme init est la dernière étape du
processus de démarrage de l'ordinateur (processus
père : noyau). La séquence de démarrage est
décrite dans le fichier /etc/rc.
Les informations affichées lors du démarrage sont
conservées dans le fichier /var/log/system.log (affichage du
contenu du dernier démarrage avec la commande "grep Console
/var/log/system.log | tail")
Si la séquence réussie, il passe en mode
multi-utilisateurs, sinon il passe en mode mono-utilisateur en
session super-utilisateur avec demande de mot de passe si la
console est marquée peu sûre (insecure) dans le
fichier /etc/ttys. En mode multi-utilisateurs, init exécute
le programme de connexion login sur chaque liaison terminal de
l'ordinateur. Sur Mac, ces dernières sont
désactivées, si bien qu'init ne lance que le
programme de connexion "loginwindow" sur la console, c'est à
dire l'écran du Mac.
Pour en savoir plus faire "man init" avec le Terminal. retour en haut de la page
Processeurs CISC ou RISC ?
Au début des années 1990, Apple a
été à l'origine de la famille de processeur
RISC (reduced instruction set computing - processeur à jeu
d'instruction réduit) PowerPC avec Motorola et IBM pour
équiper les Macintoshs.
Avant Apple utilisait la famille de processeurs CISC (complex
instruction set computing - processeur à jeu d'instruction
complexe) 68000 depuis 1984.
La technologie RISC est alors mise en avant. Ses deux
caractéristiques principales sont premièrement des
instructions ayant toutes la même longueur (8 octets
typiquement) et le même format; deuxièmement des
instructions (sauf branchement) exécutées par la
même séquence interne. En utilisant la technique du
pipeline cela permet au processeur de commencer à traiter
des instructions en entrée de pipeline alors que les
dernières sont encore en cours de traitement. On obtient
alors plus d'une instruction traitée par cycle du
processeur. En plus les compilateurs utilisent ce point pour
présenter les instructions au processeur dans un ordre
favorable qui n'est plus tout à fait dans l'ordre du code
source. Entre parenthèse, cela rend aussi le code assembleur
produit complètement illisible pour un humain.
Quant à la technologie CISC, elle est
caractérisée par des instructions variant dans la
longueur, le format et pouvant exiger les ordres différents
de séquence pour traiter. En conséquence, le
processeur CISC doit identifier le type de chaque instruction avant
qu'il ne puisse lire les opérandes de l'instruction et
continué en séquence. Par contre, le code
résultant est plus compact (certaines instructions ne font
qu'un octet), directement lisible et en utilisant la technologie
superscalaire, le processeur dirige l'instruction vers
l'unité spécialisée qui peut la traiter comme
les unités de traitement "multimédia".
Aujourd'hui les deux technologies se sont rapprochées. Le
PowerPC G5 embarque une unité de traitement vectoriel
(Altivec). Le Pentium embarque un cœur de traitement
"micro-codé" RISC.
Le choix n'est donc plus dogmatique mais doit se faire en fonction
des applications. Une application temps réel ayant de fortes
contraintes sur des délais d'exécution penchera vers
un processeur RISC qui lui assurera des temps d'exécution
reproductible en fonction d'un nombre d'instruction et non pas
variant en fonction de la nature des instructions. Une application
multimédia personnelle ou professionnelle penchera vers un
processeur CISC avec des unités adaptées
vidéo, son et communications.
Pour en savoir plus voir le cours de l'université
d'Angers. retour en haut de la page
Kextd :
Le processus "kextd" a pour mission de charger les extensions du
noyau sur une demande de celui-ci ou d'un processus utilisateur.
Les commandes pour charger et décharger une extension sont
respectivement kextload et kextunload. Par défaut les
extensions à charger sont recherchées dans le
répertoire /System/Library/Extensions. La liste des
extensions chargées est donnée par kextstat.
L'option -x permet de ne charger que les extensions faisant partie
de l'OS de base. Ce qui permet d'effectuer un démarrage
sûr sans des extensions pouvant corrompre le
système.
Les messages d'erreur sont consignés dans system.log ou
sinon disponible dans console.log
Le processus est lancé lors de l'initialisation du
système Mac avec "kextd" ou "kextd -x" si le
démarrage est forcé sans extension externe (processus
père : init).
Pour en savoir plus faire "man kextd" avec le Terminal. retour en haut de la page
Pourquoi ne pas appliquer aux logiciels
les mêmes principes que pour les autres inventions ?
Dans le domaine des logiciels, mon idée est d'en rester
strictement au principe premier que la découverte d'un
concept technologique ou d'un algorithme n'est pas brevetable en
soi mais que son application particulière en tant
interaction avec le monde physique l'est (y compris les
interactions avec l'humain comme les interfaces utilisateurs). Un
exemple, l'affichage d'une fenêtre dite "A propos" qui
affiche le nom, la version et d'autres informations sur un logiciel
n'est pour moi pas brevetable en soi; mais le fenêtre du
logiciel "FireFox" - par exemple - doit être
protégée. Elle relève du patrimoine de ces
concepteurs. Comme le définit l'INPI sur son site : "Les idées
sont de libre parcours. Elles ne sont jamais protégeables,
pas plus que les principes, méthodes, systèmes. Seuls
leur expression et, pour les inventions, leur mode de
réalisation technique applicable industriellement, peuvent
prétendre à la protection." C'est la même
différence qu'entre une spécification logicielle (qui
doit être publique pour être utile et utilisée)
et son implémentation (qui reste privée). Les
concepts ou les spécifications d'interfaces sont de
même nature qu'une invention, par contre leur traduction
particulière relève de la propriété se
son auteur. Elle doit être encore une fois
protégée. Pourquoi alors son auteur ne pourrait-il
pas en retirer des bénéfices.
Pourquoi ainsi ne pas appliquer aux logiciels les mêmes
principes que pour les autres inventions ? Vos réponses... retour en haut de la page
Configd :
Le processus "configd" entretient la configuration du
système durant son exécution, c'est à dire
qu'il distribue si besoin l'ensemble des données
reflétant l'état du système aux autres
processus systèmes. Ces actions sont réalisées
au travers d'agents servant d'intermédiaires entre les
processus et le système. Les agents sont enregistrés
par configd. Ils sont listés dans les répertoires
"/System/Library/SystemConfiguration" et
"/Library/Preferences/SystemConfiguration". Les deux principales
configurations gérées sont la configuration
système (preferences.plist) et la configuration
réseau (NetworkInterfaces.plist).
Le processus est lancé lors de l'initialisation du
système Mac (processus père : mach_init). Les
messages générés par configd et ses agents
sont envoyés dans system.log.
Pour en savoir plus : configd
(le man installé avec le système n'est pas à
jour).
retour en haut de la page
FWIW :
For What It's Worth... locution américaine pour
écrire "Ça vaut ce que ça vaut". Deux sens
sont possibles, soit comme précaution pour signifier que les
propos cités doivent être considérés
sous toutes réserves, soit pour signifier qu'il faut prendre
avec recul ce qu'avance l'auteur. retour en haut de la page
Un démon :
Démon est la dénomination pour un processus qui a la
spécificité première de ne pas se terminer une
fois lancé et de ne pas avoir d'interaction directe avec
l'utilisateur.
Le processus tourne en tâche de fond et assure les
tâches pour lesquelles il a été lancé en
automatique. Ce sont en majeure partie des tâches de gestion
bas niveau de matériels comme les
périphériques (type clavier, imprimante…), le
réseau, les disques, etc. Cette appellation vient d'un jeu
de mot en anglais avec DAEMON mis pour "Disk and Execution
MONitor". Les démons étant les gardiens de l'Olympe
dans la mythologie grecque, ils jouent ici ce rôle pour le
noyau du système d'exploitation.
Pour en savoir plus : Wikipedia. retour en haut de la page
HTH :
Hope This Helps... locution américaine signifiant "En
espérant que cela vous aide". retour en haut de la page
Dynamic_pager :
Le processus dynamic_pager mets à la disposition du noyau
des espaces disques sous forme de fichiers pour l'utilisation de la
mémoire virtuelle. Le noyau bascule une partie de la
mémoire non active sur le disque (voir explication sur le swap). Par défaut les fichiers ont une
taille de 64 Mo. Cette taille peut être redéfinie avec
l'option -S. Dynamic_pager créé un fichier lorsque la
demande de mémoire augmente ou en supprime un lorsqu'il n'y
en a plus besoin. Par défaut, les fichiers sont
créés dans le répertoire /private/var/vm avec
les noms swapfilei ou i part de 0 et s'incrémente d'une
unité pour chaque nouveau fichier. L'option -F permet de
définir une base de fichiers. Le processus peut aussi
prévenir lorsque la demande passe en dessous ou au-dessus
d'un seuil paramétrable en utilisant les options -L et -H.
Pour des raisons de sécurité les fichiers de swap
peuvent être cryptés en utilisant l'option -E.
Le processus est lancé lors de l'initialisation du
système Mac avec "/sbin/dynamic_pager -F
/private/var/vm/swapfile" (processus père : init).
Pour en savoir plus faire "man dynamic_pager" avec le Terminal. retour en haut de la page
AFAIUI :
As Far As I Understand It... locution américaine signifiant
"Pour autant que je comprenne". retour en haut de la page
Diskarbitrationd :
Le processus diskarbitrationd réalise la connexion et la
déconnexion logique (ou le montage et le démontage)
d'un dispositif de stockage de masse (ou volume) comme un disque
dur, un CD ou une clé USB. Les volumes connectés au
démarrage sont énumérés dans le fichier
/etc/fstab (classiquement sur un système type unix) mais ne
sert pas sur Mac OS X. Le processus averti aussi ses applications
clientes des changements de volumes. Avec l'option -d, les
modifications sont tracées dans le fichier
/var/log/diskarbitrationd.log. Le processus est lancé lors
de l'initialisation du système Mac avec
"/usr/sbin/diskarbitrationd" (processus père : init)
Pour en savoir plus faire "man diskarbitrationd" avec le
Terminal. retour en haut de la page
YMMV :
You Mileage May Vary... littéralement "votre
kilométrage peut varier" signifiant que ce qui est
présenté est sans garantie car cela peut
différer suivant votre cas particulier. retour en haut de la page
CVS :
Concurent Versioning System (CVS) est un système de
contrôle de version d'un logiciel comprenant un serveur de
code source et de plusieurs outils. Les systèmes de
contrôle de version sont généralement
utilisés dans le cycle de développement pour suivre
et coordonner les changements du code source au sein de
l'équipe de développement. Un serveur CVS est
adapté à la spécificité du
développement logiciel avec des fichiers au format texte
(compilation), avec un grand nombre de fichiers
(modularité), avec des modifications simultanés
(parallélisation), avec des livraisons multiples
(historisation). Des bugs se glissent parfois quand le programme
est modifié. On peut ne détecter le bug que longtemps
après avoir fait les modifications. Avec CVS, on extrait
facilement les anciennes versions pour voir exactement quel
changement a causé le bug. CVS stocke toutes les versions
d'un fichier dans un fichier unique d'une manière
intelligente qui stocke seulement les différences entre les
versions. CVS utilise un et un seul dépôt (repository)
qui centralise tous les fichiers du développement logiciel.
Chaque développeur travaille dans son propre bac à
sable (sandbox). CVS fusionne le travail quand chaque
développeur a terminé. CVS autorise un nombre non
limité de copies locales de chaque fichier permettant
à chaque développeur de disposer de ses propres
fichiers sources sur son poste de travail. CVS gère la
concurrence sans verrou. C’est à dire qu’il est
possible à plusieurs développeurs d’intervenir
sur le même fichier source et d’apporter chacun ses
propres modifications. Dans la mesure du possible CVS gère
automatiquement la fusion des modifications.
Pour en savoir plus son site web : www.nongnu.org/cvs. retour en haut de la page
Code source / code objet :
Un logiciel est un objet informatique composé de millions de
codes représentants des instructions compréhensibles
du seul processeur de notre ordinateur. D'où le vocable
"code objet" pour désigner la suite de ces instructions. Par
opposition, le code source d'un logiciel est la
représentation de ces mêmes instruction dans une
représentation en un texte plus ou moins
compréhensible par un humain. Il existe plusieurs niveaux
allant du code source assembleur au code source écrit dans
un langage de programmation de 5ième
génération.
Pour en savoir plus : Petite histoire des langages de
programmations. retour en haut de la page
ATM :
At The Moment... littéralement "En ce moment..." signifiant
aussi "Jusqu'à maintenant..." utilisé pour
préciser que ce qui suit n'est valable qu'au moment
où c'est écris. retour en haut de la page
Notifyd :
Notifyd est le serveur pour le système d'avertissements
entre applications. Ce système est très simple. Une
application cliente lance au serveur un avertissement
identifié par un nom. Les applications clientes
désirant recevoir l'avertissement s'enregistrent
auprès du serveur en demandant à être averties
par vérification manuelle, par signal, par message ou par
fichier. Ensuite elles peuvent vérifier si l'avertissement
est arrivé. Le processus est lancé lors de
l'initialisation du système Mac avec "/usr/sbin/notifyd"
(processus père : launchd)
Pour en savoir plus faire "man notifyd" et "man 3 notify"avec le
Terminal. retour en haut de la page
Launchd :
Launchd est le nouveau processus de Darwin en charge du
démarrage du système en lieu est place du processus
init. Le processus est le premier lancé
par le noyau lors de l'initialisation du
système Mac. La séquence de démarrage est
toujours décrite dans /etc/rc. Cependant, le lancement des
services statiques de /etc/rc est au fur à mesure
reporté dynamiquement avec SystemStarter et launchd.
L'objectif est d'obtenir à terme un démarrage
entièrement dynamique. De plus, l'édition de /etc/rc
est complexe et dangereuse. Une erreur bloquera l'ensemble du
lancement. Launchd peut être invoqué avec les options
"-s" pour un démarrage mono-utilisateur et "-x" pour un
démarrage avec seulement les services minimaux du
système. Les services lancés par SystemStarter sont
décrits dans /System/Library/StartupItems et
/Library/StartupItem. Les services lancés par launchd avec
la fonction launchctl sont décrits dans
/System/Library/LaunchDaemons, /System/Library/LaunchAgents,
/Library/LaunchDaemons, /Library/LaunchAgents et
~/Library/LaunchAgents.
Pour en savoir plus faire "man launchd"avec le Terminal. retour en haut de la page
SLOC :
La taille d'un logiciel pour la plupart d'entre nous
représente l'espace disque minimum pour le contenir ou la
durée de son téléchargement ! Cette taille
là est la résultante d'un travail de
développement plus ou moins important, mais elle n'y est pas
directement liée. Il peut y avoir une tendance mais entre
deux logiciels demandant la même place disque l'un peut avoir
nécessité beaucoup plus d'efforts que l'autre. La
valeur recherchée va plutôt dépendre de la
taille du code source. Le code source représente assez bien
le temps passé par le développeur à constituer
le logiciel. La plupart des codes sources étant
représentés par du texte, on peut assez facilement
classifier les sources spécifiquement créés
pour le logiciel, ceux qui ont été
réutilisés, même ceux
générés automatiquement à partir de
descriptions plus synthétiques. Le nombre de lignes des
sources est donc cette valeur recherchée, en anglais Source
Lines of Code (SLOC). Certains logiciels atteignent même
jusqu'à des dizaines de millions (!) de ligne comme Linux
(environ 40 millions SLOC). Il existe quantité d'outils qui
vont compter le nombre de lignes en mettant de côté
lignes vides et commentaires. Bien évidemment le nombre de
SLOC n'est pas calculé pour le plaisir mais pour estimer le
temps à passer à créer un logiciel et ainsi
son coût et sa durée de développement. retour en haut de la page
Pourquoi payer plus cher maintenant alors
que ce sera moins cher voire gratuit après ?
La durée de vie d'un produit informatique - ordinateur ou
logiciel - est courte, très courte. C'est bien connu.
Pourtant, face à la situation où pour le même
prix il apparaît un ordinateur qui fait 10 fois plus trois
mois après son achat ou bien que également trois mois
après le prix du même logiciel a fortement
diminué, on peut se poser la question suivante : Pourquoi
payer plus cher maintenant alors que ce sera moins cher voire
gratuit après ? Néanmoins, est-ce vraiment la bonne
question à se poser ? Un produit informatique est un
investissement important pour celui qui l'achète mais c'est
aussi un bien plus important investissement pour celui qui l'a
créé. Il est certain qu'une partie du coût de
cet investissement se retrouve dans le prix. Ensuite lorsque le
montant de l'investissement est couvert, le prix du produit peut
alors baisser voire le produit peut devenir gratuit. Ne faut-il pas
alors se poser la question : Est-ce que j'ai bien fait en payant ce
produit à ce prix là ? À ce moment là,
on profite de ceux qui ont payé avant nous et avant ce
moment on paye pour ceux qui vont acheté après. La
question devient alors : Quels usages pour l'argent que je donne ?
Est-ce uniquement pour enrichir le créateur du produit ou
pour être réinvestit dans d'autres produits dont je
pourrais bénéficier par la suite ? Vos réponses... retour en haut de la page
AFAIR :
As Far As I Remember... littéralement "Aussi loin que je me
souvienne..." signifiant par là une précaution
utilisée pour préciser que ce qui suit est
conditionné par la bonne mémoire de l'auteur. retour en haut de la page
Pourquoi le législateur n'est-il
pas plus strict à l'encontre des e-mails commerciaux
?
Une obligation de d'inclure une mention permettant de ne plus
recevoir de messages au moyen d'une adresse e-mail
dédiée et non pas d'un lien Internet moins fiable.
L'adresse e-mail débuterais toujours par "no-use" suivi du
nom du site du style "no-use@site.com". Cela permettrais d'une part
de recevoir une réponse indiquant soit que notre adresse
e-mail ne sera dorénavant plus utilisée par le site
à des fins commerciales ou dérivées, soit que
notre adresse n'est plus utilisées à ces mêmes
fins. Je préfère le terme "utilisé" au terme
"enregistré" ou "abonné" car certains sites
malveillants annulent bien l'enregistrement de notre adresse mais
la refile à d'autres sites sans plus d'autorisation
qu'implicitement "plus enregistrée" ne signifie pas "plus
utilisée". Bien sûr, cela n'empêchera pas cette
pratique de perdurer mais cela donnera des moyens de recours
supplémentaires et plus rigoureux. D'autre part, dans le cas
où légalement une mention comportant cette adresse du
style "no-use@site.com" était obligatoire, cela permettrait
aux serveurs de messages des FAIs de vérifier sa
présence, la bonne cohérence entre le domaine
émetteur et celui de l'adresse, voir même de
vérifier sa validité en envoyant un message avec une
adresse du type "test@fai.fr". Dans la négative, le message
serait marqué "non désirable" pour l'utilisateur et
le serveur pourrait renvoyer un avertissement de non remise
à l'émetteur. Vos réponses... retour en haut de la page
Ichbiah :
Jean Ichbiah, membre de l'académie des sciences, est
indissociable de la naissance du langage Ada. À la fin des
années 70, avec son équipe chez Bull, il se lance
à l'assaut des États-Unis et de son ministère
de la défense (DoD) qui recherche à unifier ses
langages de développement (quelques centaines !) des
logiciels militaires. Après une sélection rigoureuse,
le DoD retient le projet français Ada qui
devient une norme internationnale en 1983. La fin du projet
marquera pour beaucoup (dont je fais partie) le début de
nouvelles aventures avec un langage dont la puissance n'a pas fini
de surprendre.
Jean Ichbiah reçu aussi bien les honneurs français
qu'américains pour cette contribution à l'histoire
des langages informatiques.
Né en 1940, habitant en Amérique depuis l'aventure
Ada, il décède en janvier 2007 des suites d'une
tumeur cérébrale. retour en haut de la page
WYSIWYG :
What You See is What You Get... littéralement "Ce que vous
voyez est ce que vous obtenez..." signifiant que l'interface
utilisateur est de type graphique au contraire des premières
interfaces utilisateurs en mode texte. Ce terme a surtout
été utilisé comme slogan dans les
années 80 pour vanter les mérites de logiciels
graphiques multi-fenêtres. Avec une interface texte, il
était assez difficile de d'obtenir une bonne
fidélité entre la visualisation à
l'écran et d'impression. Aujourd'hui la tendance est moins
à l'impression mais plus à la publication
électronique. Mais le terme dénote toujours une
interface utilisateur ergonomique. retour en haut de la page
POSIX :
Au vu de la prolifération des Unix non standard - dont Mac
OS X / Darwin est un dernier avatar de plus - l'Institute of
Electronic and Electical Engineers (plus connue sous IEEE)
créé un groupe de travail à la des
années 1980 pour développer un standard d'interface
Unix : Portable Operating System Interface based on uniX (POSIX -
IEEE Std 1003 - ISO 9945) dont le nom a changé par la suite
en Portable Operating System Interface for Computer Environments
puisque en fait Unix est une marque (crée par ATT dans les
années 1970, Unix est maintenant la propriété
de l'Open Group). L'objectif du groupe POSIX est de créer un
standard international basé sur les deux souches Unix
principales ATT et BSD (l'autre version historique avec plus
récemment Linux). Il s'agit de définir une interface
de programmation standard (API) entre le code applicatif et le
système d'exploitation. Pour cela, ce standard doit
être indépendant des constructeurs, du système
d'exploitation et de la plate-forme matérielle. De ce fait,
la portabilité des applications au niveau du source peut
être assurée.
Pour en savoir plus : Wikipédia.
retour en haut de la page
TIA :
Thanks In Advance... littéralement "Par avance, merci..."
généralement employé pour indiquer que toute
réponse à notre demande sera la bienvenue et en sera
remerciée. retour en haut de la page