1<!doctype html><html lang=en dir=auto data-theme=dark><head><meta name=generator content="Hugo 0.152.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>Eleftherios Kosmas</title><meta name=description content="Eleftherios Kosmas â Sleep Technologist at the University of Athens sleep laboratory (Evangelismos Hospital, Athens) & Vice-Chair of Libre Space Foundation. Open-source space, sleep medicine, and commons-based technology."><meta name=author content="Eleftherios Kosmas"><link rel=canonical href=https://elkos.gr/><link crossorigin=anonymous href=/assets/css/stylesheet.a9a28335204d54fce54fa0ba7c5cf458b8cbdcb3acb5d9e6b81d3f6f40c6b971.css integrity="sha256-qaKDNSBNVPzlT6C6fFz0WLjL3LOstdnmuB0/b0DGuXE=" rel="preload stylesheet" as=style><link rel=icon href=https://elkos.gr/favicon.ico><link rel=icon type=image/png sizes=16x16 href=https://elkos.gr/favicon-16x16.png><link rel=icon type=image/png sizes=32x32 href=https://elkos.gr/favicon-32x32.png><link rel=apple-touch-icon href=https://elkos.gr/apple-touch-icon.png><link rel=mask-icon href=https://elkos.gr/safari-pinned-tab.svg><meta name=theme-color content="#2e2e33"><meta name=msapplication-TileColor content="#2e2e33"><link rel=alternate type=application/rss+xml href=https://elkos.gr/index.xml title=rss><link rel=alternate type=application/json href=https://elkos.gr/index.json title=json><link rel=alternate hreflang=en href=https://elkos.gr/><link rel=alternate hreflang=el href=https://elkos.gr/el/><noscript><style>#theme-toggle,.top-link{display:none}</style></noscript>
1<script>localStorage.getItem("pref-theme")==="light"&&(document.querySelector("html").dataset.theme="light")</script>
1<style>:root[data-theme=light]{--theme:#f4f0e8;--entry:#ebe7df;--primary:#6b4c2a;--content:#2d2d2d;--secondary:#4f463a;--border:#c8c0b0;--tertiary:#d8d0c0;--code-bg:#e8e4dc;--code-block-bg:#e2ded3}:root[data-theme=dark]{--theme:#0d0a06;--entry:#1a150d;--primary:#ffb000;--content:#ccb88a;--secondary:#9a8862;--tertiary:#2a2010;--border:#3a2e18;--code-block-bg:#140f08;--code-bg:#1f180e;color-scheme:dark}:root[data-theme=dark] body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;background:repeating-linear-gradient( 0,transparent,transparent 2px,rgba(0,0,0,6%) 2px,rgba(0,0,0,6%) 4px ),radial-gradient( ellipse at center,transparent 60%,rgba(0,0,0,.35) 100% )}:root[data-theme=dark] .profile_inner>span::after{content:"â";animation:blink-cursor 1s step-end infinite;color:var(--primary);margin-left:2px;font-weight:300}@keyframes blink-cursor{0%,100%{opacity:1}50%{opacity:0}}.crt-boot{position:fixed;inset:0;z-index:10000;background:#0d0a06;pointer-events:none}.crt-boot .boot-static{position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,rgba(255,255,255,.92) 49.8%,rgba(255,255,255,.92) 50.2%,transparent 100%),repeating-linear-gradient(90deg,rgba(255,255,255,.14) 0 2px,transparent 2px 5px),repeating-linear-gradient(0,rgba(0,0,0,.16) 0 1px,rgba(255,255,255,8%) 1px 2px);filter:contrast(1.1)brightness(1.05);opacity:0;animation:boot-static 1.15s ease-out forwards}.crt-boot::before,.crt-boot::after{content:"";position:absolute;inset:0;pointer-events:none}.crt-boot::before{background:radial-gradient(circle at center,rgba(255,255,255,.18) 0 18%,transparent 62%);mix-blend-mode:screen;opacity:0;animation:boot-flare .22s ease-out forwards}.crt-boot::after{background:radial-gradient(ellipse at center,transparent 0 58%,rgba(0,0,0,.22) 100%)}@keyframes boot-static{0%{opacity:0;transform:scaleY(.08)}12%{opacity:.9;transform:scaleY(.18)}50%{opacity:.88;transform:scaleY(1)}78%{opacity:.48;transform:scaleY(1)}100%{opacity:0;transform:scaleY(1)}}@keyframes boot-flare{0%{opacity:.95;transform:scale(.3)}100%{opacity:0;transform:scale(2.1)}}.crt-boot.fade-out{opacity:0;transition:opacity .4s ease}#eeg-waveform{position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none;opacity:.06;z-index:0}.sat-pass{position:fixed;width:3px;height:3px;background:var(--primary);border-radius:50%;box-shadow:0 0 6px 2px rgba(255,176,0,.5);z-index:9990;pointer-events:none;opacity:0}@keyframes sat-fly{0%{opacity:0;transform:translate(-20px,-20px)}5%{opacity:.8}90%{opacity:.6}100%{opacity:0;transform:translate(calc(100vw + 20px),calc(50vh + 20px))}}.sat-pass.animate{animation:sat-fly 12s linear forwards}.avatar-container{position:relative;display:inline-block}.avatar-overlay{position:absolute;inset:0;opacity:0;transition:opacity .3s ease;pointer-events:none}.avatar-container:hover .avatar-overlay{opacity:1}.avatar-overlay circle{fill:none;stroke:var(--primary);stroke-width:1.5;opacity:0;transition:opacity .3s ease}.avatar-container:hover .avatar-overlay circle{opacity:.7;animation:electrode-pulse 2s ease-in-out infinite}.avatar-overlay text{fill:var(--primary);font-size:5px;font-family:monospace;opacity:0;transition:opacity .3s ease .15s}.avatar-container:hover .avatar-overlay text{opacity:.9}@keyframes electrode-pulse{0%,100%{r:3}50%{r:4}}#phosphor-canvas{position:fixed;inset:0;pointer-events:none;z-index:9997;opacity:.15;mix-blend-mode:screen}:root[data-theme=dark] #noise-grain{position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:9996;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:256px 256px;animation:grain-shift .5s steps(4)infinite}@keyframes grain-shift{0%{transform:translate(0,0)}25%{transform:translate(-5%,-5%)}50%{transform:translate(5%,0)}75%{transform:translate(-2%,5%)}100%{transform:translate(0,0)}}.glitch-target{position:relative;display:inline-block}.glitch-target.glitching::before,.glitch-target.glitching::after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%}.glitch-target.glitching::before{color:#ff0040;animation:glitch-1 .15s linear;clip-path:inset(20% 0 40% 0)}.glitch-target.glitching::after{color:#00d4ff;animation:glitch-2 .15s linear;clip-path:inset(60% 0 10% 0)}@keyframes glitch-1{0%{transform:translate(0)}20%{transform:translate(-3px,1px)}40%{transform:translate(3px,-1px)}60%{transform:translate(-2px,2px)}80%{transform:translate(2px,-2px)}100%{transform:translate(0)}}@keyframes glitch-2{0%{transform:translate(0)}20%{transform:translate(3px,-1px)}40%{transform:translate(-3px,2px)}60%{transform:translate(2px,-1px)}80%{transform:translate(-2px,1px)}100%{transform:translate(0)}}.avatar-overlay.pulse circle{opacity:.9!important;animation:electrode-burst 2s ease-out forwards!important}.avatar-overlay.pulse text{opacity:1!important}@keyframes electrode-burst{0%{r:3;opacity:.9}30%{r:5;opacity:1}100%{r:3;opacity:0}
1}body{padding-top:44px}.contact-form{display:flex;flex-direction:column;gap:16px;max-width:500px;margin:24px 0;font-family:var(--font-mono)}.contact-form label{display:flex;flex-direction:column;gap:6px;color:var(--primary);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.05em}.contact-form input[type=text],.contact-form input[type=email],.contact-form textarea{background:var(--entry);border:1px solid var(--border);border-radius:2px;color:var(--content);padding:10px 12px;font-family:inherit;font-size:13px;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}.contact-form input[type=text]:focus,.contact-form input[type=email]:focus,.contact-form textarea:focus{border-color:var(--primary);background:rgba(255,176,0,2%);box-shadow:0 0 10px rgba(255,176,0,.15);outline:2px solid var(--primary);outline-offset:2px}.contact-form input[type=text]:focus:invalid,.contact-form input[type=email]:focus:invalid,.contact-form textarea:focus:invalid{border-color:#ff4040;outline-color:#ff4040;box-shadow:0 0 10px rgba(255,64,64,.15)}[data-theme=light] .contact-form input[type=text]:focus,[data-theme=light] .contact-form input[type=email]:focus,[data-theme=light] .contact-form textarea:focus{background:#fff;box-shadow:0 2px 6px rgba(0,0,0,5%)}.contact-form button[type=submit]{background:0 0;color:var(--primary);border:1px solid var(--primary);border-radius:2px;padding:12px;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;transition:background .2s,color .2s,box-shadow .2s,transform .1s;display:flex;align-items:center;justify-content:center;gap:8px}.contact-form button[type=submit]::before{content:'â¯';font-size:11px}.contact-form button[type=submit]:hover{background:var(--primary);color:var(--theme);box-shadow:0 0 12px rgba(255,176,0,.35)}.contact-form button[type=submit]:hover::before{animation:blink-cursor 1s step-end infinite}.contact-form button[type=submit]:active{transform:scale(.98)}.contact-form button[type=submit]:disabled{background:var(--secondary);color:var(--theme);cursor:not-allowed;opacity:.5}.contact-form .form-status{margin:4px 0 0;font-size:12px;font-weight:600}.contact-form .form-status.ok{color:#40ff40}[data-theme=light] .contact-form .form-status.ok{color:#0a0}.contact-form .form-status.err{color:#ff4040}[data-theme=light] .contact-form .form-status.err{color:#c00}.contact-form .hp{display:none!important}.post-single{font-family:var(--font-mono);font-size:15px;line-height:1.7}.post-single .post-content{font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen,Ubuntu,Cantarell,open sans,helvetica neue,sans-serif;font-size:1rem;line-height:1.78}.post-single .post-content code,.post-single .post-content kbd,.post-single .post-content pre,.post-single .post-content table,.post-single .post-content .highlight,.post-single .post-content .highlight *{font-family:var(--font-mono)}.post-single .entry-title{color:var(--primary)}.post-single h2,.post-single h3,.post-single h4{font-family:var(--font-mono);color:var(--primary);margin-top:32px;margin-bottom:12px;letter-spacing:.02em;border-bottom:1px dashed var(--border);padding-bottom:6px}[data-theme=dark] .post-single h2,[data-theme=dark] .post-single h3,[data-theme=dark] .post-single h4{text-shadow:0 0 8px rgba(255,176,0,.2)}.post-single h2::before,.post-single h3::before,.post-single h4::before{content:'>> ';color:var(--border)}.post-single ul{list-style:none;padding-left:12px}.post-single ul li{position:relative;padding-left:16px;margin-bottom:6px}.post-single ul li::before{content:'â';position:absolute;left:0;color:var(--primary)}.post-single blockquote{border-left:2px solid var(--primary);background:rgba(255,176,0,1%);margin:16px 0;padding:10px 16px;font-style:italic;color:var(--content)}[data-theme=dark] .post-single blockquote{box-shadow:inset 2px 0 0 var(--primary);border-left:none}.post-single table{width:100%;border-collapse:collapse;margin:16px 0}.post-single th,.post-single td{border:1px solid var(--border);padding:8px 12px;text-align:left}.post-single th{background:var(--entry);color:var(--primary);font-weight:700}.post-single img{border:1px solid var(--border);border-radius:4px;margin:16px 0}#terminal-bar{position:fixed;top:0;left:0;right:0;z-index:9999;font-family:var(--font-mono);transition:background .2s}.term-bar-collapsed{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 20px;background:rgba(13,10,6,.85);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);cursor:pointer;font-size:.82rem;transition:background .2s;width:100%}.term-bar-collapsed:hover{background:rgba(26,21,13,.95)}.term-bar-collapsed:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;background:rgba(26,21,13,.95)}.term-bar-logo{color:var(--primary);text-decoration:none;font-weight:700;font-size:.88rem;letter-spacing:.02em;flex-shrink:0;margin-right:4px}.term-bar-logo:hover{opacity:.8}.term-bar-placeholder{color:var(--secondary);opacity:.92;flex:1}.term-bar-help{color:var(--secondary);opacity:.72;font-size:.74rem;white-space:nowrap}.term-bar-hint{font-size:.7rem;color:var(--primary);opacity:.5;padding:1px 6px;border:1px solid var(--border);border-radius:3px}@media(max-width:640px){.term-bar-collapsed{padding-inline:14px}.term-bar-help{display:none}.term-bar-hint{display:none}}.term-bar-expanded{display:none;background:rgba(13,10,6,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);box-shadow:0 8px 32px rgba(0,0,0,.5)}@keyframes term-slide-down{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}#terminal-bar.expanded .term-bar-collapsed{display:none}#terminal-bar.expanded .term-bar-expanded{display:block;animation:term-slide-down .2s ease-out}.cmd-terminal-header{padding:10px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;font-size:.78rem;background:rgba(255,255,255,2%)}.cmd-close-hint{font-size:.68rem;opacity:.4}.cmd-terminal-output{max-height:320px;overflow-y:auto;padding:10px 20px;font-size:.82rem;line-height:1.6;white-space:pre-wrap;word-break:break-word;scrollbar-width:thin;scrollbar-color:var(--border)transparent}.cmd-terminal-output::-webkit-scrollbar{width:4px}.cmd-terminal-output::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.cmd-terminal-line{margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid rgba(255,176,0,5%)}.cmd-suggestions{display:none;border-top:1px solid var(--border);max-height:210px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border)transparent}.cmd-suggestions::-webkit-scrollbar{width:4px}.cmd-suggestions::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.cmd-sugg{display:flex;align-items:baseline;gap:10px;padding:8px 20px;cursor:pointer;font-size:.85rem;border-left:2px solid transparent;transition:background .1s,border-color .1s}.cmd-sugg:hover,.cmd-sugg.sel{background:rgba(255,176,0,8%);border-left-color:var(--primary)}.cmd-sugg-kind{flex-shrink:0;min-width:40px;text-align:center;font-size:.6rem;text-transform:uppercase;letter-spacing:.05em;
1color:var(--theme);background:var(--secondary);padding:1px 5px;border-radius:3px}.cmd-sugg:hover .cmd-sugg-kind,.cmd-sugg.sel .cmd-sugg-kind{background:var(--primary)}.cmd-sugg-label{color:var(--content);flex-shrink:0;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmd-sugg-sub{color:var(--secondary);font-size:.72rem;margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmd-terminal-input-row{display:flex;align-items:center;gap:12px;padding:12px 20px;border-top:1px solid var(--border);background:rgba(0,0,0,.2);transition:background .15s,border-top-color .15s}.cmd-terminal-input-row:focus-within{background:rgba(0,0,0,.3);border-top-color:var(--primary)}.cmd-terminal-input-row .cmd-palette-input{flex:1;background:0 0;border:none;outline:none;color:var(--content);font-family:inherit;font-size:.95rem;caret-color:var(--primary)}.cmd-btn{background:0 0;border:1px solid var(--border);color:var(--secondary);font-family:inherit;font-size:.75rem;padding:2px 8px;border-radius:3px;cursor:pointer;flex-shrink:0;transition:color .15s,border-color .15s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.cmd-btn:hover,.cmd-btn:active{color:var(--primary);border-color:var(--primary)}.cmd-btn-close:hover{color:#ff4040;border-color:#ff4040}.t-prompt{color:var(--primary);font-weight:700}.t-hi{color:var(--primary)}.t-dim{color:var(--secondary)}.t-cmd{color:var(--primary);font-weight:600}.t-err{color:#ff4040}.t-input{color:var(--content)}[data-theme=light] .term-bar-collapsed{background:rgba(244,240,232,.92);border-bottom-color:var(--border)}[data-theme=light] .term-bar-collapsed:hover{background:rgba(234,228,218,.97)}[data-theme=light] .term-bar-collapsed:focus-visible{background:rgba(234,228,218,.97)}[data-theme=light] .term-bar-expanded{background:rgba(244,240,232,.97);box-shadow:0 8px 32px rgba(0,0,0,.12)}[data-theme=light] .cmd-terminal-input-row{background:rgba(0,0,0,5%)}[data-theme=light] .cmd-terminal-input-row:focus-within{background:rgba(0,0,0,8%)}[data-theme=light] .cmd-terminal-line{border-bottom-color:rgba(139,119,75,8%)}[data-theme=light] .cmd-sugg:hover,[data-theme=light] .cmd-sugg.sel{background:rgba(0,0,0,4%)}#terminal-bar.expanded+.header,#terminal-bar.expanded~.main{}:root[data-theme=high-contrast]{--theme:#000000;--entry:#000000;--primary:#ffffff;--content:#ffffff;--secondary:#ffff00;--border:#ffffff;--tertiary:#000000;--code-bg:#000000;--code-block-bg:#000000;color-scheme:dark}:root[data-theme=high-contrast] body::after{display:none!important}:root[data-theme=high-contrast] #terminal-bar{background:#000!important;border-bottom:2px solid #fff!important}:root[data-theme=high-contrast] .term-bar-collapsed{background:#000!important;border-bottom:2px solid #fff!important}:root[data-theme=high-contrast] .tui-grid{border-width:2px!important}:root[data-theme=high-contrast] .tui-panel{border-right-width:2px!important;border-bottom-width:2px!important}:root[data-theme=high-contrast] .tui-panel-title{background:var(--secondary)!important;color:#000!important}:root[data-theme=high-contrast] .tui-social a::before,:root[data-theme=high-contrast] .tui-social a::after{color:var(--primary)!important}</style><meta name=theme-color content="#0d0a06" media="(prefers-color-scheme: dark)"><meta name=theme-color content="#f4f0e8" media="(prefers-color-scheme: light)"><meta name=msapplication-TileColor content="#0d0a06"><link rel=manifest href=/site.webmanifest><link rel=icon type=image/svg+xml href=https://elkos.gr/favicon.svg>
1<script type=application/ld+json>{"@context":"https://schema.org","@type":"Person","name":"Eleftherios Kosmas","url":"https://elkos.gr/","image":"https://elkos.gr/avatar.webp","jobTitle":"Sleep Technologist","worksFor":[{"@type":"Organization","name":"University of Athens Sleep Laboratory (Evangelismos Hospital)"},{"@type":"Organization","name":"Libre Space Foundation","url":"https://libre.space/"}],"sameAs":["https://gitlab.com/elkosmas","https://www.linkedin.com/in/elkos/","https://fosstodon.org/@elkos"]}</script>
1<script>(function(){function e(e){var t=document.documentElement;e===0||e===1?(t.dataset.theme="dark",t.classList.add("dark")):e===2?(t.dataset.theme="high-contrast",t.classList.add("dark")):e===3&&(t.dataset.theme="light",t.classList.remove("dark"))}var t,n,o,i,a,r=localStorage.getItem("crt-theme-css"),c=localStorage.getItem("crt-theme-scanline"),s=localStorage.getItem("crt-theme-mode");r&&(t=document.createElement("style"),t.id="crt-theme-vars",t.textContent=r,document.head.appendChild(t)),c&&(n=document.createElement("style"),n.id="crt-scanline-style",n.textContent=c,document.head.appendChild(n)),o=localStorage.getItem("elkos-display-mode"),s?(i=document.documentElement,i.dataset.theme=s,i.classList.toggle("dark",s==="dark")):o!==null?e(parseInt(o,10)):(a=localStorage.getItem("pref-theme"),a==="light"?(e(3),localStorage.setItem("elkos-display-mode","3")):a==="dark"?(e(1),localStorage.setItem("elkos-display-mode","1")):(e(1),localStorage.setItem("elkos-display-mode","1"),localStorage.setItem("pref-theme","dark"))),window.addEventListener("storage",function(t){if(t.key==="elkos-display-mode"&&t.newValue!==null){var n=parseInt(t.newValue,10);e(n),n===0||n===1?localStorage.setItem("pref-theme","dark"):n===3&&localStorage.setItem("pref-theme","light")}else t.key==="pref-theme"&&t.newValue!==null&&(t.newValue==="light"?(localStorage.setItem("elkos-display-mode","3"),e(3)):t.newValue==="dark"&&(localStorage.setItem("elkos-display-mode","1"),e(1)))}),document.addEventListener("DOMContentLoaded",function(){var e=document.getElementById("theme-toggle");e&&e.addEventListener("click",function(){setTimeout(function(){var e,t,n=document.documentElement.dataset.theme==="dark";localStorage.setItem("elkos-display-mode",n?"1":"3"),localStorage.removeItem("crt-theme"),localStorage.removeItem("crt-theme-css"),localStorage.removeItem("crt-theme-scanline"),localStorage.removeItem("crt-theme-mode"),e=document.getElementById("crt-theme-vars"),e&&e.remove(),t=document.getElementById("crt-scanline-style"),t&&t.remove()},50)})})})()</script>
1<script src="/js/command-palette.js?v=33" defer></script>
1<meta property="og:url" content="https://elkos.gr/"><meta property="og:site_name" content="Eleftherios Kosmas"><meta property="og:title" content="Eleftherios Kosmas"><meta property="og:description" content="Eleftherios Kosmas â Sleep Technologist at the University of Athens sleep laboratory (Evangelismos Hospital, Athens) & Vice-Chair of Libre Space Foundation. Open-source space, sleep medicine, and commons-based technology."><meta property="og:locale" content="en_US"><meta property="og:type" content="website"><meta property="og:image" content="https://elkos.gr/og-default.jpg"><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="https://elkos.gr/og-default.jpg"><meta name=twitter:title content="Eleftherios Kosmas"><meta name=twitter:description content="Eleftherios Kosmas â Sleep Technologist at the University of Athens sleep laboratory (Evangelismos Hospital, Athens) & Vice-Chair of Libre Space Foundation. Open-source space, sleep medicine, and commons-based technology.">
1<script type=application/ld+json>{"@context":"https://schema.org","@type":"Organization","name":"Eleftherios Kosmas","url":"https://elkos.gr/","description":"Eleftherios Kosmas â Sleep Technologist at the University of Athens sleep laboratory (Evangelismos Hospital, Athens) \u0026 Vice-Chair of Libre Space Foundation. Open-source space, â¦","logo":"https://elkos.gr/favicon.ico","sameAs":["https://gitlab.com/elkosmas","https://www.linkedin.com/in/elkos/","https://fosstodon.org/@elkos","mailto:[email protected]"]}</script>
1</head><body class=list id=top><header class=header><nav class=nav><div class=logo><a href=https://elkos.gr/ accesskey=h title="elkos.gr (Alt + H)">elkos.gr</a><div class=logo-switches><button id=theme-toggle accesskey=t title="(Alt + T)" aria-label="Toggle theme"> 2<svg id="moon" width="24" height="18" 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 id="sun" width="24" height="18" 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></button><ul class=lang-switch><li>|</li><li><a href=https://elkos.gr/el/ title=Îλληνικά aria-label=Îλληνικά>Îλληνικά</a></li></ul></div></div><ul id=menu></ul></nav></header><main class=main><style>.tui{max-width:960px;margin:0 auto;padding:16px 20px 40px;font-family:sf mono,fira code,cascadia code,jetbrains mono,liberation mono,ubuntu mono,consolas,menlo,monospace;font-size:13px;line-height:1.5;color:var(--content)}.tui *{box-sizing:border-box}.tui-hero{position:relative;overflow:hidden;display:flex;gap:26px;align-items:center;padding:10px 6px 18px;margin-bottom:14px}.tui-hero-avatar{width:132px;height:132px;border-radius:4px;border:1px solid var(--border);flex-shrink:0;object-fit:cover;filter:saturate(.85)contrast(1.05);image-rendering:auto}:root[data-theme=dark] .tui-hero-avatar{filter:saturate(.6)contrast(1.1)sepia(.15);border-color:var(--secondary)}.tui-hero-main{flex:1;min-width:0;position:relative;z-index:1}.tui-hero h1{font-family:inherit;font-size:26px;font-weight:600;color:var(--primary);margin:0;letter-spacing:.04em;line-height:1.15}.tui-hero-role{color:var(--secondary);font-size:12.5px;margin:8px 0 12px;line-height:1.5}.tui-hero-role span{color:var(--primary)}.tui-hero-status{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;color:var(--secondary);font-size:11px}.tui-hero-status .dot{color:#40d070;margin-right:5px}:root[data-theme=dark] .tui-hero-status .dot{text-shadow:0 0 6px rgba(64,208,112,.6)}.tui-featured{position:relative;border:1px solid var(--border);border-radius:4px;padding:18px 20px;margin:0 0 18px;background:linear-gradient(135deg,rgba(255,176,0,4%),transparent 65%);transition:border-color .15s,box-shadow .15s}.tui-featured:hover{border-color:var(--primary);box-shadow:0 0 14px rgba(255,176,0,.1)}.tui-featured-kicker{color:var(--secondary);font-size:10px;text-transform:uppercase;letter-spacing:.14em}.tui-featured-kicker::before{content:'â ';color:var(--primary)}.tui-featured-title{display:block;color:var(--primary);font-size:18px;font-weight:700;text-decoration:none;margin:6px 0 8px;letter-spacing:.02em}.tui-featured-title:hover{text-decoration:underline}.tui-featured-pitch{color:var(--content);font-size:12.5px;line-height:1.6;margin:0 0 12px;max-width:62ch}.tui-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.tui-chip{border:1px solid var(--border);border-radius:999px;color:var(--secondary);font-size:10.5px;letter-spacing:.04em;padding:2px 10px;white-space:nowrap}.tui-cta{display:inline-block;border:1px solid var(--primary);color:var(--primary);background:0 0;text-decoration:none;font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:8px 18px;border-radius:3px;transition:background .15s,color .15s,box-shadow .15s,transform .1s}.tui-cta:hover{background:var(--primary);color:var(--theme);box-shadow:0 0 14px rgba(255,176,0,.3)}.tui-cta:active{transform:scale(.98)}.tui-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--border);border-radius:18px 4px 18px 4px;overflow:hidden}.tui-panel{padding:12px 16px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);position:relative;min-height:120px}.tui-panel:nth-child(2n){border-right:none}.tui-panel:hover{background:rgba(255,176,0,2%)}.tui-panel.wide{grid-column:1/-1;border-right:none}.tui-grid>.tui-panel:last-child{border-bottom:none}.tui-panel-title{display:inline-block;background:var(--primary);color:var(--theme);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:12px;padding:3px 12px 3px 14px;border-radius:2px 10px 10px 2px}.tui-project{display:flex;justify-content:space-between;align-items:baseline;padding:4px 0;gap:12px}.tui-project a{color:var(--primary);text-decoration:none;font-weight:500}.tui-project a:hover{text-decoration:underline}.tui-project .tui-desc{color:var(--secondary);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
3max-width:200px;text-align:right}.tui-post{display:flex;justify-content:space-between;padding:3px 0;gap:12px}.tui-post a{color:var(--content);text-decoration:none}.tui-post a:hover{color:var(--primary)}.tui-post .tui-date{color:var(--secondary);font-size:11px;white-space:nowrap}.tui-bio{color:var(--content);font-size:12px;line-height:1.6}.tui-bio strong{color:var(--primary);font-weight:600}.tui-bio a{color:var(--primary);text-decoration:underline;text-underline-offset:2px}.tui-bio a:hover{text-decoration-thickness:2px}.tui-social{display:flex;gap:16px;margin-top:12px;flex-wrap:wrap}.tui-social a{color:var(--secondary);text-decoration:none;font-size:11px;transition:color .2s}.tui-social a:hover{color:var(--primary)}.tui-social a::before{content:'[';color:var(--border)}.tui-social a::after{content:']';color:var(--border)}.tui-viewall{display:inline-block;margin-top:12px;color:var(--secondary);font-size:11px;text-decoration:none}.tui-viewall:hover{color:var(--primary)}.tui-viewall::before{content:'â ';color:var(--primary)}.tui-statusbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:6px 16px;margin-top:14px;background:var(--primary);color:var(--theme);font-size:11px;font-weight:700;border-radius:4px}.tui-statusbar a{color:var(--theme);text-decoration:none}.tui-statusbar a:hover{opacity:.8;text-decoration:underline}.tui-statusbar .tui-nav{display:flex;flex-wrap:wrap;gap:4px 0}.tui-anim{opacity:0;transform:translateY(12px);animation:tui-fade-in .4s ease forwards}
3.tui-anim:nth-child(1){animation-delay:.04s}.tui-anim:nth-child(2){animation-delay:.1s}.tui-anim:nth-child(3){animation-delay:.16s}.tui-anim:nth-child(4){animation-delay:.22s}@keyframes tui-fade-in{to{opacity:1;transform:translateY(0)}}@media(max-width:700px){.tui-grid{grid-template-columns:1fr}.tui-panel{border-right:none}.tui-hero{flex-direction:column;text-align:center;gap:16px}.tui-hero-status{justify-content:center}.tui-hero-avatar{width:112px;height:112px}}@media(prefers-reduced-motion:reduce){.tui-anim{opacity:1;transform:none;animation:none}}</style><div class=tui><header class="tui-hero tui-anim" id=tui-hero><img src=/avatar.webp alt="Eleftherios Kosmas" class=tui-hero-avatar width=132 height=132 loading=eager fetchpriority=high><div class=tui-hero-main><h1>Eleftherios Kosmas</h1><p class=tui-hero-role>Sleep Technologist · Open Source Space · Commons Advocate</p><div class=tui-hero-status><span><span class=dot>â</span>elkos.gr v2.0 â uptime since 2006</span> 4<span id=tui-clock></span></div></div></header><div class="tui-grid tui-anim"><div class=tui-panel><div class=tui-panel-title>Projects</div><div class=tui-project><a href=/sleep/>Sleep Architecture</a> 5<span class=tui-desc>stages, hypnogram</span></div><div class=tui-project><a href=/sleep-backup-tool/>Sleep Backup Tool</a> 6<span class=tui-desc>offline backups for studies</span></div></div><div class=tui-panel><div class=tui-panel-title>Writing</div><div class=tui-post><a href=/archive/posts/2024/2024-12-28-mastodon-fediverse/>Mastodon και Ïο Fediverse⦠Ïα ανοιÏÏά ÏÏÏÏÏκολλα εÏιÏÏÏÎÏÎ¿Ï Î½</a> 7<span class=tui-date>2024</span></div><div class=tui-post><a href=/archive/posts/2017/2017-01-09-browser-addon/>Î ÏÏ Î½Î± ÏÏιάξÏε Îνα αÏÎ»Ï add-on για Firefox και Chrome</a> 8<span class=tui-date>2017</span></div><div class=tui-post><a href=/archive/posts/2016/2016-02-23-apple-vs-fbi/>Apple ενανÏίον FBI⦠Îνα backdoor είναι για ÏάνÏα</a> 9<span class=tui-date>2016</span></div><div class=tui-post><a href=/archive/posts/2014/2014-11-12-microsoft-opensources-dotnet/>Î Microsoft ανοίγει Ïο .NET⦠και η «αλήθεια ÏÏ Î¼Î²Î±Î¯Î½ÎµÎ¹Â»</a> 10<span class=tui-date>2014</span></div><a href=/archive/ class=tui-viewall>all posts</a></div><div class="tui-panel wide"><div class=tui-panel-title>About</div><div class=tui-bio>Sleep technologist at the <strong>University of Athens</strong> sleep laboratory, based at <strong>Evangelismos Hospital</strong> in Athens, and vice-chair of the <a href=https://libre.space>Libre Space Foundation</a>, where we build open-source technologies for space.<br><br>My days are split between EEG recordings in the sleep lab and pushing open-source space forward with SatNOGS, UPSat, and the broader Libre Space community. I'm also a member of <a href=https://www.hackerspace.gr>hackerspace.gr</a>.</div><div class=tui-social><a href=https://gitlab.com/elkosmas>gitlab</a> 11<a href=https://www.linkedin.com/in/elkos/>linkedin</a> 12<a href=https://fosstodon.org/@elkos rel=me>mastodon</a> 13<a href="/cdn-cgi/l/email-protection#7419151d183411181f1b075a1306">email</a></div></div></div><section class="tui-featured tui-anim"><div class=tui-featured-kicker>Featured project</div><a class=tui-featured-title href=/1020/>10-20 EEG Visualizer</a><p class=tui-featured-pitch>An interactive 2D & 3D reference for the international 10-20 EEG electrode system and AASM sleep montages. Built for sleep technologists and EEG learners â and it works fully offline as an installable app.</p><div class=tui-chips><span class=tui-chip>clinical reference</span> 14<span class=tui-chip>2D/3D</span> 15<span class=tui-chip>AASM</span> 16<span class=tui-chip>offline PWA</span></div><a class=tui-cta href=/1020/>Launch the visualizer â</a></section><nav class="tui-statusbar tui-anim" aria-label=Navigate><span class=tui-nav><a href=/about/>about</a> · 17<a href=/archive/>blog</a> · 18<a href=/sleep/>sleep</a> · 19<a href=/1020/>eeg</a> · 20<a href=/contact/>contact</a> · 21<a href=/search/>search</a> · 22<a href=https://gitlab.com/elkosmas>gitlab</a></span></nav></div>
vendor: 108 bytes, line 22
22<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
22<script>(function(){var e=document.getElementById("tui-clock");if(!e)return;function t(){var t=new Date,n=String(t.getHours()).padStart(2,"0"),s=String(t.getMinutes()).padStart(2,"0"),o=String(t.getSeconds()).padStart(2,"0");e.textContent=n+":"+s+":"+o}t(),setInterval(t,1e3)})()</script>
22</main><footer class=footer><span>© 2026 <a href=https://elkos.gr/>Eleftherios Kosmas</a></span> · 23<span>Powered by 24<a href=https://gohugo.io/ rel="noopener noreferrer" target=_blank>Hugo</a> & 25<a href=https://github.com/adityatelange/hugo-PaperMod/ rel=noopener target=_blank>PaperMod</a></span></footer><a href=#top aria-label="go to top" title="Go to Top (Alt + G)" class=top-link id=top-link accesskey=g><svg viewBox="0 0 12 6" fill="currentColor"><path d="M12 6H0l6-6z"/></svg> 26</a>
26<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>
26<script>var mybutton=document.getElementById("top-link");window.onscroll=function(){document.body.scrollTop>800||document.documentElement.scrollTop>800?(mybutton.style.visibility="visible",mybutton.style.opacity="1"):(mybutton.style.visibility="hidden",mybutton.style.opacity="0")}</script>
26<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>
26<!-- Cloudflare Pages Analytics -->
vendor: 99 bytes, line 26
26<script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "
266c5912b8665a4368925618abd88276f5
vendor: 13 bytes, line 26
26"}'></script>
26<!-- Cloudflare Pages Analytics -->
26<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"f916a47484c44188a3d5f65a44ea698b","r":1,"spa":2}' crossorigin="anonymous"></script>
26 27</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.