SpringAI 从0.5到1
SpringAI 从0.5到1 为什么是从0.5到1呢,因为Ollama的过程我就不再赘述,网上的教程也很多,本篇将使用Ollama+SpringAI进行叙述。 开始 创建一个SpringAI项目 你可以使用SpringIO的QuickStart,我这里贴出我的Pom(主要的一些东西) <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId></dependency><dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-ollama-spring-boot-starter</artifactId></dependency><dependency&...
WebFlux踩坑实录
WebFlux踩坑实录 从WebMVC升级到WebFlux之后有一些东西都不能按照之前的思维来做 如何从MVC到Flux 去除 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency> 添加 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId></dependency> 转到Flux之后你需要知道的事情 响应式编程,需要一个订阅,你的流才能流动。 Flux响应式编程,可以理解为全走了异步线程池,所以你的代码需要返回一个Mono或者Flux。 什么是Mono,...
FinOps实践--OptScale从0到1
什么是FinOps FinOps 是一种用于优化云资源使用和成本管理的实践。它通过监控、分析和优化云资源的使用,帮助企业降低成本并提高效率。 什么是OptScale OptScale 是基于 Kubernetes 的云原生监控和成本管理工具。它可以帮助企业监控云资源的使用情况,并提供成本分析和优化建议。 部署 OptScale 部署前注意 一定要遵循官方文档使用Ubuntu进行部署,使用CentOS部署会绝对失败,因为官方的部署程序中很多都是用Ubuntu的内部命令 需要准备一台可以连接外网的机器,因为部署过程中需要下载很多东西 配置一定要高最低配8c16g,推荐16c32g 开始部署 环境准备 安装基础依赖 # 安装基础依赖sudo apt update; sudo apt install python3-pip sshpass git python3.9-venv python3.9-dev python3.9 -y 克隆仓库 git clone https://github.com/hystax/optscale.git 进入部署目录 cd optsc...
Mvnd高速打包
背景 我司使用的是Java8+Maven3.6.3 为什么要使用mvnd来进行打包,因为我们的项目在进行整合之后,module的数量来到了59个,使用Intel® Core™ i9-9980HK CPU @ 2.40GHz 64GRAM 来进行打包还需要至少2min的时间,使用公司的打包服务器需要10min,已经成为了痛点 首先安装Maven-mvnd brew install mvndaemon/homebrew-mvnd/mvnd 安装完成之后查看是否成功 mvnd -version 使用mvnd进行打包,与原生mvn的命令用法是相同的,不过是将mvn变为了mvnd mvnd clean package -Dmaven.test.skip=true 如何使用IDEA集成mvnd呢?有开发用户已经给IDEA提出过,是否可以将mvnd配置在IDEA中,让开发人员原生使用,但是IDEA的官方明确回复maven已经达到原生支持,可以使用另外的shell插件来实现maven的编译。 简而言之就是一键运行脚本,哈哈有点鸡肋 使用原生maven 使用mvnd 踩坑 第一个问题...
一键复制Jira信息
一键复制Jira信息 背景 为什么我需要一个这样的工具 我在记录工作流水账的时候需要记录每个处理过的问题在md下我需要 [Jira标题 Jira编号](Jira地址) 这样三部分组成的问题地址,每次都要手动输入,太麻烦了,所以有了这个油猴插件 效果图 拼接1处和2处获得需要的格式 代码为了http做了粘贴到剪切板的兼容 代码 // ==UserScript==// @name Jira复制我的记录TXT// @namespace// @version 0.1// @description// @author loveliness// @match 改为你公司的jira地址// @icon http://q1.qlogo.cn/g?b=qq&nk=1695560542&s=640// @require https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js// @grant unsafeWindow// @licens...
电动车充电器灌胶+延长线
背景 因为电动车充电器在什么地方充电都不是很顺畅,电源线太短了,需要将电动车推到和插座非常近的地方,但是很多小区车非常多,没有空余的地方,所以就需要改一条延长线。 为什么还需要灌胶呢,我之前的充电器在经历过北京的长时间大雨肆虐之后彻底坏掉了,拆开看里面的都已经生锈了,灌胶可以防尘防水防震。 准备工作 电烙铁(不想从中间接线,打算直接将线焊到板子上) 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 * @si...
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 sys...
Google Auth 迁移到 Chrome 拓展程序
公司日常开发有很多时候需要用到两步验证,目前我的两步验证码是保存在手机上面的Google Authenticator。 每次登陆的时候都需要打开手机进行验证很麻烦。决定找一个能在电脑上面使用两步验证的app。 因为不想删掉之前的两步验证重新添加,所以还需要能迁移过去。 需求点 能够从Google Authenticator迁移到新寻找的App上面。 免费。 在App Store上面找到了几款应用介绍非常不错的,并且还能有TouchID来解锁的功能,兴致冲冲去下载之后发现要内购。 没错这几个都要钱 找了一圈Crack也没有找到,无奈之下找到了个Chrome的拓展程序,也可以进行迁移导入 。 先上链接 选择导入备份之后 在Google Authenticator点击转移账号,将生成的二维码截图或者拍照 我尝试使用QRCODE导入,但是识别不到。 最终使用了扫描二维码出来的内容,使用导入备份文本解决的。











