Motion Capture – Optoélectronique – Calibrage

Optoélectronique

L’optoélectronique est une technique assez récente dans le domaine de la capture de mouvement. Cette science permet d’analyser un réfléchissement de lumière.

Le but est donc de filmer des zones sur lesquelles sont fixées soit des composants électroniques qui réfléchissent ou envoie de la lumière, soit des bandes réfléchissantes. Si par exemple, des bandes réfléchissantes sont placées sur un sujet à étudier, lorsque ce dernier sera filmé, l’ordinateur détectera les zones de lumières réfléchies et donc retranscrire le mouvement de ces objet et ainsi du sujet.

http://en.wikipedia.org/wiki/File:MotionCapture.jpg

On peut voir sur cette femme les différentes sources de lumière qui sont ensuite analysé par ordinateur. Le gros avantage de cette technologie est la précision de la mesure. En effet la source de lumière étant fixe cette dernière offre peu de chance d’erreur. De plus, ces composants électroniques sont très petits, léger et peu encombrants, le protagoniste n’est donc pas gêné pour faire des mouvements complexes.

Cependant, contrairement à un système magnétique, la caméra a besoin de voir le capteur. Lorsque ce dernier se retrouve occulté par un mur, une partie du corps … Le point est perdu et cela peut créer des confusions. Il faut aussi faire attention à d’autre objet réfléchissant qui pourrait se retrouver sur le plateau, il est très facile d’avoir une interférence lumineuse. De plus, lors du placement des marqueurs, ces derniers peuvent bouger sur les vêtements ou s’enfoncer légèrement dans des parties plus molles du corps. Ces pour ces diverses raisons que le système optoélectronique demande d’ailleurs un gros post-traitement.

http://www.cs.cmu.edu/~jkh/video_games/mocap.pdf

Outils de mesure de la performance motrice – Richard Kulpa

http://fr.wikipedia.org/wiki/Capture_de_mouvement

 

Calibrage

Lors d’une séance de motion capture, plusieurs caméras filment la scène. Afin d’avoir le même repère pour chacune des caméras afin de situer les objets dans l’espace, il faut toutes les calibrer avec les même paramètres. Il existe deux types de calibrage à faire. Le premier, porte d’abord sur les caméras, le second, porte sur le sujet à étudier.

Calibrage des cameras

Afin que toutes les caméras positionnent un même objet à un même endroit, il faut les calibrer. Il y  de deux manières différentes à faire, de manière statique et de manière dynamique.

La méthode statique consiste à poser au sol un triangle avec des marqueurs fixes, positionnés irrégulièrement, dont l’ordinateur qui étudie les images connait leur position sur le triangle. Ainsi les caméras pourront étalonner leur échelle grâce à cet objet.

Ensuite, la méthode dynamique est réalisée à l’aide d’une baguette dotée de marqueurs (aussi espacé irrégulièrement) que l’on déplace aléatoirement dans la zone à enregistrer.

Calibrage du sujet

Enfin, pour calibrer le sujet, deux étapes à faire aussi. Comme pour les caméras, une de manière dynamique et une autre de manière statique.

En statique, le sujet se tient immobile sur la scène, les bras écartés afin que tous les capteurs et leurs positions relatives soient enregistrés par les caméras.

En dynamique, le sujet réalise des mouvements simples sur la scène afin que les caméras voient les capteurs bouger.

http://www.science.uva.nl/ga/gaigen/apps_mccc.html

http://www.cs.utah.edu/~halzahaw/MotionCapture_main.html

http://wiki.ipisoft.com/Calibration

Apprentissage automatique et réseaux de neurones

Au cours des dernières décennies, de nombreux progrès ont été fait dans le domaine de l’IA. Pourtant, il est toujours impossible, même pour la meilleure machine, de s’adapter à son environnement physique et social comme le ferait un enfant d’un an. La différence est évidente : lorsqu’un ordinateur est programmé pour réaliser des tâches prédéfinies, un bébé ne s’impose aucune contrainte dans sa technique d’apprentissage et décide lui-même de son terrain d’exploration. Il maitrise donc les situations d’apprentissage et développe ses propres représentations du milieu dans lequel il vit. Cette simple analyse est à la base d’une réflexion d’Alan Turing qui aurait dû guider les recherches en matière d’IA des 50 dernières années : plutôt que d’essayer de reproduire le fonctionnement du cerveau d’un adulte, nous devrions commencer par étudier la méthode d’apprentissage employée par les enfants.

Cette idée est mise en pratique dans l’un des champs d’étude de l’intelligence artificielle : l’apprentissage automatique. Cette discipline scientifique vise à concevoir des programmes capables de s’améliorer au cours du temps, en fonction de leurs expériences passées. Il est ainsi possible d’analyser des systèmes complexes à travers l’analyse de données empiriques. On peut également intégrer la notion de « valeur symbolique » qui vise à attribuer à un comportement une certaine valeur numérique (une probabilité par exemple). Ainsi, là où des algorithmes « classiques » auraient des difficultés pour résoudre un problème, l’apprentissage permettra de gérer un grand nombre d’entrées et de régler le problème d’explosion combinatoire. C’est le cas, par exemple, lorsque l’on crée une machine sans connaître l’environnement dans lequel elle va évoluer. Cette discipline trouve une application dans de nombreux domaines : la programmation de systèmes intégrant une perception de leur environnement, de moteurs de recherches, dans la bio-informatique, dans l’analyse financière ou encore dans le monde des jeux vidéo.

Domaine d'application de l'apprentissage automatique (1)

Domaine d'application de l'apprentissage automatique (1)

Les différentes méthodes d’apprentissage

Maintenant, la question est la suivante : un enseignant tente tant bien que mal d’apprendre une leçon à un élève avec pour contrainte un langage commun limité (on peut supposer que ce langage est l’objectif de la leçon), comment peut-il lui transférer son savoir ? A priori, il existe plusieurs méthodes d’apprentissage :

  • L’apprentissage par imitation : l’enseignant montre l’exemple à l’élève qui tente de l’imiter,
  • L’apprentissage par renforcement : l’étudiant tente de réaliser l’action de manière intuitive, et l’enseignant effectue un « feedback » sur sa prestation,
  • L’apprentissage par correction : en même temps que l’étudiant réalise l’action, l’enseignant corrige en temps réel.

A partir de cette réflexion, on définit de nombreuses classes d’algorithme d’apprentissage dont voici les principaux :

  • Apprentissage par cœur (on associe deux éléments dans une mémoire),
  • Par analogie (on établit des correspondances entre deux représentations différentes),
  • Par renforcement (système de récompense/punition suite à une action),
  • Par classification/catégorisation (vise à trier les différentes données),
  • Apprentissage supervisé/non supervisé. Nous développerons cet exemple par la suite afin de mieux intégrer les problématiques liées à l’apprentissage automatique.

