[1685] Patch

Title Text:My optimizer uses content-aware inpainting to fill in all the wasted whitespace in the code, repeating the process until it compiles.<

Origin:https://xkcd.com/1685/

https://www.explainxkcd.com/wiki/index.php/1685:_Patch

Adobe Photoshop是一种常用的图像处理应用程序。它的一个功能是补丁工具,它允许用户覆盖部分图像,用同一图像的另一个区域的副本替换它们。它通常用于通过覆盖照片上的划痕或其他可见的损坏来“拍摄”照片。 Photoshop的另一个特点是“内容感知填充”?这也可以被描述为“内容意识修复”?它的工作方式与Patch工具类似,但会自动从已删除部分周围的区域生成替换纹理,而不是精确复制用户指定的区域。

GNU补丁程序只用一个更新版本替换部分代码,而无需用户下载整个源代码。在这里,似乎作者被告知“at”代码,但是使用Photoshop来代替GNU补丁,并带来毁灭性的结果。虽然标题文本表明,如果你这么做了很多次代码最终会编译,这将永远不会发生。实际上,Photoshop只能编辑文本的图像而不能编辑文本本身。但是,如果将光学字符识别(OCR)集成到工作流程中,它也可以工作。

漫画模糊了文本之间的差异(其中字母和符号代表离散值,例如65是ASCII编码标准中字母A的数字,并且程序编译器将这些值的组合解释为关键字和相对容易其他编程结构)和图形(其中漫画中的字母和符号实际上由彩色圆点图案表示),玩弄贴片隐喻可用于两者的想法(尽管具有不同的含义)。将文本信息转换为图像有一些常见且简单的过程,例如打印,可以非常忠实地将文本转换为图形格式。然而,相反,需要使用光学字符识别(OCR),其试图找出哪些字母或符号某些图案的点“看起来像”。 OCR可以有效地将漫画中的一些图像转换为可用文本,但是对于那些被破坏并且看起来不像任何现有字符或符号的图案,它会失败。编译器只能对文本数据进行操作,因此将图形转换回文本是开始尝试编译它的必要条件,标题文本中省略了这一步骤。

代码似乎是用Python编写的,这是一种在xkcd中经常提到的编程语言,例如353:Python。可以识别的一些功能名称是“isPrime”和“quicksort”,两种基本编程算法。它显然最初是使用Python感知编程文本编辑器编辑的,它能够为不同的编程元素使用不同的颜色。例如,它似乎使用红色表示关键字,蓝色表示变量,黑色表示其他元素,但是由于使用错误的修补程序导致错误,这似乎不一致。由于修补替换了图形元素而不是整个字符,因此有两个不同字符组合的符号示例,当原始的两个字符以不同的颜色呈现时,生成的非字符可以是两种颜色,或者生成的“单词“可能会以多种颜色呈现。

漫画引起了人们对Adobe Photoshop盗版率的高度关注。 GNU Patch是免费提供的,即使对于Windows和Mac OS X也是如此。因此漫画意味着Adobe Photoshop(订阅费用为每月20美元)比GNU补丁更有用。根据这项民意调查,58%的Photoshop拷贝是盗版的。

标题文本还解释了补丁使用内容感知的修复来填充代码中的所有浪费的空白。在大多数编程语言中,空格是分隔单词所必需的,因此这将组合不应该组合的单词并创建无效代码。由于图像中的代码是Python,代码将更加混乱,因为Python使用空格作为其编程语法的一部分。例如,语句由新行而不是分号(;)分隔,并使用缩进代替括号来确定每个代码段的范围。

原始代码可能如下:

进口重新

def isPrime(n):

如果n <= 1:

返回False

对于范围内的i(2,int(n ** 0.5)+1):

如果n%i == 0:

返回False

返回True

def isPrimeRegex(n):

如果re.match(r’^ 1?$ | ^(11 +?)\ 1 + $’,’1’* n):

返回False

返回True

def quicksort(一):

如果len(a)&lt; 2:

回来一个

枢轴= A [0]

l = [i for i in a if i&lt; pivot]

r = [i for i in a if i&gt; pivot]

中期= [枢轴] *(LEN(一) – (LEN(1)+ LEN(R)))

return quicksort(l)+ mid + quicksort(r)isPrime和quicksort是简单算法的标准python实现(尽管你通常不会在python中编写排序算法,因为有可用的内置算法)。 isPrimeRegex使用re模块通过查看包含多个1的字符串是否可以匹配包含至少2个1的某个字符串的2个或更多副本来检测数字是否为素数。

漫画两部漫画1683年回归:数字数据,也与将数字数据转化为坏副本有关。在1667年提到quicksort之前不到一个月:算法,并且在1654年发布另一个“简单”的编程问题解决方案之前一个月:通用安装脚本。

使用Photoshop工具执行任务并不适用于1784:Bad Map Projection:Liquid Resize,其中Photoshop的内容感知调整大小工具是用于Map Projection的非常可疑的选择。

Leave a Reply

Your email address will not be published. Required fields are marked *

Categories