Tons of old stuff I forgot to commit, plus work on my resume.

master
James T. Martin 2020-02-24 22:01:12 -08:00
parent 84d29ceb8d
commit 97243b566e
17 changed files with 162 additions and 134 deletions

View File

@ -1,4 +1,5 @@
source "https://rubygems.org"
gem "jekyll-assets"
gem "jekyll-last-modified-at"
gem "jekyll-sitemap"

View File

@ -9,8 +9,11 @@ GEM
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
eventmachine (1.2.7)
fastimage (1.8.1)
addressable (~> 2.3, >= 2.3.5)
ffi (1.12.2)
forwardable-extended (2.6.0)
hike (1.2.3)
http_parser.rb (0.6.0)
i18n (1.8.2)
concurrent-ruby (~> 1.0)
@ -29,6 +32,14 @@ GEM
rouge (~> 3.0)
safe_yaml (~> 1.0)
terminal-table (~> 1.8)
jekyll-assets (1.0.0)
fastimage (~> 1.6)
jekyll (>= 2)
mini_magick (~> 4.1)
sass (~> 3.2)
sprockets (~> 2.10)
sprockets-helpers
sprockets-sass
jekyll-last-modified-at (1.2.1)
jekyll (>= 3.7, < 5.0)
posix-spawn (~> 0.3.9)
@ -46,25 +57,45 @@ GEM
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.3.6)
mini_magick (4.10.1)
multi_json (1.14.1)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
posix-spawn (0.3.13)
public_suffix (4.0.3)
rack (1.6.12)
rb-fsevent (0.10.3)
rb-inotify (0.10.1)
ffi (~> 1.0)
rouge (3.15.0)
safe_yaml (1.0.5)
sass (3.7.4)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
sassc (2.2.1)
ffi (~> 1.9)
sprockets (2.12.5)
hike (~> 1.2)
multi_json (~> 1.0)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
sprockets-helpers (1.2.1)
sprockets (>= 2.2)
sprockets-sass (1.3.1)
sprockets (~> 2.0)
tilt (~> 1.1)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
tilt (1.4.1)
unicode-display_width (1.6.1)
PLATFORMS
ruby
DEPENDENCIES
jekyll-assets
jekyll-last-modified-at
jekyll-sitemap

View File

@ -1,4 +1,13 @@
url: "https://jamestmartin.me"
plugins:
- jekyll-assets
- jekyll-last-modified-at
- jekyll-sitemap
assets:
destination: "/assets"
compression: true
css_compressor: scss
sources:
- assets/css
- assets/images

View File

@ -2,8 +2,8 @@
<html lang="en-US">
<meta charset="utf-8">
<title>{{ page.title }}</title>
<link rel="stylesheet" href="/assets/style.css">
<link rel="icon" type="image/png" href="/assets/favicon.png">
<link rel="stylesheet" href="/assets/css/style.css">
<link rel="icon" type="image/png" href="/assets/images/favicon.png">
<link rel="canonical" href="{{ site.url }}{{ page.permalink }}" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">

View File

@ -2,16 +2,16 @@
<html lang="en-US">
<meta charset="utf-8">
<title>James T. Martin, {{ page.title }}</title>
<link rel="stylesheet" href="/assets/style.css">
<link rel="stylesheet" href="/assets/resume.css">
<link rel="icon" type="image/png" href="/assets/favicon.png">
<link rel="stylesheet" href="/assets/css/style.css">
<link rel="stylesheet" href="/assets/css/resume.css">
<link rel="icon" type="image/png" href="/assets/images/favicon.png">
<link rel="canonical" href="{{ site.url }}{{ page.permalink }}" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<main>
<article class="resume">
<header>
<h1>James T. Martin, {{ page.resumeName }}</h1>
<h1>James T. Martin, {{ page.title }}</h1>
<span class="tagline">{{ page.tagline }}</span>
</header>

View File