Apprentissage supervisé

L’apprentissage supervisé est une catégorie d’algorithme par apprentissage qui vise à produire des règles en s’appuyant sur une base de données d’apprentissage (souvent des résultats d’expériences précédentes). Dans la plupart des catégories d’algorithmes vues dans la partie précédente, la première étape est celle de la classification durant laquelle on « étiquette » chaque donnée en l’associant à une classe. C’est le cas de l’apprentissage supervisé. Dans un premier temps, un « oracle » (personne apte à étiqueter les exemples) génère un ensemble de couples entrée-sortie : c’est la phase d’apprentissage. Ensuite, dans une phase de test, le système tente de prédire la sortie connaissant l’entrée. On retrouve ce comportement lors de diagnostics médicaux. Ceux-ci s’appuient sur une classification de couple symptômes – maladie qui est utilisée dans le but de trouver une maladie (sortie) associée à des symptômes (entrée). Voici un schéma résumant l’apprentissage supervisé :

Apprentissage supervisé (1)

Apprentissage supervisé (1)

Cette forme d’apprentissage est utilisée dans de nombreuses méthodes. En voici quelques exemples :

  • La méthode des k plus proches voisins : connaissant une entrée x, on sélectionne la sortie sur la base d’une analyse des k échantillons dont l’entrée est la plus proche de l’entrée x. On retient souvent la classe la plus représentée parmi les sorties déterminées ainsi ;
  • Les machines à vecteur de support (SVN en anglais) : elles permettent de résoudre des problèmes de régression et de discrimination ;
  • Les arbres de décision ;
  • Les réseaux bayésiens ;
  • Les réseaux de neurones.

Cette catégorie d’algorithme s’oppose à l’apprentissage non supervisé, dans lequel la machine ne dispose pas d’étiquettes mais seulement d’exemple. Le nombre de classe est alors inconnu, et c’est à l’algorithme de déterminer la structure des données.

Réseaux de Neurones

Les réseaux de neurones sont apparus en 1950 et constituent une représentation formelle des neurones biologiques. On retrouve ainsi, pour chaque synapse (connexion entre deux neurones), un coefficient synaptique (appelé « poids ») qui permettent l’induction de l’apprentissage. La base de l’étude est d’établir un algorithme qui permettra de faire évoluer ces coefficients. Le réseau pourra ainsi retrouver des similitudes avec les valeurs qui lui avaient été soumises lors de son apprentissage.

Depuis 1986 (et la mise en œuvre d’algorithmes reposant sur la rétropropagation du gradient de l’erreur dans des systèmes à plusieurs couches !), les réseaux de neurones sont de plus en plus utilisés, notamment dans le milieu des jeux vidéo (première utilisation en 1996 dans Battlecruiser 3000AD et Creatures, puis en 2001 avec Black & White de Lionhead).

