Thursday 14 May 2020

肉眼解析 QR code 的 "a"

 最近读了这篇科普文后,初学尝试用肉眼解析出简单 QR code 的 "a"。

先去这个网站输入 a,生成我们要的简单 QR。




放大:



首先找出版本号,方程式是 (格子边长 - 17) / 4, 因此上图是 (21 格 - 17) / 4 = Version 1。因此版本 2 的边长会多 4 格, 以此类推到 (177 格 - 17) / 4 = 最大的版本 40。对照某些表时,不同版本不同值, 例如 Character Count Indicator 长度, 所以需要版本号。







然后,找用来去掩码的掩模 (Mask pattern),左上寻像图形的正下方 (或左下的正右方) 的第 3-5 格。





三格全黑表示掩模方程式是 j%3 = 0。
解读方程式是从 0, 1, 2 ... 算起,j 是 x轴, i 是 y轴。

EC (Error Correction) Level 则是左上寻像图形 (或左下的正右方) 的第 1-2 格。
两格全黑表示 11 XOR 10(即固定 Mask pattern “10”1010000010010 的左边两个 bits) = 01, 即纠错能力(仅7%)最差的 L 级。因此一眼可见: 黑黑 L(7% 👎), 黑白 M(15%), 白黑 Q(25%), 白白 H(30% 👍)。这篇文我们不理这个。



把掩模从左上往右下盖着,黑格 1, 白格 0, XOR (即不一样才放黑, 1), 最右边形成 (从下往上读。由于掩模右两格都是白色, XOR 后仍然一样,  所以原图不需要改。):

寻像图形 (Finder/Position pattern/marker)
全白
格式信息 (format information)
1 0 结束, 0000 0001, 表示 Data 长度只有 1 个字节。
0 0
0 0
0 0 开始 ECI Character count indicator。由于是 Version 1 且之前的 8-bit Byte Mode, 因此接着只有 8-bit。


0 0 结束,0100,对照 Mode indicators 表,0100 表示 8-bit Byte Mode。


1 0 开始 Mode indicator。
0 1 结束, 0001 1010, 表示 16+8+2=26, 对表 (或这个)即是 ISO/IEC 10646 UTF-8 编码。











0 1
1 0
0 0 开始 ECI 编码。
1 1 继续 -> 右上(1) -> 左上(1), 0111 表示 Mode Indicator 是 ECI。
1 0 开始。顺序: 右下(0) -> 左下(1)。每一行都是从右往左开始读, 不存在左往右。

扫 corner 转去左边的两 bits (从上往下读。掩模这里的两格是白黑, 所以左边不需要改, 只需想像左边纵的黑格是 1,想像右边纵的白格是 1 ):

寻像图形
全白
格式信息 (format information)
1 0 开始 Data, 01 开头属于 0bbb bbbb 的 1 个 codeword(8-bits)。


0 1
0 0
1 0 结束,0110 0001,表示 64+32+1=97,即 ASCII 的 “a”, 找到我们此次的目标。
0 0 由于剩下大于 4 够位, 所以继续 “结束符“。
0 0 结束,4 bit terminator 0000。
0 0 由于 so far 累积的总数是 36-bits ,36 (或最后的 codeword 仅是 4) 不是 8 的倍数, 所以加多 4 个 0 变成 40-bits。
0 0 结束,0000。
1 1
0 1
1 1
0 0

参考:

Wednesday 6 May 2020

Facebook - How to know who unfriend you long long time ago



Note:
If someone block you after unfriend, it still possible to see post by create new account which only added you, so there are still some possibility it will shows post of friend of you.

There are actually 2 privacy bugs here.

First bug is the search able to store deleted comment in plugins( and probably also apply to other places I don't noticed). The first bug shows the over powerful of search by post leads bug.

The second bug take further step of first bug which tick on filter by "Your Friends". This bug proved that the friend relationship never drop even after unfriend, which actually also happen if the new account add only you and unfriend you then the friend suggestion more likely is still your friends.