一天,一位程序員的兒子問爸爸:“光盤是怎么存下那么多數據的呢?”他想了一下,拿出一支鉛筆在紙上畫一些點,來解釋數據的密度有多么大。他兒子又問:“那這一張紙多可以存多少數據呢?”他大體估計了一下,說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有自己的優化操作。如果存儲的時候選擇了加密,解碼的時候會被要求輸入密碼。
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。