Creatures (http://creatures.wikia.com/wiki/Hebe_Norn)

Creatures (http://creatures.wikia.com/wiki/Hebe_Norn)

Structure d’un réseau

Les réseaux sont basés sur une architecture multicouche, chaque couche étant composée de neurones. Une première couche récolte des informations (par des capteurs par exemple) et les transmet à la suivante, et ainsi de suite jusqu’à la dernière couche. Un neurone effectue diverses opérations sur les entrées comme le montre la figure qui suit :

Structure d'un neurone artificiel (2)

Structure d'un neurone artificiel (2)

Il additionne les entrées pondérées par leur coefficient synaptique puis leur applique une fonction dite d’activation et envoie la sortie, suite à une nouvelle pondération par le coefficient synaptique, aux neurones suivants.

Des exemples d’application

L’aspect « roaming » : les déplacements

Un tel réseau permet de traiter le problème de déplacement d’un PNJ avec toutes les caractéristiques inhérentes à celui-ci : destination, vitesse, chemin… Nous avions déjà traité ce problème dans un article précédent (« Pathfinding ») avec des algorithmes tels que A* ou Dijkstra. Cependant, ces différents algorithmes requièrent des informations à propos de l’environnement dans lequel se déplace l’IA (présence d’ennemis, de murs ou d’autres obstacles). C’est la couche de perception qui envoie ces données et c’est donc celle qui contient un éventuel réseau de neurones. Voici un schéma synthétisant les connexions entre les différentes couches du jeu vidéo :

Schéma d'association entre un réseau de neurones et un algorithme de pathfinding (2)

Schéma d'association entre un réseau de neurones et un algorithme de pathfinding (2)

L’aspect « behavior » : les décisions

Cet aspect gère le comportement de l’IA au niveau le plus basique. C’est donc lui qui prend les décisions majeures telles que : attaquer l’ennemi, aller à couvert, changer d’arme. Bien que ces choix puissent paraitre évidents, ils deviennent beaucoup plus complexes lorsque l’on rajoute des paramètres en entrée : « Est-il préférable de perdre 4 secondes pour recharger mon arme puis continuer de cribler mon ennemi de balles sachant qu’il se situe actuellement à 8 mètres et qu’il se rapproche à une vitesse estimée de 1 m/s, ou bien dois-je courir à couvert à plus de 10 mètres de ma position actuelle pour remonter ma santé qui est actuellement à 17% ? À moins de donner l’ordre à un de mes équipiers de me couvrir… ». On comprend bien que les arbres de décisions peuvent rapidement donner des maux de crânes. Par ailleurs, on peut se demander s’il est préférable de donner à l’IA un aspect humain en intégrant la possibilité de se tromper et, par conséquent, laisser au joueur une chance de gagner afin de ne pas le dégouter du jeu !

Mafia 2 – Mais qu'est-ce que je fais maintenant? (2)

Mafia 2 – Mais qu'est-ce que je fais maintenant? (2)

Il existe de nombreuses technologies permettant de répondre à cette problématique sous forme d’arbre de décision. L’une des plus efficaces étant les réseaux Bayésiens. En fonction d’informations observées, ils calculent la probabilité d’événements non observés, afin d’en déduire les actions envisageables. Il est intéressant de les associer aux réseaux de neurones qui s’occuperaient alors de percevoir les données de l’environnement et de les traiter.

Planification et stratégie

Contrairement à des jeux de plateau (Echec, Dames ou Go) où l’on peut envisager de prendre des décisions à l’aide de la logique combinatoire, certains jeux de type RTS (« Real Time Strategy ») intègrent généralement différents concepts qu’il est difficile de gérer et d’équilibrer de façon parfaitement rationnelle : la récolte de différentes ressources, la production d’énergie, la construction de bâtiments, l’évolution des recherches pour améliorer la vitesse des unités, sans oublier le fameux « brouillard de guerre » qui empêche l’ensemble des joueurs de se tenir au courant des activités de l’adversaire.

Ces jeux n’étant pas à information complète (cf. article « La Théorie des jeux »), on ne peut pas appliquer un système de gestion omniscient. Par conséquent, les développeurs utilisent le plus souvent un arbre décisionnel pour prendre en compte un maximum de ces contraintes et envoyer des ordres aux IA. Cependant, l’ergonomie offerte par cette solution n’est pas optimale et le joueur s’en rend assez vite compte. Les réseaux bayésiens pourraient combler ces déficits mais ils ne permettent pas une gestion stratégique en temps réel. La solution la plus adapté semble être les réseaux de neurones mais leur implémentation et leur utilisation pourraient s’avérer délicates. En effet, ceux-ci trouvent leur intérêt dans la classification, la perception et la reconnaissance ou encore la généralisation. Si ils sont capables d’apprendre et de changer leurs choix selon leur expérience, le mode d’apprentissage supervisé ne peut pas convenir, à moins de trouver une méthode pour que le joueur supervise inconsciemment l’apprentissage de son adversaire, et un mode d’apprentissage non-supervisé ne semble pas être adapté à nos besoins.

La solution pourrait résider dans le modèle SOM de Kohonen, qui serait alors utilisé en parallèle d’un outil décisionnel en plaçant un neurone sur chaque zone observable. Ce dernier réagirait ou se déplacerait selon l’activité observée. Il serait alors possible de transmettre des informations précises au corps décisionnel de l’agent. Enfin, l’utilisation d’un Perceptron multicouche pourrait également s’avérer intéressante, notamment pour percevoir l’orientation ou la vitesse de déplacement d’escouades ennemies. Il serait alors nécessaire, au préalable, de les entraîner correctement.

L’avenir ?

Un objectif pour les années à venir est d’augmenter encore l’immersion du joueur en donnant à l’IA une animation faciale et comportementale plus aboutie. Aujourd’hui, de nombreux jeux s’appuient sur des créatures à l’intellect limité (zombies et autres péons) afin de justifier des attitudes primaires. Cette solution risque d’atteindre ses limites aussi bien pour le joueur que pour le développeur. Aussi nous allons sans doute vers des IA capables de reproduire des mimiques du comportement humain, essayant de se rapprocher de leur modèle : nous.

Heavy Rain (2)

Heavy Rain (2)

Références :

  1. http://lipn.univ-paris13.fr/~rouveirol/enseigne/MICR_AS/Arbre-decision-1-2×2.pdf
  2. http://fabien.tschirhart.free.fr/images/Docs/memoire_V129.pdf
  3. http://fr.wikipedia.org/wiki/Apprentissage_automatique
  4. http://edesevin.free.fr/recherche/articles/dossier_candidature_2012.pdf
  5. http://fr.wikipedia.org/wiki/Architecture_cognitive
  6. https://wiki.bordeaux.inria.fr/Helene-Kirchner/lib/exe/fetch.php?media=wiki:flowers.pdf
  7. http://novamente.net/file/IRC_Learning.pdf

Licence Creative Commons Attribution

Cette œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution – Pas d’Utilisation Commerciale 3.0 non transposé.

Des méthodes de management de risque

Il existe divers types de normes de sécurité informatique qui spécifient les méthodes de management de risque ; Ces normes proviennent principalement d‘organismes de normalisation internationaux et gouvernementaux, d’universités ou de milieux associatifs ou privés.

Chaque norme donne lieu à des outils d’analyse, généralement des logiciels gratuits ou payants, assistant la vérification des normes. Nous allons voir Méhari, une des principales normes, et en donner une description.

Mehari (MEthode Harmonisée d’Analyse de RIsques) est développée depuis 1995 par le CLUSIF, elle dérive des méthodes Melisa et Marion. Elle est utilisée par de nombreuses entreprises publiques et privées dans sa version française et anglaise.
Mehari est basée sur des spécifications s’articulant sur trois grands axes complémentaires :
- L’identification des risques : Qui comprend l’identification des actifs, des menaces, des mesures existantes, des vulnérabilités et des conséquences. Cela se fait suivant un processus défini comme suit :

Le « besoin de l’activité », point de départ du processus repose sur l’identification des besoins de services, de données (nécessaires aux services) ainsi qu’au besoin de conformité des comportements au référentiel. Après l’identification des actifs dits « primaires », on identifie leurs différentes formes et contingence qui donnent les actifs « secondaires » pour lesquels s’applique le reste du processus jusqu’à préciser les risques à évaluer.
- L’estimation des risques : Elle tient compte des facteurs structurels (liés à l’activité de l’organisme), des mesures de sécurité mises en œuvre et de la qualité de ces mesures.
Elle combine l’analyse des causes et des conséquences possibles pour évaluer la gravité d’un scénario suivant sa potentialité et son impact.

- La gestion des risques : Elle s’appuie sur les différentes étapes précédentes et vise à répondre aux objectifs déterminés (Services de sécurité à améliorer, niveaux de qualité cibles, etc.…)

Mehari est basée sur trois types de livrables :
- Le Plan Stratégique de Sécurité (PSS) fixe les objectifs ainsi que les métriques qui permettent de les mesurer. Il définit la politique et les grands axes de sécurité du SI pour ses utilisateurs.
- Les Plans Opérationnels de Sécurité (POS) décrivent les mesures de sécurité spécifiques à mettre en œuvre, en élaborant des scénarios de compromission et via un audit des services du SI. Ceci permet d’évaluer chaque risque (probabilité – impact) et par la suite d’exprimer les besoins de sécurité et les mesures de protections.
- Le Plan Opérationnel d’Entreprise (POE) assure le management de risque par la conception d’indicateurs sur les risques identifiés et des scénarios contre lesquels il faut se protéger.

Mehari repose sur un modèle de risque donnant lieu à des métriques pour estimer les paramètres liés aux risques :

- Niveaux de qualité des services.
- Facteurs de réduction de risques.
- Effets de la combinaison des services.
- Estimation de la gravité du risque.
- …

Cependant, il est à souligner que le CLUSIF spécifie le concept de “confiance raisonnée” pour Méhari : Les mécanismes de calcul peuvent donner une fausse impression de précision, le modèle reposant sur un principe de prudence…

En plus de Mehari, il existe plusieurs normes utilisées dont Ebios (DCSSI – 1995), Octave (Carnegie Mellon University – 1999), Cramm (Siemens – 1986). Ces normes intègrent de plus en plus des normes externes dans leurs plus récentes versions. Ainsi Mehari a intégré la norme ISO 27005 dans sa version 2010.

Bibliographie:
- Projet de sécurité des réseaux, Marc Rozenberg, Université Val D’Essonne.
- http://cyberzoide.developpez.com/securite/methodes-analyse-risques
- Site CLUSIF : http://www.clusif.asso.fr , Mehari téléchargeable gratuitement.

Nos traces numériques et leur législation

Suite aux mises à jour de la politique de confidentialité de Google, nous avons décidé d’orienté cet article sur les éléments de notre identité numérique que nous diffusons volontairement ou pas. Dans cet article, nous préciserons les différentes traces numériques que nous pouvons rendre disponibles à autrui, en essayant d’éclaircir les aspects juridiques propres à chacune d’elle.

Comme nous l’avons évoqué dans nos articles précédents, les internautes laissent – volontairement ou involontairement – de plus en plus de traces sur la Toile. Parmi celles-ci, on trouve :

  • L’adresse IP 

Typiquement un ordinateur portable se connectant depuis différents points d’accès se verra attribué des adresses IP différentes.Il s’agit d’une adresse internet qui permet d’identifier de manière unique votre ordinateur sur le réseau. Cette adresse IP peut être attribuée de différentes manières selon l’abonnement Internet. Pour un particulier, l’ordinateur se verra le plus souvent attribuer par le fournisseur d’accès une adresse différente à chaque connexion. On parle d’adresse IP dynamique. Pour  une entreprise ou un organisme plus important (université), des adresses IP fixes sont attribuées.

Votre Fournisseur d’accès internet est tenu de conserver pour une durée d’un an l’adresse IP qui vous a été attribuée à chaque instant.

  • Nom d’hôte (hostname) qui lui-même révèle le nom de votre fournisseur d’accès

  • Les « cookies »

Ce sont des outils “espions” qui s’installent sur le disque dur de l’utilisateur, à l’occasion de la consultation de certains sites Web. Ils permettent d’enregistrer la trace des passages de l’utilisateur sur un site Internet ou un forum et, ainsi, de stocker sur le poste de l’internaute des informations sur ses habitudes de navigation.

Le serveur qui a mis en place la collecte de ces informations peut récupérer les données et les réutiliser lors de la prochaine visite du site par l’internaute. Ainsi, ils peuvent par exemple faciliter la navigation en évitant d’entrer de nouveau ses identifiants de connexion ou en stockant les éléments d’un panier d’achats, mesurer l’audience en comptabilisant le nombre de visites sur le site ou encore faire de la publicité comportementale. Certaines de ces finalités peuvent être particulièrement intrusives dans la vie privée des internautes et sont, à ce titre, souvent dénoncées.

L’article 2.5. de la directive “Service universel et droit des utilisateurs” (2009/136/CE) dispose que les Etats membres de l’Union européenne ont l’obligation de garantir que le stockage de cookies, ou l’obtention de l’accès à des cookies déjà stockés dans l’ordinateur d’un internaute, ne soit permis qu’à condition que cet internaute ait reçu préalablement une information claire et complète sur les conditions de ce stockage et de cet accès, et qu’il y ait consenti (principe d’opt-in).
Seuls les cookies utilisés par les régies publicitaires pour tracer les internautes sont concernés par ces obligations.

  • Les recherches effectuées sur les moteurs de recherche.

Les moteurs de recherche sont un passage quasi obligé dans notre utilisation d’Internet. Ils collectent et traitent un grand nombre de données de connexion : intitulé de la recherche, date et l’heure de la requête, adresse IP, type et langue du navigateur utilisé… Ce sont des données potentiellement sensibles puisque associer des adresses IP à l’historique des recherches effectuées par un internaute est susceptible de révéler des informations portant sur sa santé ou ses opinions politiques. C’est pourquoi, le G29 – le groupe des CNIL  européennes – a recommandé dans son avis du 4 avril 2008 aux moteurs de recherches de réduire la durée de conservation des données personnelles à 6 mois maximum.
En France, l’article 6-5° de la loi Informatique et Libertés modifiée dispose que « les données à caractère personnel doivent être conservées sous une forme permettant l’identification des personnes concernées pendant une durée qui n’excède pas la durée nécessaire aux finalités pour lesquelles elles sont collectées et traitées ». Si le Code pénal sanctionne la conservation des données pour une durée supérieure à celle qui a été déclarée de 5 ans d’emprisonnement et de 300 000 € d’amende, la loi reste néanmoins imprécise sur les critères permettant d’apprécier qu’une durée de conservation est proportionnée. En conséquence, le pouvoir de sanction de la CNILreste limité.
Il en résulte que les moteurs de recherche demeurent libres de fixer la durée de conservation des données personnelles, dès lors que cette durée est justifiée au regard des finalités pour lesquelles les données ont été collectées et traitées.

  • Géolocalisation

Les points d’accès WiFi, qui se trouvent dans la plupart des “box Internet”, émettent en permanence des signaux permettant à des ordinateurs ou à des téléphones mobiles de les reconnaître et de s’y connecter. Ces signaux contiennent notamment un numéro d’identification unique propre à chaque point d’accès (appelé “BSSID”)Ce numéro est, utilisé par les smartphones pour géolocaliser une personne.
Lorsqu’une personne lance une application de géolocalisation sur son smartphone, celui-ci peut lister les points d’accès WiFi à sa portée et interroger une base de données qui permet d’associer un point d’accès WiFi à une position géographique. Le smartphone va donc être capable de géolocaliser précisément le propriétaire du smartphone.
Plusieurs sociétés telles que Google, Skyhook Wireless, Microsoft et Apple ont donc constitué des bases cartographiques recensant ces points d’accès WiFi pour fournir leurs services de géolocalisation.
Conformément aux demandes de la CNIL, Google a mis en place une procédure d’opposition pour permettre à ceux qui le souhaitent de supprimer leurs points d’accès de la base de géolocalisation de Google.
La solution consiste à ajouter au nom du point d’accès le suffixe “_nomap”. Par exemple, si le nom de mon point d’accès est “mon_wifi”, il faudra le renommer en “mon_wifi_nomap” pour qu’il ne soit plus utilisé par les services de géolocalisation de Google.
Cette solution est réversible : si le propriétaire du point d’accès supprime le suffixe “_nomap”, lors du passage d’un appareil Androïd à proximité du point d’accès, celui-ci sera de nouveau inscrit dans la base de géolocalisation.

  • Les journaux de connexion

Quand vous naviguez sur un site, chaque clic sur un lien correspond à un ordre adressé au serveur du site. Ces requêtes sont transmises et conservées dans un journal de connexion appelé aussi “fichier de log”.

Les serveurs internet conservent un historique des pages auxquelles chaque adresse IP a accédé.
Les fournisseurs d’accès à internet (FAI) conservent quant à eux un historique des sites auxquels chaque adresse IP sous leur responsabilité a accédé. Par obligation légale, ils les conservent pendant une durée d’un an.

  • Les données bancaires (via les sites marchands)

Avec le développement du commerce en ligne, les internautes doivent communiquer des informations concernant leur carte bancaire (numéro de la carte, cryptogramme, etc).
D’un point de vue juridique, les données bancaires doivent être supprimées une fois la transaction effectuée. Cette exigence est destinée à limiter les cas d’utilisation frauduleuse des numéros de cartes bancaires.
Néanmoins, les sites marchands peuvent conserver ces données à condition qu’ils aient recueilli votre accord exprès et qu’ils vous informent de l’objectif poursuivi. Cet accord nécessite une démarche active de votre part (principe d’opt-in).
La conservation du numéro de carte bancaire ne doit pas constituer une condition d’utilisation du service. Le fait pour un client de refuser qu’un site marchand conserve ses coordonnées bancaires ne doit pas l’empêcher d’accéder aux services proposés par le site
La CNIL exige que les données bancaires soient cryptées par l’intermédiaire d’un algorithme de chiffrement dit “fort”. Cela signifie que les données bancaires sont rendues incompréhensibles sauf pour l’éditeur du site internet. L’accès au fichier contenant ces données doit également être restreint au sein du personnel du site internet. Les accès et les liaisons au site marchand doivent être également sécurisés. Cela signifie que l’adresse des pages des formulaires de paiement doit être en https par exemple, ce que vous pouvez vérifier en regardant l’adresse du site.

 

  • Vers un droit à l’oubli ?


Deux sénateurs, Yves Détraigne et Anne-Marie Escoffier ont déposé le 10 novembre une proposition de loi qui, pour la première fois, énonce le « droit à l’oubli numérique », c’est-à-dire la possibilité pour chaque internaute de faire disparaître de la Toile, facilement et à tout moment, des informations le concernant. « Un principe essentiel » pour Alex Türk, le président de la Commission informatique et libertés (Cnil), qui rappelle néanmoins les limites d’une législation nationale : « Les grandes sociétés du Net étant américaines, les règles du jeu ne marcheront que lorsqu’elles seront adoptées à l’échelle de la planète. » « Attention au risque de censure», alerte de son côté Peter Fleischer, responsable de la protection des données pour Google Europe.

  • Le problème de l’harmonisation des textes de loi ….

En effet, la mondialisation a provoqué un développement sans précédent des échanges de données à l’intérieur de l’Europe et hors de l’Union. Les réglementations concernant le traitement des données personnelles sont très disparates hors de l’Europe et, même au sein de l’Union, les différences résiduelles ne permettent pas de traiter ces flux avec une sécurité juridique maximale.

Voici quelques pistes de réflexion sur l’évolution possible du droit des données personnelles face à cette mondialisation, notamment :

  • La nécessité d’une graduation d’application des règles, entre petites, moyennes et grandes entreprises.
  •  La possibilité de permettre au CIL (correspondant Informatique et Libertés) d’avoir un vrai pouvoir s’agissant des flux de données avec la mise en œuvre d’un régime adapté.
  •  L’établissement de règles plus claires et plus accessibles à toutes les entreprises y compris les PME et un allégement des procédures
Nous aborderons dans l’article suivant les moyens pratiques pour modifier voire supprimer notre identité numérique. En attendant voici une petite vidéo en introduction du prochain article : Supprimer son identité numérique.
Sources

Les logiciels de sécurité informatique

Dans le précédent article, nous avons exposé les différentes menaces que rencontre un système d’information. Ainsi, n’importe quel ordinateur peut être infecté par des logiciels malveillants. Une fois l’ordinateur infecté, des personnes malveillantes peuvent capturer toutes les frappes au clavier, voler des documents, ou encore utiliser l’ordinateur pour attaquer d’autres ordinateurs. Il existe suivant les types de menace une panoplie d’outils de lutte et de neutralisation. Nous allons développer dans cet article les moyens existants.

En effet, il existe plusieurs types de logiciels qu’on peut répertorier comme suit:

Les logiciels antivirus

Un logiciel anti-virus est conçu pour protéger l’ordinateur contre les malwares. Il est disponible comme produit autonome et est inclus dans la plupart des logiciels de sécurité.

L’Anti-virus détecte et bloque les tentatives visant à infecter l’ordinateur.
Nous allons regarder comment marchent la plupart des anti-virus.

  • Détection de signature :

La plupart des programmes anti-virus fonctionne comme le système immunitaire humain en scannant l’ordinateur pour détecter les signatures (modèles) de pathogènes numériques et d’infections. Ils se réfèrent à un catalogue de codes malveillants connus, et si le contenu d’un fichier correspond à un modèle dans le catalogue, le logiciel anti-virus tente de le neutraliser.

Comme le système immunitaire humain, l’approche nécessite un catalogue mis à jour, comme le vaccin contre la grippe, pour fournir une protection contre de nouvelles souches de malwares.
Les anti-virus ne peuvent se protéger que contre ce qu’ils reconnaissent comme nuisibles. L’ordinateur est donc nécessairement vulnérable durant le délai entre le moment de l’identification des logiciels malveillants et le moment où une mise à jour du catalogue est publiée par les éditeurs d’antivirus. C’est pourquoi il est important de garder le logiciel sous la dernière mise à jour.

  • Détection des comportements

Dans cette approche, au lieu de tenter d’identifier les logiciels malveillants connus, l’anti-virus surveille le comportement des logiciels installés l’ordinateur. Il essaie de détecter et de prévenir dans le cas où un programme agit étrangement, comme pour essayer d’accéder à un fichier protégé, pour modifier un autre programme anti-virus, ou a des activités suspectes. Cette approche fournit une protection contre les nouveaux types de logiciels malveillants qui n’existent pas encore dans le catalogue. Le problème avec cette approche est qu’elle peut générer un grand nombre de fausses alertes.
L’utilisateur d’un ordinateur, peut être incertain sur ce qu’il faut autoriser ou non jusqu’à devenir insensible à ces avertissements en cliquant “accepter” systématiquement.

Lutte anti-spam

La détection de spam basée sur le contenu de l’email, soit par la détection de mots clés comme “viagra” ou par des moyens statistiques, est très populaire. Ces méthodes peuvent être très précis lorsqu’il est correctement réglé sur le type de courrier légitime qu’une personne reçoit. Le contenu détermine également si le spam était destiné à une adresse donnée ou la distribution de masse.
Mais il peut aussi faire des erreurs : si un ami envoie une blague qui mentionne «viagra», les filtres de contenu peuvent le marquer comme spam.

Les pratiques relevant pour la plupart de bon sens, sont d’excellents outils pour l’utilisateur pour lutter contre les spams : “discrétion”, éviter de répondre aux spams, désactiver le HTML dans l’e-mail, reporter les spams…

Pour les serveurs et les gestionnaires d’adresses, il existe des méthodes automatisées :
filtrage selon le pays, liste noires basées sur le DNS, Spamtrapping, trapits,  filtrage sur statistiques du contenu,  respect des normes RFC…

Pare-feu

Un pare-feu personnel est une application qui contrôle le trafic réseau vers et à partir d’un ordinateur, autorisant ou refusant la communication en se basant sur une politique de sécurité.

Un pare-feu est généralement destiné à protéger uniquement l’ordinateur sur lequel il est installé. Beaucoup de pare-feu sont capables de contrôler le trafic réseau en invitant l’utilisateur à chaque fois qu’une connexion est tentée et en adaptant la politique de sécurité en conséquence. Les pare-feu peuvent également fournir un certain niveau de détection d’intrusion ou des logiciels tentant de bloquer la connectivité. Leurs rôles sont en général de:

  • Permettre à l’utilisateur de contrôler les programmes qui peuvent et ne peuvent pas accéder au réseau local et / ou Internet
  • Protéger l’utilisateur des tentatives indésirables et surveiller les applications qui sont en attente de connexions entrantes et sortantes
  • Cacher l’ordinateur à partir du scan des ports et en ne répondant pas aux trafic réseau non sollicité
  • Fournir des informations sur le serveur de destination avec laquelle une application tente de communiquer

Anti – sniff

Packet sniffing est une technique de surveillance de tous les paquets qui traversent le réseau. Un sniffer de paquets est un logiciel ou un matériel qui surveille tout le trafic réseau.

Il existe une sérieuse menace de sécurité présentée par les sniffers, car ils peuvent capturer tout le trafic entrant et sortant, y compris les mots de passe en texte clair et de noms d’utilisateurs ou d’autres matériaux sensibles. En plus, il est difficile de les détecter parce qu’ils sont de nature passive, ce qui signifie qu’ils ne  font que recueillir des données.

Le logiciel anti – sniff effectue différents types de tests pour déterminer si un hôte est en mode “promiscuous”. Les tests sont répartis en trois catégories: les DNS tests, les tests de système d’exploitation spécifique, et des tests de latence du réseau et de la machine.

  • DNS Test

De nombreux sniffers effectuent des recherches de DNS au lieu des adresses IP. Pour ce teste, l’anti-sniff place la carte de réseau en mode “promiscuous” et envoie des paquets sur le réseau visant les hôtes malveillants. Si une recherche malveillante est détectée, le sniffer en action est dévoilé.

  • Tests sur système d’exploitation spécifique

Cette classe de tests vise certains systèmes d’exploitation. Il y a le test ARP qui est conçu pour Microsoft Windows.Un second test existe et est parfois connu comme test de “ether ping” conçu pour les noyaux Linux et NetBSD.

  • Réseau et des tests de latence machines

Les hôtes en mode “promiscuous”  voient  le trafic réseau menant au noyau augmenter considérablement (pour effectuer le filtrage). Le filtrage accru fait par le noyau engendre davantage de latence. Il existe plusieurs types de tests, par exemple : ICMP Time Delta, l’écho, et le ping drop.

Bibliographie :

Les familles de langages fonctionnels

Les langages fonctionnels sont regroupés en quatre grandes familles, se distinguant chacune par une approche de programmation différente:
- la famille ML
- la famille Lisp
- la famille à Evaluation retardée
- la famille Communication

Nous présenterons ici dans les grandes lignes chacune de ces familles.

A- La famille ML

La famille ML comprend deux branches principales : Caml et ses dérivés( Caml-Light et Objective CAML) ; SML (Standard ML) et ses descendants (SML/NJ et mossml) .

Une spécifiation complète du langage Caml n’a jamais été rédigée. Ainsi, les différentes évolution du langages ont pu être effectuée en toute liberté. Caml est un langage statiquement typé, ce qui est très contraignant (n’autorise pas que les valeurs modifiables soient polymorphes). Les différentes versions de Caml-Light ont évolué vers le typage actuel des traits impératifs et se sont enrichies de nombreuses bibliothèques. CSL, le suivant de la famille, a quant à lui introduit le compilateur natif. Enfin le benjamin, Objective CAML, ajoute principalement l’extension objet par rapport à CSL.

En ce qui concerne SML, la spécification formelle a été donnée avant la première implantation. Cette démarche a permis la réalisation de plusieurs implantations, dont la plus connue est SML/NJ (Standard ML of New Jersey). Le système de typage initial de SML est différent de celui de Caml pour les traits impératifs en introduisant un niveau de faiblesse sur les variables de type. Cependant, les différences entre les deux langages se sont estompées avec le temps. Les deux branches ont maintenant le même système de type pour le noyau fonctionnel et impératif. Si les deux langages ne fusionnent pas, cela provient principalement de leur développement séparé.

B- La famille LISP: Scheme

Le langage Scheme (1975) est un dialecte du langage Lisp (1960). C’est un langage fonctionnel à évaluation stricte, muni de traits impératifs, typé dynamiquement. Sa syntaxe est régulière et marquée par l’usage des parenthèses. Scheme possède un système de macro-expansion très pratique. Il permet non seulement d’effectuer des ruptures de calcul (exceptions) mais aussi des reprises de calcul grâce aux continuations. Il existe de très nombreuses implantation de Scheme. Il est même utilisé comme langage de macros pour le logiciel de retouche d’images GIMP.

C- La famille à Evaluation Retardée

À la différence de ML ou Lisp, les langages à évaluation retardée ne calculent pas les paramètres d’appel des fonctions à leur passage, mais quand l’évaluation du corps de la fonction le nécessite. Il existe une version paresseuse de ML appelée Lazy ML mais les représentants principaux de cette famille de langages sont Miranda et Haskell.
Miranda est un langage fonctionnel pur, c’est à dire sans effet de bord. Un programme Miranda est une suite d’équations définissant les fonctions et les structures de données.

D- La famille “Communication


ERLANG est un langage fonctionnel typé dynamiquement pour la programmation concurrente( parallélisme). Il a été développé par la société Ericsson dans le cadre d’applications pour les télécommunications. Il est maintenant en open source. Il est conçu pour que la création de processus et leur communication soient aisées. Les communications se font par envoi de messages et elles peuvent être soumises à des délais. Il est facile de définir des protocoles via des ports. La gestion des erreurs utilise un mécanisme d’exceptions et de signaux qui peuvent se propager entre les processus. De nombreuses applications de téléphonie ont été réalisées avec Erlang.

Le langage SCOL est un langage de communication pour la construction de mondes 3D. Il est développé par la société Cryo Networks. Son noyau est proche de celui de Caml : il est fonctionnel, statiquement typé, polymorphe paramétrique avec inférence de types. Il est multimedia grâce à ses API pour le son, la 2D et la 3D. Le moteur 3D est très efficace. L’originalité de SCOL provient de la communication entre machines virtuelles au travers de canaux. Un canal est un couple (environnement, liaison réseau). La liaison est une socket (TCP ou UDP).

Bibliographie:

http://www.pps.jussieu.fr/Livres/ora/DA-OCAML/book-ora203.html

http://www.journaldunet.com/developpeur/tutoriel/out/051121-panorama-langages-fonctionnels.shtml

 

 

Le langage évolutif SCALA

Pourquoi développer un langage comme SCALA?

Le langage SCALA (SCAlable LAnguage) a été crée à l’Ecole Polytechnique de Lausane en 2001 (première version stable parue en 2003), et en est actuellement à sa version 2.9. A la tête du projet: Martin Odersky, avec pour but d’ exprimer les modèles de programmation courants dans une forme concise et élégante.
Scala est un langage moderne, qui s’appuie sur la machine virtuelle Java, multiplateforme, orienté objet et qui propose une syntaxe simple et élégante.
Il s’inspire de la programmation orienté-objet autant que des langages fonctionnels, et garde pour symbole la programmation par paliers. Cette combinaison lui permet d’avoir une flexibilité bien plus importante que la plupart des langages actuels. SCALA est par exemple idéal pour gérer l’ensemble des problématiques de développement liées au parallélisme, très en vogue actuellement de part la multiplication chez le consommateur des ordinateurs multi-coeurs.

Quelques caractéristiques du langage

SCALA présente de nombreuses caractéristiques qui le rendent très intéressant à utiliser. En voici une liste non exhaustive:
1) Caractéristiques de “fond”

SCALA est un langage:

•    Orienté-objet  ET  Fonctionnel
•    Statiquement typé.
•    contenant des classes génériques.
•    contenant des méthodes polymorphiques.
•    autorisant la création de fonctions imbriquées.
•    ne requérant pas de constructeurs ( new inutile lors de l’instanciation)
1) Caractéristiques de “forme”

