油猴使用坚果云WebDAV同步脚本
注册坚果云
进入坚果云首页,注册账户,然后下载客户端(注意开启webdav需要客户端上操作):

在客户端左下角设置中,配置“第三方应用管理”:

添加应用,并记录下应用密码:

配置油猴
进入油猴插件的“实用工具”,在“云”配置中修改类型为WebDAV,然后输入账号和密码即可:

进入坚果云首页,注册账户,然后下载客户端(注意开启webdav需要客户端上操作):

在客户端左下角设置中,配置“第三方应用管理”:

添加应用,并记录下应用密码:

进入油猴插件的“实用工具”,在“云”配置中修改类型为WebDAV,然后输入账号和密码即可:

在vercel部署nextjs项目时,报错A commit author is required,如图所示:

github的部署也报错:No GitHub account was found matching the commit author email address

提交commit时候的邮箱未绑定到github中去。
解决方案有两种:
受限通过git log命令查看当前commit的邮箱:

Author列会展示当前提交的用户及邮箱,将邮箱登记到githb中去(位于Settings - Emails - Add email address):

或者通过命令修改git的用户和邮箱,邮箱要和github中绑定的一致:
git config --global user.name "username"
git config --global user.email "username@email.com"然后就可以正常部署了:

问题:使用element-plus的ElMessage插件,触发消息事件页面没有显示。
通过F12发现消息其实是有触发出来的,可以看到消息的element被插入了,并且z-index也正常:
<div id="message_10" class="el-message el-message--error" role="alert" style="top: 16px; z-index: 2012;">
<p class="el-message__content">消息内容</p>
</div>问题原因
没有引入element-plus的样式文件导致。样式内容缺失,因此看不到弹窗。
解决方案
在入口处引入样式文件:
import 'element-plus/dist/index.css' 防抖是一种编程技术,用于限制某个函数在短时间内被频繁调用的次数。具体来说,当一个函数被触发时,防抖会确保该函数在指定的延迟时间内只执行一次。如果在延迟时间内再次触发该函数,计时器会被重置,重新开始计算延迟时间。
这在处理高频率事件(如窗口调整大小、输入框输入、拖动操作等)时非常有用,可以避免因频繁触发事件而导致的性能问题。
Lodash
Lodash 是一个流行的 JavaScript 工具库,提供了许多实用的函数,包括 debounce。以下是如何使用 Lodash 的 debounce 来优化你的前端代码。
如果你的项目中还没有安装 Lodash,可以使用 npm 或 yarn 进行安装:
npm install lodash
pnpm install lodash或者
yarn add lodash在需要使用防抖功能的组件中引入 debounce:
import { debounce } from 'lodash';使用 debounce 包装你需要限制执行频率的函数。例如,在你的 CanvasComponent 中:
const saveGraphicsData = debounce((data) => {
// 这里执行保存图形数据的逻辑
console.log('Saving graphics data:', data);
// 例如:调用API保存数据
}, 200); // 200毫秒的延迟解释:
saveGraphicsData 是经过防抖处理的函数。saveGraphicsData 被调用时,它不会立即执行,而是等待 200 毫秒。saveGraphicsData,计时器会被重置,重新开始等待 200 毫秒。saveGraphicsData 才会真正执行。在你的事件处理函数中调用防抖函数:
const handleChange = (event) => {
const data = event.target.value; // 根据实际情况获取数据
saveGraphicsData(data);
};解释:
onChange 事件被触发时,handleChange 函数会被调用。handleChange 调用 saveGraphicsData,但由于 saveGraphicsData 是防抖函数,实际的保存操作会被延迟执行。为了避免内存泄漏,需要在组件卸载时取消防抖函数的计时器:
useEffect(() => {
return () => {
saveGraphicsData.cancel();
};
}, []);解释:
useEffect 的返回函数会在组件卸载时执行。saveGraphicsData.cancel() 会取消任何未执行的防抖计时器,确保不会有残留的回调函数在组件卸载后执行。import { useEffect, useRef } from 'react';
import { debounce } from 'lodash';
const CanvasComponent = () => {
const canvasRef = useRef(null);
const saveGraphicsData = useRef(null);
// 创建防抖函数
saveGraphicsData.current = debounce((data) => {
console.log('Saving graphics data:', data);
// 实际保存数据的逻辑
}, 200);
const handleChange = (event) => {
const data = event.target.value; // 根据实际情况获取数据
saveGraphicsData.current(data);
};
useEffect(() => {
return () => {
// 清理防抖函数
saveGraphicsData.current.cancel();
};
}, []);
return (
<canvas ref={canvasRef} onChange={handleChange}>
{/* Canvas 内容 */}
</canvas>
);
};
export default CanvasComponent;Lodash是一个比较古早的开源库,当时的代码规范和当前已经有所不同,因此在使用了es的项目中引入lodash会报错。
解决方案:使用lodash-es
pnpm install lodash-es @types/lodash-es 境外的服务器可以使用脚本一键安装:
curl -L https://coder.com/install.sh | sh官方的安装脚本下载太慢了,直接手动下载rpm安装:
wget https://file.outman.icu/software/code-server-4.22.1-amd64.rpm --no-check-certificate
sudo rpm -ivh code-server-4.22.1-amd64.rpm启动服务:
sudo systemctl enable --now code-server@$USER启动后默认监听localhost:8080,初始密码以及配置默认放在cat ~/.config/code-server/config.yaml:
bind-addr: 127.0.0.1:8080
auth: password
password: *********************
cert: false反响代理的配置需要注意添加web socket转发以及host头部的转发:
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;在默认的登录页,会把密码所在的配置文件打印出来:

