Archives de l'année 2018

Extension perso Carcassonne : Les déserts (partie 2)

Deuxième partie de mon extension Les déserts pour le jeu de société Carcassonne, avec deux nouvelles mécaniques inspirées du roman Dune de Frank Herbert.

Les déserts (partie 2)

Matériel

  • 20 nouvelles tuiles Terrain représentant des déserts
Tuile contenant un ver des sables Tuile contenant un gisement d'épice

Mise en place

Mélanger les 20 nouvelles tuiles avec les autres tuiles Terrains.

Placement des tuiles Terrain

Les règles de placement des tuiles restent inchangées.

Au moment où une tuile contenant un ver des sables est placée, les gisements d’épice des huit tuiles entourant de ver des sables sont immédiatement évalués comme en fin de partie.

Placement des partisans

Lorsque vous placez une tuile contenant un ver des sables, vous pouvez placer un partisan sur celui-ci au lieu de le placer sur une autre structure présente sur la tuile. Si vous faites ainsi, déplacez ensuite ce partisan sur n’importe quelle structure incomplète présente sur une tuile Désert où vous n’avez pas la majorité. Il est donc possible de placer le partisan sur une structure déjà occupée dès lors qu’au moins un autre joueur y a plus de partisans que vous.

Lorsque vous placez une tuile contenant un gisement d’épice, vous pouvez placer un partisan sur celui-ci au lieu de le placer sur une autre structure présente sur la tuile. Aucun partisan ne peut être placé sur un gisement d’épice ayant un ver des sables dans une ou plusieurs des huit cases qui l’entourent.

Évaluation des constructions complétées

Un gisement est complété lorsque les 8 tuiles qui l’entourent sont placées. Le ou les joueurs contrôlant le gisement sur la structure gagnent alors 18 points.

Fin de partie et décompte final

En fin de partie les gisements d’épice incomplets sont évaluées de façon similaire aux abbayes : le ou les joueurs contrôlant le gisement gagnent un point pour chaque tuile présente autour du gisement plus un point pour le gisement lui-même.

Précisions et interactions avec d’autres extensions

Il est possible de placer un partisan sur un gisement d’épice inoccupé à l’aide d’un portail magique (extension Princesse et Dragon). Il n’est pas contre pas possible de placer un partisan sur un ver des sables de cette manière.

Il est possible de placer un partisan sur un gisement d’épice, occupé ou non, à l’aide d’un aéronef (mini-extension Les aéronefs). Il n’est pas contre pas possible de placer un partisan sur un ver des sables de cette manière.

Téléchargement des nouvelles tuiles

Les tuiles sont téléchargeables au format PDF (~41Mo). Ce fichier comporte l’ensemble des tuiles désert, celle de la partie 2 se retrouvent en page 2.


Passer par le Darknet™ pour accéder à sa banque…

Ça faisait 3 semaines que je ne pouvais plus accéder au service e-carte bleu de la Caisse d’Épargne (serveur inaccessible, timeout, tout ça).

Après avoir testé sur plusieurs navigateurs pour exclure l’hypothèse d’une extension qui fout la merde, je me suis dit que ça venait d’une panne de leur côté et j’ai patienté quelques jours.

Comme ça ne revenait pas j’ai posé la question à ma conseillère. Deux semaines et plusieurs relances plus tard je finis par avoir une réponse pas à côté de la plaque (non me renvoyer des identifiants n’est pas une solution quand le serveur ne répond pas) : d’après leur assistance interne le service e-carte bleue fonctionne bien.

Du coup je me dis que ça vient peut-être quand même de chez moi. Je teste quelques trucs sans succès :

  • ping : timeout, donc ce n’est pas le navigateur
  • vérification de mon fichier hosts (on ne sait jamais des fois qu’un malware y ait mis de la merde) : rien
  • je me souviens que mon frère utilise ce service aussi du coup je lui demande si ça marche chez lui : oui, aucun problème

Du coup en désespoir de cause, je pense à lancer le Tor Browser, histoire de passer par une autre IP pour voir. Et là ça marche !

Donc voilà maintenant je dois passer par le Darknet™ pour accéder à un service bancaire. Tout va bien.

La seule hypothèse que je vois, c’est que mon IP soit blacklistée. Mais alors aucune idée du pourquoi…

J’en tire du coup plusieurs enseignements :

  • il vaut mieux que j’insiste un peu dans mes recherches pour régler mes problèmes moi-même plutôt que demander à ma conseillère, c’est bien plus efficace
  • avoir un Tor Browser installé ça peut toujours servir et pas forcément pour des cas qu’on avait envisagé au départ
  • je ne regrette pas du tout de soutenir l’association Nos oignons qui maintient des nœuds de sortie Tor

Voilà, voilà…


Quelques trucs sur Firefox #3

Ouvrir les nouveaux onglets en dernier

Encore un truc que je faisais via Tab Mix Plus jusque-là et qu’il faut maintenant aller faire à la main dans about:config

Donc pour ouvrir les onglets en fin de liste plutôt qu’à côté de l’onglet actif, chercher browser.tabs.insertRelatedAfterCurrent et positionner à false.

Voir l’historique des derniers onglets fermés

Autre point auparavant traité par Tab Mix Plus : rouvrir un des derniers onglets fermés (et pas juste le dernier).

Je n’ai rien trouvé de natif pour ça, j’ai donc dû me rabattre sur une énième extension : Close Tab History Button qui fait le boulot avec un bouton affichant les dix derniers onglets fermés et permettant de les rouvrir en un clic, le tout avec un jeu de permissions demandées minimal (l’accès aux onglets et à l’historique des onglets fermés).

Désactiver l’« auto-fill » sur la barre d’adresse

Encore un truc apparu avec une des dernières versions : l’« auto-fill » (que je ne sais pas trop comment traduire en français…) dans la barre d’adresses. Pas juste une suggestion, non, une auto-complétion qui s’applique automatiquement sans poser de question lorsqu’on appuie sur “entrée”.

Dans le genre qui quand je tape “about:conf” rajoute tout seul le “ig” à la fin et jusque-là on se dit “pourquoi pas ?”. Sauf que pour une raison quelconque il se dit qu’il faut aussi ajouter un slash qui fait que ça ne marche pas… et voilà pourquoi pas justement : à essayer de deviner puis imposer le choix ben quand c’est faux ça fait royalement chier !

Donc pour désactiver cette connerie, comme d’habitude, c’est dans about:config, rechercher le paramètre browser.urlbar.autoFill et le passer à false.


Carte Magic perso : Melusa, la fillette à la rose

Il s'agit là de ma toute première FC (hors tentative d'extension perso que je n'ai jamais finie). J'ai un commentaire en deux parties avec deux versions différentes du coup pour une fois je vais présenter les deux.

On a donc la première version postée sur MagicCorporation en septembre 2010 :

Melusa, la fillette à la rose (v1)
Melusa, la fillette à la rose (v1)

Vu que je suis en congés, j'ai un peu de temps. Du coup je me suis dit que j'allais tenter une FunCard à poster ici, qui ne soit pas tirée de mon extension perso. J'ai donc fait un petit tour sur Deviant Art et je suis tombé sur cette illustration (par Annie Stegg alias PinkParasol) qui m'a tout de suite inspiré.

Réalisation

La carte est réalisée avec GIMP, à partir du fond de carte de NorthNikko d'après le psd Sovelis. La réalisation en elle-même reste assez basique : intégration de l'image avec deux petits dépassements pour faire un peu plus recherché, d'autant que l'image s'y prêtait bien.

Côté symbole d'extension, je cherchais un truc sympa qui pourrait me servir pour d'autres cartes (donc pas lié particulièrement à celle-ci), ne trouvant rien de bien convaincant, j'ai cherché du côté des alphabets fantaisistes un "D" (première lettre de mon pseudo) et c'est le Quenya, l'un des alphabets elfiques imaginés par Tolkien qui l'emporte avec un symbole plutôt sympa ^^ Là par contre, pour le symbole, j'ai lâché GIMP que je maîtrise moyennement pour mon bon vieux Picture Publisher que je connais sur le bout des doigts, même s'il est moins puissant.

Capacité

Pas de mécanique super originale pour cette carte, le tout découlant de l'illustration.

Le bleu s'imposait de par l'ambiance et les couleurs, ainsi que la présence des méduses, méduses qui par une petite dérivation ont également donné le prénom "Melusa".

Ensuite, un arpenteur (je n'aime pas l'anglicisme "planeswalker" tristement généralisé par WotC à toutes les langues, c'est environ le seul terme de Magic où WotC décide d'utiliser un terme anglais, ça fait tache... donc je reste sur le terme "arpenteur" que j'aime bien), parce que j'aime bien le concept. De plus, dans l'illustration, la robe semble s'étendre à l'infini, ce qui colle plutôt bien avec les êtres quasi-divins que sont les arpenteurs.

Enfin les capacités proprement dires : on retrouve les méduses pour la première et la dernière. La référence au cimetière peut paraître étrange dans une carte bleue, mais le personnage de l'illustration semble plutôt triste (l'illustration est d'ailleurs intitulée "Regret"), donc je suis parti du principe que les méduses naissaient de la tristesse et des regrets de Melusa, donc des cartes des cimetières, retreint à la couleur bleue, couleur de la carte.

Reste la seconde capacité qui, elle aussi, peut paraître un peu hors contexte en bleu... cela dit, le bleu compte quelques cartes faisant des blessures directes (comme le Sorcier sybarite par exemple). Elle vient du fait que la fillette semble sans défense, une inoffensivité de façade, comme la rose qu'elle tient dans les mains et dont les épines sont tranchantes. Cependant, pour que cette capacité soit jouable il fallait pouvoir la lancer comme un éphémère, j'ai donc repris le concept que j'ai vu sur la carte Horatio Nelson de BlackStones. Elle est donc jouable à tout moment où on peut jouer un éphémère mais, comme toute capacité de loyauté, une seule fois par tour (dans le cas d'une partie à plus de deux, on peut donc l'utiliser contre chacun des adversaires qui attaque du moment que leurs tours sont séparés).

Et une seconde version retravaillée par la suite :

Melusa, la fillette à la rose (v2)
Melusa, la fillette à la rose (v2)

Détail des modifications sur cette carte suite aux commentaires :

  • l'ambiance de tristesse et la référence au cimetière dans la troisième capacité justifient en effet que la carte soit également noire. Du coup on inclut également le noir dans l'effet de la 3e capacité qui prend maintenant les cartes partageant une couleur avec Melusa, soit bleu et noir.
  • la première capacité ressemblait un peu trop à la troisième puisqu'elles mettaient toutes les deux en jeu des jetons Méduses. J'ai donc complètement remplacé la première : on reste dans les méduses puisqu'on en cherche une dans la bibliothèque. C'est assez fort puisque ça fait chercher une carte, mais les cartes de méduse n'étant pas si nombreuses dans Magic, ça reste raisonnable. Puis, on rajoute un petit défaut d'un point de vie perdu qui donne une nuance de noir pour la cohérence de la carte.
  • la seconde capacité reste dans le même esprit : répondre à une attaque par des blessures. Néanmoins, on ajoute une grosse contrainte, défausser une carte, de plante pour la référence à la rose (je n'ai pas trouvé mieux qui puisse rentrer dans la place allouée à une capacité de loyauté... J'avais pensé à des marqueurs épine qui auraient un effet particulier, mais y avait pas la place :-/). C'est vraiment une grosse limitation, d'autant que même s'il y a des plantes en noir ou bleu, c'est loin d'être la majorité, elles sont surtout vertes. Du coup, au lieu de simples blessures, on place des marqueurs.
  • sinon, j'ai aussi fait les corrections techniques : police du copyright, espace entre les coûts de loyauté et les double-points et retouche sur les dépassements de l'illustration.

Quelques trucs sur Firefox #2

Les différents écrans about:...

Firefox dispose d’un certain nombre d’écrans accessibles via une URL du type about:.... Certaines sont accessibles via les menus comme about:preferences (gestion des préférences) ou about:addons (gestion des extensions et thèmes), d’autres non.

Pour accéder à la liste de ces écrans, on peut passer par about:about. On y trouve notamment :

Et bien d’autres plus ou moins intéressants.

Utilisation de profils multiples

Il est possible de créer plusieurs profils dans Firefox, que ce soit pour les utiliser sur la même instance ou sur des instances différentes. La documentation fournit pas mal de renseignements à ce sujet.

Personnellement j’ai utilisé des profils multiples pour faire cohabiter une version ESR52 et une version à jour de Firefox sur la même machine pour pouvoir tenter une transition en douceur vers la dernière version (transition réalisée à regret vue la perte de fonctionnalité mais vu que l’ESR 52 n’est plus maintenue…).

Pour cela j’ai suivi en gros les indications proposées ici. Il y a juste un point que j’ai dû trouver tout seul : ils recommandent d’ajouter l’option -no-remote aux différents raccourcis, mais en pratique j’ai dû l’enlever sur celui qui correspond au navigateur par défaut sinon à chaque ouverture d’un lien depuis ailleurs (par exemple depuis Thunderbird) me redemandait de choisir le profil. Là j’ai une situation où tant qu’une fenêtre est ouverte sur le navigateur par défaut les liens s’ouvrent bien dedans sans demander de profil.

Fixer le niveau de zoom par défaut des PDF

Ah ! Il est possible, dans Firefox, de dire à pdf.js d'afficher par défaut les PDFs avec le niveau de zoom que l'on veut (pleine largeur dans mon cas).

Pour ce faire, aller dans about:config, chercher « pdfjs.defaultZoomValue » et mettre la valeur « page-width »

#UserFriendly (#OuPas)

— John Shaft (ジョン・シャフト) (@shaft@mamot.fr) le 16 juillet 2018 à 14h31

Tout est dans le pouet, rien à ajouter ^^


Carte Magic perso : Ninja en colère

Une autre carte qui est plus un délire qu'autre chose pour le coup, sans beaucoup de recherche (même pas de texture perso, c'est dire).

Ninja en colère
Ninja en colère

Contexte

Carte réalisée suite au commentaire de The-Truth sur la carte Pouvoir de Damnation sur MagicCorporation :

Refaire (encore) une colère de dieu, avec la suspension, je pense que tout le monde y a pensé, comme de faire une WoG avec la solarisation, une WoG avec le dragage, une WoG avec le ninjutsu... enfin non, pas ça.

Donc forcément il fallait bien que quelqu'un la fasse : voilà la Colère de Dieu avec le ninjutu :D

Réalisation

Réalisée toujours avec GIMP et le xcf de Sovelis et l'illustration Limited Kill de Jarreau Wimberly.

Capacité

Ben c'est une Colère de Dieu avec le ninjutsu, quoi :smile:

Suite à certains commentaires j'avais fait une autre version nommée « Gekido Kuro, le Sabre Colérique » et qui du coup devenait légendaire mais finalement je ne trouve pas que ça rende tellement mieux donc je préfère rester sur mon « Ninja en colère » initial ^^

Quels remplaçants pour les vieilles extensions de Firefox ?

Voici une liste d'extensions (dont plusieurs que j'avais citées dans ce blog) qui soit on disparu, soit qu'il vaut mieux remplacer par d'autres plus performantes et/ou plus respectueuses de la vie privée.

Extension d'origine Remplaçant Explications complémentaires
Abduction! L'outil natif de captures d'écran de Firefox J'ai longtemps utilisé Awesome Screenshot mais les permissions qu'il demande me semblent un peu excessives, donc maintenant que Firefox propose son propre système de captures, je préfère en rester là (même s'il est moins puissant).
Adblock Edge uBlock Origin Il existe plein d'autres bloqueurs, souvent détenus par des entreprises vivant de la revente de données récoltées à cette occasion ou bien en monnayant le fait de laisser passer certaines pubs... uBlock Origin n'a pas de telle entreprise derrière elle.
Adblock Plus
AngScope AngularScope L'originale reposant sur Firebug, forcément c'est mort à partir de Quantum. Ne trouvant rien de satisfaisant j'ai pris le temps d'en refaire une moi-même... sans réussir à refaire aussi bien que l'originale (en effet, le nouveau système d'extension est infiniment plus limité et contraignant, donc impossible de refaire aussi bien, notamment pas moyen de faire ouvrir les devtools ou basculer sur le bon onglet).
Classic Theme Restorer Bricoler dans userChrome.css Impossible à refaire dans Firefox post-57 en extension, le nouveau système d'extensions est trop limité pour ça. On peut par contre bricoler une feuille de style personnalisée dans son profil Firefox mais d'une ça se limite aux changement visuels (ça reste du CSS uniquement) et c'est vachement moins pratique...
FaviconizeTab Rien :sad: Impossible à refaire dans Firefox post-57, le nouveau système d'extensions est trop limité pour ça. Ce qu'on a de moins éloigné comme alternative c'est d'épingler les onglets mais c'est très limité...
Foxmarks Bookmark Synchronizer L'outil natif de synchronisation de Firefox Rien de plus à dire, ça existe en natif.
JSONView JSON Lite Encore une victime de la Quantum-Apocalypse, mais elle au moins a un remplaçant.
Status-4-Evar Bricoler dans userChrome.css Impossible à refaire autrement dans Firefox post-57, le nouveau système d'extensions est trop limité pour ça.
Stylish Stylus Stylish a été banni de Firefox et Chrome parce qu'il collectait des données d'historique.
Tab Mix Plus Tab Mix - Links, Tab Mix - Rename Tab, Open bookmarks in new tab, Close Tab History Button, des conf à la main Autre victime de la Quantum-Apocalypse... Certains éléments sont disponibles dans d'autres extensions, pour d'autres il faut farfouiller dans about:config. C'est vraiment pas pratique et incomplet mais c'est comme ça. Merci Mozilla.
TabSubmit TabSubmit Basic Encore une victime de la Quantum-Apocalypse, mais elle au moins a un remplaçant.

Voilà, rien d'exhaustif, je me suis concentré sur les extensions que j'avais citées ici et dont j'utilise encore le remplaçant ainsi que d'autres que je n'avais pas citées mais pour lesquelles j'ai dû trouver une alternative.

J'en ai profité pour ajouter des warning dans les articles qui en parlaient parce que l'air de rien c'est bien d'être averti quand on tombe sur un article dont le contenu est dépassé.

J'ai aussi largement lis à jour la page récapitulative sur Firefox (accessible depuis la barre latérale).


Mise à jour du 02/11/2018 à 12:05

Ajout d'un remplaçant à Tab Mix Plus pour l'historique des derniers onglets fermés.

Mise à jour du 03/01/2019 à 21:25

Ajout de la mention d'une alternative dans userChrome.css comme alternative à Status-4-Evar.

Carte Magic perso : Tentatrice des marais

On continue la série de republications de cartes Magic perso avec une autre carte issue d'un jeu FC à thème imposé. Comme je le disais précédemment, on approche de la fin du stock donc il s'agit d'une carte assez basique.

Tentatrice des marais
Tentatrice des marais

Contexte

Voilà ma participation pour un FCC sur le site de la SMF où il fallait réaliser une carte avec cette illustration.

Commentaire

L'image me faisait penser ces esprits, fantômes et autres spectres qui, sorte de version personnifiée des feux-follets, attirent les gens dans les marais à ils finissent par se perdre et mourir noyés dans la vase.

De là l'idée de la créature qui en force une autre à attaquer en s'enfonçant dans les marais et du contact mortel représentant la noyade. Cependant ces esprit restent liés aux marais, d'où les deux dernières capacités.

À cette occasion j'ai réalisé que la capacité "Joug des <type de terrain>", effectivement plus utilisée depuis longtemps, avait été carrément supprimée... ça fait bizarre d'un côté quand on voit qu'actuellement la tendance est plutôt d'ajouter des mots-clés et donner des noms à des capacités déjà existantes (le terme "mourir", les créatures qui "se battent" ou des capacités comme "hexproof" ou "regard"). Du coup je ne l'ai pas reprise, préférant prendre la formulation du Grand serpent de mer.

Toutes ces capacités imposaient du vert/noir (ou même du rouge pour l'attaque forcée mais ça ne collait pas du tout à l'ambiance de la carte).

Crédits

  • la carte est réalisée avec GIMP sur la base du xcf de Sovelis
  • la texture est faite sur Photoshop Elements 8, à l'aide des brosses Spanish Moss publiées par Linda Rae
  • l'illustration est bien entendu The Naiads par Clint Cearley

Extension perso Carcassonne : Les déserts

Après les deux mini-extensions Murs et Maisons, voici une autre extension pour le jeu de société Carcassonne que j’ai réalisée, cette fois avec de nouvelles tuiles.

Les déserts

Matériel

  • 16 nouvelles tuiles Terrain représentant des déserts
  • 4 nouvelles tuiles Terrain représentant des déserts et montagnes
  • 30 pions chameaux de 3 couleurs différentes : 10 blancs, 10 gris et 10 couleur bois
  • un sac destiné à contenir les pions chameaux
Tuile contenant une pyramide Tuile contenant une oasis Tuile contenant une oasis et des montagnes

Mise en place

Mélanger les 16 nouvelles tuiles avec les autres tuiles Terrains.

Si vous jouez avec l’extension non-officielle intégrant les montagnes, ajouter également les 4 tuiles montagne.

Placer les pions chameau dans un sac qui constitue la « réserve de chameaux ».

Placement des tuiles Terrain

Les règles de placement des tuiles restent inchangées.

Si le placement de la tuile connecte une oasis avec une route incomplète occupée par au moins un partisan et aucun chameau, piocher au hasard un chameau de la réserve et le placer sur la route.

Si le placement d’une tuile prolonge une route contenant un ou plusieurs chameaux, le joueur ayant placé la tuile bénéficie d’un bonus pour chaque chameau présent. Pour que ce bonus se déclenche, il n’est pas nécessaire qu’un des partisans de ce joueur occupe la route. Le bonus déclenché par un chameau dépend de sa couleur :

  • Chameau gris : le joueur gagne 3 points.
  • Chameau blanc : le joueur bénéficie d’un tour double. S’il est déjà en train de jouer un tour double, il gagne 2 points à la place.
  • Chameau couleur bois : le joueur pioche une tuile terrain et la place devant lui. Au début de ses prochains tours, il pourra choisir de jouer l’une des tuiles ainsi piochées à la place de piocher une tuile.

Placement des partisans

Lorsque vous placez une tuile contenant une pyramide, vous pouvez placer un partisan sur celle-ci à la place de le placer sur une autre structure présente sur la tuile.

Aucun partisan ne peut être placé sur le désert ni sur les oasis.

Si un partisan est placé sur une route incomplète connectée à une oasis et ne contenant aucun chameau, piocher au hasard un chameau de la réserve et le placer sur la route.

Évaluation des constructions complétées

Tuiles à placer pour compléter une pyramide

Une pyramide est complétée lorsque les 12 tuiles qui l’entourent sont placées (deux dans chaque sens verticalement et horizontalement et une dans chaque sens en diagonale), la pyramide est complétée. Si un ou plusieurs partisans sont présents sur la pyramide, le ou les joueurs en ayant le plus grand nombre gagne 13 points plus 2 points supplémentaires par oasis présente dans les 13 tuiles de sa zone d’influence.

Lorsqu’une route contenant des chameaux est complétée, ceux-ci n’influent en aucune manière sur le décompte des points et retournent simplement dans la réserve.

Fin de partie et décompte final

