电动车充电器灌胶+延长线
背景
因为电动车充电器在什么地方充电都不是很顺畅,电源线太短了,需要将电动车推到和插座非常近的地方,但是很多小区车非常多,没有空余的地方,所以就需要改一条延长线。
为什么还需要灌胶呢,我之前的充电器在经历过北京的长时间大雨肆虐之后彻底坏掉了,拆开看里面的都已经生锈了,灌胶可以防尘防水防震。
准备工作
电烙铁(不想从中间接线,打算直接将线焊到板子上)
2M的电源线+二孔插头一个(延长线原材料)
灌胶
动手操作
使用Y型螺丝刀拆下充电器背面的两颗螺丝,扣开充电壳,打开充电器
找到链接电源的那一边,使用电烙铁更换电源线
配置灌胶,我是用的灰色软硅胶(一定要买软的,否则安装的时候不好安装)按照1:1的重量配置
不要把这东西弄的那里都是(血的教训,我心爱的鼠标垫搞了黑黑一大片)
找个容器正好可以装下充电器的电路板,中间铺上塑料,直接浇给
浇给之前最好把电路板的两个孔堵住,要不然安装的时候找不到位置了
我是已经浇给了之后才想起来这件事情,牺牲了一双筷子
静置一晚上拿出来看看效果(商家说24H达到最佳固化)
用刀子适当削下胶,能放进去壳子里面就彳亍
装之前给延长线 ...
Arthas排查Prometheus请求慢
背景
线上突然出现很多的异常,发现是普罗米休斯在采集指标的时候设置的时间太短,倒是10s之内还没有返回消息直接断开连接导致的异常
注解@WebEndpoint(id = "prometheus")标识在PrometheusScrapeEndpoint上面,其实@WebEndpoint 就相当于声明成一个@RestController的控制类。
当/actuator/prometheus请求进来之后就会请求到PrometheusScrapeEndpoint里面,我们可以看到在scrape方法上有个@ReadOperation(producesFrom = TextOutputFormat.class)注解
/** * {@link Endpoint @Endpoint} that outputs metrics in a format that can be scraped by the * Prometheus server. * * @author Jon Schneider * @author Johnny Lim * @since ...
ESP32-LyraT-Mini从0开始的烧录教程
我使用的是Mac系统,之前使用过Arduino玩过Esp8266并且加了个屏幕(只是玩玩,没有很深),这次搞到了一个ESP32-LyraT-Mini,也是简单入个门。
准备工作
安装ESP-IDF
安装ccache,ccache是一个编译器缓存,该工具会高速缓存编译生成的信息,并在编译的特定部分使用高速缓存的信息,可以加速编译的速度。brew install ccache
安装 CMake 和 Ninja 编译工具brew install cmake ninja dfu-util
确定已经安装python3python3 --version
如果没有安装执行brew install python3
拉取ESP-IDF的代码mkdir -p ~/espcd ~/espgit clone --recursive https://github.com/espressif/esp-idf.git
TO BE CONTINUED
参考文档
ESP32-LyraT-Mini V1.2 入门指南
ESP-IDF 版本简介
Set up
Linux更新之后Systemd启动SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE
在一次Manjaro的日常更新之后,事物当时确实是更新失败了,是一个应用更新失败了,和内核更新无影响,但是重启后系统启动失败,报下面的错误
D: recovering journalD: clean 1969453/15630336 files, 56589956/62515748 blocks Refusing to run under cgroup v1, SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 not specified on kernel comnand line.1.520240] systend[1]: Freezing execution.
原因分析
电脑更新了systemd的新版本,但是可能因为事物的问题没有添加上启动参数,新版本的systemd不支持cgroup v1,需要启动参数开启兼容模式
* Support for cgroup v1 ('legacy' and 'hybrid' hierarchies) is now considered obsolete and system ...
Google Auth 迁移到 Chrome 拓展程序
公司日常开发有很多时候需要用到两步验证,目前我的两步验证码是保存在手机上面的Google Authenticator。
每次登陆的时候都需要打开手机进行验证很麻烦。决定找一个能在电脑上面使用两步验证的app。
因为不想删掉之前的两步验证重新添加,所以还需要能迁移过去。
需求点
能够从Google Authenticator迁移到新寻找的App上面。
免费。
在App Store上面找到了几款应用介绍非常不错的,并且还能有TouchID来解锁的功能,兴致冲冲去下载之后发现要内购。
没错这几个都要钱
找了一圈Crack也没有找到,无奈之下找到了个Chrome的拓展程序,也可以进行迁移导入 。
先上链接
选择导入备份之后
在Google Authenticator点击转移账号,将生成的二维码截图或者拍照
我尝试使用QRCODE导入,但是识别不到。
最终使用了扫描二维码出来的内容,使用导入备份文本解决的。
JumpServer跳过登陆验证使用终端直接登陆
前言
公司在经历一段安全管控之后,JumpServer就连使用跳板到测试环境也需要两步验证了,但是每次这样都会很麻烦,本来使用三方的tabby进行连接就很优雅了,使用https://github.com/jumpserver/jumpserver/issues/10061两步验证之后都很繁琐。
发现MFA的配置无法跳过,下面的内容也只能起到跳过密码的操作
自动登陆也是可以实现的,不过我懒得去弄了,详情见延展阅读2
MFA 是二次认证。用户登录 JumpServer 时,密码是第一层,第二层是 MFA。通过 Terminal 登录时,也是一样的。使用密钥 SSH 登录,只是第一层认证通过了,所以会显示 MFA 等待输入。如果用户开启了 MFA,那无论是 Web 还是终端都需要认证。从安全角度来讲,没问题的。
今天在看JumpServer的个人资料设置的时候发现了个SSH Key设置
那么不就简单多了,直接通过SSH Key进行免密登陆
操作
到你的JumpServer上找到上图设置,在头像的个人资料设置那里就有
点击Reset and download SSH Key下载到一 ...
Liquibase使用
安装liquibase
我这里用的是Manjaro,直接使用yay进行安装
yay -S liquibase
安装MySQL的驱动
通过yay安装的liquibase会在/opt/liquibase/internal/lib,将下好的驱动放到这个目录下
创建一个liquibase的配置文件
# Mysql连接串driver: com.mysql.cj.jdbc.Driverclasspath: /opt/liquibase/internal/lib/mysql-connector-j-8.1.0.jarurl: jdbc:mysql://127.0.0.1:3306/liquisbase?useSSL=false&serverTimezone=UTC&autoReconnect=true&allowPublicKeyRetrieval=true&useOldAliasMetadataBehavior=trueusername: liquibasepassword: 123456changeLogFile: changeLog-mysql.x ...
HtmlUnit爬虫获取页面信息
HtmlUnit是一个没有GUI的模拟浏览器测试框架,之前在Python使用过Slenium进行自动化测试和一些爬虫的操作。但是Slenium在使用的时候会出现一个浏览器界面进行真实操作。
HtmlUnit可能在编排代码的时候不知道浏览器现在是什么情况,可能会有很难写下去的情况。
POM中引入HtmlUnit
<!-- https://mvnrepository.com/artifact/net.sourceforge.htmlunit/htmlunit --><dependency> <groupId>net.sourceforge.htmlunit</groupId> <artifactId>htmlunit</artifactId> <version>2.70.0</version></dependency>
编写代码
package org.example;import com.gargoylesoftware.htmlunit.Browser ...
自生成IP证书实现局域网Https访问
当我们在本地进行测试和部署的时候,有些会涉及到Https的部署,或者客户系统需要Https内网的加密通话。但是Https证书一般都是颁发给域名的,我们本地应该怎么操作呢。
生成需要的对应IP的Https证书,keytool就是java自带的工具,可以进行证书的生成等操作。
keytool -genkeypair -alias myapp -keyalg RSA -keysize 2048 -keystore keystore.jks -validity 3650 -dname "CN=example.com" -ext "SAN=IP:192.168.1.1"
转换证书,该证书安装在使用者的电脑上
keytool -exportcert -alias keystore -file keystore.crt -keystore keystore.jks
keystore.jks就可以放在自己的应用下,作为Https证书使用,keystore.crt安装在要访问应用的用户电脑上。
这样咱们在内网就可以使用Https加密的IP地址访 ...
Feign Resilience4j 与 Hystrix 的碰撞
背景
在升级Springboot版本的时候,之前使用的是ContextHolder
threadLocal=ContextHolder.getInstance().getContextHolder();Map<String, String> parMap=new HashMap<>();parMap.put("Key","Value");threadLocal.set(parMap);
获取一个map保存传递信息
原理是 使用Feign的拦截器
if(parMap!=null&&parMap.size()>0&&parMap.containsKey("Key")){ template.header("Key","Value");}else{ logger.info(Thread.currentThread().getName()+"为空。");}
Fei ...