SCALA :
•    ne nécessite pas de terminateur tel que ; à la fin des instructions.
•    a une syntaxe proche de celle de Java
•    est compatible avec le runtime Java et le runtime .NET

Une révolution pour de nombreuses sociétés

SCALA, de par sa flexibilité et sa facilité d’adaptation aux problématiques informatiques actuelles, a rapidement été adopté par un nombre important de sociétés, et il est aujourd’hui vanté comme étant l’un des langages les plus concis, élégants, et efficaces du marché.

Quelques exemples: des sociétés du web comme Twitter, Foursquare et Linkedin, mais aussi d’autres secteurs, à l’instar de la française EDF, de Siemens et plus récemment du quotidien anglais The Guardian, ont toutes adopté à des niveaux divers le langage. Twitter a entre autres utilisé Scala pour son système de file d’attente (queuing) qui traite à grande vitesse les millions de messages des abonnés.

Bibliographie:

http://www.scriptol.fr/programmation/scala.php

http://fr.wikipedia.org/wiki/Scala_%28langage%29

http://www.ictjournal.ch/fr-CH/News/2011/05/06/Scala-un-langage-de-programmation-suisse-qui-convainc-les-plus-grands.aspx

http://www.siteduzero.com/news-62-40012-des-nouvelles-du-langage-scala.html

