diff --git a/src/app.py b/src/app.py
index 8dd5587..220318c 100644
--- a/src/app.py
+++ b/src/app.py
@@ -10,8 +10,8 @@ books = json.load(open("./static/json/books.json", "r"))
skillList = json.load(open("./static/json/skills.json", "r"))
timeline = json.load(open("./static/json/timeline.json", "r"))
pages = json.load(open("./static/json/pages.json", "r"))
-pages['about']['skillList'] = skillList
-pages['about']['timeline'] = timeline
+pages['home']['skillList'] = skillList
+# pages['about']['timeline'] = timeline
pages['projects']['projects'] = proj
pages['home']['books'] = books
pages['books']['books'] = books
diff --git a/src/static/css/App.css b/src/static/css/App.css
index 9580d7a..f0de231 100644
--- a/src/static/css/App.css
+++ b/src/static/css/App.css
@@ -26,8 +26,6 @@ html, body {
body {
margin: 0;
- /* background-image: url('../photos/plexus.jpg'); */
- /*url('https://i.pinimg.com/originals/d6/c3/ac/d6c3ac09021dbc0cda8ee27837d2c795.png')*/
background-attachment: fixed;
background-size: 100% auto;
background-clip: border-box;
@@ -81,17 +79,11 @@ body {
filter: brightness(50%);
}
-h1, h2 {
+h1 {
color: #ecebeb;
}
-h2 {
- font-size: 2rem;
- margin-top: 1rem;
- margin-bottom: 2rem;
-}
-
-h3, h4, h5 {
+h2, h3, h4, h5 {
color: #a8a8a8;
}
@@ -136,7 +128,7 @@ a {
background-color: #1a1a1a;
width: 100vw;
z-index: 99;
- position: fixed;
+ position: sticky;
top: 0;
left: 0;
transition: .4s;
@@ -152,6 +144,7 @@ a {
#homeName {
margin-top: .25em;
+ margin-bottom: 0;
}
#name-container {
@@ -259,7 +252,6 @@ a {
}
.foregroundContent {
- padding-top: 4rem;
padding-left: 8rem;
max-width: calc(100%-8rem);
padding-bottom: 1rem;
@@ -275,7 +267,7 @@ a {
}
.homegroundContent {
- padding-top: 5em;
+ padding-top: 1em;
padding-left: 0em;
}
@@ -315,18 +307,18 @@ a {
#nametag {
padding: 2em 3em;
- display: inline-block;
background-color: rgb(44, 44, 44, .75);
- border-radius: 1em;
- border: solid black 4px;
text-align: center;
- max-width: 30em;
}
#nametag *:not(h1) {
text-shadow: .1em .1em rgba(255, 255, 255, 0.2);
}
+#nametag h2{
+ font-size: medium;
+}
+
#nametag p {
text-shadow: none;
color: #a8a8a8;
@@ -351,6 +343,14 @@ a {
justify-content: space-around;
}
+.equalitems {
+ column-gap: 1em;
+}
+
+.equalitems > * {
+ flex: 1 1 0;
+}
+
.vFlex {
display: flex;
flex-direction: column;
@@ -362,6 +362,10 @@ a {
max-width: 100%;
}
+#aboutCards > * {
+ margin: .25em;
+}
+
.spaceBetween {
justify-content: space-between;
}
@@ -370,6 +374,11 @@ a {
justify-content: left;
}
+.hSpacer {
+ width: 2em;
+ height: 0;
+}
+
.relative {
position: relative;
}
@@ -588,6 +597,12 @@ a {
left: 0;
}
+#contentStuffer {
+ display: flex;
+ flex-direction: column;
+ min-height: 100vh;
+}
+
.socials {
margin-left: 1rem;
width: 0px;
@@ -664,6 +679,26 @@ a {
background-size: cover;
}
+#desktopSpacer {
+ height: min(20em, 30vh);
+}
+
+.homeSubContent {
+ background-color: rgb(24, 24, 24, .85);
+ padding: 0 8em;
+ padding-top: 1em;
+}
+
+#homeProjects {
+ padding: 1em;
+}
+
+.homeProject {
+ width: 20em;
+ height:5em;
+
+}
+
.heightBox {
height: 100%;
display: flex;
@@ -674,9 +709,6 @@ a {
.chess {
max-width: 300px;
border: none;
- overflow: scroll;
- /* transform: scale(.8);
- float: right; */
}
#chessProfile {
@@ -971,6 +1003,22 @@ a {
border-bottom: solid 3px rgb(156, 49, 45, .4);
}
+ .footer {
+ position: unset;
+ }
+
+ #footerSpacer {
+ flex-grow: 1;
+ }
+
+ #aboutCards {
+ flex-direction: column;
+ }
+
+ #aboutCards > * {
+ margin: .25em auto;
+ }
+
.header h1 {
font-size: 1.5rem;
}
@@ -993,6 +1041,10 @@ a {
margin: 0;
}
+ .vertOnMobile {
+ flex-direction: column;
+ }
+
.projectList {
width: 95%;
}
@@ -1017,6 +1069,10 @@ a {
padding-top: 5em;
}
+ .homeSubContent {
+ padding: 1em;
+ }
+
.onRight {
margin: unset;
margin-top: 3rem;
diff --git a/src/static/js/responsive.js b/src/static/js/responsive.js
index 0235a16..ceda9b3 100644
--- a/src/static/js/responsive.js
+++ b/src/static/js/responsive.js
@@ -1,35 +1,8 @@
-window.onload = function () {
- onLoaded();
-};
-function onLoaded() {
- window.onresize = function () {
- resizer();
- };
- resizer();
-}
-
-function resizer() {
- const e = document.querySelector(".navControl");
- if (window.innerWidth > 1400) {
- // desktop view
- e.style.maxHeight = `${e.scrollHeight + 10}px`;
- } else {
- // mobile view
- document.querySelector(".header").style.borderBottomWidth = "3px";
- e.style.maxHeight = "0px";
- document.querySelectorAll(".navElement *").forEach((x) => {
- x.style.paddingTop = ".3rem";
- x.style.paddingBottom = ".3rem";
- x.style.fontSize = "1rem";
- });
- }
-}
-
-function toggleMenu() {
+function toggleMenu(collapse=false) {
if (window.innerWidth < 1400) {
const e = document.querySelector(".navControl");
const bar = document.querySelector(".header");
- if (e.style.maxHeight === "0px") {
+ if (e.style.maxHeight === "0px" && !collapse) {
e.style.maxHeight = `${e.scrollHeight + 10}px`;
bar.style.borderBottomWidth = "0px";
} else {
@@ -39,7 +12,7 @@ function toggleMenu() {
}
}
-async function goto(location, { push = true, toggle = true } = {}) {
+async function goto(location, { push = true } = {}) {
let a = await fetch("/api/goto/" + location, {
credentials: "include",
method: "GET",
@@ -56,9 +29,7 @@ async function goto(location, { push = true, toggle = true } = {}) {
root.querySelectorAll("script").forEach((x) => {
eval(x.innerHTML);
});
- if (toggle) {
- toggleMenu();
- }
+ toggleMenu(collapse=true);
document.querySelector("title").textContent = metadata["title"];
if (push) {
history.pushState(null, null, metadata["canonical"]);
diff --git a/src/static/json/books.json b/src/static/json/books.json
index 5ec3fa4..c19ab5e 100644
--- a/src/static/json/books.json
+++ b/src/static/json/books.json
@@ -1,9 +1,9 @@
{
"selection": [
- "The Rational Optimist",
- "The Accidental Superpower",
- "Freakonomics",
- "Zero To One"
+ "The Tyranny of Metrics",
+ "When to Rob a Bank",
+ "The End of the World is Just the Beginning",
+ "The Rational Optimist"
],
"books": {
"The Rational Optimist": {
@@ -31,6 +31,11 @@
"link": "https://freakonomics.com/books/",
"review": "More like the other Freakonomics books than I expected (cracked storytelling), which is still excellent, but I wished there was greater insights into seeing past conventional wisdom, which is what thinking like a freak means. Still a great book."
},
+ "The Tyranny of Metrics": {
+ "filename": "TyrannyOfMetrics.jpg",
+ "link": "https://www.amazon.com/Tyranny-Metrics-Jerry-Z-Muller/dp/0691174954",
+ "review": "Library find. Very appreciated read given my field of study. Adds a new lens on the cost of information and how it impacts us from the cube office to the oval office"
+ },
"The Accidental Superpower": {
"filename": "theAccidentalSuperpower.jpeg",
"link": "https://zeihan.com/",
diff --git a/src/static/json/pages.json b/src/static/json/pages.json
index 2298159..666b9f1 100644
--- a/src/static/json/pages.json
+++ b/src/static/json/pages.json
@@ -11,12 +11,6 @@
"description": "Recent projects by Andrew Simonson on his lovely portfolio website :)",
"canonical": "/projects"
},
- "about": {
- "template": "about.html",
- "title": "Andrew Simonson - About Me",
- "description": "About Andrew Simonson",
- "canonical": "/about"
- },
"books": {
"template": "books.html",
"title": "Andrew Simonson - Bookshelf",
diff --git a/src/static/json/projects.json b/src/static/json/projects.json
index 74a1471..3945b2e 100644
--- a/src/static/json/projects.json
+++ b/src/static/json/projects.json
@@ -13,64 +13,18 @@
]
]
},
- "LogicFlow": {
- "status": "incomplete",
- "classes": "programming",
- "bgi": "logicflow.jpg",
- "content": "Translate paragraphs to logical flowcharts, powered by ChatGPT Winner of CSHacks' Best Use of AI by Paychex",
- "links": [
- [
- "github", "https://github.com/asimonson1125/LogicFlow", "git repo"
- ],
- [
- "globe", "https://devpost.com/software/logicflow", "Hackathon listing"
- ]
- ]
- },
- "Alternative Energy Map": {
- "status": "complete",
- "classes": "pinned geospacial",
- "bgi": "geovisF.png",
- "content": "ArcGIS Map of the most effective alternative energy sources in the continental United States",
- "links": [
- [
- "globe",
- "https://ritarcgis.maps.arcgis.com/apps/dashboards/17d5bda01edc4a2eb6205a4922d889c9",
- "ArcGIS"
- ]
- ]
- },
"OccupyRIT": {
"status": "WIP",
- "classes": "programming",
+ "classes": "pinned programming",
"bgi": "occupyRIT.png",
"content": "Collects RIT Gym Occupancy data, determining busiest workout times",
"links": [
["github", "https://github.com/asimonson1125/Occupy-RIT", "git repo"]
]
},
- "Chesscom Embeds": {
- "status": "complete",
- "classes": "programming",
- "bgi": "chessbed.png",
- "content": "A template for creating Chess.com user profile embeds",
- "links": [
- ["github", "https://github.com/asimonson1125/chesscom-embed", "git repo"]
- ]
- },
- "Resume": {
- "status": "WIP",
- "classes": "programming",
- "bgi": "resume.png",
- "content": "My Resume, made in LaTeX with a custom design derived by the AltaCV template on OverLeaf",
- "links": [
- ["github", "https://github.com/asimonson1125/Resume", "git repo"],
- ["globe", "https://asimonson.com/Resume.pdf", "Resume"]
- ]
- },
"Digital Portfolio": {
"status": "WIP",
- "classes": "programming",
+ "classes": "pinned programming",
"bgi": "website.png",
"content": "My personal portfolio website (you're on it now!)",
"links": [
@@ -88,32 +42,6 @@
["globe", "https://slate.csh.rit.edu", "site link"]
]
},
- "HvZ Bot": {
- "status": "complete",
- "classes": "programming",
- "bgi": "",
- "content": "A Discord bot to handle role management and statistics for RIT's Humans vs. Zombies games",
- "links": [
- ["github", "https://github.com/asimonson1125/HvZ-bot", "git repo"]
- ]
- },
- "FinTech": {
- "status": "WIP",
- "classes": "pinned programming",
- "bgi": "",
- "content": "A team derived from the RIT Financial Management Association dedicated to learning about financial management of equities using automated solutions developed by students",
- "links": [
- ["github", "https://github.com/LukeHorigan/Financial-Management-Assocation-", "git repo"]
- ]
- },
- "Browser Trivia Bot": {
- "status": "complete",
- "classes": "programming",
- "bgi": "",
- "content": "A tampermonkey tool used to automatically answer and submit online trivia forms, which can be tailored to different site layouts. Source currently private.",
- "links": [
- ]
- },
"NationsGame Rolls Sim": {
"status": "complete",
"classes": "programming",
@@ -122,24 +50,5 @@
"links": [
["github", "https://github.com/asimonson1125/NG-Rolls-Simulator", "git repo"]
]
- },
- "VEXcode Button Engine": {
- "status": "complete",
- "classes": "programming",
- "bgi": "vexcodeButtons.jpeg",
- "content": "VEXcode button library + examples and template for the VEX V5 brain",
- "links": [
- ["github", "https://github.com/asimonson1125/VEXcode-Button-Generator", "git repo"],
- ["globe", "https://www.vexforum.com/t/vexcode-button-generator/72450", "Forum post"]
- ]
- },
- "WinKeylogger": {
- "status": "complete",
- "classes": "programming",
- "bgi": "",
- "content": "A C++ keylogger for windows based off a Udemy course with my custom modifications and powershell script",
- "links": [
- ["github", "https://github.com/asimonson1125/WinKeylogger", "git repo"]
- ]
}
}
diff --git a/src/static/json/skills.json b/src/static/json/skills.json
index 33fdd97..9a8e7df 100644
--- a/src/static/json/skills.json
+++ b/src/static/json/skills.json
@@ -1,5 +1,14 @@
{
"Data and AI": {
+ "Tools": {
+ "Microsoft Azure": {
+ "Databricks": {},
+ "Data Factory": {},
+ "Stream Analytics": {}
+ },
+ "Apache Spark": {},
+ "Visual Basic for Applications (Excel)": {}
+ },
"Python": {
"PyTorch/TensorFlow": {},
"Numpy/Pandas": {},
@@ -11,16 +20,19 @@
"Frontend": {
"Flask (Python)": {},
"React (Javascript)": {},
- "Angular (Typescript)": {}
+ "SASS/SCSS": {}
},
"Backend & DevOps": {
+ "Backend": {
+ "Rust": {},
+ "C#": {},
+ "C++": {}
+ },
"DevOps": {
"Docker": {},
"Microsoft Azure": {},
"Kubernetes/Openshift": {},
"Bash": {}
- },
- "C#": {},
- "C++": {}
+ }
}
}
diff --git a/src/static/photos/AcademicTeam.jpg b/src/static/photos/AcademicTeam.jpg
deleted file mode 100644
index 3cc0ad8..0000000
Binary files a/src/static/photos/AcademicTeam.jpg and /dev/null differ
diff --git a/src/static/photos/WeThePeople.jpg b/src/static/photos/WeThePeople.jpg
deleted file mode 100644
index 0e92ca3..0000000
Binary files a/src/static/photos/WeThePeople.jpg and /dev/null differ
diff --git a/src/static/photos/WeThePeople_Districts.jpg b/src/static/photos/WeThePeople_Districts.jpg
deleted file mode 100644
index 53eac4d..0000000
Binary files a/src/static/photos/WeThePeople_Districts.jpg and /dev/null differ
diff --git a/src/static/photos/WeThePeople_NationalsSetup.jpg b/src/static/photos/WeThePeople_NationalsSetup.jpg
deleted file mode 100644
index 413a31d..0000000
Binary files a/src/static/photos/WeThePeople_NationalsSetup.jpg and /dev/null differ
diff --git a/src/static/photos/books/TyrannyOfMetrics.jpg b/src/static/photos/books/TyrannyOfMetrics.jpg
new file mode 100644
index 0000000..652a3f2
Binary files /dev/null and b/src/static/photos/books/TyrannyOfMetrics.jpg differ
diff --git a/src/static/photos/chessbed.png b/src/static/photos/chessbed.png
deleted file mode 100644
index 0400d6d..0000000
Binary files a/src/static/photos/chessbed.png and /dev/null differ
diff --git a/src/static/photos/geovisF.png b/src/static/photos/geovisF.png
deleted file mode 100644
index 172189e..0000000
Binary files a/src/static/photos/geovisF.png and /dev/null differ
diff --git a/src/static/photos/hagerstownVex2019.jpg b/src/static/photos/hagerstownVex2019.jpg
deleted file mode 100644
index 0cff15a..0000000
Binary files a/src/static/photos/hagerstownVex2019.jpg and /dev/null differ
diff --git a/src/static/photos/itsa_me.JPG b/src/static/photos/itsa_me.JPG
deleted file mode 100644
index 6cd7514..0000000
Binary files a/src/static/photos/itsa_me.JPG and /dev/null differ
diff --git a/src/static/photos/logicflow.jpg b/src/static/photos/logicflow.jpg
deleted file mode 100644
index 7ebac96..0000000
Binary files a/src/static/photos/logicflow.jpg and /dev/null differ
diff --git a/src/static/photos/plexus.jpg b/src/static/photos/plexus.jpg
deleted file mode 100644
index b4de7b2..0000000
Binary files a/src/static/photos/plexus.jpg and /dev/null differ
diff --git a/src/static/photos/resume.png b/src/static/photos/resume.png
deleted file mode 100644
index f810c68..0000000
Binary files a/src/static/photos/resume.png and /dev/null differ
diff --git a/src/static/photos/vexcodeButtons.jpeg b/src/static/photos/vexcodeButtons.jpeg
deleted file mode 100644
index ad7a861..0000000
Binary files a/src/static/photos/vexcodeButtons.jpeg and /dev/null differ
diff --git a/src/static/sitemap.xml b/src/static/sitemap.xml
index 8fc4dbd..ff372c7 100644
--- a/src/static/sitemap.xml
+++ b/src/static/sitemap.xml
@@ -2,9 +2,9 @@
- I'm Andrew Simonson, a senior undergrad at - Rochester Institute of Technology - in the Computer Science BS program (international relations minor), pursuing a career in data - science with a focus on predictive analytics. -
-
-
- Ominous positivity is kinda my thing.
-
-
+ I'm Andrew Simonson,
+ a senior undergrad at
+ Rochester Institute of Technology
+ in the Computer Science BS program (international relations
+ minor), pursuing a career in data science. I have study clusters in
+ Data Science and AI and run independent studies in probability theory.
+
+
+ I've worked on a variety of projects, from building analytical tools
+ performing reactive chemical safety to live feed processing for
+ frantic work environments looking to improve service. I also do
+ personal experimentation leveraging open source info streams ranging
+ from human traffic around campus to watershed temperature monitoring.
+
+
+ My philosophy is that if it isn't explainable then you didn't learn
+ anything. Data without sound methodology is at best meaningless and at
+ worst counterproductive and costly. Bringing logical transparency and
+ literal deductions back into digital analysis enables us to learn
+ about the world through computing, rather than letting computers make
+ decisions for the world we think we know. We as data scientists
+ shouldn't just be building heuristics. We should be making discoveries
+ and building new knowledge.
+
+
+ Bring the scientific method to AI.
+
+
+
-
-
-
Project status is indicated by the color of the project card:
@@ -14,6 +13,8 @@
⬤ - Incomplete