- ID de l'analyse :
- def398cf-932e-41ac-8d28-afbc86f15afcTerminée
- URL soumise :
- https://xypnox.com/Redirigé
- Fin du rapport :
Liens : 18 trouvé(s)
Liens sortants identifiés à partir de la page
Lien | texte |
---|---|
https://x5z.studio | x5z.studio |
https://agenc.xyp.one | agenc A system for online services |
https://github.com/xypnox | Repositories Repositories and open code |
https://github.com/xypnox/dotfiles | dotfiles Configuration files for system |
https://fosstodon.org/@xypnox | Fosstodon |
https://t.me/xypnox | Telegram |
https://goodreads.com/xypnox | Goodreads |
https://www.youtube.com/watch?v=wumluVRmxyA | https://www.youtube.com/watch?v=wumluVRmxyA |
https://fosstodon.org/@xypnox/113488707725266313 | about 10 hours ago |
https://fosstodon.org/@xypnox/113463050401497770 | 5 days ago |
Variables JavaScript : 6 trouvée(s)
Les variables JavaScript globales chargées dans l'objet fenêtre d'une page sont des variables déclarées en dehors des fonctions et accessibles depuis n'importe quel endroit du code au sein du champ d'application actuel
Nom | Type |
---|---|
onbeforetoggle | object |
documentPictureInPicture | object |
onscrollend | object |
Astro | object |
_$HY | object |
_$ | object |
Messages de journal de console : 1 trouvé(s)
Messages consignés dans la console web
Type | Catégorie | Enregistrement |
---|---|---|
log | javascript |
|
HTML
Le corps HTML de la page en données brutes
<!DOCTYPE html><html lang="en" class=""><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><!-- Title --><title>xypnox</title><meta name="title" content="xypnox"><meta property="og:title" content="xypnox"><meta property="twitter:title" content="xypnox"><!-- Description --><meta name="description" content="I design/develop interfaces."><meta property="og:description" content="I design/develop interfaces."><meta property="twitter:description" content="I design/develop interfaces."><!-- URL --><meta property="og:url" content="https://www.xypnox.com/"><meta property="twitter:url" content="https://www.xypnox.com/"><!-- Image --><meta property="og:image" content="https://xypnox.com/social.png"><meta property="twitter:image" content="https://xypnox.com/social.png"><meta property="og:type" content="website"><meta property="twitter:card" content="summary_large_image"><meta property="twitter:site" content="@xypnox"><meta property="twitter:creator" content="@xypnox"><meta property="og:site_name" content="xypnox"><meta name="generator" content="Astro v4.4.0"> <link href="/isoso/Isoso.css" rel="stylesheet"> <style id="_goober" type="text/css">.go2497111954{position:absolute;width:max-content;pointer-events:none;display:flex;align-items:center;gap:0.25rem;font-size:var(--font-size-sm);color:var(--text);background:var(--tooltip);padding:0.5em;border-radius:var(--border-radius);text-align:center;z-index:10;}.go2497111954.go2497111954 iconify-icon{color:var(--primary-color);font-size:1.2em;}.go1520246162{display:grid;grid-template-columns:repeat(var(--count, 5), 1fr);gap:2rem;width:100%;font-family:var(--font-family);}@media (max-width: 768px){.go1520246162{grid-template-columns:repeat(auto-fill, minmax(100%, 1fr));}}.go205140659{display:flex;flex-direction:column;align-items:center;max-width:100%;width:100%;min-width:100px;transition:all 0.3s ease-in-out;}.go205140659 .imgContainer{--grid-num:calc(var(--count, 5));--grid-width:calc(100vw - 2rem - 1rem * var(--grid-num));--img-width:var(--image-width-raw, calc(var(--grid-width) / var(--count, 5)));display:flex;border-radius:var(--border-radius);overflow:hidden;cursor:pointer;transition:all 0.3s ease-in-out;}.go205140659 .imgContainer:hover{transform:scale(1.05) translateY(-2.5%);}.go205140659 .imgContainer img{border-radius:var(--border-radius);width:var(--img-width);height:var(--img-width);}@media (max-width: 768px){.go205140659 .imgContainer{--grid-num:0;--grid-width:100%;--img-width:100%;}}.go3988363021{position:relative;width:max-content;pointer-events:all;}.go3948540184{width:max-content;position:absolute;display:none;z-index:2009;padding:0.25rem 0.5rem;box-shadow:var(--shadow-small);animation:go419718849 0.5s ease-out forwards;}.go3948540184.visible{z-index:2009;display:flex;gap:0.5rem;}@keyframes go2992735403{0%{transform:translateY(-100%) translateX(-50%);opacity:0;}15%{transform:translateY(calc(-100% - 0.5rem)) translateX(-50%);opacity:1;}75%{transform:translateY(calc(-100% - 0.5rem)) translateX(-50%);opacity:1;}100%{transform:translateY(-150%) translateX(-50%);opacity:0;}}@keyframes go419718849{from{opacity:0;transform:scale(0.9);}to{opacity:1;transform:scale(1);}}@keyframes go208107965{0%{transform:scale(0.9);opacity:0;}100%{transform:scale(1);opacity:1;}}@keyframes go4194254037{0%{transform:scale(1);opacity:1;}100%{transform:scale(0.9);opacity:0;}}.go2737468010{z-index:120;}.go845654897{position:relative;pointer-events:all;display:flex;height:100%;}.go845654897 *{pointer-events:all;}.go1579819456{position:absolute;}.go530904261{box-sizing:border-box;font-family:inherit;padding:0.3rem 0.6rem;border-radius:var(--border-radius);font-size:var(--font-size-base);border:1px solid var(--border-color);flex:0;display:flex;align-items:center;gap:0.5rem;justify-content:center;background:var(--surface);color:var(--text);white-space:nowrap;transition:all 0.3s ease-in-out;}.go530904261 iconify-icon{font-size:1.25rem;}.go530904261.small{flex-grow:1;flex-shrink:0;line-height:1;max-width:max-content;height:100%;padding:0.3rem 0.5rem;font-size:var(--font-size-sm);gap:0.25rem;}.go530904261.small iconify-icon{font-size:var(--font-size-sm);}.go530904261.selected{border:1px solid var(--primary-color);color:var(--primary-color);}.go530904261.go530904261:focus-visible{outline:2px solid var(--primary-color);}.go530904261.go530904261:hover{transform:scale(1.1);color:var(--primary-contrast);background:var(--primary-color);border-color:var(--primary-color);}.go530904261.go530904261:active{transform:scale(0.9);transition:all 0.2s ease-out;}.go3605093067{display:flex;flex-direction:column;gap:0rem;transition:background 0.2s ease, border 0.2s ease, background-size 0.2s ease, background-position 0.2s ease;border-radius:1em;overflow:hidden;}.go3605093067{background:var(--card-background);border:var(--card-border);background-size:var(--card-backgroundSize);background-position:var(--card-backgroundPosition);}.go3605093067:hover{background-position:var(--card-backgroundPositionHover);border:var(--card-borderHover);}.go3605093067 .toot-content{display:flex;flex-direction:column;gap:0.5rem;font-size:1.25em;padding:var(--font-size-md);}.go3605093067 h2{margin:0;}.go3605093067 p{margin-block:1rem;}.go3605093067 p:first-child{margin-block-start:0;}.go3605093067 p:last-child{margin-block-end:0;}.go3605093067 img{max-width:100%;border-radius:0.5em;}.go3605093067 a{color:var(--primary-color);text-decoration:none;border-bottom:none;}.go3605093067 a .invisible{display:none;}.go3605093067 .meta{align-self:flex-end;}.go3605093067 .meta .link{color:var(--fadeText);font-size:0.75em;}.go3605093067 .meta .link:hover{color:var(--primary-color);}.go3605093067 .refetch-time{font-size:var(--font-size-sm);flex-grow:1 !important;}.go3975706229{position:relative;}</style> <style id="_themeVars">:root { --layout-content-wide: 1200px;
--layout-content-main: 800px;
--layout-nav-height: 3rem;
--border-radius: 0.2rem;
--font-family: Isoso Web;
--font-size-sm: clamp(0.9375rem, 0.8521rem + 0.2276vw, 1.1253rem);
--font-size-base: clamp(1.125rem, 0.9545rem + 0.4545vw, 1.5rem);
--font-size-md: clamp(1.35rem, 1.0548rem + 0.7873vw, 1.9995rem);
--font-size-lg: clamp(1.62rem, 1.1448rem + 1.2671vw, 2.6653rem);
--font-size-xl: clamp(1.944rem, 1.2127rem + 1.9502vw, 3.5529rem);
--font-size-xxl: clamp(2.3328rem, 1.2404rem + 2.913vw, 4.736rem);
--font-size-xxxl: clamp(2.7994rem, 1.2022rem + 4.2591vw, 6.3131rem); }
@media (prefers-color-scheme: dark) { :root { --primary-color: #ff5370;
--primary-contrast: #000000;
--secondary-color: #5d86ff;
--colors-purple: #ff5370;
--background: #0f111a;
--surface: #1e2139a0;
--surface2: rgba(35, 38, 61, 0.72);
--tooltip: rgb(35, 38, 53);
--border-style: solid;
--border-color: rgb(48, 52, 71);
--text: #919DCF;
--heading: #aab6e8;
--fadeText: rgba(108, 117, 158, 0.94);
--shadow-card: 0 1rem 2rem 0 rgba(0, 0, 0, 0.6);
--shadow-medium: 0 0.5rem 1rem 0 rgba(0, 0, 0, 0.3);
--shadow-small: 0 0.1rem 0.2rem 0 rgba(0, 0, 0, 0.3);
--shadow-cardDrop: 0 1rem 2rem rgba(0, 0, 0, 0.6);
--card-border: 2px dashed var(--border-color);
--card-background: linear-gradient(-45deg, var(--background), var(--background), var(--surface));
--card-backgroundHover: linear-gradient(-45deg, var(--background), var(--background), var(--surface));
--card-backgroundPosition: 90% 0;
--card-backgroundSize: 200%;
--card-borderHover: 2px solid var(--border-color);
--card-backgroundPositionHover: 10% 20%;
--bold: #ff5370;
--italic: #ff5370;
--strikethrough: #ff5370;
--gradient-color-1: var(--primary-color);
--gradient-color-2: var(--colors-purple);
--animated-gradient: linear-gradient(-60deg, var(--gradient-color-1), var(--gradient-color-2), var(--gradient-color-1), var(--gradient-color-2), var(--gradient-color-1), var(--secondary-color), var(--gradient-color-1), var(--gradient-color-2)); } }
@media (prefers-color-scheme: light) { :root { --primary-color: #613de3;
--primary-contrast: #ffffff;
--secondary-color: #b55089;
--colors-purple: #613de3;
--background: #dfdfed;
--surface: #9f9fe02d;
--surface2: rgba(164, 165, 218, 0.38);
--tooltip: rgb(197, 198, 214);
--border-style: solid;
--border-color: rgb(180, 181, 199);
--text: #343654;
--heading: #202234;
--fadeText: rgba(94, 95, 128, 0.88);
--shadow-card: 0 1rem 2rem 0 rgba(0, 0, 0, 0.2);
--shadow-medium: 0 0.5rem 1rem 0 rgba(0, 0, 0, 0.15);
--shadow-small: 0 0.1rem 0.2rem 0 rgba(0, 0, 0, 0.3);
--shadow-cardDrop: 0 1rem 2rem rgba(0, 0, 0, 0.2);
--card-border: 2px dashed var(--border-color);
--card-background: linear-gradient(-45deg, var(--background), var(--background), var(--surface));
--card-backgroundHover: linear-gradient(-45deg, var(--background), var(--background), var(--surface));
--card-backgroundPosition: 90% 0;
--card-backgroundSize: 200%;
--card-borderHover: 2px solid var(--border-color);
--card-backgroundPositionHover: 10% 20%;
--bold: #613de3;
--italic: #613de3;
--strikethrough: #613de3;
--gradient-color-1: var(--primary-color);
--gradient-color-2: var(--colors-purple);
--animated-gradient: linear-gradient(-60deg, var(--gradient-color-1), var(--gradient-color-2), var(--gradient-color-1), var(--gradient-color-2), var(--gradient-color-1), var(--secondary-color), var(--gradient-color-1), var(--gradient-color-2)); } }
.dark-mode { --primary-color: #ff5370;
--primary-contrast: #000000;
--secondary-color: #5d86ff;
--colors-purple: #ff5370;
--background: #0f111a;
--surface: #1e2139a0;
--surface2: rgba(35, 38, 61, 0.72);
--tooltip: rgb(35, 38, 53);
--border-style: solid;
--border-color: rgb(48, 52, 71);
--text: #919DCF;
--heading: #aab6e8;
--fadeText: rgba(108, 117, 158, 0.94);
--shadow-card: 0 1rem 2rem 0 rgba(0, 0, 0, 0.6);
--shadow-medium: 0 0.5rem 1rem 0 rgba(0, 0, 0, 0.3);
--shadow-small: 0 0.1rem 0.2rem 0 rgba(0, 0, 0, 0.3);
--shadow-cardDrop: 0 1rem 2rem rgba(0, 0, 0, 0.6);
--card-border: 2px dashed var(--border-color);
--card-background: linear-gradient(-45deg, var(--background), var(--background), var(--surface));
--card-backgroundHover: linear-gradient(-45deg, var(--background), var(--background), var(--surface));
--card-backgroundPosition: 90% 0;
--card-backgroundSize: 200%;
--card-borderHover: 2px solid var(--border-color);
--card-backgroundPositionHover: 10% 20%;
--bold: #ff5370;
--italic: #ff5370;
--strikethrough: #ff5370;
--gradient-color-1: var(--primary-color);
--gradient-color-2: var(--colors-purple);
--animated-gradient: linear-gradient(-60deg, var(--gradient-color-1), var(--gradient-color-2), var(--gradient-color-1), var(--gradient-color-2), var(--gradient-color-1), var(--secondary-color), var(--gradient-color-1), var(--gradient-color-2)); }
.light-mode { --primary-color: #613de3;
--primary-contrast: #ffffff;
--secondary-color: #b55089;
--colors-purple: #613de3;
--background: #dfdfed;
--surface: #9f9fe02d;
--surface2: rgba(164, 165, 218, 0.38);
--tooltip: rgb(197, 198, 214);
--border-style: solid;
--border-color: rgb(180, 181, 199);
--text: #343654;
--heading: #202234;
--fadeText: rgba(94, 95, 128, 0.88);
--shadow-card: 0 1rem 2rem 0 rgba(0, 0, 0, 0.2);
--shadow-medium: 0 0.5rem 1rem 0 rgba(0, 0, 0, 0.15);
--shadow-small: 0 0.1rem 0.2rem 0 rgba(0, 0, 0, 0.3);
--shadow-cardDrop: 0 1rem 2rem rgba(0, 0, 0, 0.2);
--card-border: 2px dashed var(--border-color);
--card-background: linear-gradient(-45deg, var(--background), var(--background), var(--surface));
--card-backgroundHover: linear-gradient(-45deg, var(--background), var(--background), var(--surface));
--card-backgroundPosition: 90% 0;
--card-backgroundSize: 200%;
--card-borderHover: 2px solid var(--border-color);
--card-backgroundPositionHover: 10% 20%;
--bold: #613de3;
--italic: #613de3;
--strikethrough: #613de3;
--gradient-color-1: var(--primary-color);
--gradient-color-2: var(--colors-purple);
--animated-gradient: linear-gradient(-60deg, var(--gradient-color-1), var(--gradient-color-2), var(--gradient-color-1), var(--gradient-color-2), var(--gradient-color-1), var(--secondary-color), var(--gradient-color-1), var(--gradient-color-2)); } </style><link rel="stylesheet" href="/_astro/books.DA_hF2IJ.css">
<link rel="stylesheet" href="/_astro/index.Bfax5kpe.css">
<style>*{box-sizing:border-box}html{min-height:100vh;scroll-behavior:smooth;-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block-end:0}body{margin:0;padding:1rem;min-height:100vh}h1,h2,h3,h4,h5,h6{margin:1em 0}h1,h2,h3{line-height:1.2}input,select,textarea,button{font:inherit;color:inherit}
.blog-entry[data-astro-cid-f45vxlzk]{display:flex;align-items:flex-start;flex-wrap:wrap;gap:1rem;text-decoration:none;color:var(--text);width:100%;font-family:var(--font-family);padding:1rem;border-radius:calc(var(--border-radius) * 2);height:max-content}.blog-entry[data-astro-cid-f45vxlzk]:hover{border-color:var(--primary-color)}.blog-entry[data-astro-cid-f45vxlzk] .card-content[data-astro-cid-f45vxlzk]{display:flex;flex-direction:column;gap:.5rem;width:100%}.blog-entry[data-astro-cid-f45vxlzk] .coverImage[data-astro-cid-f45vxlzk]{display:flex;width:100%;height:100%;max-width:100%;max-height:300px;overflow:hidden;align-items:flex-start}.blog-entry[data-astro-cid-f45vxlzk] .coverImage[data-astro-cid-f45vxlzk] img[data-astro-cid-f45vxlzk]{width:auto;height:100%;max-width:100%;object-fit:cover;object-position:center;border-radius:var(--border-radius);margin:0;filter:saturate(1);transition:filter .2s ease-in-out}.blog-entry[data-astro-cid-f45vxlzk] .coverImage[data-astro-cid-f45vxlzk] svg{width:100%;height:100%}.blog-entry[data-astro-cid-f45vxlzk]:hover .coverImage[data-astro-cid-f45vxlzk] img[data-astro-cid-f45vxlzk]{filter:saturate(1.2)}.blog-entry[data-astro-cid-f45vxlzk] .description[data-astro-cid-f45vxlzk]{color:var(--text)}.blog-entry[data-astro-cid-f45vxlzk] h2[data-astro-cid-f45vxlzk],.blog-entry[data-astro-cid-f45vxlzk] p[data-astro-cid-f45vxlzk]{width:100%;margin:0}.blog-entry[data-astro-cid-f45vxlzk] h2[data-astro-cid-f45vxlzk]{font-size:var(--font-size-lg);color:var(--heading)}.first .blog-entry[data-astro-cid-f45vxlzk]:not(:has(.coverImage)){h2{font-size:var(--font-size-xl)}}.blog-entry[data-astro-cid-f45vxlzk] .details[data-astro-cid-f45vxlzk]{color:var(--fadeText);width:100%;display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:.5rem}.author-icon[data-astro-cid-f45vxlzk]{border-radius:50%}.blog-entry[data-astro-cid-f45vxlzk] .details[data-astro-cid-f45vxlzk] time[data-astro-cid-f45vxlzk]{font-size:var(--font-size-sm)}.blog-entry[data-astro-cid-f45vxlzk]:hover h2[data-astro-cid-f45vxlzk]{background:var(--animated-gradient);background-size:200% 200%;animation:backgroundMove 3s ease infinite;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.blog-entry[data-astro-cid-f45vxlzk] .tags[data-astro-cid-f45vxlzk]{display:flex;flex-direction:row;gap:.5rem;font-size:var(--font-size-sm)}@media (max-width: 390px){.blog-entry[data-astro-cid-f45vxlzk] .details[data-astro-cid-f45vxlzk]{gap:.5rem}.blog-entry[data-astro-cid-f45vxlzk] .details[data-astro-cid-f45vxlzk] div[data-astro-cid-f45vxlzk]{flex-direction:row;flex-wrap:wrap;align-items:center;width:100%;gap:.5rem}.blog-entry[data-astro-cid-f45vxlzk] .details[data-astro-cid-f45vxlzk] time[data-astro-cid-f45vxlzk]{font-size:.8rem}}
.tag[data-astro-cid-zmpbtckx]{display:flex;flex-direction:row;align-items:center;width:max-content;color:var(--text);text-decoration:none;background-color:var(--surface);padding:.25rem .75rem;border-radius:var(--border-radius);transition:all .2s ease-in-out}.tag[data-astro-cid-zmpbtckx]:hover{color:var(--primary-color)}.count[data-astro-cid-zmpbtckx]{color:var(--fadeText);margin-left:.5rem}.tag[data-astro-cid-zmpbtckx]:hover span[data-astro-cid-zmpbtckx]{background:var(--animated-gradient);background-size:200% 200%;animation:backgroundMove 3s ease infinite;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
</style>
<link rel="stylesheet" href="/_astro/index.By55HJAS.css"><script type="module" src="/_astro/hoisted.CrH9ooOz.js"></script></head> <body> <nav class="navbar" data-astro-cid-ri6uxye2=""> <style>astro-island,astro-slot,astro-static-slot{display:contents}</style><script>(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).load=e;window.dispatchEvent(new Event("astro:load"));})();;(()=>{var v=Object.defineProperty;var A=(c,s,a)=>s in c?v(c,s,{enumerable:!0,configurable:!0,writable:!0,value:a}):c[s]=a;var d=(c,s,a)=>(A(c,typeof s!="symbol"?s+"":s,a),a);var u;{let c={0:t=>m(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t)},s=t=>{let[e,n]=t;return e in c?c[e](n):void 0},a=t=>t.map(s),m=t=>typeof t!="object"||t===null?t:Object.fromEntries(Object.entries(t).map(([e,n])=>[e,s(n)]));customElements.get("astro-island")||customElements.define("astro-island",(u=class extends HTMLElement{constructor(){super(...arguments);d(this,"Component");d(this,"hydrator");d(this,"hydrate",async()=>{var f;if(!this.hydrator||!this.isConnected)return;let e=(f=this.parentElement)==null?void 0:f.closest("astro-island[ssr]");if(e){e.addEventListener("astro:hydrate",this.hydrate,{once:!0});return}let n=this.querySelectorAll("astro-slot"),r={},l=this.querySelectorAll("template[data-astro-template]");for(let o of l){let i=o.closest(this.tagName);i!=null&&i.isSameNode(this)&&(r[o.getAttribute("data-astro-template")||"default"]=o.innerHTML,o.remove())}for(let o of n){let i=o.closest(this.tagName);i!=null&&i.isSameNode(this)&&(r[o.getAttribute("name")||"default"]=o.innerHTML)}let h;try{h=this.hasAttribute("props")?m(JSON.parse(this.getAttribute("props"))):{}}catch(o){let i=this.getAttribute("component-url")||"<unknown>",b=this.getAttribute("component-export");throw b&&(i+=` (export ${b})`),console.error(`[hydrate] Error parsing props for component ${i}`,this.getAttribute("props"),o),o}let p;await this.hydrator(this)(this.Component,h,r,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))});d(this,"unmount",()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))})}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute("await-children")||document.readyState==="interactive"||document.readyState==="complete")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener("DOMContentLoaded",e),n.disconnect(),this.childrenConnectedCallback()},n=new MutationObserver(()=>{var r;((r=this.lastChild)==null?void 0:r.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue==="astro:end"&&(this.lastChild.remove(),e())});n.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",e)}}async childrenConnectedCallback(){let e=this.getAttribute("before-hydration-url");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute("opts")),n=this.getAttribute("client");if(Astro[n]===void 0){window.addEventListener(`astro:${n}`,()=>this.start(),{once:!0});return}try{await Astro[n](async()=>{let r=this.getAttribute("renderer-url"),[l,{default:h}]=await Promise.all([import(this.getAttribute("component-url")),r?import(r):()=>()=>{}]),p=this.getAttribute("component-export")||"default";if(!p.includes("."))this.Component=l[p];else{this.Component=l;for(let y of p.split("."))this.Component=this.Component[y]}return this.hydrator=h,this.hydrate},e,this)}catch(r){console.error(`[astro-island] Error hydrating ${this.getAttribute("component-url")}`,r)}}attributeChangedCallback(){this.hydrate()}},d(u,"observedAttributes",["props"]),u))}})();</script><script>window._$HY||(e=>{let t=e=>e&&e.hasAttribute&&(e.hasAttribute("data-hk")?e:t(e.host&&e.host.nodeType?e.host:e.parentNode));["click", "input"].forEach((o=>document.addEventListener(o,(o=>{let a=o.composedPath&&o.composedPath()[0]||o.target,s=t(a);s&&!e.completed.has(s)&&e.events.push([s,o])}))))})(_$HY={events:[],completed:new WeakSet,r:{},fe(){}});self._$=self._$||{P:function(s,f,p){return(p=new Promise(function(a,b){s=a,f=b})).s=s,p.f=f,p},uP:function(p){delete p.s;delete p.f},Ps:function(p,d){p.s(d),p.status="success",p.value=d,this.uP(p)},Pf:function(p,d){p.f(d),p.status="failure",p.value=d,this.uP(p)},uS:function(s){delete s.c},Se:function(s,t,d,c){switch(c=s.c,t){case 0:return c.enqueue(d);case 1:return(this.uS(s),c.error(d));case 2:return(this.uS(s),c.close())}},S:function(s,c){return(s=new ReadableStream({start:function(x){c=x}})).c=c,s}}</script><!--xs--><astro-island uid="1N6FlW" data-solid-render-id="s1" component-url="/_astro/tooltip.ChzN1Gb3.js" component-export="Tooltip" renderer-url="/_astro/client.BVNxlHOq.js" props="{"placement":[0,"top"],"icon":[0,"ph:house-duotone"],"id":[0,"home-tooltip"],"data-astro-cid-ri6uxye2":[0,true]}" client="load" opts="{"name":"Tooltip","value":true}" await-children=""><div data-hk="s10-0-0-0-0" class="wrapper go3988363021 " aria-describedby="home-tooltip"><astro-slot> <a href="/" aria-label="Home" class="navSurface" data-astro-cid-ri6uxye2=""> <div class="navLogo" data-astro-cid-ri6uxye2=""></div> </a> </astro-slot><div data-hk="s10-0-0-0-1-0" role="tooltip" id="home-tooltip" class="go3948540184 go2497111954 "><iconify-icon data-hk="s10-0-0-0-1-1-0" icon="ph:house-duotone"></iconify-icon><astro-slot name="tooltip"><span data-astro-cid-ri6uxye2="">Home</span></astro-slot></div></div></astro-island> <div class="navlinks navSurface" data-astro-cid-ri6uxye2=""> <a class="navLink text-gradient-fx " href="/blag/" data-astro-cid-j4bvlyv2=""> Blag </a> <a class="navLink text-gradient-fx " href="/projects/" data-astro-cid-j4bvlyv2=""> Projects </a> <a class="navLink text-gradient-fx " href="/design/" data-astro-cid-j4bvlyv2=""> Design </a> <a class="navLink text-gradient-fx " href="https://x5z.studio" data-astro-cid-j4bvlyv2=""> x5z </a> </div> <div class="mobile-menu navSurface" data-astro-cid-ri6uxye2=""> <a class="navLink text-gradient-fx " href="/blag/" data-astro-cid-j4bvlyv2=""> Blag </a> <a class="navLink text-gradient-fx " href="/projects/" data-astro-cid-j4bvlyv2=""> Projects </a> <a class="navLink text-gradient-fx " href="/design/" data-astro-cid-j4bvlyv2=""> Design </a> <a class="navLink text-gradient-fx " href="https://x5z.studio" data-astro-cid-j4bvlyv2=""> x5z </a> </div> <div class="mobile-menu-button navButton navSurface" data-astro-cid-ri6uxye2=""> <iconify-icon icon="ph:dots-three" data-astro-cid-ri6uxye2=""></iconify-icon> </div> <div id="SitePreferences" data-astro-cid-ri6uxye2=""> <astro-island uid="1MB5r8" data-solid-render-id="s2" component-url="/_astro/tooltip.ChzN1Gb3.js" component-export="Tooltip" renderer-url="/_astro/client.BVNxlHOq.js" props="{"placement":[0,"top"],"icon":[0,"ph:music-notes-duotone"],"id":[0,"music-tooltip"],"data-astro-cid-ri6uxye2":[0,true]}" client="load" opts="{"name":"Tooltip","value":true}" await-children=""><div data-hk="s20-0-0-0-0" class="wrapper go3988363021 " aria-describedby="music-tooltip"><astro-slot> <astro-island uid="ZtRyHb" data-solid-render-id="s0" component-url="/_astro/audioButton.GhRH4OOA.js" component-export="AudioButton" renderer-url="/_astro/client.BVNxlHOq.js" props="{"data-astro-cid-ri6uxye2":[0,true]}" client="load" opts="{"name":"AudioButton","value":true}" await-children=""><button data-hk="s00-0-0-0" class="navButton " id="audioButton" aria-label="Play audio"><iconify-icon icon="ph:speaker-none-duotone"></iconify-icon></button></astro-island> </astro-slot><div data-hk="s20-0-0-0-1-0" role="tooltip" id="music-tooltip" class="go3948540184 go2497111954 "><iconify-icon data-hk="s20-0-0-0-1-1-0" icon="ph:music-notes-duotone"></iconify-icon><astro-slot name="tooltip"><span data-astro-cid-ri6uxye2="">Music</span></astro-slot></div></div></astro-island> <script>(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).only=e;window.dispatchEvent(new Event("astro:only"));})();</script><astro-island uid="2efu3V" component-url="/_astro/popup.tnGHNcsF.js" component-export="ThemePopup" renderer-url="/_astro/client.BVNxlHOq.js" props="{"data-astro-cid-ri6uxye2":[0,true]}" client="only" opts="{"name":"ThemePopup","value":true}"><div class="go845654897" id="themeManagerPopup"><div class="wrapper go3988363021" aria-describedby="themescura-tooltip"><button class="navButton go2737468010" aria-label="Open Theme Manager"><iconify-icon icon="xyp:customize"></iconify-icon></button><div class="go3948540184 go2497111954" role="tooltip" id="themescura-tooltip"><iconify-icon icon="ph:palette-duotone"></iconify-icon><span>Customize Theme</span></div></div></div></astro-island> </div> </nav> <main data-astro-cid-j7pv25f6=""> <div class="intro" data-astro-cid-j7pv25f6=""> <div class="wrapper" data-astro-cid-qglt5a4e=""> <div class="easeLogo" data-astro-cid-qglt5a4e=""></div> </div> <div class="intro-content" data-astro-cid-j7pv25f6=""> <h1 data-astro-cid-j7pv25f6="">Hi, I am <span class="text-gradient-fx-constant" data-astro-cid-j7pv25f6="">xypnox</span>.</h1> <p class="subline" data-astro-cid-j7pv25f6="">I design/develop interfaces.</p> <p data-astro-cid-j7pv25f6="">The lair for works, designs, & writings.</p> <p data-astro-cid-j7pv25f6=""><a href="/now/" data-astro-cid-j7pv25f6="">What am I upto?</a></p> </div> </div> <div class="containers" data-astro-cid-j7pv25f6=""> <div class="container-wrapper theme-card" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <div class="home-icon" data-astro-cid-3ylcv7tw=""> <svg width="756" height="954" viewBox="0 0 756 954" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M656 111H151C95.7715 111 51 155.772 51 211V716C51 771.228 95.7715 816 151 816H656C711.228 816 756 771.228 756 716V211C756 155.772 711.228 111 656 111Z" class="bg-fill"></path> <path d="M656 111H151C95.7715 111 51 155.772 51 211V716C51 771.228 95.7715 816 151 816H656C711.228 816 756 771.228 756 716V211C756 155.772 711.228 111 656 111Z" fill="url(#paint0_radial_791_2639)" fill-opacity="0.5"></path> <path opacity="0.05" d="M107.5 413C113.299 413 118 408.523 118 403C118 397.477 113.299 393 107.5 393C101.701 393 97 397.477 97 403C97 408.523 101.701 413 107.5 413Z" class="surface-fill"></path> <path opacity="0.05" d="M159 413C164.523 413 169 408.523 169 403C169 397.477 164.523 393 159 393C153.477 393 149 397.477 149 403C149 408.523 153.477 413 159 413Z" class="surface-fill"></path> <path opacity="0.05" d="M211 413C216.523 413 221 408.523 221 403C221 397.477 216.523 393 211 393C205.477 393 201 397.477 201 403C201 408.523 205.477 413 211 413Z" class="surface-fill"></path> <path opacity="0.05" d="M263 413C268.523 413 273 408.523 273 403C273 397.477 268.523 393 263 393C257.477 393 253 397.477 253 403C253 408.523 257.477 413 263 413Z" class="surface-fill"></path> <path opacity="0.05" d="M314.5 413C320.299 413 325 408.523 325 403C325 397.477 320.299 393 314.5 393C308.701 393 304 397.477 304 403C304 408.523 308.701 413 314.5 413Z" class="surface-fill"></path> <path opacity="0.25" d="M366.5 413C372.299 413 377 408.523 377 403C377 397.477 372.299 393 366.5 393C360.701 393 356 397.477 356 403C356 408.523 360.701 413 366.5 413Z" class="primary-fill"></path> <path opacity="0.05" d="M418.5 413C424.299 413 429 408.523 429 403C429 397.477 424.299 393 418.5 393C412.701 393 408 397.477 408 403C408 408.523 412.701 413 418.5 413Z" class="surface-fill"></path> <path opacity="0.05" d="M470 413C475.523 413 480 408.523 480 403C480 397.477 475.523 393 470 393C464.477 393 460 397.477 460 403C460 408.523 464.477 413 470 413Z" class="surface-fill"></path> <path opacity="0.05" d="M522 413C527.523 413 532 408.523 532 403C532 397.477 527.523 393 522 393C516.477 393 512 397.477 512 403C512 408.523 516.477 413 522 413Z" class="surface-fill"></path> <path opacity="0.05" d="M574 413C579.523 413 584 408.523 584 403C584 397.477 579.523 393 574 393C568.477 393 564 397.477 564 403C564 408.523 568.477 413 574 413Z" class="surface-fill"></path> <path opacity="0.25" d="M107.5 466C113.299 466 118 461.299 118 455.5C118 449.701 113.299 445 107.5 445C101.701 445 97 449.701 97 455.5C97 461.299 101.701 466 107.5 466Z" class="primary-fill"></path> <path opacity="0.05" d="M159 466C164.523 466 169 461.299 169 455.5C169 449.701 164.523 445 159 445C153.477 445 149 449.701 149 455.5C149 461.299 153.477 466 159 466Z" class="surface-fill"></path> <path opacity="0.05" d="M211 466C216.523 466 221 461.299 221 455.5C221 449.701 216.523 445 211 445C205.477 445 201 449.701 201 455.5C201 461.299 205.477 466 211 466Z" class="surface-fill"></path> <path opacity="0.5" d="M263 466C268.523 466 273 461.299 273 455.5C273 449.701 268.523 445 263 445C257.477 445 253 449.701 253 455.5C253 461.299 257.477 466 263 466Z" class="primary-fill"></path> <path opacity="0.05" d="M314.5 466C320.299 466 325 461.299 325 455.5C325 449.701 320.299 445 314.5 445C308.701 445 304 449.701 304 455.5C304 461.299 308.701 466 314.5 466Z" class="surface-fill"></path> <path opacity="0.05" d="M366.5 466C372.299 466 377 461.299 377 455.5C377 449.701 372.299 445 366.5 445C360.701 445 356 449.701 356 455.5C356 461.299 360.701 466 366.5 466Z" class="surface-fill"></path> <path opacity="0.05" d="M418.5 466C424.299 466 429 461.299 429 455.5C429 449.701 424.299 445 418.5 445C412.701 445 408 449.701 408 455.5C408 461.299 412.701 466 418.5 466Z" class="surface-fill"></path> <path opacity="0.05" d="M470 466C475.523 466 480 461.299 480 455.5C480 449.701 475.523 445 470 445C464.477 445 460 449.701 460 455.5C460 461.299 464.477 466 470 466Z" class="surface-fill"></path> <path opacity="0.5" d="M522 466C527.523 466 532 461.299 532 455.5C532 449.701 527.523 445 522 445C516.477 445 512 449.701 512 455.5C512 461.299 516.477 466 522 466Z" class="primary-fill"></path> <path opacity="0.05" d="M574 466C579.523 466 584 461.299 584 455.5C584 449.701 579.523 445 574 445C568.477 445 564 449.701 564 455.5C564 461.299 568.477 466 574 466Z" class="surface-fill"></path> <path opacity="0.05" d="M107.5 518C113.299 518 118 513.523 118 508C118 502.477 113.299 498 107.5 498C101.701 498 97 502.477 97 508C97 513.523 101.701 518 107.5 518Z" class="surface-fill"></path> <path d="M159 518C164.523 518 169 513.523 169 508C169 502.477 164.523 498 159 498C153.477 498 149 502.477 149 508C149 513.523 153.477 518 159 518Z" class="primary-fill"></path> <path opacity="0.05" d="M211 518C216.523 518 221 513.523 221 508C221 502.477 216.523 498 211 498C205.477 498 201 502.477 201 508C201 513.523 205.477 518 211 518Z" class="surface-fill"></path> <path opacity="0.05" d="M263 518C268.523 518 273 513.523 273 508C273 502.477 268.523 498 263 498C257.477 498 253 502.477 253 508C253 513.523 257.477 518 263 518Z" class="surface-fill"></path> <path opacity="0.05" d="M314.5 518C320.299 518 325 513.523 325 508C325 502.477 320.299 498 314.5 498C308.701 498 304 502.477 304 508C304 513.523 308.701 518 314.5 518Z" class="surface-fill"></path> <path opacity="0.05" d="M366.5 518C372.299 518 377 513.523 377 508C377 502.477 372.299 498 366.5 498C360.701 498 356 502.477 356 508C356 513.523 360.701 518 366.5 518Z" class="surface-fill"></path> <path d="M418.5 518C424.299 518 429 513.523 429 508C429 502.477 424.299 498 418.5 498C412.701 498 408 502.477 408 508C408 513.523 412.701 518 418.5 518Z" class="primary-fill"></path> <path opacity="0.05" d="M470 518C475.523 518 480 513.523 480 508C480 502.477 475.523 498 470 498C464.477 498 460 502.477 460 508C460 513.523 464.477 518 470 518Z" class="surface-fill"></path> <path opacity="0.05" d="M522 518C527.523 518 532 513.523 532 508C532 502.477 527.523 498 522 498C516.477 498 512 502.477 512 508C512 513.523 516.477 518 522 518Z" class="surface-fill"></path> <path opacity="0.05" d="M574 518C579.523 518 584 513.523 584 508C584 502.477 579.523 498 574 498C568.477 498 564 502.477 564 508C564 513.523 568.477 518 574 518Z" class="surface-fill"></path> <path opacity="0.05" d="M107.5 571C113.299 571 118 566.299 118 560.5C118 554.701 113.299 550 107.5 550C101.701 550 97 554.701 97 560.5C97 566.299 101.701 571 107.5 571Z" class="surface-fill"></path> <path opacity="0.05" d="M159 571C164.523 571 169 566.299 169 560.5C169 554.701 164.523 550 159 550C153.477 550 149 554.701 149 560.5C149 566.299 153.477 571 159 571Z" class="surface-fill"></path> <path opacity="0.2" d="M211 571C216.523 571 221 566.299 221 560.5C221 554.701 216.523 550 211 550C205.477 550 201 554.701 201 560.5C201 566.299 205.477 571 211 571Z" class="primary-fill"></path> <path opacity="0.05" d="M263 571C268.523 571 273 566.299 273 560.5C273 554.701 268.523 550 263 550C257.477 550 253 554.701 253 560.5C253 566.299 257.477 571 263 571Z" class="surface-fill"></path> <path opacity="0.05" d="M314.5 571C320.299 571 325 566.299 325 560.5C325 554.701 320.299 550 314.5 550C308.701 550 304 554.701 304 560.5C304 566.299 308.701 571 314.5 571Z" class="surface-fill"></path> <path opacity="0.05" d="M366.5 571C372.299 571 377 566.299 377 560.5C377 554.701 372.299 550 366.5 550C360.701 550 356 554.701 356 560.5C356 566.299 360.701 571 366.5 571Z" class="surface-fill"></path> <path opacity="0.25" d="M418.5 571C424.299 571 429 566.299 429 560.5C429 554.701 424.299 550 418.5 550C412.701 550 408 554.701 408 560.5C408 566.299 412.701 571 418.5 571Z" class="primary-fill"></path> <path opacity="0.05" d="M470 571C475.523 571 480 566.299 480 560.5C480 554.701 475.523 550 470 550C464.477 550 460 554.701 460 560.5C460 566.299 464.477 571 470 571Z" class="surface-fill"></path> <path opacity="0.05" d="M522 571C527.523 571 532 566.299 532 560.5C532 554.701 527.523 550 522 550C516.477 550 512 554.701 512 560.5C512 566.299 516.477 571 522 571Z" class="surface-fill"></path> <path opacity="0.05" d="M574 571C579.523 571 584 566.299 584 560.5C584 554.701 579.523 550 574 550C568.477 550 564 554.701 564 560.5C564 566.299 568.477 571 574 571Z" class="surface-fill"></path> <path opacity="0.05" d="M107.5 623C113.299 623 118 618.523 118 613C118 607.477 113.299 603 107.5 603C101.701 603 97 607.477 97 613C97 618.523 101.701 623 107.5 623Z" class="surface-fill"></path> <path opacity="0.2" d="M159 623C164.523 623 169 618.523 169 613C169 607.477 164.523 603 159 603C153.477 603 149 607.477 149 613C149 618.523 153.477 623 159 623Z" class="primary-fill"></path> <path opacity="0.05" d="M211 623C216.523 623 221 618.523 221 613C221 607.477 216.523 603 211 603C205.477 603 201 607.477 201 613C201 618.523 205.477 623 211 623Z" class="surface-fill"></path> <path opacity="0.05" d="M263 623C268.523 623 273 618.523 273 613C273 607.477 268.523 603 263 603C257.477 603 253 607.477 253 613C253 618.523 257.477 623 263 623Z" class="surface-fill"></path> <path opacity="0.05" d="M314.5 623C320.299 623 325 618.523 325 613C325 607.477 320.299 603 314.5 603C308.701 603 304 607.477 304 613C304 618.523 308.701 623 314.5 623Z" class="surface-fill"></path> <path opacity="0.05" d="M366.5 623C372.299 623 377 618.523 377 613C377 607.477 372.299 603 366.5 603C360.701 603 356 607.477 356 613C356 618.523 360.701 623 366.5 623Z" class="surface-fill"></path> <path opacity="0.05" d="M418.5 623C424.299 623 429 618.523 429 613C429 607.477 424.299 603 418.5 603C412.701 603 408 607.477 408 613C408 618.523 412.701 623 418.5 623Z" class="surface-fill"></path> <path opacity="0.05" d="M470 623C475.523 623 480 618.523 480 613C480 607.477 475.523 603 470 603C464.477 603 460 607.477 460 613C460 618.523 464.477 623 470 623Z" class="surface-fill"></path> <path d="M522 623C527.523 623 532 618.523 532 613C532 607.477 527.523 603 522 603C516.477 603 512 607.477 512 613C512 618.523 516.477 623 522 623Z" class="primary-fill"></path> <path opacity="0.05" d="M574 623C579.523 623 584 618.523 584 613C584 607.477 579.523 603 574 603C568.477 603 564 607.477 564 613C564 618.523 568.477 623 574 623Z" class="surface-fill"></path> <path opacity="0.05" d="M107.5 676C113.299 676 118 671.299 118 665.5C118 659.701 113.299 655 107.5 655C101.701 655 97 659.701 97 665.5C97 671.299 101.701 676 107.5 676Z" class="surface-fill"></path> <path opacity="0.05" d="M159 676C164.523 676 169 671.299 169 665.5C169 659.701 164.523 655 159 655C153.477 655 149 659.701 149 665.5C149 671.299 153.477 676 159 676Z" class="surface-fill"></path> <path opacity="0.05" d="M211 676C216.523 676 221 671.299 221 665.5C221 659.701 216.523 655 211 655C205.477 655 201 659.701 201 665.5C201 671.299 205.477 676 211 676Z" class="surface-fill"></path> <path opacity="0.05" d="M263 676C268.523 676 273 671.299 273 665.5C273 659.701 268.523 655 263 655C257.477 655 253 659.701 253 665.5C253 671.299 257.477 676 263 676Z" class="surface-fill"></path> <path opacity="0.05" d="M314.5 676C320.299 676 325 671.299 325 665.5C325 659.701 320.299 655 314.5 655C308.701 655 304 659.701 304 665.5C304 671.299 308.701 676 314.5 676Z" class="surface-fill"></path> <path opacity="0.05" d="M366.5 676C372.299 676 377 671.299 377 665.5C377 659.701 372.299 655 366.5 655C360.701 655 356 659.701 356 665.5C356 671.299 360.701 676 366.5 676Z" class="surface-fill"></path> <path opacity="0.05" d="M418.5 676C424.299 676 429 671.299 429 665.5C429 659.701 424.299 655 418.5 655C412.701 655 408 659.701 408 665.5C408 671.299 412.701 676 418.5 676Z" class="surface-fill"></path> <path d="M470 676C475.523 676 480 671.299 480 665.5C480 659.701 475.523 655 470 655C464.477 655 460 659.701 460 665.5C460 671.299 464.477 676 470 676Z" class="primary-fill"></path> <path opacity="0.05" d="M522 676C527.523 676 532 671.299 532 665.5C532 659.701 527.523 655 522 655C516.477 655 512 659.701 512 665.5C512 671.299 516.477 676 522 676Z" class="surface-fill"></path> <path opacity="0.05" d="M574 676C579.523 676 584 671.299 584 665.5C584 659.701 579.523 655 574 655C568.477 655 564 659.701 564 665.5C564 671.299 568.477 676 574 676Z" class="surface-fill"></path> <path opacity="0.05" d="M107.5 728C113.299 728 118 723.523 118 718C118 712.477 113.299 708 107.5 708C101.701 708 97 712.477 97 718C97 723.523 101.701 728 107.5 728Z" class="surface-fill"></path> <path opacity="0.05" d="M159 728C164.523 728 169 723.523 169 718C169 712.477 164.523 708 159 708C153.477 708 149 712.477 149 718C149 723.523 153.477 728 159 728Z" class="surface-fill"></path> <path opacity="0.2" d="M211 728C216.523 728 221 723.523 221 718C221 712.477 216.523 708 211 708C205.477 708 201 712.477 201 718C201 723.523 205.477 728 211 728Z" class="primary-fill"></path> <path opacity="0.05" d="M263 728C268.523 728 273 723.523 273 718C273 712.477 268.523 708 263 708C257.477 708 253 712.477 253 718C253 723.523 257.477 728 263 728Z" class="surface-fill"></path> <path opacity="0.05" d="M314.5 728C320.299 728 325 723.523 325 718C325 712.477 320.299 708 314.5 708C308.701 708 304 712.477 304 718C304 723.523 308.701 728 314.5 728Z" class="surface-fill"></path> <path opacity="0.05" d="M366.5 728C372.299 728 377 723.523 377 718C377 712.477 372.299 708 366.5 708C360.701 708 356 712.477 356 718C356 723.523 360.701 728 366.5 728Z" class="surface-fill"></path> <path opacity="0.05" d="M418.5 728C424.299 728 429 723.523 429 718C429 712.477 424.299 708 418.5 708C412.701 708 408 712.477 408 718C408 723.523 412.701 728 418.5 728Z" class="surface-fill"></path> <path opacity="0.05" d="M470 728C475.523 728 480 723.523 480 718C480 712.477 475.523 708 470 708C464.477 708 460 712.477 460 718C460 723.523 464.477 728 470 728Z" class="surface-fill"></path> <path opacity="0.05" d="M522 728C527.523 728 532 723.523 532 718C532 712.477 527.523 708 522 708C516.477 708 512 712.477 512 718C512 723.523 516.477 728 522 728Z" class="surface-fill"></path> <path opacity="0.25" d="M574 728C579.523 728 584 723.523 584 718C584 712.477 579.523 708 574 708C568.477 708 564 712.477 564 718C564 723.523 568.477 728 574 728Z" class="primary-fill"></path> <path opacity="0.05" d="M107.5 781C113.299 781 118 776.299 118 770.5C118 764.701 113.299 760 107.5 760C101.701 760 97 764.701 97 770.5C97 776.299 101.701 781 107.5 781Z" class="surface-fill"></path> <path opacity="0.05" d="M159 781C164.523 781 169 776.299 169 770.5C169 764.701 164.523 760 159 760C153.477 760 149 764.701 149 770.5C149 776.299 153.477 781 159 781Z" class="surface-fill"></path> <path opacity="0.05" d="M211 781C216.523 781 221 776.299 221 770.5C221 764.701 216.523 760 211 760C205.477 760 201 764.701 201 770.5C201 776.299 205.477 781 211 781Z" class="surface-fill"></path> <path opacity="0.05" d="M263 781C268.523 781 273 776.299 273 770.5C273 764.701 268.523 760 263 760C257.477 760 253 764.701 253 770.5C253 776.299 257.477 781 263 781Z" class="surface-fill"></path> <path opacity="0.05" d="M314.5 781C320.299 781 325 776.299 325 770.5C325 764.701 320.299 760 314.5 760C308.701 760 304 764.701 304 770.5C304 776.299 308.701 781 314.5 781Z" class="surface-fill"></path> <path opacity="0.05" d="M366.5 781C372.299 781 377 776.299 377 770.5C377 764.701 372.299 760 366.5 760C360.701 760 356 764.701 356 770.5C356 776.299 360.701 781 366.5 781Z" class="surface-fill"></path> <path opacity="0.05" d="M418.5 781C424.299 781 429 776.299 429 770.5C429 764.701 424.299 760 418.5 760C412.701 760 408 764.701 408 770.5C408 776.299 412.701 781 418.5 781Z" class="surface-fill"></path> <path opacity="0.05" d="M470 781C475.523 781 480 776.299 480 770.5C480 764.701 475.523 760 470 760C464.477 760 460 764.701 460 770.5C460 776.299 464.477 781 470 781Z" class="surface-fill"></path> <path opacity="0.5" d="M522 781C527.523 781 532 776.299 532 770.5C532 764.701 527.523 760 522 760C516.477 760 512 764.701 512 770.5C512 776.299 516.477 781 522 781Z" class="primary-fill"></path> <path opacity="0.05" d="M574 781C579.523 781 584 776.299 584 770.5C584 764.701 579.523 760 574 760C568.477 760 564 764.701 564 770.5C564 776.299 568.477 781 574 781Z" class="surface-fill"></path> <path opacity="0.05" d="M107.5 833C113.299 833 118 828.523 118 823C118 817.477 113.299 813 107.5 813C101.701 813 97 817.477 97 823C97 828.523 101.701 833 107.5 833Z" class="surface-fill"></path> <path opacity="0.05" d="M159 833C164.523 833 169 828.523 169 823C169 817.477 164.523 813 159 813C153.477 813 149 817.477 149 823C149 828.523 153.477 833 159 833Z" class="surface-fill"></path> <path opacity="0.05" d="M211 833C216.523 833 221 828.523 221 823C221 817.477 216.523 813 211 813C205.477 813 201 817.477 201 823C201 828.523 205.477 833 211 833Z" class="surface-fill"></path> <path opacity="0.05" d="M263 833C268.523 833 273 828.523 273 823C273 817.477 268.523 813 263 813C257.477 813 253 817.477 253 823C253 828.523 257.477 833 263 833Z" class="surface-fill"></path> <path opacity="0.05" d="M314.5 833C320.299 833 325 828.523 325 823C325 817.477 320.299 813 314.5 813C308.701 813 304 817.477 304 823C304 828.523 308.701 833 314.5 833Z" class="surface-fill"></path> <path opacity="0.05" d="M366.5 833C372.299 833 377 828.523 377 823C377 817.477 372.299 813 366.5 813C360.701 813 356 817.477 356 823C356 828.523 360.701 833 366.5 833Z" class="surface-fill"></path> <path opacity="0.05" d="M418.5 833C424.299 833 429 828.523 429 823C429 817.477 424.299 813 418.5 813C412.701 813 408 817.477 408 823C408 828.523 412.701 833 418.5 833Z" class="surface-fill"></path> <path d="M470 833C475.523 833 480 828.523 480 823C480 817.477 475.523 813 470 813C464.477 813 460 817.477 460 823C460 828.523 464.477 833 470 833Z" class="primary-fill"></path> <path opacity="0.25" d="M522 833C527.523 833 532 828.523 532 823C532 817.477 527.523 813 522 813C516.477 813 512 817.477 512 823C512 828.523 516.477 833 522 833Z" class="primary-fill"></path> <path opacity="0.05" d="M574 833C579.523 833 584 828.523 584 823C584 817.477 579.523 813 574 813C568.477 813 564 817.477 564 823C564 828.523 568.477 833 574 833Z" class="surface-fill"></path> <path opacity="0.05" d="M107.5 886C113.299 886 118 881.299 118 875.5C118 869.701 113.299 865 107.5 865C101.701 865 97 869.701 97 875.5C97 881.299 101.701 886 107.5 886Z" class="surface-fill"></path> <path opacity="0.05" d="M159 886C164.523 886 169 881.299 169 875.5C169 869.701 164.523 865 159 865C153.477 865 149 869.701 149 875.5C149 881.299 153.477 886 159 886Z" class="surface-fill"></path> <path opacity="0.05" d="M211 886C216.523 886 221 881.299 221 875.5C221 869.701 216.523 865 211 865C205.477 865 201 869.701 201 875.5C201 881.299 205.477 886 211 886Z" class="surface-fill"></path> <path opacity="0.05" d="M263 886C268.523 886 273 881.299 273 875.5C273 869.701 268.523 865 263 865C257.477 865 253 869.701 253 875.5C253 881.299 257.477 886 263 886Z" class="surface-fill"></path> <path opacity="0.05" d="M314.5 886C320.299 886 325 881.299 325 875.5C325 869.701 320.299 865 314.5 865C308.701 865 304 869.701 304 875.5C304 881.299 308.701 886 314.5 886Z" class="surface-fill"></path> <path opacity="0.05" d="M366.5 886C372.299 886 377 881.299 377 875.5C377 869.701 372.299 865 366.5 865C360.701 865 356 869.701 356 875.5C356 881.299 360.701 886 366.5 886Z" class="surface-fill"></path> <path opacity="0.5" d="M418.5 886C424.299 886 429 881.299 429 875.5C429 869.701 424.299 865 418.5 865C412.701 865 408 869.701 408 875.5C408 881.299 412.701 886 418.5 886Z" class="primary-fill"></path> <path opacity="0.05" d="M470 886C475.523 886 480 881.299 480 875.5C480 869.701 475.523 865 470 865C464.477 865 460 869.701 460 875.5C460 881.299 464.477 886 470 886Z" class="surface-fill"></path> <path opacity="0.05" d="M522 886C527.523 886 532 881.299 532 875.5C532 869.701 527.523 865 522 865C516.477 865 512 869.701 512 875.5C512 881.299 516.477 886 522 886Z" class="surface-fill"></path> <path opacity="0.05" d="M574 886C579.523 886 584 881.299 584 875.5C584 869.701 579.523 865 574 865C568.477 865 564 869.701 564 875.5C564 881.299 568.477 886 574 886Z" class="surface-fill"></path> <path opacity="0.07" d="M355.408 572.248C355.408 554.575 341.081 540.248 323.408 540.248H64.592C46.9189 540.248 32.592 554.575 32.592 572.248V883.832C32.592 901.505 46.9189 915.832 64.592 915.832H323.408C341.081 915.832 355.408 901.505 355.408 883.832V572.248Z" class="surface-fill"></path> <path opacity="0.12" d="M363 503H25C11.1929 503 0 514.193 0 528V611.472C0 625.279 11.1929 636.472 25 636.472H363C376.807 636.472 388 625.279 388 611.472V528C388 514.193 376.807 503 363 503Z" class="surface-fill"></path> <path opacity="0.12" d="M363 661.304H25C11.1929 661.304 0 672.497 0 686.304V769.776C0 783.583 11.1929 794.776 25 794.776H363C376.807 794.776 388 783.583 388 769.776V686.304C388 672.497 376.807 661.304 363 661.304Z" class="surface-fill"></path> <path opacity="0.12" d="M363 819.608H25C11.1929 819.608 0 830.801 0 844.608V928.08C0 941.887 11.1929 953.08 25 953.08H363C376.807 953.08 388 941.887 388 928.08V844.608C388 830.801 376.807 819.608 363 819.608Z" class="surface-fill"></path> <path opacity="0.4" d="M271 538.416C271 545.273 276.559 550.832 283.416 550.832C290.273 550.832 295.832 545.273 295.832 538.416C295.832 531.559 290.273 526 283.416 526C276.559 526 271 531.559 271 538.416Z" class="primary-fill"></path> <path opacity="0.8" d="M306.696 538.416C306.696 545.273 312.255 550.832 319.112 550.832C325.969 550.832 331.528 545.273 331.528 538.416C331.528 531.559 325.969 526 319.112 526C312.255 526 306.696 531.559 306.696 538.416Z" class="primary-fill"></path> <path d="M342.392 538.416C342.392 545.273 347.951 550.832 354.808 550.832C361.665 550.832 367.224 545.273 367.224 538.416C367.224 531.559 361.665 526 354.808 526C347.951 526 342.392 531.559 342.392 538.416Z" class="primary-fill"></path> <path opacity="0.4" d="M271 695.168C271 702.025 276.559 707.584 283.416 707.584C290.273 707.584 295.832 702.025 295.832 695.168C295.832 688.311 290.273 682.752 283.416 682.752C276.559 682.752 271 688.311 271 695.168Z" class="primary-fill"></path> <path opacity="0.8" d="M306.696 695.168C306.696 702.025 312.255 707.584 319.112 707.584C325.969 707.584 331.528 702.025 331.528 695.168C331.528 688.311 325.969 682.752 319.112 682.752C312.255 682.752 306.696 688.311 306.696 695.168Z" class="primary-fill"></path> <path d="M342.392 695.168C342.392 702.025 347.951 707.584 354.808 707.584C361.665 707.584 367.224 702.025 367.224 695.168C367.224 688.311 361.665 682.752 354.808 682.752C347.951 682.752 342.392 688.311 342.392 695.168Z" class="primary-fill"></path> <path opacity="0.4" d="M271 851.92C271 858.777 276.559 864.336 283.416 864.336C290.273 864.336 295.832 858.777 295.832 851.92C295.832 845.063 290.273 839.504 283.416 839.504C276.559 839.504 271 845.063 271 851.92Z" class="primary-fill"></path> <path opacity="0.8" d="M306.696 851.92C306.696 858.777 312.255 864.336 319.112 864.336C325.969 864.336 331.528 858.777 331.528 851.92C331.528 845.063 325.969 839.504 319.112 839.504C312.255 839.504 306.696 845.063 306.696 851.92Z" class="primary-fill"></path> <path d="M342.392 851.92C342.392 858.777 347.951 864.336 354.808 864.336C361.665 864.336 367.224 858.777 367.224 851.92C367.224 845.063 361.665 839.504 354.808 839.504C347.951 839.504 342.392 845.063 342.392 851.92Z" class="primary-fill"></path> <g opacity="0.2" filter="url(#filter0_f_791_2639)"> <path d="M614.658 163.427C603.166 106.722 553.916 64 494 64C446.391 64 405.35 91.1179 384.825 130.552C335.575 135.483 297 177.395 297 228.375C297 282.611 341.317 327 395.5 327H608.916C654.058 327 690.999 290.012 690.999 244.813C691.086 224.044 683.22 204.032 669.02 188.893C654.82 173.755 635.365 164.641 614.658 163.427Z" class="primary-fill"></path> </g> <path d="M614.658 123.427C603.166 66.7215 553.916 24 494 24C446.391 24 405.35 51.1179 384.825 90.5518C335.575 95.483 297 137.395 297 188.375C297 242.611 341.317 287 395.5 287H608.916C654.058 287 690.999 250.012 690.999 204.813C691.086 184.044 683.22 164.032 669.02 148.893C654.82 133.755 635.365 124.641 614.658 123.427Z" class="primary-fill"></path> <defs> <filter id="filter0_f_791_2639" x="233" y="0" width="522" height="391" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> <feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood> <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend> <feGaussianBlur stdDeviation="32" result="effect1_foregroundBlur_791_2639"></feGaussianBlur> </filter> <radialGradient id="paint0_radial_791_2639" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(511.6 180.325) rotate(99.6511) scale(644.801)"> <stop class="primary-stop-color"></stop> <stop offset="1" class="primary-stop-color" stop-opacity="0"></stop> </radialGradient> </defs> </svg> </div> <div class="info" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <h2 data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Dev </h2> <p data-astro-cid-j7pv25f6="">
Building something is a reward in and of itself.
</p> </div> <div class="container-content" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <a class="container-link" href="/projects/" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <div class="link-title" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Projects </div> <div class="link-desc" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Software I have worked on </div> </a><a class="container-link" href="https://agenc.xyp.one" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <div class="link-title" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> agenc </div> <div class="link-desc" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> A system for online services </div> </a><a class="container-link" href="/tools/" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <div class="link-title" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Tools </div> <div class="link-desc" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> A collection of utilities </div> </a><a class="container-link" href="https://github.com/xypnox" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <div class="link-title" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Repositories </div> <div class="link-desc" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Repositories and open code </div> </a><a class="container-link" href="https://github.com/xypnox/dotfiles" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <div class="link-title" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> dotfiles </div> <div class="link-desc" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Configuration files for system </div> </a> </div> </div> <div class="container-wrapper theme-card" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <div class="home-icon" data-astro-cid-3ylcv7tw=""> <svg width="756" height="1009" viewBox="0 0 756 1009" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M656 94H151C95.772 94 51 138.772 51 194V699C51 754.228 95.772 799 151 799H656C711.228 799 756 754.228 756 699V194C756 138.772 711.228 94 656 94Z" class="bg-fill"></path> <path d="M656 94H151C95.772 94 51 138.772 51 194V699C51 754.228 95.772 799 151 799H656C711.228 799 756 754.228 756 699V194C756 138.772 711.228 94 656 94Z" fill="url(#paint0_radial_791_2640)" fill-opacity="0.33"></path> <g opacity="0.2" filter="url(#filter0_f_791_2640)"> <path d="M653.737 290.233C648.478 285.372 640.749 284.177 634.135 283.061C627.39 282.573 621.024 279.756 616.127 275.092C613.466 273.027 611.313 270.381 609.832 267.357C608.351 264.332 607.581 261.009 607.581 257.641C607.581 254.273 608.351 250.949 609.832 247.925C611.313 244.9 613.466 242.254 616.127 240.189L640.271 218.753C648.954 211.471 655.936 202.375 660.727 192.105C665.517 181.834 668 170.639 668 159.306C668 147.973 665.517 136.778 660.727 126.508C655.936 116.237 648.954 107.141 640.271 99.8594C613.019 75.8735 576.445 64 538.437 64C491.855 64.1388 446.902 81.1531 411.901 111.892C345.366 170.701 345.366 267.044 411.901 325.853C444.969 355.099 489.591 369.681 533.735 370H535.09C579.234 370 622.74 355.736 653.657 328.244C665.131 318.124 663.219 299.078 653.737 290.233ZM406.642 185.125C406.642 180.082 408.138 175.151 410.939 170.958C413.741 166.765 417.723 163.496 422.383 161.566C427.042 159.636 432.169 159.131 437.115 160.115C442.061 161.099 446.605 163.527 450.171 167.094C453.737 170.66 456.165 175.204 457.149 180.15C458.133 185.097 457.628 190.224 455.698 194.883C453.768 199.543 450.5 203.526 446.307 206.328C442.113 209.13 437.184 210.625 432.14 210.625C428.791 210.629 425.474 209.972 422.378 208.691C419.283 207.411 416.471 205.533 414.102 203.164C411.734 200.796 409.856 197.983 408.576 194.888C407.296 191.792 406.639 188.475 406.642 185.125ZM438.515 285.531C433.472 285.531 428.542 284.036 424.349 281.234C420.156 278.432 416.888 274.449 414.958 269.79C413.028 265.13 412.523 260.003 413.507 255.056C414.491 250.11 416.919 245.566 420.485 242C424.051 238.434 428.594 236.005 433.541 235.021C438.487 234.037 443.614 234.542 448.273 236.472C452.932 238.402 456.914 241.671 459.716 245.864C462.518 250.058 464.013 254.988 464.013 260.031C464.017 263.381 463.36 266.699 462.08 269.794C460.8 272.889 458.922 275.702 456.553 278.071C454.185 280.439 451.372 282.317 448.277 283.598C445.182 284.878 441.865 285.535 438.515 285.531ZM489.512 157.234C484.469 157.234 479.539 155.739 475.346 152.937C471.152 150.135 467.884 146.152 465.954 141.493C464.024 136.833 463.519 131.706 464.503 126.76C465.487 121.813 467.916 117.269 471.482 113.703C475.048 110.137 479.591 107.708 484.537 106.724C489.483 105.74 494.61 106.245 499.269 108.175C503.929 110.105 507.911 113.374 510.713 117.567C513.515 121.761 515.01 126.691 515.01 131.734C515.014 135.084 514.357 138.402 513.076 141.497C511.796 144.592 509.918 147.405 507.55 149.774C505.181 152.142 502.369 154.02 499.274 155.301C496.179 156.581 492.861 157.238 489.512 157.234ZM546.883 331.75C539.319 331.75 531.924 329.507 525.634 325.304C519.344 321.101 514.442 315.127 511.547 308.138C508.652 301.148 507.895 293.458 509.37 286.038C510.846 278.618 514.489 271.803 519.838 266.453C525.187 261.104 532.002 257.461 539.421 255.985C546.841 254.509 554.531 255.267 561.52 258.162C568.509 261.057 574.482 265.959 578.685 272.249C582.887 278.54 585.131 285.935 585.131 293.5C585.128 303.644 581.098 313.371 573.925 320.544C566.753 327.717 557.026 331.748 546.883 331.75ZM566.007 166C560.964 166 556.034 164.504 551.841 161.702C547.648 158.9 544.379 154.918 542.45 150.258C540.52 145.599 540.015 140.472 540.998 135.525C541.982 130.579 544.411 126.035 547.977 122.469C551.543 118.903 556.086 116.474 561.032 115.49C565.979 114.506 571.105 115.011 575.765 116.941C580.424 118.871 584.406 122.139 587.208 126.333C590.01 130.526 591.505 135.457 591.505 140.5C591.509 143.85 590.852 147.167 589.572 150.263C588.291 153.358 586.413 156.171 584.045 158.539C581.676 160.908 578.864 162.786 575.769 164.066C572.674 165.347 569.356 166.004 566.007 166Z" class="heading-fill"></path> </g> <path d="M653.737 250.233C648.478 245.372 640.749 244.177 634.135 243.061C627.39 242.573 621.024 239.756 616.127 235.092C613.466 233.027 611.313 230.381 609.832 227.357C608.351 224.332 607.581 221.009 607.581 217.641C607.581 214.273 608.351 210.949 609.832 207.925C611.313 204.9 613.466 202.254 616.127 200.189L640.271 178.753C648.954 171.471 655.936 162.375 660.727 152.105C665.517 141.834 668 130.639 668 119.306C668 107.973 665.517 96.7782 660.727 86.5078C655.936 76.2375 648.954 67.1414 640.271 59.8594C613.019 35.8735 576.445 24 538.437 24C491.855 24.1388 446.902 41.1531 411.901 71.8922C345.366 130.701 345.366 227.044 411.901 285.853C444.969 315.099 489.591 329.681 533.735 330H535.09C579.234 330 622.74 315.736 653.657 288.244C665.131 278.124 663.219 259.078 653.737 250.233ZM406.642 145.125C406.642 140.082 408.138 135.151 410.939 130.958C413.741 126.765 417.723 123.496 422.383 121.566C427.042 119.636 432.169 119.131 437.115 120.115C442.061 121.099 446.605 123.527 450.171 127.094C453.737 130.66 456.165 135.204 457.149 140.15C458.133 145.097 457.628 150.224 455.698 154.883C453.768 159.543 450.5 163.526 446.307 166.328C442.113 169.13 437.184 170.625 432.14 170.625C428.791 170.629 425.474 169.972 422.378 168.691C419.283 167.411 416.471 165.533 414.102 163.164C411.734 160.796 409.856 157.983 408.576 154.888C407.296 151.792 406.639 148.475 406.642 145.125ZM438.515 245.531C433.472 245.531 428.542 244.036 424.349 241.234C420.156 238.432 416.888 234.449 414.958 229.79C413.028 225.13 412.523 220.003 413.507 215.056C414.491 210.11 416.919 205.566 420.485 202C424.051 198.434 428.594 196.005 433.541 195.021C438.487 194.037 443.614 194.542 448.273 196.472C452.932 198.402 456.914 201.671 459.716 205.864C462.518 210.058 464.013 214.988 464.013 220.031C464.017 223.381 463.36 226.699 462.08 229.794C460.8 232.889 458.922 235.702 456.553 238.071C454.185 240.439 451.372 242.317 448.277 243.598C445.182 244.878 441.865 245.535 438.515 245.531ZM489.512 117.234C484.469 117.234 479.539 115.739 475.346 112.937C471.152 110.135 467.884 106.152 465.954 101.493C464.024 96.8334 463.519 91.7061 464.503 86.7596C465.487 81.8131 467.916 77.2694 471.482 73.7032C475.048 70.1369 479.591 67.7082 484.537 66.7243C489.483 65.7404 494.61 66.2454 499.269 68.1754C503.929 70.1054 507.911 73.3739 510.713 77.5673C513.515 81.7608 515.01 86.6909 515.01 91.7344C515.014 95.0841 514.357 98.402 513.076 101.497C511.796 104.592 509.918 107.405 507.55 109.774C505.181 112.142 502.369 114.02 499.274 115.301C496.179 116.581 492.861 117.238 489.512 117.234ZM546.883 291.75C539.319 291.75 531.924 289.507 525.634 285.304C519.344 281.101 514.442 275.127 511.547 268.138C508.652 261.148 507.895 253.458 509.37 246.038C510.846 238.618 514.489 231.803 519.838 226.453C525.187 221.104 532.002 217.461 539.421 215.985C546.841 214.509 554.531 215.267 561.52 218.162C568.509 221.057 574.482 225.959 578.685 232.249C582.887 238.54 585.131 245.935 585.131 253.5C585.128 263.644 581.098 273.371 573.925 280.544C566.753 287.717 557.026 291.748 546.883 291.75ZM566.007 126C560.964 126 556.034 124.504 551.841 121.702C547.648 118.9 544.379 114.918 542.45 110.258C540.52 105.599 540.015 100.472 540.998 95.5252C541.982 90.5787 544.411 86.035 547.977 82.4688C551.543 78.9025 556.086 76.4739 561.032 75.49C565.979 74.5061 571.105 75.0111 575.765 76.9411C580.424 78.8711 584.406 82.1395 587.208 86.333C590.01 90.5264 591.505 95.4566 591.505 100.5C591.509 103.85 590.852 107.167 589.572 110.263C588.291 113.358 586.413 116.171 584.045 118.539C581.676 120.908 578.864 122.786 575.769 124.066C572.674 125.347 569.356 126.004 566.007 126Z" class="heading-fill"></path> <path opacity="0.13" d="M491 436H25C11.1929 436 0 447.193 0 461V869C0 882.807 11.1929 894 25 894H491C504.807 894 516 882.807 516 869V461C516 447.193 504.807 436 491 436Z" class="surface-fill"></path> <rect opacity="0.17" x="27" y="318" width="300" height="325" rx="64" class="surface-fill"></rect> <path opacity="0.1" d="M233 669H53C41.9543 669 33 677.954 33 689V844C33 855.046 41.9543 864 53 864H233C244.046 864 253 855.046 253 844V689C253 677.954 244.046 669 233 669Z" class="surface-fill"></path> <g filter="url(#filter1_d_791_2640)"> <path opacity="0.14" d="M553 693C553 679.745 542.255 669 529 669H307C293.745 669 283 679.745 283 693V915C283 928.255 293.745 939 307 939H529C542.255 939 553 928.255 553 915V693Z" class="surface-fill"></path> </g> <g opacity="0.5" filter="url(#filter2_f_791_2640)"> <path d="M494 849H341C332.716 849 326 855.716 326 864V913C326 921.284 332.716 928 341 928H494C502.284 928 509 921.284 509 913V864C509 855.716 502.284 849 494 849Z" class="heading-fill"></path> </g> <path d="M494 829H341C332.716 829 326 835.716 326 844V893C326 901.284 332.716 908 341 908H494C502.284 908 509 901.284 509 893V844C509 835.716 502.284 829 494 829Z" class="heading-fill"></path> <path opacity="0.1" d="M468 472H380C368.954 472 360 480.954 360 492V623C360 634.046 368.954 643 380 643H468C479.046 643 488 634.046 488 623V492C488 480.954 479.046 472 468 472Z" class="surface-fill"></path> <path opacity="0.2" d="M520 688H316C307.716 688 301 694.716 301 703V787C301 795.284 307.716 802 316 802H520C528.284 802 535 795.284 535 787V703C535 694.716 528.284 688 520 688Z" class="surface-fill"></path> <g opacity="0.5" filter="url(#filter3_f_791_2640)"> <path d="M210 438H143C120.909 438 103 455.909 103 478V543C103 565.091 120.909 583 143 583H210C232.091 583 250 565.091 250 543V478C250 455.909 232.091 438 210 438Z" class="heading-stroke-color" stroke-width="20"></path> </g> <path d="M210 408H143C120.909 408 103 425.909 103 448V513C103 535.091 120.909 553 143 553H210C232.091 553 250 535.091 250 513V448C250 425.909 232.091 408 210 408Z" class="heading-stroke-color" stroke-width="20"></path> <defs> <filter id="filter0_f_791_2640" x="298" y="0" width="434" height="434" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> <feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood> <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend> <feGaussianBlur stdDeviation="32" result="effect1_foregroundBlur_791_2640"></feGaussianBlur> </filter> <filter id="filter1_d_791_2640" x="233" y="639" width="370" height="370" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> <feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood> <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"></feColorMatrix> <feOffset dy="20"></feOffset> <feGaussianBlur stdDeviation="25"></feGaussianBlur> <feColorMatrix type="matrix" values="0 0 0 0 0.203922 0 0 0 0 0.188235 0 0 0 0 0.0627451 0 0 0 0.25 0"></feColorMatrix> <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_791_2640"></feBlend> <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_791_2640" result="shape"></feBlend> </filter> <filter id="filter2_f_791_2640" x="294" y="817" width="247" height="143" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> <feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood> <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend> <feGaussianBlur stdDeviation="16" result="effect1_foregroundBlur_791_2640"></feGaussianBlur> </filter> <filter id="filter3_f_791_2640" x="61" y="396" width="231" height="229" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> <feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood> <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend> <feGaussianBlur stdDeviation="16" result="effect1_foregroundBlur_791_2640"></feGaussianBlur> </filter> <radialGradient id="paint0_radial_791_2640" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(511.6 163.325) rotate(99.6949) scale(644.885)"> <stop class="heading-stop-color"></stop> <stop offset="1" class="heading-stop-color" stop-opacity="0"></stop> </radialGradient> </defs> </svg> </div> <div class="info" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <h2 data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <a class="text-gradient-fx" href="/design/" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Design</a> </h2> <p data-astro-cid-j7pv25f6="">
Utility and function are nothing without beauty.
</p> </div> <div class="container-content" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <a class="container-link" href="/customize/" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <div class="link-title" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Customize </div> <div class="link-desc" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Customize the look of this site </div> </a><a class="container-link" href="/design/covers/" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <div class="link-title" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Covers </div> <div class="link-desc" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Covers of Spotify playlists </div> </a><a class="container-link" href="/design/logos/" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <div class="link-title" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Logos </div> <div class="link-desc" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Logos I have designed/refined </div> </a><a class="container-link" href="/design/prototypes/" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <div class="link-title" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Prototypes </div> <div class="link-desc" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Prototypes and other design assets </div> </a> </div> </div> <div class="container-wrapper theme-card" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <div class="home-icon" data-astro-cid-3ylcv7tw=""> <svg width="788" height="915" viewBox="0 0 788 915" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M688 123.165H183.001C127.772 123.165 83 167.937 83 223.165V728.165C83 783.393 127.772 828.165 183.001 828.165H688C743.229 828.165 788 783.393 788 728.165V223.165C788 167.937 743.229 123.165 688 123.165Z" class="bg-fill"></path> <path d="M688 123.165H183.001C127.772 123.165 83 167.937 83 223.165V728.165C83 783.393 127.772 828.165 183.001 828.165H688C743.229 828.165 788 783.393 788 728.165V223.165C788 167.937 743.229 123.165 688 123.165Z" fill="url(#paint0_radial_792_2)" fill-opacity="0.33"></path> <g opacity="0.2" filter="url(#filter0_f_792_2)"> <path opacity="0.5" d="M514.011 126.103L412.8 164.078C410.57 164.927 408.6 166.343 407.084 168.186C405.567 170.03 404.558 172.236 404.154 174.588L364.823 410.915L601.319 371.584C603.653 371.185 605.84 370.175 607.657 368.657C609.473 367.138 610.855 365.164 611.661 362.938L649.635 261.727L514.011 126.103ZM507.229 302.415C500.523 302.415 493.968 300.426 488.392 296.701C482.816 292.975 478.47 287.68 475.904 281.484C473.338 275.289 472.666 268.471 473.974 261.894C475.283 255.317 478.512 249.275 483.254 244.533C487.996 239.792 494.037 236.562 500.614 235.254C507.192 233.946 514.009 234.617 520.205 237.183C526.4 239.75 531.696 244.096 535.421 249.671C539.147 255.247 541.135 261.803 541.135 268.509C541.091 277.488 537.504 286.086 531.155 292.435C524.806 298.784 516.208 302.37 507.229 302.415Z" class="secondary-fill"></path> <path d="M703.886 188.32L587.418 71.8523C582.311 66.8206 575.43 64 568.261 64C561.091 64 554.21 66.8206 549.104 71.8523L506.551 114.405L408.054 151.363C403.619 153.028 399.701 155.832 396.695 159.492C393.689 163.153 391.701 167.541 390.931 172.215L351.43 408.711C351.079 410.658 351.164 412.658 351.678 414.568C352.192 416.477 353.123 418.25 354.403 419.757C355.684 421.264 357.282 422.469 359.084 423.286C360.885 424.102 362.845 424.509 364.823 424.478H367.027L603.523 385.146C608.197 384.312 612.575 382.281 616.23 379.25C619.884 376.219 622.691 372.293 624.375 367.854L661.333 269.356L703.886 226.635C708.917 221.528 711.738 214.647 711.738 207.478C711.738 200.308 708.917 193.427 703.886 188.32ZM598.946 358.191L404.324 390.571L484.682 310.213C491.578 314.038 499.343 316.023 507.229 315.978C516.618 315.978 525.795 313.194 533.602 307.978C541.408 302.762 547.492 295.348 551.085 286.674C554.677 278.001 555.618 268.456 553.786 259.248C551.954 250.04 547.433 241.582 540.795 234.943C534.156 228.305 525.698 223.784 516.49 221.952C507.282 220.121 497.738 221.061 489.064 224.653C480.39 228.246 472.976 234.33 467.76 242.137C462.545 249.943 459.761 259.12 459.761 268.509C459.715 276.395 461.7 284.16 465.525 291.056L385.167 371.414L417.547 176.792L510.62 141.869L633.869 265.118L598.946 358.191ZM486.886 268.509C486.886 264.485 488.079 260.552 490.314 257.206C492.549 253.861 495.727 251.253 499.444 249.714C503.161 248.174 507.252 247.771 511.198 248.556C515.144 249.341 518.769 251.278 521.615 254.124C524.46 256.969 526.397 260.594 527.182 264.54C527.967 268.486 527.564 272.577 526.024 276.294C524.485 280.011 521.877 283.189 518.532 285.424C515.186 287.659 511.253 288.853 507.229 288.853C501.834 288.853 496.659 286.709 492.844 282.894C489.029 279.079 486.886 273.904 486.886 268.509ZM649.636 242.571L533.168 126.103L568.261 91.0094L684.729 207.478L649.636 242.571Z" class="secondary-fill"></path> </g> <path opacity="0.5" d="M514.011 86.1028L412.8 124.078C410.57 124.927 408.6 126.343 407.084 128.186C405.567 130.03 404.558 132.236 404.154 134.588L364.823 370.915L601.319 331.584C603.653 331.185 605.84 330.175 607.657 328.657C609.473 327.138 610.855 325.164 611.661 322.938L649.635 221.727L514.011 86.1028ZM507.229 262.415C500.523 262.415 493.968 260.426 488.392 256.701C482.816 252.975 478.47 247.68 475.904 241.484C473.338 235.289 472.666 228.471 473.974 221.894C475.283 215.317 478.512 209.275 483.254 204.533C487.996 199.792 494.037 196.562 500.614 195.254C507.192 193.946 514.009 194.617 520.205 197.183C526.4 199.75 531.696 204.096 535.421 209.671C539.147 215.247 541.135 221.803 541.135 228.509C541.091 237.488 537.504 246.086 531.155 252.435C524.806 258.784 516.208 262.37 507.229 262.415Z" class="secondary-fill"></path> <path d="M703.886 148.32L587.418 31.8523C582.311 26.8206 575.43 24 568.261 24C561.091 24 554.21 26.8206 549.104 31.8523L506.551 74.4047L408.054 111.363C403.619 113.028 399.701 115.832 396.695 119.492C393.689 123.153 391.701 127.541 390.931 132.215L351.43 368.711C351.079 370.658 351.164 372.658 351.678 374.568C352.192 376.477 353.123 378.25 354.403 379.757C355.684 381.264 357.282 382.469 359.084 383.286C360.885 384.102 362.845 384.509 364.823 384.478H367.027L603.523 345.146C608.197 344.312 612.575 342.281 616.23 339.25C619.884 336.219 622.691 332.293 624.375 327.854L661.333 229.356L703.886 186.635C708.917 181.528 711.738 174.647 711.738 167.478C711.738 160.308 708.917 153.427 703.886 148.32ZM598.946 318.191L404.324 350.571L484.682 270.213C491.578 274.038 499.343 276.023 507.229 275.978C516.618 275.978 525.795 273.194 533.602 267.978C541.408 262.762 547.492 255.348 551.085 246.674C554.677 238.001 555.618 228.456 553.786 219.248C551.954 210.04 547.433 201.582 540.795 194.943C534.156 188.305 525.698 183.784 516.49 181.952C507.282 180.121 497.738 181.061 489.064 184.653C480.39 188.246 472.976 194.33 467.76 202.137C462.545 209.943 459.761 219.12 459.761 228.509C459.715 236.395 461.7 244.16 465.525 251.056L385.167 331.414L417.547 136.792L510.62 101.869L633.869 225.118L598.946 318.191ZM486.886 228.509C486.886 224.485 488.079 220.552 490.314 217.206C492.549 213.861 495.727 211.253 499.444 209.714C503.161 208.174 507.252 207.771 511.198 208.556C515.144 209.341 518.769 211.278 521.615 214.124C524.46 216.969 526.397 220.594 527.182 224.54C527.967 228.486 527.564 232.577 526.024 236.294C524.485 240.011 521.877 243.189 518.532 245.424C515.186 247.659 511.253 248.853 507.229 248.853C501.834 248.853 496.659 246.709 492.844 242.894C489.029 239.079 486.886 233.904 486.886 228.509ZM649.636 202.571L533.168 86.1028L568.261 51.0094L684.729 167.478L649.636 202.571Z" class="secondary-fill"></path> <path opacity="0.2" d="M573.849 734.879L182.965 553.864C173.192 549.339 161.601 553.592 157.076 563.365C152.55 573.137 156.804 584.728 166.576 589.254L557.46 770.268C567.233 774.794 578.824 770.54 583.349 760.768C587.875 750.995 583.622 739.404 573.849 734.879Z" class="surface-fill"></path> <path opacity="0.1" d="M342.652 704.727L172.951 626.139C163.178 621.614 151.587 625.867 147.062 635.64C142.536 645.412 146.79 657.003 156.562 661.529L326.264 740.116C336.036 744.642 347.627 740.388 352.153 730.616C356.678 720.843 352.425 709.252 342.652 704.727Z" class="surface-fill"></path> <path opacity="0.1" d="M551.678 743.939L246.768 602.262C229.209 594.105 208.383 601.772 200.252 619.391C192.12 637.007 199.764 657.903 217.321 666.063L522.233 807.737C539.79 815.896 560.616 808.227 568.748 790.61C576.879 772.992 569.237 752.096 551.678 743.939Z" class="surface-fill"></path> <path opacity="0.1" d="M204.071 485.166L92.458 433.479C82.6855 428.954 71.0946 433.207 66.569 442.98C62.0434 452.752 66.2969 464.343 76.0695 468.869L187.683 520.556C197.455 525.081 209.046 520.828 213.572 511.055C218.097 501.283 213.844 489.692 204.071 485.166Z" class="surface-fill"></path> <path opacity="0.2" d="M601.373 825.574L488.853 773.467C479.08 768.942 467.489 773.195 462.964 782.968C458.438 792.74 462.692 804.331 472.464 808.857L584.985 860.964C594.757 865.489 606.348 861.236 610.874 851.463C615.399 841.691 611.146 830.1 601.373 825.574Z" class="surface-fill"></path> <g opacity="0.5" filter="url(#filter1_f_792_2)"> <path d="M432.473 766.322L398.899 750.774C389.126 746.249 377.535 750.502 373.01 760.275C368.484 770.047 372.738 781.638 382.51 786.164L416.085 801.712C425.857 806.237 437.448 801.984 441.974 792.211C446.499 782.439 442.246 770.848 432.473 766.322Z" class="secondary-fill"></path> <path d="M171.312 725.828L59.699 674.141C49.9264 669.616 38.3355 673.869 33.81 683.642C29.2844 693.414 33.5379 705.005 43.3104 709.531L154.924 761.218C164.696 765.743 176.287 761.49 180.813 751.717C185.338 741.945 181.085 730.354 171.312 725.828Z" class="secondary-fill"></path> <path d="M465.658 626.581L286.38 543.559C276.607 539.034 265.016 543.287 260.491 553.06C255.965 562.832 260.219 574.423 269.991 578.949L449.27 661.971C459.042 666.496 470.633 662.243 475.159 652.47C479.684 642.698 475.431 631.107 465.658 626.581Z" class="secondary-fill"></path> </g> <path d="M432.473 746.322L398.899 730.774C389.126 726.249 377.535 730.502 373.01 740.275C368.484 750.047 372.738 761.638 382.51 766.164L416.085 781.712C425.857 786.237 437.448 781.984 441.974 772.211C446.499 762.439 442.246 750.848 432.473 746.322Z" class="secondary-fill"></path> <path d="M171.312 705.828L59.699 654.141C49.9264 649.616 38.3355 653.869 33.81 663.642C29.2844 673.414 33.5379 685.005 43.3104 689.531L154.924 741.218C164.696 745.743 176.287 741.49 180.813 731.717C185.338 721.945 181.085 710.354 171.312 705.828Z" class="secondary-fill"></path> <path d="M465.658 606.581L286.38 523.559C276.607 519.034 265.016 523.287 260.491 533.06C255.965 542.832 260.219 554.423 269.991 558.949L449.27 641.971C459.042 646.496 470.633 642.243 475.159 632.47C479.684 622.698 475.431 611.107 465.658 606.581Z" class="secondary-fill"></path> <path opacity="0.2" d="M498.134 856.811L301.224 765.623C291.451 761.098 279.86 765.351 275.335 775.124C270.809 784.896 275.063 796.487 284.835 801.013L481.746 892.2C491.518 896.726 503.109 892.472 507.635 882.7C512.161 872.927 507.907 861.336 498.134 856.811Z" class="surface-fill"></path> <path opacity="0.1" d="M373.868 877.022L176.958 785.834C167.185 781.309 155.594 785.562 151.069 795.335C146.543 805.107 150.797 816.698 160.569 821.224L357.48 912.411C367.252 916.937 378.843 912.683 383.369 902.911C387.895 893.138 383.641 881.547 373.868 877.022Z" class="surface-fill"></path> <defs> <filter id="filter0_f_792_2" x="287.218" y="0" width="488.52" height="488.479" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> <feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood> <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend> <feGaussianBlur stdDeviation="32" result="effect1_foregroundBlur_792_2"></feGaussianBlur> </filter> <filter id="filter1_f_792_2" x="0" y="509.749" width="508.969" height="325.772" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> <feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood> <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend> <feGaussianBlur stdDeviation="16" result="effect1_foregroundBlur_792_2"></feGaussianBlur> </filter> <radialGradient id="paint0_radial_792_2" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(543.599 192.49) rotate(99.6949) scale(644.885 644.885)"> <stop class="secondary-stop-color"></stop> <stop offset="1" class="secondary-stop-color" stop-opacity="0"></stop> </radialGradient> </defs> </svg> </div> <div class="info" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <h2 data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Literature </h2> <p data-astro-cid-j7pv25f6="">With language, we can write how we think.</p> </div> <div class="container-content" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <a class="container-link" href="/blag/" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <div class="link-title" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Blag </div> <div class="link-desc" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Blog, long form prose </div> </a><a class="container-link" href="/poems/" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <div class="link-title" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Poems </div> <div class="link-desc" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Short works that sometimes rhyme </div> </a><a class="container-link" href="/library/books/" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <div class="link-title" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Library </div> <div class="link-desc" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> A library (sort of) </div> </a><a class="container-link" href="/why-xypnox/" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> <div class="link-title" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Why xypnox </div> <div class="link-desc" data-astro-cid-4oxc2zqz="" style="--color: var(--primary-color);"> Why I chose this nom de guerre </div> </a> </div> </div> </div> <div class="blog-and-links" data-astro-cid-j7pv25f6=""> <div class="blog-card" data-astro-cid-xgvt6pxv=""> <div class="toptags" data-astro-cid-xgvt6pxv=""> <em data-astro-cid-xgvt6pxv="">Top Tags</em> <a href="/blag/tags/tech/" class="tag" data-astro-cid-zmpbtckx="">
#<span data-astro-cid-zmpbtckx="">tech</span> </a> <a href="/blag/tags/design/" class="tag" data-astro-cid-zmpbtckx="">
#<span data-astro-cid-zmpbtckx="">design</span> </a> <a href="/blag/tags/linux/" class="tag" data-astro-cid-zmpbtckx="">
#<span data-astro-cid-zmpbtckx="">linux</span> </a> <a href="/blag/tags/poem/" class="tag" data-astro-cid-zmpbtckx="">
#<span data-astro-cid-zmpbtckx="">poem</span> </a> <a href="/blag/tags/culture/" class="tag" data-astro-cid-zmpbtckx="">
#<span data-astro-cid-zmpbtckx="">culture</span> </a> </div> <div class="col-l" data-astro-cid-xgvt6pxv=""> <h2 data-astro-cid-xgvt6pxv="">Blag <em data-astro-cid-xgvt6pxv="">Latest Posts</em> <a class="allposts" href="/blag/" data-astro-cid-xgvt6pxv="">All posts<iconify-icon name="ph:arrow-right" data-astro-cid-xgvt6pxv=""></iconify-icon></a></h2> <div class="first" data-astro-cid-xgvt6pxv=""> <a class="blog-entry theme-card" href="/blag/posts/comments-via-mastodon/" data-astro-cid-f45vxlzk=""><div data-astro-cid-f45vxlzk=""></div><div class="card-content" data-astro-cid-f45vxlzk=""><h2 data-astro-cid-f45vxlzk="">Comments via Mastodon</h2><p class="description" data-astro-cid-f45vxlzk="">Replaced comments with Mastodon's context API calls.</p><div class="details" data-astro-cid-f45vxlzk=""><time datetime="2024-10-13T00:00:00.000Z" data-astro-cid-f45vxlzk="">October 13, 2024</time><span class="separator" data-astro-cid-f45vxlzk="">•</span><div class="tags" data-astro-cid-f45vxlzk=""><span class="tag" data-astro-cid-f45vxlzk="">#tech</span><span class="tag" data-astro-cid-f45vxlzk="">#software</span></div></div></div></a> </div> <a class="blog-entry theme-card" href="/blag/posts/caddy-proxy/" data-astro-cid-f45vxlzk=""><div data-astro-cid-f45vxlzk=""></div><div class="card-content" data-astro-cid-f45vxlzk=""><h2 data-astro-cid-f45vxlzk="">Caddy Server and Proxy</h2><p class="description" data-astro-cid-f45vxlzk="">A short tale of servers proxies and debugging</p><div class="details" data-astro-cid-f45vxlzk=""><time datetime="2024-09-09T00:00:00.000Z" data-astro-cid-f45vxlzk="">September 9, 2024</time><span class="separator" data-astro-cid-f45vxlzk="">•</span><div class="tags" data-astro-cid-f45vxlzk=""><span class="tag" data-astro-cid-f45vxlzk="">#tech</span><span class="tag" data-astro-cid-f45vxlzk="">#software</span><span class="tag" data-astro-cid-f45vxlzk="">#tools</span></div></div></div></a> <a class="blog-entry theme-card" href="/blag/posts/governmint-wobsite-bad/" data-astro-cid-f45vxlzk=""><div data-astro-cid-f45vxlzk=""></div><div class="card-content" data-astro-cid-f45vxlzk=""><h2 data-astro-cid-f45vxlzk="">Govermint Wobsite Bad</h2><p class="description" data-astro-cid-f45vxlzk="">Why are government websites bad?</p><div class="details" data-astro-cid-f45vxlzk=""><time datetime="2024-08-27T00:00:00.000Z" data-astro-cid-f45vxlzk="">August 27, 2024</time><span class="separator" data-astro-cid-f45vxlzk="">•</span><div class="tags" data-astro-cid-f45vxlzk=""><span class="tag" data-astro-cid-f45vxlzk="">#tech</span><span class="tag" data-astro-cid-f45vxlzk="">#culture</span><span class="tag" data-astro-cid-f45vxlzk="">#software</span></div></div></div></a> </div> </div> <div class="links-wrapper" data-astro-cid-tpyetmij=""> <h2 id="contact-and-links" data-astro-cid-tpyetmij="">Social media and other places</h2> <div class="links" data-astro-cid-tpyetmij=""> <a class="link theme-card" rel="me" href="https://fosstodon.org/@xypnox" data-astro-cid-tpyetmij=""> <iconify-icon icon="fa-brands:mastodon" data-astro-cid-tpyetmij=""></iconify-icon> <span data-astro-cid-tpyetmij=""> Mastodon </span> </a><a class="link theme-card" rel="me" href="mailto:[email protected]" data-astro-cid-tpyetmij=""> <iconify-icon icon="ic:round-mail" data-astro-cid-tpyetmij=""></iconify-icon> <span data-astro-cid-tpyetmij=""> Email </span> </a><a class="link theme-card" rel="me" href="https://github.com/xypnox" data-astro-cid-tpyetmij=""> <iconify-icon icon="fa-brands:github" data-astro-cid-tpyetmij=""></iconify-icon> <span data-astro-cid-tpyetmij=""> GitHub </span> </a><a class="link theme-card" rel="me" href="https://t.me/xypnox" data-astro-cid-tpyetmij=""> <iconify-icon icon="fa-brands:telegram" data-astro-cid-tpyetmij=""></iconify-icon> <span data-astro-cid-tpyetmij=""> Telegram </span> </a><a class="link theme-card" rel="me" href="https://goodreads.com/xypnox" data-astro-cid-tpyetmij=""> <iconify-icon icon="fa-brands:goodreads" data-astro-cid-tpyetmij=""></iconify-icon> <span data-astro-cid-tpyetmij=""> Goodreads </span> </a> </div> <div class="profile-feed" data-astro-cid-tpyetmij=""> <astro-island uid="Z1erYaU" component-url="/_astro/tootfeed.ldXXrOps.js" component-export="TootFeed" renderer-url="/_astro/client.BVNxlHOq.js" props="{"max":[0,6],"data-astro-cid-tpyetmij":[0,true]}" client="only" opts="{"name":"TootFeedSolid","value":true}"><div><div class="go3975706229" style="height: 614px;"><div class="go3605093067 go1579819456" style="
transform: translate(0px, 0px);
width: 337px;
"><div class="toot-content"><div class="title"><h2><a href="/tootfeed/">TootFeed</a></h2></div><p> <!--$-->A replica of my toots @ <!--/--> <a href="https://fosstodon.org/@xypnox">Fosstodon</a></p><!--$--><button class="small go530904261"><iconify-icon icon="ph:arrows-clockwise-duotone"></iconify-icon>less than a minute ago</button><!--/--></div></div><div class="go3605093067 go1579819456" style="
transform: translate(353px, 0px);
width: 337px;
"><div class="toot-content"><div><p>cool servers<br><a href="https://www.youtube.com/watch?v=wumluVRmxyA" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://www.</span><span class="ellipsis">youtube.com/watch?v=wumluVRmxy</span><span class="invisible">A</span></a></p></div><div class="meta"><a class="link" href="https://fosstodon.org/@xypnox/113488707725266313">about 10 hours ago</a></div></div></div><div class="go3605093067 go1579819456" style="
transform: translate(353px, 134px);
width: 337px;
"><div class="toot-content"><div><p>I actually have made a complete working artificial intelligence.</p><p>The problem with it is that whenever I ask it to do something it says "Go do it yourself".</p><p>There must be an error in my training data or something.</p></div><div class="meta"><a class="link" href="https://fosstodon.org/@xypnox/113463050401497770">5 days ago</a></div></div></div><div class="go3605093067 go1579819456" style="
transform: translate(0px, 190px);
width: 337px;
"><div class="toot-content"><div><p><a href="https://youtu.be/atcqMWqB3hw" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">youtu.be/atcqMWqB3hw</span><span class="invisible"></span></a></p></div><div class="meta"><a class="link" href="https://fosstodon.org/@xypnox/113452917912925820">7 days ago</a></div></div></div><div class="go3605093067 go1579819456" style="
transform: translate(0px, 304px);
width: 337px;
"><div class="toot-content"><div><p>over sales, forever the curse of dev</p></div><div class="meta"><a class="link" href="https://fosstodon.org/@xypnox/113447574448563977">8 days ago</a></div></div></div><div class="go3605093067 go1579819456" style="
transform: translate(353px, 400px);
width: 337px;
"><div class="toot-content"><div><p>[The deskilling of web dev is harming the product but, more importantly, it's damaging our health – this is why burnout happens](<a href="https://www.baldurbjarnason.com/2024/the-deskilling-of-web-dev-is-harming-us-all/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://www.</span><span class="ellipsis">baldurbjarnason.com/2024/the-d</span><span class="invisible">eskilling-of-web-dev-is-harming-us-all/</span></a>)</p></div><div class="meta"><a class="link" href="https://fosstodon.org/@xypnox/113445887678663872">8 days ago</a></div></div></div><div class="go3605093067 go1579819456" style="
transform: translate(0px, 438px);
width: 337px;
"><div class="toot-content"><div><p>Ersatz Intelligence</p></div><div class="meta"><a class="link" href="https://fosstodon.org/@xypnox/113430515434956203">11 days ago</a></div></div></div></div></div></astro-island> </div> </div> <div class="collaborate theme-card" data-astro-cid-j7pv25f6=""> <p data-astro-cid-j7pv25f6="">Book a short meeting @ <a href="https://cal.com/xypnox/30min" data-astro-cid-j7pv25f6="">cal.com/xypnox</a></p> <p data-astro-cid-j7pv25f6="">For larger projects collaborate @ <a href="https://x5z.studio" data-astro-cid-j7pv25f6="">x5z.studio</a></p> </div> </div> </main> <footer data-astro-cid-k2f5zb5c=""> <div class="footer-row" data-astro-cid-k2f5zb5c=""> <div class="navLogo" data-astro-cid-k2f5zb5c=""></div> <div class="footer-content" data-astro-cid-k2f5zb5c=""> <div class="links" data-astro-cid-k2f5zb5c=""> <a href="/" data-astro-cid-k2f5zb5c="">xypnox</a> <span data-astro-cid-k2f5zb5c="">|</span> <a href="/blag/" data-astro-cid-k2f5zb5c="">Blag</a> <span data-astro-cid-k2f5zb5c="">|</span> <a href="/rss.xml" data-astro-cid-k2f5zb5c="">Rss</a> <span data-astro-cid-k2f5zb5c="">|</span> <a href="https://github.com/xypnox/xypnox.github.io/" data-astro-cid-k2f5zb5c="">Source</a> <span data-astro-cid-k2f5zb5c="">|</span> © 2024 </div> <p data-astro-cid-k2f5zb5c=""> <a href="/about/" data-astro-cid-k2f5zb5c="">About this website</a> | <a href="/about/#reading-notice" data-astro-cid-k2f5zb5c="">Terms of Use</a> </p> <p data-astro-cid-k2f5zb5c=""> <em data-astro-cid-k2f5zb5c="">The content is 100% human generated.</em> </p> </div> </div> <div class="navbar-helper" data-astro-cid-k2f5zb5c="">And this is the navbar</div> </footer> <div><audio preload="metadata" src="/coverless-book-intro.ogg"></audio><audio preload="metadata" src="/coverless-book-repeat.ogg"></audio></div></body></html>