WordPress 迁移至 https 的正确办法

虽然我一向认为在公开的静态内容上使用加密没有必要,然而大公司,尤其 google,非常不厚道地在所有 http 站点上标记 “不安全”,其心可诛也。

作为 fallback,我会继续保留 http 的访问,不会强制跳转。

Continue reading “WordPress 迁移至 https 的正确办法”

解决 procps 更新报错

某日(就刚才)在日常更新一个 Debian 服务器的时候指令 sudo apt-get upgrade 失败,报错

Setting up procps (2:3.3.9-9+deb8u1) ...
Job for systemd-sysctl.service failed. See 'systemctl status systemd-sysctl.service' and 'journalctl -xn' for details.
invoke-rc.d: initscript procps, action "start" failed.
dpkg: error processing package procps (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 procps
E: Sub-process /usr/bin/dpkg returned an error code (1)
Continue reading “解决 procps 更新报错”

打包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 升级后,会需要重新来一次。

根据 Homebrew 的说法,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

由于 CPAN 的系统过于老旧,用 CPAN 管理包非常麻烦且复杂,报错也经常难以搞清楚问题,推荐换成 cpanminus。

关于 Unicode::GCString 和 LineBreak 编译失败

另一个问题是,在 macOS 下,Unicode-LineBreak-2019.001 有可能无法成功编译。查看 log ,可以发现在编译 sombok / libsombok.a 后,链接时出现问题

cc  -mmacosx-version-min=10.13 -bundle -undefined dynamic_lookup -L/usr/local/lib -fstack-protector-strong  LineBreak.o  -o blib/arch/auto/Unicode/LineBreak/LineBreak.bundle sombok/libsombok.a

ld: warning: ignoring file sombok/libsombok.a, file was built for archive which is not the architecture being linked (x86_64): sombok/libsombok.a

这个问题早年做过 iOS 开发的人都很熟悉,选错 device 和 simulator 的话经常看见类似 file was built for x86_64 which is not the architecture being linked 的错误。。所以说明 sombok 的编译一定是在某处出了问题,排查一下即可发现是安装了 GNU binutils 中的 ar 与 macOS 的 BSD ar 冲突搞的鬼,暂时将其卸载即可。

如何DIY一台信噪比和分辨率不输于商业仪器的低成本激光Raman光谱仪

Raman光谱是什么我就不多解释了,大家都懂,相信大家也都已经体验过用Raman光谱仪做各种分析的方便之处了,比如说自己新搞来或者合成了什么物质想简单地看一下纯度,再比如说用来快速地鉴定各种塑料材料是什么,或者鉴定一些样品里面有什么东西等等。总之,拉曼光谱最爽的几个点就在于它不需要对样品做过多的处理,晶体、固体粉末、液体、溶液、表面等等都可以直接打谱,可以说是极其的方便。

然而普通的人想要搞一台Raman放在家里用并不是一件容易的事,因为目前来看商业的Raman光谱仪价格都还比较高,便宜的在几十万,贵一点的一套房就没有了。然而,实际上商业的拉曼里面有很多功能我们都是用不上的,我们日常使用的话对拉曼的要求并没有那么高,最重要的参数就是分辨率和信噪比(SNR)。实际来看,分辨率做到10个波数左右,SNR上百就已经非常够用了(作为参考,Wasatch Photonics 的 WP532 系列的分辨率有3种,分别是7、9、15个波数,常温探测器的信噪比在500:1,低温探测器的信噪比在2400:1)。

这篇文章主要是从原理出发,带你走完一个设计到搭建一台基本的拉曼光谱仪的完全流程,包括光学部分,电路部分和软件部分等等。在这台基本的拉曼光谱仪上,可以做各种改动来做更高级的拉曼,比如探测器冷却技术,表面增强技术等等。

Continue reading “如何DIY一台信噪比和分辨率不输于商业仪器的低成本激光Raman光谱仪”