今天偶然了解到一个好玩,或者说不那么好玩,甚至让人恶心反感的事情,那就是 GPS 在地图上定位的偏移问题。
GPS 全称是 Global Positioning System (全球定位系统),是接收卫星的信号,计算所在位置的经纬度,这个数据一般都是没问题的。但是要在地图上显示出来,就牵涉到地图的问了。
地图,就是将坐标映射到图像中的点上。国际标准是 WGS-84,而中国出于所谓 国家安全 的考虑,制订了 GCJ-02 标准。该标准其实就是将 WGS-84 的数据通过某种算法(数学运算)加以混淆,对每个点都加上一定量的偏移。该算法设计比较“巧妙”,偏移是非线性的,各地偏移量和便宜方向都不定,没有算法直接复原。
但是实际上,这种做法除了恶心自己人以外,基本没有任何作用。首先,由于有很多地方(民用)需要用到真实的地图坐标,因此混淆算法的泄露是必然的,代码见 这里。既然已经有算法了,以广大人民的无穷智慧,相应的从 GCJ-02 到 WGS-84 的复原算法也就出来了,代码见 这里。
由于有这项规定在,国内合法公开的地图数据都是加过偏移的,如果使用原始的 GPS 数据,那肯定会造成偏移。但是大家又需要有正确的数据进行导航,因此导航软件会对 GPS 和地图数据做处理,尽量修复偏移。也就是说,这项 SB 规定除了让某些部门中饱私囊,恶心自己人,阻碍生产力发展外,没有任何用处。对国家安全其实起不到任何保护作用。
类似的还有厂商在产品中内置加密后门,以达到某些目的。这种行为其实就是在安全领域干着明知不安全的事情。对此,无话可说。
aria2
用树莓派做下载机,除了速度慢点,其它都挺不错的,功耗低,也稳定。 aria2 是一款非常优秀的小下载工具,支持 http/https, ftp, sftp, bt, metalink 等协议,除了命令行外,也有 web ui,是 Linux 系统上下载的不二选择。
1. 编译安装 下载最新的版本 1.19.3 ,并解压,进入目录并执行以下命令编译安装。
sudo apt-get install autoconf autopoint libtool ./configure make sudo checkinstall # uninstall: `sudo dpkg -r aria2` 2. 配置 aria2 的配置文件是 ~/.aria2/aria2.conf ,所有的配置项说明都可以在 这里 找到。我的配置如下所示。 其中,dir, rpc-listen-port, rpc-secret 等参数可以根据自己需要配置,各参数的含义见 文档 。
log=/tmp/aria2c.log dir=~/download # http check-certificate=false http-accept-gzip=true user-agent=uTorrent/2210(25130) # rpc rpc-allow-origin-all=true rpc-listen-port=6800 rpc-secret=secretstring # download max-concurrent-downloads=5 continue=true max-connection-per-server=5 min-split-size=10M split=10 # bt bt-enable-lpd=true bt-max-open-files=256 bt-max-peers=64 bt-prioritize-piece=head=4M,tail=4M bt-tracker-connect-timeout=16 bt-tracker-timeout=16 peer-id-prefix=-UT2210- # advanced #daemon=true # use `aria2c -D` to start daemon disk-cache=32M file-allocation=falloc log-level=notice 配置文件中之所以没有将 daemon 配置成 true,主要是考虑到有时候需要用命令行下载,如果将 aria2 默认启动为 daemon 则不太方便。同时,如果需要启动为 daemon,则加上 -D 参数即可,非常方便。
关于熵的一点胡思乱想
前段时间的一个晚上看了点 PRML ,睡觉时突然考虑起一个问题来:为什么人应该有鲜明的观点,或者说为什么大部分人都喜欢有鲜明观点的人,而好好人、骑墙派则一般不太受欢迎。当时就想,也许可以用熵的概念来解释呢。
在 热力学 中,通俗地,可以将熵看成是系统混乱程度的度量。在一个孤立的系统中,根据热力学第二定律,熵是倾向于逐渐增加的。一个不那么恰当的例子就是:如果房间很长时间都没有打扫整理的话,就会到处充满灰尘乱糟糟的,这就造成了熵的增加。
在 信息论 中,熵是接收的每条消息中包含的信息的平均量。可以看成是不确定性的量度。例如,抛一枚均匀的硬币(正反面概率都是 0.5)的熵比抛一枚不均匀的硬币(正面概率大于反面概率)的熵要大。因为后者是正面的概率要大,而前者完全不能确定是正面还是反面(因为它们的概率一样大)。
假设某事件 $x$ 发生的概率为 \( p \),那么它的熵定义为: $$ -p \log(p) $$
从这一定义再来看刚才的例子,抛一枚均匀硬币结果是正面的概率为 0.5,熵是 $ -0.5 * \log(0.5) = 0.347 $;而抛不均匀硬币(假设正面概率是 0.8),则熵是 $ -0.8 * \log(0.8) = 0.179 $,显然小于前者。
但是这些跟开头提到的问题有什么关系吗?也许是可以有关系的!
从物理学的角度考虑,世间的万物,如果将每个个体(包括动物,植物等)看成孤立的个体,那么每个个体在成长的过程中,基本都是朝着熵减少的方向进行的。比如植物发新芽,长新叶,长高,吸收二氧化碳进行光合作用呼出氧气;人类学习新知识,整理房间,锻炼身体等等,都是使熵减少的行为。一般地,积极、努力都能使熵减少,而颓废则会让熵增加。通常,大家肯定都是喜欢积极、阳光、健康、有朝气的景象和事物,这也就是说相对来说,大家都喜欢具有较小的熵的事物。
而从信息论的角度考虑,具有鲜明观点的人的行为具有可预测性,可以看成从他们那会以一个较大的概率(比如 0.8)接收到确定的信息,因而信息熵比较小。而好好人,骑墙派则由于没有自己的观点,所以不确定性比较大,换言之,就是他们往往处在天平的中央,相当于接收信息时的确定性是 0.5 左右,这样就会有一个较高的熵值。一般地,人们喜欢稳定、确定性和可预测性的事物,相对不太喜欢有变数的事物。所以从这点来看,低熵更受欢迎。
以上纯属胡言乱语,如有属实,不是巧合。