Numérique : comment dépasser l’effet Wahou (jusque l’infini et au-delà) ?

Je n’étais pas très grand quand j’ai pu découvrir ce qu’était la visioconférence bien avant que l’on parle d’internet. Je me souviens de chapiteaux installés par France Telecom sur la place de Béthune, la ville où j’ai grandi et, du haut de mes 10 ans en 1986, je naviguais entre les différents prototypes présentés. Il devait y avoir le premier téléphone portable mais je ne m’en souviens plus. À la même époque, le maire de la ville, Jacques Mellick, faisait élever dans le quartier du Mont Liébaut l’IRCOM (Institut Régional de Communication). J’ai eu le privilège de le visiter et mes yeux ébahis ont pu découvrir des dizaines d’ordinateurs implantés un peu partout dans les salles, un espace bourré d’écrans et de « racks » qui devait préfigurer ce que serait un data center et, dans chaque salle, un décor digne d’un film de science-fiction. Inutile de vous décrire mon excitation. Elle était à son comble. Je n’ai malheureusement pas pu profiter du lieu, celui-ci ayant été ravagé par un incendie en 1989.

Ce fut mon effet « wahou », mon entrée dans le numérique. Par la suite, j’ai eu de la chance. Le fait de pouvoir aller régulièrement au théâtre m’avait poussé à plonger dans les bacs de musique classique, contemporaine et électronique de la médiathèque plutôt bien fournie. Mon père disposait dans ses bureaux d’ordinateurs que je squattais régulièrement, ayant dans mon cartable plutôt qu’un goûter un paquet de disquettes 5″1/4 acheté au centre commercial du coin. Enfin, mon collège possédait des ordinateurs un peu poussifs mais que j’appris rapidement à maîtriser grâce aux ouvrages de la médiathèque et à quelques magazines informatiques. Je me repens d’ailleurs en ces lignes (mais il y a prescription) d’avoir régulièrement « bidouillé » en cours de maths de 6éme lors des séances informatiques en modifiant le code source des programmes et leurs variables. De même, non, le « serveur » qui administrait la quinzaine de MO6 de la salle n’était pas capricieux ; j’en prenais simplement le contrôle. Par la suite, j’eus rapidement mon propre ordinateur (et même une imprimante, ce qui coûtait un bras à l’époque) et mes professeurs purent enfin goûter une accalmie bien méritée.

« Avoir de la chance » ne devrait pas être une condition. Je suis conscient d’avoir été privilégié et c’est loin d’être le cas de tout le monde. À l’époque, il n’était pas toujours si facile d’accéder au numérique malgré le déferlement des ordinateurs personnels (Amstrad, Amiga, Atari…) et des premières consoles (Atari 2600, NES, Master System…). Je rencontre parfois des personnes de ma génération qui ont tâté elles-aussi du BASIC, voire de l’Assembleur, non sans nostalgie. De mon temps, les jeunes… 😉

Le matériel informatique est aujourd’hui à profusion, ne serait-ce qu’au travers des téléphones portables dont on change comme de chemise (et c’est bien dommage) sans en avoir tiré un centième des possibilités. L’effet « wahou » se démocratise au travers de nombreuses initiatives et d’ateliers éphémères. Je suis moi-même amené à intervenir dans différents lieux pour quelques heures et la magie s’opère. Ensuite, est-ce que l’on a la chance ou pas de disposer du matériel nécessaire chez soi, d’être entouré de personnes pouvant nous aider, de vivre dans un environnement inspirant ou tout simplement d’avoir du temps de cerveau disponible pour cogiter non sur les soucis du quotidien mais sur de fantastiques projets ? La question ne devrait pas se poser. On ne peut pas agir à tous les paliers mais il est important de créer de prime abord des conditions qui permettent de faire perdurer cet effet « wahou ».

Que l’on s’entende bien cependant : je ne dénigre pas l’effet « wahou ». Il est nécessaire et primordial. Sans étincelle, pas de feu… Mais sans papier, petit bois et bûches, pas de feu non plus…

Comme d’habitude, pas de recette miracle mais quelques pistes de réflexion.

Primo, n’utiliser que des ressources disponibles facilement, voire gratuitement. En cela, les logiciels libres constituent une solution optimale. Je me souviens il y a plus de 10 ans avoir refusé d’animer un atelier consacré à la musique électronique. Motif : l’apprentissage d’une vingtaine d’heures allait bénéficier d’un matériel et de logiciels hauts de gamme dans un studio éphémère. Une fois l’atelier terminé, basta ! On laisse les jeunes sans ressources pour poursuivre. Rien ne me fait plus plaisir que de les entendre dire durant l’atelier « je vais continuer chez moi » et ce, quel que soit le milieu social. Bonjour Scratch, Code.org et l’extraordinaire catalogue de logiciels libres constitués par l’association Framasoft, Framalibre. Idem pour la documentation : ne pas partir sans laisser de pistes ou quelques liens.

