MacOS 编译使用aliyun-openapi-cpp-sdk
开发库sdk依赖了几个库, 需要先安装. (brew: 包管理器)brew install jsoncpp
brew install openssl
brew install ossp-uuid
brew install curl源码源码下载下来git clone https://github.co
Jenkins构建优化 20min到2min
系统的jenkins构建流程很简单, 但一直很慢. 一次构建平均十几二十分钟git pull (17分钟)mvn clean package (6分钟)scp (4分钟)Git Pull发现之前的配置被勾选了自动清理workspace, 取消后拉代码就正常了, 基本是秒拉Maven Packagem
接入TLog日志
tlog是一个轻量化的链路日志标签解决方案spring web项目引入依赖<dependency>
<groupId>com.yomahub</groupId>
<artifactId>tlog-web-spring-boot-starter</artifactId>
<version>
简易Mac历史剪切板
基于go-fyne, 自动存储剪切板历史记录 (只支持文本)main.gopackage main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/d
Linux服务器替换rm命令
先把rm禁了mv /bin/rm /bin/fuckrm或者chmod 000 /bin/rm然后vim /usr/local/bin/rm#!/bin/bash
# 获取当前时间戳
timestamp=$(date +%Y%m%d%H)
# 目标路径 trash/时间戳
target_dir=
AWS 设置 SES 事件 HTTPS 通知
SESSimple Email Service. amazon aws的邮件服务配置新建配置集全部默认配置创建完后, 添加目的地, 选择: Amazon EventBridge, 并根据需要选择事件类型创建API目标进入Amazon EventBridge界面创建API 目标输入自己的https地址
x-www-form-urlencoded 自动转小写
场景用户进行邮箱验证, 发送成功了, 验证码也收到了, 也提交对了. 但, 就是不通过.原因前端通过form表单提交的数据 application/x-www-form-urlencoded后端接收的时候, 大写被自动转成了小写.SpringBoot: 1.5.10.RELEASE
AWS SES SDK V2 API 邮件发送
记录一下@Bean
public SesClient sesClient(EmailAwsConfig config) {
AwsBasicCredentials build = AwsBasicCredentials.builder()
.accountId(con
排查记录: Java所有接口卡死
线上接口, 每天凌晨三四点后开始卡死, 重启后恢复调用后等待两分钟, 然后504两分钟正好是nginx反代的超时时间排查过程日志把nginx和应用日志都找出来看了下, 没发现什么问题应用机器状态看了下cpu占用率/内存, 没问题磁盘占用也没问题应用状态通过jps查找到java进程然后jstack 进
PostgreSQL bytea与字符串互转
假如name是bytea类型的字段新增时INSERT INTO users (name) VALUES ('zhangsan'::bytea)查询时SELECT CONVERT_FROM(name, 'UTF-8') AS name FROM users
Spring RedisTemplate Scan
keys 不能用, 那就只能用scan了public static Set<String> scan(RedisTemplate<String, String> redisTemplate, String pattern) {
return redisTemplate.execute((Re
基于Redis ZSet的滑动窗口限流
private boolean limit() {
String ip = ServletUtil.getClientIP(request);
String banKey = "limit_ban_" + ip;
Boolean b = redisTemplate.hasK
PostgreSQL的"find_in_set"
SELECT *FROM sys_dept WHERE #{id} = ANY (string_to_array(ids, ','));注意id也需要是字符串形式
Vue Computed引起的页面卡死
前端出现了个bug当请求接口时, 前端就会卡死, 直接无响应. 控制台看到对应请求的Timing一直卡在Initial connection.将请求单独拿出来放到Postman中请求, 正常响应.通过控制台Network中请求的Initialor进行断点跟踪, 发现前端实际也是获取到了接口的响应.
Git撤销已Push的Merge
复现场景现有一个分支 master基于master创建分支mergemaster正常commit & push Cmerge正常commit & push D和E将merge合并到master, commit为MA -- B -- C -- M (master)
\ /
JMeter并发测试-计数器使用
实现10个线程并发调用接口每个请求携带的参数都不一致用来测试接口的并发安全性新建测试计划在测试计划下新建线程组10个线程循环1次在线程组下新建取样器-HTTP请求设置请求地址在HTTP请求下新增配置元件-计数器起始值 0递增 1最大 9数字格式 0引用名称 cnt设置HTTP请求的参数使用${cnt
Ghidra修改exe文件中的字符串
下载一个, 配置好jdk21导入项目初始化后, 选择Import File, 随便选一个简单的exe文件我这里是自己写的关机程序然后菜单 Search - For Strings, 选项默认.Filter中输入我们要过滤的thy搜索出结果后, 双击, 回到主视图选择第一个字符 't', 右键 Dat
STC89C52RC定时器
如电路图定时器分为四个模块时钟源模块计数器模块控制逻辑模块中断模块 (notify)如果要使用定时器, 需要对模块对应的寄存器做初始化本次选择定时器0, 工作模式1配合芯片手册初始化TCON和TMOD两个地址所以时钟源模块控制模块中断模块M1/M0两位共同选择模式, 赋值01代表模式1计数器模块综上
Chrome插件在HTTPS页面获取HTTP接口数据
场景是这样的, 插件要在https页面根据规则做拦截, 但是获取规则的接口并不是https的.发起请求时, 被浏览器的安全策略给拦了.这里记录下解决思路页面上不能进行请求, 但是service-worker里是可以的所以将service-worker获取到的数据传到页面即可service-worke
在线测试跨域
找个网页F12后, 控制台输入如下代码, 能获取到响应即正常var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://localhost:7099/api/xx/xx');
xhr.send(null);
xhr.onload = functi