PageSourceSearch

https://foosel.github.io/

html foosel.github.io collected 2026-10-03 09:12:17 UTC 11,618 bytes, 16 lines download raw bytes

1<!doctype html><html lang=en dir=auto data-theme=auto><head><meta name=generator content="Hugo 0.158.0"><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="index, follow"><title>foosel.net</title><meta name=description content><meta name=author content="Gina Häußge"><link rel=canonical href=https://foosel.net/><link crossorigin=anonymous href=/assets/css/stylesheet.5d4dc321a898e1cda51b24e548d9bedba65e69d6f3e5142c0beae0ac3ff0ae24.css integrity="sha256-XU3DIaiY4c2lGyTlSNm+26Zeadbz5RQsC+rgrD/wriQ=" rel="preload stylesheet" as=style><link rel=icon href=https://foosel.net/favicon.ico><link rel=icon type=image/png sizes=16x16 href=https://foosel.net/favicon-16x16.png><link rel=icon type=image/png sizes=32x32 href=https://foosel.net/favicon-32x32.png><link rel=apple-touch-icon href=https://foosel.net/apple-touch-icon.png><link rel=mask-icon href=https://foosel.net/safari-pinned-tab.svg><meta name=theme-color content="#2e2e33"><meta name=msapplication-TileColor content="#2e2e33"><link rel=alternate type=application/json href=https://foosel.net/index.json title=json><link rel=alternate hreflang=en href=https://foosel.net/><noscript><style>#theme-toggle,.top-link{display:none}</style><style>@media(prefers-color-scheme:dark){:root{--theme:rgb(29, 30, 32);--entry:rgb(46, 46, 51);--primary:rgb(218, 218, 219);--secondary:rgb(155, 156, 157);--tertiary:rgb(65, 66, 68);--content:rgb(196, 196, 197);--code-block-bg:rgb(46, 46, 51);--code-bg:rgb(55, 56, 62);--border:rgb(51, 51, 51);color-scheme:dark}.list{background:var(--theme)}.toc{background:var(--entry)}}</style></noscript>
1<script>localStorage.getItem("pref-theme")==="dark"?document.querySelector("html").dataset.theme="dark":localStorage.getItem("pref-theme")==="light"?document.querySelector("html").dataset.theme="light":window.matchMedia("(prefers-color-scheme: dark)").matches?document.querySelector("html").dataset.theme="dark":document.querySelector("html").dataset.theme="light"</script>
1<link rel=webmention href=https://webmention.io/foosel.net/webmention><link rel=pingback href=https://webmention.io/foosel.net/xmlrpc><link rel=human-json href=https://foosel.net/human.json><link rel=alternate type=application/rss+xml href=https://foosel.net/feed.xml title="All posts on foosel.net"><link rel=alternate type=application/rss+xml href=https://foosel.net/blog/feed.xml title="Blog posts on foosel.net"><link rel=alternate type=application/rss+xml href=https://foosel.net/til/feed.xml title="TIL posts on foosel.net"><meta name=fediverse:creator content="@[email protected]">
1<script defer data-domain=foosel.net src=https://plausible.foosel.net/js/script.js></script>
1<meta property="og:url" content="https://foosel.net/"><meta property="og:site_name" content="foosel.net"><meta property="og:title" content="foosel.net"><meta property="og:locale" content="en_us"><meta property="og:type" content="website"><meta name=twitter:card content="summary"><meta name=twitter:title content="foosel.net">
1<script type=application/ld+json>{"@context":"https://schema.org","@type":"Organization","name":"foosel.net","url":"https://foosel.net/","description":"","logo":"https://foosel.net/favicon.ico","sameAs":["https://chaos.social/@foosel","https://github.com/foosel","https://codeberg.org/foosel","https://www.linkedin.com/in/ginahaeussge/","mailto:[email protected]","https://foosel.net/feed.xml"]}</script>
1</head><body class=list id=top><header class=header><nav class=header-nav><div class=logo><a href=https://foosel.net/ accesskey=h title="foosel.net (Alt + H)">foosel.net</a><div class=logo-switches><button id=theme-toggle class=theme-toggle accesskey=t title="(Alt + T)" aria-label="Toggle theme">
2<svg class="moon" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg>
3<svg class="sun" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg>
4</button>
5<a id=search-button accesskey=s title="Search (Alt + S)" href=/search/><svg width="24" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>
6</a><a id=rss-feed title="RSS Feed" href=/feed.xml><svg width="24" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 11a9 9 0 019 9"/><path d="M4 4a16 16 0 0116 16"/><circle cx="5" cy="19" r="1"/></svg></a></div></div><ul id=menu class=menu><li><a href=https://foosel.net/about/ title="About Me"><span>About Me</span></a></li><li><a href=https://foosel.net/blog/ title=Blog><span>Blog</span></a></li><li><a href=https://foosel.net/til/ title=TIL><span>TIL</span></a></li><li><a href=https://foosel.net/projects/ title=Projects><span>Projects</span></a></li><li><a href=https://foosel.net/talks/ title="Talks & Co"><span>Talks & Co</span></a></li></ul></nav></header><main class=main><div class=profile><div class=profile_inner><img draggable=false src=https://foosel.net/img/me.jpg alt="Gina Häußge" title="Gina Häußge" height=250 width=250><h1>Hi, I&rsquo;m Gina Häußge aka foosel!</h1><span>🐒 Passionate code monkey 👩‍💻 Geek 🎮 Gamer 🧗‍♀️ Bouldering apprentice 💡 Problem solver 🐍 Python wrangler 🐙 Creator & maintainer of OctoPrint</span><div class=social-icons><a href=https://chaos.social/@foosel target=_blank rel="noopener noreferrer me" title=Mastodon><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21.58 13.913c-.29 1.469-2.592 3.121-5.238 3.396-1.379.184-2.737.368-4.185.276-2.368-.092-4.237-.551-4.237-.551.0.184.014.459.043.643.308 2.294 2.317 2.478 4.22 2.57 1.922.0 3.633-.46 3.633-.46l.079 1.653s-1.344.734-3.738.918c-1.32.091-2.96-.092-4.869-.551-4.14-1.102-4.853-5.507-4.961-10.005-.034-1.285-.013-2.57-.013-3.58.0-4.589 3-5.966 3-5.966 1.513-.734 4.11-1.01 6.808-1.01h.067c2.699.0 5.296.276 6.81 1.01.0.0 3 1.377 3 5.967.0.0.037 3.304-.419 5.69" stroke="currentColor"/><path d="M17.832 8.633v5h-1.978V8.78c0-1.023-.43-1.542-1.29-1.542-.95.0-1.427.616-1.427 1.834v2.655H11.17V9.072c0-1.218-.476-1.834-1.427-1.834-.86.0-1.29.52-1.29 1.542v4.852H6.475V8.633c0-1.022.26-1.834.782-2.434.538-.6 1.243-.909 2.118-.909 1.012.0 1.779.39 2.286 1.169l.492.827.493-.827c.507-.78 1.274-1.169 2.286-1.169.875.0 1.58.308 2.118.909.522.6.782 1.412.782 2.434" fill="currentColor" stroke="none"/></svg>
7</a><a href=https://github.com/foosel target=_blank rel="noopener noreferrer me" title=GitHub><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg>
8</a><a href=https://codeberg.org/foosel target=_blank rel="noopener noreferrer me" title=Codeberg><svg viewBox="0 0 24 24" fill="currentColor" stroke="none">
8<path d="M11.955.49A12 12 0 000 12.49a12 12 0 001.832 6.373L11.838 5.928a.187.14.0 01.324.0l10.006 12.935A12 12 0 0024 12.49a12 12 0 00-12-12 12 12 0 00-.045.0zm.375 6.467 4.416 16.553a12 12 0 005.137-4.213z"/></svg>
9</a><a href=https://www.linkedin.com/in/ginahaeussge/ target=_blank rel="noopener noreferrer me" title=LinkedIn><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 8a6 6 0 016 6v7h-4v-7a2 2 0 00-2-2 2 2 0 00-2 2v7h-4v-7a6 6 0 016-6z"/><rect x="2" y="9" width="4" height="12"/><circle cx="4" cy="4" r="2"/></svg>
10</a><a href=mailto:[email protected] target=_blank rel="noopener noreferrer me" title=Email><svg viewBox="0 0 24 21" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16c1.1.0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1.0-2-.9-2-2V6c0-1.1.9-2 2-2z"/><polyline points="22,6 12,13 2,6"/></svg>
11</a><a href=https://foosel.net/feed.xml target=_blank rel="noopener noreferrer me" title=RSS><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 11a9 9 0 019 9"/><path d="M4 4a16 16 0 0116 16"/><circle cx="5" cy="19" r="1"/></svg></a></div></div></div></main><footer class=footer>© by Gina Häußge (foosel) · <a href=/legal/>Legal Notice</a> · <a href=/privacy/>Privacy Policy</a> · <a href=/ai/>AI Policy</a> ·
12<span>Powered by
13<a href="https://gohugo.io/?utm_source=papermod" rel=noopener target=_blank>Hugo</a> &
14<a href=https://github.com/adityatelange/hugo-PaperMod/ rel=noopener target=_blank>PaperMod</a></span></footer><a href=#top id=top-link class="top-link hidden" aria-label="go to top" title="Go to Top (Alt + G)" accesskey=g><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevrons-up"><polyline points="17 11 12 6 7 11"/><polyline points="17 18 12 13 7 18"/></svg>
15</a>
15<script crossorigin=anonymous src=/js/medium-zoom.min.js integrity="sha512-N9IJRoc3LaP3NDoiGkcPa4gG94kapGpaA5Zq9/Dr04uf5TbLFU5q0o8AbRhLKUUlp8QFS2u7S+Yti0U7QtuZvQ=="></script>
15<script>const images=Array.from(document.querySelectorAll(".post-content img"));images.forEach(e=>{mediumZoom(e,{margin:0,scrollOffset:40,container:null,template:null,background:"rgba(0, 0, 0, 0.8)"})})</script>
15<a rel=me href=https://chaos.social/@fnordsel style=display:none>Mastodon Alt</a>
16<script>let menu=document.getElementById("menu");if(menu){const e=localStorage.getItem("menu-scroll-position");e&&(menu.scrollLeft=parseInt(e,10)),menu.onscroll=function(){localStorage.setItem("menu-scroll-position",menu.scrollLeft)}}document.querySelectorAll('a[href^="#"]').forEach(e=>{e.addEventListener("click",function(e){e.preventDefault();var t=this.getAttribute("href").substr(1);window.matchMedia("(prefers-reduced-motion: reduce)").matches?document.querySelector(`[id='${decodeURIComponent(t)}']`).scrollIntoView():document.querySelector(`[id='${decodeURIComponent(t)}']`).scrollIntoView({behavior:"smooth"}),t==="top"?history.replaceState(null,null," "):history.pushState(null,null,`#${t}`)})})</script>
16<script>var toplink=document.getElementById("top-link");window.onscroll=function(){const e=window.innerHeight;document.body.scrollTop>e||document.documentElement.scrollTop>e?toplink.classList.remove("hidden"):toplink.classList.add("hidden")}</script>
16<script>document.getElementById("theme-toggle").addEventListener("click",()=>{const e=document.querySelector("html");e.dataset.theme==="dark"?(e.dataset.theme="light",localStorage.setItem("pref-theme","light")):(e.dataset.theme="dark",localStorage.setItem("pref-theme","dark"))})</script>
16</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.