This commit is contained in:
2026-02-12 17:57:30 -06:00
parent efaf2fb169
commit 2ae714db48
9 changed files with 95 additions and 90 deletions

View File

@@ -174,7 +174,6 @@ tr {
margin-bottom: 0px; margin-bottom: 0px;
margin-left: 0rem; margin-left: 0rem;
background-color: #1a1a1a; background-color: #1a1a1a;
width: 100vw;
z-index: 99; z-index: 99;
position: sticky; position: sticky;
top: 0; top: 0;
@@ -522,7 +521,6 @@ tr {
} }
.skill { .skill {
display: none;
padding: .2em; padding: .2em;
color: rgb(235, 235, 235); color: rgb(235, 235, 235);
} }
@@ -535,19 +533,25 @@ tr {
color: rgb(170, 170, 170); color: rgb(170, 170, 170);
} }
#skillTree > .skill { .skill-children {
display: block; display: grid;
grid-template-rows: 0fr;
transition: grid-template-rows 0.3s ease;
} }
.skill > .skill { .skill.activeSkill > .skill-children {
grid-template-rows: 1fr;
}
.skill-children-inner {
overflow: hidden;
}
.skill-children-inner > .skill {
font-size: large !important; font-size: large !important;
padding-left: .5em; padding-left: .5em;
} }
.skill.activeSkill > .skill {
display: block !important;
}
.skill > .skillname { .skill > .skillname {
text-decoration: underline; text-decoration: underline;
cursor: pointer; cursor: pointer;

View File

@@ -27,15 +27,13 @@ function toggleCheckbox(dir) {
} }
function activeSkill(obj) { function activeSkill(obj) {
if (obj.parentElement.classList.contains("activeSkill")) { let skill = obj.closest(".skill");
obj.parentElement.classList.remove("activeSkill"); if (skill.classList.contains("activeSkill")) {
skill.classList.remove("activeSkill");
return; return;
} }
// document.querySelectorAll(".skill").forEach((x) => { while (skill) {
// x.classList.remove("activeSkill"); skill.classList.add("activeSkill");
// }); skill = skill.parentElement.closest(".skill");
while (obj.parentElement.classList.contains("skill")) {
obj = obj.parentElement;
obj.classList.add("activeSkill");
} }
} }

View File

@@ -1,5 +1,5 @@
const balls = []; const balls = [];
const density = 0.00003; const density = 0.00005;
let screenWidth = window.innerWidth + 10; let screenWidth = window.innerWidth + 10;
let screenHeight = window.innerHeight + 10; let screenHeight = window.innerHeight + 10;

View File

@@ -1,41 +1,35 @@
{ {
"Tools": {
"Microsoft Azure": {
"Databricks": {},
"Data Factory": {},
"Stream Analytics": {}
},
"Databricks": {},
"Apache Spark": {},
"Visual Basic for Applications (Excel)": {}
},
"Data and AI": { "Data and AI": {
"Python": { "ML": {
"PyTorch/TensorFlow": {}, "PySpark ML": {},
"Numpy/Pandas": {}, "Numpy/Pandas/Polars": {},
"Scikit/Sklearn": {}, "TensorFlow": {},
"Selenium/BS4": {}, "Scikit": {}
"Pyspark": {}
}, },
"R": {}, "PySpark": {},
"SQL": {} "Selenium/BS4 Web Hacking": {},
"SQL": {},
"Declarative Pipelines": {},
"ArcGIS": {}
},
"DevOps": {
"Docker": {},
"Microsoft Azure": {},
"Databricks": {},
"Kubernetes/Openshift": {},
"Cloudflare": {},
"Bash": {}
}, },
"Frontend": { "Frontend": {
"Flask (Python)": {}, "Flask (Python)": {},
"React (Javascript)": {}, "REST APIs": {},
"SASS/SCSS": {} "Web Scraping": {}
}, },
"Backend & DevOps": { "Offline Skills": {
"Backend": { "Circuitry": {},
"Rust": {}, "Skiing": {},
"C#": {} "Chess": {},
}, "Plinking": {},
"DevOps": { "Building something with trash that solves my problems": {}
"Docker": {},
"Microsoft Azure": {},
"Kubernetes/Openshift": {},
"Cloudflare": {},
"Bash": {}
}
} }
} }

View File

