Migrating from hand-written HTML to Jekyll to use shared layout code.

master
James T. Martin 2020-02-06 15:34:02 -08:00
parent d519ba9a7c
commit 84d29ceb8d
16 changed files with 438 additions and 410 deletions

8
.editorconfig Normal file
View File

@ -0,0 +1,8 @@
root = true
[*]
indent_style = space
indent_size = 2
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

7
.gitignore vendored
View File

@ -1 +1,8 @@
# Jekyll files
_site/
.sass-cache/
.jekyll-cache/
.jekyll-metadata
# Emacs backup files
*~ *~

4
Gemfile Normal file
View File

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

72
Gemfile.lock Normal file
View File

@ -0,0 +1,72 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
colorator (1.1.0)
concurrent-ruby (1.1.5)
em-websocket (0.5.1)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
eventmachine (1.2.7)
ffi (1.12.2)
forwardable-extended (2.6.0)
http_parser.rb (0.6.0)
i18n (1.8.2)
concurrent-ruby (~> 1.0)
jekyll (4.0.0)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (>= 0.9.5, < 2)
jekyll-sass-converter (~> 2.0)
jekyll-watch (~> 2.0)
kramdown (~> 2.1)
kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
mercenary (~> 0.3.3)
pathutil (~> 0.9)
rouge (~> 3.0)
safe_yaml (~> 1.0)
terminal-table (~> 1.8)
jekyll-last-modified-at (1.2.1)
jekyll (>= 3.7, < 5.0)
posix-spawn (~> 0.3.9)
jekyll-sass-converter (2.1.0)
sassc (> 2.0.1, < 3.0)
jekyll-sitemap (1.4.0)
jekyll (>= 3.7, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
kramdown (2.1.0)
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.3)
listen (3.2.1)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.3.6)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
posix-spawn (0.3.13)
public_suffix (4.0.3)
rb-fsevent (0.10.3)
rb-inotify (0.10.1)
ffi (~> 1.0)
rouge (3.15.0)
safe_yaml (1.0.5)
sassc (2.2.1)
ffi (~> 1.9)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
unicode-display_width (1.6.1)
PLATFORMS
ruby
DEPENDENCIES
jekyll-last-modified-at
jekyll-sitemap
BUNDLED WITH
2.1.4

View File

