utiliser les pages GitHub

utiliser les pages GitHub

GitHub est très bien pour stocker du code dans ses versions successives. J’ai dĂ©couvert rĂ©cemment qu’il est aussi très bien pour mettre Ă  disposition le rendu de ce code dans un navigateur, par l’intermĂ©diaire des « pages » GitHub.

Rendons Ă  CĂ©sar…

J’ai fait cette dĂ©couverte en regardant de près cette publication sur LinkedIn de Lionel Miszka . Il y exposait comment le modèle o3-mini-high de chatGPT lui avait permis de crĂ©er un outil pĂ©dagogique intĂ©ractif sans coder. L’article est très intĂ©ressant lorsqu’on s’intĂ©resse Ă  l’IA. Mais il est Ă©galement intĂ©ressant lorsqu’on aime un peu coder et qu’on a envie d’utiliser mieux GitHub. En effet Lionel Miszka a choisi d’hĂ©berger son outil pĂ©dagogique sur github, ici.

Et pour crĂ©er une page j’ai tout simplement demandĂ© Ă  Mistral AI de me dire comment Lionel avait pu faire ça…

Question n°1 : Peux-tu regarder et commenter le dépôt https://github.com/lionelmyszka2/ ?

Question n°2 : Je vois que Lionel Myszka a Ă©galement des url oĂą ces projets en html sont visibles. Par exemple le projet ‘lentille » est visible sur https://lionelmyszka2.github.io/lentille/. Comment puis-je faire quelque chose de semblable Ă  partir de mon propre compte github ?

Mistral m’a expliquĂ© l’essentiel de ce qui suit !

Si vous n’avez pas de compte GitHub

  1. Créer un dépôt sur GitHub :
    • Connectez-vous Ă  votre compte GitHub.
    • CrĂ©ez un nouveau dĂ©pĂ´t (repository) pour votre projet. Vous pouvez le nommer comme vous le souhaitez, par exemple mon-projet.
  2. Ajouter vos fichiers HTML :
    • Clonez le dĂ©pĂ´t sur votre machine locale ou tĂ©lĂ©chargez-le.
    • Ajoutez vos fichiers HTML, CSS, JavaScript, et autres ressources nĂ©cessaires Ă  votre projet dans le rĂ©pertoire du dĂ©pĂ´t.

Dans mon cas j’avais dĂ©jĂ  un compte GitHub, j’ai simplement créé un « fork » du dĂ©pĂ´t de Lionel. Il est visible ici : https://github.com/aldelpech/lentille. J’y ai apportĂ© deux modifications mineures :

  1. ajout d’un lien en MarkDown dans le README pour aller plus facilement vers la dĂ©mo
  2. Ajout du lien vers la démo originelle de Lionel Myszka, pour ne pas le plagier, dans le fichier html.

Comment créer des pages GitHub ?

  1. Configurer GitHub Pages :
    • Allez dans les paramètres (Settings) de votre dĂ©pĂ´t sur GitHub.
    • Dans la section « Pages » (ou « GitHub Pages »), sĂ©lectionnez la branche que vous souhaitez utiliser pour le site (souvent main ou master).
    • Choisissez le dossier racine (/) ou un dossier spĂ©cifique (comme /docs) oĂą se trouvent vos fichiers HTML.
    • Cliquez sur « Save » pour enregistrer vos modifications.

Dans le curseur « deploy from a branch » j’ai choisi « main ». Puis cliquĂ© sur le bouton Save qui apparaĂ®t alors :

et maintenant si je vais visiter https://aldelpech.github.io/lentille/, le « fork » du projet de Lionel est visible, et interactif.

Est-il possible d’intĂ©grer ces pages ailleurs ?

Mistral me dit que oui, en intégrant le code suivant dans cette page WordPress :

<iframe src= »URL_DE_VOTRE_PAGE_GITHUB » width= »100% » height= »600px » style= »border:none; »></iframe>

Pour ce faire, avec l’Ă©diteur WordPress classique, je choisis un bloc « HTML personnalisĂ© et j’y colle le code ci-dessus :

Qu’est-ce que je peux faire de ça ?

C’est un avantage Ă©norme puisque je peux venir placer ici des dĂ©mos « vivantes », sans avoir besoin de passer par l’Ă©diteur p5.js. Et l’intĂ©gration dans un site wordPress fonctionne. C’est aussi probablement le cas dans une newsletter Substack.

CrĂ©er des gif d’un script p5js

CrĂ©er des gif d’un script p5js

