diff options
author | mattkae <mattkae@protonmail.com> | 2022-02-13 10:37:46 -0500 |
---|---|---|
committer | mattkae <mattkae@protonmail.com> | 2022-02-13 10:37:46 -0500 |
commit | 74e3c0442c196b9cb7fadf7ddc4d49944f1270af (patch) | |
tree | 6762a39bd98c1aadbdde4f0249bf35b869ab0a92 | |
parent | c3c2451232bfeeaa0d5fc200e4a5a27e13c258d2 (diff) |
Adding some new content and fixing spacing issues
-rwxr-xr-x | download/build.sh | 1 | ||||
-rw-r--r-- | download/cv.pdf | bin | 34277 -> 39633 bytes | |||
-rw-r--r-- | download/resume_dl.html | 104 | ||||
-rwxr-xr-x | resume.css | 29 | ||||
-rwxr-xr-x | resume.html | 44 | ||||
-rw-r--r-- | themes/Snowflake.cpp | 49 | ||||
-rw-r--r-- | themes/Snowflake.h | 1 | ||||
-rwxr-xr-x | themes/dist/output.wasm | bin | 82965 -> 83691 bytes |
8 files changed, 151 insertions, 77 deletions
diff --git a/download/build.sh b/download/build.sh new file mode 100755 index 0000000..b3c88af --- /dev/null +++ b/download/build.sh @@ -0,0 +1 @@ +wkhtmltopdf resume_dl.html cv.pdf
\ No newline at end of file diff --git a/download/cv.pdf b/download/cv.pdf Binary files differindex 0d05620..bb0dc1d 100644 --- a/download/cv.pdf +++ b/download/cv.pdf diff --git a/download/resume_dl.html b/download/resume_dl.html index 3ff59d4..bd4ea57 100644 --- a/download/resume_dl.html +++ b/download/resume_dl.html @@ -1,10 +1,12 @@ <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <meta charset="utf-8"> + <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> + <meta charset="UTF-8" /> <style> body { - font-size: 14px !important; + font-family: Arial, Helvetica, sans-serif; + font-size: 14px; padding: 2rem; } @@ -24,7 +26,6 @@ position: relative; text-align: left; background-color: white; - border-radius: 2px; color: black; font-family: Arial,Helvetica Neue,Helvetica,sans-serif !important; line-height: 1.2rem; @@ -70,31 +71,45 @@ } #resume > header > h1 { - font-size: 2rem; + font-size: 1.7rem; padding: 0; margin: 0; + font-weight: 500; } - #resume > header > h3 { - padding: 1rem; - margin: 0; - color: #7a7a7a; + #resume > header > div { + padding-top: 0.8rem; } #resume > header > div > span { - padding-left: 0.5rem; padding-right: 0.5rem; + padding-left: 0.5rem; + } + + #resume > header > div > span > i { + padding-right: 0.25rem; + } + + .resume_section { + width: 100%; } - h2 { + .resume_section > h2 { font-size: 1.25rem !important; font-variant: small-caps; - border-bottom: 1px solid #d9d9d9; font-weight: bold; - width: 100%; padding: 0; margin: 0; - line-height: 2rem; + padding: 0.5rem; + background-color: #2E4C6D; + color: white; + } + + .resume_section > div { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 0.5rem; + padding-right: 0.5rem; } .skill-section { @@ -119,35 +134,38 @@ flex-direction: row; justify-content: space-between; } + + .experience-item li { + width: 100%; + } </style> </head> <body> <section id='resume'> <header> <h1>Matthew Kosarek</h1> - - <h3>Software Engineer</h3> - <div> - <span><b>TEL:</b> +1-201-400-2699</span> - <span><b>EMAIL:</b> mkosare1@gmail.com</span> + <span><i>🖦</i>Computer Programmer</span> + <span><i>📞</i> +1-201-400-2699</span> + <span><i>📧</i> mkosare1@gmail.com</span> </div> </header> - <div> + <section class='resume_section'> <h2>Skills</h2> - <p> + <div> <div class="skill-section"> - <b>Languages & Tech</b><div>C/C++, OpenGL, C#, ASP.NET, TypeScript/JavaScript, ReactJS, ThreeJS, HTML/CSS, SQL, Java</div> + <b>Languages & Tech</b><div>C/C++, C#, TypeScript/JavaScript, HTML & CSS, Java, OpenGL, ASP.NET, ReactJS, WebGL, SQL</div> </div> <div class="skill-section"> - <b>Tools</b><div>Git, Visual Studio Professional, Unity, Sourcetree, npm, Webpack, TeamCity, NuGet, AWS</div> + <b>Tools</b><div>Git, Visual Studio Professional, Unity, npm, Webpack, TeamCity, NuGet, AWS</div> </div> - </p> - </div> - <div> + </div> + </section> + + <section class='resume_section'> <h2>Experience</h2> - <p> + <div> <div class="experience-item"> <div class="experience-header"> <div> @@ -161,10 +179,19 @@ </div> <ul> <li> - Implemented new features and fixed bugs as a member of the MachineLogic Team, which is tasked with creating a visual programming language for our hardware stack. + Led the MachineApps team in the development of a robust infrastructure for industrial software applications + </li> + <li> + Developed and shipped a number of time-sensitive client projects + </li> + <li> + Interacted extensively with other teams to align on specific business goals and meet client deadlines </li> <li> - Designed and developed a CNC application for our hardware that accepts G-Code files as input and provides a realtime rendering of the path as the machine follows it. + Implemented new features and fixed bugs in both the engine and frontend of a code-free programming language + </li> + <li> + Developed a CNC application that accepts G-Code files as input and provides a realtime rendering of the path during execution </li> </ul> </div> @@ -181,12 +208,15 @@ </div> <ul> <li> - Developed and maintained the data pipeline - from data entry, to data validation, to data publishing - for <i>Arcane Shodown</i>. + Developed and maintained the data pipeline - from data entry, to data validation, to data publishing - for <i>Arcane Showdown</i> </li> <li> Designed, built, and maintained a live operations scheduling and publishing web application for <i>DomiNations</i> </li> <li> + Implemented a localization system for <i>Arcane Showdown</i> which allowed the game to be released in different languages + </li> + <li> Implemented game features on all parts of the stack, including tools, Unity client, and game servers </li> <li> @@ -254,11 +284,12 @@ </li> </ul> </div> - </p> - </div> - <div> + </div> + </section> + + <section class='resume_section'> <h2>Education</h2> - <p> + <div> <div class="experience-item"> <div class="experience-header"> <div> @@ -274,14 +305,15 @@ B.S. in Computer Engineering (Magna Cum Laude) </li> <li> - 3.53 GPA + 3.53 GPA (Cumulative) </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> + </div> + </section> + </section> </body> </html> @@ -1,3 +1,7 @@ +html { + overflow-y: overlay; +} + body { font-size: 14px !important; } @@ -18,7 +22,6 @@ header { position: relative; text-align: left; background-color: white; - border-radius: 2px; color: black; font-family: Arial,Helvetica Neue,Helvetica,sans-serif !important; line-height: 1.2rem; @@ -70,18 +73,21 @@ header { font-weight: 500; } -#resume > header > h3 { +#resume > header > div { padding-top: 0.8rem; - padding-bottom: 0.8rem; - margin: 0; - color: #396EB01; - font-weight: 400; - font-variant: small-caps; - font-size: 1.25rem; } #resume > header > div > span { - padding-right: 1rem; + padding-right: 0.5rem; + padding-left: 0.5rem; +} + +#resume > header > div > span > i { + padding-right: 0.25rem; +} + +.resume_section { + width: 100%; } .resume_section > h2 { @@ -93,7 +99,6 @@ header { padding: 0.5rem; background-color: #2E4C6D; color: white; - border-radius: 2px; } .resume_section > div { @@ -125,3 +130,7 @@ header { flex-direction: row; justify-content: space-between; } + +.experience-item li { + width: 100%; +}
\ No newline at end of file diff --git a/resume.html b/resume.html index b075a6e..0abcaa9 100755 --- a/resume.html +++ b/resume.html @@ -17,7 +17,7 @@ <li style="display: none;"><a href='/posts.html'>📝 Posts</a></li> </ul> </nav> - </header> + </header> <section id='resume'> <div id='resume_button_container'> <button id='full_screen_button' title='Toggle Fullscreen'> @@ -31,11 +31,11 @@ <header> <h1>Matthew Kosarek</h1> - <h3>Software Engineer</h3> - + <div> - <span><b>📞</b> +1-201-400-2699</span> - <span><b>📧</b> mkosare1@gmail.com</span> + <span><i>🖦</i>Computer Programmer</span> + <span><i>📞</i> +1-201-400-2699</span> + <span><i>📧</i> mkosare1@gmail.com</span> </div> </header> @@ -43,13 +43,13 @@ <h2>Skills</h2> <div> <div class="skill-section"> - <b>Programming Languages & Tech</b><div>C/C++, C#, TypeScript/JavaScript, HTML & CSS, Java, OpenGL, ASP.NET, ReactJS, WebGL, SQL</div> + <b>Languages & Tech</b><div>C/C++, C#, TypeScript/JavaScript, HTML & CSS, Java, OpenGL, ASP.NET, ReactJS, WebGL, SQL</div> </div> <div class="skill-section"> <b>Tools</b><div>Git, Visual Studio Professional, Unity, npm, Webpack, TeamCity, NuGet, AWS</div> </div> </div> - </section> + </section> <section class='resume_section'> <h2>Experience</h2> @@ -66,15 +66,15 @@ </div> </div> <ul> - <li> - Led the MachineApps team in the development of a robust infrastructure for industrial software applications - </li> - <li> - Developed and shipped a number of time-sensitive client projects - </li> - <li> - Interacted extensively with other teams to align on specific business goals and meet client deadlines - </li> + <li> + Led the MachineApps team in the development of a robust infrastructure for industrial software applications + </li> + <li> + Developed and shipped a number of time-sensitive client projects + </li> + <li> + Interacted extensively with other teams to align on specific business goals and meet client deadlines + </li> <li> Implemented new features and fixed bugs in both the engine and frontend of a code-free programming language </li> @@ -102,6 +102,9 @@ Designed, built, and maintained a live operations scheduling and publishing web application for <i>DomiNations</i> </li> <li> + Implemented a localization system for <i>Arcane Showdown</i> which allowed the game to be released in different languages + </li> + <li> Implemented game features on all parts of the stack, including tools, Unity client, and game servers </li> <li> @@ -169,8 +172,9 @@ </li> </ul> </div> - </p> - </div> + </div> + </section> + <section class='resume_section'> <h2>Education</h2> <div> @@ -189,7 +193,7 @@ B.S. in Computer Engineering (Magna Cum Laude) </li> <li> - 3.53 GPA + 3.53 GPA (Cumulative) </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 @@ -198,7 +202,7 @@ </div> </div> </section> + </section> </body> - <script src='/resume.js'></script> </html> diff --git a/themes/Snowflake.cpp b/themes/Snowflake.cpp index da42515..5890b57 100644 --- a/themes/Snowflake.cpp +++ b/themes/Snowflake.cpp @@ -41,6 +41,7 @@ inline void initFlake(SnowflakeParticleRenderer* renderer, SnowflakeUpdateData* inline void spawnFlake(SnowflakeParticleRenderer* renderer, SnowflakeUpdateData* ud) { ud->velocity = Vector2(randomFloatBetween(-10, 10), randomFloatBetween(-100, -85)); ud->position = Vector2(randomFloatBetween(0, renderer->xMax), randomFloatBetween(renderer->yMax, renderer->yMax + 256)); + ud->isAlive = true; } inline void findAndSpawnNextFlake(SnowflakeParticleRenderer* renderer) { @@ -49,7 +50,7 @@ inline void findAndSpawnNextFlake(SnowflakeParticleRenderer* renderer) { if (renderer->endIndex >= renderer->numSnowflakes) renderer->endIndex = 0; - } while (renderer->updateData[renderer->endIndex].onGround); + } while (renderer->updateData[renderer->endIndex].isAlive); spawnFlake(renderer, &renderer->updateData[renderer->endIndex]); } @@ -106,6 +107,26 @@ void SnowflakeParticleRenderer::load(SnowflakeLoadParameters params, Renderer2d* glBindVertexArray(0); } +inline void updateFlake(SnowflakeParticleRenderer* renderer, SnowflakeUpdateData* ud, int32 s, float32 dtSeconds, bool addWind) { + // Once the snowflake has been set to die in this interval, we try and increment the + // startIndex + if (!ud->isAlive && renderer->startIndex == s) { + renderer->startIndex = (renderer->startIndex + 1) % renderer->numSnowflakes; + return; + } + + if (addWind) ud->velocity += renderer->windSpeed; + ud->position += ud->velocity * dtSeconds; + + if (ud->position.y < 0) + ud->isAlive = false; + + Mat4x4 m = Mat4x4().translateByVec2(ud->position); + for (int32 v = ud->vtxIdx; v < (ud->vtxIdx + ud->numVertices); v++) { + renderer->vertices.data[v].vMatrix = m; + } +} + void SnowflakeParticleRenderer::update(float32 dtSeconds) { timeUntilNextSpawnSeconds -= dtSeconds; if (timeUntilNextSpawnSeconds < 0) { @@ -121,16 +142,22 @@ void SnowflakeParticleRenderer::update(float32 dtSeconds) { addWind = true; } - for (int32 s = startIndex; s < endIndex; s++) { - SnowflakeUpdateData* ud = &updateData[s]; - - if (addWind) ud->velocity += windSpeed; - - ud->position += ud->velocity * dtSeconds; - - Mat4x4 m = Mat4x4().translateByVec2(ud->position); - for (int32 v = ud->vtxIdx; v < (ud->vtxIdx + ud->numVertices); v++) { - vertices.data[v].vMatrix = m; + if (startIndex < endIndex) { + for (int32 s = startIndex; s < endIndex; s++) { + SnowflakeUpdateData* ud = &updateData[s]; + updateFlake(this, ud, s, dtSeconds, addWind); + } + } + else { + int32 endRange = startIndex - numSnowflakes; + for (int32 s = endIndex - 1; s >= endRange; s--) { + SnowflakeUpdateData* ud; + if (s < 0) + ud = &updateData[numSnowflakes + s]; + else + ud = &updateData[s]; + + updateFlake(this, ud, s, dtSeconds, addWind); } } } diff --git a/themes/Snowflake.h b/themes/Snowflake.h index d44851b..f67c214 100644 --- a/themes/Snowflake.h +++ b/themes/Snowflake.h @@ -22,6 +22,7 @@ struct SnowflakeUpdateData { Vector2 velocity; Vector2 position; float32 rotation; + bool isAlive = false; bool onGround = false; int32 vtxIdx = 0; diff --git a/themes/dist/output.wasm b/themes/dist/output.wasm Binary files differindex 776adba..d78d57a 100755 --- a/themes/dist/output.wasm +++ b/themes/dist/output.wasm |