This commit is contained in:
Alexander 2025-06-09 00:20:26 -04:00
parent dbadcf267e
commit 66af302e2d
115 changed files with 721 additions and 278 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
serve/

View file

@ -1,3 +1,3 @@
# plexpage # plexpage
All of my websites, self-served from a single host. All of my static sites, self-served from a single host.

View file

@ -1,120 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>The page is not found</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
/*<![CDATA[*/
body {
background-color: #FAF5F5;
color: #000;
font-size: 0.9em;
font-family: sans-serif,helvetica;
margin: 0;
padding: 0;
}
:link {
color: #0B2335;
}
:visited {
color: #0B2335;
}
a:hover {
color: #0069DA;
}
h1 {
text-align: center;
margin: 0;
padding: 0.6em 2em 0.4em;
background-color: #0B2335;
color: #fff;
font-weight: normal;
font-size: 1.75em;
border-bottom: 2px solid #000;
}
h1 strong {
font-weight: bold;
font-size: 1.5em;
}
h2 {
text-align: center;
background-color: #0B2335;
font-size: 1.1em;
font-weight: bold;
color: #fff;
margin: 0;
padding: 0.5em;
border-bottom: 2px solid #000;
}
h3 {
text-align: center;
background-color: #ff0000;
padding: 0.5em;
color: #fff;
}
hr {
display: none;
}
.content {
padding: 1em 5em;
}
.alert {
border: 2px solid #000;
}
img {
border: 2px solid #FAF5F5;
padding: 2px;
margin: 2px;
}
a:hover img {
border: 2px solid #294172;
}
.logos {
margin: 1em;
text-align: center;
}
/*]]>*/
</style>
</head>
<body>
<h1><strong>nginx error!</strong></h1>
<div class="content">
<h3>The page you are looking for is not found.</h3>
<div class="alert">
<h2>Website Administrator</h2>
<div class="content">
<p>Something has triggered missing webpage on your
website. This is the default 404 error page for
<strong>nginx</strong> that is distributed with
AlmaLinux. It is located
<tt>/usr/share/nginx/html/404.html</tt></p>
<p>You should customize this error page for your own
site or edit the <tt>error_page</tt> directive in
the <strong>nginx</strong> configuration file
<tt>/etc/nginx/nginx.conf</tt>.</p>
<p>For information on AlmaLinux, please visit the <a href="http://www.almalinux.org/">AlmaLinux website</a>.</p>
</div>
</div>
<div class="logos">
<a href="http://nginx.net/"><img
src="nginx-logo.png"
alt="[ Powered by nginx ]"
width="121" height="32" /></a>
<a href="http://www.almalinux.org/"><img
src="poweredby.png"
alt="[ Powered by AlmaLinux ]"
width="124" height="32" /></a>
</div>
</div>
</body>
</html>

View file

@ -1,120 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>The page is temporarily unavailable</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
/*<![CDATA[*/
body {
background-color: #FAF5F5;
color: #000;
font-size: 0.9em;
font-family: sans-serif,helvetica;
margin: 0;
padding: 0;
}
:link {
color: #0B2335;
}
:visited {
color: #0B2335;
}
a:hover {
color: #0069DA;
}
h1 {
text-align: center;
margin: 0;
padding: 0.6em 2em 0.4em;
background-color: #0B2335;
color: #fff;
font-weight: normal;
font-size: 1.75em;
border-bottom: 2px solid #000;
}
h1 strong {
font-weight: bold;
font-size: 1.5em;
}
h2 {
text-align: center;
background-color: #0B2335;
font-size: 1.1em;
font-weight: bold;
color: #fff;
margin: 0;
padding: 0.5em;
border-bottom: 2px solid #000;
}
h3 {
text-align: center;
background-color: #ff0000;
padding: 0.5em;
color: #fff;
}
hr {
display: none;
}
.content {
padding: 1em 5em;
}
.alert {
border: 2px solid #000;
}
img {
border: 2px solid #FAF5F5;
padding: 2px;
margin: 2px;
}
a:hover img {
border: 2px solid #294172;
}
.logos {
margin: 1em;
text-align: center;
}
/*]]>*/
</style>
</head>
<body>
<h1><strong>nginx error!</strong></h1>
<div class="content">
<h3>The page you are looking for is temporarily unavailable. Please try again later.</h3>
<div class="alert">
<h2>Website Administrator</h2>
<div class="content">
<p>Something has triggered missing webpage on your
website. This is the default error page for
<strong>nginx</strong> that is distributed with
AlmaLinux. It is located
<tt>/usr/share/nginx/html/50x.html</tt></p>
<p>You should customize this error page for your own
site or edit the <tt>error_page</tt> directive in
the <strong>nginx</strong> configuration file
<tt>/etc/nginx/nginx.conf</tt>.</p>
<p>For information on AlmaLinux, please visit the <a href="http://www.almalinux.org/">AlmaLinux website</a>.</p>
</div>
</div>
<div class="logos">
<a href="http://nginx.net/"><img
src="nginx-logo.png"
alt="[ Powered by nginx ]"
width="121" height="32" /></a>
<a href="http://www.almalinux.org/"><img
src="poweredby.png"
alt="[ Powered by AlmaLinux ]"
width="124" height="32" /></a>
</div>
</div>
</body>
</html>

