jamulix-homepage/out/_next/static/chunks/0vu~5f-ldk-sx.js

11 lines
174 KiB
JavaScript
Raw Normal View History

2026-04-24 17:12:51 +02:00
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,66353,t=>{"use strict";var e=t.i(35152);let i=(...t)=>t.filter((t,e,i)=>!!t&&""!==t.trim()&&i.indexOf(t)===e).join(" ").trim(),r=t=>{let e=t.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,e,i)=>i?i.toUpperCase():e.toLowerCase());return e.charAt(0).toUpperCase()+e.slice(1)};var n={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let s=(0,e.forwardRef)(({color:t="currentColor",size:r=24,strokeWidth:s=2,absoluteStrokeWidth:o,className:a="",children:l,iconNode:h,...u},d)=>(0,e.createElement)("svg",{ref:d,...n,width:r,height:r,stroke:t,strokeWidth:o?24*Number(s)/Number(r):s,className:i("lucide",a),...!l&&!(t=>{for(let e in t)if(e.startsWith("aria-")||"role"===e||"title"===e)return!0;return!1})(u)&&{"aria-hidden":"true"},...u},[...h.map(([t,i])=>(0,e.createElement)(t,i)),...Array.isArray(l)?l:[l]]));t.s(["default",0,(t,n)=>{let o=(0,e.forwardRef)(({className:o,...a},l)=>(0,e.createElement)(s,{ref:l,iconNode:n,className:i(`lucide-${r(t).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${t}`,o),...a}));return o.displayName=r(t),o}],66353)},55267,75304,t=>{"use strict";let e,i,r,n,s;var o=t.i(77598),a=t.i(35152);function l(t,e){if("function"==typeof t)return t(e);null!=t&&(t.current=e)}var h=Symbol.for("react.lazy"),u=a[" use ".trim().toString()];function d(t){var e;return null!=t&&"object"==typeof t&&"$$typeof"in t&&t.$$typeof===h&&"_payload"in t&&"object"==typeof(e=t._payload)&&null!==e&&"then"in e}var c=((s=a.forwardRef((t,e)=>{let{children:i,...r}=t;if(d(i)&&"function"==typeof u&&(i=u(i._payload)),a.isValidElement(i)){var n;let t,s,o=(n=i,(s=(t=Object.getOwnPropertyDescriptor(n.props,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning)?n.ref:(s=(t=Object.getOwnPropertyDescriptor(n,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning)?n.props.ref:n.props.ref||n.ref),h=function(t,e){let i={...e};for(let r in e){let n=t[r],s=e[r];/^on[A-Z]/.test(r)?n&&s?i[r]=(...t)=>{let e=s(...t);return n(...t),e}:n&&(i[r]=n):"style"===r?i[r]={...n,...s}:"className"===r&&(i[r]=[n,s].filter(Boolean).join(" "))}return{...t,...i}}(r,i.props);return i.type!==a.Fragment&&(h.ref=e?function(...t){return e=>{let i=!1,r=t.map(t=>{let r=l(t,e);return i||"function"!=typeof r||(i=!0),r});if(i)return()=>{for(let e=0;e<r.length;e++){let i=r[e];"function"==typeof i?i():l(t[e],null)}}}}(e,o):o),a.cloneElement(i,h)}return a.Children.count(i)>1?a.Children.only(null):null})).displayName="Slot.SlotClone",e=s,(i=a.forwardRef((t,i)=>{let{children:r,...n}=t;d(r)&&"function"==typeof u&&(r=u(r._payload));let s=a.Children.toArray(r),l=s.find(p);if(l){let t=l.props.children,r=s.map(e=>e!==l?e:a.Children.count(t)>1?a.Children.only(null):a.isValidElement(t)?t.props.children:null);return(0,o.jsx)(e,{...n,ref:i,children:a.isValidElement(t)?a.cloneElement(t,void 0,r):null})}return(0,o.jsx)(e,{...n,ref:i,children:r})})).displayName="Slot.Slot",i),m=Symbol("radix.slottable");function p(t){return a.isValidElement(t)&&"function"==typeof t.type&&"__radixId"in t.type&&t.type.__radixId===m}function f(){for(var t,e,i=0,r="",n=arguments.length;i<n;i++)(t=arguments[i])&&(e=function t(e){var i,r,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var s=e.length;for(i=0;i<s;i++)e[i]&&(r=t(e[i]))&&(n&&(n+=" "),n+=r)}else for(r in e)e[r]&&(n&&(n+=" "),n+=r);return n}(t))&&(r&&(r+=" "),r+=e);return r}let g=t=>"boolean"==typeof t?`${t}`:0===t?"0":t,y=(t=new Map,e=null,i)=>({nextPart:t,validators:e,classGroupId:i}),v=[],x=(t,e,i)=>{if(0==t.length-e)return i.classGroupId;let r=t[e],n=i.nextPart.get(r);if(n){let i=x(t,e+1,n);if(i)return i}let s=i.validators;if(null===s)return;let o=0===e?t.join("-"):t.slice(e).join("-"),a=s.length;for(let t=0;t<a;t++){let e=s[t];if(e.validator(o))return e.classGroupId}},b=(t,e)=>{let i=y();for(let r in t)w(t[r],i,r,e);return i},w=(t,e,i,r)=>{let n=t.length;for(let s=0;s<n;s++)k(t[s],e
linear-gradient(to right, currentColor 1px, transparent 1px),
linear-gradient(to bottom, currentColor 1px, transparent 1px)
`,backgroundSize:"60px 60px"}})}),(0,e.jsxs)("div",{className:"relative max-w-6xl mx-auto px-6 lg:px-8 py-20 lg:py-32",children:[(0,e.jsxs)("div",{className:"grid lg:grid-cols-12 gap-12 lg:gap-16 items-center",children:[(0,e.jsxs)("div",{className:"lg:col-span-7 space-y-8",children:[(0,e.jsxs)(r.motion.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.6},children:[(0,e.jsx)("span",{className:"inline-block font-mono text-xs tracking-wider text-accent uppercase mb-6",children:"1984 heute"}),(0,e.jsxs)("h1",{className:"font-serif text-4xl sm:text-5xl lg:text-6xl xl:text-7xl leading-[1.1] tracking-tight text-balance",children:["Seit 40 Jahren Code. Von Fortran"," ","IV bis KI-Projekte in Python und Rust."]})]}),(0,e.jsxs)(r.motion.p,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.6,delay:.1},className:"text-lg lg:text-xl text-muted-foreground leading-relaxed max-w-2xl",children:["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."]}),(0,e.jsxs)(r.motion.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.6,delay:.2},className:"flex flex-col sm:flex-row gap-4 pt-4",children:[(0,e.jsx)(a.Button,{asChild:!0,size:"lg",className:"group",children:(0,e.jsxs)(i.default,{href:"#projekte",children:["Projekte ansehen",(0,e.jsx)(s,{className:"ml-2 size-4 transition-transform group-hover:translate-y-0.5"})]})}),(0,e.jsx)(a.Button,{asChild:!0,variant:"outline",size:"lg",className:"group",children:(0,e.jsxs)(i.default,{href:"#ueber",children:["Über Jamulix",(0,e.jsx)(o,{className:"ml-2 size-4 transition-transform group-hover:translate-x-0.5"})]})})]})]}),(0,e.jsx)(r.motion.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},transition:{duration:.8,delay:.3},className:"lg:col-span-5 hidden lg:block",children:(0,e.jsx)(u,{})})]}),(0,e.jsx)(r.motion.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.6,delay:.8},className:"absolute bottom-8 left-1/2 -translate-x-1/2 hidden lg:block",children:(0,e.jsxs)("div",{className:"flex flex-col items-center gap-2 text-muted-foreground",children:[(0,e.jsx)("span",{className:"font-mono text-xs tracking-wider",children:"Scroll"}),(0,e.jsx)(r.motion.div,{animate:{y:[0,6,0]},transition:{duration:1.5,repeat:1/0,ease:"easeInOut"},children:(0,e.jsx)(s,{className:"size-4"})})]})})]})]})}],62387)},5405,t=>{"use strict";var e=t.i(77598),i=t.i(99185);let r=[{era:"1984",title:"Der Anfang",description:"Erste Programme in Fortran IV. Lochkarten, Großrechner, Batch-Verarbeitung. Die Grundlagen des algorithmischen Denkens.",tech:["Fortran IV"]},{era:"1986",title:"Systemnahe Programmierung",description:"C und 68000-Assembler auf dem Atari ST. Direkte Hardware-Ansteuerung, Interrupt-Routinen, Speicherverwaltung von Hand.",tech:["C","68000 ASM","GFA Basic"]},{era:"1990",title:"Unix an der Universität",description:"SunOS, HP-UX, BSD. Die Philosophie kleiner, zusammenarbeitender Programme. Shell-Scripting als Werkzeug.",tech:["Unix","Shell","vi"]},{era:"1994",title:"Linux entdeckt",description:"Slackware auf 40 Disketten. Der Beginn einer dauerhaften Begeisterung für offene Systeme und Selbstbestimmung.",tech:["Linux","GNU Tools","X11"]},{era:"2000er",title:"Professionelle Entwicklung",description:"Verschiedene Sprachen, verschiedene Domänen. Server-Administration, Automatisierung, Web-Entwicklung.",tech:["Perl","PHP","Bash","Python"]},{era:"2022",title:"KI-Fokus",description:"Seit Ende 2022 intensive Beschäftigung mit KI-Tools und KI-Programmierung. LLMs als Arbeitswerkzeug und Forschungsgegenstand.",tech:["Python","Rust","LLMs","ML"]}];t.s(["AboutSection",0,function(){return(0,e.jsx)("section",{id:"ueber",className:"py-24 lg:py-32",children:(0,e.jsxs)("div",{className:"max-w-6xl mx-auto px-6 lg:px-8",children:[(0,e.jsxs)(i.motion.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{on
relative h-full p-6 lg:p-8 rounded-lg border border-border
bg-card transition-all duration-300
${h?"hover:border-accent/50 hover:bg-card/80":"opacity-70"}
`,children:[(0,e.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,e.jsx)("span",{className:`
font-mono text-xs px-2 py-1 rounded
${"Aktiv"===t.status?"bg-accent/10 text-accent":"In Entwicklung"===t.status?"bg-secondary text-muted-foreground":"bg-secondary/50 text-muted-foreground/70"}
`,children:t.status}),h&&(0,e.jsx)(r.ArrowUpRight,{className:"size-5 text-muted-foreground group-hover:text-accent transition-colors"})]}),(0,e.jsx)("h3",{className:"font-serif text-xl lg:text-2xl mb-3 group-hover:text-accent transition-colors",children:t.title}),(0,e.jsx)("p",{className:"text-muted-foreground leading-relaxed mb-6",children:t.description}),(0,e.jsx)("div",{className:"flex flex-wrap gap-2 mb-6",children:t.tech.map(t=>(0,e.jsx)("span",{className:"font-mono text-xs px-2 py-1 bg-secondary text-secondary-foreground rounded",children:t},t))}),h&&(0,e.jsx)(s.Button,{asChild:!0,variant:"outline",size:"sm",className:"group/btn",children:(0,e.jsxs)(o.default,{href:t.url,target:"_blank",rel:"noopener noreferrer",children:["Ansehen",(0,e.jsx)(n,{className:"ml-2 size-3 transition-transform group-hover/btn:translate-x-0.5"})]})})]})})}t.s(["ProjectsSection",0,function(){return(0,e.jsx)("section",{id:"projekte",className:"py-24 lg:py-32 bg-secondary/30",children:(0,e.jsxs)("div",{className:"max-w-6xl mx-auto px-6 lg:px-8",children:[(0,e.jsxs)(i.motion.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"mb-16",children:[(0,e.jsx)("span",{className:"font-mono text-xs tracking-wider text-accent uppercase",children:"Experimente"}),(0,e.jsx)("h2",{className:"font-serif text-3xl sm:text-4xl lg:text-5xl mt-4 text-balance",children:"Ausgewählte Projekte"}),(0,e.jsx)("p",{className:"mt-6 text-lg text-muted-foreground max-w-2xl",children:"Technische Experimente und Werkzeuge. Weniger Portfolio, mehr Labor für Ideen."})]}),(0,e.jsx)("div",{className:"grid md:grid-cols-2 gap-6 lg:gap-8",children:a.map((t,i)=>(0,e.jsx)(l,{project:t,index:i},t.slug))})]})})}],32135)},85623,t=>{"use strict";var e=t.i(77598),i=t.i(99185);let r=[{category:"Sprachen",items:[{name:"Python",detail:"Haupt-Sprache für KI und Automatisierung"},{name:"Rust",detail:"Für performante Systemtools"},{name:"Shell/Bash",detail:"Tägliches Werkzeug"}]},{category:"Systeme",items:[{name:"Linux",detail:"Arch, Debian, NixOS"},{name:"Self-Hosting",detail:"Eigene Infrastruktur"},{name:"Containers",detail:"Docker, Podman"}]},{category:"KI & ML",items:[{name:"LLMs",detail:"GPT, Claude, lokale Modelle"},{name:"KI-Tools",detail:"Cursor, Copilot, Aider"},{name:"ML Ops",detail:"Training, Deployment"}]},{category:"Interessen",items:[{name:"Automatisierung",detail:"Workflows, Pipelines"},{name:"CLI Tools",detail:"Terminal-first"},{name:"Open Source",detail:"Nutzung & Beteiligung"}]}];t.s(["FocusSection",0,function(){return(0,e.jsx)("section",{id:"fokus",className:"py-24 lg:py-32",children:(0,e.jsxs)("div",{className:"max-w-6xl mx-auto px-6 lg:px-8",children:[(0,e.jsxs)(i.motion.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"mb-16",children:[(0,e.jsx)("span",{className:"font-mono text-xs tracking-wider text-accent uppercase",children:"Aktuell"}),(0,e.jsx)("h2",{className:"font-serif text-3xl sm:text-4xl lg:text-5xl mt-4 text-balance",children:"Technologien & Fokus"}),(0,e.jsx)("p",{className:"mt-6 text-lg text-muted-foreground max-w-2xl",children:"Die Werkzeuge und Themen, mit denen ich aktuell arbeite. Kein Buzzword-Bingo, sondern tägliche Praxis."})]}),(0,e.jsx)("div",{className:"grid sm:grid-cols-2 lg:grid-cols-4 gap-8 lg:gap-6",children:r.map((t,r)=>(0,e.jsxs)(i.motion.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0,margin:"-50px"},transition:{duration:.5,delay:.1*r},children:[(0,e.jsx)("h3",{className:"font-mono text-sm text-accent mb-6 pb-3 border-b border-border",children:t.category}),(0,e.jsx)("ul",{className:"space-y-4",children:t.items.map((t,n)=>(0,e.jsxs)(i.motion.li,{initial:{opacity:0,x:-10},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.3,delay:.1*r+.05*n},className:"group",children:[(0,e.jsx)("span",{className:"block font-medium text-foreground group-hover:text-accent transition-colors",children:t.name}),(0,e.jsx)("span",{className:"block text-sm text-muted-foreground mt-0.5