体验I3之美

enter description here
先晒张日常桌面图。Gnome3用了半年了一直被其蹩脚的交互和层出不穷的Bug所折磨。虽然Gnome3很漂亮,很简洁,但是毕竟漂亮不能当饭吃。套餐这种东西虽然简单省事,但是终究不是为你所量身定制的,总有其中一样不合你口味。因此,我决定再次抛弃“开箱即用”的DE(Desktop Environment),在WM(Window Manager)的基础上自己打造一套适合自己的桌面环境。

斐波那契堆之Go实现

ACM

一个比二叉堆更高效的数据结构,但是实现起来非常复杂。本科的时候看《算法导论》的时候曾经研究过,不是很明白。今天终于对它有了一个比较清晰的了解。
enter description here

网易云音乐新API简述

Web

新API采用了略微修改过的AES和RSA加密,主要用在登陆接口上,对新API进行简单的分析。

Url

估计会抓包的人都知道,Url中的api便成了weapi。比如手机登录:
原来是:http://music.163.com/api/login/cellphone/
现在是:http://music.163.com/weapi/login/cellphone/

加密算法

核心过程如下:

1
2
3
4
5
6
7
aesRsaEncrypt = function (text, pubKey, modulus, nonce) {
const secKey = createSecretKey(16); // 随机生成16位加密密钥
return {
params: aesEncrypt(aesEncrypt(text, nonce), secKey),
encSecKey: rsaEncrypt(secKey, pubKey, modulus)
}
}

Pandorabox之透明代理

enter description here
先修改Lan接口,避免在无线中继的时候发生本地Lan接口与wwan接口发生冲突导致无法登陆路由器。

网络 -> Lan -> IPv4地址, 设置为 192.168.33.1更改之后需要重新连接一下网络。

透明代理使用shadowsocks-libevChinDNS实现。使用ssh登陆路由器,安装所需软件。

1
2
3
ssh root@192.168.33.1
opkg update
opkg install shadowsocks-libev luci-app-shadowsocks ChinaDNS luci-app-chinadns --force-checksum

这个版本的软件源有点问题,所以直接opkg install基本上都过不了sha256sum检测,所以需要加上--force-checksum参数强制忽略。两个luci界面都有zh-cn汉化包,为了节省路由器空间,就不装了。

Tech Daily@1-20

小米路由器mini(Xiaomi mini R1CM)刷Openwrt

1
2
scp /path/to/PandoraBox-xxxx.bin root@192.168.1.1:/tmp/PandoraBox.bin
mtd -r write /tmp/PandoraBox.bin firmware

從爬文中得知,小米路由器Mini 官方韌體是雙系統,由於 ROM 有16MB,官方韌體都小於8MB,所以會有一份備援系統(8MB+8MB),因此如果刷了大於 8MB 的第三方韌體的話,會覆蓋掉第二個分區的系統,導致未來刷回官方韌體時會有掉 SN 的問題,而且再也無法刷入 SSH,從此以後就只能乖乖用官方韌體,再也不能玩刷機,目前新版的 PandoraBox 韌體大約都在 10MB 左右,所以刷機還真要有點決心,除非完整備份小米路由器Mini 中所有分區的資料,才能在日後完整刷回官方韌體,當然,如果已經完全放棄官方韌體的話,這些問題都是不用考慮的。from - http://blog.icece.tw/MiWiFi-Mini-Flash-uboot

Disable middle button of mouse

Execute those commands:

1
2
3
4
5
6
7
8
9
10
xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ MI Dongle MI Wireless Mouse id=11 [slave pointer (2)]
⎜ ↳ MI Dongle MI Wireless Mouse id=12 [slave pointer (2)]
⎜ ↳ DLL0704:01 06CB:76AE Touchpad id=14 [slave pointer (2)]
⎜ ↳ PS/2 Synaptics TouchPad id=17 [slave pointer (2)]
⎜ ↳ MiMouse id=21 [slave pointer (2)]
xinput set-button-map 21 1 0 3