移动端设备( iPad / iPhone,以及Apple Watch)运行Python的可选选择

在iPad及iPhone上运行Python 1.0 前言1.1 软件选择1.1.1 Pyto / Light IDE(付费)1.1.2 其他可供选择的免费软件Python EditorCode EditorCarnets - Jupyter 1.2 需要注意的地方1.3 版权声明 1.0 前言 不仅仅是Python,无论何种语言,编译的最好平台都是电脑(Linux又优于Windows)。然而对于部分因为各种各样的原因导致没有电脑的程序猿,只能通过移动设备编程。然而一些我们熟知的应用(例如Pycharm)并不适用于移动设备,此时就可以借助一些软件来操作。 需要注意的是,这些软件通常都非官方来源,由个人(团队)开发者开发,且存在一些缺点。而且移动设备操作系统的限制让移动设备上能够进行的操作极其有限,如遇到正式的工程项目则必须选择电脑开发。 1.1 软件选择 笔者使用的是iPad,因此华为用户的操作可能不同。下面步入正题。 打开App Store,键入关键字“Python”。可以看到许多关于Python的编译软件,下面提供一些参考,以及对应的适用人群。 1.1.1 Pyto / Light IDE(付费) 这两个软件有一个共同点:提供三天免费试用,其后收费。 首先介绍Pyto。 该软件提供三种套餐: 3-day Trial:为期三天的免费试用;Lite Version:价格¥58,解锁除第三方库的功能;Full Version:价格¥98,解锁包括第三方库的全部功能。 开启Full版本订阅的前提下,Pyto具有较全面的包,以及Unix命令行、附带Python3.10,功能强大,App Store评分4.2(313人评分,数据截止2023年8月26日)。仅支持Python语言。 初始体积:786MB。可用于iPad、iPhone及Apple Watch。 支持德文,法语,英语及西班牙语,暂不支持中文。建议具有一定编程及英语基础的群体选择。 接下来介绍Light IDE。 如其名,这是一款轻量级软件,其体积大小只有50MB,且据描述具有与其大小不匹配的强大功能。适合不同水平的用户群体。支持Python,Java及C语言。笔者似乎记得,Light IDE还可以在网页端免费编程,无需下载。(版本0.8.6,截止2023年8月26日) 同样的,Light IDE提供三天免费试用,其后需按月计费。由于套餐过多,在此不一一赘述,在App Store 中有详尽描述。仅可用于iPad。 其开发页面为中文,支持英文。初学者及有一定水平的用户均可用。 1.1.2 其他可供选择的免费软件 Python Editor 界面借助Apple系统的交互界面,功能较齐全,但不支持中文。可用于iPad及iPhone。 有一致命缺点,笔者水平有限不清楚原因,但笔者尝试过的很多移动端Python软件都出现了这种问题: 如果代码中出现input()指令,则无论input出现的位置,都会返回EOFError(end of file,简写为EOF)且程序无法运行。 笔者还没有找到解决方法,但这个缺陷并非致命,可以通过其他方法代替,因此此软件仍可以作为选择之一。 由于评分人数过少,App Store里的评分在此不列出作为参考(数据截止2023年8月26日)。 建议有一定英语基础的用户使用。 Code Editor 大致与上面相同,但支持中文。大小71MB。可用于iPhone及iPad。 仍具有如上漏洞,此处不再赘述(数据截止2023年8月26日)。 Carnets - Jupyter 重头戏放在最后。此款软件是笔者个人认为最好的,App Store评分4.

Windows server 2016——SQL server 简介与安装

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 公众号:网络豆 座右铭:低头赶路,敬事如仪 个人主页: 网络豆的主页​​​​​ 目录 写在前面 介绍 一.数据库简介 1.使用数据库的必要性 2.数据库基本概念 (1)数据 (2)数据库与数据库表 (3)数据库系统与数据库管理系统 3.数据库发展史 4.数据模型 (1)网状模型 (2)层次模型 (3)关系模型 二.主流数据库介绍 1.SQL server(微软公司产品) 2.Oracle(甲骨文公司产品) 3.DB2(IBM公司产品) 4.MySQL(甲骨文公司收购) 三.关系数据库的基本概念 ​ 1.基本结构 2.主键(Primary Key) 3. ​编辑候选键 ​编辑4.外键(Foreign Key) 四.数据完整性规则 五.常用管理工具 与 启动和停止数据库服务的方法 六.数据库分类 ​编辑1.系统数据库 ​编辑 2.用户数据库 七.SQL Server 数据库部署安装教程 1.前期准备 2.安装 写在前面 本系列文章将会讲解SQL server 安装操作与使用,并且会同步视频进行安装讲解。 视频教程:【windows server 2016安装 sql server教程】 介绍 SQL Server是由微软公司开发的关系型数据库管理系统,现在是全世界主流数据库之一。它具备方便使用、可伸缩性好、相关软件集成程度高等优势,能够从单一的笔记本上运行或以高倍云服务器集群为基础,或在这两者之间任何一种方式上运行。 一.数据库简介 1.使用数据库的必要性 结构化存储大量数据,便于高效的检索和访问有效地保持数据信息的一致性、完整性,降低数据冗余满足数据共享和安全方面的要求 2.数据库基本概念 (1)数据 描述事物的符号记录称为数据( Data ) 包括数字、文字、图像、声音等 (2)数据库与数据库表 不同的记录组织在一起,就形成了“表”数据库就是表的集合 数据库——》表——》数据 (3)数据库系统与数据库管理系统 数据库系统(DBS)

