Updated on

我写了一个人生活可视化系统

4月末的时候,偶然在twitter上看到一条tweet,关于一位程序员做的个人可视化系统。具体的那条tweet我已经找不到了,但我留下了那条tweet指向的GitHub Repo和作者的个人网站。作者个人网站其中的一篇四月月度总结包含了他走过的步数、看过的影视剧、玩过的游戏、提交的commit数量等等。

我一直是一个喜欢量化自己生活的人。从去年疫情期间,我就一直在用ios上一款叫做Life Cycle的app,用来记录我在各个地方、各种活动花费的时间,包括我通勤的时间、待在宿舍的时间。另外,从今年3月开始,我开始用toggl track这款软件记录自己在各科目学习上花的时间。5月之后,为了记录自己使用电脑在各项事务上花费的时间,我还安装了个rescuetime(之前在Win上用的是ManicTime,Mac上用的是TimeSink,但是它们有一个共同的缺陷,都只是本地应用,并不提供云服务或者是API)。

但是当时自己还没想过,利用这些数据,来做一个数据可视化,以图表的方式更加直观的观察自己生活产生的数据,数据在用起来之前,都是是“死”的,它们只是单纯的被记录、被存储。虽然在过去,我也会时而分析一下这些数据,但毕竟都是数字,看起来多少也有些费力。而且,我也没有统计学的知识背景,单看数据我也挖掘不出多少价值。

现在建构的这套系统用的服务是InfluxDB和Grafana,全都是跑在docker容器上的(现在docker实在是太方便了!)。提交数据的代码用的编程语言是python3(现在应该没多少人用的是py2吧),其中参考了一部分这个repo的代码。提交数据的代码被我封装成了一个Alfred的脚本,每次运行起来只需要按下键盘上的option+space,然后输入个inf并敲击回车就完成了(虽然可以做成定时提交数据,但是这种手动的成就感更加真实、可触摸)。

一个可视化Dashboard 接下来,应该会尝试加入自己的日常生活开支(现在用的是鲨鱼记账,但是导出csv需要订阅会员,后续应该会考虑选择一个买断制的记账软件)和运动量(Apple Health可以导出数据,虽然我从不运动)的可视化。