本文翻译自 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 构建的基于时间戳的键值数据库。每行包含 timestamp、key 和 value:
timestamp:数据记录的时间key:描述记录什么(如weight、locationLat、mood),可以随时添加和删除value:实际值,可以是数字、字符串、布尔值等
数据输入
通过 Telegram 机器人每天多次手动回答问题。问题涵盖健身、健康(营养、运动、睡眠等)到生活(感受、社交媒体时间等)。Telegram API 的可扩展性使得这变得简单,甚至可以自定义键盘以根据问题提供预设回复。
数据可视化
在尝试了各种可视化工具后,最终使用 Ruby、JavaScript 和 Plotly 编写了自己的数据分析层。
隐私考虑
Felix 实际上发布过很多 iOS 隐私项目(iOS 上录音或拍照时显示的那个绿色/橙色 LED 指示灯就是他的贡献)。为什么要做这个项目?
- 很多可视化数据实际上是大公司已经拥有的用户数据,为什么用户自己不能拥有?
- 数据存储在自己私有的数据库中,不连接任何服务
- 展示的数据看起来很个人,但实际上不暴露敏感信息。例如,披露当前位置、家庭住址或经常去的商店是敏感且潜在危险的。但即使看移动数据地图,也不会获得比大多数人在 Twitter 简介中公开的更多信息
结论
这是文章中最有价值的部分——诚实的反思:
总的来说,花费大量时间构建这个项目、扩展到现在的规模以及分析数据后,主要结论是不值得构建自己的解决方案,投入这么多时间。
当 3 年前开始这个项目时,他期望学到更多令人惊讶和有趣的事实。确实有一些,看这些图表也很有趣,但回过头来看,这并不足以证明在这个项目上投入的数百小时是合理的。
2025 年更新: 我已经停止收集数据和处理这个项目,但我会保留这个页面。
个人思考
这篇文章让我印象深刻的是作者的诚实。很多”量化自我”(Quantified Self)的文章只展示酷炫的结果,但很少有人愿意承认:投入产出比可能并不划算。
但这并不意味着量化自我没有价值。作者提到,虽然不再大量追踪,但他对生活的觉察力确实提高了。这可能是这类项目最大的收获——不是数据本身,而是追踪数据过程中培养的自我意识。
如果你想开始量化自我,作者建议寻找这些特征的服务:
- 确保能完全访问数据(数据导出或公开 API)
- 看看项目维护者如何对待反馈
- 评估你想投入多少时间追踪数据
- 了解商业模式,是否可持续
- 不要只用 App:经验表明 App 往往是数据孤岛,功能有限,在大屏幕上分析数据更高效
核心要点:
- 数据追踪需要长期坚持才能看到有意义的趋势
- 自己构建系统虽然灵活,但时间成本很高
- 数据本身不是目的,提高自我认知才是
- 隐私可控是关键——数据应该属于你自己
- 最终,生活的质量不取决于你追踪了多少数据