Secundo, concrétiser. Attention ! J’ai bien écrit « concrétiser » et non pas « tangible » comme la mode le veut actuellement, n’en déplaise aux tenants des fameuses « interfaces tangibles » (une télécommande est une interface tangible pour info…) . Bien que les deux termes soient présentés comme synonymes, il n’en est rien dans l’esprit. Tangible, c’est pouvoir toucher, être face à un objet qui existe. Concret est un peu plus philosophique et, à mon sens, plus intéressant. L’utilisation du terme « tangible » semble plus réanimer un vieux débat inintéressant entre manuel et intellectuel, entre ceux qui fabriquent et ceux qui ont le nez dans l’ordinateur. C’est bien la question dont on se fiche. L’important est de concrétiser, c’est-à-dire de créer de l’intérêt pour l’apprenant, pour qu’il ait envie de poursuivre. Parlons par exemple de mathématiques et de géométrie. S’il utilise un théorème quelconque pour modéliser et imprimer une forme en 3D ou développer une animation en Processing ou, plus hardcore, coder un script bash pour vérifier la faisabilité d’un triangle en fonction de la longueur des trois côtés, l’important n’est pas le résultat mais bien l’intérêt qu’il y trouve. Je me souviens d’un collégien qui m’avait envoyé balader lors d’un atelier code tout au long de l’année scolaire. Je me suis cassé les dents plusieurs fois jusqu’à ce qu’il m’explique qu’il faisait du rap. Ok ! Nous avons codé les rythmes et il s’est raccroché au groupe.

Tertio, créer des espaces de créativité, des « hackerspaces ». Plus facile à écrire qu’à faire car tout dépend non pas de votre bonne volonté, mais de celle du commanditaire. Sans avoir l’air de jouer au commercial ou de donner des injonctions, j’essaie toujours de m’intéresser à leurs projets futurs. Que va devenir l’espace que nous avons utilisé ? Quels sont les ateliers proposés ? Y a-t-il un accès libre ? Si un projet plus large est possible, tant mieux. Aidez-le à grandir, à tendre vers le hackerspace, c’est-à-dire un espace de possible, de créativité, de partage de ressources, de connaissances, de matériel, de culture…

Enfin, est-il utile de l’écrire ? Certes, on peut avoir une tendance solitaire (mea culpa ou pas 😉 ) mais il est souvent difficile de faire bouger les choses seul. S’il est possible de créer de la communauté autour d’un projet, il y a de fortes chances que l’action se poursuive. Trois-quatre gamins qui se retrouvent régulièrement dans une médiathèque, c’est déjà une communauté que bien souvent vous retrouvez sur d’autres événements. Autant en profiter et les aider à grandir sans oublier d’impliquer les intervenants, animateurs, parents… qui les entourent.

Scratch : comment analyser une chaîne de caractères et la valider

Scratch n’offre pas de manière naturelle des commandes permettant de travailler avec des chaînes de caractères ni ce que l’on appelle des « regex » ou expressions régulières permettant de rechercher des motifs particuliers dans un texte. L’opération n’est cependant pas impossible. En effet, travaillant depuis peu à la création d’un interpréteur Logo sous Scratch, tout simplement un petit programme permettant de jouer et dessiner avec la tortue comme dans le bon vieux Logo ou des logiciels comme Géotortue, j’ai été confronté au problème de la gestion des erreurs de frappe. Faire un interpréteur est en soi assez simple. Gérer les possibles erreurs faites par l’utilisateur relève par contre un peu plus du parcours du combattant.

Ainsi, par exemple, j’ai créé une fonction nommée « tn » pour « turn » qui est suivie d’un nombre de degrés. Celle-ci fait tourner la tortue à gauche ou à droite en fonction du nombre de degrés entrés, le sens naturel choisi étant celui des aiguilles d’une montre.

Sont considérées comme correctes les syntaxes suivantes :

  • tn 9 -> tourne de 9 degrés ; de même que tn -9 (cette fois, dans le sens inverse des aiguilles d’une montre)
  • tn 25 -> tourne de 25 degrés ; de même que tn -25
  • tn 132 -> tourne de 132 degrés ; de même que tn -132

