K8s 部署 TiDB

TiDB 是由 PingCAP 开发的一款开源分布式 SQL 数据库,支持事务处理和实时分析。它与 Kubernetes 的结合使得数据库能够实现云原生化,具备弹性扩展、自动故障转移等特性。 TiDB 是一个分布式数据库系统,具有以下特点: HTAP 支持:同时支持事务处理(OLTP)和分析处理(OLAP)。 高可用性:通过 Raft 协议实现数据强一致性和容错。 云原生架构:适配 Kubernetes,支持自动化管理和弹性扩展。 MySQL 兼容:支持 MySQL 协议,易于迁移现有应用。 TiDB 的核心组件包括: Read more ...

2025-03-10 tidb , mysql , k8s , kubernetes

开源跨平台终端 XPipe

XPipe 是一款开源的跨平台终端应用,支持 SSH,Docker,还支持 Kubernetes 等多种环境。 功能 支持 SSH 连接,配置文件 Docker,Podman,LXD,incus 容器 Proxmox VE Hyper-V, KVM, VMware Player/Workstation/Fusion 虚拟机 Kubernetes 集群,pods,容器 Tailscale 和 Teleport 连接 Windows Subsystem for Linux,Cygwin,和 MSYS2 Powersh Read more ...

2025-03-06 xpipe , terminal , docker , ssh , proxmox , proxmox-ve , fusion

开源 Kotlin ORM 框架 Exposed 使用说明

Exposed 是 [[JetBrains]] 在数年前推出的轻量级 [[ORM]] 框架,Kotlin 编写,已经在 JetBrains 内部多个关键产品使用。 Exposed 是基于 JDBC 实现,屏蔽了底层建立数据库连接,编写 SQL,操作数据,关闭数据库连接的操作,只需要关心数据操作。 Exposed 提供了两种形式 API,面向 DSL 的 API 和面向对象的 API。如果想要使用轻量级的 ORM 可以使用 DAO 模式,如果想要使用类型安全的 SQL,推荐使用 DSL。1 特点 纯 Kotlin 实现,轻量级,模块化 类 Read more ...

2025-03-04 open-source , kotlin , java , orm , spring , spring-boot

Open WebUI 基于网页的大语言交互界面及联网搜索配置

之前的视频也介绍过,ChatWise,Cherry Studio,Chatbox 等大语言模型调用的本地客户端,虽然这些客户端都还是跨平台的,但是总还是需要占用本地的空间,今天我就来介绍一款基于网页的 LLM 交互客户端 Open WebUI,以及再介绍一下如何配置 Open WebUI 让其支持联网搜索。 Open WebUI 是什么 Open WebUI 是一个功能丰富,用户友好的自托管大语言模型 Web 交互界面。Open WebUI 提供了一个类似 ChatGPT 的界面,但是允许用户与这种类型的 AI 交互 完全离线 本地环境可 Read more ...

2025-03-03 open-webui , llm , openai , chatgpt , open-source , ollama , rag

多版本管理工具 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 ...


最近文章

  • 入手 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 远程管理的最后一块短板补上了。
  • 呆呆面板 MCP 配置教程:让 Claude、Cursor 用自然语言管理定时任务 前两天写了一篇 呆呆面板 daidai-panel:轻量级青龙面板替代品介绍与 Docker 部署教程,在那篇文章里我提到呆呆面板和 [[qinglong 青龙面板]] 最明显的代差是内置了 [[MCP]] 服务,但只是简单带过。面板搭起来、脚本陆续迁移进来之后,我每天早上要做的第一件事就变成了打开面板,挨个看昨晚哪些任务失败了、报的什么错、是 Cookie 过期还是网站改版。这种重复又琐碎的巡检,恰好是 AI 最擅长替人做的事情。所以这一篇就专门聊聊呆呆面板的 MCP 怎么配置、怎么接入不同的客户端,以及在权限上应该怎么取舍。
  • 呆呆面板 daidai-panel:轻量级青龙面板替代品介绍与 Docker 部署教程 Homelab 里跑久了,总会攒下一堆零散的小脚本:每天早上抓一次汇率发到 Telegram,定时检查几个网站的证书有没有快过期,隔一段时间把某个 API 的数据拉下来存一份,再加上各种网站的自动签到。最开始我都是直接写进服务器的 crontab,时间一长就发现问题很多,脚本散落在不同的机器上,日志不知道去哪看,失败了也没人通知,Python 依赖装在系统里还经常和别的东西打架。几年前我为此折腾过 [[qinglong 青龙面板]],最近在 GitHub 上又看到一个定位几乎一样、但更轻量的新项目,叫呆呆面板([[daidai-panel]])。
  • RAGFlow:以深度文档理解为核心的开源 RAG 引擎介绍与部署使用教程 这两年我陆陆续续接触过一些 RAG 小工具,从最早自己用 [[LangChain]] 拼一个 demo,到后来用 [[AnythingLLM]]、[[Dify]] 的知识库功能,有一个体验几乎每次都会重演:拿几篇 Markdown 测试的时候效果惊艳,一旦换成真实的业务材料,比如一份带合并单元格的财报 PDF、一份双栏排版的论文、几页扫描的合同,回答马上就开始胡说八道。追查下去会发现问题根本不在大模型,而在最前面的解析和切块环节,表格被拍平成一串没有表头的数字,左右两栏的文字被交错拼接在一起,模型拿到的上下文本身就是错的。也正是因为这个痛点,我在调查 ESP32 小智 AI 后端的时候发现了 [[RAGFlow]],一个可以「深度文档理解」的开源 RAG 引擎。
  • Git 本地忽略文件:.git/info/exclude 的作用与使用技巧 由于本地 IDE、插件、Agent 的差异,所以经常打开项目之后会出现一些只属于我自己的文件,AI Agent 和一些 MCP,Skill 也喜欢在项目根目录里面添加文件。每次 git status 都能看到这一串红色的 untracked 文件,看着很烦,又不太好意思为了自己的习惯去改项目的 .gitignore。这时候我想起了 .git 目录里一个存在感极低的文件 info/exclude,它刚好就是为这种场景设计的。