This repository contains a Jupyter notebook that processes Strava data exports to generate interactive running heatmaps. The core functionality involves parsing GPS and sensor data from .fit.gz files, filtering activities by type and date, detecting a home location, rasterizing GPS tracks into multiple value grids (frequency, pace, heart rate, gradient, elevation change), applying Gaussian blurring and normalization, and rendering the results as overlay layers on a Leaflet basemap via Folium. The output is a single HTML file with six toggleable layers showing different aspects of running patterns. The code demonstrates solid data processing techniques including efficient caching, coordinate transformations, and custom visualization logic, though it remains tightly coupled as a monolithic notebook.
qtile-extras is a third-party extension library for the Qtile tiling window manager, providing a rich collection of custom widgets, layout decorations, popup toolkits, and external service integrations (e.g., Strava, Snapcast, MPRIS2, UPower). It does not run standalone; it is imported by user Qtile configuration files and adds features such as decorative borders, gradient backgrounds, global menus, status notifiers, and interactive popups. The architecture relies on lazy imports, mixin-based widget composition, and monkey-patching of Qtile internals for decoration injection. Many widgets pull data via DBus or HTTP APIs and render it through cairocffi. The codebase is well-structured with extensive tests and documentation, though certain components are experimental or personally maintained.
A full-stack personal running activity dashboard that syncs workout data from over a dozen platforms (Strava, Garmin, Nike, Keep, Coros, etc.) via Python scripts, stores it in SQLite, and renders interactive web visualizations (React + Mapbox) and SVG posters (grid, heatmap, year summaries). It also includes a terminal UI (Textual) and an optional AI-powered share image generator. The architecture is a hybrid monolith: a shared SQLite database backs both the frontend (exported as JSON) and SVG generation. The frontend is themeable with two built-in themes (classic, dashboard). While the sync scripts are tightly coupled to each provider's API, the SVG poster drawer library and the terminal UI's data aggregation layer are well-isolated and potentially reusable. The project is actively maintained with frequent commits, CI/CD pipelines, and Docker support, though it carries moderate technical drift due to many unpinned dependencies and reliance on third-party APIs that may change.