mirror of
https://codeberg.org/andyscott-pages/andyscott-dot-me.git
synced 2024-11-09 22:00:55 -05:00
Compare commits
No commits in common. "89be03ccf082be510b4e8fe5c5e0c8ba4e03d157" and "2f0b253f657a5e2f19bc916b41b513de712b75d1" have entirely different histories.
89be03ccf0
...
2f0b253f65
5 changed files with 150 additions and 133 deletions
80
2023-08-16_graduation.md
Normal file
80
2023-08-16_graduation.md
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
---
|
||||||
|
title: "Graduation"
|
||||||
|
description: "It's official!"
|
||||||
|
pubDate: "Aug 16 2023"
|
||||||
|
heroImage: "/post_images/graduation.jpg"
|
||||||
|
---
|
||||||
|
|
||||||
|
Hi all, sorry for the huge delay in updates, hopefully you can cut me a just little slack... __as I
|
||||||
|
finally graduated!__ I took an admittedly long break after classes ended in June and I am so happy
|
||||||
|
to be able to say that I have officially completed my bachelor's degree in Computer Science. I was
|
||||||
|
just going over some of my projects this afternoon as I continue to refine my CV and it's really
|
||||||
|
incredible how far I've come. Like many of life's great moments I couldn't have done any of this without
|
||||||
|
support, and I want to thank my partner Valerie. From the bottom of my heart, I appreciate all that
|
||||||
|
you've done to help me on this journey.
|
||||||
|
|
||||||
|
My final projects for Computer Graphics Shaders as well as Intro to Databases went exceptionally
|
||||||
|
well. For my shaders class I chose to create a realistic motion blur based on documentation in Nvidia's
|
||||||
|
[GPU Gems 3](https://developer.nvidia.com/gpugems/gpugems3/part-iv-image-effects/chapter-27-motion-blur-post-processing-effect).
|
||||||
|
I was rather excited about this project and I'd like to go through a few details for anyone who might
|
||||||
|
be interested, otherwise feel free to skip ahead.
|
||||||
|
|
||||||
|
I used a two pass process with OpenGL and GLSL in which I first simply rendered an object to a texture. Then to create a
|
||||||
|
per-fragment blur effect I sample the depth buffer in the fragment shader to find each pixel's current
|
||||||
|
position and world position.
|
||||||
|
|
||||||
|
// Sample depth buffer
|
||||||
|
float dbAtPixel = texture(uDepthBuf, vec3(st, 1.));
|
||||||
|
|
||||||
|
// Find view position
|
||||||
|
vec4 viewAtPixel = vec4(s * 2 - 1, (1 - t) * 2 - 1, dbAtPixel, 1);
|
||||||
|
|
||||||
|
// Convert to world coords, -1 to 1
|
||||||
|
vec4 worldPos = viewAtPixel / viewAtPixel.w;
|
||||||
|
|
||||||
|
Next, I multiply the world position by a "blur position" (a stand-in for the
|
||||||
|
direction of movement) to find a previous position. This allows me to calculate a velocity.
|
||||||
|
|
||||||
|
// No previous view in a static image, so we make one up with uBlurPos
|
||||||
|
vec4 prevPos = worldPos * uBlurPos;
|
||||||
|
|
||||||
|
// Put in range -1 to 1
|
||||||
|
prevPos = prevPos / prevPos.w;
|
||||||
|
|
||||||
|
// Find pixel velocity and scale it if desired
|
||||||
|
vec2 velocity = uVelScale * vec2((currPos - prevPos)/2.);
|
||||||
|
|
||||||
|
In the third and final stage I sample the color buffer in a loop, using the velocity to cacluate
|
||||||
|
each fragments color. The number of times the color buffer is sampled directly impacts the quality
|
||||||
|
of the effect, with higher sample rates resulting in a smoother and more realistic blur.
|
||||||
|
|
||||||
|
// Sample color buffer
|
||||||
|
vec4 color = texture(uColorBuf, st);
|
||||||
|
|
||||||
|
// Add velocity to st coords
|
||||||
|
st += velocity;
|
||||||
|
|
||||||
|
// Continue sampling color buffer until preferred number of samples is reached
|
||||||
|
for (int i = 1; i < uNumSamples; ++i, st += velocity) {
|
||||||
|
vec4 rgba = texture(uColorBuf, st);
|
||||||
|
color += rgba;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Average samples to get blur color
|
||||||
|
color = color / uNumSamples;
|
||||||
|
|
||||||
|
Of course, all of that was very boring if you don't know what it means. Let's see what it actually
|
||||||
|
looks like!
|
||||||
|
|
||||||
|
![2D bunny with orange and red stripes](/post_images/graduation/bunny_no_blur.jpg)
|
||||||
|
![2D bunny with orange and red stripes and a low quality blur](/post_images/graduation/bunny_low_sample.jpg)
|
||||||
|
![2D bunny with orange and red stripes and a high quality blur](/post_images/graduation/bunny_high_sample.jpg)
|
||||||
|
|
||||||
|
With those two classes completed I began the spring term and my final Capstone Project, a three
|
||||||
|
month long grind to produce a complete piece of professional quality software. I was grouped with
|
||||||
|
two other students and selected for the "3D Escape Room Game" - a video game intended to mimic the
|
||||||
|
experience of a real life escape room. This was the first full video game we had ever created so
|
||||||
|
naturally I was incredibly excited, but quite nervous too! I'll have a lot more to say about this
|
||||||
|
project in the near future, I was required to write a few blog-style assignments so I intend on
|
||||||
|
posting those as a series too. Unfortunately I don't think I'm allowed to make our code public, but
|
||||||
|
on the bright side you will be able to download and actually play the game!
|
Binary file not shown.
Before Width: | Height: | Size: 507 KiB |
|
@ -1,45 +0,0 @@
|
||||||
---
|
|
||||||
title: "Capstone Blog Series #1: Introductions"
|
|
||||||
description: "First of four posts that I wrote for my OSU Capstone Project"
|
|
||||||
pubDate: "Aug 25 2023"
|
|
||||||
heroImage: "/post_images/server-guts.jpg"
|
|
||||||
---
|
|
||||||
|
|
||||||
_Originally posted to blogs.oregonstate.edu on Apr 6, 2023_
|
|
||||||
|
|
||||||
To begin my inaugural post in this series I’d like to tell you a little bit about myself. My name
|
|
||||||
is Andy, and I’m excited to have you all with me as we navigate the next three months. I was
|
|
||||||
interested in computers at a very young age, and I went on to build my first desktop when I was in
|
|
||||||
high school. Since then I’ve built many more as well as a few home servers to host my own cloud
|
|
||||||
services. Despite my interest in computing I had always considered it a hobby, and my first degree
|
|
||||||
was in Ethics, History, and Public Policy. I thought I wanted to be lawyer (I didn’t). Instead of
|
|
||||||
continuing my education I went to work for an insurance company. While I wasn’t sure whether
|
|
||||||
insurance would be my career, I liked the people I worked with and it paid the bills. I ended up
|
|
||||||
working in claims processing for seven years until, unfortunately, I experienced some health issues
|
|
||||||
that forced me to leave the workforce altogether. It was not a happy time, yet as with any
|
|
||||||
life-changing event it also brought new perspective. As I began to recover I realized that, despite
|
|
||||||
the setbacks, I had a very rare opportunity to pursue an entirely new course in life. Where I had
|
|
||||||
previously only considered tinkering with computers a mere hobby, I became determined to leverage
|
|
||||||
my skills and start a new chapter.
|
|
||||||
|
|
||||||
I have taken on many roles in both my work and personal life. I’ve led projects, participated in
|
|
||||||
teams, collaborated in multi-disciplinary settings, and worked alone. One thing I’ve learned about
|
|
||||||
myself is that I am adaptable. I honestly don’t know what role I might settle into as a programmer
|
|
||||||
in a room full of other tech people because it’s a new experience for me in many ways. However, I
|
|
||||||
am becoming increasingly confident in my ability to rise to a challenge, and I suspect that my
|
|
||||||
flexibility will continue to be an asset in this new setting as well. I am not particularly nervous
|
|
||||||
about working in a group, I’ve done it many times before. That’s not to say I don’t have concerns
|
|
||||||
though. Namely, group work is rarely fair. Different people have different talents, expectations,
|
|
||||||
ambitions, and the list continues. It is my hope that my teammates and I are able to communicate
|
|
||||||
well enough that our contributions are equitable, even if they can’t be perfectly equal.
|
|
||||||
|
|
||||||
I was actually quite overwhelmed when I first browsed the list of projects that are available for
|
|
||||||
this term. Did I want more experience with low-level programming? Embedded systems? An industry
|
|
||||||
project? It was a lot to absorb. I gradually began to narrow things down and, to speak plainly, I
|
|
||||||
selected the projects that sounded like the most fun. I have no doubt the process will be
|
|
||||||
educational too, but considering it’s my last term at OSU I also wanted to create something that
|
|
||||||
would be meaningful to me personally. To that end, I focused on projects that would allow me to
|
|
||||||
enhance my skills with operating systems/computer architecture, graphics, and games. In addition to
|
|
||||||
learning more in those areas of personal interest, I also hope to gain a better understanding of
|
|
||||||
what it’s like to work collectively on a codebase. My previous classes have prepared me with theory
|
|
||||||
and isolated exercises, now it’s time to put that knowledge to use.
|
|
|
@ -16,13 +16,19 @@ import TimeLineElement from "../components/cv/TimeLine.astro";
|
||||||
when I was in high school. Since then I’ve built many more as well as a
|
when I was in high school. Since then I’ve built many more as well as a
|
||||||
few home servers to host my own cloud services. These experiences have led
|
few home servers to host my own cloud services. These experiences have led
|
||||||
me to become a strong proponent of free and open source software due to
|
me to become a strong proponent of free and open source software due to
|
||||||
its transparency, quality, innovation, and diversity. Despite my interest
|
its transparency, quality, innovation, and diversity.
|
||||||
in computing I had always considered it a hobby, and my first degree was
|
</div>
|
||||||
in Ethics, History, and Public Policy. Seeking to change the course of my
|
<div class="mb-5">
|
||||||
career, I recently earned my Computer Science degree and I can't wait to
|
Despite my interest in computing I had always considered it a hobby, and
|
||||||
start the next chapter!
|
my first degree was in Ethics, History, and Public Policy. I ended up
|
||||||
|
working in insurance for seven years until, unfortunately, I experienced
|
||||||
|
some health issues that forced me to leave the workforce altogether. It
|
||||||
|
was not a happy time, yet as with any life-changing event it also brought
|
||||||
|
new perspective. As I began to recover I realized that, despite the
|
||||||
|
setbacks, I had a very rare opportunity to pursue an entirely new course
|
||||||
|
in life. I am currently in the progress of finishing my Computer Science
|
||||||
|
degree and I can't wait to start the next chapter!
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-5"></div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-5">
|
<div class="mb-5">
|
||||||
|
@ -32,94 +38,22 @@ import TimeLineElement from "../components/cv/TimeLine.astro";
|
||||||
<div class="time-line-container grid gap-4 mb-10">
|
<div class="time-line-container grid gap-4 mb-10">
|
||||||
<TimeLineElement
|
<TimeLineElement
|
||||||
title="Bachelor of Science – Computer Science"
|
title="Bachelor of Science – Computer Science"
|
||||||
subtitle="Sep 2021 to Jun 2023 at Oregon State University, Corvallis, OR"
|
subtitle="2021 to 2023 at Oregon State University, Corvallis, OR"
|
||||||
/>
|
/>
|
||||||
<TimeLineElement
|
<TimeLineElement
|
||||||
title="Bachelor of Arts – Ethics, History, and Public Policy"
|
title="Bachelor of Arts – Ethics, History, and Public Policy"
|
||||||
subtitle="Aug 2005 to May 2009 at Carnegie-Mellon University, Pittsburgh, PA"
|
subtitle="2005 to 2009 at Carnegie-Mellon University, Pittsburgh, PA"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-5">
|
<div class="mb-5">
|
||||||
<div class="text-3xl w-full font-bold">Technical Skills</div>
|
<div class="text-3xl w-full font-bold">Work History</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="mb-10 text-justify">
|
|
||||||
<ul class="list-disc md:columns-5 columns-2 mx-6">
|
|
||||||
<li>C</li>
|
|
||||||
|
|
||||||
<li>C++</li>
|
|
||||||
|
|
||||||
<li>C#</li>
|
|
||||||
|
|
||||||
<li>Python</li>
|
|
||||||
|
|
||||||
<li>Go</li>
|
|
||||||
|
|
||||||
<li>x86 Assembly</li>
|
|
||||||
|
|
||||||
<li>MASM</li>
|
|
||||||
|
|
||||||
<li>OpenGL</li>
|
|
||||||
|
|
||||||
<li>GLSL</li>
|
|
||||||
|
|
||||||
<li>Unity</li>
|
|
||||||
|
|
||||||
<li>JavaScript</li>
|
|
||||||
|
|
||||||
<li>Node.js</li>
|
|
||||||
|
|
||||||
<li>Bash</li>
|
|
||||||
|
|
||||||
<li>Git</li>
|
|
||||||
|
|
||||||
<li>Software Configuration Management</li>
|
|
||||||
|
|
||||||
<li>CI/CD</li>
|
|
||||||
|
|
||||||
<li>Linux</li>
|
|
||||||
|
|
||||||
<li>Linux Server</li>
|
|
||||||
|
|
||||||
<li>MongoDB</li>
|
|
||||||
|
|
||||||
<li>MySQL</li>
|
|
||||||
|
|
||||||
<li>UX Research</li>
|
|
||||||
|
|
||||||
<li>Eclipse</li>
|
|
||||||
|
|
||||||
<li>Emacs</li>
|
|
||||||
|
|
||||||
<li>PyCharm</li>
|
|
||||||
|
|
||||||
<li>Visual Studio</li>
|
|
||||||
|
|
||||||
<li>Agile</li>
|
|
||||||
|
|
||||||
<li>Jira</li>
|
|
||||||
|
|
||||||
<li>Trello</li>
|
|
||||||
|
|
||||||
<li>Asana</li>
|
|
||||||
|
|
||||||
<li>Slack</li>
|
|
||||||
|
|
||||||
<li>MS Teams</li>
|
|
||||||
|
|
||||||
<li>Office Suite</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="mb-5">
|
|
||||||
<div class="text-3xl w-full font-bold">Professional Experience</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="time-line-container mb-10">
|
<div class="time-line-container mb-10">
|
||||||
<TimeLineElement
|
<TimeLineElement
|
||||||
title="Volunteer Technical Consultant"
|
title="Career Break: Health and Well-Being"
|
||||||
subtitle="Apr 2020 to Present at The Rocky River Chamber Music Society"
|
subtitle="Mar 2017 to Present"
|
||||||
/>
|
/>
|
||||||
<TimeLineElement
|
<TimeLineElement
|
||||||
title="Senior Representative, Annuity Claims"
|
title="Senior Representative, Annuity Claims"
|
||||||
|
@ -129,12 +63,59 @@ import TimeLineElement from "../components/cv/TimeLine.astro";
|
||||||
<TimeLineElement
|
<TimeLineElement
|
||||||
title="Representative"
|
title="Representative"
|
||||||
subtitle="Feb 2010 to Mar 2013 at New York Life Insurance Company"
|
subtitle="Feb 2010 to Mar 2013 at New York Life Insurance Company"
|
||||||
desc="Processed death claims against life insurance policies and annuities at a rate of up to 30 ‘express’ claims per day or 20 traditional claims per day. Fielded up to 50 phone calls per day from claimants and their representatives for assistance in navigating the insurance claims process."
|
desc="Processed death claims against life insurance policies and annuities. Assisted claimants and their representatives in both establishing new claims and finalizing existing claims."
|
||||||
/>
|
/>
|
||||||
<TimeLineElement
|
<TimeLineElement
|
||||||
title="Work Study Assistant, Equal Opportunity Services"
|
title="Work Study Assistant, Equal Opportunity Services"
|
||||||
subtitle="Jan 2006 to May 2009 at Carnegie-Mellon University"
|
subtitle="Jan 2006 to May 2009 at Carnegie-Mellon University"
|
||||||
desc="Converted existing student and employee files from traditional paper to a digital database. Proctored distraction reduced test-taking environment for learning disabled students. Acted as primary on-call contact for after hours assignments. Worked closely with the Manager of Disability Resources in meeting the needs of disabled students as delineated by federal guidelines and University policy."
|
desc="Converted existing student and employee files from traditional paper to a digital database. Proctored distraction reduced test-taking environment for learning disabled students. Acted as primary on-call contact for after hours assignments. Directly assisted the Manager of Disability Resources in meeting the needs of disabled students as delineated by federal guidelines and University policy."
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="mb-5">
|
||||||
|
<div class="text-3xl w-full font-bold">Volunteering</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ul class="list-disc mx-6 mb-10 grid gap-2">
|
||||||
|
<li>
|
||||||
|
Technical Consultant for the <a href="https://rrcms.org"
|
||||||
|
><strong>Rocky River Chamber Music Society</strong></a
|
||||||
|
> (2020-Present)
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="mb-5">
|
||||||
|
<div class="text-3xl w-full font-bold">Skills</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ul class="list-disc md:columns-5 columns-2 mx-6">
|
||||||
|
<li>C</li>
|
||||||
|
<li>C++</li>
|
||||||
|
<li>C#</li>
|
||||||
|
<li>Python</li>
|
||||||
|
<li>Go</li>
|
||||||
|
<li>x86 Assembly</li>
|
||||||
|
<li>MASM</li>
|
||||||
|
<li>OpenGL</li>
|
||||||
|
<li>GLSL</li>
|
||||||
|
<li>Unity</li>
|
||||||
|
<li>Node.js</li>
|
||||||
|
<li>MongoDB</li>
|
||||||
|
<li>MySQL</li>
|
||||||
|
<li>Emacs</li>
|
||||||
|
<li>Visual Studio</li>
|
||||||
|
<li>PyCharm</li>
|
||||||
|
<li>Eclipse</li>
|
||||||
|
<li>Git</li>
|
||||||
|
<li>CI/CD</li>
|
||||||
|
<li>Agile</li>
|
||||||
|
<li>Jira</li>
|
||||||
|
<li>Trello</li>
|
||||||
|
<li>Asana</li>
|
||||||
|
<li>Notion</li>
|
||||||
|
<li>Linux</li>
|
||||||
|
<li>Linux Server</li>
|
||||||
|
<li>UX Research</li>
|
||||||
|
<li>Office Suite</li>
|
||||||
|
</ul>
|
||||||
</BaseLayout>
|
</BaseLayout>
|
||||||
|
|
|
@ -15,13 +15,14 @@ const last_posts = posts.slice(0, 3);
|
||||||
<div class="text-xl py-1">Greetings, fellow human 🤘</div>
|
<div class="text-xl py-1">Greetings, fellow human 🤘</div>
|
||||||
<div class="text-5xl font-bold">I'm Andy Scott</div>
|
<div class="text-5xl font-bold">I'm Andy Scott</div>
|
||||||
<div class="text-3xl py-3 font-bold">
|
<div class="text-3xl py-3 font-bold">
|
||||||
Programmer & Free Software Advocate
|
CS Student & Free Software Advocate
|
||||||
</div>
|
</div>
|
||||||
<div class="py-2">
|
<div class="py-2">
|
||||||
<text class="text-lg">
|
<text class="text-lg">
|
||||||
I created this site to showcase my projects as well as occasionally blog
|
I created this site to showcase my projects as well as occasionally blog
|
||||||
my journey toward earning my computer science degree. Now that I've
|
my journey toward earning my computer science degree. Feel free to
|
||||||
graduated I've decided to keep it going and continue to share my experiences!
|
navigate the site via the sidebar, or continue reading if you’d like to
|
||||||
|
know more about my recent work!
|
||||||
</text>
|
</text>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue