2022 读书列表

2022 读书列表

今年最大的读书成就是翻译了巴菲特写的信(从 1977 年直到 2021 年),以后继续翻译每年的信、同时重读一次以前的信。在投资方面看过一些书,也做过一些实验,感觉巴菲特这套是康庄大道,其他的方法多少都有一些玄幻。

以下是年度读书列表,基本都是一些杂书:

鲁迅文集(未看完,2023年接着看)
苏东坡传(未看完,2023年接着看)
大叔:我们终于可以聊聊走过的路
全职爸爸
失落的卫星:深入中亚大陆的旅程
午夜降临前抵达
人间杭州:我与一座城市的记忆
爱生活如爱啤酒
北野武的小酒馆
雪中悍刀行
美国众神
安德的游戏(三部曲:安德的游戏、死者代言人、安德的影子)
英语思维 — 解密英语语法的原理

巴菲特致股东的信(1977-2021,完成翻译)
周期
好投资与坏投资
解读中国经济 (未看完,2023年接着看)
沸腾新十年:移动互联网丛林中的勇敢穿越者
基业长青

爱普生(EPSON)墨仓打印机的一些问题

爱普生(EPSON)墨仓打印机的一些问题

若干年前家里是使用惠普的打印机,打印质量一般,但是耗材太贵了(买墨盒的钱都可以再买两台打印机了)。豆子上初中、苗上网课后,打印需求大增,因此决定换成 EPSON 的墨仓式打印机。EPSON 的打印质量不错,更重要的是量大管饱,还可以加墨水(官方提供)。使用快三年了,期间换了一次黑色的墨水,总体上很满意,只是有一些需要注意的地方。

偶尔需要清洗一下打印头。安装驱动后,在电脑的打印机属性里有几个维护项可以清洗。一般清洗就可以,如果长期不用(例如过了一个长假期),那可能就需要深度清洗。判断是否需要清洗,就是看打印是否足够清晰、是否有一些打印缺失。

EPSON 的电源键有点问题,经常按着没有反应。似乎没有什么好方法,一直开着电源即可。好在闲时也不耗电,而且据说连着电源也可防止打印头堵塞(未经考证)。

加注墨水后,应该长按面板上有三角符号的键,让打印机复位。我以前没做这个操作,结果打印时总是提示墨量不够(实际却是有满满的墨水),然后某天突然就打印不出黑色。这个似乎是 EPSON 的 bug,不知道电脑驱动和打印机之间是如何判断墨量,感觉确实有问题,只有复位才能解决。

吮指原味鸡

吮指原味鸡

主料:琵琶鸡腿,或者鸡中翅也可以。

腌制辅料:料酒(1勺)、生抽(1勺)、牛奶(一盒)、花椒(10粒)、椒盐粉(1勺)、盐(少许)

炸粉:低筋面粉(3勺)、淀粉(3勺)、椒盐粉(1勺)、黑胡椒份(少许)

做法:

(1)先腌制。鸡腿洗净后,用牙签戳洞或者改刀划几下(方便入味);然后加腌制辅料,放冰箱冷藏腌制一晚上。

(2)打一碗蛋液;

(3)鸡腿裹一层蛋液,再裹一层炸粉;然后再重复一遍;

(4)鸡腿表面刷油;

(5)空气炸锅180°炸25分钟即可。如果是烤箱,先200°烤20分钟,然后鸡腿翻面(再刷点油),180°炸10分钟即可。

parseInt

parseInt

云通信系统的用户偶尔向我们反馈,分机的状态显示总是离线状态。我们从后台检查状态是正确的,检查其他用户的分机状态也都很正常,但是这位用户查询的结果确实总是离线状态。这事颇有些蹊跷,引起了我很大的兴趣去研究发生了什么。

检查之后的结果也很简单。后台返回的状态数据是字符串形式,而前端 javascript 脚本是按照整数进行判断,自然无法正常显示状态。但是为什么有些又能正确显示呢?

进一步检查后发现这与 MySQL 数据库的版本有关。我们的云系统有很多服务器,都是采用 Debian 的系统,同时也是采用 Debian 默认自带的数据库。旧 Debian 系统中的 MySQL 数据库版本比较陈旧,返回查询结果时都是采用字符串格式,哪怕字段是整数类型,返回的结果也是转换成字符串。而新的 Debian 系统已经将默认的数据库替换成 MariaDB,返回结果时严格遵循字段的类型,不会进行这类转换。

用户的虚拟通信系统部署在不同的 Debian 节点上,返回查询结果时就存在上述转换方面的差异。

