125 lines
4.1 KiB
HTML
125 lines
4.1 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<meta name="theme-color" content="#000000" />
|
|
<meta name="apple-mobile-web-app-title" content="Jet Pham" />
|
|
<title>Jet Pham - Software Extremist</title>
|
|
<meta
|
|
name="description"
|
|
content="Jet Pham's personal website. Software extremist."
|
|
/>
|
|
<link rel="canonical" href="https://jetpham.com/" />
|
|
<link rel="manifest" href="/manifest.json" />
|
|
<link rel="icon" href="/favicon.ico" />
|
|
<link rel="apple-touch-icon" href="/apple-icon.png" />
|
|
<link
|
|
rel="preload"
|
|
href="/Web437_IBM_VGA_8x16.woff"
|
|
as="font"
|
|
type="font/woff"
|
|
crossorigin
|
|
/>
|
|
<meta property="og:title" content="Jet Pham - Software Extremist" />
|
|
<meta
|
|
property="og:description"
|
|
content="Jet Pham's personal website. Software extremist."
|
|
/>
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:url" content="https://jetpham.com/" />
|
|
<meta property="og:site_name" content="Jet Pham" />
|
|
<meta
|
|
property="og:image"
|
|
content="https://jetpham.com/web-app-manifest-512x512.png"
|
|
/>
|
|
<meta property="og:image:width" content="512" />
|
|
<meta property="og:image:height" content="512" />
|
|
<meta property="og:image:alt" content="Jet Pham" />
|
|
<meta name="twitter:card" content="summary" />
|
|
<meta name="twitter:title" content="Jet Pham - Software Extremist" />
|
|
<meta
|
|
name="twitter:description"
|
|
content="Jet Pham's personal website. Software extremist."
|
|
/>
|
|
<meta
|
|
name="twitter:image"
|
|
content="https://jetpham.com/web-app-manifest-512x512.png"
|
|
/>
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "Person",
|
|
"name": "Jet Pham",
|
|
"givenName": "Jet",
|
|
"familyName": "Pham",
|
|
"description": "Software extremist.",
|
|
"url": "https://jetpham.com",
|
|
"jobTitle": "Software Extremist",
|
|
"hasOccupation": {
|
|
"@type": "Occupation",
|
|
"name": "Hacker"
|
|
},
|
|
"email": "jet@extremist.software",
|
|
"image": "https://jetpham.com/jet.svg",
|
|
"alumniOf": {
|
|
"@type": "CollegeOrUniversity",
|
|
"name": "University of San Francisco",
|
|
"url": "https://www.usfca.edu"
|
|
},
|
|
"hasCredential": {
|
|
"@type": "EducationalOccupationalCredential",
|
|
"credentialCategory": "degree",
|
|
"name": "Bachelor of Science in Computer Science"
|
|
},
|
|
"homeLocation": {
|
|
"@type": "City",
|
|
"name": "San Francisco, CA"
|
|
},
|
|
"workLocation": {
|
|
"@type": "City",
|
|
"name": "San Francisco, CA"
|
|
},
|
|
"memberOf": {
|
|
"@type": "Organization",
|
|
"name": "Noisebridge",
|
|
"url": "https://www.noisebridge.net"
|
|
},
|
|
"affiliation": {
|
|
"@type": "Organization",
|
|
"name": "Noisebridge",
|
|
"url": "https://www.noisebridge.net"
|
|
},
|
|
"sameAs": [
|
|
"https://github.com/jetpham",
|
|
"https://x.com/exmistsoftware",
|
|
"https://bsky.app/profile/extremist.software",
|
|
"https://git.extremist.software"
|
|
]
|
|
}
|
|
</script>
|
|
</head>
|
|
<body style="background: #000">
|
|
<a class="skip-link" href="#outlet">Skip to content</a>
|
|
<canvas
|
|
id="canvas"
|
|
class="fixed top-0 left-0 -z-10 h-screen w-screen"
|
|
aria-hidden="true"
|
|
></canvas>
|
|
<div class="page-frame">
|
|
<nav aria-label="Main navigation" class="site-region">
|
|
<div class="site-shell site-panel px-[2ch] py-[1ch]">
|
|
<div class="flex justify-center gap-[2ch]">
|
|
<a href="/" data-nav-link>[HOME]</a>
|
|
<a href="/qa" data-nav-link>[Q&A]</a>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
<main id="outlet" class="site-region" tabindex="-1"></main>
|
|
<footer class="site-region site-footer">
|
|
<div id="site-footer" class="site-shell"></div>
|
|
</footer>
|
|
</div>
|
|
<script type="module" src="/src/main.ts"></script>
|
|
</body>
|
|
</html>
|