Il nous faut donc vérifier que les commandes entrées par l’utilisateur correspondent bien à ce schéma.

Première étape avant de vérifier le reste de la séquence, s’assurer que la commande entrée est bien « tn ». Pour cela, on analyse les deux premières lettres de la réponse.

Une fois « tn » validée, nous pouvons vérifier la longueur de la séquence. L’exemple « tn 9 » nous montre que la taille minimum est 4 caractères et avec l’exemple « tn -132 » le maximum 7 caractères. Imbriquons un nouveau test dans la commande « si … sinon … ». Je choisis de les imbriquer pour faire au plus simple. C’est un peu moche mais nous verrons par la suite une méthode permmetant de d’obtenir quelque chose de plus cohérent et simple à lire.

Rien cependant ne m’empêche de taper « tnhkdj » et de recevoir le message « OK ! ». Nous savons que le troisième caractère doit obligatoirement être un espace. Ajoutons donc un nouveau test en dessous du premier.

Une fois ces tests passés, nous savons que notre commande est valide. Reste à savoir si l’utilisateur n’a fait aucune erreur dans la saisie du paramètre. Nous allons vérifier caractère par caractère. Les caractères acceptés sont « 0123456789-« . En dehors, point de salut. La commande sera automatiquement rejetée. Pour ne pas trop alourdir le code, il vaut mieux créer une fonction à part et l’utiliser dans le code principal.

C’est là que cela se complique un peu. Il me faut d’abord créer 5 variables. Petit rappel sur les noms variables : une variable peut porter n’importe quel nom mais il convient de lui donner un nom explicite de manière à pouvoir se souvenir facilement de son rôle. Personnellement j’ai tendance à reprendre sans cesse les mêmes noms de projet en projet afin de ne pas me perdre. Voici mes variables pour analyser la réponse de l’utilisateur :

  • string : la chaîne de caractères à analyser, correspondant à tout ce que l’utilisateur va entrer après « tn « 
  • count1 : un premier compteur utilisable dans une boucle
  • count2 : un second compteur
  • chars : la liste des caractères acceptés, soit « 0123456789-« 
  • verify : un compteur permettant de comptabiliser le nombre de tests validés ; si le paramètre entré est par exemple « -123 », soit 4 caractères, et que « verify » est égal à 4, on sait que les 4 caractères ont été validés ; si « verify » est égal à 3, un caractère est faux et invalide complètement le paramètre tapé par l’utilisateur (par exemple « -12a »)

Première étape : éliminer « tn  » de la chaîne de caractères à analyser, soit ne s’intéresser qu’au reste de la chaîne à partir du caractère n°3.

Après utilisation de cette commande, ma variable « string » est bien égale à « -123 » si je tape « tn -123 ». Il s’agit maintenant de vérifier si chaque caractère de cette variable est bien compris dans l’ensemble « chars », soit « 0123456789-« .

On commence par réinitialiser le premier compteur. Le code suivant comporte deux boucles.

La première passe en argument les caractères un à un de la chaîne, soit dans le cas de « -123 » : « -« , « 1 », « 2 », « 3 ». La seconde compare chacun de ces caractères aux caractères contenus dans la variable « chars ». Si l’un des tests est ok, c’est-à-dire que le caractère examiné est trouvé dans la variable « chars », on augmente la variable verify de 1.

Comme vous l’avez compris, un test validé = 1 point. Pour que le test soit complet, il faut que le nombre de points corresponde à la longueur de la chaîne de caractères. On vérifie cela avec une nouvelle condition « si … alors … sinon … ».

Petit conseil au passage: il vaut mieux avant intégration du script dans le programme utiliser des messages d’erreur personnalisés, chaque erreur générant un message particulier. Cela facilite la vie au moment de débuguer. On évite aussi de masquer l’affichage des variables tant que le script n’est pas fini.

Avons-nous d’ailleurs terminé ? Presque. Il reste un détail à régler : corriger la variable en cas de mauvaise valeur. Par exemple, dans notre cas, tourner de 360 degrés ou plus serait stupide car cela revient à faire un tour complet et plus. Pour revenir à une valeur plus raisonnable, il suffit de faire une division par 360 ou -360 en cas de valeur négative et de conserver le reste.

Pour éviter d’imbriquer des « si … alors … sinon … » à répétition, il suffit de s’inspirer de la méthode utilisée avec la variable « verify ». Si l’on attribue un point à chaque test validé, le score obtenu à la fin permettra de déterminer si le texte entré apr l’utilisateur est valide (par exemple, 10 tests effectués et score = 10 -> texte valide ; 10 tests effectués et score = 7 -> texte non valide).

