Update 3 files

- /Live2dHistoire/live2d/js/message.js
- /_data/links.csv
- /_posts/2025-09-01-quine.md
This commit is contained in:
mayx 2025-09-22 15:42:20 +00:00
parent da59fa1a9f
commit 2803a0773a
3 changed files with 6 additions and 3 deletions

View File

@ -201,7 +201,9 @@ if (!norunFlag) {
eventFlag = true;
}
var data = JSON.parse(event.data);
outputContainer.textContent += data.response;
if (data.response) {
outputContainer.textContent += data.response;
}
}
}
} else {

View File

@ -15,7 +15,7 @@ Vullfin的博客,https://blog.vull.top/,https://blog.vull.top/atom.xml,Vullfin's
記緒漂流,https://ttio.cc/,https://ttio.cc/feed.xml,于记忆之川,泛思绪之舟。
陈陈菌博客,https://blog.glumi.cn/,https://blog.glumi.cn/rss.xml,计算机业余爱好者。
彬红茶日记,https://note.redcha.cn/,https://note.redcha.cn/rss.xml,我的个人日记!
Lanke's blog,https://www.blueke.top/,https://www.blueke.top/rss.xml,请为一切不真实之物骄傲,因为我们高于这个世界!
Lanke's blog,https://blog.blueke.top/,https://blog.blueke.top/rss.xml,请为一切不真实之物骄傲,因为我们高于这个世界!
时光流·言,https://www.hansjack.com/,https://www.hansjack.com/feed/,个人博客,持续分享网站部署实战经验、精选书评解读和生活观察手记。 这里提供可复用的技术教程、深度阅读指南和真实生活洞察,与技术爱好者一起进步......
Pinpe 的云端,https://pinpe.top/,https://pinpe.top/rss.xml,一个属于自己的云朵。
Chise Hachiroku,https://chise.hachiroku.com/,https://chise.hachiroku.com/zh/feed/,向明日的辉迹,干杯!

1 title link feed_url description
15 記緒漂流 https://ttio.cc/ https://ttio.cc/feed.xml 于记忆之川,泛思绪之舟。
16 陈陈菌博客 https://blog.glumi.cn/ https://blog.glumi.cn/rss.xml 计算机业余爱好者。
17 彬红茶日记 https://note.redcha.cn/ https://note.redcha.cn/rss.xml 我的个人日记!
18 Lanke's blog https://www.blueke.top/ https://blog.blueke.top/ https://www.blueke.top/rss.xml https://blog.blueke.top/rss.xml 请为一切不真实之物骄傲,因为我们高于这个世界!
19 时光流·言 https://www.hansjack.com/ https://www.hansjack.com/feed/ 个人博客,持续分享网站部署实战经验、精选书评解读和生活观察手记。 这里提供可复用的技术教程、深度阅读指南和真实生活洞察,与技术爱好者一起进步......
20 Pinpe 的云端 https://pinpe.top/ https://pinpe.top/rss.xml 一个属于自己的云朵。
21 Chise Hachiroku https://chise.hachiroku.com/ https://chise.hachiroku.com/zh/feed/ 向明日的辉迹,干杯!

View File

@ -88,9 +88,10 @@ Hello, world!
## Quine Relay的探索
还有一个更加复杂的Quine变种是“Quine接力”Quine Relay即一个程序输出另一个程序的源代码另一个程序又输出下一个程序的源代码最后回到原始程序就和之前所说的嵌套循环ZIP Quine有点类似。最著名的例子是[Yusuke Endoh](https://github.com/mame)(这位还是[IOCCC](https://www.ioccc.org/)的冠军之一)创建的[quine-relay](https://github.com/mame/quine-relay)项目它包含了128种编程语言的循环。
这种程序写起来会更复杂一些不过原理都差不多通常除了当前运行的部分是可执行代码外其他的代码都需要以额外包含的数据形式如字符串存储在变量中。如果想自己做个类似简单的Quine Relay除了去看[维基百科](https://en.wikipedia.org/wiki/Quine_(computing)#Ouroboros_programs)之外,前段时间我还看到过一个不错的[文章](https://blog.mistivia.com/posts/2024-09-21-quine/)里面就讲了如何用“笨办法”编写Quine和Quine Relay通过把变量中的内容编码为16进制来避免不同语言可能存在的特殊字符转译问题思路不错对于理解如何编写这类程序的问题很有帮助。当然这只是个**简单**的方案,仅适用于一些常规的编程语言,像上面那个[quine-relay](https://github.com/mame/quine-relay)项目中甚至还包含Brainfuck之类的esolang这种估计得要想办法让相对高级一些的语言通过“生成”的方式得到输出下一种代码的代码而不是简单的赋值了所以只靠这点知识想去完全理解大佬的作品还是想多了😆。
顺便一说quine-relay并不是那位大佬唯一的Quine作品他还做过[有冗余的Quine](https://github.com/mame/radiation-hardened-quine)以及[动态的Quine](https://mamememo.blogspot.com/2010/09/qlobe.html),真的是相当的厉害……
## Polyglot Quine的探索
除了Quine Relay之外还有一种很复杂的Quine叫做[Polyglot](https://en.wikipedia.org/wiki/Polyglot_(computing)) Quine与Quine Relay需要在程序执行后才能切换到其他语言接力不同Polyglot Quine的源代码本身即可同时属于多种语言而且用这些语言的解释器每个执行后的输出全都一样都与源代码完全一致。由于不同的编程语言的格式既有些相同之处也有很多不同之处所以让同一份代码表示不同语言就会很容易产生歧义这时候就只能想办法通过一些特别的方式比如将可能会对当前语言产生干扰的代码看作是注释的方式来规避语言之间的差异。
Quine本身就已经很困难了再加上这些限制就变得更加复杂了所以制作Polyglot Quine的编程语言基本上都得精挑细选而且通常只有两种语言比如[这段代码](https://github.com/TrAyZeN/polyglot-quine/blob/master/main.c)就是C和Python的Polyglot Quine它巧妙利用了C预处理器指令在Python中可视为注释的特性使两种语言互不干扰非常有趣。更令人惊叹的则是[PyZipQuine](https://github.com/d0sboots/PyZipQuine)项目,既可以被当作压缩包也可以作为Python2.7代码而且二者都是Quine实在令人赞叹。
Quine本身就已经很困难了再加上这些限制就变得更加复杂了所以制作Polyglot Quine的编程语言基本上都得精挑细选而且通常只有两种语言比如[这段代码](https://github.com/TrAyZeN/polyglot-quine/blob/master/main.c)就是C和Python的Polyglot Quine它巧妙利用了C预处理器指令在Python中可视为注释的特性使两种语言互不干扰非常有趣。当然并不是说只能是两种语言,像[这个](https://github.com/2KAbhishek/polyquine)项目甚至使用了五种语言C、Perl、PHP、Python、Ruby可以说是相当厉害了。除此之外更令人惊叹的则是[PyZipQuine](https://github.com/d0sboots/PyZipQuine)项目,在这其中LZ77编码也可以作为一种语言所以既可以被当作压缩包也可以作为Python2.7代码而且二者都是Quine实在令人赞叹。
# 感想
虽然这次探索最终没能完成让包含博客所有内容的压缩包自包含但是在探索的过程中我还是收获了不少尤其是Ruben Van Mello制作的ZIP Quine生成工具实在是太棒了。很久以前我见到droste.zip这个压缩包的时候就想整一个属于自己的ZIP Quine现在我不仅用那个生成工具做了一个还是对我来说很有意义的第一个项目——Mabbs而且更关键的还是生成的是比普通的ZIP Quine更高级的嵌套循环ZIP Quine也算是圆了小时候的心愿了。