From a03b41fe2f1581bc4fdfd56c7c274c4cd4f9dd2c Mon Sep 17 00:00:00 2001 From: wodeni Date: Mon, 28 Oct 2024 17:24:39 +0000 Subject: [PATCH] =?UTF-8?q?Deploy=20preview=20for=20PR=2027=20=F0=9F=9B=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pr-27/assets/{index-e9de87a4.js => index-0928cbca.js} | 2 +- pr-preview/pr-27/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename pr-preview/pr-27/assets/{index-e9de87a4.js => index-0928cbca.js} (99%) diff --git a/pr-preview/pr-27/assets/index-e9de87a4.js b/pr-preview/pr-27/assets/index-0928cbca.js similarity index 99% rename from pr-preview/pr-27/assets/index-e9de87a4.js rename to pr-preview/pr-27/assets/index-0928cbca.js index 7ae4c12..7fed602 100644 --- a/pr-preview/pr-27/assets/index-e9de87a4.js +++ b/pr-preview/pr-27/assets/index-0928cbca.js @@ -5034,4 +5034,4 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */var wb=function(){return wb=Object.assign||function(e){for(var t,i=1,s=arguments.length;iz.jsx("a",{className:"underline decoration-primary/50 dark:decoration-primary/70 decoration-2 cursor-pointer hover:decoration-primary hover:decoration-3 ease-in-out duration-100",href:n,children:e}),N_=[{time:new Date("2024-09-27"),msg:z.jsxs(z.Fragment,{children:["I guess I'm Dr.Nimo now. Watch my"," ",z.jsx(vt,{href:"https://youtu.be/gVZJc7_0T14?si=tyN741CBUqDtCa3r",children:"thesis defense talk"})," ","and find my dissertation document"," ",z.jsx(vt,{href:"https://github.com/wodeni/dissertation",children:"here"})," ."]})},{time:new Date("2024-09-26"),msg:z.jsxs(z.Fragment,{children:["Finished the"," ",z.jsx(vt,{href:new URL("/pr-preview/pr-27/assets/nimo-dissertation.pdf",self.location).href,children:"dissertation"})," ","document and will"," ",z.jsx(vt,{href:new URL("/pr-preview/pr-27/assets/nimo-defense-poster.pdf",self.location).href,children:"defend"})," ","in a few weeks!"]})},{time:new Date("2024-07-19"),msg:z.jsxs(z.Fragment,{children:["The"," ",z.jsx(vt,{href:new URL("/pr-preview/pr-27/assets/las-24-edgeworth.pdf",self.location).href,children:"Edgeworth paper"})," ","was nominated for the Best Paper Award at L@S'24!"]})},{time:new Date("2024-07-18"),msg:z.jsxs(z.Fragment,{children:["Attending ",z.jsx(vt,{href:"",children:"L@S'24"})," for the first time in Atlanta. Check out the"," ",z.jsxs(vt,{href:new URL("/pr-preview/pr-27/assets/las-24-edgeworth-talk.key",self.location).href,children:["slides"," "]}),"of my talk!"]})},{time:new Date("2024-06-24"),msg:z.jsxs(z.Fragment,{children:["Always meant to submit something to"," ",z.jsx(vt,{href:"https://diagrams-2024.diagrams-conference.org/",children:"a conference with DIAGRAM in its name"}),". Well, done"," ",z.jsx(vt,{href:new URL("/pr-preview/pr-27/assets/diagrams-24-penrose.pdf",self.location).href,children:"that"}),"."]})},{time:new Date("2024-06-24"),msg:z.jsxs(z.Fragment,{children:["The ",z.jsx(vt,{href:"https://rosejs.dev/",children:"Rose"})," paper was accepted at ECOOP 2024!"]})},{time:new Date("2024-05-10"),msg:z.jsxs(z.Fragment,{children:["Excited to welcome summer interns"," ",z.jsx(vt,{href:"https://github.com/kyleleesea",children:"Kyle"})," and"," ",z.jsx(vt,{href:"https://griffinteller.com/",children:"Griffin"})," to the Penrose team!"]})},{time:new Date("2024-04-10"),msg:z.jsxs(z.Fragment,{children:[z.jsx("i",{children:'"Edgeworth: Efficient and Scalable Authoring of Visual Thinking Activities"'})," ","was accepted at Learning @ Scale 2024!"]})},{time:new Date("2024-04-10"),msg:z.jsxs(z.Fragment,{children:[z.jsx("i",{children:'"Minkowski Penalties: Robust Differentiable Constraint Enforcement for Vector Graphics"'})," ","was accepted at SIGGRAPH 2024!"]})},{time:new Date("2024-02-28"),msg:z.jsxs(z.Fragment,{children:["Paper accepted at PLDI 2024:"," ",z.jsx("i",{children:"Syntactic Code Search with Sequence-to-Tree Matching"}),"!"]})},{time:new Date("2024-01-02"),msg:"New year, new round of rewriting this site. Used Tailwind this time and we have dark mode now!"},{time:new Date("2023-12-08"),msg:z.jsxs(z.Fragment,{children:["Invited to attend an"," ",z.jsx(vt,{href:"https://aimath.org/pastworkshops/cyberinfrastructure.html",children:"AIM workshop"})," ","on"," ",z.jsx(vt,{href:"https://code4math.org/",children:"Digital Ecosystems for Mathematics"})," ","and started ",z.jsx(vt,{href:"https://mathdiagrams.com",children:"mathdiagrams.com"}),"!"]})},{time:new Date("2023-07-14"),msg:z.jsxs(z.Fragment,{children:["Released ",z.jsx(vt,{href:"https://penrose.cs.cmu.edu/blog/v3",children:"Penrose 3.0"}),"!"]})},{time:new Date("2023-06-01"),msg:z.jsxs(z.Fragment,{children:[z.jsx(vt,{href:"https://www.cmu.edu/scs/s3d/reuse/",children:"REUSE"})," students"," ",z.jsx(vt,{href:"https://www.linkedin.com/in/rijul-jain-585a62191",children:"Rijul Jain"})," ","and ",z.jsx(vt,{href:"https://ravenrothkopf.github.io/",children:"Raven Rothkopf"})," joined Penrose this summer. Welcome!"]})},{time:new Date("2022-08-30"),msg:"Spent the summer as an intern in Machine Intelligence at Apple. Stay tuned for more updates on our work!"},{time:new Date("2022-04-30"),msg:z.jsxs(z.Fragment,{children:["I proposed (",z.jsx(vt,{href:new URL("/pr-preview/pr-27/assets/thesis-proposal-talk.pdf",self.location).href,children:"talk"}),", (",z.jsx(vt,{href:new URL("/pr-preview/pr-27/assets/thesis-proposal.pdf",self.location).href,children:"text"}),")) my dissertation. Officially a PhD candidate now!"]})},{time:new Date("2021-07-01"),msg:z.jsxs(z.Fragment,{children:["My work at Microsoft,"," ",z.jsx("i",{children:'"reCode: A Lightweight Find-and-Replace Interaction in the IDE for Transforming Code by Example,"'})," ","was conditionally accepted by"," ",z.jsx(vt,{href:"https://uist.acm.org/uist2021/",children:"UIST 2021"}),"!"]})},{time:new Date("2020-05-01"),msg:z.jsxs(z.Fragment,{children:["I'll join ",z.jsx(vt,{href:"https://microsoft.github.io/prose/",children:"PROSE"})," @ Microsoft Research as a Research Intern this summer!"]})},{time:new Date("2020-04-01"),msg:z.jsxs(z.Fragment,{children:["The first conference paper on"," ",z.jsx(vt,{href:"https://penrose.cs.cm",children:"Penrose"}),","," ",z.jsx("i",{children:'"Penrose: From Mathematical Notation to Beautiful Diagrams,"'})," was accepted by ",z.jsx(vt,{href:"https://s2020.siggraph.org/",children:"SIGGRAPH 2020"}),"!"]})},{time:new Date("2020-03-01"),msg:z.jsxs(z.Fragment,{children:["The CHI paper won a ",z.jsx("b",{children:"Best Paper Honourable Mention award"})," 🏆!"]})},{time:new Date("2020-01-01"),msg:z.jsxs(z.Fragment,{children:["Our paper"," ",z.jsx("i",{children:'"How Domain Experts Create Conceptual Diagrams and Implications for Tool Design"'})," ","was accepted by ",z.jsx(vt,{href:"http://chi2020.acm.org/",children:"CHI 2020"})," 🏖️!"]})},{time:new Date("2019-10-01"),msg:z.jsxs(z.Fragment,{children:["I presented our papers at"," ",z.jsx(vt,{href:"http://plateau-workshop.org/",children:"PLATEAU 2019"})," with Max and Anael!"]})},{time:new Date("2019-05-01"),msg:z.jsxs(z.Fragment,{children:["I finished 7th at the 2019"," ",z.jsx(vt,{href:"https://en.wikipedia.org/wiki/ACUI_Collegiate_Pocket_Billiards_National_Championship",children:"ACUI Collegiate Nine-ball National Championship"})," ","🎱!"]})},{time:new Date("2019-05-01"),msg:z.jsxs(z.Fragment,{children:["Anael Kuperwajs,"," ",z.jsx(vt,{href:"https://www.linkedin.com/in/courtney-e-miller/",children:"Courtney Miller"}),", ",z.jsx(vt,{href:"https://a9.io/",children:"Max Krieger"})," will join us as"," ",z.jsx(vt,{href:"https://www.cmu.edu/scs/isr/reuse/",children:"REUSE"})," students this summer. Welcome!"]})},{time:new Date("2018-04-01"),msg:z.jsx(z.Fragment,{children:"I will join CMU as a Ph.D. student!"})},{time:new Date("2018-01-01"),msg:z.jsx(z.Fragment,{children:"I will be one of the TAs for COMS 4115 again in Spring 2018."})},{time:new Date("2017-10-01"),msg:z.jsxs(z.Fragment,{children:["Gave a talk at"," ",z.jsx(vt,{href:"https://2017.splashcon.org/event/dsldi-2017-substance-and-style-domain-specific-languages-for-mathematical-diagrams",children:"DSLDI 2017"})," ","in Vancouver, Canada."]})},{time:new Date("2017-05-01"),msg:z.jsxs(z.Fragment,{children:["Joined ",z.jsx(vt,{href:"http://isri.cmu.edu/education/reu-se/",children:"REU-SE"}),", a summer research program, at Carnegie Mellon University."]})}];var iM={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},ZS=Oi.createContext&&Oi.createContext(iM),ra=globalThis&&globalThis.__assign||function(){return ra=Object.assign||function(n){for(var e,t=1,i=arguments.length;tz.jsx("a",{href:t,children:z.jsxs("div",{className:`rounded shadow-md hover:shadow-xl w-full h-36 lg:h-48 bg-white dark:shadow-none dark:bg-zinc-700 dark:rounded-lg dark:border-primary bg-contain bg-left-top dark:drop-shadow-none dark:hover:drop-shadow-none dark:transition-none transition-all ease-in-out duration-100 dark:hover:shadow-md dark:hover:scale-105 overflow-hidden scale-100 - `,children:[z.jsxs("svg",{className:"absolute z-[-50]",width:"100%",viewBox:"0 0 100 100",children:[z.jsxs("defs",{children:[z.jsx("filter",{id:"grayscale-filter",children:z.jsx("feColorMatrix",{type:"saturate",values:"0"})}),z.jsxs("filter",{id:"color-tint-filter",children:[z.jsx("feColorMatrix",{type:"matrix",values:"0.7725 0 0 0 0 0 0.3490 0 0 0 0 0 0.9569 0 0 0 0 0 1 0"}),z.jsxs("feComponentTransfer",{children:[z.jsx("feFuncR",{type:"table",tableValues:"0 0.7725"}),z.jsx("feFuncG",{type:"table",tableValues:"0 0.3490"}),z.jsx("feFuncB",{type:"table",tableValues:"0 0.9569"})]})]}),z.jsxs("linearGradient",{id:"gradient-overlay",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[z.jsx("stop",{offset:"0%",style:{stopColor:s?"#333":"#fff",stopOpacity:.3}}),z.jsx("stop",{offset:"50%",style:{stopColor:s?"#111":"#fff",stopOpacity:s?.35:.7}}),z.jsx("stop",{offset:"100%",style:{stopColor:s?"#333":"#fff",stopOpacity:.95}})]})]}),z.jsx("image",{href:i,x:50,y:-8,width:80,filter:s?"url(#grayscale-filter) ":""}),z.jsx("rect",{width:"100",height:"100",style:{fill:"url(#gradient-overlay)"}})]}),z.jsx("div",{className:"text-3xl -font-medium w-7/10 px-6 pt-4 lg:py-6 text-primary/70 dark:text-primary",children:n}),z.jsx("div",{className:"text-lg font-extralight w-7/10 px-6 py-4 lg:py-6",children:e})]})}),U_={colors:{primary:"#C559F4"}},P_=()=>{const[n,e]=k.useState(!1),t=k.useRef(null);return k.useEffect(()=>{const i=()=>{if(t.current!==null){const s=t.current.scrollTop===0;e(!s)}};if(t.current!==null){const s=t.current;return s.addEventListener("scroll",i),()=>{s.removeEventListener("scroll",i)}}},[]),z.jsxs("div",{className:"my-2 relative",children:[n&&z.jsx("div",{className:"invisible md:visible absolute top-0 left-0 right-0 h-10 bg-gradient-to-b from-white dark:from-zinc-800 to-transparent"}),z.jsx("div",{ref:t,className:"overflow-auto max-h-[50vh]",children:N_.map(({time:i,msg:s},r)=>z.jsxs("div",{className:"py-2 text-gray-500 md:text-sm dark:text-neutral-300 ",children:[z.jsx("div",{className:"w-fit bg-gray-100 text-gray-400 rounded py-px px-1 dark:text-neutral-400 dark:bg-zinc-700",children:i.toLocaleString("default",{month:"long",year:"numeric"})}),s]},`news-${r}`))}),z.jsx("div",{className:"invisible md:visible absolute bottom-0 left-0 right-0 h-12 bg-gradient-to-t from-white dark:from-zinc-800 to-transparent"})]})},__=({data:n,children:e})=>{const[t,i]=k.useState(!1),s=()=>{navigator.clipboard.writeText(n),i(!0),setTimeout(()=>{i(!1)},5e3)};return z.jsxs("div",{children:[z.jsx("span",{className:"underline decoration-primary/50 dark:decoration-primary/70 decoration-2 cursor-pointer hover:decoration-primary hover:decoration-3 ease-in-out duration-100",onClick:s,children:e}),t&&z.jsx("span",{children:" (Copied to clipboard)"})]})},J_=()=>z.jsx("div",{children:NP.map(({pdf:n,title:e,venue:t,authors:i,talk:s,coauthors:r,authorDisplayNames:o,series:a,slides:l,id:c,bibtex:u})=>z.jsxs("div",{className:"my-4",children:[z.jsx("a",{href:n,children:z.jsx("span",{className:"text-lg font-semibold dark:font-normal cursor-pointer",children:e})}),z.jsx("br",{}),z.jsx("span",{className:"text-base font-light",children:i.map((C,d)=>o?.get(d)??C).map(C=>r?.includes(C)?`${C}*`:C).map(C=>C==="Wode Ni"||C==="Wode Ni*"?z.jsx("strong",{children:C}):C).map((C,d)=>z.jsxs("span",{children:[z.jsx("li",{className:"inline dark:font-thin",children:C}),d!==i.length-1&&z.jsx("span",{children:", "})]},`${c}-author-${d}`))}),". ",z.jsx("span",{className:"text-base font-light italic",children:a}),".",z.jsxs("div",{className:"flex gap-2",children:[u&&z.jsxs("div",{className:"flex items-center gap-0.5",children:[z.jsx(D_,{}),z.jsx(__,{data:u,children:"bib"})]}),n&&z.jsxs("div",{className:"flex items-center gap-0.5",children:[z.jsx(E_,{}),z.jsx(vt,{href:n,children:"pdf"})]}),s&&z.jsxs("div",{className:"flex items-center gap-0.5",children:[z.jsx(T_,{}),z.jsx(vt,{href:s,children:"talk"})]}),l&&z.jsxs("div",{className:"flex items-center gap-0.5",children:[z.jsx(k_,{}),z.jsx(vt,{href:l,children:"slides"})]})]})]},c))}),O_=({className:n})=>z.jsx("div",{className:n,children:z.jsxs("div",{className:"flex h-44",children:[z.jsx("div",{className:"w-48 h-48",children:z.jsx(BP,{color:U_.colors.primary})}),z.jsx(w3,{className:"w-44 ml-4 mt-8"})]})}),Q_=({toggleDark:n})=>z.jsx(rM,{onClick:n,children:z.jsx(F_,{className:"fill-icon dark:fill-icon-dark"})}),j_=({className:n,toggleDark:e})=>z.jsxs("div",{className:`${n} flex items-start md:items-top md:ml-auto mb-0 color-primary`,children:[z.jsx($_,{}),z.jsx(oM,{}),z.jsx(aM,{}),z.jsx(lM,{}),z.jsx(q_,{}),z.jsx(Q_,{toggleDark:e})]}),rM=({children:n,...e})=>z.jsx("div",{className:"mx-1 w-6 h-6 text-xl flex cursor-pointer justify-center hover:opacity-50 ease-in-out duration-200",...e,children:n}),eC=({url:n,icon:e})=>z.jsx(rM,{children:z.jsx("a",{href:n,children:e})}),q_=()=>z.jsx(eC,{url:"https://goo.gl/maps/Zp92ofs6ze3y8hc19",icon:z.jsx(K_,{className:"fill-icon dark:fill-icon-dark "})}),oM=()=>z.jsx(eC,{url:"https://twitter.com/wodenimoni",icon:z.jsx(L_,{className:"fill-icon dark:fill-icon-dark"})}),aM=()=>z.jsx(eC,{url:"https://github.com/wodeni",icon:z.jsx(z_,{className:"fill-icon dark:fill-icon-dark"})}),$_=()=>z.jsx(eC,{url:"http://wodenimoni.com/nimo-markdown-cv/",icon:z.jsx("span",{className:"font-extralight leading-5 text-icon top-[-4px] left-[-3px] relative",children:"CV"})}),lM=()=>z.jsx(eC,{url:"mailto:nimo@cmu.edu",icon:z.jsx(Y_,{className:"fill-icon dark:fill-icon-dark grow"})}),dh=({className:n,children:e})=>z.jsx("p",{className:`${n} font-sans font-extralight text-lg my-2 dark:text-neutral-100`,children:e}),hh=({header:n,children:e})=>{const t=n.toLowerCase();return z.jsxs("div",{id:t,className:"my-4 md:my-8",children:[z.jsxs("span",{className:"group font-bold text-3xl tracking-tight curosr-pointer relative ",children:[z.jsxs("svg",{height:30,className:"w-full translate-y-1 absolute top-0 left-0",children:[z.jsx("rect",{x:0,y:0,width:5,height:50,className:"group-hover:opacity-30 group-hover:scale-x-400 transition-transform transform fill-primary"}),z.jsx("rect",{x:0,y:0,width:5,height:50,className:"fill-primary"})]}),z.jsx(M_,{className:"ml-[10px] w-full dark:text-neutral-100",smooth:!0,to:`/#${t}`,children:n})]}),e]})},eJ=()=>z.jsxs("div",{className:"md:col-span-3 mt-8 w-full flex flex-col text-sm justify-center items-center text-gray-500 dark:text-neutral-400",children:[z.jsxs("span",{className:"mb-2",children:["© ",new Date().getUTCFullYear(),' Wode "Nimo" Ni.']}),z.jsxs("div",{className:"flex items-start color-primary text-sm",children:[z.jsx(oM,{}),z.jsx(aM,{}),z.jsx(lM,{})]})]}),tJ=()=>{const[n,e]=k.useState(window.matchMedia("(prefers-color-scheme: dark)").matches),t=()=>{e(!n)};function i(){window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?e(!0):e(!1)}return k.useEffect(()=>{window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",i)}),k.useEffect(()=>{document.documentElement.classList.toggle("dark",n)},[n]),z.jsxs("div",{className:"font-sans md:grid md:grid-cols-3 p-4 md:p-10 max-w-screen-xl dark:text-neutral-100",children:[z.jsx(O_,{className:"md:col-span-2"}),z.jsx(j_,{className:"mt-8",toggleDark:t}),z.jsx(dh,{className:"md:col-span-2 mt-8",children:"I'm Nimo. I build ergonomic digital tools to make difficult things feel simple."}),z.jsxs("div",{className:"max-w-screen-md md:col-span-2",children:[z.jsxs(hh,{header:"Research",children:[z.jsxs(dh,{className:"",children:["I recently completed my"," ",z.jsx(vt,{href:"https://github.com/wodeni/dissertation",children:"Ph.D."})," at Carnegie Mellon University, School of Computer Science. I was advised by"," ",z.jsx(vt,{href:"http://pact.cs.cmu.edu/koedinger.html",children:"Ken Koedinger"})," ","and ",z.jsx(vt,{href:"https://www.cs.cmu.edu/~jssunshi/",children:"Josh Sunshine"}),". Here are some selected papers. Refer to the"," ",z.jsx(vt,{href:"http://wodenimoni.com/nimo-markdown-cv/",children:"CV"})," for more."]}),z.jsx(J_,{})]}),z.jsx(hh,{header:"Tools",children:z.jsxs("div",{className:"grid lg:grid-cols-2 gap-2 md:gap-4 lg:gap-8 my-4",children:[z.jsx(Hf,{name:"Penrose",desc:"Create beautiful diagrams just by typing math notation in plain text.",link:"https://penrose.cs.cmu.edu/",logo:S3,dark:n}),z.jsx(Hf,{name:"Edgeworth",desc:"Diagrammatic problem generation by program mutation.",link:"https://penrose.github.io/penrose/edgeworth/develop/",logo:x3,dark:n}),z.jsx(Hf,{name:"Math Diagrams",desc:"A growing collection of open-source math visualizations.",link:"https://mathdiagrams.com/",dark:n,logo:R3})]})}),z.jsxs(hh,{header:"About",children:[z.jsx(dh,{children:'My name is 倪沃德 (ní wò dé) in Chinese. “Nimo” has been my alias since my street dancing days. If you find "Wo-de" hard to pronounce, default to “Nimo”.'}),z.jsx(dh,{children:"I am an avid pool player. I play in local leagues and national tournaments."})]})]}),z.jsx("div",{className:"md:ml-10 md:max-w-60",children:z.jsx(hh,{header:"News",children:z.jsx(P_,{})})}),z.jsx(eJ,{})]})};function nJ(){return k.useEffect(()=>{window.location.href=new URL("/pr-preview/pr-27/assets/nimo-dissertation.pdf",self.location).href},[]),null}Xf.createRoot(document.getElementById("root")).render(z.jsx(Oi.StrictMode,{children:z.jsx(w_,{children:z.jsxs(v_,{children:[z.jsx(Bb,{path:"/",element:z.jsx(tJ,{})}),z.jsx(Bb,{path:"/thesis",element:z.jsx(nJ,{})})]})})})); + `,children:[z.jsxs("svg",{className:"absolute z-[-50]",width:"100%",viewBox:"0 0 100 100",children:[z.jsxs("defs",{children:[z.jsx("filter",{id:"grayscale-filter",children:z.jsx("feColorMatrix",{type:"saturate",values:"0"})}),z.jsxs("filter",{id:"color-tint-filter",children:[z.jsx("feColorMatrix",{type:"matrix",values:"0.7725 0 0 0 0 0 0.3490 0 0 0 0 0 0.9569 0 0 0 0 0 1 0"}),z.jsxs("feComponentTransfer",{children:[z.jsx("feFuncR",{type:"table",tableValues:"0 0.7725"}),z.jsx("feFuncG",{type:"table",tableValues:"0 0.3490"}),z.jsx("feFuncB",{type:"table",tableValues:"0 0.9569"})]})]}),z.jsxs("linearGradient",{id:"gradient-overlay",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[z.jsx("stop",{offset:"0%",style:{stopColor:s?"#333":"#fff",stopOpacity:.3}}),z.jsx("stop",{offset:"50%",style:{stopColor:s?"#111":"#fff",stopOpacity:s?.35:.7}}),z.jsx("stop",{offset:"100%",style:{stopColor:s?"#333":"#fff",stopOpacity:.95}})]})]}),z.jsx("image",{href:i,x:50,y:-8,width:80,filter:s?"url(#grayscale-filter) ":""}),z.jsx("rect",{width:"100",height:"100",style:{fill:"url(#gradient-overlay)"}})]}),z.jsx("div",{className:"text-3xl -font-medium w-7/10 px-6 pt-4 lg:py-6 text-primary/70 dark:text-primary",children:n}),z.jsx("div",{className:"text-lg font-extralight w-7/10 px-6 py-4 lg:py-6",children:e})]})}),U_={colors:{primary:"#C559F4"}},P_=()=>{const[n,e]=k.useState(!1),t=k.useRef(null);return k.useEffect(()=>{const i=()=>{if(t.current!==null){const s=t.current.scrollTop===0;e(!s)}};if(t.current!==null){const s=t.current;return s.addEventListener("scroll",i),()=>{s.removeEventListener("scroll",i)}}},[]),z.jsxs("div",{className:"my-2 relative",children:[n&&z.jsx("div",{className:"invisible md:visible absolute top-0 left-0 right-0 h-10 bg-gradient-to-b from-white dark:from-zinc-800 to-transparent"}),z.jsx("div",{ref:t,className:"overflow-auto max-h-[50vh]",children:N_.map(({time:i,msg:s},r)=>z.jsxs("div",{className:"py-2 text-gray-500 md:text-sm dark:text-neutral-300 ",children:[z.jsx("div",{className:"w-fit bg-gray-100 text-gray-400 rounded py-px px-1 dark:text-neutral-400 dark:bg-zinc-700",children:i.toLocaleString("default",{month:"long",year:"numeric"})}),s]},`news-${r}`))}),z.jsx("div",{className:"invisible md:visible absolute bottom-0 left-0 right-0 h-12 bg-gradient-to-t from-white dark:from-zinc-800 to-transparent"})]})},__=({data:n,children:e})=>{const[t,i]=k.useState(!1),s=()=>{navigator.clipboard.writeText(n),i(!0),setTimeout(()=>{i(!1)},5e3)};return z.jsxs("div",{children:[z.jsx("span",{className:"underline decoration-primary/50 dark:decoration-primary/70 decoration-2 cursor-pointer hover:decoration-primary hover:decoration-3 ease-in-out duration-100",onClick:s,children:e}),t&&z.jsx("span",{children:" (Copied to clipboard)"})]})},J_=()=>z.jsx("div",{children:NP.map(({pdf:n,title:e,venue:t,authors:i,talk:s,coauthors:r,authorDisplayNames:o,series:a,slides:l,id:c,bibtex:u})=>z.jsxs("div",{className:"my-4",children:[z.jsx("a",{href:n,children:z.jsx("span",{className:"text-lg font-semibold dark:font-normal cursor-pointer",children:e})}),z.jsx("br",{}),z.jsx("span",{className:"text-base font-light",children:i.map((C,d)=>o?.get(d)??C).map(C=>r?.includes(C)?`${C}*`:C).map(C=>C==="Wode Ni"||C==="Wode Ni*"?z.jsx("strong",{children:C}):C).map((C,d)=>z.jsxs("span",{children:[z.jsx("li",{className:"inline dark:font-thin",children:C}),d!==i.length-1&&z.jsx("span",{children:", "})]},`${c}-author-${d}`))}),". ",z.jsx("span",{className:"text-base font-light italic",children:a}),".",z.jsxs("div",{className:"flex gap-2",children:[u&&z.jsxs("div",{className:"flex items-center gap-0.5",children:[z.jsx(D_,{}),z.jsx(__,{data:u,children:"bib"})]}),n&&z.jsxs("div",{className:"flex items-center gap-0.5",children:[z.jsx(E_,{}),z.jsx(vt,{href:n,children:"pdf"})]}),s&&z.jsxs("div",{className:"flex items-center gap-0.5",children:[z.jsx(T_,{}),z.jsx(vt,{href:s,children:"talk"})]}),l&&z.jsxs("div",{className:"flex items-center gap-0.5",children:[z.jsx(k_,{}),z.jsx(vt,{href:l,children:"slides"})]})]})]},c))}),O_=({className:n})=>z.jsx("div",{className:n,children:z.jsxs("div",{className:"flex h-44",children:[z.jsx("div",{className:"w-48 h-48",children:z.jsx(BP,{color:U_.colors.primary})}),z.jsx(w3,{className:"w-44 ml-4 mt-8"})]})}),Q_=({toggleDark:n})=>z.jsx(rM,{onClick:n,children:z.jsx(F_,{className:"fill-icon dark:fill-icon-dark"})}),j_=({className:n,toggleDark:e})=>z.jsxs("div",{className:`${n} flex items-start md:items-top md:ml-auto mb-0 color-primary`,children:[z.jsx($_,{}),z.jsx(oM,{}),z.jsx(aM,{}),z.jsx(lM,{}),z.jsx(q_,{}),z.jsx(Q_,{toggleDark:e})]}),rM=({children:n,...e})=>z.jsx("div",{className:"mx-1 w-6 h-6 text-xl flex cursor-pointer justify-center hover:opacity-50 ease-in-out duration-200",...e,children:n}),eC=({url:n,icon:e})=>z.jsx(rM,{children:z.jsx("a",{href:n,children:e})}),q_=()=>z.jsx(eC,{url:"https://goo.gl/maps/Zp92ofs6ze3y8hc19",icon:z.jsx(K_,{className:"fill-icon dark:fill-icon-dark "})}),oM=()=>z.jsx(eC,{url:"https://twitter.com/wodenimoni",icon:z.jsx(L_,{className:"fill-icon dark:fill-icon-dark"})}),aM=()=>z.jsx(eC,{url:"https://github.com/wodeni",icon:z.jsx(z_,{className:"fill-icon dark:fill-icon-dark"})}),$_=()=>z.jsx(eC,{url:"http://wodenimoni.com/nimo-markdown-cv/",icon:z.jsx("span",{className:"font-extralight leading-5 text-icon top-[-4px] left-[-3px] relative",children:"CV"})}),lM=()=>z.jsx(eC,{url:"mailto:sup@wodenimoni.com",icon:z.jsx(Y_,{className:"fill-icon dark:fill-icon-dark grow"})}),dh=({className:n,children:e})=>z.jsx("p",{className:`${n} font-sans font-extralight text-lg my-2 dark:text-neutral-100`,children:e}),hh=({header:n,children:e})=>{const t=n.toLowerCase();return z.jsxs("div",{id:t,className:"my-4 md:my-8",children:[z.jsxs("span",{className:"group font-bold text-3xl tracking-tight curosr-pointer relative ",children:[z.jsxs("svg",{height:30,className:"w-full translate-y-1 absolute top-0 left-0",children:[z.jsx("rect",{x:0,y:0,width:5,height:50,className:"group-hover:opacity-30 group-hover:scale-x-400 transition-transform transform fill-primary"}),z.jsx("rect",{x:0,y:0,width:5,height:50,className:"fill-primary"})]}),z.jsx(M_,{className:"ml-[10px] w-full dark:text-neutral-100",smooth:!0,to:`/#${t}`,children:n})]}),e]})},eJ=()=>z.jsxs("div",{className:"md:col-span-3 mt-8 w-full flex flex-col text-sm justify-center items-center text-gray-500 dark:text-neutral-400",children:[z.jsxs("span",{className:"mb-2",children:["© ",new Date().getUTCFullYear(),' Wode "Nimo" Ni.']}),z.jsxs("div",{className:"flex items-start color-primary text-sm",children:[z.jsx(oM,{}),z.jsx(aM,{}),z.jsx(lM,{})]})]}),tJ=()=>{const[n,e]=k.useState(window.matchMedia("(prefers-color-scheme: dark)").matches),t=()=>{e(!n)};function i(){window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?e(!0):e(!1)}return k.useEffect(()=>{window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",i)}),k.useEffect(()=>{document.documentElement.classList.toggle("dark",n)},[n]),z.jsxs("div",{className:"font-sans md:grid md:grid-cols-3 p-4 md:p-10 max-w-screen-xl dark:text-neutral-100",children:[z.jsx(O_,{className:"md:col-span-2"}),z.jsx(j_,{className:"mt-8",toggleDark:t}),z.jsx(dh,{className:"md:col-span-2 mt-8",children:"I'm Nimo. I build ergonomic digital tools to make difficult things feel simple."}),z.jsxs("div",{className:"max-w-screen-md md:col-span-2",children:[z.jsxs(hh,{header:"Research",children:[z.jsxs(dh,{className:"",children:["I recently completed my"," ",z.jsx(vt,{href:"https://github.com/wodeni/dissertation",children:"Ph.D."})," at Carnegie Mellon University, School of Computer Science. I was advised by"," ",z.jsx(vt,{href:"http://pact.cs.cmu.edu/koedinger.html",children:"Ken Koedinger"})," ","and ",z.jsx(vt,{href:"https://www.cs.cmu.edu/~jssunshi/",children:"Josh Sunshine"}),". Here are some selected papers. Refer to the"," ",z.jsx(vt,{href:"http://wodenimoni.com/nimo-markdown-cv/",children:"CV"})," for more."]}),z.jsx(J_,{})]}),z.jsx(hh,{header:"Tools",children:z.jsxs("div",{className:"grid lg:grid-cols-2 gap-2 md:gap-4 lg:gap-8 my-4",children:[z.jsx(Hf,{name:"Penrose",desc:"Create beautiful diagrams just by typing math notation in plain text.",link:"https://penrose.cs.cmu.edu/",logo:S3,dark:n}),z.jsx(Hf,{name:"Edgeworth",desc:"Diagrammatic problem generation by program mutation.",link:"https://penrose.github.io/penrose/edgeworth/develop/",logo:x3,dark:n}),z.jsx(Hf,{name:"Math Diagrams",desc:"A growing collection of open-source math visualizations.",link:"https://mathdiagrams.com/",dark:n,logo:R3})]})}),z.jsxs(hh,{header:"About",children:[z.jsx(dh,{children:'My name is 倪沃德 (ní wò dé) in Chinese. “Nimo” has been my alias since my street dancing days. If you find "Wo-de" hard to pronounce, default to “Nimo”.'}),z.jsx(dh,{children:"I am an avid pool player. I play in local leagues and national tournaments."})]})]}),z.jsx("div",{className:"md:ml-10 md:max-w-60",children:z.jsx(hh,{header:"News",children:z.jsx(P_,{})})}),z.jsx(eJ,{})]})};function nJ(){return k.useEffect(()=>{window.location.href=new URL("/pr-preview/pr-27/assets/nimo-dissertation.pdf",self.location).href},[]),null}Xf.createRoot(document.getElementById("root")).render(z.jsx(Oi.StrictMode,{children:z.jsx(w_,{children:z.jsxs(v_,{children:[z.jsx(Bb,{path:"/",element:z.jsx(tJ,{})}),z.jsx(Bb,{path:"/thesis",element:z.jsx(nJ,{})})]})})})); diff --git a/pr-preview/pr-27/index.html b/pr-preview/pr-27/index.html index 441a62d..da6cf16 100644 --- a/pr-preview/pr-27/index.html +++ b/pr-preview/pr-27/index.html @@ -73,7 +73,7 @@ data-utcoffset="-4" > Wode "Nimo" Ni - +