CINXE.COM

welcome! • walterra.dev

<!DOCTYPE html><html class="scroll-smooth" lang="en-GB"> <head><meta charset="utf-8"><meta content="width=device-width, initial-scale=1.0" name="viewport"><title>welcome! • walterra.dev</title><link href="/favicon.ico" rel="icon" sizes="any"><link href="/apple-touch-icon.png" rel="apple-touch-icon" sizes="180x180"><link href="/favicon-32x32.png" rel="icon" sizes="32x32" type="image/png"><link href="/favicon-16x16.png" rel="icon" sizes="16x16" type="image/png"><link href="/manifest.webmanifest" rel="manifest"><link href="https://walterra.dev/" rel="canonical"><meta content="welcome! • walterra.dev" name="title"><meta content="Personal website of software developer Walter M. Rafelsberger." name="description"><meta content="walterra" name="author"><meta content="website" property="og:type"><meta content="welcome!" property="og:title"><meta content="Personal website of software developer Walter M. Rafelsberger." property="og:description"><meta content="https://walterra.dev/" property="og:url"><meta content="walterra.dev" property="og:site_name"><meta content="en_GB" property="og:locale"><meta content="https://walterra.dev/social-card.png" property="og:image"><meta content="1200" property="og:image:width"><meta content="630" property="og:image:height"><meta content="summary_large_image" property="twitter:card"><meta content="https://walterra.dev/" property="twitter:url"><meta content="welcome!" property="twitter:title"><meta content="Personal website of software developer Walter M. Rafelsberger." property="twitter:description"><meta content="https://walterra.dev/social-card.png" property="twitter:image"><link href="/sitemap-index.xml" rel="sitemap"><link href="/rss.xml" rel="alternate" title="Blog" type="application/rss+xml"><link href="/notes/rss.xml" rel="alternate" title="Notes" type="application/rss+xml"><meta content="Astro v5.1.5" name="generator"><!-- Goatcounter --><script async data-goatcounter="https://walterra.goatcounter.com/count" src="//gc.zgo.at/count.js"></script><style>h2[data-astro-cid-bm3qlbrs].subdued{color:#666}.now-date[data-astro-cid-wkne6etb]{color:#999}.now-tag[data-astro-cid-wkne6etb]{display:inline-block;font-weight:400;font-size:11px;margin:0 .1em;padding:.1em .3em;border-radius:3px;background:#2775c3;color:#fff;vertical-align:middle}.now-post[data-astro-cid-ekz2opug]{margin-bottom:32px} </style> <link rel="stylesheet" href="/_astro/_slug_.BdVw5OAV.css"><script type="module" src="/_astro/page.V2R8AmkL.js"></script></head> <body class="bg-global-bg text-global-text mx-auto flex min-h-screen max-w-3xl flex-col px-4 pt-16 font-mono text-sm font-normal antialiased sm:px-8"> <script> const lightModePref = window.matchMedia("(prefers-color-scheme: light)"); function getUserPref() { const storedTheme = typeof localStorage !== "undefined" && localStorage.getItem("theme"); return storedTheme || (lightModePref.matches ? "light" : "dark"); } function setTheme(newTheme) { if (newTheme !== "light" && newTheme !== "dark") { return console.warn( `Invalid theme value '${newTheme}' received. Expected 'light' or 'dark'.`, ); } const root = document.documentElement; // root already set to newTheme, exit early if (newTheme === root.getAttribute("data-theme")) { return; } root.setAttribute("data-theme", newTheme); if (typeof localStorage !== "undefined") { localStorage.setItem("theme", newTheme); } } // initial setup setTheme(getUserPref()); // View Transitions hook to restore theme document.addEventListener("astro:after-swap", () => setTheme(getUserPref())); // listen for theme-change custom event, fired in src/components/ThemeToggle.astro document.addEventListener("theme-change", (e) => { setTheme(e.detail.theme); }); // listen for prefers-color-scheme change. lightModePref.addEventListener("change", (e) => setTheme(e.matches ? "light" : "dark")); </script> <a class="sr-only focus:not-sr-only focus:fixed focus:start-1 focus:top-1.5" href="#main">skip to content </a> <header class="group relative mb-10 flex items-top" id="main-header"> <div class="flex-col"> <a aria-current="page" class="items-center grayscale hover:filter-none relative inline-block" href="/"> <span class="text-xl font-bold sm:text-2xl hover:underline">walterra.dev</span> </a> <nav aria-label="Main menu" class="items-end gap-y-4 py-4 text-accent static z-auto -ms-4 mt-1 flex flex-row divide-x divide-dashed divide-accent bg-transparent py-0" id="navigation-menu"> <a aria-current="page" class="px-4 underline-offset-2 py-0 hover:underline" data-astro-prefetch href="/"> now </a><a aria-current="false" class="px-4 underline-offset-2 py-0 hover:underline" data-astro-prefetch href="/blog"> blog </a><a aria-current="false" class="px-4 underline-offset-2 py-0 hover:underline" data-astro-prefetch href="/code"> code </a> </nav> </div> <site-search class="ms-auto" id="search"> <button class="hover:text-accent flex h-9 w-9 cursor-pointer items-center justify-center rounded-md" aria-keyshortcuts="Control+K Meta+K" data-open-modal disabled> <svg aria-hidden="true" class="h-7 w-7" fill="none" height="16" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24" width="16" xmlns="http://www.w3.org/2000/svg"> <path d="M0 0h24v24H0z" stroke="none"></path> <path d="M3 10a7 7 0 1 0 14 0 7 7 0 1 0-14 0M21 21l-6-6"></path> </svg> <span class="sr-only">Open Search</span> </button> <dialog aria-label="search" class="bg-global-bg h-full max-h-full w-full max-w-full border border-zinc-400 shadow-sm backdrop:backdrop-blur-sm open:flex sm:mx-auto sm:mt-16 sm:mb-auto sm:h-max sm:max-h-[calc(100%-8rem)] sm:min-h-[15rem] sm:w-5/6 sm:max-w-[48rem] sm:rounded-md"> <div class="dialog-frame flex grow flex-col gap-4 p-6 pt-12 sm:pt-6"> <button class="ms-auto cursor-pointer rounded-md bg-zinc-200 p-2 font-semibold dark:bg-zinc-700" data-close-modal>Close</button> <div class="search-container"> <div id="cactus__search"></div> </div> </div> </dialog> </site-search> <script type="module" src="/_astro/Search.astro_astro_type_script_index_0_lang.BC96t3ZS.js"></script> </header> <main id="main"> <div class="space-y-6"> <p> <small>Hi, I'm Walter M. Rafelsberger!</small> </p> <p> <small> Small bio: Machine Learning/Dataviz @ Elastic. Dataviz since 2003. Previous work: FP-7 research on media monitoring, social media and fake news. Left libertarian. Chaotic good. </small> </p> <p> <small> Here's my <a class="cactus-link" href="/blog">blog</a> (<a class="cactus-link" href="https://www.walterra.dev/rss.xml">RSS feed</a>) and some of my profiles: <a class="cactus-link" href="https://github.com/walterra">github</a> | <a class="cactus-link" href="https://bsky.app/profile/walterra.dev">bluesky</a> | <a class="cactus-link" href="https://www.linkedin.com/in/walterrafelsberger/">linkedin</a> </small> </p> <h2 class="subdued" data-astro-cid-bm3qlbrs>Current</h2> <div class="now-post" data-astro-cid-ekz2opug> <small data-astro-cid-ekz2opug> <span class="now-date" data-astro-cid-wkne6etb>2024.01.22</span> … Skyrim <span class="now-tag" data-astro-cid-wkne6etb>#gaming</span><br data-astro-cid-wkne6etb> <span class="now-date" data-astro-cid-wkne6etb>2024.10.25</span> … Star Trek: Deep Space Nine <span class="now-tag" data-astro-cid-wkne6etb>#binge</span><br data-astro-cid-wkne6etb> <span class="now-date" data-astro-cid-wkne6etb>2024.11.29</span> … <a class="cactus-link" href="https://github.com/walterra/atproto2elasticsearch">atproto2elasticsearch</a> <span class="now-tag" data-astro-cid-wkne6etb>#dev</span><br data-astro-cid-wkne6etb> <span class="now-date" data-astro-cid-wkne6etb>2025.01.08</span> … <a class="cactus-link" href="https://github.com/elastic/elastic-charts">Elastic Charts</a> <span class="now-tag" data-astro-cid-wkne6etb>#dev</span><br data-astro-cid-wkne6etb> </small> </div> <h2 class="subdued" data-astro-cid-bm3qlbrs>Next</h2> <div class="now-post" data-astro-cid-ekz2opug> <small data-astro-cid-ekz2opug> <span class="now-date" data-astro-cid-wkne6etb>2025</span> … track historic smart home data <br data-astro-cid-wkne6etb> <span class="now-date" data-astro-cid-wkne6etb>2025</span> … pick up again some work on <a class="cactus-link" href="https://github.com/walterra/eddoapp">eddo</a> <br data-astro-cid-wkne6etb> <span class="now-date" data-astro-cid-wkne6etb>2025</span> … improve performance of new <a class="cactus-link" href="https://github.com/walterra/d3-milestones/pull/71">d3-milestones layout algo</a> <br data-astro-cid-wkne6etb> <span class="now-date" data-astro-cid-wkne6etb>2025</span> … read the <a class="cactus-link" href="https://gist.github.com/veekaybee/be375ab33085102f9027853128dc5f0e">anti-hype LLM reading list</a> <br data-astro-cid-wkne6etb> <span class="now-date" data-astro-cid-wkne6etb>2025</span> … <s>revive</s> sell my <a class="cactus-link" href="https://github.com/reHackable/awesome-reMarkable">reMarkable</a> <br data-astro-cid-wkne6etb> </small> </div> <p> <small> Look back what I did in <a class="cactus-link" href="/2024">2024</a>.</small> </p> <p> <small> This is a <a class="cactus-link" href="https://sive.rs/nowff">now page</a>. Check out <a class="cactus-link" href="https://nownownow.com">other now pages</a>.</small> </p> </div> </main> <footer class="mt-auto flex w-full flex-col items-center justify-center gap-y-2 pb-4 pt-20 text-center align-top font-semibold text-gray-600 dark:text-gray-400 sm:flex-row sm:justify-between sm:text-xs"> <div class="me-0 sm:me-4"> &copy; walterra 1978-2025. </div> <nav aria-label="More on this site" class="flex gap-x-2 sm:gap-x-0 sm:divide-x sm:divide-gray-500"> <a class="px-4 py-2 sm:py-0 sm:hover:text-textColor sm:hover:underline" href="/"> now </a><a class="px-4 py-2 sm:py-0 sm:hover:text-textColor sm:hover:underline" href="/blog"> blog </a><a class="px-4 py-2 sm:py-0 sm:hover:text-textColor sm:hover:underline" href="/code"> code </a> </nav> </footer> </body></html>

Pages: 1 2 3 4 5 6 7 8 9 10