ROS:move_base路径规划介绍、更换全局路径规划算法(A star、Dijkstra、DWA,测试当前是哪种算法,效果展示图)

前提:需要安装navigation包,才可以运行move_base。 move_base包默认算法: 全局路径规划:Dijkstra;局部路径规划:航迹推算; 一.move_base路径规划包内容 二.更换全局路径规划算法(A*、Dijkstra、DWA) A*、Dijkstra属于全局路径规划、DWA属于局部路径规划。 1、move_base.launch move_base.launch文件需要添加以下内容: <!--加载A star、Dijkstra算法--> <param name="base_global_planner" value="global_planner/GlobalPlanner"/> <param name="planner_frequency" value="1.0" /> <param name="planner_patience" value="5.0" /> <!--加载DWA算法--> <param name="base_local_planner" value="dwa_local_planner/DWAPlannerROS" /> 整体的move_base.launch文件内容如下(其中turtlebot3_navigation内容需要修改为对应自己的包): <launch> <!-- Arguments --> <arg name="model" default="$(env TURTLEBOT3_MODEL)" doc="model type [burger, waffle, waffle_pi]"/> <arg name="cmd_vel_topic" default="/cmd_vel" /> <arg name="odom_topic" default="odom" /> <arg name="move_forward_only" default="false"/> <!-- move_base --> <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen"> <!--加载A star算法--> <param name="base_global_planner" value="global_planner/GlobalPlanner"/> <param name="planner_frequency" value="1.0" /> <param name="

使用Gradio搭建Stable Diffusion模型生成图像:简单快捷的图像生成体验

目录 0 开发环境 1 介绍 1.1 Gradio简介 1.2 Stable Diffusion模型简介 2 使用Gradio搭建基本界面 2.1 安装依赖库 2.2 加载预训练模型 2.3 解析返回的数据 2.4 构建图像字幕应用程序 3 实现Stable Diffusion图像生成 3.1 Stable Diffusion模型解析 3.2 将SD模型集成到Gradio应用中 3.2.1 本地加载 3.2.1.1 安装所需依赖库 3.2.1.2 加载模型 3.2.1.3 初试SD模型生成图像 3.2.1.4 正式搭建 3.2.1.5 界面美化 3.2.2 API 加载 4 总结 0 开发环境 作者:嘟粥yyds 时间:2023年7月31日 集成开发工具:Google Colab和PyCharm Professional 2021.1 集成开发环境:python3.10.6 第三方库:gradio、diffusers、transformers、torch、IPython、PIL、sentencepiece 1 介绍 1.1 Gradio简介 在现代的机器学习和深度学习领域,许多强大的模型被开发用于解决各种问题,例如图像生成、语言处理、文本分类等。然而,将这些复杂的模型转化为实际可用的应用并不是一件容易的事情。传统上,部署机器学习模型需要繁琐的工程和编程技能,限制了许多非技术专家无法享受这些强大模型的优势。 Gradio的出现为解决这个问题带来了一种简单而高效的解决方案。Gradio是由Rafael Gómez和Alexandre Passant开发的开源Python库,其目标是使机器学习模型的部署和使用变得简单易行。Gradio允许用户通过简单的代码,将训练好的机器学习模型转化为交互式应用程序,无需编写大量的前端代码或设计复杂的界面。这使得任何人都可以通过几步简单的操作,使用和探索机器学习模型的功能,而无需深入了解算法的细节。 1.2 Stable Diffusion模型简介 稳定扩散生成模型(Stable Diffusion)是一种潜在的文本到图像扩散模型,能够在给定任何文本输入的情况下生成照片般逼真的图像Stable Diffusion 是基于latent-diffusion 并与 Stability AI 和Runway合作实现的。

足够详细的java邮件发送功能(基于QQ邮箱,包含踩过的坑及解决办法!!)

