Skip to content

Home

Pandorabox之透明代理

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

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

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

ssh [email protected]
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

scp /path/to/PandoraBox-xxxx.bin [email protected]:/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:

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

Deepin初始化

Infinality and Harfbuzz

会发生冲突,这是今天Archlinux无法启动输入法界面的元凶。重新安装freetype2\fontconfig\cairo以替换infinality-bundle。

添加PPA出现GPG问题

问题:
gpg: keybox '/tmp/tmpyiw6jvck/pubring.gpg' created
gpg: /tmp/tmpyiw6jvck/trustdb.gpg:建立了信任度数据库
gpg: 密钥 531EE72F4C9D234C:公钥“Launchpad webupd8”已导入
gpg: 合计被处理的数量:1
gpg:           已导入:1
gpg: 找不到有效的 OpenPGP 数据。

Basic Algorithms in Go

最近学Go,感觉挺不错的。闲来无事用它写了几种常用的基础算法。

快排

思想很简单,实现起来为了方便每次以left作为基准,也可以使用BFS来节省递归栈:

// QuickSort returns a sorted slice
func QuickSort(arr []int) {
    if len(arr) <= 1 {
        return
    }
    left, right := 0, len(arr)-1
    for left < right {
        if arr[left+1] > arr[left] {
            arr[left+1], arr[right] = arr[right], arr[left+1]
            right--
        } else {
            arr[left+1], arr[left] = arr[left], arr[left+1]
            left++
        }
    }
    QuickSort(arr[:left])
    QuickSort(arr[left+1:])
}

Centos初始化2

proxychains-ng

git clone https://github.com/rofl0r/proxychains-ng
cd proxychains-ng                                 
./configure --prefix=/usr --sysconfdir=/etc 
make
make install
make install-config   # 生成配置文件
echo 'http 10.100.100.136 4411' >> /etc/proxychains.conf  # 输入代理设置

Kubernetes部署

MEOW

安装

curl -L git.io/meowproxy | bash
# 建议安装目录 /usr/bin/

复制自己的配置文件

# in local computer
xclip -sel clipboard < ~/.meow/rc
# in CentOS server
mv ~/.meow/rc ~/.meow/rc.bak
xclip -o -sel clipboard > ~/.meow/rc

基础

这章将会介绍GTK+比较重要的几个方面

主循环和信号

就像大部分GUI库一样,GTK+使用了一种事件驱动的编程模型。当用户什么都没做,GTK+让主循环处于就绪状态并等待用户的输入。如果用户做了一些动作,比如鼠标事件,主循环就会被唤醒,然后将这个事件传递给GTK+程序。

JS DOM API分析

Element.classList

返回DOMTokenList,IE version>=10不完全支持。 1. 不支持classList.contains的第二个参数(force) 2. add和remove方法不支持多参数 3. SVG,MathML结点没有classList属性

neutron源码分析

消息总线

Openstack各项目之间通过RESTful API进行通信;而项目内部不同服务进程则需要通过消息总线通信。关于消息总线的实现,包含在Openstack.oslo.messaging库中。

RPC

远程过程调用,一个服务进程可以调用其他远程服务进程的方法,有两种方式: - call 远程方法会被同步执行,调用者会阻塞直到取得返回结果。 - cast 远程方法会被异步执行,调用者需要通过其他方式查询这次远程调用的结果。