<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>All Posts - Andrews Website</title><link>https://andrew.com/posts/</link><description>All Posts | Andrews Website</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Wed, 06 May 2026 15:49:50 -0600</lastBuildDate><atom:link href="https://andrew.com/posts/" rel="self" type="application/rss+xml"/><item><title>SpeedTyping: A Spring Boot Typing Test</title><link>https://andrew.com/posts/speedtyping/</link><pubDate>Wed, 06 May 2026 15:49:50 -0600</pubDate><author>xxxx</author><guid>https://andrew.com/posts/speedtyping/</guid><description><![CDATA[<h1 id="speedtyping-a-spring-boot-typing-test">SpeedTyping: A Spring Boot Typing Test</h1>
<p>Source: <a href="https://github.com/jackaholy/SpeedTyping" target="_blank" rel="noopener noreffer ">github.com/jackaholy/SpeedTyping</a></p>
<h2 id="why">Why?</h2>
<p>A team project for a software engineering course. The goal was to ship something end-to-end (backend, database, frontend) using Spring Boot and JPA.</p>
<p>The product side was a typing test aimed at younger learners: pick a difficulty, type the passage, get a WPM score, land on a leaderboard.</p>
<h2 id="what">What?</h2>
<p>A Spring Boot web app backed by MySQL via JPA. Three controllers handle the home/leaderboard view, the typing page, and score submission. Levels are seeded from a SQL file with thirty short passages tagged EASY, MEDIUM, or HARD. Vanilla JS on the frontend runs the timer, colors characters as you type, and auto-submits when the passage is finished.</p>]]></description></item><item><title>Emotion Detection with Convolutional Neural Networks</title><link>https://andrew.com/posts/cnn_emotion_detection/</link><pubDate>Sun, 31 Aug 2025 12:00:00 +0000</pubDate><author>xxxx</author><guid>https://andrew.com/posts/cnn_emotion_detection/</guid><description><![CDATA[<h1 id="emotion-detection-with-convolutional-neural-networks">Emotion Detection with Convolutional Neural Networks</h1>
<h2 id="why">Why?</h2>
<p>To explore machine learning techniques for image classification</p>
<h2 id="what">What?</h2>
<p>OpenCV handles face detection. A CNN trained on FER2013 handles emotion classification. Chain them together for live video analysis.</p>
<h2 id="code">Code</h2>
<h3 id="setup-data">Setup data</h3>
<p>For training, we are using the fer2013 black and white emotion-labelled faces dataset. The raw data is available on Kaggle <a href="https://www.kaggle.com/datasets/msambare/fer2013" target="_blank" rel="noopener noreffer ">here</a>.</p>
<p>We load our data and apply transformations using the <code>ImageDataGenerator</code> class. Applying small transformations to our data prevents overfitting which helps when making predictions on new data.</p>]]></description></item></channel></rss>