Blarg sur Github

C’est le jeu que j’avais fait il y a quelques années. Il est maintenant disponible ici : https://github.com/darkrecher/Blarg.

Même que j’avais lancé une campagne de crowdfunding sur Ulule et j’avais gagné la mirobolesque somme de 50 euros. J’avais ensuite gagné un peu plus grâce à des dons généreux et totalement inattendus provenant d’une personne étrange, mais c’est une autre histoire.

Le jeu en lui-même n’a pas changé, c’est le même code source. Par contre j’ai tout bien documenté et rassemblé les données qui s’étaient éparpillées : articles, annonces, procédure pour générer les exécutables à partir du code, etc.

Il y a une doc de conception, car j’essaye d’en rédiger une pour chacun de mes « gros » projets. Pour celui-ci, elle est séparée en deux :

  • la doc à propos du jeu en lui-même,
  • la doc à propos du système d’interface (boutons, menus, etc).

Eh oui, j’avais presque réussi à créer une librairie d’interface graphique, réutilisable pour d’autres jeux. Mériterait-elle d’être reprise, modernisée et améliorée ? Je ne sais pas et de toutes façons j’ai tellement d’autres idées que celle-ci va probablement rester à l’abandon.

On peut même configurer les touches.

On peut même configurer les touches.

Et ensuite ?

Je suis en train de mettre dans github tous mes vieux trucs qui périclitent sur mes disques (disques durs et disques compacts, c’est vous dire la portée temporelle de cette fouille archéologique).

D’autre part, j’ai l’honneur de vous annoncer que mon twitter expressionotron a dépassé les 30 followers. Comme promis, je vais donc libérer son code source (la libération des listes de mots viendra plus tard, si j’ai encore plus de followers). J’en profiterais pour démochifier ledit code.

Bref, ça va bouger sur mon github dans les semaines qui viennent.

mappear_brouillon_5

Allez hop, pour fêter ça, image de femme ronde déguisée en magicienne (plus précisément en Elvira-Mistress-of-the-dark).

C'est une sorcière, donc une magicienne, donc ça colle avec le sujet de l'article.

C’est une sorcière, donc une magicienne, donc ça colle avec le sujet de l’article.

 

 

 

Sublime Text : détection des indentations tab/space