Lorsqu’on crĂ©e un script p5js on apprĂ©cie de pouvoir partager le rĂ©sultat sans obliger les gens Ă  sortir du site oĂą ils sont. C’est lĂ  que les GIF sont fantastiques. Comme dans l’image ci-dessous, ce sont des images que l’on peut voir comme une mini vidĂ©o.

Il suffit d’ajouter la fonction suivante Ă  la fin de sketch.js.

// Save a 5-second gif when the user presses the 's' key.
function keyPressed() {
  if ( (key === 's') || (key === 'S') ) {
    saveGif('mySketch', 5);
  }
}

Et voilĂ , maintenant j’appuie sur la touche s et j’obtiens un fichier GIF.

Coder en p5.js avec Mistral AI ?

Coder en p5.js avec Mistral AI ?

Il y a du buzz, des cocoricos autour de Mistral, l’AI française. Je viens de regarder ce qu’elle sait faire en matière de code javascript avec la librairie p5.js. Et je suis scotchĂ©e ! Mistral AI rĂ©pond Ă  une vitesse stupĂ©fiante Ă  des instructions assez imprĂ©cises et propose Ă  chaque fois une solution juste. C’est vraiment impressionnant, regardez !

Si vous préférez, vous pouvez voir la séquence de prompts et de réponses ici sur Mistral AI.

En dessous je vous dĂ©cris l’Ă©change avec Mistral AI et je vous montre le rĂ©sultat une fois mis dans un Ă©diteur de code.

Euh, tu sais faire ça Mistral ?

Il me répond que oui. Alors je lui pose une première question.

