小米Mix2s修复距离传感器失灵

我的Mix2s不知道从什么时候开始出现了打电话时屏幕不灭,或者灭掉了之后又没法亮屏的问题,甚至还有打电话时有一定概率对方会完全听不见自己声音的情况,

原本我一直以为是刷的LineageOS和这硬件不太兼容,于是想着可能某次更新之后就解决了。

但我最近升了一个大版本之后发现这个问题依然存在,于是我网上查了几天,发现很多人都有这样的情况,而且和系统无关,全都有这种现象。

再仔细一查,发现似乎是因为距离传感器在长时间使用过程中被细小灰尘堵住了,导致它的超声波距离传感器灵敏度变差。

Mix2s的超声波距离传感器位于听筒两边,是从听筒的孔两边延伸出去的两条非常细的缝,长度大约各1厘米,用眼睛不太容易看出来,需要灯光位于一个特殊角度时你才可以发现听筒两边有一部分的缝比旁边要大一点点(如下图),用美工刀片是可以卡进去一点的。

修复方案那就是先用美工刀插进超声波缝,然后把里面固化的灰尘划出来,注意小心点别把听筒捅坏了,能划的灰都弄出来之后用能插得进缝的软毛刷狂捅一顿,再左右刷刷,尽量把能看到的灰都刷掉。

这样处理完之后距离传感器就可以恢复正常的感应距离了,也不那么容易出现卡在一个状态不变化的情况(但由于设计缺陷,某些情况下还是会有距离状态不变的问题,这个无法修复)

[SASS]指定import查找路径

本文为node包sass的使用笔记。

写这篇文章,是因为我碰到了引用node_modules目录中模块的scss文件的需求,但是它总是提示找不到: “Error: Can’t find stylesheet to import.”,于是我搜了搜,发现说是要在渲染参数中添加loadPaths数组来告诉sass去哪里找依赖文件,我在这个模块的typescript类型定义中也找到了这个参数名,但是我加上了之后并没有用,于是研究一番发现这个包使用的实际上并不是loadPaths,而是includePaths这个参数名,所以觉得有必要写篇笔记记录一下。

另外我发现有的解决方案中说可以在import的url前面加个~来表示这个文件在node_modules里,但我试了也没有用,这个特性似乎是webpack给sass引入的importer,所以单独使用sass的render api时此方式是不起作用的,如果使用的是sass-loader的话可以使用这个方法。

【佳佳拆解】台电幻影NP900C

这是之前买的台电幻影NP900C,三年质保,现在3年过了3个月就挂了,拆出来给大家看看。

我不知道这个板型是不是什么通用板型,反正我在淘宝上看到了一模一样的,带主控卖五十多块钱。

主控是慧荣SM2263XT,好像是AD的,在我尝试加焊闪存颗粒维修的时候,因为闪存不小心移位了一下,导致下面连锡了,然后一通电主控就炸了。

继续阅读【佳佳拆解】台电幻影NP900C

把3090塞进紧凑MATX机箱

上星期,我的系统盘(台电NP900C)用着用着就炸了,刚过保几个月就炸了,用量产工具检查了一下一个闪存颗粒失联了,数据恢复无望,还好里面只有系统和安装的软件,损失不大,尝试重新开卡当缓存用,现在重新买了个1TB的三星980Pro当系统盘用。

我猜测可能是因为直连CPU的m.2那个位置吸3090尾气太多,温度过高,又没有一个很好的风道散热,于是它迫不及待地热死了。

之前为了散热问题买了一个酷冷至尊Q500L,我标题说是MATX,但它其实也能放ATX主板,只是需要舍弃一些别的配置选项,本想把新的主板和显卡装进这个更扁的机箱,结果发现电源和显卡都太长,他俩的位置冲突了一点,电源是以前发过的长城巨龙,然后就放弃了,把这个机箱给了我的旧主板和cpu。

继续阅读把3090塞进紧凑MATX机箱

[Excel]根据身份证号码计算年龄

最近被迫大量使用excel,所以我也学了点它的函数用法,做点笔记

根据身份证号码计算年龄的使用场景应该挺多的,但我在网上始终没找到一个能得到最准确结果的答案,于是东拼西凑写了个