Langages fonctionnels-Haskell

Cet article s’attachera à décrire les grands éléments définissant la logique du langage Haskell. Celui-ci, créé en 1990, reste aujourd’hui très utilisé dans le monde professionnel.
On souhaite mettre ici en avant la logique et les éléments typiques des langages fonctionnels.

Définition

« Haskell est un langage purement fonctionnel, paresseux, mettant en jeu le typage statique, les fonctions d’ordre supérieur, et le polymorphisme. »

Tout est dans la définition! Haskell est en effet un langage de programmation purement fonctionnel. Il ne fait aucune concession qui pourrait l’éloigner de ce paradigme. Il fait d’ailleurs parti des rares langages à ne pas avoir conservé la syntaxe héritée du C qui est aujourd’hui reprise par nombre de langages (Java, C++, PHP, Javascript…), pour adopter une syntaxe plus “mathématique”.

Haskell met en œuvre la logique de programmation suivante : au lieu de dire à l’ordinateur comment résoudre un problème, le programmeur décrit la solution, et la façon de l’exécuter.

Détaillons les autres éléments de cette définition.

Paresse

L’évaluation paresseuse est une caractéristique utilisée presque exclusivement par les langages de programmation fonctionnelle. Tout comme Haskell, Scheme et OCaml utilisent également cette technique.