Je colle le code proposĂ© dans un Ă©diteur p5.js (https://editor.p5js.org/) et je vois qu’Il dessine ce que je demande mais avec les 5 cercles sur un mĂŞme axe y. Ca ne me plaĂ®t pas, il faut que je prĂ©cise ma question.

Des résultats époustouflants !

Et lĂ  c’est exactement ce que je voulais !

Vous pouvez le voir en plein écran (https://editor.p5js.org/Anne-Laure/full/KPsrqnwCZ) ou avec le code visible (https://editor.p5js.org/Anne-Laure/sketches/KPsrqnwCZ)

Et j’ai envie que ce soit un peu plus « chouette ». Mais je ne sais pas trop ce qui serait « chouette ». Alors je lui propose deux dĂ©clinaisons, très imprĂ©cises :

Pour l’option 1 (plus joli) il propose d’ajouter des couleurs. c’est intĂ©ressant qu’il fasse le lien entre « joli » et multicolore. C’est certainement une interprĂ©tation juste de « joli ». En plein ecran ici, avec le code visible ici.

Et l’option 2 est effectivement plus hypnotique. LĂ  aussi je suis surprise de la finesse de traduction d’un qualificatif. En plein ecran ici, avec le code visible ici.

Une rĂ©volution…

En quelques secondes je produis un rĂ©sultat vraiment crĂ©dible. C’est bluffant !

Alors l’AI peut-elle rĂ©volutionner nos pratiques quotidiennes ? Certainement oui !

p5.js : rĂ©cupĂ©rer des images avec l’API Pixabay

p5.js : rĂ©cupĂ©rer des images avec l’API Pixabay

Je rĂ©alise ce projet dans l’environnement VSCodium que j’ai dĂ©crit dans un prĂ©cĂ©dent article (Un environnement local pour p5.js). Je ne peux pas le rĂ©aliser avec l’Ă©diteur p5.js car je ne peux pas communiquer ma clĂ© d’accès Ă  l’API de Pixabay.

Créer un compte (gratuit) sur Pixabay

J’utilise Pixabay car il autorise Ă  copier les images, et Ă  les modifier, sans obligations d’attribution.Et Pixabay, Ă  la diffĂ©rence d’UNSPLASH, ne rend pas le « hotlinking » obligatoire.

Je suis Ă©videmment pour l’attribution, et le respect du travail de chacun. Mais parfois c’est très très compliquĂ© d’utiliser des images lorsque les règles en sont contraignantes. Je crois que je fais de mon mieux.

On se crée un compte sur le site https://pixabay.com/fr/accounts/register/.

Il faut maintenant avoir une « clé API »

La clé API de Pixabay. Il faut être connecté pour qu'elle s'affiche.

Une fois qu’on a un compte, on se connecte Ă  Pixabay ET https://pixabay.com/api/docs/ me donne ma clĂ© API et m’explique comment crĂ©er une requĂŞte. Pour la suite, cette clĂ© API sera CLE-API. Dans la rĂ©alitĂ© elle est composĂ©e de plus de 30 caractères en hexadĂ©cimal (0 Ă  9 et les lettres a Ă  f).

Se connecter Ă  l’API Pixabay en p5.js

La fonction preload() va receuillir toutes les réponses de Pixabay qui correspondent à la requête. Ici ce sont des photos de bâtiments.

La fonction loadJSON est ici utilisée avec une « callback function », ici useData(), dont voici le contenu :

Ici je lis simplement nbMax url renvoyées par Pixabay. et chaque url est intégrée à un array imgUrl.

Ce n’est pas toujours Ă©vident de savoir comment dĂ©crypter un fichier JSON. On peut par exemple se demander comment j’ai su qu’il fallait lire « myData.hits[i].largeImageURL ». Le plus simple je pense (en plus de lire soigneusement la documentation de l’API) , c’est d’ajouter un   print(myData) ; Ă  la fin de la fonction preload. On trouve alors dans la console un mystĂ©rieux {} !

Si je met ma souris sur les {} indiquĂ©s par la flèche orange, l’inspecteur (de Chrome) me propose de « copier l’objet« . Et si je colle cet objet dans un Ă©diteur de texte (ou mĂŞme un nouveau fichier texte de vscodium) j’obtiens des informations plus ou moins lisibles. On peut si nĂ©cessaire utiliser https://jsonformatter.curiousconcept.com/ si le JSON qu’on a est trop difficile Ă  formater. Dans mon cas j’obtiens un fichier qui contient comme un array, intitulĂ© myData.hits[] et donc chaque Ă©lĂ©ment contient des informations telles que l’id, la pageURL, etc…

Lire une image de pixabay et l’afficher

Dans le script créé (cf les fichiers zippĂ©s correspondants), il faudra que vous mettiez votre propre clĂ© API), j’affiche les fichiers sous la forme fr ‘graphics », des sortes de canevas virtuels, ou peut-ĂŞtre plutĂ´t comme des calques. J’en avais dĂ©jĂ  utilisĂ© dans l’article « p5.js Brique 2 : utilisation des “GRAPHICS”« . Ici je me suis beaucoup inspirĂ©e de https://editor.p5js.org/creativecoding/sketches/-Ut0EeXZj.

J’utilise les filtres POSTERIZE et INVERT pour modifier les images.

Paysage, image Pixabay

Cette image se trouve ici sur Pixabay. Elle devient comme ça après passage dans le sketch.

Et maintenant ?

Il faut que je voies si la solution Ă©voquĂ©e dans l’article « p5.js : la solution pour charger les images » pourrait fonctionner avec ce script dans lequel la fonction preload est dĂ©diĂ©e Ă  la constitution d’un fichier JSON.

Je veux crĂ©er un array d’images qui pourront ĂŞtre affichĂ©es simultanĂ©ment sur l’Ă©cran.

 

Un environnement local pour p5.js

Un environnement local pour p5.js

Je peux maintenant Ă©crire mes projets p5.js sur mon ordinateur (windows 10) et visualiser le rĂ©sultat dans un navigateur mĂŞme s’il y a des accès Ă  des fichiers (images par exemple) ! J’utilise VSCodium, une version open source de VS Code, de Microsoft.

Jusqu’Ă  prĂ©sent j’utilisais l’Ă©diteur en ligne p5js, très bien, pour dĂ©marrer mes projets p5.js. J’avais testĂ© des solutions pour crĂ©er un environnement local mais rien ne fonctionnait ou me convenait. Mais aujourd’hui, ça y est, j’ai trouvĂ© une solution ! Merci Ă  Pierre des Portes Logiques de m’avoir proposĂ© cette voie !

scripts p5js localement

Si je veux tester localement un projet p5js, je peux mettre dans un rĂ©pertoire un fichier index.html (qui chargera un fichier css et les librairies p5js dont on a besoin). Et si je double clique sur ce fichier index.html, il s’ouvre dans mon navigateur par dĂ©faut et s’exĂ©cute. Mais si le sketch charge d’autres fichiers, par exemple des images, on a une erreur « cross-origin », « COR ». La seule solution pour l’Ă©viter, selon la documentation des crĂ©ateurs de p5.js, c’est d’avoir un serveur local.

Sur un raspberry Pi 3 sous Linux, j’ai installĂ© node.js et fait tourner son serveur http-server. J’en ai parlĂ© dans ces deux articles : ici et lĂ .

VSCodium, pour coder

VSCodium est une version Libre et Open Source de VS Code de Microsoft. C’est plus ou moins un clone de VS code, sans les customisations de Microsoft. Et cerise sur le gâteau, VSCodium a accès Ă  de nombreuses extensions de VS Code !

Pour installer VSCodium sur mon PC (windows 10), j’ai cliquĂ© sur le bouton « Download latest release » puis choisi l’option « User Installer » pour Windows en x86 64bits. J’ai exĂ©cutĂ© le fichier .exe, acceptĂ© les termes du contrat de licence (MIT). J’ai cochĂ© toutes les tâches supplĂ©mentaires et cliquĂ© sur SUIVANT puis INSTALLER.

Ensuite il suffit de lancer VSCodium. On peut faire quelques réglages si on le souhaite pour les couleurs et autres.

Un serveur local avec VSCodium

Dans VSCodium, sur le cĂ´tĂ© gauche, il y a une barre avec des icones. L’une des icones correspond Ă  « Extensions« . Je clique dessus puis je tape Live Server. Je choisis celle de Ritwickdey. C’est l’extension recommandĂ©e pour utilisation avec VS Code dans leur document sur les serveurs locaux). Attention Ă  bien prendre celle de Ritwickdey. Lorsqu’on clique dessus on voit ça :

