思考

共 376 篇文章。

探讨:公有领域作品的「现代复刻版」,到底有没有版权?

• The Universe

⚠️ 免责声明

这是一篇我关于著作权和版权的个人研究,内容未必准确,并非法律建议。

最近和一位小伙伴聊起了一个很有意思的版权问题:如果一个作品本身已经进入了公有领域(比如某国发表超过 50 年的单位作品),但它的「现代扫描件」还不到 50 年,那么直接使用这个扫描件,或者基于这个扫描件获取知识,算不算侵权?

我的观点是这样的:如果直接拿着这个高清扫描件去商用或分发,可能会存在侵权风险;但是,如果你只是提取了扫描件里传递的「知识」(也就是原本那份 50 年前的公有领域作品的内容),并且在自己的创作中没有照搬扫描件独有的特性(比如扫描者加的水印、特定的色彩修复等),那么应该认为这一作品是派生自已经进入公有领域的知识,而非受著作权保护的该知识的这种表现形式,因而并不构成侵权。

打个比方:如果有人拍了一张 17 世纪世界名画的高清照片,我看着这张照片,临摹了一幅仿制画。我认为我并没有侵犯摄影师的版权。除非我连摄影师独特的打光、其独特的拍摄角度,甚至照片上的噪点纹理也都一起画进去了。

今天,结合美国和世界各国的著作权处理原则,水一篇关于版权边界的思考。当然,本人并非法律专业,虽然工作中经常需要和授权许可打交道,但这些仅仅是个人理解,并非法律建议。

阅读全文… ( 本文约 1789 字,阅读大致需要 4 分钟 )

写给未来的blog:关于引用、结构、导航与 AI

• Blogging

早年,车东 提出过一个愿景:「让互联网:良好引用,良好结构,良好导航」,这句话一直让我印象深刻。一直以来,对互联网内容的彼此可以有效引用、结构清晰、可以被(人类和机器)理解和持续访问而不是被时间与系统更新湮灭,是我和许多 blog 作者的理想。在我自己的 blog 中,我也一直在尝试实现这三个目标。

阅读全文… ( 本文约 1461 字,阅读大致需要 3 分钟 )

捞女游戏 / 情感反诈模拟器 第三章

• Life

随着年龄的增长,我已经不怎么正经玩游戏了,不过由于独立日这段时间有两个星期只有我自己在家,加上最近在 YouTube 上看到了游戏中第三章男女主酒吧对手戏的片段感觉制作相当不错,所以在 Steam 上买了一份。

情感反诈模拟器(原名「捞女游戏」)是一款真人互动式影游,其剧情画面是活的演员预先录制而非即时渲染。这种形式有点类似于九十年代出现的互动式DVD(DVDi),不过看起来分支可以比那时复杂许多,甚至可以加入一些业务逻辑。这个游戏本身看起来是用 Electron 实现的,对代码做了少许混淆(bytenode),在运行过程中大部分时间实际上是在播放影像。早期版本曾经可以直接在游戏启动器(使用的是明文的 JavaScript)中暴力注入一段启用远程调试的代码,从而用一个单独的浏览器就可以调试游戏了,后来更新的版本中游戏制作者将入口堵住了🤣。不过,这个游戏吸引我的并不是它采用的技术,所以关于技术的讨论到此为止。

🚨 警告

以下内容可能包含剧透,并且可能涉及不适合未成年人观看的内容,请仔细斟酌是否要继续阅读。

阅读全文… ( 本文约 17242 字,阅读大致需要 35 分钟 )

数据的长期保存

• Data Management

我们每个人每天都在产生各种数据。包括个人笔记、照片等等在内的许多数据,许多可能不太容易再次获得或制造。今年夏天,我整理了一些自己二十年前刻录的光盘,这里记录一下长期保存数据的一些原则、需要避免的陷阱,以及确保数据在数十年后仍然可用的最佳实践。

阅读全文… ( 本文约 1586 字,阅读大致需要 4 分钟 )

统计

• Shared Chaos

统计,是让不同的专家能够从同样的数据中总结出截然相反结论的不二法门。

在这里也发一遍免得哪天 X上发表的原版 没了。

来自 X (Twitter)
参与评论

个人票务系统

• Life

今年二月的时候,我发过一个段子:

「你是什么时候意识到自己可能需要休假了?」

「有一天我临睡前在家里的票务系统里给自己开了票,要求在家里的DNS域上添加 staging,preprod 等几个子域来符合最佳实践,然后在第二天醒来以后看到系统发出的今日待办事宜邮件的时候。」