En fin de partie les pyramides incomplètes sont évaluées de façon similaire aux abbayes : le ou les joueurs contrôlant la pyramide gagne un point pour chaque tuile présente dans sa zone d’influence (y compris la tuile pyramide elle-même).

Les chameaux et oasis n’ont aucune influence sur le décompte final.

Précisions et interactions avec d’autres extensions

Les embranchements de route sans obstacle (oasis ou autre) ne coupent pas la route (comme la tuile avec le puits dans Maires et Monastères).

Si l’effet d’un chameau blanc se déclenche en même temps que celui d’un bâtisseur (extension Marchands et Bâtisseurs) ou tout autre effet déclenchant un tour double, le joueur gagne deux points au lieu d’obtenir un second tour double.

Il est possible de placer un partisan sur une pyramide inoccupée à l’aide d’un portail magique (extension Princesse et Dragon).

Il est possible de placer un partisan sur une pyramide, occupée ou non, à l’aide d’un aéronef (mini-extension Les aéronefs).

Téléchargement des nouvelles tuiles

Les tuiles sont téléchargeables au format PDF (~41Mo). Ce fichier comporte l’ensemble des tuiles désert, celle de cette première partie constituent la page 1.


Mise à jour du 11/11/2018 à 11:55

Mise à jour du fichier contenant les tuiles pour y ajouter les tuiles de la partie 2 de l'extension.

Mise à jour du 24/12/2018 à 14:50

Suite à une discussion sur le forum Carcassonne Central, ajout d'une précision sur les embranchements de routes dans la dernière partie des règles.

Carte Magic perso : Tombeau perdu d’Illior

On continue la série de republications de cartes Magic perso avec une autre carte issue d'un jeu FC à thème imposé.

Tombeau perdu d’Illior
Tombeau perdu d’Illior

Contexte

Cette carte a été réalisée pour le 13e jeu FunCard sur MagicCorporation, dont le thème était le suivant :

Je voudrais une carte de terrain, jouable et équilibrée, qui dégage une ambiance et une cohérence. Les illustrations seront vivement appréciées, ainsi que le nom du lieu, l'idée qui se dégage d'une capacité.... Bref, je veux un terrain qui, à l'exemple d'Orzhova, l'Église des Transactions ou des Cabal Coffers, dégage une ambiance et une atmosphère puissante, qui donne limite envie (ou pas, qui veut visiter Rix Maadi, Dungeon Palace ?) de visiter le lieu.

  • Réa : 4
  • Idée : 7
  • Capa : 4
  • Ambiance : 4
  • Commentaire : 1

Les terrains légendaires, ou ayant un nom, ou juste poétiques, comme ça seront bien sûr vivement appréciés. En cas d'égalité, celui avec la capacité la plus originale gagne. Délai : 2 semaines, comme d'hab.

Réalisation

Rien de bien original, comme d'habitude, réalisée avec GIMP et le xcf de NorthNikko disponible dans le bazard. L'illustration vient de DeviantArt : Undiscovered par Crahzz (que je n'ai plus retrouvée) et la la texture pour les bordures vient d'une autre illustration du même auteur Entrance to Hell (idem, plus disponible là bas).

Idée

L'illustration me fait l'effet des ruines d'un tombeau perdu au milieu d'une forêt, d'où le titre. Et qu'est-ce qu'on trouve dans un tombeau inviolé ? Soit des richesses, soit un monstre millénaire enfermé là et qu'il n'aurait surtout pas fallu libérer... c'est cette seconde option que j'ai choisie ^^

Lorsqu’un terrain arrive sur le champ de bataille, si c’est sous le contrôle d’un adversaire, retirez un marqueur « quête » du le Tombeau perdu d’Illior, sinon ajoutez-en un.

Inspiré de la série d'enchantements du bloc Zendikar basés sur des marqueurs "quête", mais cette fois en faisant intervenir l'adversaire également. L'idée est que les terrains arrivant en jeu représentent les régions traversée les explorateurs à la recherche du tombeau perdu, les terrains posés par les adversaires représentant des détours et fausses pistes qu'ils ne manquent pas de croiser sur leur chemin.

Quand le Tombeau perdu d’Illior a 3 marqueurs « quête » ou plus sur lui, sacrifiez-le. Si vous faites ainsi, mettez sur le champ de bataille un jeton d’arpenteur noir Illior avec 5 marqueurs « loyauté » sur lui, appelée Illior d’Halarim. Il a « Symbole : loyauté plus un : Mettez deux marqueur +1/+1 sur la créature Vampire ciblée. » et « Symbole : loyauté moins 7 : Exilez toutes les créatures non-Squelette. Mettez sur le champ de bataille un jeton de créature 2/2 noire Vampire pour chaque créature exilée de cette manière ».

J'aurais pu faire du monstre enfoui une créature légendaire, mais ça ressemblait trop aux Prodondeurs obscures, puis y a pas de carte encore qui fait de jeton d'arpenteur, j'ai donc opté pour cette option. Donc un Arpenteur noir, avec deux capacités seulement pour des raisons de place (déjà comme ça c'est écrit tout petit, donc j'imagine pas avec une 3e capacité :euh:). Pour la même raison les capacités restent assez simples. Vu que les vampires sont à la mode en ce moment, j'ai abandonné ma première idée des squelettes et fait deux capacités liées à ce peuple.

Texte d'ambiance

Là aussi j'ai fait court pour des raisons évidentes de place : un monstre enfermé depuis des millénaire, ça finit par s'estomper dans les mémoires pour ne rester plus qu'une légende qui fait peur aux enfants ou des comptines qu'ils récitent sans trop savoir de quoi il s'agit... Enfin jusqu'à ce que le monstre se réveille et massacre tout le monde du moins :smile:


Restauration des anciennes URL des articles

Un des derniers points qui manquaient depuis la résurrection de ce blog était de faire refonctionner les anciennes URL des articles.

En effet, lors du passage sous Jekyll, d’une part le nommage des articles a été modifié (par défaut Jekyll les met en .html là où ma réécriture d’URL sous WordPress me les faisait juste finir par un /) et d’autre part j’ai changé de domaine, passant de wp.darathor.com à blog.darathor.net.

Il manquait donc deux opérations :

  1. rediriger l’ancien domaine vers le nouveau
  2. rediriger les anciennes URL vers les nouvelles

La première étape n’a rien de compliqué et se fait assez rapidement dans la configuration des VHOST d’Apache.

La seconde est un peu moins immédiate puisqu’il m’a fallu construire la table de correspondance des anciennes URL vers les nouvelles.

J’ai choisi comme stratégie de stocker une liste d’alias dans l’en-tête de chaque articles et de générer un fichier .htaccess à partir de ça.

Déclaration des alias

La déclaration des alias est assez simple et se limite à une liste d’URL relatives :

aliases:
- /?p=3
- /2007/05/01/ouverture-du-site/

L’avantage de fonctionner avec une liste d’alias en URL relatives c’est que cette même mécanique peut être ré-exploitée si je veux changer l’URL d’un article par la suite (notamment pour corriger une coquille).

Reste à l’alimenter dans mon cas de migration depuis WordPress.

Le script de migration de WordPress vers Jekyll m’avait extrait une entrée de la forme wordpress_url: http://wp.darathor.com/?p=10 contenant une des formes d’URL proposée par WordPress. Par contre il ne s’agissait pas de la forme générée par la réécriture automatique de WordPress qu’il m’a fallu reconstruire pour aboutir aux deux alias ci-dessous. J’ai finalement choisi de garder les deux URL à chaque fois étant donné que les deux pointaient sur le contenu et que je n’aime pas les liens morts.

Génération du fichier .htaccess

Dans mon cas j’utilise Apache comme serveur web, donc je peux passer par un fichier .htaccess ce qui a un gros avantage : tout reste stocké dans le code versionné et déployable automatiquement sans aller toucher au VHOST.

Pour générer ce fichier j’ai procédé comme pour le robots.txt via une simple page nommée htaccess (sans extension sinon à la génération Jekyll la colle arbitrairement derrière le permalien) :

---
layout: null
permalink: .htaccess
---

ErrorDocument 404 /404.html

{% for page in site.pages -%}
{%- if page.aliases -%}
{%- for alias in page.aliases -%}
  Redirect 301 {{ alias }} {{ page.url }}
{% endfor -%}
{%- endif -%}
{%- endfor -%}

{% for post in site.posts -%}
{%- if post.aliases -%}
{%- for alias in post.aliases -%}
  Redirect 301 {{ alias }} {{ post.url }}
{% endfor -%}
{%- endif -%}
{%- endfor -%}

On retrouve donc l’en-tête avec un layout: null pour que le fichier généré ne soit pas habillé d’une structure HTML et un permalink: .htaccess indiquant le nom du fichier à générer.

Ensuite le contenu consiste en une simple boucle sur les articles avec à chaque fois une boucle sur les alias pour générer les redirections 301.

J’en ai également profité pour ajouter la ligne ErrorDocument 404 /404.html qui dit à Apache d’utiliser une page 404 personnalisée plutôt que la page par défaut.


Ajout du 07/10/2018 à 12h30

Dans mon .htaccess je ne gérais les alias que pour les articles et pas pour les pages. J’ai mis à jour le code ci-dessus pour en tenir compte également.


Cartes Magic perso : Cycle Elenwen

On continue la série de republications de cartes Magic perso avec un cycle de cinq cartes parmi les premières que j'ai faites.

Erilerynlyg Elenwen
Erilerynlyg Elenwen (HD)

Réalisation

Comme d'habitude, avec GIMP.

L'illustration est trouvée sur deviantART : Kindred spirits par Anne Stokes alias Ironshod.

La texture je sais plus trop (oublié de noter :-/) ce que j'ai utilisé mais je sais que j'y ai appliqué plusieurs effets par dessus.

Idée

En tombant sur cette illustration je me suis dit que ce serait intéressant de faire un truc qui permette d'associer une créature à une autre. Il existe déjà les lytiques du bloc Tempête qui se transforment en auras mais je cherchais autre chose.

De là j'ai sorti une capacité originale : la symbiose, dont voici les règles :

  • La symbiose est une capacité activée des cartes de créature. "Symbiose avec les [type de créature] [coût]" signifie "[coût] : Attachez cette créature à la créature [type de créature] ciblée que vous contrôlez. Ne jouez cette capacité que lorsque les deux créatures sont dégagées et que vous pourriez jouer un rituel."
  • Une créature attachée à une autre via la symbiose est appelée "symbiote" celle à laquelle elle est attachée est appelée "hôte". Les deux créatures sont alors dites "en symbiose".
  • Un hôte ne peut avoir qu'un symbiote au maximum. Si une nouvelle créature devait lui être attachée par symbiose, rien ne se passe. Mis à part cette exception, les règle standard de l'attachement (701.2) s'appliquent.
  • Un hôte et son symbiote ont toujours le même contrôleur. Si un sort ou une capacité modifie le contrôleur de l'un des deux, il modifie également le contrôleur du second.
  • Un symbiote ne peut ni attaquer ni bloquer. Il peut par contre utiliser ses capacités activées et reste une créature à tout point de vue.
  • Lorsque des blessures sont infligées à un symbiote ou à son hôte, leur contrôleur peut rediriger tout ou partie de ces blessures de l'un vers l'autre.
  • Si un hôte quitte le champ de bataille, détachez son symbiote et engagez-le. Il ne se dégage pas pendant la prochaine phase de dégagement de son contrôleur.
  • Si un symbiote quitte le champ de bataille, engagez son hôte. Il ne se dégage pas pendant la prochaine phase de dégagement de son contrôleur.

Je me suis inspiré des règles sur les équipement et fortification pour essayer de faire un peu le tour de ce qu'il fallait prévoir.

Vue la place qui restait je me suis contenté d'une capacité assez simple lorsqu'elle est en symbiose (sinon, il aurait fallu virer le texte d'aide et sur une capacité perso c'est pas très cool).

Nom

Pour le nom du coup j'ai pioché dans le lexique de Sindarin sur le site Ambar Eldaron. J'ai essayé de combiner les parties du nom en suivant les indications que donne le site en la matière mais bon, faut pas trop espérer que ce soit parfait non plus, je suis pas linguiste et encore moins en Sindarin :D Puis bon, à vrai dire je pense pas que grand monde s'en souciera réellement :euh:

Les différents mots utilisés pour composer le nom sont :

wen
jeune fille
lug
dragon
eryn
forêt
elen
elfe
eria
élever

Pour donner enfin : Erilerynlyg Elenwen

D'autres cartes avec la symbiose

L'illustratrice ayant fait pas mal d'autres illustrations similaires, j'ai décliné l'idée pour chaque couleur (avec toujours du vert puisque ce sont des elfes).

Nestrilfaelyg Elenwen

Nestrilfaelyg Elenwen
Nestrilfaelyg Elenwen (HD)

Illustration : Secret Garden, par Anne Stokes alias Ironshod

Éléments linguistiques :

faelug
dragon (étincelant)
nesta
soigner

Lúthrillimlyg Elenwen

Lúthrillimlyg Elenwen
Lúthrillimlyg Elenwen (HD)

Illustration : Water Dragon, par Anne Stokes alias Ironshod

Éléments linguistiques :

limlyg
dragon-poisson
lútha
envoûter, enchanter

Baugrilmôrlyg Elenwen

Baugrilmôrlyg Elenwen
Baugrilmôrlyg Elenwen (HD)

Illustration : Soul Mates, par Anne Stokes alias Ironshod

Éléments linguistiques :

baugla
oppresser
môr
sombre, noir

Torthrilurlyg Elenwen

Torthrilurlyg Elenwen
Torthrilurlyg Elenwen (HD)

Illustration : Elegant Dragon, par Anne Stokes alias Ironshod

Éléments linguistiques :

tortha
contrôler
urlug
dragon de feu

Science-fiction et anachronismes #2

Il y a quelques années à la lecture du roman de science-fiction Les menhirs de glace (Icehenge an VO) de Kim Stanley Robinson, j’avais été frappé par certains éléments qui me semblaient particulièrement anachroniques dans le futur qu’il nous proposait au point d’en faire un article.

Cette fois-ci c’est le visionnage de deux séries de Star Trek : d’abord Enterprise (2001-2005), puis Deep Space Nine (1993-1999) dont je viens de finir la saison 2 qui m’ont fait tiquer sur certains points.

Je ne vais pas parler de la facilité qu’ils ont à traduire les langues ou d’autres éléments qui ont évidemment pour source le besoin d’éviter les longueurs dans la série. On n’est pas dupe une seconde sur le réalisme mais il y a une justification pratique : l’ensemble de la série perdrait de sa fluidité sans cela, ça fait partie des choses qu’il faut admettre (on est dans une fiction, pas dans un documentaire).

Mais il y a d’autres points qui ne sont pas nécessaires au bon fonctionnement de la série en général et me semblent juste relever d’anachronismes injustifiés.

Attention : ces séries étant anciennes, je vais donner des éléments du déroulement de certains épisodes sans masquage ou gros messages d’alerte. Vous êtes prévenus.

Les outils de communication

Dans Deep Space Nine, chacun des officiers de la station dispose de son « combadge ». Mes souvenirs de la série d’origine sont très vagues mais d’après Wikipédia, ils remplacent les « communicateurs » de l’époque.

On est donc sur des appareils qui ne permettent que le la communication audio (pas d’images notamment) plus certaines données comme la localisation. On est donc bien sur des versions diminuées de nos ordiphones actuels. Quelque part, on peut considérer que ça ne tapait pas trop à côté puisqu’on est effectivement allé dans cette direction (même si dans la pratique on est allé bien plus loin et plus vite qu’ils ne l’envisageaient).

Mais là où ça commence à vraiment être bizarre c’est dans Enterprise qui se passe un siècle avant la série d’origine et deux avant Deep Space Nine. Là la communication dans le vaisseau est assurée par un réseau de bornes murales qui relaient les messages vocaux auxquels on peut répondre après avoir pressé un bouton…

J’imagine que l’idée était de caser un système moins évolué que les communicateurs et combadges des séries chronologiquement postérieures et en cela ça se tient. Cependant ce n’est vraiment pas très crédible par rapport à la réalité de ce qui s’est passé entre temps et qui était déjà bien engagé à l’époque où a été tournée Enterprise (2001-2005) : le téléphone portable puis l’ordiphone se sont rapidement généralisés.

Du coup imaginer qu’on revienne en arrière avec un réseau fixe dans le vaisseau parait assez difficile. Surtout avec tous les petits appareils qu’ils trimbalent et permettant de magiquement tout analyser ou traduire des milliers de langues en temps réel… Qu’ils n’aient pas intégré un appareil de communication sous une forme ou une autre est des plus bizarres et ne s’explique que parce qu’ils ont dû se retrouver piégés entre ce qui avait déjà été fait dans les autres séries (chronologiquement postérieures et donc technologiquement plus avancées) et ce qui s’est passé entre temps dans la réalité.

L’irréfutabilité de l’enregistrement

La bascule ne s’est pas encore faite dans notre époque actuelle mais elle s’annonce de plus en plus : comment peut-on imaginer s’assurer qu’un enregistrement est véridique ? Pour une communication en temps réel c’est plus simple, on peut imaginer des signatures authentifiant les interlocuteurs comme on le fait actuellement avec les mails quand on veut certifier leur émetteur et la non-altération du contenu. Mais on ne certifie en aucun cas l’honnêteté de l’interlocuteur, juste de la transmission.

Dans l’épisode 13 de la seconde saison de Deep Space Nine (Annihilation en VF, Armageddon Game en VO), les représentant d’une race extra-terrestre rapportent un enregistrement vidéo censé relater la mort de deux membres de la station. Cet enregistrement est accueilli comme évidemment vrai par le commandant.

La seule à le mettre en doute est la femme de l’un des deux supposés morts qui croit déceler une incohérence dans le comportement de son mari (qui ironiquement s’avère en plus faux à la fin de l’épisode). À aucun moment les responsables de la station ne remettent en cause la véracité de l’enregistrement. Ils remettent fréquemment en cause les témoignages oraux mais pas les enregistrements. Notamment ils se fient aveuglément à un élément pourtant facilement falsifiable : l’horaire indiqué dans l’enregistrement.

Déjà actuellement, l’authentification des preuves que ce soient des enregistrements vidéo ou vocaux ou plus généralement des documents numériques est de plus en plus difficile. De nombreuses manipulations peuvent être faites de façons de plus en plus indétectable : changer une métadonnée comme la date est généralement assez simple et difficilement détectable.

On imagine donc bien qu’au 23e siècle, tandis que l’humanité parcourt la galaxie, les techniques de manipulation d’image ont nécessairement progressé également. Si à notre époque les premières résurrections d’acteurs décédés par images de synthèses restent perfectibles, on imagine bien que 3 siècles plus tard ce sera plus vrai que nature.

Il parait donc plus qu’étrange que la question de la falsification ne se pose même pas avant l’intervention de l’épouse. Certes les extra-terrestres en question sont bien censés être plus ou moins des alliés mais bon quand on vous annonce que deux de vos experts sont morts (suite à une erreur de manipulation de l’un d’eux en plus) alors qu’ils étaient sur le point de finir une mission sans danger il semble naturel de se poser des questions. Et là rien : l’enregistrement est une preuve évidente. Point.

L’impasse de la biométrie

Dans l’épisode 25 de la seconde saison de Deep Space Nine (Tribunal aussi bien en VO qu’en VF), Miles O’Brien est accusé d’avoir volé des armes. Notamment l’ordinateur relève que c’est lui qui est le dernier à être entré dans le dépôt. La preuve ? C’est sa voix qui a commandé l’ouverture de la porte.

Bon là au moins la preuve est mise en doute et rapidement ils remarquent en analysant l’enregistrement que la voix a été trafiquée. Ou plutôt que la phrase prononcée est un montage réalisé à partir de mots distincts enregistrés.

Mais un système de sécurité authentifiant les gens à leur voix ? Vraiment ? C’est tellement évidemment facile à abuser, que ce soit en rejouant un enregistrement véridique ou en en construisant un, que même de nos jours on n’essaie pas d’utiliser un truc aussi faible.

Intrinsèquement la biométrie est peu fiable pour de l’authentification et ce pour deux raisons principales : d’une part les données biométriques sont publiques ou récupérables assez facilement et d’autre part elles sont non-modifiables (enfin y a toujours moyen de recourir à la chirurgie pour certaines d’entre elles mais c’est assez lourd pour une donnée fuitée dont la remplaçante sera de nouveau facilement accessible).

Même actuellement quand on met en avant la biométrie pour de l’authentification on a la décence de prendre un truc un peu moins facile à falsifier que la voix (genre l’iris ou les empreintes digitales).

Là on est censé avoir fait des progrès énormes mais on reste sur de l’authentification vocale pour protéger l’accès à un dépôt d’armes… Ça laisse songeur.


Carte Magic perso : Troisième main

On continue la série de republications de cartes Magic perso avec une carte orientée humour qui aurait plutôt sa place dans une extension type Unglued. Elle aussi était une participation à un jeu FC mais je n'ai pas retrouvé le thème.

Troisième main
Troisième main

Bon, j'avoue c'est loin d'être ma plus réussie mais bon, je la poste quand même parce que bon, l'idée de base me plait bien :p

Réalisation

Comme d'hab : GIMP + le xcf de NorthNikko (un peu retouché par moi à force). L'illustration n'est pas idéale mais après une heure de recherches infructueuses, j'ai fini par me rabattre l'illustration OOOK par Berilia. Enfin, la texture : il s'agit de pramos03 par Lwsypher.

Rien de transcendant dans la réalisation mais à force de chercher désespérément une illustration qui convienne, j'avais plus le courage de faire un truc recherché pour le reste :tired: J'envisageais de lui coller des cartes dans une main et le pied visible mais j'ai pas eu le courage... peut-être un jour je prendrai le temps de le faire, un jour où je me sentirai plus motivé qu'hier ^^

Idée

L'idée m'est venue comme ça qu'on pouvait faire un truc marrant avec les pieds :D On a donc là une carte fun qui, si l'on est agile de ses pieds permet de piocher 7 nouvelles cartes ne comptant pas dans la limite de cartes en main (normal, elles ne sont pas dans la main mais dans le pied :smile:).

Après pour habiller un peu le tout, je l'ai tournée en références aux singes, dont les pieds sont habiles que les nôtres et qui renforçaient l'ambiance fun de la carte :p C'est pour ça que j'ai collé une touche de vert en plus du bleu, même si la capacité n'y fait pas des masses référence.

Pour le texte d'ambiance, en bon fan l'œuvre de de Terry Pratchett, j'ai hésité un moment à mettre juste "Ook !" mais bon finalement j'ai fait un peu plus long ^^

Bon après y a un gros point noir à ma carte (comme à certaines autres participations d'ailleurs) : le pied n'est pas à proprement parler un permanent, du coup c'est pas complètement dans le thème, mais bon j'avais pas d'autre idée... :-/

Voilà voilà :o


Moteur de recherche dans un site Jekyll

La problématique

Dernier des gros points noirs relevés lors de ma bascule sur Jekyll : l’absence de moteur de recherche.

Forcément quand le site est statique, c’est plus compliqué de mettre en place un moteur de recherche. Il y a plusieurs approches possibles :

  • faire une partie dynamique côté serveur pour la recherche : bof, le but c’est d’avoir maintenance côté serveur, donc non
  • faire appel à une API tierce qui ferait l’indexation puis la recherche : bof aussi, ça permet certes de rester statique côté serveur mais délocaliser la chose n’est pas mieux (en plus ça veut dire maintenance sur l’utilisation de l’API) donc non
  • déléguer complètement à un moteur externe type Google Search : ça existe sur certains sites (quoique ça fait un moment que je l’ai plus vu) sous la forme d’un formulaire de recherche redirigeant sur Google avec une recherche de type site:monsite.com ...… c’est mieux côté maintenance mais pire côté délocalisation puisqu’on quitte carrément le site, donc non

Reste la dernière : faire la recherche directement dans le navigateur en JS à partir d’un index fourni, solution finalement retenue.

Bon, c’est loin d’être parfait comme concept : ça ne passe évidemment pas à l’échelle notamment mais ce site reste un blog perso donc la volumétrie de devrait pas exploser…

L’index fait environ 500ko avec mes 156 articles actuels (représentant un peu plus de 10 ans) donc ça reste jouable, même si j’ai augmenté mon rythme ces derniers temps (notamment à cause des republications). Dans tous les cas on reste loin des pages d’accueil avec des gros carrousels d’images à 2Mo chacune qu’on trouve sur certains sites (notamment e-commerce) et ce n’est de toutes façons chargé que sur la page de recherche.

Donc c’est réaliste dans mon cas et vous pouvez le tester via le champ de recherche dans la colonne de droite.

Solution existante et adaptations

Je suis parti de cet article proposant une solution basée sur la bibliothèque Lunr mais comme souvent c’était loin d’être satisfaisant de base :

  • forcément c’est en anglais, donc fallait au moins traduire
  • ça ne permet pas de placer le champ de recherche sur toutes les pages (à moins d’inclure le code de recherche sur toutes les pages aussi, ce qui est exclus)
  • visuellement le rendu ne me convenait pas du tout
  • toutes les pages sont indexées, y compris les pages de catégories par exemple qui ne sont que des regroupements d’articles

Du coup j’ai réorganisé les choses différemment en :

  • séparant l’index dans un fichier JS à part
  • modifiant le formulaire pour qu’il fasse un simple GET vers une page dédiée au résultat de recherche
  • modifiant le JS pour que le terme à rechercher soit cherché dans l’URL
  • ajoutant dans l’en-tête des pages devant être indexées un paramètre searchable: true

La section suivante détaille la marche à suivre pour intégrer tout ça sur votre site.

Mise en œuvre

La bibliothèque Lunr

À récupérer ici et à ajouter dans le dossier assets/js.

Le code JS utilisant Lunr

Dans un fichier assets/js/search.js :

(function (window) {
	window.onload = function () {
		var idx = lunr(function () {
			this.ref('id');
			this.field('title');
			this.field('body');

			window.searchIndex.forEach(function (doc) {
				this.add(doc)
			}, this)
		});

		var resultsElement = document.getElementById('search-results');
		var HTML = '';
		var term = getQueryString('q');
		if (term) {
			document.getElementById('search-field').value = term;
			var results = idx.search(term);
			if (results.length > 0) {
				var plural = results.length > 1;
				HTML += '<p>' + results.length + ' résultat' + (plural ? 's' : '') + ' trouvé' + (plural ? 's' : '') + ' pour la recherche « ' + term + ' » :</p> <ul>';
				for (var i = 0; i < results.length; i++) {
					var result = window.searchIndex[results[i]['ref']];
					var url = result['url'];
					var title = result['title'];
					var date = result['date'];
					var body = result['body'].substring(0,160) + '...';
					var type = result.type === 'post' ? 'Article' : 'Page';

					HTML += '<li class="search-result"><p class="metadata"><a href="' + url + '" class="title">' + title + '</a>';
					HTML += ' <span class="type">' + type + '</span>';
					if (date) {
						HTML += ' <span class="date">publié le ' + date + '</span>';
					}
					HTML += '</p><p class="summary">' + body + '</p></li>';
				}
				HTML += '</ul>';
			}
			else {
				HTML += '<p>Aucun résultat trouvé poru la recherche « ' + term + ' ».</p>';
			}
		}
		else {
			HTML += '<p>Aucun terme à rechercher.</p>';
		}
		resultsElement.innerHTML = HTML;
	};

	/**
	 * Get the value of a query string.
	 * @param {string} field The field to get the value of
	 * @param {string=} url The URL to get the value from (optional)
	 * @return {string} The field value
	 */
	var getQueryString = function (field, url) {
		var href = url ? url : window.location.href;
		var reg = new RegExp( '[?&]' + field + '=([^&#]*)', 'i' );
		var string = reg.exec(href);
		return string ? string[1] : null;
	};
})(window);

Je n’ai pas cherché à extraire le rendu HTML du résultat de recherche, donc il faudra directement modifier ce fichier pour l’arranger.

Le fichier d’index : search-index.js

Dans un fichier search-index.html à la racine du projet :

---
layout: null
permalink: search-index.js
---

(function (window) {
  {%- assign counter = 0 %}
  window.searchIndex = [{% for page in site.pages %}{% if page.searchable %}{
    "id": {{ counter }},
    "url": "{{ site.url }}{{ page.url }}",
    "type": "page",
    "title": "{{ page.title | replace: '"', ' ' }}",
    "body": "{{ page.content | markdownify | replace: '.', '. ' | replace: '</h2>', ': ' | replace: '</h3>', ': ' | replace: '</h4>', ': ' | replace: '</p>', ' ' | strip_html | strip_newlines | replace: '  ', ' ' | replace: '"', ' ' }}"{% assign counter = counter | plus: 1 %}
  }, {% endif %}{% endfor %}{% for page in site.posts %}{
    "id": {{ counter }},
    "url": "{{ site.url }}{{ page.url }}",
    "type": "post",
    "date": "{{ page.date | date: '%d/%m/%Y à %R' }}",
    "title": "{{ page.title | replace: '"', ' ' }}",
    "body": "{{ page.content | markdownify | replace: '.', '. ' | replace: '</h2>', ': ' | replace: '</h3>', ': ' | replace: '</h4>', ': ' | replace: '</p>', ' ' | strip_html | strip_newlines | replace: '  ', ' ' | replace: '"', ' ' }}"{% assign counter = counter | plus: 1 %}
  }{% if forloop.last %}{% else %}, {% endif %}{% endfor %}];
})(window);

Il est possible de modifier ce fichier si vous voulez ajouter des informations à l’index (par exemple des données complémentaires pour l’affichage des résultats).

La page de résultat de recherche

Dans un fichier search.md à la racine du projet :

---
layout: page
title: Recherche
---

<script src="/assets/js/lunr.js?v={{ site.time | date: '%s' }}" type="application/javascript" async="async"></script>
<script src="/assets/js/search.js?v={{ site.time | date: '%s' }}" type="application/javascript" async="async"></script>
<script src="/search-index.js?v={{ site.time | date: '%s' }}" type="application/javascript" async="async"></script>

<div id="search-results">Recherche en cours...</div>

L’entrée layout est à adapter en fonction de ce que vous avez défini sur votre site.

Le formulaire de recherche

Il reste à intégrer le formulaire de recherche là où vous souhaitez de voir apparaitre :

<form action="/search.html" method="get" class="search-form">
  <p>
    <input id="search-field" type="text" name="q" maxlength="255" value="" />
    <button type="submit" title="Lancer la recherche"><img src="/assets/img/search.svg" alt="Lancer la recherche" /></button>
  </p>
</form>

Pages indexables

En l’état, seuls les articles seront indexés. Il reste donc à ajouter searchable: true dans l’en-tête de chaque page que vous souhaitez indexer.


Cartes Magic perso : Cycle Demwen

On continue la série de republications de cartes Magic perso avec cette fois un cycle de 5 cartes réalisées à l'époque dans le cadre d'un jeu FC sur l'Assemblée de Funomanciens (je n'ai plus retrouvé le sujet exact du défi mais il fallait qu'on propose un extrait d'histoire qui justifie la ou les cartes), avec leur commentaire d'origine. L'ensemble a été finalisé à l'époque de façon un peu précipitée sans que je le retravaille ensuite, contrairement à d'autres cartes, ce qui explique certains passages du commentaire. De même l'histoire mériterait sans doute d'être un peu retravaillée.

Demwen, fillette captive Demwen, enfant sauvage Demwen, adolescente ardente Demwen, femme cruelle Demwen, esprit apaisé
Demwen, fillette captive (HD) / Demwen, enfant sauvage (HD) / Demwen, adolescente ardente (HD) / Demwen, femme cruelle (HD) / Demwen, esprit apaisé (HD)

En cherchant des illustrations, l'idée m'est venue de faire un cycle reprenant les étapes de la vie d'un personnage (chose qui n'existe pas encore à ce jour dans les cartes officielles il me semble). Les deux première illustrations collaient plutôt bien à l'idée et trainaient dans ma sélection sur deviantART depuis un bout de temps, c'était donc l'occasion de les exploiter ^^

