PageSourceSearch

https://www.danvega.dev/_nuxt/e9uhz7WX2.js

js danvega.dev collected 2026-10-02 19:48:02 UTC 4,751 bytes, 1 lines download raw bytes

1import{B as e,Rt as t,S as n,U as r,_t as i,b as a,f as o,h as s,i as c,m as l,nt as u,p as d,y as f}from"./BLDdWORI.js";import{r as p}from"./DK3FLX77.js";import{n as m}from"./BnQkJZLZ.js";import{t as h}from"./B5PjLHHo.js";import{t as g}from"./Cr3_nnQ7.js";import{t as _}from"./BWGR6wvY2.js";var v=p(`/images/photos/spring_io_2025_05.jpg`),y={class:`grid grid-cols-1 items-center gap-10 lg:grid-cols-2`},b={class:`mt-6 text-lg text-zinc-600 dark:text-zinc-400`},x={class:`mt-8 flex flex-wrap gap-4`},S={class:`mt-6 text-sm text-zinc-500 dark:text-zinc-500`},C={class:`mt-16 sm:mt-20`},w={class:`mt-8 divide-y divide-zinc-200 dark:divide-zinc-700/60 border-y border-zinc-200 dark:border-zinc-700/60`},T={class:`flex h-16 w-16 flex-none flex-col items-center justify-center rounded-lg border border-zinc-200 dark:border-zinc-700 bg-zinc-50 dark:bg-zinc-800/50`},E={class:`text-xs font-semibold uppercase text-blue-600 dark:text-blue-400`},D={class:`text-xl font-bold text-zinc-800 dark:text-zinc-100`},O={class:`min-w-0 flex-auto`},k={class:`text-xs font-medium text-zinc-500 dark:text-zinc-500`},A={class:`mt-1 text-lg font-semibold text-zinc-800 dark:text-zinc-100 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors`},j=[`href`],M={key:2},N={key:0,class:`mt-1 text-sm text-zinc-600 dark:text-zinc-400 line-clamp-2`},P=n({__name:`index`,setup(n){m({title:`Dan Vega - Speaking`,meta:[{name:`title`,content:`Dan Vega - Speaking`},{name:`description`,content:`I've spoken at events around the world and been interviewed for podcasts and live streams.`}]});let p=_.filter(e=>{let t=new Date(e.endDate||e.startDate),n=new Date;return n.setHours(0,0,0,0),n.setDate(n.getDate()-3),e.startDate&&t>=n}).sort((e,t)=>new Date(e.startDate).getTime()-new Date(t.startDate).getTime()),P=new Set(_.map(e=>e.location)).size,F=Math.min(..._.map(e=>new Date(e.startDate).getFullYear()));function I(e){let t=new Date(e);return{month:t.toLocaleString(`en-US`,{month:`short`}),day:t.toLocaleString(`en-US`,{day:`numeric`})}}return(n,m)=>{let _=h,L=g;return e(),d(L,{class:`mt-16 sm:mt-32`},{default:u(()=>[o(`header`,y,[o(`div`,null,[m[5]||=o(`p`,{class:`font-mono text-sm text-green-600 dark:text-green-400`},`$ ls ~/talks`,-1),m[6]||=o(`h1`,{class:`mt-4 text-3xl font-bold tracking-tight text-zinc-800 dark:text-zinc-100 sm:text-4xl`},` Hi, I'm Dan. I help developers make sense of Spring, modern Java, and AI live on stage. `,-1),o(`p`,b,` I've given 100+ talks in `+t(i(P))+` cities, from SpringOne and Spring I/O keynotes to local Java User Groups. Every talk gets live code, honest opinions, and something you can build the same afternoon. `,1),o(`div`,x,[a(_,{to:`/about`,class:`rounded-md bg-blue-600 px-6 py-3 text-base font-semibold text-white shadow-sm hover:bg-blue-500 transition-colors`},{default:u(()=>[...m[0]||=[f(` Invite me to speak `,-1)]]),_:1}),m[1]||=o(`a`,{href:`http://www.youtube.com/danvega`,class:`rounded-md border border-zinc-300 dark:border-zinc-600 bg-white dark:bg-zinc-800 px-6 py-3 text-base font-semibold text-zinc-800 dark:text-zinc-100 shadow-sm hover:bg-zinc-50 dark:hover:bg-zinc-700 transition-colors`},` Watch a talk `,-1)]),o(`p`,S,[f(` Speaking since `+t(i(F))+` · `,1),m[3]||=o(`a`,{href:`https://github.com/danvega/abstracts`,class:`text-blue-600 dark:text-blue-400 hover:text-blue-500 dark:hover:text-blue-300`},`abstracts`,-1),m[4]||=f(` · `,-1),a(_,{to:`/speaking/archives`,class:`text-blue-600 dark:text-blue-400 hover:text-blue-500 dark:hover:text-blue-300`},{default:u(()=>[...m[2]||=[f(`past talks`,-1)]]),_:1})])]),m[7]||=o(`div`,{class:`relative`},[o(`div`,{class:`absolute -inset-4 rounded-2xl bg-gradient-to-br from-blue-100 to-transparent dark:from-blue-950/40 -rotate-2`}),o(`img`,{src:v,alt:`Dan Vega speaking on the main stage at Spring I/O`,class:`relative rounded-xl shadow-lg object-cover w-full`})],-1)]),o(`div`,C,[m[10]||=o(`h2`,{class:`text-3xl font-bold tracking-tight text-zinc-800 dark:text-zinc-100`},`Where you can catch me next`,-1),o(`div`,w,[(e(!0),s(c,null,r(i(p),n=>(e(),s(`div`,{key:n.title+n.name+n.startDate,class:`group relative flex items-start gap-6 py-6`},[o(`div`,T,[o(`span`,E,t(I(n.startDate).month),1),o(`span`,D,t(I(n.startDate).day),1)]),o(`div`,O,[o(`p`,k,t(n.name)+` · `+t(n.location),1),o(`h3`,A,[n.slug?(e(),d(_,{key:0,to:`/speaking/${n.slug}`},{default:u(()=>[m[8]||=o(`span`,{class:`absolute inset-0`},null,-1),f(` `+t(n.title),1)]),_:2},1032,[`to`])):n.url?(e(),s(`a`,{key:1,href:n.url,target:`_blank`,rel:`noopener noreferrer`},[m[9]||=o(`span`,{class:`absolute inset-0`}
1,null,-1),f(` `+t(n.title),1)],8,j)):(e(),s(`span`,M,t(n.title),1))]),n.description?(e(),s(`p`,N,t(n.description),1)):l(``,!0)])]))),128))])])]),_:1})}}});export{P as default};

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.