samedi 13 octobre 2007

Cartographie sémantique du top 100 des blogs


Voici une carte sémantique de 100 blogs : télécharger le fichier "PDF" ici.
(la carte est trop grande pour être visualisé par une simple image sur le web)

Pour une rapide introduction au sujet de la méthode utilisée voyez le premier article sur le sujet de la sémantique.
La liste de blogs provient du "top 100" du site wikio. La couleur des bulles contenant les noms des blogs est en rouge d'autant plus vif que son classement est bon. Le positionnement dans l'espace ainsi que les liens (matérialisé par des traits noirs) sont issu d'un calcul de mesure de distance sémantique. Il ne s'agit pas de lien "internet" (lien hypertexte) mais de ce que les gens disent de ces blogs sur internet... Certain blogs peuvent être sémantiquement très proches d'un blog du "top 10" et ne pas du tout être bien classé... On voit ici les limitations des systèmes à base de classement.

On remarque assez rapidement que les blogs "high-tech" se retrouvent au centre, et autour d'eux se déploient les zones des blogs littéraires, politiques, culinaires etc ...
Si cet article vous a plus, vous êtes libre de cliquer ici :  pour le promouvoir. 
Annexe(s) :

blogs.pdf :: 0.8427 B

vendredi 28 septembre 2007

graphe sémantique



ou comment découvrir automatiquement le sens de mots en les visualisant sur un graphe sémantique ...








Qu'est ce que la sémantique ?

C'est à la fois simple à comprendre et compliqué à manipuler
La sémantique c'est le sens, c'est ce qu'on appelle aussi parfois le « fond » par opposition à la forme. Par exemple si je compare les mots « voiture » et « véhicule » d'un point de vue sémantique ce sont des mots relativement proche par leur sens. Je peux en général remplacer le mot voiture par le mot véhicule, cela ne changera pas le sens du discourt. La sémantique est naturelle et facile pour un humain, par contre un ordinateur est incapable de voir la proximité de sens entre ces deux mots, sauf bien sûr si on lui a donné cette information. Spécifier une base de donnée sémantique est extrêmement coûteux et complexe car il faut détailler et expliquer le sens de chaque mots utilisé ainsi que ses rapports avec tous les autres. C'est une des raisons pour lesquelles le fameux «web sémantique » peine à se diffuser.

Ce qui est expliqué ici n'a évidement pas pour but de concurrencer le projet de web sémantique, mais montre qu'il est possible d'accéder de manière indirecte à la sémantique des mots. Cela se fait grâce au calcul d'une distance sémantique entre mots (voir cet article pour plus de détail ). Cette distance, assez simple à calculer en pratique, permet alors de comparer sémantiquement des textes. Notez que cela ne veux pas dire que l'ordinateur comprend réellement le sens du texte, mais il est capable de les comparer et de mesurer leur similitudes ou différences sémantique. Ainsi connaissant une base de mots si on est capable de placer un mot nouveau par rapport à cette base, on peut alors en avoir une compréhension intuitive. C'est ce que l'on va faire ici.

Distance sémantique et représentation
L'article précédemment cité nous donne donc la possibilité de calculer une distance sémantique entre n'importe quelle paire de mots grâce à quelques requête sur un moteur de recherche sur internet. On obtient alors une valeur numérique pour toute paires de mots pour une liste donnée. On va considérer cette valeur comme une distance. On peut alors essayer de placer les mots sur un plan de manière à respecter au mieux les distances sémantique calculées. C'est ce qui est fait ici :
 