@ -1,6 +1,20 @@
# jamestmartin.me # jamestmartin.me
This is the source code for my personal website, [https://jamestmartin.me](jamestmartin.me). This is the source code for my personal website, [https://jamestmartin.me](jamestmartin.me).
## Installation
This project is built using [https://jekyllrb.com/](Jekyll), a static site generator.
To install this website, you must first [https://jekyllrb.com/docs/installation/](install Jekyll).
Next, install all necessary modules with `bundle exec`.
To build the site, run `bundle exec jekyll build`.
To rebuild the site continuously as updates are made,
run `bundle exec jekyll build --watch`.
The web root for the website will be `_site/`.
You may point your web server there and the site will work with no additional effort.
To work on the site without installing full web server, use `bundle exec jekyll serve`.
## Code Conventions ## Code Conventions
All of my code is valid HTML5 and CSS3 according to ["https://html.spec.whatwg.org"](WHATWG standards) All of my code is valid HTML5 and CSS3 according to ["https://html.spec.whatwg.org"](WHATWG standards)

4
_config.yml Normal file
View File

@ -0,0 +1,4 @@
url: "https://jamestmartin.me"
plugins:
- jekyll-last-modified-at
- jekyll-sitemap

24
_layouts/default.html Normal file
View File

@ -0,0 +1,24 @@
<!DOCTYPE html>
<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="canonical" href="{{ site.url }}{{ page.permalink }}" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<header>
<span class="site-title">
<a href="/">James T. Martin</a>
</span>
<nav>
<ul>
<li><a href="/projects/">Projects</a>
<li><a href="/resume/">Resume</a>
<li><a href="/contact">Contact</a>
</ul>
</nav>
</header>
<main>{{ content }}</main>

54
_layouts/resume.html Normal file
View File

@ -0,0 +1,54 @@
<!DOCTYPE html>
<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="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>
<span class="tagline">{{ page.tagline }}</span>
</header>
<!-- TODO: Figure out a more semantic way to deal with the container/content divs. -->
<div class="container">
<aside>
<section id="personal-info">
<header>
<h2>Personal Info</h2>
</header>
<dl>
<div>
<dt>Email
<dd>@jtmar.me, james
</div>
<div>
<dt>Phone
<dd><a href="tel:+1-206-331-1994">(206) 331-1994</a>
</div>
<div>
<dt>Location
<dd>Renton, WA
</div>
<div>
<dt>GitHub
<dd><a href="https://github.com/jamestmartin">jamestmartin</a>
</div>
<div>
<dt>LinkedIn
<dd><a href="https://www.linkedin.com/in/jamestmartinme/">jamestmartinme</a>
</div>
</dl>
</section>
</aside>
<div class="content">{{ content }}</div>
</div>
</article>
</main>

View File

@ -1,51 +1,32 @@
<!DOCTYPE html> ---
<html lang="en-US"> layout: default
<meta charset="utf-8"> title: Contact Me
<title>Contact Me - James T. Martin</title> permalink: /contact
<link rel="stylesheet" href="/assets/style.css"> ---
<link rel="icon" type="image/png" href="/assets/favicon.png"> <article id="contact">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <header>
<h2>Contact Me</h2>
<header> </header>
<span class="site-title"> <dl>
<a href="/">James T. Martin</a> <div>
</span> <dt>Email
<dd>@jtmar.me, james
<nav> </div>
<ul> <div>
<li><a href="/projects/">Projects</a> <dt>Phone
<li><a href="/resume/">Resume</a> <dd><a href="tel:+1-206-331-1994">(206) 331-1994</a>
<li><a href="/contact">Contact</a> </div>
</ul> <div>
</nav> <dt>GitHub
</header> <dd><a href="https://github.com/jamestmartin">jamestmartin</a>
</div>
<main> <div>
<article id="contact"> <dt>LinkedIn
<header> <dd><a href="https://www.linkedin.com/in/jamestmartinme/">jamestmartinme</a>
<h2>Contact Me</h2> </div>
</header> <div>
<dl> <dt>Location
<div> <dd>Renton, WA
<dt>Email </div>
<dd>@jtmar.me, james </dl>
</div> </article>
<div>
<dt>Phone
<dd><a href="tel:+1-206-331-1994">(206) 331-1994</a>
</div>
<div>
<dt>GitHub
<dd><a href="https://github.com/jamestmartin">jamestmartin</a>
</div>
<div>
<dt>LinkedIn
<dd><a href="https://www.linkedin.com/in/jamestmartinme/">jamestmartinme</a>
</div>
<div>
<dt>Location
<dd>Renton, WA
</div>
</dl>
</article>
</main>

View File

@ -1,25 +1,6 @@
<!DOCTYPE html> ---
<html lang="en-US"> layout: default
<meta charset="utf-8"> title: James T. Martin
<title>James T. Martin</title> permalink: /
<link rel="stylesheet" href="/assets/style.css"> ---
<link rel="icon" type="image/png" href="/assets/favicon.png"> TODO: About me.
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<header>
<span class="site-title">
<a href="/">James T. Martin</a>
</span>
<nav>
<ul>
<li><a href="/projects/">Projects</a>
<li><a href="/resume/">Resume</a>
<li><a href="/contact">Contact</a>
</ul>
</nav>
</header>
<main>
TODO: About me.
</main>

View File

@ -1,72 +1,53 @@
<!DOCTYPE html> ---
<html lang="en-US"> layout: default
<meta charset="utf-8"> title: Projects
<title>Projects - James T. Martin</title> permalink: /projects/
<link rel="stylesheet" href="/assets/style.css"> ---
<link rel="icon" type="image/png" href="/assets/favicon.png"> <article id="projects">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <header>
<h2>Projects</h2>
</header>
<header> <section id="current">
<span class="site-title">
<a href="/">James T. Martin</a>
</span>
<nav>
<ul>
<li><a href="/projects/">Projects</a>
<li><a href="/resume/">Resume</a>
<li><a href="/contact">Contact</a>
</ul>
</nav>
</header>
<main>
<article id="projects">
<header> <header>
<h2>Projects</h2> <h3>Current</h3>
<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><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> </header>
<section id="current"> <ul>
<header> <li>Moderating <a href="https://reddit.com/r/ProgrammingLanguages">/r/ProgrammingLanguages</a>.
<h3>Current</h3> <li><a href="https://github.com/jamestmartin/lambda-calculus">Slowly developing the Lambda Calculus into a real programming language.</a>
<p>This is what I'm working on right now. </ul>
</header> </section>
<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><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"> <section id="previous">
<header> <header>
<h3>On Hiatus</h3> <h3>Previous</h3>
<p>I am not currently working on these things, but intend to continue them later. <p>
</header> 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):
</header>
<ul> <ul>
<li>Moderating <a href="https://reddit.com/r/ProgrammingLanguages">/r/ProgrammingLanguages</a>. <li><a href="minecraft-clone">A minecraft clone</a>, with infinite procedural worlds and multiplayer.
<li><a href="https://github.com/jamestmartin/lambda-calculus">Slowly developing the Lambda Calculus into a real programming language.</a> <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.
</ul> <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.
</section> </ul>
</section>
<section id="previous"> </article>
<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):
</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.
</ul>
</section>
</article>
</main>

View File

@ -1,47 +1,29 @@
<!DOCTYPE html> ---
<html lang="en-US"> layout: default
<meta charset="utf-8"> title: Minecraft Clone
<title>Minecraft Clone - Projects - James T. Martin</title> permalink: /projects/minecraft-clone
<link rel="stylesheet" href="/assets/style.css"> ---
<link rel="icon" type="image/png" href="/assets/favicon.png"> <article id="minecraft-clone">
<header>
<header> <h2>Minecraft Clone</h2>
<span class="site-title"> </header>
<a href="/">James T. Martin</a> <p>
</span> In 2014, while still in middle school,
I wrote a Minecraft clone using the Unity game engine and C#.
<nav> It featured:
<ul> <ul>
<li><a href="/projects/">Projects</a> <li>a first-person interactive editable world (duh),
<li><a href="/resume/">Resume</a> <li>infinite procedural map generation using simplex noise,
<li><a href="/contact">Contact</a> <li>and a custom TCP-based multiplayer protocol.
</ul> </ul>
</nav> <p>
</header> 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,
<main> and slowly replaced it with my own code as I learned how it worked.
<article id="minecraft-clone"> Ultimately, my code even produced better meshes
<header> because my algorithm understood the greater context of the game world better (like chunk boundaries).
<h2>Minecraft Clone</h2> <p>
</header> This was one of my favorite projects. I was very proud of it as a middle schooler.
<p> Disappointingly, I lost the code when I deleted my old email address,
In 2014, while still in middle school, which made me lose access to my private BitBucket repositories.
I wrote a Minecraft clone using the Unity game engine and C#. </article>
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>
</main>

View File

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

@ -1,36 +1,17 @@
<!DOCTYPE html> ---
<html lang="en-US"> layout: default
<meta charset="utf-8"> title: Resumes
<title>Resume - James T. Martin's</title> permalink: /resume/
<link rel="stylesheet" href="/assets/style.css"> ---
<link rel="icon" type="image/png" href="/assets/favicon.png"> <article>
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <header>
<h2>Resumes</h2>
<header> <p>I have different resumes for different jobs.
<span class="site-title"> </header>
<a href="/">James T. Martin</a> <ul>
</span> <li>TODO: <a href="web-developer">Web Developer</a>
<li><a href="software-developer">Software Developer</a>
<nav> <li>TODO: <a href="compiler-developer">Compiler Developer</a>
<ul> <li>TODO: <a href="general-laborer">General Laborer</a>
<li><a href="/projects/">Projects</a> </ul>
<li><a href="/resume/">Resume</a> </article>
<li><a href="/contact">Contact</a>
</ul>
</nav>
</header>
<main>
<article>
<header>
<h2>Resumes</h2>
<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>TODO: <a href="compiler-developer">Compiler Developer</a>
<li>TODO: <a href="general-laborer">General Laborer</a>
</ul>
</article>
</main>

View File

@ -1,120 +1,72 @@
<!DOCTYPE html> ---
<html lang="en-US"> layout: resume
<meta charset="utf-8"> title: Software Developer
<title>James T. Martin, Software Developer</title> permalink: /resume/software-developer
<link rel="stylesheet" href="/assets/style.css"> tagline: A self-taught programmer fond of programming language theory.
<link rel="stylesheet" href="/assets/resume.css"> ---
<link rel="icon" type="image/png" href="/assets/favicon.png"> <section id="experience">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <header>
<h2>Experience</h2>
</header>
<main> <section id="pld-community" class="experience">
<article class="resume">
<header> <header>
<h1>James T. Martin</h1> <h3><a href="https://proglangdesign.net">Programming Language Design Community</a></h3>
<span class="tagline">A self-taught programmer fond of programming language theory.</span> <span class="experience-duration"><time datetime="2018-06">June 2018</time> onward</span>
</header> </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 <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>
</ul>
</section>
<!-- TODO: Figure out a more semantic way to deal with the container/content divs. --> <section id="hazen-robotics" class="experience">
<div class="container"> <header>
<aside> <h3>Hazen Robotics Club</h3>
<section id="personal-info"> </header>
<header> <ul>
<h2>Personal Info</h2> <li>Mentored programming at the summer robotics camp
</header> <li>Taught club members to use Java and Git
<li>Collaborated to build robot controller programs for FTC competitions
</ul>
</section>
</section>
<dl> <section id="skills">
<div> <header>
<dt>Email <h2>Skills</h2>
<dd>@jtmar.me, james </header>
</div> <ul>
<div> <li>Languages: Java 8, Haskell, HTML5/XHTML
<dt>Phone <li>Tools: Git, GitHub, continuous integration, bug tracking, unit testing, property testing
<dd><a href="tel:+1-206-331-1994">(206) 331-1994</a> <li>Administration: Debian GNU/Linux, Nginx
</div> <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>
<div> <li>Security:
<dt>Location
<dd>Renton, WA
</div>
<div>
<dt>GitHub
<dd><a href="https://github.com/jamestmartin">jamestmartin</a>
</div>
<div>
<dt>LinkedIn
<dd><a href="https://www.linkedin.com/in/jamestmartinme/">jamestmartinme</a>
</div>
</dl>
</section>
</aside>
<div class="content">
<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 <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>
</ul>
</section>
<section id="hazen-robotics" class="experience">
<header>
<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
</ul>
</section>
</section>
<section id="skills">
<header>
<h2>Skills</h2>
</header>
<ul> <ul>
<li>Languages: Java 8, Haskell, HTML5/XHTML <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>Tools: Git, GitHub, continuous integration, bug tracking, unit testing, property testing <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
<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> </ul>
</section> </ul>
</section>
<section id="education"> <section id="education">
<header> <header>
<h2>Education</h2> <h2>Education</h2>
</header> </header>
<section id="hazen" class="experience"> <section id="hazen" class="experience">
<header> <header>
<h3><a href="https://hazen.rentonschools.us/">Hazen High School</a></h3> <h3><a href="https://hazen.rentonschools.us/">Hazen High School</a></h3>
<span class="experience-duration"> <span class="experience-duration">
<time datetime="2015-09-02">2015</time> <time datetime="2015-09-02">2015</time>
to <time datetime="2019-06-13">2019</time> to <time datetime="2019-06-13">2019</time>
</span> </span>
</header> </header>
<ul> <ul>
<li>Recieved OSHA 10 certification. <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 John Philip Sousa award in 2019.
</ul> </ul>
</section> </section>
</section> </section>
</div>
</div>
</article>
</main>

View File

@ -1,2 +1,4 @@
User-agent: * User-agent: *
Disallow: Disallow:
Host: jamestmartin.me
Sitemap: https://jamestmartin.me/sitemap.xml