Ephémère

Rédigé par marmous Aucun commentaire
Classé dans : Atelier d'écriture Mots clés : aucun
Rien ne dure vraiment
Le temps dans la marche perpétuelle
Écrase tout, même celles qui sont belles
Si tu vas par là
Le temps m'écrasera

Abonnez vous

Rédigé par marmous Aucun commentaire
Classé dans : Atelier d'écriture Mots clés : aucun
La hiérarchie n'est pas chose naturelle
Le travail est une muselière
Nous ne sommes que de la chair à canon
Tiens ! T'en reprendra bien un p'ti
Pour endormir tes neurones
Quoi de mieux qu'un côte du Rhône
Pour abolir tes réflexions
Reprends un p'ti feuilleton
Sûr que t'aime vivre à crédit
Abonnement illimité à la connerie

Il n'est plus question du comment
Pourquoi en est-on arrivé là ?

Interprétation et interraction

Rédigé par marmous Aucun commentaire
Classé dans : Théorie rôliste Mots clés : jdr, théorie, interprétation, intéraction

Ca fait un petit moment que la notion d'interprétation me triture les méninges. J'avais besoin de coucher ça. Vous ne trouverez ici rien de nouveau ou de révolutionnaire, juste ma réflexion sur l'interprétation, l'interraction et le jeu de rôle.


Quand j'ai vu le film de Copola Le loup de Wallstreet, j'en ai parlé avec quelques collègues qui m'ont dit être étonnés que je puisse apprécier ce film. Pour eux ce film est une éloge à l'argent-roi, à la finance, au libéralisme économique...

C'est moi-même qui ait été surpris pour le coup, j'aurais jamais pensé qu'il soit possible de prendre cette satyre pour une éloge.

Je me suis souvenu cette célèbre maxime de Marcel Duchamp "C'est le regardeur qui fait l'oeuvre". Nous avons vu le même film mais nos interprétations sont à l'opposé. Un auteur ne peut donc pas avoir la garantie que son intention sera comprise par le public. Il doit accepter que son oeuvre puisse être incomprise, détournée de son propos. Tout auteur doit refuser que son oeuvre ne lui appartienne à partir du moment où il la diffuse. L'interprétation qu'en fera le regardeur/auditeur sera sa propre interprétation, tout à fait personnelle. Il vera l'oeuvre au travers du prisme de son expérience, de son humeur, de sa sensibilité. Evidemment si un auteur veut absoluement être compris, il peut communiquer hardament sur son oeuvre, dévoiler ses intentions, son propos mais, personnellement, et je pense que je ne suis pas seul dans ce cas, je ne m'intéresse qu'au propos de l'auteur que si l'oeuvre m'a touché. De pirme abord, je me fais toujours ma propre interprétation. Il est, à mon avis, plus intéressant de comparer ma compréhension de l'oeuvre avec la volonté de l'auteur que de découvrir la volonté de l'auteur avant d'admirer l'oeuvre et ainsi réduire mon champ d'interprétation.


Qu'en est-il avec un média interractif ?