Cliquer sur le bouton Install. L’extension s’installe.

Maintenant dans le menu File > Open Directory, j’ouvre le rĂ©pertoire d’un projet p5js de mon ordi.

Et tout en bas à droite de la fenêtre VSCodium », je trouve « Go Live ».

Je clique dessus et mon navigateur par dĂ©faut (chrome pour moi) ouvre un onglet Ă  l’adresse http://127.0.0.1:5500/.

Pour en savoir plus

Pour plus d’informations sur le fonctionnement de Live Server, on peut aller voir le dĂ©pĂ´t sur Github.

L’ensemble des extensions disponibles pour VSCodium est visible sur ce site : https://open-vsx.org/

 

p5.js : la solution pour charger les images

p5.js : la solution pour charger les images

Lorsqu’on charge des images dans un script p5.js, ça se passe de façon asynchrone. C’est souvent une bonne chose car ça Ă©vite d’attendre. Mais parfois ça pose beaucoup de problèmes. Alors je cherchais depuis longtemps un moyen efficace d’ĂŞtre certaine que les images seraient entièrement chargĂ©es avant que la suite du script ne les utilise.

J’ai trouvĂ© la solution grace Ă  Perplexity, le moteur de recherche avec AI. Je lui ai demandĂ© « what are the solutions which work for loading a lot of images in an array using p5js? », il m’a rĂ©pondu avec des solutions banales (qui ne fonctionnent pas lorsque les images mettent du temps Ă  charger). J’ai insistĂ© en « lui disant » : « this doesn’t ensure that all images in the array are fully loaded. are there more robust solutions? ». Et lĂ  il m’a apportĂ© la rĂ©ponse que je ne trouvais pas ! Merci Perplexity !

J’utilise loadImage et une fonction « call back » qui incrĂ©mente un compteur (imagesLoaded) Ă  chaque fois qu’une image est correctement chargĂ©e.
Lorsque le compteur imagesLoaded contient la valeur indiquĂ©e au dĂ©but dans imagesToLoad, c’est qu’on a chargĂ© autant d’images qu’on en avait prĂ©vu. On est donc prĂŞts Ă  la suite !

Et ça fonctionne, comme on peut le voir dans cet exemple.

Les 22 photos de cet exemples sont toutes chargĂ©es avant d’ĂŞtre affichĂ©es !

Le code complet est accessible ici, en fichier zippé.

C’est ce que je voulais !

Site Kit, les services de Google sur WordPress

Site Kit, les services de Google sur WordPress

La nouvelle extension Site Kit, de Google, permet enfin de connecter, rapidement et facilement, un site WordPress et les services Google tels que Google Analytics, Google Search Console, Speed Test. Elle intĂ©gre Ă©galement Google Optimize, Google Tag Manager et Google Ads que je n’utilises pas.

Pour un webmaster, c’est merveilleusement simple. J’installe l’extension Site Kit de Google en suivant ce tutoriel du site « Pour pas un rond » : WordPress : Site kit simplifie l’accès aux services de Google.

Un site web en 5 minutes avec Google sites

Un site web en 5 minutes avec Google sites

J’ai dĂ©couvert rĂ©cemment l’intĂ©rĂŞt de crĂ©er un site avec Google sites dans des circonstances oĂą l’on souhaite partager simplement des documents avec un groupe de personnes. Et aujourd’hui, je viens de regarder la vidĂ©o d’Olivier Margerand, de Digital Collab, qui nous explique comment crĂ©er un site web en 5 minutes avec Google Sites :

