Mardi 22 Mai : Développer sous Android
17mai
Au programme de la séance que ~kleperf annimera :
Au programme de la séance que ~kleperf annimera :
Mardi 3 Avril, Emmanuel Fleury, maitre de conférence au Labri, viendra nous présenter le projet libsubprocess sur lequel il travaille.
Il nous en donnera les buts, les principales fonctionnalités et nous expliquera les problèmes auxquels il est confronté.
Voici une petite description de l’ensemble du projet :
* Nom du projet: libsubprocess
* Résumé du projet libsubprocess: Le but de cette bibliothèque est de fournir une API qui permette de réaliser des tests en boîte noire sur des programmes non-sûrs. On veut pouvoir imposer certaines contraintes aux processus qui sont lancés à travers l’interface (contrainte sur le temps d’exécution, la mémoire consommée, le nombre de processus utilisés, les appels systèmes utilisés, etc). On veut aussi pouvoir récolter des informations basique de profilage sur le programme (essentiellement le temps de calcul ainsi que la mémoire consommée).
Évidemment, libsuprocess est juste la première brique d’un tout plus important, dont voici une petite vision d’ensemble:
* Contexte général du projet: Libsubprocess doit s’insérer dans un framework plus large qui permette de tester automatiquement des projets d’étudiants. Il s’agit donc de vérifier la conformance du logiciel à des spécifications précises ainsi que de détecter le maximum de bugs ou les faiblesses d’implémentation. Et tout ceci de manière aussi automatique que possible et si possible être agnostique au niveau du langage de programmation utilisé pour coder le projet.
Le framework contiendra:
* Un framework consacré à l’insertion de limites sur l’exécution et qui assurera la collecte de données de profilage (libsubprocess).
* Un framework de test, très probablement basé sur ATF/Kyua: http://code.google.com/p/kyua/wiki/ATF
* Une framework d’isolation basé sur libvirt: http://libvirt.org/
Voir: http://libvirt.org/devguide.html
* Un framework d’analyse statique qui analyse le code des étudiants et fasse un retour pertinent (éviter au maximum les faux positifs).
* Un serveur web permettant aux élèves de déposer les différentes versions de leur projet, de consulter le résultat de certains tests (pour avoir un retour automatique sur leur code) et aux enseignants de consulter l’intégralité des tests.
Utilisation de Django+Pinax:
- https://www.djangoproject.com/
- http://pinaxproject.com/
Le but de cette plate-forme est de permette de passer à l’échelle pour l’enseignement de la programmation. Permettre à tous les élèves d’avoir des projets individuels et de ne pas avoir besoin de tas d’enseignants qui passent dans les rangs pour dire: 1000x »Vous avez oublié de fermer cette parenthèse ».
Nous en sommes à la troisième séance du projet. Grâce au moteur physique Chipmunk qui inclut dans ses demos un environnement graphique, nous avons une première représentation
de notre projet.
Au programme de la semaine prochaine, il y aura plus d’implémentation.
En effet les tâches distribuées sont :
- évaluer la viabilité de modéliser les griffes soit par une augmentation de l’adhérence du bout des pattes, soit par une fixation pure et simple de celles-ci dans l’espace
- évaluer la viabilité de modéliser la contraction des muscles, par un changement des caractéristiques du ressort représentant le muscle, par l’application d’une force aux pattes concernées ou par la modification de la position des griffes
- développer une structure nous permettant de représenter et de sauvegarder notre individu
Il serait aussi temps de penser à un nom pour ce projet (CheapMonk ?).
Le but de cette séance est de commencer le développement d’un projet d’animation procédurale. Ce domaine de l’informatique a pour but d’animer des objets virtuels en générant en temps réel des mouvements.
Lors de cette séance nous déciderons du langage de programmation et des différents choix concernant l’environnement graphique et le moteur physique.
Comme d’habitude rendez-vous en TD6 à 18h30.
Mardi 18, Thomas Beati élève de deuxième année informatique viendra nous présenter la GBA, son hardware et sa programmation.
Venez nombreux en TD6 à 18h30.
Mardi prochain (31 Mai), nous accueillerons Nicholas Journet à la geekerie du mardi qui nous parlera de l’analyse d’images de documents anciens.
Rendez-vous en TD6 à 18h30
Pour plus d’informations: http://www.njournet.com/
Ce mardi 24 Mai, les geekeries du mardi accueillent Olivier Ly pour nous présenter le robot Humanoïde mis au point par le LaBRI en collaboratiojn avec l’INRIA
Rendez-vous à 18h30 en salle TD6
Plus d’informations:
Cette semaine, c’est David Renault qui interviendra pour nous parler du gestionnaire de version Git.
Rendez-vous à 18h30 en salle TD6 à l’ENSEIRB.
Les supports présenté lors de la geekerie du mardi 3 mai sont disponibles ici:
http://gregwar.eirb.fr/GCC.tgz
GCC est un outil permettant de compiler du code source C en code binaire éxécutable. Ce processus passe par plusieurs étapes:
Notons que les deux dernières étapes sont totalement gérées par des outils externes, GCC faisant directement appel au programmes as et ld. Le « coeur » du travail de GCC se fait à l’étape 2, et correspond à la production de code assembleur à partir du code C.
Notons également que GCC est capable de reprendre un fichier de n’importe quelle de ces phases, on peut ainsi compiler ensemble un objet avec un fichier C et du code assembleur à l’aide de la même commande.
Pour comparer les optimisations de GCC, on appliquera donc le flag « -S » pour stopper la compilation à la production du code assembleur. On compilera ainsi avec et sans les optimisations (avec et sans le flag -O3) afin de pouvoir visualiser les différences dans le code produit
C’est moi-même qui présenterais la geekerie de Mardi 3 Mai et qui vous parlerais des optimisations de GCC.
A travers une dizaine d’exemples, je montrerai la manière dont GCC est capable d’optimiser le code binaire produit en comparant le résultat avec et sans l’activation des optimisations.
Rendez-vous en amphi C à 18h30 à l’ENSEIRB