Le rapport avec un média interractif tel qu'une installation interractive ou tous types de jeu (jeu vidéo, jeu de plateau ou encore jeu de rôle) est différent. Le regardeur/auditeur n'est plus seulement spectateur mais il devient acteur. La distance entre lui et l'oeuvre est plus courte. L'interraction rend possible, par définition, des échanges entre l'oeuvre et l'acteur. Chaque action de l'acteur provoque une réaction de l'oeuvre (l'absence de réaction est une réaction). Le ressenti est plus fort suivant le niveau d'interraction. Les messages passés par l'auteur peuvent être plus forts et le risque de mauvaise interprétation réduit. L'action/interraction avec le média permet à l'acteur de vivre l'oeuvre en plus de la contempler. L'interraction force l'acteur à utiliser plus de ses sens. Devant un tableau, un regardeur utilise principalement la vue. En jouant à un jeu vidéo, un joueur utilise sa vue, son ouïe et son toucher. Il est tout à fait possible d'imaginer un jeu video qui utilisant l'odorat ou la gout. L'interraction force l'acteur à comprendre l'oeuvre, à se l'approprier par un méchanisme d'identification et/ou de ludique. Grâce à l'interraction l'acteur est directement impliqué, il essaie de découvrir les interractions possibles, de comprendre ce que l'auteur attend de lui.


Mais attention cela dépend de qui/quoi est garant des interractions possibles. En jeux video par exemple ce garant est une machine. Elle gère les intéractions possibles suivant une programmation intiale. Elle est objective. Les interractions sont rigides et les barrières posées sont infranchissables mis à part d'éventuels bugs. Les interractions définissant une grande partie de l'interprétation, il y a de fortes chances que l'interprétation de l'oeuvre reste dans le même sens que celle de l'auteur. L'auteur n'a toujours pas la garantie que son propos soit compris à 100 % mais le risque de mauvaise interprétation est réduit.

En jeu de plateau le garant des interractions est l'ensemble des joueurs mais surtout le matériel de jeu (plateau, carte, pion, dé) et les règles. Si le matériel et les règles sont peu sujettes à interprétation, si elles sont claires et précises, sans ambiguïtés alors les interractions possibles sont clairement définies. Là encore le risque de mauvaise interprétation est réduit et la compréhension du propos de l'auteur est facilité.

En jeu de rôle, le garant des règles est l'ensemble des joueurs et le livre de règles. Un cerveau humain doit donc interpréter, comprendre, assimiler et adapter les règles à la situation qui se joue à la table, à la fiction. Les règles sont soumises aux émotions des joueurs, à leur égo, à leur duperie, à leur bienséance et en général à tous ce qui fait que nous sommes des êtres simiesques avant tout. Le risque de mauvaise interprétation est grand. De plus, la fiction créée qui constitue le principal matériel du jeu (tels les pions, plateaux, cartes, dés en jeu de plateau) est liquide. Elle dépend des joueurs, de leur humeur, de leurs attentes (optimiser son personnage, générer de la fiction, vivre/faire vivre un personnage, ressentir des émotions, ...), de leur compréhension ("Ah mais quand t'as dit un couteau moi je voyais un canif pas un surin"), de leur attention("Ah c'est à moi ? Qu'est ce qui s'est passé ?"), de leur implication (développement de l'univers, des personnages, de leur psyché, de leur historique, ...). Elle n'est que difficilement canalisable par des règles figées. Les règles ne peuvent qu'aiguiller les joueurs, leur indiquer une direction. Des règles figées figent une partie de la fiction. Jouer une partie de jeu de rôle "by the book", c'est-à-dire en tentant de respecter la volonté de l'auteur, est difficilement faisable. Beaucoup trop de conditions basées sur l'humain, et donc totalement incertaines, entrent en jeu.

J'en viens à la conclusion qu'un jeu de role est une oeuvre molle. Ses règles doivent pouvoir s'adapter à un matériau liquide, la fiction. Plus les règles contraingnent la fiction et moins les interractions sont possibles et plus l'imaginaire est limité. Plus on se rapproche d'un jeu de plateau et plus il est possible de respecter l'intention de l'auteur et donc de jouer à son jeu.

Un jeu de rôle ne peut pas garantir une expérience constante peu importe avec qui l'on joue, contrairement au jeu de plateau par exemple. Trop de paramètres reposent sur nous, humain, pour permettre des parties de qualités égales. Nous ne sommes pas constants.

Un jeu de rôle est un oeuvre incomplète. Elle n'est complète que quand elle est appliquée à une table et définie par un contrat social. Un jeu de rôle créé une multitude d'oeuvres toutes éphémères et insaisissables.

Un jeu de rôle est une expérience sociale qui devrait être vécue par tout un chacun ;-)

Les conditions de l'immersion : avant la partie

Rédigé par marmous Aucun commentaire
Suite à un premier billet tentant une définition de l'immersion, je vais ici m'intéresser aux conditions préliminaires à la partie qui rendent l'immersion possible. Mon principal objectif n'est pas d'avancer des idées révolutionnaires mais plutôt de faire un état de lieu.

L'envie de jouer