python图像形态学操作——膨胀,腐蚀;开运算,闭运算

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 图像形态学操作——膨胀,腐蚀;开运算,闭运算一、图像腐蚀代码: 二、膨胀代码 开运算闭运算总结参考: 图像形态学操作——膨胀,腐蚀;开运算,闭运算 形态学,是图像处理中应用最为广泛的技术之一,主要用于从图像中提取对表达和描绘区域形状有意义的图像分量,使后续的识别工作能够抓住目标对象最为本质的形状特征。 图像的膨胀(Dilation)和腐蚀(Erosion)是两种基本的形态学运算,其中膨胀类似于“领域扩张”,将图像中的白色部分进行扩张,其运行结果图比原图的白色区域更大;腐蚀类似于“领域被蚕食”,将图像中白色部分进行缩减细化,其运行结果图比原图的白色区域更小。 下图:(原图,腐蚀,膨胀) 一、图像腐蚀 腐蚀的运算符是“-”,其定义如下: 该公式表示图像A用卷积模板B来进行腐蚀处理,通过模板B与图像A进行卷积计算,得出B覆盖 区域的像素点最小值,并用这个最小值来替代参考点的像素值。 代码: 1.cv2.erode()函数 函数: ero = cv2.erode(src,kernel,anchor,iterations) 参数1:src,原图像 参数2:kernel,腐蚀操作的内核,默认为一个简单的 3x3 矩 参数3:anchor,默认为Point(-1,-1),内核中心点 参数4:iterations,腐蚀次数,默认值1 #1.读取图片 import cv2 import matplotlib.pyplot as plt import numpy as np img = cv2.imread("/kaggle/input/morphology/morphology.png", cv2.IMREAD_UNCHANGED) plt.imshow(img) plt.axis('off')#关闭坐标系 plt.show() #2.图片灰度化(已经是灰度图片则不用做这一步) def rgb2gray(rgb):#灰度化 """ rgb 2 gray Args: rgb image Returns: gray image """ gray = rgb[:, :, 0] * 0.299 + rgb[:, :, 1] * 0.

SpringBoot——集成Kafka详解

这里写目录标题 SpringBoot集成Kafka1、构建项目1.1、引入依赖1.2、application.yml配置1.3、简单生产1.4、简单消费 2、生产者2.1、带回调的生产者2.2、监听器2.3、自定义分区器2.4、事务提交 3、消费者3.1、指定topic、partition、offset消费3.2、异常处理3.3、消息过滤器3.4、消息转发3.5、定时启动、停止3.6、手动确认消息 4、配置详解4.1、生产者yml方式4.2、生产者Config方式4.3、消费者yml方式4.4、消费者Config方式 5、注解消费示例5.1、简单消费5.2、监听多个主题5.3、监听一个主题,指定分区消费5.4、指定多个分区,指定起始偏移量,多线程消费5.5、监听多个主题,指定多个分区,指定起始偏移量5.6、指定多个监听器5.7、手动提交偏移量 SpringBoot集成Kafka 1、构建项目 1.1、引入依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.5.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.28</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> </dependencies> 1.2、application.yml配置 spring: application: name: application-kafka kafka: bootstrap-servers: localhost:9092 #这个是kafka的地址,对应你server.properties中配置的 producer: batch-size: 16384 #批量大小 acks: -1 #应答级别:多少个分区副本备份完成时向生产者发送ack确认(可选0、1、all/-1) retries: 10 # 消息发送重试次数 #transaction-id-prefix: transaction buffer-memory: 33554432 key-serializer: org.apache.kafka.common.serialization.StringSerializer value-serializer: org.

Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules。Android studio纯java代码报错

我使用java代码 构建项目,初始代码运行就会报错。我使用的是Android Studio Giraffe(Adroid-studio-2022.3.1.18-windows)。我在网上找的解决办法是删除重复的类,但这操作起来真的太麻烦了。 这是全部报错代码: Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21) Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21) Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations$ReflectSdkVersion found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21) Duplicate class kotlin.internal.jdk8.JDK8PlatformImplementations found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21) Duplicate class kotlin.internal.jdk8.JDK8PlatformImplementations$ReflectSdkVersion found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21) Duplicate class kotlin.io.path.ExperimentalPathApi found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk7-1.

java调用chatgpt接口,实现专属于自己的人工智能助手

