Gmail现在似乎不再允许IMAP的AUTHENTICATE PLAIN了。2016年1月的OfflineIMAP 6.7.0-rc1对XOAUTH2支持较好,仍可访问Gmail IMAP。
支持Android、iOS 9内置IPSec客户端的strongSwan 5.3.5配置
服务器
Arch
Linux可以安装aur/strongswan,Debian可以安装unstable仓库的strongswan和libcharon-extra-plugins。Ubuntu等发行版,软件仓库中strongswan较旧,建议编译安装最新版本。
从ASC'14到ISC'15——我的超算竞赛生涯谢幕
世界上大型超算竞赛有:HPCAC-ISC、SC、ASC,叫做Student Cluster Competition(下面简称为SCC)。今年我也继何斌和fqj1994之后,一共参加过四次大赛了(ASC'14、ISC'14、ASC'15、ISC'15)。比赛期间费尽心力,ASC'14酸楚太多,ISC'14也有憋屈,没有分享其中曲折。ASC'15、ISC'15,清华大学队时隔三年重新捧杯,超算生涯圆满落幕,在此记录些琐事。
Nginx根据Accept-Language的简繁体支持
这个功能开启很久了,但直到昨天才发现遗漏了atom.xml……
我想根据HTTP首部的Accept-Language决定提供简体或繁体的文件。在Chrome中,chrome://settings/languages可以设定偏好语言,浏览器会据此设置Accept-Language首部。较好的处理方式是解析该字段,获取qvalue,根据优先级选取最恰当的语言。但仅用于支持简繁体,我想用取巧的办法:忽略优先级,只要Accept-Language里出现了zh-Hant、zh-TW、zh-HK等字样,就返回繁体,否则返回简体。
指定dynamic linker以使用高版本GCC
今天有人问怎么在没有root的不可更新老旧Linux环境里使用高版本GCC,主要困难在于GCC对glibc版本有一定要求。假设使用现成的GCC二进制包,解压到本地后执行gcc,报错:/lib64/libc.so.6: version `GLIBC_2.14' not found,即系统glibc的libc.so.6中缺乏更高版本的符号(参考info '(ld) VERSION')。使用新符号通常表示API有更新,不过很多时候旧版本的库也能用,可能有两个原因:一是编译机器的库版本可能较新,soname版本号较高,编译出来的可执行文件也会有较高的版本要求;二是源文件因保守指定了较高的版本号,实际上旧版本也能用。
比如最近ncurses主版本号更新到6,/usr/lib/libncursesw.so.5变成了/usr/lib/libncursesw.so.6,导致很多可执行文件没法用了:
皈依Emacs
这应该算第三次使用Emacs了。第一次是在2009年,NOI 2009酱油后下决心好好学习Linux,Philip Xu前辈我指引了两天,发现Linux这个未知世界竟然有这么多好玩的软件。编辑器之神Vim用了一阵子了,NOIP 2009前若干天开始探索神的编辑器Emacs,使用Emacs Lisp配置,实现与Vim相似的设定效果需要多出好多代码,因此不久又回到Vim。大概2010下半年又用起Emacs,这次好好折腾了一把。当时Vim的插件生态还围绕vim.org(现在逐步转战GitHub了),Emacs倒是有个http://www.emacswiki.org,尝试了Mew、ERC、AUCTeX、haskell-mode、org-mode等好多东西。很多文件类型的解析、自动缩进支持比Vim对应物好不少,插件质量感觉也稍高。
J语言初探
先看些例子,感受一下J的魅力:
1 | +/\ i.6 NB. prefix sum of 0~5 |
DEFCON 23 CTF参赛记
8月4日
从北京出发,起飞前两小时发现机票没有买成功,立即买了一张,感谢诸位队友。到达San Francisco后与昨日航班延迟一天的队友会合,21:00多飞往Las Vegas。今年DEFCON会场从Rio迁到了Paris & Bally's。我们提前到达的在这里订了几间房间。
一次服务器BMC固件逆向经历
导出文件
访问BMC默认开启的Web管理界面http://$ip,开启ssh服务,之后即可以执行ssh root@$ip,得到一个受限的管理界面,功能很少,没有系统shell。
在服务器上执行ipmitool fru可以查找到设备型号,使用厂商提供的flash备份工具导出flash,比较慢,每秒200多KB。在BMC网页界面的BMC System Audit Log中看到BMC的Linux系统日志: