rust入门
用 Tauri 写一个 Hello World:从环境配置到打包踩坑记录为什么折腾 Tauri以前想用前端技术写桌面应用,基本只有 Electron 可选。虽然生态成熟、轮子多,但缺点也很明显:自带 Chromium 和 Node.js,空项目打包出来就有一两百兆,跑起来开几个窗口内存就上去了。
Tauri 的思路不太一样,它不打包浏览器内核,而是直接调用操作系统自带的 WebView(Windows 下用 Edge WebView2,Mac 下用 WebKit),后端换成了 Rust。这样搞出来的可执行文件一般只有几兆到十几兆,内存占用也低得多。
而且 Rust 部分并不需要你上来就精通生命周期或者异步运行时,对于绝大部分功能,Rust 端只充当一个提供本地系统 API 的“后端”,页面 UI 依然是纯前端。
1. 本地环境准备Tauri 依赖底层的 C/C++ 编译链和 Rust 环境,所以第一步得把编译工具装好。
Node.js: 随便装个 18+ 或 20+ 的 LTS 版本就行。
Rust:
官网下载 rustup-init.exe(Windows)或者终端执行 ...
3863将一个字符串排序的最小操作次数
题目描述给你一个由小写英文字母组成的字符串 s。
在一次操作中,你可以选择 s 的任意一个真子字符串(即不能选择整个字符串),并将这个子字符串内部的字符按非降序重新排列。
请你返回使整个字符串 s 按非降序排列所需的最小操作次数。如果无论如何都无法做到,则返回 -1。
注意:一次操作是对选中的子字符串整体排序,而不是交换两个字符。
示例 112输入:s = "dog"输出:1
解释:
选择子字符串 "og",排序后变成 "go"。
此时 s = "dgo",已经按非降序排列,所以答案为 1。
示例 212输入:s = "card"输出:2
解释:
第一次选择子字符串 "car",排序后得到 "acr",字符串变为 "acrd"。
第二次选择子字符串 "rd",排序后得到 "dr",字符串变为 "acdr"。
此时字符串已经按非降序排列,所以答案为 2。
示例 312 ...
3863将一个字符串排序的最小操作次数
题目描述给你一个由小写英文字母组成的字符串 s。
在一次操作中,你可以选择 s 的任意一个真子字符串(即不能选择整个字符串),并将这个子字符串内部的字符按非降序重新排列。
请你返回使整个字符串 s 按非降序排列所需的最小操作次数。如果无论如何都无法做到,则返回 -1。
注意:一次操作是对选中的子字符串整体排序,而不是交换两个字符。
示例 112输入:s = "dog"输出:1
解释:
选择子字符串 "og",排序后变成 "go"。
此时 s = "dgo",已经按非降序排列,所以答案为 1。
示例 212输入:s = "card"输出:2
解释:
第一次选择子字符串 "car",排序后得到 "acr",字符串变为 "acrd"。
第二次选择子字符串 "rd",排序后得到 "dr",字符串变为 "acdr"。
此时字符串已经按非降序排列,所以答案为 2。
示例 312 ...
解决MySQL忘记密码的步骤
如果你忘记了MySQL的密码,可以通过以下步骤安全地重置密码。以下方法适用于Window系统.
步骤1:停止MySQL服务首先,登录到你的Window系统,然后停止MySQL服务。
1net stop mysql
步骤2:以安全模式启动MySQL接下来,以安全模式启动MySQL,跳过权限验证。
1mysqld --console --skip-grant-tables --shared-memory
步骤3:登录MySQL现在,以root用户身份登录MySQL:
1mysql -u root
步骤4:选择mysql数据库切换到mysql数据库,因为权限信息存储在这里。
1USE mysql;
步骤5:更新密码根据你的MySQL版本,使用相应的命令更新密码。
对于MySQL 8.0及以上版本:
12FLUSH PRIVILEGES;ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
对于MySQL 5.7及以下版本:
1UPDATE user SET passw ...
递枕头
LeetCode 2582. 递枕头:数学规律与 O(1) 解法题目描述有 n 个人站成一排,编号从 1 到 n。枕头最初在第 1 个人手里。每一秒,枕头会传递给相邻的人。如果枕头到达了队首(第 1 个人)或队尾(第 n 个人),传递方向就会反转。给你 n 和 time,返回 time 秒后枕头在谁手里。
示例:
输入:n = 4, time = 9,输出:4
输入:n = 3, time = 2,输出:3
解题思路直接模拟传递过程当然可以,但 time 可能很大,模拟会超时。观察传递规律,可以发现它是一个周期性的往返运动。
以 n = 4 为例,枕头的位置随时间变化如下:
12时间: 0 1 2 3 4 5 6 7 8 9 10 11 12位置: 1 2 3 4 3 2 1 2 3 4 3 2 1
可以看到,位置序列在 1 和 4 处会发生“折返”。如果去掉折返时重复的端点,可以把序列拉直成一个更规整的周期:
11 -> 2 -> 3 -> 4 -> 4 -> 3 -> 2 -> 1 -> ...
使用electron打包静态页面
先到静态页面包外面安装electron-packager
123npm install electron
再安装electron-packager
12npm install electron-packager
到静态页面文件夹里面创建main.js 文件
12345678910111213141516171819202122232425262728293031const {app,BrowserWindow} = require('electron'); //引入electronlet win;let windowConfig = { width: 800, height: 600}; //窗口配置程序运行窗口的大小function createWindow() { win = new BrowserWindow(windowConfig); //创建一个窗口 win.loadURL(`file://${__dirname}/index.html`); ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
Claude code Stop hook error: Failed with non-blocking status code: No stderr output
Windows 系统上使用 Claude code 时,遇到 “Stop hook error: Failed with non-blocking status code: No stderr output” 错误的解决方案。
原因遇到这个错大概率就是使用官方的 Ralph loop 插件导致,因为官方的插件的钩子写法只有sh脚本,只是适配类Unix系统(不带win玩
不过在WSL上也会出错
解决方案
https://github.com/anthropics/claude-plugins-official/pull/305
这位大佬直接写了一个powershell脚本,用node启动判断平台,然后执行对应的脚本,直接下载代码替换 .claude/plugins/ralph-loop 的文件就行了。最好就启动cc 重新安装一下插件。/plugins 命令重装
测试1/ralph-loop:ralph-loop "Append the current iteration number to test-iterations.txt. Read ...
根据后端接口生成前端API
最近用kiro写项目,老是遇到前后端接口不统一的问题。
步骤1:Spring Boot 端集成接口文档工具Spring Boot 后端需先集成 Swagger 或其增强版 Knife4j(推荐 Knife4j,功能更全、UI 更友好),用于生成前端工具可解析的 OpenAPI/Swagger 标准文档。
推荐:Knife4j + Spring Boot 集成
引入依赖123456789101112<!-- Spring Boot 2.x 版本 --><dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>2.0.9</version></dependency><!-- Spring Boot 3.x 版本 --><dependency> <grou ...
【星际2编辑器】教程:使用触发器控制 XML 自定义 UI
随着星际争霸2地图开发对 UI 精细度要求的提高,传统的“触发器动作创建控件”方式已难以满足复杂的界面需求。目前主流的高级 UI 开发采用了 SC2Layout (XML) 与 触发器 (Triggers) 分离的架构。
本文将基于实际案例(生产面板初始化),讲解如何在触发器中加载 XML 模板,并通过 DialogControlHookup 获取控件句柄进行动态控制。
1. 核心原理
**XML (Layout)**:定义界面的布局、纹理、位置和层级结构。
**触发器 (Trigger)**:负责逻辑控制(如数据绑定、事件响应)。
交互桥梁:DialogControlHookup 函数。
2. XML 布局定义 (Layout XML)在编写触发器之前,我们需要先定义好 XML 布局。以下是一个基础的示例代码,其中定义的 name 属性将直接对应后续触发器中的 Hookup 参数。
1234567891011121314151617181920212223<?xml version="1.0" encoding="utf-8" stan ...
�ȵ���





