探讨:公有领域作品的「现代复刻版」,到底有没有版权?
⚠️ 免责声明
这是一篇我关于著作权和版权的个人研究,内容未必准确,并非法律建议。
最近和一位小伙伴聊起了一个很有意思的版权问题:如果一个作品本身已经进入了公有领域(比如某国发表超过 50 年的单位作品), 但它的「现代扫描件」还不到 50 年,那么直接使用这个扫描件,或者基于这个扫描件获取知识,算不算侵权?
我的观点是这样的:如果直接拿着这个高清扫描件去商用或分发,可能会存在侵权风险;但是,如果你只是提取了扫描件里传递的「知识」 (也就是原本那份 50 年前的公有领域作品的内容),并且在自己的创作中没有照搬扫描件独有的特性(比如扫描者加的水印、特定的色彩修复等), 那么应该认为这一作品是派生自已经进入公有领域的知识,而非受著作权保护的该知识的这种表现形式,因而并不构成侵权。
打个比方:如果有人拍了一张 17 世纪世界名画的高清照片,我看着这张照片,临摹了一幅仿制画。 我认为我并没有侵犯摄影师的版权。除非我连摄影师独特的打光、其独特的拍摄角度,甚至照片上的噪点纹理也都一起画进去了。
今天,结合美国和世界各国的著作权处理原则,水一篇关于版权边界的思考。当然,本人并非法律专业, 虽然工作中经常需要和授权许可打交道,但这些仅仅是个人理解,并非法律建议。
阅读全文…errno 的实现
IEEE Std 1003.1-2024 (POSIX) 中对于 errno 的定义如下:
The lvalue to which the macro errno expands is used by many functions to return error values.
在更早期的 POSIX(Issue 5 及以前)以及 X/Open 文档中,曾经规定 errno
是一个外部变量(extern int errno),但这使得 errno 无法实现线程安全,因为所有线程共享同一个全局变量,
一个线程的系统调用返回的错误码会覆盖另一个线程的值。因此,POSIX Issue 6(即 SUSv3 / IEEE Std 1003.1-2001)
将这一要求删除,改为现在的定义:只要求 errno 是一个展开为 int 类型的可修改左值(modifiable lvalue)的宏。
这为实现者提供了足够的自由度,以支持线程安全的 errno。
ISO C 标准在 C90/C89 时期已经不再要求 errno 是外部变量。
cron 的 PAM 支持
在上一家公司的时候曾经有很多关于 cron(8) 的想法,但一直没有付诸实施,很多东西放在本地慢慢生锈了。
去年年底的时候我开始着手去修了一些 cron(8) 的 bug,其中包括为 cron 之前不够完整的 PAM 支持进行了改进。
背景:PAM
Pluggable Authentication Module (PAM) 为一系列身份验证相关的操作提供了一组通用的接口。 在没有 PAM 之前,应用程序需要实现大量重复的代码来完成类似的操作,例如要求用户输入密码并进行验证等。 这么做的问题在于缺乏灵活性,例如,管理员可能希望将用户数据保存到 LDAP 目录中, 或是使用指纹等新式验证方式。PAM 使这些相关操作可以通过插件来完成, 应用程序不再需要关心「如何验证用户身份」(用户名、密码等等是不是正确),而只需要向 PAM 询问 「该用户的身份是否合法?」即可。这层抽象简化了应用程序开发者的工作, 并且赋予了系统管理员更大的灵活性。
PAM 将系统的认证工作分成了四组基本操作:
auth:验证用户身份(比如检查密码)。account:检查账户是否有效(比如是否过期、是否允许在此时间登录)。password:用于修改密码。session:会话管理,即用户「进门前」和「出门后」需要进行的环境搭建或清理工作。这是本次更新的核心。
Costco 的 lockbox pickup
我因为平时会不时去 Costco 采购家里的食物等补给,因此我平时也会让医生把处方发给 Costco 药房, 这样在采购的时候可以顺便取药,从而节省时间。其实 Costco 几年前就和 Instacart 合作提供了送货上门的服务,在 COVID-19 大流行期间我曾经用过几次,但由于该服务采取的既对商品加价、 又要收运费、还希望客户支付小费这样的商业策略我很不喜欢,因此后来也就没再继续使用了。
Costco 药房的主要缺点或者说某种程度上的优点(这有助于让他们控制成本)是药房的开放时间比较短, 这会在一定程度上限制去 Costco 购物时间的灵活性,而既然选择不用送货上门服务, 也就只能选择在药房开放的时间去了。不过,最近我常去的 Costco 新推出了一项 Pharmacy Lockbox 服务来尝试改进这个问题,这周正好有两份处方需要补货,于是在 Costco App 下单之后决定顺路去试试看。
阅读全文…CSS 中的标点悬挂及其现状
什么是标点悬挂
标点悬挂 (Hanging punctuation) 是一种排版微调技术。当一行文字以标点开头或结尾时,标点可以「悬出」段落的对齐边界, 使正文文字的视觉边缘保持整齐。虽然差别细微,但在大段文字的排版中, 这种整齐的边缘能在一定程度上提升阅读体验。
阅读全文…写给未来的blog:关于引用、结构、导航与 AI
早年,车东 提出过一个愿景:「让互联网:良好引用,良好结构,良好导航」, 这句话一直让我印象深刻。一直以来,对互联网内容的彼此可以有效引用、结构清晰、可以被(人类和机器) 理解和持续访问而不是被时间与系统更新湮灭,是我和许多 blog 作者的理想。在我自己的 blog 中, 我也一直在尝试实现这三个目标。
阅读全文…Hugo blog 主题模板重构
借着 Vibe Coding 的东风,我为 blog 重新设计了一套模板,希望解决一些此前用的基于 ink 模板中存在的一些问题,并彻底清理掉一些历史包袱。
这件事还要从 Search Console 的 Core Web Vitals 报告说起。报告显示,旧主题使用的 Noto Serif SC 网页字体加载缓慢, 并在渲染过程中导致了显著的累积布局偏移(CLS)问题。
在调整网站 CSS 的过程中,我逐渐意识到原有主题模板存在不少结构性问题;与其零碎修补,倒不如直接推倒重来。 我的想法是,首先用 Hugo 新建一个最新版的最小模板,然后逐渐在上面添加我需要的功能,于是我列了一个需求 wishlist 清单:
阅读全文…持续血糖监测15天总结
⚠️ 免责声明
本文仅为作者基于个人经历所作的记录与分享,不构成任何形式的医疗建议或专业指导。作者并未接受相关专业培训,且文中所引用或提及的资料仅供参考,作者不对其完整性、准确性或适用性承担任何责任。涉及健康、医疗或相关法规的问题,请务必向具有资质的专业人士咨询。
根据CDC的统计数据, 全美十八岁以上接近一半的人口有糖尿病(占比11.6%)或前期糖尿病(占比38.0%),属于非常常见的疾病。 在亚裔人口中比较常见的是二型糖尿病,其特点是身体无法有效利用胰岛素(「胰岛素抵抗」),导致血糖在血液中累积, 从而引起血糖水平增加。 与低血糖不同,血糖水平升高通常不会立即导致特别明显的症状,但长期高血糖会损害眼睛、肾脏、神经和心脏等重要器官, 增加心脏病和血管疾病的风险。与直接致死的那类疾病不同,我认为糖尿病的可怕之处在于,它可能导致失明、或因反复感染造成肢体坏死等后果,这些都会在生命末期给患者带来巨大的长期痛苦。 因此,有必须采取措施避免出现糖尿病,或是尽量把它拖到人生比较末端的位置。
几年前我在体检中发现了血糖偏高的问题,除了服用药物和一些生活习惯的改变之外, 也增加了每隔一段时间抽血检查糖化血红蛋白水平来观察病情。与反映抽血当时血糖水平的空腹血糖不同, 糖化血红蛋白(A1c) 反映的是红细胞生命周期内的血浆葡萄糖平均浓度水平,因此美国糖尿病协会将其占比作为诊断糖尿病的一项标准。
阅读全文…git submodule 与 subtree 的异同
前几天有小伙伴在整理某个代码仓库的时候,希望把仓库里的代码和数据分离以便于管理。 由于他使用的是 git,所以很快大语言模型便引导他用上了包括 filter-repo 在内的一系列禁术, 其间就有了一段关于是应该使用 git submodule 还是 git subtree 的讨论。
先说我的结论,对于绝大多数人,特别是已经动了重写历史这种念头的人来说, 理想的选择是 git submodule。
阅读全文…改善大量重复内容文件的 tarball 压缩效率
有时,我们会希望分发包含大量重复文件的 tarball。绝大多数情况下,tarball 都会进行压缩, 进行适当的预处理有助于显著地提高压缩效率。
数据压缩的基本原理是利用数据中的冗余,通过更短的编码或规则表示重复或可预测的内容, 从而减少存储或传输所需的空间。简单的例子中,比如连续重复的字符「AAAAAA」可以表达为「6A」, 然而,当重复数据分布在较长范围内时,压缩算法很难直接发现和利用这些远距离的关联, 因为需要额外记录位置或匹配信息,这种匹配开销很大,做的话会严重影响压缩速度并且可能收益不高。 对于文本文件来说,其中的许多内容会高频率地出现,而如果一个 tarball 中包括数个内容一样的大型二进制文件,压缩算法很难有效地检测并对他们进行正确的处理。
阅读全文…