Mkdir700's Note

Mkdir700's Note

最新文章

在 zsh 里同时用上 Vim 和 Emacs 快捷键

很多开发者在终端里用 zsh 的时候,会习惯性地打开 bindkey -v,进入 vi 模式。这样做的好处很明显:命令行也能像 Vim 一样分成 普通模式和插入模式,用 h/j/k/l 移动光标,w/b 按词跳转,甚至可以 dd 删除一整行,yy/p 来复制粘贴——对于重度 Vim 用户来说非常顺手
VIM
45
0
0
2025-08-21

macOS 代码签名配置指南

概述 配置 macOS 代码签名和公证,确保应用能够在 macOS 上正常分发和运行。 前置要求 Apple Developer 账户 需要付费的 Apple Developer Program 会员资格 个人账户或组织账户均可 开发者证书 Developer ID Application Cert
127
0
0
2025-06-20

如何对特定 Commit 中的指定文件进行 Revert

场景描述 在日常开发中,我们经常遇到这样的情况:一个 commit 包含了多个文件的修改,但我们只想回滚其中某个或某几个文件的更改,而保留其他文件的修改。这种精细化的版本控制操作在以下场景中特别有用: 热修复场景:紧急修复某个文件的问题,但不影响同一 commit 中的其他功能 功能拆分:将一个大的
62
0
0
2025-05-26

Rust 项目中解决依赖重复编译问题:以 objc2 为例

在开发桌面剪贴板同步应用(UniClipboard)时,遇到了一个令人蛋疼的问题:即使只修改一些与 objc2 库完全无关 的代码,每次构建时 Rust 编译器仍然会重新编译 objc2 库,这严重影响了开发效率。 问题描述 该应用是一个基于 Tauri 的跨平台桌面应用,使用 Rust 作为后端。
173
0
1
2025-03-29

Rust 中优雅地实现类型转换:从自定义方法到通用 trait

在 Rust 开发中,我们经常需要在不同类型之间进行转换。最近在开发过程中,我遇到了一个优化类型转换代码的问题。 问题背景 我的项目中有一个从 Payload 和路径创建 ClipboardMetadata 的功能。最初是通过自定义静态方法实现: impl ClipboardMetadata {
133
0
0
2025-03-28

分布式事务的挑战:从 Saga 到 2PC,以及 SQLite 的局限性

引言 在构建分布式系统时,保证数据一致性是一个核心挑战。当业务流程需要跨越多个服务或数据源时,简单的本地事务不再足够。本文将探讨分布式事务管理中的两种主要模式——Saga 和两阶段提交(2PC),以及在使用 SQLite 等嵌入式数据库时面临的特殊挑战。 Saga 模式:最终一致性的权衡 Saga
67
0
0
2025-03-27

什么是 WebRTC 及简单实现

WebRTC 基础概念 WebRTC (Web Real-Time Communication) 是一项开源技术,允许网页浏览器和移动应用程序通过简单的 API 实现实时语音、视频通话和点对点数据传输,无需安装任何插件或第三方软件。 WebRTC 连接建立流程 WebRTC 连接建立过程涉及多个步骤
159
0
0
2025-03-24

什么是向量数据库

原文地址: https://weaviate.io/blog/what-is-a-vector-database 向量数据库简介 什么是向量数据库? 向量数据库是一种对结构化或非结构化数据(如文本或图像)及其向量嵌入(数据的数值表示)进行索引、存储和提供访问的数据库。它允许用户在生产环境中快速查找和
106
0
0
2025-03-19

React严格模式下事件监听器失效

问题描述 在基于 Tauri 和 React 的 UniClipboard 应用中,我遇到了一个与组件中事件监听器相关的问题。具体表现为:当应用启动后,控制台输出以下日志: [Log] 开始加载剪贴板记录... (ClipboardContent.tsx, line 85) [Log] 启动后端剪贴
101
0
0
2025-03-18

Rust 异步线程安全问题解析与修复

问题概述 在 Rust 异步编程中,一个常见的错误是在持有 Mutex 锁的情况下使用 .await,这会导致编译错误: future cannot be sent between threads safely the trait `std::marker::Send` is not impleme
130
0
0
2025-03-16
阅读更多