Code Life

boris1993的个人博客

半个月前我的小红书号不明不白的被封了。而在被封之后我才发现,“我” 这个页面也彻底被屏蔽,我再也看不到我收藏的帖子。痛定思痛,既然保存在小红书上的收藏有再也看不到的可能,那么,我把帖子保存到我自己的 Notion 不就好了?

说干就干,在一顿网上冲浪之后,我看到有人已经实现了利用字节跳动火山引擎的 “扣子(Coze)” 实现了这个功能,但作者并没有放出来具体的实现。我一方面很不喜欢需要私信进群这种操作,另一方面还是自己做一个才最符合自己的需求(拜托,我可是程序员欸),所以自己动手实现了一个工作流,可以完整转存帖子的标题、内容、图片到自己的 Notion。

阅读全文 »

之前我写过一篇文,讲我是怎么处置 Docker 容器产生的僵尸进程的,正巧前两天上网乱刷,看到有个人也被容器中的僵尸进程困扰,有一条回复提到了一个关键词 tini,说能根治这个问题,于是继续上网冲浪,翻到了 Medium 上的这篇文章,感觉很有用,所以翻译出来。

以下内容除特别注明外,皆翻译自原文。我亦不对内容做任何的担保,并不对任何可能产生的后果(包括但不限于文件丢失)负责。

阅读全文 »

前阵看见个面试题

请实现一个泛型类 BlockingQueue:

  1. 构造函数里指定队列容量
  2. void put (T item) 队列满了会阻塞,直到队列有空间
  3. 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 和容器化技术让运维有了质的飞跃,从此我们不必再担心软件运行所需的繁杂环境,只需要拉取镜像并运行就可以一步到位部署好软件的运行环境。但是在开发过程中,我们仍然需要在本机安装各种依赖,一不小心又会把本机的环境搞乱掉,更不提不同版本的语言之间可能存在的冲突。因此,就出现了 Dev Container,顾名思义就是在容器环境中开发,这样我们在开发时也可以享受到统一且隔离的开发环境。

正好我最近也在开始接触 Dev Container 并使用它给一个开源项目成功提交了代码,正好趁热打铁,把写博客的 Hexo 环境从本机挪到 Dev Container 中。

阅读全文 »

刚刚看到我虚拟机里面的 Ubuntu 报硬盘空间不足,看了下发现是在安装那会,自动分区就只用了一半的空间,遂着手扩容。在这里记录下操作过程备忘。

阅读全文 »
0%