Alors voilà, vous vous êtes mis à Sublime Text 2 (http:// www. sublimetext.com/2), parce que c’est un éditeur de texte topissimissime.

Vous prévoyez de vous en servir pour un ensemble de projets et de fichiers de code existants, ayant des conventions différentes concernant les indentations en tabulations/espace. Pour diverses raisons, (justifiées ou non), vous n’avez pas envie de tout homogénéiser à grands coups de replace, alors vous avez gardé cette configuration :

"translate_tabs_to_spaces": false,

 

Le problème

Vous vous attelez à un projet indenté avec des espaces, vous y créez un nouveau fichier de code (mettons que ce soit du python). Dès la première définition de fonction, vous tapez manuellement les 4 espaces d’indentation, afin de bien indiquer à Sublime Text que c’est ça que vous voulez. Lorsque vous passez à la ligne suivante, c’est bien des espaces qui sont automatiquement ajoutés.

Ensuite, c’est la merde.

Pour reculer d’une indentation, vous êtes obligé d’appuyer 4 fois sur backspace. Et chaque fois que vous écrivez un if, un while ou autre, le niveau d’indentation automatiquement ajouté est écrit avec une tabulation.

Vous vous retrouvez donc avec de la cagassade comme ça :

screenshot_space_tab_02,

ce qui ne manque pas de faire hurler l’interpréteur python.

Vous êtes constamment obligé de remettre manuellement des espaces. Vous ne comprenez pas pourquoi cet abruti de Sublime Text ne comprend pas la convention de ce fichier en particulier, alors que celui-ci contient déjà trouzemille lignes de code indentées bien comme il faut.

 

L’interrogation existentielle

La configuration de Sublime Text est définie dans différents fichiers, qui se recouvrent les uns à la suite des autres (config globale, config d’un package, d’un projet, …). Ce n’est pas toujours évident de déduire les valeurs utilisées au final. Heureusement, il est possible de les vérifier.

Vous ouvrez la console, via l’option du Menu principal « View -> Show Console », puis vous tapez fébrilement les commandes suivantes :

view.settings().get("translate_tabs_to_spaces")
False
view.settings().get("tab_size")
4
view.settings().get("detect_indentation")
True
view.settings().get("auto_indent")
True
view.settings().get("smart_indent")
True

sublime_text_console

Tout semble normal.

Alors, vous décidez que Sublime Text n’est pas si génial que ce qu’on en dit, et vous reprenez ce bon vieux Notepad (pas Notepad++, Notepad tout court). C’est de la chiottasse, mais au moins, c’est de la chiottasse maîtrisée.

Notepad à l'apogée de son utilisation

Notepad à l’apogée de son utilisation

 

La solution

Sublime Text est capable de simplifier les ajouts et retraits d’indentation, qu’ils soient en tab ou en espace. Mais pour y parvenir, il doit préalablement déduire la convention du fichier à partir de son contenu actuel. Cette déduction n’est déclenchée qu’à l’ouverture. Comme il s’agit d’un fichier que vous aviez créé, rien n’a été déduit puisqu’il était vide au départ.

Il suffit de fermer puis réouvrir le fichier, et tout va mieux. (Pas la peine de redémarrer Sublime Text, juste l’onglet du fichier concerné). Il existe par ailleurs une commande pour relancer la déduction, mais je ne sais plus où elle est, et osef.

Il faut un nombre suffisant de lignes indentées (une dizaine) pour que cette déduction soit garantie. Naturellement, il faut qu’elles soient toutes homogènes, et si c’est des espaces, il en faut le même nombre à chaque fois.

 

La sodomie drosophilienne

(Ça veut dire « enculage de mouche »)

La déduction d’indentation est également déclenchée lorsqu’on copie-colle une quantité conséquente de texte dans un fichier vide. On va jouer un peu avec ça.

Créer un nouveau fichier (File -> New File, ou raccourci Ctrl+N). Copier-collez le texte suivant dedans :

def truc():
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0

(Il y a 10 lignes indentées, chacune avec 4 espaces).

Placez votre curseur juste après le « 0 » de la dernière ligne.

Appuyez sur « Entrée ». Une ligne indentée s’ajoute. Elle comporte 4 espaces.

Appuyez sur Backspace.

Les 4 espaces sont retirés en une seule fois et le curseur revient au début de la ligne. Sublime Text a compris que l’indentation de ce fichier est sous forme de 4 espaces. Il n’est même pas nécessaire de préciser que la syntaxe est du python. (D’ailleurs c’en est pas vraiment, car écrire des lignes ne comportant qu’un chiffre n’a que peu de sens).

copypast_ok

Recréez ensuite un nouveau fichier. Ne repartez pas du fichier précédent, car Sublime Text lui a déjà attribué une convention.

Copier-collez le même texte mais sans la dernière ligne.

Placez votre curseur juste après le « 9 ».

Appuyez sur « Entrée ». Une ligne indentée s’ajoute. Elle comporte 4 espaces.

Appuyez sur Backspace.

Seul un espace est retiré. Sublime Text n’a pas compris que l’indentation de ce fichier est sous forme d’espaces. Il garde le comportement par défaut, qui est une indentation indéterminée.

copypast_fail

Pour info, j’utilise Sublime Text version 2.0.2, Build 2221.

Toute cette drosophilophilie pour dire qu’avec la dernière génération d’éditeurs de texte (Sublime, Atom, …), on n’a plus vraiment besoin de se soucier du choix tabulations/espaces. J’ai récemment créé un nouveau projet python + django, j’ai passé 3 jours dessus avant de m’apercevoir que certains fichiers étaient indentés avec des espaces et d’autres avec des tabulations !

Ça ne dérange ni python, ni Sublime Text, ni la personne qui code d’avoir des fichiers mixés. Cependant, il est toujours nécessaire d’appliquer la même convention au sein d’un même fichier, et il vaut mieux comprendre avec précision le comportement et l’intelligence de ces nouveaux éditeurs de texte.

Malgré ces petites gênes qui subsistent, il semble donc que la rivalité millénaire entre les tabulistes et les espaciens s’estompe progressivement, ce qui est à mon avis une bonne chose.

Strips-Indentation-600-final

 

Le réconfort

Maintenant que vous connaissez cette subtilité, à vos claviers, mesdames les codeuses et messieurs les codeurs !

moretomeasure_by_fatty_lover-d5stsk4

La carte du jeu vidéo Odyssey, faite avec QGIS

Kalimera tout le monde.

(Si je ne m’abuse, Kalimera veut dire « bonjour » en grec. Je me suis toujours demandé pourquoi ça ressemblait à « Calimero », alors que ça n’a rien à voir. Un exemple de plus de deux mots ayant des prononciations similaires, mais n’ayant rien à voir entre eux. Ça m’énerve).

Ce grecôme a un rapport éloigné, mais existant, avec cet article de blog.

Pour diverses raisons, j’ai décidé d’explorer le logiciel de création de cartes QGIS (http:// qgis.org/fr/site/).

Et tant qu’à faire, autant explorer utile. Voici donc, pour votre plus grand plaisir, la carte du jeu vidéo Odyssey : http://qgiscloud.com/Recher/odyssey_map

map du jeu Odyssey faite avec QGIS

Odyssey, mais qu’est-ce ?

Un jeu vidéo sympa créé par la Motion Twin (http:// odyssey.muxxu.com/).

J’y ai trouvé bon nombre d’ingrédients que j’affectionne.

  • Un monde suffisamment gigantesque à explorer.
  • Le sentiment de « nettoyer » ce monde petit à petit. Bien qu’on puisse rester campé à combattre les mêmes monstres, il faut débloquer les lieux un par un pour pouvoir progresser. Ce débloquage suffit à donner le sentiment de nettoyage. Contrairement à des jeux comme World of Warcraft, où les mêmes monstres reviennent inlassablement, et où les seules choses qu’on débloque sont liées à soi-même (expérience, inventaire, …).
  • Une connivence avec le genre du Match-3. Le système de combat utilise une grille de rune, les actions effectuées par le personnage dépendent du type et du nombre de rune activées.
  • Du « lore » foisonnant. C’est à dire un univers original et cohérent, avec un passé, des histoires, des personnages, le tout fortement entrelacé. Il semblerait que ce soit devenu une spécialité de la Motion Twin : cette capacité à créer une situation et un univers autour de leurs jeux, mêmes les plus minimes, et ce avec très peu de moyens, parfois en quelques phrases. Ça mériterait un autre article.

Bon, en fait, je ne joue plus trop à ce jeu, car pas le temps, comme d’habitude, et plein d’autres jeux à jouer et tester. Mais il méritait que j’y consacre un peu d’attention.

screenshot du jeu Odyssey. Dolskin contre une Armanite puante. Shoté par Jery.

Comment utiliser la carte ?

Allez sur le lien indiqué plus haut. Ensuite, c’est la même ergonomie que du Google Map : molette de la souris pour zoomer/dézoomer, clic gauche + mouvement souris pour se déplacer, etc.

Du texte s’affiche sur certains objets, selon le niveau de zoom.

Pour enlever/ajouter des catégories de texte et d’objet, cochez les cases dans la partie gauche de l’écran.

Pour afficher une aide plus détaillée, cochez la case « texte__aide »

On ne peut pas faire de recherche. C’est bien dommage mais c’est ainsi. Je suppose qu’il faudrait que je prenne un abonnement payant de QGIS-Cloud pour obtenir des fonctionnalités supplémentaires.

La carte n’est pas finie, il y aurait encore beaucoup d’éléments à ajouter, corriger et vérifier.

Je n’ai pas prévu de retravailler dessus avant plusieurs mois (voire milliers d’années). Mais des gens motivés peuvent la copier et l’améliorer, car figurez-vous que les entrailles de ce projet sont principalement constituées de python.

En effet, QGIS est suffisamment classe pour être scriptable en python. J’ai donc inévitablement produit les données à partir d’un script, et non pas manuellement. Le tout est inévitablement sur mon github, à forker comme bon vous semble : https://github.com/darkrecher/Odyssey-Map.

Et sinon, j’ai posté un message à ce sujet dans le forum de la Motion Twin. Si vous avez envie d’y mettre un petit mot, n’hésitez pas. Pour l’instant, ça n’a pas spécialement suscité de réactions. Parlerais-je dans le vide ? Écrirais-je dans l’espace infini pour rien ? Euh… C’est pas une nouveauté.

Dessin femme dans l'espace avec des feuilles de papier

Les paroles s’envolent. Les écrits s’envolent. Dans le vide.

Hibernation momentanée

Depuis l’existence de ce blog, j’ai essayé de me tenir à un article par mois minimum. Je vais devoir entorser cette règle. J’ai actuellement une quête annexe assez importante dans le monde réel, qui me prend beaucoup de temps. Si je la réussis, je vous en parlerai, sinon, prout.

Réussie ou pas, cette quête se termine aux alentours du mois de juillet. Ça veut dire pas d’article d’ici là. Je ferais juste un mini-blabla pour le Raffarin Pète-Burnes Memorial Day, il y a des traditions séculaires qu’on doit respecter en toute circonstance.

Bon courage, j’espère que cette carence de Réchèr ne vous affectera pas trop. Pour rester dans le thème de l’article, voici Mandy, une déesse grecque.

2656-greek-bbw-goddess-3 Mandy Greek Goddess BBW

De la 3D avec pyglet

Salut à vous, chers amis multi-dimensionnels !!

En ce moment, j’entrepose et je documente sur mon compte github tous mes trucs de code. J’ai commencé par les plus récents, et je remonte progressivement dans le temps et dans mes joyeux souvenirs.

Mais c’est un peu fastidieux, et pas très valorisant car je ne fabrique rien de nouveau. Je me suis donc offert des petites vacances créatives au milieu de ce travail d’archivage, ce qui a résulté en une démo 3D, faite avec python + openGL + pyglet.

screenshot_cube

screenshot_icosahedron

Et devinez quoi ? Je l’ai entreposée et documentée sur mon compte github !
https://github.com/darkrecher/Geode-Sweeper

Certes, y’a pas grand chose. On peut tourner autour d’un objet (un cube arc-en-ciel ou un dodécaèdre, au choix), et c’est tout. De plus, je n’ai pas fait d’exécutable. Pour tester, vous devrez installer le bataclan nécessaire.

Je vais me garder ce machin sous le coude dans le futur but de concrétiser une idée de jeu absolument géniale : un démineur sur une géode. D’où le nom du repository : Geode-Sweeper.

Je ne vous en dis pas plus, mais pour vous faire patienter, voici des nichons géodésiques.

lara13

Avant, je ne voulais jamais parler publiquement de mes créations tant qu’elles n’étaient pas finies. Mais je me suis rendu compte que c’était un peu idiot, d’autant plus que quand je parle, c’est principalement dans le vide. J’ai donc décidé de décrire mes créations dès le début de leur création (ha ha ha). Le souci, c’est que Geode-Sweeper, je l’ai non seulement pas fini, mais carrément même pas commencé.

Donc je ne peux pas vous en dire plus. Pour vous faire repatienter, voici des fesses en polygone.

The-10-Most-Ridiculous-Victoria-Secret-Fashion-Show-Costumes

Ce blog vous a habitué à un bien meilleur patrimoine concernant les images érotiques. Pour me rattraper et vous faire rerepatienter, voici une jolie codeuse python.

python_girl_boobs

Sans transition :

Jacques Chancelle et tombe

Comme vous le savez, Jacques Chancelle est mort.

Je ne sais pas exactement qui est ce mec, et je dois avouer qu’il ne m’intéresse pas plus que ça. Mais ça m’a rappelé un souvenir rigolo.

Il y a environ 25 ans de ça, je me distrayais avec un jeu vidéo nommé « Tera », catalogué, déjà à cette époque, dans la catégorie « vieux et un peu pourri ».

screenshot du jeu vidéo Tera, de Loriciel

Lorsqu’un des personnage mourait, un texte indiquait en bas de l’écran : « Machin chancelle et tombe… ». Je-sais-plus-qui avait alors dit « haha, Jacques Chancelle, lol ! ». (Enfin à l’époque on disait pas encore « lol », mais l’idée est là, m’voyez).

Du coup, j’avais créé un personnage du nom de « Jacques », et on s’était trop lolé quand il a mouru, car le jeu a dit : « Jacques chancelle et tombe ». Hahaharg !!

Ici et maintenant, devant vous, je jure que lorsque le Revenu de Base Inconditionnel sera mis en place en France, je rejouerai à ce jeu, j’en décortiquerai les mécanismes, et publierai la solution dans un article de blog. Et alors, on retiendra de Jacques Chancelle sa contribution sérendipitesque à ce superbe jeu qu’est Tera.

Ouais et Bonne Année sinon.

Kawax : mon appel à devenir un martyr de Candy Crush.

Historique

Il y a quelques années, après avoir terminé Blarg, je m’étais lancé dans la réalisation de Kawax. Un jeu vidéo, non pas de type match-3, mais de type « match sum(x) ».

Puis j’ai abandonné son développement pour un faisceau de raisons : le fameux « quotidien » dont on nous rebat les oreilles, le fait de m’être fait jeté comme un malpropre de ma mission d’ouvrier-codeur, le fait d’avoir jeté comme une malpropre la boîte à viande d’informaticien qui m’employait à cette époque, le code du jeu qui commençait à devenir un peu bordélique, etc.

Disgression : je continue de penser que dans l’ensemble, je code pas trop comme une porcasse, mais parallèlement, j’apprends d’autres techniques, ce qui me permet de me rendre compte que ce que j’ai fait dans le passé n’est pas toujours génial.

Ce n’est pas le premier projet que j’abandonne, et sûrement pas le dernier. Mon disque dur est rempli de petits avortons que j’ai désiré, rêvé, chéri et élevé pendant un certain temps, pour ensuite les laisser se refroidir et se figer tel des petits enfants trisomiques malformés qui auraient atterris chez les Courjault.

Bbabord

Seulement voilà, Kawax, j’y avais passé un certain temps (6 ou 7 mois), et le principe du jeu est relativement original. Ça m’embêtait de voir tout ce Travail non rentabilisé et ne me procurant pas la récompense de flattage d’ego que j’espérais au départ.

Juste pour voir, j’ai ressorti ce petit avorton de création de son congélateur. Il était bien mal en point. Si je l’avais lâché en l’état dans la nature difficile et impitoyable des œuvres vidéoludiques indépendantes, il n’aurait pas tenu 10 secondes, et aurait probablement fini asphyxié entre deux poubelles suite à une insuffisance pulmonaire, des vautours lui dévorant joyeusement les joues et les cuisses.

Alors je l’ai repris en main, je lui ai consacré un peu de mon temps et de mon amour, j’ai vissé des petites roulettes à la place de ses pieds atrophiés, et j’ai scotché quelques bouts de métal pointus à ses gencives. Ainsi, il pourra ramper avec ces substituts de dents, se défendre contre les vautours et espérer rester vivant plus d’une minute dans le monde extérieur.

Photo de la boîte de jeu, même si c'est un objet qu'existe pas.

Photo de la boîte de jeu, même si elle n’existe pas.

Récupérer le jeu

Je l’ai enregistré sur le site IndieDb. Vous pouvez télécharger l’exécutable Windows ici : http://www.indiedb.com/games/kawax/downloads/kawax-v01-for-pc

Et l’exécutable Mac OSX ici : http://www.indiedb.com/games/kawax/downloads/kawax-v01-for-mac

L’installation est assez simple : télécharger, décompresser le fichier, double-cliquer sur l’exécutable.

Lorsque le menu principal du jeu s’ouvre, appuyez sur la touche « 1 » pour démarrer le tutoriel.

Screenshot du tutoriel. C'est beau hein ?

Screenshot du tutoriel. C’est beau n’est-ce pas ?

Il n’est pas possible de revenir au menu principal après qu’une partie soit commencée. Pour tester un autre mode, il faut arrêter et relancer le jeu. Veuillez nous excuser pour ce désagrément.

J’ai mis tout le code source, les ressources graphiques, les sons, etc. sur mon github : https://github.com/darkrecher/Kawax

Le repository comporte une grosse doc de conception, décrivant comment j’ai structuré le code. Car même s’il est un peu bordélique, au moins, tout est décrit.

Je vous ai également fait cadeau d’un brouillon, regroupant les idées que je voulais mettre dans le jeu. J’avais imaginé une bonne quantité de variantes, d’objets, de super-pouvoirs, … N’hésitez pas à vous servir.

screenshot_indiedb_02

Ce que vous pourriez faire pour être gentils

Comme vous le savez, je suis constamment en recherche de flattage d’ego, voire de dons en brouzoufs. Je serais donc très heureux que vous fassiez une ou plusieurs des gentilles actions suivantes :

  • De base : télécharger et essayer le jeu.
  • Mettre une étoile sur mon repository github
  • Donner une note au jeu sur IndieDb. Même une pourrie, ce sera déjà ça. Pour l’instant, il n’y a aucune note.
  • Flattrer :

Bouton Flattr pour mon jeu Kawax

  • Me filer des bitcoins, ou une autre crypto-monnaie :
    • Bitcoin (BTC) : 12wF4PWLeVAoaU1ozD1cnQprSiKr6dYW1G
    • Litecoin (LTC) : LQfceQahHPwXS9ByKF8NtdT4TJeQoDWTaF
    • Dogecoin (Ð) : DKQUVP7on5K6stnLffKp3mHJor3nzYTLnS
    • Next (NXT) : 12693681966999686910

 

Cette dame boit du café, donc elle joue à Kawax.

Cette dame boit du café, donc elle joue à Kawax.

Et le rapport avec Candy Crush ?

Vous avez inévitablement entendu parler du jeu vidéo « Candy Crush Saga ». Ce que vous savez peut-être moins, c’est que King, la société éditrice de ce jeu, passe régulièrement pour une salope géante du patent trolling. Ses dirigeants sont suffisamment blindés contre l’auto-dérision et la prise de recul pour être capables de jouer sur les deux tableaux de la lame à double-tranchant du patent trolling :

C’est d’autant plus amusant qu’ils abandonnent systématiquement leurs charges après force procès endiablés, qui doivent certainement coûter plusieurs myions de brouzoufs comme tout procès endiablé qui se respecte.

Le monde n’a pu s’empêcher de réagir à ces abracadabrantesques pantalonnades, avec, par exemple, le site CandyJam (http:// itch.io/jam/candyjam).

Le King aime l'argent

Le King aime l’argent

C’est là où je me dis que se faire attaquer par King est une chance incroyable. Ça vous coûte au final pas grand-chose, puisqu’ils abandonnent à la fin, et vous passez pour le gentil menacé injustement par le grand méchant (David et Goliath, tout ça). Bref, devenir un martyr de Candy Crush et de la société King, c’est un énorme coup de pub.

Kawax s’apparente à un jeu de match-3, comme Candy Crush. Mais l’idée maîtresse de mon jeu, le fameux « match sum(x) », me semble assez originale. À ma connaissance, aucun autre jeu ne l’a exploitée. Je suis donc le candidat idéal pour me faire plagier par King.

Mon jeu est placé sous deux licences différentes, au choix : Licence Art Libre ou Creative-Commons-By. Le plus simple, pour reprendre mes idées, est d’utiliser la CC-BY. Il faut donc me citer, ce que King ne daignera bien évidemment pas faire. C’est là où, une fois de plus, la rocambolesque bataille d’avocats aura lieu, et je deviendrais célèbre tout en ayant une image de gentil.

Donc, annonce publique bien forte pour que tout le monde entende :

Vas-y King, viens plagier mon jeu. J’ai besoin de ton martyrisage.

En contrepartie, King, je suis prêt à racheter quelques-unes de tes actions pour t’aider à te remettre à flots en Bourse. Par contre je paye qu’en crypto-monnaie. Désolé c’est tout ce que j’ai.

Lisa Canon. Secrétaire sexy BBW.

Cette femme est une working girl, donc elle joue à Kawax.

Absolument rien à voir, mais à signaler quand même.

« KAWAX ?

Tu peux nous rappeler la définition de Kawax, Liliane ?

Oui t’as de très belles lettres dans ton mot mais la deuxième condition du scrabble c’est que ça veut dire quelque chose. »

Pierre Palmade

Merci à Josmiley de chez pygame, pour son commentaire qui, il faut le reconnaître, est plutôt pertinent. (http:// pygame.org/project/2916/#comment-1549266824)

Zut, maintenant Pierre Palmade va vouloir m’attaquer en justice pour usurpation de marque. Devenir un martyr de Pierre Palmade, c’est bankable ou pas ?

Attendez, j’aère, tel le ver de terre

Bougeoir tout le monde.

Vous devez croire que je fous pas grand chose sur mon blog en ce moment. Détrompez-vous, chers amis. Tel le ver de terre gluant, se tortillant et creusant des petits tunnels avec sa bouche, je fais des choses qui ont une importance, mais qui ne se voient pas.

(Je me permet de rappeler que l’aération de la terre par les vers de terre est primordiale pour la faune/flore/écologie/hippie de notre planète).

serpent-pénis

Un ver de terre ? Un pénis ? Non, un serpent-pénis.

En ce moment, je reprends tous mes articles, je corrige les fautes et les tournures de phrase mal fichues, je vérifie les liens, je passe un coup de peinture, je ponce, je nettoie et donc, j’aère.

Bien entendu, je rajoute également des intermédiaires publicitaires sur la plupart des liens, car j’aime violer votre cerveau. Dès que j’ai tout fini, je donnerai plus de détail à ce sujet.

J’avais envie de tout relire du début à la fin, histoire de me faire une petite rétrospective personnelle de mes conneries. Ce blog a plus de 4 ans quand même. Tel un petit enfant trisomique nourri à la soupe populaire, il commence tout doucement à s’habituer au monde qui l’entoure et à vouloir attraper de lui-même les mouches collées à ses yeux, afin de s’offrir un supplément protéiné non négligeable. C’est beau la vie.

Là j’ai plus que 10 articles à rebidouiller. Après, je passe à autre chose. Je ne ne manquerais pas de vous en parler ici-même.

Shanice Richards

Shanice Richards sera également ici-même.

Si vous avez peur de vous ennuyer en attendant de nouveaux éjaculats textuels et programmatiques de ma part, vous pouvez patienter avec mes contributions au blog de Sam&Max. En voici la liste :

Y’a aussi mes contributions au magazine 42, mais vous connaissez sûrement déjà.

Et il y a ça aussi (http:// www. kisskissbankbank.com/help-us-bring-basic-income-closer-to-reality-in-europe–2?ref=search).

Je détaille pas plus, sinon on risque de dire que je vous bourre le crâne avec le Revenu de Base Inconditionnel. Suivez le lien. Si vous n’en avez pas envie, suivez le bœuf. (Expression qui date au moins du 14ème siècle, dont je ne connaît absolument pas le contexte d’utilisation, mais on n’est plus à ça près).

Burrito Bison

Bon d’accord, c’est pas un bœuf, c’est un bison. Suivez-le quand même.

À bientôt !

Ça destructure du schtroumpf clignotant à coups d’extincteur !!

Alors ces fêtes, bien ou bien ? Si vous avez chopé la gastro ces deux dernières semaines, sachez que c’est de moi qu’elle est partie. Ouais, je suis le patient zéro. Me remerciez pas, c’est naturel. (J’espère que je ne vous apprends rien lorsque j’annonce qu’une gastro, c’est naturel).

schtroumpf_pompier

Schtroumpf destructuré à coup d’extincteur.

Je me dois de vous expliquer l’origine du titre croquignolet de cet article. Pour cela, il faut remonter à un peu plus avant dans le temps.

Un peu plus avant

Je suis (du verbe suivre) avec une assiduité certaine le blog geeko-pythono-sexo-philosophile « Sam & Max ». Dans un de leur récent article, ils listent des services, gratuits et payants, permettant d’héberger des applications web (http:// sametmax.com/quel-hebergement-web-pour-les-projets-python/).

Je cherchais ce genre d’infos, car j’ai quelques petites idées de bidouilleries à offrir à l’internet. Malheureusement, je n’ai aucune expérience dans ce domaine. Figurez-vous que, malgré tous les trucs informatiques étranges que j’ai fait jusqu’à maintenant, je n’ai jamais eu besoin de créer/tuner/jackiser intégralement un site. Les services préconçus existants m’ont toujours convenu : ce blog, le magazine 42, SourceForge, InLibroVeritas, Ulule, IndieDb, etc.

Il y a longtemps de cela, je m’étais fait un site perso (avec un fond vert), hébergé par Alice/Tiscali. C’était du HTML statique, et je n’avais pas profité de toutes les folles possibilités de customisation offertes, alors que y’avait moyen d’y mettre du javascript, et peut-être même du php. Je n’ai pas honte de ce site perso, il brahmapoutrait du pingouin Linux freudien à la kqlqsh. C’était simplement une autre époque.

Or donc, pour tester et découvrir ces services d’hébergement, j’ai créé un expressionotron, c’est à dire un générateur de phrases d’exclamations époustouflantes. Et c’est ce que j’ai utilisé pour obtenir le titre de cet article.

J’ai codé la chose en python, avec la librairie Flask, et je l’ai encastré chez PythonAnywhere. Allez-y voir, et n’hésitez pas à marteler à outrance la touche F5, afin d’avoir une foule de formules cosmopolites à ressortir « en société » : http://recher.pythonanywhere.com/expressionotron

Des pythons (flasques) dans des flasques

Des pythons (flasques) dans des flasques.

Un peu après, mais quand même toujours avant

Fier de mes exploits, je poste un commentaire chez Sam & Max, annonçant la toute nouvelle existence de mon œuvre. Le concept est accueilli à bras ouvert, et Sam (le chien) me suggère de créer un twitter bot émettant une phrase à la con par jour.

Je connais encore moins les twitter bot que les bidouilleries web, mais puisque je suis en phase « découverte de nouvelles teshnologies », je me lance dans cette entreprise.

Comme on pouvait s’y attendre avec le fabuleux langage python : il y a une librairie pour ça. Elle se nomme, et c’est fort à-propos : twitter (http:// code.google.com/p/python-twitter/).

Cerise sur la choucroute, les gentils lutins de chez PythonAnywhere l’ont pré-installée. Quelques recherches internetienne, quelques lignes de code, quelques tests, et voilà-t-y pas qu’un robot à touitte sort vaillamment de mon cerveau (à défaut de sortir d’un robot-utérus fait en métal liquide).

Le premier twitter bot, créé en 1739

Le premier twitter bot, créé en 1739.

Je vous invite donc à consulter, et surtout à vous abonner au compte suivant : https://twitter.com/expressionotron

Je suis bien content d’avoir réalisé tout ça. J’ai découvert des nouveaux trucs, et je peux maintenant mettre sur mon CV : « expert en programmation web ».

Ces exploits ne méritent pas vraiment un article décrivant en détail les aspects techniques. De la documentation sur Flask et Bottle, il y en a à la pelle (voire à la bouteille). PythonAnywhere a son propre tutoriel intégré dans le site. Quant au twitter bot, j’ai trouvé assez rapidement un exemple, incluant du code et des infos sur les mystères de l’OAuth. Il est par là (http:// wilsonericn.wordpress.com/2011/08/22/tweeting-in-python-the-easy-way/).

Si vous insistez en me mettant plein de commentaire, je ferais un tutoriel maison ici. Mais honnêtement, je pense que vous n’avez pas besoin de plus que ce qui existe déjà ici et là. Bonne débrouille !

L’idée originale de l’exressionotron ayant été piquée chez nioutaik, je l’ai bien évidemment crédité. Je me suis également fendu d’un joyeux clin d’œil : l’avatar du twitter bot est une version pixel-art-paint minimaliste de l’OMG-tortoise, égérie (s’il en est) de l’expressionotron nioutaikien (http:/ www. nioutaik.fr/index.php/2007/09/06/386-l-expressionotron).

Coïncidence ? Mmmhh... Pas sûr.

Coïncidence ? Mmmhh… Pas sûr.

Et pour après ?

J’ai envie d’améliorer le concept, mais je ne le ferais que si des gens s’y intéressent, et sont prêts à flatter mon ego en échange de mon travail. Car : oui ! C’est du Travail !

Au fur et à mesure que le twitter bot atteindrait de plus en plus de followers, j’augmenterais les fonctionnalités et la diversité des phrases rigolotes. Voici les étapes prévues :

  • Si j’ai 24 followers, je corrige les fautes d’orthographes, j’améliore la gestion de la seed, et je rajoute 50 verbes, 50 noms, 50 adjectifs et 50 trucs de fin. Sachant qu’il y a actuellement une centaine de chacun de ses éléments.
  • Pour 30 followers, je libère le code du site et le mets sur github. Mais je ne libèrerai pas encore les listes de mots.
  • Pour 40 followers, je corrige les fautes d’accord entre les noms et les adjectifs, et j’en profite pour rajouter une cinquantaine de noms, majoritairement féminin.
  • Pour encore plus de followers (nombre restant à déterminer), je rajoute encore des mots, et je les regroupe par champ lexical. Vous pourrez alors générer une expression spécial Star Wars, spécial Magic The Gathering, spécial jeux de rôles, etc. Vous pourrez également mixer plusieurs champs lexicaux.
  • Pour encore-encore plus de followers, je publie les listes de mots des premières versions, je rajoute d’autres champs lexicaux, je crée une interface permettant de construire manuellement son expression en piochant ce qu’on veut.
  • Il est certainement possible de trouver encore plein d’idées bien débiles. Les possibilités d’extension sont infinies.

Il y a déjà 14 followers, la première étape devrait être franchissable, j’ai bon espoir.

Alors, venez vous agglomérer, petits twittos. Faites comme les mannequins du site Scoreland, mettez-vous en file indienne et suivez-moi !

score_sixpack14

Ni avant, ni après, mais d’autre part

J’ai écrit deux articles de pythonneries sur le blog de Sam et Max. Je vous en parle plus tard.

Le magazine 42 est paru depuis le jour de la fin du monde. C’est le dernier numéro. Notre aventure s’arrête là. Il y aura bien sûr un petit article récapitulatif de ce que j’y ai fait, et quelques explications de cet arrêt.

Seed expressionotronatoriale du titre de cet article : 183058273_001

Seed du brahmapoutrage des pingouins Linux : 238201767_001

On va pas se laisser brahmapoutrer comme ça ! Quak quak !

On va pas se laisser brahmapoutrer comme ça ! Quak quak !

Dernière minute, de type « et merde ! »

Pas merci à ce putain de WordPress, de foutre automatiquement des liens là où j’ai absolument pas demandé qu’il en foute, et que faut justement PAS que y’en ai. Putain de bordel de connerie de truc de daube. C’est trop demander d’avoir juste du TEXTE SIMPLE dans un article comportant du TEXTE SIMPLE ?

Donc à partir de maintenant, les liens en clair, que je mets à côté des liens avec intermédiaire publicitaire, seront écrits en gris, italique, et SANS LE H DE « HTTP » ! Sinon ce connard de WordPress me les transforme automatiquement en lien cliquable, et je veux justement pas qu’il le fasse ! Je veux obliger les gens à cliquer sur les liens à pub, tout en donnant quand même la cible du lien, si jamais un jour l’intermédiaire publicitaire sus-mentionné a un problème, me claque entre les doigts ou me supprime mon compte pour une raison quelconque.

Et maintenant je vais devoir reprendre TOUS mes articles, pour corriger cette connerie. SUPER WORDPRESS, SUPER ! J’avais exactement besoin de ça ! Putain, heureusement que c’est gratuit, sinon je serais VRAIMENT en train de râler !

Plus qu’à espérer que personne n’invente de protocole intitulé « ttp », sinon je suis bon pour tout re-re-faire. TROP BIEN ! ÇA DÉPUCELLE DU ZOMBI NEURASTHÉNIQUE À LA PELLE À TARTE ! JE SUIS TROP HEUREUX!

Edit 2013-11-24 : Bon, j’ai trouvé une astuce un tout petit peu moins dégueulasse. Si je colle des espaces en plein milieu de l’URL, ça vire la mise en forme automatique. C’est ce que je suis en train de faire, sur tous mes articles.