On a donc l'histoire d'un ange, Demwen. Comme souvent quand je manque d'inspiration pour un nom, j'ai pioché dans le vocabulaire elfique élaboré par Tolkien (le Sindarin en l’occurrence). On a donc dem qui signifie triste et le suffixe -wen signifiant fille, vierge, jeune fille d'après le dictionnaire proposé par le site Ambar Eldaron. Vous l'aurez compris, notre amie Demwen va bien entendu jouir d'une vie heureuse et dans la joie et l'allégresse.

Ou pas.

Durant les premières années de sa vie, Demwen fut prisonnière, enchaînée, ses ailes entravées. N'apercevant le jour qu'à travers les barreaux de sa cellules, elle rêvait du jour où, enfin libérée, elle parcourrait les cieux. Priant Serra, la divinité angélique d'un lointain passé dont les légendes louaient la bonté et la perfection, elle savourait chaque nouvelle aube comme un nouvel espoir. Mais chaque jour avait également son crépuscule et les années passèrent, lui semblant une éternité.

Puis le jour vint ou ses prières furent exhaussées. Dans le fracas des combats d'une guerre dont elle ne savait rien, les chaines qui l'emprisonnaient furent brisées et le mur de sa triste geôle s'effondra. Terrifiée par les combats, Demwen prit la fuite, se réfugiant dans la forêt. Perdue dans ce monde étranger, ses ailes atrophiées par la captivité ne pouvant la porter bien longtemps, la jeune évadée resta dans cette forêt sombre et hostile.

Elle regorgeait de prédateurs mais la fillette apprit à éviter leur pièges et à lutter pour survivre. Le temps passa et l'ancienne captive, devenue enfant sauvage, grandit. Devenant plus forte, de gibier elle devint prédateur. Ses ailes s'étaient renforcées et étaient devenues un atout, même dans cette forêt emplie d'obstacles.

Puis revint à nouveau la guerre. La forêt fut dévorée par les flammes mais l'adolescente survécut une fois de plus, apprivoisant le feu, s'en faisant une nouvelle arme. Mais il ne restait rien de ce qui était devenue sa maison et Demwen prit son envol parcourant Ulgrotha, recherchant un nouveau lieu où vivre.

Elle finit par échouer dans la sombre baronnie de la famille Sengir. Où elle défit le bras droit du maitre des lieux en combat singulier qui périt brûlé vif. Le Baron, impressionné par ses aptitudes la prit sous son aile et elle intégra les troupes sengiennes, en lieu et place du lieutenant déchu. Les années passèrent ainsi et la jeune femme qu'elle était devenue sombrait toujours plus dans la noirceur et la cruauté.

Jusqu'au jour où, au gré des combats, elle se retrouva face à face à l'une de ses sœurs de race. L'ange était pure autan que Demwen était souillée et leur duel fut violent et sanglant. Les deux championnes périrent, entrainant avec elles une grande partie de leurs alliés.

Mais si son corps fut détruit, l'esprit de l'ancienne captive survécut. Absorbant les restes de l'âme déchirée de son adversaire, elle put se défaire de la souillure qui envahissait la sienne, retrouvant la pureté angélique que sa dure existence lui avait enlevée. Sous son influence protectrice, l'ancien champ de bataille devint un havre, un refuge pour les voyageurs égarés.

Jusqu'au jour où un arpenteur échoua en Ulgrotha. Comme c'est trop souvent le cas avec ces magiciens voyageurs des plans, il était avide de nouveau pouvoir et, à l'aide d'un puissant sortilège, il s'appropria les pouvoirs de Demwen. Mais cette nouvelle puissance qu'il venait d'acquérir était liée elle. Si son âme s'éteignait, elle s'éteindrait avec elle. Il lui fallait un corps pour lui permettre de se régénérer. La privant de ses souvenirs, il la plaça dans le corps d'une enfant, l'enchaîna et l'enferma dans une prison où elle vivrait captive mais protégée.

Donc voilà voilà, que du bonheur, comme on dit sur TF1.

On a donc les cinq étapes de l'existence de Demwen, avec à chaque fois une capacité permettant de passer à l'étape suivante (en sacrifiant l'actuelle et en cherchant la suivante dans sa bibliothèque), conditionnée par un critère en restreignant l'usage. Chaque version est un ange et a donc le vol, comme tous les anges de Magic me semble-t-il. Elle a également une deuxième capacité à mot-clé correspondant à cette étape, ainsi qu'une capacité déclenchée lorsqu'elle meurt, liée à la condition de déclenchement du changement d'étape précédent.

Les cinq étapes sont les suivantes :

  • la fillette captive ne peut logiquement pas attaquer, d'où le défenseur. La carte piochée représente les possibilités offertes par la liberté quelle acquiert et la condition de passage (une créature de force 3 ou plus) symbolise la créature qui, dans le feu de l'action et sans le faire exprès, l'a libérée de la sa prison
  • l'enfant sauvage non seulement peut attaquer mais a le contact mortel : la proie des bêtes sauvages est devenue chasseresse. Le boostage fourni en quittant le champ de bataille représente le regain d'énergie gagné en apprivoisant le feu et la condition de passage représente l'attaque de la forêt qui a déclenché le changement
  • l'adolescente ardente a est une voyageuse rapide et féroce, d'où la célérité. Les trois blessures infligées en quittant le champ de bataille rappellent le lieutenant du Baron, brûlé vif et la condition de passage à l'étape suivante représente la mort du lieutenant et de deux autre soldats qui étaient au mauvais endroit au mauvais moment (bon OK, me rattrape aux branches basses mais il est déjà presque 22h30 et j'ai la flemme de reprendre ma storyline pour introduire cet élément oublié :p)
  • la femme cruelle est donc la nouvelle championne du Baron. Intégrant l'armée d'un comte vampire, c'est fort logiquement qu'elle acquiert donc la soif de sang. La destruction de trois créature ciblées (notons qu'il n'y a pas le choix : si l'adversaire n'a pas de créatures à tuer, il faut tuer les siennes) représente les dégât occasionnés par le duel, tandis que la condition d'activation fait écho à l’absorption de l'âme de son adversaire (oui bon, d'accord, j'ai brodé les détails de ma storyline bien après avoir finalisé les cartes, donc y a deux-trois petits problèmes de chronologie :oops:)
  • enfin l'esprit apaisé est puissant et protège le lieu de la bataille qui lui a coûté la vie et ce lieu la renforce et la protège en retour, d'où la défense talismanique. Les points de vie gagnés représentent le pouvoir acquis par l'arpenteur et les trois cartes en main les trois sortilèges qu'il lance pour lui prendre son pouvoir, lui donner son nouveau corps et priver de ses souvenirs en la scellant dans sa nouvelle prison

Et voilà que la boucle est bouclée.

Comme ce cycle doit être joué ensemble pour exploiter tout son potentiel, j'avais le choix entre utiliser peu de mana coloré et cette autre solution que j'ai retenue de donner le choix entre du mana coloré et le double de mana générique, ce qui me semblait un bon compromis : on peut garder des coûts raisonnables en coloré et laisser un peu de souplesse en autorisant un paiement dans une autre couleur (moyennant une rallonge budgétaire).

Reste à parler un peu de la réalisation :

  • comme toujours, la carte est réalisée sous GIMP avec le XCF de Sovelis et NorthNikko, rien de nouveau sous le soleil.
  • la texture est réalisée sous Photoshop Elements et se base sur celle-ci, complétée de plumes... qu'on ne voit plus du tout sur le résultat final. Pas plus qu'on ne voit que les textures des 5 cartes n'en forment qu'une seule... mais bon, tant pis :o
  • les illustrations des 5 cartes sont respectivement les suivantes :

Quelques trucs sur Jekyll #2

Lisibilité des erreurs

Par défaut, le serveur de développement de Jekyll remonte des erreurs assez sommaires en ne précisant que le template concerné. C’est inutilisable quand on débugue un template (même si un numéro de ligne ne serait pas du luxe) mais quand l’erreur vient d’un plugin c’est plutôt limité.

Pour un affichage un peu plus détaillé avec une trace d’exécution permettant de déterminer quelle ligne de quel plugin est en cause, il faut utiliser l’option --trace ou -t.

bundle exec jekyll serve --drafts -t

Fichiers sitemap.xml et robots.txt

Il existe un plugin pour générer le fichier sitemap.xml, par contre je n’ai rien trouvé pour gérer son intégration au fichier robots.txt. On peut certes faire un fichier robots.txt à la main mais le lien est censé être absolu, donc ce n’est pas super propre de le mettre en dur.

Finalement je m’en suis sorti en ajoutant un fichier robots.html avec le contenu suivant :

---
layout: null
permalink: robots.txt
---

Sitemap: {{ site.url }}/sitemap.xml

La directive permalink: robots.txt permet de forcer le bon nom de fichier, layout: null dit que le contenu ne doit pas du tout être habillé et comme on est dans une page normale on a accès aux variables globales, notamment site.url.

Éviter la profusion d’espaces dans les pages

Le moteur de template de Jekyll fonctionne en ajoutant des pseudo-balises dans le code HTML notamment pour indiquer les structures de contrôles, boucles, affectations de variables, etc.

Pour que le code reste lisible on fait des retours à la ligne entre ces différentes balises et on indente. Ceci aboutit à de très nombreuses lignes uniquement peuplées d’espaces (ceux de l’indentation).

Exemple :

<h2>Catégories</h2>
{% assign groupedCategories = site.categories | group_categories %}
{% for group in groupedCategories %}
  <h3>{{ group[0] }}</h3>
  <ul>
    {% assign categories = group[1] | sort_by_keys %}
    {% for category in categories %}
      <li><a href="/categories/{{ category[0]|slugify:'latin' }}/">{{ category[0] }}</a> ({{ category[1].size }})</li>
    {% endfor %}
  </ul>
{% endfor %}

Il est possible d’y remédier en utilisant un caractère - dans les balises. Chaque - suivant une ouverture de balise ({% devient {%-) indique que les espaces précédents doivent être ignorés et sur les fermetures ( (%} devient -%})) que les espaces suivants doivent être ignorés.

L’exemple précédent devient alors :

<h2>Catégories</h2>
{%- assign groupedCategories = site.categories | group_categories -%}
{% for group in groupedCategories %}
  <h3>{{ group[0] }}</h3>
  <ul>
    {%- assign categories = group[1] | sort_by_keys -%}
    {% for category in categories %}
      <li><a href="/categories/{{ category[0]|slugify:'latin' }}/">{{ category[0] }}</a> ({{ category[1].size }})</li>
    {%- endfor %}
  </ul>
{% endfor %}

C’est la même syntaxe que l’on retrouve dans d’autres moteurs de templates comme Twig pour PHP (la plupart des syntaxes sont assez proches en fait entre ces deux moteurs).

Remarque : cette syntaxe semble ne pas bien fonctionner avec le tag endraw, en effet j’ai des erreurs dès que je place un tiret un en début de ce tag (alors qu’à la fin et sur le tag raw ça marche)…


Carte Magic perso : PIOU PIOU PIOU

On continue la série de republications de cartes Magic perso avec une plutôt orientée humour débile.

NB : Comme d'habitude, ne comptez pas sur moi pour utiliser le terme anglais "planeswalker". Le seul intérêt de cette anglicisation d'un terme existant est purement marketing, or le marketing ne nous concerne pas ici.

PIOU PIOU PIOU
PIOU PIOU PIOU

Une autre carte que j'ai pour l'essentiel réalisée à la même période que Engeance des poulaillers et qui est inspirée de la même chanson : Le Laridé du Poulet.

La chanson s'inspire de l'un des épisodes de la saison 1 du Donjon de Naheulbeuk où les aventuriers croisent un poulet au détour d'un couloir et débattent pendant cinq minute pour décider de s'il ne s'agit bien que d'un poulet ou bien d'un horrible changeforme sanguinaire.

L'idée est d'avoir un gallinacé arpenteur qui n'ait l'air de rien au début (donc pas cher) mais qui soit radical au final : un ou plusieurs jours perdent la partie directement. Tout ça en conservant la forte de dose de hasard inhérente au poulet qu'on ne peut pas différencier de prime abord du monstre camouflé.

De là on a l'ultime à Symbole : loyauté -6 qui fait jeter un dé à chaque joueur et élimine tous ceux ayant obtenu le score le plus petit.

Comme c'est un arpenteur il fallait une capacité permettant de gagner des marqueur loyauté, j'ai donc pris une version allégée de l'ultime qui ne fait que deux blessures : on titille le monstre qui balance des petits coups puis au bout d'un moment il perd patience et *PAF* l'ultime :smile:

Pour le nom, j'ai repris le "PIOU PIOU PIOU" de la chanson, sans chercher beaucoup plus loin : la carte ayant une vocation humoristique (sans être totalement délirante non plus), ça me semblait approprié ^^

Initialement j'en avais fait une carte noire pure (notamment parce que j'étais parti de cette illustration mais comme son auteur dit explicitement qu'on n'est pas censés la réutiliser, j'en ai pris une autre au dernier moment) mais comme on me l'a fait remarquer lorsque je l'ai postée sur le forum à l'époque, on a du hasard et des blessures, ça fait très rouge à la base. Et au final, ça cadre bien mieux avec la nouvelle illustration.

Crédits :

J'ai également repris les commentaires de l'époque. Je vais aussi les reprendre progressivement sur les autres cartes déjà publiées.


Quelques trucs sur UNIX/Linux #5

Générer un mot de passe aléatoire

Pour générer une chaîne aléatoire, pouvant par exemple servir de mot de passe, dans un terminal entrer la ligne suivante :

< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c 10; echo ""

Il est possible de modifier les caractères autorisés via l’option -dc de urandom et le nombre de caractères via l’option -c de head.

Le echo "" sert juste à forcer un retour à la ligne.

Correction d’une commande

Dans le terminal, il est possible de la ré-exécuter la dernière commande en remplaçant la première occurrence d’une chaîne par une autre.

Exemple :

# Affiche 'toto'
echo 'toto'
# Affiche 'tato'
^to^ta^

Ceci peut être utile pour corriger une faute de frappe. Attention, seule la première occurrence est remplacée et la nouvelle commande est exécutée dans la foulée sans demande de confirmation.

Revenir en arrière dans les répertoires

La commande cd permet de revenir au précédent répertoire où l’on était via cd -.

Attention, cela fait bien retourner au dernier dossier où l’on était et pas remonter d’un cran dans l’arborescence (qui se fait via cd ..).


