你有没有过这种感觉:周一明明喝了三杯咖啡,周五回忆起来却只记得"好像喝了不少"?或者觉得自己最近"老是熬夜",但真问起来又说不出具体几点睡的?

人类的记忆不太靠谱,擅长编故事,却不擅长记数字。

Felix Krause —— 对,就是那个做 Fastlane 的家伙 —— 干了件更狠的事。他把整个人生塞进了一个数据库。三年下来,攒了38万条记录,48张可视化图表,全都开源在 GitHub 上。

这不是什么极客的强迫症发作。这是一场关于"认识自己"的硬核实验。

个人数据仪表盘

数据库里的"我"长什么样

Felix 的项目叫 FxLifeSheet,听起来像什么理财产品的名字,实际上是个 Quantified Self(量化自我)系统。

什么叫量化自我?说白了就是用数据记录生活。

你每天走多少步?Apple Health 知道。你在电脑前坐多久?RescueTime 知道。你去过哪些地方?Foursquare Swarm 知道。今天天气怎么样?气象 API 知道。

Felix 做的事情,就是把这些散落各处的数据全都"搬"到一个 Postgres 数据库里,再加上自己手动记录的一些东西——心情、咖啡摄入、社交活动、阅读时间等等。

结果呢?380万行数据。

这是什么概念?假设你从出生开始每天记日记,每篇写1000字,记到80岁,大约是2900万字。380万行数据换算成文字量,大概相当于把你的人生翻倍记录了一遍。

量化自我追踪了哪些数据

看一眼这张"人生清单",你会发现 Felix 真的把"量化"这件事做到了变态级别。

自动追踪的数据:

  • 电脑使用时间(RescueTime 自动记录)
  • 地理位置(Foursquare Swarm 签到)
  • 天气(气象 API 每天拉取)
  • 健康数据(Apple Health 同步)

手动记录的数据:

  • 每日心情评分(1-5分)
  • 咖啡摄入量
  • 睡眠质量和时长
  • 运动类型和强度
  • 社交活动(见朋友、参加活动)
  • 阅读时间
  • 冥想时间
  • 生病状态
  • …还有90多项

他甚至记录了自己每次"觉得今天特别有成就感"的时刻。

这不是记日记。这是在给人生装监控摄像头。

48张图表告诉你什么

有了数据,下一步就是让它"说话"。Felix 用 Ruby + JavaScript + Plotly 搭了一套可视化系统,生成了48张图表。

这些图表能回答一些你从来不敢问自己的问题:

“我什么时候心情最好?” 不是周末,不是发工资那天。数据显示,Felix 心情最高分的时刻通常出现在户外运动后的下午。运动+阳光的组合,比任何"自我提升"技巧都管用。

“咖啡真的让我更清醒吗?” 数据说不一定。Felix 发现咖啡摄入量和工作效率的相关性几乎为零。有时候喝完咖啡反而更困——可能是咖啡因耐受性在作祟。

“天气会影响我的社交吗?” 会。晴天的时候,Felix 的社交活动数量比雨天高出40%。人类果然是光合作用生物。

“我到底在电脑前坐了多久?” 平均每天8.6小时。最高纪录是14小时。看到这个数字的时候,Felix 说他"被吓到了"。

这些发现有什么用?

用处在于:这些是事实,不是感觉。

“我觉得自己最近老是熬夜"和"数据显示你过去一周平均睡眠时间减少了23%",后者的冲击力完全不同。数据不会说谎,也不会给自己找借口。

FxLifeSheet 技术栈解析

你可能会想,搭建这样一套系统肯定很复杂吧?

实际上,Felix 的技术选型相当朴素:

  • 数据库:PostgreSQL(关系型数据库,稳定可靠)
  • 后端:Ruby(各种 API 拉取脚本)
  • 前端可视化:JavaScript + Plotly(图表库)
  • 数据采集:RescueTime、Foursquare、Apple Health 的 API,加上手动录入

整个项目的代码量不算大,核心难点在数据清洗和标准化。

比如,RescueTime 用的是 UTC 时间,Apple Health 用的是本地时间,气象 API 返回的是 Unix 时间戳。要把这些数据对齐到同一条时间线上,需要做不少脏活累活。