#以下公式需要把#以及后面的内容删除才可以使用,因为excel的公式并不存在注释语法
=FLOOR(		#把计算结果向下舍入,精度为1
	DATEDIF(	#计算日期差
		TEXT(	#把生日字符串格式化为日期
			MID("身份证号",7,8),#提取身份证的生日部分
			"0-00-00"
		),
		TODAY(),#获取今天的日期
		"M"	#以月为单位计算前两个参数的差值
	)/12,		#除以12变成年
1)

网上很多方法是直接计算两个日期之间的年差,没有考虑到过了生日才长一岁的问题,所以我计算的是月差,毕竟每年的月份是固定12个,那么只要用总月数除以12再舍掉小数就是正确的周岁结果了

[BiliBili]视频右键菜单工具(油猴脚本)

地址:https://gist.github.com/JiaJiaJiang/c54abe1227917af3d3825dfa098b9473

安装:在浏览器有tampermonkey插件的情况下,点上面链接里的RAW按钮安装

功能:

  • 右键视频变速按钮:添加新版播放器中被砍掉的右键菜单视频变速按钮
  • 跳过OP、ED快捷键:ctrl+左右键可以跳过一般op和ed长度的时间(1分30秒)
  • 右键截图按钮:点击后将当前视频画面完整截图并在新窗口中打开

 

[Node.js]ES模块和CommonJS模块的导入

在使用ES导入语法的文件中想要使用require导入一个CommonJS模块的话,可以使用module.createRequire来创建一个require函数。

import { createRequire } from 'module';
const require = createRequire(import.meta.url);

 

在一般的使用CommonJS导入语法的文件中想要使用ES语法导入模块的话,可以使用import函数,要注意的是这是一个异步函数,返回一个Promise,所以需要await它或者使用then来等待返回结果,如下

(async()=>{
	const fs=await import('fs);
})();

 

[Browserify]异步插件导致write after end错误

写了个Browserify插件,之前一直没问题,但今天我改了点打包流程,结果一直报write after end错误,找了半个晚上,发现是因为我的插件函数写的是异步的,里面有个await异步读文件。

之前一直没出问题是因为后面的打包流程时间够长,能让这个插件正常执行完,但今天改了流程之后部分情况下很快就执行完了,于是当插件异步流程执行完后继续就出错了,修正方法是把异步文件读取改成同步的。

[Node.js]进程异常退出,错误码 3221226505

不是我想水一篇博文,在解决完前一篇博文的问题之后,立刻就又碰上另一个奇葩问题,进程直接跑着跑着没了,留下一个错误码3221226505。

在我左思右想把代码改来改去,包换来换去之后依然不能解决问题,然后发现是canvas包的问题,之所以一直没有发现是它,是因为出问题的代码里并没有用到这个包,它是在别的地方被引用到的,可能它的二进制模块破坏了node的环境,导致别的代码执行的时候触发了异常导致程序崩溃。

这个问题其实也不是第一次出现了,而且每次都是因为项目中同时有canvas和sharp两个模块才出现问题,在某些版本下不会出问题,某些版本下又会出现不一样的错误,这次就是和上次不一样所以才没能快速发现。

就这点破事,又浪费了我一个晚上,这时候我真想给搞出这bug的人屁股上来一脚。

IIS反向代理站点跳转域名被替换

今天一个破问题浪费我一下午的时间,我一直在找自己代码是不是有什么问题,或者是不是express有什么bug,结果到最后发现原来是iis的问题。

如果是在win上用iis反代站点的话,通常都会用iis的requestRouter插件,在他的设置页面Application Request Routing里网上的教程通常都勾着Reverse rewrite host in response headers这一项,就是因为这个设置导致后端返回的http头中location指定的跳转地址被替换为了此站点的地址,不知道这是个什么智障操作。

TrueNAS启用pkg包管理器

这是一篇小笔记,truenas默认没法使用pkg install来安装包,会出现以下报错

pkg: file:///usr/ports/packages/meta.txz: No such file or directory
.....
pkg: file:///usr/ports/packages/packagesite.txz: No such file or directory
Unable to update repository local

解决方案是进入/usr/local/etc/pkg/repos/ ,把local.confenabled后的yes改成no,把FreeBSD.confenabled后的no改成yes即可。

 

方案来源 : https://www.justinsilver.com/random/fix-pkg-on-freenas-11-2/

大龄单身狗的日常