Andrew Whipple

The most sensational, inspirational, celebrational, muppetational

Programming

I like to program from time to time, especially web development, and especially in Python and Javascript. I currently work as an Software Engineer at SpotOn, a company providing payment processing and software for businesses ranging from small local coffeeshops to MLB stadiums. I work specifically on core back-end services, built primarily in Python, including authentication, merchant data, merchant payroll sync, notifications, gift cards, and more! In my spare time I primarily do web stuff in Python or Javascript.

Education:

For my major (Symbolic Systems) in undergrad I ended up taking a solid chunk of the Stanford Computer Science core, including:

  • CS106a/b (Programming)
  • CS107 (Systems)
  • CS147/247 (HCI Design)
  • CS142 (Web Development)
  • CS109 (Probability)
  • CS103 (Theory)
  • CS157 (Logic)
  • Music 257 (Neuroscience, Music, and Game Design... Ask me about it, it was quite a time)

Projects:

Amelie // This website

Javascript (Node.js/Express)

To try and relearn some Node.js chops, and because my old site crashed and there doesn't seem to exist a self-hosted CMS that uses Dropbox to store Markdown that turns into pages, I made the engine that runs this thing. It...works? But roughly.

The major motivation guiding the design is to have a simple-ish blog engine that could use Dropbox (or any other folder-based file-syncing software) as a store for Markdown files that will eventually turn into the pages. I like writing in Markdown, and I don't want to ever deal with an admin panel or entering things on a website to make a new post. I just want to write a Markdown file, drop it in a folder, and have my site work fine (especially so I can edit and post on mobile easily.) And that's what this does.

(Also my old site couldn't do link posts, and this can.)


Music Tracker

Python (Django), with a li'l bit of HTML/CSS

For years I've been tracking various music consumption habits in a bunch of unwieldy Airtable sheets, and the one-two punch of 1) Airtable telling me I'm reaching the limits of their free plan and 2) wanting to actually buckle down and learn Django a little bit led to this! You can see it in action at music-tracking.andrewwhipple.com

It's a simple Django application that uses the Django Admin CMS for tracking:

  • the new albums I listen to every year, and publishing them as a top-ten list for each year
  • the songs I mark as my current "obsessions", and publishing them in a year-end list
  • stats pages for artists that show how many times and where they appear across the various lists

Since it is a small, one-person tool, it just uses SQLite for its database.

Still to add are:

  • tracking my Spotify Top 100 Songs for each year, and creating some stats and visualizations around how songs and artists show up over time
  • tracking my definitive rankings of Taylor Swift's albums and songs

Nuzzel Clone

Python (FastAPI) and Javascript (React)

Note: sadly due to the capriciousness of a silly billionaire, as of Feb 9th 2023, the free Twitter API is disappearing, so this is defunct (unless and until I make it Mastodon-able) 😢

A work-in-progress clone of the functionality of Nuzzel, a wonderful web app that used to exist that would scour your Twitter timeline, find all the links that had been posted within the previous 24 hours, and render those as a feed for you to catch up on news quickly. Twitter then bought Nuzzel and folded it into their subscription product, so I decided to try out rebuilding a private version of it from scratch to both 1) have access to the functionality I missed 😢, 2) learn how to use FastAPI, and 3) learn how to use the Twitter API.

This is composed of a FastAPI back-end that connects to the Twitter API, and a React front-end.


Feed Me Seymour

Javascript (Node.js/Express/React)

A tool for creating podcast RSS feeds, because I'm insane and self-host my own self-generated feeds for the shows I do. Motivated primarily by wanting to explore using React! Secondarily I was interested in the idea that since RSS feeds are hosted and publically accessible on the internet, this could be a tool that allows you to pull in an existing feed from a url and then edit or add a new entry to it and generate a new XML file to replace the existing feed.

This is composed of a React front-end and an Express back-end!


Photos to Chords

Javascript and HTML/CSS

Inspired by this very very very good talk on polyrythms and how everything (sorta) is a polyrhythm, I started playing around with Glitch again and put together this neat little proof-of-concept app. If you upload a photo, it will extract the color palette from the image and then each main color will be associated with a note, and you can see what kind of music your photos make!

And, it being Glitch, you can remix it and edit your own version! Which is cool!!


iPad / Hue dashboard thing

Javascript (Node.js/Express)

This is a demo version of a little webapp I made on Glitch to run on an old iPad I have mounted on my wall. The motivation behind it was to:

  1. Explore using Glitch, which seems like a rad platform!
  2. Mix the bold, red time display of an app like Nite Time with controls for the Hue lights I have in my apartment, so I didn't have to switch between a clock when I wanted a clock, and light controls when I wanted those.

There's another version that exists that is the real one that actually controls my lights and stuff, which is probably a dumb idea to have out on the open internet even if its password protected. ¯\_(ツ)_/¯

For this demo one, you can use the password 'Hi Friend!' and it will log you in to play around. Hitting any of the buttons will do nothing, because this demo version doesn't have any of the actual IP addresses or API access to my lights that the real one has. And it being Glitch, if you want to set this up for yourself just Remix the app, and fill in the appropriate variables in the .env file!


Meowgic Matt

Python

This is a set of Python command-line tools to speed up some podcasting workflows, including making and updating an RSS feed, down-rezzing mp3s for publishing, and general file organization. Also open-source, but made for me and works for me, so your mileage may vary. I need to update this though for my current podcast workflow.


ChucK Instruments

ChucK

ChucK is a wild little langauge out of Stanford and Princeton that's used for musical programming, and I played around with it a fair bit in a couple classes and put together some rudimentary instruments that used an Xbox 360 controller for the interface.

And now that I'm writing this up I'm remembering how cool ChucK can be and realizing I need to get back into playing around with it...


Snavascript

Dumb, dumb, dumb stupid joke thing.


I've done other things, but those are the big ones. You can check my github if you'd like!