背景
小米空调伴侣可以控制家里的空调。通过米家 APP 开关和设置,也可以在上面设置定时。在南方湿冷的冬天,早上起床前自动把房间的空调开起来,床再也不会赖着我了。有很长的一段时间,我是这么用的。但是有几次出门,完全不记得空调会自动开。于是回家后发现空调一直开着…。于是就有了这篇博客的内容。能不能只有我在家的时候空调才自动开?
根据目前(2022/02)最新的 Docker Subscription Service Agreement,Docker Desktop 只对小于 250 员工且年收入不到 1 千万美元的公司,个人用户,教育用途和非商业开源项目,提供免费使用。
对于 Mac 和 Windows 用户来说,如果不能使用 Docker Desktop,还是有非常多的可替代方案。比如 Podman, colima 甚至 docker-machine。而我个人在比较早期的时候,一直是通过 docker machine 的方式在 Mac 上使用 docker。后来发现 docker machine 不再维护,镜像不再更新。转向使用 Docker Desktop。现在公司因为不在 Docker Desktop 免费使用用户范围内。这里简单记录一下,自己在 Mac 上使用 docker 的方案。
简单分为三大块
冬天最令人期待的就是下雪了。可自打来了杭州,也不敢对下雪抱有任何幻想。不过和雪有关的另一件事——滑雪,也同样让人向往。而且即使身在南方,也可以体验。
元旦假期前,就开始搜索杭州有什么地方可以滑雪。除了室内的体验馆。户外大概只有临安大明山的万松岭滑雪场。放假前一天在公司跟同事闲聊说起滑雪,有同事正好也想去。一拍即合。立即确定行程安排。我们都不会开车,但可以报滑雪团,有大巴车来回。价格也还行,这就够了。于是就约好 2 号去滑雪。
最近在工作中遇到一个有趣的问题,有个组的同学把代码提交到代码仓库,CI 运行单元测试总是失败。在本地运行又是没有问题的。于是就帮他们找一下原因。其中失败的代码是一段求和后比较结果的代码。 CI 是在 k8s 中运行的。所以我用 docker 在本地使用相同镜像,模拟容器运行环境,发现也不能通过。好事,可以在本地复现,方便调试。
加了一些调试日志,最终把问题定位在几个 double 类型数求和的结果上。容器内运行时,几个数求和的结果和我在本机电脑上求和出来相差 4。仔细对比了每一个数是否一致,确实都是一样的。但结果就是不一样。把几个数放到自己电脑计算一遍。与测试用例中的结果不一样。唯一的区别就是求和时候的顺序不一样。
2020/11/16 中午在工作电脑,更新 Big Sur。之前在运行更新程序时候,中途就会提示“更新时候出现一个错误…”,无法成功升级。
中午将电脑重启了一下,开始更新,前期顺利,中途系统重启,进入更新模式。问题出现,提示更新出现错误。重启电脑,继续走更新的流程,同样无法更新成功。至此,无法正常进入原系统。
开始考虑从 TimeMachine 恢复,Command+Option+R 启动,选择”从时间机器恢复“。恢复过程比较慢,一次大概需要 50 分钟左右,恢复时,需要选择恢复的磁盘,此时系统中多出一块名为 Update xxx 的分区。(后面猜想是不是直接将这个分区删掉,可以有办法重新引导到原分区启动?)将 Update 分区删除,原数据分区删除。格式化后,开始从 TM 恢复系统。恢复完成,电脑重启,走进度条,不到一半,就黑屏。重启还是一样。猜想可能失败了。
你应该做代码审查。为什么呢?因为它能提升代码质量,降低缺陷率。可能这些原因没有办法说服你。
许多程序员不喜欢代码审查,因为他们有过一些不太愉快的代码审查经历。我见过一些机构,它们要求所有的代码在部署到生产环境之前都需要经过正式的审查。通常是架构师或主要的开发人员进行评审,这种实践可以描述为架构师评审一切。
日常工作学习的记录和写作中,经常需要引用某个文章链接。直接将链接粘贴上。阅读起来非常不方便。或者用浏览器将链接打开,将“标题”复制过来又太麻烦。于是就在想有没有什么工具可以一键提取链接标题呢?偶然想到可以用“自动操作”加一些简单的脚本来实现。只需要拷贝链接地址,在待插入的文本处,一个快捷键,链接标题就插入好啦。(其实已经用了很久了,这里记录分享一下!)
每一个程序员有时候都需要重构已有代码。但在这么做之前,先思考一下下面这些事情,这可以节省你和其他人大量的时间(和苦恼):
开始重构的最佳方式是了解现有代码库并针对这些代码编写测试。这有助于你了解这些代码目前的优点和弱点。这样你就可以在避免错误的同时保留写得好的部分。我们都认为我们能够做的比现有系统好…直到最后,由于我们没有从现有系统的错误中吸取教训,导致相比之前没有什么提升,甚至更糟。