@ -26,11 +26,12 @@ h2, h3 {
display: flex;
flex-direction: row-reverse;
flex-wrap: wrap;
justify-content: space-between;
justify-content: space-evenly;
}
aside {
flex: 1 1 content;
flex: 1 1 auto;
width: 100%;
padding: 20px 40px;

View File

Before

Width:  |  Height:  |  Size: 978 B

After

Width:  |  Height:  |  Size: 978 B

BIN
assets/images/photo.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

BIN
assets/images/photo.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@ -3,4 +3,23 @@ layout: default
title: James T. Martin
permalink: /
---
TODO: About me.
<aside>
<picture>
<source type="image/webp" srcset="/assets/images/photo.webp">
<source type="image/jpeg" srcset="/assets/images/photo.jpg">
<img alt="A photo of me." src="/assets/images/photo.jpg">
</picture>
</aside>
<p>
My name is James. I am a programmer from Renton, Washington.
I additionally serve as an administrator in <a href="https://proglangdesign.net">the programming language design community</a>.
I have been programming since I was 7 years old.
</p>
<p>
I am fascinated by languages: human, computer, mathematical, and musical.
I love abstractions, but try to keep it simple and not get carried away with them.
</p>
<p>
I don't have much to say about myself; I'm stil ltrying to figure out who I am in life.
You can check out <a href="/projects/">a few of the things I did in the past</a>.
</p>

View File

@ -14,40 +14,25 @@ permalink: /projects/
<p>This is what I'm working on right now.
</header>
<ul>
<li>Moderating <a href="https://discord.gg/4Kjt3ZE">the Programming Language Design Discord server</a>, which I co-founded.
<li><a href="https://proglangdesign.net">proglangdesign.net</a>, the programming language design community's website.
<li><a href="https://github.com/proglangdesign/matrix.proglangdesign.net">matrix.proglangdesign.net</a>, a bridge between the programming language design IRC channel and Discord server via Matrix.
<li>I co-founded and moderate <a href="https://discord.gg/4Kjt3ZE">the /r/ProgrammingLanguages Discord server</a>.
<li>I rewrote and now maintain <a href="https://proglangdesign.net">proglangdesign.net</a>, the programming language design community website.
<li>I set up and run <a href="https://github.com/proglangdesign/matrix.proglangdesign.net">matrix.proglangdesign.net</a>, a bridge between the programming language design IRC channel and Discord server via Matrix.
<li><a href="https://github.com/jamestmartin/screeps-bot-piet">screeps-bot-piet</a>,
my AI for the MMO RTS for programmers, Screeps.
</ul>
</section>
<section id="hiatus">
<header>
<h3>On Hiatus</h3>
<p>I am not currently working on these things, but intend to continue them later.
</header>
<ul>
<li>Moderating <a href="https://reddit.com/r/ProgrammingLanguages">/r/ProgrammingLanguages</a>.
<li><a href="https://github.com/jamestmartin/lambda-calculus">Slowly developing the Lambda Calculus into a real programming language.</a>
</ul>
</section>
<section id="previous">
<header>
<h3>Previous</h3>
<p>
I have worked on many things over the years.
Most of them have been lost to time; many, I've forgotten about entirely.
I learned to keep backups the hard way.
Here are some of the highlights (that I can remember):
Unfortunately, I had to learn to keep backups the hard way, so all of my pre-2016 code has been lost.
</header>
<ul>
<li><a href="minecraft-clone">A minecraft clone</a>, with infinite procedural worlds and multiplayer.
<li><a href="the-mining-dead">The Mining Dead</a>, a Fallout-themed zombie apocalypse Minecraft server, based on a custom modpack and a ton of custom code.
<li><a href="https://scratch.mit.edu/users/zeusoflightning/">Scratch projects</a> from elementary school, because why not? Man, I've come a <em>long</em> way as a programmer since then.
<li>In elementary school, I made <a href="https://scratch.mit.edu/users/zeusoflightning/">Scratch projects</a>. I've come a <em>long</em> way since then.
<li>In middle school, I ran The Mining Dead, a Fallout-themed zombie apocalypse Minecraft server. I learned Java by writing custom plugins for it.
<li>After that, I wrote an unnamed minecraft clone, with infinite procedural worlds and online multiplayer, written in C# using the Unity game engine.
</ul>
</section>
</article>

View File

@ -1,29 +0,0 @@
---
layout: default
title: Minecraft Clone
permalink: /projects/minecraft-clone
---
<article id="minecraft-clone">
<header>
<h2>Minecraft Clone</h2>
</header>
<p>
In 2014, while still in middle school,
I wrote a Minecraft clone using the Unity game engine and C#.
It featured:
<ul>
<li>a first-person interactive editable world (duh),
<li>infinite procedural map generation using simplex noise,
<li>and a custom TCP-based multiplayer protocol.
</ul>
<p>
I wrote all of the code myself, from scratch, except for one thing: the mesh generation.
For that, I began with a mesh generator and optimizer someone else wrote,
and slowly replaced it with my own code as I learned how it worked.
Ultimately, my code even produced better meshes
because my algorithm understood the greater context of the game world better (like chunk boundaries).
<p>
This was one of my favorite projects. I was very proud of it as a middle schooler.
Disappointingly, I lost the code when I deleted my old email address,
which made me lose access to my private BitBucket repositories.
</article>

View File

@ -1,55 +0,0 @@
---
layout: default
title: The Mining Dead
permalink: /projects/the-mining-dead
---
<article id="the-mining-dead">
<header>
<h2>The Mining Dead</h2>
<p>This page is a work in progress.
<p>
This is also from a very long time ago (2012), so my recall is pretty poor,
which makes it especially difficult to write this article.
</header>
<p>
The Mining Dead was a series of loosely Fallout-themed Minecraft zombie apocalyse servers,
featuring high spawns, difficult zombies, radiation, solar flares, decayed cities,
a desert world generation without trees, crops, animals, grass, or dirt,
custom player ranks based on zombie kills, a special radio chat system,
a custom Technic Platform modpack, and a lot of rotten flesh.
Among other things.
<p>
Aside from being some of the most fun I've had in my life,
my takeover of the server's administration and codebase in 2012
was what kickstarted my programming career and love for Debian GNU/Linux.
I would not be the person I am today without it.
<p>
This is my loose attempt at a server chronology.
This was all a long time ago, so I'm mixing up the order of things a lot.
<ul>
<li>The original server was founded by Skuli_Steinulf in beta 1.8.
<li>
The Tekkit Classic server was founded by Skuli.
The server had three worlds (inventories were not shared):
<ul>
<li>The Outlands: The conventional Mining Dead experience.
<li>The Frontier: A zombie apocalyse world with normal terrain generation and no radiation.
<li>Medieval: A standard Tekkit Classic world.
</ul>
<li>A short-lived Tekkit Lite server or something might've been in here?
<li>Skuli had early access to the Technic Platform. He creates a custom modpack for the server.
<li>
Skuli simultaneously founds a vanilla server,
and another server using the custom modpack featuring the Cogs of the Machine mod
instead of more conventional high-tech mods like IndustrialCraft 2.
<li>
Skuli abruptly retires from maintaining The Mining Dead.
I had no programming experience and no experience with running Minecraft servers,
but I took over anyway. I learn as I go.
<li>
TODO: The rest of the chronology, including my multiple servers, the DJ incident,
Skuli's second attempt and the ice worlds, the various attempts to succeed me,
Skuli's later servers, other servers I made, and Obamallama's servers.
</ul>
</article>

View File

@ -9,8 +9,8 @@ permalink: /resume/
<p>I have different resumes for different jobs.
</header>
<ul>
<li>TODO: <a href="web-developer">Web Developer</a>
<li><a href="software-developer">Software Developer</a>
<li><a href="web-developer">Web Developer</a>
<li>WIP: <a href="software-developer">Software Developer</a>
<li>TODO: <a href="compiler-developer">Compiler Developer</a>
<li>TODO: <a href="general-laborer">General Laborer</a>
</ul>

View File

@ -1,7 +1,7 @@
---
layout: resume
title: Software Developer
permalink: /resume/software-developer
permalink: /resume/software-developer
tagline: A self-taught programmer fond of programming language theory.
---
<section id="experience">
@ -15,11 +15,11 @@ tagline: A self-taught programmer fond of programming language theory.
<span class="experience-duration"><time datetime="2018-06">June 2018</time> onward</span>
</header>
<ul>
<li>Led redesign of <a href="https://proglangdesign.net">the website</a>
<li>Automated the generation of <a href="https://proglangdesign.net/#projects">the community projects list</a> using Jekyll
<li>Led redesign of <a href="https://proglangdesign.net">the website</a>.
<li>Automated the generation of <a href="https://proglangdesign.net/#projects">the community projects list</a> using Jekyll.
<li><a href="https://github.com/proglangdesign/matrix.proglangdesign.net">Bridged</a>
the <a href="https://discord.gg/4Kjt3ZE">Discord</a> and <a href="https://irc.lc/freenode/proglangdesign">Freenode</a> sub-communities via <a href="https://matrix.org">Matrix</a>
<li>Co-founded the Discord sub-community; moderated it and <a href="https://reddit.com/r/ProgrammingLanguages">/r/ProgrammingLanguages</a>
the <a href="https://discord.gg/4Kjt3ZE">Discord</a> and <a href="https://irc.lc/freenode/proglangdesign">Freenode</a> sub-communities via Matrix.
<li>Co-founded the Discord sub-community; moderated it and <a href="https://reddit.com/r/ProgrammingLanguages">/r/ProgrammingLanguages</a>.
</ul>
</section>
@ -28,9 +28,9 @@ tagline: A self-taught programmer fond of programming language theory.
<h3>Hazen Robotics Club</h3>
</header>
<ul>
<li>Mentored programming at the summer robotics camp
<li>Taught club members to use Java and Git
<li>Collaborated to build robot controller programs for FTC competitions
<li>Mentored programming at the summer robotics camp.
<li>Taught club members to use Java and Git.
<li>Collaborated to build robot controller programs for FTC competitions.
</ul>
</section>
</section>
@ -40,15 +40,9 @@ tagline: A self-taught programmer fond of programming language theory.
<h2>Skills</h2>
</header>
<ul>
<li>Languages: Java 8, Haskell, HTML5/XHTML
<li>Tools: Git, GitHub, continuous integration, bug tracking, unit testing, property testing
<li>Languages: Java 8, Haskell, HTML5/XHTML, TypeScript, JavaScript, Agda
<li>Tools: Git, GitHub, continuous integration, bug tracking, unit testing, formal verification
<li>Administration: Debian GNU/Linux, Nginx
<li>APIs: <abbr title="Representational State Transfer">REST</abbr>, JSON, JSON Schema, JSON-LD, <abbr title="Hypermedia as the Engine of Application State">HATEOAS</abbr>
<li>Security:
<ul>
<li><abbr title="Transport Layer Security">TLS</abbr>: <a href="https://letsencrypt.org">Let's Encrypt</a>, <a href="https://www.ssllabs.com/">SSL Labs</a>, DNS <abbr title="Certification Authority Authorization">CAA</abbr>, <abbr title="HTTP Strict Transport Security">HSTS</abbr> deployment
<li>Web: <abbr title="Cross-Site Scripting">XSS</abbr> prevention, <abbr title="Cross-Site Request Forgery">CSRF</abbr> prevention, <abbr title="Content Security Policy">CSP</abbr>, input validation, SQL injection prevention
</ul>
</ul>
</section>
@ -66,7 +60,7 @@ tagline: A self-taught programmer fond of programming language theory.
</header>
<ul>
<li>Recieved OSHA 10 certification.
<li>Member of marching, symphonic, and jazz bands; recieved John Philip Sousa award in 2019.
<li>Member of marching, symphonic, and jazz bands; recieved Sousa award in 2019.
</ul>
</section>
</section>

72
resume/web-developer.html Normal file
View File

@ -0,0 +1,72 @@
---
layout: resume
title: Web Developer
permalink: /resume/web-developer
---
<section id="experience">
<header>
<h2>Experience</h2>
</header>
<section id="pld-community" class="experience">
<header>
<h3><a href="https://proglangdesign.net">Programming Language Design Community</a></h3>
<span class="experience-duration"><time datetime="2018-06">June 2018</time> onward</span>
</header>
<ul>
<li>Led redesign of <a href="https://proglangdesign.net">the website</a>.
<li>Automated the generation of <a href="https://proglangdesign.net/#projects">the community projects list</a> using Jekyll.
<li><a href="https://github.com/proglangdesign/matrix.proglangdesign.net">Bridged</a>
the <a href="https://discord.gg/4Kjt3ZE">Discord</a> and <a href="https://irc.lc/freenode/proglangdesign">Freenode</a> sub-communities via Matrix.
<li>Co-founded the Discord sub-community; moderated it and <a href="https://reddit.com/r/ProgrammingLanguages">/r/ProgrammingLanguages</a>.
</ul>
</section>
<section id="hazen-robotics" class="experience">
<header>
<h3>Hazen Robotics Club</h3>
</header>
<ul>
<li>Mentored programming at the summer robotics camp for 90 hours.
<li>Taught club members to use Java and Git.
<li>Collaborated to build robot controller programs for <a href="https://www.firstinspires.org/robotics/ftc">FIRST competitions</a>.
</ul>
</section>
</section>
<section id="skills">
<header>
<h2>Skills</h2>
</header>
<ul>
<li>Languages: HTML5/XHTML, TypeScript, JavaScript, Java 8, Haskell, Agda
<li>Tools: Git, GitHub, continuous integration, bug tracking, unit testing, formal verification
<li>Administration: Debian GNU/Linux, Nginx
<li>APIs: <abbr title="Representational State Transfer">REST</abbr>, JSON, JSON Schema, JSON-LD, <abbr title="Hypermedia as the Engine of Application State">HATEOAS</abbr>
<li>Security:
<ul>
<li><abbr title="Transport Layer Security">TLS</abbr>: <a href="https://letsencrypt.org">Let's Encrypt</a>, <a href="https://www.ssllabs.com/">SSL Labs</a>, DNS <abbr title="Certification Authority Authorization">CAA</abbr>, <abbr title="HTTP Strict Transport Security">HSTS</abbr> deployment
<li>Web: <abbr title="Cross-Site Scripting">XSS</abbr> prevention, <abbr title="Cross-Site Request Forgery">CSRF</abbr> prevention, <abbr title="Content Security Policy">CSP</abbr>, input validation, SQL injection prevention
</ul>
</ul>
</section>
<section id="education">
<header>
<h2>Education</h2>
</header>
<section id="hazen" class="experience">
<header>
<h3><a href="https://hazen.rentonschools.us/">Hazen High School</a></h3>
<span class="experience-duration">
<time datetime="2015-09-02">2015</time>
to <time datetime="2019-06-13">2019</time>
</span>
</header>
<ul>
<li>Member of marching, symphonic, and jazz bands; recieved Sousa award in 2019.
<li>Got high (4+) scores on 7 AP exams, including Computer Science (5) and Calculus AB (4).
<li>Recieved OSHA 10 certification.
</ul>
</section>
</section>