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

Map of my infrastructure [see within blog graph]

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 many 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.

NOTE: due to some svg issues, this is best viewed in Chromium based browsers!

G cluster_group cluster_legend Legend cluster_meta Meta (why I'm doing all this?) cluster_phone Android phone cluster_phone_fss Filesystem cluster_cluster_enforce_ordering cluster_telegram Telegram cluster_twittercom Twitter cluster_pinboard Pinboard cluster_reddit Reddit cluster_vkcom cluster_google Google cluster_endomondo Endomondo cluster_instapaper Instapaper cluster_emfit_cloud Emfit cluster_jawbone Jawbone (dead) cluster_devices cluster_kobo Kobo reader cluster_emfit Emfit (sleep tracker) cluster_orger Orger orger_point Github: orger orger_static_node Mirrors: kobo twitter instapaper youtube hypothesis github polar orger_int_node Queues: kobo2org ip2org reddit hackernews blog_orger Orger: plaintext reflection of your digital self blog_orger_roam Using Orger for Roam Research cluster_promnesia_cl Promnesia promnesia Github: promnesia promnesia_post Promnesia A journey in fixing browser history cluster_orger_outputs Org-mode files cluster_pipelines cluster_exports Export scripts tgbackup telegram_backup twint twint 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 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 exp_bluemaestro sqlite exp_materialistic sqlite against_db Against unnecessary databases cluster_just_to_enforce_order cluster_mypkgcl Human Programming Interface 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_in_exp_materialistic my_reddit my_hypothesis my_pocket my_fbmessenger my_pinboard my_materialistic my_vk my_twitter my_instapaper mypkg_out my_body_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 gps GPS Google Location Google Location gps->Google Location app_bm Bluemaestro app app_bluemaestro_sqlite sqlite app_bm->app_bluemaestro_sqlite app_materialistic_sqlite sqlite app_materialistic Materialistic (Hackernews app) app_materialistic->app_materialistic_sqlite 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->twint 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 bluemaestro Bluemaestro (environment sensor) bluemaestro->app_bm BT wahoo Wahoo Tickr X (HR monitor) wahoo->app_endomondo BT jawbone Jawbone (sleep tracker) jawbone->app_jawbone BT kobo_sqlite sqlite kobo_sqlite->kobuddy emfit_point emfit_point->emfit_api emfit_wifi wifi (local API) browser_for_promnesia Browser (extension) promnesia->browser_for_promnesia data mirrors data mirrors orger_static_node->data mirrors interactive queues interactive queues orger_int_node->interactive queues todo lists todo lists orger_int_node->todo lists orger_outputs_point emacs Emacs (Doom) orger_outputs_point->emacs pkm_search_post Building personal search engine inp_weight->data_weight inp_sleep->data_sleep inp_blood->data_blood twint->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 exp_reddit->mypkg_in_exp_reddit DAL exp_pinb->mypkg_in_exp_pinb DAL exp_twitter->mypkg_in_exp_twitter 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_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 exp_materialistic->mypkg_in_exp_materialistic mypy_err Using mypy for error handling configs_suck Configs suck cachew cachew persistent cache/serialization blog_hb_kcals Making sense of Endomondo's calorie estimation promnesia_roam Extending my personal infrastructure mypkg Github: HPI blog_mypkg HPI: My life in a Python package mypkg->blog_mypkg mypkg->my_reddit my.reddit mypkg->my_hypothesis my.hypothesis mypkg->my_pocket my.pocket mypkg->my_fbmessenger my.fbmessenger mypkg->my_pinboard my.pinboard mypkg->my_materialistic my.materialistic mypkg->my_vk my.vk mypkg->my_twitter my.twitter mypkg->my_instapaper my.instapaper mypkg->mypkg_out mypkg->my_body_weight my.body.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_materialistic->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 my_reddit->promnesia my_hypothesis->promnesia my_pocket->promnesia my_fbmessenger->promnesia my_pinboard->promnesia my_materialistic->promnesia my_vk->promnesia my_twitter->promnesia my_instapaper->promnesia mypkg_out->orger_point timeline Timeline /Memex mypkg_out->timeline ipython IPython mypkg_out->ipython dashboard Dashboard my_body_weight->dashboard my_sleep->dashboard my_exercise->dashboard my_calendar->dashboard my_body_blood->dashboard browser_for_dashboard Browser (HTML) dashboard->browser_for_dashboard browser_for_timeline Browser (HTML) timeline->browser_for_timeline


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…