y ' a meme un
Blog perso
Tous les articles

star

Les Archives

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

  • Proxmox et le trim : quand vos vms jouent à cache-cache avec l’espace disque

    Illustration en plongée d'un bureau technique organisé avec un serveur géant sur une balance affichant 45 tonnes, style croquis encre et aquarelle sobre et moderne.
    Vous créez une VM sous Proxmox, vous y balancez des données comme un enfant qui remplit son cartable de cailloux, puis vous supprimez tout en vous disant que l’espace va miraculeusement réapparaître. et non! Le fichier QCOW2 de votre VM reste aussi gonflé qu’un chat qui a avalé un ballon, et Proxmox vous regarde avec des yeux ronds en se demandant pourquoi son stockage fond comme neige au soleil. ...
  • Exceptions maison dans symfony

    Illustration isométrique minimaliste d'un atelier technique où des hommes en maillots 'RuntimeException' entourent un seul homme en maillot 'CustomException', ambiance sobre et moderne.
    Les exceptions, ces petits messages d’erreur qui vous rappellent avec une élégance toute relative, que votre code a décidé de prendre des vacances sans prévenir. Dans Symfony, comme dans beaucoup de frameworks, on a tendance à se reposer sur des exceptions génériques comme RuntimeException. Après tout, pourquoi se fatiguer à créer ses propres classes quand une bonne vieille throw new RuntimeExcept...
  • Php-imap avec webklex : quand symfony discute avec ta boîte mail (sans se prendre un rate limit)

    PHP-IMAP avec Webklex
    Parce que oui, en 2026, on a toujours besoin de lire des mails depuis du code. Pas pour envoyer des newsletters à la chaîne (on a Mailer pour ça, merci bien), mais pour automatiser des tâches chiantes : trier des tickets, archiver des factures, ou même répondre à des demandes de support comme un robot bien élevé. Le problème ? L’IMAP, c’est un peu comme le SQL des années 90 : puissant, mais bordél...
  • Seelf : déployer simplement ses applications docker en auto-hébergement

    Seelf: Self-Hosting
    L’auto-hébergement, sur le papier, c’est formidable. On garde ses données chez soi, on contrôle ses services et on ne dépend pas d’une plateforme qui peut doubler ses tarifs ou supprimer une fonctionnalité du jour au lendemain. Dans la pratique, cela signifie aussi passer son dimanche à comprendre pourquoi un conteneur ne démarre plus alors qu’on n’a, bien entendu, absolument rien touché. Seelf es...
  • Clover ou cobertura : quel rapport de couverture choisir avec phpunit et sonarqube ?

    Illustration isométrique minimaliste d'un espace de travail technique montrant des fichiers XML Clover et Cobertura pour le coverage de code, avec une grille 3D et un éditeur de code en arrière-plan.
    Les fichiers de couverture de code, ces petits artefacts XML qui font briller les yeux des devs en quête de métriques parfaites, et qui transforment les dashboards SonarQube en tableaux de bord dignes d’un cockpit d’Airbus. Aujourd’hui, on parle de deux formats stars de PHPUnit : coverage-clover.xml et coverage-cobertura.xml. Aucun des deux ne va vous faire gagner le prix Nobel de l’innovation, ma...
  • Proxmox firewall : on peut bloquer son datacenter sans faire gaffe ?

    Illustration à l'encre et aquarelle d'un rack serveur Proxmox sécurisé par un firewall, avec des libellés techniques et une ambiance sobre et professionnelle, style croquis moderne.
    Le firewall de Proxmox peut s’appliquer au niveau du Datacenter, du nœud et de chaque VM ou conteneur. Cette organisation permet un filtrage précis, mais aussi de perdre complètement l’accès à l’interface web et à SSH si une politique DROP est activée au mauvais endroit. Le piège de la politique DROP globale Activer le firewall au niveau du Datacenter avec une politique d’entrée DROP peut bloquer ...
  • Proxmox : dompter le firewall de vos lxc comme un pro

    Proxmox : dompter le firewall de vos LXC
    Parmi les fonctionnalités de Proxmox, la gestion du firewall pour les conteneurs LXC est souvent perçue comme un casse-tête. Pourtant, une fois qu’on a compris la logique (et évité les pièges), c’est presque aussi simple que de configurer un routeur grand public. Presque. Pourquoi s’embêter avec le firewall des LXC ? Par défaut, un conteneur LXC sous Proxmox hérite des règles du firewall de l’hôte...
  • Proxmox et le ballooning

    Proxmox et le ballooning
    Le ballooning sur Proxmox, c’est un peu comme ces matelas gonflables qu’on sort pour les invités : ça promet de l’espace, mais si on souffle trop fort, tout le monde finit par terre. Officiellement, c’est une technique pour optimiser la mémoire vive entre l’hôte et ses machines virtuelles (VM). Officieusement, c’est une danse délicate entre efficacité et catastrophe potentielle. Voyons quand ça va...
  • Éclairage rapide : à quoi sert le binaire ./vendor/bin/php-parse dans symfony ?

    Symfony, php-parse
    Bon la on a un truc obscur, ./vendor/bin/php-parse. Ce petit binaire qui traîne dans vos projets Symfony comme un invité surprise à une soirée où personne ne sait vraiment pourquoi il est là. Pourtant, contrairement à certains outils de votre vendor/ qui ne servent qu’à gonfler votre composer.lock (je te regarde, symfony/polyfill-*), php-parse a une utilité bien réelle. Et non, ce n’est pas juste ...
  • Badges dans le readme : le bling-bling utile (ou pas) pour ton projet

    Badges dans le README
    Un README sans badges, c’est comme un burger sans fromage : techniquement comestible, mais où est passé le fun ? Les badges, ces petites pastilles colorées qui squattent le haut de ton fichier, servent à la fois de vitrine et de preuve sociale. Ils disent : « Regardez, mon projet est sérieux, il a des tests, il passe en CI, et oui, il est même couvert à 95% (enfin, presque) ». Mais attention, tous...
  • Xdebug dans docker : le frein à main oublié qui transforme votre php en escargot

    Xdebug dans Docker php
    Le problème ? Xdebug est activé par défaut dans bon nombre d’images Docker PHP officielles ou populaires. Pas parce que c’est une bonne idée, mais parce que c’est pratique. Enfin, soyons précis : les images PHP officielles ne l’installent pas directement, mais beaucoup d’images de développement, de templates Docker et de configurations maison le font. Une fois ajouté, il reste souvent activé en pe...
  • Sonarqube et le coverage en ci : le combat perdu d’avance ?

    SonarQube et le Coverage en CI
    merveilleux des outils de qualité : celui où l’outil censé détecter les problèmes devient lui-même le principal problème de la journée. Et avec Symfony, on analyse quoi exactement ? Dans un projet Symfony, SonarQube peut rapidement se retrouver devant un joyeux mélange de contrôleurs, de services, d’entités Doctrine, de formulaires, de commandes, de migrations et de fichiers de configuration. Sans...
  • Overdose de caféine : jusqu’où pousser le dev avant le coma éthylique version arabica ?

    Illustration nocturne d'un espace de développement moderne avec un ordinateur affichant du code, une tasse de café fumante et un éclairage néon contrasté en cyan et magenta.
    Le café est au développeur ce que l’huile est au moteur : un lubrifiant indispensable, mais qui finit par encrasser les pistons si on en abuse. Pourtant, dans l’imaginaire collectif, le dev en mode while(true) { drinkCoffee(); } est une figure héroïque, un guerrier des nuits blanches qui sacrifie son sommeil pour livrer une feature à temps. Mais à quel moment le boost se transforme-t-il en crash ?...
  • Proxmox : redimensionner le disque d'une vm sans se prendre la tête (ou presque)

    Proxmox : Redimensionner le disque d'une VM
    Ah, Proxmox. Ce bijou de virtualisation qui nous fait gagner du temps… jusqu’à ce qu’on doive redimensionner un disque de VM et que l’interface nous laisse perplexes, comme un chat devant une porte fermée. Vous avez peut-être tenté votre chance dans le shell, en maudissant l’absence d’un bouton magique. Rassurez-vous, vous n’êtes pas seul·e. Mais oui, il y a une solution (ou plusieurs), et non, ce...
  • "ip route" sur mon serveur : le gps qui évite les bouchons

    "ip route" sur mon serveur
    Vous avez déjà regardé votre serveur en vous demandant : "Mais comment diable les paquets trouvent-ils leur chemin dans ce bordel ?" C'est soit de la magie noire, soit l’œuvre d’un lutin caché dans votre rack, ou (en partie) grace à ip route, la commande qui fait office de GPS pour vos données. Sans elle, votre serveur serait aussi utile qu’une boussole dans l’espace. Le routage, histoire de pas e...
  • Proxmox : vm ou conteneur, lequel choisir pour éviter la crise existentielle ?

    Proxmox : VM ou conteneur,
    Proxmox, c’est un peu le couteau suisse de la virtualisation : on peut tout faire, mais encore faut-il savoir quoi faire sans se planter. Entre les machines virtuelles (VM) et les conteneurs (LXC), le choix n’est pas toujours évident. Surtout quand on a déjà passé deux heures à configurer un iptables qui refuse obstinément de laisser passer le trafic. Alors, VM ou conteneur ? La, y a pas de répons...
  • Wordpress : le cms que tout le monde adore (et que je fuis sans remords)

    WordPress : le CMS que tout le monde adore (et que je fuis sans remords)
    Je vais parler de mon avis sur WordPress, si si... Ce bon vieux CMS qui fait vibrer la planète entière, du blogueur du dimanche au géant du e-commerce. Tout le monde l’utilise, tout le monde en parle, et pourtant, moi, je passe mon tour. Pas par snobisme, non. Juste parce que je n’ai pas envie de transpirer à chaque fois qu’une nouvelle CVE sort, ni de passer mes nuits à patcher des plugins douteu...
  • 2038 : le bug de l'an 2000 revient, et cette fois, c'est (vraiment) sérieux

    2038 : Le bug de l'an 2000 revient
    Je me souviens du bug de l’an 2000. Ce bon vieux Y2K, ce cauchemar marketing qui a fait vendre des milliards en audits inutiles et en mises à jour de dernière minute. Les médias en ont fait un film catastrophe, les entreprises ont paniqué, et au final… rien. Ou presque. Quelques distributeurs de billets en panne, des horodateurs qui ont cru revenir en 1900, et c’est à peu près tout. La montagne a ...
  • L'ia va-t-elle nous transformer en développeurs ctrl+c / ctrl+v ?

    L'IA va-t-elle nous transformer en développeurs  copier coller
    L’IA générative est partout, et son pitch est imparable : « Gagnez du temps, écrivez moins de code, livrez plus vite. » On nous vend des outils qui génèrent des fonctions, corrigent des bugs, voire écrivent des applications entières à partir d’un prompt. Le rêve, non ? Sauf que derrière ce rêve se cache un cauchemar bien réel : et si, à force de déléguer l’écriture du code, on oubliait comment le ...
  • Symfony veut apprendre à votre éditeur à comprendre votre application

    bureau de développeur organisé avec un ordinateur affichant du code Symfony et des éléments d'IA, sous un éclairage doux et moderne.
    Quand on développe avec Symfony dans VS Code, Zed ou Neovim, on finit facilement par oublier une chose : notre éditeur ne comprend pas réellement notre application. Il affiche du PHP, colore Twig, complète quelques méthodes et permet de faire un Ctrl+clic sur une classe. C’est déjà très pratique. Mais dès qu’on traverse la frontière entre PHP, Twig, Doctrine, les routes ou les services Symfony, ce...
  • Symfony reprise : la nouvelle alternative à webpack encore avec vite et rsbuild

    Illustration nocturne d'une machine nommée Reprise dans une bibliothèque, transformant des papiers en fichiers JS et CSS sous un éclairage néon contrasté, style technique et moderne.
    Symfony Reprise : Webpack Encore prépare doucement sa retraite Pendant des années, dès qu’un projet Symfony avait besoin d’un frontend un peu sérieux, la réponse était presque automatique : Webpack Encore. Quelques lignes dans webpack.config.js, un petit yarn encore dev et, après avoir téléchargé approximativement la moitié d’Internet dans node_modules, nous pouvions enfin afficher notre fichier C...
  • Deep agents : quand langchain dissèque claude code au lieu de le copier

    Illustration à l'encre et aquarelle montrant l'analyse technique d'un réseau de neurones nommé 'Claude Code', avec des mains robotiques et le libellé 'Deep Agents' en arrière-plan.
    Dans un monde où l’IA générative se résume souvent à un concours de copier-coller amélioré, LangChain vient de faire un truc qui mérite qu’on s’y arrête : au lieu de pondre une énième version de « ChatGPT mais en plus cher et avec une interface plus moche », ils ont pris le temps de comprendre ce qui rend Claude Code si efficace. Et surtout, ils ont partagé le résultat en open source. Ça s’appelle...
  • Http-less : symfony sans httpkernel, ou comment réinventer la roue (mais en moins rond)

    Illustration isométrique minimaliste d'une architecture Symfony sans HttpKernel, montrant des modules interconnectés comme EventDispatcher et Console, avec un terminal affichant 'bin/console'. Style moderne et épuré.
    Symfony sans HttpKernel ? À première vue, c’est comme un burger sans pain : techniquement possible, mais est-ce que ça a encore du sens ? Pourtant, l’idée d’un Symfony « HTTP-less » fait son chemin, portée par des développeurs qui veulent s’affranchir des contraintes du web pour des usages en CLI, en queue de tâches, ou même en… microservices (oui, encore eux). Alors, révolution ou simple exercice...
  • Deepcloner : le clonage en profondeur de graphes d’objets php qui ne vous fera pas pleurer

    Illustration isométrique minimaliste d'un graphe d'objets en cours de clonage profond avec 'DeepCloner', style technique sobre et moderne, éclairage doux et couleurs épurées.
    Cloner un objet en PHP, c’est un peu comme commander un café : en théorie, c’est simple, mais en pratique, ça peut vite tourner au cauchemar. Vous voulez un clone basique ? Parfait, PHP gère ça avec son opérateur éponyme. Mais dès que votre objet a des propriétés qui sont elles-mêmes des objets, ou pire, des références circulaires, vous vous retrouvez avec un sac de nœuds digne d’un casse-tête chi...
  • Python : du langage abc oublié à la star des ia, une success story qui pique un peu

    Illustration 3D brillante montrant un serpent Python doré enroulé autour du logo 'ABC', symbolisant son évolution. Fond sombre et futuriste avec éclairage studio et motifs de code binaire.
    Python est partout. Dans les data centers qui font tourner les IA, dans les scripts qui automatisent nos vies, dans les notebooks des chercheurs, dans les Raspberry Pi qui contrôlent des trucs improbables, et dans les tutoriels qui promettent de vous rendre développeur en 21 jours (non). Pourtant, son histoire est moins lisse que son import this ne le laisse penser. Retour sur un langage né des le...
  • Pacman vs apt : quand la simplicité bat la hype à plate couture

    Illustration en plongée d'un bureau technique organisé comparant Pacman et APT, avec deux terminaux affichant des commandes Linux, éclairés par une lumière douce et moderne.
    Aller on regarde un peu Arch Linux, LE système d’exploitation qui fait se sentir les développeurs comme des hackers dans un film des années 90. Le README qui commence par « Si tu ne sais pas ce que tu fais, dégage », les forums où on te répond « RTFM » avant même de te dire bonjour, et bien sûr, pacman, le gestionnaire de paquets qui semble conçu pour prouver que la vie est une série de défis inut...
  • Devilbox, ou comment perdre du temps à gagner du temps

    Vue macro détaillée d'un rack serveur moderne avec un fichier docker-compose.yml gravé, éclairage bleu cinématographique et le texte 'Devilbox' sur une étiquette transparente.
    Il fut un temps où j’ai cru que Devilbox allait sauver mes projets PHP. Un outil tout-en-un, prêt à l’emploi, avec Apache, Nginx, MySQL, PHP, Redis, et tout le tintouin. Plus besoin de bidouiller des docker-compose.yml ou de maudire les permissions de fichiers. Juste docker-compose up, et hop : un environnement de développement clé en main. Sauf que, comme souvent avec les solutions magiques, la r...
  • Podman vs docker : le fork qui fait du bruit, mais est-ce vraiment utile ?

    Illustration en plongée d'un bureau technique organisé comparant Podman et Docker, avec logos et commandes sur écrans holographiques, style sobre et moderne.
    Ah, Podman. Ce nom qui traîne dans les threads Reddit, les conférences DevOps et les slides des gens qui aiment bien dire qu’ils ont « migré ». Si tu utilises docker depuis des années sans te plaindre, tu te demandes peut-être pourquoi certains en font tout un plat. C’est pas juste pour le plaisir de réinventer la roue a mon avis, voyons ca... Podman, c’est quoi ? Un Docker en mieux ? Podman, c’es...
  • Acheter un nom de domaine et attendre : le business des squatteurs du web

    Illustration flat design d'un marché de noms de domaine avec un marteau d'enchère sur des cartes 'DOMAINS', une mallette pleine de dollars et le texte 'DOMAIN FLIPPING' en bannière.
    Imaginez : vous achetez un terrain vague en 1998, vous le laissez en friche pendant 25 ans, et un jour, un promoteur débarque pour vous proposer 500 000 € parce que le quartier est devenu hyper tendance. Sauf que dans le monde des noms de domaine, c’est exactement ce qui se passe. Sauf que le terrain, c’est un example.com, et que le promoteur, c’est un investisseur qui a soudainement réalisé que a...
  • Cmux : le terminal open source qui réinvente la ligne de commande

    Illustration à l'encre et aquarelle d'un terminal avec la commande 'cmux', entourée de lignes abstraites évoquant le multiplexage, dans un style sobre et moderne pour un article technique.
    Les multiplexeurs de terminal, (on pourrait dire terminaux nan ?) ces outils qui promettent de sauver nos âmes de développeurs condamnés à jongler entre 15 onglets de terminal, des logs qui défilent à la vitesse de la lumière, et cette fenêtre SSH qui plante au pire moment. Parmi eux, cmux se distingue, non pas parce qu’il réinvente la roue, mais parce qu’il la rend un peu plus ronde, un peu plus ...
  • Cockpit & cockpit-machines : la gestion de vms qui ne vous fera pas regretter virt-manager

    Illustration flat design moderne montrant un tableau de bord Cockpit et cockpit-machines pour gérer des machines virtuelles Linux, avec des formes géométriques simples et des couleurs vives.
    Si vous avez déjà passé plus de temps à configurer virt-manager qu’à utiliser vos machines virtuelles, vous savez que la virtualisation sous Linux peut parfois ressembler à un parcours du combattant. Entre les dépendances qui s’embrouillent, les interfaces graphiques qui laguent et les configurations XML dignes d’un roman de Kafka, on se demande parfois si c’est vraiment la peine. Heureusement, il...
  • Herdr : le terminal linux qui m’a fait oublier les autres

    Vue en plongée d'un bureau de développeur en désordre avec des câbles, carnets et tasses. Au centre, un écran affiche un terminal sobre et moderne avec des commandes comme 'git status'. Ambiance atelier, éclairage doux.
    J’ai testé plus de terminaux Linux que je n’ai de doigts et d’orteils réunis. Certains m’ont séduit cinq minutes, d’autres m’ont fait perdre des heures à configurer des plugins pour reproduire ce que bash faisait déjà. Puis Herdr est arrivé, et j’ai enfin arrêté de chercher. Un terminal qui ne se prend pas pour un IDE Herdr assume son rôle : un terminal, point. Pas de panneau latéral avec des ongl...
  • Powershell sur windows : le terminal qui divise, entre puissance et esthétique douteuse

    Illustration nocturne contrastée montrant un terminal Linux lumineux en vert néon à gauche et PowerShell en bleu néon à droite, dans un style cyberpunk sobre et technique.
    PowerShell. Ce nom qui fait frémir les puristes du terminal Linux et sourire (ou grimacer) les utilisateurs Windows. Sur le papier, c’est le couteau suisse de Microsoft : un shell moderne, orienté objet, avec des commandes qui claquent comme Get-ChildItem au lieu du classique ls. Mais dans la vraie vie ? C’est un peu comme offrir un costume trois-pièces à un chat : techniquement, ça peut marcher, ...
  • Caméras de sécurité maison : aliexpress, fortinet et un lan dédié sans se faire plumer

    Illustration technique d'un système de caméras de sécurité maison avec un appareil Fortinet, un LAN dédié et une caméra AliExpress, vue large et moderne.
    Installer des caméras de sécurité chez soi, c’est un peu comme adopter un chien de garde : ça doit aboyer quand il le faut, pas vous réveiller à 3h du mat’ parce qu’un écureuil a éternué dans le jardin. Et surtout, ça ne doit pas vous coûter un rein ou, pire, transformer votre salon en épisode de Black Mirror où votre propre matériel vous espionne. AliExpress : le Far West des caméras IP (ou comme...
  • Log levels: debug, info, warning, error – pourquoi et comment les apps parlent toutes la même langue

    Illustration technique en plan large d'une salle de serveurs moderne avec des logs flottants étiquetés DEBUG, INFO, WARNING, ERROR, éclairés sobrement en bleu et vert.
    Les logs, c’est comme les toilettes : tout le monde en a besoin, mais personne ne veut en parler. Pourtant, sans eux, votre application est un bateau sans gouvernail, un avion sans boîte noire, un chat sans vidéos de chats sur YouTube. Bref, c’est la loose. Parmi les rituels les plus sacrés du développement, il y a le choix des log levels. DEBUG, INFO, WARNING, ERROR : ces quatre cavaliers de l’ap...
  • Faire échouer le build pour un linter : quand le style devient une question de survie

    Illustration 3D glossy linter
    Les linters ces petits outils qui nous rappellent gentiment que notre code ressemble à un champ de bataille après une soirée trop arrosée. Ou du moins, c’est ce qu’ils devraient faire. Trop souvent, ils se contentent de grogner dans un coin, ignorés comme un TODO oublié depuis 2018. Pourtant, il existe une façon de leur donner du mordant : les faire échouer le build. Oui, vous avez bien lu. On par...
  • Yolov9 + frigate + coral usb : le combo gagnant ou l'arbre qui cache la forêt ?

    Yolov9
    Ah, la détection d’objets en temps réel. Un sujet qui fait vibrer les développeurs comme un npm install qui plante à 99%. Entre les modèles qui promettent monts et merveilles et les solutions clés en main qui finissent en « bon, on fait comment maintenant ? », difficile de s’y retrouver. Aujourd’hui, on décortique le trio Yolov9 + Frigate + Coral USB : une stack qui sent bon l’edge computing, la v...
  • Reaper vs cubase en 2026 : le duel des daw qui n’ont pas la même philosophie

    Reaper et Cubase en 2026
    En 2026, choisir un DAW, c’est un peu comme choisir entre une voiture de sport allemande et une moto japonaise : l’une a des siècles de pedigree, des options à n’en plus finir et un prix qui fait tousser, l’autre est légère, modifiable à l’infini et vous laisse de l’argent pour acheter des plugins. Cubase, c’est la Mercedes de la production audio : solide, complète, et un peu ennuyeuse. Reaper, c’...
  • N8n vs node-red : le match des outils low-code qui font transpirer les devs

    n8n et Node-RED,
    Alors, n8n ou Node-RED ? La question vous taraude depuis que votre boss a découvert le mot "automatisation" dans un podcast pour startups en mal de productivité. si vous cherchez un outil qui ne vous fera pas regretter d’avoir choisi l’informatique plutôt que la compta, la réponse n’est pas aussi évidente que le marketing des deux solutions voudrait vous le faire croire. Le pitch : deux outils, un...
  • Next.js : ssr, ssg, isr – ou comment ne plus choisir entre vitesse et fraîcheur

    Illustration en plongée d'un bureau de développeur organisé avec un ordinateur affichant des commandes Next.js comme 'getServerSideProps', évoquant l'équilibre entre vitesse et fraîcheur des données.
    Next.js a débarqué dans nos vies comme ce pote un peu trop enthousiaste qui veut absolument vous présenter son nouveau framework préféré. « Regarde, il fait tout ! SSR, SSG, ISR… Tu n’as plus à choisir ! » Sauf que, comme souvent, quand quelque chose promet de tout faire, on finit par se demander si ça ne fait pas tout… à moitié. SSR : le retour du serveur qui bosse (enfin) Le Server-Side Renderin...
  • Next.js, c'est facile ? ça dépend si tu aimes qu'on te tienne la main

    Next.js
    Next.js, c’est un peu comme ce pote qui insiste pour t’aider à monter ton meuble Ikea. Au début, tu te dis : « Super, je vais gagner du temps ». Sauf qu’à la fin, tu réalises qu’il a vissé toutes les planches à l’envers, et que tu passes trois heures à tout démonter pour comprendre comment ça marche. Alors, Next.js, c’est facile ? Oui, si tu aimes les frameworks qui prennent les décisions à ta pla...
  • Idempotence : le mot qui fait vibrer les devs (et les apis)

    Idempotence please!
    Ah, l’idempotence. Ce mot qui sonne comme une maladie rare ou un sortilège de Harry Potter, mais qui, en réalité, est juste un concept technique que tout le monde cite sans toujours bien le comprendre. Pourtant, dès qu’on parle d’APIs, de requêtes HTTP ou de résilience des systèmes, il finit par pointer son nez, comme un invité un peu trop collant à une soirée. Alors, c’est quoi cette fameuse idem...
  • Vercel : le couteau suisse du frontend qui veut tout faire (mais pas pour tout le monde)

    Vercel
    Si vous traînez un peu dans l’écosystème JavaScript ces derniers temps, vous avez forcément croisé Vercel. Partout. Dans les talks, les docs, les tweets de devs qui viennent de découvrir que git push pouvait déclencher un déploiement en 3 secondes. Bref, Vercel est devenu le nouveau jouet à la mode, celui qu’on vous vend comme la solution ultime pour tout héberger, du blog perso au SaaS monolithiq...
  • Laravel vs symfony : pourquoi choisir le framework qui pique les idées et le routing le plus lent ?

    Laravel Symfony.
    Ah, la guerre des frameworks PHP. D’un côté, Symfony, le vieux sage qui a tout vu, tout codé, et qui vous regarde avec mépris quand vous osez parler de @Route sans préciser le format YAML. De l’autre, Laravel, le petit nouveau qui a piqué les meilleurs jouets de Symfony, mais qui les a emballés dans du papier cadeau avec un smiley dessus. Et pourtant, malgré un routing qui fait pleurer les benchma...
  • 2026 : 50 bases de données et toujours mariadb ? pourquoi changer (ou pas)

    50 bases de données différentes
    En 2026, le paysage des bases de données ressemble à un buffet à volonté où 90% des plats sont des variations de SELECT * FROM hype. Entre les promesses des bases vectorielles, les blockchains qui stockent des todo-lists, et les SGBD qui se vantent d'être « serverless » (traduction : « on a juste mis un proxy devant »), le développeur lambda a de quoi se sentir comme un enfant dans un magasin de b...
  • Datetime → datetimeimmutable en php : l'immutabilité qui sauve vos données (et votre santé mentale)

    objet DateTimeImmutable qui reste stable
    Ah, les dates en PHP. Ce sujet qui fait frémir même les développeurs les plus aguerris. Entre les DateTime qui se modifient comme par magie et les bugs temporels qui apparaissent sans crier gare, on a parfois l'impression de jouer à la roulette russe avec son code. Et si je vous disais qu'il existe une solution simple, élégante, et surtout sûre pour éviter ces galères ? Bienvenue dans le monde mer...
  • Makefile + docker : parce que taper `docker-compose up -d --build` 42 fois par jour, c’est has been

    make up au lieu d'une longue commande Docker
    Vous connaissez ce moment où vous tapez docker-compose up -d --build pour la énième fois de la journée, et que vos doigts commencent à développer une haine viscérale pour votre clavier ? Bienvenue dans le club. Heureusement, il existe une solution élégante, minimaliste et surtout drastiquement moins chiante : le Makefile. Non, ce n’est pas un retour en 1977, c’est juste une façon de remplacer vos ...
  • Pourquoi <?php declare(strict_types=1); est le garde du corps que ton code symfony mérite

    PHP avec declare(strict_types=1), symbolisant la robustesse du typage strict.
    Imaginez un monde où PHP ne transforme pas gentiment '42' en 42 quand ça lui chante, où null ne se faufile pas comme un ninja dans vos calculs, et où une fonction qui attend un int ne se retrouve pas avec une string parce qu’un dev a oublié de valider son input. Ce monde existe : il s’appelle declare(strict_types=1);. Et si vous ne l’utilisez pas dans vos projets Symfony, vous jouez avec le feu. O...
  • Git hooks : phpstan et phpunit en pre-commit pour sauver ta ci (et ton karma)

    icônes PHPStan et PHPUnit
    Ta CI te fait des crises de larmes à chaque push ? Tes collègues te regardent avec ce mélange de pitié et de mépris quand ton build échoue pour la énième fois ? Respire. On a tous connu ça. Mais aujourd’hui, on va te donner les clés pour que tes commits soient aussi propres qu’un appartement après le passage de Marie Kondo – sauf que là, c’est ton code qui va étinceler. Le secret ? Un pre-commit h...
  • Ripgrep : grep est mort, vive rg !

    rg en action, avec des résultats de recherche colorés et rapides.
    Ah, grep. Ce vénérable outil Unix qui a survécu à des décennies de révolutions technologiques, comme un vieux pull en laine troué mais toujours confortable. Sauf que, soyons honnêtes, il est lent, verbeux, et ses options ressemblent à un inventaire de magasin de bricolage des années 80. Heureusement, ripgrep (ou rg pour les intimes) est là pour lui botter les fesses, avec élégance et une rapidité ...
  • Psr-3 en php : parce que <code>error_log()</code> c'est pour les dinosaures

    PSR-3 avec Monolog
    Ah, les logs. Ces petits messages qui s’accumulent dans des fichiers obscurs, comme des post-it collés sur un frigo par un colocataire bordélique. Vous savez, ceux qui disent « Erreur 500 » sans jamais préciser pourquoi, ou « Tout va bien » alors que votre application vient de s’écraser comme un drone en panne de batterie. Si vous en êtes encore à utiliser error_log() ou, pire, var_dump() dans un ...
  • Cross-origin-embedder-policy : le header qui veut sauver votre site (mais pas tout seul)

    cross-origin, avec le texte COEP
    Ah, la sécurité web. Ce sujet qui fait briller les yeux des devs en réunion, entre deux slides PowerPoint sur les « bonnes pratiques » et un café tiède. Aujourd’hui, on parle d’un header qui monte, qui monte : Cross-Origin-Embedder-Policy (ou COEP pour les intimes). Un petit nom qui sonne comme une formule magique, mais qui, comme toute magie, a ses limites. Spoiler : ce n’est pas la solution ulti...
  • Les graph en seo : ou comment faire croire à facebook que ton site est sexy

    balises Open Graph
    Ah, les og:tags. Ces petites balises magiques qui promettent de transformer ton lien en une carte de visite clinquante sur les réseaux sociaux. Comme si un simple <meta property="og:image" content="mon-super-visuel.jpg" /> allait soudainement faire de ton article sur les meilleurs frameworks JavaScript en 2024 un phénomène viral. Spoiler : ça n’arrivera pas. Mais bon, autant comprendre à quoi ça s...
  • Roadrunner pour symfony : le marteau-piqueur pour écraser une mouche ?

    Un coyote en costume de développeur, tenant un marteau-piqueur, face à une mouche symbolisant un petit projet Symfony.
    Ah, RoadRunner. Ce nom évoque soit un coyote déterminé à écraser un volatile, soit un outil PHP qui promet de transformer votre application Symfony en une bête de course. Spoiler : dans les deux cas, ça finit souvent en crash spectaculaire. Mais passons sur les métaphores animalières et parlons technique. Est-ce que RoadRunner vaut le coup pour un simple projet web Symfony ? Ou est-ce juste un mar...
  • Pourquoi warpgate est un choix malin pour sécuriser votre homelab

    Capture d'écran de l'interface de configuration de Warpgate montrant les règles d'accès pour SSH et MySQL dans un homelab.
    Un homelab, c’est un terrain de jeu idéal pour expérimenter, mais aussi une cible potentielle pour les accès non autorisés. Plutôt que de multiplier les règles iptables ou de gérer des clés SSH à la main, une solution comme Warpgate permet de centraliser et sécuriser les connexions sans alourdir l’infrastructure. Voici pourquoi ce bastion transparent mérite une place dans votre setup.Un bastion sa...
  • Utiliser les skills avec opencode ou claude : avantages et méthodes concrètes

    Illustration d'un développeur utilisant une interface de terminal pour appeler une skill d'IA comme OpenCode ou Claude sur du code source.
    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...
  • Chatgpt vs claude : lequel choisir pour un usage quotidien ?

    Comparaison visuelle entre les interfaces de ChatGPT et Claude sur un écran d'ordinateur.
    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...
  • Mysql : comprendre root@% et root@localhost

    mysql localhost
    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.
  • L'importance de la reproduction des erreurs en développement

    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...
  • Comprendre et utiliser la bibliothèque php defer

    PHP Defer
    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...
  • Les service workers en javascript : un guide pour les débutants

    dev Service Workers
    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...
  • L'api webassembly : un nouveau monde de possibilités

    WebAssembly
    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. Q...
  • Les unités de requêtes de conteneur css : comprendre leur fonctionnement et leur utilisation

    CSS Container Query Units
    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 ...
  • Webcodecs api : l'avenir de la compression vidéo en javascript

    WebCodecs API : l'avenir de la compression vidéo en JavaScript
    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.
  • Imagecapture api : la nouvelle façon de capturer des images en javascript

    ImageCapture API
    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.
  • Fetch api : la simplicité de gérer les requêtes http en javascript

    fetch js
    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.
  • Les petits avantages de la fonction list de php

    php list
    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.
  • Wamp curl error 60: ssl certificate problem: unable to get local issuer certificate

    cURL error 60: SSL certificate problem
    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'est sim...
  • Firefox - cette connexion n'est pas sécurisée. les identifiants saisis ici pourraient être compromis.

    mitm  firefox Cette connexion n'est pas sécurisée
    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...
  • Wampserver 3 me renvoie vers un bon vieux 404 not found malgré une bonne configuration

    auto index apache wamp 404 not found loana grosse truie dégueulasse
    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 vraiment...
  • Comment virer content_script.js (line 91) dans la console de firefox ?

    content_script.js line 91 firefox
    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 avant, mais...
  • Symfony2 the uploaded file was too large. please try to upload a smaller file.

    post_max_size
    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.
  • Php non exécuté sur serveur apache avec ubuntu

    crystall ball
    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...
  • Ajouter extension php zend opcache dans wamp

    wamp opcache
    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...
  • Configurer le watcher de phpstorm sur windows pour les scss avec compass

    watcher
    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...
  • Concaténer une variable et une chaine dans le scss avec compass

    compass concaténation scss
    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 ...
  • Problème de suppression de dossier créé avec npm sur windows

    rimraf fuuuu
    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 ...
  • Virer la notification obtenir windows 10

    va de retro windows 10
    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 ...
  • Symfony2 - vérifier l’existence d'une route

    check route symfony
    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...
  • Mes petits trucs, astuces et pense-bête de symfony 2.x

    ampoules
    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 de rajou...
  • Les mauvaises excuses pour ne pas utiliser git

    git
    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 che...
  • Raspberrypi dependances scponly.deb pour architecture armhf

    dépôt linux
    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 perme...
  • Voir les fichiers .gitignore dans les arborescences de netbeans

    gitignore
    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.
  • Configurer netbeans pour les recommandations php psr-2 du framework interoperability group

    header netbeans PSR
    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… N...
  • Verifier si on est sur le dernier element d'un tableau php

    php array check last
    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... J...
  • Générer du faux texte dynamiquement avec l'api bacon ipsum

    bacon ipsum et Loripsum api
    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 mon champ texte à chaque ...
  • Proteger votre adresse mail des spammeurs grace à une astuce css

    spam email
    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 ! Alor...
  • [bug sf2.3] call to undefined method doctrine orm configuration getaliasnamespaces()

    call to undefined method Doctrine ORM Configuration getAliasNamespaces()
    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 generation PHP Fatal error: Ca...
  • [fosuserbundle] trier ses users alphabétiquement dans son interface admin

    [FosUserBundle] Trier ses users alphabétiquement dans son interface admin
    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...
  • Placer ses layouts dans des variables globales twig sous symfony2

    Placer ses layouts dans des variables globales twig
    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, ...
  • Quelques outils css3 utiles

    Quelques outils CSS3 utiles
    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.
  • Les filtres d'image css3 de chrome

    Les filtres d'image CSS3 de Chrome
    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'...
  • Enlever les notifications sonores de facebook

    enlever les notifications sonores de facebook
    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" toutes les 45 se...
  • Récupérer l'url absolue de la page en cours dans une vue avec symfony

    Récupérer l'URL absolue de la page en cours dans une vue avec Symfony
    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...
  • Requetes sql natives avec doctrine

    Requetes SQL natives avec doctrine
    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 claires à ...
  • Newmanity, un réseau social écolo

    Newmanity, un réseau social écolo
    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'offrir un e...
  • Valider une adresse email avec php

    Valider une adresse email avec PHP
    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...
  • Verrouiller un fichier avec php

    Verrouiller un fichier avec PHP
    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 mais elle n...
  • Empêcher l'indexation d'une page dans tous les moteurs de recherche

    Empêcher l'indexation d'une page dans tous les moteurs de recherche
    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...
  • Sauvegarder une image depuis une url en utilisant php

    sauvegarder une image depuis une URL en utilisant php
    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...
  • Des conditions dans un switch en php

    Des conditions dans un switch en PHP
    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.
  • Racourcir une chaine [script php]

    Racourcir une chaine [Script PHP]
    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.
  • Scroll vers une ancre interne (avec jquery)

    Configuration basique de la sécurité Symfony2
    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</a> <p>... du conte...
  • Configuration basique de la sécurité symfony2

    Configuration basique de la sécurité Symfony2
    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 envie ...
  • Commandes sympas pour access.log

    Commandes sympas pour access.log
    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.
  • Parser rapidement ses logs apache avec awk

    Parser rapidement ses logs apache avec AWK
    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....