
Linux 危机工具
当性能问题导致系统中断时,你一定不想浪费宝贵的时间去安装诊断所需的工具。以下是我建议在 Linux 服务器上默认安装的 “危机工具 “列表(如果尚未安装),以及它们的(Ubuntu)软件包名称:

Regex 字符”$”并不一定表示 “字符串结尾”
本文讲述的是我最近在为 CPython 开发 SBOM 工具时,使用 Python 的 regex 模块 (re) 发现的一些令人惊讶的行为。

HTML 垂直表单控件
WebKit 始终致力于改进我们引擎中的国际化支持。通过在 Safari 17.4 中为表单控件元素添加垂直书写模式支持,我们希望增强作者的能力,为本地和全球社区创建最佳内容。

HTTP/2 和 HTTP/3 对比和相关知识解释
在可靠和稳定的连接中,HTTP/2 的性能多次优于 HTTP/3。一般来说,建议进行兼容性和性能测试,以确定哪个版本最合适,此外,服务器可以同时接受 HTTP/2 和 HTTP/3 连接,由客户端决定使用哪个版本。

使用 JavaScript 检测大写锁定
为了检测用户是否打开了键盘的大写锁定功能,我们将使用 KeyboardEvent 的 getModifierState 方法

你需要知道的最低限度的 vi(m) 知识
本文的目的是教你一些非常基础的东西。这样,当你想学习更高级的操作时,你就可以使用 vim,也不会感到那么不知所措了。

4 个小技巧大幅提高源代码可读性
编写可读代码的好处是巨大的。代码越容易阅读,人们就能越快地理解系统逻辑。因此,在构建或修改系统功能上花费的时间和精力就越少。最终,缩短产品上市时间,降低软件维护成本。

大语言模型(LLM)上的提示注入(Prompt injection)和越狱(jailbreaking )不是一回事
我经常看到有人在说 “越狱(jailbreaking ) “时使用 “提示注入(Prompt injection) “一词。这种错误现在太常见了,我不确定是否有可能纠正:语言的含义(尤其是最近创造的术语)来自语言的使用方式。但我还是要尝试一下,因为我认为这种区别真的很重要。

X Window System 的一个特点:窗口无处不在
X Window System 具有大量嵌套窗口的原因之一是,X 在设计时考虑到了编写 X 程序的特定模式,而这种模式将所有东西都变成了(嵌套)窗口。说真的,所有东西都是。

Dropbox:我们如何将 JavaScript 打包程序的大小减少 33% 的
在向所有 Dropbox 用户推出 Rollup 后,我们发现该项目将 JavaScript 捆绑程序的大小减少了 33%,JavaScript 脚本总数减少了 15%,TTVC 也有适度改善。通过自动代码拆分,我们还大大提高了前端开发速度,开发人员无需在每次更改时手动调整捆绑定义。

了解 JavaScript 中的事件传播:冒泡与捕获详解
了解 JavaScript 中的事件传播对于创建交互式和响应式网络应用程序至关重要。事件冒泡和捕获是决定事件如何遍历 DOM 层次结构的两种机制。通过有效利用这些概念,开发人员可以构建更健壮、更易维护的代码库。

简述异步 Rust 编程
并发执行在编程世界中并不新鲜。而且,异步编程已经存在了一段时间,你可能在 JavaScript 或 C# 中见过类似的东西。但在 Rust 中,乍一看可能很相似,但仔细观察就会发现有所不同。

Safari 17.4:一个 HTML 新原生开关(Switch)控件
开关是移动平台和各种用户界面框架中的常用控件,但直到现在它们还没有内置到网络平台中。看到这种控件的广泛需求,我们决定改变这种状况。

如今,是否有充分的理由在新项目中使用 C++ 而非 Rust ?
我不希望这变成一场语言大战。我的问题是出于善意,而且我确实想从在这里发表评论的人们那里汲取智慧。使用 Rust 的时间比我长得多的人可以提供我可能不知道的宝贵见解。因此,为了避免 “火焰战争”,请允许我尽可能具体地说明这个问题:

HTMX 与 React:全面对比
在 HTMX 与 React 这篇文章中,您了解了 HTMX 是什么、它如何工作以及它如何与 React 竞争。HTMX 可实现现代 HTML 交互性,而不会像成熟的 Web 框架那样复杂。虽然 HTMX 前景光明,但它并不是来取代 React 的

Rust 和 C 语言速度比较
Rust 最大的潜力在于,它能无畏地将大部分 Rust 代码并行化,即使同等的 C 代码并行化风险太大。在这方面,Rust 是一种比 C 语言成熟得多的语言。

使用 SELECT 可以做的酷事
我在工作中经常使用 SQL。有些查询相当庞大(多达数百行),而且运行时间很长。如果查询有问题,就很难对其进行分解和调试。有一种方法一直很有用,那就是使用 SELECT 本身。

选择正确的框架:React Native vs. Swift vs. Kotlin vs. Flutter
本文提供了 React Native、Swift、Kotlin 和 Flutter 的简单指南,帮助您了解开发移动应用的各种选择。关注项目目标、时间表和预算。对于大多数应用程序来说,React Native 和 Flutter 等跨平台选项能提供最佳平衡

如何进行有效的代码审查
当您查看代码时,90% 的改动都是合理的,与 git 提交信息中的描述完全一致,但可能有一些代码行的改动您不理解。请询问提交者。也许是错误地包含了这些代码,或者是出于某种不明显的原因。应该在代码旁边加上注释,或修改变更说明。

使用 Rsync 和 Unison 同步保持远程目录的最新更新状态
Rsync 和 Unison 都是同步不同电脑上目录的不错选择。如果只需单向复制文件,请使用 Rsync。如果需要双向复制文件,则使用 Unison。

linux cat 的妙用
很多人都习惯性地称这是 cat 的无用用法,因为 head 可以将文件名作为参数,我们不需要额外的管道和 cat 命令。事实上,几乎所有命令都可以直接使用文件名,只有当我们想连接文件内容时才真正需要 cat。

utf8_unicode_ci 和 utf8mb4_0900_ai_ci 之间有什么区别?
在 mysql 中,utf8mb4_0900_ai_ci 和 utf8_unicode_ci 数据库文本编码有什么区别(尤其是在性能方面)?utf8mb4_unicode_ci 和 utf8mb4_0900_ai_ci 之间有类似的区别吗?

如何使用 Docker 容器实施互操作 TLS
对于生产用例来说,服务网格是一种开箱即用 mTLS 的好方法,但在采用服务网格之前,你可能会好奇两个 docker 容器之间的 mTLS 如何简单实现。

在版本控制方面,我们能做得比 Git 更好吗?
你认为有可能做出比 Git 更好的版本控制系统吗?还是说问题已经解决,Git 就是版本控制系统的终结者?

C 语言编程中两个方便的 GDB 断点技巧
在过去的几个月里,我发现了几个使用 GDB 断点的小窍门。这些都是我自己想出来的,而且我也没有在其他地方看到过对它们的讨论,所以我真的应该与大家分享一下。

CMOS逆向工程:苏联老式计数器芯片为例
我最近发现了一张有趣的苏联 1 芯片裸片照片,该芯片可能设计于 20 世纪 70 年代。本文以该芯片为例,介绍 CMOS 电路逆向工程的入门指南

AVIF 与 WebP:四个主要区别以及如何选择图片格式
在比较 AVIF 和 WebP 时,必须考虑每种格式的具体使用情况。AVIF 尤其适用于高质量图像(如照片),其先进的压缩技术和更高的色彩深度支持可带来更准确的色彩和更好的细节。