Elle consiste a ne pas exécuter de code tant que le résultat de ce code n’est pas absolument nécessaire. Dans la plupart des langages en effet, un certain nombre de calcul peuvent être exécuté à l’avance, alors que que le résultat n’est finalement pas utilisé. L’évaluation paresseuse permets donc d’optimiser l’exécution du code.
Lors de l’exécution d’un programme Haskell, les calculs ne sont effectués que lorsqu’ils sont nécessaires. Cette logique rend possible la représentation et la manipulation de valeurs infinies,

Typage statique, polymorphisme

Comme on l’a dores et déjà précisé dans le précédent article, les variables ne sont pas modifiable en Haskell. D’autre part, les types sont déterminés à la compilation (la précision du type n’est pas nécessaire lors de la création de la variable). Le compilateur détecte lui-même les erreurs de typage (ex: somme de deux variables de types différents).
Un autre élément utilisé par Haskell: le polymorphisme. Il s’agit d’autoriser un code à être utilisé avec différents types, ce qui permet d’éviter la redondance des définitions, et conduit à un codage plus abstrait.

Récursivité & fonctions d’ordre supérieur

L’immuabilité des variables en Haskell entraîne une forte utilisation des fonctions récursives. En effet, celles-ci ne nécessitent souvent pas la création puis modification de variables temporaires.
De même, les fonctions d’ordres supérieurs sont très utilisées. Celles-ci prennent une ou plusieurs fonctions comme entrées, OU qui renvoient une fonction en sortie.
Il n’est pas rare qu’une fonction récursive face appel à une fonction d’ordre supérieur.
Deux types de variables sont prédominants en Haskell : les listes, et les arbres. En effet, ceux-ci ont une structure très maniable lors de l’utilisation de fonctions récursives.

