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 这样一个东西, 大...
Vue 3 中的服务端渲染(SSR)与异步数据获取
为了解决SEO问题, 我们通常会使用SSR.但是Vue的SSR对异步数据的渲染有不少门道, 故开一篇文章简单讲讲.以下内容基于完全使用setup script的情况下讲述.几个基本点:SSR渲染时, 生命周期钩子里只有beforeCreate和created会被触发. 意味着你不能在其他钩子里执行获取数据的逻辑.SSR渲染时, 响应式变量不会被触发更新, 渲染状态以逻辑执行时的数据为准. 意味着如果你使用空数据占位, 等到数据到达时更新数据的做法会在SSR时失效.几个建议:如果你在用响应式变量控制组件的加载状态(isLoading), 替换成Suspense和Async Setup. 因...
联想ThinkBook 2021(或者更早的型号以及其他机型的任意型号) 空闲时自动关闭键盘灯
需要电脑已经安装Lenovo Vantage, 如果按下Fn+空格能够切换键盘灯则已经安装. 仅在ThinkBook 15 2021款测试过, 其他机型可能略有不同甚至不受支持.较旧的机型使用其他方式控制键盘灯, 脚本并未做支持.base_path各个系统可能不同, 可以尝试自行寻找有IdeaNotebookPlugin.dll和Contract_Keyboard.dll的目录.timeout单位为秒.将代码保存为Powershell脚本(.ps1)并设置开机自动启动即可, 无需管理员特权.PowerShell脚本:$base_path = "C:\ProgramData\L...
在骁龙845设备上的Windows里原生运行Minecraft Java Edition
傻逼都知道微软他妈的不会做移动端的东西, 傻逼才他妈会用ARM设备上的Windows搞半天想要原生运行Minecraft就是为了他妈提高效率, 结果他妈的微软没给他妈的845的显卡驱动做他妈的OpenGL, 还得去下载他妈的兼容包转成他妈的DirectX 12才能他妈的跑.典型的跨平台跨了他妈个寂寞.越想越气, 懒得写了.简单说一下:从https://bell-sw.com/pages/downloads/#/java-17-current下载JRE 17, 选择Windows ARM64.从微软商店下载OpenCL™ 和 OpenGL® 兼容包, 安装完成后无需重启.建议使用HMCL启...
C.H.I.P. Archives
NXT Chip是一个仅$9的迷你开发板, 拥有46个GPIO和2.4G Wi-Fi和蓝牙4.0模块, 公司已经跑路, 板子闲鱼可能有售.PocketChip是Chip的带屏幕, 电池及键盘版本.Chip resource mirror: http://chip.jfpossibilities.com/调整电源芯片(AXP209)设置: i2cget 0 0x34 [addr] / i2cset 0 0x34 [addr] [value]解除电池充电电流限制: i2cset -y -f 0 0x34 0x33 0xcf && i2cset -y -f 0 0x34 0x3...