Calvin Houser

Software Engineer

UC Santa Cruz Alum

LinkedIn | GitHub

Personal Projects

Smorgasbord

graph.png repository

A utility for organizing, cataloging, and visualizing web browsing. Smorgasbord tracks the current state of all active browser windows and can save each link and associated visit to its database. On the Active Windows page, each visited link can be tagged and saved. Once a link is tagged each visit is saved and visible on the Recent Visits page. On the Timeline Graph page, saved links, tags, and the visits to them can be visualized in a network graph. Runs on a Flask Server interfacing with a browser WebExtension.

Deduplicator

repository

Command line tool to summarize file tree information and provide macros for deduplication. Full usage documentation in the project README.

Arduino Synth

arduinosynth.jpg repository

A Digital Synthesizer running on an atmega328p with scrap I/O components. Built using the Mozzi Sound Library for Arduino.

Youtube DJ

youtubedj.png repository | demo

A web interface built for aggregating and randomly playing syndicated music on youtube. A private page is used for scraping the video IDs of a channel or playlist using the Youtube API and saving the IDs to a file. A public page then is used to randomly play videos in continuously from the list in an embedded iframe.

Small Projects

org-scrape

repository

An elisp function and associated python script which integrates into Emacs org-mode and replaces a hyperlinked website with content fetched from its URL, formatted to org-mode markup using pandoc.

org-podcast

repository

A tiny utility for generating podcast rss feeds from Emacs org-mode files.

Letter Generator

repository

A menu interface built using the Dialog ncurses application for generating form letters.

52WheelCrawler

repository

A selenium script, checks a row52.com search result for a specifiable range of vehicles listed after a particular date.

i3 Layout Visualizer

i3vis.png repository

An ncurses based interactive visualization of active i3 workspaces.

School Projects

ReceiptApp

receiptapp.png repository

A graphical interface for reading item data on grocery receipts using Tesseract OCR. Each item and corresponding price is parsed from the text and displayed in the interface for correcting errors from OCR. The data from each receipt is then saved with the transaction date in a JSON-structured file.

Developed in course ”Data Wrangling and Web Scraping.” The class project used this interface to import several months of item data from our grocery receipts and then using that data to compare our grocery habits over time in a Jupyter notebook.

Distributed Key-Value Store

sharable upon request

A flask application deployable to multiple Docker containers over a Docker network which maintain a single instance of stored key-value pairs. The data can be specified to replicate and shard across the running nodes and can be accessed or added from any running node.

Survey Paper on Monadic Constraint Programming

Paper [pdf]​ Poster [pdf]​

A term project for a class on technical and academic writing. Discusses the work described in Monadic Constraint Programming (Schrijvers et al 2009) and its relevance.

LaTeX Introductory Tutorial

Paper [pdf]​

A project for a class on technical and academic writing. Succinctly describes and demonstrates many fundamental formatting capabilites, constructs, and conventions of authoring documents using LaTeX.

Open-Source Contributions

rfeed: CDATA Tag Integration

repository | pull request

rfeed is a library to generate RSS 2.0 feeds in Python. Support for iTunes tags allows it to be used for podcast authoring. It is primarily authored by Santiago Valdarrama under the MIT License.

Contributions included adding support for the CDATA XML tag, used for embedding markup in text fields of the XML document.

TM1637 (No Delay)

repository

Forked from avishorp/TM1637. An Arduino library for 7-segment display modules based on the TM1637 chip. This fork implements serial data transmission to the chip without making any calls to delay() or similar functions. This allows updates to the display while running the Mozzi Sound Library which cannot have wait routines in its event loops.

Created: 2020-08-02 Sun 00:38

Validate