37 lines
No EOL
64 KiB
HTML
37 lines
No EOL
64 KiB
HTML
<!DOCTYPE html><html lang="de" class="inter_c15e96cb-module__0bjUvq__variable instrument_serif_65aa5ea5-module__1VeVaa__variable jetbrains_mono_7ea1d0f9-module__6GV5LG__variable dark bg-background"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/%5Broot-of-the-server%5D__12s657j._.css" data-precedence="next_static/chunks/[root-of-the-server]__12s657j._.css"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/%5Bturbopack%5D_browser_dev_hmr-client_hmr-client_ts_0o_pxrq._.js"/><script src="/_next/static/chunks/0tk4_next_dist_compiled_next-devtools_index_0wz-254.js" async=""></script><script src="/_next/static/chunks/04n-_dist_compiled_react-dom-experimental_cjs_react-dom-client_development_0l1q_ue.js" async=""></script><script src="/_next/static/chunks/0tk4_next_dist_compiled_react-dom-experimental_cjs_react-dom_development_0hd9guj.js" async=""></script><script src="/_next/static/chunks/0tk4_next_dist_compiled_react-dom-experimental_041bf.r._.js" async=""></script><script src="/_next/static/chunks/0tk4_next_dist_compiled_react-server-dom-turbopack-experimental_10zaf~-._.js" async=""></script><script src="/_next/static/chunks/0tk4_next_dist_compiled_0oe.i43._.js" async=""></script><script src="/_next/static/chunks/0tk4_next_dist_client_12yjol2._.js" async=""></script><script src="/_next/static/chunks/0tk4_next_dist_0m.cgud._.js" async=""></script><script src="/_next/static/chunks/0i4a_%40swc_helpers_cjs_0hvz.20._.js" async=""></script><script src="/_next/static/chunks/_0rqeker._.js" async=""></script><script src="/_next/static/chunks/turbopack-_0cbp1h3._.js" async=""></script><script src="/_next/static/chunks/node_modules__pnpm_0mbgbvl._.js" async=""></script><script src="/_next/static/chunks/app_layout_tsx_0bitdh9._.js" async=""></script><script src="/_next/static/chunks/_0p57tr6._.js" async=""></script><script src="/_next/static/chunks/0t3j_tailwind-merge_dist_bundle-mjs_mjs_11gnmpl._.js" async=""></script><script src="/_next/static/chunks/095l_motion-dom_dist_es_0ril_e2._.js" async=""></script><script src="/_next/static/chunks/0nan_framer-motion_dist_es_0zinqa1._.js" async=""></script><script src="/_next/static/chunks/node_modules__pnpm_0~nn5fw._.js" async=""></script><script src="/_next/static/chunks/app_page_tsx_0j54u8h._.js" async=""></script><script src="/_next/static/chunks/_0ibxwco._.js" async=""></script><script src="/_next/static/chunks/app_global-error_tsx_0j54u8h._.js" async=""></script><link rel="expect" href="#_R_" blocking="render"/><meta name="next-size-adjust" content=""/><meta name="theme-color" content="#faf9f7" media="(prefers-color-scheme: light)"/><meta name="theme-color" content="#1a1a1f" media="(prefers-color-scheme: dark)"/><title>Jamulix | 40 Jahre Code</title><meta name="description" content="Seit 40 Jahren Code. Von Fortran IV bis KI-Projekte in Python und Rust. Erfahrener Programmierer, Linux-Veteran und KI-Entwickler."/><meta name="author" content="Jamulix"/><meta name="keywords" content="Programmierung,Linux,KI,Python,Rust,Software-Entwicklung,AI,Fortran,Unix"/><meta name="creator" content="Jamulix"/><meta name="robots" content="index, follow"/><meta property="og:title" content="Jamulix | 40 Jahre Code"/><meta property="og:description" content="Seit 40 Jahren Code. Von Fortran IV bis KI-Projekte in Python und Rust."/><meta property="og:url" content="https://jamulix.de"/><meta property="og:site_name" content="Jamulix"/><meta property="og:locale" content="de_DE"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Jamulix | 40 Jahre Code"/><meta name="twitter:description" content="Seit 40 Jahren Code. Von Fortran IV bis KI-Projekte in Python und Rust."/><script>
|
||
(function() {
|
||
const stored = localStorage.getItem('theme');
|
||
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
||
const theme = stored || (prefersDark ? 'dark' : 'light');
|
||
document.documentElement.classList.toggle('dark', theme === 'dark');
|
||
})();
|
||
</script><script src="/_next/static/chunks/0tk4_next_dist_build_polyfills_polyfill-nomodule.js" noModule=""></script><script>window.__V0_SANDBOX_ID__="sb-4c9q0u44wjgi"</script><script async src="/v0-runtime-dist.js"></script></head><body class="font-sans antialiased min-h-screen"><div hidden=""><!--$--><!--/$--></div><header class="fixed top-0 left-0 right-0 z-50 transition-all duration-300 bg-transparent"><div class="max-w-6xl mx-auto px-6 lg:px-8"><nav class="flex items-center justify-between h-16 lg:h-20"><a class="font-mono text-lg tracking-tight text-foreground hover:text-accent transition-colors" href="/">Jamulix</a><div class="hidden md:flex items-center gap-8"><a class="text-sm text-muted-foreground hover:text-foreground transition-colors" href="#projekte">Projekte</a><a class="text-sm text-muted-foreground hover:text-foreground transition-colors" href="#ueber">Über</a><a class="text-sm text-muted-foreground hover:text-foreground transition-colors" href="#fokus">Fokus</a><a class="text-sm text-muted-foreground hover:text-foreground transition-colors" href="#philosophie">Philosophie</a><a class="text-sm text-muted-foreground hover:text-foreground transition-colors" href="#kontakt">Kontakt</a><button data-slot="button" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 size-9 text-muted-foreground"><span class="sr-only">Theme umschalten</span></button></div><div class="flex items-center gap-2 md:hidden"><button data-slot="button" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 size-9 text-muted-foreground"><span class="sr-only">Theme umschalten</span></button><button data-slot="button" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 size-9 text-muted-foreground" aria-label="Menü öffnen"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu size-5" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg></button></div></nav></div></header><main><section class="relative min-h-screen flex items-center pt-20 lg:pt-0"><div class="absolute inset-0 overflow-hidden"><div class="absolute inset-0 opacity-[0.02] dark:opacity-[0.04]" style="background-image:linear-gradient(to right, currentColor 1px, transparent 1px),
|
||
linear-gradient(to bottom, currentColor 1px, transparent 1px);background-size:60px 60px"></div></div><div class="relative max-w-6xl mx-auto px-6 lg:px-8 py-20 lg:py-32"><div class="grid lg:grid-cols-12 gap-12 lg:gap-16 items-center"><div class="lg:col-span-7 space-y-8"><div style="opacity:0;transform:translateY(20px)"><span class="inline-block font-mono text-xs tracking-wider text-accent uppercase mb-6">1984 – heute</span><h1 class="font-serif text-4xl sm:text-5xl lg:text-6xl xl:text-7xl leading-[1.1] tracking-tight text-balance">Seit 40 Jahren Code. Von Fortran<!-- --> <!-- -->IV bis KI-Projekte in Python und Rust.</h1></div><p class="text-lg lg:text-xl text-muted-foreground leading-relaxed max-w-2xl" style="opacity:0;transform:translateY(20px)">Erste Programmiersprache: Fortran<!-- --> <!-- -->IV. Dann C und 68000-Assembler auf dem Atari<!-- --> <!-- -->ST. An der Universität Unix entdeckt – und Linux nie wieder losgelassen. Seit Ende 2022 konzentriert auf KI-Tools und KI-Programmierung. Heute: Python und Rust.</p><div class="flex flex-col sm:flex-row gap-4 pt-4" style="opacity:0;transform:translateY(20px)"><a data-slot="button" class="inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive bg-primary text-primary-foreground hover:bg-primary/90 h-10 rounded-md px-6 has-[>svg]:px-4 group" href="#projekte">Projekte ansehen<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down ml-2 size-4 transition-transform group-hover:translate-y-0.5" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg></a><a data-slot="button" class="inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-10 rounded-md px-6 has-[>svg]:px-4 group" href="#ueber">Über Jamulix<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right ml-2 size-4 transition-transform group-hover:translate-x-0.5" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></div><div class="lg:col-span-5 hidden lg:block" style="opacity:0;transform:scale(0.95)"><div class="relative aspect-square w-full max-w-md mx-auto"><svg class="absolute inset-0 w-full h-full" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid meet"><defs><linearGradient id="lineGradient" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="currentColor" stop-opacity="0.1"></stop><stop offset="50%" stop-color="currentColor" stop-opacity="0.3"></stop><stop offset="100%" stop-color="currentColor" stop-opacity="0.1"></stop></linearGradient></defs><line x1="20" y1="15" x2="45" y2="25" stroke="url(#lineGradient)" stroke-width="0.5" class="text-accent" opacity="0" pathLength="1" stroke-dashoffset="0" stroke-dasharray="0 1"></line><line x1="45" y1="25" x2="75" y2="20" stroke="url(#lineGradient)" stroke-width="0.5" class="text-accent" opacity="0" pathLength="1" stroke-dashoffset="0" stroke-dasharray="0 1"></line><line x1="45" y1="25" x2="30" y2="45" stroke="url(#lineGradient)" stroke-width="0.5" class="text-accent" opacity="0" pathLength="1" stroke-dashoffset="0" stroke-dasharray="0 1"></line><line x1="30" y1="45" x2="60" y2="50" stroke="url(#lineGradient)" stroke-width="0.5" class="text-accent" opacity="0" pathLength="1" stroke-dashoffset="0" stroke-dasharray="0 1"></line><line x1="60" y1="50" x2="25" y2="75" stroke="url(#lineGradient)" stroke-width="0.5" class="text-accent" opacity="0" pathLength="1" stroke-dashoffset="0" stroke-dasharray="0 1"></line><line x1="60" y1="50" x2="55" y2="80" stroke="url(#lineGradient)" stroke-width="0.5" class="text-accent" opacity="0" pathLength="1" stroke-dashoffset="0" stroke-dasharray="0 1"></line><line x1="25" y1="75" x2="80" y2="70" stroke="url(#lineGradient)" stroke-width="0.5" class="text-accent" opacity="0" pathLength="1" stroke-dashoffset="0" stroke-dasharray="0 1"></line><line x1="55" y1="80" x2="80" y2="70" stroke="url(#lineGradient)" stroke-width="0.5" class="text-accent" opacity="0" pathLength="1" stroke-dashoffset="0" stroke-dasharray="0 1"></line></svg><div class="absolute transform -translate-x-1/2 -translate-y-1/2" style="left:20%;top:15%;opacity:0;transform:scale(0)"><div class="group relative"><div class="relative"><div class="size-3 rounded-full bg-accent/20 border border-accent/40 group-hover:bg-accent/30 transition-colors"></div><div class="absolute inset-0 size-3 rounded-full bg-accent/60 animate-ping opacity-0 group-hover:opacity-30"></div></div><div class="absolute top-full left-1/2 -translate-x-1/2 mt-1.5 whitespace-nowrap"><span class="font-mono text-[10px] text-muted-foreground group-hover:text-foreground transition-colors">Fortran IV</span></div><div class="absolute bottom-full left-1/2 -translate-x-1/2 mb-1.5 opacity-0 group-hover:opacity-100 transition-opacity"><span class="font-mono text-[9px] text-accent bg-background/80 px-1.5 py-0.5 rounded border border-border/50">1984</span></div></div></div><div class="absolute transform -translate-x-1/2 -translate-y-1/2" style="left:45%;top:25%;opacity:0;transform:scale(0)"><div class="group relative"><div class="relative"><div class="size-3 rounded-full bg-accent/20 border border-accent/40 group-hover:bg-accent/30 transition-colors"></div><div class="absolute inset-0 size-3 rounded-full bg-accent/60 animate-ping opacity-0 group-hover:opacity-30"></div></div><div class="absolute top-full left-1/2 -translate-x-1/2 mt-1.5 whitespace-nowrap"><span class="font-mono text-[10px] text-muted-foreground group-hover:text-foreground transition-colors">C</span></div><div class="absolute bottom-full left-1/2 -translate-x-1/2 mb-1.5 opacity-0 group-hover:opacity-100 transition-opacity"><span class="font-mono text-[9px] text-accent bg-background/80 px-1.5 py-0.5 rounded border border-border/50">1986</span></div></div></div><div class="absolute transform -translate-x-1/2 -translate-y-1/2" style="left:75%;top:20%;opacity:0;transform:scale(0)"><div class="group relative"><div class="relative"><div class="size-3 rounded-full bg-accent/20 border border-accent/40 group-hover:bg-accent/30 transition-colors"></div><div class="absolute inset-0 size-3 rounded-full bg-accent/60 animate-ping opacity-0 group-hover:opacity-30"></div></div><div class="absolute top-full left-1/2 -translate-x-1/2 mt-1.5 whitespace-nowrap"><span class="font-mono text-[10px] text-muted-foreground group-hover:text-foreground transition-colors">68K ASM</span></div><div class="absolute bottom-full left-1/2 -translate-x-1/2 mb-1.5 opacity-0 group-hover:opacity-100 transition-opacity"><span class="font-mono text-[9px] text-accent bg-background/80 px-1.5 py-0.5 rounded border border-border/50">1987</span></div></div></div><div class="absolute transform -translate-x-1/2 -translate-y-1/2" style="left:30%;top:45%;opacity:0;transform:scale(0)"><div class="group relative"><div class="relative"><div class="size-3 rounded-full bg-accent/20 border border-accent/40 group-hover:bg-accent/30 transition-colors"></div><div class="absolute inset-0 size-3 rounded-full bg-accent/60 animate-ping opacity-0 group-hover:opacity-30"></div></div><div class="absolute top-full left-1/2 -translate-x-1/2 mt-1.5 whitespace-nowrap"><span class="font-mono text-[10px] text-muted-foreground group-hover:text-foreground transition-colors">Unix</span></div><div class="absolute bottom-full left-1/2 -translate-x-1/2 mb-1.5 opacity-0 group-hover:opacity-100 transition-opacity"><span class="font-mono text-[9px] text-accent bg-background/80 px-1.5 py-0.5 rounded border border-border/50">1990</span></div></div></div><div class="absolute transform -translate-x-1/2 -translate-y-1/2" style="left:60%;top:50%;opacity:0;transform:scale(0)"><div class="group relative"><div class="relative"><div class="size-3 rounded-full bg-accent/20 border border-accent/40 group-hover:bg-accent/30 transition-colors"></div><div class="absolute inset-0 size-3 rounded-full bg-accent/60 animate-ping opacity-0 group-hover:opacity-30"></div></div><div class="absolute top-full left-1/2 -translate-x-1/2 mt-1.5 whitespace-nowrap"><span class="font-mono text-[10px] text-muted-foreground group-hover:text-foreground transition-colors">Linux</span></div><div class="absolute bottom-full left-1/2 -translate-x-1/2 mb-1.5 opacity-0 group-hover:opacity-100 transition-opacity"><span class="font-mono text-[9px] text-accent bg-background/80 px-1.5 py-0.5 rounded border border-border/50">1994</span></div></div></div><div class="absolute transform -translate-x-1/2 -translate-y-1/2" style="left:25%;top:75%;opacity:0;transform:scale(0)"><div class="group relative"><div class="relative"><div class="size-3 rounded-full bg-accent/20 border border-accent/40 group-hover:bg-accent/30 transition-colors"></div><div class="absolute inset-0 size-3 rounded-full bg-accent/60 animate-ping opacity-0 group-hover:opacity-30"></div></div><div class="absolute top-full left-1/2 -translate-x-1/2 mt-1.5 whitespace-nowrap"><span class="font-mono text-[10px] text-muted-foreground group-hover:text-foreground transition-colors">Python</span></div><div class="absolute bottom-full left-1/2 -translate-x-1/2 mb-1.5 opacity-0 group-hover:opacity-100 transition-opacity"><span class="font-mono text-[9px] text-accent bg-background/80 px-1.5 py-0.5 rounded border border-border/50">2020</span></div></div></div><div class="absolute transform -translate-x-1/2 -translate-y-1/2" style="left:55%;top:80%;opacity:0;transform:scale(0)"><div class="group relative"><div class="relative"><div class="size-3 rounded-full bg-accent/20 border border-accent/40 group-hover:bg-accent/30 transition-colors"></div><div class="absolute inset-0 size-3 rounded-full bg-accent/60 animate-ping opacity-0 group-hover:opacity-30"></div></div><div class="absolute top-full left-1/2 -translate-x-1/2 mt-1.5 whitespace-nowrap"><span class="font-mono text-[10px] text-muted-foreground group-hover:text-foreground transition-colors">Rust</span></div><div class="absolute bottom-full left-1/2 -translate-x-1/2 mb-1.5 opacity-0 group-hover:opacity-100 transition-opacity"><span class="font-mono text-[9px] text-accent bg-background/80 px-1.5 py-0.5 rounded border border-border/50">2022</span></div></div></div><div class="absolute transform -translate-x-1/2 -translate-y-1/2" style="left:80%;top:70%;opacity:0;transform:scale(0)"><div class="group relative"><div class="relative"><div class="size-3 rounded-full bg-accent/20 border border-accent/40 group-hover:bg-accent/30 transition-colors"></div><div class="absolute inset-0 size-3 rounded-full bg-accent/60 animate-ping opacity-0 group-hover:opacity-30"></div></div><div class="absolute top-full left-1/2 -translate-x-1/2 mt-1.5 whitespace-nowrap"><span class="font-mono text-[10px] text-muted-foreground group-hover:text-foreground transition-colors">KI</span></div><div class="absolute bottom-full left-1/2 -translate-x-1/2 mb-1.5 opacity-0 group-hover:opacity-100 transition-opacity"><span class="font-mono text-[9px] text-accent bg-background/80 px-1.5 py-0.5 rounded border border-border/50">2023</span></div></div></div><div class="absolute inset-0 pointer-events-none"><div class="absolute top-0 left-0 w-8 h-8 border-l border-t border-border/30"></div><div class="absolute top-0 right-0 w-8 h-8 border-r border-t border-border/30"></div><div class="absolute bottom-0 left-0 w-8 h-8 border-l border-b border-border/30"></div><div class="absolute bottom-0 right-0 w-8 h-8 border-r border-b border-border/30"></div></div></div></div></div><div class="absolute bottom-8 left-1/2 -translate-x-1/2 hidden lg:block" style="opacity:0"><div class="flex flex-col items-center gap-2 text-muted-foreground"><span class="font-mono text-xs tracking-wider">Scroll</span><div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down size-4" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg></div></div></div></div></section><section id="ueber" class="py-24 lg:py-32"><div class="max-w-6xl mx-auto px-6 lg:px-8"><div class="mb-16 lg:mb-24" style="opacity:0;transform:translateY(20px)"><span class="font-mono text-xs tracking-wider text-accent uppercase">Hintergrund</span><h2 class="font-serif text-3xl sm:text-4xl lg:text-5xl mt-4 text-balance">Vier Jahrzehnte Programmierung</h2><p class="mt-6 text-lg text-muted-foreground max-w-2xl">Eine Reise durch die Evolution der Software-Entwicklung – von Lochkarten bis zu Large Language Models.</p></div><div class="relative"><div class="absolute left-0 lg:left-1/2 top-0 bottom-0 w-px bg-border lg:-translate-x-px hidden sm:block"></div><div class="space-y-12 lg:space-y-16"><div class="relative grid lg:grid-cols-2 gap-8 lg:gap-16 " style="opacity:0;transform:translateY(30px)"><div class="absolute left-0 lg:left-1/2 top-0 -translate-x-1/2 hidden sm:block"><div class="size-3 rounded-full bg-background border-2 border-accent"></div></div><div class="pl-8 sm:pl-12 lg:pl-0 lg:pr-16 lg:text-right"><div class="lg:direction-ltr lg:ml-auto lg:max-w-md"><span class="font-mono text-sm text-accent">1984</span><h3 class="font-serif text-xl lg:text-2xl mt-2">Der Anfang</h3><p class="mt-3 text-muted-foreground leading-relaxed">Erste Programme in Fortran IV. Lochkarten, Großrechner, Batch-Verarbeitung. Die Grundlagen des algorithmischen Denkens.</p><div class="mt-4 flex flex-wrap gap-2 lg:justify-end"><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">Fortran IV</span></div></div></div></div><div class="relative grid lg:grid-cols-2 gap-8 lg:gap-16 lg:direction-rtl" style="opacity:0;transform:translateY(30px)"><div class="absolute left-0 lg:left-1/2 top-0 -translate-x-1/2 hidden sm:block"><div class="size-3 rounded-full bg-background border-2 border-accent"></div></div><div class="pl-8 sm:pl-12 lg:pl-0 lg:col-start-2 lg:pl-16"><div class="lg:direction-ltr lg:max-w-md"><span class="font-mono text-sm text-accent">1986</span><h3 class="font-serif text-xl lg:text-2xl mt-2">Systemnahe Programmierung</h3><p class="mt-3 text-muted-foreground leading-relaxed">C und 68000-Assembler auf dem Atari ST. Direkte Hardware-Ansteuerung, Interrupt-Routinen, Speicherverwaltung von Hand.</p><div class="mt-4 flex flex-wrap gap-2 "><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">C</span><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">68000 ASM</span><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">GFA Basic</span></div></div></div><div class="hidden lg:block"></div></div><div class="relative grid lg:grid-cols-2 gap-8 lg:gap-16 " style="opacity:0;transform:translateY(30px)"><div class="absolute left-0 lg:left-1/2 top-0 -translate-x-1/2 hidden sm:block"><div class="size-3 rounded-full bg-background border-2 border-accent"></div></div><div class="pl-8 sm:pl-12 lg:pl-0 lg:pr-16 lg:text-right"><div class="lg:direction-ltr lg:ml-auto lg:max-w-md"><span class="font-mono text-sm text-accent">1990</span><h3 class="font-serif text-xl lg:text-2xl mt-2">Unix an der Universität</h3><p class="mt-3 text-muted-foreground leading-relaxed">SunOS, HP-UX, BSD. Die Philosophie kleiner, zusammenarbeitender Programme. Shell-Scripting als Werkzeug.</p><div class="mt-4 flex flex-wrap gap-2 lg:justify-end"><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">Unix</span><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">Shell</span><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">vi</span></div></div></div></div><div class="relative grid lg:grid-cols-2 gap-8 lg:gap-16 lg:direction-rtl" style="opacity:0;transform:translateY(30px)"><div class="absolute left-0 lg:left-1/2 top-0 -translate-x-1/2 hidden sm:block"><div class="size-3 rounded-full bg-background border-2 border-accent"></div></div><div class="pl-8 sm:pl-12 lg:pl-0 lg:col-start-2 lg:pl-16"><div class="lg:direction-ltr lg:max-w-md"><span class="font-mono text-sm text-accent">1994</span><h3 class="font-serif text-xl lg:text-2xl mt-2">Linux entdeckt</h3><p class="mt-3 text-muted-foreground leading-relaxed">Slackware auf 40 Disketten. Der Beginn einer dauerhaften Begeisterung für offene Systeme und Selbstbestimmung.</p><div class="mt-4 flex flex-wrap gap-2 "><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">Linux</span><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">GNU Tools</span><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">X11</span></div></div></div><div class="hidden lg:block"></div></div><div class="relative grid lg:grid-cols-2 gap-8 lg:gap-16 " style="opacity:0;transform:translateY(30px)"><div class="absolute left-0 lg:left-1/2 top-0 -translate-x-1/2 hidden sm:block"><div class="size-3 rounded-full bg-background border-2 border-accent"></div></div><div class="pl-8 sm:pl-12 lg:pl-0 lg:pr-16 lg:text-right"><div class="lg:direction-ltr lg:ml-auto lg:max-w-md"><span class="font-mono text-sm text-accent">2000er</span><h3 class="font-serif text-xl lg:text-2xl mt-2">Professionelle Entwicklung</h3><p class="mt-3 text-muted-foreground leading-relaxed">Verschiedene Sprachen, verschiedene Domänen. Server-Administration, Automatisierung, Web-Entwicklung.</p><div class="mt-4 flex flex-wrap gap-2 lg:justify-end"><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">Perl</span><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">PHP</span><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">Bash</span><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">Python</span></div></div></div></div><div class="relative grid lg:grid-cols-2 gap-8 lg:gap-16 lg:direction-rtl" style="opacity:0;transform:translateY(30px)"><div class="absolute left-0 lg:left-1/2 top-0 -translate-x-1/2 hidden sm:block"><div class="size-3 rounded-full bg-background border-2 border-accent"></div></div><div class="pl-8 sm:pl-12 lg:pl-0 lg:col-start-2 lg:pl-16"><div class="lg:direction-ltr lg:max-w-md"><span class="font-mono text-sm text-accent">2022</span><h3 class="font-serif text-xl lg:text-2xl mt-2">KI-Fokus</h3><p class="mt-3 text-muted-foreground leading-relaxed">Seit Ende 2022 intensive Beschäftigung mit KI-Tools und KI-Programmierung. LLMs als Arbeitswerkzeug und Forschungsgegenstand.</p><div class="mt-4 flex flex-wrap gap-2 "><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">Python</span><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">Rust</span><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">LLMs</span><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">ML</span></div></div></div><div class="hidden lg:block"></div></div></div></div></div></section><section id="projekte" class="py-24 lg:py-32 bg-secondary/30"><div class="max-w-6xl mx-auto px-6 lg:px-8"><div class="mb-16" style="opacity:0;transform:translateY(20px)"><span class="font-mono text-xs tracking-wider text-accent uppercase">Experimente</span><h2 class="font-serif text-3xl sm:text-4xl lg:text-5xl mt-4 text-balance">Ausgewählte Projekte</h2><p class="mt-6 text-lg text-muted-foreground max-w-2xl">Technische Experimente und Werkzeuge. Weniger Portfolio, mehr Labor für Ideen.</p></div><div class="grid md:grid-cols-2 gap-6 lg:gap-8"><article class="group relative lg:col-span-1" style="opacity:0;transform:translateY(30px)"><div class="
|
||
relative h-full p-6 lg:p-8 rounded-lg border border-border
|
||
bg-card transition-all duration-300
|
||
hover:border-accent/50 hover:bg-card/80
|
||
"><div class="flex items-center justify-between mb-4"><span class="
|
||
font-mono text-xs px-2 py-1 rounded
|
||
bg-accent/10 text-accent
|
||
">Aktiv</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right size-5 text-muted-foreground group-hover:text-accent transition-colors" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></div><h3 class="font-serif text-xl lg:text-2xl mb-3 group-hover:text-accent transition-colors">Hacker News Reader</h3><p class="text-muted-foreground leading-relaxed mb-6">Ein minimalistischer, schneller Hacker News Client. Fokus auf Lesbarkeit und schnelles Laden.</p><div class="flex flex-wrap gap-2 mb-6"><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">Python</span><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">FastAPI</span><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">HTMX</span></div><a target="_blank" rel="noopener noreferrer" data-slot="button" class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5 group/btn" href="https://jamulix.de/hackernews/">Ansehen<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link ml-2 size-3 transition-transform group-hover/btn:translate-x-0.5" aria-hidden="true"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg></a></div></article><article class="group relative lg:col-span-1" style="opacity:0;transform:translateY(30px)"><div class="
|
||
relative h-full p-6 lg:p-8 rounded-lg border border-border
|
||
bg-card transition-all duration-300
|
||
hover:border-accent/50 hover:bg-card/80
|
||
"><div class="flex items-center justify-between mb-4"><span class="
|
||
font-mono text-xs px-2 py-1 rounded
|
||
bg-accent/10 text-accent
|
||
">Aktiv</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right size-5 text-muted-foreground group-hover:text-accent transition-colors" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></div><h3 class="font-serif text-xl lg:text-2xl mb-3 group-hover:text-accent transition-colors">Sorting Visualizer</h3><p class="text-muted-foreground leading-relaxed mb-6">Interaktive Visualisierung verschiedener Sortieralgorithmen. Didaktisches Werkzeug für Algorithmen-Verständnis.</p><div class="flex flex-wrap gap-2 mb-6"><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">Rust</span><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">WASM</span><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">Canvas</span></div><a target="_blank" rel="noopener noreferrer" data-slot="button" class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5 group/btn" href="https://jamulix.de/sorting">Ansehen<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link ml-2 size-3 transition-transform group-hover/btn:translate-x-0.5" aria-hidden="true"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg></a></div></article><article class="group relative " style="opacity:0;transform:translateY(30px)"><div class="
|
||
relative h-full p-6 lg:p-8 rounded-lg border border-border
|
||
bg-card transition-all duration-300
|
||
opacity-70
|
||
"><div class="flex items-center justify-between mb-4"><span class="
|
||
font-mono text-xs px-2 py-1 rounded
|
||
bg-secondary text-muted-foreground
|
||
">In Entwicklung</span></div><h3 class="font-serif text-xl lg:text-2xl mb-3 group-hover:text-accent transition-colors">Projekt in Arbeit</h3><p class="text-muted-foreground leading-relaxed mb-6">KI-gestütztes Werkzeug für Code-Analyse und Dokumentation. Details folgen.</p><div class="flex flex-wrap gap-2 mb-6"><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">Python</span><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">LLM</span><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">AST</span></div></div></article><article class="group relative " style="opacity:0;transform:translateY(30px)"><div class="
|
||
relative h-full p-6 lg:p-8 rounded-lg border border-border
|
||
bg-card transition-all duration-300
|
||
opacity-70
|
||
"><div class="flex items-center justify-between mb-4"><span class="
|
||
font-mono text-xs px-2 py-1 rounded
|
||
bg-secondary/50 text-muted-foreground/70
|
||
">Geplant</span></div><h3 class="font-serif text-xl lg:text-2xl mb-3 group-hover:text-accent transition-colors">Geplant</h3><p class="text-muted-foreground leading-relaxed mb-6">Self-hosted Infrastruktur-Monitoring. Lightweight, ohne Cloud-Abhängigkeiten.</p><div class="flex flex-wrap gap-2 mb-6"><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">Rust</span><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">Linux</span><span class="font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded">SQLite</span></div></div></article></div></div></section><section id="fokus" class="py-24 lg:py-32"><div class="max-w-6xl mx-auto px-6 lg:px-8"><div class="mb-16" style="opacity:0;transform:translateY(20px)"><span class="font-mono text-xs tracking-wider text-accent uppercase">Aktuell</span><h2 class="font-serif text-3xl sm:text-4xl lg:text-5xl mt-4 text-balance">Technologien & Fokus</h2><p class="mt-6 text-lg text-muted-foreground max-w-2xl">Die Werkzeuge und Themen, mit denen ich aktuell arbeite. Kein Buzzword-Bingo, sondern tägliche Praxis.</p></div><div class="grid sm:grid-cols-2 lg:grid-cols-4 gap-8 lg:gap-6"><div style="opacity:0;transform:translateY(30px)"><h3 class="font-mono text-sm text-accent mb-6 pb-3 border-b border-border">Sprachen</h3><ul class="space-y-4"><li class="group" style="opacity:0;transform:translateX(-10px)"><span class="block font-medium text-foreground group-hover:text-accent transition-colors">Python</span><span class="block text-sm text-muted-foreground mt-0.5">Haupt-Sprache für KI und Automatisierung</span></li><li class="group" style="opacity:0;transform:translateX(-10px)"><span class="block font-medium text-foreground group-hover:text-accent transition-colors">Rust</span><span class="block text-sm text-muted-foreground mt-0.5">Für performante Systemtools</span></li><li class="group" style="opacity:0;transform:translateX(-10px)"><span class="block font-medium text-foreground group-hover:text-accent transition-colors">Shell/Bash</span><span class="block text-sm text-muted-foreground mt-0.5">Tägliches Werkzeug</span></li></ul></div><div style="opacity:0;transform:translateY(30px)"><h3 class="font-mono text-sm text-accent mb-6 pb-3 border-b border-border">Systeme</h3><ul class="space-y-4"><li class="group" style="opacity:0;transform:translateX(-10px)"><span class="block font-medium text-foreground group-hover:text-accent transition-colors">Linux</span><span class="block text-sm text-muted-foreground mt-0.5">Arch, Debian, NixOS</span></li><li class="group" style="opacity:0;transform:translateX(-10px)"><span class="block font-medium text-foreground group-hover:text-accent transition-colors">Self-Hosting</span><span class="block text-sm text-muted-foreground mt-0.5">Eigene Infrastruktur</span></li><li class="group" style="opacity:0;transform:translateX(-10px)"><span class="block font-medium text-foreground group-hover:text-accent transition-colors">Containers</span><span class="block text-sm text-muted-foreground mt-0.5">Docker, Podman</span></li></ul></div><div style="opacity:0;transform:translateY(30px)"><h3 class="font-mono text-sm text-accent mb-6 pb-3 border-b border-border">KI & ML</h3><ul class="space-y-4"><li class="group" style="opacity:0;transform:translateX(-10px)"><span class="block font-medium text-foreground group-hover:text-accent transition-colors">LLMs</span><span class="block text-sm text-muted-foreground mt-0.5">GPT, Claude, lokale Modelle</span></li><li class="group" style="opacity:0;transform:translateX(-10px)"><span class="block font-medium text-foreground group-hover:text-accent transition-colors">KI-Tools</span><span class="block text-sm text-muted-foreground mt-0.5">Cursor, Copilot, Aider</span></li><li class="group" style="opacity:0;transform:translateX(-10px)"><span class="block font-medium text-foreground group-hover:text-accent transition-colors">ML Ops</span><span class="block text-sm text-muted-foreground mt-0.5">Training, Deployment</span></li></ul></div><div style="opacity:0;transform:translateY(30px)"><h3 class="font-mono text-sm text-accent mb-6 pb-3 border-b border-border">Interessen</h3><ul class="space-y-4"><li class="group" style="opacity:0;transform:translateX(-10px)"><span class="block font-medium text-foreground group-hover:text-accent transition-colors">Automatisierung</span><span class="block text-sm text-muted-foreground mt-0.5">Workflows, Pipelines</span></li><li class="group" style="opacity:0;transform:translateX(-10px)"><span class="block font-medium text-foreground group-hover:text-accent transition-colors">CLI Tools</span><span class="block text-sm text-muted-foreground mt-0.5">Terminal-first</span></li><li class="group" style="opacity:0;transform:translateX(-10px)"><span class="block font-medium text-foreground group-hover:text-accent transition-colors">Open Source</span><span class="block text-sm text-muted-foreground mt-0.5">Nutzung & Beteiligung</span></li></ul></div></div><div class="mt-20 pt-12 border-t border-border" style="opacity:0"><div class="flex flex-wrap gap-3"><span class="font-mono text-xs px-3 py-1.5 border border-border rounded text-muted-foreground hover:text-foreground hover:border-accent/50 transition-colors cursor-default">vim</span><span class="font-mono text-xs px-3 py-1.5 border border-border rounded text-muted-foreground hover:text-foreground hover:border-accent/50 transition-colors cursor-default">git</span><span class="font-mono text-xs px-3 py-1.5 border border-border rounded text-muted-foreground hover:text-foreground hover:border-accent/50 transition-colors cursor-default">tmux</span><span class="font-mono text-xs px-3 py-1.5 border border-border rounded text-muted-foreground hover:text-foreground hover:border-accent/50 transition-colors cursor-default">ssh</span><span class="font-mono text-xs px-3 py-1.5 border border-border rounded text-muted-foreground hover:text-foreground hover:border-accent/50 transition-colors cursor-default">systemd</span><span class="font-mono text-xs px-3 py-1.5 border border-border rounded text-muted-foreground hover:text-foreground hover:border-accent/50 transition-colors cursor-default">nginx</span><span class="font-mono text-xs px-3 py-1.5 border border-border rounded text-muted-foreground hover:text-foreground hover:border-accent/50 transition-colors cursor-default">PostgreSQL</span><span class="font-mono text-xs px-3 py-1.5 border border-border rounded text-muted-foreground hover:text-foreground hover:border-accent/50 transition-colors cursor-default">Redis</span><span class="font-mono text-xs px-3 py-1.5 border border-border rounded text-muted-foreground hover:text-foreground hover:border-accent/50 transition-colors cursor-default">FastAPI</span><span class="font-mono text-xs px-3 py-1.5 border border-border rounded text-muted-foreground hover:text-foreground hover:border-accent/50 transition-colors cursor-default">PyTorch</span><span class="font-mono text-xs px-3 py-1.5 border border-border rounded text-muted-foreground hover:text-foreground hover:border-accent/50 transition-colors cursor-default">Transformers</span><span class="font-mono text-xs px-3 py-1.5 border border-border rounded text-muted-foreground hover:text-foreground hover:border-accent/50 transition-colors cursor-default">tiktoken</span></div></div></div></section><section id="philosophie" class="py-24 lg:py-32 bg-secondary/30"><div class="max-w-6xl mx-auto px-6 lg:px-8"><div class="mb-16 lg:mb-20" style="opacity:0;transform:translateY(20px)"><span class="font-mono text-xs tracking-wider text-accent uppercase">Prinzipien</span><h2 class="font-serif text-3xl sm:text-4xl lg:text-5xl mt-4 text-balance">Philosophie</h2></div><div class="grid lg:grid-cols-2 gap-12 lg:gap-x-16 lg:gap-y-14"><article class="relative" style="opacity:0;transform:translateY(30px)"><span class="absolute -left-2 lg:-left-8 top-0 font-mono text-6xl lg:text-7xl font-bold text-border/50 select-none">01</span><div class="relative pl-8 lg:pl-0"><h3 class="font-serif text-xl lg:text-2xl mb-4">Langfristige Neugier</h3><p class="text-muted-foreground leading-relaxed">Technologie verändert sich ständig. Das Interesse daran nicht. Wer 1984 mit Programmieren begonnen hat, hat viele Paradigmenwechsel erlebt – und überlebt.</p></div></article><article class="relative" style="opacity:0;transform:translateY(30px)"><span class="absolute -left-2 lg:-left-8 top-0 font-mono text-6xl lg:text-7xl font-bold text-border/50 select-none">02</span><div class="relative pl-8 lg:pl-0"><h3 class="font-serif text-xl lg:text-2xl mb-4">Handwerkliche Sorgfalt</h3><p class="text-muted-foreground leading-relaxed">Code ist keine Einwegware. Lesbarkeit, Wartbarkeit, Einfachheit – das sind keine Nice-to-haves, sondern Grundanforderungen.</p></div></article><article class="relative" style="opacity:0;transform:translateY(30px)"><span class="absolute -left-2 lg:-left-8 top-0 font-mono text-6xl lg:text-7xl font-bold text-border/50 select-none">03</span><div class="relative pl-8 lg:pl-0"><h3 class="font-serif text-xl lg:text-2xl mb-4">Systeme verstehen</h3><p class="text-muted-foreground leading-relaxed">Nicht nur nutzen, sondern begreifen. Vom Kernel bis zum Compiler. Nur wer versteht, wie Dinge zusammenhängen, kann sie wirklich beherrschen.</p></div></article><article class="relative" style="opacity:0;transform:translateY(30px)"><span class="absolute -left-2 lg:-left-8 top-0 font-mono text-6xl lg:text-7xl font-bold text-border/50 select-none">04</span><div class="relative pl-8 lg:pl-0"><h3 class="font-serif text-xl lg:text-2xl mb-4">KI als Werkzeug</h3><p class="text-muted-foreground leading-relaxed">Künstliche Intelligenz ist kein Hype, sondern ein ernsthaftes Werkzeug. Es verändert, wie wir programmieren – aber nicht warum.</p></div></article></div><div class="mt-20 pt-12 border-t border-border" style="opacity:0;transform:translateY(20px)"><blockquote class="font-serif text-xl lg:text-2xl text-center max-w-3xl mx-auto text-balance">“Der beste Code ist der, den man in zehn Jahren noch versteht – geschrieben von jemandem, der in zehn Jahren noch lernt.”</blockquote></div></div></section></main><footer id="kontakt" class="py-16 lg:py-20 border-t border-border"><div class="max-w-6xl mx-auto px-6 lg:px-8"><div style="opacity:0;transform:translateY(20px)"><div class="grid lg:grid-cols-12 gap-12 lg:gap-8"><div class="lg:col-span-5"><a class="inline-block font-mono text-xl tracking-tight text-foreground hover:text-accent transition-colors" href="/">Jamulix</a><p class="mt-4 text-muted-foreground max-w-sm leading-relaxed">40 Jahre Programmierung. Von Fortran bis KI. Linux-Enthusiast seit 1994. Aktuell Python und Rust.</p><div class="flex gap-4 mt-6"><a target="_blank" rel="noopener noreferrer" class="group flex items-center gap-2 text-muted-foreground hover:text-foreground transition-colors" aria-label="GitHub" href="https://github.com"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-github size-5" aria-hidden="true"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"></path><path d="M9 18c-4.51 2-5-2-7-2"></path></svg><span class="text-sm">GitHub</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right size-3 opacity-0 group-hover:opacity-100 transition-opacity" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a><a class="group flex items-center gap-2 text-muted-foreground hover:text-foreground transition-colors" aria-label="E-Mail" href="mailto:kontakt@jamulix.de"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mail size-5" aria-hidden="true"><path d="m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7"></path><rect x="2" y="4" width="20" height="16" rx="2"></rect></svg><span class="text-sm">E-Mail</span></a></div></div><div class="lg:col-span-3 lg:col-start-7"><h3 class="font-mono text-sm text-accent mb-4">Navigation</h3><ul class="space-y-3"><li><a class="text-muted-foreground hover:text-foreground transition-colors" href="#projekte">Projekte</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors" href="#ueber">Über</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors" href="#fokus">Fokus</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors" href="#philosophie">Philosophie</a></li></ul></div><div class="lg:col-span-3"><h3 class="font-mono text-sm text-accent mb-4">Rechtliches</h3><ul class="space-y-3"><li><a class="text-muted-foreground hover:text-foreground transition-colors" href="/impressum">Impressum</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors" href="/datenschutz">Datenschutz</a></li><li><span class="text-muted-foreground/60 text-sm">Blog (bald)</span></li></ul></div></div><div class="mt-16 pt-8 border-t border-border flex flex-col sm:flex-row justify-between items-center gap-4"><p class="text-sm text-muted-foreground">© <!-- -->2026<!-- --> Jamulix. Alle Rechte vorbehalten.</p><p class="font-mono text-xs text-muted-foreground/60">Gebaut mit Next.js, Tailwind, und viel Kaffee.</p></div></div></div></footer><!--$--><!--/$--><script id="_R_">self.__next_r="Qt62UgjXuxvA4uWMGYL3-"</script><script src="/_next/static/chunks/%5Bturbopack%5D_browser_dev_hmr-client_hmr-client_ts_0o_pxrq._.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"a:I[\"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)\",[\"/_next/static/chunks/node_modules__pnpm_0mbgbvl._.js\",\"/_next/static/chunks/app_layout_tsx_0bitdh9._.js\"],\"SegmentViewNode\"]\nc:\"$Sreact.fragment\"\n21:I[\"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)\",[\"/_next/static/chunks/node_modules__pnpm_0mbgbvl._.js\",\"/_next/static/chunks/app_layout_tsx_0bitdh9._.js\"],\"default\"]\n23:I[\"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)\",[\"/_next/static/chunks/node_modules__pnpm_0mbgbvl._.js\",\"/_next/static/chunks/app_layout_tsx_0bitdh9._.js\"],\"default\"]\n3d:I[\"[project]/components/header.tsx [app-client] (ecmascript)\",[\"/_next/static/chunks/node_modules__pnpm_0mbgbvl._.js\",\"/_next/static/chunks/app_layout_tsx_0bitdh9._.js\",\"/_next/static/chunks/_0p57tr6._.js\",\"/_next/static/chunks/0t3j_tailwind-merge_dist_bundle-mjs_mjs_11gnmpl._.js\",\"/_next/static/chunks/095l_motion-dom_dist_es_0ril_e2._.js\",\"/_next/static/chunks/0nan_framer-motion_dist_es_0zinqa1._.js\",\"/_next/static/chunks/node_modules__pnpm_0~nn5fw._.js\",\"/_next/static/chunks/app_page_tsx_0j54u8h._.js\"],\"Header\"]\n40:I[\"[project]/components/hero.tsx [app-client] (ecmascript)\",[\"/_next/static/chunks/node_modules__pnpm_0mbgbvl._.js\",\"/_next/static/chunks/app_layout_tsx_0bitdh9._.js\",\"/_next/static/chunks/_0p57tr6._.js\",\"/_next/static/chunks/0t3j_tailwind-merge_dist_bundle-mjs_mjs_11gnmpl._.js\",\"/_next/static/chunks/095l_motion-dom_dist_es_0ril_e2._.js\",\"/_next/static/chunks/0nan_framer-motion_dist_es_0zinqa1._.js\",\"/_next/static/chunks/node_modules__pnpm_0~nn5fw._.js\",\"/_next/static/chunks/app_page_tsx_0j54u8h._.js\"],\"Hero\"]\n42:I[\"[project]/components/about-section.tsx [app-client] (ecmascript)\",[\"/_next/static/chunks/node_modules__pnpm_0mbgbvl._.js\",\"/_next/static/chunks/app_layout_tsx_0bitdh9._.js\",\"/_next/static/chunks/_0p57tr6._.js\",\"/_next/static/chunks/0t3j_tailwind-merge_dist_bundle-mjs_mjs_11gnmpl._.js\",\"/_next/static/chunks/095l_motion-dom_dist_es_0ril_e2._.js\",\"/_next/static/chunks/0nan_framer-motion_dist_es_0zinqa1._.js\",\"/_next/static/chunks/node_modules__pnpm_0~nn5fw._.js\",\"/_next/static/chunks/app_page_tsx_0j54u8h._.js\"],\"AboutSection\"]\n44:I[\"[project]/components/projects-section.tsx [app-client] (ecmascript)\",[\"/_next/static/chunks/node_modules__pnpm_0mbgbvl._.js\",\"/_next/static/chunks/app_layout_tsx_0bitdh9._.js\",\"/_next/static/chunks/_0p57tr6._.js\",\"/_next/static/chunks/0t3j_tailwind-merge_dist_bundle-mjs_mjs_11gnmpl._.js\",\"/_next/static/chunks/095l_motion-dom_dist_es_0ril_e2._.js\",\"/_next/static/chunks/0nan_framer-motion_dist_es_0zinqa1._.js\",\"/_next/static/chunks/node_modules__pnpm_0~nn5fw._.js\",\"/_next/static/chunks/app_page_tsx_0j54u8h._.js\"],\"ProjectsSection\"]\n46:I[\"[project]/components/focus-section.tsx [app-client] (ecmascript)\",[\"/_next/static/chunks/node_modules__pnpm_0mbgbvl._.js\",\"/_next/static/chunks/app_layout_tsx_0bitdh9._.js\",\"/_next/static/chunks/_0p57tr6._.js\",\"/_next/static/chunks/0t3j_tailwind-merge_dist_bundle-mjs_mjs_11gnmpl._.js\",\"/_next/static/chunks/095l_motion-dom_dist_es_0ril_e2._.js\",\"/_next/static/chunks/0nan_framer-motion_dist_es_0zinqa1._.js\",\"/_next/static/chunks/node_modules__pnpm_0~nn5fw._.js\",\"/_next/static/chunks/app_page_tsx_0j54u8h._.js\"],\"FocusSection\"]\n48:I[\"[project]/components/philosophy-section.tsx [app-client] (ecmascript)\",[\"/_next/static/chunks/node_modules__pnpm_0mbgbvl._.js\",\"/_next/static/chunks/app_layout_tsx_0bitdh9._.js\",\"/_next/static/chunks/_0p57tr6._.js\",\"/_next/static/chunks/0t3j_tailwind-merge_dist_bundle-mjs_mjs_11gnmpl._.js\",\"/_next/static/chunks/095l_motion-dom_dist_es_0ril_e2._.js\",\"/_next/static/chunks/0nan_framer-motion_dist_es_0zinqa1._.js\",\"/_next/static/chunks/node_modules__pnpm_0~nn5fw._.js\",\"/_next/static/chun"])</script><script>self.__next_f.push([1,"ks/app_page_tsx_0j54u8h._.js\"],\"PhilosophySection\"]\n4a:I[\"[project]/components/footer.tsx [app-client] (ecmascript)\",[\"/_next/static/chunks/node_modules__pnpm_0mbgbvl._.js\",\"/_next/static/chunks/app_layout_tsx_0bitdh9._.js\",\"/_next/static/chunks/_0p57tr6._.js\",\"/_next/static/chunks/0t3j_tailwind-merge_dist_bundle-mjs_mjs_11gnmpl._.js\",\"/_next/static/chunks/095l_motion-dom_dist_es_0ril_e2._.js\",\"/_next/static/chunks/0nan_framer-motion_dist_es_0zinqa1._.js\",\"/_next/static/chunks/node_modules__pnpm_0~nn5fw._.js\",\"/_next/static/chunks/app_page_tsx_0j54u8h._.js\"],\"Footer\"]\n56:I[\"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)\",[\"/_next/static/chunks/node_modules__pnpm_0mbgbvl._.js\",\"/_next/static/chunks/app_layout_tsx_0bitdh9._.js\"],\"OutletBoundary\"]\n58:\"$Sreact.suspense\"\n65:I[\"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)\",[\"/_next/static/chunks/node_modules__pnpm_0mbgbvl._.js\",\"/_next/static/chunks/app_layout_tsx_0bitdh9._.js\"],\"ViewportBoundary\"]\n6f:I[\"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)\",[\"/_next/static/chunks/node_modules__pnpm_0mbgbvl._.js\",\"/_next/static/chunks/app_layout_tsx_0bitdh9._.js\"],\"MetadataBoundary\"]\n76:I[\"[project]/app/global-error.tsx [app-client] (ecmascript)\",[\"/_next/static/chunks/node_modules__pnpm_0mbgbvl._.js\",\"/_next/static/chunks/app_layout_tsx_0bitdh9._.js\",\"/_next/static/chunks/_0ibxwco._.js\",\"/_next/static/chunks/app_global-error_tsx_0j54u8h._.js\"],\"default\"]\n:HL[\"/_next/static/chunks/%5Broot-of-the-server%5D__12s657j._.css\",\"style\"]\n:HL[\"/_next/static/media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/e41d5df559864f9e-s.p.0gq7fw9.sy_5..woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n1:D\"$7\"\n1:D\"$2\"\n1:D\"$8\"\n1:null\n10:D\"$1a\"\n10:D\"$11\"\n10:D\"$1c\"\n25:D\"$27\"\n25:D\"$26\"\n25:D\"$29\"\n25:D\"$28\"\n25:D\"$2a\"\n25:[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"},\"$28\",\"$2b\",1],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}},\"$28\",\"$2e\",1],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404},\"$28\",\"$2f\",1],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"},\"$28\",\"$31\",1]},\"$28\",\"$30\",1]]},\"$28\",\"$2d\",1]},\"$28\",\"$2c\",1]]\n"])</script><script>self.__next_f.push([1,"10:[\"$\",\"html\",null,{\"lang\":\"de\",\"className\":\"inter_c15e96cb-module__0bjUvq__variable instrument_serif_65aa5ea5-module__1VeVaa__variable jetbrains_mono_7ea1d0f9-module__6GV5LG__variable dark bg-background\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n (function() {\\n const stored = localStorage.getItem('theme');\\n const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;\\n const theme = stored || (prefersDark ? 'dark' : 'light');\\n document.documentElement.classList.toggle('dark', theme === 'dark');\\n })();\\n \"}},\"$11\",\"$1e\",1]},\"$11\",\"$1d\",1],[\"$\",\"body\",null,{\"className\":\"font-sans antialiased min-h-screen\",\"children\":[[\"$\",\"$L21\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L23\",null,{},null,\"$22\",1],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[\"$\",\"$La\",\"c-not-found\",{\"type\":\"not-found\",\"pagePath\":\"__next_builtin__not-found.js\",\"children\":[\"$25\",[]]},null,\"$24\",0],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\",\"segmentViewBoundaries\":[[\"$\",\"$La\",null,{\"type\":\"boundary:not-found\",\"pagePath\":\"__next_builtin__not-found.js@boundary\"},null,\"$32\",1],\"$undefined\",\"$undefined\",[\"$\",\"$La\",null,{\"type\":\"boundary:global-error\",\"pagePath\":\"global-error.tsx\"},null,\"$33\",1]]},null,\"$20\",1],false]},\"$11\",\"$1f\",1]]},\"$11\",\"$1b\",1]\n"])</script><script>self.__next_f.push([1,"36:D\"$3a\"\n36:D\"$37\"\n36:D\"$3b\"\n36:[[\"$\",\"$L3d\",null,{},\"$37\",\"$3c\",1],[\"$\",\"main\",null,{\"children\":[[\"$\",\"$L40\",null,{},\"$37\",\"$3f\",1],[\"$\",\"$L42\",null,{},\"$37\",\"$41\",1],[\"$\",\"$L44\",null,{},\"$37\",\"$43\",1],[\"$\",\"$L46\",null,{},\"$37\",\"$45\",1],[\"$\",\"$L48\",null,{},\"$37\",\"$47\",1]]},\"$37\",\"$3e\",1],[\"$\",\"$L4a\",null,{},\"$37\",\"$49\",1]]\n51:D\"$53\"\n51:D\"$52\"\n51:D\"$55\"\n51:[\"$\",\"$L56\",null,{\"children\":[\"$\",\"$58\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@59\"},\"$52\",\"$57\",1]},\"$52\",\"$54\",1]\n5b:D\"$5e\"\n5b:D\"$5c\"\n5b:D\"$5f\"\n5b:null\n60:D\"$62\"\n60:D\"$61\"\n60:D\"$64\"\n66:D\"$68\"\n66:D\"$67\"\n60:[\"$\",\"$L65\",null,{\"children\":\"$L66\"},\"$61\",\"$63\",1]\n69:D\"$6b\"\n69:D\"$6a\"\n69:D\"$6d\"\n71:D\"$73\"\n71:D\"$72\"\n69:[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L6f\",null,{\"children\":[\"$\",\"$58\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L71\"},\"$6a\",\"$70\",1]},\"$6a\",\"$6e\",1]},\"$6a\",\"$6c\",1]\n75:[]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":\"$1\",\"c\":[\"\",\"\"],\"q\":\"\",\"i\":true,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$La\",\"layout\",{\"type\":\"layout\",\"pagePath\":\"layout.tsx\",\"children\":[\"$\",\"$c\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/%5Broot-of-the-server%5D__12s657j._.css\",\"precedence\":\"next_static/chunks/[root-of-the-server]__12s657j._.css\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"},null,\"$d\",0],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/node_modules__pnpm_0mbgbvl._.js\",\"async\":true,\"nonce\":\"$undefined\"},null,\"$e\",0],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/app_layout_tsx_0bitdh9._.js\",\"async\":true,\"nonce\":\"$undefined\"},null,\"$f\",0]],\"$10\"]},null,\"$b\",1]},null,\"$9\",0],{\"children\":[[\"$\",\"$c\",\"c\",{\"children\":[[\"$\",\"$La\",\"c-page\",{\"type\":\"page\",\"pagePath\":\"page.tsx\",\"children\":\"$36\"},null,\"$35\",1],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/_0p57tr6._.js\",\"async\":true,\"nonce\":\"$undefined\"},null,\"$4b\",0],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0t3j_tailwind-merge_dist_bundle-mjs_mjs_11gnmpl._.js\",\"async\":true,\"nonce\":\"$undefined\"},null,\"$4c\",0],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/095l_motion-dom_dist_es_0ril_e2._.js\",\"async\":true,\"nonce\":\"$undefined\"},null,\"$4d\",0],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/0nan_framer-motion_dist_es_0zinqa1._.js\",\"async\":true,\"nonce\":\"$undefined\"},null,\"$4e\",0],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/node_modules__pnpm_0~nn5fw._.js\",\"async\":true,\"nonce\":\"$undefined\"},null,\"$4f\",0],[\"$\",\"script\",\"script-5\",{\"src\":\"/_next/static/chunks/app_page_tsx_0j54u8h._.js\",\"async\":true,\"nonce\":\"$undefined\"},null,\"$50\",0]],\"$51\"]},null,\"$34\",0],{},null,false,null]},null,false,null],[\"$\",\"$c\",\"h\",{\"children\":[\"$5b\",\"$60\",\"$69\",[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"},null,\"$74\",1]]},null,\"$5a\",0],false]],\"m\":\"$W75\",\"G\":[\"$76\",[\"$\",\"$La\",\"ge-svn\",{\"type\":\"global-error\",\"pagePath\":\"global-error.tsx\",\"children\":[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/%5Broot-of-the-server%5D__12s657j._.css\",\"precedence\":\"next_static/chunks/[root-of-the-server]__12s657j._.css\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"},null,\"$78\",0]]},null,\"$77\",0]],\"S\":false,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"development\"}\n"])</script><script>self.__next_f.push([1,"66:D\"$79\"\n66:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"},\"$52\",\"$7a\",0],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"},\"$52\",\"$7b\",0],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#faf9f7\",\"media\":\"(prefers-color-scheme: light)\"},\"$52\",\"$7c\",0],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"content\":\"#1a1a1f\",\"media\":\"(prefers-color-scheme: dark)\"},\"$52\",\"$7d\",0]]\n59:D\"$7e\"\n59:null\n71:D\"$7f\"\n"])</script><script>self.__next_f.push([1,"71:[[\"$\",\"title\",\"0\",{\"children\":\"Jamulix | 40 Jahre Code\"},\"$52\",\"$80\",0],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Seit 40 Jahren Code. Von Fortran IV bis KI-Projekte in Python und Rust. Erfahrener Programmierer, Linux-Veteran und KI-Entwickler.\"},\"$52\",\"$81\",0],[\"$\",\"meta\",\"2\",{\"name\":\"author\",\"content\":\"Jamulix\"},\"$52\",\"$82\",0],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"Programmierung,Linux,KI,Python,Rust,Software-Entwicklung,AI,Fortran,Unix\"},\"$52\",\"$83\",0],[\"$\",\"meta\",\"4\",{\"name\":\"creator\",\"content\":\"Jamulix\"},\"$52\",\"$84\",0],[\"$\",\"meta\",\"5\",{\"name\":\"robots\",\"content\":\"index, follow\"},\"$52\",\"$85\",0],[\"$\",\"meta\",\"6\",{\"property\":\"og:title\",\"content\":\"Jamulix | 40 Jahre Code\"},\"$52\",\"$86\",0],[\"$\",\"meta\",\"7\",{\"property\":\"og:description\",\"content\":\"Seit 40 Jahren Code. Von Fortran IV bis KI-Projekte in Python und Rust.\"},\"$52\",\"$87\",0],[\"$\",\"meta\",\"8\",{\"property\":\"og:url\",\"content\":\"https://jamulix.de\"},\"$52\",\"$88\",0],[\"$\",\"meta\",\"9\",{\"property\":\"og:site_name\",\"content\":\"Jamulix\"},\"$52\",\"$89\",0],[\"$\",\"meta\",\"10\",{\"property\":\"og:locale\",\"content\":\"de_DE\"},\"$52\",\"$8a\",0],[\"$\",\"meta\",\"11\",{\"property\":\"og:type\",\"content\":\"website\"},\"$52\",\"$8b\",0],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"},\"$52\",\"$8c\",0],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:title\",\"content\":\"Jamulix | 40 Jahre Code\"},\"$52\",\"$8d\",0],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:description\",\"content\":\"Seit 40 Jahren Code. Von Fortran IV bis KI-Projekte in Python und Rust.\"},\"$52\",\"$8e\",0]]\n"])</script></body></html> |