Principal data scientist at MK Analytics. Formerly at Latchkey, Yonder. Adjunct instructor of information science at CU–Boulder.
pypothesis. Python scripts for interacting with the hypothes.is API
49tweetmineR. Mine tweets with Python and parse/analyze with R and a Shiny Dashboard
38musicianshipResources. JavaScript
37musicianship. A growing, online "textbook" for music theory and aural skills
28hypothesis_aggregator. A WordPress plugin for aggregating data via the hypothes.is API.
26GHbook. CSS
17presidencyproject. Code to scrape and parse documents in The American Presidency Project
11election2016. State-by-state presidential election results, population data from the 2010 census, electoral college makeup, statistical analysis scripts.
8peasy. Trying to make something that is as simple as Medium, but open-source and easy to deploy in something like Domain of One's Own.
7websitewatcher. Compare two Wayback Machine snapshots of a website for new/deleted/changed content.
6corpusAnalysis. Python module for statistical analysis of transitional probabilities in a musical corpus (designed for harmony, but usable for other structures)
4jekylltoghost. Convert Jekyll posts (MarkDown files with YAML headers) to a Ghost-compatible JSON file.
3gradebook. Gradebook for standards-based grading, written in Python
3whitehouse. scripts to scrape and analyze data from whitehouse.gov, comparing pre- and post-inauguration versions in 2017
3courses. CSS
2githubforacademics. Presentation for the Global Physics Dept., Sept. 18, 2013
2kshaffer.github.io. HTML
2CCLI-2011. CCLI top 25 Christian worship songs, formatted for use with corpusAnalysis Python module
2peasycomposer. A Medium-like, WYSIWYG editor for writing that exports to an html file.
2cu-info-capstone. Course materials for INFO 4700-002, Senior Capstone, at CU–Boulder, fall 2025.
2edtechalgorithms. Demystifying Ed-Tech Algorithms, workshop at Digital Pedagogy Lab, Thursday, August 11, 2016
2doooDashboard. R/Shiny scripts to generate a dashboard of aggregate domain registration statistics for UMW's Domain of One's Own initiative
2bootstrap_starter_kit. A self-contained package for getting started with Bootstrap
2doooCorpus. A corpus study of articles about Domain of One's Own.
1porch. The quickest way to start and publish your Jekyll powered blog. 100% compatible with GitHub pages.
1AZLyricsScraper. Extracts song lyrics from *previously downloaded* HTML source files from azlyrics.com
1hymns. Scraping, text-mining, and analyzing Protestant worship music
1cu-info-data-retrieval. Course materials for INFO 4614, Information and Data Retrieval Systems, at CU–Boulder, fall 2025.
1nyphil. Scripts, results, and visualizations analyzing the performance history of the New York Philharmonic
1adtech_analysis. Analyze output of OWASP Zap interceptiong proxy to uncover hidden data-sharing networks
1musicianship-curriculum. Curriculum materials for Musicianship courses at Charleston Southern University.
1cognition. Music Cognition, Special Topics in Psychology (PSYC 4541)CU–Boulder
1corpusmusic. Harmony and Form in Pop/Rock Music: A Computational Approach, CU–Boulder, May 2014.
1tidymusic. R package for tidyverse-style music parsing and analysis
1