Conclusion

On a vu qu’ Haskell met en œuvre de nombreux éléments intéressants des langages fonctionnels. De plus, la simplicité de son écriture, et la non pollution des fonctions par une ponctuation redondante en font un langage très appréciable à l’utilisation.
Cependant, Haskell présente certaines limites de programmation. Par exemple, il n’est pas toujours aisé de programmer avec des variables immuables.
C’est pourquoi, nous étudierons dans un second temps Scala, un langage alliant logique fonctionnelle et impérative.

Un problème inverse : Détermination de la forme d’un réflecteur de lampe à partir d’un éclairage souhaité

Le problème de géométrie des lampes, et plus particulièrement des réflecteurs de lampes, implique de nombreuses difficultés physiques et la résolution de ce problème par voies informatiques est susceptible de faire économiser temps et argent pour les entreprises concernées. Il s’agit de partir de l’éclairage final souhaité pour remonter, par itération calculatoires, à une géométrie adaptée.

En 2007, un papier sur la conception des réflecteurs de lampe a été publié par Gustavo Patowa, Xavier Pueyoa et Alvar Vinacuab de l’université de Gironne. Ce papier expose leurs travaux sur une amélioration des algorithmes d’optimisation de ce problème. L’université de Gironne est en pointe sur la simulation inverse de la lumière, et publie de nombreux articles et thèses à ce sujet. Nous aurons sans aucun doute l’occasion de nous attarder à nouveau sur leurs travaux dans les mois à venir.

