<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Eric Spencer - Computer Science Portfolio on Eric Spencer</title><link>https://ericspencer.us/ericspencer-site-backup/</link><description>Recent content in Eric Spencer - Computer Science Portfolio on Eric Spencer</description><generator>Hugo -- 0.152.2</generator><language>en-us</language><lastBuildDate>Wed, 20 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://ericspencer.us/ericspencer-site-backup/index.xml" rel="self" type="application/rss+xml"/><item><title>Resilient</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2026/resilient/</link><pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2026/resilient/</guid><description>A statically-typed compiled language for safety-critical embedded systems, with Z3-verified contracts and self-healing runtime blocks</description></item><item><title>Rubik's Snake — Formally Verified</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2026/rubix-snake-puzzle/</link><pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2026/rubix-snake-puzzle/</guid><description>Coq (Rocq) and TLA+ specifications of the Rubik&amp;#39;s Snake state space — 4^23 configurations, formally</description></item><item><title>tunes2tube</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2026/tunes2tube-mac/</link><pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2026/tunes2tube-mac/</guid><description>A local macOS app that drops a cover image and audio files in, and gives you back MP3s with the cover embedded as ID3v2 artwork — no account, no upload.</description></item><item><title>Claude Architect Quiz</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2026/claude-architect-quiz/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2026/claude-architect-quiz/</guid><description>Free flashcards and practice quiz for the Anthropic Claude Certified Architect exam.</description></item><item><title>ChatTLA+ Dataset</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/chattla-dataset/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/chattla-dataset/</guid><description>The dataset release for the ChatTLA+ paper — SFT corpus and benchmark for TLA+ spec generation, posted anonymized for blind review.</description></item><item><title>COMP 388 LLM Homework</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2026/comp388-llm/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2026/comp388-llm/</guid><description>Two homeworks from Loyola&amp;#39;s special-topics LLMs class: prompting GPT-2 and comparing base vs instruction-tuned Qwen.</description></item><item><title>ChatTLA+</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/chattlaplus/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/chattlaplus/</guid><description>Presentation on using LLMs for TLA+ formal specification generation and verification.</description></item><item><title>Founder</title><link>https://ericspencer.us/ericspencer-site-backup/resume/picaius-founder/</link><pubDate>Mon, 30 Mar 2026 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/resume/picaius-founder/</guid><description>Photo editing app built because nothing on the App Store was doing what I wanted.</description></item><item><title>Family Guy Gag Scraper</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2024/fg-scrape/</link><pubDate>Sat, 21 Mar 2026 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2024/fg-scrape/</guid><description>Scripts to scrape and catalog cutaway gags from Family Guy episodes.</description></item><item><title>BrightBet.tech</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2024/brightbet/</link><pubDate>Fri, 27 Feb 2026 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2024/brightbet/</guid><description>An AI-powered trade and prediction analysis platform built for HackIllinois 2026.</description></item><item><title>Reinforcement Learning Connect 4 Bot</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2023/rl-agent-c4/</link><pubDate>Wed, 18 Feb 2026 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2023/rl-agent-c4/</guid><description>An AI agent that learns to play Connect 4 through self-play reinforcement learning.</description></item><item><title>Loyola ITS RAG Bot</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2024/its-rag-bot/</link><pubDate>Sat, 24 Jan 2026 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2024/its-rag-bot/</guid><description>A voice-first RAG chatbot trained on Loyola&amp;#39;s ITS knowledge base, built after two years of answering the same tickets.</description></item><item><title>Sneaker Run</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/sneaker-run/</link><pubDate>Wed, 14 Jan 2026 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/sneaker-run/</guid><description>An endless runner game with a sneaker theme, built with vanilla JavaScript and HTML5 Canvas.</description></item><item><title>Yeat Large Language Model</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2026/yeat-llm/</link><pubDate>Wed, 14 Jan 2026 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2026/yeat-llm/</guid><description>Fine tuning GPT-2 to talk like Yeat</description></item><item><title>RVC Artist Model</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2023/rvc-artist/</link><pubDate>Fri, 09 Jan 2026 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2023/rvc-artist/</guid><description>Voice conversion models for different artists using Retrieval-based Voice Conversion (RVC).</description></item><item><title>Fortnite OneShot</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/fortnite-oneshot/</link><pubDate>Sun, 28 Dec 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/fortnite-oneshot/</guid><description>A playable browser-based Fortnite game generated by Claude Opus 4.5.</description></item><item><title>Cubed Pack Solver</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2023/cubed-pack-solve/</link><pubDate>Fri, 26 Dec 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2023/cubed-pack-solve/</guid><description>A solver for packing 54 T-tetracubes into a 6x6x6 cube using Knuth&amp;#39;s Dancing Links algorithm.</description></item><item><title>OneShot HM2016</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/oneshot-hm2016/</link><pubDate>Fri, 26 Dec 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/oneshot-hm2016/</guid><description>A browser-based HITMAN-style first-person shooter built with HTML5 Canvas.</description></item><item><title>Advent of Code 2025</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/aoc2025/</link><pubDate>Thu, 25 Dec 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/aoc2025/</guid><description>My Advent of Code 2025 attempt in Python. Got six days in before life took over.</description></item><item><title>Reverse Engineering Xoroshiro128++</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2023/reverse-xoroshiro128plusplus/</link><pubDate>Tue, 16 Dec 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2023/reverse-xoroshiro128plusplus/</guid><description>Reverse engineering the xoroshiro128++ PRNG to recover internal state and predict outputs.</description></item><item><title>TLA+ Model of a Walk-In Oven</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2024/tla-walk-in-oven/</link><pubDate>Fri, 12 Dec 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2024/tla-walk-in-oven/</guid><description>A formal TLA+ specification of a walk-in industrial oven with a focus on safety interlocks.</description></item><item><title>Founder</title><link>https://ericspencer.us/ericspencer-site-backup/resume/instxnt-xyz-founder/</link><pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/resume/instxnt-xyz-founder/</guid><description>No-code eCommerce storefronts that aren&amp;#39;t hidden behind a monthly subscription.</description></item><item><title>Goldbach Conjecture</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2021/goldbach-conj/</link><pubDate>Fri, 28 Nov 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2021/goldbach-conj/</guid><description>Verifying the Goldbach Conjecture by brute force for every even number up to 1 billion.</description></item><item><title>TLA+ Model of a Laptop</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2024/tla-laptop/</link><pubDate>Thu, 27 Nov 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2024/tla-laptop/</guid><description>A formal TLA+ specification modeling a laptop&amp;#39;s power states, battery, lid, thermals, and auto-suspend.</description></item><item><title>BioOps Web</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/bio-ops-web/</link><pubDate>Sun, 16 Nov 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/bio-ops-web/</guid><description>A React + Tailwind starter site for BioOps, an environmental awareness initiative.</description></item><item><title>Great Chicago Fire Digital Exhibit</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/gcf-de/</link><pubDate>Fri, 14 Nov 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/gcf-de/</guid><description>An interactive digital exhibit about the Great Chicago Fire, built with SvelteKit and D3.js.</description></item><item><title>TLA+ Model of Dexcom G7</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2024/tla-dexcom-g7/</link><pubDate>Wed, 12 Nov 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2024/tla-dexcom-g7/</guid><description>A formal TLA+ specification of the Dexcom G7 continuous glucose monitor&amp;#39;s behavior and safety properties.</description></item><item><title>Auto Decode</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/auto-decode/</link><pubDate>Thu, 06 Nov 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/auto-decode/</guid><description>Browser-based tool that automatically detects and decodes strings across multiple encoding formats.</description></item><item><title>UDP server (binary)</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/udp-server-binary/</link><pubDate>Thu, 06 Nov 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/udp-server-binary/</guid><description>UDP send/receive utilities for binary payloads.</description></item><item><title>Founder</title><link>https://ericspencer.us/ericspencer-site-backup/resume/stockgenie-founder/</link><pubDate>Fri, 24 Oct 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/resume/stockgenie-founder/</guid><description>Lightweight AI-assisted stock analysis and portfolio helper for hobby traders.</description></item><item><title>ITCH Protocol Parser</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2023/itch-parser/</link><pubDate>Fri, 10 Oct 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2023/itch-parser/</guid><description>A parser for the NASDAQ ITCH protocol with a UDP server for binary data streams.</description></item><item><title>Founder</title><link>https://ericspencer.us/ericspencer-site-backup/resume/from-america-llc-founder/</link><pubDate>Mon, 06 Oct 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/resume/from-america-llc-founder/</guid><description>Independent software studio shipping small, subscription-free tools built entirely in the United States.</description></item><item><title>Conway's Game of Life</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/gameoflife/</link><pubDate>Wed, 01 Oct 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/gameoflife/</guid><description>Interactive implementation of Conway&amp;#39;s Game of Life with preset patterns</description></item><item><title>TLA+ Formal Generation</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/tla-formal-generation/</link><pubDate>Sun, 21 Sep 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/tla-formal-generation/</guid><description>Early exploratory repo for generating TLA+ specs from natural-language requirements with an LLM, with a TLC harness wired in. The scaffold that eventually grew into ChatTLA+.</description></item><item><title>Git Key Guardian</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/gitkey/</link><pubDate>Sun, 14 Sep 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/gitkey/</guid><description>Protect sensitive keys from accidentally being uploaded to your git history at any point.</description></item><item><title>GluCoPilot</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/glucopilot/</link><pubDate>Thu, 11 Sep 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/glucopilot/</guid><description>AI Glucose Insights App</description></item><item><title>Facebook Clone</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2023/fb-clone/</link><pubDate>Fri, 05 Sep 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2023/fb-clone/</guid><description>A clone of the Facebook UI built as a web development class project.</description></item><item><title>Training an LLM on ASCII</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/ascii-llm-training/</link><pubDate>Wed, 03 Sep 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/ascii-llm-training/</guid><description>A toy transformer that reads pyfiglet ASCII art and tries to spit the original word back out. Calling it an LLM is generous.</description></item><item><title>mc-carspot: Online Parking Simulation in Rust</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/mc-carspot/</link><pubDate>Fri, 22 Aug 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/mc-carspot/</guid><description>A tiny Rust simulator for the online parking-spot problem with switching costs.</description></item><item><title>iOS Soundboard</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/ios-soundboard/</link><pubDate>Thu, 14 Aug 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/ios-soundboard/</guid><description>A SwiftUI soundboard app I built in an afternoon to get more comfortable with iOS.</description></item><item><title>Windows Design Website</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/windows/</link><pubDate>Mon, 11 Aug 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/windows/</guid><description>&lt;p&gt;Homepage of the website as imagined it would look like as a Windows 7 homepage.&lt;/p&gt;
&lt;p&gt;Website loading&amp;hellip;&lt;/p&gt;
&lt;meta http-equiv="refresh" content="0; url=https://ericspencer.us/ericspencer-site-backup/miscellaneous/windows.html"&gt;</description></item><item><title>Chess.com Stats Display</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/chess-stats/</link><pubDate>Fri, 01 Aug 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/chess-stats/</guid><description>A small Flask app that pulls Chess.com&amp;#39;s public API and graphs your rating history.</description></item><item><title>Gesture</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/gesture/</link><pubDate>Fri, 01 Aug 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/gesture/</guid><description>A proof of concept Jarvis-style macOS controller that takes voice commands and hand gestures from the webcam.</description></item><item><title>ITS Service Desk Technician</title><link>https://ericspencer.us/ericspencer-site-backup/resume/loyola-its-service-desk-2025/</link><pubDate>Fri, 01 Aug 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/resume/loyola-its-service-desk-2025/</guid><description>Provide frontline technical support and access management.</description></item><item><title>Researcher</title><link>https://ericspencer.us/ericspencer-site-backup/resume/ai4fm-researcher/</link><pubDate>Fri, 01 Aug 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/resume/ai4fm-researcher/</guid><description>Research on TLA+ and fine-tuning open-source LLMs for formal methods.</description></item><item><title>AIs Talking Philosophy</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/ai-conversation/</link><pubDate>Thu, 31 Jul 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/ai-conversation/</guid><description>A toy where two local Ollama models loop on consciousness until one of them gives up</description></item><item><title>How to tell if written work is AI</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/tell-ai/</link><pubDate>Thu, 31 Jul 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/tell-ai/</guid><description>Easily tell if something is AI using these obvious giveaways</description></item><item><title>llmjammer</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/llmjammer/</link><pubDate>Mon, 28 Jul 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/llmjammer/</guid><description>Obfuscator for public Python code to confuse LLMs</description></item><item><title>AI OS</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2024/ai-os/</link><pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2024/ai-os/</guid><description>An experimental AI-centric operating system exploring tight integration between AI and system-level operations.</description></item><item><title>Connect 4 Game Engine</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/connect-4/</link><pubDate>Sun, 29 Jun 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/connect-4/</guid><description>A Chess engine-esque Connect 4 analyzer</description></item><item><title>Chess Game</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/chess/</link><pubDate>Fri, 20 Jun 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/chess/</guid><description>Interactive chess game with AI opponent</description></item><item><title>BlackJack Game</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/blackjack/</link><pubDate>Fri, 13 Jun 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/blackjack/</guid><description>Play BlackJack with fake money</description></item><item><title>GitHub pfp Generator</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/pixel-profile/</link><pubDate>Wed, 04 Jun 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/pixel-profile/</guid><description>&lt;p&gt;Generate a default GitHub profile picture below, Generate a new profile as much as you please.&lt;/p&gt;
&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
&lt;meta charset="UTF-8"&gt;
&lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
&lt;title&gt;Generate a Default GitHub Profile Picture&lt;/title&gt;
&lt;!-- Tailwind CSS CDN --&gt;
&lt;script src="https://cdn.tailwindcss.com"&gt;&lt;/script&gt;
&lt;style&gt;
/* Custom font for better aesthetics */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&amp;display=swap');
canvas {
border: 2px solid #e5e7eb; /* Light border for the canvas */
background-color: #ffffff; /* White background for pixels */
image-rendering: pixelated; /* Ensures crisp pixel rendering */
image-rendering: -moz-crisp-edges;
image-rendering: crisp-edges;
border-radius: 0.75rem; /* Rounded corners for the canvas */
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); /* Subtle shadow */
}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div class="bg-white p-8 rounded-xl shadow-lg w-full max-w-2xl mx-auto text-center"&gt;
&lt;h1 class="text-3xl font-bold text-gray-800 mb-6"&gt;Generate a Default GitHub Profile Picture&lt;/h1&gt;
&lt;!-- Canvas for drawing the pixel art --&gt;
&lt;canvas id="pixelCanvas" class="w-64 h-64 mx-auto mb-6"&gt;&lt;/canvas&gt;
&lt;div class="flex flex-col sm:flex-row justify-center space-y-4 sm:space-y-0 sm:space-x-4"&gt;
&lt;!-- Generate New Button --&gt;
&lt;button id="generateBtn" class="bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 px-6 rounded-lg shadow-md transition duration-300 ease-in-out transform hover:scale-105 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-75"&gt;
Generate New
&lt;/button&gt;
&lt;!-- Download Button --&gt;
&lt;button id="downloadBtn" class="bg-green-600 hover:bg-green-700 text-white font-semibold py-3 px-6 rounded-lg shadow-md transition duration-300 ease-in-out transform hover:scale-105 focus:outline-none focus:ring-2 focus:ring-green-500 focus:ring-opacity-75"&gt;
Download Image
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
// Get references to the canvas and buttons
const canvas = document.getElementById('pixelCanvas');
const ctx = canvas.getContext('2d');
const generateBtn = document.getElementById('generateBtn');
const downloadBtn = document.getElementById('downloadBtn');
// Configuration for the pixel art
const PIXEL_GRID_SIZE = 7;
const TARGET_CANVAS_DIMENSION = 280;
const PIXEL_BLOCK_SIZE = TARGET_CANVAS_DIMENSION / PIXEL_GRID_SIZE;
// Set canvas dimensions
canvas.width = TARGET_CANVAS_DIMENSION;
canvas.height = TARGET_CANVAS_DIMENSION;
// Global variable to store the density map
let densityMap;
function getRandomColor() {
const letters = '0123456789ABCDEF';
let color = '#';
for (let i = 0; i &lt; 6; i++) {
color += letters[Math.floor(Math.random() * 16)];
}
return color;
}
function createDensityMap() {
const map = Array(PIXEL_GRID_SIZE).fill(0).map(() =&gt; Array(PIXEL_GRID_SIZE).fill(0));
const centerX = (PIXEL_GRID_SIZE - 1) / 2;
const centerY = (PIXEL_GRID_SIZE - 1) / 2;
const maxDistance = Math.sqrt(Math.pow(0 - centerX, 2) + Math.pow(0 - centerY, 2));
const halfGridSize = Math.ceil(PIXEL_GRID_SIZE / 2);
for (let y = 0; y &lt; PIXEL_GRID_SIZE; y++) {
for (let x = 0; x &lt; halfGridSize; x++) {
const distance = Math.sqrt(Math.pow(x - centerX, 2) + Math.pow(y - centerY, 2));
const normalizedDistance = distance / maxDistance;
let probability = 1 - Math.pow(normalizedDistance, 1.5);
probability = Math.max(0, Math.min(1, probability));
map[y][x] = probability;
const mirroredX = PIXEL_GRID_SIZE - 1 - x;
map[y][mirroredX] = probability;
}
}
return map;
}
function generatePixelArt() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
const halfGridSize = Math.ceil(PIXEL_GRID_SIZE / 2);
const mainColor = getRandomColor();
const pixelData = Array(PIXEL_GRID_SIZE).fill(0).map(() =&gt; Array(PIXEL_GRID_SIZE).fill('#FFFFFF')); // Initialize all pixels as white
for (let y = 0; y &lt; PIXEL_GRID_SIZE; y++) {
for (let x = 0; x &lt; halfGridSize; x++) {
if (Math.random() &lt; densityMap[y][x]) {
pixelData[y][x] = mainColor;
const mirroredX = PIXEL_GRID_SIZE - 1 - x;
pixelData[y][mirroredX] = mainColor;
}
}
}
for (let y = 0; y &lt; PIXEL_GRID_SIZE; y++) {
for (let x = 0; x &lt; PIXEL_GRID_SIZE; x++) {
ctx.fillStyle = pixelData[y][x];
ctx.fillRect(x * PIXEL_BLOCK_SIZE, y * PIXEL_BLOCK_SIZE, PIXEL_BLOCK_SIZE, PIXEL_BLOCK_SIZE);
}
}
}
function downloadImage() {
const image = canvas.toDataURL('image/png');
const link = document.createElement('a');
link.href = image;
link.download = 'pixel-profile.png';
link.click();
}
// Initialize
densityMap = createDensityMap();
generateBtn.addEventListener('click', generatePixelArt);
downloadBtn.addEventListener('click', downloadImage);
window.onload = generatePixelArt;
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</description></item><item><title>Software Engineering Intern</title><link>https://ericspencer.us/ericspencer-site-backup/resume/ccc-intern-2025/</link><pubDate>Mon, 19 May 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/resume/ccc-intern-2025/</guid><description>Full-stack implementations and interactive claims dashboard for B2B SaaS portal.</description></item><item><title>Web Based TLA+ Microwave</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/interactive-microwave-tla/</link><pubDate>Sat, 10 May 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/interactive-microwave-tla/</guid><description>An interactive microwave in the browser to learn TLA+</description></item><item><title>coq Presentation</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/coq/</link><pubDate>Thu, 01 May 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/coq/</guid><description>The formal methods language</description></item><item><title>Software Engineer</title><link>https://ericspencer.us/ericspencer-site-backup/resume/loyola-cs-software-engineer-2025/</link><pubDate>Thu, 01 May 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/resume/loyola-cs-software-engineer-2025/</guid><description>Implemented a web-based visualization and demo application for TLA+ using Spring Boot and Vaadin.</description></item><item><title>Search Engine</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/search-engine/</link><pubDate>Sun, 27 Apr 2025 00:00:00 -0700</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/search-engine/</guid><description>A barebones Google search experience</description></item><item><title>YouTube Downloader</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/youtube-dl/</link><pubDate>Mon, 14 Apr 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/youtube-dl/</guid><description>Locally hosted youtube downloader for mp3 and mp4s</description></item><item><title>AI Sign Language Interpreter</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/sign-language/</link><pubDate>Mon, 07 Apr 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/sign-language/</guid><description>A Simple Sign Language Recognition App using OpenCV</description></item><item><title>flatten-repo VSC Extension</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/flatten-repo/</link><pubDate>Fri, 28 Mar 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/flatten-repo/</guid><description>A VS Code extension I made when I kept running out of Copilot credits — flattens a repo into one .txt file you can paste into a free LLM.</description></item><item><title>Dexcom Navbar Icon Mac OS</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/dexcom-navbar-macos/</link><pubDate>Thu, 20 Mar 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/dexcom-navbar-macos/</guid><description>View your Dexcom number in your Mac OS Navigation Bar</description></item><item><title>My ~/.zshrc file</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/my-zshrc/</link><pubDate>Thu, 20 Mar 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/my-zshrc/</guid><description>Ran every time I open a terminal</description></item><item><title>Old Website</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/old-website/</link><pubDate>Tue, 18 Mar 2025 16:13:32 -0600</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/old-website/</guid><description>My older website</description></item><item><title>TDX Window Blocker</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/tdx-window-blocker/</link><pubDate>Sat, 08 Mar 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/tdx-window-blocker/</guid><description>Custom Safari Script for TDX Popups</description></item><item><title>CTA Transit Tracker</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/loyolahack/</link><pubDate>Sun, 16 Feb 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/loyolahack/</guid><description>A real-time bus and train tracking system built during Loyola&amp;#39;s Hackathon.</description></item><item><title>MLB Hall of Fame Predictor</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/mlb-hackathon/</link><pubDate>Fri, 17 Jan 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/mlb-hackathon/</guid><description>A scikit-learn decision tree that guesses whether a current MLB player would get voted into Cooperstown, built for the Google Cloud x MLB hackathon.</description></item><item><title>Terminal GPT</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2025/terminalgpt/</link><pubDate>Fri, 10 Jan 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2025/terminalgpt/</guid><description>A small Python CLI for chatting with OpenAI and running English-to-Bash commands from the terminal. The thing I actually open when I want to talk to a model.</description></item><item><title>Software Engineering Intern</title><link>https://ericspencer.us/ericspencer-site-backup/resume/epifinder-intern-2025/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/resume/epifinder-intern-2025/</guid><description>Backend automation and workflow optimization using Google Apps Script.</description></item><item><title>COMP322 Final Project Reflection</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2024/healthup/</link><pubDate>Sat, 14 Dec 2024 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2024/healthup/</guid><description>&lt;p&gt;&lt;em&gt;Eric Spencer + Matthew Caballero&lt;/em&gt;&lt;br&gt;
&lt;em&gt;December 14, 2024&lt;/em&gt;&lt;br&gt;
&lt;em&gt;COMP 322/422 Reflection&lt;/em&gt;&lt;/p&gt;
&lt;h1 id="reflections-on-healthup"&gt;Reflections on HealthUp!&lt;/h1&gt;
&lt;h2 id="abstract"&gt;Abstract&lt;/h2&gt;
&lt;p&gt;HealthUp! is an application focused on bettering a user’s information about their health. Users can log nutritional information of foods and track their workouts. We wanted to develop this app to support our passion for healthy living.&lt;/p&gt;
&lt;h2 id="repository-without-keys"&gt;Repository (without keys)&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/EricSpencer00/HealthUp-"&gt;GitHub Repository&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;If you attempt to download and run the app, see the bolded text in “Testing &amp;amp; Iterative Design.” The iOS version of the app does not work.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Movie Recommendation Website</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2024/movierec/</link><pubDate>Sat, 14 Dec 2024 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2024/movierec/</guid><description>A movie recommendation website developed as part of the Loyola AI Club&amp;#39;s Fall 2024 project.</description></item><item><title>Islamic Influences in Timbuktu</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/timbuktu/</link><pubDate>Wed, 30 Oct 2024 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/timbuktu/</guid><description>LITR 238 Fall 2024</description></item><item><title>Vice President of Technology</title><link>https://ericspencer.us/ericspencer-site-backup/resume/loyola-ai-club-vp-technology/</link><pubDate>Thu, 01 Aug 2024 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/resume/loyola-ai-club-vp-technology/</guid><description>Managed and coordinated semester-long technical projects for the club.</description></item><item><title>ITS Service Desk Technician</title><link>https://ericspencer.us/ericspencer-site-backup/resume/loyola-its-service-desk-2024/</link><pubDate>Mon, 01 Jul 2024 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/resume/loyola-its-service-desk-2024/</guid><description>Provided frontline technical support and access management.</description></item><item><title>Daily Task - Wellness Tracker</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2024/dailytask/</link><pubDate>Mon, 17 Jun 2024 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2024/dailytask/</guid><description>A habit manager for daily consistency.</description></item><item><title>IT Chair</title><link>https://ericspencer.us/ericspencer-site-backup/resume/alpha-kappa-psi-it-chair/</link><pubDate>Wed, 01 May 2024 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/resume/alpha-kappa-psi-it-chair/</guid><description>Managed the organization&amp;#39;s online presence</description></item><item><title>One Rep Max Calculator</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2024/one-rep-max/</link><pubDate>Mon, 15 Apr 2024 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2024/one-rep-max/</guid><description>Calculate your One Rep Max</description></item><item><title>Serenity</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2024/serenity/</link><pubDate>Sun, 07 Apr 2024 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2024/serenity/</guid><description>A mental wellness application developed at Northwestern&amp;#39;s Wildhacks Hackathon.</description></item><item><title>Oldest Website</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/oldest-site/</link><pubDate>Mon, 01 Apr 2024 16:13:32 -0600</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/oldest-site/</guid><description>My oldest website</description></item><item><title>AI Chatbot Experiment</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/ai/chatbot-experiment/</link><pubDate>Sun, 31 Mar 2024 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/ai/chatbot-experiment/</guid><description>Building and testing a conversational AI system</description></item><item><title>Neural Network Image Recognition Project</title><link>https://ericspencer.us/ericspencer-site-backup/miscellaneous/ai/neural-network-project/</link><pubDate>Sun, 31 Mar 2024 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/miscellaneous/ai/neural-network-project/</guid><description>Exploring computer vision with custom neural networks</description></item><item><title>Jr. AI Prompt Engineer</title><link>https://ericspencer.us/ericspencer-site-backup/resume/unchained-ai-jr-prompt-engineer-2024/</link><pubDate>Fri, 01 Mar 2024 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/resume/unchained-ai-jr-prompt-engineer-2024/</guid><description>Created and refined prompts for ChatGPT-4 to meet specific criteria and improve output quality.</description></item><item><title>Anagram Solver V2</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2023/anagram_v2/</link><pubDate>Fri, 02 Feb 2024 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2023/anagram_v2/</guid><description>Scrabble Inspired Anagram Solver</description></item><item><title>Anagram Solver</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2023/anagram/</link><pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2023/anagram/</guid><description>Scrabble Inspired Anagram Solver</description></item><item><title>Binary Bomb Puzzle</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2023/bbomb/</link><pubDate>Wed, 01 Nov 2023 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2023/bbomb/</guid><description>Solving the infamous Binary Bomb Lab for extra credit.</description></item><item><title>Undergraduate Research Assistant</title><link>https://ericspencer.us/ericspencer-site-backup/resume/undergraduate-research-assistant-2023/</link><pubDate>Sat, 01 Apr 2023 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/resume/undergraduate-research-assistant-2023/</guid><description>Research on AI interpretability and experimental studies involving ChatGPT and advanced Java concepts.</description></item><item><title>Free Time Calculator in Java</title><link>https://ericspencer.us/ericspencer-site-backup/projects/2022/freetime-calc/</link><pubDate>Sat, 10 Dec 2022 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/projects/2022/freetime-calc/</guid><description>A Java program to find overlapping free time for up to four people.</description></item><item><title>Bachelor of Science in Computer Science</title><link>https://ericspencer.us/ericspencer-site-backup/resume/loyola-education/</link><pubDate>Mon, 01 Aug 2022 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/resume/loyola-education/</guid><description>Computer Science major with an Information Systems minor.</description></item><item><title>Seller</title><link>https://ericspencer.us/ericspencer-site-backup/resume/grailed-seller-2020-2021/</link><pubDate>Wed, 01 Jan 2020 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/resume/grailed-seller-2020-2021/</guid><description>E-commerce seller handling sourcing, listings, and customer service.</description></item><item><title>Fenwick High School</title><link>https://ericspencer.us/ericspencer-site-backup/resume/fenwick-high-school-2022/</link><pubDate>Wed, 01 Aug 2018 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/resume/fenwick-high-school-2022/</guid><description>High School Diploma</description></item><item><title>Honor Caddie</title><link>https://ericspencer.us/ericspencer-site-backup/resume/oak-park-country-club-caddie-2017-2024/</link><pubDate>Sat, 01 Apr 2017 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/resume/oak-park-country-club-caddie-2017-2024/</guid><description>Seasonal hospitality and customer service role.</description></item><item><title>Eric Spencer - AI &amp; Technology</title><link>https://ericspencer.us/ericspencer-site-backup/eric-spencer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/eric-spencer/</guid><description>Eric Spencer - Building AI projects and open source tools. Loyola University Chicago alum (BS Computer Science, 2026) focused on machine learning, web development, and innovation.</description></item><item><title>Eric Spencer - Developer | AI Builder | Open Source</title><link>https://ericspencer.us/ericspencer-site-backup/eric-spencer-developer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/eric-spencer-developer/</guid><description>Eric Spencer is a full-stack developer and AI builder creating innovative software solutions. Explore his tech stack, projects, and work.</description></item><item><title>Who is Eric Spencer? - AI Builder &amp; Developer</title><link>https://ericspencer.us/ericspencer-site-backup/who-is-eric-spencer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ericspencer.us/ericspencer-site-backup/who-is-eric-spencer/</guid><description>Learn about Eric Spencer - an AI builder and developer based in Chicago creating AI projects, open source tools, and innovative software solutions.</description></item></channel></rss>