昔日的2009年12月

优雅的逻辑谜题

由12月25日发布2009年尼牙孜峰下的一般

尼克议上优雅的逻辑难题:

...优雅的逻辑是一个难题,可以告诉给任何人10岁了,不靠噱头,但似乎总是无法在第一次告诉任何人。 换句话说,问题是艰难的,但简单的解决办法是一次圆满解释。 该解决方案不涉及一个人或工具,这不是问题本身明确表示...

然后他接着问你和两个优雅的逻辑谜题。 对于好奇的心,他们都感到非常欣慰灵感结束,解决方案是干净和优雅了。 转到解决这些问题 ,如果你还没有。

还没有答复

让您的访客从缓存图像

由12月12日发布2009年尼牙孜峰下的互联网编程

杰夫阿特伍德( 编码恐怖成名)是在恐怖当他意识到,他的服务器崩溃,他的数据是过去了,由于某些原因,备份机制不能正常工作。 在编码恐怖完整的数据和StackOverflow博客消失了。

由于他的博客是非常受欢迎,包括谷歌缓存存档系统有很多的网页副本,我希望他们现在已经恢复了完整的文本数据。 在这种情况下,最大的问题是取回的图像。 有没有很多存档服务,可能在网站上的图像的完整备份。

因此,现在应该怎么做杰夫?

由于编码恐怖是一个高流量的博客,我觉得有一种方法可以取回,至少有图像。 (这个工作的可能性就取决于对网站的流量和大量的运气)

下面是步骤:

  1. 配置Web服务器返回的每一个形象的要求304。 HTTP状态代码304,该文件不被修改,这意味着浏览器会从缓存中提取文件,如果它是目前的手段。 (来源:这个超级用户回答)
  2. 在每一个网站页面,添加一个小脚本捕获的图像数据,并传送给服务器。
  3. 保存在服务器上的图像数据。
  4. 转换的像素数据来获得原始images.Voila!

捕获的图像数据

我们将使用在HTML 5帆布功能取回图像数据。

下面是代码插入你的网站应该在该网页。 它得到当前页面的所有图片,加载到网页帆布,获取图像的像素数据,并把它发送到服务器通过一个Ajax职务。

这个PHP脚本 (PHP能拯救杰夫? ;) 为了公平起见,服务器端代码是平凡的)保存在服务器上的数据文件。 请注意,文件本身不会被图像,他们将只包含图像的像素数据。 除了这个,我们也保存原始文件的名称和图像尺寸。 这意味着,我们可以很容易地从这些数据重建原始图像。 从每一个游客的数据保存在一个不同的文件,只是为了确保你有足够的提防他的冗余冗余(填写您的服务器磁盘)

请记住,这是一种概念证明代码。 你将不得不修改它使用普通的生产环境,并从中得到一些实际使用。 这个代码有许多限制。 不用说,你将得到的图像数据回从用户的条件是他们必须在浏览器缓存的形象。这个脚本将工作在铬,Firefox和Safari,Opera等(千万不要最新的版本只预计它在未来10年的工作在IE)。 除了这个,请记住,像素数据会比原始文件的大小大很多倍,你可能要仔细分析这个脚本磁盘空间使用情况。 (我猜在紧急情况下,这些问题真的无)。

你应该在脚本编辑后的URL来匹配您的域名。

最后,我已经测试了代码,它似乎是为我工作(至少)。 您需要包括在使用这个脚本的网页jQuery和记得,由于该浏览器的安全限制,你必须置于同一域名所有这些文件。请告诉我,如果有任何其他代码中的缺陷。

[更新:代码更改减少50%的文件大小。 十进制数转换为十六进制和数字之间的空格删除。 该文件的大小可以进一步减少使用完整的字符集。]

到目前为止,19个反应