存在安全风险,需要去掉。修改/usr/lib/code-server/src/browser/pages/login.html文件,找到:
<div class="sub">{{I18N_LOGIN_BELOW}} {{PASSWORD_MSG}}</div>删除其中的{{PASSWORD_MSG}}。
GVM(Go Version Manager)是一款用于管理和切换不同Go语言版本的工具。它允许用户在同一台计算机上轻松安装、使用和管理多个Go版本,同时还能确保项目之间的依赖关系井然有序。GVM的主要功能包括:
GOROOT和GOPATH,以确保每个Go版本的正确配置。通过GVM,开发者可以更方便地在不同版本的Go语言之间进行切换,从而提高开发效率和降低潜在的兼容性问题。
首先将gvm安装脚本内容拷贝到本地:
wget https://file.maqian.xin/scripts/gvm-installer.sh然后执行以下命令安装:
yum install bison
# 设置安装的代码源仓库,默认是github,在国内大概率拉不下来,因此需要拉到国内
export SRC_REPO=git@git.code.tencent.com:3part/gvm.git
# 安装
sh gvm_installer.sh用法:
# 查看所有版本
gvm list
# 使用指定版本
gvm use go1.18
# 设置默认的版本
gvm use go1.18 --defaultgvm默认使用golang官网来下载二进制,但是国内无法访问golang官网,所以是无法安装成功。gvm提供了通过离线二进制包安装的能力,可以在国内golang网站下载好二进制包,放到~/.gvm/archive/目录下,然后执行命令安装:
gvm install go1.21.5 --binary这样就解决了网络不通的问题。
注意:版本号必须要匹配

VueTorrent是一个基于Web的BitTorrent客户端,它提供了一个干净、直观的用户界面,让您可以轻松地管理和下载torrent文件。VueTorrent利用了现代Web技术(如Vue.js、Node.js和WebTorrent)的强大功能,使得在浏览器中下载和分享大型文件变得轻松便捷。
VueTorrent的特点
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
sh Miniconda3-latest-Linux-x86_64.sh一路yes即可安装完成,完成后source ~/.zshrc或者source ~/.bashrc生效。
# shell自动加载
conda config --set auto_activate_base false
# 回滚
conda init --reverse $SHELLconda create --name myenv python=3.11创建后不是默认生效的,需要执行conda activate myenv生效,如果需要默认生效则需要加入到~/.zshrc中:
echo "conda activate myenv" >>~/.zshrcconda remove --name myenv --allconda install package_nameconda update package_nameconda listconda update conda 前言:之前一直用的chevereto做图床,用了五六年了,但是最近不知道怎么回事,首页连图片都展示不出来了。搞了很久没有搞定,于是转向了是用另外一款兰空图床,记录一下部署教程。

兰空图床要求PHP版本大于等于PHP >= 8.0.2,而数据库要求为Mysql 5.7+/PostgreSQL 9.6+/SQLite 3.8.8+/SQL Server 2017+中的一种。
建议的版本是PHP 8.1 + MySQL 5.7,如果使用的是PHP 8.2,在安装的时候会报错“服务器错误”:

需要参考文章安装兰空图床时出现500服务器错误的解决方案来解决。
在安装前,先到官网下载源码文件放到网站上,下载地址:lsky releases。
图床依赖fileinfo/imagemagick/exif三个扩展,在php的控制面板中可以一键安装:

部分函数因为安全问题在安装时默认被禁止使用,但图床要使用,需要在禁用列表中删除。
用到的函数列表:readlink/symlink/putenv/getenv/exec/shell_exec/chmod/chown。
在PHP的配置文件中移除对这些函数的删除即可:

在“网站 - 网站目录”的配置中,关闭“防跨站攻击”,同时将运行目录设置为/public:

在网站的面板中,填入以下代码到伪静态配置中:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
用浏览器打开网站,会自动进入安装页面并检查环境是否满足,如果不满足则会报错,根据错误信息检查上面的环境都弄好了:

安装好后点击“下一步”就可以进入安装引导页面了:

填写数据库和管理员信息:

完成安装:

在控制面板的系统设置中,可以关闭注册功能和游客上传功能,如果只是给自己用,建议全部关闭:

在系统设置中修改图床的容量,默认是500M,可根据需要调整大小:

兰空图床支持本地存储以及多类远程存储,比如腾讯云的COS以及阿里云的OSS等。在存储策略中可以新建策略来设置图片的存储位置:

部署兰空图床时,提示“服务器错误”,错误码500:

问题原因
我的部署环境为PHP8.2,官方建议的是8.1,版本不对有些代码不兼容
修改vendor/nesbot/carbon/src/Carbon/Traits/Creator.php的第928行,将
private static function setLastErrors(array $lastErrors)修改为:
private static function setLastErrors($lastErrors)