#562 数据库排行
DB 2022-02-15#561 setcap
Linux 2022-02-08#560 Go 枚举
Golang 2022-02-07#559 Go HTTP 客户端
HTTP Golang 2022-01-29#558 2022 BUG
开发者 千年虫 2022-01-28前些天应该都看过微软 Exchange Server 开发者跨年改 BUG 的新闻了吧 (相关链接)。
Exchange Server 的邮件过滤器采用了 yymmddHHMM
格式的时间,存储在 long
类型字段中。
PS: 微软的 C++ Compiler 会将 long 当做 32 位 int。
32 位有符号整形能够表达的范围:[$-2^{31}$, $2^{31} - 1$],也就是 [-2147483648, 2147483647]。
到了 2022 年,就会超出范围,比如 2022-01-01 12:00:00
, 会被存储为 2201011200
,会超出 signed int 的表达范围。
2147483647
2201011200 # 超出
可能有一些系统采用 int 类型存储 yymmdd + 4 位数字做编号的方式,比如 2101011234。
相同的原因,到了 2022 年,就行不通了。
2147483647
2201011234 # 超出
最好的办法是改成 long long
, 或者 unsigned int
。
PS: Linux 下的 C/C++ 编译器——GCC、CLang/LLVM 都是将 long 当做是 64 位。
参考资料与拓展阅读
- 微软文档,Data Type Ranges
Docs > Microsoft C++, C, and Assembler > C++ language > C++ language reference > Built-in types > Data type ranges - 微软文档,C and C++ Integer Limits
Docs > Microsoft C++, C, and Assembler > C language > C language reference > Elements of C > C constants > C integer constants > C and C++ integer limits - 人们说 32 位、64 位时,到底是在说啥
#557 新东方英语词典备份
英语 2022-01-25听说沪江英语出于合规的考虑,APP 中下线了中小学英语词书。
我赶紧检查一下我之前的新东方英语词典的脚本, 检查一下,把没有的爬一份。主要是我今年准备全面学习一下英语,从小学阶段开始,要是到时候小学词典都弄不到就 BBQ 了。
#556 OneTab 迁移
浏览器 OneTab 2022-01-24#555 韦伯望远镜
天文 天文望远镜 太空 2022-01-23#554 OCSP 2: OpenSSL OCSP 校验
SSL/TLS TLS证书 X.509 2022-01-22#553 输入法
个人 2022-01-19我用的最多的输入法:
- 搜狗
搜狗在中文输入法方面确实是做的不错,没得说。 - 百度
百度输入法是小米自带(我是一个资深小米用户),有时懒得换也就用了。而且百度输入法还有一个好的地方,就是如果手机接入物理键盘后,它会只显示一个横条,不占界面。 - RIME
RIME 是我在 Linux 上的输入法, 一转眼就用了好几年了。
RIME 是一个开源项目,没有搜狗、百度那样的云服务(那种智能的全句输入)支持,在使用方面不如他们顺手,本地词库也确实有些单薄。话说回来,也够用了,几年的真实感受。
而且一旦习惯了 Linux 的折腾,这种全部在自己的掌控之中的感受就很上瘾。你要是熟悉 RIME 的话,你就懂我说的了,词库全部在掌握之中。
PS: Ubuntu 中的 IBUS 智能拼音(libpinyin/ibus-libpinyin)也是可以自己控制词库。
搜狗和百度都是封闭的,他们的用户词库都不支持导出(加密的不算)。我常常觉得要是可以把搜狗和百度中的词库导入 RIME 就好了。他们自己弄的那些个词库就不指望了,只是希望可以把我输入的那部分给我。
最近发现讯飞输入法效果不错,不输搜狗和百度,而且支持导出词库(目前只发现手机端可以导出,PC 端我已经在线反馈,等回复中)。
现在已经全部切入讯飞输入法。
PS: 讯飞的词库和搜狐比差太多,不见得比 Rime 强多少,但我相信运行一段时间之后会越来越好的。
关于讯飞输入法在 Debian/Ubuntu 上的安装
# Index of /deepin/pool/non-free/i/iflyime/
# ../
# iflyime_0.9.972_amd64.deb 18-Dec-2019 13:31 27M
# iflyime_0.9.988_amd64.deb 14-May-2020 17:49 49M
wget http://packages.deepin.com/deepin/pool/non-free/i/iflyime/iflyime_0.9.988_amd64.deb -P ~/Resources
gdebi ~/Resources/iflyime_0.9.988_amd64.deb
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Reading state information... Done
此软件包不可安装
Dependency is not satisfiable: fcitx-frontend-qt4
看起来是 Qt4 被砍掉了的缘故,应该可以解决。但是从上一次发版(2020/05/14)到现在已经一年半了,没有出新版本,可能是讯飞输入法 Linux 版项目被停了,所以就算了吧。
#552 Redis 分布式锁
Redis 架构 分布式锁 2022-01-18SET lockKey endpointFlag EX 10 NX
#551 Golang 观察
Golang 2022-01-18#550 同一台机器上配置多个 Git 账户
Git 开发工具 2022-01-17读到微信公众号文章 本地如何配置多个 GitHub/Gitee 账号?,想起了几年前,面对这样的需求,我自己也是这么操作的。