树莓派编程基础与硬件控制
1.编程语言
交互式编程是一种非常便利的 Python 编程方式,常用于程序测试的场景。首先通过任务栏打开树莓派的“终端”,在其中输入“python3”并回车即可进入 Python 3 的交互式编程环境用 Geany 编辑器编写 Python 程序虽然交互式编程环境可以很方便地输出语句的结果,但它并不能将大段的程序内容存储起来反复运行,因此只适用于程序测试的场景。绝大多数情形下,我们需要将完整的Python 程序存储为 .py 格式的文件,再调用它进行运行。可以使用任意的文本编辑器编写 Python 程序。我们在后续的课程中统一使用树莓派系统预装的轻量级文本编辑器 Geany 来编写 Python 程序。Geany 可在树莓派任务栏的开始菜单中选择“编程”找到。使用 Geany 编辑器的图标可以方便地进行文件的新建、打开、保存以及 Python 程序的运行操作打开 Geany 后,我们先新建一个空白文档,再单击文档→设置文件类型→脚本语言→ Python 源文件,将其设为 Python 程序文件
2.树莓派的 GPIO 接口
树莓派 3B+ 主控板可以通过上面的 40 个引脚连接电子设备输入或输出电信号。
3. 点亮一盏小灯
导入 Python 扩展包
要使用 Python 程序对 GPIO 连接的输入 / 输出设备进行控制,需要用到一个名为RPi.GPIO 的扩展包。在 Python 程序中,许多功能被写在了一些额外的官方或第三方扩展包中,可以通过如下两种方式导入扩展包。第一种方式为直接导入,后面的“as 自定义名称”可以不写。不写时,使用“扩展包名 . 包内的函数或变量名”的形式可以调用包内预先设定好的函数或变量。若设定了自定义名称,则使用“自定义名称 . 包内的函数或变量名”的形式调用。第二种导入方式则可以选择性导入包中设定的函数或变量,导入多个函数或变量时需使用逗号隔开。若使用“import *”则可导入包中的所有函数及变量。用这种方式导入扩展包时,我们可以直接用导入的函数或变量名来调用它们而不用再写包名。中除了 1~40 的编号外,每个 GPIO 引脚后面还有另一个编号。在 Python
程序中使用 GPIO 时,需要指定程序应该使用哪一种编号方式。其设定方法是:树莓派的所有 GPIO 口既可以连接输入设备,也可以连接输出设备,因此需要事先设
定其为输入模式还是输出模式:模式有两种:gpio.IN 代表这是一个输入设备,gpio.OUT 代表这是一个输出设备。例如,对 LED 连接的 GPIO 接口进行设定的完整程序如下: 设定 GPIO 接口输出高、低电平的语句为:电平状态只有两种:gpio.HIGH 代表高电平,gpio.LOW 代表低电平。为了让程序能控制小灯亮灭一段时间,需要引入 Python 中time 扩展包的 sleep 函数。 sleep 后的参数表示需等待的时间,单位为秒。
4.用按钮控制灯的状态
与 LED 模块类似,我们也要先设定按钮连接的 GPIO 接口的输入 / 输出状态。 我们可以通过一个简单的函数来读取接口的电平状态:这个函数可能得到两个返回值:gpio.HIGH(高电平)或 gpio.LOW(低电平)。我们可以通过判断按钮的电平状态来执行不同的操作。例如,在按钮被按下时将小灯点亮,否则将小灯熄灭。但是这个程序并不能真正实现预想的功能,因为这段程序仅仅在程序刚刚运行的一瞬间进行按钮按压状态的读取与判断。若要实现持续判断的功能,需要增加一个 while 循环结构。
4.1两个按钮的控制与逻辑运算符
将这个逻辑转化为程序:
但这样编写的程序看上去有一点复杂。在需要同时判断多个条件的真假时,我们可以通过逻辑运算符来处理它们的关系。逻辑运算符有 and(与)、or(或)、not(非)三种。与运算符 and:用 and 连接两个条件,当两个条件都为真时,返回真;有一个为假时,返回假。等同于我们常说的“并且”。或运算符 or:用 or连接两个条件,当两个条件有一个为真时,返回真;都为假时,返回假。等同于我们常说的“或者”。非运算符 not:在条件前加上 not,可以得到与条件真假相反的结果。等同于对条件加上了“不”字。上面程序的功能实质上是:按钮 1 被按下并且按钮 2 被按下时点亮小灯,否则熄灭小灯。所以可以利用逻辑运算符编写以下程序。
4.2抢答器的完整示例程序
5.机器视觉与图像识别
6.机器视觉技术的常见应用
1.相似图像搜索
2009—2010 年,谷歌、百度等搜索公司相继推出了以图搜图的图片搜索功能。这一功能可以分析图片上的特征信息,并从互联网上找到与该图片相似的图片。现在,各类手机购物 App 也可以以类似的原理实现拍摄商品照片,找到相似商品的功能。2.文字识别很多电子设备都可以使用 OCR(光学字符识别)技术识别纸质资料上的文字,目前较为成熟的 OCR 技术可以以较高的成功率读取手写文字。3.面部识别当前的智能手机上大多搭载了利用手机摄像头结合人工智能算法实现的面部识别功能。结合这一功能,智能手机可以以较高的安全性进行解锁、支付等操作。 除此以外,面部识别还被广泛应用于公共安全领域,不单可以在特定场所保护公共安全, 还可以帮助侦破刑事案件。4.目标检测人工智能图像识别的一个关键是识别图像中的物体并对它们进行分类。现在,随着人工神经网络技术的发展,我们可以更轻松地使用一些开源的神经网络工具“训练”AI 识别物体。图 5.8 所示为目标检测工具识别指定种类的物体。
7.认识 OpenCV
7.1OpenCV 简介
英特尔公司于 1999 年发起了一个以计算机图像处理为主题的开源程序库项目OpenCV(开源计算机视觉库),它已成为目前影响力最大 的一个开源计算机视觉库。OpenCV 在面部识别、手势识别、 目标识别、增强现实(AR)等问题上都能发挥重要的作用。 2009 年,OpenCV 发布了其第一个第二代正式版本。 自 2012 年起,一个专门的非营利组织负责 OpenCV 项目 的后续支持。OpenCV 2015 年发布其第三代,2018 年发 布到第四代。在我们后续的项目中,将使用目前应用最为广 泛的 OpenCV 第三代版本。 OpenCV 本体以 C++ 程序语言编写,但也提供了包括 Python 在内的其他编程语言的扩展接口。
视频的帧与分辨率
OpenCV 不单可以用于处理静态的图像信息,其很重要的一个目标是对实时的动态图像进行处理。我们可以运用摄像头来捕获动态的视频图像。摄像头的基本成像原理与数码相机完全相同,只不过它可以实时以较短的时间间隔连续获取图像信息。这些图像信息按时间顺序排列起来就组成了我们常说的视频。我们看到的视频实际上都是由若干张静态图片连续播放而成的。人类大脑的视觉系统会将连续播放的相似图片自动连接成连贯的影像。视频中每一张静态图片被称为视频的一帧(frame)。视频每秒输出的帧数量是一个很重要的指标,这被称为帧率(单位为帧 / 秒)。现在主流的视频帧率是 30 帧 / 秒或 60 帧 / 秒。 帧率越高,视频越流畅。一个视频中每一帧图像的像素排列是完全一致的。视频中每帧图片的横轴、纵轴像素的数量被称为视频的分辨率。以树莓派官方摄像头为例,该摄像头拍摄的图像横轴拥有 640个像素,而纵轴拥有 480 个像素,所以其分辨率为 640 像素 ×480 像素。橙色点所示,我们可以将每个像素定位到其在 x 轴(横轴)和 y 轴(纵轴)方向的位置,并标注为 ( x 坐标, y 坐标 )。视频的分辨率常以纵轴的像素数量来表示,例如标清视频为 480p,指的是纵轴有 480个像素。而高清视频为 720p,全高清视频为 1080p,4K 视频则为 2160p。标准视频的横纵像素比通常为 16 :9或4 :3。显然,分辨率越高,视频越清晰。
7.2opencv安装:
欲哭无泪555555555555555555,走了一天弯路,晕
结果在终端窗口输入sudo apt-get install -y libopencv-dev python3-opencv
sudo pip3 install numpy
输入python3验证
再import cv2没有报错就ok了
7.21用树莓派摄像头调取图像
使用 OpenCV 测试摄像头的完整程序如下。
运行程序后将在弹出的窗口中看到其拍摄到的实时画面。如果未能看到画面,请检查摄像头的连接。现在我们来分析一下这段程序代码的运作过程。OpenCV 可以使用 VideoCapture 读取视频。其后的括号中填写序号“0”将可以读取树莓派的默认摄像头信号。如果连接了其他摄像头,可以用其他序号来获取。此外,在这里填写视频存储地址,也可以直接读取树莓派系统中存储的视频。将读取视频的结果创建为 cap 后,使用 isOpened 函数可以返回其读取视频的结果。如果读取成功,则返回 True(真),否则返回 False(假)。因此,我们可以将它作为while 循环的条件实现循环读取视频信号。对 cap 使用 read 函数将返回视频中一帧的信息,这个函数存在两个返回值:该帧是否存在以及这一帧的具体信息。我们可以用形如 (ret, frame) = cap.read() 的格式将第一个返回值存为 ret,第二个返回值存为 frame。ret 在帧存在时为 True(真),否则为 False(假)。frame 则包含了这一帧中所有像素点的三原色值信息及其排列方式。OpenCV 读取的帧信息的每一个像素由三原色值按照B(蓝)、G(绿)、R(红)的顺序排列,每一个值的范围为 0(最暗)~255(最亮)。使用 imshow 函数可以将图像信息显示为一个窗口中的图像,其格式为:OpenCV 中使用 imshow 显示图像后必须使用一个 waitKey 函数。函数的参数值为以毫秒为单位的时间,表示在显示一帧后等待这些时间再继续。
8.用 OpenCV 识别颜色
8.1HSV 颜色空间
OpenCV 中有一个内置函数 cvtColor 可以方便地将图像信息从一个颜色空间转换到另一个颜色空间,例如:hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)这一语句可以将原本 BGR 颜色空间上的 frame 信息转换为 HSV 颜色空间并存储到hsv 中。需要注意的是,OpenCV 中 H 值的取值范围是 0~180,S 和 V 值则是 0~255。若将通常的 HSV 值代入 OpenCV 中分析,须先对 H、S、V 分别按比例转换。
我们常见的颜色都处于 HSV 颜色空间的某个范围内。图 5.15 所示为一些颜色的大致范围(按照 OpenCV 的取值范围)。
9.图像的二值化
9.1找到轮廓的位置
这里,我们传入的第一个参数“图像信息”是二值化的图像信息。第二个参数“输出模式”指定输出轮廓的类型,主要有以下 3 种类型。cv2.RETR_EXTERNAL:只输出外轮廓。cv2.RETR_LIST:输出所有轮廓。cv2.RETR_TREE:输出所有轮廓,并输出轮廓间的包含关系。第三个参数“输出方法”指的则是输出的轮廓信息所包含的内容,主要有以下两种输出方法。cv2.CHAIN_APPROX_SIMPLE:只输出拐角点的坐标。cv2.CHAIN_APPROX_NONE:输出所有连续点的坐标
- 将图像进行二值化并寻找外轮廓的完整代码如下
我们首先将图像按照设定的颜色区间转换为二值化图像信息,并用
相关文章:
树莓派编程基础与硬件控制
1.编程语言 Python 是一种泛用型的编程语言,可以用于大量场景的程序开发中。根据基于谷歌搜 索指数的 PYPL(程序语言流行指数)统计,Python 是 2019 年 2 月全球范围内最为流行 的编程语言 相比传统的 C、Java 等编程语言&#x…...
autojs通过正则表达式获取带有数字的text内容
视频连接 视频连接 参考 参考 var ctextMatches(/\d/).findOne()console.log("当前金币"c.text()) // 获取当前金币UiSelector.textMatches(reg) reg {string} | {Regex} 要满足的正则表达式。 为当前选择器附加控件"text需要满足正则表达式reg"的条件。 …...
Android java基础_类的继承
一.Android Java基础_类的继承 先封装一个persion类,在persion的基础上定义Student类,并基础persion类。 子类能访问父类的成员函数。 class Person {private int age;public void setAge(int age) {if (age < 0 || age > 200)age 0;else {thi…...
nginx stream proxy 模块的ssl连接源码分析
目录 1. 源起2. 分析验证环境的配置3. 源码分析3.1 代理模块的请求入口点分析3.2 发起与上游服务器的连接3.3 连接回调3.4 TCP连接建立成功后为上下游数据透传做准备3.5 TCP连接的ssl上下文初始化3.6 ssl握手成功后的处理3.7 连接数据的收与发1. 源起 我一直来对ssl建立连接的过…...
C#面:Static Nested Class 和 Inner Class 有什么不同
这是两种不同的类嵌套方式。 Static Nested Class : 是一个静态嵌套类,它是在外部类中定义的一个静态类。它可以访问外部类的静态成员和方法,但不能直接访问外部类的非静态成员和方法。静态嵌套类可以独立于外部类实例化,即可以…...
LeetCode、208. 实现 Trie (前缀树)【中等,自定义数据结构】
文章目录 前言LeetCode、208. 实现 Trie (前缀树)【中等,自定义数据结构】题目链接与分类思路 资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术领…...
java数据结构与算法刷题-----LeetCode151. 反转字符串中的单词
java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 解题思路 这道题,可以理解为,将字符串颠倒…...
《Java 简易速速上手小册》第8章:Java 性能优化(2024 最新版)
文章目录 8.1 性能评估工具 - 你的性能探测仪8.1.1 基础知识8.1.2 重点案例:使用 VisualVM 监控应用性能8.1.3 拓展案例 1:使用 JProfiler 分析内存泄漏8.1.4 拓展案例 2:使用 Gatling 进行 Web 应用压力测试 8.2 JVM 调优 - 魔法引擎的调校8…...
mysql全国省市县三级联动创表sql(一)
1. 建表sql CREATE TABLE province (id VARCHAR ( 32 ) PRIMARY KEY COMMENT 主键,code CHAR ( 6 ) NOT NULL COMMENT 省份编码,name VARCHAR ( 40 ) NOT NULL COMMENT 省份名称 ) COMMENT 省份信息表;CREATE TABLE city (id VARCHAR ( 32 ) PRIMARY KEY COMMENT 主键,code …...
go面试题--使用两个goroutine交替打印数字与字母
使用两个goroutine交替打印数字与字母 题目如下: 使用两个goroutine交替打印序列,一个goroutine打印数字,另外一个goroutine打印字母,最终效果如下: 12AB34CD56EF78GH910IZ1112KL1314MN1516OP1718QR1920ST2122UV2324W…...
DolphinScheduler-3.2.0 集群搭建
目录 一、基础环境准备 1.1 组件下载地址 1.2 前置准备工作 二、 DolphinScheduler集群部署 2.1 解压安装包 2.2 配置数据库 2.3 准备 DolphinScheduler 启动环境 2.3.1 配置用户免密及权限 2.3.2 配置机器 SSH 免密登陆 2.3.3 启动 zookeeper集群 2.3.4 修改instal…...
07:Kubectl 命令详解|K8S资源对象管理|K8S集群管理(重难点)
Kubectl 命令详解|K8S资源对象管理|K8S集群管理 kubectl管理命令kubectl get 查询资源常用的排错命令kubectl run 创建容器 POD原理pod的生命周期 k8s资源对象管理资源文件使用资源文件管理对象Pod资源文件deploy资源文件 集群调度的规则扩容与缩减集群更…...
【设计模式】springboot3项目整合模板方法深入理解设计模式之模板方法(Template Method)
🎉🎉欢迎光临🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟特别推荐给大家我的最新专栏《Spring 狂野之旅:底层原理高级进阶》 🚀…...
Windows搭建docker+k8s
安装Docker Desktop 从官网下载,然后直接安装即可,过程很简单,一直Next就行。 有一点需要注意就是要看好对应的版本,因为后边涉及到版本的问题。 https://www.docker.com/products/docker-desktop 安装完成,双击图…...
年假作业10
一、选择题 BBDBACCCAD 二、填空题 1,4,13,40 3715 358 5 2 6 1 5 4 8 2 0 2 三、编程题 1、 #include <iostream> #include<array> #include <limits> using namespace std; int main() {array<int,10> score;array<int,10>::iterat…...
[ai笔记4] 将AI工具场景化,应用于生活和工作
欢迎来到文思源想的AI空间,这是技术老兵重学ai以及成长思考的第4篇分享内容! 转眼已经到了大年初三,但是拜年的任务还只完成了一半,准备的大部头的书,现在也就看了两本,还好AI笔记通过每天早起坚持了下来。…...
【生产实测可用】Redis修改集群弱口令
起因 漏扫redis连接发现弱口令需要修改 先连上去看看是空口令还是弱口令 redis-cli -p 6379 -h a.b.c.d info sentinel找到启动服务器的配置文件 cp -av /app/redis-7001/redis.conf /app/redis-7001/redis.conf.bak20240207 echo "requirepass 口令" >>/a…...
备战蓝桥杯---图论基础理论
图的存储: 1.邻接矩阵: 我们用map[i][j]表示i--->j的边权 2.用vector数组(在搜索专题的游戏一题中应用过) 3.用邻接表: 下面是用链表实现的基本功能的代码: #include<bits/stdc.h> using nam…...
[office] excel2003进行可视性加密的方法 #媒体#其他#知识分享
excel2003进行可视性加密的方法 Excel如何对重要文件进行可视性的加密处理呢?下面是小编带来的关于excel2003进行可视性加密的方法,希望阅读过后对你有所启发! excel2003进行可视性加密的方法: 可视性加密步骤1:打开你要加密的excel2003文档…...
算法沉淀——分治算法(leetcode真题剖析)
算法沉淀——分治算法 快排思想01.颜色分类02.排序数组03.数组中的第K个最大元素04.库存管理 III 归并思想01.排序数组02.交易逆序对的总数03.计算右侧小于当前元素的个数04.翻转对 分治算法是一种解决问题的算法范式,其核心思想是将一个大问题分解成若干个小问题&a…...
Qt 进程守护程序
Qt 进程守护程序 简单粗暴的监控,方法可整合到其他代码。 一、windows环境下 1、进程查询函数 processCount函数用于查询系统所有运行的进程中该进程运行的数量,比如启动了5个A进程,该函数查询返回的结果就为5。 windows下使用了API接口查询…...
Linux_文件系统
假定外部存储设备为磁盘,文件如果没有被使用,那么它静静躺在磁盘上,如果它被使用,则文件将被加载进内存中。故此,可以将文件分为内存文件和磁盘文件。 内存文件 磁盘文件 软、硬链接 一.内存文件 1.1 c语言的文件接口 …...
算法沉淀——链表(leetcode真题剖析)
算法沉淀——链表 01.两数相加02.两两交换链表中的节点03.重排链表04.合并 K 个升序链表05.K个一组翻转链表 链表常用技巧 1、画图->直观形象、便于理解 2、引入虚拟"头节点" 3、要学会定义辅助节点(比如双向链表的节点插入) 4、快慢双指针…...
Flink从入门到实践(一):Flink入门、Flink部署
文章目录 系列文章索引一、快速上手1、导包2、求词频demo(1)要读取的数据(2)demo1:批处理(离线处理)(3)demo2 - lambda优化:批处理(离线处理&…...
python分离字符串 2022年12月青少年电子学会等级考试 中小学生python编程等级考试二级真题答案解析
目录 python分离字符串 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python分离字符串 2022年12月 python编程等级考试级编程题 一、题目要…...
Excel练习:折线图突出最大最小值
Excel练习:折线图突出最大最小值 要点:NA值在折现图中不会被绘制,看似一条线,实际是三条线。换成0值和""都不行。 查看所有已分享Excel文件-阿里云 学习的这个视频:Excel折线图,…...
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之MenuItem组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之MenuItem组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、MenuItem组件 用来展示菜单Menu中具体的item菜单项。 子组件 无。 接口 Men…...
Mockito测试框架中的方法详解
这里写目录标题 第一章、模拟对象1.1)①mock()方法:1.2)②spy()方法: 第二章、模拟对象行为2.1)模拟方法调用①when()方法 2.2)模拟返回值②thenReturn(要返回的值)③doReturn() 2.3)模拟并替换…...
Atcoder ABC339 A - TLD
TLD 时间限制:2s 内存限制:1024MB 【原题地址】 所有图片源自Atcoder,题目译文源自脚本Atcoder Better! 点击此处跳转至原题 【问题描述】 【输入格式】 【输出格式】 【样例1】 【样例输入1】 atcoder.jp【样例输出1】 jp【样例说明…...
企业级DevOps实战
第1章 Zookeeper服务及MQ服务 Zookeeper(动物管理员)是一个开源的分布式协调服务,目前由Apache进行维护。 MQ概念 MQ(消息队列)是一种应用程序之间的通信方法,应用程序通过读写出入队列的消息࿰…...
C++中的new和delete
1.new和delete的语法 我们知道C语言的内存管理方式是malloc、calloc、realloc和free,而我们的C中除了可以使用这些方式之外还可以选择使用new和delete来进行内存管理。 new和delete的主要语法如下 从上面的代码我们只能知道new要比malloc好写一些,但是其…...
rtt设备io框架面向对象学习-dac设备
目录 1.dac设备基类2.dac设备基类的子类3.初始化/构造流程3.1设备驱动层3.2 设备驱动框架层3.3 设备io管理层 4.总结5.使用 1.dac设备基类 此层处于设备驱动框架层。也是抽象类。 在/ components / drivers / include / drivers 下的dac.h定义了如下dac设备基类 struct rt_da…...
腾讯云幻兽帕鲁服务器配置怎么选择合适?
腾讯云幻兽帕鲁服务器配置怎么选?根据玩家数量选择CPU内存配置,4到8人选择4核16G、10到20人玩家选择8核32G、2到4人选择4核8G、32人选择16核64G配置,腾讯云百科txybk.com来详细说下腾讯云幻兽帕鲁专用服务器CPU内存带宽配置选择方法ÿ…...
796. 子矩阵的和
Problem: 796. 子矩阵的和 文章目录 思路解题方法复杂度Code 思路 这是一个二维前缀和的问题。二维前缀和的主要思想是预处理出一个二维数组,使得每个位置(i, j)上的值表示原数组中从(0, 0)到(i, j)形成的子矩阵中所有元素的和。这样,对于任意的子矩阵(x…...
如何在 Python 中处理 Unicode
介绍 Unicode 是世界上大多数计算机的标准字符编码。它确保文本(包括字母、符号、表情符号,甚至控制字符)在不同设备、平台和数字文档中显示一致,无论使用的操作系统或软件是什么。它是互联网和计算机行业的重要组成部分…...
CSDN文章导出PDF整理状况一览
最近CSDN有了导出文章PDF功能,导出的PDF还可以查询, 因此,把文章导出PDF,备份一下自己的重要资料。 目前整理内容如下 No.文章标题整理时间整理之后 文章更新Size (M)10001_本地电脑-开发相关软件保持位…...
jmeter-05变量(用户定义变量,用户参数,csv文档参数化)
文章目录 一、jmeter有三种变量二、用户定义变量(这个更多的可以理解为全局变量)1、设置2、引用三、用户参数(可以理解为局部变量)1、设置2、引用3、用户参数化要配合线程组的线程数使用4、结果五、csv文档参数1、创建csv文件2、设置2、引用csv文件可以配合线程组的线程数,…...
CSS之水平垂直居中
如何实现一个div的水平垂直居中 <div class"content-wrapper"><div class"content">content</div></div>flex布局 .content-wrapper {width: 400px;height: 400px;background-color: lightskyblue;display: flex;justify-content:…...
2.8日学习打卡----初学RabbitMQ(三)
2.8日学习打卡 一.springboot整合RabbitMQ 之前我们使用原生JAVA操作RabbitMQ较为繁琐,接下来我们使用 SpringBoot整合RabbitMQ,简化代码编写 创建SpringBoot项目,引入RabbitMQ起步依赖 <!-- RabbitMQ起步依赖 --> <dependency&g…...
Unity学习笔记(零基础到就业)|Chapter02:C#基础
Unity学习笔记(零基础到就业)|Chapter02:C#基础 前言一、复杂数据(变量)类型part01:枚举数组1.特点2.枚举(1)基本概念(2)申明枚举变量(3ÿ…...
容器化的基础概念:不可变基础设施解释:将服务器视为乐高积木,而非橡皮泥。
不可变基础设施解释:将服务器视为乐高积木,而非橡皮泥。 想象一下用乐高积木代替橡皮泥进行搭建。使用橡皮泥时,您可以直接塑形和改变它。而使用乐高积木,您需要逐个零件搭建特定结构,并在需要时整体替换它们。这就是…...
智胜未来,新时代IT技术人风口攻略-第二版(弃稿)
文章目录 抛砖引玉 鸿蒙生态小科普焦虑之下 理想要落到实处校园鼎力 鸿蒙发展不可挡培训入场 机构急于吃红利企业布局 鸿蒙应用规划动智胜未来 技术人风口来临 鸿蒙已经成为行业的焦点,未来的发展潜力无限。作为一名程序员兼UP主,我非常荣幸地接受了邀请…...
Git分支和迭代流程
Git分支 feature分支:功能分支 dev分支:开发分支 test分支:测试分支 master分支:生产环境分支 hotfix分支:bug修复分支。从master拉取,修复并测试完成merge回master和dev。 某些团队可能还会有 reale…...
数据库管理-第150期 Oracle Vector DB AI-02(20240212)
数据库管理150期 2024-02-12 数据库管理-第150期 Oracle Vector DB & AI-02(20240212)1 LLM2 LLM面临的挑战3 RAG4 向量数据库LLM总结 数据库管理-第150期 Oracle Vector DB & AI-02(20240212) 作者:胖头鱼的鱼…...
MySQL双写机制
双写机制 问题的出现 在发生数据库宕机时,可能Innodb正在写入某个页到表中,但是这个页只写了一部分,这种情况被称为部分写失效,虽然innodb会先写重做日志,在修改页,但是重做日志中记录的是对页的物理操作,但…...
uniapp的配置和使用
①安装环境和编辑器 注册小程序账号 微信开发者工具下载 uniapp 官网 HbuilderX 下载 首先先下载Hbuilder和微信开发者工具 (都是傻瓜式安装),然后注册小程序账号: 拿到appid: ②简单通过demo使用微信开发者工具和…...
【ES】--Elasticsearch的分词器深度研究
目录 一、问题描述及分析二、analyze分析器原理三、 multi-fields字段支持多场景搜索(如同时简繁体、拼音等)1、ts_match_analyzer配置分词2、ts_match_all_analyzer配置分词3、ts_match_1_analyzer配置分词4、ts_match_2_analyzer配置分词5、ts_match_3_analyzer配置分词6、ts…...
【Langchain Agent研究】SalesGPT项目介绍(三)
【Langchain Agent研究】SalesGPT项目介绍(二)-CSDN博客 上节课,我们介绍了salesGPT项目的初步的整体结构,poetry脚手架工具和里面的run.py。在run.py这个运行文件里,引用的最主要的类就是SalesGPT类,今天我…...
Java安全 URLDNS链分析
Java安全 URLDNS链分析 什么是URLDNS链URLDNS链分析调用链路HashMap类分析URL类分析 exp编写思路整理初步expexp改进最终exp 什么是URLDNS链 URLDNS链是Java安全中比较简单的一条利用链,无需使用任何第三方库,全依靠Java内置的一些类实现,但…...
【网站项目】026校园美食交流系统
🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板ÿ…...