NEE's Blog

量化自我的极致实践:把整个人生放进数据库

March 10, 2026

本文翻译自 howisFelix.today,原载于 Hacker News。

背景:为什么我要把整个人生放进数据库

2019 年,Felix Krause 开始收集关于自己生活的各种指标。在过去的 3 年里,他每天追踪超过 100 种不同类型的数据——从健身、营养到社交生活、电脑使用和天气。

这个项目的目标是回答关于生活的问题:

  • 在不同城市生活如何影响健身、生产力和幸福感?
  • 睡眠如何影响一天的状态、健身水平和心情?
  • 天气和季节如何影响生活?
  • 过去几年有什么趋势?
  • 电脑时间、工作和会议时间如何影响个人生活?

自项目启动以来,他收集了约 38 万个数据点,主要数据来源包括:

数据来源 数据条目数 数据类型
RescueTime 149,466 每日电脑使用(访问的网站、使用的应用)
Foursquare Swarm 126,285 位置和 POI 数据,去过的地方
手动输入 67,031 健身、心情、睡眠、社交、健康、营养、精力水平、TV、压力…
手动输入日期范围 19,273 职业、封锁状态、居住安排
天气 API 15,442 温度、降雨、日照、风力
Apple Health 3,048 步数数据天数

最初域名是 whereisFelix.today(现已更名为 howisFelix.today),开始只是个玩笑,用来回复朋友问他什么时候回纽约或旧金山。与其发日程,不如直接指向这个域名。但现在它不仅仅是位置:它是他的全部生活。

项目规则:

  • 使用单一数据库,由自己拥有和托管,存储多年来收集的所有数据
  • 能够随时轻松添加和删除问题
  • 完全控制数据可视化方式
  • 适应频繁飞行者的混合时区
  • 100% 开源,MIT 许可证,自托管

有趣的发现

心情与生活方式的关联

在标记心情为”开心”和”兴奋”的日子里,生活的其他方面受到影响:

  • 挑战舒适区的可能性高 50%
  • 当天冥想的可能性高 44%
  • 对未来感到兴奋的可能性高 33%
  • 当天喝酒的可能性高 31%(派对、好友聚会等)
  • 阅读或听有声书的时间多 28%
  • 处理有趣技术挑战的可能性高 26%
  • 当天温度高 26%
  • 当天学到新东西的可能性高 20%
  • 音视频通话时间少 45%

睡眠时长的影响

睡眠超过 8.5 小时的日子里:

  • 出现感冒症状的可能性高 65%
  • 头痛的可能性高 60%
  • 社交媒体使用增加 40%
  • 更可能是雨天(高 30%)
  • 更可能是周末(高 20%)
  • 当天去健身的可能性低 20%
  • 精力少 24%

这很有意思——睡眠时间长的日子往往是不太好的日子。这很可能是因为他通常限制睡眠在 8 小时以内,如果真的睡得更久,通常是因为身体不适或生病。

高温天气的影响

最高温度超过 26°C(78.8°F)的日子里:

  • 洗冷水澡的可能性高 80%
  • 去健身的可能性高 37%
  • 每日步数多 26%
  • 酒精饮料多 20%
  • 晚上出门的可能性高 15%
  • 不太可能午睡(低 13%)
  • 代码编辑器时间少 20%
  • 生病的可能性低 21%
  • 处于 COVID 封锁的可能性低 100%

步数与生活质量

走路超过 15,000 步的日子(过去 3 年平均每天 9,200 步):

  • 与朋友相处的时间多 60%
  • 当天温度高 50%
  • 睡前与朋友社交的可能性高 40%
  • 更可能是周末(高 35%)
  • 当天午睡的可能性低 20%
  • 正确追踪饮食的可能性低 30%
  • 工作会议时间少 30%
  • 焦虑程度低 30%
  • 冥想的可能性低 40%
  • 写代码时间少 40%
  • 是雨天的可能性低 40%
  • 看 TV 时间少 50%
  • 处于封锁的可能性低 95%

周末是什么样的

周末自然意味着更少的工作时间,更多的外出和社交互动:

  • 电脑”娱乐”时间多 150%(主要是和朋友玩 Factorio 或帝国时代)
  • 看 TV 时间多 74%
  • 与朋友相处时间多 60%
  • 跳舞多 55%
  • 头痛的可能性高 45%(因为前一晚喝酒)
  • 健身房访问少 25%
  • 正确追踪饮食的可能性低 45%

技术实现

这个项目名为 FxLifeSheet,100% 开源于 KrauseFx/FxLifeSheet

数据库

使用 Postgres 构建的基于时间戳的键值数据库。每行包含 timestampkeyvalue

  • timestamp:数据记录的时间
  • key:描述记录什么(如 weightlocationLatmood),可以随时添加和删除
  • value:实际值,可以是数字、字符串、布尔值等

数据输入

通过 Telegram 机器人每天多次手动回答问题。问题涵盖健身、健康(营养、运动、睡眠等)到生活(感受、社交媒体时间等)。Telegram API 的可扩展性使得这变得简单,甚至可以自定义键盘以根据问题提供预设回复。

数据可视化

在尝试了各种可视化工具后,最终使用 Ruby、JavaScript 和 Plotly 编写了自己的数据分析层。

隐私考虑

Felix 实际上发布过很多 iOS 隐私项目(iOS 上录音或拍照时显示的那个绿色/橙色 LED 指示灯就是他的贡献)。为什么要做这个项目?

  • 很多可视化数据实际上是大公司已经拥有的用户数据,为什么用户自己不能拥有?
  • 数据存储在自己私有的数据库中,不连接任何服务
  • 展示的数据看起来很个人,但实际上不暴露敏感信息。例如,披露当前位置、家庭住址或经常去的商店是敏感且潜在危险的。但即使看移动数据地图,也不会获得比大多数人在 Twitter 简介中公开的更多信息

结论

这是文章中最有价值的部分——诚实的反思

总的来说,花费大量时间构建这个项目、扩展到现在的规模以及分析数据后,主要结论是不值得构建自己的解决方案,投入这么多时间

当 3 年前开始这个项目时,他期望学到更多令人惊讶和有趣的事实。确实有一些,看这些图表也很有趣,但回过头来看,这并不足以证明在这个项目上投入的数百小时是合理的。

2025 年更新: 我已经停止收集数据和处理这个项目,但我会保留这个页面。

个人思考

这篇文章让我印象深刻的是作者的诚实。很多”量化自我”(Quantified Self)的文章只展示酷炫的结果,但很少有人愿意承认:投入产出比可能并不划算

但这并不意味着量化自我没有价值。作者提到,虽然不再大量追踪,但他对生活的觉察力确实提高了。这可能是这类项目最大的收获——不是数据本身,而是追踪数据过程中培养的自我意识。

如果你想开始量化自我,作者建议寻找这些特征的服务:

  • 确保能完全访问数据(数据导出或公开 API)
  • 看看项目维护者如何对待反馈
  • 评估你想投入多少时间追踪数据
  • 了解商业模式,是否可持续
  • 不要只用 App:经验表明 App 往往是数据孤岛,功能有限,在大屏幕上分析数据更高效

核心要点:

  1. 数据追踪需要长期坚持才能看到有意义的趋势
  2. 自己构建系统虽然灵活,但时间成本很高
  3. 数据本身不是目的,提高自我认知才是
  4. 隐私可控是关键——数据应该属于你自己
  5. 最终,生活的质量不取决于你追踪了多少数据
comments powered by Disqus