Carte Magic perso : Usine fouaillevapeur

On continue la série de republications de cartes Magic perso avec une autre carte réalisée initialement pour un défi à thème imposé.

Usine fouaillevapeur
Usine fouaillevapeur

Le thème était donc de faire un gréeur et donc, pour que ça ait un intérêt, d'imaginer la mécanique consistant à "assembler un appareil". Partant de là plusieurs possibilités me sont venues.

La première était d'avoir des cartes "matériaux" ou pièces "détachées" avec eux-même des capacités qui ne prennent effet que s'ils sont assemblés en un seul et même appareil. Le gréeur étant capable de réaliser cet assemblage. C'est intéressant comme concept d'un certain côté mais ça nécessite de faire un grand nombre de cartes pour être viable. Donc ce n'était pas très adapté dans le contexte d'un je de ce genre.

Je me suis donc tourné vers une autre solution qui convient mieux parce qu'elle tient en une carte et qui consiste à introduire une capacité "assemblage" qui fonctionne comme suit :

  • Assemblage est une capacité activée.
  • « Assemblage [nombre] : [description d’un appareil] » signifie : « Engagez une créature gréeuse dégagée que vous contrôlez et retirez [nombre] marqueurs « pièce détachée » de ce permanent : mettez sur le champ de bataille un jeton [description d’un appareil], ce jeton est un appareil en plus de ses autres sous-types. N'activez cette capacité qu'à tout moment où vous pourriez lancer un rituel. »
  • On dit alors que le gréeur engagé « assemble » appareil décrit après les deux points. L’appareil, quand à lui est « assemblé » par le gréeur.
  • Une capacité « Assemblage » ne peut être activée que si le permanent a au moins le nombre requis de marqueurs « pièce détachée ».

De cette manière on fait intervenir le gréeur pour assembler des appareils à partir de marqueurs « pièce détachée » présents sur des permanents. D'une certaine manière on a une alternative au mana pour mettre en jeu des permanents. En plus, je suis comme MaRo (Cf l'article State of Design 2011) : j'aime bien les jetons, donc c'est tout bon !

Partant de ça j'avais fait une carte pas forcément ultra-originale en elle-même qui se contentait de recevoir un marqueur « pièce détachée » au début de l'entretien et permettait d'assembler une créature artefact gréeur. Bon c'était un peu limité et je ne trouvais pas de texte d'ambiance pour l'agrémenter et compléter la capacité. C'est alors que j'ai lu la remarque de Scyth disant qu'il fallait faire un gréeur et pas juste mettre en scène l'assemblage. Le hic c'est que moi ma carte c'était un terrain-artefact, pas une créature gréeuse...

Certes ma carte produisait des jetons gréeur mais bon, elle n'en était pas un elle-même. Du coup je me suis inspiré de l'Usine de Mishra, ce qui me semblait tout indiqué puisque ma carte se nommait "Usine fouaillevapeur" (nom évidemment inspiré du Patron fouaillevapeur). L'Usine de Mishra comporte trois capacités :

  • une qui lui permet de produire du mana (assez logique sur un terrain)
  • une qui lui permet de se transformer en créature de type "Ouvrier spécialisé"
  • une troisième qui interagit avec les créatures du type "Ouvrier spécialisé"

J'ai donc repris ce schéma :

  • la première capacité permet d'engager l'Usine fouaillevapeur pour lui ajouter un marqueur « pièce détachée » : ça semble cohérent puisque ces marqueurs sont l'ingrédient qui permet de payer le coût d'un assemblage
  • la seconde permet de transformer jusqu'à la fin du tour l'Usine fouaillevapeur en créature-artefact gréeur
  • la troisième est une capacité qui interagit avec les gréeurs : l'assemblage

L'avantage c'est que ça en fait une carte qui se suffit à elle-même du point de vue de l'assemblage : elle peut se mettre des marqueurs « pièce détachée » puis quand elle en a assez, si on n'a pas de gréeur on la transforme elle même pour activer l'assemblage. D'un côté c'est plus fort que l'Usine de Mishra puisque ça produit des jetons plutôt que de juste renforcer un Ouvrier spécialisé ce qui semble un peu plus fort. Mais d'un autre elle ne produit pas de mana, donc il faudra forcément avoir une autre carte pour produire le mana nécessaire à sa transformation en gréeur (de toutes façons l'assemblage nécessite de s'engager). De plus, comme elle ne produit pas de mana, elle risque de ralentir le jeu si on n'est pas basé sur les gréeurs. Du coup je la vois dans l'absolu un peu moins forte que son modèle mais potentiellement très efficace dans un deck basé sur les gréeurs puisqu'elle permet d'en produire pas mal, qui seront facilement boostés par le Patron fouaillevapeur (que je croyais être le seul gréeur officiel existant à l'heure actuelle. Je le croyais à tort puisque je viens de voir que le Bateleur moriok avait aussi reçu ce type, même s'il n'a pas de capacité en rapport avec l'assemblage d'appareils).

Reste à donner les crédits :

  • comme d'habitude, réalisation sous GIMP, sur la base du XCF de Sovelis
  • concernant l'illustration, il s'agit de factory par Ling Yun
  • enfin, la texture et le symbole de faction sont réalisés à la main à l'aide des brosses suivantes : 15 GIMP Steampunk Gear Brushes (par Artemis-Stock) et Steampunk Brush Set (par el-L-eN)

Et voici une seconde carte exploitant les mêmes mécaniques, notamment pour exploiter une seconde illustration trouvée lors de mes recherches pour la première. Le commentaire est très sommaire parce que cette carte n'est qu'un prolongement de la précédente, donc l'essentiel a déjà été dit.

Décharge fouaillevapeur
Décharge fouaillevapeur

L'idée étant là que les pièces de récupération puisées dans la décharge donnent naissance à des assemblages plus terrifiants (d'où le type épouvantail) mais aussi plus fragiles (d'où une endurance bien plus faible que la force).

Crédits :


Quelques trucs sur UNIX/Linux #4

Crontab et 49-3

Crontab : changer l’adresse e-mail de destination

Il est possible de spécifier l’utilisateur destinataire des mails de la crontab en définissant la variable MAILTO en début de fichier.

Remplacement de l’adresse par défaut :

MAILTO=webmaster@mon-site.fake

Désactivation de l’envoi de mail :

MAILTO=""

(source)

Crontab : redirection de la sortie dans un fichier

Par défaut cron envoie par mail l’ensemble des sorties (standard et erreur) des tâches exécutées. Il peut être intéressant d’écrire tout ça dans des fichiers de logs à la place.

Pour ce faire il suffit d’utiliser les mécanismes de redirections de sorties habituellement disponibles dans les terminaux en terminant la ligne par > /path/to/log/file 2>&1. La première partie (> /path/to/log/file) déclenche la redirection de la sortie standard, la seconde partie (2>&1) effectue la redirection de la sortie d’erreur dans la sortie standard.

Exemples :

# Redirection de la sortie standard dans le fichier /path/cron.log et envoi par e-mail de la sortie d'erreur
* * * * * /path/to/script > /path/cron.log

# Redirection des sorties standard et erreur dans le fichier /path/cron.log
* * * * * /path/to/script > /path/cron.log 2>&1

(source)

Rejouer la dernière commande en ajoutant sudo

Il m’arrive de temps en temps de lancer une commande nécessitant les droits root en oubliant de la précéder par sudo. Il est possible de rappeler la dernière commande l’historique mais la syntaxe est un poil longue et compliquée.

La solution que j’ai retenue est donc d’ajouter un alias dans mon fichier .bash_aliases :

# 49.3
alias 49.3='sudo "$BASH" -c "$(history -p !!)"'

Le nom 49.3 est court et facile à retenir puisqu’il fait directement référence à l’article 49 alinéa 3 de la constitution française dont le principe est somme toute assez proche ^^


Carte Magic perso : Zilad l’Endormi / Zilad l’Éveillé

On continue la série de republications de cartes perso avec une autre carte accompagnée du commentaire que j'avais posté dans le forum de l'Assemblée des Funomanciens à l'époque.

Zilad l’Endormi / Zilad l’Éveillé
Zilad l’Endormi (face A) / Zilad l’Éveillé (face B)

Une autre carte réalisée pour un FCC sur le site de la SMF (je n'ai plus retrouvé de lien qui fonctionne). Cette fois le sujet proposé par Elian Shaâr était :

Je vous propose donc pour cette Xème édition du FCC, où X est le nombre de FCC mis en place depuis que le Dark Mogwaï (Grâce Lui soit rendue) a envoyé Ses disciples porter Sa parole à travers le vaste Multivers, un proverbe de Platon, ma foi assez tordu mais qui m'a fait sourire à la première lecture :

Tout corps couché prend la ligne de l'horizon de l'âme. L'endormi devient le réveillé de l'ombre.

— Platon

Vous êtes libre de choisir l'une des deux phrases, voire les deux si vous le souhaitez ^^

Sachant que je voulais vous proposer à la base une image sur les songes, je ne suis pas loin du sujet escompté :twisted:

La première partie de la citation étant un peu trop nébuleuse à mon goût, je me suis concentré sur la seconde qui met en opposition l'endormi et l'éveillé (je préfère "éveillé" à "réveillé" dans ce contexte, ça sonne mieux, c'est pour ça que je l'ai modifié pour le texte d'ambiance). Du coup ça m'a fait penser à une carte double-face.

N'ayant pas encore de base GIMP pour les cartes double-face, je me suis tourné vers une carte Vanguard dont j'ai fait un design perso dérivé de celui des arpenteurs. J'ai juste intégré les symboles jour et nuit en plus pour l'aspect recto/verso.

Pour ceux qui ne connaissent pas cette variante, une petite description rapide : elle est sortie avec le bloc Tempête qui proposait des cartes de grande taille (comme Planechase ou Archennemy) représentant le personnage incarné par le joueur. Les cartes de personnage sont posées en jeu en début de partie et n'ont donc pas de coût de lancement. Ce ne sont pas des permanents et leur couleur est purement indicative, ceci n'influant pas sur le jeu (dans les cartes originelles il y avait simplement une petite pastille de couleur en bas de la carte). Comme toute les cartes, un personnage a des capacités mais ce qu'elle a de plus ce sont deux valeurs présentes en bas à gauche et à droite qui représentent respectivement le modificateur de main (qui change la main initiale et la taille de main maximale) et le modificateur de points de vie.

L'idée est donc d'avoir pour personnage un vampire qui comme la plupart de ses congénères dort le jour et s'éveille la nuit. On considère là que le jour représente le tour des adversaires et la nuit notre tour, ainsi les conditions de transformation sont tout naturellement l'éveil au début de l'entretien et l'endormissement au début de l'étape de fin.

Un vampire endormi ne peut pas faire grand chose. Comme un humain endormi, somme toute. J'ai donc choisi d'empêcher de jouer des sorts ou des capacités activées. En contrepartie on a une capacité de nuit qui fait que quand une créature d'un adversaire meurt, on récupère un jeton vampire.

A priori, le fait de ne pas pouvoir jouer de sorts ni de capacités durant le tour des adversaires, étant tout de même un handicap assez lourd, j'ai mis un +1 en cartes et un +5 en vie. Ça me semble du coup pas trop fumé à première vue, ni excessivement faible.

Enfin, les crédits :

  • la carte est réalisée sous GIMP à partir de ma base de personnage dérivée du xcf d'arpenteur réalisé par Sovelis et NorthNikko
  • l'illustration de la face A s'intitule The Tomb, par Rado Javo
  • celle de la face B s'intitule simplement vampire, par Vuk Kostic (pas retrouvé de lien fonctionnel)
  • le symbole d'extension vient de la police Fiolex Mephisto Dingbats que j'avais déjà utilisé sur un autre personnage : Tyrael, Archange de la Justice, tiré de l'univers de Diablo

Du coup j'en ai profité pour ré-uploader le fichier de mon design de personnage Vanguard dérivé de celui des arpenteurs, des fois que ça intéresse quelqu'un (même si je ne peux plus trop garantir le niveau de finition...) :


Plugin de groupement des catégories pour Jekyll

Voici mon second plugin pour Jekyll, toujours lié à mon menu de catégories.

Contexte

En plus de 10 ans d’existence de ce blog, j’ai beaucoup varié les thématiques de mes articles. Au début j’étais purement en mode bloc-notes sur des astuces techniques pour pouvoir les retrouver facilement. Puis j’ai pas mal parlé de l’iPhone, de mes développements perso, de mes créations “artistiques” (BD, cartes Magic, etc)… à force ça commence à faire beaucoup de catégories et ce n’est plus très lisible dans une liste en vrac.

Du coup j’ai voulu refaire ce que WordPress proposait via les sous-catégories : grouper les catégories par thématiques. Je n’ai pas trouvé de plugin qui le fasse bien. J’en avais testé un qui avait l’air de faire ce que je voulais mais je n’ai pas réussi à le faire marcher… peut-être que j’aurais dû insister mais je ne l’ai plus retrouvé donc j’ai fini par décider d’en développer un moi-même. Après tout le fonctionnel est simple.

Pour le coup effectivement, rien de bien compliqué, un connaisseur de Ruby y aurait sans doute passé moins d’un quart d’heure. Bon perso je n’y connais rien à Ruby, je l’ai découvert en débugant des plugins ces trois derniers mois, donc forcément ça m’a pris un peu plus de temps mais j’ai finalement ce que je voulais ^^

Le plugin

Ce plugin se résume donc à un nouveau filtre Liquid qui prend en entrée les catégories et renvoie en sortie une un tableau à double-entrée avec pour chaque thématique un sous-tableau contenant l’ensemble de ses catégories.

Les thématiques ou « groupes de catégories » sont définis dans le fichier de configuration _config.yml, avec la liste des groupes et pour chacune la liste des catégories qui la composent. Les catégories non-affectées étant regroupées dans un groupe « Default » (une seconde entrée de configuration permettant de définir son libellé).

Le plugin ainsi qu’une documentation plus détaillée sont accessibles ici : jekyll-group-categories-filter

Utilisation sur ce blog

J’ai donc appliqué ça à ce blog en découpant la liste des catégories en 4 thématiques :

  • jeux : vu que ces derniers temps j’ai posté pas mal de trucs sur Magic et Carcassonne ça ne me semble pas superflu d’en faire une thématique à part
  • réalisations perso : mes diverses réalisations perso que ce soit du dev ou des trucs plus « artistiques »
  • informatique : un peu fourre-tout… j’ai hésité à découper plus mais j’ai du mal à délimiter les choses, donc dans l’immédiat on va rester là dessus
  • autres : tout le reste

Dans chaque thématique j’ai gardé le tri alphabétique grâce à mon précédent plugin, ce qui me donne le code suivant dans la sidebar :

<h2>Catégories</h2>
{% assign groupedCategories = site.categories | group_categories %}
{% for group in groupedCategories %}
  <h3>{{ group[0] }}</h3>
  <ul>
    {% assign categories = group[1] | sort_by_keys %}
    {% for category in categories %}
      <li><a href="/categories/{{ category[0]|slugify:'latin' }}/">{{ category[0] }}</a> ({{ category[1].size }})</li>
    {% endfor %}
  </ul>
{% endfor %}

Voilà, n’hésitez pas à me faire un retour, soit ici, soit dans le bug tracker du plugin s’il s’agit d’un bug ou d’une idée d’amélioration ^^


Carte Magic perso : Masque du démon implacable

On continue la série de republications de cartes perso avec une autre carte que j'aime bien principalement pour son rendu graphique. Je la reposte avec le commentaire que j'avais posté dans le forum de l'Assemblée des Funomanciens à l'époque.

Masque du démon implacable
Masque du démon implacable

Il s'agit là d'une carte que j'ai faite il y a très longtemps... avant même de lancer ce site, c'est dire ! Je l'ai un peu remise à jour en corrigeant la formulation et un certain nombre de détails de réalisation (forcément j'ai un peu appris en un près d'un an et demi) mais sans revenir sur son nom ou les concepts. Ce n'est sans doute pas ma plus grande réussite en terme de nom et d’originalité mais j'aime bien son rendu visuel final ^^

L'idée venait directement de l'illustration, comme souvent. J'y voyais un masque démoniaque permettant de prendre la forme d'une créature morte. L'outil parfait pour un assassin, lui permettant de prendre l'apparence de sa première victime pour s'en prendre plus facilement à la suivante.

Du coup de base elle aurait dû être bleue / noire... sauf que ça ne collait pas avec l'illustration, donc j'ai un peu adapté pour maximiser le côté noir et faire en sorte que la copie puisse passer en capacité pure noire. La carte copiée doit donc se trouver dans un cimetière et la copie n'est que temporaire, la magie noire n'ayant pas l'efficacité de la magie bleu en terme de copie au point d'en faire une copie définitive (d'ailleurs on a bien le Piège à némésis qui fait une copie temporaire en étant pure-noire).

Ensuite on a la seconde capacité qui permet d'attaquer à nouveau, représentant le second meurtre dont je parlais plus haut. Là pas de problème c'est bel et bien rouge une attaque supplémentaire. Il s'agit simplement d'une version atténuée de l'Assaut implacable. Qui a d'ailleurs donné la dernière partie du nom (j'étais en panne d'inspiration).

Côté équilibre, la première capacité ne peut copier qu'une fois une créature donnée puisqu'elle est exilée dans l'opération et la seconde ne concerne que la créature équipée, donc on a un ensemble qui ne me semble pas trop puissant. D'un autre côté on peut faire des choses assez efficaces avec une attaque supplémentaire par tour sur une grosse bête ou bien en transformant un petit jeton en gros thon pour peu d'en avoir mis un au cimetière. Du coup ça me semble viable dans l'ensemble.

Restent les crédits :

  • réalisation sous GIMP avec le XCF habituel de Sovelis et NorthNikko
  • concernant l'illustration, il s'agit de Mask of hatred par Patipat Asavasena alias asuka111

Suppression d'applications préinstallées sur Android

J’ai toujours été embêté avec mes appareils Android, en particulier mon ordiphone actuel (un Xiaomi Redmi Note 3) parce que plein d’applications arrivent par défaut et, selon la « norme » communément admise sur les appareils mobiles où on contrôle de moins en moins la machine, pas désinstallables ni même désactivables (en tous cas pas facilement… rooter l’appareil présente des risques notamment).

Puis hier je tombe sur ce pouet :

Je viens de découvrir comment désinstaller une appli système sans être root ! 😍

#AndroiDeMesDeux

adb shell pm uninstall -k --user 0 com.facebook.system

— Pourrito 🐧 (@pourrito@mastodon.xyz) le 11 août 2018 à 20:34

Et là les portes s’ouvrent pour un nettoyage des saloperies de Google et du fabricant, notamment celles qui tournent en tâche de fond pour rien en cramant la batterie et en bazardant des données on ne sait où.

Mise en place de l’environnement.

En gros on passe par les outils de développement pour Android pour lancer des commandes de suppression de certaines applications.

Pour ça il faut commencer par installer adb (Android Debug Bridge), perso j’ai suivi les indications proposées , en passant par la solution “Minimal ADB and Fastboot” vu que je ne compte pas faire de développement Android.

Ensuite on peut brancher l’appareil en USB et aller activer le mode développeur comme indiqué dans la procédure précédente (forcément dans mon cas la surcouche constructeur faisait que c’était pas sur la même ligne qu’il fallait chercher, en fait il fallait multi-cliquer sur “Version MIUI” plutôt que “Numéro de build”) puis activer le débogage USB (bon là comme j’ai fait les choses dans le désordre, j’avais pas de driver et j’ai pas réussi à redéclencher sa recherche… finalement je suis passé par la procédure décrite ici jusqu’à l’étape où il installe le driver puis j’ai annulé l’installation et tout allait bien).

Grand nettoyage

La principale difficulté est d’identifier les applications à désinstaller (et accessoirement s’assurer un minimum qu’on peut bien les désinstaller sans danger).

Commencez par un petit

adb shell pm list packages

pour connaître le nom exact de l'appli à supprimer.

— Pourrito 🐧 (@pourrito@mastodon.xyz) le 11 août 2018 à 20:41

Dans mon cas comme le terminal sous Windows (oui un jour j’installerai un Linux chez moi mais j’ai pas encore eu le courage) est tout pourri, j’ai préféré envoyer la liste dans un fichier :

adb shell pm list packages > tmp.txt

Puis j’ai foutu tout ça dans un tableur histoire de trier alphabétiquement et pouvoir prendre des notes sur ce que je désinstalle et à quoi ça correspond (ça peut être bien si par la suite on a des problèmes et qu’on veut retrouver ce qu’on a fait).

Bon partant de là reste un point assez chiant : identifier le nom interne des applications dans la liste. Des fois c’est assez ressemblant au nom “publique”, d’autres fois non. Il se trouve qu’il y a longtemps j’avais installé Disable Manager, une application censée permettre justement de désactiver des applications système… mais qui s’est avérée nécessiter des droits root. Il se trouve qu’elle a un intérêt : elle liste toutes les applications en indiquant à la fois le nom technique interne et le nom publique visible, du coup ça permet d’avoir la correspondance.

À ce stade j’ai pu virer les conneries telles que Gmail, Google Photo ou encore l’appli de météo fournie par le constructeur.

adb shell pm uninstall --user 0 com.google.android.gm
adb shell pm uninstall --user 0 com.google.android.apps.photos
adb shell pm uninstall --user 0 com.miui.weather2
...

Après c’est plus compliqué pour les applications un peu plus système, parce qu’on a là dedans des trucs effectivement système, des conneries (genre fonds d’écrans animés) et des trucs nuisibles (genre tracking publicitaires). En fouillant un peu j’ai trouvé plusieurs pages listant des applications non-nécessaires, notamment celle-ci et celle-là (spécifique pour MiUI, la surcouche Xiaomi)… Du coup j’ai viré 2-3 trucs mais avec parcimonie parce que j’ai pas trop envie de flinguer mon appareil, juste d’économiser la batterie et de le rendre un peu moins bavard avec l’extérieure (genre si je pouvais m’éviter d’activer systématiquement le mode économie d’énergie ça m’arrangerait… jusqu’à présent c’était le seul moyen que j’avais trouvé pour empêcher les Gmail et autres de se relancer en tâche de fond).

Voilà, maintenant je croise les doigts en espérant n’avoir rien cassé :smile:


Ajout du 14/08/2018 à 21h35

Je viens de tomber sur un autre article sur le sujet qui fait suite au même pouet avec quelques éléments complémentaires, comme des indications spécifiques à Archlinux (là où moi je suis passé par Windows) ou bien la précision suivante :

Comme il le précise lui-même un peu plus tard, il est à noter que l'argument -k est inutile, car sert exclusivement à conserver les paramètres et données de l'application. Dans un cas de nettoyage avancé, nous pouvons l'omettre pour supprimer complètement les applications visées.

Du coup j’ai enlevé le -k de mon exemple plus haut.


Carte Magic perso : Fode le Stupéfiant

On continue avec une autre carte que j'aime bien, initialement postée pour un jeu FC.

Fode le Stupéfiant
Fode le Stupéfiant

Cette carte a ceci de particulier que j'ai eu l'idée et commencé la carte et qu'avant que je ne la finisse, un FCC a été lancé sur le site de la SMF (je n'ai pas retrouvé le sujet) qui collait plutôt bien avec l'idée. Il me semble que c'est la première fois que ça m'arrive, d'habitude les thèmes me permettent de trouver une idée pour faire une carte.

Le thème proposé par strub était donc :

"victoire et/ou mort subite",
Dans le monde de magic, il y a plusieurs manières de gagner "officiellement", mais de temps à autre il y a des cartes qui nous offrent l'opportunité de gagner (ou de perdre d'ailleurs) d'un seul coup d'une manière totalement parachutée... comme par exemple avec le petit dernier "le maniaque du laboratoire".
C'est donc le thème de cette FCC, une carte (vous avez le droit à tout du rituel à la créature en passant par le planeswalker) sur la base de la "victoire et/ou mort subite".
Vous avez jusqu'au dimanche 04 décembre minuit pour participer...
Bonne chance à tous ! :))

