par Anne-Laure DELPECH | 12 Fév 2025 | développement web , IA (Intelligence Artificielle)
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
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
.
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 :
ajout d’un lien en MarkDown dans le README pour aller plus facilement vers la dĂ©mo
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 ?
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.
par Anne-Laure DELPECH | 8 Fév 2025 | Art numérique , p5.js
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.
par Anne-Laure DELPECH | 8 Fév 2025 | Art numérique , IA (Intelligence Artificielle)
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 ic i 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 ?
« est-ce que tu peux m’aider Ă crĂ©er un script en p5js ?  »
Il me répond que oui. Alors je lui pose une première question.
« je voudrais dessiner 5 cercles répartis dans le canevas et sur chacun avoir un point qui tourne sur son diamètre, et des lignes entre ces points ».
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 !
« Oui c’est ça l’idĂ©e. Mais je voudrais que les cercles soient positionnĂ©s sur l’ensemble du canevas, et que par exemple la forme dessinĂ©e par les traits entre les points qui tournent soit un hexagone. »
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 :
« Exactement ce que je voulais. comment pourrait-on amĂ©liorer ce script pour avoir un rĂ©sultat plus joli (option 1) ou plus hypnotisant (option 2) ? «Â
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 ic i .
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 !
par Anne-Laure DELPECH | 28 Déc 2024 | Art numérique , javascript , p5.js
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 »
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
function preload() {
// Voir https://p5js.org/reference/p5/loadJSON/
let urlPix = 'https://pixabay.com/api/?key=CLE-API&category=buildings&image_type=photo';
myData = loadJSON( urlPix, useData );
}
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 :
function useData() {
 nbMax = min( myData.hits.length, nbMax )  ;
 for( i = 0; i < nbMax; i++ ) {
  imgUrl[i] = myData.hits[i].largeImageURL ; // url des images
 }
}
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 correspo ndants ), 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.
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.
par Anne-Laure DELPECH | 4 Déc 2024 | Art numérique , javascript , 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 l a 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/
par Anne-Laure DELPECH | 11 Août 2024 | Art numérique , p5.js
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 !
par Anne-Laure DELPECH | 29 Juil 2021 | analytics et seo , astuces rapides
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 .
par Anne-Laure DELPECH | 1 Juin 2020 | astuces rapides , bureautique , Google Apps
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 :
VIDEO
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.
par Anne-Laure DELPECH | 27 Mai 2020 | astuces rapides , transformation numérique
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 !
par Anne-Laure DELPECH | 17 Mai 2020 | Art numérique , p5.js
Nous voyons ici, dans ce sixème article de la sĂ©rie p5.js mes "briques" de connaissance , 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, p5.js mes "briques" de connaissance .
Commentaires récents