打包windows下软件的一些坑

前一阵子答应帮了个忙,开发一套仪器软件。写了一天之后写好了,交付源码,但是对方几乎没有懂计算机的人,所以要求我把所有东西再打包成一个 windows 上的可执行文件。这几天刚好回来,稍微有一点空闲时间,随手打了一下包。不过,因为很多年没有用windows,实在是很不熟悉,打包windows软件的时候遇到了很多奇怪的小坑,稍微总结一些,方便自己以后参考。

Continue reading “打包windows下软件的一些坑”

解决 VSCode format tex 文件时报错 Can’t locate YAML/Tiny.pm in @INC

这个错误的原因很简单,就是 YAML::Tiny 没安装,VSCode 安装 LaTeX Workshop 插件的时候不会自动安装,因此手动安装一下就可以解决。

cpan Unicode::GCString
cpan App::cpanminus
cpan YAML::Tiny
perl -MCPAN -e 'install "File::HomeDir"'

注意如果 perl 是 brew 安装的,每次 perl 升级后,会需要重新来一次。

By default non-brewed cpan modules are installed to the Cellar. If you wish
for your modules to persist across updates we recommend using `local::lib`.

为了避免麻烦,可以

PERL_MM_OPT="INSTALL_BASE=$HOME/perl5" cpan local::lib
echo 'eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib=$HOME/perl5)"' >> ~/.bash_profile

SPI Pins Alternative Naming Conventions

I found this helpful when working with various module providers. But why the hell would anyone call SS ‘SYNC’?

SCLK : SCK, CLK.
MOSI : SIMO, SDO, DO, DOUT, SO, MTSR.
MISO : SOMI, SDI, DI, DIN, SI, MRST.
SS : nCS, CS, CSB, CSN, nSS, STE, SYNC, S̅S̅, SSEL, C̅S̅, CE, /SS, SS#

Note that some Chinese providers also name SS ‘SDA’, which is kind of confusing especially when there are also I2C interfaces nearby…

Recursively unzip all files in directory

To create subdirectory for each zip file and keep relative structure

with 7z:

7z x '*.zip' -o'*' -p'password'

with unzip:

find . -name "*.zip" | xargs -P 5 -I fileName sh -c 'unzip -o -d "$(dirname "fileName")/$(basename -s .zip "fileName")" "fileName"'

The following command keeps only relative structures of directories, unzipping all files directly

find . -name "*.zip" | xargs -P 5 -I fileName sh -c 'unzip -o -d "$(dirname "fileName")" "fileName"'

 

一些定向运动(orienteering)的基础方法和技巧

其实我还是很野的,只是大多数人没看出来。念高中的时候一个人住一套房子没人管,经常在半夜和中午的时候跑出去一个人吹风看书,但是城市里要找没人的地方很不容易,到处探索各种屋顶废墟荒地高楼,也就学了一堆没什么卵用的技术把敏捷点了起来,学了半年才知道这些有个名字叫城市定向…… 上大学之后比较忙,有时候心情好也会跑出去转转,不过活动范围很小,基本在北大、清华、圆明园、颐和园内和附近地区。野外定向我的经历比较少,不过总体来看定向越野在智力成分上要小于城市定向和无线电定向,基本上感觉除了需要参照地图优化路线,团队分完点之后和野外徒步是差不多的。

因为国内定向运动还非常小众,我自己搞的时候只能借鉴很多国外的资料,国内也找不到很有经验的人,所以决定结合经验自己写一些中文资料方便后来者,主要还是基础知识科普。

Continue reading “一些定向运动(orienteering)的基础方法和技巧”

HAProxy 作为 Shadowsocks Relay 的配置文件

backup for shadowsocks wiki on github

#/etc/haproxy/haproxy.cfg
global
        ulimit-n  51200

defaults
        log global
        mode    tcp
        option  dontlognull
        contimeout 1000
        clitimeout 150000
        srvtimeout 150000

frontend ss-in
        bind *:8388
        default_backend ss-out

backend ss-out
        server server1 PROXIED_SERVER:8388 maxconn 20480
haproxy -f /etc/haproxy/haproxy.cfg -D