Lien pour télécharger le script.

#metoo mais pas que : quand les filles doivent se justifier…

C’est la période. #metoo sur les réseaux sociaux face à ces harcèlements inadmissibles. Mais pas que… Il y a aussi le coté moral. Dans le domaine musical, je suis souvent surpris de voir que dès qu’une vidéo sur Youtube par exemple met en scène une djette ou une artiste effectuant quelques prouesses, il faut systématiquement décortiquer, vérifier, zoomer, traquer chacun de ses gestes pour voir s’il n’y a pas tricherie, fake. Les commentaires regorgent de questions existentielles sur le sujet. Si en sus elle est jolie, inutile de chercher ; la sentence tombe rapidement : il y a fake. Peu importe que l’on en ait la preuve ou pas. Curieusement, si c’est un homme, la question ne se pose pas.

Quand je lance ce sujet, on me renvoie souvent en référence la vidéo de Paris Hilton aux platines où l’on voit clairement un technicien à quatre pattes devant la console en train de faire les réglages, tandis que Paris réagit à contretemps. Certes… Mais c’est Paris Hilton et les fakes sont loin d’être l’apanage des demoiselles. Des djs ou groupes masculins en pleine tricherie, on peut en trouver à la pelle. Je me souviens d’un groupe un soir de fête de la musique qui maniait si bien la batterie électronique, les synthés et autres contrôleurs midi. De l’endroit où je me trouvais à l’intérieur du bar, je pouvais apercevoir la seule piste ouverte sur leur impressionnante table de mixage qui correspondait à … Quicktime ! C’était du playback pur et dur qui ne les empêchait pas de lever les bras régulièrement en signe de victoire et de faire d’impressionnants moulinets de mains sur les machines.

Ce soir, petit hommage à toutes celles qui m’ont marqué, me marquent ou que j’aime simplement écouter dans le monde de la musique plus ou moins (ou pas) électronique / contemporaine / expérimentale / noise / bizarre. En vrac mais sans pouvoir faire autrement que de commencer par Björk que l’on a souvent réduite au statut de « chanteuse certes aux capacités vocales impressionnantes, mais heureusement assistée de mâles compositeurs », alors qu’elle met énormément la main à la pâte. Certains albums sont quasi-entièrement de sa main, tout au moins pour la phase initiale, suite à laquelle elle invite ses amis à s’en emparer. Si tu me lis, pense à moi pour le prochain album ou les remixes… Merci. 😉

Artiste inclassable, d’une grande simplicité et que j’ai eu le grand plaisir de rencontrer peu de temps avant sa mort : Liza N’Eliaz.

Je l’ai découverte chanteuse du groupe Shane Cough et je suis toujours aussi fan de ses différents projets, Clytem Scanning.

Elle a bercé une partie de ma jeunesse teknoïde et brisé quelques barrières dans ce monde, Miss Djax.

Sans oublier sa comparse, Marusha, trop souvent réduite au statut de « pop-star ». C’était une formidable djette.

Je pensais cette période enterrée quand j’ai découvert Paula Vélez et toute la bande de djettes qui perpétuent une techno froide et hypnotique comme je les aime (Fernanda Martins <3, Sheefit, Nina Kraviz, Fatima Hajii, Marika Rossa, Ksenia Meow…).

Artiste disparue elle aussi malheureusement, qui constitue une de mes premières claques musicales, Ofra Haza.

Mention spéciale à Sally Ann de Paula Powered avec qui j’ai eu l’occasion de participer à un débat sur les licences libres lors des dernières RMLL.

Dans le domaine de la musique Chiptune, Toriena, qui me fait toujours sourire, tellement elle déborde d’énergie.

Plus proche géographiquement, la voix mystérieuse d’Alex de Drive with a dead girl.

J’ai rencontré sa voix par hasard sur un marché. Depuis, difficile de décrocher, Mae Karthauser.

Sa musique minimaliste m’a accompagné pendant des heures et des heures, Eliane Radigue.

Respect éternel envers celle qui a su dominer si bien le bruit, Nic Endo.

Enfin, mon coup de coeur actuel, une exploration plus que captivante des travaux de Shiva feshareki.

Je ne saurais finir sans avoir une petite pensée pour toutes les gamines que j’ai pu avoir en atelier, qui ont tâté de la boite à rythmes, du synthétiseur, du séquenceur, qui ont exploré leur école / collège micro à la main. Merci les filles ! Ne vous laissez pas impressionner !