Session du 27 juillet 2023 à 20h00
Data Science & IA
Développement Web & Frameworks
DevOps & Environnement
Deviens membre Premium magic_button
Cette session de mentorat est réservée aux membres Premium. Rejoignez-nous pour accéder à toutes les rediffusions des sessions de mentorat !
Premium
- check +100h de formations
- check +180 exercices de code
- check +100h de mentorats en rediffusion
- check 20 projets
- check Mentorats groupés hebdomadaires
- check Support individuel avec nos mentors
Surveiller vos services avec Uptime Kuma
-
Surveiller vos services (web app, blog) avec Uptime Kuma et notifications sur votre serveur discord
-
Un peu de programmation scientifique:
-
Interpolation, extrapolation
-
bumpy, pandas, matplotlib
00:00:00 :Pas de question.Ok, on va y aller.Du coup, ce qu'on va faire aujourd'hui, j'avais mis dans le programme,bon peut-être on va dévier un peu sur le truc, sur un peu le traitement de signal etc.
00:00:27 :Je pense qu'on ne fera pas tout ce que j'avais prévu,tout simplement parce que le petit truc que je voulais vous montrer n'était pas abouti.
00:00:36 :Du coup, on fera juste du simple.Et avant, je voulais vous montrer, la dernière fois, je vous avais montré Kuma,qui est en fait un service open source qui permet de faire du monitoring des différents services.
00:00:53 :En fait, je pense que c'est important parce que, j'enlève ma caméra,beaucoup d'entre vous font du Django, après vous pouvez avoir des webapps qui tournent un petit peu partout,vous pouvez avoir des webapps qui tournent chez des clients etc.
00:01:07 :Et c'est important de surveiller toutes ces webapps, voir si elles sont toujours en fonctionnement.Et en fait Kuma, c'est un outil qui envoie automatiquement des requêtes à vos serveurs,à tout ce que vous voulez, ça peut être à des docker services, des sites web,juste vous mettez l'URL et il envoie les requêtes.
00:01:27 :Et en fonction de la réponse qu'il reçoit, donc si il reçoit une réponse 200,il vous dit tout va bien, si c'est du 500, 400 etc. il vous envoie un truc.
00:01:36 :Donc ce que je vous propose, si ça vous intéresse, c'est qu'on regarde ensemble comment on fait pour déployer Kuma.On va le déployer avec docker et docker compose, vous allez voir c'est assez simple à déployer.
00:01:47 :Et on fait la mise en place justement de surveillance.Donc moi je prendrai l'exemple de mon propre site web et puis peut-être une autre application docker.
00:01:57 :Et je vous montrerai comment on peut mettre en place un webhook qui permet de vous envoyer des notifications sur Discord.Comme ça vous êtes prévenus si jamais vous avez un problème via votre Discord, votre serveur.
00:02:12 :Après vous pouvez mettre en place du SMTP ou des choses comme ça, ou même sur Slack, tout ce que vous voulez pour être prévenu.Mais avec Discord, je trouve qu'on a toujours un serveur qui tourne.
00:02:24 :Vous voyez là Vincent utilise Sentry.Je crois que tu m'en avais parlé la dernière fois par rapport à Kuma, tu veux dire ?Putain je me suis foutu partout.
00:02:36 :Je t'avoue je ne connais pas Sentry du coup je ne peux pas te dire s'il y a une grosse diff,mais bon je vais montrer et comme ça tu pourras dire s'il y a une diff.
00:02:45 :Je ne sais pas si tu étais là quand j'avais parlé de Kuma.Ah le lien n'est pas visible, c'est bizarre parce que certains d'entre vous l'ont vu quand même.
00:02:57 :J'ai l'impression que le lien a disparu à partir du moment où je me suis connecté.Si vous voyez des gens qui sont en détresse, aidez-les sur Discord.
00:03:20 :Je pense que ceux qui ont rajouté le lien sur la calendrier vous l'aviez et les autres c'était trop tard.Je vois que Thibaut il est là, je ne sais pas Thibaut si tu vois quelque chose, s'il y a un problème.
00:03:36 :Je vais présenter mon écran, j'arrête de parler.Est-ce que vous voyez mon écran ?Ok, très bien.Donc là je suis sur Portainer, je ne sais pas si vous connaissez.
00:03:59 :En fait Portainer c'est une interface web qui vous permet de gérer tous vos containers.Quand on dit gérer les containers, ça peut être déployer, ça peut être débugger, gérer vos volumes, etc.
00:04:18 :Je ne sais pas si je vais rentrer dans le détail, dites-moi si vous voulez que j'aille plus loin dans le détail.Après il y a plein de choses à dire sur les containers, moi j'utilise les containers régulièrement.
00:04:35 :Je ne suis pas un pro des Dockers, il y a tellement de choses à faire.Mais ça sert bien pour déployer.La différence avec Docker Desktop, avec Portainer déjà, c'est une interface web, c'est différent, c'est quelque chose de différent.
00:04:57 :La plus grosse différence que je vois c'est le fait que tu puisses gérer plusieurs environnements Docker.En fait avec Docker Desktop, corrigez-moi si je me trompe, ça tourne juste sur ton local et tu peux gérer tes containers qui tournent sur ton local.
00:05:12 :Là tu vois avec Portainer, j'ai plusieurs environnements.Je suis sur ma machine, là ce qu'elle présente, mon local, c'est mon Macbook.Mais j'ai aussi sur mon réseau local, j'ai un Proxmox qui tourne.
00:05:30 :J'ai aussi sur mon Linode, c'est un VPS, ça peut être Stinger ou DigitalOcean ou des choses comme ça.J'ai d'autres Dockers qui tournent.Donc en fait tu peux gérer différents environnements.
00:05:46 :Là tu vois c'est les Dockers d'un client.Donc ça te permet de gérer tes différents containers.Là il faut peut-être que je lance mon Docker Daemon sur mon Macbook qui tourne.
00:06:00 :On va le voir s'allumer.Donc là par exemple tu vois si je vais sur mon Proxmox, j'ai tous les containers de mon Proxmox qui tournent ici et je peux les administrer assez facilement.
00:06:10 :J'ai accès à tous mes containers, donc je peux aller lui dire.Donc là par exemple c'est Kuma.Je peux dire je le lance ou je le restart, etc.
00:06:22 :Et j'ai aussi accès à tous mes volumes.Donc c'est intéressant parce que tu peux directement gérer tes volumes ici et toutes tes images.Tu peux les gérer, tu peux tout effacer d'un coup.
00:06:33 :C'est assez sympa.Et ce qui est vraiment pas mal, je crois que tu ne peux pas le faire avec...D'ailleurs on va le faire là en live.
00:06:41 :Ce que tu ne peux pas faire avec Docker Desktop, il me semble que tu ne peux pas déployer une stack.En fait une stack c'est quand tu déploies un Docker Compose.
00:06:48 :Donc là je ne vais peut-être pas montrer parce que j'ai mon mot de passe dedans.Mais si on va sur le Macbook, pourquoi il ne se connecte pas encore ?
00:06:58 :Ouais, ok.Donc là je vais gérer les containers qui sont sur le Macbook.Qu'est-ce que j'ai ?On va déployer une stack là-dessus.Ici je vais voir dans les stacks.
00:07:10 :Je fais add stack et il va simplement ici...Je peux déployer mon Docker Compose ici.Docker Compose ça permet de déployer plusieurs containers en même temps avec leurs variables d'environnement.
00:07:22 :Donc ça pour moi c'est les deux gros avantages par rapport à Docker Desktop.Pour répondre à tes questions Simon, c'est le fait de pouvoir gérer plusieurs environnementset déployer des stacks facilement.
00:07:34 :Et aussi le fait que c'est une interface web.Donc ça veut dire que tu peux...Là je ne la mets pas, je la laisse en local.
00:07:43 :Mais si je voulais ouvrir les ports à internet, je pourrais.Ce n'est pas conseillé de faire ça.Mais tu pourrais administrer.Imagine tu pars en vacances à l'hôtel.
00:07:54 :Tu as ton interface portainer qui tourne sur ton local.Tu peux y accéder si tu as mis un VPN ou des choses comme ça.Donc là ce que je vous propose c'est qu'on déploie la stack de KUMAqui va permettre de...
00:08:09 :Dites moi dans le chat si je vous perds ou si c'est du charabia pour ceux qui ne connaissent pasou pour ceux qui connaissent si je dis des bêtises.
00:08:17 :J'aime bien...En fait comme je n'ai pas de retour audio, des fois je ne sais pas si...Je ne sais pas si vous êtes complètement paumé ou si...
00:08:31 :Si vous levez les yeux au ciel en disant c'est n'importe quoi.Même si vous avez besoin de...Vraiment n'hésitez pas à critiquer ou tout ce que vous voulez.
00:08:45 :Tant que ça reste courtois, pas de soucis.Et du coup si vous ne connaissez pas portainer pour ceux qui l'utilisent,il y a une version community, donc gratuite, et il y a une version business.
00:08:58 :La version business honnêtement...La version business reste gratuite pour 5 licences.Honnêtement je n'ai pas encore vu la différence de business et community.Franchement vous pouvez utiliser la community, ce serait très bien.
00:09:15 :Et il suffit juste en fait pour...Vous voyez là j'ai plusieurs environnements.Il suffit juste que sur chaque machine environnement,donc là par exemple sur mon Proxmox,j'ai un container qui est un peu spécial.
00:09:27 :C'est celui-là, c'est le portainer.En fait je suis bête parce que c'est celui-là sur lequel j'ai mon portainer.C'est celui-là par exemple.Vous avez un portainer adjunct.
00:09:39 :Donc c'est un docker container spécifiquequi permet justement de dialoguer entre le portaineret les environnements sur lesquels vous voulez interagir.Donc voilà, si par exemple Vincent tu voudras utiliser portainer,il faudra que tu aies ce portainer adjunct qui tourne.
00:10:02 :Mais ça en fait quand tu vas installer portaineret que tu vas vouloir installer un nouvel environnement,ils vont te le dire que tu dois faire tourner ce portainer adjunctsur la machine que tu veux administrer.
00:10:12 :Oui, Stéphane, c'est normal.Si tu ne connais pas Docker, c'est normal d'être perdu.Mais voilà, l'idée c'est juste de faire découvrir des choses dans les mentorats.
00:10:20 :Donc c'est ce qu'on fait.Donc juste si vous me permettez, je vais aller juste récupérer...Je vais aller sur...Je vais aller récupérer la stack en faitqui permet de déployer.
00:10:38 :Donc là vous voyez, vous allez sur le GitHub officiel.Donc c'est tout simple.Il suffit juste de copier-coller le Docker Compose.Vous retournez dans votre portainer.
00:10:47 :Vous faites stack ici.OK.Et on va déployer la stack.Donc là, on va dire...Time.Huma.OK.Et là, on va déployer.Donc là, ce qu'il dit en fait,c'est qu'il veut déployer les différents services.
00:11:03 :Donc là, je vais peut-être zoomer.Ça va, vous voyez mieux.Je pense que c'est un peu mieux.Là, en gros, c'est un fichier YAML.Donc YAML, c'est un peu comme les fichiers JSON.
00:11:18 :Ça a une certaine architecture.Et ça marche par indentation.Donc en gros, là, vous lui dites,je veux déployer les services suivants.Donc là, on déploie qu'un seul service.
00:11:27 :On déploie le service Kumaqui va utiliser l'image officielle Docker Kuma.On lui donne le nom qu'on veut.Et ici, on va créer un volumequi va permettre de stocker en gros les données.
00:11:38 :Parce que je ne vais pas rentrer dans le détail du volume.Mais en fait, si vous voulez faire persister des données,vous êtes obligés de créer des volumes.
00:11:46 :Parce que les containers,c'est un peu comme vraiment grossièrement.C'est des machines virtuelles,comme vous pourriez le faire avec des virtualbox, etc.Et en fait, si vous lancez un containeret que vous ne créez pas de volume,dès que vous allez arrêter votre container,vous allez perdre toutes les données
00:12:02 :que vous avez enregistrées au sein de votre session.Alors qu'en fait, le volume, lui,c'est un peu comme un stockage à froid.Il va le stocker quelque part en dehors du container.
00:12:10 :Et ça veut dire que quand vous allez relancer votre container,il va aller récupérer toutes les datasqu'il avait enregistrées dans le volume.Donc là, moi, je vais créer un volume.
00:12:18 :Je vais le créer plutôt ici.Vous n'en faites pas,si vous ne comprenez pas ce que je fais.Je vais juste créer en fait un volume.
00:12:26 :Et je vais lui dire...OK, donc là, on va être prêt à déployer.Ici, il va le déployer sur le port 3001de ma machine locale.
00:12:39 :Donc, OK, je pense que là, on est bon.Déploy the stack.Donc, je déploie la stack.Donc, il faut patienter un petit peule temps qu'il se déploie.
00:12:52 :OK, donc là, il m'a dit, c'est déployé.On est content.Si je vais voir sur mes containers,j'ai un nouveau.Donc là, il est en train d'être lancé.
00:13:11 :Il est en starting.Donc, j'attends un peu.Désolé, je ne sais pas trop quoi dire pour meubler.Non, Nextcloud, c'est moi qui l'a...C'est un service que moi, j'avais...
00:13:32 :En fait, même ce Nextcloud là,je ne m'en souviens plus.C'était un Nextcloud de test.Je peux l'éteindre.Bon, alors, est-ce que ça vient ?
00:13:45 :Starting.Bon, on va aller voir déjà sur le port 3001est-ce qu'il a fait quelque chose.Donc, je vais aller sur mon local host.3001.
00:13:57 :OK, donc là, vous voyez,j'ai un service...Je n'ai pas encore mangé.Il n'est que 20h18.Il est quelle heure chez toi, Stéphane ?Est-ce que toi, Stéphane,tu es sur le même fuseau que nous ?
00:14:12 :Donc, en gros, vous voyez...Amis du Nord, bonsoir.Ciao, biloute.Mais tu manges tôt, Stéphane.Moi, je ne sais pas.Dites-moi dans les commentaires,c'est intéressant.
00:14:29 :Est-ce que vous mangez avant ou après le mentorat ?Ou pendant ?Uber Eats, mal coquin.C'est intéressant, tout ça.Ouais, moi, je suis un latin.
00:14:46 :Je mange tard.Donc, voilà.On est sur une interface webqui tourne sur le port 3001et là, on doit faire le setup.Donc, là, vous voyez,Français, on va direnon-utilisateur PackDev.
00:14:59 :Mot de passe original, on va dire PackDev.Donc, là, c'est juste un...Ah, il fait chier.PackDev 2023.PackDev 2023, vous vous en souviendrez s'il me demande.
00:15:14 :OK.Donc, là, vous voyez,je suis sur un dashboard.Ah, ouais.Je te comprends, Stéphane.Où est-ce que j'en étais ?Ouais.Donc, là, on est sur le dashboard de Kuma.
00:15:27 :Donc, là, vous voyez, c'est quand même assez sympa.On a un truc qui tourne.Moi, j'ai juste déployé une stacket j'ai accès à ça.
00:15:33 :Donc, ce qu'on va faire maintenant,c'est qu'on va ajouter une sonde.Une sonde.Donc, je vais dire...On va dire mon site web.On va dire...
00:15:44 :Je vais aller chercher mon site web perso,PackDev.net.Je vais plutôt aller chercher mon Nextcloudparce que...Comme ça, je vais pouvoir l'arrêteret vous montrer Nextcloud.
00:15:57 :Nextcloud.net.OK.Donc, là, c'est l'URLqu'il va aller, en gros,il va aller interroger.On va dire toutes les 30 secondes.On va faire un essai.
00:16:12 :Configurer.OK.Donc, pour l'instant, on va juste...Voilà.On a juste créé une sonde.Une sonde.Donc, voilà.Ça dit...Comme son nom l'indique,ça vient sonder l'URLqu'on lui a demandé.
00:16:25 :Donc, là, vous voyez,il a...Toutes les 30 secondes,il va aller me checker le truc.Et donc, là,le premier check qu'il a fait,c'est...
00:16:34 :OK.J'ai une réponse de type 200.Vous voyez,quand on fait un getet qu'on a une réponse 200,ça veut dire que tout va bien.
00:16:41 :Donc, là,si on attend 30 secondes,il va aller faire un nouveau test.OK.Donc, là, vous voyez,j'ai un dashboard.Je peux même ajouter d'autres sondes.
00:16:49 :Donc, en gros,c'est ça l'intérêt.Donc, là, on va dire...Je vais aller faire mon site web.Je vais lui dire...Mon site web, machin,pareil,on va mettre toutes les 30 secondesqu'il faut sauvegarder.
00:17:02 :Et donc, là,j'ai une nouvelle sonde.Et vous voyez,c'est un dashboard assez intéressant.On a une vue rapidementde tout ce dont on a besoinpour checker.
00:17:11 :On peut même mettre,pour les aficionados,on peut mettre le mode sombre,je crois.Paramètres.Je l'avais vu.Je l'avais vu il y a quelque temps.
00:17:26 :Apparence.En mode sombre.Voilà, vous voyez,ça fait un peu plus...Ça fait un peu plus glucose.Donc, là, on a les sondes.Donc, on est content.
00:17:37 :Je vais juste vous montrer un test.Si je retourne sur Portainer,je vais dézoomer.Je vais sur mon Proxmox,là où tourne mon Nextcloud.Et je vais juste arrêter l'application.
00:17:50 :Je vais le stopper.Et donc là, vous allez voir,normalement, d'ici moins de 30 secondes,il va me faire apparaîtreun bâton rouge.Du coup, c'était sur celui...
00:18:00 :Je l'ai appelé mon site web,mais ce n'est pas mon site web,c'est Nextcloud.Attendez, j'attends un peule temps qu'il aille checker.Ce n'est pas mon site web, ici.
00:18:09 :C'est Nextcloud.Regardez.Donc, là,c'est mon site web.C'est Nextcloud.OK.Donc, là, vous voyez,il commence à me dire...Ah, il a été actif à 73 %,parce qu'en gros,il a vu qu'il m'a fait...
00:18:30 :Vous voyez, vous avez mêmedes graphiques, en fait,avec les heures,avec les millisecondesde temps de réponse.Donc, en gros, ça,ça va varier en fonctionde votre connexion,mais ça peut être pas mal.
00:18:39 :Vous pouvez voirs'il y a des ralentissementssur vos sites web.Donc, c'est un graphiqueun peu interactif.Et là, vous voyez qu'il dit...Ah, il s'est passé quelque chosequand même.
00:18:50 :Il a fait une première tentative.Donc, il n'est pas sûrqu'il est down.Mais après plusieurs checks,on a un résultat,un statut 502.Donc, il dit qu'il y aun problème côté...
00:19:00 :Sur le serveur.Donc, là, c'est un peuun truc d'alerte.Donc, ce que je vais faire,c'est que je vais le relancer.OK.Et on va configurer,en fait,une notification sur Discord,comme on l'avait dit tout à l'heure.
00:19:15 :Je vais d'abord enlevercelle que j'ai déjà en place.Parce que...Alors, où est-ce que c'étaitparamètres du serveur ?Je crois que c'était dansintégration.
00:19:32 :J'ai un webbook.Je vais peut-être...Je vais le supprimer.Comme ça, on va le recréer ensemble.Voilà.Donc, ce que vous pouvez faire,c'est que...
00:19:43 :Alors, dans le sens...Donc, là, vous voyez,il est reparti.Il est content.On va dire...On va aller sonder le Nextcloudet on va dire qu'on aimerait bienmettre en place une notification.
00:19:54 :Donc, on va dire...Ici, là, vous allez dansCréer une notification.Vous dites le type de notificationque vous voulez.Donc, là, vous voyez,il y a plein de choses qui existent.
00:20:02 :Franchement, j'en connais pas la moitié.Bon.On a le courriel SMTP.Donc, là, il faut configurerles paramètres SMTPpour qu'il envoie un mailsi on a un problème.
00:20:12 :Vous pouvez même faire via...Donc, là, c'est Discord,c'est le clic qu'on va faire.Mais il y a un truc...Je crois que j'utilisais ça au débutavec Thibaut.
00:20:23 :C'était...Pushover.C'est des applications qui permettentde recevoir des notificationssur téléphone.Vous pouvez recevoir un SMS.Enfin, bref, vous voyez,il y a vraiment plein de choses.
00:20:34 :Donc, nous, on va dire Discord.On crée une notification.Et là, il nous dit,il faut l'URL vers le webbook Discord.Donc, on va sur le Discord.
00:20:43 :Vous pouvez vous créer...Si vous avez Discord,ben, j'imagine que ouipuisque vous êtes sur la communauté.Vous pouvez vous créer gratuitementun serveur.Celui-là, je vais le supprimer.
00:20:53 :Non, merde, j'ai fait signer le message.Supprimer le message.OK.Juste pour pas que vous soyez perturbéspar d'autres messageset puis qu'on voit bien ce qu'on fait.
00:21:07 :Supprimer le message.Bon, vous avez comprisce qu'on va faire.Et supprimer le message.OK.Donc, ce que je vous propose,vous n'êtes pas obligés de le faire.
00:21:21 :Salut, Vincent.Vous créez un salon.Moi, j'ai créé un nouveau salonqui s'appelle Monitoring Services.Vous faites clic droit.Clic droit.Modifier le salon.Intégration.
00:21:39 :OK.Et donc là, vous allez dansCréer un webbook.Et donc là, vous avez un webbook.Donc là, vous pouvez direUptime Kuma.Ça va être le nom de votre bot,en fait.
00:21:53 :Vous le voulez dans votre salon.Et là, vous faites Copier l'URL du webbook.OK.Enregistrez les modifications.Donc là, on a dans notre salonun nouveau bot.
00:22:00 :Bon, pour l'instant, on ne voit pas.Et il suffit juste ici de copierl'URL de votre webbook.OK.Activez.Vous pouvez même dire Tester.Donc là, ça a marché.
00:22:09 :Si je vais voir sur Discord,j'ai bien reçu une notification de test.Et donc là, je fais Sauvegarder.Donc maintenant,qu'est-ce qui va se passer sije vais mettre le truc ici,je vais mettre lui à côté.
00:22:21 :Je vais aller stopper mon exclade automatique.Enfin, je vais le faire exprès.Donc, je vais mettre Stop.Et donc là, je vais rester sur mon Discord.
00:22:35 :Et vous allez voir que dès qu'il va...En fait, comme il check toutes les 30 secondes,il faut parfois attendre.Mais je vais recevoir une notification sur Discordpour dire attention, ton service est down.
00:22:49 :Donc là, on attend un petit peu.Est-ce que...Ouais, ça met un peu de temps.Ça a causé 30 secondes.En fait, normalement, 30 secondes,c'est la durée minimum qu'on peut mettre.
00:23:22 :On ne peut pas mettre moins.Donc là, pour l'instant, voilà.Donc là, il a vu que c'était down.Donc normalement,je vais recevoir une notification sur le Discord.
00:23:31 :Peut-être que ce n'est pas instantané.Ah, à moins que je me suis trompé,je l'ai mis sur le site web.Non, pourtant, je l'ai bien mis.
00:23:47 :Ah, je ne l'ai pas activé.OK.Mais bon, vous avez compris.Je ne vais peut-être pas le refaire.A moins, peut-être, si je le remets...
00:24:00 :Donc là, il est reparti, normalement.Donc là, il est reparti.Ouais, c'est bon.Et si maintenant, je le relance...Si je le rééteins, pardon.Bon, si ça ne marche pas, je vais arrêter là.
00:24:32 :Mais vous avez compris le concept.Je vais juste refaire une tentative.Ouais, Simon ?Ouais, du coup,comme ton KUMA est installésur le partenaire en local sur ta machine,quand tu éteins ta machine,tu n'as plus de tracking.
00:25:00 :Oui, mais c'est pour ça.Là, c'est pour l'exemple.Moi, si tu vois,j'ai un KUMA qui tourne sur mon Proxmox.Proxmox, c'est une machine localequi tourne chez moi, c'est une tour,qui, elle, reste tout le temps allumée.
00:25:15 :C'est un peu comme un home server.Et du coup, le partenaire,on peut l'installer sur un serveur distantpour qu'il soit tout le temps allumé.
00:25:26 :J'ai juste la notification.Vous voyez, j'ai eu la notification sur Discordcomme quoi mon service est down.Je vais le relancer.Vous allez voir qu'il va juste me dire.
00:25:39 :C'est bon, c'est reparti.Et après, je reviens à notre discussion.Container.Non, merde, c'était pas celui-là.Ok.Excuse-moi, en fait, la question, c'est quoi ?
00:25:57 :C'est que le partenaire, moi, je le fais tournersur une machine locale.Par contre, que je n'expose pas à Internet.Elle reste...Je n'ai pas de port ouvert à l'Internet, tu vois.
00:26:11 :Tout ce qui est...Les choses comme ça,les services qui permettent d'administrerdes services sur Internet,d'administrer des services sur tes machines,il ne faut pas les exposer à Internet.
00:26:26 :C'est un peu dangereux.Parce que, voilà, on pourrait direque quelqu'un qui...Proxmox, si tu vois ce que c'est,c'est un hyperviseur.Et du coup, on peut installer des machines Linux.
00:26:38 :En bref, on peut faire ce qu'on veut dessus.Ok.Je ne sais pas si ça répond à ta question.Ta question, c'était quoi plutôt ?
00:26:46 :Tu viens de répondre, oui.Merci.Mais par contre, il n'y a aucun problèmeà exposer les services comme...Tu vois, comme Kuma.Moi, j'ai un...
00:26:59 :Ici, si je vais sur Internet,tu vois, là, j'ai un Kumasur mon...sur mon domaine.Et comme ça,où que je sois, avec une connexion Internet,je peux aller vérifier comment ça se passe,comment sont les services.
00:27:15 :Là, c'était juste pour l'exemple,Super.Bon ben, voilà pour Kuma ce que je voulais vous montrer.Je pense que...Tu vois, par exemple, Gabriel, je pense à toi,pour ton...
00:27:30 :Je sais que tu as un site web qui tournesur Python Anywhere.Moi, tu vois, par exemple,j'avais mis une sondesur mon site web qui tourneaussi sur Python Anywhere.
00:27:44 :Et j'ai reçu une notification tout à l'heure sur Discord.J'ai eu une erreur 500sur...Et après, j'ai été voir les serveurs de...Ou en tout cas, moi,mon serveur de Python Anywhere était down.
00:27:56 :Donc, tu vois, ça permet de...Tout le monde à Twitter,ils m'ont dit que tout le monde était down.Donc...Et puis imagine, par exemple,si tu avais développé une applicationpour un ami à toi,tu pourrais le sonder avec çapour vérifier qu'il est toujours actif.
00:28:14 :Parce que c'est toujours...Quand t'as des clients,c'est toujours...C'est pas très bien vu si c'est le clientqui vient te voir en disantle service que tu m'as installé, il est down.
00:28:26 :C'est mieux que toi, tu le vois avant et direattention, le service est down,je vais faire de la maintenance dessus.Ah ouais, j'avoue, c'est pas mal.
00:28:34 :Et puis voilà, avec une mise en place comme çaoù vous avez une notification sur Discord,c'est assez simple à maintenir.T'es pas obligé d'aller vérifier tout le temps,c'est juste si t'as une notification,tu peux aller vérifier.
00:28:48 :Voilà pour ça.Est-ce que vous avez des questions ?Si on ne s'est pas faitdéfacer ?Ouais, alors je sais pas si c'est le bon terme,mais tu sais, des fois,quand on se fait pirater les WordPress,le but, c'est pas derendre disponible le site,c'est de légèrement le modifier
00:29:26 :pour qu'il renvoie à d'autres sites,etc.Ah oui.Et alors que WordPress ou d'autres,le but, c'est pas de couper le service.Ouais.Et l'idée, c'est de savoir, est-ce que, par exemple,je sais pas,il y aurait une sonde qui serait capable,je dis ça, je dis peut-être une bêtise,
00:29:46 :mais de prendre,de demanderle site web et de vérifier,je sais pas,en faisant un hash dessusou ce genre de choses,si la réponse est toujoursconforme à ce qu'on attend.
00:30:02 :Hum...Là, sur Kuma,je pense pas qu'on puisse fairequelque chose d'aussi spécifique.Après, tu vois,je te montre, si vous voyez à l'écran,il y a la liste que tu peux mettre.
00:30:16 :Là, c'est des sondes générales qu'on a mis en place.Tu fais des requêtes HTTP,tu peux pinguer,des choses comme ça.Après, tu vois, avec le HTTPmot-clé, tu peux allerpinguer une localisationspécifique dans le HTTP.
00:30:32 :Et après, j'imagineque tu peux, tu vois, j'ai jamais fait,mais je pense que tu pourrais, par exemple,vérifier l'intégritéde ta base de données,faire des requêtes, mais...
00:30:44 :Je sais pas,à mon avis, il faut des outilsplus avancés, tu vois,pour...Pour fairece que tu dis, je pense.Là, c'est vraiment la surveillance du monitoring,plutôt de statut, tu vois, c'est pas del'intégrité, c'est pas de la...
00:31:02 :Je sais pas si on peut dire ça,de la...Ok.Du coup,ouais, donc, nouveau mot pour moi ce soir,défaçage.Ok.Bon, bah, si...
00:31:22 :S'il n'y a pas d'autres questions,on peut peut-êtrepasser à autre chose.Ce que je vous propose,c'est que...Là, on change complètement de sujet,on fasse un petit peu de...
00:31:36 :Attendez,je vais partager ce que j'avais.Un petit peude programmation scientifique.C'était la dernière fois, il y avait quelqu'un,c'était Nicolas, je crois, je sais pas s'il est là,qui voulait voir un petit peude programmationscientifique, à moins, bien sûr,que vous avez d'autres questions et que vous préfériez
00:32:02 :voir autre chose.Dites-moi...Ok. Donc, du coup, ce que je vous propose,c'est qu'on fasse...On se génèreun signal,un signal numérique, ça pourrait être,je sais pas,imaginez que...
00:32:30 :Enfin, je sais pas, pour ceux qui font du surfou des choses comme ça,imaginez une bouéeque vous mettez au largeet vous mettez un capteur sur cette bouéequi va mesurer, en gros,si vous mettez un accéléromètre ou quelque chosecomme ça, vous pouvez, en gros,mesurer en temps réel
00:32:48 :la hauteur de la vague, parce qu'en fait,la bouée, elle va suivre le niveaud'eau et du coup, elle va monter, descendreet on peut imaginer un capteur qui vamesurer l'altitude de cette bouée.
00:32:58 :Donc, on va avoir un signal numériquequi va représenterl'élévation du niveau d'eau.On va faire comme si on génèrece signal-là. Ensuite,ce qu'on va faire, c'est queon va prendre cet exemple-là pourvoir comment on peut faire une interpolation.
00:33:14 :Pour ceux qui ne connaissent pas,c'est pas grave, on va regarder après ce que c'est qu'une interpolation.Et après, pour s'amuser,on pourra faire une...
00:33:22 :on va s'amuser un peu avecMatplotlib pour faire duplot en trois dimensions.Alors,surl'interpolation. Donc d'abord, on vase créer notresignal. Ok, donc
00:33:38 :en gros, un signal... Attendez, si je reprends...Je vais reprendre ici...Ok, doncun signal...Je vais créer un signal.Donc, ce que je vous ai dit,la mesure de la bouée, ça va êtreen fait une vague. C'est quoi ?
00:34:08 :C'est une onde.C'est une onde qui se propage.Et une onde, c'est un signal périodique.Donc un signal périodique, c'est quelque chosecomme ça. Donc c'est un cosinus ou un sinus.
00:34:18 :Donc là, ce genrede signal,ça s'écrit de cette manière-là.Donc si on l'appelle ici...Comment on va dire ? S...Je vais même l'appeler pour qu'on soitpas trop éloignéde ce qu'on peut avoir déjà vu.
00:34:38 :On va direque c'est Y ici.Et là, on va mettre X.Ok ?Donc en gros là, notre signal, c'est...On va dire...Pour tout X appartenant à l'ensemble des réels,on aY de Xest égal à une fonctionde X. Ok ?
00:35:02 :Et donc cette fonction, c'est le...On n'est pas là pour faire des maths ou de la physique,c'est juste pour donner un peu de contexte.
00:35:08 :Si vous vous en flichez, dites-le moi, je passe direct.Mais...Et donc en gros, ici, cette fonction là, le signalvert, on sait que ça peut s'écrire de cetteforme-là, parce qu'on voit que c'est un cosinus.
00:35:18 :Donc là, en l'occurrence, c'est plutôt un sinus, parce queici, en 0, on est égal à 0.Si c'était un cosinus, ici,on serait à 1. Mais là, c'est un sinus.
00:35:26 :Donc, ça s'écrit comme ça.C'est une amplitude. Donc là, l'amplitude,en fait, ça va êtreici. Là, c'est l'amplitude. Donc là, on va...Là, c'est la demi-amplitude. On va dire
00:35:36 :qu'ici, je ne sais pas,c'est 1 et là, c'est moins 1.Donc là, l'amplitude, ce serait 2. Enfin, ce serait...Ici, ce qu'on va mettre devant lecosinus, ça va être la demi-amplitude.
00:35:46 :Donc là, c'est plutôt1 sur 2. Enfin bref, vous m'avez compris.On ne va pas rentrer dans ce genre de détails.X... Pardon.On a dit que c'était unsinus.
00:35:58 :Sinus et...Omega t plus phi.Ça ne sert à rien, on ne va pas rentrer dans le détail.Mais c'est juste pour vous dire que là,omega t, c'est2pi fois la fréquence. Donc si,
00:36:10 :par exemple, là, on veut qu'il y ait10 secondes,un temps de10 secondes entre les deux crêtes,on va dire que f,ici, c'est 0.1 parce que
00:36:22 :c'est 1 sur 10. Enfin bref.C'est juste pour vous donner un peu de contexteet c'est toujours plus intéressantde programmer des choses qu'oncomprend, c'est plus motivant.
00:36:34 :Donc voilà. On va faire...On va essayer de créer cesignal et on va le tracer.OK. Donc pour ça,on va importer les bibliothèquesnécessaires dans Python.
00:36:46 :C'est un peu gros.Import.Donc j'importe numpyas np et on vaavoir besoin de matplotlib.matplotlib.typelot as plt.OK. Donc qu'est-ce qu'on a dit ?
00:37:04 :On a dit que notre signal, ça va être untruc du type a foissinus oméga t plus phi.Donc phi, on ne va pas le mettre, c'est laphase. Ça ne sert à rien. Enfin,
00:37:14 :c'est pas que ça ne sert à rien, mais çane changera pas la tête du signal.Donc on a dit qu'on va définirune fonction qui va définir ce signal et quiva prendre... Je vais d'abord l'écrire
00:37:24 :comme ça un peu à la bourrin et aprèson le mettra plus propre dansune fonction. Donc on va direque mon amplitude,mon signal, pardon,signal va êtreégal àmon amplitudefois np sinusaprès on a dit22pi f, donc 2pi foisla période qu'on veut. Pardon.
00:37:50 :2pinp.pifois 2pi fOn va mettre comme çaet foisOk, donc là je suis obligé de définir ce queje veux. Je vais dire que je veux une amplitude
00:38:12 :de 1, c'est simple. En période,on va dire queen fait, la période ici, on va direqu'on veut 10 secondes et du coupf c'est juste la fréquence, on va dire que c'est1 sur t.
00:38:24 :Et ici, le tempsdonc le temps ça va êtresur combien de temps on veutnotre signal.Donc là je vais lui direje vais mettre un line spaceplutôt et après je vais vousmontrer tout ce queon a fait.
00:38:42 :Je vais lui mettre100.Ok, donc là on a notre signalon vadéjà le voir ce queça donne. Si je faisrun àinterpolationet que je vais voir mon signaldonc là en fait il m'a sorti une listeje vais même y aller petità petit plutôt
00:39:06 :Si je vais voir, bon làj'ai mon amplitude, ok c'est 1.Donc en fait t c'estl'abscisse, vous voyez iciquand on avaiten gros là mon signal c'est yet mon abscisse x c'est t.
00:39:26 :Et donc là tout ça, moi j'ai définiune série qui permet de définir icile temps sur lequel on veut notre signal.Donc c'est ce que j'ai fait ici. Et avec Numpy
00:39:34 :vous voyez on peut facilementgénérer plein de pointscomme ça, donc j'ai dit si je vaisvoir un peu ce que ça donne, je veux partir de 0je veux aller jusqu'à 10 fois tparce qu'en fait je veux afficher10 périodes iciet je veux 100 points en tout.
00:39:50 :Donc là si je faisaist.shapej'ai bien 100 pointsdans ma liste et je vais de 0à 100 en mettant 100 points.Et aprèsce que je fais c'est que je veux appliquercette formulationdonc a fois sinusoméga t plus phi à toutmon ensemble de points.
00:40:12 :Avec Numpy on peut faire ça facilementen l'écrivant de cette manière là.Souventquand vous faites ce genre de manipulationsil faut, en fait quand on fait de ladata science, il faut absolumentfaire des graphes de ce qu'onfait parce que sinon on peut vites'y perdre. Donc pour faire un graphe
00:40:30 :on va dire, on veut fairetlt.ploton va tracer y en fonctionde xet on va l'afficher. Donc vous voyez c'est hyper simpleje dis juste ploten abscisse tu mets t eten ordonnée tu mets signal.
00:40:46 :Donc si je fais ça et que je relanceVous voyezj'ai mon signal ici, mon signal périodique.Je lui ai bien dit que je voulais10 périodes, donc là ça fait 1, 2, 34, 5, 6, 7, 89, 10. Bon là j'ai une demi-période
00:41:04 :et là j'ai une demi-période, du coup ça fait quand mêmebien 10.Là vous voyez mon signal il est pastrès beau. En fait c'est parce que
00:41:12 :il est pas assez défini,j'ai pas mis assez de points. Donc là il commenceà être un peu plus beau et si je mets500 pointset là je suis plus lisse.
00:41:22 :Donc là j'ai mon signal périodiqueavec 10 périodes. Donc làon peut commencer à être content.Et juste pour vous montrer quelques options dematplotlib, si par exemple je voulais voirafficher mes points aussi en même temps,il suffit ici de dire, ça c'est le typede représentation qu'on veut pour notre
00:41:38 :graphique. Donc là vous voyezen plus d'afficher la courbej'ai aussi affiché les points.Ok ?Donc là voilà un petit peu pourle signal. Donc si vous
00:41:50 :là vous voyez j'ai misj'ai fait afficher 10 périodessi par exemple ici j'avais juste mis 5et que je relance,j'ai bien que 5 périodes. Là j'ai 1,
00:42:00 :2, 3, 4, 4 périodesentières et 2 demi-périodes. Donc ça faitbien 5 périodes dans tout.Voilà donc ça c'est un peucomment on fait pour tracer un signalqui pourrait représenter. Donc là imaginez
00:42:12 :qu'en fait, si je retournelà-dessus, ce que je vous disais tout à l'heure,imaginez que là c'est la surfacede l'eau, donc si on trace un trait horizontalet ici à chaque fois on estsur la crête de la vague et là on estdans le creux. Donc imaginez que vous êtes une bouée,
00:42:28 :vous êtes dessus, là vous montez à 1 mau-dessus du niveau d'eau, là vousdescendez à 1 m en dessous du niveau d'eau.Voilà, en fait làmoi je trouve ça joli en fait parce quequandà l'école et tout ça on peut parfoison apprend les maths et tout ça, on dit bah ça sert
00:42:46 :à rien, on comprend pas à quoiça va me servir le cosinus dans ma vie.Bah en fait le cosinus là par exempleça permet de représenter une grandeurphysique qui est une vague sur laquelleon peut surfer par exemple.
00:42:58 :Voilà,ça c'est un petittop parté peut-être quevoilà.Donc ça c'est comment on traceun graphe. Est-ce que ça vous intéresse de continuerd'aller plus loin et de voirune interpolation,parce que je vais rentrerpeut-être un peu dans le détail,je vais pasvousbalancer des formules dans la tronche, etc.
00:43:26 :Dites-moi si vous voulez voir directementune interpolation, si ça vous intéresseou si vous voulezvoir autre chose, parce que làj'ai parlé et je vois pasde réaction, du coup je sais pas tropsi ça vous intéresse ou si c'est tropdites-moi un peu si ça vousintéresse ou pas parce que moi
00:43:50 :sinon je déroule et puisje sais pas si ça vous plaît.............Ok,merci Simon.Doncune interpolation, je vais reprendremon petitgraphe.
00:44:16 :Une interpolation,comment on peut expliquer ça ?Je vais essayer de faire unexemple simple..........Est-ce que vous voyez quelque chose ?
00:44:34 :C'est pas la bonne page ?......Alors, comment expliquer ça ?On va reprendre notre exemplede.........Non ça va,on va pas faire comme ça.
00:44:54 :......Imaginez en fait que vous avezdes donnéessuite à une expériencephysique et vous avezce genre de points.Donc là vous dites en faitvous avez...
00:45:14 :Donc là je sais pas si vous voyez mais en vertc'est la mesure physiqueet ici ce que je trace en rouge c'estles coordonnées pour lesquelles vous avez lamesure physique. Donc ça peut être
00:45:24 :...Ce qui peut se passer c'est queimaginez la mesure physique c'est......Imaginez que c'estvos finances.Donc on va dire que c'est pour votrecapital et icilà c'estla valeur de votreporte-monnaie en euros et icic'est les années.
00:45:50 :Donc ça va de1989à2023....Et donc ce quece qu'onaimerait c'est par exemple, donc làje vais mettre un pointici, on va dire que là c'estje sais pas, 2016et icidonc les points verts en fait c'est à chaque fois que vous avez
00:46:16 :enregistré votrela valeur de votre porte-monnaie, vous l'avez mis dansun logiciel et vous avez diten 2016, icidonc on va regarder la valeur que ça aen 2016 j'avaisdans mon capital, je sais pas5000 euros.
00:46:32 :Etici on va dire queen2020, vous avezautre chose...7000 euros....Imaginez que par exemple vous avezun contrôle d'huissier ou je sais pasdes impôts qui disenten 2018donc icien2018t'as pas déclarétes sous et vous avez pas enregistrécette donnée et puis là on se retrouve, je sais pas
00:47:08 :on est dans le futur, on esten 2035et c'est en 2035 qu'on vient vous faire chier pourquelque chose de 2018 pour une valeur que vousavez pas du tout.
00:47:18 :En fait vous voyez qu'entre 2016et 2020 vous avezil y a un trou, ce que vous allez essayer de fairec'est une interpolation. Une interpolation
00:47:26 :en fait c'est juste essayerde récupérer de la data à un endroitoù vous en avez pas.Et pour ça, il y aplusieurs méthodes, là ce que je vous donnec'est vraiment un exempleil y a très peude chances qu'entre 2016 et2018 ça a pu faire ça
00:47:44 :mais ça a très bien pu faire çaça a pu faire ça, etc.Il y a plein de possibilitésmais ce que je veux vous montrerc'est que l'interpolation ça permet de récupérerde la data là où on en a pas.
00:47:56 :Là c'est un exemple bidonmais en fait l'interpolation ça marche surtouten physique.Pas de soucis Stéphane, t'inquiète pas.Je regarderaiton message là pour les prochainesDonc ce qu'on va faire c'eston va essayer d'interpoler. Interpoler c'est juste
00:48:20 :créer des points là où il n'y en a pas.Je vais vous montrer directement sur la fonctionque j'ai déjà fait juste avantça sert à rien d'aller plus loind'aller dans le détailmais en grosje vous montre ce qu'on peut faireavec le module SciPydonc SciPy c'est une bibliothèque scientifique
00:48:38 :comme NumPyou NumPyqui permet de faire de l'interpolation.Donc là en gros ce que je fais c'est justeje crée mon signaldonc tout ça je vais peut-êtrele commenterJe vais vous montrer juste çaEuhQu'est-ce qui m'a sorti ?
00:49:12 :Il m'affiche toutAh oui okEt donc là vous voyez c'estle signal dont je vous parlais. Donc ça c'esten gros vous avez un signal avecdes points et ce que vous aimeriezc'est avoir de la data à l'endroitoù vous n'avez pas de points.
00:49:36 :Ce que vous pouvez faire c'est une interpolationmais une interpolation il y a plusieursmoyens ce que je vous ai montré tout à l'heure. Soit c'est linéaire
00:49:42 :soit on peut faire des interpolations un peucubiquesou des choses comme ça. Donc c'est toutsimple en fait il y a une fonction qui existe dans lemodule SciPyqui s'appelle Interp1Doù en fait vous allez direvous allez donnervos data existantes. Donc en fait
00:50:00 :quand vous faites X et Y vous donnezvos points ici.Vous dites dans votre fonctiond'interpolation vous lui donnez X et Y et vous lui donnezles abscisses et les Y que vous avez à disposition.
00:50:10 :Donc c'est tous les points bleus. Et ensuitevous dites j'aimerais que tu me fasses une interpolationentre chacun de ces points avecun certain type. Et après
00:50:18 :vous allez ressortir un nouveau jeude données qui va vous donner les pointsqui sont entre chacun des points bleus.Donc c'est ce qu'on fait ici. Là
00:50:26 :on crée notre signal initial donc c'est le signalbleu qu'on connait. Et icion va créer le nouveaujeu de données sur lequelon veut nos nouveaux points.
00:50:36 :Donc c'est des points qui sontbeaucoup plus définis. On a plus de définition.Et ensuiteon va lui dire soit tu me fais une interpolationlinéaire soit tu me fais une interpolationpublique. Donc c'est ce que j'ai fait ici
00:50:48 :et on peut plotter les deux.Je vais vous montrer ce que ça donne directement.Voilà.Donc en gros ici je vais zoomerà un endroit.
00:50:58 :Et vous voyez là j'ai misen bleu c'était les points initiauxdonc parfois on ne les voit pas parce qu'ils sontmélangés. Donc là vous voyez par exemple
00:51:06 :j'ai un point bleu qui étaitinitialement.Je vais peut-être montrer. Ouais ici on voitun peu un point bleu. Donc là j'ai mes points bleus initiaux.
00:51:14 :En vert vous voyez que c'estl'interpolation. Attendezj'ai un problème dans ma légende.Linéaire.Aller où la cubic.Linéaire et celle-là c'est la cubic.Donc là j'ai mon point bleu initial.
00:51:42 :Vous voyez qu'en rouge en fait il a essayéd'interpoler entre mes points bleusmais un peu de manière pas très fine.Parce que c'est linéaire donc en grosvous voyez qu'il ne fait que des droites entre chaque point. C'est pas très
00:51:52 :propre. Alors que si je fais une interpolationcubic et bien il va bien suivredonc en fait il va essayerd'interpoler en utilisantdes équations dusecond degré. Donc ça peut être du x²
00:52:04 :du x³ etc.Mais là en l'occurrence cubic ça veut dire qu'il va allerjusqu'à des interpolationsdeniveau 3. Donc il va aller jusqu'àdes x² parce quel'exposant maximalc'est 3. Enfin c'est 2.
00:52:20 :C'est le troisième degré. Enfin c'est 0,1, 2. Enfin bref je vais pas aller dans le détailmais voilà donc. Et en grosvous voyez que ça devient intéressantparce que ça veut dire queavant sursi on regarde ici là par exemplesi on avait des valeursque sur cet abscisse ici là
00:52:40 :que sur 8.1on avait pas de valeur sur8.2 parce qu'on avait pas de point bleu mais grâceau point vert et au point rouge en fait on ades valeurs accessibles sur des donnéesqui n'existaient pas. Et il a interpolé
00:52:52 :en fait il adonc vous voyez c'est un petit peuquand on parle d'intelligence artificielleetc. En fait derrière c'est justece genre devoilà c'est hyper simplifiémais quandon parle de scikit-learnetc. Quand on parle d'interpolation
00:53:10 :etc. Ben en grosc'est plus sophistiqué que çamais le concept est là c'est à direqu'il va essayer deà partir des données qu'il a à dispositionil va trouverlà vous voyez qu'on a juste fait grâce à des mathson a fait des interpolationsil va proposer des données
00:53:28 :les données manquantes. Doncquand on parle d'intelligence artificielledede plus proches voisinsetc. En faitdans toutes les librairies scikit-learn etc.de machine learning enfin machine learningsurtoutc'est rien d'autre que des mathsderrière avec des interpolations un peuaprès ça peut être beaucoup pluscomplexe mais voilà c'est juste pour vous dire
00:53:52 :qu'il n'y a rien de sorcier une foisqu'on s'y metet voilà donc vous voyez un peu ici commenton peut manipuler on peut faire des plots etcdes graphes avec matplotlib c'est assez simpleil suffit juste de dire plot on metl'abscisse et l'ordonnée eton peut définir un peu les options
00:54:08 :du graphe qu'on veutje trouve que c'est assezparlantet qu'est-ce qu'on peut faire aussi juste avantde finir ouais on peut faire des plots entrois dimensions aussi il suffit justehumah bah oui oui avec panda avec la manipulation de donnéesc'est merveilleux je teje te l'accorde
00:54:28 :là vous voyez ici j'ai justedéfini projection 3Ddonc j'ai utilisé à peu près les mêmes typeset vous voyez qu'on va pouvoirgénérer des plotsen trois dimensions qui sont interactifsgrâce à matplotlibhumvous voyez en fait ça c'est le graphequ'on avait tout à l'heuredonc qui est interactif
00:54:50 :si je regarde que dans le planXY que j'avais tout à l'heureen fait je me retrouve avecla sinusoïde vous voyez que j'ai tracétout à l'heure c'est justevoilà je le mets dans le planmais ce que j'ai fait c'est que en plusde l'abscisse XY j'ai utilisé
00:55:06 :la troisième coordonnée Zj'ai mis au carrétoutes lestous les pointsdonc ça veut dire qu'à chaque fois qu'on progresseen X et en Y on élève au carréle Y par exempleet ça permetde faire des plots en trois dimensionsdonc après il y a plein d'applications
00:55:26 :là c'est juste pour vous faire découvrirmais voilà vous voyez qu'en data sciencevous voyez parfois des publicationsscientifiques avecdes modélisationsetc doncil y ales data scientists utilisentce genre de librairiedonc MatPlotLib, NumPy, PandaSciPy pour fairedes calculs scientifiquesvoilàj'ail'idée c'était de vous montrer un peu un aspect
00:55:56 :un autre aspect de Pythonqui est pasledéveloppement web comme on peutfaire avec Django ou quoi mais làc'est vraiment purement scientifique etmathématiquec'est une autre application de la programmationmaisc'estvoilàc'est pour vous montrer que c'est variéje sais pas sivous avez des questions
00:56:26 :jej'ai essayéde rendre ça intéressantje sais pas simerci ouaisdu coup vas-y Gabriel si t'as une questionouion repart avec çadu coupquel avantage t'aurais d'utiliserPanda, MatPlotLibpar rapport à Excelparce que tout le mondeje connais plein de gens qui crachent sur Excel
00:57:06 :en disant Panda c'est bienmoi perso avec Excel je fais plein de trucs de maladeouiavec Pandabah en faitmoi c'est pareil au boulotj'utilise les deuxet j'en avais déjà parlé en faittu peux mêmet'as une librairie qui s'appelle Excel Wingsqui te permeten fait de développer tes fonctions
00:57:30 :en Python et de venirles transporter dans ton fichier Excelmais en grosmoi je me sers de Excelquand je dois manipuler des tableauxfaire des correspondances etcou mêmefranchement quand j'ai un trucsimple et rapideà faire je le fais avec Excelmais quand j'ai des trucs complexes
00:57:54 :à des combinaisonsmême faire des graphiques et tout çaje préfère quand même le faire avecPython maisde toute façon c'est facile de direExcel c'est de la merdequand tu connais Pandamais voilà c'est pourles gens qui disent ça c'est pour se faire mousserparce que pour moi
00:58:14 :faut pas les opposer c'est pas deux outils à opposertu vois c'est pas commec'est pas comme Django et Flaskc'est deux frameworks que tu peux opposerparce qu'ils font la même chosemais ils la font pas de la même manièrealors que Panda etExcel pour moi c'est pas les
00:58:32 :mêmes outilsmais oui moi aussiPanda t'as pas deah non vas-yvas-ylimite de ce qu'avec Excelc'est un million de lignesavec Panda t'as pas de limite je croisil me semblela seule limite c'estta limite mémoireavec Pandaet il me semble quand même que
00:58:58 :même si t'asmême si t'asimaginons que si t'avais RAMillimitét'aurais quand même une limite avec Pandaelle est plus élevée que celle d'Excelmais t'as quand même une limitesi tu veux aller plus loinavec Panda il faut utiliserles librairiesde clustering où en faitil va manipuler des objets Panda
00:59:22 :mais en faisant du multiprocess etcc'est un peu compliqué mais c'est desbibliothèques de machine learningsurtoutouais Power BIj'en ai beaucoup entendu parler aussij'ai jamais utilisé en fait Power BI c'est quoiça permet de faire des applicationsc'est duno code Salvatore ?
00:59:44 :et tu fais quoitu manipules desfichiers Excel avec ça et tu fais des applicationsun peu avecdes interfaces etc non c'est ça ?
00:59:56 :c'est pas que no codeah ouais et c'est quoi comme langagedu coup ?c'est un langage propriétaireah oui d'accordc'est genre et c'est quoi c'est MicrosoftPower BI ?
01:00:16 :ouais c'est appartenant à Microsoftd'accord ok et toi tu l'utilises régulièrementc'est un truc que tu connaismoi je l'utilise pas mais je l'ai au boulotokbah ouais je t'avoue franchement j'ai jamaisje l'utilise un petit peu mais je l'ai pasje l'ai pas pousséj'ai des collègues qui ont fait des formations jusqu'à la partie
01:00:34 :avancée donc ils ont touchéà du code à du DAXouaismais sur le genre c'est du DAXc'est quand tu développe un truc un peuplus complexe avec des nouveaux boutonsdes nouvelles fonctionsqui est pas par défaut à Microsoftokmais après en fait c'est beaucoup de
01:00:54 :c'est un aspect de gestionde données en fait tu peux faire des graphestu peux faire desdes listes tu peux faire plein de trucs par rapportà des données en faitah oui d'accord donc ouais tu peux directementet c'est quoi ça marche avec Excel ou c'estplutôt
01:01:10 :le truc de la base de données d'Excelça marcheavec Excelaussi parce qu'il y a Microsoftet ça marche avec plein de données différentesouais d'accord okPower Querycomment il s'appelle la basede données elle s'appelleah putain je sais plusah ouaist'as plein d'optionsExcel, Powerball
01:01:36 :ADBattends c'est quoi c'est ADB ah oui Accessaccessla base de données de Microsoften fait tu nettoies tes donnéesdans Power Queryc'est la même chose que dans Excelet tu peux créertes champs enfin tes fonctionsdirectement en DAXd'accord et tu peuxouais t'as j'imagine que t'as des widgets
01:02:00 :t'as des boutons et toutque tu peux positionner où tu veuxouais t'as l'interface graphiqueouais t'as l'interface graphiquetu peux choisir ce que tu veuxtrier par date ou trier par ce que tu veuxen fait tu fais un tableurt'as créé un sort de tableuret puis après tu peux faire des graphes avec
01:02:18 :tu peux faire plein de chosesokc'est assez lourd comme logicielouais et si jamaisc'est un truc localou c'est fait pour faire des webappque tu peux déployer aprèssur des domaines et tout çatu peux déployeren mobile aussiah ouitu peux déployer ce que tu veux
01:02:42 :et là c'est aussi en temps réelah oui d'accordquand tu changes les données ça te change directementdans ton bureauokje pense que ça vaudrait le coup que je regardeparce que c'est vrai quemême si avec le boulotj'utilise beaucoup Python, Pandaje continue d'utiliser Excel
01:03:02 :donc ça fait un trucen fait moi souvent quand j'utilise Excelj'importe mes fichiers Excel dans des dataframesavec Panda et puis après je manipulemais peut-être qu'on peut faire directementjustement avecce genre d'outilsmerciSalvatore etZocro pour vos infosje vais regarder çaouais ouais ça doit être assez puissant
01:03:36 :je pensevoilà est-ce que vous avez d'autresquestions, d'autresremarquesouais Simon je t'écouteouais alors moi j'avaisune question notamment par rapportà une thématique abordéeje sais pas si ça a déjà été abordé dans lesdans les sessions précédentesen faitj'ai fait pas mal de tutos
01:04:06 :sur la création de l'applicationen fonction de la complexité donnée et autremais je me suis aperçuqu'en faitquand j'essaie de modéliserune situation donnée from scratchc'est-à-dire queun besoin métierquelque part dans une entrepriseet donc l'analysedu besoin métierettraduire ça ensuiteen schéma
01:04:34 :de base donnée et le modéliseretcquand c'est un peu délicatquand les choses à faire sont un peuun peu trickyen faitje tape ma limiteon trouve plein de contenus sur internetpour pouvoir faire la modélisationvraiment la basemais dès qu'il faut mettre en oeuvre sur des cas
01:05:00 :un peu délicatsavec des relations un peu bizarresenfin peut-être pas bizarresmais un peu complexesc'est plus difficileet du coupsavoir si c'était envisageablede faire une session là-dessuspour modéliser un besoin métierSimonexcuse-moi je sais pasje pensais que vous aviez pris une discussionensemble, j'ai été déconnecté
01:05:26 :je sais pas si vous avez vuj'ai lu la notice pour dire que t'étais connectéouais, désolémais du coupj'ai entendu la fin de ta questiontu parlais detu cherches des ressources pour une applicationconcrète mais j'ai pas compris le débutc'est sur quoi ?
01:05:44 :du coup j'ai essayé de la refaire en version courtedésolé, vraiment désoléouais non je disais quetu sais des fois quandtu prends une problématique dans une entrepriseil faut que tu modélisesdes besoins métiersdonc tu fais vraimentt'analyses le besoinet ensuite tu crées la modélisation de la base donnée
01:06:04 :parfoisquand il y a des relationsun peu complexesc'est pas évident en faittu vois pour unquelqu'un qui sait pas forcémentc'est délicat en faitla modélisation de base donnéesi tu lui fais mal les choses dès le débuttu vas te traînerce problème tout le long
01:06:28 :souventdans les tutost'as des cas assez simpleson te ditvas-ylance toi dans le codeon utilise l'ORM etcet tout va bienmais quand tu te retrouves en situation normaledans la vie réellepar exempletu voistu as un livre qui peut être détenupar quelqu'un
01:06:56 :mais qui peut être prêtémais qui peut être venduet que tu commences à avoir une multiplicationdes liaisonshonnêtement moi je suis complètement perduet ça m'est déjà arrivéde calerpas par manque de méconnaissance du processus métiermais je sais pascomment le transcrirede manière claire
01:07:18 :du coup je me demandaissi ça pouvait éventuellementêtre intéressant de voircomment mettre en oeuvreune modélisation à ce niveau làc'est un truc un peu touchyun peu complexeouais carrémentje suis d'accord avec toic'est hyper compliquéc'est pour ça en faitque les discussionson parle de définir le besoin
01:07:44 :il faut vraimentmettre beaucoup d'efforts là dessusc'est pas hyper clair au débutpour faire la modélisationparce quesi tu le fais malet qu'après il y a des changementspendant le projett'es coincéparce que t'as fait ta modélisationde base de donnéeset puis t'as un changement
01:08:08 :aprèsje pourrais en discuterje pense que c'est vraiment un gros sujetj'en discuterai avec Thibaut je pensemais il y a çail faut réussir à définir de basele truc le plus flexible possibleet après je pense quelà on parle de base de donnéesrelationnelleton schéma de base de données
01:08:30 :il est importantmais t'as aussid'autres types de base de donnéesje connais pas trop mais pour moi il faut sortir du cadrede la base de données relationnelletype SQL etcet il faut aller vers d'autres typesde base de donnéesd'autres modélisationsc'est vraiment un autre paradigme
01:08:52 :c'est plus un trucoù tu vas définir ta base de données relationnelleavec ton formatqui est rigidequ'après tu pourras plus changerou si tu peux changermais dans la mesureoù tu modifies pas complètement ton architecturemais après je pensequ'il faut passer sur des bases de données
01:09:12 :orientées documentsdes trucs qui sont un peu plus dynamiquesen termes de structuremaisc'est un bon sujetil faut que j'en discuteje pense avec Thibaut pour voirce qu'on pourrait fairece que je voulais direc'étaitje vais préciser un peu mon trucc'est par exemplet'as une société qui va commander
01:09:38 :des piècesfabriquéesdans différentes usinesetchaque usinea des capacités à produire certaines piècesen fonction de certaines contraintestu voiset en faitpour l'avoir vula personne qui a modélisécette base de donnéesa attaqué les chosesd'une façon de laquelleje n'aurais pas forcément pensé
01:10:08 :il a déjà défini toutes les donnéesentre guillemets stablesles différents produits etcet toutes les données où il y auraitbeaucoup d'enregistrementset en fait il a scindé les deuxtu voiset en fait il y a plusieurs façonsde faire et je ne sais pasquelles sont les bonnes pratiques
01:10:32 :quelles sontles bonnes pratiquesà mettre en oeuvrepour ne pas trop faire n'importe quoiaprès malheureusementje pense que c'est à l'expérience aussimoi je dis çaje ne suis pas du tout expertdans ce que tu évoquestu sais définir les schémas de base de donnéesje ne suis pas du tout expert
01:10:58 :j'ai déjà été confrontéà ces problèmes làje ne sais pas si tu as déjà fait du Djangomaistu sais quand tu définistes schémas de clés étrangères etcau débutc'est pas intuitif quand tu dois définirdesmany to manyparce quec'est bizarreparce que la relation tu dois la définir
01:11:24 :dans l'objet qui va être filset non pas dans l'objet qui va être parentdonc tu vois c'est vrai quec'estc'estje suis d'accord que c'est compliquéil faut vraimentj'ai vu un message de Célineil faut y passer beaucoup de temps dans le projetà définir ça et que tout le monde soit d'accord
01:11:44 :maisc'est vraidans le métier du dev en tout casde ce que j'ai pu moi remarquerc'est que t'es devt'es déployé dans une missiont'arrives dans une entrepriseil y a déjà de l'existant en faitdonc tu te greffesà l'équipe, ils t'expliquent le contexteils t'expliquent ce qu'ils ont mis en oeuvre etc
01:12:06 :et tu parles là dessusmais du coup quand t'arrives sur unedans une entreprise ou un projetoù il y a rientotalement from scratchet ben en fait la difficulté elle est tout autretu voiset tu te disbon ben ça va j'ai du backgroundje vais quand même y arriver tu vois
01:12:26 :et en fait tu t'aperçois quand même que la montagneelle est haute quoiouais ouais je suis d'accordfaut pas se planter parce queaprès tu te retrouves avec unbousin ou avec plein d'entrées dans la basedes données que tu peux plusça peut être compliqué à migrer
01:12:42 :après si jamais tu dois changerc'est ça, et toi même un truc tout bêteun truc de gestion de pièces automobilesou avecles différents fournisseursles fournisseurs quipar exemple se croisent entre euxle fournisseur peut aussitu peux avoir deux niveaux de fournisseurstu vois ouqui se cascadent par exemple
01:13:04 :le premier qui transmet la pièceau deuxième qui la transmet à toiouce genre de chosesl'exemple est peut-être passuper bien choisije vois ce que tu veux direje vois tout à fait l'idée après pour moitu vois mêmetu vois cette idée làde les relations etc
01:13:28 :ok c'est complexemaissi tu passes le temps qu'il fautet si tu comprends bien commentdoit fonctionner ton applicationpour moi tu peux le gérer en y passant le temps qu'il fautpour moi la grosse difficultéc'est si jamais après il y a un changementvraiment conséquentsur l'architecture et la relation
01:13:48 :entre tes objets, là pour moi c'est ça le pluscompliqué, un changementque t'as pas pu anticiperparce que voilà tes différents niveauxde fournisseurs etc tout ça normalementaprès tu voistu peux pastu peux pas créer une applicationvivante en grossic'est pas forcément de la faute du développeur
01:14:14 :que si l'applicationelle fonctionne pas et l'architecture est pas bonneça peut être aussi que le besoin il a pas été biendéfini donc il faut pasnon plus se direque c'est de la responsabilitéuniquement du développeur de faire une bonne architectureil faut aussi que le besoin soit bien défini
01:14:30 :c'est pour ça aussi que c'est compliquéd'être développeur et de se faireembarquer dansune entreprise que tu connais pas du toutetc parce que voilàsi tu connais pas bien le fonctionnementles différents niveaux de fournisseursdans ton exemple làtu peux manquer d'anticiperouais tout à fait
01:14:50 :maisouais donc en grospeut être avoir un cas typeun cas d'écolepour montrer commenton peut faire quoic'est ça l'idéetoi tu fais du Djangoou c'est du T6admin plutôt toi ?
01:15:10 :non plutôt du Djangook ouaisbah ouais en fait ça pourrait être dans le cadre d'un projet Djangoparce que Django tu manipulesles bases de données relationnellesdu coup ça pourrait êtredans ce cadre làen fait il faudrait un projet un peu plus complexeque les projets
01:15:28 :actuelsen termes de relation entreouais c'est ça ouaisdévelopper une méthodepour se poser les bonnes questions etcje notehumouais bah écoutezun petit trucouais vas-ytu parlais tout à l'heure de basesnon renationnellest'as déjàfaitutiliser les bases NoSQL ?
01:16:20 :non maisc'est pour ça que je disaisj'étais pas le mieux placéje pense pour parler de çaj'ai déjà vu vite faitles bases de donnéesorientées documentsmais à part çac'est un autre systèmeça fonctionne d'une autre manièred'une autre manière que les bases de données
01:16:44 :renationnelles, il n'y a pas de cléen fait ça marche parclé étrangère etcet là tout ce qui estMongoDB etc c'est dudocument etmoi je vois un peu ça commeune organisationplus typeun peu comme un dictionnaire en faitça marche plutôt commeun tableau
01:17:12 :c'est un peu différentmais bon je suis pas assez bien placépour vous en dire plus là dessusmaisfaudraiten discutant avecle sujet que vient d'évoquer Simonon pourrait peut-être réfléchiravec Thibaultcomment on peut pallier ce problèmede dynamismedans l'architecture de la base de données
01:17:36 :voilàça répond pas trop à ta questionmaisça m'intéresse aussi en tout cason a tous ce problème je pense au finalbah ouais c'esten fait pour moi c'est pas un problèmec'est plutôt uneune compétencequ'il faut acquérirc'est pas une hard skill en faitet c'est plutôt
Aucune occurrence trouvée pour « ».
00:03:56
Présentation de Portainer
00:08:49
Différence entre la version Community et Business
00:15:15
Dashboard de Uptime Kuma
00:31:29
Un peu de programmation scientifique avec Python
00:56:51
Question de Gabriel : quels sont les avantages de Pandas, Matplotlib et autres, par rapport à Excel ?
01:05:43
Question de Simon sur comment planifier les modèles d'une base de données