文章目录 写在前面一、准备工作1) 需求分析2)邮箱的准备工作(正文开始!!!) 二、代码部分1)添加邮件依赖包2)方法实现 三、开发踩坑报错一报错二报错三 四、功能拓展 写在前面 由于公司最近有业务需求,需要实现批量发送邮件到指定邮箱的功能,就写了一个小的工具类,开发过程中经历了踩坑然后优化,感觉这个功能还是有些细节还是要注意的,值得写文记录一下,有在开发中碰到相同问题的各位朋友可以参考一下,希望对各位能有所帮助! 一、准备工作 1) 需求分析 公司开展业务 ——> 客户提出需求 ——> 产品拆解需求 ——> 领导安排开发 ——> 码农负责搬砖 程序员的工作内容大抵是如此产生的,当我们是个小码农的时候还不会过多关注诸如需求是如何产生的、开发框架为什么要这样设计等问题,而是更多地着眼于当下,想办法使用各种工具完成自己的模块开发任务,这个过程难免会因为没有吃透需求被测试打回重做;但随着对公司业务的深入理解、对开发流程的不断熟悉以及综合能力的逐渐提升,我们慢慢地对需求也有了自己的理解,学会了从用户角度理解需求,也会慢慢重视自己写出来的代码,使得代码更为精简且优雅。 像这样,由最初的单纯为了实现某个功能点,到后来明白需求决定了代码、代码服务于需求,也知道了重视代码质量,这大概也是我们作为开发必须经历的一种成长吧! sorry,扯远了,言归正传,这个业务需求无非是想在平台触发某个条件的同时用邮件通知到相关人员,而想要实现发送邮件的功能,我们需要满足以下必要条件: 1. 邮件收发平台 顾名思义,就是提供了接口让我们能接入收发邮件功能的一些平台,大家比较熟悉的有: 1、QQ邮箱,@qq.com 2、网易邮箱,@163.com或@126.com 3、新浪邮箱,@sina.cn 4、139邮箱,@139.com 5、谷歌邮箱,@gmail.com … 还有可能不太熟悉的:tom邮箱(TOM集团公司推出)、Outlook(微软旗下)等。 怎么选??? 首先,我们知道邮件发送是需要协议的(→关于邮件协议方面的知识可以参考这篇博文←),有: POP3(拉):邮局协议3,特点是用户可以将服务器上的邮件保存至本地并且可以删除服务器上的邮件,主要用来从服务器上收邮件; SMTP(推):简单邮件传输协议,特点是只有提供了账户名和密码之后才可登录 SMTP 服务器,避免收到垃圾邮件,安全性高; IMAP(拉):交互式邮件存取协议; MIME(推):多用途网际邮件扩充协议; ... 其次,我们要从实际需求出发,确定自己的邮件协议类型,比如我的业务是发送文本信息到其他邮箱,起到通知的作用,这用SMTP协议就能实现,那就是它。 至于选择哪家的接口,这个要看公司的选择了,由于我公司运维甩给我的是公司的QQ邮箱,因此本文是围绕QQ邮箱展开的。 2. 邮件发送方 也就是邮件的发件人 3. 邮件内容 邮件的正文内容,可以是纯文本,也可以添加包含图片、文档、音视频等格式的附件,这个要看有没有添加附件的需求,也要看当前所选邮箱在这方面的限制(主要是指附件内容格式限制、文件大小限制等)。 4. 邮件接收方 目标邮箱地址,你希望谁收到邮件 2)邮箱的准备工作(正文开始!!!) 获取邮箱授权码 我们要准备好邮箱的授权码(一般是16位)(授权码是QQ邮箱用于登录第三方客户端的专用密码,适用于登录以下服务:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务),授权码仅用于邮件客户端登录,而不能登录你的邮箱网页后台管理端,还是考虑到安全问题,即使泄露授权码,对方也无法登录网易或腾讯系统账号后台,这样影响也相对较小,从而保证邮箱的安全。 ① 用账号密码登录QQ邮箱,然后按图配置 ② 通过短信验证然后得到邮箱授权码,在后面会用到。 ③ 下图这里可以看到已经开启 二、代码部分 1)添加邮件依赖包 将下面的依赖包添加到你的pom文件中 <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency> maven坐标:https://mvnrepository.

超详细 mysql 主键索引、唯一索引、普通索引、联合索引的区别与实例说明

文章目录 前言(1)功能区别1 主键索引2 唯一索引3 普通索引4 联合索引 (2)使用条件1 索引列的数值2 数据类型选择3 数据表复杂且量大 (3)索引实例1 创建索引(alter | create)2 删除索引3 查询效果(a) explain 字段说明(b) 索引实例 (4)失效场景1 创建索引失败2 索引不生效 前言 我们很多项目都有可能会使用到mysql,当遇到表格数据量很庞大时,导致慢查询,查询效率就会特别低。 这时往往会采用索引来提高查询效率,但是盲目使用索引则极有可能达不到期望的效果。 因此,我们需要先理解,索引的功能区别,与使用索引的条件,以及索引的失效场景。 (1)功能区别 1 主键索引 主键也是一种索引,且是我们最常用的索引,使用方法为`primary key(ColumnList)`。 一张表只允许一个主键索引,且主键列的值不允许重复,不允许为空`NULL`。 2 唯一索引 使用方法是`unique index IndexName(ColumnList)`。 一张表格可以有多个唯一索引,唯一索引列的值不允许重复,但允许为空`NULL`。 3 普通索引 使用方式为`index IndexName(ColumnList)` 一张表格可以有多个普通索引,普通索引列的值允许重复,允许为空`NULL`。 4 联合索引 实际上,所有的索引都可以由多个字段列创建,这就叫联合索引。 但联合索引的功能区别也跟单列索引的功能区别一致。 (2)使用条件 1 索引列的数值 索引列、或者组成索引列的数值尽可能唯一。 唯一的数值索引,在查询的时候可以更快的定位数据记录。 2 数据类型选择 整型(int)的索引列查询效率要比字符串(char、varchar、text)高。 3 数据表复杂且量大 索引的创建会对应维护一张索引表,因此在采用索引时候应该是因为数据表复杂且量大。 (3)索引实例 1 创建索引(alter | create) 2 删除索引 3 查询效果 (a) explain 字段说明 标识符explain,常被我们用于测试操作语句效率情况。其中需要额外注意的是这些字段:

Redis—相关背景

Redis—相关背景 🔎Redis—特性In-memory data structures—在内存中存储数据Programmability—可编程性Extensibility—可扩展性Persistence—持久化Clustering—集群High availability—高可用 🔎Redis 为什么快🔎Redis 的使用场景Real-time data store—实时数据存储Caching—缓存session storage—会话存储Streaming&messaging—消息队列 Redis官网 🔎Redis—特性 MySQL 主要是通过 “表” 的方式组织存储数据 → 关系型数据库 Redis 主要是通过 “键值对” 的方式组织存储数据 → 非关系型数据库 In-memory data structures—在内存中存储数据 在内存中存储数据 Redis 通过键值对方式组织存储数据 其中 key 都是 string 类型, value 可以是 strings, hashes, lists, sets, sorted sets, streams… Programmability—可编程性 可编程性 针对 Redis 的操作 可直接通过简单的交互式命令进行操作 也可以通过一些脚本的方式批量执行一些操作 Extensibility—可扩展性 可扩展性 可以在 Redis 原有的功能基础上进行扩展(通过 C, C++, Rust 进行扩展) Persistence—持久化 持久化 Redis 为了能够快速访问, 将数据存储至内存中 内存中的数据是易丢失的(进程退出, 系统重启…) 因此 Redis 也会将数据存储至硬盘(硬盘中的数据相当于是对内存的数据进行备份) → 持久化

Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content type ‘application/x-ww

