2024年12月个人工作生活总结
本文为 2024年12月工作生活总结。
研发编码
Golang语言byte数组赋值
假定有如下变量:
var strCode string
var bCode [9]byte
现需将string类型转换成byte类型,如下:
bCode = []byte(strCode)
无法转换,提示:
cannot use []byte(strCode) (value of type []byte) as [9]byte value in assignment
在golang中,[]byte
和[9]byte
是不同的类型。可用copy拷贝:
copy(inputStruct.Ets_code[:], []byte(input.Ets_code)[:9])
注意,copy第二个参数最好加上长度的限定。另外,也可用for循环单个字符赋值。
导出mysql数据表
使用mysqldump命令导出数据库表结构,命令:
mysqldump -h 172.18.8.18 -P 3306 -u my_name -p<密码> my_table --no-data > my_table.sql
或
mysqldump -u my_name -p<密码> my_table --no-data > my_table.sql
导入方法1:
mysql -u highway -p<密码> my_table < my_table.sql
导入方法2:
连接数据库
use mydb; # 选数据库
source /tmp/my_table.sql;
经测试,在TiDB数据库导入MySQL数据表时,只能用方法2,方法1行不通。
迁移gitlab仓库
据有关消息称,Gitlab 将停止为中国区用户提供服务,可将账号迁移至国内一家公司。有60天迁移期,过期可能删除账号,先不管其真或假,多个地方备份,总不会错。为此,专门抽了一些时间将先前的仓库同步到github上。
github提供import功能,但经测试不成功,因此只能先克隆再上传,命令如下:
克隆gitlab仓库:git clone https://gitlab.com/latelee/gitee-koa.git
进入目录:cd gitee-koa
在github上仓库创建同名仓库后,再添加:git remote add github git@github.com:latelee/gitee-koa.git
推送到远程仓库:git push github
十年前就开始使用gitlab了,当初看中的是其私有仓库,现在github也能建立私有仓库。不久前,github也提供了免费版本的copilot。可惜经常连不上,无法使用。
有关研发流程的思考
有感于当前的研发实情,流程方面还是没有形成,或者形成了但没有很好落实到位。目前没有专门的研发管理人员,流程也只是在文档中(有的没有)。如果团队磨合得很好,问题倒也不大,当然,在管理上肯定必须要有相关流程制度。
举例一些小事:
有的事务,虽然已经提过,但有时上游交付的东西不够详情,靠自己猜或用工具测试出来。这也是当初写工具的驱动力之一。因此,需要确定流程,并宣贯到位。
如微服务的版本迭代升级,因为有2套不同的环境,已经确定了版本先提交到内网仓库,再同步到专网仓库,最后更新到生产环境。此过程使用harbor管理镜像,因此版本有迹可寻,有时候出于调试需要,有的版本不走仓库,而是通过挂载方式运行程序。有时,测试通过后,就一直使用了。当后续有版本通过仓库更新时,因为用了挂载方式,版本并不是最新的。因此,需要确定流程,研发人员要清楚理解。
如前几年开会确立了由专人对接现场,整理问题,再转到研发,将问题分类好后,处理起来非常快,如有的是已知问题,有的已有解决方案的。如果不确定,转研发,再归档。这是好的,但没有执行到位。
如有的问题,起初,某现场已经报了,也提了方案了,但整改没有到位,一年后,其它现场依然陆续提出。比如,某版本号的显示问题,一年多前就陆续有不同的现场报了,再如今,还有现场打电话来问。比如,某个程序可以自动更新不同时间的版本,但偏偏默认起始时间为2020年,但部署时没修改,于是要花很久才轮到2024年年底,偏偏时间又紧急,占用网络带宽不说,影响现场就不好了。这2个问题很好解决,前者就是接口加上显示界面的事,后者在启动时将时间修改为当前前几天即可。这就需要有项目需求和问题的跟踪机制了。
当然,个人负责的事,还是要有责任心的。上述所述,或多或少是个人接触到的,因此会去思考,至于解决,就是相关方的事情。对于个人的程序,为方便起见,会额外加料,比如,将重要的实时日志,输出到http接口,直接用浏览器或curl即可查看,基于此,还会再添加重点模块的异常信息,以及系统资源监控,等等。这些都是为了方便自己而已。
当然,上面所述,是作为个人的我,站在个人岗位,所作的不成熟的个人思考。上层肯定有上层的设计和考量,比如看重创造的价值,而不是个人的努力;看重产品整体,而不是各模块个体。限于能力水平、制度和位置,个人是不敢越过的。但是,我在个人岗位,还是要求自己向较好的那一方发展,并影响一些人。
国产化系统适配
重新下载了新版本TiDB,编译了三大平台的版本。此过程还是比较麻烦和耗时的——这里的耗时包括查问题消耗,以及编译消耗。在编译过程中没有详细记录,后续还得再试一次,以便形成实操性较强的文档。
年底杂事
这几年每到年底,都会有很多事。版本切换,版本上新,需求变更,值班保稳定,等等。一些计划内的事就被中断了。比如,研究系统镜像livecd的自动安装;找系统依赖库源码编译测试,等等。起了头被中断,后面又得重新去梳理思路。
挑战和应战
有些时候,我喜欢挑战,有一种不服输的念头。
当年,有感于网络的开源精神,我也做了一些东西,或放到github,或发表文章。如今的网络环境,查点有用的资料,要会员,要积分,要钱。不过,有些(不涉及版权的)技术和代码,我还是坚持分享。
像做livecd,onvif等,虽说有一定的工作需求驱动,但还是凭借内心去做。或者说,有个东西暂时难倒我了,但要顶硬上,要克服它。比如现在国产化适配,就遇到龙芯编译环境问题,官方没有给出方案,但自己就想着去解决,往小了说,是不服输,往宏观上说,是为国产化事业推进贡献力量。
生活记录
教大锤英语的构思
这个月主要做的事有:
整理英语启蒙书的文本,并转换成音频,当前使用的软件不太满意,github上有,但要部署python,没有找到方便的,后续还要继续找。
慢慢教大锤一些单词,同时注意教他怎么拼。我的设想是按学拼音的法子教,音标和与拼音相近的读法,也一并教并做区别。
在B站看到一个视频,讲英语的2个基本句型,经分析,的确不错,也有意教给大锤。
后续计划去一些地方了解英语培训行情,把培训的花费转换内部使用。假定一学期培训要花1千块,则将其转化成小时花费,将钱给大锤或我自己。用这些钱去玩,去吃喝,不失为一件乐事。就怕大锤或其它人不认可作为老师角色的我,而一定要将钱给别人才放心。
目前的矛盾主要有:中文都不会学什么英语;学校作业没写完学什么英语。因此只求坚持,慢慢来就是最快的方法。
看电影
本月有部狮子王电影上映,带大锤去看了。去的那个电影院十分冷清,全场只有4位小朋友。两张普通版的电影票,加上大锤念念不忘的爆米花,花了100块钱,考虑到我现在的经济,看电影的成本还是比较高的。
关于大锤被打的事的看法
本月上旬某天,老师打电话,通篇听起来,是大锤感觉有同学“说”他,就推那人了。结果,那人的2个好友仔在教室继续和大锤“说”,期间不免动了手,老师那边的说法是“用手垂直碰了”。到了大锤妈妈那边的信息,上面的“说”变成了“骂”,“碰了”变成“打了”,变成有3个人打大锤。气不过,就打电话给几个对方家长,但人家不承认。我一向坚持实事求是,而且不是严重的事,我一般看开。
当年在幼儿园,看录像,是大锤咬了小朋友,但刚开始不知道实情,大锤妈妈看到大锤手红了,认为是互打,就在群里和人家家长对骂起来,最后还得向人家道歉。因为在同小区,这事过了几年,现在还在唠叨。
后来再次和老师通话,师方的意思和前面一致。我提出看录像,老师说没有(大锤妈妈说有,但老师不给看)。问了大锤,大锤说被打了手和打了脚,但他说这话的时候是嘻嘻哈哈的,我很难相信。同样,我也很难相信老师。只能和大锤说,只要人家不过分,不打骂你,就不用管,告诉老师和父母。只要成绩比人家好就行——当然这是奢望。但是,既然事实上的确出现了另外2个人帮忙欺负大锤,说明先前有过类似的(老师方说法是“有过2次小争执”),也说明以后还是会有。虽然老师承诺会注意,但这同样是奢望。
但是,这个事,在人家眼里,我就成为不保护孩子,不是好爸爸了。大锤妈妈气得2天睡不着,于是开始说这近十年的往事,从坐月子到上幼儿园到小学。我的精力主要还是在工作上,因为我坚信经济基础是养家的首要条件,不可能吃着咸菜萝卜谈风花雪月,如果工资不按时发,养不起家,月供还不了,我将被骂得更惨。我知道一个人挣钱辛苦,也知道一个人在家带娃不容易。道理都懂,但我只是一个年近40的普通人,一个靠写代码谋生的外包佬,而已。
当然,我看得开,姿态放得低,即便别人骂我不是人,我照单全收。
相关文章:
2024年12月个人工作生活总结
本文为 2024年12月工作生活总结。 研发编码 Golang语言byte数组赋值 假定有如下变量: var strCode string var bCode [9]byte现需将string类型转换成byte类型,如下: bCode []byte(strCode)无法转换,提示: cannot…...
[cg] android studio 无法调试cpp问题
折腾了好久,native cpp库无法调试问题,原因 下面的Deploy 需要选Apk from app bundle!! 另外就是指定Debug type为Dual,并在Symbol Directories 指定native cpp的so路径 UE项目调试: 使用Android Studio调试虚幻引擎Android项目…...
vulnhub靶场【warzone】之2
前言 靶机:warzone-1,IP地址192.168.1.71 攻击:kali,IP地址192.168.1.16 都采用虚拟机,网卡为桥接模式 主机发现 因为都是同一局域网下,相当于内网环境,所以使用下面的工具,若想…...
MySQL什么情况下会加间隙锁?
目录 一、使用范围条件查询 二、唯一索引的范围查询 三、普通索引的查询 四、间隙锁的锁定规则 五、间隙锁的影响 间隙锁(Gap Lock)是MySQL中的一种锁机制,主要用于防止幻读现象。在MySQL的InnoDB存储引擎中,当事务隔离级别设置为可重复读(Repeatable Read)时,间隙…...
REDIS2.0
string list hash set 无序集合 声明一个key,键里面的值是元素,元素的类型是string 元素的值是唯一的,不能重复 多个集合类型之间可以进行并集,交集,集查的运算 sadd test1 a b c c d :添加5个元素&am…...
Java方法使用详解:从基本概念到进阶技巧
1. 方法介绍 方法是执行特定功能的代码块,可以被多次调用。方法由方法头和方法体组成,方法头包括方法名、参数列表和返回类型。方法体包含实际执行的代码。 2. 无参无返回值方法使用 这种方法没有参数,也不返回任何值。常用于执行一些不需…...
RT-Thread中堆和栈怎么跟单片机内存相联系
现在RT-ThreadMCU的应用方式越来越普遍,RT-Thread需要配置MCU中的RAM到的系统中,进入系统内存管理,才能提供给基于实时系统的应用程序使用,比如给应用程序提供malloc、free等函数调用功能。在嵌入式软件开发中,我们经常…...
对jenkins的rpm进行处理
下载Jenkins RPM包 首先,你需要从Jenkins官方网站(https://pkg.jenkins.io/redhat - stable/)下载合适的RPM包。通常,对于CentOS等基于RPM的系统,可以选择jenkins - <version>.noarch.rpm这种格式的包࿰…...
从Huggingface中下载数据集、模型
报错: 可能原因: 1. 服务器网络连接 这样就显示没有问题 2.访问权限问题 3.连接超时 4.使用镜像 使用镜像的方法在autodl上是可以成功的,但是在一些服务器却不能成功,那么就需要我们下载到本地,然后再把本地的打包…...
设计模式的分类
根据概念性动机分3类设计模式 创建型模式:管理对象的创建。 常用的有单例模式,简单工厂模式,工厂方法模式,另外还有原型模式,抽象工厂模式,建造者模式 结构型模式:将已有对象加入到设计中时…...
【图像去噪】论文精读:DualDn: Dual-domain Denoising via Differentiable ISP
请先看【专栏介绍文章】:【图像去噪(Image Denoising)】关于【图像去噪】专栏的相关说明,包含适配人群、专栏简介、专栏亮点、阅读方法、定价理由、品质承诺、关于更新、去噪概述、文章目录、资料汇总、问题汇总(更新中) 文章目录 前言Abstract1 Introduction2 Related W…...
张量与数据类型
Pytorch最基本的操作对象——张量(tensor),张量是Pytorch中重要的数据结构,可认为是一个高维数组。一般的,标量(scalar)是只有大小没有方向的量,如1、2、3等;向量&#x…...
JavaScript概述
Web网页的三要素:HTML结构、CSS表现、JavaScript行为。 一、JavaScript语言的组成 JS的全称叫JavaScript,它一门面向对象的解释型弱类型语言。 JavaScript也是由3个部分来组成的:ECMAScript、DOM、BOM。 ECMAScript——它是JS的核心部分&a…...
tarjan算法——割边
今天也是小小的学了一个tarjan算法中的割边的一个应用 他和割点很像,都是用来处理无向图的,只不过是不能走反向边罢了 我们首先来说一个割边的定义 割边 当我们在无向图中删除一个边,无向图被分成不联通的两部分,那么这条边就…...
ESP32 I2S音频总线学习笔记(一):初识I2S通信与配置基础
文章目录 简介为什么需要I2S?关于音频信号采样率分辨率音频声道 怎样使用I2S传输音频?位时钟BCLK字时钟WS串行数据SD I2S传输模型I2S通信格式I2S格式左对齐格式右对齐格式 i2s基本配置i2s 底层API加载I2S驱动设置I2S使用的引脚I2S读取数据I2S发送数据卸载…...
Mybatisplus-IService
IService 是 MyBatis-Plus 提供的一个通用 Service 层接口,它封装了常见的 CRUD 操作,包括插入、删除、查询和分页等。通过继承 IService 接口,可以快速实现对数据库的基本操作,同时保持代码的简洁性和可维护性。 IService 接口中…...
深入浅出 Beam Search:自然语言处理中的高效搜索利器
Beam Search 技术详解 1. 引言 Beam Search 是一种广泛应用于自然语言处理(NLP)、机器翻译、语音识别等序列生成任务中的启发式搜索方法。本文将详细探讨 Beam Search 的原理、实现步骤、应用场景及其优缺点,并通过具体例子帮助读者更好地理…...
MySQL 可重复读隔离级别,完全解决幻读了吗?
什么是事务隔离级别? 事务隔离级别是数据库用来控制多个并发事务之间如何交互的机制。不同的隔离级别提供了不同程度的保护,以防止并发事务之间的相互干扰。MySQL 支持四种隔离级别: 读未提交(Read Uncommitted)&…...
Nginx知识详解(理论+实战更易懂)
目录 一、Nginx架构和安装 1.1 Nginx 概述 1.1.1 nginx介绍 1.1.2?Nginx 功能介绍 1.1.3?基础特性 1.1.4?Web 服务相关的功能 1.2?Nginx 架构和进程 1.2.1?Nginx 进程结构 1.2.2?Nginx 进程间通信 1.2.3?Nginx 启动和 HTTP 连接建立 1.2.4?HTTP 处理过程 1…...
VScode怎么重启
原文链接:【vscode】vscode重新启动 键盘按下 Ctrl Shift p 打开命令行,如下图: 输入Reload Window,如下图:...
华夏ERP系统部署
JDK安装及环境变量配置 数据库安装 Redis安装部署 Nginx安装部署 后端程序前端程序部署...
实际部署Dify可能遇到的问题:忘记密码、开启HTTPS、知识库文档上传的大小限制和数量限制
背景 前面我们以 docker compose 容器化的方式本地部署了 Dify 社区版,并快速体验了其聊天助手、工作量编排以及智能体(Agent)功能。不过后续实际生产环境使用时遇到了忘记密码、如何开启SSL以支持HTTPS、如何突破知识库文档上传的大小限制和…...
【C语言】库函数常见的陷阱与缺陷(三):内存分配函数[4]--free
C语言中的free函数用于释放之前通过malloc、calloc或realloc动态分配的内存。然而,在使用free函数时,开发者可能会遇到一些陷阱和缺陷。 一、功能与用法 free 函数是 C 语言中用于释放动态分配内存的关键函数。在程序使用 malloc、calloc 或 realloc 等函数在堆上分配了内存…...
【TypeScript篇】TypeScript命令行编译和自动化编译
目录 1. 命令行编译 步骤一:创建一个demo.ts文件 步骤二:全局安装TypeScript 步骤三:使用命令编译.ts文件 2. 自动化编译 步骤一:生成编译控制文件 步骤二:开启监视 3. 自动化编译的一些其它问题 1. 命令行编译…...
电子应用设计方案78:智能窗户系统设计
智能窗户系统设计 一、引言 智能窗户系统旨在为用户提供更便捷、舒适和节能的窗户控制体验,同时增强家居的安全性和智能化程度。 二、系统概述 1. 系统目标 - 实现窗户的自动开关控制,根据环境条件和用户设定进行操作。 - 具备风雨感应功能,…...
数据挖掘笔记 | 插值 | 拉格朗日插值 | 龙格现象 | 埃尔米特插值 | 分段三次埃尔米特插值
Interpolation插值 对于缺失值的处理,比较常见的是数值分析中的插值和拟合这两种方法。插值指的是在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点;拟合则是找到一条“最优”的曲线,尽可能地贴近平…...
Ubuntu网络配置(桥接模式, nat模式, host主机模式)
windows上安装了vmware虚拟机, vmware虚拟机上运行着ubuntu系统。windows与虚拟机可以通过三种方式进行通信。分别是桥接模式;nat模式;host模式 一、桥接模式 所谓桥接模式,也就是虚拟机与宿主机处于同一个网段, 宿主机…...
【Linux网络编程】第十七弹---深入理解以太网与ARP协议:从帧格式到数据报解析
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、认识以太网 1.1、以太网帧格式 1.2、认识 MAC 地址 1.3、对比理解 MAC 地址和 IP 地址 1.4、认识 MT…...
AVL 树
1.AVL树的概念 AVL树是最先发明的自平衡二叉查找树,AVL树可以是一棵空树,或者具有以下性质的树:左右子树都是AVL树。且左右子树的高度差的绝对值不超过1。 AVL树是一颗高度平衡搜索二叉树,通过控制高度去控制平衡。 AVL树的发明…...
PHP关键字Self、Static和parent的区别
简介 在使用PHP代码时,您可能经常会遇到parent::、static::和self::。但是当你第一次作为一个开发人员开始的时候,有时候你会很困惑,不知道它们是做什么的,以及它们之间的区别。 在我第一次作为开发人员开始工作后的很长一段时间…...
Vscode左大括号不另起一行、注释自动换行
参考大佬的博客VSCode 格式化 cpp 文件时配置左大括号不换行_vscode大括号不换行-CSDN博客 Clang_format_style {BasedOnStyle: Chromium, IndentWidth: 4}...
golang标准库archive/tar实现打包压缩及解压
文章目录 前言一、单个文件操作1.单个文件打包示例2.单个文件解包示例 二、目录示例1.打包压缩2.解包 补充 前言 这个包就是将文件进行打包和解包,通俗理解就是Linux 下的 tar 命令。 主要是通过 tar.Reader 读取 tar 包,通过 tar.Writer 写入 tar包&am…...
模方匀色功能中,加载的模板文件从哪里来
使用 DasViewerV3.1.2及以上版本导出的颜色调整文件 模方是一款针对实景三维模型的冗余碎片、水面残缺、道路不平、标牌破损、纹理拉伸模糊等共性问题研发的实景三维模型修复编辑软件。模方4.2新增内置“自动UV展开”功能,新增局部调色功能和DOM匀色功能等。同时可与…...
maya 删除 Ctrl + Delete vs Delete
在 Autodesk Maya 中删除选定顶点的步骤: 1. 选择顶点: 进入顶点选择模式: 按 F9 键(切换到顶点选择模式)。 或者,在工具栏中点击顶点选择图标(顶点模式)。 在视图中选择您想要删…...
为何String不可变,String的运算符重载
1.为何String不可变 java9之前,String的源码中是用字符数组实现的,同时使用了final和private修饰,被final修饰的结果就是变量不可修改、类不可继承、方法不可重写,被private修饰就无法对外暴露,这就是为何String不可变…...
WebRTC :原理、协议和应用场景
WebRTC(Web Real-Time Communication)是一种用于在Web浏览器和移动应用程序之间进行实时通信的开放标准。它通过将音频、视频和数据传输集成到Web浏览器中,使得实时通信变得简单且无需任何插件或第三方软件。 一、WebRTC 的原理 WebRTC的实…...
Windows FTP服务器搭建指南
在Windows上搭建FTP服务器可以通过以下步骤完成。这里以Windows 10为例,使用系统自带的IIS(Internet Information Services)来搭建FTP服务器。 步骤1:安装IIS和FTP服务器组件 打开“控制面板”: 按 Win R,…...
DP协议:Link层(二)
书接上文,内容多了难免会有一种知识点零碎感,但是坚持学下去,有一天你会发现已经不知不觉可以链接成一张知识网络了。 AUX提供的services 前面咱刚刚简单的认识了AUX CH的状态和仲裁,这次咱们接着聊聊AUX提供的services。 管理连接和设备:AUX CH就像是一个管家,负责找到…...
HAL 库 HAL_UARTEx_ReceiveToIdle_IT 函数解析
一、存在位置:stm32f1xx_hal_uart.c 二、具体代码 二、返回值:HAL_StatusTypeDef 通过查看返回值HAL_StatusTypeDef在stm32f1xx_hal_edf.h文件中定义为结构体类型。 status:(进展的)状况,情形 三、函数名…...
C++ 设计模式:职责链模式(Chain of Responsibility)
链接:C 设计模式 链接:C 设计模式 - 组合模式 职责链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它允许多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合。这些对象通过…...
数据库约束和查询
一 约束意义 这个后面的字段是什么意思呢? 先前说数据类型是一种约束,约束我们只能放该类型的数据,还有其它的约束来保证数据的合法性,下面的字段就和约束有关。 编译器的编译就是一个约束,保证我们的代码一定是语法合格的。我们…...
【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(二)
****非斜体正文为原文献内容(也包含笔者的补充),灰色块中是对文章细节的进一步详细解释! 3.1.2 基于注意力的解释(Attention-Based Explanation) 注意力机制可以揭示输入数据中各个部分之间的关系&#…...
AI大模型-提示工程学笔记1
卷首语:我所知的是我自己非常无知,所以我要不断学习。 写给AI入行比较晚的小白们(比如我自己)看的,大神可以直接路过无视了。 几个基本概念 1. 给LLM提示 用户可以通过简单的提示词(Prompts)…...
webrtc-internals调试工具
Google 的 Chrome(87 或更高版本)WebRTC 内部工具是一套内置于 Chrome 浏览器中的调试工具; webrtc-internals 能够查看有关视频和音频轨道、使用的编解码器以及流的一般质量的详细信息。这些知识对于解决音频和视频质量差的问题非常有帮助。 webrtc-int…...
百度PaddleSpeech识别大音频文件报错
一、背景 公司前同事留下了一套语音识别项目,内部使用百度PaddleSpeech。在项目验收的时候发现无法识别大音频文件,但是可以识别小音频文件。 这套项目是通过python调用的百度PaddleSpeech,然后提供了restful接口,然后java项目可…...
No.3十六届蓝桥杯备战|数据类型长度|sizeof|typedef|练习(C++)
数据类型⻓度 每⼀种数据类型都有⾃⼰的⻓度,使⽤不同的数据类型,能够创建出⻓度不同的变量,变量⻓度的不同,存储的数据范围就有所差异。 sizeof操作符 sizeof 是⼀个关键字,也是操作符,专⻔是⽤来计算特…...
MapReduce相关概念(自用)
MapReduce:分布式计算模型 MapReduce 是一种分布式计算模型,由 Google 在 2004 年提出,用于大规模数据集(TB 或 PB 级别)的分布式处理。它通过简单的编程模型,将复杂的分布式计算分解为两个基本阶段&#…...
Nginx - 整合lua 实现对POST请求的参数拦截校验(不使用Openresty)
文章目录 概述步骤 1: 安装 Nginx 和 Lua 模块步骤 2: 创建 Lua 脚本用于参数校验步骤 3: 配置 Nginx 使用 Lua 脚本写法二: 状态码写法三 : 返回自定义JSON复杂的正则校验 步骤 4: 测试和验证ngx.HTTP_* 枚举值 概述 一个不使用 OpenResty 的 Nginx 集…...
I2C(一):存储器模式:stm32作为主机对AT24C02写读数据
存储器模式:在HAL库中,I2C有专门对存储器外设设置的库函数 I2C(一):存储器模式的使用 1、I2C轮询式写读AT24C02一页数据2、I2C轮询式写读AT24C02多页数据3、I2C中断式写读AT24C02一页数据4、I2C使用DMA式写读AT24C02一…...
AI助手网站
chatgpt :https://chatgpt.com/ https://openai.com/index/chatgpt/ 百度ai助手 https://chat.baidu.com/ 百度AI助手https://chat.baidu.com/ 文心快码 文心快码BaiduComate 文心快码BaiduComate 文心快码BaiduComate有代码问题,问文…...