J’en retiens que c’est extraordinairement simple et rapide ! Il est possible de mettre en ligne des Ă©lĂ©ments de Google Suite de manière très simple. Mais aussi qu’on peut imaginer une infinitĂ© d’utilisations, comme par exemple la crĂ©ation d’un site pour une machine, afin de dĂ©clarer des opĂ©rations de maintenance ou suivre des fonctionnement simplement en scannant le QR code affichĂ© sur la machine !

J’ai beaucoup apprĂ©ciĂ© les propos d’Olivier Margerand, toujours aussi percutant et juste. Par exemple :

Ce qui compte maintenant c’est l’intelligence qu’on va mettre derrière tout ça : qu’est-ce que ça peut apporter ? Qu’est-ce que ça peut aider Ă  simplifier dans une entreprise, dans une Ă©quipe, dans un processus, avec nos clients, avec nos prospects avec nos fournisseurs ?

Olivier Margerand, Digital Collab

Un essai rapide

Vous pouvez voir un essai réalisé en moins de 5 minutes également : mon test sur Google sites !

Et maintenant ?

Dans la vidĂ©o Olivier Margerand fait rĂ©fĂ©rence Ă  un contenu qu’il a créé sur les QR Codes : Comment crĂ©er un QR CODE ? 3 manières et 1 erreur fatale. C’est intĂ©ressant Ă©galement.

Snap Caméra : effects spéciaux sur webcam !

Snap Caméra : effects spéciaux sur webcam !

J’ai dĂ©couvert l’application SnapCamera par une vidĂ©o de l’excellent Cyrille CARTERET, dont la chaine FastLearner Academy recèle d’excellents tutoriels sur l’environnement Google.

Il explique, dans la vidĂ©o « 💥MEET 💥 SNAP CAMERA Ajouter des filtres sur votre webcam en visio google MEET« , comment utiliser Snap Camera avec Google Meet. Cependant les instructions s’appliquent Ă©galement Ă  Zoom, avec lequel je vient d’enregistrer cette vidĂ©o :

Déguisements et visioconférence avec SnapCamera !

Installer Snap Caméra

Suivons les instructions de Cyrille CARTERET :

https://youtu.be/id9aP5CDCF8

Utiliser Snap Camera

Les instructions de Cyrille CARTERET sont très claires. Il faut tout simplement sĂ©lectionner la webcam SnapCamera plutĂ´t que la webcam elle-mĂŞme. C’est vrai dans google Meet, dans zoom et probablement d’autres applications.

La seule difficultĂ© que j’ai eu est qu’il m’a fallu redĂ©marrer windows deux fois avant que la webcam snapCamera devienne accessible.

Et maintenant ?

A nous de trouver des utilisations pratiques !

p5.js Brique 6 : créer un fichier avec des données collectées

p5.js Brique 6 : créer un fichier avec des données collectées

Nous voyons ici, dans ce sixème article de la sĂ©rie , comment crĂ©er un fichier et proposer Ă  l’utilisateur de l’enregistrer. Nous recueillons des donnĂ©es (sur la base de la brique 5) et nous crĂ©ons deux fichier texte au clic de la souris dans le canevas.

Pour voir le code complet du sketch : c’est ici sur GitHub ou ici sur l’éditeur p5.js en ligne. On peut également voir l’exécution ici sur une page GitHub. Attention tout le reste du code est expliqué dans la « brique » n°5.

La partie qui permet la crĂ©ation et l’enregistrement des fichiers se trouve dans la fonction mousePressed() :

function mousePressed() {
  if (mouseX > 0 && mouseX < width && mouseY > 0 && mouseY < height) {
    saveStrings(croppedUrl, 'croppedURLs.txt');
    saveStrings(imgUrl, 'fullURLs.txt');
  }
}

Dans ce script, un clic dans le canevas génère :

  • un fichier avec toutes les chaines de caractères de l’array (tableau) croppedUrl. Ce fichier est nommĂ© croppedURLs.txt.
  • un fichier avec toutes les chaines de caractères de l’array (tableau) imgUrl. Ce fichier est nommĂ© fullURLs.txt.

On utilise ici la fonction saveStrings() de p5.js. J’aurais Ă©galement pu utiliser la fonction save(), de la mĂŞme manière exactement. Dans d’autres circonstances on pourra s’intĂ©resser aux fonctions : saveJSON(), saveTable(), voire saveCanvas() ou saveFrames().

Et maintenant ?

Et voilà nous avons une cinquième brique ! Les autres briques sont et seront publiées dans cette même série, .