Dr. Steven Costiou

Chargé de recherche Inria
16 software contributions.
Développeur
  1. Ammolite Magenta (2021 - ...). Ammolite Magenta est une petite application utilisée par quelques enseignants de lycée en géologie pour répartir aléatoirement leurs élèves dans des groupes de travail. Ammolite permet la sauvegarde et le suivi des groupes, ainsi que de tirer au sort un élève pour répondre aux questions pendant les cours. storage
  2. Oups (2020 - ...). Oups est une nouvelle infrastructure de debuggers pour Pharo (intégrée au langage depuis Pharo 9). Oups est extensible par la définition de stratégies personnalisées pour contrôler l’ouverture des debuggers. Oups améliore également la résilience de Pharo lorsque les debuggers eux mêmes rencontrent des erreurs.
  3. Object-Centric Breakpoints (2018 - ...). Une nouvelle implémentation des points d’arrêt centrés sur les objets pour Pharo. Ces points d’arrêt stoppent un programme quand un unique objet particulier reçoit un message, ou quand sont état est lu ou modifié. Ces points d’arrêt sont intégrés au langage depuis Pharo 9. storage
  4. StDebugger (2019 - ...). Le nouveau debugger du langage Pharo. Je suis le développeur principal du debugger, qui contient un transfert technologique de mes travaux de thèse et de post-doc (debugging non-anticipé centré sur les objets). Ce debugger est extensible au travers de son API de programmation Sindarin. Le debugger est intégré au langage depuis Pharo 9. storage
  5. ED (2020 - ...). Ed est un debugger minimal pour Pharo 9. Ed est conçu pour fournir un outil de debugging avec le moins de dépendances possibles afin de pouvoir fonctionner même si (presque) tout le système est en erreur.. storage
  6. Pharo-PiBorg (2017 - 2020). Framework de contrôle de robot (actuateurs, capteurs, moteurs) et algorithmes de navigation basés sur Pharo Things. storage
  7. Object Miners (2017 - ...). Debugger qui surveille des expression spécifiques dans un programme et capture les objets issus de leur évaluation pour les présenter au développeurs pour être debuggés. La spécification des expressions à surveiller se fait par le biais du debugger, intégré à l’environnement de développement Pharo. Le debugger permet de dynamiquement faire varier les expressions d’où sont capturés les objets à l’exécution, et d’interagir avec ces derniers. L’outil est utilisé par une équipe de maquettage chez Thales DMS à Brest pour miner des objets dans des applications industrielles en cours d’exécution. Le debugger repose intégralement sur mes travaux de thèse.. storage
  8. Reflectivity object-centric extension (2017 - 2019). Pendant ma thèse, j’ai défini comment étendre dynamiquement un langage objet dynamiquement typé avec des adaptations non-anticipées de comportement. J’ai appliqué ces travaux à Reflectivity, la couche réflexive du langage Pharo. Les opérations réflexives du langage sont désormais applicable avec une granularité objet (intégré au langage depuis Pharo 8). storage
  9. Reflectivipy (2018 - ...). Transfert technologique de Reflectivity de Pharo vers le langage Python. La bibliothèque a été déployée sur le gestionnaire de paquet officiel PyPi (https://pypi.org/project/reflectivipy/) et son code est open-source et disponible sur github (https://github.com/StevenCostiou/reflectivipy). À ce jour le dépôt affiche 6000 téléchargements, et a eu un utilisateur au CEA sur un projet d’interface web de création de flots d’analyse biologique. storage
  10. Debug Scopes (2018 - ...). Infrastructure pour le debugging non-anticipé d’objets dans un programme en cours d’exécution. Le debugger est un prototype de recherche qui s’interface avec un programme en cours d’exécution, permet de spécifier dynamiquement des comportement de debugging, de rechercher les objets d’intérêt à debugger, et enfin d’appliquer des conditions d’activation/désactivation du comportement de debugging appliqué aux objets. Le debugger est expérimenté chez Thales DMS pour déverminer des applications sans interrompre leur exécution. storage
  11. MCP3008 (2017 - 2018). Je suis membre et contributeur du projet Pharo-iot sur github, qui regroupe des outils et bibliothèques pour l’IoT avec Pharo. Je suis l’auteur d’une des bibliothèques du projet pour l’accès aux lectures d’un convertisseur analogique-digital dans Pharo sur cartes Raspberry-Pi. storage
Contributeur
  1. New Tools (2019 - ...). Les nouveaux outils de l’IDE Pharo basés sur le framework Spec 2. storage
  2. Pharo-Things (2019 - ...). Plateforme de Live Programming IOT pour Pharo. storage
  3. Penfeld (2019 - 2020). Framework de composants graphiques pour Pharo. storage
  4. Reflectivity (2019 - ...). Reflectivity est la couche réflexive du langage Pharo. Je contribue activement à son développement depuis Pharo 8. storage
  5. Iliad (2010 - ...). Je suis contributeur et utilisateur occasionnel du projet Iliad, un framework REST pour le web dynamique.. storage
Jeux vidéos

J'ai longtemps voulu créer des jeux vidéos. Je n'ai jamais vraiment réussi. À la sortie de nos études en 2009, avec des amis, nous avons formé un petit groupe nommé MWDM minigames dont l'objectif était la création de jeux. Souvent, nos projets n'ont rien donné. Parfois, nous avons réussi à produire des niveaux de démonstration complets et jouables. Cette aventure s'est terminée en 2017. Pour la postérité, je résume ci-dessous les jeux les plus aboutits que nous avons réussi à créer.

The Chronicles of Darth Wouf (2009)

Darth Wouf était un petit jeu de plateforme dans l'univers de Star Wars. Le petit personnage, Wouf, devait parcourir une forêt et échapper à de multiples dangers. Nous avons produit un niveau complet mais le jeu crashait aléatoirement au bout de quelques secondes de jeu à cause d'un bug. Développé avec Smalltalk. Conception, graphismes et musiques par Yann Plunian, développement par Youenn Corre et Steven Costiou.

Tie-Galaxy Turbo (2011)

Tie-Galaxy était un shoot-em-up dans l'univers de Star Wars. La joueuse pilotait un vaisseau de l'empire galactique et devait échapper à des vagues de vaisseaux rebelles. Nous avons développé ce jeu avec Smalltalk en un week-end pour un challenge de jeu vidéo sur un forum Français. On pouvait jouer un niveau complet d'une dizaine de vagues successives et de difficulté croissante. Le binaire doit toujours être trouvable quelque part sur le web et jouable sous windows. Conception, graphismes et musiques par Yann Plunian, développement par Youenn Corre et Steven Costiou.


Molecular (2014)

Molecular est un shoot-em-up HD dans lequel les joueuses contrôlent une molécule qui traverse l'espace et se battent contre d'autres molécules. À l'origine, nous travaillions sur une version PC en C++ et une version mobile en Java (dont j'avais la charge). La version mobile a été abandonnée au profit de la version PC. Le code C++ est disponible en ligne sur Github, compilable et jouable sur trois niveaux complets de démonstration. Conception, graphismes et musiques par Yann Plunian, développement par Youenn Corre (version C++) et Steven Costiou (version mobile).

Ploopy (2017)

Un petit jeu complet constitué d'un niveau infini dans lequel Ploopy, un petit lapin, tombe dans un broyeur à déchets toxiques et doit constamment échapper à la mort. Le joueur ne peut pas gagner : le broyeur accélère et de plus en plus d'objets tombent sur Ploopy. Le score final représente le nombre de mètres auxquels Ploopy a survécu dans le broyeur. Jeu développé avec Unity. Conception, graphismes et sons par Miguel Prud'hom, développement par Steven Costiou.