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.
- Mastodon Client Popularity. Is it market share? Not quite, but I take a daily sample of posts from large Mastodon instances and look at the application_name field to determine the share of posts by client/app.
- Semantic Emoji Find; search for 'launch' and get 🚀. Search for 🦣 and get 🐘. That's semantic search for emoji. Also includes a umap projection of emoji as they relate to each other semantically. More info on github.
- Mastodon Reader. This Plotly dash app uses Oauth and the Mastodon API to find articles/links from posts you have added to your favorites or bookmarks. Source on Github.
- Virginia Recorded Vote; tracking the Virginia Legislature. See how members vote on legislation, find and search bills. It also does some basic NLP here and there, like to compute and find similar bills.
- Unofficial Accidental Tech Podcast Transcript Search Engine. I loaded Whisper generated automated transcripts into sqlite using my Search Transcripts module and build this Dash front end to search the database.
- Covid Case Tracker. This is the only site I know of where one can compare per capita case rates between US counties and states. e.g. compare Harris County, Texas to all of California. However, this has a lot less utility now that there is so much at-home testing. Source on github.
- A Streamlit version of the Covid Case Tracker. This is my first streamlit app. Source also on github. Hosting on streamlit cloud required me to create my first REST API in Flask so the streamlit app could access the same live data as the Dash version (which loads from a local sqlite database.) I wrote more about Streamlit vs Dash in this post.
- Advent of Code Leaderboard. Yet another Dash app, this live public/demo version accepts user-uploaded JSON and shows tables and graphs for an AoC private leadebroad. Source code on github.
- GPX Run File Analysis Web App. A web app powered by gpxrun which computes distance and pace based on the GPS data in a GPX file. Source code on github.
- 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_dataframefunctionality in creating Dash bootstrap tables, allowing for hyperlink from columns, and per-cell conditional styling.
- Virginia scratch off lottery odds calculator. I scrape the Virginia lottery web site and attempt to compute the expectation value for scratch off tickets. Rendered with a few custom jinja2 templates.
- Jackpot for Xbar/switfbar (github link) A plug-in for Swiftbar to show Powerball and Mega Millions Jackpot sizes. SwiftBar (and bitbar, etc.) is tool to write command line utilities that can put content in the MacOS X menu bar.