L'idée m'est venue le jour où j'ai trouvé ça dans ma boite aux lettre :

Professeur FODE - Grand Voyant - Médium et Guérisseur qui stupéfie le monde
Professeur FODE - Grand Voyant - Médium et Guérisseur qui stupéfie le monde

Habituellement, c'est le genre de conneries qu'on jette sans même y jeter un œil mais là pou une fois j'ai lu le début. Et quand j'ai lu "Règlement après satisfaction", là ça a fait tilt et j'ai su que j'avais là le thème d'une carte \o/

Alors forcément c'est de là que découle tout le concept de cette carte qu'on joue en quelques sorte à crédit : elle ne coûte pas cher à jouer et dispose de capacités puissantes mais en contrepartie, au moment de gagner la partie, il faut payer la facture, sous peine de perdre à la place.

J'ai pas mal tâtonné pour trouver une formulation qui tienne la route sans nécessiter une police de taille 3 pour rentrer (je suis passé par un emblème notamment mais ça ne marchait pas bien) puis finalement je suis tombé sur Cœur de feu d'obsidienne et là je crois que ça fonctionne relativement bien tout en restant lisible même en petite résolution.

Concernant les trois capacités au choix, elles découlent directement des différentes promesses de la pub : le gain de points de vies vient du "Guérisseur" et du traitement des maladies, le regard découle de "Grand voyant - Médium" et des "Révélations étonnantes" et enfin la réanimation pour le "fait revenir votre femme ou votre mari".

Côté équilibre, on a donc une carte peu chère et plutôt puissante et qui peut donner un coup de pouce non-négligeable je pense, mais qui par contre présente un certain risque. J'ai pas mal hésité sur la puissance à donner aux capacités déclenchées... J'ai réduit le coût des marqueurs facture par rapport à la version que j'avais proposée pour le concours parce que les capacités devenaient vraiment trop chères et risquées à utiliser. En plus finalement je me dis que du mana incolore colle mieux pour symboliser l'argent à payer que du mana coloré.

Par rapport à la version du concours, j'ai aussi rajouté le fait de retirer les marqueurs facture au moment du paiement, ce qui me semble éviter tout risque d'avoir à les payer deux fois au cas où plusieurs effets de remplacement s'enchaineraient.

Enfin restent les crédits :

  • carte réalisée comme d'habitude avec Gimp, sur la base du xcf de NothNikko basé sur le psd de Sovelis
  • côté illustration, il s'agit de Mage-dreamer, par Ekaterina Maximovich alias KateMaxpaint
  • enfin la texture est faite sur la base de Zam's Texture par Rohman Aditya Dharma

Extensions perso Carcassonne : Murs et maisons

Voici deux mini-extensions pour Carcassonne qui prolongent le principe des ponts de l’extension Ponts, Forteresses et Bazars en permettant de poser des tuiles à des endroits où ce ne serait pas possible en temps normal.

Maisons

Le concept est simple : chaque joueur reçoit au début de la partie un ou deux pions Maison. Lorsqu’un joueur joue une tuile contenant une route, il peut la jouer de telle manière que la route aboutisse sur un pré en plaçant un de ses pions Maison à l’extrémité de la route.

Précisions :

  • un seul pion Maison peut être joué à la fois, les autres côtés de la tuile doivent donc respecter les règles habituelles
  • en association avec les extensions incluant d’autres pions spéciaux de ce type (tels que les ponts ou les murs), un joueur ne peut jouer qu’un seul pion spécial à la fois

À noter que comme les ponts, cette extension favorisera la constitution de prés de grande taille puisqu’un pion Maison permet directement de relier deux champs séparés par une route.

Les pions Maison peuvent par exemple être issus d’autres jeux tels que Monopoly et n’ont pas besoin d’être de couleur différente d’un joueur à l’autre (de même que les ponts). Personnellement j’utilise un lot de ces pions-là qui ont l’avantage de ne pas être trop grands.

Murs

Là aussi le concept est simple : chaque joueur reçoit au début de la partie un ou deux pions Mur. Lorsqu’un joueur joue une tuile, il peut la jouer de telle manière que deux côtés de type différents (dans le jeu de base il ne peut s’agir que d’un couple pré/ville) et continus (donc pas de route) peuvent être placé côté à côté en plaçant entre les deux tuiles un de ses pions Mur.

Précisions :

  • les pions Mur ne peuvent séparer que des types différents, il n’est pas possible de couper un pré ou une ville en deux de cette façon
  • un seul pion Mur peut être joué à la fois, les autres côtés de la tuile doivent donc respecter les règles habituelles
  • en association avec les extensions incluant d’autres pions spéciaux de ce type (tels que les ponts ou les maisons), un joueur ne peut jouer qu’un seul pion spécial à la fois

Cette extension gagne encore en intérêt avec certaines extensions non-officielles telles que celles introduisant les montagnes et forêts ou encore avec Family Feud puisqu’elle permet de limiter les cas où la tuile nécessaire n’existe pas.

Les pions Mur peuvent par exemple être réalisés simplement avec des allumettes coupées à la bonne longueur.


Voilà, il faudra que je formalise des règles plus propres et précises mais ça donne déjà une bonne idée du truc. Si jamais vous les essayez, n’hésitez pas à me faire un retour en commentaire notamment sur des cas particuliers que je n’aurais pas évoqués ^^


Cartes Magic perso : Onze plans dans l'univers de Guild Wars

Cette fois c'est toute une série de cartes plans dans l'univers du jeu vidéo Guild Wars (le premier du nom vu que ces cartes datent de 2010). Je m'étais concentré sur ce jeu d'une part parce que c'était celui que je jouais majoritairement à l'époque et d'autre part pour les superbes illustrations réalisées pour les écrans de chargement et qui s'adaptent très bien à des cartes plan.

Ces cartes ne sont clairement pas aussi recherchées que celles que j'ai présentées jusqu'à présent et ont été réalisées, je ne les avais pas publiées à l'époque il me semble mais contrairement à la plupart des autres, celles là on les a effectivement jouées pour varier un peu les cartes plans.

