SqrtMinusOne / sqrt-data

My ongoing attempt at self-quantification

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

sqrt-data

https://forthebadge.com/images/badges/works-on-my-machine.svg

I’d name this “Electric Boogaloo”, but the window of opportunity for that is long gone.

These are some of my personal data aggregation scripts.

The project is written using literate programming paradigm with Emacs’ Org Mode as the engine and semi-broken English for comments. Not sure if it was worth it at this point, but it seems to work.

Synopsis

The basic dataflow is as follows:

  • Data from various sources is saved to the folder called logs-sync in machine-readable formats (mostly CSV)
  • The folder gets rsynced to my VPS
  • The VPS processes that with Prefect 2 flows and stores the results to a PostgreSQL database
  • Metabase queries the database and creates nice dashboards.

The entire thing is written in Python and more or less follows the path of the least resistance.

Yeah, and it most definitely won’t work for anyone except me.

Project structure

The common functionality resides in core-new.org (once upon a time it had to coexist with core.org).

service.org runs maintainence flows, such as gzipping old files.

Some files are related to particular datasources:

FileData sourceAutomationStatus
aw.orgActivityWatch (Desktop & Android)CompleteOK
mpd.orgMusic Player DaemonCompleteOK
locations.orgMy CSVs with location historyCompleteOK
wakatime.orgWakaTimePartialOK
messengers.orgTelegram + aggregationManualOK
vk.orgVK, GDPR dumpManualLeft the network, whatever
sleep.orgSleep As AndroidManualArchive
google-android.orgGoogle Takeout, Android activityManualArchive

“Automation” means:

  • Complete - no manual actions required
  • Partial - some manual action required
  • Manual - manually retrieve the required data and feed it to the project

In some files I tried to aggregate data from multiple datasources:

  • youtube.org (Archive) - here I tried to join data from MPV, YouTube watch history, ActivityWatch and NewPipe to figure out what I was watching. Didn’t work out that well, maybe I’ll return to it someday.

About

My ongoing attempt at self-quantification

License:GNU General Public License v3.0


Languages

Language:Python 85.4%Language:Scheme 7.7%Language:JavaScript 3.8%Language:Lua 2.3%Language:Mako 0.6%Language:Dockerfile 0.2%