Verne in GitHub

多版本管理工具 mise 使用详解

我用了很多年的 asdf 作为管理各种语言版本的工具,但是最近一次更新,asdf 多了一些变化,我也写了一篇文章介绍怎么升级的。在文章下方有小伙伴(lonelyhentxi) 给我推荐了 mise 这样一款使用 Rust 编写的多版本管理工具 mise,我大致的看了一下 mise,觉得是一个非常不错的项目,在这里再次感谢。 所以今天我就来介绍一下 mise,替换 mise 倒不是因为 asdf 不能用了,而是 Rust 在执行效率上确实要更快一些,比如我之前介绍的 Meilisearch,espanso 等等都是因为 Rust 编写,效率上都有所提升。 Read more ...


搭建 Joplin 同步服务器

在我的博客上很久之前我介绍过 Joplin,不过我自己只在 Linux,Android 上用过一段时间,后来出现了 Obsidian ,就切换到 Obsidian 了,但是最近看到一篇文章介绍了如何自建一个 Joplin 同步服务器,这样就可以直接无缝地进行同步数据了。之前 Joplin 只是开放了 [[WebDAV]] 协议的访问协议用可以用来同步。 介于由于部分小伙伴嫌弃 Obsidian 闭源,那不妨试试这一款完全开源的 Joplin。 什么是 Joplin Joplin 是一个开源的笔记,以及 Todo 管理应用,可以在 Windows,m Read more ...


Java 程序员视角的 Kotlin 语法区别

Kotlin 和 Java 作为 JVM 生态中两大主流编程语言,在语法特性、开发效率和适用场景上存在显著差异。Kotlin 凭借现代化设计解决了 Java 的许多痛点,而 Java 凭借成熟生态和广泛支持仍是企业级开发的主力。最近有一些项目想要使用 Kotlin 实现,所以本文正好来总结一下从 Java 程序员转到 Kotlin 程序员需要注意的一些语言细节。 Java 转换到 Kotlin Kotlin 采用极简语法设计,相比 Java 减少了大量样板代码量 无需分号结束语句 支持类型推断,智能转换 equals, hashCod Read more ...

2025-03-01 java , kotlin , programming-language , jvm , dart

AI 时代我们是否还需要个人知识库

这两天不管是在我的视频评论下方,还是在 X(Twitter)上,都有人提出了一个问题「AI 时代还是否需要个人知识库」,我觉得在回答这个问题之前,我们首先要回答两个问题,什么是「知识」?,而什么又是「个人知识库」? 知识 首先我们来聊一聊,「知识」的概念。 在牛津高阶字典中对知识的解释是: the information, understanding and skills that you gain through education or experience 我们从教育和经验中获得的信息,理解和技能。 《汉典》中对知识的解释 Read more ...


macOS 上利用 Hammerspoon 自动切换输入法

很久之前我介绍过一款 macOS 上的自动化应用 Hammerspoon,在那篇文章中我就已经简要的介绍过如何利用 Hammerspoon 实现超级强大的窗口管理,实现切换 WiFi 自动提醒,也简单的介绍过如何自动切换输入法,但是没有展开,今天正好趁着我重写 Hammerspoon 的配置文件,再展开介绍一下如何利用 Hammerspoon 自动切换 Rime 输入法。 查找 RIME 输入法的 Source ID 在编写切换脚本前,首先需要获取 RIME 输入法的源 ID。可以通过以下方法获取,在 Hammerspoon 的控制台中运行: hs Read more ...


OBS 配置多路推流 实现多平台同时直播

[[Open Broadcaster Software(OBS)]] 是一个非常强大的开源的,直播推流工具。但是默认情况下 OBS 只能配置推送一个直播流。但是现在支持直播的平台越来越多,如果直接将直播流推送给多个平台,那么可以通过本文介绍的方法,借助多平台推流插件来实现。 OBS 与 Multi-RTMP 插件 Open Broadcaster Software (OBS) 是一个广泛使用的开源软件,用于视频录制和直播推流。然而,默认的 OBS 设置仅支持推送单一直播流到一个平台。 Multi-RTMP 插件 Multi-RTMP 是一个第三方 Read more ...


将 Obsidian 配置成私人 AI 知识库

前两天介绍过腾讯推出的个人知识库工具 IMA.Copilot,但是熟悉我的人肯定知道我这几年了一直都是在使用 Obsidian 作为我个人的知识库的,在本地完全使用 Markdown 作为文档的存储格式,不依赖任何的外部工具,以及联网工具,只使用 Syncthing 作为同步。 为什么我不使用 IMA 作为主力知识库 看过我之前文章的人应该知道我个人的选择软件工具的一个原则 跨平台 开源优先 本地优先 在了解到 Stallman 对[[自由软件]]的定义之后,更进一步加强了我对于开源软件的选择,而在重度理解 Self-Hosted Read more ...


腾讯推出个人知识库产品 ima.copilot

前两天看到腾讯推出一个个人知识库产品 ima,融合了 DeepSeek,可以直接搜索知识库中的内容,还可以上传文档回答,所以今天就来体验一下这个新产品 ima。 ima 是什么 ima 官方给出的定位是「会思考的知识库」,首先它是一个知识库,并且看官方还是一个跨平台,多端支持的知识库,包括了 macOS,Windows,iOS,Android,以及小程序。会思考则是体现在它接入了 AI,腾讯自己的混元大语言模型,和 DeepSeek R1 模型。 YouTube Bilibili 功能 Read more ...

2025-02-20 ima , copilot , tencent , obsidian

asdf 升级 0.16.0 问题记录