解决方式自然也不复杂。可以从服务器端解决,也可以从前端解决。服务器端升级 Debian 系统就会同时将数据库升级到 MariaDB,自然就能返回整数类型的结果。当然也可以从 PHP (包括 pdo层)解决,由 PHP 对查询结果强制进行转换,将字符串又转换成整数即可。但是出于稳定性方面的考虑,我们一般不太愿意直接升级服务器系统(包括 PHP 等中间层),各节点的升级总是按年制定计划,不太可能为了这样一个小问题兴师动众地升级系统。

因此最后的解决方案就是对前端 JavaScript 脚本做一点修改。JS 提供了 parseInt 函数进行转换(如果是浮点数就是 parseFloat),无论服务器返回的是字符串还是整数,经转换后都可以按照整数进行判断。

此事反映出(1)我们对web、数据库等方面的技术技能比较欠缺,缺乏足够理解;(2)测试范围不够广泛,没有涵盖所有的用户类型;(3)系统配置不够一致,存在新旧并存的现象。我个人觉得后续工作要着力解决第(3)点的情况,尽量做到(包括开发、测试、线上)只有一个版本、只有一种系统。

Windows 10 启动慢

Windows 10 启动慢

小孩用一台 ThinkPad 笔记本上网课,最近发现启动很慢,启动阶段往往耗时将近 3 分钟。这台笔记本是我以前开发工作的笔记本,已经升级了 SSD 硬盘、加装了 16G 内存,似乎不应该这么慢。

孩子反映以前也很快,只是最近才变慢,因此怀疑是某次 windows 升级后(当然也不排除小孩误操作)改动了设置。在网络上搜索了一下,检查启动配置后发现被设置为“正常启动”,修改为“有选择地启动”后,启动时间缩短到十几秒。

修改方式很简单,如下:(1)按键 Win+R 后,输入 msconfig,启动管理界面。(2)设置为“有选择的启动”。

配置“有选择的启动”
有选择的启动
酱汁焖鱼

酱汁焖鱼

材料:

(1)鱼用草鱼就可以,当然用无骨、少刺的鱼更好。

(2)料酒、葱、姜、蒜、胡椒粉;

(3)鸡蛋、生粉;

(4)喜欢吃辣就加点干辣椒、生抽、蚝油、豆瓣酱(这个是灵魂)。

步骤:

鱼清洗干净(注意要拔掉鱼腥线,内部黑色的膜、红色的血块等都应洗净)后切块,加少许盐、一勺料酒、葱姜(切块、切丝随意)、以及少许胡椒粉,腌制15分钟。

腌制好后,挑出葱姜,然后鸡蛋液、一勺生粉,抓拌均匀(这样挂浆,煎的时候不容易散)。

平底锅加热,加底油以及少许盐(防止粘锅)。油热后转小火,将鱼块放入锅中,慢慢煎,一面发白变色后,再轻轻给鱼翻面,各个面都煎到。

煎完鱼后,加入姜(切块)、葱蒜(都切粒即可)、干辣椒,再加入一勺蚝油、一勺豆瓣酱、两勺生抽。

加开水,水量没过鱼块即可,开大火烧开,然后转小火,加盖焖煮 5 分钟。

最后开锅盖,大火收汁,装盘。

程序员做饭指南

程序员做饭指南

国庆期间(其实也包括前段时间静态管理期间)无所事事,考虑到孩子上学就没有出去玩的想法、甚至都没有跨区,只是去前海逛了逛,坐了摩天轮,基本上属于在家葛优躺几天的状态。

然而让我颇有动力去做的就是学习怎么炒菜。基本上就是上午买材料、中午做饭吃一天,下午接着上网查资料看看第二天做点啥。

这中间找到一个非常适合家常菜的指南,更离谱的是作者居然也是一位程序员,他写的做饭指南就叫《程序员做饭指南》。这篇指南解决了很多做饭新手的痛点,内容也非常丰富,我觉得照着这个指南做可以做一整年。

咖喱鸡

咖喱鸡

原材料很简单:(1)用超市买的“百梦多”咖喱一盒;(2)鸡肉(也可以是鸡腿肉);(3)洋葱;(4)土豆;以及(5)红萝卜。

鸡肉用葱、姜、料酒腌制大约20分钟。

洋葱切丝(稍大一些);鸡肉、土豆切块;红萝卜切片(薄一点)。

热油(稍多一些)下锅,先炒洋葱;

炒香后下鸡肉块;

鸡肉块变色后下土豆;

土豆炒得略带金黄色后,下红萝卜片翻炒;