再比如,如何定义"社交活动”?见朋友算,那参加线下活动算吗?在咖啡店偶遇熟人算吗?这些都需要在录入数据时定义清楚,否则后期分析就是垃圾进垃圾出。

开源的意义

FxLifeSheet 在 GitHub 上以 MIT 协议开源。Felix 不是在炫技,而是想告诉所有人:

这件事,你也能做。

项目仓库里有完整的数据库 schema、数据采集脚本、可视化代码。你只需要做三件事:

  1. 搭一个 Postgres 数据库
  2. 申请各种 API key(RescueTime、Foursquare 等)
  3. 每天花5分钟手动记录一些数据

三个月后,你就能看到自己的人生仪表盘了。

当然,Felix 也提醒了一些"坑":

  • 数据录入的摩擦力:手动记录越复杂,越容易放弃。他建议只追踪真正关心的指标
  • 隐私问题:这些数据一旦泄露,比身份证号还危险。务必做好安全措施
  • 分析瘫痪:有了数据不代表就能得出结论。过度分析反而会让人焦虑

量化自我,然后呢

回到最初的问题:为什么要做这件事?

Felix 在项目 README 里写了一段话,大意是:

我不是为了追踪而追踪。我是想知道自己的行为模式,然后做出改变。

数据只是工具,行动才是目的。

知道了"运动后心情会变好",他就会在心情低落的时候强制自己出去跑步。知道了"咖啡对工作效率影响不大",他就开始尝试减少咖啡摄入。

量化自我的目的不是把生活变成Excel表格,而是从"我觉得"升级到"我知道"。

人类的直觉系统在演化过程中被设计成"快速反应模式",适合应对狮子的突袭,却不适合回答"我最近为什么总是疲惫"这种需要长期观察的问题。

数据库就是那个帮你记录一切的"外置记忆体"。它不会累,不会遗忘,也不会因为心情不好而篡改数据。

你需要这套系统吗

老实说,不是每个人都适合玩量化自我。

如果你连记账都坚持不下来,大概率也坚持不了每天记录心情和睡眠时间。问题不在意志力,而是这件事本身对你来说价值不够大。

但如果你曾经有过这些困惑:

  • “我总觉得时间不够用,但不知道时间去哪了”
  • “我想改善睡眠,但不知道到底是哪个因素影响了它”
  • “我想知道运动对我的心情到底有多大帮助”

那 FxLifeSheet 这样的系统可能值得一试。

从最简单的开始:先只追踪一件事。比如每天的心情评分,或者每天的睡眠时长。坚持一个月,看看数据会告诉你什么。

你可能会惊讶地发现,那个"总是熬夜的自己",其实只有30%的时间是真的在熬夜。或者那个"从来不运动"的自己,其实每周都有在走路,只是你没把散步当成运动。

数据有时候会推翻你的自我认知。这恰恰是它最有价值的地方。


常见问题

Q:这套系统需要多少技术基础? A:基础的数据库操作能力和简单的编程知识就够了。如果你会用 SQL 查询数据,能写一点 Python 或 Ruby 脚本,就能跑起来。Felix 的代码注释很详细,照着改改配置就能用。

Q:数据隐私怎么保证? A:所有数据都存在你自己的数据库里,不依赖任何云服务。只要你的服务器安全,数据就是安全的。当然,这也意味着你需要自己负责备份。

Q:手动记录太麻烦了怎么办? A:可以只追踪能自动采集的数据。RescueTime、Apple Health 这些都不需要手动操作。手动记录的部分,可以从每天3-5个指标开始,养成习惯再加量。

Q:数据分析需要统计学基础吗? A:基本的图表能看懂就行。Felix 的可视化系统已经做好了,你只需要解读结果。如果想做更深入的分析(比如相关性检验),可能需要学一点基础知识。

Q:这个项目还在维护吗? A:截至2026年初,FxLifeSheet 仍在 GitHub 上活跃维护。Felix 会不定期更新文档和代码。项目地址:github.com/KrauseFx/FxLifeSheet