Switch to using Hugo

This commit is contained in:
NeilBrommer 2018-05-12 16:50:36 -07:00
parent 03328460ae
commit 7caf09852c
29 changed files with 462 additions and 846 deletions

29
.gitignore vendored
View file

@ -1,25 +1,4 @@
# Exclude dependency files
# Use .gitkeep to force git to keep the empty folders
bootstrap/*
!bootstrap/.gitkeep
font-awesome/*
!font-awesome/.gitkeep
js/jquery-3.2.1.js
js/popper.js
!js/.gitkeep
# Visual Studio Code
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
info\.php
PHPMailer/
\.vscode/
lib/
static/lib/
static/info.php
.vscode/
public/

View file

@ -1,11 +1,5 @@
# Personal Website
The files for my personal site at [neilbrommer.com](http://neilbrommer.com).
The files for my personal site at [neilbrommer.com](https://neilbrommer.com).
Made using the pre-compiled version of
[Bootstrap 4.0](https://getbootstrap.com/) placed in a folder called `bootstrap`
with its dependencies, [jQuery](https://jquery.com/) and
[popper.js](https://popper.js.org/), placed in the `js` folder.
[Font Awesome](http://fontawesome.io/) is used for icons and placed in a folder
called `font-awesome`.
Built using [Hugo](https://gohugo.io/), [Bootstrap 4](https://getbootstrap.com/) and [FontAwesome 5](https://fontawesome.com/).

6
archetypes/default.md Normal file
View file

@ -0,0 +1,6 @@
+++
title = "{{ replace .Name '-' ' ' | title }}"
date = {{ .Date }}
draft = true
+++

6
config.toml Normal file
View file

@ -0,0 +1,6 @@
languageCode = "en-us"
title = "Neil Brommer"
baseURL = "https://neilbrommer.com/"
# enableGitInfo = true
enableRobotsTXT = true
googleAnalytics = "UA-105178749-1"

View file

@ -1,149 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Neil Brommer</title>
<meta name="description" content="Neil Brommer - Contact">
<meta name="author" content="Neil Brommer">
<link rel="icon" href="favicon.ico">
<!-- theme colors -->
<meta name="theme-color" content="#3f51b5">
<!-- Chrome, Firefox OS and Opera -->
<meta name="msapplication-navbutton-color" content="#3f51b5">
<!-- Windows Phone -->
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<!-- iOS -->
<link href="lib/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- Bootstrap -->
<!-- font awesome -->
<script defer src="/lib/fontawesome/svg-with-js/js/fa-brands.js"></script>
<script defer src="/lib/fontawesome/svg-with-js/js/fa-regular.js"></script>
<script defer src="/lib/fontawesome/svg-with-js/js/fa-solid.js"></script>
<script src="/lib/fontawesome/svg-with-js/js/fontawesome.js"></script>
<link href="css/main.css" rel="stylesheet">
<!-- Custom styles for this site -->
<!-- Google Analytics -->
<script>
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date(); a = s.createElement(o),
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-105178749-1', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- load at top for aetting the theme -->
<script src="lib/jquery/jquery-3.2.1.js"></script>
<script src="lib/popper/popper.js"></script>
<script src="lib/bootstrap/js/bootstrap.min.js"></script>
<script src="js/main.js"></script>
<script src="js/contact.js"></script>
<!-- Fixed navbar -->
<nav id="topnav" class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
<div class="container">
<a class="navbar-brand" href="/">Neil Brommer</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav mr-auto">
<li class="nav-item" id="homelnk">
<a class="nav-link" href=".">Home</a>
</li>
<li class="nav-item" id="resumelnk">
<a class="nav-link" href="resume.html">Resume</a>
</li>
<li class="nav-item" id="linkslnk">
<a class="nav-link" href="links.html">Links</a>
</li>
<li class="nav-item active" id="contactlnk">
<a class="nav-link" href="contact.html">Contact</a>
</li>
</ul>
<ul class="navbar-nav">
<li class="nav-item" id="githublnk">
<a class="nav-link" href="https://github.com/NeilBrommer" target="_blank" title="GitHub">
<span class="fab fa-github-alt"></span>
</a>
</li>
<li class="nav-item" id="linkedinlnk">
<a class="nav-link" href="https://www.linkedin.com/in/neilbrommer/" target="_blank" title="LinkedIn">
<span class="fab fa-linkedin"></span>
</a>
</li>
<li class="nav-item ml-md-2">
<button id="btnTheme" type="button" class="btn btn-dark" aria-pressed="false" autocomplete="off">
<span id="themeText" class="fas fa-moon"></span>
</button>
</li>
</ul>
</div>
</div>
</nav>
<!-- Main component for a primary marketing message or call to action -->
<div class="container">
<div class="jumbotron">
<h1>Contact</h1>
<div id="successAlert" class="alert alert-success" role="alert" style="display: none;">Message sent successfully!</div>
<div id="errorAlert" class="alert alert-danger" role="alert" style="display: none"></div>
<form id="contactForm">
<div class="form-group">
<label for="nameField">Name
<span class="required">*</span>
</label>
<input id="nameField" type="text" required="required" class="form-control">
</div>
<div class="form-group">
<label for="emailField">Email Address
<span class="required">*</span>
</label>
<input id="emailField" type="email" required="required" class="form-control">
</div>
<div class="form-group">
<label for="subjectField">Subject</label>
<input id="subjectField" type="text" class="form-control">
</div>
<div class="form-group">
<label for="messageField">Message
<span class="required">*</span>
</label>
<textarea id="messageField" rows="5" required="required" class="form-control"></textarea>
</div>
<div class="form-group captcha">
<div class="g-recaptcha" data-sitekey="6LfFATcUAAAAAJ_YZ3qvYWqrtOUHmCItq-azzV3x"></div>
</div>
<button id="contactSubmit" type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
<!-- Google reCAPTCHA -->
<script src='https://www.google.com/recaptcha/api.js'></script>
</body>
</html>

11
content/_index.md Normal file
View file

@ -0,0 +1,11 @@
+++
title = "Neil Brommer"
date = 2018-05-12T09:37:22-07:00
draft = false
[menu]
[menu.main]
title = "Home"
weight = -100
+++
Computer Science student at [Eastern Washington University](https://www.ewu.edu/), graduating in spring 2018.

48
content/contact.md Normal file
View file

@ -0,0 +1,48 @@
+++
title = "Contact"
date = 2018-05-12T11:58:21-07:00
draft = false
[menu]
[menu.main]
weight = -70
+++
<div class="jumbotron">
<h1>Contact</h1>
<div id="successAlert" class="alert alert-success" role="alert" style="display: none;">Message sent successfully!</div>
<div id="errorAlert" class="alert alert-danger" role="alert" style="display: none"></div>
<form id="contactForm">
<div class="form-group">
<label for="nameField">Name
<span class="required">\*</span>
</label>
<input id="nameField" type="text" required="required" class="form-control">
</div>
<div class="form-group">
<label for="emailField">Email Address
<span class="required">\*</span>
</label>
<input id="emailField" type="email" required="required" class="form-control">
</div>
<div class="form-group">
<label for="subjectField">Subject</label>
<input id="subjectField" type="text" class="form-control">
</div>
<div class="form-group">
<label for="messageField">Message
<span class="required">\*</span>
</label>
<textarea id="messageField" rows="5" required="required" class="form-control"></textarea>
</div>
<div class="form-group captcha">
<div class="g-recaptcha" data-sitekey="6LfFATcUAAAAAJ_YZ3qvYWqrtOUHmCItq-azzV3x"></div>
</div>
<button id="contactSubmit" type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
<script src='https://www.google.com/recaptcha/api.js'></script>
<script src="/js/contact.js"></script>

17
content/links.md Normal file
View file

@ -0,0 +1,17 @@
+++
title = "Links"
date = 2018-05-12T14:28:21-07:00
draft = false
[menu]
[menu.main]
weight = -80
+++
<div class="jumbotron">
<h1>Links</h1>
<p>
A list of links (mostly to articles) that I find useful or interesting.
</p>
</div>
{{< linkCardList "data/links.json" >}}

92
content/resume.md Normal file
View file

@ -0,0 +1,92 @@
+++
title = "Resume"
date = 2018-05-12T11:48:46-07:00
draft = false
[menu]
[menu.main]
weight = -90
+++
<div class="jumbotron">
<h1>Resume</h1>
<p>
Work history, references, and more contact information available on request via the
<a href="contact.html">contact page</a>.
</p>
<p>
PDF version available
<a href="NeilBrommer-WebResume.pdf">here</a>.
</p>
</div>
<h2>Education</h2>
<p>
<div class="row">
<div class="col-sm-8">
<b>Eastern Washington University</b>
</div>
<div class="col-sm-4">
<b class="float-sm-right">Cheney, Washington</b>
</div>
</div>
<div class="row">
<div class="col-sm-8">
<i>Bachelor of Science in Computer Science, 3.44 GPA</i>
</div>
<div class="col-sm-4">
<i class="float-sm-right">2014 &ndash; present</i>
</div>
</div>
Planning to graduate in spring 2018
</p>
<p>
<div class="row">
<div class="col-sm-8">
<b>Spokane Community College</b>
</div>
<div class="col-sm-4">
<b class="float-sm-right">Spokane, Washington</b>
</div>
</div>
<div class="row">
<div class="col-sm-8">
<i>Associate of Applied Science in Network Design and Administration, 3.13 GPA</i>
</div>
<div class="col-sm-4">
<i class="float-sm-right">2011 &ndash; 2013</i>
</div>
</div>
Networking with Cisco switches and routers, with basic Windows and Linux administration
</p>
<h2>Relevant Coursework</h2>
<ul class="row">
<li class="col-md-6">Object Oriented Programming &ndash; Java, C#</li>
<li class="col-md-6">Object-Oriented design patterns</li>
<li class="col-md-6">GUI Programming &ndash; JavaFX, WinForms, WPF</li>
<li class="col-md-6">Relational Databases &ndash; SQL</li>
<li class="col-md-6">Web Development &ndash; HTML, CSS, JavaScript, JQuery, PHP, WordPress</li>
<li class="col-md-6">Operating Systems &ndash; C, Unix, threads and processes, memory management</li>
<li class="col-md-6">Software Engineering</li>
<li class="col-md-6">Digital Circuits &ndash; Digital logic</li>
<li class="col-md-6">Network Programming &ndash; Network sockets, binary protocols</li>
<li class="col-md-6">Network Administration &ndash; routing, switching, WAN, VoIP</li>
<li class="col-md-6">Linux Administration &ndash; Basic system maintenance, Email, DNS</li>
<li class="col-md-6">Windows Administration &ndash; MS Exchange, Active Directory</li>
<li class="col-md-6">Low Level Systems &ndash; MIPS assembly, digital circuits</li>
<li class="col-md-6">PC/Server Hardware</li>
</ul>
<h2>Certifications</h2>
<p>
<div style="font-weight: bold;">CCNA</div>
<div class="row">
<div class="col-sm-8">
<i>Cisco Certified Network Administrator</i>
</div>
<div class="col-sm-4">
<i class="float-sm-right">September 2013 &ndash; 2016</i>
</div>
</div>
Ciscos second level of computer networking certifications. Focuses on designing and managing routed and switched networks.
</p>

51
data/links.json Normal file
View file

@ -0,0 +1,51 @@
[
{
"title": "Principles of Lighting and Rendering with John Carmack at QuakeCon 2013",
"description": "John Carmack talking about various 3D rendering concepts.",
"URL": "https://www.youtube.com/watch?v=IyUgHPs86XM"
},
{
"title": "Why the Flash Crash Really Matters",
"description": "An article on the flash crash of 2010 and the <a href=\"https://en.wikipedia.org/wiki/High-frequency_trading\" target=\"_blank\">high-frequency trading</a> programs that caused it.",
"URL": "http://nautil.us/issue/23/dominoes/why-the-flash-crash-really-matters"
},
{
"title": "Algorithms and Bias: Q. and A. With Cynthia Dwork",
"description": "An interview with Cynthia Dwork of Microsoft Research on how algorithms show bias and where those biases come from.",
"URL": "https://www.nytimes.com/2015/08/11/upshot/algorithms-and-bias-q-and-a-with-cynthia-dwork.html?abt=0002&abg=1"
},
{
"title": "Origin of Quake3s Fast InvSqrt() ",
"description": "An article on the inverse square root function in Quake 3 looking into how it works and its history.",
"URL": "https://www.beyond3d.com/content/articles/8/"
},
{
"title": "Real Time Rendering: An Overview for Artists",
"description": "A look at various aspects of real time 3D rendering, especially in video games.",
"URL": "https://jesshiderue4.wordpress.com/real-time-rendering-an-overview-for-artists/"
},
{
"title": "Entering the Quantum Era—How Firefox got fast again and where its going to get faster",
"description": "An article that looks at various architectural changes to Firefox in version 57 and changes planned for future versions.",
"URL": "https://hacks.mozilla.org/2017/11/entering-the-quantum-era-how-firefox-got-fast-again-and-where-its-going-to-get-faster/"
},
{
"title": "The whole web at maximum FPS: How WebRender gets rid of jank ",
"description": " An article that gives a high level description how Firefoxs new rendering engine works.",
"URL": "https://hacks.mozilla.org/2017/10/the-whole-web-at-maximum-fps-how-webrender-gets-rid-of-jank/"
},
{
"title": "Inside a super fast CSS engine: Quantum CSS (aka Stylo)",
"description": "A high level overview of how Firefoxs new CSS engine Stylo works.",
"URL": "https://hacks.mozilla.org/2017/08/inside-a-super-fast-css-engine-quantum-css-aka-stylo/"
},
{
"title": "The Judges Code",
"description": "An article on Judge William Alsup, who was the judge for the first <a href=\"https://en.wikipedia.org/wiki/Oracle_America,_Inc._v._Google,_Inc.\" target=\"_blank\"> Oracle v. Google</a> case over whether an API can be copywritten, and is now the judge for the <a href=\"http://www.businessinsider.com/google-waymo-v-uber-case-explained-2017-5\" target=\"_blank\">Waymo (Google) v. Uber</a>."
},
{
"title": "Linkedin Dark Patterns",
"description": "An in depth blog post detailing how LinkedIn used dark patterns to trick users.",
"URL": "https://schlosser.io/writing/linkedin-dark-patterns/"
}
]

59
data/projects.toml Normal file
View file

@ -0,0 +1,59 @@
[[project]]
title = "Snippets"
incomplete = true
description = "A web based tool for managing reusable pieces of code and useful programming resources"
[[project.links]]
title = "Web Client"
URL = "https://snippets.neilbrommer.com/"
[[project.links]]
title = "Documentation"
URL = "https://snippets.neilbrommer.com/documentation.html"
[[project.links]]
title = "Source Code"
URL = "https://github.com/NeilBrommer/SnippetManager"
[[project]]
title = "Start"
incomplete = false
description = "A new tab page that displays lists of links using the browser's indexedDB to store all data"
[[project.links]]
title = "Site"
URL = "https://start.neilbrommer.com/"
[[project.links]]
title = "Source Code"
URL = "https://github.com/NeilBrommer/NewTabPage"
[[project]]
title = "Picture Viewer"
incomplete = false
description = "A Windows program for viewing image files written using C# and WPF"
[[project.links]]
title = "Source Code"
URL = "https://github.com/NeilBrommer/PictureViewer"
[[project]]
title = "Website"
incomplete = false
description = "The source code for this website"
[[project.links]]
title = "Source Code"
URL = "https://github.com/NeilBrommer/Personal-Site"
[[project]]
title = "Resume"
incomplete = false
description = "My [Resume](resume)"
[[project.links]]
title = "PDF"
URL = "/NeilBrommer-WebResume.pdf"
[[project.links]]
title = "Source Code"
URL = "https://github.com/NeilBrommer/Resume"
[[project]]
title = "Auto Dark"
incomplete = false
description = "A small utility for setting/toggling the Windows 10 dark theme. Useful in combination with the Windows Task Scheduler to automatically change the theme."
[[project.links]]
title = "Source Code"
URL = "https://github.com/NeilBrommer/WindowsAutoDark"

2
data/social.toml Normal file
View file

@ -0,0 +1,2 @@
github = "https://github.com/NeilBrommer"
linkedin = "https://www.linkedin.com/in/neilbrommer/"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 818 KiB

View file

@ -1,187 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Neil Brommer</title>
<meta name="description" content="Neil Brommer - Home Page">
<meta name="author" content="Neil Brommer">
<link rel="icon" href="/favicon.ico">
<!-- theme colors -->
<!-- Chrome, Firefox OS and Opera -->
<meta name="theme-color" content="#3f51b5">
<!-- Windows Phone -->
<meta name="msapplication-navbutton-color" content="#3f51b5">
<!-- iOS -->
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<!-- Bootstrap -->
<link href="lib/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- font awesome -->
<script defer src="/lib/fontawesome/svg-with-js/js/fa-brands.js"></script>
<script defer src="/lib/fontawesome/svg-with-js/js/fa-regular.js"></script>
<script defer src="/lib/fontawesome/svg-with-js/js/fa-solid.js"></script>
<script src="/lib/fontawesome/svg-with-js/js/fontawesome.js"></script>
<!-- Custom styles for this site -->
<link href="css/main.css" rel="stylesheet">
<!-- Google Analytics -->
<script>
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date(); a = s.createElement(o),
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-105178749-1', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- load at top for aetting the theme -->
<script src="lib/jquery/jquery-3.2.1.js"></script>
<script src="lib/popper/popper.js"></script>
<script src="lib/bootstrap/js/bootstrap.min.js"></script>
<script src="js/main.js"></script>
<!-- Fixed navbar -->
<nav id="topnav" class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
<div class="container">
<a class="navbar-brand" href="/">Neil Brommer</a>
<button class="navbar-toggler mr-0 ml-auto" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav mr-auto">
<li class="nav-item active" id="homelnk">
<a class="nav-link" href="/">Home</a>
</li>
<li class="nav-item" id="resumelnk">
<a class="nav-link" href="resume.html">Resume</a>
</li>
<li class="nav-item" id="linkslnk">
<a class="nav-link" href="links.html">Links</a>
</li>
<li class="nav-item" id="contactlnk">
<a class="nav-link" href="contact.html">Contact</a>
</li>
</ul>
<ul class="navbar-nav">
<li class="nav-item" id="githublnk">
<a class="nav-link" href="https://github.com/NeilBrommer" target="_blank" title="GitHub">
<span class="fab fa-github-alt"></span>
</a>
</li>
<li class="nav-item" id="linkedinlnk">
<a class="nav-link" href="https://www.linkedin.com/in/neilbrommer/" target="_blank" title="LinkedIn">
<span class="fab fa-linkedin"></span>
</a>
</li>
<li class="nav-item ml-md-2">
<button id="btnTheme" type="button" class="btn btn-dark" aria-pressed="false" autocomplete="off">
<span id="themeText" class="fas fa-moon"></span>
</button>
</li>
</ul>
</div>
</div>
</nav>
<div class="container">
<div class="jumbotron">
<h1>Neil Brommer</h1>
<p>
Computer Science student at
<a href="https://www.ewu.edu/" target="_blank">Eastern Washington University</a>, graduating in spring 2018.
</p>
</div>
<div class="card-columns">
<div class="card">
<h4 class="card-header">Snippets</h4>
<div class="card-body">
<p class="text-danger">
<small>Incomplete</small>
</p>
<p>A web based tool for managing reusable pieces of code and useful programming resources</p>
<a class="card-link" href="https://snippets.neilbrommer.com" target="_blank">Web Client</a>
<a class="card-link" href="https://snippets.neilbrommer.com/documentation.html" target="_blank">Documentation</a>
<a class="card-link" href="https://github.com/NeilBrommer/SnippetManager" target="_blank">Source Code</a>
</div>
</div>
<div class="card">
<h4 class="card-header">Start</h4>
<div class="card-body">
<p>
A new tab page that displays lists of links using the browser's indexedDB to store all data
</p>
<a class="card-link" href="https://start.neilbrommer.com/" target="_blank">Site</a>
<a class="card-link" href="https://github.com/NeilBrommer/NewTabPage" target="_blank">Source code</a>
</div>
</div>
<div class="card">
<h4 class="card-header">Picture Viewer</h4>
<div class="card-body">
<p>
A Windows program for viewing image files. Written using
C# and WPF.
</p>
<a class="card-link" href="https://github.com/NeilBrommer/PictureViewer" target="_blank">Source Code</a>
</div>
</div>
<div class="card">
<h4 class="card-header">Website</h4>
<div class="card-body">
<p>This website</p>
<a class="card-link" href="https://github.com/NeilBrommer/Personal-Site" target="_blank">Source code</a>
</div>
</div>
<div class="card">
<h4 class="card-header">Resume</h4>
<div class="card-body">
<p>My
<a href="resume.html">resume</a>
</p>
<p>Sensitive information has been removed from this public version</p>
<a class="card-link" href="NeilBrommer-WebResume.pdf">PDF</a>
<a class="card-link" href="https://github.com/NeilBrommer/Resume" target="_blank">Source code</a>
</div>
</div>
<div class="card">
<h4 class="card-header">Auto Dark</h4>
<div class="card-body">
<p>
A small utility for setting/toggling the Windows 10 dark
theme. Useful in combination with the Windows Task
Scheduler to automatically change the theme.
</p>
<a class="card-link" href="https://github.com/NeilBrommer/WindowsAutoDark" target="_blank">Source code</a>
</div>
</div>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,10 @@
{{ partial "htmlhead" . }}
<body>
{{ partial "navbar" .}}
<div class="container">
{{.Content}}
</div>
</body>
</html>

20
layouts/index.html Normal file
View file

@ -0,0 +1,20 @@
{{ partial "htmlhead" . }}
<body>
{{ partial "navbar" . }}
<div class="container">
<div class="jumbotron">
<h1>{{ .Title }}</h1>
{{ .Content }}
</div>
<div class="card-columns">
{{ range .Site.Data.projects.project }}
{{ partial "projectCard" . }}
{{ end }}
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,42 @@
<!DOCTYPE HTML>
<html lang='{{ .Site.Language.Lang | default "en-us" }}'>
<head>
<title>{{ if eq (.Site.Title) (.Title) }}{{ .Site.Title }}{{ else }}{{ .Title }} &middot; {{ .Site.Title }}{{ end }}</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<meta name="author" content="Neil Brommer">
<link rel="icon" href="/favicon.ico">
<!-- theme colors -->
<!-- Chrome, Firefox OS and Opera -->
<meta name="theme-color" content="#3f51b5">
<!-- Windows Phone -->
<meta name="msapplication-navbutton-color" content="#3f51b5">
<!-- iOS -->
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<!-- Bootstrap -->
<link href="/lib/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- font awesome -->
<script defer src="/lib/fontawesome/svg-with-js/js/fa-brands.js"></script>
<script defer src="/lib/fontawesome/svg-with-js/js/fa-regular.js"></script>
<script defer src="/lib/fontawesome/svg-with-js/js/fa-solid.js"></script>
<script src="/lib/fontawesome/svg-with-js/js/fontawesome.js"></script>
<!-- Custom styles for this site -->
<link href="/css/main.css" rel="stylesheet">
<!-- Bootstrap core JavaScript -->
<script src="/lib/jquery/jquery-3.2.1.js"></script>
<script src="/lib/popper/popper.js"></script>
<script src="/lib/bootstrap/js/bootstrap.min.js"></script>
<!-- Custom JS -->
<script src="/js/main.js"></script>
{{ template "_internal/google_analytics_async.html" . }}
</head>

View file

@ -0,0 +1,14 @@
<div class="col-md-4 mb-3">
<div class="card full-height">
<h4 class="card-header">
<a href="{{ .URL }}" target="_blank">{{ .title }}</a>
</h4>
<div class="card-body">
{{ if isset . "description" }}
<p>{{ .description | markdownify }}</p>
{{ end }}
</div>
</div>
</div>

View file

@ -0,0 +1,47 @@
<nav id="topnav" class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
<div class="container">
<a class="navbar-brand" href="/">{{ .Site.Title }}</a>
<button class="navbar-toggler mr-0 ml-auto" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav mr-auto">
{{ $currentPage := . }}
{{ range .Site.Menus.main }}
<li class="nav-item {{if or ($currentPage.IsMenuCurrent "main" .) ($currentPage.HasMenuCurrent "main" .) }} active{{end}}">
<a class="nav-link" href="{{ .URL }}">{{.Title}}</a>
</li>
{{ end }}
</ul>
<ul class="navbar-nav">
{{ with .Site.Data.social }}
{{ with .github }}
<li class="nav-item">
<a class="nav-link" href="{{ . }}" target="_blank" title="GitHub">
<span class="fab fa-github-alt"></span>
</a>
</li>
{{ end }}
{{ with .linkedin }}
<li class="nav-item">
<a class="nav-link" href="{{ . }}" target="_blank" title="LinkedIn">
<span class="fab fa-linkedin"></span>
</a>
</li>
{{ end }}
{{ end }}
<li class="nav-item ml-md-2">
<button id="btnTheme" type="button" class="btn btn-dark" aria-pressed="false" autocomplete="off">
<span id="themeText" class="fas fa-moon"></span>
</button>
</li>
</ul>
</div>
</div>
</nav>

View file

@ -0,0 +1,20 @@
<div class="card">
<h4 class="card-header">{{ .title }}</h4>
<div class="card-body">
{{ if .incomplete }}
<p class="text-danger"><small>Incomplete</small></p>
{{ end }}
{{ if isset . "description" }}
<p>{{ .description | markdownify }}</p>
{{ end }}
{{ if isset . "links" }}
{{ range .links }}
<a class="card-link" href="{{ .URL }}" target="_blank">
{{ .title }}
</a>
{{ end }}
{{ end }}
</div>
</div>

View file

@ -0,0 +1,10 @@
{{ with .Get 0 }}
{{ $cardData := getJSON . }}
<div class="row">
{{ range $cardData }}
{{ partial "linkCard" . }}
{{ end }}
</div>
{{ end }}

View file

@ -1,284 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Neil Brommer</title>
<meta name="description" content="Neil Brommer - Links">
<meta name="author" content="Neil Brommer">
<link rel="icon" href="favicon.ico">
<!-- theme colors -->
<meta name="theme-color" content="#3f51b5">
<!-- Chrome, Firefox OS and Opera -->
<meta name="msapplication-navbutton-color" content="#3f51b5">
<!-- Windows Phone -->
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<!-- iOS -->
<link href="lib/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- Bootstrap -->
<!-- font awesome -->
<script defer src="/lib/fontawesome/svg-with-js/js/fa-brands.js"></script>
<script defer src="/lib/fontawesome/svg-with-js/js/fa-regular.js"></script>
<script defer src="/lib/fontawesome/svg-with-js/js/fa-solid.js"></script>
<script src="/lib/fontawesome/svg-with-js/js/fontawesome.js"></script>
<link href="css/main.css" rel="stylesheet">
<!-- Custom styles for this site -->
<!-- Google Analytics -->
<script>
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date(); a = s.createElement(o),
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-105178749-1', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- load at top for aetting the theme -->
<script src="lib/jquery/jquery-3.2.1.js"></script>
<script src="lib/popper/popper.js"></script>
<script src="lib/bootstrap/js/bootstrap.min.js"></script>
<script src="js/main.js"></script>
<!-- Fixed navbar -->
<nav id="topnav" class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
<div class="container">
<a class="navbar-brand" href="/">Neil Brommer</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav mr-auto">
<li class="nav-item" id="homelnk">
<a class="nav-link" href=".">Home</a>
</li>
<li class="nav-item" id="resumelnk">
<a class="nav-link" href="resume.html">Resume</a>
</li>
<li class="nav-item active" id="linkslnk">
<a class="nav-link" href="links.html">Links</a>
</li>
<li class="nav-item" id="contactlnk">
<a class="nav-link" href="contact.html">Contact</a>
</li>
</ul>
<ul class="navbar-nav">
<li class="nav-item" id="githublnk">
<a class="nav-link" href="https://github.com/NeilBrommer" target="_blank" title="GitHub">
<span class="fab fa-github-alt"></span>
</a>
</li>
<li class="nav-item" id="linkedinlnk">
<a class="nav-link" href="https://www.linkedin.com/in/neilbrommer/" target="_blank" title="LinkedIn">
<span class="fab fa-linkedin"></span>
</a>
</li>
<li class="nav-item ml-md-2">
<button id="btnTheme" type="button" class="btn btn-dark" aria-pressed="false" autocomplete="off">
<span id="themeText" class="fas fa-moon"></span>
</button>
</li>
</ul>
</div>
</div>
</nav>
<div class="container">
<div class="jumbotron">
<h1>Links</h1>
<p>
A list of links (mostly to articles) that I find useful or interesting.
</p>
</div>
<div class="row">
<div class="col-md-4 mb-3">
<div class="card full-height">
<h4 class="card-header">John Carmack at QuakeCon 2013</h4>
<div class="card-body">
<p class="card-text">
<a href="https://www.youtube.com/watch?v=IyUgHPs86XM" target="_blank">
Principles of Lighting and Rendering with John Carmack at QuakeCon 2013
</a>
</p>
<p class="card-text">
John Carmack talking about various 3D rendering concepts.
</p>
</div>
</div>
</div>
<div class="col-md-4 mb-3">
<div class="card full-height">
<h4 class="card-header">Volatility of High Frequency Trading</h4>
<div class="card-body">
<p class="card-text">
<a href="http://nautil.us/issue/23/dominoes/why-the-flash-crash-really-matters" target="_blank">
Why the Flash Crash Really Matters
</a>
</p>
<p class="card-text">
An article on the flash crash of 2010 and the
<a href="https://en.wikipedia.org/wiki/High-frequency_trading" target="_blank">high-frequency trading</a>
programs that caused it.
</p>
</div>
</div>
</div>
<div class="col-md-4 mb-3">
<div class="card full-height">
<h4 class="card-header">Algorithms and Bias</h4>
<div class="card-body">
<p class="card-text">
<a href="https://www.nytimes.com/2015/08/11/upshot/algorithms-and-bias-q-and-a-with-cynthia-dwork.html?abt=0002&abg=1" target="_blank">
Algorithms and Bias: Q. and A. With Cynthia Dwork
</a>
</p>
<p class="card-text">
An interview with Cynthia Dwork of Microsoft Research on how algorithms show bias and where those biases come from.
</p>
</div>
</div>
</div>
<div class="col-md-4 mb-3">
<div class="card full-height">
<h4 class="card-header">Quake 3s invSqrt()</h4>
<div class="card-body">
<p class="card-text">
<a href="https://www.beyond3d.com/content/articles/8/" target="_blank">
Origin of Quake3s Fast InvSqrt()
</a>
</p>
<p class="card-text">
An article on the inverse square root function in Quake 3 looking into how it works and its history.
</p>
</div>
</div>
</div>
<div class="col-md-4 mb-3">
<div class="card full-height">
<h4 class="card-header">Real Time Rendering for Artists</h4>
<div class="card-body">
<p class="card-text">
<a href="https://jesshiderue4.wordpress.com/real-time-rendering-an-overview-for-artists/" target="_blank">
Real Time Rendering: An Overview for Artists
</a>
</p>
<p class="card-text">
A look at various aspects of real time 3D rendering, especially in video games.
</p>
</div>
</div>
</div>
<div class="col-md-4 mb-3">
<div class="card full-height">
<h4 class="card-header">Improvements In Firefox 57 and beyond</h4>
<div class="card-body">
<p class="card-text">
<a href="https://hacks.mozilla.org/2017/11/entering-the-quantum-era-how-firefox-got-fast-again-and-where-its-going-to-get-faster/"
target="_blank">
Entering the Quantum Era—How Firefox got fast again and where its going to get faster
</a>
</p>
<p class="card-text">
An article that looks at various architectural changes to Firefox in version 57 and changes planned for future versions.
</p>
</div>
</div>
</div>
<div class="col-md-4 mb-3">
<div class="card full-height">
<h4 class="card-header">Firefoxs New Rendering Engine (WebRender)</h4>
<div class="card-body">
<p class="card-text">
<a href="https://hacks.mozilla.org/2017/10/the-whole-web-at-maximum-fps-how-webrender-gets-rid-of-jank/" target="_blank">
The whole web at maximum FPS: How WebRender gets rid of jank
</a>
</p>
<p class="card-text">
An article that gives a high level description how Firefoxs new rendering engine works.
</p>
</div>
</div>
</div>
<div class="col-md-4 mb-3">
<div class="card full-height">
<h4 class="card-header">Firefoxs New CSS Engine (Stylo)</h4>
<div class="card-body">
<p class="card-text">
<a href="https://hacks.mozilla.org/2017/08/inside-a-super-fast-css-engine-quantum-css-aka-stylo/" target="_blank">
Inside a super fast CSS engine: Quantum CSS (aka Stylo)
</a>
</p>
<p class="card-text">
A high level overview of how Firefoxs new CSS engine Stylo works.
</p>
</div>
</div>
</div>
<div class="col-md-4 mb-3">
<div class="card full-height">
<h4 class="card-header">Judge William Alsup</h4>
<div class="card-body">
<p class="card-text">
<a href="https://www.theverge.com/2017/10/19/16503076/oracle-vs-google-judge-william-alsup-interview-waymo-uber" target="_blank">
The Judges Code
</a>
</p>
<p class="card-text">
An article on Judge William Alsup, who was the judge for the first
<a href="https://en.wikipedia.org/wiki/Oracle_America,_Inc._v._Google,_Inc." target="_blank">
Oracle v. Google</a> case over whether an API can be copywritten, and is now the judge for the
<a href="http://www.businessinsider.com/google-waymo-v-uber-case-explained-2017-5" target="_blank">
Waymo (Google) v. Uber</a>.
</p>
</div>
</div>
</div>
<div class="col-md-4 mb-3">
<div class="card full-height">
<h4 class="card-header">Linkedin Dark Patterns</h4>
<div class="card-body">
<p class="card-text">
<a href="https://schlosser.io/writing/linkedin-dark-patterns/" target="_blank">
Linkedin Dark Patterns
</a>
</p>
<p class="card-text">
An in depth blog post detailing how LinkedIn used dark patterns to trick users.
</p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View file

@ -1,192 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Neil Brommer</title>
<meta name="description" content="Neil Brommer - Resume">
<meta name="author" content="Neil Brommer">
<link rel="icon" href="favicon.ico">
<!-- theme colors -->
<meta name="theme-color" content="#3f51b5">
<!-- Chrome, Firefox OS and Opera -->
<meta name="msapplication-navbutton-color" content="#3f51b5">
<!-- Windows Phone -->
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<!-- iOS -->
<link href="lib/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- Bootstrap -->
<!-- font awesome -->
<script defer src="/lib/fontawesome/svg-with-js/js/fa-brands.js"></script>
<script defer src="/lib/fontawesome/svg-with-js/js/fa-regular.js"></script>
<script defer src="/lib/fontawesome/svg-with-js/js/fa-solid.js"></script>
<script src="/lib/fontawesome/svg-with-js/js/fontawesome.js"></script>
<link href="css/main.css" rel="stylesheet">
<!-- Custom styles for this site -->
<!-- Google Analytics -->
<script>
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date(); a = s.createElement(o),
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-105178749-1', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- load at top for aetting the theme -->
<script src="lib/jquery/jquery-3.2.1.js"></script>
<script src="lib/popper/popper.js"></script>
<script src="lib/bootstrap/js/bootstrap.min.js"></script>
<script src="js/main.js"></script>
<!-- Fixed navbar -->
<nav id="topnav" class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
<div class="container">
<a class="navbar-brand" href="/">Neil Brommer</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav mr-auto">
<li class="nav-item" id="homelnk">
<a class="nav-link" href=".">Home</a>
</li>
<li class="nav-item active" id="resumelnk">
<a class="nav-link" href="resume.html">Resume</a>
</li>
<li class="nav-item" id="linkslnk">
<a class="nav-link" href="links.html">Links</a>
</li>
<li class="nav-item" id="contactlnk">
<a class="nav-link" href="contact.html">Contact</a>
</li>
</ul>
<ul class="navbar-nav">
<li class="nav-item" id="githublnk">
<a class="nav-link" href="https://github.com/NeilBrommer" target="_blank" title="GitHub">
<span class="fab fa-github-alt"></span>
</a>
</li>
<li class="nav-item" id="linkedinlnk">
<a class="nav-link" href="https://www.linkedin.com/in/neilbrommer/" target="_blank" title="LinkedIn">
<span class="fab fa-linkedin"></span>
</a>
</li>
<li class="nav-item ml-md-2">
<button id="btnTheme" type="button" class="btn btn-dark" aria-pressed="false" autocomplete="off">
<span id="themeText" class="fas fa-moon"></span>
</button>
</li>
</ul>
</div>
</div>
</nav>
<div class="container">
<div class="jumbotron">
<h1>Resume</h1>
<p>
Work history, references, and more contact information available on request via the
<a href="contact.html">contact page</a>.
</p>
<p>
PDF version available
<a href="NeilBrommer-WebResume.pdf">here</a>.
</p>
</div>
<h2>Education</h2>
<p>
<div class="row">
<div class="col-sm-8">
<b>Eastern Washington University</b>
</div>
<div class="col-sm-4">
<b class="float-sm-right">Cheney, Washington</b>
</div>
</div>
<div class="row">
<div class="col-sm-8">
<i>Bachelor of Science in Computer Science, 3.44 GPA</i>
</div>
<div class="col-sm-4">
<i class="float-sm-right">2014 &ndash; present</i>
</div>
</div>
Planning to graduate in spring 2018
</p>
<p>
<div class="row">
<div class="col-sm-8">
<b>Spokane Community College</b>
</div>
<div class="col-sm-4">
<b class="float-sm-right">Spokane, Washington</b>
</div>
</div>
<div class="row">
<div class="col-sm-8">
<i>Associate of Applied Science in Network Design and Administration, 3.13 GPA</i>
</div>
<div class="col-sm-4">
<i class="float-sm-right">2011 &ndash; 2013</i>
</div>
</div>
Networking with Cisco switches and routers, with basic Windows and Linux administration
</p>
<h2>Relevent Coursework</h2>
<ul class="row">
<li class="col-md-6">Object Oriented Programming &ndash; Java, C#</li>
<li class="col-md-6">Object-Oriented design patterns</li>
<li class="col-md-6">GUI Programming &ndash; JavaFX, WinForms, WPF</li>
<li class="col-md-6">Relational Databases &ndash; SQL</li>
<li class="col-md-6">Web Development &ndash; HTML, CSS, JavaScript, JQuery, PHP, WordPress</li>
<li class="col-md-6">Operating Systems &ndash; C, Unix, threads and processes, memory management</li>
<li class="col-md-6">Software Engineering</li>
<li class="col-md-6">Digital Circuits &ndash; Digital logic</li>
<li class="col-md-6">Network Programming &ndash; Network sockets, binary protocols</li>
<li class="col-md-6">Network Administration &ndash; routing, switching, WAN, VoIP</li>
<li class="col-md-6">Linux Administration &ndash; Basic system maintenance, Email, DNS</li>
<li class="col-md-6">Windows Administration &ndash; MS Exchange, Active Directory</li>
<li class="col-md-6">Low Level Systems &ndash; MIPS assembly, digital circuits</li>
<li class="col-md-6">PC/Server Hardware</li>
</ul>
<h2>Certifications</h2>
<p>
<div style="font-weight: bold;">CCNA</div>
<div class="row">
<div class="col-sm-8">
<i>Cisco Certified Network Administrator</i>
</div>
<div class="col-sm-4">
<i class="float-sm-right">September 2013 &ndash; 2016</i>
</div>
</div>
Ciscos second level of computer networking certifications. Focuses on designing and managing routed and switched networks.
</p>
</div>
</body>
</html>

View file

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

View file

@ -26,7 +26,7 @@ function sendForm(e) {
var message = $("#messageField").val();
$.ajax({
url: "contact.php",
url: "../contact.php",
type: "POST",
data: {
"name": name,