Flutter使用protobuf
本篇记录下 Flutter 使用 protobuf
安装Protoc这个不做赘述,直接搜索对应平台下载,配置环境变量
安装 protoc-gen-dart这个是 Dart 的 Protocol Buffers 插件 , 直接全局安装
1dart pub global activate protoc_plugin
然后查看实际路径
1dart pub global list
将对应路径配置环 ...
vscode无法将xxx识别为cmdlet问题
最近在 VSCode 上运行 Rust 项目 ,结果发现在工具内的命令终端无法运行 Cargo命令 , 而在外部打开的却可以. 这里记录下解决办法.
通常是命令终端权限不够的问题 , 可以右键程序->以管理员运行. 但是我这里这么操作后 VSCode 会报错启动不了 . 于是需要另寻他法. 这里转一个光影星宸博客 的解决办法.亲测有效
工作区的问题
先看看你当前的vscode是不是打开了 ...
ESP32 Arduino生产烧录
之前的文章 讲了如何烧录 ESP32 程序. 本篇讲一下如何生产烧录
通常生产使用的使用 , 固件都会有一个唯一ID , 我们这里叫序列号 (SN). 有多种方式可以烧录进去,这里主要讲两种方式
编译时注入这种方式是直接在运行脚本中注入一个唯一ID , 优点是一次注入,终身不变. 缺点是每次烧录都得走编译流程 , 虽然代码没有改变 , 但是还是会重新执行一次 , 速度略慢.
首先修改项目的 p ...
docker-compose安装Emqx问题补充
之前的文章 讲述了如何用 docker compose 部署 emqx 单节点 . 但是在实际试用中会遇到一些问题 ,这里做记录和优化.
问题记录1. 服务器重启后配置丢失
部署后服务可以正常运行 , 但是在服务器重启后 , Dashboard的账号密码 , 还有 API KEY都会丢失 , 重新设置才会生效 , 因此需要优化
__2. __若直接挂载目录,Emqx运行时会直接用到目录中一些配 ...
Docker Jenkins部署Golang项目
之前将 Java 项目在 Docker Jenkins 的参数化构建 . 本次记录下对于 Golang 项目的参数化构建部署
之前部署的方式是 拉取源码 -> build镜像 -> 推送镜像仓库 -> build容器 , 笔者这里起初也采用这种方式 , 但是发现在对 Golang 项目 go build 时服务器会 CPU 内存占用爆满构建失败 , 本台机器对 Java 项 ...
Arduino开发ESP32程序注意点
在重构嵌入式项目中使用了 PlatformIO 开发 Arduino ESP32 .相比于传统的用C语言开发 , 这里 Arduino ESP32 框架的 API 比较简洁 , 用 C++ 也可以更加面向对象编程 , 对于熟悉以往应用层软件的同学更好切入 . 这里记录下一些开发中遇到的细节点.
前言首先大致梳理下项目有哪些功能
蓝牙GATT
WiFI连接
MQTT
LCD TFT屏幕绘制
...
ESP32 PlatformIO固件烧录
最近在重构一款嵌入式项目 , 用 PlatformIO 开发 Arduino 的 ESP32 项目. 在这些嵌入式项目进入生产流程中 , 通常需要去批量烧录 , 这个时候需要去借用一些工具或者脚本去完成
本文大量参考【ESP32之旅】ESP32 PlatformIO 固件单独烧录
准备首先代码编译 , 若成功则会在 .pio/build/{开发板}/ 目录下生成对应的编译文 ...
acme申请更新Let's Encrypt证书
之前更新 Docker安装Let’sEncrypt SSL证书 文章 , 想通过 docker 来申请和更新证书一劳永逸 , 在初次申请完毕时执行更新只会提示过期时间未到 , 暂不用更新 , 可是当三个月证书即将到期时发现更新会报错 , 无法更新 . 如果在生产上解决这个问题就比较麻烦了 , 这里换成 docker 部署 acme 申请和更新 Let’s Encrypt 证书
安装 Dock ...
Goland Unresolved reference 错误解决
项目导包报错 unresolved reference ,程序却可运行 , 记录解决办法
1. 打开 Settings -> GOPATH -> 勾选 Index entire GOPATH
2. File -> Invalidate and Restart
3. 可能是大文件夹里有很多小项目, 直接打开小项目就不会报错了
参考链接https://blog.csdn.net/ ...
Golang viper多次调用OnConfigChange
问题:修改了一次,而执行了两次这个函数
把配置文件进行md5,保存其md5值。在调用这个函数时,再次读取文件进行md5。两者比对,如果相等就不执行下面的逻辑。
这样就解决了,一模一样的配置文件,保存多次,不会执行后续的逻辑。
但是,杜绝了大部分的场景,比如修改了一次,保存了两次,依旧会有看起来一模一样的配置,md5值不同
123456789101112131415161718192021222 ...