Je ne les avais pas publiés à l'époque donc pas écrit de commentaires, je vais donc juste improviser une petite explication pour donner une idée de la logique des capacités et de leur lien avec le lieu concerné dans le jeu. Par contre je ne m'étendrai ni sur la réalisation (je me suis contenté de coller sous Gimp une illustration et un texte dans un XCF existant sans chercher à faire plus orginal vu que l'objectif était de jouer les cartes, pas de faire des "œuvres d'art" à part entières comme ça a pu être le cas sur d'autres cartes).D'autre part l'aspect équilibre de la capacité est aussi moins primordial sur une carte plan vu qu'elle affecte tous les joueurs en même temps... d'autant plus dans les parties qu'on faisait avec on avait une pile de plans commune et pas un deck planaire par joueur donc je ne me suis pas demandé si l'un de ces plans pouvait être trop puissant avec un deck spécifiquement construit pour.

La Fournaise des Lamentations

La Fournaise des Lamentations
La Fournaise des Lamentations
(version haute définition)

Dans le jeu, la Fournaise des Lamentations (ou Sorrow's Furnace en VO) est une zone souterraine correspondant à une cité du peuple Nain, donc riche en forges. De là viennent directement les deux capacités : la première produit des jetons Nain et la seconde du mana rouge qui est leur couleur de prédilection.

La Porte de l'Angoisse

La Porte de l'Angoisse
La Porte de l'Angoisse
(version haute définition)

La Porte de l'Angoisse (ou Gate of Anguish en VO) est une zone du Royaume du Tourment donc un autre monde que la Tyrie où se déroule la majeure partie des événement du jeu. C'est là que se sont réfugiées les forces D'Abaddon après leur défaite face aux lanciers du Soleil.

Dans toutes les zones du Royaume du tourment, des effets d'environnement affaiblissent les joueurs de différentes manières, d'où la première capacité qui met des marqueurs -1/-1 en transplanant vers ce plan.

Ces zones contiennent principalement des démons d'où la seconde capacité qui en produit un lorsqu'on obtiens un chaos avec le dé planaire.

La Roche de l'Augure

La Roche de l'Augure
La Roche de l'Augure
(version haute définition)

Dans le jeu, la Roche de l'Augure (ou Augury Rock en VO) est le lieu d'une mission solo (contrairement à l'essentiel du jeu qui se fait en groupe), ce qui donne la première capacité limitant les créatures pouvant attaquer.

On y combat notamment un Doppleganger qui est une copie du personnage joué d'où découle la seconde capacité créant une copie d'une créature légendaire.

La Cité Souterraine

La Cité Souterraine
La Cité Souterraine
(version haute définition)

La Cité Souterraine (ou The Undercity en VO) est une partie souterraine de la cité de Kaineng. Les capacités découlent ici plus du caractère sous-terrain et du dédale de couloirs désavantageant les grosses bêtes par rapport aux petites créatures.

Ruines du désert de cristal

Ruines du désert de cristal
Ruines du désert de cristal
(version haute définition)

Le Désert de Crystal (ou Crystal Desert en VO) est une des grandes région de la première partie du jeu. Ce désert contient de nombreuses ruines faisant l'objet de fouilles à la recherche d'artefacts anciens. C'est dans cette logique que j'ai imaginé la seconde capacité permettant de récupérer un artefact de son cimetière. La première qui fait que les terrains produisent du mana incolore découle du fait qu'on se trouve dans un désert et que les terrains tels que le Désert produit du mana incolore.

Bazar de Waijun

Bazar de Waijun
Bazar de Waijun
(version haute définition)

Le Bazar de Waijun (ou Wajjun Bazaar en VO) est une zone portuaire de la Cité de Kaineng. C'est un centre d'échange important où sont importées de nombreuses marchandises à destination du reste de la cité. J'en ai donc également fait un plan basé sur les artefacts mais cette fois en tant que monnaie d'échange : la première capacité donne au artefacte la possibilité d'être sacrifiés en échange de mana incolore et la seconde permet sur un chaos de sacrifier un artefact pour en chercher un autre dans la bibliothèque.

L’Oasis d’Amnoun

L’Oasis d’Amnoun
L’Oasis d’Amnoun
(version haute définition)

L’Oasis d’Amnoun (ou The Amnoon Oasis en VO) se situe aux portes du désert de cristal. Comme pour la première capacité des ruines j'ai donc axé les capacité de ce plan sur le désert : en arrivant on renvoie tous les terrains produisant du mana bleu blanc ou vert (c'est-à-dire ce qui représente la vie ou l'eau) et la seconde permet sur un chaos de transformer un terrain en Désert.

Arène Charr

Arène Charr
Arène Charr
(version haute définition)

L'Arène Charr fait référence, si je me souviens bien (j'avoue que ça fait loin et que je n'ai pas retrouvé la page correspondante pour me rafraîchir la mémoire), à une mission où on se bat en solo contre un adversaire. La première capacités restreint donc les combats à des duels et la seconde permet sur un chaos de déclencher un nouveau duel si la créature a survécu.

Campagne ascalonienne

Campagne ascalonienne
Campagne ascalonienne
(version haute définition)

La Campagne ascalonienne fait référence à la zone d'Ascalon avant la Fournaise, ce qui dans le jeu correspond à la période du tutoriel d'introduction. À cette époque la région était riche et verdoyante, ce qui donne la capacité principale qui fait produire du mana supplémentaire aux plaines et forêts. Puis vient la Fournaise qui ravage le royaume, ce qui donne la seconde capacité qui sur un chaos fait sacrifier des permanents à tous les joueurs.

Si je devais refaire la carte maintenant je pense que je compléterais la seconde capacité en forçant un transplanement vers un plan représentant Ascalon après la Fournaise justement, ce serait plus logique.

La Mer de Jade

La Mer de Jade
La Mer de Jade
(version haute définition)

La Mer de Jade (ou The Jade Sea en VO) est une ancienne mer dont les eaux ont été pétrifiée plusieurs siècles auparavant. Elle n'a donc plus de mer que le nom, ce qui justifie la première capacité qui remplace tous les mana bleus produits par des terrains par du mana incolore. Quand à la seconde capacité, elle fait référence à au Kraken que combattent les Luxons, le principal peuple humain qui l'habite.

Les Îles Antagonistes

Les Îles Antagonistes
Les Îles Antagonistes
(version haute définition)

Les Îles Antagonistes correspondent à la zone PvP du jeu. Les joueurs s'y affrontent encore et encore sans répits, ce qui est représenté par la première capacité. La seconde, qui sur un chaos fait revenir sur le champ de bataille les créatures mortes lors d'un combat représentant le fait que comme dans tout mode PvP, les joueurs vaincus ne restent pas morts longtemps.


Carcassonne : extensions non-officielles

Depuis plusieurs années, le jeu de société que je joue le plus souvent (et de très loin) c’est Carcassonne. Ce jeu de Klaus-Jürgen Wrede est sorti pour sa première édition en 2000 et a depuis bénéficié de plusieurs rééditions, de plusieurs dizaines d’extensions et de plusieurs variantes autonomes.

La grande force de ce jeu est son extensibilité qui permet de grandement varier les parties (parce que bon, le jeu de base reste quand même limité). Les dizaines d’extensions existantes (pas toutes faciles à trouver par contre) permettent déjà beaucoup, mais on peut également réaliser ses propres extensions même si ça demande un peu de boulot pour faire les choses bien, notamment pour que les tuiles perso ne soit pas trop différentes des tuiles officielles et donc reconnaissables.

C’est sur le site Carcassonne Central et notamment la rubrique dédiée « Fan-made Expansions » que j’ai trouvé la plupart de celles que j’utilise (il faut s’inscrire pour accéder aux contenus). La qualité y est très inégale par contre, il faut vraiment faire du tri. Certaines ont des tuiles absolument dégueulasses, d’autres sont vraiment superbes. Idem pour les mécaniques, on va de truc absolument bidons à des trucs très (voire trop) complexes, certaines s’avèrent très moyennes à l’usage tandis que d’autres sont vraiment très réussies.

Voilà une sélection parmi celles que je joue souvent.

Extensions n’ajoutant pas de nouvelles tuiles

Ces extensions ne nécessitent pas de fabriquer de nouvelles tuiles et sont donc faciles à mettre en œuvre.

  • Tactician : cette extension rajoute une nouvelle action possible pendant le tour d’un joueur : à la place de poser un partisan ou un autre pion, s’il n’en a pas encore, il peut choisir de prendre un jeton Tacticien. Ce jeton peut ensuite être utilisé durant le tour d’un autre joueur pour placer un partisan sur la tuile que celui-ci vient de jouer. Elle a l’avantage de réduire la frustration quand on pioche une tuile inutile en permettant de tout de même faire quelque chose.
  • The Kids are Growing Up : celle-ci ne nécessite pas de tuiles mais des nouveaux pions “enfants” (on peut notamment utiliser pour cela ceux de la version “voyage” de Carcassonne où les pions sont plus petits). Les enfants peuvent être joués à la place d’un partisan sur une ville ou une route où le joueur a déjà un partisan. Lorsque la structure est complétée, il rapporte un point supplémentaire par tuile dans la structure. La règle propose de faire +3 par tuile si les deux enfants sont présents dans la même structure, mais à l’usage ça nous a paru trop puissant, on se limite donc à +1 par tuile et par enfant.

Extensions ajoutant de nouvelles tuiles

Ces extensions nécessitent de fabriquer de nouvelles tuiles ce qui peut être fastidieux.

  • Lord of the Manor : une petite extension assez simple de 4 nouvelles tuiles se comportant comme des abbayesn mais avec une zone de 5x5 au lieu de 3x3. Le manoir rapportant 50 points s’il est complété et 1 point par tuile en fin de partie (comme pour l’abbaye).
  • Fiefs : assez similaire à la précédente, cette extension ajoute 6 tuiles contenant chacune un Château Féodal. Il s’agit d’une nouvelle construction qui est complétée lorsque les 8 tuiles qui l’entourent sont placées et que toutes les villes présentes sur ces 8 tuiles sont complétées et rapporte ensuite un point par tuile de chacune de ces villes plus un point par bouclier.
  • Seasons : celle-ci ajouter une série de nouvelles tuiles qui lorsqu’elles sont piochées font “changer de saison”, ce qui active un modificateur sur les points rapportés lors de l’évaluation des structures (ex : “+2 points par ville”, “+1 point par tuile sur les routes”, “-2 points par abbaye”, etc).
  • Fortune teller : on a ici 8 nouvelles tuiles comportant une tente de voyante. Tant qu’un joueur a un partisan sur une tente de voyante, au début de son tour, il pioche deux tuiles au lieu d’une seule et peut choisir parmi elles celle qu’il va jouer. La tente est complétée lorsque les 4 tuiles adjacentes sont posées, le joueur qui la complète marque alors des points, mais pas celui qui avait son partisan dessus.
  • Family Feud : cette extension comporte 30 tuiles ce qui peut être beaucoup de boulot à fabriquer. Le concept est simple : les nouvelles tuiles comportent toutes des villes avec des boucliers rouges et jaunes. La contrainte étant que ces nouveaux boucliers ne doivent pas se retrouver dans les mêmes villes que les boucliers classiques bleus et blancs. À l’usage ça s’avère plutôt intéressant à jouer et ça a l’avantage de limiter un peu la taille des villes dans les parties longues.

Voilà il y en a beaucoup d’autres, je ne les ai de loin pas toutes testées.

J’ai également imaginé pas mal d’extensions et variantes perso qui feront l’objet de futurs articles.


Carte Magic perso : Aigéane, Amasseuse égocentrique

On continue avec une quinzième carte initialement postée sur l'Assemblée de Funomanciens et que je reposte ici avec son commentaire de l'époque.

Aigéane, Amasseuse égocentrique
Aigéane, Amasseuse égocentrique

J'ai initialement réalisé cette carte pour le jeu FC n°10 sur l'Assemblée de Funomanciens, dont le sujet proposé par Scyth était le suivant :

Je veux une carte qui ne vaille pas grand chose seule, mais qui, quand on en a plusieurs (soyez originaux, je ne veux pas de rats implacables-like, ce serait fâcheux), devient de plus en plus forte.

Il fallait donc faire une carte qui ne vaille pas grand chose seule et qui devienne de plus en plus forte en fonction de la quantité qu'on a. Mon idée était donc de faire un arpenteur dont les capacités exploitent les autres exemplaires que l'on met dans son deck. Ça c'est pour le côté "égocentrique" du titre.

On a donc un ultime qui, sous réserve de défausser d'autres exemplaires, permet d'acquérir le contrôle de permanents ciblés. Ce qui nous donne le côté "amasseuse".

Partant de là il fallait trouver le reste de la carte. Au départ j'étais parti sur une défausse lors de l'arrivée sur le champ de bataille pour récolter autant de marqueurs loyauté et une seconde qui permettait d'en récupérer du cimetière. En soi c'était pas mal mais ça aurait donné une fois de plus du noir/bleu... et ça collait moins bien avec l'illustration que j'ai déjà eu bien du mal à trouver.

Je me suis donc orienté vers des capacités plus bleues et on obtient donc un classique pioche/défausse qui colle bien avec l'idée de l'amasseuse qui recherche frénétiquement des objets pour sa collection. En soi c'est relativement peu puissant, ça permet juste de faire tourner son deck et donc de potentiellement récupérer d'autres exemplaires de la carte pour l'ultime. La deuxième partie de cette capacité renforce le côté tactique du choix de la carte à défausser : on a du coup le choix selon la situation entre défausser un exemplaire pour atteindre plus rapidement les trois marqueurs loyauté nécessaire à l'activation de l'ultime ou bien les garder pour rendre l'ultime plus puissant.

La seconde capacité quand à elle est plus expéditive et permet de récupérer à coup sûr un exemplaire. Cependant elle a l’inconvénient de ne pas rapporter de loyauté et de meuler potentiellement très violemment sa propre bibliothèque. Là encore c'est une capacité qui n'a rien de décisif a priori (même si ça peut s'avérer utile selon le deck pour remplir rapidement son cimetière) mais ça contribue à augmenter l'effet de l'ultime. Suite à la remarque de Scyth lors du concours, et pour éviter la combo trop puissante avec le Maniaque de laboratoire, j'ai ajouté la dernière restriction qui fait que si on a moins de 5 cartes dans la bibliothèque après ça on perd la partie. Ça ajoute aussi une dose de risque qui limite un peu sa puissance dans un deck basé sur l'auto-meule.

On a donc un arpenteur avec un ultime qui peut rapporter jusqu'à trois permanent de l'adversaire, ce qui n'est pas négligeable mais pas non plus forcément super décisif dans une partie par rapport aux ultimes des autres arpenteurs. Du coup, pour contrebalancer cela il fallait que la carte soit peu chère. J'ai donc opté pour une carte coûtant seulement {U} et arrivant avec seulement un marqueur loyauté. C'est-à-dire un arpenteur particulièrement fragile mais jouable en tout début de partie. Avec l'avantage en terme de remplissage de cimetière et de recyclage de carte, ça peut s'avérer utile et si on arrive à l'ultime ça peut être efficace. Du coup je pense que le statut de mythique n'est pas usurpé, sans je pense être trop fumé non plus.

Un petit mot sur le nom "Aigéane" : ne trouvant pas d'idée intéressante, j'ai lancé Google Traduction et tenté plusieurs langues d'abord sur "mer" puis sur "océan" pour enfin tomber sur l'Irlandais "aigéan". J'ai rajouté un e à la fin pour faire plus féminin et coller avec l'illustration et le tour est joué \o/

Restent les crédits :

  • carte réalisée comme d'habitude avec Gimp, sur la base du xcf de NothNikko basé sur le psd de Sovelis
  • l'illustration provient une fois de plus de deviantART, il s'agit de Queen of the Drowned, par Carolyn Laplante alias SnakeToast
  • la texture de fond est faite à partir de la texture Water Texture et celle des box à partir de texture 11

Carte Magic perso : Étable montagnarde

Quatorzième carte initialement postée sur l'Assemblée de Funomanciens (le 23/09/2011) et que je reposte ici avec son commentaire d'origine.

Étable montagnarde
Étable montagnarde

Cette carte a été réalisée pour le jeu FC n°6 sur l'Assemblée de Funomanciens, dont le sujet proposé par Esaki était le suivant :

Réaliser une carte qui utilise un mot-clé peu utilisé de façon originale et inattendue. Essayez de faire plus original qu'un archer avec la portée et plus cohérent qu'un oiseau avec le piétinement. La cohérence image/nom/mot clé sera prise en compte de façon importante.

Il fallait donc prendre un mot-clé peu utilisé et l'exploiter de façon originale. Sur le premier point, je pense que personne ne me reprochera mon choix : avec une unique carte officielle qui l'utilise, "fortification" est bel et bien un mot-clé peu utilisé ! Sur le second point, je reconnais que c'est un peu plus léger : je me suis contenté de dériver la fortification en lui ajoutant une restriction sur le type.

Mon idée de base était de faire une carte sur les chèvres. J'ai étudié pas mal de pistes avant de m'arrêter sur une fortification. De là l'idée d'une étable me semblait la plus logique. Les chèvres vivant principalement en montagne, j'ai restreint à la fortification de montagne.

Comme dans Magic la plupart des chèvres sont plutôt blanches, je suis resté néanmoins sur du blanc quand au mana nécessaire. D'autant que ça colle mieux aux capacités :

  • la première consiste à traire une chèvre, ce qui donne du lait et donc des points de vie \o/
  • la seconde consiste à générer des chèvres et plutôt des pas trop fortes pour que la carte ne soit pas trop puissante

Côté équilibre ça me semble pas mal :

  • on a ne capacité qui fonctionne tout le temps (la première) et qui sans être complètement démentielle permet de se faire quelques points de vie à chaque fois qu'on a du mana et des chèvres disponibles
  • une seconde capacité offerte au terrain fortifié qui produit des jetons mais relativement faibles puisque ce sont des 0/1
  • pour modérer un peu le truc, il faut du mana blanc pour la jouer mais également une montagne à fortifier pour l'utiliser pleinement

Ça me semble donc relativement bien dosé. On a pas une grosse carte décisive (donc pas une mythique) mais une carte qui aide bien à progresser en début de partie : des chèvres pour bloquer et des points de vie pour tenir le temps de se développer et reste un soutien valable sur une partie plus avancée.

Enfin, quelques mots sur la réalisation :

  • la carte est réalisée comme d'habitude avec GIMP, sur la base du xcf de Sovelis
  • concernant l'illustration, il s'agit de The Old Barn, de Scarlettveith (le lien est mort, manifestement elle a supprimé son compte DeviantART depuis mais je n'ai pas trouvé de lien de remplacement)
  • la texture vient également de deviantART : Blades of Grass Fractal par Somadjinn (avec quelques effets par dessus)
  • enfin le symbole de la faction des Chèvres : il s'agit de Mountain Goat par DeFor

Voilà, il s'agissait de la dernière carte postée dans la rubrique FunCards de l'Assemblée de Funomanciens et donc jugée comme « finalisées ». Les suivantes n'ont été postées que dans le forum ou sur d'autres sites notamment à l'occasion de concours ou jeux divers, le niveau de finalisation sera probablement moindre et les commentaires plus succincts mais comme il est peu probable que je les reprenne pour les finaliser plusieurs années après, je vais tout de même re-publier celles qui me semblent intéressantes.


Carte Magic perso : Engeance des poulaillers

Treizième carte initialement postée sur l'Assemblée de Funomanciens (le 04/09/2011) et que je reposte ici avec son commentaire d'origine.

Engeance des poulaillers
Engeance des poulaillers

Tout à commencé il y a quelques semaines. Alors que j'étais en train de mettre au propre ma carte pour le jeu FC n°7 de l'Assemblée des Funomanciens quand j'ai reçu la newsletter de Pen of Chaos annonçant une nouvelle chanson : Le Laridé du Poulet. Là forcément, ben il fallait que je fasse une carte quoi :smile: J'ai donc laissé le jeu FC en plan comme un chien abandonne le bâton avec lequel il jouait quand l'odeur de la bouffe se fait sentir et ai commencé à faire des brouillons, chercher des illustrations, tout ça. J'ai plusieurs brouillons tirés de cette chanson que je mettrai peut-être un jour au propre mais le premier à être arrivé à un stade satisfaisant est celui que vous pouvez voir ici : l'Engeance des poulaillers.

La chanson s'inspire donc de l'un des épisodes de la saison 1 du Donjon de Naheulbeuk où les aventuriers croisent un poulet au détour d'un couloir et débattent pendant cinq minute pour décider de s'il ne s'agit bien que d'un poulet ou bien d'un horrible changeforme sanguinaire.

On a donc un poulet tout ce qu'il y a de plus normal en apparence : un bête zoziau 0/1 pour un pauvre mana, rien de bien folichon. Ok, donc un bestiau de ce genre, on le laisse passer et on se concentre sur les autres attaquants. Sauf que... ben c'est peut-être bien un démon sanguinaire dans le fond, qui sait ? Donc s'il attaque et n'est pas bloqué, on lance un dé et sur un 6, il s'avère que oui, c'est bien un monstre et il gagne +6/+6 jusqu'à la fin du tour. Sinon, tout se passe bien, c'est juste un con de poulet pour peu d'avoir de bonnes bottes, on ne craint rien :smile:

Voilà donc une brave petite bête qui peut être plutôt marrante à jouer. Côté équilibre ça me semble plutôt pas mal : si on a de la chance on fait de sacrés dégâts, sinon, ben ça reste une créature à un mana hybride, donc vraiment pas cher. Si la chance est avec nous, ça peut permettre de tailler une sacrée tranche dans les points de vie de l'adversaire, sinon, ben c'est toujours une petite bête à sacrifier quand le besoin s'en fait sentir.

Le texte d'ambiance est un extrait de la chanson, extrait dont j'ai tiré également le nom et le second type de créature.

Crédits :


Carte Magic perso : Avec des ballons !

Douzième carte initialement postée sur l'Assemblée de Funomanciens (le 05/09/2011) et que je reposte ici avec son commentaire d'origine.

Avec des ballons !
Avec des ballons !

Hier soir, je repensais à une vidéo publiée il y a quelques mois par Pen of Chaos, le créateur du Donjon de Naheulbeuk, qui détourne les images du Conseil d'Elrond, scène du premier film de Seigneur des Anneaux, ce qui donne ça :

Le Conseil Corporate

Et je me suis dit qu'il y avait moyen de faire une carte bien débile sur ce thème :smile:

Le Conseil s'achève ainsi : une tête doit tomber pour assumer l'échec du nouveau produit qui fait disparaitre le client ! Et c'est le jeune stagiaire créa Julien Frodon, neveu du patron qui se sacrifie en ces termes :

Je refuse d'être un trou du cul ! Et je pense que j'n'ai pas ma place dans une entreprise guidée par les perspectives d'une globalisation entrepreneuriale sujette à la dynamique compétitionnelle... et même... si ce que je dis... n'a aucun sens...
— Julien Frodon

Ce à quoi Jean-Patrick Aragorn, repésentant CE, répond :

Le commité d’entreprise organisera une petite fête en ton honneur. Au self. Avec des ballons !
— Jean-Patrick Aragorn

Le principe de la carte est donc le suivant : alors qu'on est sur le point de perdre, on s'en sort en sacrifiant quelqu'un au bas de l'échelle - en l'occurrence une créature 1/1 - et la partie recommence. Cependant, avant de recommencer, on prend le temps de faire la fête en l'honneur du pauvre sacrifié :smile:

Il faut comprendre le "recommencer la partie" de la même manière que pour Karn libéré : la partie en cours s'achève sans vainqueur ni perdant (puisqu'il s'agit d'un effet de remplacement de la défaite) et on en redémarre une nouvelle à zéro.

Cela me semble tout à fait adapté puisque dans la vidéo, les joueurs - c'est-à-dire les cadres de la boite - continueront tous comme si de rien n'était : personne n'a gagné, ni perdu dans l'histoire. Enfin sauf le stagiaire mais bon, il est négligeable :smile:

J'ai choisi d'en faire une carte blanche et noire. Blanche parce qu'il s'agit un peu d'une manœuvre bureaucratique et d'autre part parce que c'est un bouclier anti-défaite, ce qui fait assez blanc. Noire à cause du sacrifice du faible stagiaire et du fait qu'on parle là du côté sombre de la bureaucratie. Puis ce sont les couleurs de la guilde Orzhov de Ravnica et ça me semble leur aller parfaitement !

Restent les crédits :

  • la carte en elle-même est réalisée comme d'habitude avec GIMP sur la base du xcf de Sovelis
  • l'image est tirée de la vidéo, retraitée un peu pour essayer de l'améliorer... en désespoir de cause, comme je n'ai pas les moyen des agences de renseignement américaines pour améliorer les photos, je me suis rabattu sur une texture de ce pack pour essayer de masquer la mauvaise qualité
  • la texture de fond est fait à la main sous Photoshop Elements 8 (y a beaucoup plus de brosses dispos pour photoshop que GIMP et il se trouve que j'avais une licence de Elements avec la tablette graphique que je me suis achetée il y a peu) à l'aide de ces brosses. J'ai volontairement utilisé la même texture pour toutes les boites parce que sans cela on ne reconnaissait pas trop les ballons dessus :o
  • le symbole, quand à lui est fait sur la base d'une forme de ballon retrouvée sur google images et pas mal retravaillée, réduite, etc pour donner ça
  • le "symbole de faction" avec les ballons colorés est aussi trouvé sur google images
  • enfin le texte d'ambiance est extrait de la vidéo

Carte Magic perso : Tyrael, Archange de la Justice

Onzième carte initialement postée sur l'Assemblée de Funomanciens (le 20/08/2011) et que je reposte ici avec son commentaire d'origine.

Tyrael, Archange de la Justice
Tyrael, Archange de la Justice

Il s'agit là d'une carte que j'ai créée pour tester mon design de carte Vanguard fortement inspiré de celui des arpenteurs.

Elle reprend Tyrael, l'Archange de la justice bien connu des joueurs de Diablo 2 comme un fieffé incapable qui à part casser la Pierre-Monde à la fin n'arrive à rien sans l'aide des héros incarnés par les joueurs.

De là vient sa capacité : puisqu'il ne fait rien par lui-même et se contente d'envoyer les autres aux casse-pipe, transposé dans une partie de Magic ça ressemble fort à un jeu pur créatures. Comme une carte Vanguard ne peut pas influer sur la construction du deck, j'ai opté pour rendre plus cher le lancement de sorts non-créatures.

Il fallait une compensation vu qu'une carte Vanguard est censée être au moins équilibré par rapport à un joueur sans carte et même en général plus forte. J'ai donc opté pour un bonus en cartes en main qui me semble cohérent : Tyrael n'est pas particulièrement doué mais connait pas mal de choses vu qu'il vit depuis de milliers d'années et envoie plein de monde à l'assaut des démons.

Concernant le texte d'ambiance, j'ai pris un extrait de son monologue de la fin de l'acte 2, lorsqu'on le libère de sa prison en tuant Duriel. Celui-ci fait référence à sa faiblesse, justifiant un malus en points de vie.

Côté équilibre on a une carte a priori très forte si on part sur un deck basé sur les créatures. J'hésitais entre +3 et +4 en cartes mais comparé à Takara, au lieu d'une capacité potentiellement utile en sacrifiant des créatures, il a une capacité qui le bride sur les sorts non-créatures. Du coup j'ai opté pour +4.

Restent les crédits :

  • réalisation sous GIMP avec mon design perso Vanguard basé sur le xcf d'arpenteur de Sovelis et NorthNikko
  • l'illustration est trouvée via Google et s’avère être And the Heavens shall tremble par PepperWolf (il s'est renommé Krysdecker entre temps sur DeviantART). Le dépassement a pris un peu de temps mais ça rend finalement plutôt pas mal je trouve ^^
  • le symbole d'extension vient de la police Fiolex Mephisto Dingbats qui me semblait adapté et un peu plus original qu'une simple croix

Carte Magic perso : Sophie Tell

Dixième carte initialement postée sur l'Assemblée de Funomanciens (le 13/08/2011) et que je reposte ici avec son commentaire d'origine.

Sophie Tell
Sophie Tell

Idée

Il s'agit d'une carte fun qui fait référence de manière très libre à la fameuse affaire impliquant un homme politique Français et une femme de chambre d'un hôtel new yorkais. Elle est basée sur une jeu de mot à la con sur le nom de l'hôtel qui donne "Sophie Tell" qui donne le nom du personnage.

Tell est un nom de famille bien connu, notamment de par le célèbre Guillaume Tell, personnage historique suisse expert du maniement de l'arbalète qui, selon la légende, se vit contraint de transpercer avec son arbalète une pomme placée sur la tête de son fils. Exploit qu'il réussit mais fut tout de même emprisonné. Par la suite, il tua le bailli qui lui avait imposé ce défi d'un carreau d'arbalète en plein cœur.

De là l'idée du texte d'ambiance : Guillaume terrasse le bailli avec son arbalète, Sophie quand à elle exploite d'autres méthodes pour réduire à néant les ambitions d'un candidat aux élections :)

Capacité

On a donc un personnage légendaire, Sophie Tell qui se doit d'avoir une capacité à la hauteur de son frère dans son domaine. Il ne s'agit aucunement d'une combattante, elle devient donc sans hésiter une simple 0/1.

La capacité se devait donc de tourner autour des conséquences d'une affaire comme celle-ci : au mieux elle fait perdre plusieurs mois voire années en procédure, au pire elle ruine une carrière. J'ai donc fait une capacité qui fait passer son prochain tour à un adversaire. Tel quel c'est un peu trop puissant puisque rapidement en duel on peut se faire des tours à l'infini.

Dans la première version, j'avais mis une autre partie qui disait "s'il est politicien il perd la partie". C'était purement fun mais au final ça collait mal avec le reste de la carte qui est plus subtile : à première vue elle est tout à fait réaliste. J'ai donc abandonné cette partie-là.

Enfin un petit mot sur les couleurs et types de créatures : Guillaume étant humain, nul doute que Sophie se devait de l'être aussi. Concernant la profession, la plus logique parmi les existantes était "citoyen" : une femme du peuple qui met à bas les ambition d'un seigneur, c'est l'idée. Du coup le blanc s'imposait également, d'autant que la méthode est non-violente, quand au bleu il s'impose de par la capacité jouant sur la manipulation des tours de jeu.

Réalisation

Comme d'habitude, cette carte est réalisée sous GIMP à partir du xcf de Sovelis. Pour l'illustration, j'ai cherché quelques temps une image rappelant une servante médiévale sans succès, je me suis donc rabattu sur celle-ci, réalisée par Cris Ortega, qui finalement rend bien la tentation qui est l'arme de notre amie Sophie.

Restait à trouver une idée de texture (c'était le seul point qui manquait il y a deux mois quand j'ai fait le brouillon). En panne d'idée, je me suis rabattu sur une texture à base de draps qui colle bien à la carte, même si le résultat donne un rendu assez simple.

Enfin pour le symbole d'extension, j'ai cherché une pomme via Google Images jusqu'à tomber sur celle-ci (je ne retrouve plus de lien fonctionnel).


Mises à jour depuis la version précédente :

  • suite aux différents commentaire, ici et dans le forum, j'ai revu la capacité pour empêcher les possibilités de bouclage
  • comme dit dans le commentaire, j'ai viré la partie de capacité qui était purement orientée "fun" pour en faire une carte réaliste, le fun restant cantonné aux références
  • j'ai aussi retouché la boite de force/endurance pour qu'elle colle mieux aux boites de titres et types (normalement les luminosités des trois boites sont censées être les mêmes)
  • enfin, et ça devrait faire plaisir à Scyth, j'ai remplacé mon symbole d'extension habituel par un autre plus dans l'esprit de la carte ^^
  • Maintenant qu'on peut soumettre des mises à jour, je ressors cette carte que j'affectionne particulièrement ^^ Cette version assez proche de celle que j'avais posté sur le forum puis sur le site de la SMF.
  • mise à jour du commentaire en cohérence avec les modifs.

Mise à jour du 25/08/2018

Je viens d'ajouter les commentaires d'origine et, à les relire, il se pourrait bien qu'ils se rapportent à la première version de la carte où la capacité était un peu différente...

Et du coup en relisant le commentaire de la carte, je vois que lui aussi est celui de la première version... Du coup je l'ai remplacé ci-dessus et repris la V1 ci-dessous avec son commentaire à elle.

Sophie Tell (première version)
Sophie Tell (première version)

Voici une carte qui trainait dans mes brouillons depuis pas mal de temps et vue qu'elle est liée à l'actualité, il était temps que je la finisse avant que tout le monde ait oublié les événements auxquels elle est liée.

Idée

Il s'agit d'une carte fun qui fait référence de manière très libre à la fameuse affaire impliquant un homme politique Français et une femme de chambre d'un hôtel new yorkais. Elle est basée sur une jeu de mot à la con sur le nom de l'hôtel qui donne "Sophie Tell" qui donne le nom du personnage.

Tell est un nom de famille bien connu, notamment de par le célèbre Guillaume Tell, personnage historique suisse expert du maniement de l'arbalète qui, selon la légende, se vit contraint de transpercer avec son arbalète une pomme placée sur la tête de son fils. Exploit qu'il réussit mais fut emprisonné. Par la suite, il tua le bailli qui lui avait imposé ce défi d'un carreau d'arbalète en plein cœur.

De là l'idée du texte d'ambiance : Guillaume terrasse le bailli avec son arbalète, Sophie quand à elle exploite d'autres méthodes pour réduire à néant les ambitions d'un candidat aux élections :)

Capacité

On a donc un personnage légendaire, Sophie Tell qui se doit d'avoir une capacité à la hauteur de son frère dans son domaine. Il ne s'agit aucunement d'une combattante, elle devient donc sans hésiter une simple 0/1.

La capacité se devait donc de tourner autour des conséquences d'une affaire comme celle-ci : au mieux elle fait perdre plusieurs mois voire années en procédure, au pire elle ruine une carrière. On a donc une capacité qui via un coût suffisamment élevé permet de faire passer son prochain tour à un joueur et, cerise sur le gâteau : s'il est politicien il perd la partie.

Forcément, la 2e partie est purement fun et n'a rien de très réaliste. La première par contre serait jouable dans l'absolu. En duel elle serait clairement très forte puisqu'elle permettrait de joueur indéfiniment pour peu d'avoir assez de mana. Cependant à moins de lui donner la célérité, ce qui n'est pas trop dans les attributions du blanc et du bleu, l'adversaire garde un tour pour la gérer et gérer une 0/1 ce n'est pas forcément des plus difficile. D'autant plus qu'il faut avoir assez de mana, ce qui suppose une partie déjà bien avancée. Donc en duel c'est effectivement très fort, probablement trop.

En partie multijoueur, c'est déjà nettement plus raisonnable parce que si on consacre chaque tour 7 manas à bloquer un joueur, il est fort probable qu'un autre en profite pour prendre l'avantage. Ça reste très fort mais plus aussi radical. D'autre part, elle est légendaire, donc en équipe, impossible de baser sa stratégie sur le faire d'en avoir chacun une pour bloquer l'équipe adverse.

Enfin un petit mot sur les couleurs et types de créatures : Guillaume étant humain, nul doute que Sophie se devait de l'être aussi. Concernant la profession, la plus logique parmi les existantes était "citoyen" : une femme du peuple qui met à bas les ambition d'un seigneur, c'est l'idée. Du coup le blanc s'imposait également, d'autant que la méthode est non-violente, quand au bleu il s'impose de par la capacité jouant sur la manipulation des tours de jeu.

Réalisation

Comme d'habitude, cette carte est réalisée sous GIMP à partir du xcf de Sovelis. Pour l'illustration, j'ai cherché quelques temps une image rappelant une servante médiévale sans succès, je me suis donc rabattu sur celle-ci, réalisée par Cris Ortega, qui finalement rend bien la tentation qui est l'arme de notre amie Sophie.

Restait à trouver une idée de texture (c'était le seul point qui manquait il y a deux mois quand j'ai fait le brouillon). En panne d'idée, je me suis rabattu sur une texture à base de draps qui colle bien à la carte, même si le résultat donne un rendu assez simple.

Voilà voilà, je pensais pas arriver à blabater autant sur cette carte qui est plus un délire qu'autre chose :euh:


Carte Magic perso : Riposte héroïque

Neuvième carte initialement postée sur l'Assemblée de Funomanciens (le 29/06/2011) et que je reposte ici avec son commentaire d'origine.

Palimpseste hystérétique
Riposte héroïque

Il s'agit d'une carte réalisée initialement pour un concours de FunCards sur le forum de la Secte des Magiciens Fous dont le thème était de réaliser une carte avec cette illustration.

La première question était donc : que contient cette image ? Ce qui saute aux yeux au premier coup d’œil c'est le dragon. Ensuite on voit les soldats et chevaliers qui semblent s'organiser pour la riposte face à cet énorme adversaire.

Partant de là j'aurais pu faire un bon gros dragon qui fait des soldats pour l'adversaire mais Dragon au rabais existait déjà.

Du coup je me suis plutôt tourné vers un éphémère à jouer pendant le combat. Manifestement c'est ici le dragon qui attaque et les autres qui se défendent. Et au premier plan on a cette femme en armure qui semble mener la riposte. Du coup une carte qui galvanise les créatures bloqueuses face à une grosse créature me semblait la plus adaptée.

Histoire de pas refaire bêtement un plagiat de Tenir la position, j'ai d'abord introduit la référence au dragon en en faisant une carte piège, qui coûte moins cher à jouer quand une grosse créature attaque.

Ensuite pour faire un peu plus original et bien coller à la notion de riposte, j'ai pensé à jouer sur le fait d'infliger des dégâts après l'attaquant. Une sorte de double-initiative mais retardée. Restait à formuler le truc de façon viable. Pas évident sans écrire un pavé. Du coup j'en ai fait une capacité de mot clé et me suis inspiré un peu de la formulation du paragraphe des règles sur la double-initiative pour la formulation du texte d'aide.

Les règles de la capacité ressembleraient à ça (merci à Pleykorn pour la formulation) :

La riposte est une capacité statique qui modifie les règles de l'étape des blessures de combat.

Si au moins une créature bloqueuse a la riposte, après l'étape des blessures de combat normale, au lieu de passer à l'étape de fin de combat, il y a une nouvelle étape des blessures de combat. Les seules créatures assignant des blessures de combat durant cette étape sont les créatures bloqueuses avec la riposte encore dans le combat. Suite à cette étape, on passe à l'étape de fin de combat.

Retirer la riposte a une créature pendant l'étape des blessures de combat d'initiative ou l'étape des blessures de combat normale l'empêche d'assigner des blessures de combat durant l'étape des blessures de combat de riposte.

Donner la riposte à une créature pendant l'étape des blessures de combat d'initiative ou l'étape des blessures de combat normale lui permet d'assigner des blessures de combat durant l'étape de combat de riposte.

Plusieurs occurrences de la riposte sont redondantes.

Concernant l'équilibre à la base j'avais fait plus faible, mais vu que Tenir la position est finalement très peu cotée, je me suis dit que ça pouvait être un peu plus fort sans être abusé.

Enfin, les crédits :

  • logiciel : GIMP avec le XCF de Sovelis
  • illustration : witchblade 138 spread par Stjepan Sejic alias Nebezial (logique, c'était le thème :p)
  • texture : Antique1 trouvée sur deviantART

Carte Magic perso : Palimpseste hystérétique

Huitième carte initialement postée sur l'Assemblée de Funomanciens (le 11/06/2011) et que je reposte ici avec son commentaire d'origine.

Palimpseste hystérétique
Palimpseste hystérétique

Il s'agit là de ma 29e funcard, réalisée à l'origine pour le jeu FC n°4 de l'Assemblée des Funomanciens, dont le sujet proposé par Maku était le suivant :

Je veux donc une carte hybride, peu importe la manière; hybride de par sa couleur, ou par un double type de carte (créature-enchantement, créature-terrain, je sais pas moi, voire carrément une créature-terrain-artefact-enchantement hybride de toutes les couleurs qui crache des arc-en-ciels et saute de nuages en nuages). La seule particularité est que votre Funcard doit contenir au moins un mot très compliqué dedans (le TA n'est PAS compris mwhahaha).

Idée

Puisqu'il fallait faire une carte contenant des mots compliqués, je suis parti sur ça pour trouver l'idée, en cherchant simplement "mots compliqués" sur Google. Je suis rapidement tombé sur le palimpseste :

Un palimpseste (du grec ancien παλίμψηστος / palímpsêstos, « gratté de nouveau ») est un manuscrit constitué d’un parchemin déjà utilisé, dont on a fait disparaître les inscriptions pour pouvoir y écrire de nouveau.
Source : Wikipédia

Avec ça on partait bien : un parchemin c'est largement exploitable sur une carte ! Et puisqu'on le réutilise, sans forcément arriver à tout effacer, ça sentait bien l'empreinte multiple :p

Je continue mes recherches et je tombe finalement sur l'hystérésis ou hystérèse :

Par analogie avec le phénomène physique, l'hystérésis, ou l'hystérèse, désigne en économie la persistance d'un phénomène économique alors que sa cause principale a disparu. D'inspiration néoclassique, l'hystérèse est une façon d'expliquer un phénomène de moyen ou long terme qui n'a pas d'explication évidente, notamment pour le chômage et l'inflation.

Le Larousse en ligne donnant quand à lui une version sous forme d'adjectif, j'ai retenu cette forme plus exploitable en combinaison avec le palimpseste.

On obtient donc un parchemin qui conserve la mémoire des derniers sorts que l'on a inscrits dessus (et donc exilés avec l'empreinte), puis qui les déclenche à chaque tour.

Comme il fallait deux couleurs pour faire un hybride (j'ai d'abord pensé à de l'hybride incolore/bleu mais c'était pas top), j'ai opté pour du noir, bien pratique en général pour rajouter des défauts à une carte potentiellement trop forte.

La première capacité représente l'état initial : le parchemin arrive avec l'empreinte de 3 sorts successifs. Du coup, comme c'est comme ça qu'on l'acquiert, prendre ces sorts du cimetière semble cohérent. Puis ça fait une première connotation noire :p

Ensuite, la deuxième permet d'inscrire d'autres sorts sur le parchemin par la suite. Pour rester dans l'hybride, on a un coût de mana bleu/noir, d'autant que cette capacité n'est pas liée particulièrement à l'un ou l'autre.

Enfin la troisième capacité lance aléatoirement l'un des trois derniers sorts à chaque tour : c'est de la copie, donc bien bleu. À première vue, ça me paraissait très fort, donc j'avais initialement atténué la chose en permettant à l'adversaire de contrer l'effet en payant des points de vie (ce qui donnait une seconde touche noire). Mais Pleykorn a fort justement fait la comparaison avec Miroir panoptique (que je ne connaissais pas jusque-là) et qui ressemble finalement pas mal, tout en n'ayant aucune contrainte lors du lancement : au contraire, sur celle-ci on choisit même la carte. Du coup j'ai finalement supprimé cette partie.

Par contre, la seconde capacité avec juste un coût de mana pour l'activer restait nettement plus forte que celle du Miroir panoptique. J'ai donc contrebalancé ça en restreignant le coût de lancement des sorts que l'on veut inscrire sur le parchemin : ainsi pour inscrire des sorts vraiment puissants il faudra en inscrire un certain nombre.

C'est la carte dont j'ai reformulé et changé le plus de fois les capacités avant d'arriver à une truc qui me semble satisfaisant, que ce soit avant ou après je jeu FC auquel elle était initialement destinée. Mais cette fois je crois qu'on voit le bon bout avec une carte très forte mais pas trop fumée puisque de force a priori comparable à une carte existante (voire légèrement plus fable car plus contraignante sur les cartes à exiler) ^^

Réalisation

Il s'agissait donc de trouver un parchemin dans des tons de couleur relativement sombre. En cherchant sur deviantART, je suis tombé sur Magic Scroll par Alexander Nanitchkov alias Tsabo6. En plus il s'adaptait bien à quelques petits dépassements sympathiques ^^

Restait le fond pour lequel j'ai utilisé une texture de Sirius-sdz retouchée via des assombrissements et teintes bleues pour rendre le côté hybride (je n'ai pas trouvé d'artefact hybride pour voir comment ce serait fait sur une carte officielle mais ça me semblait pas mal ^^).

Enfin comme d'habitude, tout est fait avec GIMP et le xcf de Sovelis.


Carte Magic perso : Léanira Plumedor

Septième carte initialement postée sur l'Assemblée de Funomanciens (le 29/05/2011) et que je reposte ici avec son commentaire d'origine.

Léanira Plumedor
Léanira Plumedor

Voici une carte assez simple en terme de capacités et plus axée sur une ambiance graphique et un rendu visuel.

Je suis parti de l'illustration Studing of Magic par anndr qui a inspiré les couleurs et le thème de la connaissance, ainsi que le nom "Plumedor" qui vient bien entendu de la plume qu'elle tient en main. Du nom j'ai du coup tiré les plumes que j'ai ajouté sur la texture et les différentes boites qui collaient assez bien avec l'ambiance graphique. Après coup je me suis fait la réflexion que les ombres du visage et le sourire faisaient trop inquiétant pour du blanc/bleu, donc j'ai un peu retouché l'illustration à ce niveau là ^^

Sur le thème de la connaissance, on a principalement le piochage de cartes. Et comme c'est également blanc, il fallait un effet qui fasse blanc et le plus blanc qui soit du même registre que le piochage de carte, c'est le gain de points de vie. De là l'idée est que chez elle connaissance et vie sont tellement liées qu'elles se renforcent l'une l'autre, le texte d'ambiance étant là pour renforcer ce point de vue.

Sur du piochage de cartes on a principalement des sorciers en général et plutôt des clercs pour ce qui est de gagner des points de vie. J'aurais pu lui donner les deux profession mais quand on y pense, l'un comme l'autre est souvent tout désigné pour devenir conseiller d'un personnage important, donc le type de "conseiller" me semblait approprié.

Restent les crédits :


Quelques trucs sur Jekyll #1

Histoire de pas spammer avec trop d’articles je vais reprendre mon habitude de faire des tirs groupés pour les petites astuces, remarques et autres ^^

Publication avec les bonnes URL dans les métas SEO

Une petite subtilité que je n’avais pas remarquée tout de suite : les URL générées dans les métas SEO sont des URL absolues et dans les pages générées par le mode serveur dédié au dev (via bundle exec jekyll serve) commencent par l’IP locale et non le domaine spécifié dans le _config.yml (c’est pas illogique mais comme ça ne touche que des métas SEO, ça ne saute pas aux yeux).

J’ai rapidement trouvé dans la doc qu’il faut utiliser jekyll build pour générer en mode production. Plus précisément jekyll build --destination _deploy qui génère les pages dans un autre dossier histoire que les deux ne se marchent pas sur les pieds.

En y repensant c’est effectivement plus propre de travailler comme ça avec une commande dédiée à la génération pour la prod et un dossier séparé, ça évite de déployer par erreur des brouillons par exemple.

Brouillons et gestion des dates

Jekyll gère les brouillons en les plaçant dans un dossier à part et en ajoutant une option à la génération si on veut les inclure (cf la documentation).

Tout ça fonctionne très bien à une exception près : la doc dit que la date de l’article sera la date de dernière modification du fichier. Jusque-là pourquoi pas, ça se tient assez bien. Mais elle ne précise pas plusieurs subtilités :

  • d’une part ça ne fonctionne que pour le fichier Markdown et pas pour les HTML (là, l’article n’est apparemment pas visible sans date)
  • d’autre part il ne s’agit que d’une valeur par défaut dans le cas où la date n’est pas présente dans l’en-tête de l’article
  • enfin, si la date spécifiée est dans le futur, l’article ne sera pas visible, même pour un brouillon (donc on ne peut pas planifier une date à l’avance)

Dans l’ensemble c’est assez bancal comme fonctionnement je trouve, mais une fois qu’on sait comme ça marche, on s’en sort.


Carte Magic perso : Sans-Nom

Sixième carte initialement postée sur l'Assemblée de Funomanciens (le 20/05/2011) et que je reposte ici avec son commentaire d'origine.

Sans-Nom
Sans-Nom

Il s'agit là d'une carte réalisée pour le jeu FC numéro 16 sur MagicCorporation, dont le sujet proposé par Klyts était le suivant :

J'aimerais que vous me fassiez une carte à propos d'un jeu vidéo (ancien ou récent, là n'est pas la question) que vous aimez bien, et qui selon vous n'est pas assez connu ! Donc exit les Mario et autre Zelda ! La carte peut être réal ou fun, proposer un personnage, un lieu, ou une situation, tout ce que vous voulez !

J'ai donc choisi le meilleur jeu de rôles que j'ai pu jouer sur PC et qui est maintenant passablement oublié du commun des joueurs puisque, tristement, aucune suite n'a jamais vu le jour. Je parle donc de l'excellent Planescape : Torment, sorti fin 1999 par Black Isle Studios. Ah si j'étais milliardaire, je rachèterais la licence et j'en ferais faire une nouvelle version avec les ressources des machines actuelles !

Les images de bonne qualité liées à un jeu aussi ancien étant rares, le choix était relativement limité sur le personnage ou lieu à traiter et j'ai rapidement choisi de me concentrer sur Sans-Nom, le héros immortel qu'incarne le joueur.

Partant de là, faisons un petit tour des principales caractéristiques de Sans-Nom :

  • on ne sait pas trop qui (ou quoi) il est, si ce n'est qu'il est immortel : à chaque fois qu'il se fait tuer, il se réveille peu après
  • certaines résurrections lui font perdre la mémoire, c'est ainsi qu'on démarre le jeu avec un Sans-Nom se réveillant à la morgue sans aucune idée de comment il est arrivé là
  • au début du jeu il est un guerrier mais au cours du jeu on peu en faire un mage ou un voleur
  • au fur et à mesure du jeu il lui arrive d'avoir des réminiscences de son passé et d'une manière générale il apprend vite puisqu'il lui suffit en général de réapprendre ce qu'il a oublié
  • on apprend au cours du jeu qu'à chacune de ses résurrections, quelqu'un meurt quelque part dans le multivers et devient un fantôme

De là découlent les capacités de ma carte :

Il s'agit d'une créature légendaire puisqu'il a un nom... enfin presque :euh: Et comme on ne sait pas trop s'il est vraiment humain (quoique, peut-être bien que vers la fin du jeu on en apprend plus, je ne sais plus... faudrait que je me refasse le jeu un de ces jours :o), je ne lui ai pas mis de race, seulement une profession correspondant à sa classe initiale : guerrier et comme il commence niveau 1, j'en ai fait une simple 1/1.

Comme il s'agit du personnage principal du jeu il s'agit de l'unique membre de notre groupe de départ, du coup j'ai repris le principe des lignes ley : si on l'a en main de départ, on peut commencer la partie en l'ayant en jeu.

Sans-Nom est immortel du coup j'avais plusieurs choix. J'aurais pu le rendre indestructible mais ça aurait été un peu trop simple. J'aurais pu aussi chercher dans la régénération mais je voulais faire un truc un peu plus fort que ça, plus résistant. J'ai donc opté pour une créature qui ne peut être mise au cimetière et revient sur le champ de bataille à chaque fois qu'elle devrait s'y rendre. Une telle capacité le rendait tout bonnement surpuissant et permettait de faire facilement des boucles infinies. Il fallait donc trouver une solution pour le brider. Comme certaines résurrections lui font perdre la mémoire, j'ai pensé à faire une dose d'aléatoire qui interrompe les boucles. J'ai alors pensé à un jet de dé.

On a donc une chance sur six que Sans-Nom perde la mémoire : il perd donc tous les marqueurs qu'il pouvait avoir et perd jusqu'à son contrôleur puisqu'il se retrouve sous le contrôle d'un joueur choisi aléatoirement. Et pour casser les possibilités de boucle, on l'exile jusqu'à la fin du tour, le temps qu'il reprenne ses esprits.

Du coup il me restait à trouver les autres options du jet de dé... Comme Sans-Nom évolue vite au cours du jeu et parfois même suite à une mort si je me souviens bien, on quatre chances sur six qu'il gagne un marqueur +1/+1 et on lui donne l'occasion de changer de profession. Sur ce point, c'est pas complètement fidèle au jeu mais je n'avais pas trop de place pour faire encore une autre capacité à part pour ce point, donc je l'ai intégré là.

Enfin on a encore une chance sur six qu'il détruise une créature du champ de bataille et produise un esprit sous le contrôle d'un adversaire. On pourrait se demander pourquoi seulement une fois sur six et pas systématiquement mais quand on y pense, c'est logique : tous les morts liés à ses résurrections ne sont pas impliqués dans le duel de sorcier qui est en train de se jouer et un mort à l'autre bout du monde n'a aucune influence sur le duel en cours.

J'ai hésité à en faire une créature incolore qui me semblait plutôt pas mal, puis je me suis dit que lui donner des couleurs pourrait aider à modérer un peu sa puissance. J'ai donc fait selon les trois classes qu'il peut avoir : noir (gredin), bleu (sorcier) et rouge (guerrier). Et vu qu'il est lié à de la destruction de créature et un refus d'aller au cimetière, le noir me semblait pas mal comme couleur principale.

Reste à parler brièvement de la réalisation :

  • comme d'habitude, j'ai réalisé la carte sous GIMP, à partir du xcf de Sovelis
  • l'illustration est celle de la boite du jeu. En l'absence d'auteur j'ai crédité le studio qui a développé le jeu (je ne pense pas avoir tapé trop à côté)
  • enfin, la texture est trouvée sur DeviantART

Carte Magic perso : Trahir pour survivre

Cinquième carte initialement postée sur l'Assemblée de Funomanciens (le 13/03/2011) et que je reposte ici avec son commentaire d'origine.

Trahir pour survivre
Trahir pour survivre

Il s'agit là de ma 24e carte, que j'avais réalisée pour le jeu FC n°14 sur Magic Corporation, dont le sujet proposé par Maku était le suivant :

Une carte qui joue sur les marqueurs poisons, mais qui, cependant, n'est pas capable d'en retirer sur un joueur, ni d'en ajouter (sauf via Infect). On évitera les rituels/éphémères de type blast qui "possèdent" l'infect, et l'aspect traîtrise doit être mis en avant, si possible. Les terrains, artefacts et auras sont déconseillés (mais si vous avez un concept révolutionnaire qui joue dessus, n'hésitez pas), et les cartes tribales sont à éviter impérativement, pour rester dans le thème de la traîtrise (un traître n'appartient à aucune tribu ;o). L'humour est, bien évidemment, pris avec le sourire (sauf si c'est pas drôle, bien entendu). Des "capacités à mots-clés" sont les bienvenues à la condition de les expliquer sur la carte (et donc d'en avoir la place), mais ce n'est bien entendu pas imposé.

D'abord rapidement sur la réalisation : comme d'habitude, via GIMP sur la base du xcf de Sovelis. Concernant l'illustration, il s'agit de Motivated_Thralls d'Oscar Monteon.

J'ai essayé de travailler un peu sur les ombres et les couleurs pour donner une ambiance sombre en cohérence avec le thème en général et la carte en particulier.

Concernant la capacité, ce qui m'est venu de plus cohérent pour mélanger la trahison et les marqueurs poison sans en donner ni en retirer était de faire en sorte que la trahison permette de retarder l'effet du poison. Une solution pour tenter d'en contenir les effets du poison est de compenser en puisant dans la vie des autres. En l'occurrence, dans une partie de Magic, les autres c'est soit l'adversaire (mais bon, la trahison envers son adversaire, ça a peu de sens :razz:), soit ses alliés (mais ça se limite alors aux parties multijoueur), soit ses propres créatures (ou arpenteurs éventuellement... y aurait sans doute eu moyen de trouver quelques chose de ce côté-là aussi ^^). Du coup trahir une créature, le plus cohérent c'est de la sacrifier.

Et fort logiquement, quand il n'y a plus de créature à sacrifier, ben le poison nous rattrape et... R.I.P. :smile:

Reste le texte d'ambiance mais rien de particulier à expliquer dedans, il se contente de bien faire le lien entre le titre de la carte et son effet.


Expérimentation sur la gestion des commentaires

Comme je le disais en annonçant la réouverture du blog, l’un des deux gros points noirs suite au choix de Jekyll et d’un site statique entièrement pré-généré c’était le problème des commentaires. En effet, habituellement c’est le moteur de blog qui propose un formulaire et traite côté serveur les soumissions de nouveaux commentaires. En passant au statique ce n’est plus possible directement puisque le serveur ne fait que… servir du statique justement. Aucune intelligence, donc pas non plus celle de gérer les commentaires.

Les solutions existantes

La solution la plus répandue dans ce cas est de passer par une plateforme externe telle que Discuss qui centralise les commentaires et les restitue via un widget JavaScript inclus dans la page. Cela ne me plaît pas tu tout d’une part parce que c’est une externalisation de la donnée alors qu’elle doit à mon sens rester groupée avec les articles et sûrement pas déléguée à un silo. D’autre part ça signifie charger un script externe systématiquement ce qui introduit d’une part de la lourdeur et d’autre part une fuite de données de navigation : Discuss ou son équivalent est mécaniquement au courant de qui regarde quelles pages chez moi et quand. Et non-seulement chez moi au aussi sur tous les autres sites utilisant leur plateforme. Et c’est généralement le cœur de leur modèle économique de monnayer d’une manière ou d’une autre ces données.

Bref la solution basée sur un silo centralisé était exclue.

Une autre solution aurait été de faire pareil mais en auto-hébergé. C’est-à-dire proposer quelques webservices exploités en JavaScript. Ça résout le problème de dépendance externe et de protection de la vie privée mais ça réintroduit le problème que je voulais résoudre en utilisant un générateur de site statique, à savoir ne plus avoir à m’inquiéter de la maintenance et de la sécurité. Certes ça aurait représenté un volume de code bien plus limité qu’une plateforme de blog complète, donc largement simplifié la maintenance mais quand même.

Donc cette solution là n’était pas valable non plus.

Et en faisant quelques recherches je n’ai rien trouvé comme proposition hors ces deux pistes. J’en ai conclus que j’allais devoir inventer une solution de toutes pièces et j’ai donc remis ça à plus tard pour ne pas bloquer la remise en ligne du blog. J’ai donc sorti le blog en laissant ça mûrir dans un coin de ma tête.

Mon idée

Mon cahier des charges était donc de trouver une solution n’impliquant pas de service tiers ni de service auto-hébergé à maintenir. C’était un peu mal parti : faire tout côté client mais avoir le résultat côté serveur sans introduire de faille potentielle semble assez insoluble.

J’ai fini par penser à une solution un peu bâtarde mais viable dans mon cas : passer par des mails. Puis traiter manuellement les soumissions de commentaires.

Forcément ça fait intervenir un service tiers : le fournisseur de messagerie (j’ai renoncé à vouloir auto-héberger du mail, c’est beaucoup trop compliqué et risqué) mais il ne fait que passe-plat et n’est pas chargé de conserver la donnée sur le long terme puisqu’une fois un commentaire réceptionné, je l’intègre à la page de l’article. J’ai donc regardé un peu ce qu’on pouvait faire pour envoyer du mail côté client. En JavaScript ça semble impossible (et pas très souhaitable pour des raisons assez évidentes en matière de spam) mais il reste toujours la bonne vieille méthode à base d’un formulaire en mode “mailto”. Ça donne un peut l’impression de revenir à l’Âge de Pierre mais l’essentiel c’est que ça marche.

Cette solution n’est pas exempte de défaut, à première vue au moins les suivants :

  • l’adresse e-mail de destination du formulaire est en clair, ce qui fait qu’elle risque d’être cible de spams à terme
  • les commentaires ne sont pas publiés instantanément, il faut que j’intervienne pour les intégrer
  • c’est chronophage : je dois faire l’intégration à la main (problème de passage à l’échelle)
  • on augmente dans l’absolu le risque juridique : comme c’est moi qui publie les commentaires, je passe automatiquement en mode de modération a priori, donc je ne peux pas prétendre ne pas avoir connaissance des contenus publiés, j’en suis donc responsable
  • ce n’est pas super “user friendly” de passer par son client mail pour envoyer le commentaire même si le contenu est pré-rempli

Reste que ces défauts sont acceptables au moins dans mon cas. Reprenons-les point par point :

  • publicité de l’adresse e-mail : c’est un défaut mineur, il suffit de faire une adresse dédiée et comme elle ne sert qu’à ça elle peut être remplacée du jour au lendemain si elle est la cible de spam
  • délai de publication : là non plus ce n’est pas super grave, on n’a pas vraiment besoin d’instanténéité sur des commentaires, même s’il est vrai que ça a toutes les chances de réduire les discussions entres lecteurs (les discussions entre moi et un visiteur ne sont pas affectées puisqu’elles nécessitent de toute façons une action de ma part pour avancer), c’est un peu dommage mais pas primordial, surtout dans le cas de mon audience confidentielle
  • chronophage : le problème évident de passage à l’échelle en cas de gros volume de contributions et cette solution n’est clairement pas généralisable à des sites ayant beaucoup de commentaires mais ce n’est pas un problème pour moi : je ne crois pas qu’un seul de mes articles ait dépassé les dix commentaires, donc ça reste totalement gérable
  • risque juridique : ça m’obligera potentiellement à refuser certains commentaires mais je pense que le risque reste minime
  • aspect “user friendly” : franchement ça demande juste de valider l’envoi du mail en acceptant qu’il contienne des donnés présentées de manière un peu technique… disons qu’on s’en fout, d’autant plus que mon blog traite entre autres de technique (et en passant je pense que je me débarrasse de la plupart des robots spammeurs qui ne doivent vraiment pas s’attendre à ça :D)

Voilà du coup ça me semble correct dans l’immédiat : pas parfait mais ça fait le boulot en rétablissant un système de commentaires. On va laisser ça tourner quelque temps puis on verra ^^


Carte Magic perso : Un ange passe...

Quatrième carte initialement postée sur l'Assemblée de Funomanciens (le 02/02/2011) et que je reposte ici avec son commentaire d'origine.

Un ange passe...
Un ange passe...

Il s'agit là de ma 23e FunCard, réalisée aux alentours d'une heure du matin suite à une discussion sur MagicCorporation concernant l'état de la rubrique FunCard depuis la migration vers la version 6 du site.

L'objectif n'est pas de relancer la polémique, c'est juste que j'aime bien cette carte qui m'a bien fait rire quand je l'ai faite, du coup je n'avais pas envie qu'elle finisse oubliée au fin fond d'un topic.

C'est évidemment une carte purement fun qui n'a aucune vocation à être réellement jouée :p

Idée

L'idée est assez simple : la rubrique FC n'étant pas une priorité, les corrections sur les autres rubriques passent avant. De plus, comme on n'a rien de particulier à faire pour que ça arrive, ben le sort coûte 0, logique :smile:

Le titre vient d'un message d'Abnegations dans la discussion citée plus haut qui m'a donné l'idée de faire la carte. Sinon j'aurais été bien en peine de trouver une illustration :p

Le texte d'ambiance vient d'une remarque d'EveilDuFou, peu avant dans la discussion. J'aurais dû le citer et je me souviens y avoir pensé lorsque j'ai fait la carte puis d'avoir rejeté l'idée mais l'inconvénient de faire une carte à une heure où habituellement on dort, ben c'est qu'au final, je n'ai absolument plus aucune idée de pourquoi je ne l'ai pas fait :euh: J'aurais bien corrigé la chose mais ça impliquerait de ré-appliquer l'ensemble des effets par dessus et ça j'ai pas le courage, donc je me contenterai de l'ajouter dans la version texte de la carte.

Réalisation

La carte est réalisée avec GIMP, comme d'habitude, à partir du xcf de Sovelis. L'illustration se nome Angel et est réalisée par Chrono75 (c'est du moins son pseudonyme sur deviantART).

Ensuite, j'ai enchainé pas mal de filtres divers pour donner cet aspect vieilli à la carte qui me semblait bien approprié dans ce contexte ^^


Carte Magic perso : Passeurs du Crâne Écarlate

Troisième carte initialement postée sur l'Assemblée de Funomanciens (le 22/01/2011) et que je reposte ici avec son commentaire d'origine.

Passeurs du Crâne Écarlate
Passeurs du Crâne Écarlate

Il s'agit là de ma 26e FC, que j'ai réalisée pour le jeu FC n°1 de l'Assemblée des Funomanciens, dont le sujet proposé par Heptahydride était le suivant :

Je voudrais une carte qui se balade dans les zones de manière inhabituelle, à la manière de Bridge from Below, ou juste qui interagit de manière originale avec elles. Les cartes sorties de l'espace seront particulièrement appréciées.

Idée

Pour une fois j'avais l'idée avant l'illustration (même si je l'ai un peu adaptée pour coller avec). L'idée était donc de faire une carte qui transporte les voyageurs de l'exile au champ de bataille et inversement. La couleur touchant le plus à l'exil étant le blanc, je partais sur ça. Du coup une sorte de vaisseau volant voguant d'un monde à l'autre me semblait des plus adaptées.

J'ai donc cherché un peu sans succès un truc dans l'esprit du blanc. Je suis finalement tombé sur l'illustration Air Pirates Over Dragonspine par Alegion (pas trouvé de vrai nom, donc je me contente de son pseudo).

Dès lors une combinaison avec du noir ou du rouge s'imposait vue l'ambiance plus sombre de l'illustration et le crâne figurant sur la toile du ballon central (l'autre option était de virer le crâne mais j'avoue que j'avais la flemme de retoucher ça :p Je me suis donc contenté de virer le bout de dragon qui dépassait en bas :o). J'en ai donc fait des pirates humains.

Réalisation

Rien d'original : GIMP + l'un des xcf de Sovelis + l'illustration citée plus haut. J'ai également utilisé deux cartes anciennes pour la texture (trouvées via Google) qui collaient bien avec l'ambiance pirates/voyageurs.

Capacité

Comme dit, je partais du voyage entre l'exile et le champ de bataille (et réciproquement). J'avais deux couleurs à placer, donc une pour chaque sens du voyage :

  • le noir pour le départ du champ de bataille : ce sont des pirates tout de même, donc pour les envoyer chercher quelqu'un il faut en payer le prix. Comme c'est du noir, ça pouvait être soit des points de vie, soit une créature... j'ai choisi la créature pour la symétrie : dans un sens ça coûte une créature, dans l'autre ça la rapporte.
  • le blanc pour le retour avec une créature exilée : le prix du trajet étant payé, nos amis pirates reviennent avec une créature de la zone d'exil et la boucle est bouclée.

Je ne vous ferai pas l'affront de vous expliquer le pourquoi du vol, ça me semble évident :euh:

Côté équilibre, j'ai un peu du mal à doser si c'est fort ou pas... d'un côté c'est symétrique (sacrifice d'une créature pour en rapporter une autre), d'un autre côté ça permet de rapporter une créature exilée (c'est-à-dire souvent une qui embêtait beaucoup votre adversaire pour qu'il en arrive à l'exiler).

Pour modérer les éventuelles combos possibles, j'ai mis d'un côté la nécessité de l'engager, de l'autre le fait de ne pouvoir le jouer qu'en rituel et en revenant engagé. Du coup pour le faire boucler, il faudrait déjà arriver à le dégager et lui donner la célérité, ce qui complique déjà pas mal les choses et on ne peut pas le faire revenir n'importe quand non plus... Du coup ça me semble raisonnable a priori.

Les premiers commentaires concernent une ancienne version de la carte, certains points évoqués ont donc été corrigés par la suite. Vous trouverez ci-dessous la liste des mises à jour entre les deux versions :

  • remplacement du "ces ~~" pour désigner la carte par un "les ~~" qui relève d'une ancienne règle de formulation
  • simplification de la formulation de la seconde capacité : vu que c'est un sacrifice c'est forcément une créature qu'on contrôle et actuellement on dit en général juste "un autre créature" et non "une créature autre que ~~"

Carte Magic perso : Corco Ungo

Deuxième carte initialement postée sur l'Assemblée de Funomanciens (le 02/01/2011) et que je reposte ici avec son commentaire d'origine.

Corco Ungo
Corco Ungo

Historiquement, il s'agit de la 3e carte que j'ai faite, elle date donc de septembre déjà.

Réalisation

La carte est réalisée avec GIMP, à partir du fond de carte de NorthNikko d'après le psd Sovelis.

La réalisation en elle-même reste assez basique : intégration de l'image avec un petit dépassement pour faire sérieux. Plus un léger effet sur le liseré bleu/noir histoire qu'il soit pas complètement uni vu que sur les arpenteurs il est plus large que sur les autres cartes.

L'illustration quand à elle est trouvée sur DeviantArt : Zodiac - Capricorn par Stephanie Pui-Mun Law.

Côté symbole d'extension, cf ma carte précédente :razz:

Capacité

Pas de mécanique super originale pour cette carte, le tout découlant de l'illustration.

Bleu pour l'ambiance éthérée de l'illustration, les nuages, le vent, les oiseaux, tout ça. Noir pour les corbeaux qui sont quand même un peu des charognards puis le côté triste de l'ambiance.

Pour le nom, j'ai pioché dans le dictionnaire Quenya (l'une des langues elfique de Tolkien) :

corco
(nom) corbeau
ungo
(nom) nuage, ombre sombre

Ensuite les capacités, ça tourne autour des corbeau, mais j'ai pris le type standard "oiseau" pour rester sur un type existant :

  • la première change une créature en corbeau (lui donnant le vol du même coup)
  • la seconde change Corco lui-même en corbeau
  • la troisième appelle à lui tous les corbeaux qui délaissent le temps d'un tour le festin que leur proposent les cadavres des créatures mortes jusque-là.

Niveau équilibre c'est clairement pas surpuissant : la première capacité nécessite une créature bleue ou noire à transformer, ses deux points de loyauté initiaux en font un arpenteur assez peu résistant et sa dernière capacité nécessite d'avoir des cartes de créatures dans les cimetières pour être efficace...

Pour compenser ça, il ne coûte que deux à jouer et deux hybrides qui plus est, donc il est moins cher que tous les arpenteurs officiels et sa première capacité étant à Symbole : loyauté +2, il compense assez vite sa faiblesse initiale. Ça me semble donc relativement équilibré... même s'il est vrai que j'aurais peut-être pu en faire une simple rare plutôt qu'une mythique.

PS : le terme "arpenteur" est volontaire. J'aime pas le "planeswalker" non-traduit que WotC utilise actuellement.


Carte Magic perso : Buveuse d’âmes

Vu que je ne remettrai probablement pas l'Assemblée des Funomanciens en service (trop de boulot pour un site mort). Je vais reposter ici les cartes Magic perso que j'avais postées dessus, avec les commentaires d'origine.

On commence avec la première carte postée là bas (le 29/12/2010), même si ce n'est pas forcément la plus recherchée et originale.

Buveuse d'âmes
Buveuse d'âmes

Historiquement, il s'agit de ma seconde carte, mais je l'ai retouchée par la suite.

Je suis parti d'une illustration provenant encore une fois de Deviant Art : Warmt par Nillia (pas trouvé de vrai nom, donc je laisse le pseudo).

Je partais plus sur une ambiance et un style graphique particulier que sur une originalité forte dans la capacité, d'où cette capacité relativement classique mais qui colle bien à l'illustration : on a une sorte d'esprit qui s'approche d'un cadavre mais avec un visage que je trouve plus souriant que triste (contrairement au personnage qu'elle est censée représenter d'après ce que je comprends du commentaire de l'auteur - oui, mon anglais reste approximatif, donc potentiellement si ça se trouve j'ai compris de travers :we:). Donc partant de là une créature Esprit plutôt noir s'imposait, avec une capacité liée aux morts.

J'ai écrit le texte d'ambiance avant d'introduire la référence aux samouraïs et chevaliers, mais après coup ça s'imposait tout en rendant la capacité un poil moins classique ^^

Concernant la puissance, d'un côté ça me semble assez fort mais comme pour la booster il faut d'une part avoir des créatures dans un cimetière et d'autre part l'engager (ce qui empêche d'attaquer le même tour), ça me semble pas trop abusé... Cela dit, je reconnais qu'avec les cartes qui sortent actuellement, j'ai du mal à juger sur ce point, tant je trouve que la moitié des rares sont abusées par rapport à mes critères de joueur de Magic à ses début en France (j'ai arrêté à la sortie d'Odyssée pour ne reprendre vraiment qu'en fin d'année dernière et le moins qu'on puisse dire c'est que la puissance des cartes a un peu évolué entre temps !).

Ça c'est pour la capacité, maintenant passons à la réalisation : c'est toujours sous GIMP, avec le xcf de Sovelis (me semble bien que celui là il l'a fait directement).

GIMP que je maîtrise modérément (et d'autant plus modérément quand j'ai fait la première version de cette carte), donc l'idée était notamment de voir un peu ce qu'on pouvait faire avec des textures et les différent mode d'incrustation des calques... Je suis donc parti de deux autres illustration du même auteur : Prickly Plant et So happy to see you. Ainsi on reste dans le même style graphique que l'illustration, même si on s'éloigne un peu du style Magic classique.

Concernant le symbole d'extension, j'utilise toujours le même mais comme c'est la première carte que je poste ici, je vais l'expliciter un peu : lorsque j'ai fait ma première carte (déjà postée sur Magic Corporation avant le cataclysme et que je re-posterai ici quand je l'aurai un peu révisée) je cherchais un truc sympa qui pourrait me servir pour d'autres cartes (donc pas lié particulièrement à celle-ci), ne trouvant rien de bien convaincant, j'ai cherché du côté des alphabets fantaisistes un "D" (première lettre de mon pseudo) et c'est le Quenya, l'un des alphabets elfiques imaginés par Tolkien qui l'emporte avec un symbole plutôt sympa ^^ Là par contre, pour le symbole, j'ai lâché GIMP que je maitrise moyennement pour mon bon vieux Picture Publisher que je connais sur le bout des doigt, même s'il est moins puissant.

Voilà voilà, je pense que j'ai environ tout dit ^^


Filtrage par mot-clé sur Twitter et Mastodon

Avec le début de la coupe du monde de foot, forcément on se retrouve avec beaucoup de choses sans intérêt sur les réseaux sociaux. Je me disais déjà que le temps allait être long jusqu’à ce qu’elle se termine mais en fait il y a moyen de faire un peu de nettoyage pour rendre les choses vivables !

En effet, Mastodon et Twitter proposent maintenant (je ne saurais pas dire depuis quand), en natif un filtrage des messages, Twitter uniquement par mot-clé, Mastodon via une expression rationnelle.

Mastodon

Sur Mastodon, ça se trouve sur l’en-tête de la colonne principale, en cliquant sur le bouton “Afficher les paramètres” :

Filtre par expression rationnelle sur Mastodon

On peut donc saisir une expression rationnelle, ce qui est assez riche et permet d’englober facilement des variantes. C’est aussi assez rapide à saisir puisqu’il n’y a qu’un champ.

Merci à @Drulac@framapiaf.org d’avoir rappelé que cette fonctionnalité existe.

Twitter

Sur Twitter, ça se trouve dans les préférences et il s’agit d’un filtrage par mot-clé :

Filtre par expression rationnelle sur Mastodon

C’est plus facile à comprendre pour les non-informaticiens mais largement plus laborieux à saisir (un mot à la fois, donc beaucoup de clics). Seul point positif : on peut différencier le comportement d’un mot-clé à l’autre en spécifiant la durée du masquage (ça peut être bien notamment quand on masque un sigle qui peut avoir d’autres sens).

Filtre par expression rationnelle sur Mastodon

Merci à @alainmi11 pour son tweet salvateur.

Voilà qui devrait permettre de vivre plus sereinement cette période difficile ^^


Archives par année dans Jekyll

Je continue dans mon exploration du monde merveilleux de Jekyll (le générateur de site statique qui fait maintenant tourner ce blog), avec une autre fonctionnalité de WordPress que je voulais reproduire : les archives par année avec menu dans la sidebar.

Ça semble trivial comme mais non. Avec Jekyll RIEN (ou presque) n’est trivial. Je suis assez vite tombé sur le plugin jekyll-archives qui permet de générer les pages d’arichive (non-paginées mais tant pis). Je suis assez vite arrivé à un truc qui marche de ce côté-là, pas de problème majeur.

Par contre c’était un peu plus compliqué pour générer le menu.

En cherchant un peu, j’ai fini par tomber sur cet article qui décrit comment générer une sorte de plan du site par date, basé sur une itération sur l’ensemble des articles. J’ai pu en tirer (en simplifiant) ce qu’il me fallait pour mon menu, à une exception près : le décompte des articles (forcément il n’en avait pas besoin dans son cas).

Et là je me suis heurté à un truc : comment incrémenter une variable dans Liquid (le moteur de templates de Jekyll) ? Naïvement, j’ai tenté un simple {% assign postCount = postCount + 1 %} mais ce fut un échec cuisant. Je n’ai pas trouvé ce que fait un “+” dans ce cas mais clairement pas une addition (ma variable valait toujours 0 et en inversant les arguments j’avais toujours 1). J’ai donc :

  1. cherché comment incrémenter une variable : rien trouvé dans la doc, forcément on n’a que des exemple d’assignations avec une variable en dur
  2. cherché sur le net : je suis tombé sur cette doc qui parle d’un tag increment gérant des variables incrémentales indépendantes des autres variables (pourquoi indépendantes ? qu’est-ce que ça apporte ? mystère…) et semble-t-il non-réinitialisable, donc ça ne répond pas à ma question
  3. puis j’ai fini par tomber là dessus et là j’ai enfin trouvé : pour faire une addition il faut passer par le filtre plus

Donc voilà, j’ai ma solution pour générer mon menu :

<h2>Archives</h2>
<ul>
  {% assign postCount = 0 %}
  {% for post in site.posts %}
    {% assign year = post.date | date: '%Y' %}
    {% if post.previous %}{% assign nextYear = post.previous.date | date: '%Y' %}{% else %}{% assign nextYear = 0 %}{% endif %}
    {% assign postCount = postCount | plus: 1 %}
    {% if year != nextYear %}
      <li><a href="/archives/{{ year }}/">{{ year }}</a> ({{ postCount }})</li>
      {% assign postCount = 0 %}
    {% endif %}
  {% endfor %}
</ul>

C’est laborieux mais ça marche.

Reste juste un défaut : rien qu’avec ça je suis passé de 20 à 30 secondes pour régénérer mon site. C’est un peu chiant quand on veut contrôler que ce qu’on vient de faire marche (mais ça n’a aucun impact pour le visiteur puisque lui n’accède qu’à des pages statiques).

J’ai donc cherché comment on pouvait faire un peu de caching dans Jekyll. Forcément j’ai rien trouvé de natif mais je suis tombé rapidement sur le plugin jekyll-include-cache. Il ajoute une nouvelle instruction alternative à include et qui s’utilise exactement pareil mais n’effectue l’évaluation du contenu qu’une fois : include_cached. Du coup en utilisant ça pour mes header, footer et sidebar, j’ai pu redescendre à environ 17 seconde de temps de génération. Ça reste beaucoup mais c’est quand même moitié moins.

Par contre le cache en question n’est pas régénéré à chaque changement (y compris changement du template inclus) mais seulement à chaque fois que le serveur est relancé, ce qui veut dire relancer systématiquement le serveur avant de publier pour prendre en compte les mises à jour (dans mon cas nouvel article ou changement de catégorie). Du coup ça reste largement bancal comme solution, pas sûr que je garde ça sur le long terme.


Plugin de tri des catégories pour Jekyll

Comme je le disais la semaine dernière, il restait des ajustements à faire sur le blog. L’un d’entre eux était d’afficher un menu présentant notamment les catégories (et aussi les archives par années mais ça viendra plus tard).

J’ai pas mal galéré pour trouver comment faire (ça me semble être un truc assez basique mais ce n’est pas trop mis en évidence dans la doc). J’ai assez rapidement fini par trouver dans quelle variable chercher les catégories (il s’agit de site.categories) qui se trouvent sous la forme d’un tableau associatif où la clé est le nom de la catégorie et la valeur un tableau des articles.

Ce qui m’a pris beaucoup plus de temps c’est trouver comment récupérer la clé lors de l’itération. J’ai fini par trouver dans la doc de Liquid (le moteur de templates de Jekyll) : lorsqu’on itère sur un tel tableau chaque item qu’on reçoit contient un tableau à deux entrées : la clé en 0 et la valeur en 1 (pour le coup je préfère les syntaxes de Twig ou AngularJS qui sont plus claires). Pour afficher les catégories, j’en étais donc arrivé à :

<ul>
  {% for category in site.categories %}
    <li><a href="/categories/{{ category[0]|slugify:'latin' }}/">{{ category[0] }}</a> ({{ category[1].size }})</li>
  {% endfor %}
</ul>

Restait à les trier parce que j’en ai quand même beaucoup… Et là pour le coup je n’ai rien trouvé de natif. Je suis tombé sur plusieurs plugins. D’abord un premier qui avait l’air riche mais que je n’ai pas réussi à faire fonctionner… Puis un deuxième beaucoup plus simple mais pas complètement satisfaisant (notamment le tri ne mettait à la fin ma catégorie “À propos du blog” à cause de l’accent). Ne connaissant rien à Ruby, j’ai un peu tâtonné pour épurer le truc et corriger ce qui me gênait.

Le résultat est accessible ici : jekyll-hash-table-sort-filters

L’exemple de code précédent, après installation du plugin, devient le suivant :

<ul>
  {% assign categories = site.categories | sort_by_keys %}
  {% for category in categories %}
    <li><a href="/categories/{{ category[0]|slugify:'latin' }}/">{{ category[0] }}</a> ({{ category[1].size }})</li>
  {% endfor %}
</ul>

EDIT du 10/06/2018 à 11h10 : forcément y avait une erreur dans la version du plugin que j’ai publiée… et qui faisait tout planter. C’est corrigé : jekyll-hash-table-sort-filters.

Et comme tout est généré une fois pour toute, je n’ai vu le problème qu’à la génération suivante, donc aujourd’hui.


Retour du blog

Ça faisait déjà près d’un an et demi que ce blog était mort suite à un crash serveur. Je ne pouvais pas le remettre en fonction directement parce qu’il utilisait une vieille version de WordPress qui n’était pas compatible avec PHP7 et je n’avais pas envie de pourrir mon nouveau serveur avec un vieux PHP. Quant à la mise à jour de WordPress était dissuasive parce que j’avais de nombreuses versions de retard et que ça se serait forcément fait dans la douleur.

En parallèle j’avais vu passer plusieurs articles parlant de remplacer WordPress et autres moteurs dynamiques par un générateur de site statique. Cet aspect me tentait bien mais pas pour les raisons avancées habituellement, en particulier la principale : les perfs je m’en fiche un peu (mon serveur se tourne les pouces la plupart du temps et j’ai une audience limitée).

Non, ce qui m’intéressait c’était plutôt de supprimer la maintenance et le besoin de mise à jour, soit précisément ce qui m’a fait repousser la remise en ligne du blog (et ce qui me causait sans doute de grosses failles de sécurité sur le précédent serveur). En effet, dans ce cas le générateur n’est pas en ligne, je peux le garder tranquillement en local sur mon ordi perso.

Par contre, ça a plusieurs gros inconvénients qui m’ont retenu de sauter le pas plus tôt, en particulier deux :

  • Pas de système de commentaires. C’est embêtant parce qu’il est exclus que je délègue ça à un silo genre Discuss. Et si c’est pour remettre du JS et un système de web services ben on reperd direct l’intérêt principal de s’éviter la maintenance… Je n’ai pas de solution correcte pour l’instant donc il faudra s’en passer (genre en passant par Mastodon ou à défaut Twitter), jusqu’à ce que je trouve quelque chose de viable.
  • Pas de moteur de recherche. Moins gênant mais quand même déléguer à Google et autres la recherche interne du site ça me déplaît pas mal. Là non plus je n’ai pas de solution pour l’instant (j’ai trouvé un plugin qui permettrait de le faire mais en passant par une API tierce, donc bon, on n’y gagne pas grand-chose au final).

J’ai finalement décidé de sauter le pas parce que ça m’est arrivé quand même assez souvent de me dire que j’aurais bien fait un article sur un sujet mais qu’en l’absence de blog j’ai soit rien fait, soit résumé en quelques pouets et/ou tweets.

J’ai donc cherché un peu dans les outils existants. Forcément y en a des dizaines… Du coup faut choisir. Après avoir écarté tout ce qui est NodeJS et rien trouvé en PHP, je me suis rabattu sur Jekyll (en Ruby) qui a le mérite d’avoir un peu d’ancienneté et donc pas mal de plugins dispo et probablement une durée de vie pas trop basse.

Après avoir rencontré pas mal de problèmes tels que :

  • besoin de choisir un thème
  • besoin d’installer des plugins et configurer plein de choses (Jekyll de base est assez vide)… pour la liste des plugins, cf. la page à propos
  • du temps perdu à comprendre que si ma pagination était morte d’un coup c’était parce que j’avais reformaté le fichier (oui les pages contiennent des en-têtes en YAML qui a l’idée VRAIMENT débile de se baser sur l’indentation, donc un formatage et boum ça marche plus… et vas-y pour comprendre que ça vient de là !)
  • repasser sur tous les articles pour faire en sorte que ça se rende bien (un convertisseur depuis une base WordPress est dispo mais il ne convertit pas les balises spécifiques… et j’en avais pas mal pour du code ou de la mise en forme autour des images)

J’ai enfin quelque chose de fonctionnel \o/

J’en profite également pour basculer sur un autre domaine (en .net plutôt que .com).

Il reste à mettre en place les redirections pour ressusciter les anciennes URL des articles mais ça peut attendre, après un an et demi, on est plus à quelque semaines près… Et il risque d’y avoir encore quelques ajustements mais ça a déjà le mérite d’être fonctionnel ^^