Files
nexus/sreweekly/articles/44/04-cron-weekly-newsletter.html
2026-09-12 17:23:01 +08:00

177 lines
66 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html><html lang=en><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>The cron.weekly newsletter · ma.ttias.be</title><script>(function(){var e=localStorage.getItem("theme")||"system",t=e==="dark"||e==="system"&&window.matchMedia("(prefers-color-scheme: dark)").matches;t&&document.documentElement.classList.add("dark"),document.documentElement.setAttribute("data-theme",e)})()</script><meta name=robots content="index, follow"><link rel=canonical href=https://ma.ttias.be/cronweekly/><meta name=author content="Mattias Geniar"><meta name=description content="cron.weekly is a newsletter about Linux, open source & web development."><meta prefix="og: http://ogp.me/ns#" property="og:title" content="The cron.weekly newsletter"><meta prefix="og: http://ogp.me/ns#" property="og:description" content="cron.weekly is a newsletter about Linux, open source & web development."><meta prefix="og: http://ogp.me/ns#" property="og:type" content="website"><meta prefix="og: http://ogp.me/ns#" property="og:url" content="https://ma.ttias.be/cronweekly/"><meta prefix="og: http://ogp.me/ns#" property="og:image" content="https://ma.ttias.be//cronweekly/cronweekly_social_media_image.png"><meta property="og:updated_time" content="2020-11-22T06:50:00+01:00"><meta name=twitter:card content="summary_large_image"><meta name=twitter:site content="@mattiasgeniar"><meta name=twitter:title content="The cron.weekly newsletter"><meta name=twitter:description content="cron.weekly is a newsletter about Linux, open source & web development."><meta name=twitter:image content="https://ma.ttias.be//cronweekly/cronweekly_social_media_image.png"><link rel=stylesheet href=/css/styles.min.291f03bdeea38e43d285450f89f7f16965cae537c2a31110d61c62b928a4943c.css integrity="sha256-KR8Dve6jjkPShUUPiffxaWXK5TfCoxEQ1hxiuSiklDw="><script type=application/ld+json>{"@context":"https://schema.org","@graph":[{"@id":"https://ma.ttias.be/#person","@type":"Person","image":{"@id":"https://ma.ttias.be/#primaryimage","@type":"ImageObject","height":400,"url":"https://ma.ttias.be/authors/mattias-geniar-large.jpg","width":400},"jobTitle":"Co-founder of Oh Dear","knowsAbout":["Linux","PHP","DevOps","Web performance","Website monitoring","Open source"],"name":"Mattias Geniar","sameAs":["https://github.com/mattiasgeniar","https://x.com/mattiasgeniar","https://www.linkedin.com/in/mattiasgeniar/","https://mastodon.social/@mattiasgeniar","https://ohdear.app/about"],"url":"https://ma.ttias.be","worksFor":{"@id":"https://ohdear.app/#organization","@type":"Organization","name":"Oh Dear","url":"https://ohdear.app"}},{"@id":"https://ma.ttias.be/#website","@type":"WebSite","author":{"@id":"https://ma.ttias.be/#person"},"description":"Mattias Geniar, building Oh Dear, writing about Linux, PHP, DevOps and the open web.","inLanguage":"en-US","name":"ma.ttias.be","publisher":{"@id":"https://ma.ttias.be/#person"},"url":"https://ma.ttias.be/"},{"@id":"https://ma.ttias.be/cronweekly/#webpage","@type":"CollectionPage","dateModified":"2020-11-22T06:50:00+01:00","description":"cron.weekly is a newsletter about Linux, open source \u0026amp; web development.","inLanguage":"en-US","isPartOf":{"@id":"https://ma.ttias.be/#website"},"name":"The cron.weekly newsletter","url":"https://ma.ttias.be/cronweekly/"}]}</script><link rel=alternate type=application/rss+xml href=https://ma.ttias.be/cronweekly/index.xml title=ma.ttias.be><meta name=generator content="Hugo 0.162.1"></head><body class="bg-white font-sans leading-normal tracking-normal text-lg"><nav id=header class="fixed w-full z-10 top-0 bg-white"><div class=nav-border-line></div><div class="nav-container flex flex-wrap items-center justify-between mt-0 py-3"><div><a class="text-gray-900 text-base no-underline hover:no-underline font-extrabold text-xl" href=/>Mattias Geniar</a></div><div class="block lg:hidden pr-4"><button id=nav-toggle class="flex items-center px-3 py-2 border rounded text-gray-500 border-gray-600 hover:text-gray-900 hover:border-teal-500 appearance-none focus:outline-none">
<svg class="fill-current h-3 w-3" viewBox="0 0 20 20"><title>Menu</title><path d="M0 3h20v2H0V3zm0 6h20v2H0V9zm0 6h20v2H0v-2z"/></svg></button></div><div class="w-full flex-grow lg:flex lg:items-center lg:w-auto hidden lg:block mt-2 lg:mt-0 bg-gray-100 md:bg-transparent z-20" id=nav-content><ul class="list-reset lg:flex justify-end flex-1 items-center"><li class=mr-2><a href=/blog/ class="inline-block text-gray-600 no-underline hover:text-gray-900 hover:text-underline py-2 px-4"><span>Blog</span></a></li><li class=mr-2><a href=/projects/ class="inline-block text-gray-600 no-underline hover:text-gray-900 hover:text-underline py-2 px-4"><span>Projects</span></a></li><li class=mr-2><a href=/talks/ class="inline-block text-gray-600 no-underline hover:text-gray-900 hover:text-underline py-2 px-4"><span>Talks</span></a></li><li class=mr-2><a href=/contact/ class="inline-block text-gray-600 no-underline hover:text-gray-900 hover:text-underline py-2 px-4"><span>Contact</span></a></li><li class=relative><div id=theme-toggle class=theme-toggle><button type=button id=theme-toggle-btn class=theme-toggle-btn aria-label="Toggle theme" aria-expanded=false aria-haspopup=menu>
<span class=theme-icon-wrapper><svg class="theme-icon theme-icon-sun" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364-.707-.707M6.343 6.343l-.707-.707m12.728.0-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"/></svg>
<svg class="theme-icon theme-icon-moon" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003.0 0012 21a9.003 9.003.0 008.354-5.646z"/></svg>
<svg class="theme-icon theme-icon-system" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M9.75 17 9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5A2 2 0 003 5v10a2 2 0 002 2z"/></svg></span></button><div id=theme-dropdown class="theme-dropdown hidden" role=menu aria-label="Theme selection"><button type=button class=theme-option data-theme=light role=menuitem>
<svg class="theme-option-icon" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364-.707-.707M6.343 6.343l-.707-.707m12.728.0-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"/></svg>
<span>Light</span>
</button>
<button type=button class=theme-option data-theme=dark role=menuitem>
<svg class="theme-option-icon" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003.0 0012 21a9.003 9.003.0 008.354-5.646z"/></svg>
<span>Dark</span>
</button>
<button type=button class=theme-option data-theme=system role=menuitem>
<svg class="theme-option-icon" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M9.75 17 9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5A2 2 0 003 5v10a2 2 0 002 2z"/></svg>
<span>System</span></button></div></div></li></ul></div></div></nav><main id=content><div class="w-screen max-w-full pt-28 blog-hero" id=blog-hero><div class=page-container><div class="homepage-intro pb-2"><h1 class="text-4xl md:text-5xl leading-tight mt-4 p-name">The cron.weekly newsletter
<a href=/cronweekly/index.xml class="rss-icon text-gray-900 hidden md:inline-block" aria-label="RSS feed" title="Subscribe to RSS feed"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="rss" role="img" viewBox="0 0 448 512"><path d="M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328.0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765.0 183.105.0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686.0 38.981.0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z"/></svg></a></h1><p class="pt-4 mb-8">cron.weekly was a newsletter about Linux, open source & webdevelopment that ran from 2016 to 2020. The newsletter is now discontinued, but you can still browse the archives below.</p></div></div><div id=twinkle-container></div><script>(function(){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;const s=80,v=40,g=60,w=g/2,o="http://www.w3.org/2000/svg";let M=0;const S=350,k=200,E=250,C=750,d=500,F=1e4,T=.85,z="#d4a600",f=document.getElementById("blog-hero"),i=document.getElementById("twinkle-container");if(!f||!i)return;f.style.position="relative",i.style.cssText="position:absolute;inset:0;pointer-events:none;overflow:hidden;";let a=!0,n=null;var y,t={current:null,previous:null},e={current:null,previous:null},h=Date.now();function _(){const n=f.getBoundingClientRect(),e=[],t=new Map;for(let o=v;o<n.width-v;o+=s)for(let i=v;i<n.height;i+=s)if(i>80){const n=o+","+i,s={x:o,y:i,key:n,neighbors:[]};e.push(s),t.set(n,s)}const o=[{dx:s,dy:0,dir:"right"},{dx:-s,dy:0,dir:"left"},{dx:0,dy:s,dir:"down"},{dx:0,dy:-s,dir:"up"}];return e.forEach(function(e){o.forEach(function(n){var s=t.get(e.x+n.dx+","+(e.y+n.dy));s&&e.neighbors.push({pos:s,dir:n.dir})})}),{positions:e,posMap:t}}function u(e,t,n){n=n||"white";var s,i,a,r,c,l,u,h,d=document.createElement("div");return d.style.cssText="position:absolute;left:"+(e-w)+"px;top:"+(t-w)+"px;width:"+g+"px;height:"+g+"px;opacity:0;pointer-events:none;transform-origin:center;",l=M++,s=document.createElementNS(o,"svg"),s.setAttribute("width","60"),s.setAttribute("height","60"),s.setAttribute("viewBox","0 0 60 60"),s.style.overflow="visible",u=document.createElementNS(o,"defs"),i=document.createElementNS(o,"linearGradient"),i.id="ch"+l,i.setAttribute("gradientUnits","userSpaceOnUse"),i.setAttribute("x1","4"),i.setAttribute("y1","30"),i.setAttribute("x2","56"),i.setAttribute("y2","30"),a=document.createElementNS(o,"linearGradient"),a.id="cv"+l,a.setAttribute("gradientUnits","userSpaceOnUse"),a.setAttribute("x1","30"),a.setAttribute("y1","4"),a.setAttribute("x2","30"),a.setAttribute("y2","56"),h=[{offset:"0%",opacity:0},{offset:"15%",opacity:.3},{offset:"35%",opacity:.8},{offset:"50%",opacity:1},{offset:"65%",opacity:.8},{offset:"85%",opacity:.3},{offset:"100%",opacity:0}],[i,a].forEach(function(e){h.forEach(function(t){var s=document.createElementNS(o,"stop");s.setAttribute("offset",t.offset),s.setAttribute("stop-color",n),s.setAttribute("stop-opacity",t.opacity),e.appendChild(s)}),u.appendChild(e)}),s.appendChild(u),r=document.createElementNS(o,"line"),r.setAttribute("x1","4"),r.setAttribute("y1","30"),r.setAttribute("x2","56"),r.setAttribute("y2","30"),r.setAttribute("stroke","url(#ch"+l+")"),r.setAttribute("stroke-width","1.25"),c=document.createElementNS(o,"line"),c.setAttribute("x1","30"),c.setAttribute("y1","4"),c.setAttribute("x2","30"),c.setAttribute("y2","56"),c.setAttribute("stroke","url(#cv"+l+")"),c.setAttribute("stroke-width","1.25"),s.appendChild(r),s.appendChild(c),d.appendChild(s),d._gradients=[i,a],d}function A(e){var t=document.createElement("div"),n=e?"6px 3px":"3px 6px";return t.style.cssText="position:absolute;width:6px;height:6px;pointer-events:none;transform:translate(-50%,-50%);background:radial-gradient(ellipse "+n+" at center,rgba(255,255,255,1) 0%,rgba(255,255,255,0.8) 30%,rgba(255,255,255,0.3) 60%,rgba(255,255,255,0) 100%);filter:drop-shadow(0 0 2px rgba(255,255,255,0.9));",t}function b(e){var t=e.animate([{opacity:0,transform:"scale(0.6)",filter:"drop-shadow(0 0 0px rgba(255,255,255,0))"},{opacity:1,transform:"scale(1.2)",filter:"drop-shadow(0 0 10px rgba(255,255,255,0.9))"}],{duration:S,easing:"ease-out",fill:"forwards"});return t.finished||new Promise(function(e){t.onfinish=e})}function x(e){var t,s,i=e._gradients,a=30,l=d/a;function r(e){if(e<.3){var t=e/.3;return n([255,255,255],[212,166,0],t)}return e<.7?[212,166,0]:(t=(e-.7)/.3,n([212,166,0],[255,255,255],t))}function n(e,t,n){return[Math.round(e[0]+(t[0]-e[0])*n),Math.round(e[1]+(t[1]-e[1])*n),Math.round(e[2]+(t[2]-e[2])*n)]}function c(e){return"#"+e.map(function(e){var t=e.toString(16);return t.length===1?"0"+t:t}).join("")}s=performance.now();function o(){var t=performance.now()-s,e=Math.min(t/d,1),n=c(r(e));i.forEach(function(e){var t=e.querySelectorAll("stop");t.forEach(function(e){e.setAttribute("stop-color",n)})}),e<1&&requestAnimationFrame(o)}return requestAnimationFrame(o),t=e.animate([{opacity:0,transform:"scale(0.6)",filter:"drop-shadow(0 0 0px rgba(212,166,0,0))"},{opacity:1,transform:"scale(1.5)",filter:"drop-shadow(0 0 15px rgba(212,166,0,1))"}],{duration:d,easing:"ease-out",fill:"forwards"}),t.finished||new Promise(function(e){t.onfinish=e})}function j(){return new Promise(function(e){setTimeout(e,k)})}function l(e){var t=e.animate([{opacity:1,transform:"scale(1.2)",filter:"drop-shadow(0 0 10px rgba(255,255,255,0.9))"},{opacity:0,transform:"scale(0.4)",filter:"drop-shadow(0 0 0px rgba(255,255,255,0))"}],{duration:E,easing:"ease-in",fill:"forwards"});return t.finished||new Promise(function(e){t.onfinish=e})}function c(e,t,n,s,o){var r,c,l,d,u=o==="left"||o==="right",a=A(u);return a.style.left=e+"px",a.style.top=t+"px",a.style.opacity="0",i.appendChild(a),c=e+(n-e)*.3,l=t+(s-t)*.3,r=a.animate([{left:e+"px",top:t+"px",opacity:0},{left:c+"px",top:l+"px",opacity:1,offset:.3},{left:n+"px",top:s+"px",opacity:1}],{duration:C,easing:"linear"}),d=r.finished||new Promise(function(e){r.onfinish=e}),d.then(function(){a.remove()})}function O(e,t){return Math.abs(e.x-t.x)+Math.abs(e.y-t.y)}function m(e,t){return(Math.abs(e.x-t.x)+Math.abs(e.y-t.y))/s}function r(e,t,n,s){var o=e.neighbors.filter(function(e){return!t||e.pos.key!==t.key});return o.length===0&&(o=e.neighbors),o.length===0?null:s&&n&&Math.random()<T?(o.sort(function(e,t){return O(e.pos,n)-O(t.pos,n)}),o[0]):o[Math.floor(Math.random()*o.length)]}async function p(){if(n=_(),n.positions.length<2)return;t.current=n.positions[Math.floor(Math.random()*n.positions.length)];do e.current=n.positions[Math.floor(Math.random()*n.positions.length)];while(e.current.key===t.current.key||m(t.current,e.current)%2!==0)for(t.previous=null,e.previous=null,h=Date.now();a;){var s,o,d,f,p,g,v,y,w=t.current.key===e.current.key;if(w){if(h=Date.now(),d=u(t.current.x,t.current.y),i.appendChild(d),await x(d),await j(),s=r(t.current,t.previous,null,!1),o=r(e.current,e.previous,null,!1),s&&o&&s.pos.key===o.pos.key&&(g=e.current.neighbors.filter(function(t){return t.pos.key!==s.pos.key&&(!e.previous||t.pos.key!==e.previous.key)}),g.length>0&&(o=g[Math.floor(Math.random()*g.length)])),!s||!o){d.remove(),t.current=n.positions[Math.floor(Math.random()*n.positions.length)];do e.current=n.positions[Math.floor(Math.random()*n.positions.length)];while(e.current.key===t.current.key||m(t.current,e.current)%2!==0)t.previous=null,e.previous=null;continue}await Promise.all([l(d).then(function(){d.remove()}),c(t.current.x,t.current.y,s.pos.x,s.pos.y,s.dir),c(e.current.x,e.current.y,o.pos.x,o.pos.y,o.dir)]),t.previous=t.current,t.current=s.pos,e.previous=e.current,e.current=o.pos}else{if(f=u(t.current.x,t.current.y),p=u(e.current.x,e.current.y),i.appendChild(f),i.appendChild(p),await Promise.all([b(f),b(p)]),await j(),y=Date.now()-h,v=y>F,s=r(t.current,t.previous,e.current,v),o=r(e.current,e.previous,t.current,v),!s||!o){f.remove(),p.remove(),t.current=n.positions[Math.floor(Math.random()*n.positions.length)];do e.current=n.positions[Math.floor(Math.random()*n.positions.length)];while(e.current.key===t.current.key||m(t.current,e.current)%2!==0)t.previous=null,e.previous=null;continue}await Promise.all([l(f).then(function(){f.remove()}),l(p).then(function(){p.remove()}),c(t.current.x,t.current.y,s.pos.x,s.pos.y,s.dir),c(e.current.x,e.current.y,o.pos.x,o.pos.y,o.dir)]),t.previous=t.current,t.current=s.pos,e.previous=e.current,e.current=o.pos}}}document.addEventListener("visibilitychange",function(){document.visibilityState==="visible"?a||(a=!0,p()):a=!1}),window.addEventListener("resize",function(){clearTimeout(y),y=setTimeout(function(){n=_()},250)}),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",p):p()})()</script></div><div class="page-container mt-4"><div class="text-xl text-gray-800 leading-normal content page-list-content"><h2>The cron.weekly archives</h2><p>These are all 157 issues that were sent as part of the <em>cron.weekly</em> newsletter between 2016 and 2020.</p><div class=mb-8><h3>2020-11</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-11-22
</span><a href=https://ma.ttias.be/cronweekly/issue-157/ class=truncate>cron.weekly issue #157: Browsers, tailwind, podman, zfs & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-11-15
</span><a href=https://ma.ttias.be/cronweekly/issue-156/ class=truncate>cron.weekly issue #156: gping, dog, influxdb, kraken & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-11-01
</span><a href=https://ma.ttias.be/cronweekly/issue-155/ class=truncate>cron.weekly issue #155: Fedora, pandoc, youtube-dl, vdx & more</a></div></li></ul></div><div class=mb-8><h3>2020-10</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-10-25
</span><a href=https://ma.ttias.be/cronweekly/issue-154/ class=truncate>cron.weekly issue #154: Ubuntu, HTTP/3, bat, git & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-10-18
</span><a href=https://ma.ttias.be/cronweekly/issue-153/ class=truncate>cron.weekly issue #153: Kernel 5.9, Julia, NPM, Waypoint & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-10-11
</span><a href=https://ma.ttias.be/cronweekly/issue-152/ class=truncate>cron.weekly issue #152: HTTP/3, eBPF, MySQL & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-10-04
</span><a href=https://ma.ttias.be/cronweekly/issue-151/ class=truncate>cron.weekly issue #151: HTTPS, derek, ali, grep & more</a></div></li></ul></div><div class=mb-8><h3>2020-09</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-09-27
</span><a href=https://ma.ttias.be/cronweekly/issue-150/ class=truncate>cron.weekly issue #150: PostgreSQL, SSH, Calibre, duf & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-09-20
</span><a href=https://ma.ttias.be/cronweekly/issue-149/ class=truncate>cron.weekly issue #149: Arm, Epoch, endlessh, kb & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-09-13
</span><a href=https://ma.ttias.be/cronweekly/issue-148/ class=truncate>cron.weekly issue #148: Caddy, Chef, TLS, grep & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-09-06
</span><a href=https://ma.ttias.be/cronweekly/issue-147/ class=truncate>cron.weekly issue #147: Bottlerocket, webify, Redis, htop, daemons & more</a></div></li></ul></div><div class=mb-8><h3>2020-08</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-08-23
</span><a href=https://ma.ttias.be/cronweekly/issue-146/ class=truncate>cron.weekly issue #146: DNS, tunshell, i2p, umami & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-08-16
</span><a href=https://ma.ttias.be/cronweekly/issue-145/ class=truncate>cron.weekly issue #145: crush, openage, cortex, bash & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-08-09
</span><a href=https://ma.ttias.be/cronweekly/issue-144/ class=truncate>cron.weekly issue #144: wiki, glab, postgresql, nfs & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-08-02
</span><a href=https://ma.ttias.be/cronweekly/issue-143/ class=truncate>cron.weekly issue #143: gitify, nano, cfgdiff, Envoy, SQL & more</a></div></li></ul></div><div class=mb-8><h3>2020-07</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-07-12
</span><a href=https://ma.ttias.be/cronweekly/issue-142/ class=truncate>cron.weekly issue #142: PHP, SSL, Debian, ip2unix, Ansible & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-07-05
</span><a href=https://ma.ttias.be/cronweekly/issue-141/ class=truncate>cron.weekly issue #141: Zettlr, Redis, gg, pipes, sysctl & more</a></div></li></ul></div><div class=mb-8><h3>2020-06</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-06-28
</span><a href=https://ma.ttias.be/cronweekly/issue-140/ class=truncate>cron.weekly issue #140: WWDC, ARM, TLS, ProcDump, Nginx & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-06-21
</span><a href=https://ma.ttias.be/cronweekly/issue-139/ class=truncate>cron.weekly issue #139: VPN, Guix, expose, lynis, tor & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-06-14
</span><a href=https://ma.ttias.be/cronweekly/issue-138/ class=truncate>cron.weekly issue #138: PHP, Nginx, Rust, ARM, choose & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-06-07
</span><a href=https://ma.ttias.be/cronweekly/issue-137/ class=truncate>cron.weekly issue #137: Kernel 5.7, TrueNAS, LibreSSL, Drupal & more</a></div></li></ul></div><div class=mb-8><h3>2020-05</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-05-31
</span><a href=https://ma.ttias.be/cronweekly/issue-136/ class=truncate>cron.weekly issue #136: SSL, Security, Pest, Prometheus, Zsh & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-05-24
</span><a href=https://ma.ttias.be/cronweekly/issue-135/ class=truncate>cron.weekly issue #135: Grafana, WebSockets, DNS, map, nix & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-05-17
</span><a href=https://ma.ttias.be/cronweekly/issue-134/ class=truncate>cron.weekly issue #134: Deno, Zabbix, semgrep, Prometheus & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-05-10
</span><a href=https://ma.ttias.be/cronweekly/issue-133/ class=truncate>cron.weekly issue #133: faketime, SaltStack, Caddy, GCC & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-05-03
</span><a href=https://ma.ttias.be/cronweekly/issue-132/ class=truncate>cron.weekly issue #132: .ORG, Fedora, Telefork, SSH, WireGuard & more</a></div></li></ul></div><div class=mb-8><h3>2020-04</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-04-26
</span><a href=https://ma.ttias.be/cronweekly/issue-131/ class=truncate>cron.weekly issue #131: Ubuntu 20.04, Moloch, eBPF, xsv, desed & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-04-19
</span><a href=https://ma.ttias.be/cronweekly/issue-130/ class=truncate>cron.weekly issue #130: Github, keycloak, proc, redis6, cron & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-04-12
</span><a href=https://ma.ttias.be/cronweekly/issue-129/ class=truncate>cron.weekly issue #129: http3, brim, pagure, mosh, git & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-04-05
</span><a href=https://ma.ttias.be/cronweekly/issue-128/ class=truncate>cron.weekly issue #128: kernel 5.6, wireguard, gcc, gitlab, sidekick & more</a></div></li></ul></div><div class=mb-8><h3>2020-03</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-03-29
</span><a href=https://ma.ttias.be/cronweekly/issue-127/ class=truncate>cron.weekly issue #127: darling, panther, bashible, pgsync & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-03-22
</span><a href=https://ma.ttias.be/cronweekly/issue-126/ class=truncate>cron.weekly issue #126: Firefox, Ansible, iSH, jitsi, IMAP & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-03-15
</span><a href=https://ma.ttias.be/cronweekly/issue-125/ class=truncate>cron.weekly issue #125: Kernel, Intel, Netscanner, Memcached, APT & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-03-08
</span><a href=https://ma.ttias.be/cronweekly/issue-124/ class=truncate>cron.weekly issue #124: SSL, URLs, Tomcat, monitoror, prunef & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-03-01
</span><a href=https://ma.ttias.be/cronweekly/issue-123/ class=truncate>cron.weekly issue #123: eBPF, Licensing, CentOS, usql, CouchDB & more</a></div></li></ul></div><div class=mb-8><h3>2020-02</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-02-23
</span><a href=https://ma.ttias.be/cronweekly/issue-122/ class=truncate>cron.weekly issue #122: OpenSSL, NetBSD, MTU, Markdeep & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-02-16
</span><a href=https://ma.ttias.be/cronweekly/issue-121/ class=truncate>cron.weekly issue #121: yarn, DNS, TLS, JC, Bash, find & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-02-09
</span><a href=https://ma.ttias.be/cronweekly/issue-120/ class=truncate>cron.weekly issue #120: sudo, CoreOS, uq, Ubuntu & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-02-02
</span><a href=https://ma.ttias.be/cronweekly/issue-119/ class=truncate>cron.weekly issue #119: dino, search engines, btrfs, Alpine, json & more</a></div></li></ul></div><div class=mb-8><h3>2020-01</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-01-26
</span><a href=https://ma.ttias.be/cronweekly/issue-118/ class=truncate>cron.weekly issue #118: goals, PHP, Go, Awk, CoreOS & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-01-19
</span><a href=https://ma.ttias.be/cronweekly/issue-117/ class=truncate>cron.weekly issue #117: TCP, Dtail, Parsr, Pssh, Bash & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2020-01-12
</span><a href=https://ma.ttias.be/cronweekly/issue-116/ class=truncate>cron.weekly issue #116: ZFS, SHA-1, Zstandard, broot, glow & more</a></div></li></ul></div><div class=mb-8><h3>2019-12</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2019-12-22
</span><a href=https://ma.ttias.be/cronweekly/issue-115/ class=truncate>cron.weekly issue #115: Nginx, Kernel, IPv6, Unicode, vim, falco & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2019-12-15
</span><a href=https://ma.ttias.be/cronweekly/issue-114/ class=truncate>cron.weekly issue #114: Debian, WireGuard, mkcert, make, htop, SSH & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2019-12-08
</span><a href=https://ma.ttias.be/cronweekly/issue-113/ class=truncate>cron.weekly issue #113: .ORG, bpf, sysadvent, php, curl, httpstat & more</a></div></li></ul></div><div class=mb-8><h3>2018-01</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2018-01-14
</span><a href=https://ma.ttias.be/cronweekly/issue-112/ class=truncate>cron.weekly issue #112: Intel, Ubuntu, Docusaurus, PHP-PM, SWAP, Containers & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2018-01-07
</span><a href=https://ma.ttias.be/cronweekly/issue-111/ class=truncate>cron.weekly issue #111: Intel, OpenWrt, Tron, ACME, Kubernetes, Postgres & more</a></div></li></ul></div><div class=mb-8><h3>2017-12</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-12-17
</span><a href=https://ma.ttias.be/cronweekly/issue-110/ class=truncate>cron.weekly issue #110: wuzz, OpenSSH, Kernel 5.0, rsync, Kubernetes, Joplin & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-12-10
</span><a href=https://ma.ttias.be/cronweekly/issue-109/ class=truncate>cron.weekly issue #109: PostgreSQL, GIF, VLC, containerd, Docker, NTP & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-12-03
</span><a href=https://ma.ttias.be/cronweekly/issue-108/ class=truncate>cron.weekly issue #108: Gophish, Exim, tldr, HAProxy, ElasticSearch, mdoc & more</a></div></li></ul></div><div class=mb-8><h3>2017-11</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-11-26
</span><a href=https://ma.ttias.be/cronweekly/issue-107/ class=truncate>cron.weekly issue #107: Intel, man, PHP, sslh, ping, Docker, groups & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-11-19
</span><a href=https://ma.ttias.be/cronweekly/issue-106/ class=truncate>cron.weekly issue #106: Elasticsearch, Kibana, Logstash, RHEL, 4.14, KVM, TCP & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-11-12
</span><a href=https://ma.ttias.be/cronweekly/issue-105/ class=truncate>cron.weekly issue #105: golang, webpack, Minix, CouchDB, Prometheus, Bash, XFS & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-11-05
</span><a href=https://ma.ttias.be/cronweekly/issue-104/ class=truncate>cron.weekly issue #104: systemd, nodejs, HAProxy, rend, Kafka, SQLite & more</a></div></li></ul></div><div class=mb-8><h3>2017-10</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-10-29
</span><a href=https://ma.ttias.be/cronweekly/issue-103/ class=truncate>cron.weekly issue #103: pack, SSLStrip, gping, Kubernetes, Vagrant, MySQL, SSH & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-10-22
</span><a href=https://ma.ttias.be/cronweekly/issue-102/ class=truncate>cron.weekly issue #102: KRACK, Grafana, nsjail, ApsaraCache, Nix, Docker, fzf & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-10-15
</span><a href=https://ma.ttias.be/cronweekly/issue-101/ class=truncate>cron.weekly issue #101: GitLab, yes, true, Postgres, doitlive, tmux, systemd & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-10-08
</span><a href=https://ma.ttias.be/cronweekly/issue-100/ class=truncate>cron.weekly issue #100: dnsmasq, systemd, MariaDB, logfmt, Rancher, Envoy, Micro, traceroute & more</a></div></li></ul></div><div class=mb-8><h3>2017-09</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-09-24
</span><a href=https://ma.ttias.be/cronweekly/issue-99/ class=truncate>cron.weekly issue #99: Struts, SELinux, Xen, JDK, Postgres, Caddy & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-09-17
</span><a href=https://ma.ttias.be/cronweekly/issue-98/ class=truncate>cron.weekly issue #98: Caddy, Equifax, Struts, Curl, Arch, compsize, CentOS & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-09-10
</span><a href=https://ma.ttias.be/cronweekly/issue-97/ class=truncate>cron.weekly issue #97: kernel 4.13, TLS, LLVM, Yarn, Vagrant, AWX, Nginx & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-09-03
</span><a href=https://ma.ttias.be/cronweekly/issue-96/ class=truncate>cron.weekly issue #96: LogDevice, qmail, redis, Linus, HAProxy, libraries, concert, restic & more</a></div></li></ul></div><div class=mb-8><h3>2017-08</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-08-27
</span><a href=https://ma.ttias.be/cronweekly/issue-95/ class=truncate>cron.weekly issue #95: fail2ban, React, $HOME, apt-key, Go, Kanban, Zabbix, Zsh & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-08-20
</span><a href=https://ma.ttias.be/cronweekly/issue-94/ class=truncate>cron.weekly issue #94: Security, SSH, df, Wekan, funding, Kubernetes, Make, systemd & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-08-13
</span><a href=https://ma.ttias.be/cronweekly/issue-93/ class=truncate>cron.weekly issue #93: Debian, Git, Jerakia, Lighthouse, hey, load, compression, OpenVPN & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-08-06
</span><a href=https://ma.ttias.be/cronweekly/issue-92/ class=truncate>cron.weekly issue #92: RHEL 7.4, Varnish, Exa, Btrfs, sslh, ZFS, inputrc, opensmtpd & more</a></div></li></ul></div><div class=mb-8><h3>2017-07</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-07-30
</span><a href=https://ma.ttias.be/cronweekly/issue-91/ class=truncate>cron.weekly issue #91: Memcached, MariaDB, Boltron, BinaryAlert, Gitlab, pik, uchat & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-07-23
</span><a href=https://ma.ttias.be/cronweekly/issue-90/ class=truncate>cron.weekly issue #90: OCI, Apache, Go, Shells, Duplicity, mktemp, man & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-07-16
</span><a href=https://ma.ttias.be/cronweekly/issue-89/ class=truncate>cron.weekly issue #89: Fedora 26, ZFS, Go 2, Time, seashells, Boltron, Redis, Duplicity & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-07-09
</span><a href=https://ma.ttias.be/cronweekly/issue-88/ class=truncate>cron.weekly issue #88: a forum, kernel 4.12, OpenBSD, systemd, elvish, puppet, vtop & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-07-02
</span><a href=https://ma.ttias.be/cronweekly/issue-87/ class=truncate>cron.weekly issue #87: OutlawCountry, MOTD, NSA, systemd, Kubernetes, spoilerwall, Dexter, GPG & more</a></div></li></ul></div><div class=mb-8><h3>2017-06</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-06-25
</span><a href=https://ma.ttias.be/cronweekly/issue-86/ class=truncate>cron.weekly issue #86: Debian 9, Kernel vulnerability, Ubuntu, GitLab, casync, SSH tunnels & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-06-18
</span><a href=https://ma.ttias.be/cronweekly/issue-85/ class=truncate>cron.weekly issue #85: yes, SQLite, bingrep, reredirect, Spack, sudo, mdadm, MySQL & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-06-11
</span><a href=https://ma.ttias.be/cronweekly/issue-84/ class=truncate>cron.weekly issue #84: Hadoop, UUID, Evil.sh, GDB, rl, Monica, SFTP, Containers & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-06-04
</span><a href=https://ma.ttias.be/cronweekly/issue-83/ class=truncate>cron.weekly issue #83: Humble Bundle, Sudo, kapo, slap, Node, MySQL, iostat & more</a></div></li></ul></div><div class=mb-8><h3>2017-05</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-05-28
</span><a href=https://ma.ttias.be/cronweekly/issue-82/ class=truncate>cron.weekly issue #82: Puppet 5, Debian 9, Chef, Vim, CNI, TFS, Haraka, PostgreSQL & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-05-21
</span><a href=https://ma.ttias.be/cronweekly/issue-81/ class=truncate>cron.weekly issue #81: Nginx, Badger, fsql, zetcd, MySQL, Docker, binsnitch & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-05-14
</span><a href=https://ma.ttias.be/cronweekly/issue-80/ class=truncate>cron.weekly issue #80: nftables, BBR, WireGuard, Kubernetes, %CPU, GlusterFS, BTRFS & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-05-07
</span><a href=https://ma.ttias.be/cronweekly/issue-79/ class=truncate>cron.weekly issue #79: OpenSnitch, VXLAN, GCC, 4.11 kernel, README’s, curl, monitoring tools & more</a></div></li></ul></div><div class=mb-8><h3>2017-04</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-04-30
</span><a href=https://ma.ttias.be/cronweekly/issue-78/ class=truncate>cron.weekly issue #78: octodns, SSH, grsecurity, postal, nginx, cgroups, vim & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-04-23
</span><a href=https://ma.ttias.be/cronweekly/issue-77/ class=truncate>cron.weekly issue #77: OpenStack, Moby, Caddy, Devuan, Linuxkit, Tmux, Jenkins & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-04-16
</span><a href=https://ma.ttias.be/cronweekly/issue-76/ class=truncate>cron.weekly issue #76: UDP, DungeonFS, historian, TokuDB, MySQL clusters, linkerd, BIND & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-04-09
</span><a href=https://ma.ttias.be/cronweekly/issue-75/ class=truncate>cron.weekly issue #75: Shoop, journal-triggerd, Bash, SSH, iostat, hadoop, MySQL, videos & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-04-02
</span><a href=https://ma.ttias.be/cronweekly/issue-74/ class=truncate>cron.weekly issue #74: RHEL 5, linkerd, hping3, Nginx, Bash, Ceph, Postfix & more</a></div></li></ul></div><div class=mb-8><h3>2017-03</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-03-26
</span><a href=https://ma.ttias.be/cronweekly/issue-73/ class=truncate>cron.weekly issue #73: OpenSSL, Fossjobs, bcachefs, tmuxp, Gitlab, netbox, udocker, iptables & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-03-19
</span><a href=https://ma.ttias.be/cronweekly/issue-72/ class=truncate>cron.weekly issue #72: FreeBSD, lkml, llvm, dnscontrol, buck, ReOpenLDAP, Postfix, Bash, Xargs & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-03-12
</span><a href=https://ma.ttias.be/cronweekly/issue-71/ class=truncate>cron.weekly issue #71: CVE’s, Memcache-top, Ctop, Choria, s2n, Dnsmasq, Bash, Strace, Systemd & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-03-05
</span><a href=https://ma.ttias.be/cronweekly/issue-70/ class=truncate>cron.weekly issue #70: GitHub, Kompose, Usql, tmux-cssh, HAProxy, icdiff, GlusterFS & more</a></div></li></ul></div><div class=mb-8><h3>2017-02</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-02-26
</span><a href=https://ma.ttias.be/cronweekly/issue-69/ class=truncate>cron.weekly issue #69: SHA-1, Kernel exploit, pssh, securitybot, nscan, Kernel 4.10, live kernel patching & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-02-19
</span><a href=https://ma.ttias.be/cronweekly/issue-68/ class=truncate>cron.weekly issue #68: Virtual Memory, Jenkins, Etckeeper, Tensorflow, PGP, Let’s Encrypt & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-02-12
</span><a href=https://ma.ttias.be/cronweekly/issue-67/ class=truncate>cron.weekly issue #67: Kubernetes, Brotli, Beehive, Takeover, MySQL 8, Nomad, tmux, fail2ban & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-02-05
</span><a href=https://ma.ttias.be/cronweekly/issue-66/ class=truncate>cron.weekly issue #66: Git Filesystem, Security, JVM, Fission, Habitat, TLS 1.3 & more!</a></div></li></ul></div><div class=mb-8><h3>2017-01</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-01-29
</span><a href=https://ma.ttias.be/cronweekly/issue-65/ class=truncate>cron.weekly issue #65: SRE, ngrep, pipenv, whalebrew, KVM, Ansible, FPM & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-01-22
</span><a href=https://ma.ttias.be/cronweekly/issue-64/ class=truncate>cron.weekly issue #64: Kernel 4.9, hellogopher, ngrok, exabgp, yara, vmtouch, socks, bash & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-01-15
</span><a href=https://ma.ttias.be/cronweekly/issue-63/ class=truncate>cron.weekly issue #63: MongoDB, SELinux, relayd, dgsh, SSH, GPG, /dev/random & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-01-08
</span><a href=https://ma.ttias.be/cronweekly/issue-62/ class=truncate>cron.weekly issue #62: FOSDEM, Sockets, OpenPGP, Irssi, Ntfy, DCCP, 33C3, LLVM & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2017-01-01
</span><a href=https://ma.ttias.be/cronweekly/issue-61/ class=truncate>cron.weekly issue #61: Btrfs, Syncthing, Parallel, Rootkit, Kubernetes, Container networking & more!</a></div></li></ul></div><div class=mb-8><h3>2016-12</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-12-25
</span><a href=https://ma.ttias.be/cronweekly/issue-60/ class=truncate>cron.weekly issue #60: Debian, Vim, Gitlab, Jenkins, Piwik, Nginx, MySQL & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-12-18
</span><a href=https://ma.ttias.be/cronweekly/issue-59/ class=truncate>cron.weekly issue #59: Kernel 4.9, Java, containerd, sfb, Redis, CentOS 7.3, Nginx, Ansible & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-12-11
</span><a href=https://ma.ttias.be/cronweekly/issue-58/ class=truncate>cron.weekly issue #58: HAProxy, CVE’s, SysAdvent, PGP, mcrouter, Expect & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-12-04
</span><a href=https://ma.ttias.be/cronweekly/issue-57/ class=truncate>cron.weekly issue #57: PHP 7.1, Crypto, NTP, runv, Multibinder, Grafana, FPM & more!</a></div></li></ul></div><div class=mb-8><h3>2016-11</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-11-27
</span><a href=https://ma.ttias.be/cronweekly/issue-56/ class=truncate>cron.weekly issue #56: Debian, Fedora 25, PHP, systemd, Humble Bundle, dply, Pipfile & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-11-20
</span><a href=https://ma.ttias.be/cronweekly/issue-55/ class=truncate>cron.weekly issue #55: Commix, Trigger Happy, iocage, DNS, systemd-nspawn, ACME & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-11-13
</span><a href=https://ma.ttias.be/cronweekly/issue-54/ class=truncate>cron.weekly issue #54: PHP 7, LessPass, addrwatch, tmux, bash, PackPack & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-11-06
</span><a href=https://ma.ttias.be/cronweekly/issue-53/ class=truncate>cron.weekly issue #53: RHEL 7.3, fpm, kpatch, sshesame, Minoca OS, Lynis & many more!</a></div></li></ul></div><div class=mb-8><h3>2016-10</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-10-30
</span><a href=https://ma.ttias.be/cronweekly/issue-52/ class=truncate>cron.weekly issue #52: Dtrace, nftables, bashcached, nodejs 7, elastic 5, bfs, varnish & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-10-23
</span><a href=https://ma.ttias.be/cronweekly/issue-51/ class=truncate>cron.weekly issue #51: Chaos Monkey, Pi-Hole, tcptop, Varnish, chmod, Linux Internals & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-10-16
</span><a href=https://ma.ttias.be/cronweekly/issue-50/ class=truncate>cron.weekly issue #50: PHP, Ubuntu 16.10, Galaxy, Yarn, libreboot, AWS, Postgres & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-10-09
</span><a href=https://ma.ttias.be/cronweekly/issue-49/ class=truncate>cron.weekly issue #49: kernel 4.8, IP Spoofing, RethinkDB, ProxySQL, Postgres, Elasticsearch & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-10-02
</span><a href=https://ma.ttias.be/cronweekly/issue-48/ class=truncate>cron.weekly issue #48: PostgreSQL 9.6, Security, Otto, armor, Config Mgmt Camp & more!</a></div></li></ul></div><div class=mb-8><h3>2016-09</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-09-25
</span><a href=https://ma.ttias.be/cronweekly/issue-47/ class=truncate>cron.weekly issue #47: OpenSSL, ripgrep, httpstat, CouchDB, Latency & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-09-18
</span><a href=https://ma.ttias.be/cronweekly/issue-46/ class=truncate>cron.weekly issue #46: Kimchi, MySQL, Zabbix, Varnish, Logtrail, Swift, DHCP & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-09-11
</span><a href=https://ma.ttias.be/cronweekly/issue-45/ class=truncate>cron.weekly issue #45: Zines, Kubernetes, Trojans, myLG, InfluxDB, hop & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-09-04
</span><a href=https://ma.ttias.be/cronweekly/issue-44/ class=truncate>cron.weekly issue #44: Docker, SELinux, Xen, Teeproxy, zstandard & more!</a></div></li></ul></div><div class=mb-8><h3>2016-08</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-08-28
</span><a href=https://ma.ttias.be/cronweekly/issue-43/ class=truncate>cron.weekly issue #43: Cryptography, 4.9 kernel, systemd, OpenLambda, Python & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-08-21
</span><a href=https://ma.ttias.be/cronweekly/issue-42/ class=truncate>cron.weekly issue #42: PowerShell, Bus1, SAM, Minisign, flyingwhale & much more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-08-14
</span><a href=https://ma.ttias.be/cronweekly/issue-41/ class=truncate>cron.weekly issue #41: gdb, OpenStack, masscan, Linux Performance, SSHFS & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-08-07
</span><a href=https://ma.ttias.be/cronweekly/issue-40/ class=truncate>cron.weekly issue #40: Ansible, OpenSSH, Checkup, TLS, Postfix & more!</a></div></li></ul></div><div class=mb-8><h3>2016-07</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-07-31
</span><a href=https://ma.ttias.be/cronweekly/issue-39/ class=truncate>cron.weekly issue #39: Spark, PHP-FPM, Riemann, Ansible, Varnish, PostgreSQL & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-07-24
</span><a href=https://ma.ttias.be/cronweekly/issue-38/ class=truncate>cron.weekly issue #38: Apache, astsu, Biscuit, Python, Puppet 4, systemd & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-07-17
</span><a href=https://ma.ttias.be/cronweekly/issue-37/ class=truncate>cron.weekly issue #37: Kubernetes, diffs, SYN floods, chage, Jenkins & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-07-10
</span><a href=https://ma.ttias.be/cronweekly/issue-36/ class=truncate>cron.weekly issue #36: ed, TCP in the kernel, moreutils, Nagios, Tmux, BSD vs Linux & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-07-03
</span><a href=https://ma.ttias.be/cronweekly/issue-35/ class=truncate>cron.weekly issue #35: cgroups, sqlmap, etcd3, Elasticsearch, Charles, Packer & more!</a></div></li></ul></div><div class=mb-8><h3>2016-06</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-06-26
</span><a href=https://ma.ttias.be/cronweekly/issue-34/ class=truncate>cron.weekly issue #34: Containers, Flatpak, Licensing, Mailservers, SSH keys, networking & many more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-06-19
</span><a href=https://ma.ttias.be/cronweekly/issue-33/ class=truncate>cron.weekly issue #33: Snaps, Serverless, Unikernels, Habitat, gzip, mysql, file descriptors & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-06-12
</span><a href=https://ma.ttias.be/cronweekly/issue-32/ class=truncate>cron.weekly issue #32: httpdiff, minikube, GoAccess, Go, Strace, cron & much more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-06-05
</span><a href=https://ma.ttias.be/cronweekly/issue-31/ class=truncate>cron.weekly issue #31: Podcasting, ImageMagick, OwnCloud, DWF, Serverless, cronjobs and more!</a></div></li></ul></div><div class=mb-8><h3>2016-05</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-05-29
</span><a href=https://ma.ttias.be/cronweekly/issue-30/ class=truncate>cron.weekly issue #30: systemd, GitLab, Jenkins, Ansible, Nix, Atop and many more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-05-22
</span><a href=https://ma.ttias.be/cronweekly/issue-29/ class=truncate>cron.weekly issue #29: ZFS, kernel 4.6, Say What?, Mailhog, Sysdig Falco, http-prompt and many more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-05-15
</span><a href=https://ma.ttias.be/cronweekly/issue-28/ class=truncate>cron.weekly issue #28: Grafana 3.0, Redis, Container Schedulers, Varnish, RHEL 6.8 and many more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-05-08
</span><a href=https://ma.ttias.be/cronweekly/issue-27/ class=truncate>cron.weekly issue #27: OpenSSL & ImageMagick, Chaos Monkey, Container Sandboxes, HAProxy, SSH & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-05-01
</span><a href=https://ma.ttias.be/cronweekly/issue-26/ class=truncate>cron.weekly issue #26: PHP-PM, Ubuntu Snap, Jenkins 2.0, Xamarin, Tredly, SOLR & Linux basics</a></div></li></ul></div><div class=mb-8><h3>2016-04</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-04-24
</span><a href=https://ma.ttias.be/cronweekly/issue-25/ class=truncate>cron.weekly issue #25: Shift, Gentoo on Tesla, RPerl, BSD explained and many more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-04-17
</span><a href=https://ma.ttias.be/cronweekly/issue-24/ class=truncate>cron.weekly Issue #24: Badlock, Linux Scheduler, Fedora 24, Gitlint, pfSense, monitoring, Docker & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-04-10
</span><a href=https://ma.ttias.be/cronweekly/issue-23/ class=truncate>cron.weekly issue #23: Zulu, LogZoom, vis, VersionPress, Kibana 5, Mailtrain & many more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-04-03
</span><a href=https://ma.ttias.be/cronweekly/issue-22/ class=truncate>cron.weekly issue #22: Debian 8.4, Containers at Google, certdiff, netdata, uphold & many more!</a></div></li></ul></div><div class=mb-8><h3>2016-03</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-03-27
</span><a href=https://ma.ttias.be/cronweekly/issue-21/ class=truncate>cron.weekly issue #21: Swift, Ubuntu, Oh My Zsh, NPM, SMTP, rspamd and many more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-03-20
</span><a href=https://ma.ttias.be/cronweekly/issue-20/ class=truncate>cron.weekly issue #20: Containers, PHP, MongoDB, Kernel 4.5, Puppet, perf, tcpdump & more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-03-13
</span><a href=https://ma.ttias.be/cronweekly/issue-19/ class=truncate>cron.weekly issue #19: GUI’s, Jenkins, Docker, Microsoft, jo, sshtron, cockpit & more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-03-06
</span><a href=https://ma.ttias.be/cronweekly/issue-18/ class=truncate>cron.weekly issue #18: OpenSSL, Debian, Caddy, Systemd, Bash, Make & many more!</a></div></li></ul></div><div class=mb-8><h3>2016-02</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-02-28
</span><a href=https://ma.ttias.be/cronweekly/issue-17/ class=truncate>cron.weekly issue #17: Mint, GCC, Ansible, Python, Kubernetes, MongoDB & performance</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-02-21
</span><a href=https://ma.ttias.be/cronweekly/issue-16/ class=truncate>cron.weekly issue #16: ZFS, Ubuntu 16.04, glibc, Vulkan, Kocho, Networking, tar & many more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-02-14
</span><a href=https://ma.ttias.be/cronweekly/issue-15/ class=truncate>cron.weekly issue #15: Ubuntu, TCP/IP, systemd, htop, Teletraan, Maybe, /etc/hosts, Fish & many more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-02-07
</span><a href=https://ma.ttias.be/cronweekly/issue-14/ class=truncate>cron.weekly issue #14: ZFS, Seesaw, IRC, Mailing Lists, tcpdump, EFI & many more</a></div></li></ul></div><div class=mb-8><h3>2016-01</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-01-31
</span><a href=https://ma.ttias.be/cronweekly/issue-13/ class=truncate>cron.weekly issue #13: Tails, Ruby, OpenSSL, Rundeck, Bash Concurrency, Namespaces & many more!</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-01-24
</span><a href=https://ma.ttias.be/cronweekly/issue-12/ class=truncate>cron.weekly issue #12: Zabbix, GitLab, Tcpdive, Pact, Grafana, XKCD and many more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-01-17
</span><a href=https://ma.ttias.be/cronweekly/issue-11/ class=truncate>cron.weekly issue #11: Ansible, Github, dd, systemd, Agedu, Netboot, SSH and many more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-01-10
</span><a href=https://ma.ttias.be/cronweekly/issue-10/ class=truncate>cron.weekly issue #10: RISC-V, OpenSSL, ClusterSSH, Jasper, Deptyr, Named Pipes and many more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2016-01-03
</span><a href=https://ma.ttias.be/cronweekly/issue-9/ class=truncate>cron.weekly issue #9: Ian, Apt, PostgreSQL, TLDR, Topbeat, Date, Performance and many more</a></div></li></ul></div><div class=mb-8><h3>2015-12</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2015-12-27
</span><a href=https://ma.ttias.be/cronweekly/issue-8/ class=truncate>cron.weekly issue #8: BorinGCC, Ruby, Hadoop, Ispy, OpenBSD, TLS and many more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2015-12-19
</span><a href=https://ma.ttias.be/cronweekly/issue-7/ class=truncate>cron.weekly issue #7: Grub2, Grafana, Redis, Knockd, Docker & many more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2015-12-12
</span><a href=https://ma.ttias.be/cronweekly/issue-6/ class=truncate>cron.weekly issue #6: Kernel Releases, TLS, Hostess, Polscan, Dtrace, Docker & many more</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2015-12-05
</span><a href=https://ma.ttias.be/cronweekly/issue-5/ class=truncate>cron.weekly issue #5: PHP 7, Swift, Let’s Encrypt, Zipnish, Sysadvent and many more</a></div></li></ul></div><div class=mb-8><h3>2015-11</h3><ul><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2015-11-28
</span><a href=https://ma.ttias.be/cronweekly/issue-4/ class=truncate>cron.weekly issue #4</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2015-11-21
</span><a href=https://ma.ttias.be/cronweekly/issue-3/ class=truncate>cron.weekly issue #3</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2015-11-10
</span><a href=https://ma.ttias.be/cronweekly/issue-2/ class=truncate>cron.weekly issue #2</a></div></li><li class="mb-4 md:mb-1"><div class=flex><span class="meta-date hidden md:inline-block">2015-11-07
</span><a href=https://ma.ttias.be/cronweekly/issue-1/ class=truncate>cron.weekly issue #1</a></div></li></ul></div></div></div><div class=ohdear-cta-section><aside class=ohdear-cta aria-label="About Oh Dear"><div class=ohdear-cta-inner><div class=ohdear-cta-top><p class=ohdear-cta-kicker>// trusted website monitoring</p><img class=ohdear-cta-logo src=/img/ohdear-logo-white.svg alt="Oh Dear" width=80 height=48 loading=lazy></div><p class=ohdear-cta-heading>Monitoring your site, done properly</p><p class=ohdear-cta-body>Oh Dear is the monitoring platform I help build, trusted by global companies, major open-source projects and public-sector services. It keeps an eye on everything that quietly breaks: uptime, certificates, broken links, DNS and more. If this post was useful, it's worth a look.</p><a class=ohdear-cta-button href="https://ohdear.app/?utm_source=ma.ttias.be&amp;utm_medium=blog&amp;utm_campaign=generic" target=_blank rel=noopener><span>Take a look at Oh Dear</span>
<span class=ohdear-cta-arrow aria-hidden=true>&rarr;</span></a></div></aside></div></main><footer class="footer-curved site-footer"><div class=site-footer-inner><div class=site-footer-top><div class=site-footer-brand><p class=site-footer-name>Mattias Geniar</p><p class=site-footer-tagline>Belgian developer & Linux sysadmin, writing about servers, PHP, DNS, SSL and the web since 2008. Co-founder of <a href="https://ohdear.app/?utm_source=ma.ttias.be&amp;utm_medium=footer&amp;utm_campaign=footer-bio" target=_blank rel=noopener>Oh Dear</a>.</p></div></div><div class=site-footer-cols><nav class=site-footer-col aria-label=Topics><h2 class=site-footer-heading>Topics</h2><ul><li><a href=/categories/linux/>Linux</a></li><li><a href=/categories/php/>PHP</a></li><li><a href=/categories/devops/>DevOps</a></li><li><a href=/categories/security/>Security</a></li><li><a href=/categories/dns/>DNS</a></li><li><a href=/categories/web-development/>Web Development</a></li></ul></nav><nav class=site-footer-col aria-label="More topics"><h2 class=site-footer-heading>More topics</h2><ul><li><a href=/categories/varnish/>Varnish</a></li><li><a href=/categories/nginx/>Nginx</a></li><li><a href=/categories/ipv6/>IPv6</a></li><li><a href=/categories/apple/>Apple</a></li><li><a class=site-footer-more href=/categories/>All topics &rarr;</a></li></ul></nav><nav class=site-footer-col aria-label=Browse><h2 class=site-footer-heading>Browse</h2><ul><li><a href=/blog/>Blog</a></li><li><a href=/projects/>Projects</a></li><li><a href=/talks/>Talks</a></li><li><a href=/contact>Contact</a></li></ul></nav><nav class=site-footer-col aria-label=Archive><h2 class=site-footer-heading>Archive</h2><ul><li><a href=/cronweekly/>cron.weekly newsletter</a></li><li><a href=/syscast/>Syscast podcast</a></li><li><a href=/blog/index.xml>RSS feed</a></li></ul></nav></div><div class=site-footer-bottom><p class=site-footer-copy>&copy; 2008&ndash;2026 Mattias Geniar</p><div class=site-footer-social><a href=https://x.com/mattiasgeniar aria-label=X rel="me noopener" target=_blank><svg width="20" height="20" viewBox="0 0 24 24" class="fill-current"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg>
</a><a href=https://mastodon.social/@mattiasgeniar aria-label=Mastodon rel="me noopener" target=_blank><svg width="20" height="20" viewBox="0 0 24 24" class="fill-current"><path d="M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792.0 11.813.0h-.03c-3.98.0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057.0 00.023-.043v-1.809a.052.052.0 00-.066-.054 20.282 20.282.0 01-4.709.545c-2.73.0-3.463-1.284-3.674-1.818a5.593 5.593.0 01-.319-1.433.053.053.0 01.066-.054c1.517.363 3.072.546 4.632.546.376.0.75.0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23.0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112.0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311.0 2.302.504 2.962 1.51l.638 1.06.638-1.06c.66-1.006 1.65-1.51 2.96-1.51 1.13.0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z"/></svg>
</a><a href=https://github.com/mattiasgeniar aria-label=GitHub rel="me noopener" target=_blank><svg width="20" height="20" viewBox="0 0 24 24" class="fill-current"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
</a><a href=https://www.linkedin.com/in/mattiasgeniar/ aria-label=LinkedIn rel="me noopener" target=_blank><svg width="20" height="20" viewBox="0 0 24 24" class="fill-current"><path d="M19 0H5C2.239.0.0 2.239.0 5v14c0 2.761 2.239 5 5 5h14c2.762.0 5-2.239 5-5V5c0-2.761-2.238-5-5-5zM8 19H5V8h3v11zM6.5 6.732c-.966.0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zM20 19h-3v-5.604c0-3.368-4-3.113-4 0V19h-3V8h3v1.765c1.396-2.586 7-2.777 7 2.476V19z"/></svg></a></div></div></div></footer><script>document.getElementById("nav-toggle").onclick=function(){document.getElementById("nav-content").classList.toggle("hidden")},function(){var e=document.getElementById("theme-toggle-btn"),t=document.getElementById("theme-dropdown"),o=document.querySelectorAll(".theme-option");if(!e||!t)return;function i(){return localStorage.getItem("theme")||"system"}function a(e){return e==="dark"||e!=="light"&&window.matchMedia("(prefers-color-scheme: dark)").matches}function n(e){var t=a(e);document.documentElement.classList.toggle("dark",t),document.documentElement.setAttribute("data-theme",e),o.forEach(function(t){t.classList.toggle("active",t.dataset.theme===e)})}function r(e){localStorage.setItem("theme",e),n(e)}function c(){var n=!t.classList.contains("hidden");t.classList.toggle("hidden",n),e.setAttribute("aria-expanded",!n)}function s(){t.classList.add("hidden"),e.setAttribute("aria-expanded","false")}n(i()),e.addEventListener("click",function(e){e.stopPropagation(),c()}),o.forEach(function(e){e.addEventListener("click",function(){r(this.dataset.theme),s()})}),document.addEventListener("click",function(n){!t.contains(n.target)&&!e.contains(n.target)&&s()}),document.addEventListener("keydown",function(n){n.key==="Escape"&&!t.classList.contains("hidden")&&(s(),e.focus())}),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",function(){i()==="system"&&n("system")})}()</script></body></html>