y ' a meme un
Blog perso
Tous les articles

star

Les Archives

L'intégralité des articles publiés sur le blog.

  • Les modèles comme OpenCode ou Claude ne se contentent pas de générer du texte : leurs skills (compétences spécialisées) permettent d’automatiser des tâches techniques, d’analyser du code ou de résoudre des problèmes complexes. Voici pourquoi et comment les intégrer dans un workflow de développement.Pourquoi utiliser les skills ?Les skills offrent trois avantages clés :Précision : Contrairement à u...

    Lire la suite →

  • Les modèles d'IA conversationnelle comme ChatGPT et Claude sont désormais accessibles au grand public. Mais entre les deux, lequel répond le mieux aux besoins d'un utilisateur lambda ? Voici une analyse technique des différences et des points forts de chaque outil.Architecture et performances de baseChatGPT (OpenAI) repose sur la famille GPT, actuellement en version 4o pour la version gratuite. Cl...

    Lire la suite →

  • Quand on installe MySQL, on voit souvent des utilisateurs comme : root@localhost root@% Ça peut sembler pareil… mais ce n’est pas du tout la même chose. **stop** root@localhost Cet utilisateur ne peut se connecter qu’en local. “Local” veut dire : sur la même machine que MySQL, souvent via un socket Unix. Exemple : tu es sur le serveur, tu tapes : mysql -u root -p Ça marche, car tu es e...

    Lire la suite →

  • Introduction :Dans le monde du développement logiciel, la gestion et la résolution des bugs sont des aspects cruciaux pour le maintien de la qualité et de la fiabilité des applications. L'un des défis majeurs rencontrés par les équipes de développement est la reproduction fidèle des erreurs signalées. Cet article se penche sur l'importance de fournir aux développeurs les moyens de reproduire effic...

    Lire la suite →

  • La programmation est un domaine complexe qui nécessite une compréhension approfondie des concepts et des outils disponibles. Un de ces outils est la bibliothèque PHP Defer, qui permet d'intégrer la fonctionnalité "defer" de Golang dans le code PHP. Dans cet article, nous allons explorer en détail comment fonctionne cette bibliothèque et quand l'utiliser, avec de nombreux exemples pour faciliter la...

    Lire la suite →

  • Les Service Workers en JavaScript sont des actifs essentiels qui agissent comme des intermédiaires entre les navigateurs Web et les serveurs. Ils améliorent la fiabilité en fournissant un accès hors ligne et en augmentant les performances de la page. Dans cet article, nous allons explorer en détail ce qu'est un Service Worker, comment il fonctionne, et comment vous pouvez l'utiliser dans vos propr...

    Lire la suite →

  • WebAssembly, souvent abrégé en WASM, est une technologie qui a révolutionné le développement web. Il s'agit d'un format de code binaire pour les machines virtuelles, conçu pour être un cible de compilation efficace pour les langages de haut niveau comme C, C++ et Rust, entre autres. L'API WebAssembly est l'interface qui permet aux développeurs d'interagir avec WebAssembly à partir de JavaScript. ...

    Lire la suite →

  • Les unités de requêtes de conteneur CSS sont un outil puissant pour les développeurs web qui cherchent à améliorer l'expérience utilisateur en fonction de la taille de l'écran. Ces unités permettent de définir des règles CSS qui s'appliquent en fonction de la taille du conteneur, offrant ainsi une plus grande flexibilité dans la mise en page et la présentation des éléments sur un site web. Il est ...

    Lire la suite →

  • WebCodecs API est une fonctionnalité récente de JavaScript qui permet de compresser et décompresser des vidéos en utilisant des codecs web. Il est compatible avec les dernières versions de la plupart des navigateurs, y compris Chrome, Firefox, Edge et Safari. **stop** Voici un exemple d'utilisation de l'API pour compresser une vidéo : const video = document.querySelector('video'); const options...

    Lire la suite →

  • L'ImageCapture API est une fonctionnalité récente de JavaScript qui permet de capturer des images à partir d'un périphérique de capture d'images (comme une webcam) de manière simple et efficace. Il est compatible avec les dernières versions de la plupart des navigateurs, y compris Chrome, Firefox, Edge et Safari. **stop**Voici un exemple d'utilisation de l'API pour capturer une image à partir d'u...

    Lire la suite →

  • Le fetch API est un moyen simple et efficace pour effectuer des requêtes HTTP en JavaScript. Il est basé sur les promesses et permet de récupérer des données depuis un serveur en utilisant des méthodes telles que GET, POST, PUT et DELETE.**stop** Voici un exemple d'utilisation de fetch pour récupérer des données depuis une API : fetch('https://jsonplaceholder.typicode.com/posts') .then(response...

    Lire la suite →

  • Cette fonction n'est pas souvent utilisée et généralement on la comprend tout de suite lorsqu'on la croise dans son état le plus courant quand il s'agit d'assigner plusieurs variables en même temps depuis un tableau. Par exemple: list($a, $b, $c) = $array; Par contre ce n'est pas forcément simple dans tous les cas selon la syntaxe que vous utilisez. **stop**D'ailleurs c'est à vous de décider s...

    Lire la suite →

  • ProblèmeParfois, lors d'une fresh install de Symfony (ou autre) on peut se manger un retour de ce style dans le terminal : [GuzzleHttp\Exception\RequestException] cURL error 60: SSL certificate problem: unable to get local issuer certificate [GuzzleHttp\Ring\Exception\RingException] cURL error 60: SSL certificate problem: unable to get local issuer certificate Ça vous fait peur ? en fait c'es...

    Lire la suite →

  • J'essaie de tenir mes logiciels à jour mais des fois je regretterais presque quand une maj me renvoie un comportement ennuyant sur un programme. Cette fois c'est Firefox qui m'affiche une bonne vieille notification à chaque fois que je m'approche d'un formulaire sur un protocole HTTP... C'est toujours pour la bonne cause hein puisque la on cherche à me prévenir que n'importe quel intermédiaire (FA...

    Lire la suite →

  • Réglage de vhost J'ai rapidement besoin d'un vhost local qui pointe sur un dossier test, ça pouvait prendre 20 secondes mais ça m'a pris 20 minutes ! Je me suis pris des 404 not found dans les yeux ça m'a énervé gonflé bien saoulé ; bref.... Évidement je check les logs, rien qui déconne, la structure de mon vhost est toujours la même (je la copie d'un vhost a l'autre en fait^^) je me pose vraimen...

    Lire la suite →

  • J'étais tranquillement en train de me développer une petite application quand j'ai remarqué cette petite notification dans la console de mon Firebug.content script runtime.onMessage: update_shortcutscontent_script.js (line 91)<System>2 content script runtime.onMessage: tabupdatecontent_script.js (line 91)<System>J'avais déja vu ces lignes dans l'édition d'un vieux projet quelques jours...

    Lire la suite →

  • Envoie de fichier trop gros ?En essayant d'envoyer des fichiers sur mon serveur, mon client me dit que parfois ça marche bien, et parfois ça plante gentiment, avec une petite erreur comme celle ci :"The uploaded file was too large. Please try to upload a smaller file"Du coup, je me dis qu'en augmentant un peu le upload_max_filesize du php.ini, ça va le faire... Mais en fait ça n'a pas suffi. **st...

    Lire la suite →

  • Je vois votre intérieur !En voulant installer une config apache un peu trop rapidement, j'ai rencontré un petit souci. Mon code source php n'était pas exécuté. Il était retourné comme un CTRL+U sur une page web... Pourtant la commande php -v me montre PHP est installé correctement... Du coup je vais chercher un peu sur Qwant et en fait j'avais mal installé une librairie qui s'installe en temps que...

    Lire la suite →

  • Besoin de Zend OPcache En voulant tester la RC1 de Drupal 8 en local, je me suis retrouvé confronté à une sorte de vérificateur de config qui me dit qu'il me faudrait l'extension op_cache pour faire tourner le machin. Alors voila comment on fait pour rajouter ca dans wamp, sous windows donc... **stop** Config du php.ini Pour faire court, Il faut chercher la section [opcache] dans le fichie...

    Lire la suite →

  • Configurer le watcher de Phpstorm pour le SCSS avec CompassEn principe quand je suis sur du frontend et que j'envoie des grands coups de SCSS, j'ouvre un terminal dans le fichier qui va bien et je lance un bon vieux compass watch. Mais a force de voir PhpStorm me dire que si j'ai envie je peux, utiliser un watcher embarqué, je me suis dit que c'était pas beaucoup plus con. Par contre j'ai eu un pe...

    Lire la suite →

  • J'étais en train de bricoler un vieux CSS lorsque je me suis rendu compte que je pourrais bien optimiser mon SCSS en plaçant quelques valeurs dans des variables histoire de pas passer 15 minutes à chercher ou je dois les modifier lorsque j'ai besoin de faire une refonte compulsive. Et puis c'est quand même mieux, notamment pour pouvoir aller plus loin dans la puissance du frontend ou un truc dans ...

    Lire la suite →

  • Nan mais allo Houston quoi !J'étais tranquillement en train de bricoler des petites applications simples quand j'ai eu besoin d'automatiser quelques trucs sur des CSS etc, donc je me dis Gulp... Je lance ma commande d'installation etc et tout fonctionne bien sauf qu'une fois fini, lorsque j'ai eu envie de tout virer, impossible ! Il y avait trop de dossiers récursifs et Windows ne comprenait plus ...

    Lire la suite →

  • Cherchez l'intrus...Si vous aussi vous utilisez un peu Windows 7 pour jouer ou utiliser toshop', vous avez surement eu le petit logo Windows en bas a droite avec les notifications, qui vous propose d'obtenir Windows 10... C'est super sympa de venir incruster ça ici sans rien me demander, merci beaucoup. J'envoie un bon vieux clic droit sur cette nouveauté, pour "quitter" ou "fermer" ou je ne sait...

    Lire la suite →

  • Route es tu la.... Il m'est arrivé d'avoir besoin de chopper des routes un peu hasardeuses qui provenaient de fichiers de config. En plein dev une erreur de typo est parfois vite arrivée et tester la validité d'un nom de route peut s'avérer utile... **stop** Voici une technique toute bête, qui sous entend toutefois que nous avons accès au container pour chopper le Router, mais c'est pas oblig...

    Lire la suite →

  • Savoir si on est en mode DEV dans un contrôleurPour connaitre l’environnement en cours dans un contrôleur on peut utiliser : $this->container->getParameter('kernel.environment'); Ensuite il y a juste à mettre ça dans un if pour vérifier que le retour est bien égal à dev... Récupérer le jeton CSRF dans un formulaire construit à la mainDes fois on crée nos formulaires à la main et on oublie...

    Lire la suite →

  • GIT est partout ! Aujourd'hui, vous aurez du mal à trouver un développeur professionnel qui n'utilise pas un système de contrôle de version (VCS), comme Git, mais il y a encore une partie d'entre nous qui choisissent de ne pas utiliser de VCS à cause de certaines idées préconçues qu'ils pourraient avoir au sujet du contrôle de version. Voici quelques excuses qui dissuadent l'utilisation de Git...

    Lire la suite →

  • scponly? C'est quoi cette dépendance au juste ? scponly est en quelques sortes une alternative pour les administrateurs système qui souhaitent fournir un accès aux utilisateurs distants pour à la fois lire et écrire des fichiers sur votre machine, ici un simple RaspberryPi sans fournir de privilèges d'exécution à distance. Pour faire simple on peut dire que c'est une sorte de ssh bricolé qui perm...

    Lire la suite →

  • Fichiers cachés Par défaut Netbeans cache tous les fichiers qui commencent par un point à l'exception du fichier .htaccess, donc si vous utilisez git vous allez rencontrer le même problème que moi, votre fichier .gitignore ne sera pas affiché dans l'arbo de Netbeans. C'est un peu le bordel d'aller chercher son fichier dans le dossier puis de le faire glisser vers l'IDE pour pouvoir l'éditer. *...

    Lire la suite →

  • Lapidation en ligneIl y a quelques jours j’ai eu besoin d’un coup de main en développement et comme je n’avais pas trop de retours concluants sur les forums j’ai été harceler les copains pour avoir de l’aide, ...à peu près sur la totalité des chans freenode. Après voir posté un petit pastebin qui va bien pour expliquer en détails l’endroit précis ou j’étais coincé, j’ai entendu les gars tousser… ...

    Lire la suite →

  • On est à la fin ou pas la ? J'ai eu un petit bug lors d'un dev php pourtant banal, qui m'a posé un petit souci, le temps de comprendre ma boulette. Bon j'ai pas passé la nuit dessus non plus mais la chose est tellement simple qu'elle en devient vicieuse et on peut vite se laisser prendre au piège. Je simplifie la musique puisque le but n'est pas de savoir ce que je voulais faire de ce tableau... ...

    Lire la suite →

  • Créer dynamiquement des articles avec du faux texte Je viens d'avoir des faux articles à créer, avec du faux texte en pagaille, pour voir un peu à quoi ressemblerait un blog une fois rempli. J'avais pour habitude d'aller copier mes paragraphes sur des sites basiques comme lipsum.com ou un peu plus modernes comme fillerati.com ou picksumipsum, et de revenir les coller dans...

    Lire la suite →

  • Cacher votre adresse mail via CSS En utilisant une petite supercherie CSS de vieux roublard des cavernes, vous pouvez cacher complètement votre adresse e-mail des spammeurs. L'inconvénient de cette approche est qu'elle ne fonctionne que sur les sites qui lisent de gauche à droite car il utilise les CSS pour inverser le sens du texte. Mais bon, ça tombe bien c'est dans ce sens la que j'écris ! Alo...

    Lire la suite →

  • Composer.phar est bien relou mon ami Bon alors la, ca va pas ! J'upgrade mon Framework préféré (Symfony) et sans parler des bugs que j'ai résolu rapidement, j'ai plus moyen de générer une entité sans avoir un beau message d'erreur !  You are going to generate a "MsgMsgBundle:ducon" Doctrine2 entity using the "annotation" format. Do you confirm generation [yes]?         Entity...

    Lire la suite →

  • Comme beaucoup de gens qui travaillent avec Symfony2, j'utilise parfois le célèbre bundle FosUserBundle pour gérer les membres de mes sites web. Pas toujours bien sur, car je me suis fait le mien et il fonctionne à peu près aussi bien pour les grosses lignes ; cela dit, des fois, c'est comme ça, je passe quand même par FosUserBundle. Ca fonctionne bien, c'est vite configuré, mon code est maintenab...

    Lire la suite →

  • Quand on trimballe un bundle qu'on aime bien d'un projet à un autre, il est parfois assez pénible de devoir modifier ses vues pour pouvoir les faire pointer sur les layouts du projet en cours. Prenons pour exemple mon userbundle perso. Il est super léger, il gère ce que j'ai besoin de gérer, je n'ai pas peur de mettre les mains dedans et d'adapter au cas par cas si besoin. Je le connais par cœur, ...

    Lire la suite →

  • Quelques outils CSS3 très utiles Oui bon, ok, je l'admet, je n'arrive jamais à me rappeler de toutes les déclarations différentes et de toutes les syntaxes pour l'ensemble des effets CSS ! Voila c'est dit, mais a mon avis je ne suis pas le seul dans ce cas, hein ? Je me suis fait un petit bookmark qui va bien pour toujours avoir quelques outils indispensables sous la main, en voici quelque uns....

    Lire la suite →

  • Les filtres d'image CSS3 Aujourd'hui, les filtres CSS3 pour les images ne fonctionnent que dans Chrome mais puisque c'est quand même amusant de jouer avec, voici la liste complète histoire de voir ce qu'on va pouvoir faire simplement a la volée sans passer par Toshop'... **stop** .blur {-webkit-filter: blur(4px);} .brightness {-webkit-filter: brightness(0.35);} .contrast {-webkit-filte...

    Lire la suite →

  • Si vous aussi vous avez remarqué que Facebook s'est mis a vous notifier les tympans à chaque fois qu'il se passe quelque chose quelque part chez vos amis ou dans le monde (notifications), alors vous êtes au bon endroit. Quelle mauvaise idée quand même de rendre notre expérience de ce réseau social intrusif aussi pénible par défaut. Certains aiment ça ? Ces "pop" ...  "pop" ..  "pop" tou...

    Lire la suite →

  • Quand le lecteur d'une news veut sélectionner l'URL d'une page il a bien sur la possibilité de coller directement l'adresse dans le navigateur mais on peut aussi l'afficher pour lui dans une vue quand c'est pour partager l'URL d'une image ou d'un fichier quelconque par exemple. Il n'y a malheureusement pas de fonction toute faite pour cette tache incroyablement exotique (malgré les nombreuses requ...

    Lire la suite →

  •  Il se peut parfois que pour une bonne raison personnelle on refuse d'utiliser le QueryBuilder de Doctrine dans un projet Symfony2.X à la faveur d'une requête native. C'est souvent injustifié car au fil du temps on s’aperçoit qu'on pouvait faire autrement en grattant un peu dans la doc. Hélas des fois on a pas la tête à lire/traduire et on regrette nos bonnes vieilles requêtes maison, si clai...

    Lire la suite →

  • Connaissez-vous le nouveau réseau social Newmanity ? Cela fait à présent deux jours que je m'y suis inscrit et il est temps de livrer mes premières impressions sur ce réseau social un peu nouveau. Qu'est ce que Newmanity ? Créé par Victor Ferreira (le fondateur du label Max Havelaar), Newmanity est un réseau social d'un nouveau genre. D'après son créateur, l'objectif de Newmanity est d'o...

    Lire la suite →

  • Un petit article pour indiquer qu'il est très simple de valider les adresse mails saisies par un utilisateur lors d'une inscription à une section membre par exemple. C'est une question qui revient assez souvent sur les forums les plus populaires malgré le nombre d'informations qu'on peut trouver la dessus. Hélas souvent on trouve pas mal de regex de tous genres dans les réponses, qui se valent plu...

    Lire la suite →

  •  On peut avoir besoin de verrouiller des fichiers dans le cas ou on aurait besoin d'écrire à l'intérieur assez souvent, comme pour un petit script de comptage de visiteurs ou un truc comme ça, ou plusieurs instances serveur pourraient être amenées à faire ce boulot d'ouverture écriture à un moment unique, ce qui planterait le script en question. Une fonction native nommée flock()  existe...

    Lire la suite →

  • L'autre jour j'ai enregistré un article pour tester mon blog en prod, ça marchais nickel mais il me fallait du contenu pour tester mon SEO vite fait, et pour éviter qu'on arrive sur un blog vide, je l'ai laissé le temps de finir quelques bricoles. Le problème c'est que cet article sur Kim Dotcom, je n'en ai plus besoin, mais trop tard il est passé dans le crawl du moteur de recherche et a été inde...

    Lire la suite →

  • On a tous un jour eu la bonne idée de chopper une image sur le site d'un autre type, pour un design ou pour un article ou pour illustrer n'importe quoi d'autre (par exemple) , bon osef :) Et du coup ce même jour (un peu plus tard), on s'est dit qu'on pourrait surement aussi aller chercher ce fichier image depuis une URL, pour par exemple, automatiser la chose ou que sais je encore... **stop** ...

    Lire la suite →

  • Quand plusieurs choix s'offrent à nous pour une seule et même action dans une instruction switch on peut avoir besoin de poser certaines conditions, avant d'appeler une fonction par exemple si notre variable est égale a 1 ou a 2. **stop** switch ($variable) { case 1 || 2: echo 'La variable est égale a 1 ou 2'; break; case 3: // ..... } Bien sur cela ne...

    Lire la suite →

  •  Quand on a besoin de couper une chaine de caractère (dans le but de la raccourcir), par exemple pour n'afficher que la première ligne d'un paragraphe, on a souvent plusieurs choix. En voici quelques uns. **stop** Couper avec substr() Utiliser la bonne vielle fonction substr()  en est une assez radicale (peu être un peu trop non ? ^^) function decouper($chaine = '', $t...

    Lire la suite →

  •  Quand on veut se rendre sur une ancre interne avec un simple lien HTML c'est assez simple, il suffit de faire pointer l'attribut href du lien en question vers l'id de l'élément vers lequel on souhaite se rendre en le préfixant de # . Rien de bien sorcier mais bon avec un petit exemple c'est bien aussi : <a href="#contact" title="Vers élément contact">lien vers l'élément contact&l...

    Lire la suite →

  •  Comme souvent, le backoffice de votre plus beau site web se trouve derrière une page de login qui vous demande un couple identifiant et mot de passe pour vous laisser passer vers la page du seigneur, celle qui vous donne l'accès au saint Graal, l'index de l'administration. Si tout le monde avait accès aux interfaces admin je pense que ça serait drole quelques minutes mais nous on a pas trop ...

    Lire la suite →

  • Dans un esprit de contrôle rapide de ses entrées access.log on a parfois besoin ou envie de faire un petit classement rapide des IP récurrentes, ou de savoir qui hotlink nos image comme un voleur, ou que sais-je... voici une petite liste de méthodes pratiques et sans prétentions que j'utilise pour faire le chaud. **stop** Faire un tri des visiteurs par IP   cat access.l...

    Lire la suite →

  • Le programme Awk est très complet et peut s'avérer complexe a maîtriser. Le but ici est surtout d'utiliser sa puissance et sa rapidité pour faire un tri grossier lors des vérifications de logs. Ces derniers fichiers sont parfois assez conséquents et les parser a l'oeil reviendrait a chercher un hétéro (analement vierge) dans une gay pride.... **stop** AWK et regex Alors voila, moi j'ut...

    Lire la suite →