Longhorn 与 Multipath 冲突导致卷无法挂载
升级系统到Ubuntu 24.04之后发现之前的longhorn卷全部无法挂载,包括新创建的卷,虽然能正常附加到服务器上,但是无法mount,mount就在dmesg里提示Can't open blockdev,通过fsck检查提示卷被占用,进行只读式的检查未发现问题。可以通过dd导出卷镜像到文件,导出到文件后正常挂载。此时判断Longhorn出现问题,经过多方查阅,发现其与Multipath冲突,虽然不知道为什么这东西现在才冲突。解决方法是在multipath的配置中排除掉Longhorn创建的磁盘:/etc/multipathd.conf:添加到末尾:blacklist {
...
装饰器, ESLint与代码检查
My Dear Decorator ~ Love story between ESLint & TypeScript Decorator!
Ubuntu下hdparm.conf中APM和spindown_time设置不生效的解决方案
在/lib/hdparm/hdparm-functions中的约63行位置有: # Only activate APM on disks that support it.
if [ -z "$ID_ATA_FEATURE_SET_APM" ]; then
local ID_ATA_FEATURE_SET_APM="$(udevadm info -n "$1" -q property 2>/dev/null | sed -n 's/^ID_ATA_FEATURE_SET_APM=//p')" |...
在AMD驱动中强制启用性能叠加层与侧栏
某些情况下, AMD官方驱动在安装完之后无法启用性能叠加层和侧栏, 表现为AMD驱动配置面板中, 性能监测页没有叠加选项, 只有指标, 按下Alt+Z无法打开侧栏, 快捷键设置中没有侧栏键位配置, 通用配置中没有启用叠加层的选项.解决方式是修改注册表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\000x在系统有多个显卡的时可能会有多个项, 一般为0000找到AllowRSOverlay, 将false修改为true, 然后在任务管理器中杀掉管理界面U...
使用Vue Directive实现的Vue页面权限控制
\#0 权限控制? 前端?前端的权限控制不是为了阻止用户做什么, 而是为了告诉用户不能做什么, 实际阻止用户去做什么应该由后端完成, 把按钮藏起来并不能阻止用户触发那个按钮背后的实际后端逻辑. 前端的权限控制是为了告诉用户不能做什么, 把用户无权限操作的按钮隐藏起来, 可以降低用户无知点下按钮后权限不足造成的挫败感.接下来, 假设我们已经通过暴露到全局的 $perm.has: (permissionNode: string): boolean 实现了权限的判断, 来思考如何以一种开发友好的方式控制元素显示.\#1 v-if?这应该是最容易最直接想到的办法:<button v-if=...
VSCode PlatformIO SDCC存档
要在VSCode里用PlatformIO配SDCC写东西, 需要一点Polyfill才能让VSCode正常解析C51特有的语法#if defined(__INTELLISENSE__)
#define __data
#define __near
#define __idata
#define __xdata
#define __far
#define __pdata
#define __code
#define __bit char
#define __sfr volatile unsigned char
#define __sbit volatile char
#define __cr...
装饰器, HTTP请求与Typescript
0. 简单的API封装封装如下API:GET /resource/{id}
Response
200 {
_id: string;
name: string;
}
404;POST /resource
Payload {
name: string;
}
Response
201 {
_id: string;
name: string;
}
403;实现:class Client {
client: AxiosInstance;
constructor (baseUrl: string) {
this.client = axios.create(...
Vue 3 服务端渲染(SSR)终极优化指南
最近在做的项目都需要做SSR优化搜索引擎索引和用户体验.如果只需要优化SEO那就直接挂个白屏屏蔽掉没加载完但是有内容的丑陋网页就行了, 搜索引擎能够抓取数据, 用户以为还在加载.但是如果需要优化用户体验, 那就需要下一些功夫了.这篇教程基于没有使用任何SSR框架(比如nuxt/vite-ssr), 纯手搓的SSR服务端, 其他框架请自行迁移学习, 难度应该不大, 实在不行我们可以改源码(x).0. 简单的SSR服务端核心逻辑如下:import { renderToString } from "@vue/server-render";
const initApp = ...
DIY一个给电脑显示器用的重力感应屏幕旋转装置
买了个能转的显示器当副屏, 然后因为买的太便宜, 没有带旋转感应的(不知道别的有没有). 然后觉得好像不大方便, 就想着写一个脚本, 能够一键切换屏幕旋转状态. 最后配合 MultiMonitorTool 的加载配置文件功能实现了一键切换布局. 我找到了内心的平静. 直到我发现, 这实在是太蠢了. 我每次都要找到脚本在哪, 再双击他切换布局. 于是我找了一个右键菜单编辑器, 把这个脚本放进了桌面的右键菜单里.然后在桌面右键点击两次就能切换旋转状态. 我找到了内心的平静. 直到我发现, 这实在是太蠢了. 为什么不能直接根据实际状态旋转呢? (xDIY 这样一个东西, 大...