La première condition est la plus évidente, mais il me semble nécessaire de la citer tout de même : le joueur doit avoir envie de jouer et de s'immerger dans le jeu et dans son personnage. L'immersion est subjective, chacun y voit ce qui lui plaît dans sa pratique du jeu de rôle. Car, oui, l'immersion est lié au plaisir de jeu et nous ne trouvons pas de plaisir par rapport aux mêmes choses, nous sommes tous différents. Certains meneurs préfèrent être en opposition avec les joueurs, d'autres préfèrent conter une histoire, d'autres encore préfèrent voir ce que les joueurs vont faire comme choix, etc ... et même (souvent) un mélange de ces propositions, l'une n'excluant pas forcément l'autre. C'est exactement la même chose pour les joueurs, certains préfèrent la compétition entre joueurs, d'autres l'exploration d'un univers, etc... C'est pourquoi il est important que les joueurs sachent ce qui les attendent, sachent à quel type de jeu ils vont jouer. Cela passe par le contrat social (pour plus d'info sur le contrat social voir l'article de Frédéric Sintes sur le sujet ou la définition du Big Model de Ron Edwards).
Par extension, il faut que tous les joueurs aient les mêmes attentent (ou des attentes compatibles entre-elles) et donc valident le contrat social établi. Le contrat social et son acceptation sont souvent implicites mais rien n'empêche que cela soit explicite.

L'environnement de jeu

Deuxième point à prendre en compte  : l'environnement. Il doit être approprié. La pièce où l'on joue doit être silencieuse, sans aucun bruit gênant. Les distractions doivent être limitées au maximum. Tout doit être orienté vers la partie de telle sorte que l'attention des joueurs soit constamment et naturellement reportée vers la partie.

La création de personnage

Ensuite vient la création du personnage. Elle permet au joueur d'entrer progressivement dans son personnage, l'univers et le système. Il réfléchit son personnage, l'imagine en situation, créer son caractère, son physique en fonction de ses envies, du jeu, de l'univers. Elle permet au joueur de s'approprier son personnage, de se familiariser avec l'univers et une partie du système de jeu. Cette étape ne se fait pas forcément en groupe autour d'une table. Lorsque l'on créer son personnage avant la partie, nous n'avons pas forcément tout le temps que nous aurions voulu. Il est parfois préférable d'être seul, sans aucune pression, pour le créer et y revenir plusieurs jours après et ainsi de suite. Pour certains joueurs, un personnage a besoin de mûrir dans leur esprit, de se construire petit à petit. Cela permet au début de la partie/campagne d'être dans des starting-block prêt à jouer. Bien sûr, cela dépend du jeu : si les personnages sont "jetables" comme dans des jeux tels que Sombre ou L'appel de Cthulhu, cela n'a aucun sens. Mais dans des jeux à campagne où l’investissement dans son personnage est possible c'est un réel plus pour améliorer l'expérience de jeu.

Les liens entre les personnages

Enfin, les liens entre les personnages joueurs ont leur importance. Un des ennemis majeurs de l'immersion est l'ennui. Les liens entre les personnages permettent au joueur de s'intéresser à ce qui se passe même si ce n'est pas son tour de prendre la parole ou que son personnage n'est pas dans la scène. Si son personnage est impliqué alors le joueur le sera également. Ainsi, comme les actions des autres personnages joueurs ont un liens avec celles du joueur, son attention est plus facilement captée.

Si vous voulez en débattre, écrivez moi ycalamai (chez) gmail.com

Webographie
http://web2.uqat.ca/profu/textes/strat_app/05concentration.htm
La discussion sur les ateliers imaginaires
http://www.limbicsystemsjdr.com/un-contrat-social-sain/
http://rpgmuseum.wikia.com/wiki/The_Big_Model

MongoDb : Corriger l'erreur Unexpected shutdown

Rédigé par marmous Aucun commentaire
Il arrive parfois, suite à une coupure de courant et que vous n'avez pas d'onduleur ou quand votre ordinateur s'arrête pas proprement, que MongoDb ne veuille plus démarrer et affiche le message d'erreur "".

Pour éviter que cela ne produise vous pouvez modifier le fichier /etc/init.d/mongodb et ajouter ceci :
# Recover Data after an Unexpected Shutdown     
if [ -f /var/lib/mongodb/mongod.lock ] ; then
rm /var/lib/mongodb/mongod.lock
mongod --dbpath /var/lib/mongodb --repair
chown -R mongodb:nogroup /var/lib/mongodb
fi
dans le bloc start_server() juste avant de démarrer le processus (à la ligne 115 dans mon cas)


