[{"data":1,"prerenderedAt":160},["ShallowReactive",2],{"site-settings":3,"all-articles":93},{"id":4,"extension":5,"footer":6,"header":12,"identity":28,"meta":52,"schema":53,"seo":77,"site":87,"stem":91,"__hash__":92},"settings/settings.yml","yml",{"copyright":7,"legal":8},"© Quentin Fonteneau",[9],{"label":10,"url":11},"Mentions légales","/mentions-legales",{"logo":13,"logoAlt":14,"menu":15,"cta":25},"/img/build/logo.svg","Logo du site Quentin Fonteneau",[16,19,22],{"label":17,"url":18},"Projets","/projets",{"label":20,"url":21},"Articles","/articles",{"label":23,"url":24},"À propos","/a-propos",{"label":26,"url":27},"Me contacter","/contact",{"name":29,"firstName":30,"lastName":31,"jobTitle":32,"email":33,"phone":34,"image":35,"location":36,"social":43},"Quentin Fonteneau","Quentin","Fonteneau","Développeur web freelance","quentin.fonteneau@agenceblowup.com","+33637524059","/img/build/quentin_face.webp",{"city":37,"region":38,"country":39,"countryCode":40,"latitude":41,"longitude":42},"Nantes","Pays de la Loire","France","FR",47.2184,-1.5536,[44,48],{"label":45,"url":46,"icon":47},"LinkedIn","https://www.linkedin.com/in/quentin-fonteneau/","linkedin",{"label":49,"url":50,"icon":51},"Strava","https://www.strava.com/athletes/10466645","strava",{},{"skills":54,"services":67,"knowsAbout":73,"priceRange":76},[55,56,57,58,59,60,61,62,63,64,65,66],"PHP","JavaScript","TypeScript","Drupal","Symfony","WordPress","Vue.js","Nuxt","CSS","SCSS","DevOps","Docker",[68,69,70,71,72],"Développement web sur mesure","Architecture logicielle","Maintenance applicative","DevOps & automatisation","Audit & conseil",[74,58,59,62,61,60,75,69,65],"Développement web","Gestion de projet","€€",{"defaultDescription":78,"defaultOgImage":79,"keywords":80,"twitterHandle":86},"Développeur web freelance — 15 ans d'expérience en PHP, JavaScript, Drupal, Symfony, Vue, Nuxt. Basé à Nantes, je conçois des sites et applications sur mesure.","/img/build/og-default.webp",[81,82,83,84,58,59,62,61,85],"développeur freelance","développeur Nantes","freelance PHP","freelance JavaScript","développeur web","",{"title":88,"description":89,"url":90},"Quentin Fonteneau — Développeur freelance","Développeur web freelance basé à Nantes, 15 ans d'expérience en PHP, JavaScript, Drupal, Symfony, Vue et Nuxt. Sites sur mesure, applications métier, accompagnement de bout en bout.","https://quentin.fonteneau.io","settings","GE0IUpzAvmuRIG3EJGkTenMt976mzI96tLMz_YGJ7yQ",[94,122,141],{"id":95,"title":96,"article_type":97,"blocks":98,"body":103,"created_at":109,"description":110,"draft":111,"extension":112,"img":113,"meta":114,"navigation":115,"ogImage":116,"path":117,"seo":118,"stem":119,"tags":120,"__hash__":121},"articles/articles/generer-hashsalt-avec-drush.md","Générer un hashsalt avec Drush","Snippet",[99],{"type":100,"language":101,"code":102},"code","bash","vendor/bin/drush eval \"var_dump(Drupal\\Component\\Utility\\Crypt::randomBytesBase64(55))\"\n",{"type":104,"value":105,"toc":106},"minimark",[],{"title":86,"searchDepth":107,"depth":107,"links":108},2,[],"2024-11-05","Drupal a besoin d'un hash_salt unique par environnement pour sécuriser les sessions et tokens. Voici une commande Drush qui génère une valeur sûre en une ligne.",false,"md","snippet",{},true,null,"/articles/generer-hashsalt-avec-drush",{"title":96,"description":110},"articles/generer-hashsalt-avec-drush",[58],"nxxDOIbhBEEay0l-wqRO7QjBO3Ko7RxzLx6bWHFXaOs",{"id":123,"title":124,"article_type":97,"blocks":125,"body":128,"created_at":132,"description":133,"draft":111,"extension":112,"img":113,"meta":134,"navigation":115,"ogImage":116,"path":135,"seo":136,"stem":137,"tags":138,"__hash__":140},"articles/articles/creer-fichier-swap-linux.md","Créer un fichier swap sous Linux",[126],{"type":100,"language":101,"code":127},"#!/bin/bash\n\nif [ $# -eq 1 ]; then\n    re='^[1-9]$'\n\n    if [[ $1 =~ $re ]]; then\n        filename=$1_$(date +%Y%m%d-%H%M%S)\n        cd /mnt/\n        dd if=/dev/zero of=$filename.swap bs=1k count=4096000\n        chmod 600  /mnt/$filename.swap\n        chown $USER: /mnt/$filename.swap\n        mkswap $filename.swap -f\n        swapon /mnt/$filename.swap\n    else\n        echo \"Veuillez passer comme paramètre un chiffre entre 1 et 9.\"\n    fi\nelse\n    echo \"Veuillez passer comme paramètre la taille du swap souhaitée (entre 1 et 9 Go).\"\nfi\n",{"type":104,"value":129,"toc":130},[],{"title":86,"searchDepth":107,"depth":107,"links":131},[],"2024-10-20","Sous Linux, lorsqu'on a installé son système d'exploitation en oubliant de créer une partition de swap, on peut ajouter un fichier swap à la volée. Voici un script qui le fait, paramétré par la taille en Go.",{},"/articles/creer-fichier-swap-linux",{"title":124,"description":133},"articles/creer-fichier-swap-linux",[139],"Linux","y08jQTTGxHttHMJo3BAZoGzbwDxmi54W-PIW3KE8d_w",{"id":142,"title":143,"article_type":97,"blocks":144,"body":147,"created_at":151,"description":152,"draft":111,"extension":112,"img":113,"meta":153,"navigation":115,"ogImage":116,"path":154,"seo":155,"stem":156,"tags":157,"__hash__":159},"articles/articles/creer-archive-entre-deux-commits.md","Créer une archive entre deux commits",[145],{"type":100,"language":101,"code":146},"git archive --output=\u003Cfile> HEAD $(git diff --name-only commit1SHA commit2SHA)\n",{"type":104,"value":148,"toc":149},[],{"title":86,"searchDepth":107,"depth":107,"links":150},[],"2024-10-01","Une commande Git rapide pour générer une archive contenant uniquement les fichiers modifiés entre deux commits — pratique pour livrer un patch ou un hotfix sans embarquer tout le dépôt.",{},"/articles/creer-archive-entre-deux-commits",{"title":143,"description":152},"articles/creer-archive-entre-deux-commits",[158],"Git","KSZd2lluWcpR7kyIBM2P1-91WyEsa-nIBrbw6bew3K8",1779291339003]