My favorite thing about R was the ability to create Shiny apps and Shiny markdown documents. Originally, this server was set up to run a shiny server for apps such as my Shiny Covid Tracker. I have since migrated mostly to writing Plotly Dash apps in python, and my Covid tracker is now implemented in Dash.

Virginia Recorded Vote is my biggest dash project, a multipage Dash app that tracks and analyzes the bills and votes of the Virginia General Assembly. I use some Natural Language Processing tools for bill search, bill similarity, and topic modeling for visualizations.

How do I host all these apps on one server? I wrote up my approach to host Dash apps with uwsgi and nginx here. I host on Digital Ocean (Referral link) droplet.

  • GPX to CSV (and pandas) converter python module on pypi. Source code on github. This is the backend for the Gpx Run web app above.
  • Search Transcripts, a python module that can index a directory of transcripts, loads data into sqlite, and builds a searchable index. (Powers the ATP search engine above.)
  • My poorly named wordle python algorithm, (Github link). Others have written more sophisticated solvers, but I enjoyed writing mine. It does not know or use the wordle solution list, but rather has custom five-letter-word dictionary created from various open source NLP corpuses. Wordlebot, a quasi-automated Twitter account, posts Wordle solutions using this code (when I remember to run it.)
  • TwitterWordle (Github link) which "solves" Wordle by analyzing tweeted scores. Can infer the solution 100% of the time (so far), sometimes with as few as 50 tweets. See also my Wordle is Fun post. Related: My analysis of the Most Popular Wordle Openers from tweets. (HTML and plotly, rendered with quarto.)
  • Dash Dataframe Table. A module that makes for enhanced from_dataframe functionality in creating Dash bootstrap tables, allowing for hyperlink from columns, and per-cell conditional styling.