dans Boulot

Poster à MIE 2014 : ontologies, essais cliniques et détection automatique de biais

Voici le poster que j'ai présenté lundi au congrès MIE 2014, intitulé Toward an ontology-based system for the automatic detection of biases and weaknesses in drug clinical trial results (Vers un système à base d'ontologie pour la détection automatique de biais et faiblesses dans les résultats d'essais cliniques médicamenteux).

Version PDF : mie2014_poster.pdf.

La croissance, vraiment ?

_images/la_croissance_vraiment.svg

BNIP

"Bienvenue à tous pour cette cérémonie d'ouverture de la cinquantième Altercapitale ! Rappelons que l'Altercapitale est née il y a un demi-siècle, que dis-je, mieux que cela, un vingtième de millénaire, sous le nom d'Altervillage. Notre petit village a bien grandi depuis : Altervillage, Interville, puis Altercapitale. Tout d'abord je vous propose d'applaudir des quatre mains notre président qui a su mené à bien cette croissance accélérée grâce à un juteux et judicieux partenariat avec les BNIP !"

Le président arrive alors sous des applaudissements nourris (et désaltérés).

"Merci à tous ! Vous êtes formidables ! Permettez-moi aussi de remercier les BNIP pour l'installation de ces magnifiques tentes en forme de, disons, de cylindre surmonté d'un cône, si vous voyez ce que je veux dire... non ? Bon, en forme de fusée, vous voyez ? D'obus. Remerciement aussi pour l'argent liquide (et solide) que les BNIP nous ont offert ! Remerciement surtout pour la nouvelle mode de la paix lancé par les BNIP. Aujourd'hui qui s'équipe chic s'équipe BNIP ! Dans chaque sac à main (ou à pied), dans chaque sac à dos (ou à ventre), une BNIP ! Après l'iphone, l'ipad, et l'itoilette sèche, La BNIP est devenue le gadget nécessaire de notre époque."

"Oh, mais je vois des visages perplexes, y aurait-il quelques ringards qui ne connaissent pas encore les BNIP ? La BNIP, c'est la Bombe Nucléaire Individuelle Portative. Au siècle passé, le développement de l'armement nucléaire a permis l'établissement d'une paix militarisée dans les relations internationales, ainsi que la guerre froide grâce à laquelle la bête communiste a été terrassée. Aujourd'hui, la BNIP se propose d'apporter les mêmes bienfaits dans les relations individuelles. Et, au nom des libertés défendues par le premier amendement, pourquoi chacun n'aurait-il pas le droit d'avoir un équipement de défense nucléaire à sa disposition ? En cas de tentative de vol, ou si vous êtes abordés par un travailleur de l'agression sexuel, la BNIP est l'arme ultime qui mettra fin à toute violence."

"Je vous souhaite donc une excellente Altercapitale. Cette année nos ateliers porteront sur le transit énergétique et l'entrée du nucléaire, et plus particulièrement sur les techniques permacultrices de valorisation des zones radioactives contaminés, lesquelles, comme chacun sait, ce se sont multipliées exponentiellement ces derniers temps."