很早之前我就已经开始使用 asdf 作为我本地的编程语言多版本管理工具,这个工具非常实用,但是最近 asdf 升级到了 0.16.0 版本,这是一个不兼容的版本,作者将整个项目中 asdf 从 Bash 脚本重写为 Go 语言,这带来了一系列的问题,这里记录一下我在升级过程中遇到的问题以及解决方案。 这个版本带来了许多重要变化,本文将重点详细介绍 asdf 0.16.0 的主要变更,以及升级过程中可能遇到的问题和解决方案。 asdf 0.16.0 的主要变化 Go 语言重写 asdf 0.16.0 最显著的变化是将整个项目从 Bash 脚本重写为 Read more ...

2025-02-11 asdf , ruby , python , golang , nodejs , pyenv , rbenv

使用 uv 作为 Python 包和项目管理工具

之前在使用一个 FastAPI 的模板项目的时候,很偶然获知了 uv 这样一个 Python 的包管理工具,简单的查询了一下之后发现这一工具是使用 Rust 编写,已经慢慢获得了社区的认可,被越来越多人推荐了,所以今天我也好好地学习一下 uv。 uv 是什么 uv 是 astral-sh 社区利用 Rust 编写的 Python 包和项目管理工具,可以作为  pip、pip-tools、pipx、poetry、pyenv、virtualenv  等工具的代替。在没有 uv 之前,你可能需要使用 pyenv 来管理 Python 的不同版本,使用 ve Read more ...


最近文章

  • Nowledge Mem 使用半年体验:让所有 AI Agent 共享同一份记忆 今年 2 月份我把 [[Nowledge Mem]] 装到 MacBook 上,想解决的是一个很常见的问题:我希望在 [[Perplexity]] 网页上查过的资料,直接在 Claude Code 中可以记住。但没想到大半年过去,它已经变成了我每天都在用的软件,而且是那种「不在后台跑着就会觉得别扭」的存在。我在 Claude Code、[[Codex]]、[[OpenClaw]] 里开的每一个会话,开头都会先从它这里拿一份简报;网页上和 AI 聊过的东西会自动同步进去;我做过的决定、踩过的坑、服务器的配置,都沉淀成一条条可以被任何 Agent 检索的记忆。说它是我所有 Agent 的记忆和大脑,一点都不夸张。
  • Aside AI 浏览器介绍:既能自己干活,也能接入 Agent 前两天整理了一篇 AI 浏览器自动化方案怎么选,把 Playwright、MCP、Agent 专用浏览器、WebMCP 这些路线梳理了一遍。在那篇文章里我提到,「内置 Agent 的 AI 浏览器」这一类里我最看好的是 Aside,原因是它的密码管理器设计得很用心,但篇幅有限没有展开。今天就单独写一篇,聊聊这个浏览器到底能做什么、和 [[Comet]]、[[Dia Browser]] 有什么不一样,以及我现在是怎么用它的。如果你看完想试试,可以用我的邀请链接 https://aside.com/r/UpYKnv9ziq 注册,注册后会额外获得 100 Credits。
  • AI 浏览器自动化方案怎么选:从 Playwright、MCP 到 Agent 浏览器和 WebMCP 的全景梳理 最近我一直在研究「让 AI 用浏览器」这件事。起因是看到 Nowledge 写了一个 browse-now Skill,可以直接让 Claude 控制浏览器,紧接着又偶然发现了 [[Ego Lite]] 这款专门为 Agent 设计的浏览器。顺着这条线,我把 Aside、BrowserOS、Deta Surf 这几款 AI 浏览器挨个调研了一遍,越看越发现它们的侧重点和实现方式差别很大:有人在做测试框架,有人在做浏览器插件,有人从 Chromium 内核开始为 Agent 改造浏览器,还有人在推动新的 Web 标准。它们看起来都在「让 AI 操作网页」,解决的却根本不是同一个问题。
  • 入手 GL.iNet Comet Pro(RM10):支持 Wi-Fi 6 的远程 IP KVM 家里的 [[Homelab]] 一直是一台 4 盘位的小主机跑 [[Proxmox VE]],上面跑着 Ubuntu 虚拟机、一堆 Docker 服务和下载机。平时远程管理全靠 SSH 加 [[Tailscale]],只要系统还活着基本没什么问题。真正让我不放心的是系统起不来的时候:升级内核后卡在启动界面、改网卡配置时手滑导致网络没起来、BIOS 被重置后不再从正确的硬盘启动,这时候 SSH 连不上,Tailscale 也不会在线,人不在家就只能干等。最近正好赶上一波促销,我入手了 [[GL.iNet]] 的 Comet Pro(型号 GL-RM10)远程 [[IP KVM]],叠加各种限时优惠之后实际支付 590.76 元,算是把 Homelab 远程管理的最后一块短板补上了。
  • 用 PowerContext 给多个 Coding Agent 做任务交接 现在我写代码基本是 [[Codex]] 和 [[Claude Code]] 轮着用。有时候是 Codex 的额度先用完了,有时候是某一步我觉得 Claude Code 更合适,于是一个任务经常要在两个 Agent 之间换手。真正麻烦的不是换工具本身,而是换手的那一刻:新会话对前面发生的事一无所知。之前选了哪个库、哪个旧接口不能动、改了哪些文件、测试跑没跑过,这些信息全都留在上一段对话里。我只能手动复述一遍,或者把一大段聊天记录贴回去,前者容易漏掉关键约束,后者浪费 Token,还会让模型在几千行历史里抓不住重点。说到底,我缺的不是一个更大的上下文窗口,而是一份能在 Agent 之间传递、而且接手方可以核对的「当前状态」。在写这篇文章的时候还出现了另外一个思路就是利用 [[magpie]] 将模型路由给充足额度的账号,这个之后再写文章说。