voilà comment on peut interpréter ce schéma :
  • on voit que en haut à gauche se situe les écoles d'ingénieurs (formation scientifique/technique)
    (esiea, efrei, estaca, esme)
  • en haut à droite il y a les écoles de commerce.
    (hec, edhec, isc)
  • en bas à droite il y a les grandes écoles publiques (polytechnique, ena, sciences po')
  • On peut noter aussi que polytechnique est plus proche du groupe d 'écoles d'ingénieur qu'il ne l'est des écoles de commerce. De même science po' et l'ena sont plus proche des écoles de commerce que des écoles d'ingénieur.
Cette organisation à été produite entièrement automatiquement. Les distances sémantiques entre les mots ont été calculées à partir de recherches sur internet. Trouver les coordonnées des emplacement de chaque mots satisfaisant les distances sémantiques est une opération compliqué. On est d'ailleurs pas du tout assuré qu'il existe un agencement des mots dans le plan permettant de respecter les distances sémantique... Une solution approchée consiste à représenter les distances entre les mots comme des ressorts. Pour cela on crée un simulateur et on laisse les lois de la physique trouver une solution approchée des positions.

Cette production, quoique 100% automatique, est pourtant sémantiquement tout à fait valide. Notez les regrouppement d'écoles par thèmes (ingénieurie scientifique et technique, commerce, gestion, et grandes écoles publiques).

Supposons maintenant que je connaisse tout ou presque des écoles précédemment citée mais qu'on me parle d'une école dont le sigle est isg dont je ne connais absolument rien. Je vais tout simplement l'ajouter au graphe suivant et laisser faire le programme...
Voici ce qu'on obtient :
 
On voit alors que l'isg se rapproche des écoles de commerce donc « non-scientifique ». S'agissant d'un école de gestion, les positions relative des mots nous permettent de nous faire une idée, de manière automatique, du thème de cette école.

jeudi 6 septembre 2007

Imprimantes et sécurité de l'information

Nous avons crée un logiciel qui permet d'identifier l'imprimante ayant produit un document. Cela permet deux applications très intéressante dans le domaine de la sécurité : la création de bons sécurisés à coût presque nul et la détection de faux documents. Cela crée aussi de nouvelles failles dans le système d'information des entreprises...


Comment est ce possible ?
La majorité des imprimantes laser couleur ajoutent, lors de l'impression, un message invisible à l'oeil nu mais pourtant bien présent. On parle alors de message stéganographique. L'objectif est de pouvoir retrouver l'imprimante ayant produit un document. Pourquoi cela ? La justification est historique et vient du DOD (Department Of Defense) dont l'objectif est de limiter les risques de création de fausse monnaie avec la précision diabolique des imprimantes et photocopieuses laser couleur. Maintenant que ces imprimantes sont devenues très courantes on peut imaginer que les applications d'un tel système vont pouvoir aller bien plus loin... L'existence de ce système est connu depuis un moment déjà (quoique en général peu connu du grand public). Les premiers à avoir levé le lièvre sont les gens de l' « Electronic Frontier Fondation » (EFF, voir cet article pour plus d'information).
Cela veut dire qu'on peut remonter jusqu'à l'imprimante à partir de n'importe quel document qui en sort. Il est donc possible découvrir sur quelle imprimante un tract a été produit. Cela veut dire aussi qu'on est capable de regrouper des documents provenant d'une même imprimante. Si on pousse un tout petit peu plus loin, si on analyse les papier récupérés des poubelles d'un hôtel d'entreprise (bâtiment contenant plusieurs entreprises différentes), il devient alors très facile de regrouper les documents par imprimante donc par entreprise, voir même, par services... Imaginez alors le volume d'informations ainsi récupérable...

Comment ça marche ?

Écriture

Il s'agit de points jaunes extrêmement petits qui sont inscrits à des endroits bien précis. Le faible contraste qu'ils offrent ainsi que leur faible taille les rendent indétectables à l'oeil nu. L'image ci-dessous est un agrandissement d'un morceau d'une page contenant une marque stéganographique. Notez que cette image est tellement agrandie que vous pouvez voir le grain du papier.

Lecture

En scannant une feuille de papier ainsi imprimée, il est possible de faire ressortir cette marque par des traitements d'image, et de l'extraire du document (le détacher du fond) pour la lire. Le message est très redondant ainsi, même un morceau d'une feuille peut suffire pour lire l'identifiant de l'imprimante.

Pourquoi est-ce si peu connu ?
Jusqu'à présent cette information a peu été relayée dans les grands médias. Déjà parce que les constructeurs ne s'en vantent pas car c'est à la fois :
  • une vente forcée : ce n'est pas une fonctionnalité demandée ni connue des clients, pour laquelle, pourtant, ils payent...
  • une violation potentielle de la vie privé
  • une potentielle faille de sécurité dans un système d'information.
Bref ce n'est pas une bonne publicité...
Comme vous pouvez le constater sur le site de l'EFF il n'est actuellement pas possible de lire cette marque automatiquement (en tout cas pour le grand public) ce qui rend peu réaliste toute analyse de gros volume de documents. En effet la lecture de la marque, tel qu'elle est proposée sur le site de l'EFF, nécessite un matériel particulier (scanner bricolé) ainsi qu'une analyse manuelle du document. Ce qui veux dire qu'en pratique cet élément de traçabilité est peu utilisable, sauf peut être pour le DOD et les constructeurs d'imprimantes qui eux doivent certainement avoir un système automatisé pour le faire...
Voici deux articles du magazine « PC world » relatant l'existence d'un tel système :
Quelles marques sont concernés ?
Si votre imprimante est d'origine américaine il est presque certain qu'elle possède un tel module stéganographique et donc qu'elle marque chacun de vos documents couleur. Voir ici pour la liste des imprimantes connues pour inclure de telles marques.
La plupart des imprimantes des constructeurs ci-dessous insèrent une marque stéganographique :

Seul ces deux constructeurs, à notre connaissance, n'inscrivent pas de marque stéganographique :


Les applications potentielles de notre logiciel
Un groupe d'étudiants et moi-même avons réalisé un logiciel de lecture automatique de ces marques. L'objectif étant la création d'applications dans le domaine de la sécurité de l'information :
  • la création de bons sécurisés à coût presque nul
  • la détection des faux fait avec des photocopieurs ou imprimantes laser couleur.
Ces deux applications sont détaillées dans les deux sections suivantes.

Création de bons sécurisés à coût nul

Une application possible est la création, à coût (presque) nul, de bons papier « sécurisés ». Il existe déjà beaucoup de solutions pour créer des bons, tickets, billets plus ou moins infalsifiable, cependant ils ont un coût. La solution proposée ici n'a aucun coût (hormis le logiciel) et ne nécessite rien d'autre qu'une imprimante laser couleur et un scanner.
Voilà comment cela fonctionne. Supposons que Alice souhaite envoyer un bon (à échanger contre une marchandise par exemple) à Bob. Alice voudra éviter que quelqu'un , y compris Bob, puisse copier ce bon ou en faire un faux. Pour cela Alice n'a qu'a utiliser notre logiciel pour découvrir sont identifiant. Cela se fait simplement en 4 étapes :
  1. Impression d'un document couleur (n'importe lequel)
  2. Scan du document
  3. Analyse via notre logiciel
  4. ça y est Alice connait l'identifiant de sont imprimante.

Elle créee alors un bon avec n'importe quel éditeur de document, y met le contenu qu'elle désire, et l'imprime. Elle peut alors le distribuer à Bob. Quand Bob voudra échanger le bon ou le faux bon, Alice peut alors vérifier qu'il s'agit bien d'un original en lisant la marque sur le bon. Alice, ou n'importe quel personne, pourra donc savoir si le bon qu'on lui présente provient bien de l'imprimante d'Alice, si ce n'est pas le cas ce bon est forcement un faux.
Évidement comme tout système il n'est pas totalement inviolable, mais en pratique cela s'avère suffisement compliqué pour que cela fournisse un niveau de sécurité suffisant pour beaucoup d'applications. Pour vous en donner une idée, imaginez bien que le DOD n'aurait pas forcé les fabricants d'imprimantes à insérer ce genre de système si il n'était pas un minimum efficace, surtout pour protéger la valeur du billet vert...
En plus du coût nul ce système présente ces avantages :
  • Pas besoin de changer de système d'impression (une imprimante laser couleur classique suffit) il y a de très fortes chances que celle que vous possédez déjà fasse l'affaire.
  • Quelque soit le logiciel d'édition utilisé, et même quelque soit le pilote(driver) utilisé, l'identifiant est inséré sur chaque page imprimée. Le système de production de document est tout à fait classique et standard.
  • La lecture se fait avec un scanner standard (<50 Euros) et notre logiciel.

Application à la détection de faux documents

Les imprimantes ou photocopieurs lasers sont souvent utilisés par les fraudeurs pour constituer des faux, et pas seulement des faux billets de banque mais aussi de faux diplômes, de fausses ordonnances médicales, de fausses attestations, fausse facture, etc ... . Il est assez naturel qu'un fraudeur utilise une imprimante unique, ainsi lors de constitution de dossiers toutes les pièces fausses contiendront la même marque. Cela veux dire qu'on peut détecter une fraude si on remarque que plusieurs pièces d'un dossier viennent de la même imprimante alors qu'elles devraient provenir d'imprimantes différentes (par exemple une ordonnance de médecin et une facture de pharmacie).

Conclusion
Ces deux applications de notre logiciel sont des gages de sécurité. Nous avons toutefois conscience des risques d'espionnage qu'ils constituent. Cela peut donc générer des vulnérabilités, cependant :
  • Dans la mesure ou au moins le DOD et les constructeurs d'imprimantes sont capables de le faire, il nous paraît plus sain que tout le monde puisse le faire aussi...
  • Le risque de vulnérabilité existe si on ne sait pas qu'il y a une marque, et nous contribuons à rendre cette information publique, notre objectif n'est donc pas dans le vol d'information mais plutôt d'en protéger les gens.
  • Il existe des marques d'imprimante qui n'utilisent pas ce système il y a donc un moyen simple de se prémunir contre ce risque. (okiData, Samsung)

Vous pouvez cliquer sur ce lien pour voter pour ce logiciel sur le site "pioche" (un équivalent français de "Digg").
Wikio est un autre site d'agregation de news , merci de cliquer sur ce logo pour voter pour cet article.

jeudi 30 août 2007

Détournement de la wiimote

La manette de la dernière console de nintendo est conçue pour être sensible au mouvement. Le principe d'interaction avec les jeux est donc plus axé sur des mouvements que simplement d'appuyer sur des boutons. Cela peut paraître simple mais c'est à la fois plus compliqué qu'il n'y paraît mais aussi plus intéressant et beaucoup plus amusant. La wiimote est très intéressante car elle offre pour 40 euros un accéléromètre 3D et un système de communication sans fil. J'y vois plein d'applications possibles, les jeux bien sûr , mais plein d'autres choses encore...

La wiimote utilise le système de communication « bluetooth » sans aucune encryption, elle envoie donc ses données en clair. Il n'a donc pas fallu attendre longtemps pour que les premiers drivers libres arrivent. Le site Wiili est un bon point de départ pour voir ce qui a déjà été fait. Il suffit alors d'avoir des drivers bluetooth et d'installer un driver « wii ». Sous Ubuntu les drivers « bluez » sont installé de base et fonctionnent bien. J'ai utilisé le driver « libwiimote » qui permet d'interroger la wiimote en langage C. Son utilisation est d'une simplicité déconcertante.

Je me suis amusé à tracer en 3D la sortie des 3 directions (x,y,z) de l'accéléromètre. Voici ce que ça donne :

(Je faisais des moulinet en l'air avec la wiimote, un peut comme un magicien avec une baguette magique...)
Il est clair qu'il n'est pas simple d'interprèter ces valeurs, cela fera l'objet d'un premier type de projet : un système de reconnaissance de mouvement. Je pense aborder le problème avec des reseaux neuronaux par apprentissage (ce sera probablement le TP du module « neural computing » en 4A).
Un autre type d'application est la capture de mouvement :
  • Pour être capable d'enregister des mouvement pour les recréer ensuite dans un jeux vidéo ou dans une animation d'image de synthèse. C'est de la « motion capture ». Cela risque d'être très compliqué dans la mesure où ce que donne la wiimote sont les accéllérations mesurées, pas les mouvements et encore moins les positions de la wiimote... Mais il peut quand même être intéressant d'y réfléchir.
  • Pour une « simple » mesure des accélérations pour l'étude des mouvements de sportifs. L'accéléromètre de la wiimote semble limité à +/- 3.6 ou 4 G (ce qui n'est pas beaucoup), ce ne sera donc pas utilisable pour tous les sports, mais je pense qu'il y a quand même des choses intéressantes à explorer dans ce domaine.
Ce que je cherche :
  • des gens intéressé par ce type de projet. (les objectifs seront ajusté en fonction du type de projet : « esieaLabs », PAIR, PSI, PDD, ... )
  • actuellement, je recherche des gens capable de bidouiller avec la SDL pour faire une simple représentation, en temps réel, des valeurs mesurées par la wiimote. Il n'y a pas besoin d'être un super « kador » dans le domaine si vous arrivez à bidouiller les fichiers d'exemple des tutoriaux c'est suffisant...Et ça m'aiderai beaucoup...
Si vous êtes intéressé, n'hésitez pas à poster un message ici, m'envoyer un mail ou tout simplement venir me voir.

jeudi 17 mai 2007

Reconstruction de documents détruits


J'ai eu beaucoup de messages de gens (« anciens », collègues, ...) me signalant des articles au sujet de la reconstruction de documents détruits. Cela m'a donné l'idée de résumer ce que les étudiants ont réussit à faire sur ce sujet dans le cadre de mon cours.
Voici les liens vers les articles en question :

Ces articles leur ont fait pensé au projet que je soumets aux étudiants de deuxième année dans mon cours d'algorithmique pour illustrer les liste chaînées. Je suis content de voir que ce type de projet non seulement est un bon moyen d'intéresser les étudiants à l'algorithmique mais peut aussi avoir des applications pratiques.

Bien sur le projet que nous avons réalisé en deuxième années est moins ambitieux que celui relaté dans ces articles. Il nous manque la traitement d'image mais l'approche algorithmique reste valide. L'année dernière j'avais proposé le challenge « original » de reconstruction de document détruit (et cela à fait l'objet d'une épreuve du challenge sécuritech). Il s'agissait de reconstruire un document comme celui-ci.


Il était assez facile d'arriver à écrire un programme donnant un résultat comme celui-ci (un étudiant avait réussit la reconstruction parfaite).


Cette année nous avons revisité le problème avec une image, et non un document texte. Dans la mesure où il y a beaucoup plus d'information dans une telle image, le problème à été rendu plus compliqué en augmentant le nombre de coupures dans l'image. Le problème semble alors plus limite impossible. Voici l'image « détruite ».


Il n'en reste pas moins que certains étudiants ont réussit à faire un programme opérant la reconstruction parfaite (et beaucoup on fait une reconstruction tout à fait acceptable.)


Quelque soit le type d'image, la problématique se résumait à reconstruire une seule page ou une seule image. Le problème devient bien plus complexe quand il s'agit de reconstruire plusieurs pages différentes, pour deux raisons :
  • Il devient rapidement difficile de générer de très grandes image. Il faut donc décider, au bons endroit, de stopper la reconstruction d'une page pour passer à la suivante, mais sur quels critères ?
  • Comme on peut le voir sur l'exemple du document texte reconstruit, à certains endroit la reconstruction est imparfaite. Il serait très simple à un opérateur de corriger cette erreur « manuellement », si on était capable de lui proposer un nombre d'alternative raisonnable... Or si on traite plusieurs pages la gestion de toutes ces alternatives de reconstruction devient très complexe.
Une solution est de voir le problème les alternative de reconstruction comme un graphe... Chaque morceau de document est représenté par un sommet du graphe et chaque liens entre sommet représente un ordre possible de reconstruction. Il se trouve que les graphes sont au programme du second semestre... Je pense que je tien l'idée de projet pour ce semestre ;-) , reste à trouver un autre projet pour le premier semestre ...
En avant première je me suis amusé à tenter l'aventure et c'est effectivement très instructif, le graphe produit semble bien montrer :
  • certaines zones assez linéaire : il s'agit des régions que l'algorithme de base reconstruit sans problème.
  • certaines zones avec beaucoup d'embranchement : il s'agit des régions où l'algorithme de base risque potentiellement de générer des erreurs, et c'est donc la qu'il faut proposer des solutions alternatives.
  • La topologie de graphe semble donner des indications sur les débuts et fins de page pour permettre à l'algorithme de reconstruction de proposer un résultat par page.
Cette solution semble bien couvrir toutes les problématique d'une reconstruction d'un document de plusieurs pages. Je pense qu'on va bien s'amuser ...

mardi 13 février 2007

Renouveau du FPS ? (First Person Shooter)

Ce billet présente un projet d'esieaLabs de création automatique de map (terrain) pour un type particulier de jeu-vidéo, le FPS. Je pense que ce type de fonctionnalités permettra réellement d'avoir un nouveau type de gameplay...

Vous avez déjà probablement déjà joué à un FPS , c'est très distrayant, parfois un peu bourrin, c'est vrai, mais ce genre de jeux sert à se défouler... Le must étant de jouer en réseau, sur le net ou en LAN. Depuis un moment déjà des tentatives très intéressantes on visé à rendre ce type de jeux un peu plus subtil : les FPS tactiques. L'idée est d'ajouter des composantes tactiques et pousser les joueurs à un jeux d'équipe. C'est plus complexe et plus riche en gameplay donc plus intéressant. Tremulous est un de ces jeux (il s'agit d'un logiciel libre), vous trouverez ici une description du gameplay.

Malgré les tentatives d'innover dans ce type de jeux, il reste un point noir important qui gâche beaucoup du plaisir de ces jeux : le nombre limité de maps. Ces maps sont souvent livrées avec le jeux. Souvent l'éditeur du jeux distribue ou vend des maps supplémentaires (pour prolonger l'intérêt du jeux, et aussi ses ventes...). Parfois encore des joueurs créent leur propres maps (grâce à des logiciels comme gtkRadiant) et les diffusent pour le plus grand bonheurs de tous. En pratique faire une map est une tâche longue et complexe donc le nombre de nouvelles maps reste très faible par rapport aux nombre d'heure qu'un bon joueur passe à jouer. Il en résulte que dans une partie, en général, tout le monde connaît la map par coeur, et plus encore tout le monde connaît les stratégies gagnantes par coeur. Au final cela devient aussi peu intéressant que de jouer au morpion. Ce jeu perd rapidement son intérêt quand on a compris qu'il existe une stratégie gagnante à tous les coups (pour celui qui commence la partie en premier). De plus ce phénomène a un autre effet pervers : les joueurs les plus assidus (pas forcement les meilleurs) connaissent mieux les maps et donc ont un avantage certain. Il n'y a donc pas besoin d'être bon joueur pour gagner, être un joueur fréquent suffit, autant dire que cela agace fortement les bons joueurs qui n'ont pas le temps de jouer aussi souvent qu'ils le voudraient...

Un moyen de contrecarrer ce phénomène serait d'avoir un générateur automatique de map : un programme qui génère des terrains de jeux. Comme cela on pourrait avoir une très grande quantité de maps ce qui rendrait impossible de les connaître toutes par coeur, ou tout simplement de générer la map juste avant la partie comme ça on est assuré que personne ne la connaît. On peut alors imaginer que chaque nouvelle partie se fait sur une nouvelle map. Le FPS stratégique devient alors aussi un jeu d' « aventure/d'exploration ». Cela renforce le coté stratégique, il faut à la fois découvrir le terrain , en déduire les stratégies possibles, tout en se protégeant des ennemis qui essayent de faire de même. Les joueurs fréquents ne seront plus avantagés, seul une bonne méta-stratégie et un bon jeux d'équipe peuvent amener à la victoire.

On peut même imaginer un nouveau type de compétition en LAN : des parties sur des maps inconnues de tous. Je pense que cela change énormément la donne, et les champions de cette nouvelle discipline devront avoir de bonnes méta-stratégies, jouer souvent ne sera pas suffisant pour s'assurer la victoire dans ce type de compétitions.

Un tel projet de génération automatique de map est en cours à esieaLabs. Le jeux choisit est Tremulous parce qu'il s'agit d'un logiciel libre (cela implique que les format de map sont eux aussi libre) et que ce jeux inclus déjà des notions stratégiques. La difficulté est évidement de construire des maps jouables, pour cela on utilise des générateurs de terrain du type de ceux utilisé dans Terragen. L'objectif de n'est pas de faire du photo réalisme, l'objectif ici est de faire des maps intéressantes à jouer , pour cela on va rechercher des paramètres adéquats à mettre dans les algorithmes de génération de terrain qui amènent à un jeux intéressant. Une autre stratégies possible est de générer une série de maps et de sélectionner celles ayant des caractéristiques indiquant qu'elle seront intéressantes à jouer. Ces caractéristiques seront peut-être difficile à exprimer mais dans la mesure ou les développeurs de ce projet sont aussi des joueurs, j'ai bon espoir d'arriver à un résultat intéressant.


Nous comptons aussi avoir une aide de la part des joueurs : lors de la LAN jeudi 15 février, il y aura un serveur pour Tremulous, donc si vous l'installez sur votre machine (il existe sous linux et windows) vous pourrez tester les maps proposées et nous donner votre avis. Biensur ces maps ne seront pas très jolies, le coté esthétique sera traité plus tard, l'objectif est d'abord de voir si on peut générer automatiquement des maps dont la structure amène à des parties intéressantes. On verra ensuite comment les rendre plus jolies, nous avons déjà quelques idées...
Voici quelques screenshots montrant différentes étapes de la construction d'une telle map:
  • Construction avec un algorithme simple de génération de terrain (visualisation du résultat dans gtkRadiant le logiciel d'édition de map.)
  • Simulation d'érosion pour rendre le visuel du terrain plus réaliste.
  • Intégration du terrain et de la skybox dans le moteur du jeux.
  • Voici le rendu « final » du moment, il est évidemment prévu d'ajouter plein de choses pour rendre ce paysage moins désertique. Si vous faites de la 3D, vos compétences nous intéressent n'hésitez pas à nous contacter. Même si ce n'est pas très joli pour le moment, la structure du terrain est là et c'est ce qui va influer principalement le gameplay, on pourra donc avoir une première idée de ce que cela donne en partie lors de la LAN de jeudi.
De mon point de vu de joueur de niveau moyen, je pense que cela sera très intéressant et peut faire une nouvelle mode pour ce type de jeux. Je suis sûr que parmi vous certains ont un très bon niveau de jeux et une grande expérience des FPS, j'aimerai avoir votre avis sur ce projet et sur ce qu'il peut apporter à ce type de jeux.

jeudi 1 février 2007

Loi de Moore / Loi de « Lourd » ... match nul ...

Le logiciel, une technologie qui régresse ... !?
Préambule important : je parle ici de la technique informatique, c'est à dire ce que nous avons sur nos bureaux actuellement, pas de la science informatique qui elle non seulement fait des progrès phénoménaux mais en plus crée des ponts vers à d'autres sciences fondamentales comme la biologie, la physique quantique, la sociologie, etc... C'est justement cet écart que je veux montrer ici et essayer d'en trouver les raisons...

Cette réflexion est partie d'un souvenir de galère quand j'éditais mon rapport de stage ingénieur en 1995, sur un PC sous Windows avec Word ... Le document commençait à dépasser une soixantaine de page avec quelques images et schémas, et l'édition devenait extrêmement difficile car le programme plantait régulièrement , la mise en page était hasardeuse et chaque sauvegarde était suffisamment longue pour être gênante... Ce souvenir m'est revenu à l'esprit très récemment en éditant mon support de cours du deuxième semestre, qui comporte environ une soixantaine de pages avec quelques schémas et images... L'édition est difficile, car des bugs rendent la mise en page passablement aléatoire , et la sauvegarde est péniblement longue ...

Pourtant plus de 10 ans séparent ces 2 situations très similaires, 10 ans de développement, 10 d'évolution. La loi de Moore sur cette période stipule que l'électronique va normalement 64 à 128 fois plus vite. Cette loi est une réalité, l'ordinateur que j'utilise est facilement 64 fois plus rapide que celui que j'utilisais en 1995, ou plutôt l' électronique va 64 fois plus vite, mais le couple électronique et logiciel qui constitue l'ordinateur, va finalement à peu près à la même vitesse qu'il y a dix ans. En terme de fonctionnalités je n'ai rien de plus (dont j'ai besoin pour éditer un document) : du texte des image, des figures, un sommaire, et une mise en page automatique.

Il y a un statu quo fonctionnel sur les 10 dernières années, alors que la loi de Moore exprime un progrès fulgurant de l'électronique. Cela veux bien dire que l'évolution logiciel à « absorbé » les progrès de l'électronique.

Dit autrement , si on avait figé tout le logiciel en 1995 on aurait la même situation qu'actuellement, mais au moins, ça tournerait 10 fois plus vite. C'est bien le signe que l'évolution logicielle, du point de vue fonctionnel, régresse, car on on aurait une situation plus confortable si le logiciel avait été figé. L'évolution logicielle de ces 10 dernières années est donc facteur de régression pour l'informatique pratique.

Si on voulait comparer cela à l'industrie automobile c'est comme si on avait actuellement des véhicules qui n'avaient pas évolué depuis plus de 10 ans. Ou plutôt seules leur esthétique et l'ergonomie du tableau de bord auraient changé. Donc on enlève les air bags, les ABS et ils consommeraient et pollueraient bien plus. Si on ajoute à cela l'émergence des virus, vers, spam , spyware, troyens, et autres, ont peut se dire qu'en plus ils seraient plus dangereux à utiliser....

Cela me semble suffisamment important pour y attacher un nom. Voici ma proposition :
  • Loi de Moore : tous les 18mois l'électronique double sa vitesse de fonctionnement (et approximativement au même prix).
  • Loi de « Lourd »: tous les 18mois le logiciel est deux fois plus lourd/volumineux et mal écrit ce qui amène à un doublement du temps d'exécution (sur une même machine).
  • Match nul : le bilan de ces deux lois font que la productivité informatique stagne.

J'ai bien conscience que cette réflexion est assez sombre et pessimiste, il faut quand même tenir compte d'un certain nombre de progrès indéniables.
  • Les technologies P2P : c'est indéniable c'est une belle technologie mais qui en pratique est actuellement déconnecté de toute augmentation de productivité professionnelle. De plus cela a amené à l'augmentation des DRM qui en pratique sont une perte de liberté pour le consommateur. Donc je ne pense pas qu'on puisse décider aujourd'hui si l'impact du P2P est quelque chose de globalement positif ou négatif...
  • Les logiciels libres : C'est un progrès fantastique, mais c'est un progrès de modèle économique, ce n'est pas un progrès technique même si cela amène théoriquement à un progrès technique par l'ouverture du code (les logiciels libres sont réputés plus stable que les logiciels propriétaires). Pour la petite histoire le logiciel d'édition de texte qui m'a fait suer sur mon support de cours est open office . Il s'agit d'un est un logiciel libre en version 2.1 (donc théoriquement très loin d'une version béta).
  • Les grilles de calcul ou grid permettent de fédérer des ordinateurs hétérogènes pour en cumuler leur puissance de calcul, progrès technique et scientifique évident. Mais qui en pratique ne profite pas à l'utilisateur standard de l'informatique, mais plus aux scientifiques, et à quelques rares grandes entreprises.
  • Les progrès en simulation numérique (construction automobile, aéronautique ou même nucléaire, ...) , sont eux aussi notables même si ils sont en bonne partie dus au progrès en électronique, le logiciel à quand même évolué mais en pratique le nombre d'industries impactées par ce progrès est relativement limité.
  • Les progrès des jeux vidéo sont eux tout à fait exceptionnel. Il sont pourtant bien plus complexe qu'un traitement de texte, mais bien plus stable et plus innovant... C'est notable et très intéressant. On y reviendra dans la suite de ce billet. Il quand même décevant de se dire que le principal progrès de ces 10 dernières années en informatique visant le grand public se situe (uniquement ?) dans le jeu vidéo.
Pour revenir à mes galères d'édition, les puristes me diront d'utiliser LaTeX pour créer un document. Ce logiciel est plus un compilateur/processeur de texte qu'un éditeur de document de type word ou open office... Ce logiciel existe depuis 1985, il ne s'agit donc en aucun cas d'un progrès récent. Ce logiciel à évidement évolué depuis, mais il est loin d'être utilisable par les utilisateurs classiques de l'informatique (même « l'utilisateur 2.0 » ne s'y risque pas ;-)). Il est quand même extrêmement décevant de se dire que en 2007 il n'existe pas de logiciels wysiwyg (ce que LaTeX n'est pas) fonctionnels pour l'édition de documents. Fonctionnel voulant dire , pour moi , être capable d'éditer un document de plus de 60 pages avec quelques figures et images et un sommaire automatique, le tout devant permettre une interaction sans délais... Ce qui me semble assez raisonnable comme exigence en 2007, mais qui pourtant n'existe pas de nos jours.
[billet à suivre... on parlera des hypothèse pouvant expliquer la loi de « lourd » ainsi que son évolution futur...]