为自由和真理,英勇地献身

欢迎来到我的博客,也欢迎在telegram交流

Claude MCP初体验

关于MCP mcp是什么?它解决了什么? 按照anthropic的说法,MCP解决了数据的隔离,提供了一个通用的开放标准,使得AI系统访问数据更加容易 我有这么一个使用场景: 我在一名叫luogu的文件夹里面写了很多算法题,想要总结到特定文件夹的一个特定markdown文件里面,我可以使用mcp来解决这个问题吗? 首先需要解决的就是让mcp可以做到读取文件,然后写入文件 动手构建MCP 开始动手写一个mcp的sevrer 按照官方的流程,需要安装uv(一个由Rust编写的python包管理客户端) 我是windows系统,所以用下面的命令 1 powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" 如果是macos或者linux系统,可以用下面的命令 1 curl -LsSf https://astral.sh/uv/install.sh | sh 之后进行项目的初始化,我将这个sever命名为algomd 1 2 3 4 5 6 7 8 9 10 11 12 # Create a new directory for our project uv init algomd # Create virtual environment and activate it uv venv source .venv/bin/activate # Install dependencies uv add "mcp[cli]" # Create our server file new-item algomd....

March 19, 2025 · 5 min · 936 words · LOTU$

从iPhone越狱到打造完美手机

前言 还记得第一次拿到iPhone时的兴奋(iPhone4),流畅的操作、精美的界面,屌打当时所有手机的科技感,一切都让人爱不释手,他的先进,让人忘记了他的许多缺点,但是…… 但是随着时间的推移,iPhone沦为平庸,甚至有些地方让人觉得不堪入目,比如:文件管理、键盘输入、系统设置等等,这些问题让我开始思考,是不是有一种手机,可以完美的解决这些问题。 于是,我在2025年购入了一台全新美版iPhone Xs,把它的系统系统刷到了iOS 16.1.1,开启了我的越狱之旅。 越狱进行时 前置准备 最新版本的 Sideloadly 如果使用的是,需要安装好iTunes 最新版本的 TrollInstallerX 适合越狱的系统版本 需要注意,我这里的“越狱”其实是一种半完美越狱,重启后仍然需要重新越狱 iOS版本与越狱工具对应表 来自 TrollStore 官方网站 From To arm64 (A8) arm64 (A9-A11) arm64e (A12-A17/M1-M2) 14.0 beta 1及更早版本 不支持 不支持 不支持 14.0 beta 2 14.8.1 TrollInstallerX TrollInstallerX TrollHelperOTA 15.0 15.5 beta 4 TrollHelperOTA TrollHelperOTA TrollHelperOTA 15.5 15.5 TrollInstallerMDC TrollInstallerX TrollHelperOTA 15.6 beta 1 15.6 beta 3 TrollHelperOTA TrollHelperOTA TrollHelperOTA 15.6 beta 4 15.6.1 TrollInstallerMDC TrollInstallerX TrollHelperOTA 15.7 15.7.1 TrollInstallerMDC TrollInstallerX TrollInstallerX 15....

March 9, 2025 · 2 min · 219 words · LOTU$

k8s初体验

下载安装k8s 我是用curl安装的,一行命令就能下载 1 curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" 安装 kubectl 1 sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl 这是k8s的架构图,可以看到他其实是由许多部分组成的 至少还有下面的这些需要安装 配置kubectl 我用的是zsh,所以需要配置一下kubectl的自动补全 在~/.zshrc中添加如下 1 source <(kubectl completion zsh) 我用的是wsl上的debian安装,没想到添加后,补全的是kubectl.exe,wsl也太会玩了 一点小插曲 发现我的WSL用的是镜像网络模式(Mirrored),所以每台机子ip都是一致的,所以没法在wsl上直接开k8s了 所以我趁着腾讯云促销直接购入了新的vps,再把我原来阿里云的升级下☝️🤓 安装kubeadm等 更新 apt 包索引并安装使用 Kubernetes apt 仓库所需要的包 1 apt-get install -y apt-transport-https ca-certificates curl gpg 下载用于 Kubernetes 软件包仓库的公共签名密钥。 1 2 3 # 如果 `/etc/apt/keyrings` 目录不存在,则应在 curl 命令之前创建它,请阅读下面的注释。 # sudo mkdir -p -m 755 /etc/apt/keyrings curl -fsSL https://pkgs....

February 27, 2025 · 8 min · 1675 words · LOTU$

Gorm Gen生成数据库CURD代码 源码解析

前言 在看sonic的源码时,发现了一个有趣的东西,就是GORM生成数据库源码(真是我等CURD Boy的福音),想了解一下这个东西是怎么实现的,于是萌生了写这篇文章的想法 核心设计 分层设计 gorm采用三层架构,元数据层,逻辑层,渲染层(Metadata Layer,Transformations Layer,Templates Layer) 关键数据结构 QueryStructMeta 1 2 3 4 5 6 type QueryStructMeta struct { TableName string ModelStructName string Fields []Field Source string // 来源:数据库表或已有结构体 } genInfo 1 2 3 4 type genInfo struct { *QueryStructMeta Interfaces []InterfaceMethod // 生成的接口方法集合 } 核心工作原理 通过数据库表名获取表结构,解析出字段名,字段类型,字段注释等信息 1 2 3 4 func GetQueryStructMeta(db *gorm.DB, conf *model.Config) (*QueryStructMeta, error) { if _, ok := db.Config.Dialector.(tests.DummyDialector); ok { return nil, fmt....

February 26, 2025 · 1 min · 121 words · LOTU$

我的家庭小服务器配置

我选用的是一台J1900主机,配置为4G 128G SSD,安装了iStoreOS,作为家庭服务器使用。 至于你问我为什么不用原版的OpenWRT,我只能说,OpenWRT的初始化要自己dd硬盘不是人用的。 而iStoreOS是一个基于OpenWRT的系统,但是默认带了docker和简化了配置过程,所以我选择了这个系统。 在拉取homeassistant的时候,发现拉取镜像一直报存储空间不足,但是理论上是有足够的空间的。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 root@iStoreOS:~# docker pull homeassistant/home-assistant:latest latest: Pulling from homeassistant/home-assistant 38a8310d387e: Pull complete 09a5bff725b6: Pull complete f78bed66d6b1: Pull complete de917069bff2: Pull complete eed606866cfb: Pull complete 163575274971: Pull complete 52ba6bb1aca9: Pull complete 5ae6ab9cf22b: Pull complete 536577e96f43: Pull complete 8959c7b7e59f: Pull complete c868822ed294: Pull complete 4f4fb700ef54: Pull complete 86ccf256b545: Pull complete fe165d982963: Pull complete 0a2f5993996d: Pull complete bdadc72a2704: Pull complete 1f55fc062a3e: Pull complete fb9bbc343728: Pull complete 0611aa317e73: Pull complete 91ab62efbe1b: Pull complete 809f092b0817: Pull complete 14bfe62583c7: Pull complete 556c80b16f2b: Pull complete b50b536eff7f: Pull complete 5cf4a77a0d4b: Pull complete 28d447110836: Pull complete ebf8ff00aad7: Extracting [==================================================>] 387....

January 17, 2025 · 3 min · 470 words · LOTU$