14 lines
44 KiB
HTML
Executable File
14 lines
44 KiB
HTML
Executable File
<!-- Saved from local source at 2024-12-27T19:09:34Z using monolith v2.8.3 -->
|
||
<!DOCTYPE html><html lang="fr" data-theme="light"><head><meta http-equiv="Content-Security-Policy" content="default-src 'unsafe-eval' 'unsafe-inline' data:; font-src 'none'; script-src 'none';"></meta><meta name="generator" content="Hugo 0.130.0"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link as="font" type="font/woff2" href="https://une-tasse-de.cafe/fonts/roboto-slab-latin-400.woff2" crossorigin="anonymous"><link as="font" type="font/woff2" href="https://une-tasse-de.cafe/fonts/roboto-slab-latin-700.woff2" crossorigin="anonymous"><link as="font" type="font/woff2" href="https://une-tasse-de.cafe/fonts/fira-code-latin-300.woff2" crossorigin="anonymous"><link as="font" type="font/woff2" href="https://une-tasse-de.cafe/fonts/fira-code-latin-400.woff2" crossorigin="anonymous"><link as="font" type="font/woff2" href="https://une-tasse-de.cafe/fonts/fira-code-latin-700.woff2" crossorigin="anonymous"><meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><title>Une tasse de café — Une tasse de café</title>
|
||
<meta name="description" content="Un blog d'un adorateur de café qui passe la majeur partie de son temps à apprendre et à bidouiller du yaml."><link rel="canonical" href="https://une-tasse-de.cafe/"><meta name="twitter:card" content="summary"><meta name="twitter:title" content="Une tasse de café"><meta name="twitter:description" content="Un blog d'un adorateur de café qui passe la majeur partie de son temps à apprendre et à bidouiller du yaml."><meta property="og:url" content="https://une-tasse-de.cafe/"><meta property="og:site_name" content="Une tasse de café"><meta property="og:title" content="Une tasse de café"><meta property="og:description" content="Un blog d'un adorateur de café qui passe la majeur partie de son temps à apprendre et à bidouiller du yaml."><meta property="og:locale" content="fr"><meta property="og:type" content="website"><meta itemprop="name" content="Une tasse de café"><meta itemprop="description" content="Un blog d'un adorateur de café qui passe la majeur partie de son temps à apprendre et à bidouiller du yaml."><meta itemprop="datePublished" content="2024-11-22T03:18:18+02:00"><meta itemprop="dateModified" content="2024-11-25T09:08:11+01:00"><link rel="alternate" type="application/rss+xml" href="https://une-tasse-de.cafe/index.xml" title="Une tasse de café"><style>
|
||
|
||
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;-webkit-text-decoration:underline;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}
|
||
|
||
/*! CC BY-SA 3.0 License | https://stackoverflow.com/a/36118384/1154965 */@keyframes blink{50%{opacity:0}to{opacity:1}}
|
||
|
||
/*! MIT License | github.com/schnerring/hugo-theme-gruvbox */:root[data-theme=light]{--bg:var(--bg0);--bg0:#fbf1c7;--bg0_h:#f9f5d7;--bg0_s:#f2e5bc;--bg1:#ebdbb2;--bg2:#d5c4a1;--bg3:#bdae93;--bg4:#a89984;--fg:var(--fg1);--fg0:#282828;--fg1:#3c3836;--fg2:#504945;--fg3:#665c54;--fg4:#7c6f64;--gray1:var(--fg4);--gray2:#928374;--red1:#cc241d;--red2:#9d0006;--green1:#98971a;--green2:#797403;--yellow1:#d79921;--yellow2:#b57614;--blue1:#458588;--blue2:#076678;--purple1:#b16286;--purple2:#8f3f71;--aqua1:#689d6a;--aqua2:#427b58;--orange1:#d65d0e;--orange2:#af3a03}[data-theme=light]:root .light--hidden{display:none}:root[data-theme=dark]{--bg:var(--bg0);--bg0:#282828;--bg0_h:#1d2021;--bg0_s:#32302f;--bg1:#3c3836;--bg2:#504945;--bg3:#665c54;--bg4:#7c6f64;--fg:var(--fg1);--fg0:#fbf1c7;--fg1:#ebdbb2;--fg2:#d5c4a1;--fg3:#bdae93;--fg4:#a89984;--gray1:var(--fg4);--gray2:#928374;--red1:#cc241d;--red2:#fb4934;--green1:#98971a;--green2:#b8bb26;--yellow1:#d79921;--yellow2:#fabd2f;--blue1:#458588;--blue2:#83a598;--purple1:#b16286;--purple2:#d3869b;--aqua1:#689d6a;--aqua2:#8ec07c;--orange1:#d65d0e;--orange2:#fe8019}[data-theme=dark]:root .dark--hidden{display:none}:root{--primary:var(--blue1);--primary-alt:var(--blue2);--font-monospace:"Fira Code","Lucida Console",Monaco,monospace;--font-sans-serif:Verdana,Helvetica,sans-serif;--font-serif:"Roboto Slab",Georgia,serif}html{font-family:Roboto Slab,Georgia,serif;font-family:var(--font-serif);font-size:1rem;scroll-behavior:smooth}body{background:var(--bg);color:var(--fg);line-height:1.675;word-wrap:break-word}strong{letter-spacing:0.35px}a{color:inherit;-webkit-text-decoration:none;text-decoration:none}a.link--external:after{content:" ↗"}canvas,img,video{border:2px solid var(--bg1);height:auto;max-width:100%}::-moz-selection{background:var(--bg4);color:var(--fg0)}::selection{background:var(--bg4);color:var(--fg0)}h1,h2,h3,h4,h5{color:var(--fg0);font-family:Fira Code,Lucida Console,Monaco,monospace;font-family:var(--font-monospace);font-weight:300;line-height:1.4}h1 code,h2 code,h3 code,h4 code,h5 code{font-size:1em}h2,h3,h4,h5{border-bottom:1px solid var(--bg1)}h1,h2{font-weight:400}h1{font-size:1.875rem}h2{font-size:1.75rem}h3{font-size:1.625rem}@media (min-width:768px){h1{font-size:2.375rem}h2{font-size:2rem}h3{font-size:1.75rem}}h4{font-size:1.5rem}h5{font-size:1.375rem}table{border-collapse:collapse;margin:2rem 0;table-layout:fixed;width:100%}table,td,th{border:1px solid var(--bg1);padding:0.5rem}hr{background:var(--bg1);border:none;height:1px;margin:3rem auto;width:80%}blockquote,code,pre{border-radius:0.2rem;padding:0 0.2em}pre code{padding:0}blockquote,code,pre,th{background:var(--bg1)}.notice blockquote,.notice p code,.notice ul li code{background:#3c3638;color:#f8f8f2}code,pre,th{font-family:Fira Code,Lucida Console,Monaco,monospace;font-family:var(--font-monospace)}code code{background:var(--bg2)}blockquote,pre{padding:1rem}pre{background:var(--bg1)!important;overflow:auto}pre code{background:none}blockquote{border-left:5px solid var(--primary-alt);margin:0.5rem 0}blockquote:not(.does-not-exist) code{background:var(--bg2)}blockquote:not(.does-not-exist) p:first-of-type{margin-top:0}blockquote:not(.does-not-exist) p:last-of-type{margin-bottom:0}pre::-webkit-scrollbar{height:0.5rem;scrollbar-width:auto}pre::-webkit-scrollbar-track{background:var(--bg2);border-radius:0.2rem}pre::-webkit-scrollbar-thumb{background:var(--bg4);border-radius:0.2rem}.layout{display:grid;grid-template-areas:"header" "main" "footer";grid-template-rows:auto 1fr auto;height:100vh}main{align-items:start;display:grid;grid-area:main;grid-template-areas:"empty content sidebar";grid-template-columns:1fr minmax(0,1000px) 4fr}header{background:var(--bg1);grid-area:header}footer{grid-area:footer}footer,main{margin:0.5em 1.1em}.content{grid-area:content;width:100%}.sidebar{display:none;flex-direction:column;grid-area:sidebar;margin-top:3rem;position:sticky;top:2rem}@media (min-width:992px){.sidebar{display:flex}}header{display:grid;font-family:Fira Code,Lucida Console,Monaco,monospace;font-family:var(--font-monospace);font-size:1.125rem;grid-template-areas:"heading search nav theme-toggle";grid-template-columns:auto auto 1fr auto;padding:0.75rem}.logo{color:var(--fg0);display:flex;font-weight:700;grid-area:heading}.logo:hover .logo__cursor{animation:blink 1s infinite;opacity:1}.logo__chevron,.logo__cursor{margin-left:0.5rem}.logo__cursor{opacity:0}.logo__text{display:none}@media (min-width:768px){.logo__text{display:block}}.search{display:flex;grid-area:search;margin:0 1rem}#search__text{background:var(--bg2);border:1px solid var(--bg2);border-radius:0.2rem;caret-color:var(--fg);color:var(--fg);outline:none;padding:0 0.5rem;width:100%}#search__text:hover{border-color:var(--bg3)}#search__text:focus{border-color:var(--bg4)}#search__text::-moz-placeholder{color:var(--fg3)}#search__text::placeholder{color:var(--fg3)}#search__text[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}#search__suggestions{background:var(--bg);border-radius:0.2rem;box-shadow:0 0.5rem 1rem var(--bg1);font-family:Roboto Slab,Georgia,serif;font-family:var(--font-serif);left:0;margin-top:2rem;position:absolute;width:95vw;z-index:1000}@media (min-width:768px){.search{position:relative}#search__suggestions{width:60vw}}.search__suggestions--hidden{display:none}.search__suggestion-item{border-bottom:1px dashed var(--bg2);display:grid;grid-template-columns:1fr 2fr}.search__suggestion-item:focus,.search__suggestion-item:focus-visible,.search__suggestion-item:hover{background:var(--bg1);cursor:pointer;outline:none}.search__suggestion-item:last-child{border:none}.search__suggestion-description,.search__suggestion-title{margin:1rem 0;padding:0 1rem}.search__suggestion-title{font-weight:700}.search__suggestion-description{border-left:1px solid var(--bg2)}.search__no-results{padding:0.75rem}.theme__toggle{align-items:center;background:none;border:none;color:var(--yellow1);cursor:pointer;display:flex;grid-area:theme-toggle;margin:0 1rem}.theme__toggle:hover{color:var(--yellow2)}.theme__toggle svg{height:28px;width:28px}nav#menu{align-items:center;display:flex;grid-area:nav;justify-content:flex-end}nav#menu .menu__item{color:var(--fg)}nav#menu .menu__item:hover{color:var(--fg3);cursor:pointer}nav#menu ul{list-style:none;margin:0;padding:0}nav#menu ul.menu--horizontal{align-items:center;display:none}nav#menu ul.menu--horizontal li{display:inline-block;margin:0 0.75rem}@media (min-width:768px){nav#menu ul.menu--horizontal{display:flex}}nav#menu ul.menu--vertical{background:var(--fg0);bottom:0;margin:0;padding:3rem;position:fixed;right:0;top:0;transform:translate(100%);transition:transform 0.5s cubic-bezier(0.9,0,0.1,1);width:50%;z-index:10}nav#menu ul.menu--vertical .menu__item{color:var(--bg1)}nav#menu ul.menu--vertical .menu__item:hover{color:var(--bg4)}nav#menu .menu__burger{display:flex;height:24px;width:24px}nav#menu .menu__burger>*{position:absolute}nav#menu .menu__burger svg{height:inherit;width:inherit;z-index:20}nav#menu .menu__burger input{height:inherit;opacity:0;width:inherit;z-index:30}nav#menu .menu__burger input:checked~ul.menu--vertical{transform:none}nav#menu .menu__burger input:checked~svg{stroke:var(--bg1)}@media (min-width:768px){nav#menu .menu__burger{display:none}}.sidebar{font-family:Fira Code,Lucida Console,Monaco,monospace;font-family:var(--font-monospace);margin-left:auto;margin-right:auto;max-width:350px;padding-left:2.5rem}.sidebar svg{fill:var(--fg)}.sidebar__heading{font-size:1.3rem}aside.toc a{color:var(--primary-alt)}aside.toc a:hover{color:var(--primary)}aside.toc ul{list-style:none;margin:0;padding:0}aside.toc ul ul{font-size:0.9rem;margin-left:0.5rem}aside.toc ul li{line-height:1.1}aside.toc ul li a{display:block;padding:0.2rem 0}.jr-basics__image{background:var(--bg1);border:2px solid var(--bg2)}.jr-basics__summary{color:var(--fg3);font-family:Roboto Slab,Georgia,serif;font-family:var(--font-serif);margin:0.75rem 0}.jr-basics__profile a:hover{color:var(--fg3)}.jr-basics__profile a:hover svg{fill:var(--fg3)}.content-section,.post{border-bottom:2px dotted var(--bg1);padding:2rem 0}.post img:not(figure img),.post video:not(figure video){box-sizing:border-box;margin:0.5rem 0}.post-content__read-more,.post-header{font-family:Fira Code,Lucida Console,Monaco,monospace;font-family:var(--font-monospace)}.post-meta__author{font-weight:700}.post-content{margin:1.3rem 0}.post-content__read-more{color:var(--primary-alt);margin-top:1.3rem}.post-content a,.post-header a{color:var(--primary-alt)}.post-content a:hover,.post-header a:hover{color:var(--primary)}.post-tags{align-items:center;display:flex;flex-wrap:wrap;gap:0.9rem;margin:1rem 0}.post-tag{font-size:0.9rem;line-height:1}.post-tag:before{content:"#"}.post-heading__anchor{display:none}h1:hover .post-heading__anchor,h2:hover .post-heading__anchor,h3:hover .post-heading__anchor,h4:hover .post-heading__anchor,h5:hover .post-heading__anchor{display:inline-block}.jr__item-meta{flex-direction:column}.jr-basics__image,.jr-basics__item,.jr-basics__profile-icon,.jr-basics__profile-item,.jr__item-meta{align-items:center;display:flex}.jr-basics__name,.jr-education__area,.jr-publications__name,.jr-volunteer__position,.jr-work__position{font-size:1.125rem;font-weight:700}.jr-basics__item{flex-direction:column;text-align:center}.jr-basics__item hr{margin:1.5rem auto}.jr-basics__image{border-radius:50%;height:250px;justify-content:center;overflow:hidden;width:250px}.jr-basics__label,.jr-basics__name,.jr-basics__summary{margin-top:0.75rem}.jr-basics__profile svg{height:24px;width:24px}.jr-basics__profile,.jr-basics__profile-item{display:flex}.jr-basics__profile-item{display:flex;padding:0.2rem}.jr-basics__profile--col{flex-direction:column}.jr-basics__profile--row{flex-wrap:wrap;justify-content:space-evenly}.jr-basics__profile-icon{padding:0 0.75rem}.jr__item-meta{align-items:start;flex-flow:column;font-family:Fira Code,Lucida Console,Monaco,monospace;font-family:var(--font-monospace)}@media (min-width:768px){.jr__item-meta{align-items:center;flex-flow:row wrap}.jr__date-range{width:90%}.jr-work__location,.jr__date,.jr__date-range{flex-grow:1;text-align:right}.jr-education__institution,.jr-publications__publisher,.jr-volunteer__organization{flex-basis:100%}}.social-share{align-items:center;border-top:2px dotted var(--bg1);display:flex;flex-wrap:wrap;gap:0.9rem;margin:3rem 0;padding-top:3rem}.social-share svg{fill:var(--fg);height:24px;width:24px}.social-share svg.icon-tabler{fill:none;stroke:var(--fg)}.social-share__item{background:var(--bg1);display:flex;padding:0.5rem}.button{--c:#b37b27;box-shadow:inset 0 0 0 0.1em #b37b27;box-shadow:0 0 0 0.1em inset var(--c);--_g:linear-gradient(var(--c) 0,var(--c) 0) no-repeat;background:linear-gradient(#b37b27,#b37b27 0) no-repeat -100% 0,linear-gradient(#b37b27,#b37b27 0) no-repeat 200% 0,linear-gradient(#b37b27,#b37b27 0) no-repeat -100% 100%,linear-gradient(#b37b27,#b37b27 0) no-repeat 200% 100%;background:linear-gradient(#b37b27 0 0) no-repeat -100% 0,linear-gradient(#b37b27 0 0) no-repeat 200% 0,linear-gradient(#b37b27 0 0) no-repeat -100% 100%,linear-gradient(#b37b27 0 0) no-repeat 200% 100%;background:var(--_g) calc(var(--_p, 0%) - 100%) 0,var(--_g) calc(200% - var(--_p, 0%)) 0,var(--_g) calc(var(--_p, 0%) - 100%) 100%,var(--_g) calc(200% - var(--_p, 0%)) 100%;background-size:50.5% 0.5%;background-size:50.5% calc(var(--_p, 0%)/2 + 0.5%);color:var(--fg);outline-offset:0.1em;transition:background-size 0.4s,background-position 0s 0.4s}@supports (background:linear-gradient(red 0%,red 0% 1%,red 2%)){.button{--_g:linear-gradient(var(--c) 0 0) no-repeat}}.button:hover{--_p:100%;transition:background-position 0.4s,background-size 0s}.button:active{background-color:var(--c);box-shadow:inset 0 0 9000000000q rgba(0,0,0,0.6);color:#fff}.button{border:none;cursor:pointer;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;font-size:2.8rem;font-weight:700;padding:0.1em 0.6em}@media (min-width:768px){.content{width:100%}}:root[data-theme=dark] .invert-dark{filter:invert(1) hue-rotate(180deg)}</style><link rel="stylesheet" href="https://une-tasse-de.cafe/css/non-critical.a52828b4fa258fd00c4bce905a3c5772a9cbfdb94909f54a582a26d9c562dc9fa09b7e74c33cd1888c1ec1da2a05ec659429e2630fb02e6ef9956da263d94506.css" as="style" integrity="sha512-pSgotPolj9AMS86QWjxXcqnL/blJCfVKWCom2cVi3J+gm350wzzRiIwewdoqBexllCniYw+wLm75lW2iY9lFBg=="><link id="prism-dark" rel="stylesheet" href="https://une-tasse-de.cafe/prism-themes/prism-gruvbox-dark.min.54aecc64074623a4f9898544dcbdab9e804f1560ef0b38f4cf8e10fcaaf72264e798cb407c601aca6ecd833ec4eb93d66535581f18d45ba202cf848b70dbc332.css" as="style" integrity="sha512-VK7MZAdGI6T5iYVE3L2rnoBPFWDvCzj0z44Q/Kr3ImTnmMtAfGAaym7Ngz7E65PWZTVYHxjUW6ICz4SLcNvDMg==" disabled=""><link id="prism-light" rel="stylesheet" href="https://une-tasse-de.cafe/prism-themes/prism-gruvbox-light.min.42a221741efe997fcc94187c39d63c555560678789ac9ca856c74a5f0ddb2aa6c50d38b2ffbecc7a99038cbbd2efa99746e862267f781c559e0cfec10b88a5fc.css" as="style" integrity="sha512-QqIhdB7+mX/MlBh8OdY8VVVgZ4eJrJyoVsdKXw3bKqbFDTiy/77MepkDjLvS76mXRuhiJn94HFWeDP7BC4il/A=="><noscript></noscript><script async=""></script><script></script><link rel="apple-touch-icon" sizes="180x180" href="https://une-tasse-de.cafe/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="https://une-tasse-de.cafe/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="https://une-tasse-de.cafe/favicon-16x16.png"><link rel="manifest" href="https://une-tasse-de.cafe/site.webmanifest"><link rel="mask-icon" href="https://une-tasse-de.cafe/safari-pinned-tab.svg" color="#282828"><meta name="msapplication-TileColor" content="#282828"><meta name="theme-color" content="#282828"><base href="https://une-tasse-de.cafe/"></base></head><body><div class="layout"><header><script></script><link rel="stylesheet" href="https://une-tasse-de.cafe/css/gitalk.css"><script></script><noscript><p><img src="https://mat.une-tasse-de.cafe/matomo.php?idsite=1&rec=1" style="border:0" alt=""></p></noscript><a class="logo" href="https://une-tasse-de.cafe/"><div class="logo__text">Une tasse de café</div><div class="logo__chevron">></div><div class="logo__cursor">█</div></a><div class="search"><input id="search__text" type="search" placeholder="Search..." aria-label="Search" autocomplete="off"><div id="search__suggestions" class="search__suggestions--hidden"></div></div><nav id="menu"><ul class="menu--horizontal"><li class="menu__item"><a href="https://a-cup-of.coffee">🇬🇧</a></li><li class="menu__item"><a href="https://une-tasse-de.cafe/index.xml">RSS</a></li><li class="menu__item"><a href="https://une-tasse-de.cafe/break">Shorts</a></li><li class="menu__item"><a href="https://une-tasse-de.cafe/archives">Archives</a></li><li class="menu__item"><a href="https://ko-fi.com/thebidouilleur">Support me ❤️</a></li></ul><div class="menu__burger"><input class="menu__item" type="checkbox" aria-label="Open main menu"><svg class="icon icon-tabler icon-tabler-menu-2" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M4 6h16"></path><path d="M4 12h16"></path><path d="M4 18h16"></path></svg><ul class="menu--vertical"><li><a class="menu__item" href="https://a-cup-of.coffee">🇬🇧</a></li><li><a class="menu__item" href="https://une-tasse-de.cafe/index.xml">RSS</a></li><li><a class="menu__item" href="https://une-tasse-de.cafe/break">Shorts</a></li><li><a class="menu__item" href="https://une-tasse-de.cafe/archives">Archives</a></li><li><a class="menu__item" href="https://ko-fi.com/thebidouilleur">Support me ❤️</a></li></ul></div></nav><button class="theme__toggle light--hidden" aria-label="Toggle light mode">
|
||
<svg class="icon icon-tabler icon-tabler-sun" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M12 12m-4 0a4 4 0 108 0 4 4 0 10-8 0"></path><path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"></path></svg>
|
||
</button>
|
||
<button class="theme__toggle dark--hidden" aria-label="Toggle dark mode"><svg class="icon icon-tabler icon-tabler-moon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M12 3c.132.0.263.0.393.0a7.5 7.5.0 007.92 12.446A9 9 0 1112 2.992z"></path></svg></button></header><main><div class="content"><div class="content-section"><h1>Une tasse de café</h1></div><article class="post"><div class="post-header"><h2><a href="https://une-tasse-de.cafe/blog/nats/">NATS de A à Y</a></h2><div class="post-meta"><span>2024-09-24</span><span> by </span><span class="post-meta__author">Quentin JOLY</span><span> (updated: 2024-11-25)</span><div class="post-tags"><a class="post-tag" href="https://une-tasse-de.cafe/tags/nats">nats</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/microservices">microservices</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/asynchrone">asynchrone</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/broker">broker</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/queue">queue</a></div><a href="https://une-tasse-de.cafe/blog/nats/"><img src="https://une-tasse-de.cafe/blog/nats/cover.png" alt="couverture"></a></div></div><div class="post-content">Découvrons NATS de A à Y. Ensemble, nous développerons un projet à base de micro-services en Golang pour tester les particularités de NATS et fiabiliser les échanges entre nos applications.</div></article><article class="post"><div class="post-header"><h2><a href="https://une-tasse-de.cafe/blog/goauthentik/">GoAuthentik de A à Y</a></h2><div class="post-meta"><span>2024-08-04</span><span> by </span><span class="post-meta__author">Quentin JOLY</span><span> (updated: 2024-11-25)</span><div class="post-tags"><a class="post-tag" href="https://une-tasse-de.cafe/tags/oauth2">oauth2</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/sso">sso</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/goauthentik">goauthentik</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/authentik">authentik</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/saml">saml</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/ldap">ldap</a></div><a href="https://une-tasse-de.cafe/blog/goauthentik/"><img src="https://une-tasse-de.cafe/blog/goauthentik/cover.png" alt="Couverture"></a></div></div><div class="post-content">Ça fait un moment que j’utilise Github comme support OAuth2 pour m’authentifier sur des applications. Toutefois, je me suis toujours contenté de suivre une documentation sans réellement chercher à comprendre ce qu’il se passait sous mes yeux chaque fois que je voulais m’authentifier.
|
||
De ce fait, je me suis motivé à écrire cet article à propos du SSO. L’objectif est de découvrir les mécanismes disponibles pour gérer une grande quantité d’utilisateurs et leurs accès aux applications de l’infrastructure.<div class="post-content__read-more"><a href="https://une-tasse-de.cafe/blog/goauthentik/">Continuer de lire ></a></div></div></article><article class="post"><div class="post-header"><h2><a href="https://une-tasse-de.cafe/blog/dygma-defy/">Le Dygma Defy, mon premier clavier split</a></h2><div class="post-meta"><span>2024-07-10</span><span> by </span><span class="post-meta__author">Quentin JOLY</span><span> (updated: 2024-11-25)</span><div class="post-tags"><a class="post-tag" href="https://une-tasse-de.cafe/tags/quotidien">quotidien</a></div><a href="https://une-tasse-de.cafe/blog/dygma-defy/"><img src="https://une-tasse-de.cafe/blog/dygma-defy/_resources/30587fc3301670246701df60b5bb3afe.png" alt="cover"></a></div></div><div class="post-content">Review du Dygma Defy, un clavier split ergonomique et personnalisable pour améliorer votre confort de travail. Dans cet article, je vous partage mon ressenti après 1 semaine d'utilisation intensive.</div></article><article class="post"><div class="post-header"><h2><a href="https://une-tasse-de.cafe/blog/istio/">Istio de A à Y</a></h2><div class="post-meta"><span>2024-07-09</span><span> by </span><span class="post-meta__author">Quentin JOLY</span><span> (updated: 2024-11-25)</span><div class="post-tags"><a class="post-tag" href="https://une-tasse-de.cafe/tags/kubernetes">kubernetes</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/istio">istio</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/service-mesh">service‑mesh</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/envoy">envoy</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/kiali">kiali</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/grafana">grafana</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/prometheus">prometheus</a></div><a href="https://une-tasse-de.cafe/blog/istio/"><img src="https://une-tasse-de.cafe/blog/istio/cover.png" alt="Couverture de l'article."></a></div></div><div class="post-content">Istio est un service mesh open-source qui permet de connecter, sécuriser, contrôler et observer les services d'une application. Nous allons voir comment installer Istio, et comment l'utiliser pour sécuriser et monitorer nos services.</div></article><article class="post"><div class="post-header"><h2><a href="https://une-tasse-de.cafe/blog/headscale-hybrid/">Une infrastructure VPN hybride avec Headscale</a></h2><div class="post-meta"><span>2024-06-02</span><span> by </span><span class="post-meta__author">Quentin JOLY</span><span> (updated: 2024-11-25)</span><div class="post-tags"><a class="post-tag" href="https://une-tasse-de.cafe/tags/vpn">vpn</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/headscale">headscale</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/wireguard">wireguard</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/openvpn">openvpn</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/cloud">cloud</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/self-hosted">self‑hosted</a></div><a href="https://une-tasse-de.cafe/blog/headscale-hybrid/"><img src="https://une-tasse-de.cafe/blog/headscale-hybrid/cover.png" alt="Headscale VPN hybride"></a></div></div><div class="post-content">Créer une infrastructure VPN hybride avec Headscale pour connecter des serveurs locaux et distants.</div></article><article class="post"><div class="post-header"><h2><a href="https://une-tasse-de.cafe/blog/awtrix3-ulanzi-home-assistant/">Awtrix Ulanzi + Domotique = ❤️</a></h2><div class="post-meta"><span>2024-05-12</span><span> by </span><span class="post-meta__author">Quentin JOLY</span><span> (updated: 2024-11-25)</span><div class="post-tags"><a class="post-tag" href="https://une-tasse-de.cafe/tags/domotique">domotique</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/home-assistant">home‑assistant</a></div><a href="https://une-tasse-de.cafe/blog/awtrix3-ulanzi-home-assistant/"><img src="https://une-tasse-de.cafe/blog/awtrix3-ulanzi-home-assistant/cover.png" alt="Awtrix"></a></div></div><div class="post-content">Review de l'Ulanzi TC001 avec le firmware Awtrix 3 et son intégration avec Home Assistant.</div></article><article class="post"><div class="post-header"><h2><a href="https://une-tasse-de.cafe/blog/falco/">Falco de A à Y</a></h2><div class="post-meta"><span>2024-04-24</span><span> by </span><span class="post-meta__author">Quentin JOLY</span><span> (updated: 2024-11-25)</span><div class="post-tags"><a class="post-tag" href="https://une-tasse-de.cafe/tags/kubernetes">kubernetes</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/securite">securite</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/falco">falco</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/detection-de-menaces">detection‑de‑menaces</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/audit">audit</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/monitoring">monitoring</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/systeme">systeme</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/falco">falco</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/ebpf">ebpf</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/sysdig">sysdig</a></div><a href="https://une-tasse-de.cafe/blog/falco/"><img src="https://une-tasse-de.cafe/blog/falco/cover.png" alt="couverture"></a></div></div><div class="post-content">Découvrez comment détecter les intrusions sur vos serveurs avec Falco, un moteur de détection de menaces. Nous verrons créer nos règles personnalisées, les déployer sur nos machines et les visualiser dans une interface web.</div></article><article class="post"><div class="post-header"><h2><a href="https://une-tasse-de.cafe/blog/yubikey/">Yubikey et GPG : sécuriser ses communications</a></h2><div class="post-meta"><span>2024-04-11</span><span> by </span><span class="post-meta__author">Quentin JOLY</span><span> (updated: 2024-11-25)</span><div class="post-tags"><a class="post-tag" href="https://une-tasse-de.cafe/tags/yubikey">yubikey</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/gpg">gpg</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/pgp">pgp</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/web-of-trust">web‑of‑trust</a></div><a href="https://une-tasse-de.cafe/blog/yubikey/"><img src="https://une-tasse-de.cafe/blog/yubikey/cover.png" alt="couverture"></a></div></div><div class="post-content">Découvrons ensemble comment utiliser le GPG pour sécuriser ses échanges (fichiers, mail, commits) et comment stocker ses clés sur une Yubikey pour plus de sécurité !</div></article><article class="post"><div class="post-header"><h2><a href="https://une-tasse-de.cafe/blog/argocd/">ArgoCD de A à Y</a></h2><div class="post-meta"><span>2024-03-27</span><span> by </span><span class="post-meta__author">Quentin JOLY</span><span> (updated: 2024-11-25)</span><div class="post-tags"><a class="post-tag" href="https://une-tasse-de.cafe/tags/argocd">argocd</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/gitops">gitops</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/kubernetes">kubernetes</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/devops">devops</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/ci-cd">ci‑cd</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/infrastructure-as-code">infrastructure‑as‑code</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/security">security</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/multi-cluster">multi‑cluster</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/argocd-image-updater">argocd‑image‑updater</a></div><a href="https://une-tasse-de.cafe/blog/argocd/"><img src="https://une-tasse-de.cafe/blog/argocd/cover.png" alt="couverture"></a></div></div><div class="post-content">Dans cet article, je vous donne une première définition de ce qu'est le GitOps et comment le mettre en place avec ArgoCD dans un environnement Kubernetes.</div></article><article class="post"><div class="post-header"><h2><a href="https://une-tasse-de.cafe/blog/talos/">Talos - Un OS immuable pour Kubernetes</a></h2><div class="post-meta"><span>2024-02-26</span><span> by </span><span class="post-meta__author">Quentin JOLY</span><span> (updated: 2024-11-25)</span><div class="post-tags"><a class="post-tag" href="https://une-tasse-de.cafe/tags/kubernetes">kubernetes</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/talos">talos</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/immutable">immutable</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/immuable">immuable</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/os">os</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/siderolabs">siderolabs</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/talosctl">talosctl</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/talhelper">talhelper</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/kubespan">kubespan</a><a class="post-tag" href="https://une-tasse-de.cafe/tags/cilium">cilium</a></div><a href="https://une-tasse-de.cafe/blog/talos/"><img src="https://une-tasse-de.cafe/blog/talos/cover.png" alt="Couverture"></a></div></div><div class="post-content">Talos est un système d'exploitation pour Kubernetes. Il est conçu pour être léger, sécurisé et facile à utiliser. Dans cet article, je vais vous présenter Talos et ses particularités.</div></article><div class="pagination"><span class="pagination__button pagination__button--next"><a href="https://une-tasse-de.cafe/page/2/">Articles plus anciens ></a></span></div></div><div class="sidebar"><aside class="bio"><div class="jr__item jr-basics__item"><div class="jr-basics__image"><img src="https://une-tasse-de.cafe/img/moi.jpg" alt="Picture of Quentin JOLY" width="250" height="250"></div><div class="jr-basics__name">Quentin JOLY</div><div class="jr-basics__label">Site Reliability Engineer</div><div class="jr-basics__email">quentinj@une-pause-cafe.fr</div><div class="jr-basics__summary">Quentin, passionné par l'informatique et les nouvelles technologies. Mon blog est un recueil de mes expériences et de mes découvertes.</div><div class="jr-basics__location-city">Bourg-en-Bresse</div><hr><div class="jr-basics__profile jr-basics__profile--col"><a href="https://vim.avec.une-tasse-de.cafe/" target="_blank" rel="noreferrer me"><div class="jr-basics__profile-item"><div class="jr-basics__profile-icon"><svg role="img" viewBox="0 0 24 24"><title>Vim</title><path d="M24 11.986h-.027l-4.318-4.318 4.303-4.414V1.461l-.649-.648h-8.198l-.66.605v1.045L12.015.027V0L12 .014 11.986.0v.027l-1.29 1.291-.538-.539H2.035l-.638.692v1.885l.616.616h.72v5.31L.027 11.987H0L.014 12 0 12.014h.027l2.706 2.706v6.467l.907.523h2.322l1.857-1.904 4.166 4.166V24l.015-.014.014.014v-.028l2.51-2.509h.485c.111.0.211-.07.25-.179l.146-.426c.028-.084.012-.172-.037-.239l1.462-1.462-.612 1.962c-.043.141.036.289.177.332.025.008.052.012.078.012h1.824c.106-.001.201-.064.243-.163l.165-.394c.025-.065.024-.138-.004-.203-.027-.065-.08-.116-.146-.142-.029-.012-.062-.019-.097-.02h-.075l.84-2.644h1.232l-1.016 3.221c-.043.141.036.289.176.332.025.008.052.012.079.012h2.002c.11.0.207-.066.248-.17l.164-.428c.051-.138-.021-.29-.158-.341-.029-.011-.06-.017-.091-.017h-.145l1.131-3.673c.027-.082.012-.173-.039-.24l-.375-.504-.003-.005c-.051-.064-.127-.102-.209-.102h-1.436c-.071.0-.141.03-.19.081l-.4.439h-.624l-.042-.046 4.445-4.445H24L23.986 12l.014-.014zM9.838 21.139l1.579-4.509h-.501l.297-.304h1.659l-1.563 4.555h.623l-.079.258H9.838zm3.695-7.516.15.151-.269.922-.225.226h-.969l-.181-.181.311-.871.288-.247h.895zM5.59 20.829H3.877l-.262-.15V3.091H2.379l-.1-.1V1.815l.143-.154h7.371l.213.214v1.108l-.142.173H8.785v8.688l8.807-8.688h-2.086l-.175-.188V1.805l.121-.111h7.49l.132.133v1.07L12.979 13.25h-.373c-.015-.001-.028.0-.042.001l-.02.003c-.045.01-.086.03-.119.06l-.343.295-.004.003c-.033.031-.059.069-.073.111l-.296.83-6.119 6.276zm14.768-3.952.474-.519h1.334l.309.415-1.265 4.107h.493l-.08.209H19.84l1.124-3.564h-2.015l-1.077 3.391h.424l-.073.174h-1.605l1.107-3.548h-2.096l-1.062 3.339h.436l-.072.209H13.27l1.514-4.46H14.198l.091-.271h1.65l.519.537h.906l.491-.554h1.061l.489.535h.953z"></path></svg></div><div class="jr-basics__profile-username">Vim avec une tasse de café</div></div></a><a href="https://git.avec.une-tasse-de.cafe" target="_blank" rel="noreferrer me"><div class="jr-basics__profile-item"><div class="jr-basics__profile-icon"><svg role="img" viewBox="0 0 24 24"><title>Git</title><path d="M23.546 10.93 13.067.452c-.604-.603-1.582-.603-2.188.0L8.708 2.627l2.76 2.76c.645-.215 1.379-.07 1.889.441.516.515.658 1.258.438 1.9l2.658 2.66c.645-.223 1.387-.078 1.9.435.721.72.721 1.884.0 2.604-.719.719-1.881.719-2.6.0-.539-.541-.674-1.337-.404-1.996L12.86 8.955v6.525c.176.086.342.203.488.348.713.721.713 1.883.0 2.6-.719.721-1.889.721-2.609.0-.719-.719-.719-1.879.0-2.598.182-.18.387-.316.605-.406V8.835c-.217-.091-.424-.222-.6-.401-.545-.545-.676-1.342-.396-2.009L7.636 3.7.45 10.881c-.6.605-.6 1.584.0 2.189l10.48 10.477c.604.604 1.582.604 2.186.0l10.43-10.43c.605-.603.605-1.582.0-2.187"></path></svg></div><div class="jr-basics__profile-username">Git avec une tasse de café</div></div></a><a href="https://github.com/qjoly.gpg" target="_blank" rel="noreferrer me"><div class="jr-basics__profile-item"><div class="jr-basics__profile-icon"><svg role="img" viewBox="0 0 24 24"><title>GNU social</title><path d="M4.217.0C2.474.0 1.06 1.413 1.06 3.156V15.77c0 1.744 1.414 3.158 3.157 3.158h9.367C13.567 22.498 8.756 24 8.756 24s8.138-.038 9.305-5.072h1.72c1.744.0 3.157-1.414 3.157-3.157V3.157C22.938 1.413 21.524.0 19.782.0H4.218zm4.527 2.53c.073-.013.132-.003.174.034.335.3-.556.593-.484 2.063.032.646-.16 1.146 1.076 1.146.826.0.483-.734 1.523-.734.656.0.86.435.934.767.072-.33.274-.768.93-.768 1.04.0.7.733 1.525.733 1.237.0 1.044-.5 1.076-1.146.072-1.47-.82-1.764-.484-2.063.042-.037.1-.042.172-.02.5.143 1.607 1.558 1.638 2.155.038.71.04 1.825-1.015 2.407 1.19 1.167 1.352 2.72 1.352 2.72l-2.045-.034s-.464-2.118-2.94-2.01c-2.474.108-2.796.538-2.796 3.156.0 2.617 1.147 3.517 2.905 3.585 2.76.108 2.51-1.433 2.51-1.433l-1.29.072-.718-1.937h4.41c0 2.116-.897 5.414-5.092 5.2-4.196-.216-5.128-3.515-5.164-5.74-.018-1.225.188-2.602 1.2-3.574-1.052-.58-1.033-1.7-1.033-2.414.0-.88 1.13-2.084 1.637-2.17z"></path></svg></div><div class="jr-basics__profile-username">GPG</div></div></a><a href="https://une-tasse-de.cafe/break/" target="_blank" rel="noreferrer me"><div class="jr-basics__profile-item"><div class="jr-basics__profile-icon"><svg role="img" viewBox="0 0 24 24"><title>Buy Me A Coffee</title><path d="M20.216 6.415l-.132-.666c-.119-.598-.388-1.163-1.001-1.379-.197-.069-.42-.098-.57-.241-.152-.143-.196-.366-.231-.572-.065-.378-.125-.756-.192-1.133-.057-.325-.102-.69-.25-.987-.195-.4-.597-.634-.996-.788a5.723 5.723.0 00-.626-.194c-1-.263-2.05-.36-3.077-.416a25.834 25.834.0 00-3.7.062c-.915.083-1.88.184-2.75.5-.318.116-.646.256-.888.501-.297.302-.393.77-.177 1.146.154.267.415.456.692.58.36.162.737.284 1.123.366 1.075.238 2.189.331 3.287.37 1.218.05 2.437.01 3.65-.118.299-.033.598-.073.896-.119.352-.054.578-.513.474-.834-.124-.383-.457-.531-.834-.473-.466.074-.96.108-1.382.146-1.177.08-2.358.082-3.536.006a22.228 22.228.0 01-1.157-.107c-.086-.01-.18-.025-.258-.036-.243-.036-.484-.08-.724-.13-.111-.027-.111-.185.0-.212h.005c.277-.06.557-.108.838-.147h.002c.131-.009.263-.032.394-.048a25.076 25.076.0 013.426-.12c.674.019 1.347.067 2.017.144l.228.031c.267.04.533.088.798.145.392.085.895.113 1.07.542.055.137.08.288.111.431l.319 1.484a.237.237.0 01-.199.284h-.003c-.037.006-.075.01-.112.015a36.704 36.704.0 01-4.743.295 37.059 37.059.0 01-4.699-.304c-.14-.017-.293-.042-.417-.06-.326-.048-.649-.108-.973-.161-.393-.065-.768-.032-1.123.161-.29.16-.527.404-.675.701-.154.316-.199.66-.267 1-.069.34-.176.707-.135 1.056.087.753.613 1.365 1.37 1.502a39.69 39.69.0 0011.343.376.483.483.0 01.535.53l-.071.697-1.018 9.907c-.041.41-.047.832-.125 1.237-.122.637-.553 1.028-1.182 1.171-.577.131-1.165.2-1.756.205-.656.004-1.31-.025-1.966-.022-.699.004-1.556-.06-2.095-.58-.475-.458-.54-1.174-.605-1.793l-.731-7.013-.322-3.094c-.037-.351-.286-.695-.678-.678-.336.015-.718.3-.678.679l.228 2.185.949 9.112c.147 1.344 1.174 2.068 2.446 2.272.742.12 1.503.144 2.257.156.966.016 1.942.053 2.892-.122 1.408-.258 2.465-1.198 2.616-2.657.34-3.332.683-6.663 1.024-9.995l.215-2.087a.484.484.0 01.39-.426c.402-.078.787-.212 1.074-.518.455-.488.546-1.124.385-1.766zm-1.478.772c-.145.137-.363.201-.578.233-2.416.359-4.866.54-7.308.46-1.748-.06-3.477-.254-5.207-.498-.17-.024-.353-.055-.47-.18-.22-.236-.111-.71-.054-.995.052-.26.152-.609.463-.646.484-.057 1.046.148 1.526.22.577.088 1.156.159 1.737.212 2.48.226 5.002.19 7.472-.14.45-.06.899-.13 1.345-.21.399-.072.84-.206 1.08.206.166.281.188.657.162.974a.544.544.0 01-.169.364zm-6.159 3.9c-.862.37-1.84.788-3.109.788a5.884 5.884.0 01-1.569-.217l.877 9.004c.065.78.717 1.38 1.5 1.38.0.0 1.243.065 1.658.065.447.0 1.786-.065 1.786-.065.783.0 1.434-.6 1.499-1.38l.94-9.95a3.996 3.996.0 00-1.322-.238c-.826.0-1.491.284-2.26.613z"></path></svg></div><div class="jr-basics__profile-username">Expressos</div></div></a></div><hr><div class="jr-basics__profile jr-basics__profile--row"><a href="https://github.com/qjoly/" target="_blank" rel="noreferrer me"><div class="jr-basics__profile-item"><div class="jr-basics__profile-icon"><svg role="img" viewBox="0 0 24 24"><title>GitHub</title><path d="M12 .297c-6.63.0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577.0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93.0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176.0.0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22.0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22.0 1.606-.015 2.896-.015 3.286.0.315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path></svg></div></div></a><a href="https://twitter.com/TheBidouilleur" target="_blank" rel="noreferrer me"><div class="jr-basics__profile-item"><div class="jr-basics__profile-icon"><svg role="img" viewBox="0 0 24 24"><title>Twitter</title><path d="M21.543 7.104c.015.211.015.423.015.636.0 6.507-4.954 14.01-14.01 14.01v-.003A13.94 13.94.0 010 19.539a9.88 9.88.0 007.287-2.041 4.93 4.93.0 01-4.6-3.42 4.916 4.916.0 002.223-.084A4.926 4.926.0 01.96 9.167v-.062a4.887 4.887.0 002.235.616A4.928 4.928.0 011.67 3.148 13.98 13.98.0 0011.82 8.292a4.929 4.929.0 018.39-4.49 9.868 9.868.0 003.128-1.196A4.941 4.941.0 0121.173 5.33 9.828 9.828.0 0024 4.555a10.019 10.019.0 01-2.457 2.549z"></path></svg></div></div></a><a href="https://une-tasse-de.cafe/index.xml" target="_blank" rel="noreferrer me"><div class="jr-basics__profile-item"><div class="jr-basics__profile-icon"><svg role="img" viewBox="0 0 24 24"><title>RSS</title><path d="M19.199 24C19.199 13.467 10.533 4.8.0 4.8V0c13.165.0 24 10.835 24 24h-4.801zM3.291 17.415c1.814.0 3.293 1.479 3.293 3.295.0 1.813-1.485 3.29-3.301 3.29C1.47 24 0 22.526.0 20.71s1.475-3.294 3.291-3.295zM15.909 24h-4.665c0-6.169-5.075-11.245-11.244-11.245V8.09c8.727.0 15.909 7.184 15.909 15.91z"></path></svg></div></div></a><a href="https://www.linkedin.com/in/quentin-joly-it/" target="_blank" rel="noreferrer me"><div class="jr-basics__profile-item"><div class="jr-basics__profile-icon"><svg role="img" viewBox="0 0 24 24"><title>LinkedIn</title><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853.0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601.0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144.0-2.063-.926-2.063-2.065.0-1.138.92-2.063 2.063-2.063 1.14.0 2.064.925 2.064 2.063.0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225.0H1.771C.792.0.0.774.0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2.0 22.222.0h.003z"></path></svg></div></div></a></div></div></aside></div></main><footer><div class="copyright">Copyright © 2024</div></footer><script></script><script></script></div><!-- Cloudflare Pages Analytics --><script defer="" data-cf-beacon="{"token": "ea9fd9de86c044f29c496515d3c26d65"}"></script><!-- Cloudflare Pages Analytics --></body></html>
|