Too much writing for today

This commit is contained in:
2023-06-07 14:41:49 +02:00
parent 73a5bcf116
commit db162a3829
3 changed files with 64 additions and 2 deletions
+64 -2
View File
@@ -2341,13 +2341,75 @@ Pour conclure, je dirais que ce projet est loin d'être un exemple de performanc
----
[A remplir à la fin du projet pour parler des questions ethiques du projet (Ex: Utilisation potentiellement abusive de la F1Tv ou L'histoire des cookies)]
Ici on va parler des questions éthiques de ce projet. En effet, il y a quelques petites choses qui peuvent poser question.
Il y a deux questions qui reviennent presque à chaques fois que je parle ou présente mon projet :
### Utilisation abusive de la F1TV ?
La F1TV est un service payant qui n'est pas forcément donné (même si pas bien cher pour un utilisateur comme moi qui l'utilise plus d'une fois par semaine plusieurs heures). De ce fait, je ne peut pas rendre son accès plus facile ou faire fuiter des informations de courses que l'on ne peut se procurer que par son utilisation.
Mais voila pourquoi je pense que mon utilisation n'est pas une utilisation abusive :
- L'application ne fonctionne que si l'utilisateur a un compte F1TV valide et qu'il s'est connecté récemment sur sa machine. (Cela veut donc dire que je ne permets pas à des utilisateurs de frauder)
- L'application ne partage aucune information sur le contenu de la F1TV avec l'extérieur. (On peut pas avoir accès à des informations payantes sans abonnement)
- L'application ne simule qu'un seul utilisateur connecté sur une vraie machine (Cela veut donc dire que je ne suis pas en train de faire un système de bot qui regarde 45 flux en même temps pour scrapper tout le site et/ou poser des problèmes de DDOS)
- Les données ne sont pas stockées entre les sessions (cela veut dire que l'on ne représente pas un risque de fuite de données et on n'est pas un service qui vient scrapper le contenu pour alimenter une IA ou quoi que ce soit... pour l'instant...)
En fait mon application fonctionne exactement comme si on avait une page ouverte avec la F1TV dessus et qu'un ami à coté de nous la regardait en prenant des notes pour nous aider à suivre. Je ne vois donc pas le mal et je ne vois pas en quoi ce projet serait problématique sur ce point.
Après dans le futur, le but est clairement de conserver les infos trouvées pour entrainer un algorythme de prédiction et la peut-être que cela pourrait poser plus de problèmes, mais ce n'est pas le cas à lheure ou j'écris ces lignes.
### Récupération de cookies à l'insu de l'utilisateur ?
Alors la on est clairement sur le sujet un peu plus épineux...
Un peu de contexte dabord :
A la base je voulais que l'utilisateur entre ses identifiants dans mon application et ensuite que le navigateur les rentre dans la page de login automatiquement et qu'il puisse se connecter.
Deux problèmes à cette solution :
1. L'utilisateur doit avoir assez confiance en mon programme pour laisser ses identifiants en clair à l'intérieur.
2. Il est extrêment difficile de bypass la protection contre les bots de la page de login de la F1TV.
J'ai donc du trouver une autre solution : Utiliser les cookies !
Le seul soucis c'est que cela voulait dire que l'utilisateur devait aller chercher lui même ses cookies dans le navigateur en utilisant F12 et qu'il devait à nouveau me faire confiance pour que je n'en fasse rien. Je trouvais cette solution trop pénible pour l'utilisateur alors j'ai décidé d'en trouver une autre.
Utiliser les cookies MAIS, sans demander à l'utilisateur. Pour faire simple, mon programme va directement décoder les cookies encryptés dans la base de donnée SQLITE de Chrome, va les stocker dans un CSV en clair et va laisser mon programme C# aller piocher ceux qui l'intéressent.
Soucis, mon programme a accès à tous les cookies de l'utilisateur à son insu cela veut dire que je pourrais les utiliser à des fins peu scrupuleuses.
Et c'est la solution que j'ai décidé de choisir car elle permet à l'utilisateur de ne rien avoir à faire pour se connecter depuis l'application mais cela veut asusi dire qu'il doit me faire confiance pour ne pas utiliser tous ces cookies pour mon utilisation personnelle.
Sauf que contrairement aux autres solutions il ne sait pas qu'il est en train de me faire confiance donc ca va :D
Non plus sérieusement, oui je pourrais faire nimporte quoi avec les cookies de l'utilisateur, non je ne vais pas le faire, et non je ne prévois jamais de le faire.
Mais il est intéressant de mentionner que mon application met en péril la sécurité des cookies de l'utilisateur et qu'il serait bien dans le futur de mettre un message explicatif au premier démarrage ou dans l'installeur de l'application pour prévenir l'utilisateur
## Utilisation de Chat GPT
----
[A remplir à la fin du projet]
!["Logo chat Gpt"](./Images/Screens/GPTLogo.png)
Cette année ChatGPT est venu s'installer dans la liste des outils que j'utilise presque quotidiennement pour avancer sur mes projets.
J'ai utilisé ChatGPT un certain nombre de fois pendant ce travail et je pense qu'il m'a fait gagner un certain nombre d'heures. En effet dans certains cas très précis, ChatGPT est une ressource absolument géniale.
Je l'ai surtout utilisé quand j'avais de soucis avec des librairies ou pour faire du troubleshooting. Ce que j'aime beaucoup avec ChatGPT c'est qu'il s'adapte à ce qu'on lui donne.
Par exemple il m'est souvent arrivé de vouloir utiliser des librairies comme Puppeteer sharp ou des exemples sont difficilement trouvables sur internet normalement. Et quand je voulais simplement faire fonctionner un exemple très rapide, il a presque toujours pu me fournir le code minimum. Cependant dès que l'on arrive sur des cas encore plus précis on atteint assez vite les limites du système.
J'ai souvent fait appel à cet outil pour diagnostiquer du code, que ce soit pour detecter un soucis ou même plus simplement pour voir si mon code avait du sens. En effet, si on donne une methode à chatGPT il va tenter de l'expliquer, et si il n'y arrive pas, c'est souvent que les variables sont mal nommées ou qu'il y a un soucis avec la logique du code. Et pour ce qui est de la détection des erreurs, l'exemple que je peux donner c'est quand je faisais des methodes asynchrones et paralelles, je pouvais lui donner la methode avec l'erreur que je ne comprends pas et il peut me donner cinq raisons de possibles soucis.
Cependant je pensais utiliser beaucoup plus ChatGpt mais au final l'outil est assez limité et je ne l'utilisais que quand mes recherches internet étaient infructueuses.
Le seul cas ou il m'a un peu sauvé c'est quand je travaillais avec Puppeteer et que j'essayais de règler un soucis qui faisait que le programme plantait à chaque fois que j'ouvrais une vidéo. Au bout de quelques heures de galère il m'a juste proposé d'utiliser une autre librairie comme selenium et il m'a convertit tout mon code puppeteer en code utilisable par selenium, et même si cela a demandé un peu plus de travail que de copier coller, au final j'ai pu avoir quelque chose qui marchait et je n'aurais peut-être pas eu le reflexe ou l'envie de le faire si je n'avais pas utilisé cet outil.
En conclusion, certaines methodes de mon projet ont été faites avec l'aide de chatGPT mais c'est une minorité et je l'ai surtout utilisé pour comprendre des erreurs et pour avoir des pistes à explorer pour les fix. Rien de bien fou.
## Améliorations futures