View file

@ -1,19 +0,0 @@
<p id="ENTIRE">Page script failed to run. Please enable javascript.</p>
<script>
let source = window.location.hostname;
if (source == "acl.cool" || source == "raedr7n.net") {
document.getElementById("ENTIRE").innerHTML = `<p>Welcome to ${source}.</p> <a href="recipes/">recipes</a>`;
} else if (source == "ytheleus.org") {
document.getElementById("ENTIRE").innerHTML =
`<p>You're at ${source}, home page of the <a href=yth-name.html>Ytheleus</a> programming language!</p>
<p>This is not implemented yet; Ytheleus does not exist. That said, here are my vague ideas of what it should be:</p>
<ul>
<li>It's Andreas Rossberg's 1ML, but computationally pure.</li>
<li>The implementation uses dynamic superinstructions for interpretation and compiles either via "Compiling without continuations", if I decide not to put first-class multiple-resumption continuations in the lanugage, or with CPS, otherwise.</li>
</ul>`;
} else {
document.getElementById("ENTIRE").innerHTML = `Welcome to ${source}. For something more interesting, try <a href="https://acl.cool">acl.cool</a> or <a href="https://ytheleus.org">ytheleus.org</a>.`;
}
</script>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 368 B

View file

@ -1,6 +0,0 @@
<ol>
<li><a href="CoronationChicken.pdf">Coronation Chicken</a></li>
<li><a href="EasySalsa.pdf">Easy Medium Salsa</a></li>
<li><a href="AmarettiCookies.pdf">Amaretti Cookies</a></li>
</ol>

Binary file not shown.

View file

@ -1,9 +0,0 @@
body {
background-color: powderblue;
}
h1 {
color: blue;
}
p {
color: red;
}

View file

@ -1,3 +0,0 @@
<p>"Ytheleus" is the second part of a name, "Sisela Ytheleus 1/2", belonging to a spirited type D-4 military drone of the explorer ship "Peace Makes Plenty", a vessel of the Stargazer Clan, part of the Fifth Fleet of the Zetetic Elench - from Iain M. Banks' fifth Culture novel, <i>Excession</i>.</p>
<p>"One should always be prepared for every eventuality, even if it's getting shafted by a dope with bigger guns."</p>

3
serve.sh Executable file
View file

@ -0,0 +1,3 @@
#!/bin/sh
python3 -m http.server -d serve/ 8080

1
site/acl.cool/assets Symbolic link
View file

@ -0,0 +1 @@
../assets

1
site/acl.cool/css Symbolic link
View file

@ -0,0 +1 @@
../css

View file

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 113 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Before After
Before After

3
site/acl.cool/index.html Normal file
View file

@ -0,0 +1,3 @@
<h1>acl.cool</h1>
<p>Welcome to acl.cool.</p> <a href="recipes/">recipes</a>

View file

@ -0,0 +1,3 @@
+ [Coronation Chicken](CoronationChicken.pdf)
+ [Easy Medium Salsa](EasySalsa.pdf)
+ [Amaretti Cookies](AmarettiCookies.pdf)