@@ -5,7 +5,7 @@
<loc>https://asimonson.com/projects</loc> <loc>https://asimonson.com/projects</loc>
<loc>https://asimonson.com/Resume</loc> <loc>https://asimonson.com/Resume</loc>
<loc>https://asimonson.com/duck</loc> <loc>https://asimonson.com/duck</loc>
<loc>https://asimonson.com/books</loc> <loc>https://asimonson.com/status</loc>
<lastmod>2024-07-24</lastmod> <lastmod>2026-02-12</lastmod>
</url> </url>
</urlset> </urlset>

View File

@@ -20,7 +20,7 @@
property="og:image" property="og:image"
content="{{ url_for('static', filename='icons/rasterLogoCircle.png') }}" content="{{ url_for('static', filename='icons/rasterLogoCircle.png') }}"
/> />
<meta property="og:url" content="{{ var['canonical'] }}" /> <meta property="og:url" content="{{ request.url_root | trim('/') }}{{ var['canonical'] }}" />
<meta property="twitter:title" content="Andrew Simonson" /> <meta property="twitter:title" content="Andrew Simonson" />
<meta name="twitter:description" content="{{ var['description'] }}" /> <meta name="twitter:description" content="{{ var['description'] }}" />
<meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:card" content="summary_large_image" />
@@ -50,7 +50,7 @@
rel="stylesheet" rel="stylesheet"
href="{{ url_for('static', filename='css/App.css') }}" href="{{ url_for('static', filename='css/App.css') }}"
/> />
<link rel="canonical" href="{{ var['canonical'] }}" /> <link rel="canonical" href="{{ request.url_root | trim('/') }}{{ var['canonical'] }}" />
<script defer src="{{ url_for('static', filename='js/checkbox.js') }}"></script> <script defer src="{{ url_for('static', filename='js/checkbox.js') }}"></script>
<script defer src="{{ url_for('static', filename='js/responsive.js') }}"></script> <script defer src="{{ url_for('static', filename='js/responsive.js') }}"></script>
<script src="{{ url_for('static', filename='js/chessbed.js') }}"></script> <script src="{{ url_for('static', filename='js/chessbed.js') }}"></script>

View File

