使用 tmux 的最少命令

tmux 是一个终端多路复用器。当我们需要在后台在远程服务器上运行长时间运行的任务并稍后检查结果时,它非常有用,而不需要保持持续的 ssh 连接并担心网络故障导致任务意外退出。以下是满足大多数用例的最少命令列表。

如何用 Java 编写单文件源代码可执行文件

从 JDK 11 开始,Java 支持直接执行源文件,而无需先编译为类文件,这使得用 Java 编写脚本成为可能,就像通常使用动态编程语言(如 python、ruby 或 nodejs)一样。这篇文章既是示例,也是实现它的快速参考。

将纪元毫秒时间戳转换为可读日期时间

在许多情况下,例如在处理 JSON 格式的 API 响应、处理网站上嵌入的 JavaScript 资源等时,我们经常会看到 13 位长数字,我们可能知道它是源自 new Date().getTime() 等代码的纪元时间戳,但是,作为人类,我们无法快速判断它代表什么日期和时间。有一个名为 Epoch Converter 的便捷网站可以帮助轻松将其转换为人类可读的格式,但大多数时候对于开发人员来说,甚至还有比打开网站更快捷的方法,即使用许多编程语言自带的 interactive shell

升级到 Ruby 3.0.5

Ruby 3.0 带来了一些重大变化,这会给使用大量 gem 的典型 rails 应用带来很多麻烦,尤其是关键字参数行为的重大变化和 URI.escape 方法的删除。

使用 ESM 中的 CSS 模块脚本导入 CSS

传统上,有 几种方法 可以将 css 静态添加到页面,也可以通过 JavaScript 动态添加 css,方法是创建一个 link 元素,其中 rel="stylesheet"href 设置为 css 文件位置,或者创建一个 style 元素,其中 css 定义作为其内容。现在有第三种方法:通过名为“CSS 模块脚本”的功能,直接从 ESM 脚本标记中导入 css,类似于导入 JavaScript 资源的方式。

Nodejs 终于有内置的 file.readLines()

在处理大型文本文件(例如解析日志文件)时,出于效率和性能原因,推荐逐行加载/迭代内容,而不是将所有内容读入内存。在 Nodejs 中,这一直很麻烦,因为从日常用户的角度来看,逐行读取的方式看起来很繁琐,而且太底层了。不过,受益于最近合并到版本 v18.11.0 的 PR,情况不再如此,现在有内置的 FileHandle.prototype.readLines,使用起来非常方便。

在 Nodejs 中等待并重试

在其他编程语言(例如 Java、Ruby 和 Python)中,有 Thread.sleep()sleeptime.sleep() 方法来暂停当前线程的执行,并在指定时间后等待继续执行,当与循环一起使用时,它可以帮助解决竞争条件问题等。在 node.js 和一般的 JavaScript 中,由于单线程、事件驱动和异步架构的性质,暂停和等待的方式可能看起来不是很明显,也不常见。但是,由于在某些情况下仍然需要并且有助于使用 waitretry,因此可以在 nodejs 或 JavaScript 中模拟类似的功能和效果。

如何保持 ssh 连接处于活动状态

如果 ssh 服务器和客户端之间一段时间内没有发送消息,那么 ssh 连接很快就会终止,这有时会很烦人,但是有一些方法可以让它在客户端或服务器端长时间或永远保持活动状态。

如何在 Nodejs 中将流转换为缓冲区

在 Nodejs 中,当处理非文本文件(例如图像)的 IO 操作(例如通过网络传输或从磁盘读取)时,有很大的机会以 stream.Readable 的形式接收内容,并且在我们能够处理内存中的完整数据(例如计算字节大小或图像尺寸)之前,我们需要将 stream 保存到 buffer 中,这里有几种方法。

Intellij IDEA eslint 和别名问题解决方法

我使用永久回退许可证版本的 Intellj IDEA Ultimate 进行日常开发,但最近我注意到 JavaScript 开发环境中存在与 ESLint 和模块别名解析相关的两个问题。幸运的是,对于这两个问题我都找到了解决方案。