前两天拿着 YubiKey 瞎折腾玩,给我的 MacBook 配上了用它登录,配完了又担心将来忘了这件事给自己找麻烦,于是又解绑了。尽管当时用 sc_auth list 确认了账户已经没有绑定的智能卡,但刚刚打开电脑的时候,却发现 macOS 要我输入 PIN 来启用 Touch…
上回书说到可以把大疆 4G 模块变成 iPad 的外置网卡,帖子发出来之后,有好奇宝宝找我说,把 usbnet 改成 3 之后改不回来了,给 Quectel USB AT Port 发指令只会返回乱码。那这篇帖子就是解决这个问题的。
跟风买了个大疆 4G 模块,给 iPad 当外置网卡用,省得次次还得拿手机开热点。 话说这算不算花小钱办大事,毕竟蜂窝版的要比 WiFi 版的贵一千多块呢,这 70 块就搞定了。
我做了一个微信小程序,叫「拍记血压」。 起因很简单:我看到我妈每天量完血压,都要拿纸把测量结果写下来。这样确实能记,但每次都要写在纸上也挺麻烦,而且纸一丢,之前的记录也就没了。所以我这个程序员儿子就有了这么一个想法,量完血压后,拿手机拍一下血压计,小程序就能自动识别血压计的读数。…
好吧其实是我标题党了,这只是一次失败的自动化恰烂钱尝试。
之前定投基金的时候,为了省每次买入的手续费,选择了天弘的自营基金平台。但后来发现,在基金自营平台里购买的份额是不会计入银行统计的总资产的。而且前两天算了下,每天 50 块定投,每次手续费 0.1%,那么全年的手续费也才 12 块 4。我寻思犯不着为了省这点钱把自己的资产搞这么分散…
上周又给自己买了个玩具 —— 文石 Leaf 3C 电纸书阅读器。用了一周,感觉挺有意思,随手写一篇文章聊聊使用体验,顺便分享一些技巧。
我的宽带是自己换了光猫改成了桥接的,平时用起来没问题,只是我很不爽不能直接通过内网访问到光猫的配置页面。倒不是要经常改光猫配置,只是又犯了折腾病,想要把这一块缺失的拼图补上。一开始以为是配一条静态路由的事,但是发现并不奏效。上网学习了别人的成功经验之后,发现我的方向彻底错了,好在…
上个月翻小红书的时候,被推送了些信用卡权益的帖子,自己想想我从 2016 年毕业办下第一张招行信用卡至今,好像啥权益也没捞到,净往外花钱了。再一研究,发现什么返现啊贵宾厅啊之类的权益,也并不需要花很大精力或者遥不可及。那么,开始优化!
半个月前我的小红书号不明不白的被封了。而在被封之后我才发现,“我”这个页面也彻底被屏蔽,我再也看不到我收藏的帖子。痛定思痛,既然保存在小红书上的收藏有再也看不到的可能,那么,我把帖子保存到我自己的 Notion 不就好了? 说干就干,在一顿网上冲浪之后,我看到有人已经实现了利用字…
之前我写过一篇文,讲我是怎么处置 Docker 容器产生的僵尸进程的,正巧前两天上网乱刷,看到有个人也被容器中的僵尸进程困扰,有一条回复提到了一个关键词 tini,说能根治这个问题,于是继续上网冲浪,翻到了 Medium 上的这篇文章,感觉很有用,所以翻译出来。 以下内容除特别注…
前阵看见个面试题 请实现一个泛型类 BlockingQueue: 构造函数里指定队列容量 void put(T item) 队列满了会阻塞,直到队列有空间 T take(),队列空时会阻塞,直到队列有元素 我寻思做做看,结果写出来的答案我自己都看不下去,那干脆看看 Java 里面…
今年元旦我把之前用的 Gen 8 换成了 Gen 10 Plus。后来想着现在性能上去了,可以把 NAS 的功能也合并进来,于是就把给 NAS 用的两块机械硬盘迁进了 Gen 10 Plus 里。但就在这之后,我发现它的风扇时不时就会突然狂转一分多钟,然后再降回平时的转速。而且这…
公司有的项目里面还是采用把 API key 明文写在 application.properties 或者某个单独的 properties 文件来管理,这既不安全也不符合公司的规定。所以我通过利用观察者模式和 Spring 的事件机制,将其改为加密存储于配置中心,并且实现了在配置中…
看到一篇深入讲解 Redis 中 Pub/Sub 的文章 Redis Pub/Sub In-Depth,所以打算将它翻译出来,顺便深化自己的理解。
熟悉 Spring AOP 的都知道,如果同一个类中的两个方法在内部互相调用,那么此时 AOP 是不会生效的,因为 Spring AOP 是通过代理类来实现的,而类内部的方法调用并不会走到代理对象。那么,有没有办法让内部调用的时候也让 AOP 生效呢?万能的 ChatGPT 告诉…
前两天看到个问题,说在 Java 中,为什么不推荐在代码中直接写字符串值?我一开始能想到的就是代码的可维护性和可读性,但是总觉得这个问题没这么简单,肯定还有 JVM 虚拟机里面的优化。那既然现在大语言模型这么发达,我觉得可以让它给我讲讲。
我们都知道,Docker 和容器化技术让运维有了质的飞跃,从此我们不必再担心软件运行所需的繁杂环境,只需要拉取镜像并运行就可以一步到位部署好软件的运行环境。但是在开发过程中,我们仍然需要在本机安装各种依赖,一不小心又会把本机的环境搞乱掉,更不提不同版本的语言之间可能存在的冲突。因…
刚刚看到我虚拟机里面的 Ubuntu 报硬盘空间不足,看了下发现是在安装那会,自动分区就只用了一半的空间,遂着手扩容。在这里记录下操作过程备忘。
刚刚登录到我的服务器之后,看到 motd 提示有一个僵尸进程。本来处理僵尸进程很简单,杀掉它的父进程就行了。但是紧接着我发现这个进程是属于一个 Docker 容器的,因为我想要更优雅地处理掉它,就顺藤摸瓜找到了对应的容器并将其重启了。这里就记录下我的排查过程以供参考。