然后加入清水(热开水),超过食材即可。一盒咖喱有四小片,此时先放入两小片,然后中小火继续煮20分钟;

然后放入另外两小片咖喱块(再加入一小包椰子粉,味道会更好),转大火,融化后搅拌均匀,装盘结束。

华为 AX3 pro

华为 AX3 pro

去年双十一买的华为 AX3 pro(WS7206)路由器,用了不到一年的时间,今天替换为华硕 TUF GAMING AX3000V2(又称为“小旋风”,以下简称TUF)。前者大概是399元,后者原价799,在京东优惠、又用了京豆后大约是580元。

AX3 pro(以下简称“AX3P”)的使用过程整体上不太令人满意。使用初期就有断流、网络突然停滞、路由器过热、突然重启等问题,升级后有所改善;另外我平时上网无非也就是看新闻、看资讯,实际影响不太大,也就不太在意。

然而从前两个月开始,天气逐渐变热、有时特别酷热(以深圳的天气标准衡量),AX3P 热得发烫,上述问题也变得越来越严重,停滞、断流非常频繁,已经到了无法忽略的地步。在网上搜索了网友提供的一些解决方案,例如底下垫散热块、用小风扇吹、关闭某些特性等,基本没什么作用。

由于疫情原因,开学后小孩都只能在家上网课。两个小孩上网课(一个用腾讯会议、一个用zoom)频繁出现停滞、断流问题,常常会同时中断几秒、十几秒、甚至几十秒不等,一堂课下来中断好几次,严重影响上课的质量。这实在是无法容忍。

我毫无根据地怀疑 AX3P 存在以下问题:

(1)发热量很大。这是所有 WiFi6 路由器都客观存在的问题,毕竟有那么多射频、同时处理能力要求也比旧的路由器要大得多。

(2)机型设计没有考虑好散热,尤其是和 TUF 相比,散热差距极为明显。

(3)过热导致元器件更容易老化,从而进一步恶化路由器的表现。最近几月极为频繁地出现问题。

(4)内存严重不足。这是我作为一名通信软件开发人员根据经验做出的一点推测。从 AX3P 表现的“停滞”问题现象看,似乎是 CPU 由于过热(或者过载)降频降速,但如果仅仅是这样,网速应该只是变慢而不是“停滞”,因此我判断很可能还存在内存不足问题,此时监控模块可能要求停止各项工作任务,清理、回收资源后,再继续工作,期间就导致“停滞”甚至断流,严重情况下就是重启。由于 AX3P 没有提供系统的运行状态,因此无法证实这个推测。相比之下 TUF 提供了比较详细的系统状态,如下图所示,非常清晰:

TUF 运行状态
TUF 运行状态

看了一下华为后来出的 AX6 路由器,采用了几乎一模一样的外观设计,当然尺寸有所放大。我怀疑这不能从根本上解决散热问题。在华为官网查到 AX3P 和 AX6 都只有 256M 内存,我觉得这严重不足。在资源如此受限的情况下,软件设计、实现必然穷工极巧,再加上一些华而不实的功能(比如 NFC 之类的),内存可能捉襟见肘,实在没有必要。即使是家用路由器,也应该以稳定为第一优先级。

另外,在华为官网还罗列了 AX3P 的工作温度,如下图所示:

华为路由器工作温度
华为路由器工作温度

我可以肯定前段时间的温度超过了 40 度,除了天气确实很炎热,AX3P 路由器自身发热的温度也很高。

目前 TUF 工作很稳定,没有出现类似的问题。当然,不能草率地轻言 TUF 表现更好;另外价格也客观存在差距。然而在选择路由器时(尤其是 WiFi6 及以上的路由器),除了常规的频段、无线标准、传输速率、CPU 等参数之外,确实应多考虑散热、内存等以往容易被忽视的信息。

2023-01-07 更新:22年9月份买的 TUF,今天突然不停重启,有线、无线全都接不上去了 …… 想要一个稳定干活的路由器怎么就这么难?

办理身份证

办理身份证

老大的身份证月初过期了,上月由于初二生地会考,不敢随便动证件,就一直拖着。流程其实比较简单,不过由于小儿未满16岁,必须到现场办理,办理苗的居住证时就顺便一起预约了办理老大的身份证。

主要注意以下几点:

(1)预约民政服务中心点以及时间;

(2)提供证件原件:(a)户口本;(b)家长和小童的身份证;以及(c)照片回执。

无需提供证件复印件,但小童必须到现场办理,现场需要录入指纹。

现场无需支付费用,证件邮寄到家后再支付即可。