Kindle 电子书格式进化史

by wzyboy on

Amazon Kindle 至今已有十年历史了,它所支持的电子书格式也发生了许多有趣的变化。 一、起源:MOBI MOBI 是 MobiPocket Reader 专门的格式。MobiPocket Reader 是 MobiPocket 公司出品的电子书阅读器。MobiPocket 公司成立于 2000 年,于 2005 年被 Amazon 收购,2007 年 Amazon 推出第一代 Kindle。可以说 Amazon 是在 MobiPocket 的技术积累上进军电子书市场的。如今 MobiPocket 的网站早就已经下线(Internet Archive),但 MobiPocket 对 Kindle 系列的影响十年之后仍未完全消失。 MOBI 的封装容器是 PalmOS 上数据库 PDB。PalmOS 使用 PDB 来存储程序、文档、图片等各种数据,MOBI 是类型为 BOOKMOBI 的 PDB。如今 PalmOS 早已消亡,但是 PDB 却借着 MOBI 一直活了下来。 初代的 Amazon Kindle 的电子书格式便是轻微修改过的 MOBI。Amazon 在原始 MOBI 的基础上加上了 DRM, ……

互联网时代的报纸广告(外一篇)

by wzyboy on

互联网时代的报纸广告 Read the Docs 是供开源项目发布文档的平台。自 2016 年起,Read the Docs 开始在文档页面显示广告以补贴开支,但是他们没有使用任何一家广告平台,而是遵循自己独特的广告政策自己刊登广告。Read the Docs 有一个专门的页面阐述他们「有道德的广告」的理念: We’re doing newspaper advertising, on the internet. For a hundred years, newspapers put an ad on the page, some folks would see it, and advertisers would pay for this. This is our model.我曾在《浏览器指纹》一文中提过不少网站用来识别、追踪、定位用户的技术。这些技术理论上当然可以为老大哥所用,但它们对各大广告商更有实际价值:你在一个网站上搜索了某个商品,广告商可以根据你的浏览器指纹,在你访问别的不相关的网站的时候识别出你,从而持续向你推荐相关商品的广告,达到如影随形的「精准投放」的广告效果。而 Read the Do ……

使用 mergerfs 合并多块硬盘的剩余空间

by wzyboy on

两年前,我买了一台 HP Gen8 微型服务器,其功能之一是作为网络存储。当时它只接了一块 SSD 作为系统盘和一块 2 TB HDD 作为存储盘。随着存储文件的增多,我又先后增加了两块 4 TB HDD,现在它已经接了共计 10 TB 的存储空间。我觉得有必要分享一下我用来将这些硬盘的空间合并在一起的工具——mergerfs。 一、网络存储之硬盘困境 在讲工具之前,我有必要先说明一下我目前的存储方案。 我的 Gen8 没有直接装通用操作系统,而是先通过 ESXi 实现了虚拟化,再将存储盘通过 RDM 的方式完整地映射给其中的一台虚拟机(Arch Linux)。在 Arch Linux 里运行了 Samba, NFS, aria2 RPC, Transmission daemon, BorgBackup 等服务,供局域网电脑存取文件、远程下载,以及备份。 我在存储盘里的东西分为两类:一类是多份备份中的一份(BorgBackup);另一类是从互联网上下载的可再生资源。前者本身有冗余,后者丢了不心疼。出于以上考虑,为了硬盘空间利用率的最大化,我并没有采用 RAID 1 或 RAID 5 之类的冗余存储的方案,而是 ……

ThinkPad 25 上手玩

by wzyboy on

从 1992 年到 2017 年,ThinkPad 已经有 25 周年的历史。每隔五年,ThinkPad 会出一款周年纪念版的笔记本。往届纪念款通常是当年的高端型号加上华丽的装饰做成奢侈品/收藏品来卖,而 25 周年版本则走了不同的路线——怀旧。 ThinkPad 在 25 年的发展中,尤其是被 Lenovo 收购之后,抛弃了许多标志性的设计——带锁扣的折边、能在夜间读书的 ThinkLight、敲打感极棒的大键程键盘,当然还有 IBM 的三色 Logo。当 2015 年时 ThinkPad 传出要出怀旧版本的时候,我便开始期待它了。终于在 2017 年底,ThinkPad 25 发布,而我的 ThinkPad X240s 也已经使用了四年有余,可以考虑更新换代了。 一、开箱图 ThinkPad 25 的包装比较豪华,整体带包装重 4 千克多。移除礼品盒、拆除外包装、剥开内胆,终于见到了本体: 打开上盖,掌托处也有一个三色 Logo,由本来银色的 Think 加上 IBM 三色的 Pad 构成: 给蓝色的 Enter 键一个特写: 更多的图: 默认装的小红点;礼品盒里附带了可以替换的版本 ……

浏览器指纹

by wzyboy on

就算禁用 Cookie,甚至网上冲浪时只用「隐身窗口」,你的现代浏览器还是泄露了太多信息,使得网站能够追踪到你。 一、信息熵与指纹 信息熵(entropy)是指消息中含有的信息量。在网上冲浪的过程中,浏览器向网站服务器发出请求,网站服务器根据请求内容响应。在浏览器与网站服务器的交互中,浏览器会向网站暴露许多不同消息,比如最简单的 User-Agent 里就包含了浏览器型号、版本、操作系统等信息。这些消息单独一条的熵并不高,但是所有的消息组合起来,其熵就相对高了;当浏览器向网站暴露的熵足够高时,网站就能利用这一信息来追踪、定位用户。 假想这么一个例子:阳光中学每个年级 10 个班,每个班的人数相同。你知道刘涛是三年二班的学生,那这条消息的的熵便是 4.91 bit 左右(log(30, 2));如果你又了解到刘涛出生于五月份,那这条消息的熵约为 3.58 bit 左右(log(12, 2));假设你还知道这个中性名字的主人是个女生而不是男生,那你又获得了一条 1 bit 熵的消息。每条消息的熵都不高,但是三条消息加起来的熵便是 9.49 bit 了,或者说,同时具有这三个特征的学生,在阳光中学里平均每 720 ……