THIS IS A DRAFT! It will appear on the main page once finished!

Map of my infrastructure

Table of Contents

This is a map of my personal infrastructure, with links to the scripts and tools used; and my posts explaining different parts of it.

This is still incomplete; work in progress! In reality it's much more nodes and edges; I'm just trying to preserve sanity and adding them gradually; otherwise it's going to be too overwhelming.

If something doesn't have a link, it's likely because I haven't made it public yet. Anyway, feel free to ask so I can prioritize.

This probably won't be mobile friendly (it's barely desktop friendly!). Content centering (e.g. navigation) isn't broken on this page – it's just a temporary hack to fit in the diagram till I figure out wide pages properly. Also SVG support varies among web browsers, so there might be some minor artifacts.

This is rendered via graphviz, and you can find the source here.

G cluster_group cluster_legend Legend cluster_meta Meta (why I'm doing all this?) cluster_phone Phone (Android) cluster_cluster_enforce_ordering cluster_telegram Telegram cluster_twittercom Twitter cluster_pinboard Pinboard cluster_reddit Reddit cluster_vkcom VK.com cluster_google Google cluster_endomondo Endomondo cluster_instapaper Instapaper cluster_emfit_cloud Emfit cluster_jawbone Jawbone (dead) cluster_devices cluster_emfit Emfit (sleep tracker) cluster_kobo Kobo reader cluster_orger Orger cluster_orger_outputs Org-mode files cluster_pipelines cluster_exports Export scripts tgbackup telegram_backup twexport twexport tw_manual Manual request (once) pinbexport pinbexport rexport rexport vkexport vkexport takeout_manual Manual request (periodic) endoexport endoexport ipexport instapexport emfitexport emfitexport jbexport jbexport kobuddy kobuddy scheduler In search of a friendlier scheduler dataliberation Building data liberation infrastructure cluster_filesystem Filesystem exp_bluemaestro sqlite data_weight org-mode data_sleep org-mode data_blood org-mode exp_twitter sqlite exp_twitter_archives json exp_vk json exp_telegram sqlite exp_reddit json exp_pinb json exp_endomondo json exp_instapaper json exp_jawbone json exp_takeouts json/html exp_kobo sqlite exp_emfit json against_db Against unnecessary databases cluster_just_to_enforce_order cluster_mypkgcl my. package mypkg_in_data_weight mypkg_in_data_blood mypkg_in_data_sleep mypkg_in_exp_reddit mypkg_in_exp_pinb mypkg_in_exp_twitter mypkg_in_exp_twitter_archives mypkg_in_exp_jawbone mypkg_in_exp_kobo mypkg_in_exp_takeouts mypkg_in_exp_emfit mypkg_in_exp_vk mypkg_in_exp_endomondo mypkg_in_exp_instapaper mypkg_in_exp_bluemaestro mypkg_out my_fbmessenger my_hypothesis my_instapaper my_pocket my_reddit my_twitter my_vk my_pinboard my_weight my_sleep my_exercise my_calendar my_body_blood cluster_mypkg_core cluster_mypkg_tech Libraries/patterns cluster_mypkg_usecases Usecases Device Device legend_auto Automatic script legend_manual Manual step legend_blog Entry from my blog (clickable) legend_ui User facing interface sad_infra The sad state of personal data and infrastructure Disk storage Disk storage brain_coping How to cope with a human brain mydata What data I collect and why? end_api API app_endomondo->end_api jb_api API app_jawbone->jb_api app_bm->exp_bluemaestro Syncthing Google Location Google Location gps->Google Location sleep_subj Sleep data (subjective) inp_sleep Manual input sleep_subj->inp_sleep scales scales inp_weight Manual input scales->inp_weight blood_tests Blood tests (GP/Thriva/etc) inp_blood Manual input blood_tests->inp_blood tg_api API tg_api->tgbackup tw_api API tw_api->twexport tw_archive Twitter Archive tw_archive->tw_manual pinb_api API pinb_api->pinbexport reddit_api API reddit_api->rexport vk_api API vk_api->vkexport API closed Takeout Takeout Google Location->Takeout blog_takeout_data_gone Google Takeout silently removes old data Takeout->blog_takeout_data_gone Takeout->takeout_manual end_api->endoexport ip_api API ip_api->ipexport emfit_api API emfit_api->emfitexport jb_api->jbexport wahoo Wahoo Tickr X (HR monitor) wahoo->app_endomondo BT jawbone Jawbone (sleep tracker) jawbone->app_jawbone BT bluemaestro Bluemaestro (environment sensor) bluemaestro->app_bm BT emfit_point emfit_point->emfit_api emfit_wifi wifi (local API) kobo_sqlite sqlite kobo_sqlite->kobuddy orger_point blog_orger Orger: plaintext reflection of your digital self orger_point->blog_orger orger_static_node Static modules kobo twitter instapaper youtube hypothesis github readonly views readonly views orger_static_node->readonly views orger_int_node Interactive modules kobo2org ip2org reddit hackernews interative views interative views orger_int_node->interative views todo lists todo lists orger_int_node->todo lists orger_outputs_point emacs Emacs (Spacemacs) orger_outputs_point->emacs inp_weight->data_weight inp_sleep->data_sleep inp_blood->data_blood twexport->exp_twitter tw_manual->exp_twitter_archives vkexport->exp_vk tgbackup->exp_telegram rexport->exp_reddit pinbexport->exp_pinb endoexport->exp_endomondo ipexport->exp_instapaper jbexport->exp_jawbone takeout_manual->exp_takeouts kobuddy->exp_kobo emfitexport->exp_emfit data_weight->mypkg_in_data_weight data_blood->mypkg_in_data_blood data_sleep->mypkg_in_data_sleep promnesia Promnesia exp_telegram->promnesia Telegram exp_reddit->mypkg_in_exp_reddit DAL exp_pinb->mypkg_in_exp_pinb DAL exp_twitter->mypkg_in_exp_twitter DAL exp_twitter_archives->mypkg_in_exp_twitter_archives exp_jawbone->mypkg_in_exp_jawbone exp_kobo->mypkg_in_exp_kobo DAL exp_takeouts->mypkg_in_exp_takeouts exp_takeouts->promnesia Browsing history exp_emfit->mypkg_in_exp_emfit exp_vk->mypkg_in_exp_vk exp_endomondo->mypkg_in_exp_endomondo DAL exp_instapaper->mypkg_in_exp_instapaper DAL exp_bluemaestro->mypkg_in_exp_bluemaestro mypy_err Using mypy for error handling cachew cachew persistent cache/serialization blog_hb_kcals Making sense of Endomondo's calorie estimation mypkg import my blog_mypkg my. package: Python interface to my life mypkg->blog_mypkg mypkg->mypkg_out mypkg->my_fbmessenger my.fbmessenger mypkg->my_hypothesis my.hypothesis mypkg->my_instapaper my.instapaper mypkg->my_pocket my.pocket mypkg->my_reddit my.reddit mypkg->my_twitter my.twitter mypkg->my_vk my.vk mypkg->my_pinboard my.pinboard mypkg->my_weight my.weight mypkg->my_sleep my.sleep mypkg->my_exercise my.exercise mypkg->my_calendar my.calendar mypkg->my_body_blood my.body.blood mypkg_in_exp_reddit->mypkg mypkg_in_exp_pinb->mypkg mypkg_in_exp_twitter->mypkg mypkg_in_exp_endomondo->mypkg mypkg_in_exp_instapaper->mypkg mypkg_in_exp_kobo->mypkg mypkg_in_exp_bluemaestro->mypkg mypkg_in_exp_takeouts->mypkg mypkg_in_exp_twitter_archives->mypkg mypkg_in_exp_jawbone->mypkg mypkg_in_exp_emfit->mypkg mypkg_in_exp_vk->mypkg mypkg_in_data_weight->mypkg mypkg_in_data_blood->mypkg mypkg_in_data_sleep->mypkg mypkg_out->orger_point timeline Timeline mypkg_out->timeline ipython IPython mypkg_out->ipython my_fbmessenger->promnesia my_hypothesis->promnesia my_instapaper->promnesia my_pocket->promnesia my_reddit->promnesia my_twitter->promnesia my_vk->promnesia my_pinboard->promnesia dashboard Dashboard my_weight->dashboard my_sleep->dashboard my_exercise->dashboard my_calendar->dashboard my_body_blood->dashboard browser_for_promnesia Browser (extension) promnesia->browser_for_promnesia browser_for_dashboard Browser (HTML) dashboard->browser_for_dashboard browser_for_timeline Browser (HTML) timeline->browser_for_timeline

1 TODO TODOs

STRT [C] [2020-02-03 01:57] fix css so it's occupying full screen width

[2020-02-07 19:49] a bit adhoc, but works for now

STRT [C] [2020-02-03 01:57] legend

STRT [B] [2020-02-07 19:51] labels don't fit into the boxes??

[2020-02-14 21:25] apparently only on desktop Firefox =/

STRT [B] [2020-02-14 21:30] Chrome doesn't support svg side attribute, so some labels appear upside down :(

fixing with JS for now…