Dans cet article, nous commencerons par formaliser le problème inverse et préciser certaines notions. Dans un second temps, nous exposerons les travaux publiés en 2007 sur la conception des réflecteurs de lampes.

Formulation du problème

On part des équations de transport de la physique des particules pour décrire la propagation de la lumière :

L = Le + Lr

Cette équation nous dit que la luminance (intensité lumineuse par unité de surface) totale d’une surface donnée est égale à la luminance émise plus la luminance réfléchie.  On peut réécrire cette équation en mettant en valeur des opérateurs linéaires.

L= Le + KGL

K: Opérateur de réflexion de la surface.
G: Opérateur de radiance.

Différents types de problèmes peuvent être résolus :

  • la simulation directe de l’éclairage, calcul de L
  • géométrie inverse en déterminant G
  • réflectance inverse, calcul de K
  • éclairage inverse, calcul de Le

Géométrie inverse

Les travaux menés récemment par l’équipe de recherche de l’Université de Gironne sur la conception de réflecteur de lampe (voir figure 2) entrent dans le cadre d’un problème de géométrie inverse : partant d’une distribution de lumière souhaitée, ils peuvent concevoir l’état de surface du réflecteur grâce à la résolution du problème inverse. On pourrait croire que cette manière de procéder a été adoptée par tous les industriels, mais il n’en est rien ! De nombreux industriels continuent d’utiliser les anciennes méthodes d’ingénierie : ils conçoivent un réflecteur, le testent, apportent des modifications pour concevoir un nouveau réflecteur, le testent, etc.… Ces procédés s’avèrent très couteux. La figure 1 expose en trois étapes le principe de la simulation inverse : l’éclairage de gauche est l’éclairage souhaité par l’utilisateur du logiciel ; les calculs de géométrie inverse permettent de déterminer la forme 3D du réflecteur qui génèrera l’éclairage de droite, “assez” similaire à l’éclairage souhaité.

Les 3 étapes de la géométrie inverseLe problème énoncé ci-dessus est résolu de manière indirecte en utilisant des techniques d’optimisation. Grâce à des méthodes de simulation directe, on peut obtenir les distributions de différentes géométries de réflecteurs ; le choix entre ces réflecteurs s’effectue en minimisant l’écart entre la distribution voulue et la distribution simulée. C’est justement ces fonctions de minimisations qui font l’objet des travaux exposés dans le papier de 2007. Dans cet article, les auteurs exposent d’abord les précédents travaux effectués dans ce domaine ; ils expliquent ensuite leur nouvelle solution et la comparent aux anciennes.

Nous n’exposerons pas ici les aspects mathématiques de cette fonction de minimisation. Cependant, il est intéressant de noter qu’un des nouveaux aspects développés lors de ces travaux est l’utilisation des connaissances de l’utilisateur : celui-ci spécifie en entrée une géométrie de référence à partir de laquelle les calculs seront effectués. Cette géométrie est censée être assez proche du résultat escompté. L’utilisateur peut aussi définir certaines limites de géométrie, s’il a par exemple des contraintes industrielles en termes de taille du réflecteur à produire.

Loin d’être les plus récents, ces travaux effectués à l’université de Gironne nous semblent être néanmoins une bonne entrée en matière pour bien comprendre le procédé de simulation inverse de l’éclairage. Le papier est écrit de manière très claire et pédagogique, il expose en préalable les solutions précédemment utilisées. Et même si ces travaux se limitent à un éclairage artificiel, les méthodes de résolutions pourraient être réutilisées dans le cadre de l’éclairage naturel.

Bibliographie

User-guided inverse reflector design. Gustavo Patowa, Xavier Pueyoa, Alvar Vinacuab, 2007.

L’intelligence ambiante : Quand les objets deviennent intelligents.

Depuis 50 ans, les ordinateurs n’ont Ambient Intelligencecessés de se miniaturiser, tandis que leur performances augmentaient de manière exponentielle. Aujourd’hui, une partie croissante des objets de notre entourage se munissent de puces et de capteurs, et communiquent entre eux. Nous entrons dans une nouvelle ère où l’informatique sera omniprésente, dissimulé dans tous les objets, et scrutant nos envies afin de les assouvir au mieux. Il s’agit de l’ère de l’intelligence ambiante.

Mark Weiser avait déjà prévu ce “changement radical” en 1991. Il annonçait que “les applications ne seront plus associées à une machine physique” ou à un écran qui y serait associé. “Les interactions seront plus naturelles et l’ordinateur va “se fondre” dans notre environnement”. Pour lui, les meilleurs technologies sont celles qu’ont ne voit pas. Leur rôle est de faciliter notre quotidien sans que nous nous en apercevions .

Au cours de cette année, nous allons développer ce sujet selon les axes suivants :

  1. Définition et historique de l’intelligence ambiant : un concept né dans les années 90

  2. L’intelligence ambiante aujourd’hui : Ils sont déjà parmi nous!

  3. Les limites rencontrées, techniques et éthiques

  4. Comment l’Intelligence ambiante va-t-elle influencer notre façon de vivre ?

  5. La vie dans 10 ans : Laissons parler l’imagination !

Premier article de cette série dans 3 semaines! A bientôt!