summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--#index.js#93
-rw-r--r--index.css~224
-rw-r--r--index.html~59
-rw-r--r--index.js~70
-rw-r--r--mini-jquery.js~122
-rw-r--r--posts.css~3
-rw-r--r--posts.html~87
-rwxr-xr-xresume.css~74
-rwxr-xr-xresume.html~183
-rw-r--r--resume.js~7
-rw-r--r--themes/TreeShape.h~104
-rwxr-xr-xupload.sh~1
12 files changed, 0 insertions, 1027 deletions
diff --git a/#index.js# b/#index.js#
deleted file mode 100644
index f666098..0000000
--- a/#index.js#
+++ /dev/null
@@ -1,93 +0,0 @@
-
-function main() {
- var themeSelector = document.getElementById('theme_selector');
- themeSelector.classList.remove('hidden');
-
- runCarousel();
-}
-
-function runCarousel() {
- var carouselContainer = document.getElementById("carousel"),
- imageContainer = document.getElementById('image_container'),
- leftButton = document.getElementById('carousel_left'),
- rightButton = document.getElementById('carousel_right');
-
- // Carousel logic
- var carouselPosition = 0,
- numImages = imageContainer.children.length;
-
- function onCarouselRight() {
- carouselPosition = (carouselPosition + 1);
-
- if (carouselPosition === numImages) {
- carouselPosition = 0;
- }
- updateCarousel();
- }
-
- function onCarouselLeft() {
- carouselPosition = (carouselPosition - 1);
- if (carouselPosition < 0) {
- carouselPosition = numImages - 1;
- }
- updateCarousel();
- }
-
- function onImageClicked() {
- var background = document.createElement('div'); //
- background.classList.add('carousel_image_expanded_container');
- var clone = this.cloneNode(true);
- clone.classList.add('expanded');
- background.append(clone);
- clone.addEventListener('click', function(event) { event.stopPropagation(); });
- background.addEventListener('click', function() { background.remove(); });
- window.addEventListener('keydown', function(e) { if (e.key === 'Escape') background.remove(); });
- document.body.parentElement.prepend(background);
- }
-
- function setImageClicked() {
- for (var i = 0; i < numImages; i++) {
- var image = imageList[i];
- image.addEventListener('click', onImageClicked);
- }
- }
-
- function updateCarousel() {
- var selectedChildPosition = -(carouselPosition * 240);
- imageContainer.style.transform = 'translate(' + selectedChildPosition + 'px, 0)';
- for (var i = 0; i < numImages; i++) {
- var image = imageList[i];
- if (i !== carouselPosition) {
- if (i === (carouselPosition - 1) % numImages) {
- image.style.opacity = 0.3;
- } else if (i !== 0 && i === (carouselPosition + 1) % numImages) {
- image.style.opacity = 0.3;
- } else {
- image.style.opacity = 0;
- }
- } else {
- image.style.opacity = 1;
- }
-
- image.style.pointerEvents = image.style.opacity > 0 ? 'all' : 'none';
- }
-
- rightButton.style.visibility = (carouselPosition === numImages - 1) ? 'hidden' : 'visible';
- leftButton.style.visibility = (carouselPosition === 0) ? 'hidden' : 'visible';
- }
-
- // -- Set up on image clicked
- var imageList = imageContainer.children,
- numImages = imageContainer.children.length;
-
- setImageClicked();
- updateCarousel();
-
- leftButton.addEventListener('click', onCarouselLeft);
- rightButton.addEventListener('click', onCarouselRight);
-
- // -- Fade in the container
- imageContainer.style.opacity = '1';
-}
-
-window.onload = main;
diff --git a/index.css~ b/index.css~
deleted file mode 100644
index 32bd838..0000000
--- a/index.css~
+++ /dev/null
@@ -1,224 +0,0 @@
-
-body {
- width: 100vw;
- height: 100vh;
- font-family: Consolas, monaco, monospace;
- font-size: 16px;
- background-color: #231f1d;
- color: white;
- padding: 0;
- margin: 0;
-
- display: flex;
- flex-direction: column;
- align-items: center;
-}
-
-header {
- text-align: center;
- width: 60%;
-}
-
-header > h1 {
- font-family: Georgia, sans-serif;
- font-weight: normal;
- font-size: 30px;
- padding-top: 1rem;
- padding-bottom: 0.5rem;
- margin: 0;
- letter-spacing: 0.25rem;
- border-bottom: 1px solid white;
-}
-
-header > nav {
- font-family: Georgia, sans-serif;
- padding-top: 0.5rem;
-}
-
-header > nav > ul {
- display: flex;
- flex-direction: row;
- align-items: center;
- justify-content: space-evenly;
- list-style-type: none;
- margin: 0;
- padding: 0;
-}
-
-header > nav > ul a {
- text-decoration: none;
- color: inherit;
- font-size: 16px;
- border-bottom: 1px solid transparent;
- transition: border-color 100ms linear;
- transition: opacity 100ms linear;
-}
-
-header > nav > ul a:hover {
- opacity: 0.8;
- border-color: white;
-}
-
-#landing_page {
- text-align: center;
- flex: 1 1 100%;
- width: 50%;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
-}
-
-/* Carousel styling */
-#carousel {
- width: 100%;
- height: 360px;
- position: relative;
- overflow: hidden;
-}
-
-#carousel > button {
- position: absolute;
- top: calc(50% - 2rem);
- font-size: 4rem;
- border: none;
- background-color: transparent;
- color: white;
-}
-
-#carousel > button:hover {
- opacity: 0.8;
- cursor: pointer;
-}
-
-#carousel_left {
- left: 0;
-}
-
-#carousel_right {
- right: 0;
-}
-
-#image_container {
- position: absolute;
- width: 100%;
- display: flex;
- flex-direction: row;
- height: 100%;
- transition: left 200ms linear;
-}
-
-.carousel_image {
- width: 240px;
- transition: opacity 200ms linear;
- padding: 0;
- margin: 0;
- padding-right: 12px;
-}
-
-.carousel_image > figcaption {
- font-size: 10px;
- font-style: italic;
-}
-
-.carousel_image > img {
- width: 240px;
- border-radius: 2px;
-}
-
-input {
- outline: none;
- border: 1px solid transparent;
- border-radius: 2px;
- font-size: 1rem;
- padding: 0.5rem;
-}
-
-input:focus {
- border: 1px solid lightgray;
-}
-
-.action_button {
- border: 1px solid #f0f0f0;
- border-radius: 2px;
- width: 108px;
- height: 2rem;
-}
-
-.action_button:hover {
- cursor: pointer;
- opacity: 0.9;
-}
-
-/* Theme display */
-#theme_container {
- position: fixed;
- top: 0;
- left: 0;
- width: 100vw;
- height: 100vh;
- background-color: transparent;
- z-index: -1;
-}
-
-#theme_canvas {
- width: 100%;
- height: 100%;
- z-index: -1;
-}
-
-/* Theme Selector */
-#theme_selector {
- position: fixed;
- width: 50%;
- display: flex;
- align-items: center;
- justify-content: space-evenly;
- bottom: 1rem;
-}
-
-#theme_selector > button {
- width: 5rem;
- height: 2rem;
- border-radius: 3px;
- border: 1px solid black;
- color: black;
- background-color: white;
- cursor: pointer;
- transition: opacity 100ms linear;
-}
-
-#theme_selector > button:hover {
- opacity: 0.8;
-}
-
-#theme_selector > #theme_button_default {
-}
-
-#theme_selector > #theme_button_autumn {
- background-color: orange;
-}
-
-/* Phone screen adjustments */
-@media only screen and (device-width: 1280px),
-only screen and (max-width:1280px) {
- body {
- font-size: 12px;
- }
-
- header {
- width: 90%;
- }
-
- section {
- width: 100%;
- }
-
- #landing_page {
- width: 75%;
- }
-
- #theme_selector {
- width: 90%;
- }
-}
diff --git a/index.html~ b/index.html~
deleted file mode 100644
index 80d17e8..0000000
--- a/index.html~
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta charset="utf-8">
- <link rel="stylesheet" href="/index.css">
- <title>Matthew Kosarek</title>
- <link rel="shortcut icon" href="/favicon/favicon.ico" type="image/x-icon">
- </head>
- <body>
- <header>
- <h1>Matthew Kosarek</h1>
- <nav>
- <ul>
- <li><a href='/'>&#127969; Home</a></li>
- <li><a href='/resume.html'>&#128216; CV</a></li>
- <li><a href='/posts.html'>&#128221; Posts</a></li>
- </ul>
- </nav>
- </header>
- <section id='landing_page'>
-
- <p>
- <div id='carousel'>
- <div id='image_container'>
- <figure class='carousel_image'>
- <img src='images/portrait.jpg' />
- <figcaption>
- Me in front of my desktop, circa August 2021.
- </figcaption>
- </figure>
- <figure class='carousel_image'>
- <img src='images/dog_and_me.jpg' />
- <figcaption>
- Hanging with my dog named Rizzy, circa May 2020.
- </figcaption>
- </figure>
- <figure class='carousel_image'>
- <img src='images/friends.jpg' />
- <figcaption>
- Hanging with my friends, circa July 2019.
- </figcaption>
- </figure>
- </div>
- <button id='carousel_left'>&#8592;</button>
- <button id='carousel_right'>&#8594;</button>
- </div>
- </p>
-
- <p>
- My name is Matthew Kosarek. I am a computer programmer currently living in New Jersey. I keep my CV up to date on this website. I also write some posts about computers when I find something particularly interesting. You can find a link to my Github <a href='https://github.com/mattkae'>here</a>. I am also building a website about physics simulation in video games which you can find <a href='https://physicsforgames.com/'>here</a>.
- </p>
- <br/>
- </section>
-
- </body>
-
- <script src='/index.js'></script>
-</html>
diff --git a/index.js~ b/index.js~
deleted file mode 100644
index 1ccc88c..0000000
--- a/index.js~
+++ /dev/null
@@ -1,70 +0,0 @@
-
-function main() {
- runCarousel();
- runPosts();
-}
-
-function runCarousel() {
- var carouselContainer = document.getElementById("carousel"),
- imageContainer = document.getElementById('image_container'),
- leftButton = document.getElementById('carousel_left'),
- rightButton = document.getElementById('carousel_right');
-
- // Carousel logic
- var carouselPosition = 1,
- numImages = imageContainer.children.length;
-
- function onCarouselRight() {
- carouselPosition = (carouselPosition + 1);
-
- if (carouselPosition === numImages) {
- carouselPosition = 0;
- }
- updateCarousel();
- }
-
- function onCarouselLeft() {
- carouselPosition = (carouselPosition - 1);
- if (carouselPosition < 0) {
- carouselPosition = numImages - 1;
- }
- updateCarousel();
- }
-
- function onImageClicked() {
-
- }
-
- function updateCarousel() {
- var children = imageContainer.children;
- for (var i = 0; i < children.length; i++) {
- var image = children[i];
- if (i !== carouselPosition) {
- if (i === (carouselPosition - 1) % numImages) {
- image.style.opacity = 0.3;
- } else if (i !== 0 && i === (carouselPosition + 1) % numImages) {
- image.style.opacity = 0.3;
- } else {
- image.style.opacity = 0;
- }
- } else {
- image.style.opacity = 1;
- }
- }
-
- imageContainer.style.left = 'calc(' + (-carouselPosition * 252) + 'px + 50% - 120px)';
- rightButton.style.visibility = (carouselPosition === numImages - 1) ? 'hidden' : 'visible';
- leftButton.style.visibility = (carouselPosition === 0) ? 'hidden' : 'visible';
- }
-
- updateCarousel();
-
- leftButton.addEventListener('click', onCarouselLeft);
- rightButton.addEventListener('click', onCarouselRight);
-}
-
-function runPosts() {
-
-}
-
-main();
diff --git a/mini-jquery.js~ b/mini-jquery.js~
deleted file mode 100644
index 1e674b3..0000000
--- a/mini-jquery.js~
+++ /dev/null
@@ -1,122 +0,0 @@
-//
-// mini-jquery.js
-//
-// Matthew Kosarek
-//
-// 2021-08-08
-//
-// JQuery is huge and I use the smallest portion of it.
-// This is my attempt to make a JQuery lookalike that does
-// enough for me, but doesn't bloat things.
-//
-
-function MiniJQueryObject(arg) {
- this.elementList = [];
- if (typeof arg === 'string') {
- arg = arg.trim();
-
- if (arg[0] === '<' && arg[arg.length - 1] === '>') {
- // Trying to create an html element
- arg = arg.substring(1, arg.length - 1);
- var element = document.createElement(arg);
- this.elementList.push(element);
- } else {
- // Trying to query an html element
-
- switch (arg[0]) {
- case '#': {
- arg = arg.substring(1);
- var idElement = document.getElementById(arg);
- if (idElement) {
- this.elementList.push(idElement);
- }
- break;
- }
- case '.': {
- arg = arg.substring(1);
- this.fromHTMLCollection(document.getElementsByClassName(arg));
- break;
- }
- default: {
- this.fromHTMLCollection(document.getElementsByTagName(arg));
- break;
- }
- }
- }
- } else if (arg instanceof HTMLElement) {
- this.elementList.push(arg);
- } else {
- console.error('Unknown object: ', arg);
- }
-}
-
-MiniJQueryObject.prototype.fromHTMLCollection = function(collection) {
- for (var i = 0; i < collection.length; i++) {
- this.elementList.push(collection.item(i));
- }
-};
-
-MiniJQueryObject.prototype.append = function(otherMinJqueryObject) {
- this.elementList.forEach(function(element) {
- otherMinJqueryObject.elementList.forEach(function(otherElement) {
- element.appendChild(otherElement);
- });
- });
-};
-
-MiniJQueryObject.prototype.appendTo = function(otherMinJqueryObject) {
- otherMinJqueryObject.append(this);
- return this;
-};
-
-MiniJQueryObject.prototype.empty = function() {
- this.elementList.forEach(function(element) {
- element.innerHTML = '';
- });
- return this;
-};
-
-MiniJQueryObject.prototype._set = function(field, value) {
- this.elementList.forEach(function(element) {
- element[field] = value;
- });
- return this;
-};
-
-MiniJQueryObject.prototype.type = function(type) {
- return this._set('type', type);
-};
-
-MiniJQueryObject.prototype.val = function(val) {
- return this._set('value', val);
-};
-
-MiniJQueryObject.prototype.disabled = function(val) {
- return this._set('disabled', val ? 'true' : undefined);
-};
-
-MiniJQueryObject.prototype.on = function(event, callback) {
- this.elementList.forEach(function(element) {
- element.addEventListener(event, callback);
- });
- return this;
-};
-
-MiniJQueryObject.prototype.addClass = function(className) {
- this.elementList.forEach(function(element) {
- element.classList.add(className);
- });
- return this;
-};
-
-MiniJQueryObject.prototype.removeClass = function(className) {
- this.elementList.forEach(function(element) {
- element.classList.remove(className);
- });
- return this;
-};
-
-var $ = function(arg) {
- return new MiniJQueryObject(arg);
-};
-window.$ = $;
diff --git a/posts.css~ b/posts.css~
deleted file mode 100644
index 839faf2..0000000
--- a/posts.css~
+++ /dev/null
@@ -1,3 +0,0 @@
-article {
-
-}
diff --git a/posts.html~ b/posts.html~
deleted file mode 100644
index 2d9ea0e..0000000
--- a/posts.html~
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta charset="utf-8">
- <link rel="stylesheet" href="/index.css">
- <link rel="stylesheet" href="/posts.css">
- <title>Matthew Kosarek</title>
- <link rel="shortcut icon" href="/favicon/favicon.ico" type="image/x-icon">
- </head>
- <body>
- <header>
- <h1>Matthew Kosarek</h1>
- <nav>
- <ul>
- <li><a href='/'>&#127969; Home</a></li>
- <li><a href='/resume.html'>&#128216; CV</a></li>
- <li><a href='/posts.html'>&#128221; Posts</a></li>
- </ul>
- </nav>
- </header>
-
- <section id='post_section'>
- </section>
-
- <script>
- function fetchHtml(fileName) {
- return fetch(fileName).then((response) => {
- return response.text();
- });
- }
-
- function nodeScriptReplace(node) {
- if ( nodeScriptIs(node) === true ) {
- node.parentNode.replaceChild( nodeScriptClone(node) , node );
- }
- else {
- var i = -1, children = node.childNodes;
- while ( ++i < children.length ) {
- nodeScriptReplace( children[i] );
- }
- }
-
- return node;
- }
- function nodeScriptClone(node){
- var script = document.createElement("script");
- script.text = node.innerHTML;
-
- var i = -1, attrs = node.attributes, attr;
- while ( ++i < attrs.length ) {
- script.setAttribute( (attr = attrs[i]).name, attr.value );
- }
- return script;
- }
-
- function nodeScriptIs(node) {
- return node.tagName === 'SCRIPT';
- }
-
- (function() {
- var postList = [
- 'posts/linear_system_solver.html'
- ];
-
- var postContainer = document.getElementById('post_section');
- if (!postContainer) {
- console.error('Could not find post container.');
- return;
- }
-
- postList.forEach(function(postName) {
- fetchHtml(postName).then(function(text) {
- var newSection = document.createElement('article');
- newSection.innerHTML = text;
- nodeScriptReplace(newSection);
- postContainer.appendChild(newSection);
- });
- });
- })();
- </script>
-
- </body>
-
- <script src='/index.js'></script>
- <script src='/mini-jquery.js' type='module'></script>
-</html>
diff --git a/resume.css~ b/resume.css~
deleted file mode 100755
index 87faecd..0000000
--- a/resume.css~
+++ /dev/null
@@ -1,74 +0,0 @@
-body {
- font-size: 14px !important;
-}
-
-header {
- padding-bottom: 1rem;
-}
-
-#actions_container {
- padding-bottom: 1rem;
-
- display: flex;
- flex-direction: row;
- justify-content: flex-end;
-}
-
-#resume {
- text-align: left;
- background-color: white;
- border-radius: 2px;
- color: black;
- padding: 2rem;
- font-family: Arial,Helvetica Neue,Helvetica,sans-serif !important;
- line-height: 1.2rem;
-}
-
-#resume > div {
- width: 100%;
- text-align: left;
-}
-
-h2 {
- font-size: 1.5rem !important;
- font-variant: small-caps;
- border-bottom: 1px solid #d9d9d9;
- font-weight: bold;
- width: 100%;
- padding: 0;
- margin: 0;
- line-height: 2rem;
-}
-
-.skill-section {
- width: 100%;
- display: flex;
- flex-direction: row;
-}
-
-.skill-section > h3 {
- width: 25%;
- font-weight: bold;
- font-size: 1rem;
- margin: 0;
- padding: 0;
-}
-
-.skill-section > div {
- width: 75%;
-}
-
-.experience-header > div {
- display: flex;
- flex-direction: row;
- justify-content: space-between;
-}
-
-#resume.resume_fullscreen {
- position: fixed;
- top: 0;
- left: 0;
- width: calc(100vw - 4rem);
- height: calc(100vh - 4rem);
- overflow: auto;
-}
diff --git a/resume.html~ b/resume.html~
deleted file mode 100755
index 90a33b4..0000000
--- a/resume.html~
+++ /dev/null
@@ -1,183 +0,0 @@
-<html>
- <head>
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta charset="utf-8">
- <link rel="stylesheet" href="/index.css">
- <link rel="stylesheet" href="/resume.css">
- <title>Matthew Kosarek</title>
- <link rel="shortcut icon" href="/favicon/favicon.ico" type="image/x-icon">
- </head>
- <body>
- <header>
- <h1>Matthew Kosarek</h1>
- <nav>
- <ul>
- <li><a href='/'>&#127969; Home</a></li>
- <li><a href='/resume.html'>&#128216; CV</a></li>
- <li><a href='/posts.html'>&#128221; Posts</a></li>
- </ul>
- </nav>
- </header>
- <section id='resume'>
- <div id='resume_button_container'>
- <button id='full_screen_button' title='Toggle Fullscreen'>
- &#9974;
- </button>
- <button title='Download as PDF'>
- &#128229;
- </button>
- </div>
-
- <div>
- <h2>Skills</h2>
- <p>
- <div class="skill-section">
- <b>Languages & Tech</b><div>C/C++, OpenGL, C#, ASP.NET, TypeScript/JavaScript, ReactJS, ThreeJS, HTML/CSS, SQL, Java</div>
- </div>
- <div class="skill-section">
- <b>Tools</b><div>Git, Visual Studio, Unity, Sourcetree, NPM, Webpack, TeamCity, NuGet, AWS</div>
- </div>
- </p>
- </div>
- <div>
- <h2>Experience</h2>
- <p>
- <div class="experience-item">
- <div class="experience-header">
- <div>
- <span><b>Software Engineer</b></span>
- <span><i>Vention</i></span>
- </div>
- <div>
- <span>July 2020 to Present</span>
- <span>Montreal, QC</span>
- </div>
- </div>
- <ul>
- <li>
- Implemented new features and fixed bugs as a member of the <i>MachineLogic</i> team, which is tasked with creating a visual programming language for our hardware stack.
- </li>
- <li>
- Developed a CNC application that accepts G-Code files as input and provides a realtime 3D rendering of the path as the machine traces it. Feel free to check out <a href='https://vention.io/path-following'>this link</a> for more info.
- </li>
- </ul>
- </div>
- <div class="experience-item">
- <div class="experience-header">
- <div>
- <span><b>Software Engineer I</b></span>
- <span><i>Big Huge Games</i></span>
- </div>
- <div>
- <span>January 2018 to June 2020</span>
- <span>Timonium, MD</span>
- </div>
- </div>
- <ul>
- <li>
- Developed and maintained the data pipeline - from data entry, to data validation, to data publishing - for <i>Arcane Shodown</i>.
- </li>
- <li>
- Designed, built, and maintained a live operations scheduling and publishing web application for <i>DomiNations</i>
- </li>
- <li>
- Implemented game features on all parts of the stack, including tools, Unity client, and game servers
- </li>
- <li>
- Met weekly with various disciplines to discuss ways to improve the UX of the company's tools
- </li>
- <li>
- Initiated company-wide React and TypeScript code sharing via a private NPM repository
- </li>
- <li>
- Worked within the Agile framework, in which I planned sprint work, attended daily stand-ups, and participated in retrospectives
- </li>
- </ul>
- </div>
- <div class="experience-item">
- <div class="experience-header">
- <div>
- <span><b>Teaching Assistant for Intro to Video Game Design</b></span>
- <span><i>Johns Hopkins University</i></span>
- </div>
- <div>
- <span>September 2017 to December 2017</span>
- <span>Baltimore, MD</span>
- </div>
- </div>
- <ul>
- <li>
- Assisted beginner programmers in the development of 2D game engines using the SDL2 library
- </li>
- </ul>
- </div>
- <div class="experience-item">
- <div class="experience-header">
- <div>
- <span><b>Software Engineering Intern</b></span>
- <span><i>Big Huge Games</i></span>
- </div>
- <div>
- <span>May 2017 to August 2017</span>
- <span>Timonium, MD</span>
- </div>
- </div>
- <ul>
- <li>
- Developed a tool based on the GTK toolkit to improve the workflow of the quality assurance team for <i>DomiNations</i>
- </li>
- <li>
- Wrote a comprehensive user manual that explains how the tool functions for both technical and non-technical users
- </li>
- </ul>
- </div>
- <div class="experience-item">
- <div class="experience-header">
- <div>
- <span><b>Software Engineering Intern</b></span>
- <span><i>Sparkypants Studios</i></span>
- </div>
- <div>
- <span>May 2016 to August 2016</span>
- <span>Baltimore, MD</span>
- </div>
- </div>
- <ul>
- <li>
- Developed an application to measure and report memory usage and run times for all game systems in <i>Dropzone</i>
- </li>
- </ul>
- </div>
- </p>
- </div>
- <div>
- <h2>Education</h2>
- <p>
- <div class="experience-item">
- <div class="experience-header">
- <div>
- <span><b>Johns Hopkins University</b></span>
- <span>Baltimore, MD</span>
- </div>
- <div>
- <span>September 2014 to December 2017</span>
- </div>
- </div>
- <ul>
- <li>
- B.S. in Computer Engineering (Magna Cum Laude)
- </li>
- <li>
- 3.53 GPA
- </li>
- <li>
- <i>Relevant Coursework</i>: Computer Graphics, Object Oriented Software Engineering, Linear Algebra, Video Game Engines and Design, Operating Systems, Data Structures, Introduction to Renewable Energy Engineering
- </li>
- </ul>
- </div>
- </p>
- </div>
- </body>
-
- <script src='/resume.js'></script>
-</html>
diff --git a/resume.js~ b/resume.js~
deleted file mode 100644
index a3776d8..0000000
--- a/resume.js~
+++ /dev/null
@@ -1,7 +0,0 @@
-
-var fullScreenButton = document.getElementById('full_screen_button'),
- resumeContainer = document.getElementById('resume');
-
-fullScreenButton.addEventListener('click', function() {
- resumeContainer.classList.add('resume_fullscreen');
-});
diff --git a/themes/TreeShape.h~ b/themes/TreeShape.h~
deleted file mode 100644
index 14ea765..0000000
--- a/themes/TreeShape.h~
+++ /dev/null
@@ -1,104 +0,0 @@
-#include "Renderer2d.h"
-#include "types.h"
-#include "mathlib.h"
-
-struct TreeBranch {
- float32 width = 0.f;
- float32 height = 0.f;
- Vector2 position; // Center point
- Vector2 direction = Vector2 { 1.f, 0.f };
- Vector4 color = Vector4 { 1.f, 0.f, 0.f, 1.f };
-
- void fillVertices(Renderer2dVertex* vertices) {
- vertices[0] = {
- Vector2 { position.x - width / 2.f, position.y },
- color
- };
- vertices[1] = {
- Vector2 { position.x + width / 2.f, position.y },
- color
- };
- vertices[2] = {
- Vector2 { position.x - width / 2.f, position.y + height },
- color
- };
- vertices[3] = {
- Vector2 { position.x - width / 2.f, position.y + height },
- color
- };
- vertices[4] = {
- Vector2 { position.x + width / 2.f, position.y + height },
- color
- };
- vertices[5] = {
- Vector2 { position.x + width / 2.f, position.y },
- color
- };
- }
-};
-
-struct TreeShape {
- Renderer2dShape shape;
-
- float32 height = 100.f; // Height of the whole tree
- float32 width = 50.f; // Width of the whole tree
- int32 divisionsPerBranch = 2; // How many branches to split into at each branch split
- int32 numBranchLevels = 8; // How many branch levels to display
- float32 animateTimeSeconds = 2.f; // How long it takes the tree to form
-
- void load(Renderer2d* renderer) {
- int32 numBranches = divisionsPerBranch * numBranchLevels;
- TreeBranch* branches = new TreeBranch[numBranches];
- TreeBranch trunk = branches[0];
-
- int32 numVertices = 6 * numBranches;
- Renderer2dVertex* vertices = new Renderer2dVertex[numVertices];
-
-
-
- trunk.width = width;
- trunk.height = height;
- trunk.position = Vector2 { 0.f, 0.f };
- trunk.direction = Vector2 { 1.f, 0.f };
- trunk.fillVertices(&vertices[0]);
-
- shape.load(vertices, numVertices, renderer);
-
- delete[] branches;
- delete[] vertices;
- }
-
- void createBranch(TreeBranch* branchList, int32 numBranches, int32* branchIndex, int32 branchLevel, float32 width, float32 height, Vector2 position, Vector2 direction, Renderer2dVertex* vertices) {
- branch->width = width;
- branch->height = height;
- branch->position = position;
- branch->direction = direction;
- branch->fillIinVertices(&vertices[&branchIndex * 6]);
-
- if (branchLevel == numBranchLevels) {
- return;
- }
-
- float32 branchWidth = width / divisionsPerBranch;
- float32 branchHeight = height / divisionsPerBranch;
- Vector2 branchPosition = branch->position + (height * branch->direction);
-
- for (int division = 0; division < divisionsPerBranch; division++) {
- (*branchIndex)++;
- createBranch(branchList, numBranches, branchIndex, branchLevel + 1, branchWidth, branchHeight,
- }
- }
-
- void update(float32 dtSeconds) {
-
- }
-
- void render(Renderer2d* renderer) {
- shape.render(renderer);
- }
-
- void unload() {
- shape.unload();
- }
-};
-
diff --git a/upload.sh~ b/upload.sh~
deleted file mode 100755
index 0960cbc..0000000
--- a/upload.sh~
+++ /dev/null
@@ -1 +0,0 @@
-rsync -a ./ root@physicsforgames.com:/var/www/physicsforgames