这个错误提示 Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported 表明服务器不支持接收 application/x-www-form-urlencoded 类型的数据。 如果你的服务器端代码是使用Spring框架编写的,你可以尝试改为接收 application/json 类型的数据。 import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @RestController public class YourController { @PostMapping("/your-endpoint") public String handlePostRequest(@RequestBody YourDataClass data) { // 处理请求的代码 // 使用 @RequestBody 注解将请求体的 JSON 数据映射到 YourDataClass 对象 // 返回响应数据 return "Success"; } } 在上面的示例中,YourController 是一个Spring控制器,使用 @PostMapping 注解指定了处理POST请求的方法。 handlePostRequest 方法使用 @RequestBody 注解将请求体的 JSON 数据映射到 YourDataClass 对象中。你需要根据实际情况创建一个对应的类来存储请求数据。 另外,请确保你的请求头中指定了正确的 Content-Type 为 application/json,例如: axios.post(url, jsonData, { headers: { 'Content-Type': 'application/json' } })

【stable diffusion】保姆级入门课程02-Stable diffusion(SD)图生图-基础图生图用法

目录 学前视频 0.本章素材 1.图生图是什么 2.图生图能做什么 3.如何使用图生图 4.功能区域 4.1.提示词区域 4.2.图片提示词反推区域 1.CLIP反推 2.DeepBooru 反推 4.3.图片上传区域 4.4.结果图区域 4.5.缩放模式 4.6.重绘幅度 7.结语 8.课后训练 学前视频 stable diffusion图生图教程 0.本章素材 百度网盘夸克地址anything模型(二次元模型)百度网盘 提取码:g5uk 夸克网盘 提取码:PWLu chilloutmix模型(真人模型)百度网盘 提取码: qup0 夸克网盘 提取码:Ny9P 案例图夸克网盘通用提示词夸克网盘 1.图生图是什么 简单来说:图生图就是依赖图片和提示词进行二次创作。 2.图生图能做什么 图生图的出现 是为了弥补文生图的不足,因为文生图有个无法避免的问题,就是随机性太大,当你抽卡 抽到一张你喜欢的图片,但是可能某些地方不满足需求,对于文生图而言,是很难进行修正以及修改的。 虽然衣服是实现了白色衬衫,但是背景,人物,发型等都发生了变化,那如果 需求再加上在不改动原图的整体风格的情况下,变更衣服的样式,那么文生图就无法做到了。 而图生图则能实现这种效果,下面,我将图生图的功能实现做出详细讲解 3.如何使用图生图 图生图并不是单纯的直接由图片生成图片,图片只是做主体作用,打个比喻,你要做一道麻辣鸡,鸡就是那个图片,但是 只有鸡是没有办法做成一道菜的,你还得加上各种调料,配菜,才能得到自己想要的料理。同理,图生图也是由文字与图片共同配合完成的,通过文字去控制原本的图片进行二次创作,从而减少图片生成的随机性,更好的满足我们的需求。 4.功能区域 图生图大部分功能都与文生图的一致,需要讲解的点,都已经标出来,如果有哪块在本章未解答,可以去文生图这章翻阅。 4.1.提示词区域 这块区域的用法和文生图的用法是一样的,但是为什么我要特意拿出来讲解,因为 这块 和文生图的使用效果会有一点不一样,这块的提示词 会作用于结果图,而不是对于原图的描述,这里初学者 是很容易混淆的,大多数教程正向提示词都是和原图是有关系的,会让人误解为是对于原图的解释,图生图中无论是正向还是反向提示词 都是对于结果图的引导和规范,例如: 原图是女孩,提示词为1boy,则结果图 会往 男性引导 4.2.图片提示词反推区域 当我们想利用原图进行操作,但是想保留某些特征,让原图和生成图保持相似度时,我们就需要进行提示词编写,此时反推区域就能帮助我们提取原图的特征提示词,例如: 需要注意,反向提示词是不会生成的,还是需要自己进行填写,并且提示词的准确度也并不是百分百,准确度依靠图片中的特征是否足够明显,对于AI生成的图片,图片提示词反推也会更加准确。 1.CLIP反推 生成的提示词更像自然语言,一般是短语形式; a young woman is posing for a picture in a t - shirt with a mountain scene on it and a quote on the front, Fan Qi, mountains, computer graphics, neo-romanticism

Redis—分布式系统

Redis—分布式系统 🔎理解分布式🔎分布式—应用服务与数据库服务分离引入更多的应用服务节点理解负载均衡 引入更多的数据库服务节点缓存分库分表 微服务 🔎常见概念应用(Application) / 系统(System)模块(Module) / 组件(Component)分布式(Distributed)集群(Cluster)主(Master) / 从(Slave)中间件(Middleware)可用性(Availability)响应时长(Response Time RT)吞吐(Throughput) / 并发(Concurrent) 🔎理解分布式 一台主机的硬件资源是有限的 包括但不限于: CPU内存硬盘主板网络适配器… 服务器每收到一个请求, 都需要消耗上述的一些资源 如果同一时刻处理的请求过多, 可能导致某个硬件资源的性能陷入瓶颈 如果遇到这种场景, 应对方式有 2 种 开源(针对硬件 → 增加更多的硬件资源)节流(针对软件 → 对软件进行优化, 通过性能测试找到性能瓶颈) 对于开源的具体解释🍭 一台主机上所能增加的硬件资源是有限的(取决于主板的扩展能力), 当一台主机扩展到极限时, 资源还是不够, 就需要引入多台主机 引入多台主机之后, 系统就可以称为是分布式系统(此时响应的代码也需要做出调整) 题外话🍭 引入分布式, 相对于程序员, 并不是一件好事 这是因为分布式的引入, 所带来的复杂程度大大提高 → 从而导致出 BUG 的概率提高 → 年终奖丢失的概率与加班的概率大大提高 🔎分布式—应用服务与数据库服务分离 单机服务器 → 应用服务与数据库服务未分离 应用服务器 + 数据库服务器 → 应用服务与数据库服务分离(分布式) 针对不同服务器涉及的不同场景, 分配不同但更合理的硬件资源 对于应用服务器, 可能包含更多的业务操作. CPU, 内存的利用率更高 → 于是选择较好的 CPU, 内存

手把手教你如何用python进行数据分析!(附四个案例)

一、前期准备 三个包:Numpy、Pandas和matplotlib;工具:jupyter notebook。首先确保导入这两个包 #导入Numpy包 import numpy as np #导入Pandas包 import pandas as pd 二、基础知识 Pandas有三种数据结构:Series、DataFrame和Panel。Series类似于一维数组;DataFrame是类似表格的二维数组;Panel可以视为Excel的多表单Sheet。 1.read_table read_table(filepath_or_buffer, sep=False, delimiter=None, header=’infer’, names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, iterator=False, chunksize=None, compression=’infer’, thousands=None, decimal=b’.’, lineterminator=None, quotechar='”‘, quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=None, error_bad_lines=True, warn_bad_lines=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None) 可以用于读取csv、excel、dat文件。 2.merge merge(left, right, how=‘inner’, on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=(’_x’, ‘_y’), copy=True, indicator=False, validate=None) 连接两个DataFrame并返回连接之后的DataFrame。

超详细MySQL下载及安装、基本使用

1.下载MySQL 首先,去数据库的官网: MySQL官网下载MySQL。打开界面显示这样: 然后点击DOWNLOADS,进入页面后一直向下走,找到:MySQL Community (GPL) Downloads »,点击这个链接 进入后点击MySQL Community Server,如下图: 进入页面后,点击go to download page 进入页面,点击点击download 进入下载页面选择No thanks, just start my download就可以开始下载了 2.安装MySQL 打开刚刚下载的安装包,进入安装页面 选择Developer Default(默认安装),然后点击next进入下一步。 这里直接点击execute执行就可以了 等待执行完成点击Next 下个界面点击Next 这个界面可以修改端口号,默认即可,点击Next 这个界面设置root密码,点击Next即可 直接Next即可 直接Next 点击execute执行。 点击finish,点击Next 点击Finish 点击Next check你的root密码(之前安装时候输入的密码),然后点击Next 点击Execute 点击Finish 点击Next 点击Finish 安装完成,进入MySQL的安装目录,进入MySQL Sever,其目录下的文件如下:(默认都是:C:\Program Files\MySQL\MySQL Server 5.7) bin目录下保存了MySQL常用的命令工具以及管理工具、data目录是MySQL默认用来保存数据文件以及日志文件的地方(我的因刚安装还没有data文件夹)、docs目录下是MySQL的帮助文档、include目录和lib目录是MySQL所依赖的头文件以及库文件、share目录下保存目录文件以及日志文件。 进入bin目录,按住shift键然后点击鼠标右键可以选择在该目录下打开命令窗口,或者在地址栏中输入cmd进入命令窗口。输入mysql -u root -p后回车,然后会提示输入密码,输入密码后就会进入MySQL的操作管理界面。 输入show databases;(注意末尾有分号)可以查看当前MySQL中的数据库列表,输入quit可以退出MySQL的操作管理界面。 第三方工具连接 壹、使用navicat 打开navicat,点击链接,选择MySQL 输入自定义名称、ip、端口、用户名、密码,依据实际填写即可 一般我喜欢点击链接测试试一下,链接成功的话点击确定就存在navicat里面,后面直接点击就可以

【生成PDF】【JAVA】纯后台生成Echarts图片,并将图片生成到PDF文档

目录 前言 一、如何后台生成Echarts图片? 1.PhantomJS 2.PhantomJS的下载 3.用phantomjs调用echarts-converts.js生成图片 二、Java如何将Echarts图生成到PDF 1.生成PDF依赖 2.Java代码测试例子: 3.测试结果 三、下载生成的PDF ReportFormUtil 前言 提示:本文仅用于记录日常,多有不足,仅供参考。 本次任务:要求不经过web页面,Java如何按月定时生成含有Echarts图的PDF。 与我之前一篇文章中介绍的(Java如何根据前台Echarts图表生成PDF,并下载)区别在于,该文章中的Echarts图片可以从已有的web页面获取,而本次任务没有页面。Echarts图需要由后台生成。那么整个流程分为以下三步: 1.如何后台生成Echarts图片? 2.Java如何将Echarts图生成到PDF? 3.下载生成的PDF 本次任务重点在于第一点,只要后台能生成Echarts图片,生成PDF和下载文件的过程与前面文章中提到的方法差不多。 一、如何后台生成Echarts图片? 1.PhantomJS 后台生成Echarts图,需要使用到PhantomJS:一个自带JavaScript API的无头WebKit脚本,简单理解就是:它能干浏览器能干的几乎所有事情,能解析js、能渲染等等,但是没有页面让你看。 2.PhantomJS的下载 https://phantomjs.org/api/fs/ http://wenku.kuryun.com/docs/phantomjs/index.html 也可以直接用我下载的文件:我的文件链接 提取码:es4e 打开我的文件:根据你使用的操作系统,选择一个进行下载并解压。 ​ 打开我的文件,除phantomjs文件外,可见还有一个文件夹echarts-convert,有2个文件: 1.echarts:里面是echarts和jquery,可以用你们自己本地或项目中的。 2.echarts-converts.js:是自己写的js文件,用来渲染生成echarts图片,可根据自己需求改写。 ​ 注意:若使用自己本地的echarts和jquery文件,echarts-converts.js里面的文件路径需要改写,指向你的文件所在的位置。 3.用phantomjs调用echarts-converts.js生成图片 以下以windows环境下举例: 1.从echarts官网随便选择一个图,将option复制本地某个文件中(例:G:\test\testOption.txt) 2.手动创建一个空的png文件(例:G:\test\111.png) 3.cmd调用phantomjs进程,让它去解析echarts-converts.js,并传入一些参数(如图): G:\test\phantomjs-2.1.1-windows\bin\phantomjs.exe G:\test\echarts-convert\echarts-convert.js -txtPath G:\test\testOption.txt -picTmpPath G:\test\111.png -picPath G:\test\222.png 4.执行完成,完成后,111.png图片有内容,且生成了一张222.png。 二、Java如何将Echarts图生成到PDF 前面已经可以通过手动调用的方式生成Echarts图片。 接下来需要做的: 1、将手动生成图片的过程通过代码实现。 2、将生成的图片生成出PDF 3、下载PDF 1.生成PDF依赖 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13.3</version> </dependency> 2.Java代码测试例子: public static void main(String[] args) { try { // 测试同时生成两张图 // 注意:要先手动创建两个空文件G:\\test\\1.

国内哪些可以免费使用Midjourney的方式?

大家好,我是Dennis,一个深度AI技术玩家,Midjourney, StableDiffusion的使用者。 今天给大家分享一下,如何免费使用Midjourney? 什么是Midjourney? 众所周知, 国内用户如果想使用Midjourney的话,非常麻烦,需要使用Discord,还要会用咒语,会用魔法。 冲破种种阻碍发现后,发现价格贵的离谱; 所以目前只要用Midjourney,就必须订阅会员。那么 Midjourney多少钱一个月? 有3种计划,分别是10/30/60美元。这是月付的价格,还有年付的会员,年付的价格是优惠点,但要一次性付几百美金。 下面是月付的3种计划的价格: 1. 10美元:每月可以生成200张图,没有fast模式,不能免排队生成图 2. 30美元:每月可无限量生成图片,有15小时fast模式生图时间,可以免排队生成图 3. 60美元:跟30美元比,主要有隐私模式,别人看不到你的图和关键词,适合公司和版权方用,另外fast模式生图时间有30小时 mj官方价格表: 看完Midjourney价格后,Dennis我直呼买不起!!! Midjourney如何收费订阅? 目前国内银行卡是支付不了的,原先还可以支付宝支付,现在也不可以了。只能通过国外银行卡支付,自己有可以自己付,没有直接看文末 1. 登录你的Midjourney账户,进入订阅中心(如果是在Discord频道里,则是在频道输入框输入/subscribe,然后点击一下,再回车) 2、选择您需要订阅的会员计划,选择月支付/年支付 3、进入支付页面,选择银行卡支付; 国内如何免费使用Midjourney??? 今天给大家分享一个,不用魔法,可以直接免费使用Midjourney的技巧,就是使用工具:”社小牛AI绘画“,目前有小程序,有APP,iOS,安卓,都可以搜到,web版本据说也准备发布了。。。 关键是免费!关键是免费!关键是免费! 经过我的测试,社小牛AI绘画,出图率非常高,体验很好!下面是这个APP的部分截图!!!

微信小程序开发之连接本地MYSQL数据库

一、本地搭建HTTP服务器 1.使用Node.js在本地搭建HTTP服务器 1)下载安装Node.js 网址:https://nodejs.org/en 右边是长期维护版本,左边是尝鲜版,推荐下载长期维护版本 2)安装完成后本地创建文件夹,文件夹名字随便,我的文件夹名称是nodeMysqlDemo 3)打开命令行 搜索node关键字,用管理员身份打开node.js command prompt 4)进入D盘,进入刚创建的文件夹 5)依次输入如下命令 [1] 初始化项目,将会自动创建package.json配置文件 npm init -y [2] 安装Express框架,用于快速创建HTTP服务器 npm install express --save [3] 安装nodemon监控文件修改 npm install nodemon -g [4] 安装mysql的软件包 npm install mysql --save 操作成功后文件夹里面会有这些文件 6)在该目录创建server.js文件 如果不会创建可以先创建server.txt文本文件,然后把后缀改成js即可 6)打开server.js文件,写如下服务器端代码并保存 const express=require('express') const bodyParser =require('body-parser') const app=express() const mysql = require('mysql') app.use(bodyParser.json()) //处理post请求 app.post('/',(req,res) => { console.log(req.body) res.json(req.body) }) app.post('/show',(req,res)=>{ console.log(req.body.name) const a=req.body.name var connection=mysql.createConnection({ host:'localhost', user:'数据库用户名', password:'数据库密码', database:'数据库名称' }) connection.

数据结构与算法——图

😊数据结构与算法——图 🚀前言🚀图的基本概念🚢图的定义🚢图的基本操作🚢无向图和有向图🚢完全图🚢顶点的度、入度和出度🚢子图🚢顶点关系常用术语🚢边的权、带权图🚢连通图、连通分量(无向图)🚢强连通图、强连通分量(有向图)🚢特殊的图🚢生成树和生成森林 🚀图的存储🚢邻接矩阵🚢邻接表🚢十字链表🚢邻接多重表 🚀图的遍历🚢深度优先遍历(DFS)🚢广度优先遍历(BFS) 🚀最小(代价)生成树🚢基本概念🚢基本性质🚢构造方法 🚀拓扑排序🚢基本概念🚢算法示例 🚀最短路径🚢基本概念🚢算法 💻总结 🚀前言 😊各位小伙伴们,本专栏新文章出炉了!!! 图(Graph) 🎯是一种比线性结构和树型结构更为复杂的数据结构。在线性结构中,元素之间仅有线性关系,每个元素只有一个直接前驱或直接后继;在树型结构中,数据元素之间有着明显的层次关系;而在图型结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能有直接关系或间接关系。 图的应用非常广泛,几乎在每个领域,都随处可见图这种数据关系的存在,例如现在人们使用的微信,微信好友之间便呈现出图的关系;又例如每个人的社交关系网,也是图型结构的体现。本篇文章将围绕图这种数据结构展开总结,归纳图的基本含义和术语,以及图所涉及的基本操作。 🚀图的基本概念 🚢图的定义 图(Graph) 是由一个顶点集 V V V和一个弧集 E E E构成的网状数据结构,记作 G = ( V 、 E ) G = (V、E) G=(V、E)。在图中,数据元素通常称作顶点(Vertex), V V V是顶点的有穷非空集合; V R VR VR是两个顶点之间的关系的集合。 🚩注意:线性表可以为空表,树可以是空树,但图不可以为空,即 V V V一定是非空集。 🚢图的基本操作 📌Adjacent(G,x,y): 判断图 G G G是否存在边 < x , y > 或 ( x , y ) 。 <x, y>或(x, y)。 <x,y>或(x,y)。 📌Neighbors(G,x): 列出图 G G G中与结点 x x x邻接的边。

Mysql:创建和管理表(全面详解)

创建和管理表 前言一、基础知识1、一条数据存储的过程2、标识符命名规则3、MySQL中的数据类型 二、创建和管理数据库1、创建数据库2、使用数据库3、修改数据库4、删除数据库 三、创建表1、创建方式12、创建方式23、查看数据表结构 四、修改表1、追加一个列2、修改一个列3、重命名一个列4、删除一个列 五、重命名表六、删除表七、清空表八、使用 MySQL 的常规流程1、连接到MySQL服务器2、创建数据库3、创建表4、定义列和数据类型5、设置主键6、添加索引7、修改表结构8、删除表 八、内容拓展拓展1:阿里巴巴《Java开发手册》之MySQL字段命名拓展2:如何理解清空表、删除表等操作需谨慎?!拓展3:MySQL8新特性—DDL的原子化 前言 本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主! 也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远! 一、基础知识 1、一条数据存储的过程 存储数据是处理数据的第一步。只有正确地把数据存储起来,我们才能进行有效的处理和分析。否则,只能是一团乱麻,无从下手。 那么,怎样才能把用户各种经营相关的、纷繁复杂的数据,有序、高效地存储起来呢? 在 MySQL 中,一个完整的数据存储过程总共有 4 步,分别是创建数据库、确认字段、创建数据表、插入数据。 我们要先创建一个数据库,而不是直接创建数据表呢? 因为从系统架构的层次上看,MySQL 数据库系统从大到小依次是数据库服务器、数据库、数据表、数据表的行与列。 MySQL 数据库服务器之前已经安装。所以,我们就从创建数据库开始。 2、标识符命名规则 数据库名、表名不得超过30个字符,变量名限制为29个必须只能包含 A–Z, a–z, 0–9, _共63个字符数据库名、表名、字段名等对象名中间不要包含空格同一个MySQL软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名必须保证你的字段没有和保留字、数据库系统或常用方法冲突。如果坚持使用,请在SQL语句中使用`(着重号)引起来保持字段名和类型的一致性:在命名字段并为其指定数据类型的时候一定要保证一致性,假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了 3、MySQL中的数据类型 其中,常用的几类类型介绍如下: 二、创建和管理数据库 1、创建数据库 • 方式1:创建数据库 CREATE DATABASE 数据库名; • 方式2:创建数据库并指定字符集 CREATE DATABASE 数据库名 CHARACTER SET 字符集; • 方式3:判断数据库是否已经存在,不存在则创建数据库(推荐) CREATE DATABASE IF NOT EXISTS 数据库名; 如果MySQL中已经存在相关的数据库,则忽略创建语句,不再创建数据库。 注意:DATABASE 不能改名。一些可视化工具可以改名,它是建新库,把所有表复制到新库,再删旧库完成的。 2、使用数据库 • 查看当前所有的数据库 SHOW DATABASES; #有一个S,代表多个数据库 • 查看当前正在使用的数据库 SELECT DATABASE(); #使用的一个 mysql 中的全局函数 • 查看指定库下所有的表

报错:SON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `Jso

详细报错 JSON parse error: Cannot deserialize value of type java.lang.String from Array value (token JsonToken.START_ARRAY); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type java.lang.String from Array value (token JsonToken.START_ARRAY) at [Source: (PushbackInputStream); line: 47, column: 35] ( 原因:JSON数据,“xxxx” 的值应该是一个数组,但解析器期望它是一个字符串类型。您需要检查并确保 “fieldValue” 的值与期望的类型相符。

Swift 周报 第三十二期

文章目录 前言新闻和社区现已提供新的设计资源visionOS SDK 现已发布 提案Swift论坛推荐博文话题讨论关于我们 前言 本期是 Swift 编辑组自主整理周报的第二十三期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。 欢迎投稿或推荐内容。目前计划每两周周一发布,欢迎志同道合的朋友一起加入周报整理。 骚年,努力去成为你期待已久的自己吧,就像Swift社区一样,时刻心怀梦想,不断向前! 周报精选 新闻和社区:苹果已提供新的设计资源 提案:本期提案没有最新内容 Swift 论坛:讨论 Non-Reentrant Actors 推荐博文:AngularGradient 在 swiftUI 中的使用 话题讨论: 你认为 vision pro 是否会加速虚拟现实技术的发展? 上期话题结果 你认为企业实行薪资保密有哪些利弊?其中 : 17%认为保护员工个人隐私; 23%认为避免员工之间的比较和嫉妒心理,减少内部矛盾; 28%认为难以查看薪资公正性,更少的保密性意味着更多的平等; 30%认为易产生员工对公司不信任,让员工产生长期处于被剥削的感觉。 根据投票结果,小编认为企业应根据自身情况和员工需求,平衡薪资保密与透明的利弊,制定适合的薪资政策。 新闻和社区 现已提供新的设计资源 为方便开发者在 Apple 平台上构建 App,我们现在提供了全新及更新后的设计资源,让你可以更便捷、更准确地设计 App。 visionOS 设计资料库以及适用于 Figma 和 Sketch 的模板 (英文)。 适用于 Figma 和 Sketch 的 iOS 17 和 iPadOS 17 设计套件 (英文)。 适用于 Figma 和 Sketch 的 macOS Sonoma 设计套件 (英文)。

hive报错——FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.StatsTask

今天向分区表插入数据 insert into table--------的时候 执行完报错了:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.StatsTask 重启了电脑也没用, 修改了yarn-site.xml和mapred-site.xml增加yarn和mapreduce可用内存都没用 然后同学让我加了一句话 set set hive.stats.column.autogather=false 执行这个以后再执行insert语句,就不报错,插入数据成功了! 不过!!!需要注意的是,之前的insert语句虽然报错了,但是已经向表里插入数据了,有可能会造成重复的数据 用 truncate table 表名 就可以清空表里的数据,然后再重新执行insert语句就好了

SpringBoot 日志文件:日志的作用?为什么要写日志?

文章目录 🎇前言1.日志长什么样子?2.自定义打印日志2.1 在程序中得到日志对象2.2 使用日志对象打印日志 3.日志级别3.1 日志级别的分类与使用3.2 日志级别有什么用呢?3.3 日志级别的设置 4.日志持久化保存5.更方便的日志输出5.1 添加 lombok 框架5.2 使用注释输出日志 🎆总结 🎇前言 日志、日志,日志就是记录发生了什么。为啥要记录发生了什么呢?想象⼀下,如果程序报错了,不让你打开控制台看⽇志,那么你能找到报错的原因吗?因此我们需要记录程序的行为,通过这些行为能让我们更好的发现和定位错误所在位置。 除了发现和定位问题之外,还可以通过⽇志实现以下功能: 记录⽤户登录⽇志,⽅便分析⽤户是正常登录还是恶意破解⽤户。记录系统的操作⽇志,⽅便数据恢复和定位操作⼈。记录程序的执⾏时间,⽅便为以后优化程序提供数据⽀持。 可以看出来日志在程序中扮演这非常重要的角色了。 1.日志长什么样子? SpringBoot 项目启动的时候默认就会有日志输出,如下图: 通过上述日志信息提出三个疑问: Spring Boot 如何打印日志?(提前把这个说了:它内置了日志框架,因此可以打印日志)默认情况下,输出的日志并非是开发者定义和打印的,开发者怎么在程序中⾃定义打印⽇志呢?日志默认打印在控制台上,而控制台的日志不能保存,如何将日志永久保存呢? 接下来让我们寻找找答案 2.自定义打印日志 自定义打印日志分为两步走: 在程序中得到日志对象使用日志对象的相关语法输出打印内容 2.1 在程序中得到日志对象 //1.得到日志对象 private final static Logger logger = LoggerFactory.getLogger(TestController.class); 在导包时,我们使用的时slf4j包下面的 Logger,这里不要导包导错了。 因为 SpringBoot 中内置了日志框架slf4j,所以我们可以直接在程序中调用slf4来输出日志。 2.2 使用日志对象打印日志 // 2.使⽤⽇志打印⽇志 logger.info("--------------要输出⽇志的内容----------------"); 日志打印结果: 这日志打印出来看起来像是一串字符串,我们如何去看出来日志打印的是什么东西呢?看下图的介绍: 日志之间有很多等级划分,我们通常把他分为六个等级。 3.日志级别 3.1 日志级别的分类与使用 日志级别一览表(由上到下等级递增): 等级解释trace微量,少许的意思,级别最低的日志debug需要调试时候的打印关键信息info普通打印信息,也是默认日志级别warn警告,这个级别的日志不影响使用,但需要注意问题error错误信息,级别较高的错误日志信息fatal致命的,因为代码异常导致程序退出执行的事件 3.2 日志级别有什么用呢? 日志级别可以帮你筛选出重要的信息,⽐如设置⽇志级别为 error,那么就可以只看程序的报错⽇志了,对于普通的调试⽇志和业务⽇志就可以忽略了,从而节省开发者信息筛选的时间。日志级别可以控制,不同环境下打印日志的要求可以设置(一般分为开发环境和生产环境),⼀个程序是否需要打印⽇志,如开发环境我们需要很详细的信息,⽽⽣产环境为了保证性能和安全性就会输出尽量少的日志。 第一条也许比较难理解,我们写代码演示一下,我们知道日志等级默认的是info级别的,我们打印如下日志: @Controller @ResponseBody public class TestController { private final static Logger logger = LoggerFactory.

EXISTS关键字在Oracle中的使用

EXISTS是Oracle数据库中的一个关键字,用于在SQL查询的上下文中测试子查询返回的记录是否存在。它通常与WHERE子句结合使用,根据子查询的结果来过滤记录。 在Oracle中使用EXISTS的语法如下: SELECT column1, column2, ... FROM table_name WHERE EXISTS (subquery); 在这个语法中,子查询会被评估,如果返回至少一行,则认为EXISTS条件为真,并返回SELECT语句中指定的记录。 下面是一个示例,演示了在Oracle中使用EXISTS的用法: SELECT employee_id, first_name, last_name FROM employees WHERE EXISTS ( SELECT * FROM orders WHERE orders.employee_id = employees.employee_id ); 在这个示例中,查询从"employees"表中检索所有员工的详细信息,这些员工在"orders"表中至少有一个订单。 EXISTS关键字在你想要检查不同表中相关记录的存在性,而不实际检索那个表中的全部数据时非常有用。它可以作为在Oracle中编写高效和优化的查询的强大工具。