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": {},
"Frontend": { "Declarative Pipelines": {},
"Flask (Python)": {}, "ArcGIS": {}
"React (Javascript)": {},
"SASS/SCSS": {}
},
"Backend & DevOps": {
"Backend": {
"Rust": {},
"C#": {}
}, },
"DevOps": { "DevOps": {
"Docker": {}, "Docker": {},
"Microsoft Azure": {}, "Microsoft Azure": {},
"Databricks": {},
"Kubernetes/Openshift": {}, "Kubernetes/Openshift": {},
"Cloudflare": {}, "Cloudflare": {},
"Bash": {} "Bash": {}
} },
"Frontend": {
"Flask (Python)": {},
"REST APIs": {},
"Web Scraping": {}
},
"Offline Skills": {
"Circuitry": {},
"Skiing": {},
"Chess": {},
"Plinking": {},
"Building something with trash that solves my problems": {}
} }
} }

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,10 +1,16 @@
{% 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>
</div>
{% endif %}
</div>
{% endmacro %} {% endmacro %}
{% macro skills(skills) %} {% macro skills(skills) %}

View File

@@ -2,6 +2,7 @@
<div class="foreground"></div> <div class="foreground"></div>
<div class="foregroundContent"> <div class="foregroundContent">
<div class="flex equalitems vertOnMobile"> <div class="flex equalitems vertOnMobile">
<div>
<div> <div>
<h2 class="concentratedHead">About Me</h2> <h2 class="concentratedHead">About Me</h2>
<p> <p>
@@ -12,30 +13,32 @@
recently completed the <b>Computer Science BS</b> program recently completed the <b>Computer Science BS</b> program
(international relations minor) with a focus on probability (international relations minor) with a focus on probability
theory. theory.
<br /> <!-- <br />
<br /> <br />
I started in ~2017, reverse engineering probablistic logic I started in ~2017, reverse engineering probablistic logic
models in games and developing interfaces to recreate my models in games and developing interfaces to recreate my
findings for friends. Now I develop tracable AI built on findings for friends. Now I develop tracable AI built on
deductive reasoning, maintaning scientific methodology in an deductive reasoning, maintaning scientific methodology in an
industry obsessed with implicit rules and exclusive empiricism. industry obsessed with implicit rules and exclusive empiricism.
<!-- As the analysis grew more sophisticated, so too did the tech As the analysis grew more sophisticated, so too did the tech
stack - to the point that I now manage most services, like this stack - to the point that I now manage most services, like this
website, end to end, container image to insight visual. --> website, end to end, container image to insight visual. -->
<br /> <br />
<br /> <br />
I get bored and throw random stuff on this website. It's a form I get bored and throw random stuff on this website.<br/>
of unprofessional development and I swear by this form of This is what unprofessional development looks like.
learning.
</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>