Debian : Interface bonding

Rédigé par marmous Aucun commentaire
J'utilise OpenMediaVault en tant que NAS et j'avais besoin d'utiliser 2 cartes réseaux pour faire du fail-over.

OpenMediaVault laisse croire qu'il est capable de configurer ça mais en réalité cela ne fonctionne pas.

Le plus simple est de modifier directement le fichier /etc/network/interfaces comme suit :

# The loopback network interface
auto lo
iface lo inet loopback
iface lo inet6 loopback

# eth0 network interface
allow-hotplug eth0
iface eth0 inet manual
pre-up ifconfig $IFACE up
pre-down ifconfig $IFACE down

# eth1 network interface
allow-hotplug eth1
iface eth1 inet manual
pre-up ifconfig $IFACE up
pre-down ifconfig $IFACE down

# bond0 network interface
auto bond0
iface bond0 inet dhcp
bond-slaves eth0 eth1
bond-primary eth0
bond-mode 4
bond-miimon 100
bond-downdelay 200
bond-updelay 200
iface bond0 inet6 manual
pre-down ip -6 addr flush dev bond0


Et ensuite de redémarrer le réseau
service networking restart

Comment j'ai amélioré ma chaudière

Rédigé par marmous Aucun commentaire
Aujourd'hui, je vais vous raconter comment j'ai hacké ma chaudière afin d'améliorer notre confort et de faire des économies. Ce projet est fonctionnel et en production depuis un peu plus de 6 mois. Le code source est disponible ici : http://git.marmous.net/marmous/ethion

Le situation initiale

La maison est équipée du chaudière à fioul Viessmann modèle Vitola Biferal. C'est une bonne chaudière, seulement voilà : elle est équipée uniquement d'une sonde extérieure. Son cycle de chauffe ne tient pas compte de la température intérieure de la maison. Cela pose des problèmes de confort et de consommation excessive.
En effet, en hiver, lorsqu'il fait très froid elle a tendance à surchauffer et dès que l'atmosphère se réchauffe elle ne chauffe pas assez. Cela se traduit par des nuits à fort gel où on se retrouve à plus de 20°C et des périodes de mi saison où il fait une dizaine de degré à l'extérieur et 15 à l'intérieur.
Cette situation nous forçait à constamment baisser ou augmenter la chaudière, malgré son système de régulation (soleil/lune - mode complet/mode réduit). Il n'est possible que de programmer une plage soleil et une plage lune par jour. C'est très restrictif.

Le projet

Après avoir passé trop de nuit en sueur en plein hiver, j'ai décidé de trouver une solution viable. Pour cela il fallait que je puisse récupérer la température intérieure pour l'envoyer à la chaudière. J'ai commencé à regarder ce que Viessmann proposait : une commande à distance avec thermostat. Le hic, c'est filaire et donc il aurait fallut faire un trou dans le mur et le carrelage tous deux tout neuf, sans compter un coût de plusieurs centaines d'euros pour l'appareil et toujours la limite du nombre de plage horaire.
J'ai opté pour une solution créée de toute pièce à base de Raspberry Pi.
Cela se compose d'un Raspberry Pi utilisé en tant que sonde de température et d'un second Raspberry Pi agissant en tant que régulation de la chaudière.
Voici un schéma basique du fonctionnement :



La sonde de température envoie la température relevée à la régulation toutes les minutes.
Le régulation démarre de la chaudière en fonction de la température souhaitée et de la température reçue. L'algorithme de déclenchement et de maintient de la chaleur est un peu plus complexe. Je le détaillerai plus loin.

La sonde de température

J'ai installé une Raspbian sur le Raspberry Pi téléchargée ici et installée en suivant ce tutoriel.
J'ai choisi d'utiliser un composant ds18b20 pour sonde de température pour sa simplicité de mise en œuvre avec un Raspberry Pi.
J'ai suivi ce tutoriel.
Pour envoyer la température relevée à la régulation, j'ai écrit un script qui
  • relève la température
  • calibre la température relevée
  • l'envoie à la régulation

La régulation