BIN
site/acl.cool/resume.pdf Executable file

Binary file not shown.

112
site/acl.cool/resume.typ Executable file
View file

@ -0,0 +1,112 @@
#let fontsize = 10.2pt
#let typeface_text = "Fira Sans"
#let typeface_math = "STIX Two Math"
#set text(font: typeface_text, size: fontsize)
#show math.equation: set text(font: typeface_math, size: fontsize)
#let inlineFrac(a, b) = [$#super([#a]) #h(-1pt) slash #h(-1pt) #sub([#b])$]
#set smartquote(enabled: false)
#show heading: q => {
if q.depth != 1 {
v(fontsize / 5)
}
text(q, weight: "regular")
if q.depth == 2 {
v(-0.7em)
line(length: 100%, stroke: (thickness: 0.7pt))
v(0.5em)
}
}
#let head = {
align(center)[
= Alexander Lucas
#set text(font: "Fira Code")
#text([alexander.clay.lucas\@gmail.com], size: fontsize * 0.9)
#linebreak()
#text([(+1) 347-644-9265], size: fontsize * 0.8)
]
}
#set page(margin: (x: 0.9in, y: 0.35in))
#head
== Summary
I am a computer science enthusiast with an inclination for harnessing computer science
theory to tackle practical challenges as cleanly as possible. I believe strongly in the
importance of codebase health and quality, maintaining those values over time as programs and projects evolve.
== Skills
#let skills = [
*Languages*: Javascript/Typescript, Java, Python, Rust, Haskell, OCaml, F\#, Ruby, C\#, C, C++, Lean 4, HTML/CSS, LaTeX, Typst
#linebreak()
*Platforms*: Ten years using GNU/Linux including Debian and Redhat, QEMU, Google Cloud
#linebreak()
*Technologies*: Buildroot, WebGL, Numpy/Pytorch/Sklearn, Matplotlib, Git, Gitlab/Github, PostgreSQL, Node, Slurm
#linebreak()
*Soft Skills*: Technical Writing, Software Documentation, Presentation
]
#skills
#let interline() = {
box(width: 1fr, inset: fontsize / 4, line(length: 100%, stroke: (thickness: fontsize / 10, dash: "loosely-dotted")))
}
== Experience
#let experience = [
*Embedded Software Engineer, Jr.* #interline() #text(weight: "semibold")[Trusted Microelectronics, KBR, 01/2025-05/2025 (End of Funds)]
- Continuing to work with the same great team, tools and software as during my internship.
- Developing QEMU virtual hardware devices for building/testing platform-specific applications.
*Linux Driver Development Intern* #interline() #text(weight: "semibold")[Trusted Microelectronics, KBR, 05/2024-08/2024]
- Learned Linux kernel subsystems and developed device drivers for custom "system on a chip" hardware, including GPIO/pin controllers and an AES encryption accelerator module.
- Worked with team members to develop testing and assurance methodologies including coverage profiling and input fuzzing for Linux drivers while porting Linux to our boards.
- Automated common tasks, writing scripts to handle OS installations and code restructuring.
- Presented project status and details to large, cross-functional and interdisciplinary groups.
*Teaching Assistant* #interline() #text(weight: "semibold")[James Madison University, 08/2022-12/2023]
- Took questions and led review sessions in proofs, programming, tooling, debugging code.
- Maintained a calm and encouraging environment while helping students with difficult problem sets against a deadline.
]
#experience
== Education
#let degrees = [
*B.S. Computer Science* (3.8 GPA) #interline() #text(weight: "semibold")[James Madison University, 12/2023]
]
#degrees
#let courses = [
- Programming Languages, Compiler Construction
- Independent Study in Constructive Logic, Symbolic Logic
- Applied Algorithms, Data Structures
- Parallel and Distributed Systems, 3D Graphics
]
#courses
*Study Abroad, London, UK* #interline() #text(weight: "semibold")[JMU at Florida State Study Center, Summer 2023]
#let cw = [
- Rigidity Theory
- Independent Study in Computational Geometry
]
#cw
*Academic Awards*
#let awards = [
- "President's List" #interline() #text(weight: "semibold")[JMU, 2023]
- "Alonzo Church Award for Theory" #interline() #text(weight: "semibold")[JMU CS Department, 2024]
]
#awards
== Personal Projects
#let projects = [
*Aasam* (on #underline([#link("https://hackage.haskell.org/package/aasam")[Hackage]])) is a Haskell implementation of the CFG-generation algorithm $#math.cal([M])$ from Annika Aasa's paper "Precedences in specifications and implementations of programming languages".
#linebreak()
*Randall* (on #underline([#link("https://gitlab.com/mobotsar/randall")[Gitlab]])) is a Discord bot for executing dice-notation, making it easy to play TTRPGs remotely. It uses a recursive descent parser and tree-walk interpreter on the backend and the .NET Discord library up front.
]
#projects

View file

@ -0,0 +1 @@
b481aac1-ef8d-48d0-8d6b-b109c992addd

View file

@ -0,0 +1 @@
{"weight":350,"italic":false,"alternates":{"cv01":false,"cv02":false,"cv03":false,"cv04":false,"cv05":false,"cv06":true,"cv07":false,"cv08":true,"cv09":false,"cv10":false,"cv11":false},"features":{"ss01":false,"ss02":false,"ss03":false,"ss04":true,"ss05":true},"letterSpacing":0,"lineHeight":1,"fontName":"UnfancyDevN"}

View file

@ -0,0 +1,11 @@
A short guide for how to install and enable your shiny new version of Commit Mono.
This is taken from section 08 Install from https://commitmono.com/
#1 (Download the fonts)
#2 Unzip the fonts. You'll see 4 font files. These 4 fonts make up a 'Style Group':
* CommitMono-Regular: Base version with settings and weight of your choice.
* CommitMono-Italic: An italic version, same weight as regular.
* CommitMono-Bold: A bold version, weight 700.
* CommitMono-BoldItalic: A bold version, weight 700, that is also italic.
#3 Install all 4 fonts on your system:
* Windows: Right click the font in the folder and click "Instal

View file

@ -0,0 +1,37 @@
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the compon

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,43 @@
# Installing Webfonts
Follow these simple Steps.
## 1.
Put `rowan/` Folder into a Folder called `fonts/`.
## 2.
Put `rowan.css` into your `css/` Folder.
## 3. (Optional)
You may adapt the `url('path')` in `rowan.css` depends on your Website Filesystem.
## 4.
Import `rowan.css` at the top of you main Stylesheet.
```
@import url('rowan.css');
```
## 5.
You are now ready to use the following Rules in your CSS to specify each Font Style:
```
font-family: Rowan-Light;
font-family: Rowan-LightItalic;
font-family: Rowan-Regular;
font-family: Rowan-Italic;
font-family: Rowan-Medium;
font-family: Rowan-MediumItalic;
font-family: Rowan-Semibold;
font-family: Rowan-SemiboldItalic;
font-family: Rowan-Bold;
font-family: Rowan-BoldItalic;
font-family: Rowan-Variable;
font-family: Rowan-VariableItalic;
```
## 6. (Optional)
Use `font-variation-settings` rule to controll axes of variable fonts:
wght 700.0
Available axes:
'wght' (range from 300.0 to 700.0

View file

@ -0,0 +1,148 @@
/**
* @license
*
* Font Family: Rowan
* Designed by: Inga Plönnigs
* URL: https://www.fontshare.com/fonts/rowan
* © 2025 Indian Type Foundry
*
* Rowan Light
* Rowan LightItalic
* Rowan Regular
* Rowan Italic
* Rowan Medium
* Rowan MediumItalic
* Rowan Semibold
* Rowan SemiboldItalic
* Rowan Bold
* Rowan BoldItalic
* Rowan Variable (Variable font)
* Rowan VariableItalic (Variable font)
*
*/
@font-face {
font-family: 'Rowan-Light';
src: url('../fonts/Rowan-Light.woff2') format('woff2'),
url('../fonts/Rowan-Light.woff') format('woff'),
url('../fonts/Rowan-Light.ttf') format('truetype');
font-weight: 300;
font-display: swap;
font-style: normal;
}
@font-face {
font-family: 'Rowan-LightItalic';
src: url('../fonts/Rowan-LightItalic.woff2') format('woff2'),
url('../fonts/Rowan-LightItalic.woff') format('woff'),
url('../fonts/Rowan-LightItalic.ttf') format('truetype');
font-weight: 300;
font-display: swap;
font-style: italic;
}
@font-face {
font-family: 'Rowan-Regular';
src: url('../fonts/Rowan-Regular.woff2') format('woff2'),
url('../fonts/Rowan-Regular.woff') format('woff'),
url('../fonts/Rowan-Regular.ttf') format('truetype');
font-weight: 400;
font-display: swap;
font-style: normal;
}
@font-face {
font-family: 'Rowan-Italic';
src: url('../fonts/Rowan-Italic.woff2') format('woff2'),
url('../fonts/Rowan-Italic.woff') format('woff'),
url('../fonts/Rowan-Italic.ttf') format('truetype');
font-weight: 400;
font-display: swap;
font-style: italic;
}
@font-face {
font-family: 'Rowan-Medium';
src: url('../fonts/Rowan-Medium.woff2') format('woff2'),
url('../fonts/Rowan-Medium.woff') format('woff'),
url('../fonts/Rowan-Medium.ttf') format('truetype');
font-weight: 500;
font-display: swap;
font-style: normal;
}
@font-face {
font-family: 'Rowan-MediumItalic';
src: url('../fonts/Rowan-MediumItalic.woff2') format('woff2'),
url('../fonts/Rowan-MediumItalic.woff') format('woff'),
url('../fonts/Rowan-MediumItalic.ttf') format('truetype');
font-weight: 500;
font-display: swap;
font-style: italic;
}
@font-face {
font-family: 'Rowan-Semibold';
src: url('../fonts/Rowan-Semibold.woff2') format('woff2'),
url('../fonts/Rowan-Semibold.woff') format('woff'),
url('../fonts/Rowan-Semibold.ttf') format('truetype');
font-weight: 600;
font-display: swap;
font-style: normal;
}
@font-face {
font-family: 'Rowan-SemiboldItalic';
src: url('../fonts/Rowan-SemiboldItalic.woff2') format('woff2'),
url('../fonts/Rowan-SemiboldItalic.woff') format('woff'),
url('../fonts/Rowan-SemiboldItalic.ttf') format('truetype');
font-weight: 600;
font-display: swap;
font-style: italic;
}
@font-face {
font-family: 'Rowan-Bold';
src: url('../fonts/Rowan-Bold.woff2') format('woff2'),
url('../fonts/Rowan-Bold.woff') format('woff'),
url('../fonts/Rowan-Bold.ttf') format('truetype');
font-weight: 700;
font-display: swap;
font-style: normal;
}
@font-face {
font-family: 'Rowan-BoldItalic';
src: url('../fonts/Rowan-BoldItalic.woff2') format('woff2'),
url('../fonts/Rowan-BoldItalic.woff') format('woff'),
url('../fonts/Rowan-BoldItalic.ttf') format('truetype');
font-weight: 700;
font-display: swap;
font-style: italic;
}
/**
* This is a variable font
* You can control variable axes as shown below:
* font-variation-settings: wght 700.0;
*
* available axes:
'wght' (range from 300.0 to 700.0
*/
@font-face {
font-family: 'Rowan-Variable';
src: url('../fonts/Rowan-Variable.woff2') format('woff2'),
url('../fonts/Rowan-Variable.woff') format('woff'),
url('../fonts/Rowan-Variable.ttf') format('truetype');
font-weight: 300 700;
font-display: swap;
font-style: normal;
}
/**
* This is a variable font
* You can control variable axes as shown below:
* font-variation-settings: wght 700.0;
*
* available axes:
'wght' (range from 300.0 to 700.0
*/
@font-face {
font-family: 'Rowan-VariableItalic';
src: url('../fonts/Rowan-VariableItalic.woff2') format('woff2'),
url('../fonts/Rowan-VariableItalic.woff') format('woff'),
url('../fonts/Rowan-VariableItalic.ttf') format('truetype');
font-weight: 300 700;
font-display: swap;
font-style: italic;
}

Some files were not shown because too many files have changed in this diff Show more