文章目录 前言导包基本说明请求参数响应参数创建请求和响应的VO类 代码编写使用最后说明 前言 今天突然突发奇想,就想要用java来调用chatget的接口,实现自己的聊天机器人,但是网上找文章,属实是少的可怜(可能是不让发吧)。找到了一些文章,但是基本都是通过调用别人的库来完成的,导入其他的jar还有不低的学习成本,于是就自己使用HttpClient5写了一个,在这里讲解一下思路。 导包 对于http调用,我使用的是比较流行的httpclient5,然后直接创建了一个springboot项目,方便以后对外提供接口。 <parent> <artifactId>spring-boot-starter-parent</artifactId> <groupId>org.springframework.boot</groupId> <version>2.5.3</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents.client5/httpclient5 --> <dependency> <groupId>org.apache.httpcomponents.client5</groupId> <artifactId>httpclient5</artifactId> <version>5.2.1</version> </dependency> </dependencies> 基本说明 在编写代码之前,这个先给出HttpClient的Api文档 api文档 我们在编写代码之前需要了解官方提供的接口如何进行访问以及返回的结果是什么 请求参数 官方文档地址为 文档,请求参数必须填写的内容如下 { "model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "Hello!"}] } 一个是model,一个是messages。model根据自己的情况来选择,聊天的话就是gpt-3.5-turbo,下面的messages里面包含n个对象,每个对象有role和content,role表示角色,content表示内容。 下面为官方文档中的解释 简单理解就是我们要问问题,role就是user。如果要实现连续对话,那么就将返回的返回内容设置到messages中,role设置为返回的role。 响应参数 下面直接给出响应的内容 { 'id': 'chatcmpl-6p9XYPYSTTRi0xEviKjjilqrWU2Ve', 'object': 'chat.completion', 'created': 1677649420, 'model': 'gpt-3.5-turbo', 'usage': {'prompt_tokens': 56, 'completion_tokens': 31, 'total_tokens': 87}, 'choices': [ { 'message': { 'role': 'assistant', 'content': 'The 2020 World Series was played in Arlington, Texas at the Globe Life Field, which was the new home stadium for the Texas Rangers.

讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?

同时向讯飞星火、文心一言和通义千问三个国产AI模型提个相同的问题: “python 写一个贪吃蛇的游戏代码” 看哪一家AI写的程序直接能用,谁就胜出! 讯飞星火 讯飞星火给出的代码: import pygame import sys import random # 初始化pygame pygame.init() # 设置屏幕大小 screen_size = (640, 480) screen = pygame.display.set_mode(screen_size) # 设置游戏标题 pygame.display.set_caption("贪吃蛇") # 定义颜色 WHITE = (255, 255, 255) GREEN = (0, 255, 0) RED = (255, 0, 0) # 蛇的初始位置 snake_pos = [[100, 100], [80, 100], [60, 100]] # 食物的初始位置 food_pos = [300, 300] # 蛇的初始速度 snake_speed = [20, 0] # 主循环 while True: # 处理游戏事件 for event in pygame.

[Vue]解决npm run dev报错node:internal/modules/cjs/loader:1031 throw err;

解决: 有2中方法,建议先尝试第一种,不行再第二种 第一种: 重新安装依赖环境 删除项目的node_modules文件夹,重新执行 # 安装依赖环境 npm install # 运行 npm run dev 我只用了第一种方法就可以了 ,第二种方法从别的博主那看到的,我就先写上。 第二种: 降低webpack的版本 查看package.json中webpack的相关版本 # 卸载当前版本 npm uninstall webpack-dev-server npm uninstall webpack # 安装低版本 npm install webpack@3.6.0 --save-dev npm install webpack-dev-server@2.9.1 --save-dev # 运行 npm run dev 如果执行npm uninstall webpack-dev-server 也报错的话只能用下面方法了。 原因是node_modules文件夹有意外改动,导致依赖库不完整。 解决: 删除项目下的node_modules 在项目目录下重新执行npm install ,会重新生成node_modules 执行npm run build 执行npm run dev

【mysql】事务的四种特性的理解

🌇个人主页:平凡的小苏 📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风翻盘。 🛸Mysql专栏:Mysql内功修炼基地 > 家人们更新不易,你们的👍点赞👍和⭐关注⭐真的对我真重要,各位路 过的友友麻烦多多点赞关注。 欢迎你们的私信提问,感谢你们的转发! 关注我,关注我,关注我,你们将会看到更多的优质内容!! 一、事务的概念 1、事务的四种特性 事务就是一组DML语句组成,这些语句在逻辑上存在相关性,这一组DML语句要么全部成功,要么全部失败,是一个整体。例如银行转账操作,上层看来是一个单纯的转账操作,但是下层却需要一条或多条SQL语句来完成转账操作,这一组SQL是一个整体,被称为事务。事务还规定不同的客户端看到的数据是不相同的。 一个 MySQL 数据库,可不止你一个事务在运行,同一时刻,有大量的请求被包装成事务,向 MySQL 服务器发起事务处理请求。如果多名用户都访问同样的表数据,在不加保护的情况,绝对会出现问题。并且事务由多条 SQL 构成,也会存在执行到一半出错或者不想再执行的情况,那么已经执行的怎么办呢? 所以一个完整的事务,绝对不是简单的 sql 集合,还需要满足如下四个属性: 原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。 一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。 原子性、隔离性、持久性是因,一致性是果。 隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交( Read uncommitted )、读提交( read committed )、可重复读( repeatable read )和串行化( Serializable ) 持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。 上面四个属性,可以简称为 ACID 。 原子性(Atomicity,或称不可分割性) 一致性(Consistency) 隔离性(Isolation,又称独立性) 持久性(Durability)。 2、事务的作用 当程序员在编写上层代码逻辑访问数据库时,事务能够简化编程时需要考虑的多种细节问题,例如我们在使用事务时,要么提交要么回滚,不用去担心网络异常、服务器宕机等问题。 3、存储引擎对事务的支持 在 MySQL 中只有Innodb支持事务,而MyISAM不支持。 4、事务的提交方式 自动提交: –查看MySQL事务的提交方式发现是自动提交 ```mysql ##查看MySQL事务的提交方式发现是自动提交 mysql> show variables like 'autocommit'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | autocommit | ON | +---------------+-------+ 1 row in set (0.

【链表OJ】链表中倒数第k个结点 合并两个链表(含哨兵位) 分割链表 链表的回文结构

前言: 💥🎈个人主页:​​​​​​Dream_Chaser~ 🎈💥 ✨✨刷题专栏:http://t.csdn.cn/UlvTc ⛳⛳本篇内容:力扣和牛客上链表OJ题目 目录 一、链表中倒数第k个结点 题目描述: 解题思路: 二.合并两个链表(含哨兵位) 题目描述: 解题思路: 不含哨兵位 三.分割链表 题目描述: 解题思路: 四.链表的回文结构 题目描述: 解题思路: 一、链表中倒数第k个结点 来源:链表中倒数第k个结点_牛客题霸_牛客网 (nowcoder.com) 题目描述: 输入一个链表,输出该链表中倒数第k个结点。 示例: 输入:1,{1,2,3,4,5} 返回值:{5} 解题思路: 创建两个指针,一个名为fast(快指针),另一个则是slow(慢指针),同时把头结点的地址赋值给二者,也就意味着两个指针同时指向头结点。通过传参传过来的参数k的含义是该链表中倒数的第k个结点进入第一个while循环中,k--多少次也就意味着fast指针先走k步接着进入第二个while循环,以fast!=NULL为循环的条件接着两指针一起走相同的步数,待fast指向NULL结束,此时正好是slow指向的链表中倒数第k个结点返回slow指针 struct ListNode* FindKthToTail(struct ListNode* pListHead, int k ) { struct ListNode* fast = pListHead, * slow = pListHead; while (k--) { if (fast == NULL)// 快慢指针同时移动,直到快指针到达链表末尾 { return NULL; } fast = fast->next; } while (fast) { slow = slow->next; fast = fast->next; } return slow;// 返回慢指针所指向的节点 } 动图解析: 执行:

在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器

针对“在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器”的问题,可以采取以下步骤进行排除: 1. 检查网络连接 首先,需要确保计算机与 SQL Server 数据库服务器之间建立了正确的网络连接。可以使用 ping 命令测试一下是否能够正确地连接到服务器,如下所示: ping servername 其中,servername 是你 SQL Server 数据库服务器的 IP 地址或计算机名称。如果 ping 命令无法连接到服务器,那么很可能是网络连接出现了问题,比如防火墙阻止了连接,或者本地网络配置错误等。 2. 检查 SQL Server 是否处于运行状态 如果网络连接正常,那么可以进一步检查 SQL Server 是否处于运行状态。可以使用 SQL Server Configuration Manager 工具来查看 SQL Server 实例是否已启动。具体步骤如下: 在 Windows 搜索栏中输入 SQL Server Configuration Manager,并打开该工具。在 SQL Server Configuration Manager 窗口中,选择“SQL Server Services”选项卡。检查 SQL Server 实例名称,并确保对应的“State”和“Start Mode”状态为“Running”和“Automatic”。 如果 SQL Server 实例未启动,可以右键该实例并选择“Start”选项启动该实例。如果 SQL Server 实例启动失败,可以查看 SQL Server 错误日志帮助诊断并解决问题。 3. 检查 SQL Server 实例是否开启远程连接 如果上述两步都没有问题,但仍无法连接 SQL Server,那么可能是 SQL Server 实例没有开启远程连接。可以使用 SQL Server Management Studio 工具来检查并修改该设置。具体步骤如下:

flutter出现的错误:Visual Studio not installed; this is necessary for Windows development

当你在Windows上使用Flutter开发时,如果出现"Visual Studio not installed; this is necessary for Windows development"的错误,这意味着你需要安装Visual Studio,以便进行Windows平台的开发。 Flutter在Windows平台上需要使用Visual Studio来构建和运行一些特定的功能和库。为了解决这个问题,你可以按照以下步骤安装Visual Studio: 访问Visual Studio官方网站:Visual Studio: IDE and Code Editor for Software Developers and Teams点击"免费下载"按钮,然后选择适用于你的Windows版本的Visual Studio版本进行下载。运行下载的安装程序,并按照指示进行安装。在安装过程中,你可以选择安装所需的组件。确保安装包括"Universal Windows Platform development"组件,该组件是进行Flutter开发所必需的。完成安装后,重新运行Flutter项目,你就不再会看到"Visual Studio not installed"的错误了。 安装完成后,你还需要配置Flutter与Visual Studio的相关路径。可以按照以下步骤进行配置: 打开Flutter安装目录,找到其中的"flutter\bin\flutter_console.bat"文件。右键点击该文件,选择"以管理员身份运行"。在弹出的命令行窗口中,运行以下命令配置Flutter与Visual Studio的路径: flutter config --android-studio-dir="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community" 请根据你的实际安装路径进行相应的更改。 完成上述步骤后,重新运行Flutter项目,你应该能够成功进行Windows平台的开发了。

Kafka——管理Kafka(命令行工具)详解

目录 管理Kafka1、主题操作(kafka-topic.sh)1.1、创建主题(--create)1.2、增加分区(--alter)1.3、减少分区数量(无)1.4、删除主题(--delete)1.5、列出集群里的所有主题(--list)1.6、列出主题详细信息(--describe)1.7、修改或删除配置(--config) 2、消费者群组(kafka- consumer-groups.sh )2.1、列出群组(--list)2.2、获取群组详细信息(--describe)2.3、偏移量管理(--reset-offsets)2.4、删除偏移量(--delete-offsets)2.4、查询消费者成员信息(--members)2.5、查询消费者状态信息(--state)2.6、删除消费组(--delete) 3、动态配置变更(kafka-configs.sh)3.1、Brokers类型动态配置(--entity-type brokers)3.1.1、增加配置项(--add-config)3.1.2、删除配置项(--delete-config)3.1.3、列出配置项详情(--describe) 3.2、Topics类型动态配置(--entity-type topics)3.2.1、增加配置项(--add-config)3.2.2、删除配置项(--delete-config)3.2.3、列出配置项(--describe)3.2.4、示例 3.3、Clients类型动态配置(--entity-type clients)3.3.1、新增配置项(--add-config)3.3.2、删除配置项(--delete-config)3.3.3、列出配置项(--describe) 4、首领选举(kafka-leader-election)4.1、指定Topic指定分区用重新PREFERRED:优先副本策略 进行Leader重选举4.2、所有Topic所有分区用重新PREFERRED:优先副本策略 进行Leader重选举4.3、设置配置文件批量指定topic和分区进行Leader重选举 5、分区分配(kafka-reassign-partitions.sh)5.1、分区迁移5.2、修改复制系数 6、删除消息(kafka-delete-records.sh)7、查看Broker磁盘信息(kafka-log-dirs.sh)8、查看日志文件(kafka-dump-log.sh)8.1、查询Log文件8.2、查询Log文件具体信息(--print-data-log)8.3、查询index文件8.4、查询timeindex文件 9、副本一致性验证(kafka-replica-verification.sh)10、控制台消费者(kafka-console-consumer.sh)10.1、新客户端从头消费(--from-beginning)10.2、正则表达式匹配topic进行消费(--whitelist)10.3、显示key进行消费(--property print.key=true)10.4、指定分区消费(--partition)10.5、定起始偏移量消费(--offset)10.6、给客户端命名(--group)10.7、添加客户端属性(--consumer-property)10.8、添加客户端属性(--consumer.config)10.9、读取偏移量主题(旧版本) 11、控制台生产者(kafka-console-producer.sh)11.1、生产无key消息11.2、生产有key消息(--property parse.key=true) 12、持续批量推送消息(kafka-verifiable-producer.sh)12.1、单次发送100条消息(--max-messages 100)12.2、每秒发送最大吞吐量不超过10 (--throughput 10)12.3、发送的消息体带前缀(--value-prefix) 13、持续批量拉取消息(kafka-verifiable-consumer.sh)13.1、持续消费13.2、单次最大消费(--max-messages) 14、生产者压力测试(kafka-producer-perf-test.sh)15、消费者压力测试(kafka-consumer-perf-test.sh)16、常用操作16.1、查看 topic 指定分区 offset 的最大值或最小值16.2、查询topic的offset的范围16.3、重置消费者offset16.4、删除topic下的数据16.5、给指定TOPIC设置消息存储时间 – 针对数据量大,磁盘小的情况 管理Kafka Kafka 提供了一些命令行工具,用于管理集群的变更。这些工具使用 Java 类实现,Kafka 提供了一些脚本来调用这些 Java 类。不过,它们只提供了一些基本的功能,无法完成那 些复杂的操作。 虽然 Kafka 实现了操作主题的认证和授权控制,但还不支持集群的其他大部 分操作。也就是说,在没有认证的情况下也可以使用这些命令行工具,在没 有安全检查和审计的情况下也可以执行诸如主题变更之类的操作。 1、主题操作(kafka-topic.sh) 使用 kafka-topics.sh 工具可以执行主题的大部分操作(配置变更部分已经被弃用并被移动 到 kafka-configs.sh 工具当中)。我们可以用它创建、修改、删除和查看集群里的主题。要使用该工具的全部功能,需要通过 --bootstrap-server 参数提供broker的连接字符串。 1.1、创建主题(–create) 在集群里创建一个主题需要用到 3 个参数。这些参数是必须提供的,尽管有些已经有了broker 级别的默认值。 主题名字:题名字可以包含字母、数字、下划线以及英文状态下的破折号和句号。主题名字的开头部分包含两个下划线是合法的,但不建议这么做。具有这种 格式的主题一般是集群的内部主题(比如 __consumer_offsets 主题用于保存 消费者群组的偏移量)。也不建议在单个集群里使用英文状态下的句号和下 划线来命名,因为主题的名字会被用在度量指标上,句号会被替换成下划线 (比如“topic.1”会变成“topic_1”)。复制系数:主题的副本数量。分区:主题的分区数量 语法: kafka-topics.sh --bootstrap-server <zookeeper connect> --create --topic <string> --replication-factor <integer> --partitions <integer> 示例:

StableDiffusion XL 1.0 SDXL 使用方法(填坑)

SDXL的安装方法,可以参考我的另一篇文章 “矿卡40HX上跑stable Diffusion XL 1.0模型的方法” 目前已实现在8G VRAM的情况下,使用超过1024x1024的画面生成。 1. 下载 StableDiffusion XL的二个模型,分别是base与refiner, 很多介绍中对二个模型的用法没解释清楚,其实这二个模型,都可以单独生成图片,Base更注重模型的内容生成,refiner更注重细节的补充。所以官方建议是先跑base再跑refiner. 你可以从huggingface上下载官方(stabilityai) 提供的模型。 sd_xl_base_1.0_0.9vae.safetensors <------这是1.0base的vae修正版, 放入models目录下的Stable-diffusion目录中。 sd_xl_refiner_1.0_0.9vae.safetensors <-----这是1.0refiner的vae修正版, 放入models目录下的Stable-diffusion目录中。 sdxl_vae.safetensors <---这个是专用的vae, 放入models目录下的vae目录中。 2. 分辨率选择 SDXL模型是用1024x1024的样本进行训练的,所以最好从1024x1024起步生成。也有其它几种分辨率可以选择: 21:9 – 1536 x 64016:9 – 1344 x 7683:2 – 1216 x 8325:4 – 1152 x 8961:1 – 1024 x 1024 官方说法是除了这几种分辨率外,其它的分辨率会增加破图的可能性(事实上1024x1024破图的概率也比较大) 3. 取样器选择 取样器默认用Euler a就可以了,uniPC是绝对不行的,现在取样器实在太多选择了,个别不能用,个别破图,我也没一个个试过,自行测试吧。 4. 采样迭代步数 Euler a采样器的情况下,base用10步,refiner用20步,基本够用了 5. 图片生成过程 a, 文生图状态下,直接用base模型生成图片 b, 可以加vae生成图片, 如果到这步觉得满意了,后面可以忽略。 c, 文生图完成后(可以不加vae, 个人觉得意义不大),直接转到图生图 d, 改图生图的模型为refiner模型(这步是关键) e, 加上vae, 然后生成图片。

【git】Git 回退到指定版本:

文章目录 方法一: 使用 git reset 命令方法二:使用 git revert 命令方法三:使用 git checkout 命令常见的错误及其解决办法如下: 方法一: 使用 git reset 命令 命令可以将当前分支的 HEAD 指针指向指定的提交,从而回退代码到指定版本。 该命令有三种模式:–soft、–mixed 和 --hard。它们的区别在于回退代码的程度不同。 --mixed (默认):将 HEAD 指针和暂存区都回退到指定提交,但不改变工作区的内容。--soft 仅将 HEAD 指针回退到指定提交,不改变暂存区和工作区的内容。--hard 将 HEAD 指针、暂存区和工作区都回退到指定提交,会丢失最新的代码修改,慎用。 # 查看提交历史 git log # 回退到指定提交(使用 --soft 模式) git reset --soft <commit> # 查看状态,确认回退操作是否正确 git status # 提交回退后的代码 git commit -m "回退到 <commit>" # 将修改的代码推送到远程仓库 git push origin <branch> 方法二:使用 git revert 命令 git revert 命令可以将指定提交的修改反向应用到当前分支上,相当于撤销指定提交的修改。

Python web实战之Django的文件上传和处理详解

概要 关键词:Python Web开发、Django、文件上传、文件处理 今天分享一下Django的文件上传和处理。 1. 上传文件的基本原理 在开始深入讲解Django的文件上传和处理之前,先了解一下文件上传的基本原理。当用户选择要上传的文件后,该文件会被发送到服务器端,并存储在服务器的某个位置上。我们需要在服务器端对这些上传的文件进行处理,例如存储到数据库中、生成缩略图、验证文件类型等等。 1.1 Django的文件上传流程简介 在Django中,文件上传的流程可以简单概括为以下几个步骤: 用户在网页上选择要上传的文件,并点击上传按钮。 前端将文件发送给后端服务器。 Django后端接收到文件并保存到指定的位置。 根据需求对文件进行处理,如存储到数据库、生成缩略图等。 返回上传结果给用户。 2. Django文件上传的实现步骤 2.1 设置文件上传配置 首先在settings.py文件中找到MEDIA_ROOT和MEDIA_URL两个配置项。MEDIA_ROOT指定了文件上传后的存储路径,而MEDIA_URL则是文件在网页中的访问路径。 MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = '/media/' 2.2 编写文件上传表单 然后在前端编写一个文件上传表单。在Django中,可以使用forms模块来方便地创建表单。 文件上传表单示例: from django import forms class UploadFileForm(forms.Form): file = forms.FileField() 2.3 处理文件上传请求 当用户提交文件上传表单后,我们需要在后端处理文件上传的请求。在Django中,可以使用视图函数来处理请求。 处理文件上传的视图函数示例: from django.shortcuts import render from .forms import UploadFileForm def upload_file(request): if request.method == 'POST': form = UploadFileForm(request.POST, request.FILES) if form.is_valid(): file = form.cleaned_data['file'] # 在这里对文件进行处理,如保存到指定位置、生成缩略图等 # .

(C语言版)力扣(LeetCode)面试题 17.04. 消失的数字5种解法

消失的数字 题目介绍第一种解法:按位异或第二种解法:公式运算第三种解法:临时数组第四种解法:相加再相减第五种解法:快排加二分查找结语 题目介绍 该题目取自力扣(LeetCode)面试题 17.04. 消失的数字 链接:消失的数字 该题目主要考察时间复杂度的把握,题目如下: 数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗? 注意:本题相对书上原题稍作改动 示例 1: 输入:[3,0,1] 输出:2 示例 2: 输入:[9,6,4,2,3,5,7,0,1] 输出:8 提示1: 你需要多长时间才能算出缺失数字的最小有效位? 提示2: 要找到缺失的数字中的最小有效位,你其实知道有多少个 0 和 1。例如,如果你看到最小有效位有 3 个 0 和 3 个 1,那么缺失的数字的最小值必定是 1。想想看:在任何 0 和 1 的序列中,你会得到 0,然后是 1,然后又是 0,然后又是 1,以此类推。 提示3: 一旦确定最小有效位是 0(或 1),就可以排除所有不以 0 作为最小有效位的数。这个问题和前面的有什么不同? 第一种解法:按位异或 这个解法我们先看一张图: 这种算法的思路主要是先设临时变量x=0,让它与nums数组中的数遍历按位异或, 此时x保存按位异或的值,再与0-n按位异或,最后得到的值就是缺的那个数字。 代码如下: int missingNumber(int* nums, int numsSize){ int misNum = 0; for(int i = 0; i < numsSize; i++) misNum ^= nums[i]; for(int j = 0; j < numsSize + 1; j++) misNum ^= j; return misNum; } 这里主要是利用了按位异或的特性,任何数与他本身按位异或得到的就是0;

Springboot @Validated注解详细说明

在Spring Boot中,@Validated注解用于验证请求参数。它可以应用在Controller类或方法上 1、引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency> 2、参数说明与使用示例 注解验证的数据类型描述@NotNull任意类型验证属性不能为null@NotBlank字符串验证字符串属性不能为空且长度必须大于0@Size(min,max )CharSequence Collection Map Array字符串:字符串长度必须在指定的范围内 Collection:集合大小必须在指定的范围内 Map:map的大小必须在指定的范围内 Array:数组长度必须在指定的范围内@Min整型类型验证数字属性的最小值@Max整型类型验证数字属性的最大值@DecimalMin数字类型验证数字属性的最小值(包括小数)@DecimalMax数字类型验证数字属性的最大值(包括小数)@Digits(integer,fraction)数字类型验证数字属性的整数位数和小数位数@Email字符串类型验证字符串属性是否符合Email格式@Pattern字符串验证字符串属性是否符合指定的正则表达式@Positive数字类型验证数值为正数@PositiveOrZero数字类型验证数值为正数或0@Negative数字类型验证数值为负数@NegativeOrZero数字类型验证数值为负数或0@AssertTrue布尔类型参数值必须为 true@AssertFalse布尔类型参数值必须为 false@Past时间类型(Date)参数值为时间,且必须小于 当前时间@PastOrPresent时间类型(Date)参数值为时间,且必须小于或等于 当前时间@Future时间类型(Date)参数值为时间,且必须大于 当前时间@FutureOrPresent时间类型(Date)参数值为时间,且必须大于或等于 当前日期 @Data public class User { // @NotNull:验证属性不能为null。 @NotNull(message = "用户名不能为null") private String username; // @NotBlank:验证字符串属性不能为空且长度必须大于0。 @NotBlank(message = "用户名不能为空且长度必须大于0") private String username1; // @Size:验证字符串属性的长度范围。 @Size(min = 6, max = 20,message = "密码最小6位,最长20位") private String password; // @Min:验证数字属性的最小值。 @Min(value = 18,message = "年龄最小18岁") private int age; // @Max:验证数字属性的最大值。 @Max(100) private int age1; // @DecimalMin:验证数字属性的最小值(包括小数)。 @DecimalMin("

TI毫米波雷达人体生命体征(呼吸、心跳)信号提取算法(IWR6843ISK+DCA1000EVM)

目录 一、引言 二、毫米波雷达检测呼吸、心跳基本原理 1.TI官方开发资料: 2.博主“调皮连续波”开源资料以及原理讲解: 三、 毫米波雷达提取呼吸、心跳信号Matlab算法处理 1.硬件平台: IWR6843ISKEVM+DCA1000EVM 2.mmavestudio参数设置: 配置说明: 算法流程简介: (1) 预处理: (2)粗略的人体定位:距离维FFT (3)消除静态干扰算法【因为后面用了滑动平均去噪,故这里不做静态干扰算法处理】 (4)经典算法提取相位:相位反正切 (5)相位解缠绕 (6)相位差分 (7)脉冲噪声去除:滑动平均滤波 (8)带通滤波器输出呼吸信号: 带通滤波器的设计可以参考上一篇内容:MATLAB设计滤波器之新版filterDesigner使用_CoCo哥的博客-CSDN博客 (9)带通滤波器输出心跳信号: (10)提取心跳波的包络线,归一化心跳波 四、参考资料 已上代码资料到csdn的资源区: 五 、总结 一、引言 非雷达科班出身,“入坑”毫米波雷达一年多,现在把入门毫米波雷达检测呼吸、心跳的传统与改进算法进行开源并归纳整理了相关的资料。欢迎交流以及专业人士的指正。 二、毫米波雷达检测呼吸、心跳基本原理 1.TI官方开发资料: Vital Signs 68xx Users Guide (ti.com) 2.博主“调皮连续波”开源资料以及原理讲解: 干货 | IWR1642EVM呼吸心跳原始数据采集与仿真分析(含MATLAB代码和数据) (qq.com) (1)线性调频连续波雷达基本原理(第1讲): 干货-线性调频连续波雷达基本原理(第1讲) (2)线性调频连续波雷达基本原理(第2讲): 干货-线性调频连续波雷达基本原理(第2讲) (3)线性调频连续波雷达基本原理(第3讲): 干货-线性调频连续波雷达基本原理(第3讲) 3. 驾驶员生命体征检测原理视频说明(1642EVM,77GHZ)中文讲解: 毫米波雷达的应用无处不在- 1.4 对驾驶员心跳呼吸检测的应用-模拟与混合信号在线培训- 德州仪器(TI)官方视频课程培训 三、 毫米波雷达提取呼吸、心跳信号Matlab算法处理 以下matlab代码基于“调皮连续波”的77GHz IWR1642EVM的算法处理代码进行改进,同时参考了期刊论文文献: 《基于毫米波雷达的生命体征检测》(张兰春,顾海潮)重新设计了带通滤波器分离呼吸心跳信号,并且还参考了另一篇论文:《mmHRV_Contactless_Heart_Rate_Variability_Monitoring_Using_Millimeter-Wave_Radio》对提取的心跳信号进行估计包络的归一化处理。 1.硬件平台: IWR6843ISKEVM+DCA1000EVM 2.mmavestudio参数设置: 配置说明: 雷达配置:一帧2个chirp,一帧50ms,ADC采样点为200个,采样率为4Msps,数据处理时仅采用每帧的第一个chirp。 毫米波雷达发射起始频率:f0=60.25GHz 调频斜率:S=64.985MHz/us(~65e17) 有效带宽B=ts*S=3.24925GHz≈3.25GHZ 距离分辨率:ΔR=0.04615m

文心一言没有体验上,看看讯飞星火认知大模型

目录 前言 正文 1.简单对话环节 1.1什么是讯飞星火认知大模型 1.2你都可以干一些什么 1.3你的训练数据库还在持续更新么 1.4今天是哪一天 1.5宇宙中有哪些目前认为可能存在生命的星球 2.辅助学习对话 2.1我想完成一篇关于CT检测技术的论文综述,你有什么好的建议么 ? 2.2可以给我一个文献综述的模板么 3.具体知识询问 3.1CT的原理 3.2目前而言,CT都有那些种类 3.3对于未来CT的发展有何看法 3.小结 前言 正好今天看到了一个科大讯飞股份有限公司招聘实习生的通知,同时讯飞星火认知大模型的内测通知下来了,今天我就来体验一下,顺便辅助我完成一下作业。 科大讯飞股份有限公司 招聘:中文 实习生招聘 专业不限 项目内容:ChatGPT的问世标志着“对话式大语言模型技术”的风头正劲,使得AI领域焕发出新的活力。为此,讯飞研发团队投入巨大精力,立志研发一款以中文为核心的新一代认知智能大模型。大模型融合了跨领域的知识体系和卓越的语言理解能力,能够在自然对话的基础上,高效地理解和执行各种任务。大模型从海量数据和大规模知识中不断学习和成长,实现了从提出问题、制定规划到解决问题的全流程闭环。 岗位职责: 1.数据构建,按要求编写文本数据 2.数据质检,质检相关数据的规范度 3.数据标注 正文 1.简单对话环节 1.1什么是讯飞星火认知大模型 您好,我是科大讯飞研发的认知智能大模型,我的名字叫讯飞星火认知大模型。我可以和人类进行自然交流,解答问题,高效完成各领域认知智能需求。 1.2你都可以干一些什么 我是讯飞星火认知大模型,我可以通过自然语言交互的方式,为您提供包括语言理解、问答、推理等各类认知智能服务。 1.3你的训练数据库还在持续更新么 是的,我的训练数据集是在持续更新的。我的研发团队会不断地收集、筛选和添加新的文本数据,以使我能够更好地理解和回答各种问题。同时,他们也会不断优化我的算法和模型,以提高我的性能和准确性。所以可以说,我的训练数据集是一个长期的、不断增长和改进的过程。 1.4今天是哪一天 今天是2023年2月27日。 1.5宇宙中有哪些目前认为可能存在生命的星球 目前认为可能存在生命的星球包括: 1. 水星和金星:由于它们离太阳比较近,表面温度非常高,不适合生命生存。 2. 火星:火星上存在液态水和有机分子,因此有可能存在微生物或其他形式的生命。 3. 木星的卫星欧罗巴:欧罗巴表面有大量的冰层,但科学家们发现了一些有机分子,这表明它可能存在生命。 4. 土星的卫星泰坦:泰坦表面上也有大量的冰层,但科学家们发现了许多有机分子,这也表明它可能存在生命。 5. 天王星和海王星:由于它们的大气层中含有甲烷等有机化合物,以及一些冰层下的海洋,科学家们认为它们也可能存在生命。 6. 地球以外的其他星球:例如开普勒-452b、Kepler-62f等行星,它们都被认为是类地行星,具备了支持生命的条件。 2.辅助学习对话 2.1我想完成一篇关于CT检测技术的论文综述,你有什么好的建议么 ? 撰写一篇关于CT检测技术的论文综述需要对CT检测技术有深入的了解。以下是一些建议,帮助您组织和撰写这篇论文: 1. 确定论文主题:首先明确您的论文主题,例如CT检测技术的原理、应用、优缺点等。这将有助于您在撰写过程中保持关注重点。 2. 文献检索:进行广泛的文献检索,收集与您的主题相关的研究文章、报告和专著。确保涵盖了各个年代和地区的研究成果,以便全面了解CT检测技术的发展历程。 3. 阅读和分析文献:仔细阅读所收集到的文献,并对关键观点和结论进行记录。在阅读过程中,注意区分主要观点和次要观点,以便在综述中突出重点。 4. 组织结构:根据您的论文主题和所收集到的文献,设计一个清晰的组织结构。可以考虑使用传统的摘要-方法-讨论(Methods-Results-Discussion)模式,或者根据您的研究重点采用其他结构。 5. 撰写摘要:在完成综述的主体部分之前,先撰写一份简洁的摘要。摘要应包括论文主题、目的、方法、结果和主要结论。这将有助于您在撰写过程中保持关注重点。 6. 撰写正文:按照预定的组织结构,开始撰写正文。在每个部分中,详细描述已有研究的方法、结果和局限性。同时,阐述您的观点和看法,以及未来研究方向的建议。