本文探讨了**精化**的概念——一种在保持系统外部行为不变的情况下改变其实现的技术——在数据库迁移中的应用。它展示了如何在不破坏依赖于数据的现有代码的情况下演化数据库模式。 作者通过一系列迁移来说明这一点:首先,将布尔值`is_activated`更改为可为空的`activated_at`时间戳,然后更改为使用`user_events`表的事物溯源模型。每次更改都通过定义一个**精化映射**来实现,该映射将新的数据结构转换为与旧代码兼容的格式。 然而,作者指出一个关键的细微之处:保持“外部属性”并非自动发生。他们引入了**可变性约束**(例如,用户一旦激活,就保持激活状态),以强调如果考虑不周,更改如何*破坏*精化。 示例表明,如果没有约束,事物溯源可能会违反这些属性。更复杂的场景,例如添加`activated_until`,进一步说明了维护长期精化的挑战。 最终,作者建议使用数据库迁移等相关示例来教授精化,而不是纯粹的形式化方法,以提高理解力。
科隆大学一位教授在ChatGPT Plus中临时禁用数据同意后,遭遇了重大数据丢失。尽管身为付费订阅者,他精心整理了两年之久的学术工作——包括项目申请、教学材料和发表稿件——被永久删除,且没有任何警告或恢复选项。
OpenAI确认了此次删除,理由是他们的“隐私优先设计”政策,即应要求不可逆地删除数据。虽然承认删除前有确认提示,但他们表示不存在备份以方便恢复,这符合隐私最佳实践。
该教授认为,这种缺乏数据安全和责任的做法使得ChatGPT不适合专业学术使用。该事件凸显了生成式人工智能融入研究和教学中的一个关键缺陷:这些工具优先考虑隐私而非数据保存,未能达到学术环境中对可靠性的期望。该教授现在建议研究人员对在这些平台上完成的所有工作进行独立备份。
## 放弃流媒体:Linux 音乐播放器汇总
由于对流媒体服务(如 Spotify)的不满——成本上升、对艺术家报酬的质疑以及侵入性人工智能——作者探索了 Linux 音乐播放器的生态系统,以寻求自助托管、以拥有为中心的体验。核心观点是,通过购买(CD、Bandcamp)或自助托管音乐库(通过 Jellyfin/Navidrome)直接支持艺术家,比流媒体更可取。
作者测试了许多播放器,优先考虑现代界面、原生集成、性能和强大的功能。**Feishin** 搭配音乐服务器脱颖而出,成为首选——它提供了一种“个人 Spotify”体验,具有广泛的功能和定制选项。**Tauon** 迎合了“高级用户”,采用独特的以播放列表为中心的方法,并支持广泛的网络源。**Recordbox** 以其易用性和快速性能令人印象深刻,而 **Euphonica** 仍然是已经使用 MPD 的用户的可靠选择。更简单的选项,如 **Amberol**,非常适合休闲听众。
最终,作者发现 Linux 音乐播放器拥有一个令人惊讶的充满活力的生态系统,由充满激情的开发者构建,为主流流媒体的局限性提供了引人注目的替代方案。