(texte écrit lors de l'atelier d'écriture de l'Altervillage 2014)

dans Soya3D

Soya 3D version 3 sur Bitbucket !

Soya est un moteur 3D pour Python. La première version de Soya a été utilisée dans plusieurs jeux et notamment Slune, Balazar et Balazar Brother. Plusieurs tentatives de seconde version n'ont pas donné grand chose, principalement faute de temps. Aujourd'hui, voici venir la version 3 dont les sources sont disponibles sur Bitbucket !

Les nouveautés les plus marquantes sont les suivantes :

  • Support de Python 3.4 et Blender 2.70

  • Vertex shaders et pixel shaders : Soya divise les shaders en pas moins de 20 'mini-shaders', ce qui permet de modifier une partie spécifique du rendu sans avoir à s'occuper du reste; de plus Soya accepte une syntaxe pythonique pour l'écriture des shaders !

  • Meilleurs performances : le processus de rendu a été entièrement réécrit, en utilisant les 'vertex buffer object' (VBO)

  • Éclairage et cell-shading par pixel

  • Antialiasing plein écran (Fullscreen antialiasing)

  • Licence GPL v3

Voici un exemple de mini-shader permettant de déformer un modèle 3D avec des "vagues" verticales. La déformation se fait dans le système de coordonnées de la caméra, c'est donc un "camera-space deform mini shader" selon la terminologie de Soya. La déformation dépend du paramètre temps (self.time) qui est mis à jour automatiquement par Soya.

wavy_mini_shader = soya.MiniShader("wavy", """
uniform float self.time
def void cameraspace_deform_mini_shader():
  current_vertex.x = current_vertex.x + 0.2 * sin(0.2 * self.time + 3 * current_vertex.y)
""")

my_body.add_mini_shader(wavy_mini_shader())

Ces mini-shaders permettent de réécrire une étape bien spécifique du rendu, Soya se chargeant ensuite de les rassembler pour créer les vertex et pixel shaders, ainsi que de les compléter avec les morceaux manquants si nécessaires (En effet, OpenGL ne permet normalement pas de réécrire qu'une partie du processus de rendu -- soit vous n'y touchez pas, soit vous réécrivez tout !). La série de tutoriels "mini-shader-xxx" dans les sources de Soya proposent d'autres exemples.

Les sources de la version de développement de Soya 3 sont disponibles sur Bitbucket. Cette version n'a pour l'instant été testée que sous Linux ; elle devrait cependant pouvoir se compiler sur les principales plateformes. Enfin, les premières images d'un projet secret de jeu utilisant Soya 3 peuvent être vues ici : Projet secret.

dans Soya3D

Projet secret

Serait-ce les premières images d'un projet secret ? Un nouveau jeu avec le moteur Soya 3D peut-être...?

Test de Mice and Mystics : de la baston, de la baston et... de la baston

Mice and mystics est un jeu de donjon coopératif dans lequel vous incarnez le prince héritier et ses alliés, qui ont été transformés en souris. Dans le château, vous affronterez désormais des ennemis de votre taille : cancrelat, araignée, chat... et soldats ennemis, qui eux ont été transformés en vilains rats (ils l'ont mérité !). Le jeu est prévu pour être joué en campagne, et propose un livret d'une dizaine de scénarios accompagnés de passages narratifs.

Le château est représenté par plusieurs petits plateaux correspondant aux différentes pièces, chacun étant recto-verso : d'un côté les pièces occupées par les humains, de l'autre les souterrains des souris situés en-dessous. Une bonne idée, qui malheureusement interdit de jouer sur les deux face d'un même plateau simultanément.

L'essentiel du jeu repose sur les combats, qui se règlent à grandes brouettes de dés. Les différentes faces des dés spéciaux donnent des attaques, des parades, ou des fromages. Ceux-ci servent à utiliser les capacités spéciales des souris, à obtenir de nouvelles capacités ou (pour les monstres) à faire avancer l'horloge et déclencher l'apparition de monstres errants.

Malheureusement, les options stratégiques sont plus que limitées : les souris ne peuvent pas se séparer (donc oubliez la traditionnelle question de ce type de jeu : "on reste groupés ou on se sépare ?"). Il n'est pas non plus possible de fuir les adversaires, combattre est en fait la seule option. Et l'exploration est plutôt limitée puisque les plateaux de salle, très grands, ne s'y prêtent guère. Même le vénérable Héroquest proposait quelque chose de plus beaucoup plus riche.

En fait, Mice and mystics, c'est un jeu de donjon où le groupe ne peut pas se séparer, ne peut pas fuir, et où chaque salle n'a qu'une seule nouvelle porte. Cela est d'autant plus dommage que le thème des souris se serait bien prêté à un jeu de course poursuite et de pièges astucieux !

Bien sûr, le matériel est somptueux, les dessins fort jolis et les figurines finement sculptées. Mais cela ne suffit pas à faire un bon jeu. D'ailleurs, j'ai fini Mice and mystics... en lisant le livre de scénarios, sans les jouer.

Points positifs :

  • Le matériel et les figurines

  • L'histoire

Points négatifs :

  • Forte part de hasard

  • Options stratégiques très limitées

  • Histoire très "scriptée", avec peu de liberté d'action

  • Plus proche d'un jeu de combat d'escarmouche que d'un jeu de donjon... malheureusement ce n'est pas ça que j'attendais.

Charte Gus and co : le jeu a été acheté de ma poche. Il n'y a pas de publicité sur mon site.

Le secret

Le secret courait dans la ville. C'était un secret à petites pattes, il ne se déplaçait pas en plein jour, lézardant comme un renard au soleil de midi, car c'était un secret. Il se glissait plutôt, subtilement comme un reptile, à l'heure où la lumière fatigue et les ombres se réunissent en vue de se partager la nuit. Mais dans la ville, on apercevait l'ombre du secret de temps en temps, on en devinait la présence sans jamais parvenir à l'identifier, à la manière d'un animal sauvage qui traverse une route en un éclair.

Un jour, le secret éprouva le besoin de se confier. Il s'avança hors de l'ombre, se découvrit à un jeune enfant que sa mère avait quitté du regard sur la place du marché, le temps de comparer le prix des melons et des potirons. C'était un secret puissant. De ceux qui font les princes et les rois, qui renversent le monde comme un mauvais perdant renverse la table de jeu. De ceux qui font les déluges, érigent et délogent les refuges.

Dans la ville, il y eut un orage, des soldats de plomb et des rois mages. Il y eut un nouveau château, aussi immense que le roi était petit. Il y eut des ambassadeurs mielleux venus de contrées lointaines, qui débarquaient les bras chargés de cadeaux et de jouets, et s'en repartaient les mains vides et les poches garnies de titres de propriétés. Il y eut de ces injustices que commettent ceux qui ne savent pas encore ce qu'est la justice.

Vint le jour où il n'y eut plus de marché dans la ville. Les légumes et les fruits s'étaient enfuis, emportés avec les titres et les propriétés. Le secret avait de plus en plus de mal à se cacher. Il résida un temps dessous le dernier étal. Puis il dut se retirer dans les égouts.

Il se jura qu'à l'avenir qu'il ne se confierait jamais plus.

(texte écrit lors d'un atelier d'écriture à la librairie des orgues ; merci à Daniel et aux autres !)

Test de Limes et de Sultaniya

Deux jeux de "placement de tuiles" (ou de cartes, selon l'épaisseur du carton). Entre Limes, un jeu de carte quasi-minimaliste, et Sultaniya, une grosse boîte débordant de carton, cette comparaison ressemble un peu à David contre Goliath...

Limes

Le jeu se compose de cartes carrés de 4 cases, chacune pouvant être un champ, un lac, une forêt ou une montagne. Au cours du jeu, 16 cartes seront utilisés et placé les unes après les autres pour former un grand carré de 4x4, et 7 pions ("meeples") seront placés sur les régions ainsi formés. En fin de partie, chaque région comprenant un pion rapportera des points, qui seront calculés de manière différente selon le type de région :

  • les champs rapportent 1 point par case de champ

  • les lacs rapportent 1 point par cabane de pêcheurs au bord du lac

  • les forêts rapportent 1 point par région adjacente (champ, lac ou montagne, chaque montagne étant considéré comme une région séparée même si deux montagnes se touchent)

  • les montagnes (avec leur tour de guet) rapportent 1 point par forêt sur la même ligne ou colonne

Chaque joueur construira son propre paysage de 4x4 cartes, mais en utilisant les mêmes cartes. La boîte permet de jouer à 2, mais il est possible d'augmenter le nombre de joueurs avec plusieurs boîtes !

Limes est disponible en allemand, et la traduction des règles en anglais se trouve facilement sur Internet. A noter que Limes est très proche de Cities, du même auteur, mais avec quelques variantes et des dessins plus jolis (à mon goût). L'auteur propose aussi des variantes additionnelles sur son site.

Au final, malgré des règles minimalistes, le jeu s'avère subtile et riche en possibilités. Réaliser un champ ou un lac de très grande taille est tentant... mais restera-t-il assez de place pour "caser" les 6 autres pions sur des régions interressantes ? Ne vaut-il pas mieux 7 bonnes régions qu'une excellente et 6 médiocres... ?

Points positifs :

  • Le côté minimaliste

  • La richesse du jeu

  • Un jeu fondamentalement abstrait, mais avec un thème qui colle bien aux règles de score

Points négatifs :

  • Peu (voire pas) d'interaction entre les joueurs... mais ce n'est pas forcément dérangeant en soi

Sultaniya

Le jeu propose de construire un palais en assemblant des tuiles de carton. Les décors sur les tuiles devront bien évidemment se suivre, à la manière d'un puzzle. Mais, de plus, les joueurs marqueront des points en fonction des éléments présents sur leur palais. Chaque joueur choisira un personnage au début du jeu, qui lui donnera le début de son palais (l'espace de trois tuiles derrière le dessin du personnage) et les éléments sur lequel il marquera des points : fenêtre ou tourelle, dôme ou jardin, porte ou minaret.

Le matériel est superbe, les palais bien dessinés, tout comme les quatre figurines de Djinns translucides et les saphirs qui servent de monnaie. Cependant, l'intérêt de ce matériel, autre qu'esthétique, n'est pas évident : en particulier le rôle des figurines de Djinns est quasi-annecdotique !

La vraie bonne idée du jeu est l'utilisation de la perspective : plus l'on monte dans la construction, plus les éléments sont petits, et sur le quatrième et dernier étage, il y en aura plus : par exemple deux fenêtres au lieu d'une. Il y a donc une sorte de "course au dernier étage" (qui malheureusement nuira souvent à la qualité ethétique des palais obtenus... les plus beaux palais ne sont pas toujours ceux qui rapportent le plus de points).

En revanche, l'utilisation des différents personnages apporte finalement très peu au jeu : selon le personnage, on marquera des points en construisant des portes ou des minarets, mais la "mécanique" par derrière sera exactemen la même, seul le dessin changera... C'est d'autant plus dommage que bien d'autres objectifs auraient pu être proposés, par exemple réaliser des éléments de symétrie dans son palais ou disposer d'au moins un élément de chaque type. Par ailleurs, à trois joueurs il sera quasi impossible d'équilibrer le jeu : deux joueurs se battront pour contruire des portes, tandis que le troisième sera seul sur les minarets (ou l'inverse). Le côté "puzzle" aurait lui-aussi dû être plus développé, par exemple en accordant des points aux joueurs qui parviennent à achever la totalité du palais.

Au final, oh les jolis saphirs ! Le jeu ressemble à une sorte de puzzle, mais sans le challenge de le compléter, il suffit de placer un maximum de portes et de jardins... Oh la superbe figurine de Djinn ! Tiens, avec ce perso je dois construire des dômes au lieu des jardins, mais bon ça ne change pas grand chose... Je commence à m'ennuyer là...

Points positifs :

  • Le matériel superbe

  • L'utilisation de la perspective

Points négatifs :

  • Le matériel superbe... et peu utile

  • Le côté répétitif, les différents personnages ne renouvelant pas réellement le jeu

  • Les parties souvent déséquilibrées, notamment à trois

Conclusion

Ma préférence personnelle va à Limes, qui propose un jeu minimaliste mais bien conçu et plus riche. Sultaniya, malgré l'utilisation habile de la perspective et un matériel sublime, ne parvient pas à me convaincre car plus basique (ou moins cérébral, selon !), et assez répétitif. Sultaniya pourrait cependant plaire aux joueurs qui recherchent plus d'interaction, et moins de réflexion (ainsi qu'aux figurinistes...).

Charte Gus and co : les deux jeux ont été achetés de ma poche. Il n'y a pas de publicité sur mon site.

éClaircie 0.1

La première version d' éClaircie, le moteur de blog statique et sans nuage, est disponible ! Vous pouvez la télécharger ici : Téléchargement sur PyPI.

(Voir les commentaires...)

Réouverture de mon blog / site

Voici la réouverture de mon nouveau site personnel, Les fleurs du normal. Puisque tout est "normal" aujourd'hui (même notre président il paraît), pourquoi pas les fleurs ?

Le moteur de site Hardblog se faisant vieux et poussif, ce site utilise désormais éClaircie, un nouveau moteur de ma conception pour des blogs 100% statiques et sans nuage. éClaircie est fondé sur Sphinx.

Le site intègre les contenus de mes deux anciens sites :

  • OOmadness (site de logiciels libres)

  • La terre vue d'ailleurs (blog et site personnel)

dans Boulot

Nouvel article "Evaluating alignment quality between iconic language and reference terminologies using similarity metrics"

J'ai publié un nouvel article :

journalif [j22] Griffon N, Kerdelhué G, Soualmia LF, Merabti T, Grosjean J, Lamy JB, Venot A, Duclos C, Darmoni SJ. Evaluating alignment quality between iconic language and reference terminologies using similarity metrics. BMC medical informatics and decision making 2014;14:17

dans Boulot

Nouvel article "Design and usability study of an iconic user interface to ease information retrieval of medical guidelines"

J'ai publié un nouvel article :

journalif [j21] Griffon N, Kerdelhué G, Hamek S, Hassler S, Boog C, Lamy JB, Duclos C, Venot A, Darmoni SJ. Design and usability study of an iconic user interface to ease information retrieval of medical guidelines. Journal of the american medical informatics association 2014;21(e2):e270-7

Un visualiseur d'image en Javascript tout simple

Voici un visualiseur d'image en Javascript tout simple (~ 2ko) et sans dépendance (pas même JQuery).

Ce visualiseur est utilisé par éClaircie. Pour voir une démonstration vous pouvez jeter un oeil à ce message : Camp médiéval au château de Chinon.

Le code source est disponible dans la suite du message.

(Suite et commentaires...)

PyMedTermino 0.2 est disponible !

PyMedTermino (Terminologies Médicales en Python) est un module Python permettant d'accéder facilement aux principales terminologies médicales.

PyMedTermino 0.2 est disponible ; cette version est mise à jour avec la dernière version de la SNOMED CT et corrige un bogue dans le calcul des plus petits parents communs à un concept.

Il peut être télécharger sur PyPI (Python Package Index) : https://pypi.python.org/pypi/PyMedTermino