段子归段子,我认为搭起票务系统是我在疫情期间干的最改善生活品质的一件事了。这里分享一下我的一些个人经验。

为什么你有可能会需要一套票务系统?或者说,票务系统能帮我干什么?

事务追踪系统,或者,由于其中的事务往往也被称作「票」(ticket),我个人也常戏称为票务系统,在成规模的团队软件开发中是经常使用的一种工具。票务系统可以记录开发期间的各类任务,将任务分解成多个可操作的子任务、为这些任务排列优先级,并将其分配给具体的人。对任何工作而言,将工作拆解到较为具体的、可以由一个人完成,并且具有优先级和依赖关系属性的子任务,都有助于帮助人们迅速、高效地完成工作。

在工作中我个人也很喜欢使用事务追踪系统来跟踪一些开发以外的事务性活动,并且将事务追踪系统作为一种类似笔记的工具使用,在「票」中关联一系列相关文档,这有助于在事后总结经验或将重复性的事务性工作整理成更容易使用的形式(例如作弊条文档,或是将常用的重复部分变成程序等等)。

阅读全文… ( 本文约 2156 字,阅读大致需要 5 分钟 )

百年之后zz

• Shared Chaos

Have you ever thought about this?

In 100 years, like in 2124, we will all be buried with our relatives and friends.

Strangers will live in our homes we fought so hard to build, and they will own everything we have today. All our possessions will be unknown and unborn, including the car we spent a fortune on, and will probably be scrap, preferably in the hands of an unknown collector.

Our descendants will hardly know who we were, nor will they remember us. How many of us know our grandfather’s father?

After we die, we will be remembered for a few more years, then we are just a portrait on someone’s bookshelf, and a few years later our history, photos and deeds disappear in history’s oblivion. We won’t even be memories.

If we paused one day to analyze these thoughts, perhaps we would understand how ignorant and weak the dream to achieve it all really was.

If we could only think about this, surely our approaches, our thoughts would change, we would be different people.

Always having more, no time for what’s really valuable in this life. I’d change all this to live and enjoy the walks I’ve never taken, these hugs I didn’t give, these kisses for our children and our loved ones, these jokes we didn’t have time for. Those would certainly be the most beautiful moments to remember, after all they would fill our lives with joy.

And we waste it day after day with greed and intolerance.

阅读全文… ( 本文约 711 字,阅读大致需要 2 分钟 )

自建权威 DNS 的利弊

• Security

TL;DR:我的观点是现时 (2023) 大多数人都不应该自建 DNS,而应该找一家比较可靠的供应商。

下面说说我的理由。

阅读全文… ( 本文约 1624 字,阅读大致需要 4 分钟 )

关掉了 Google 账户的 passkey

• Security

最近, Google 账户新增了一种叫做 passkey 的登录方式。

传统的采用密码登录的登录方式中,用户需要用某种方式证明自己知道密码,而绝大多数实现中这意味着网站必须保存用户的密码,或是密码的 hash 值(通常是HMAC),这意味着网站如果发生了拖库的情况,有可能会将用户的密码或其 hash 值泄漏出去。此外,用户可能必须输入密码,并将密码通过某种方式传输到服务器上,这样一来在这个过程中便有可能由于本地的木马,或是网站采用的 SSL/TLS 实现的漏洞导致密码泄漏。除此之外,即使用户十分小心地在每一个不同的网站都使用了不同的密码,他们仍然需要担心被「钓鱼」的问题,所谓「钓鱼」是这样一种攻击方式:攻击者架设一个看起来很像是用户希望登录的网站的网站,并诱骗用户输入密码。

阅读全文… ( 本文约 1697 字,阅读大致需要 4 分钟 )

C main() 的 exit() 和 return

• Development

这里讨论一个犀利而无用的细节问题。事情的缘起是有人在 GitHub 上提了一个 pull request 要求把许多程序的main() 的终结部分从 exit(X) 改为 return X;,我反对了这一变动。

值得注意的是,在实践上,从 main 中 return 和调用 exit(3) 几乎等效的(此处还是有细微差别,后面将会讨论),原因是 C 运行环境库的启动部分(这部分会在连接过程中嵌入到可执行文件中,FreeBSD 的实现中,这部分位于 lib/libc/csu/libc_start1.c 的 __libc_start1:

1
2
3
4
5
6
7
void
__libc_start1(int argc, char *argv[], char *env[], void (*cleanup)(void),
    int (*mainX)(int, char *[], char *[]))
{
/* ... */
	exit(mainX(argc, argv, env));
}
阅读全文… ( 本文约 967 字,阅读大致需要 2 分钟 )