@@ -20,28 +20,27 @@
<!--<INSERT SMALL BANNER HERE FOR PROJECT IMAGECARD CAROUSEL>--> <!--<INSERT SMALL BANNER HERE FOR PROJECT IMAGECARD CAROUSEL>-->
<div id="desktopSpacer"></div> <div id="desktopSpacer"></div>
<div class="homeSubContent"> <div class="homeSubContent">
<img class='blinkies' alt='My Brain is Glowing' src="{{ url_for('static', filename='photos/blinkies/brainglow.gif') }}" loading="lazy" />
<img class='blinkies' alt='Pepsi Addict' src="{{ url_for('static', filename='photos/blinkies/pepsiaddict.gif') }}" loading="lazy" /> <img class='blinkies' alt='Pepsi Addict' src="{{ url_for('static', filename='photos/blinkies/pepsiaddict.gif') }}" loading="lazy" />
<img class='blinkies' alt='I Fear No Beer' src="{{ url_for('static', filename='photos/blinkies/fearnobeer.gif') }}" loading="lazy" />
<img class='blinkies' alt='Secret Message' src="{{ url_for('static', filename='photos/blinkies/tooclose.gif') }}" loading="lazy" /> <img class='blinkies' alt='Secret Message' src="{{ url_for('static', filename='photos/blinkies/tooclose.gif') }}" loading="lazy" />
<img class='blinkies' alt="They took my blood but it wasn't DNA, it was USA" src="{{ url_for('static', filename='photos/blinkies/usa.gif') }}" loading="lazy" /> <img class='blinkies' alt="They took my blood but it wasn't DNA, it was USA" src="{{ url_for('static', filename='photos/blinkies/usa.gif') }}" loading="lazy" />
<img class='blinkies' alt='Bob the Builder gif' src="{{ url_for('static', filename='photos/blinkies/bobthebuilder.gif') }}" loading="lazy" /> <img class='blinkies' alt='Bob the Builder gif' src="{{ url_for('static', filename='photos/blinkies/bobthebuilder.gif') }}" loading="lazy" />
<div> <div>
<br /> <br />
<strong> You've reached the website for Andrew Simonson's personal online shenanigans.</strong> <strong> You've reached the website for Andrew Simonson's digital shenanigans.</strong>
<h3>Now What?</h3> <h3>Now What?</h3>
<p> <p>
Go back and find the link that I originally shared. Or poke around. Be your own person.</br> Go back and find the link that I originally shared. Or poke around. Be your own person.</br>
I guess I'll grant myself some titles while I'm at it: I'll grant myself some titles while I'm at it:
</p> </p>
<ul> <ul>
<li>Load-Bearing Coconut</li>
<li>Wicked Wizard of the West</li> <li>Wicked Wizard of the West</li>
<li>Enemy of Node.js, Hater of Bloat</li> <li>Enemy of Node.js, Hater of Bloat</li>
<li>Load-Bearing Coconut</li>
<li>Creator and Harnesser of Energy</li> <li>Creator and Harnesser of Energy</li>
</ul> </ul>
</div> </div>
<br /> <br />
{#
<div id="aboutCards" class="flex"> <div id="aboutCards" class="flex">
<div class="chess"> <div class="chess">
{% from 'partials/chess.html' import chess %} {{ {% from 'partials/chess.html' import chess %} {{
@@ -53,6 +52,7 @@
</div> </div>
<br /> <br />
</div> </div>
#}
</div> </div>
{% endblock %} {% endblock %}
</div> </div>

View File

@@ -1,9 +1,15 @@
{% macro expandSkill(dict, name, classes="") %} {% macro expandSkill(dict, name, classes="") %}
<div class='skill {{ classes }}' data-length='{{ dict[name]|length }}'> <div class='skill {{ classes }}' data-length='{{ dict[name]|length }}'>
<div onclick='activeSkill(this)' class='skillname'>{{ name }}</div> <div onclick='activeSkill(this)' class='skillname'>{{ name }}</div>
{% if dict[name]|length > 0 %}
<div class='skill-children'>
<div class='skill-children-inner'>
{% for child in dict[name] %} {% for child in dict[name] %}
{{ expandSkill(dict[name], child) }} {{ expandSkill(dict[name], child) }}
{% endfor %} {% endfor %}
</div>
</div>
{% endif %}
</div> </div>
{% endmacro %} {% endmacro %}

View File

@@ -3,39 +3,42 @@
<div class="foregroundContent"> <div class="foregroundContent">
<div class="flex equalitems vertOnMobile"> <div class="flex equalitems vertOnMobile">
<div> <div>
<h2 class="concentratedHead">About Me</h2> <div>
<p> <h2 class="concentratedHead">About Me</h2>
I'm Andrew Simonson<!--, CEO of the anti-thermodynamics syndicate.-->, <p>
a <strong>Data Scientist at Ecolab</strong> and a graduate Data I'm Andrew Simonson<!--, CEO of the anti-thermodynamics syndicate.-->,
Science student at a <strong>Data Scientist at Ecolab</strong> and a graduate Data
<strong>Rochester Institute of Technology</strong>, having Science student at
recently completed the <b>Computer Science BS</b> program <strong>Rochester Institute of Technology</strong>, having
(international relations minor) with a focus on probability recently completed the <b>Computer Science BS</b> program
theory. (international relations minor) with a focus on probability
<br /> theory.
<br /> <!-- <br />
I started in ~2017, reverse engineering probablistic logic <br />
models in games and developing interfaces to recreate my I started in ~2017, reverse engineering probablistic logic
findings for friends. Now I develop tracable AI built on models in games and developing interfaces to recreate my
deductive reasoning, maintaning scientific methodology in an findings for friends. Now I develop tracable AI built on
industry obsessed with implicit rules and exclusive empiricism. deductive reasoning, maintaning scientific methodology in an
<!-- As the analysis grew more sophisticated, so too did the tech industry obsessed with implicit rules and exclusive empiricism.
stack - to the point that I now manage most services, like this As the analysis grew more sophisticated, so too did the tech
website, end to end, container image to insight visual. --> stack - to the point that I now manage most services, like this
<br /> website, end to end, container image to insight visual. -->
<br /> <br />
I get bored and throw random stuff on this website. It's a form <br />
of unprofessional development and I swear by this form of I get bored and throw random stuff on this website.<br/>
learning. This is what unprofessional development looks like.
</p> </p>
<h3 class='concentratedHead'> </div>
<br/>
<br/>
<h4 class='concentratedHead'>
I also have a I also have a
<a href="Resume_Simonson_Andrew.pdf" target="_blank">resume</a> <a href="Resume_Simonson_Andrew.pdf" target="_blank">resume</a>
for some reason. for unexplained reasons.
</h3> </h4>
</div> </div>
<div id="skills"> <div id="skills">
<h2 id="skillstag">Skills</h2> <h2 id="skillstag">Technologies</h2>
{% from 'partials/skills.html' import skills %} {{ {% from 'partials/skills.html' import skills %} {{
skills(var['skillList']) }} skills(var['skillList']) }}
</div> </div>