收藏官网首页
查看: 9244|回复: 0

PaperBack:如何在一张A4纸上存储数据

12

主题

30

帖子

146

积分

版主

Rank: 7Rank: 7Rank: 7

积分
146
跳转到指定楼层
楼主
发表于 2015-10-8 10:01:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
汉枫LPB120模块
一天,一位程序员的儿子问爸爸:“光盘是怎么存下那么多数据的呢?”他想了一下,拿出一支铅笔在纸上画一些点,来解释数据的密度有多么大。他儿子又问:“那这一张纸最多可以存多少数据呢?”他大体估计了一下,说100K吧。“我们能试试吗?”他儿子说。于是这位程序员就花了四五天的时间证明这个结论,后来又花了两个周的时间编写了PaperBack,这位程序员叫Olly
PaperBack是一款基于GPL的自由软件,可以将文件存储到一张巨大的位图图像中。如果有一台600dpi的激光打印机,那么就可以在一张A4纸上保存500,000byte的未压缩数据,如果用来存代码的话,一张纸可以保存3,000,000+(约3M)的C语言代码。
为什么要写这个软件呢?Olly说,现在已经有很多高级存储设备了,比如硬盘,光盘。但是这些都有一个缺陷:一段时间之后,你无法确定这些数据是否完好无损,是否可读,除非你使用相应地机器去读读看。纸就不一样了,很久以前,程序员就用穿孔纸带来保存代码,那时纸就被当做一种数据的保存方式。纸不仅可以当做廉价的存储介质,还可以像笔记本一样用,人们(不对,是程序员)甚至可以读懂上面的代码。
这种方式对硬件的依赖很低。首先纸本身就是可读的,(最多你可能需要借助一个放大镜),其次这款软件是自由软件,可以在Linux或者OS X上运行这些代码。还可以将数据打印出来之后邮寄到偏远地区,即使他们没有电脑也能分享到你的数据。
PaperBack的使用方法非常简单,软件只有一个exe文件,无需安装直接下载之后就可以运行。界面如下图:
参数说明
  • Dot density:分辨率。最重要的参数,最好设定为打印机分辨率的一半。如果是喷墨打印机,要设定在200dpi之内。
  • Dot size:点大小。点之间必须有明确的区分,通常70%是最佳选择。
  • Compression:压缩。如果你的计算机特别慢的话,选择fast,否则一般选Maximal(最大化压缩)。
  • Redundancy:冗余。冗余可以使数据更加可靠,例如,如果5个数据块中有一个坏了(选择1:5的时候),冗余就可以补救。冗余占用了存储空间,但是提高了安全性。
  • Header and footer:是否在头尾添加文件的相关信息。
  • Border around the page:是否添加边框。
  • Decoding:PaperBack使用了非常棒的纠错技术,即使有一部分数据有损了,也会被接受。这样加快了处理速度但是却导致了一些坏块。如果你想知道真实数据的质量,勾选Determine best quality,PaperBack会提供一个报告,但是需要一些时间。
  • Encryption:是否加密。
生成的位图图像如下:
使用PaperBack也可以将数据打印出来。现在的版本尚不支持打印文件夹,如果你要备份一个文件夹的话,需要先压缩。PaperBack支持拖拽操作,将一个非bmp文件拖入,就会自动打印。如果是bmp文件,默认的操作是解码。
PaperBack支持所有TWAIN接口的扫描仪来恢复数据。使用时需要关闭所有优化选项,PaperBack有自己的优化操作。如果存储的时候选择了加密,解码的时候会被要求输入密码。




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表