Rust学习笔记
从2024年简单的学习了下Rust后,就再也没怎么使用过,最近得闲,准备好好学习下rust。看了下之前记录的Rust笔记略显过时,倒不如从头再来,再学一遍! 安装Rust下载rustup和其他编程语言不同,安装Rust需要安装的是rustup,然后再利用rustup来安装Rust。这里就推荐使用官网的下载器来安装,我之前使用Scoop安装了rust,但是实际上它不过是个二进制的程序而已,并不满足rust开发。 打开官方文档安装 Rust - Rust 程序设计语言,在这里下载rustup-init.exe,下载后先不着急安装,配置项环境变量。 配置环境变量这一步需要配置四个变量,分别是rustup和cargo安装的路径,以及加速器地址。打开设置 -> 高级系统设置 -> 环境变量,在用户变量中设置如下四个环境变量 1234# 安装路径,cargo类似于pypi,rustup类似于rust安装器CARGO_HOME=D:\devtools\rust\cargoRUSTUP_HOME=D:\devtools\rust\rustup 配置字节加速器,不然慢的要死 ...
放弃nvm改换fnm
今天用Claude调试以前的前端项目时,我需要使用nodejs14,按照往常的习惯直接使用nvm install 14,并且切换过去即可。但这次出问题了,我是用nvm use 14,虽然显示切换成功了,但使用node -v依旧显示的时nodejs 24的版本。后续折腾一番环境变量,终于可以切换了,但安装nodejs 14的时候又出幺蛾子了(实测nodejs 18就没问题),npm死活装不上,虽然可以通过手动下载等方式将其配置好,但也略嫌麻烦,于是就萌生了更换工具的想法。 对于Nodejs的版本管理工具,还有另外一个使用Rust实现的fnm。具体请查看Schniz/fnm: 🚀 Fast and simple Node.js version manager, built in Rust。我目前使用scoop来管理这些开发软件,所以安装也是极其方便。(别忘了先卸载nvm) 1scoop install fnm 安装完成后,其命令几乎和nvm一样一样的。 12345678910111213141516171819# 安装nodefnm install 24fnm i...
使用wsl安装Linux系统
中午无聊,打算装两个Linux玩玩,我选择了Fedora42和Arch,这两个系统在WSL中式支持的,但默认安装在C盘,还得再导出导入一次才能换到其他盘,那何必多此一举,直接导入到其他盘即可。下面介绍下本次安装的过程。 系统包准备 Fedora42 ,Fedroa42 下载地址 ArchLinux,ArchLinux下载地址 打开Fedora下载地址,Fedora官方支持WSL的镜像,所以只需要下载Fedora-WSL-Base-42-1.1.x86_64.tar.xz即可。 打开ArchLinux下载地址,Arch官方没有WSL的镜像,我们下载archlinux-bootstrap-x86_64.tar.zst,然后在任意一个Linux中使用zstd命令将其转换为tar包。以Ubuntu为例 123sudo apt install zstd# 解压 zst 并打包为 tarzstd -d archlinux-bootstrap-x86_64.tar.zst ArchLinux默认会比其他发行版多一层目录root.x86_64,所以这个包还需要再处理下才行,不能直...
使用Rclone备份数据到CloudFlare R2
接上一篇,将能迁移的服务都迁移到PostgreSQL后,再配置上自动备份脚本,基本上就可以高枕无忧了,本来想备份到阿里云OSS的,想了想本站几乎是ALL IN Cloudflare,那就直接备份到CloudFlare R2吧,正好也快一点。下面就记录下备份的方法。 创建CloudFlare R2桶在面板首页->存储和数据库 -> R2对象存储中,创建一个桶,我起的名字就是backup。 创建完成后发,返回桶列表,点击右下角的Account Deatails下面的Manage,按钮,创建一个Token。 1、权限必须是管理员读和写,选对象读和写执行rclone命令会报权限错误。 2、因为1,所以最好将客户端IP限制一下,反正VPS都是静态的IP地址,不然要是被泄露了那就完犊子了~ 创建好后,给你三个信息,分别是访问密钥 ID(access_key_id)、机密访问密钥(secret_access_key)、为 S3 客户端使用管辖权地特定的终结点(endpoint)。暂时记录下来,下一步要用。 安装Rclone要备份到CloudFlare R2,那就需要Rc...
升级umami-mysql到v3-postgresql
今天抽空,将自己维护的服务都升级了一下,看了下umami从v3开始就不再支持MySQL,而我目前是用MySql版本的,本着用新不用旧、能早升级早升级的理念,那就只能升级加迁移数据库了,下面分享下过程。 导出MySql的数据直接在宿主机执行 12docker exec -i db mysqldump --no-create-info --default-character-set=utf8mb4 --quick --skip-add-locks \-u root -p umamidb > /tmp/mydbdump.sql 根据自己习惯来。 定义环境变量在docker-compose.yaml同级目录下,创建init-db目录,里面创建一个文件init.sql。内容如下: 12345678910-- Umami的数据库初始化脚本CREATE USER umamiuser WITH PASSWORD 'password';ALTER USER umamiuser CREATEDB;CREATE DATABASE umamidb OWNER umamiuse...
ServicePointManager不支持具有socks5方案的代理
最近将大部分的开发工具都由WinGet替换为scoop了,一切配置妥当后今天发现给GitHub提交代码时,需要重新验证账号,但通过浏览器认证后一直提示一个错误:fatal: ServicePointManager 不支持具有 socks5 方案的代理,我配置代理一般都是http_proxy,因为它兼容性更好,但此时出现的错误又的确是socks5的问题,想来是多年前配置的了,一直使用也没啥问题,后来我删除了credential中的github账号信息,又出现了这个问题。 解决方案出现这个问题也比较容易解决,只需要查看下git config,看下都是哪里配置了socks5协议的代理。 1git config --global --list 输出如下: 12http.https://github.com.proxy=socks5://127.0.0.1:1080http.https://github.com.proxy=socks5://127.0.0.1:1080 将其覆盖一下即可,我本地监听端口是1080,一般默认的是7890,根据自己实际情况修改。 123git con...
Windows11安装OpenClaw
OpenClaw介绍OpenClaw 是一个开源、本地部署的 AI Agent 网关。它的核心思路不是“只回答问题”,而是让 AI 具备执行动作的能力,例如访问网页、运行命令、调度任务、连接聊天渠道和管理会话。根据资料,它原先还经历过名称变动:先后出现过 Clawdbot、Moltbot,最终在 2026 年 1 月底确定为 OpenClaw。 安装OpenClaw 环境依赖安装NVM1scoop install nvm 安装nodejs24123nvm install 24nvm use 24 安装git1scoop install git 设置git默认似乎用的是ssh://协议,如果本地没有配置ssh-key就会报错。可以通过配置将其替换为https:// 12git config --global url."https://github.com/".insteadOf ssh://git@github.com/git config --global url."https://".insteadOf git:...
使用Scoop管理开发工具
最近抽空将本地的开发工具都升级了一遍,以前都是用一个装一个,多年下来也积累了不少,虽说常用的也都用nvm、uv管理了,但每个都升级一边也着实挺累。想起来以前折腾PowerShell时安装的scoop,觉得还是全部交给它把,反正用起来和brew一样丝滑,不用配置环境变量,还不怎么污染注册表。 安装Scoop安装Scoop,需要PowerShell5以上,我本地用的是pws7,所以照着官方文档安装即可:Scoop。 12Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserInvoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression 已经安装过的就执行下scoop update更新一下就可以了。 安装后的目录如下所示: 123456apps -- 安装的软件在这个目录下buckets -- 已经添加的软件仓库cache -- 缓存目录(下载时的 .zip 或 .msi 安装包。安装完可清理。)modules ...
PicGo配置CloudflareR2
本站一直使用Typora+PicGo组合来处理markdown和图片的,以往都是用的是阿里云OSS,但最近看到不少受害者一觉醒来被刷掉几千块,为了避免遭受此问题,我还是将所有站点的静态资源从阿里云OSS迁移到CloudFlare R2。本次记录一下PicGo的配置过程。 下载插件PicGo默认不支持CloudFlare R2,但有插件系统,可以通过别人开发的插件来实现。由于CloudFlare R2兼容S3,所以我们只需要下载S3插件即可。在插件列表中搜索S3: 插件版本不同配置也会稍微有些差异。本次PigGo版本为2.4.1、插件版本为s3 1.5.1。 新建CloudFlare R2桶打开CloudFlare的R2,点击创建存储桶 填写桶名称即可,其他默认。创建好以后,点击刚才新建的桶->设置。自定义域,绑定自己的域名。如果域名在CloudFlare,这一切都是自动的,点点就完事。 创建API Tokens在桶列表的右侧,Account Details中,点击Manage标签,打开令牌页面。点击创建User Api令牌 创建成功后会出现如下页面。 请注意别关页面,...
Java25新特性
2025年9月,Java开发者将迎来一个重要的里程碑——JDK25的发布。作为长期支持版本(LTS),JDK25不仅带来了多项语言增强,还在性能、安全和用户体验方面进行了显著优化。本文将为您详细介绍JDK25的主要功能预览,让您提前领略这一版本的强大功能。 语言特性增强基本类型模式匹配(JEP 507)JDK25在Java的模式匹配框架instanceof和switch中直接支持原始类型(如int、boolean),打破基本类型(Primitive Types)与引用类型(Reference Types)在模式匹配中的隔阂,让基本类型在 instanceof 和 switch 中也能像对象一样灵活使用。例如: 123456789101112// 使用 instanceof 检查安全转换if (obj instanceof int i) { System.out.println("这是一个可以安全存入 int 的数值: " + i);}// 在 switch 中直接匹配基本类型return switch (val) { ...