Là aussi je me suis basé sur une Raspbian. Mon Raspberry Pi est équipé d'une carte extension PiFace me permettant de déclencher un relais (ouvrir ou fermer un circuit à la demande).
La régulation est composée d'une application web (framework python Pyramid) en guise d'interface utilisateur, d'un script python chargé de contrôler la chaudière et d'une base de donnée MongoDb.
Il est possible d'installer la base de données sur le Raspberry Pi en suivant ce tutoriel. Les performances n'étant pas au rendez-vous sur mon Raspberry Pi B, je l'ai installé ailleurs. Il faudrait tester avec un Raspberry Pi 2.
Un tutoriel d'installation complet existe ici.

Le branchement matériel

J'ai rencontré une grande difficulté à trouver un point d'entrée sur la chaudière pour démarrer/arrêter le brûleur. Je pensais naïvement qu'il devait y avoir un relais quelque part pour faire ça.
Au final et surtout grâce à ce forum allemand, j'ai simulé une commande à distance via quelques résistances.
Voici le schéma de la réalisation :



L'algorithme de régulation

J'ai amélioré cet algorithme depuis la mise en production et je pense qu'il peut encore l'être.
Je ne suis pas un expert en maths, ça doit se sentir un peu ;-)
La difficulté est que la température de l'eau chauffée est inconnue. Sur une régulation classique, il y a des réglages prédéfinis en fonction de la température de l'eau chauffée. J'ai donc dû faire autrement et je pense avoir trouvé le bon réglage pour ma maison.

Les paramètres de l'algorithme sont les suivants :
  • la température courante de l'habitat (currentTemp)
  • la température désirée (desiredTemp)
  • un delta de température (tempDelta) utilisé pour savoir si il y a un gros écart de température à rattraper
  • le temps de repos entre deux chauffes (restTime)
  • le temps de déclenchement du brûleur pour un maintient de température (holdHeatTime)
  • le temps de déclenchement du brûleur pour une petite chauffe (minHeatTime)
  • le temps de déclenchement du brûleur pour une grosse chauffe (maxHeatTime)
  • le nombre maximum de grosse chauffe (nbMaxHeat)
Il est relativement simple. C'est une boucle infinie qui pour chaque itération :
  • Récupère tous les paramètres
  • if (0 < desiredTemp-currentTemp <= tempDelta)|(nbHeat>=nbMaxHeat)
SI la différence de température entre la température désirée et la température courante est comprise entre 0 et le delta de température
OU SI le nombre maximum de grosse chauffe est atteint
ALORS le brûleur est démarré pour une durée minHeatTime, on attend le temps de repos restTime et le nombre de grosse chauffe nbHeat est initialisé à 0.
  • if (desiredTemp-currentTemp > tempDelta) & (nbHeat<nbMaxHeat)
SI la différence de température entre la température désirée et la température courante est supérieure au delta de température
ET SI le nombre maximum de grosse chauffe n'est pas atteint
ALORS le brûleur est démarré pour une durée maxHeatTime, on attend le temps de repos restTime et le nombre de grosse chauffe nbHeat est augmenté de 1.
  • else if lastRelayStart <= (now + datetime.timedelta(minutes = -60))
Dans les autres cas, SI le relais n'a pas été démarré dans les 60 dernières minutes
ALORS le brûleur est démarré pour une une chauffe de maintient holdHeatTime et on attend le temps de repos restTime.
  • Attente d'une minute
Un fait intéressant qui m'a fait rajouté le maintient est que même si la température de la pièce est chaude, nous avons une sensation de froid si les radiateur le sont.
Donc la sensation de chaud ou de froid n'est pas directement liée (et l'est quand même un peu forcément) à la température de la pièce mais à la température des radiateurs. D'où la nécessité de rajouter une fonction de maintient de chaleur.

Conclusion


Ce projet a été un vrai challenge, surtout pour trouver le point d'entrée de la chaudière. Si vous voulez tenter l'expérience, vous trouverez tous les fichiers ici sous licence libre. Si vous voulez plus d'info ou de l'aide pour mettre en place un tel projet, écrivez moi : ycalamai (chez) gmail.com

Quelques Photos

La régulation

Des schémas et des notes






L'interface web


L'écran de paramétrage

Fil RSS des articles