threejs多种方式封装飞线组件(几何、贴图、着色器)

文章目录 前言飞线实现效果核心思路几何体实现纹理贴图体实现着色器实现 代码实现基类引入组件飞线封装 总结 前言 之前在研究threejs时,尝试了通过线几何体、通过纹理贴图、通过着色器等几种方式实现飞线效果,现在将这几种方式使用 typescript, 采用面向对象的方式封装整理并记录下来,思路供大家参考。 飞线实现效果 几何体实现 贴图实现 着色器实现 核心思路 几何体实现 通过 TubeBufferGeometry 创建轨迹线模型采用相同的方式,从轨迹线的点集合中截取一段创建移动的飞线,通过 THREE.Line —— lerp 实现渐变色通过tween操作动画,每次重新设置线几何体的点坐标,实现动画效果 采用这种方式在思路上不难理解,但是需要使用者清楚 THREE.BufferGeometry 的使用。 纹理贴图体实现 通过 THREE.CatmullRomCurve3 创建轨迹线,从上面截取点创建 THREE.Line 几何体作为轨迹线使用 THREE.TextureLoader 给模型表面贴图通过tween操作动画,每次操作纹理的 offset,实现动画 在网上找了个简单的纹理图,照理来说应该把它的背景色挖空: 着色器实现 着色器的实现相比复杂很多,主要指出关键部分: 创建点集 仍然通过THREE.CatmullRomCurve3拾取点,数量为 nsetAttribute 给每个点传递一个索引属性,这个属性通过 attribute 变量传到着色器中,在实现飞线效果时有重要作用 创建着色器 通过THREE.ShaderMaterial自定义着色器,通过tween向其传入 [0, n] 范围内不断变化的时间 uTime 点集的范围和时间循环的范围都是 [0, n],uTime 是不断变化的,给点索引值范围为 [uTime - m, uTime + m] 的粒子群们赋予着色器效果:粒子的大小由其索引值确定,索引值大的方向为头部,size更大 ; [uTime - m, uTime + m] 外的粒子们设置透明。随着uTime的不断变化,上述过程将会反复实现,形成飞线动画 代码实现 基类 import * as THREE from 'three'; interface flyLineBegin2End { begin: number[]; end: number[]; height: number; } export default abstract class FlyBase { // 必须声明的属性 abstract scene: THREE.

【C语言编程题】给你一个整数数组 nums ,请计算数组的中心下标 。数组中心下标是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。求数组中心下标 寻找数组中心下标 python

一、题目要求 给你一个整数数组 nums ,请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于 数组最右端同样适用。 如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。 示例: 输入:nums = [1, 7, 3, 6, 5, 6]输出:3 解释: 中心下标是 3 。 左侧数之和 sum = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11 , 右侧数之和 sum = nums[4] + nums[5] = 5 + 6 = 11 ,二者相等。 输入:nums = [2, 1, -1]输出:0 解释: 中心下标是 0 。

Echarts 重绘

1.删除之前绘画的实例 echarts.init(this.$refs.xxx).dispose(); 2.再次调用数据请求方法 进行重绘

弗洛伊德Floyd算法:代码详解及运行过程图解

#弗洛伊德算法:找到任意所有顶点到所有顶点的最短路径 #其实我觉得就是把迪杰斯特拉算法执行了n次,然后抽象出来,直接对图的邻接矩阵进行操作最终得到从所有结点到所有结点的最短路径 #弗洛伊德算法:找到任意所有顶点到所有顶点的最短路径 #其实我觉得就是把迪杰斯特拉算法执行了n次,然后抽象出来,直接对图的邻接矩阵进行操作最终得到从所有结点到所有结点的最短路径 def Floyd(g): A=[[0]*MAXV for i in range(MAXV)]#用A存放之后的最短路径的邻接矩阵 path=[[0]*MAXV for i in range(MAXV)] for i in range(g.n): for j in range(g.n): A[i][j]=g.edges[i][j] if i !=j and g.edges[i][j]<INF: path[i][j]=i#path仍然是到这个结点最短路径的前一个结点 else: path[i][j]=-1 #k作为中转顶点去遍历每一个顶点,所以时间复杂度是n*n*n for k in range(g.n): for i in range(g.n): for j in range(g.n): if A[i][j]>A[i][k]+A[k][j]:#这一步得看图才能理解 A[i][j]=A[i][k]+A[k][j] path[i][j]=path[k][j] Dispath(A,path,g) def Dispath(A,path,g): for i in range(g.n): for j in range(g.n): if A[i][j]!=INF and i!=j: print("顶点%d到%d的最短路径长度:%d \t路径:"%(i,j,A[i][j]),end='') k=path[i][j] apath=[j] while k!

Java下载Excel文件

以下的java使用的框架是Jfinal. 1. 创建流和工作薄. ServletOutputStream out = null; HSSFWorkbook workbook =null; try { workbook = new HSSFWorkbook(); 2. 创建工作表. HSSFSheet sheet = workbook.createSheet("sheet1"); 3.创建第一行的标头. /*第一行*/ HSSFRow first_row = sheet.createRow(0); first_row.createCell(0).setCellValue("序号"); first_row.createCell(1).setCellValue("日期"); first_row.createCell(2).setCellValue("时限"); first_row.createCell(3).setCellValue("标题"); first_row.createCell(4).setCellValue("程度"); first_row.createCell(5).setCellValue("编号"); first_row.createCell(6).setCellValue("备注"); 4. 获取数据. /**获取数据b*/ List<Record> list= service.getListByParams(param1, param2, status,search,...); 5.数据回填. int c = 1;//从第二行开始填数据 for(Record item:list) { HSSFRow row = sheet.createRow(c); row.createCell(0).setCellValue(c);//序号从1开始 row.createCell(1).setCellValue(DateUtils.date2Str(item.getDate("createDate"), "yyy年MM月dd日")); row.createCell(2).setCellValue(DateUtils.date2Str(item.getDate("endTime"), "yyy年MM月dd日")); row.createCell(3).setCellValue(item.getStr("title")); row.createCell(4).setCellValue(item.getInt("num")); row.createCell(5).setCellValue(model.getNum()); row.createCell(6).setCellValue(model.getRemark()); c++; } 6. 设置响应头并写出. HttpServletResponse response = getResponse();//获取响应 response.

(附源码)springboot银行客户管理系统 毕业设计250903

摘要 本论文主要论述了如何使用JAVA语言开发一个银行客户管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,springboot框架进行开发。在引言中,作者将论述银行客户管理系统的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶段分析设计。 银行客户管理系统的主要使用者分为管理员和用户与客户经理,实现功能包括管理员:首页、用户管理、存款服务、信用卡信息、客服咨询、银行卡信息、支付结算、信用卡交易、信用卡还款、挂失业务、密码修改、信用卡限额修改,用户;首页、存款服务、信用卡信息、客服咨询、银行卡信息、支付结算、信用卡交易、信用卡还款、挂失业务、密码修改、信用卡限额修改等功能。由于本网站的功能模块设计比较全面,所以使得整个银行客户管理系统信息管理的过程得以实现。 本系统的使用可以实现银行客户管理系统管理的信息化,可以方便管理员进行更加方便快捷的管理。 关键词:银行客户管理系统;JAVA语言;MYSQL数据库;springboot框架 Abstract This paper mainly discusses how to use java language to develop a bank customer management system. This system will carry out the work of each stage in strict accordance with the software development process, using B / S architecture and springboot framework. In the introduction, the author will discuss the current background of bank customer management system and the purpose of system development. The subsequent chapters will analyze and design the system in each stage in strict accordance with the software development process.

神经网络——1.感知机

使用鸢尾花数据集中的其中花瓣长和花瓣宽数据,训练一个二分类的感知器,对0类iris和非0类iris进行二分类。 一、数据导入与预处理 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.datasets import load_iris iris=load_iris() df=pd.DataFrame(iris.data,columns=['sepal_length','sepal_width','petal_length','petal_weigh']) df['label']=iris.target df.describe() #绘制散点图,观察数据特点 plt.scatter(df[df['label']==0]['sepal_length'],df[df['label']==0]['sepal_width'],marker='o',c='g') plt.scatter(df[df['label']!=0]['sepal_length'],df[df['label']!=0]['sepal_width'],marker='x',c='r') plt.xlabel('sepal_length') plt.ylabel('sepal_width') plt.legend(['0','else']) plt.title('scatter of the 0-type iris and non-0-type iris') plt.show() df['new_label']=[1 if x==0 else -1 for x in df['label']]#发现可以用感知机根据两维数据划分0类和非0类,进行标签转换 df.head() X=np.array(df[['sepal_length','sepal_width']]) y=np.array(df['new_label']) y.resize(len(df),1) 二、模型定义 def hardlims(a):#激活函数 return np.array([[1] if x>=0 else [-1] for x in a]) def predict(W,b,X):#感知器 return hardlims(X@W+b)#X(n,2),W(2,1),y(n,1) def loss(W,b,X,y):#损失函数 return -(y*(X@W+b)).

Windows下提示adb Interface 找不到驱动程序解决办法 和 Windows设备管理器Android感叹号问题

Windows下提示adb Interface 找不到驱动程序解决办法 和 Windows设备管理器Android感叹号问题 参考链接:https://blog.csdn.net/weixin_44775434/article/details/125707348 adb interface usb driver 32/64位正式版是款针对安卓手机打造的通用驱动程序。adb interface usb driver 32/64位官方版又称adb驱动,一般手机与电脑连接后需要正确安装这个驱动程序才能正常使用。并且adb interface usb driver 32/64位还可以完美兼容32位和64位操作系统。 问题描述: 做安卓自动化测试时, 使用数据线连接手机的时候报ADB Interface找不到驱动程序。 可以看到“adb interface”这里的显示叹号的,说明adb驱动没有安装 解决步骤: 1、右键我的电脑 → 管理 → 设备管理器; 2、双击带黄色感叹号的ADB Interface; 3、点击【更新驱动程序】; 4、点击【浏览计算机以查找驱动程序软件】; 5、选择【从计算机的设备驱动程序列表中选择】; 6、点击【下一步】; adb interface 驱动程序,下载链接: https://www.onlinedown.net/soft/1116710.htm 7、点击【从磁盘安装】; 8、点击浏览,选择SDK目录:sdk\extras\google\usb_driver,要保证该目录下必须有android_winusb.inf这个文件(自行搜索下载SDK工具) ,点击【确定】; 9、点击【下一步】; 10、预警提示选:是 11、安装成功,需要重启计算机 Windows设备管理器Android感叹号问题 参考链接: https://blog.csdn.net/csdnlizhihao/article/details/123691753 故障现象:连接手机设备,直接提示Android感叹号。 原因:缺少驱动 解决办法:驱动精灵自动搜索安装驱动解决

删除鼠标右击的Open Folder as PyCharm和其他相同情况快捷键

win+R键,输入regedit,进入注册表 删除鼠标右键空白处时显示“Open Folder as PyCharm Project”选项 直接复制或者自行查找到如下地址 Computer\HKEY_CLASSES_ROOT\Directory\Background\shell\PyCharm Community Edition # 或者 Computer\HKEY_CLASSES_ROOT\Directory\Background\shell\PyCharm 再删除PyCharm Community Edition(或者Pycharm)整个文件夹 ———————————————————————————————————————————— 删除鼠标右键文件夹时 "Open Folder as PyCharm " 选项 直接复制或者自行查找到如下地址 Computer\HKEY_CLASSES_ROOT\Directory\shell\PyCharm Community Edition # 或者 Computer\HKEY_CLASSES_ROOT\Directory\shell\PyCharm 再删除PyCharm Community Edition(或者Pycharm)整个文件夹 ———————————————————————————————————————————— 删除鼠标右键“Edit with PyCharm”选项 直接复制或者自行查找到如下地址 Computer\HKEY_CLASSES_ROOT\*\shell\Open with PyCharm Community Edition # 或者 Computer\HKEY_CLASSES_ROOT\*\shell\Open with PyCharm 再删除PyCharm Community Edition(或者Pycharm)整个文件夹 ———————————————————————————————————————————— 其他软件 其他软件相似的道理只要找到他们的位置即可,如Visual Studio时anycode

毕业设计 基于STM32的环境质量监测系统(源码+原理图+论文)

文章目录 0 前言1 设计架构功能设计 2 原理图3 软件设计4 实现效果5 相关代码6 最后 0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是 🚩 毕业设计 基于STM32的环境质量监测系统(源码+原理图+论文) 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:3分 🧿 项目分享: https://gitee.com/sinonfin/sharing 1 设计架构 本系统主要由单片机系统、液晶显示、温湿度采集模块、PM2.5采集模块和甲醛模块。采用单片机作为主控芯片,将采集到的温湿度和PM2.5,甲醛浓度显示到LCD1602液晶上,来实现当前环境的采集。 功能设计 主要功能: 使用STM32为主控制器,可采集当前环境下的温湿度、甲醛、PM2.5值,当采集值超过预设阀值时,蜂鸣器自动报警。采集到的温湿度、甲醛、PM2.5会显示在LCD1602显示屏上,且自动上传至上位机(手机),可以在手机查收采集到的各种参数。可通过三个按键任意设置报警阀值。 1.使用STM32F103C8T6单片机做主控制器。 2.使用LCD1602显示采集到的温湿度、甲醛、PM2.5值。 3.使用ESP8266上次至手机,采集数据实时上传到手机上。 4.使用DHT11采集当前环境温湿度。 5.使用ZE08-CH2O 采集甲醛值。 6.使用GP2Y1014AU粉尘传感器采集当前环境PM2.5值。 7.三个按键可任意设置报警阀值,当采集值超过了报警阀值后,蜂鸣器会自动报警。 2 原理图 3 软件设计 整体流程框图是描述整个系统运行过程的流程图。通过框图可以看出主程序是如何对各个子程序的调用来实现整个系统功能的。根据系统概述的分析,画出系统软件流程图如图 温度采集模块是本系统的核心模块之一,根据传感器的通信协议规定,DHT11不会主动采集环境温湿度,只有单片机通过I/O口发出激发信号,主动驱动传感器,传感器才会工作,这时,单片机将数据线的控制权交给传感器,由传感器完成数据采集,模数转换,数据发送的任务,而单片机通过对I/O口高低电平的不断检测,来解析出正确的数字信息[15]。根据以上流程,设计DHT11温湿度采集软件流程图如图 篇幅有限,其他流程不在这里过度复述。。 4 实现效果 正面 反面 5 相关代码 #include<stm32.h> //头文件 #include<intrins.h> #include<stdio.h> #include<math.h> //Keil library sbit DATA=P2^4; //数据 sbit SCK=P2^3; //时钟 #define TEMP_ML 0x03 //000 0001 1 温度命令 #define HUMI_ML 0x05 //000 0010 1 湿度命令 unsigned char error; //全局错误变量 unsigned char ack; //全局错误变量 //float temp_zi; //全局应答变量 //float humi_zi; //全局应答变量 unsigned char temp_h; //全局应答变量 unsigned char temp_LL; //全局应答变量 unsigned char humi_h; unsigned char temp_LL #define uchar unsigned char //定义一下方便使用 #define unit unsigned int #define ulong unsigned long unsigned int recs=0;//接收次数 uchar TempBuffer[5];uchar humibuffer[4]; const unsigned char SHUO[15]=”0123456789.

PTA 7-4 逢7击掌

PTA 7-4 逢7击掌 一群人围坐成一圈玩报数的游戏。游戏规则是: 从1开始报数,若遇到7的倍数或者个位为7的数则击掌代替,若犯错则要受罚。 可是这些人都太聪明了,竟然没人犯错!请问同样聪明的你,当报数到 n 时,总击掌次数 c 是多少? 输入格式 n 输出格式 c 输入样例 21 输出样例 4 代码长度限制 16 KB 时间限制 100 ms 内存限制 64 MB 代码: #include <stdio.h> int main() { int n,c=0,count;//c:计数,count:记录n中有多少个70 scanf("%d",&n); count=n/70;//每70个数会有16个数满足题目要求 n%=70; for(int i=1;i<=n;i++) //利用for循环 { if (i%7==0||i%10==7)//判断是否有个位为7或倍数为7的数 c++;//若有则进行累加 } c=c+count*16;//每70中有16个数满足要求,加上循环判断的数 printf("%d\n",c); return 0; } 解题思路 对输入的数字n进行判断(判断n中有多少个70,并且进行求余)对求余后的数字进行循环,判断各位为7(对7求余等于0)或者7的倍数(对10求余等于7)将所有满足要求的数字数量相加

纷享销客自定义函数命名空间及实例

1、按钮 在线文档地址:https://www.fxiaoke.com/mob/guide/crmdoc/src/8-1-2%E8%87%AA%E5%AE%9A%E4%B9%89%E6%8C%89%E9%92%AE.html 返回参数有三种返回值,如下: 1、map:用以阻断或继续按钮的执行; 2、String:返回的需要是一个可以访问的网址,点击按钮之后将会跳转至指定的网址; 3、UIAction:跳转至系统自己的某些组件页面 按钮分为两种类型,如下: UI按钮:1、涉及到页面跳转的时候,使用此按钮,返回参数是String的url网址、或者是UIAction跳转至编辑页面、打印模板等指定组件; 2、批量数据操作时,用此按钮可以获取到数据集合是context.dataList 业务按钮:1、进行前验证、执行动作的补充、执行完成后的提醒等; 2、批量操作时,用此按钮分别获取到每一条数据用context.data 1.1、Map 应用场景:此返参类型在按钮的前验证中触发,用于进行数据的验证、可通过对context.data的字段进行赋值,修改最终的数据。 返参说明:error : 是否出错 errorMessage : 出错后提示的错误信息 block : 提示异常信息后,是否阻塞保存 如下,判断保养时间是否超时并阻断提交 Datedate = 下次保养时间; log.info("下次保养时间为:"+date); Date now = Date.now(); boolean flag = now.daysBetween(date) > 60; if(flag){ log.info("下次保养时间超过了60天"); return [ "error":true, "errorMessage":"下次保养时间距离当前超过了60天", "block":true ] }else{ log.info("下次保养时间符合要求"); //输入正确,继续执行 return ["block": false]; } 1.1.1、获取新的页面填充之后的值进行校验 只能在前验证的位置获取到输入的参数,进行参数校验 2、获取新的表单页面的参数,需要在函数中设置自定义参数,然后在保存函数之后会提示匹配变量,获取表单数据直接通过变量名即可,如下 log.info("填写的退费金额变量:" + refund_param); 1.2、String 应用场景:在【执行动作】当中,进行指定页面路径的跳转。 返参为""或没有返参时,仅执行函数,不会进行页面跳转;有字符串返参时,可以用来进行网页路径的跳转,点击之后会在新的标签页打开指定的路径。 return"https://www.baidu.com/"; 1.3、UIAction 应用场景:跳转至纷享销客内的一些组件页面 如下,跳转至详情页 UIAction openDialogAction = OpenDialogAction.build{ userData = [:] //传递给自定义组件的数据键值对listtitle = "

GIS面积计算

1、度/秒互转 UPDATE 表名 SET geom = st_scale(shape, 1/3600.0,1/3600.0) 2、geom转wkt字符串 SELETC st_astext(t.shape) 3、wkt字符串转geom 并设置坐标系 SELECT st_setsrid(ST_GeomFromText(‘POINT(428626.908 110737.8)’), 4326) 4、获取图形中心点坐标 SELECT ST_X(st_centroid(c.shape)) AS x , ST_Y(st_centroid(c.shape)) AS y 5、A是否包含B ST_CONTAINS(A, b) 6、查询和修改SRID SELECT st_srid(geom) FROM road limit 1; UpdateGeometrySRID(varchar table_name, varchar column_name, integer srid); UpdateGeometrySRID(varchar schema_name, varchar table_name, varchar column_name, integer srid); UpdateGeometrySRID(varchar catalog_name, varchar schema_name, varchar table_name, varchar column_name, integer srid); –schema_name表示schema的名称,一般默认是public 示例: select UpdateGeometrySRID(‘road’, ‘geom’, 4326); –road为表名 –geom为空间字段 –4326为更新的SRID

共享单车的测试用例大致过程是怎样的呢?

文章转载链接:http://www.51testing.com/html/58/n-7792258.html 一、产品介绍 共享单车是企业向消费者投放的短程出行设施,主要是用于解决大众运输系统中的“最后一公里”问题,同时也实现了缓解交通阻塞、减低噪音和空气污染的功能。 共享单车主要由普通单车配备 GPS 定位装置、里程计数装置、限速装置等构成,往往带有不同的色彩和产品 logo 等。 二、测试要点 共享单车测试主要从界面测试、安全测试、兼容性测试、易用性测试、压力测试、功能测试和性能测试等几个方面考虑,具体分析见下文。 注:设计测试过程中我认识到一个面面俱到的测试流程需要非常缜密的考虑,由于时间、精力和经验上的限制,在下面给出的具体测试要点中可能存在一些关键点遗漏。对于您指出的不足,我十分乐意进行修改和完善 : ) 三、具体测试要点 界面测试 共享单车界面测试部分的具体要点如图: 四、安全测试 共享单车安全测试部分的具体要点如图: 五、兼容性测试 共享单车兼容性测试部分的具体要点如图: 六、易用性测试 共享单车易用性测试部分的具体要点如图: 七、压力测试 共享单车压力测试部分的具体要点如图: 八、功能测试 共享单车功能测试部分的具体要点如图: 九、性能测试 共享单车性能测试部分的具体要点如图: 十、整体一览 共享单车整体测试一览如图:

unity实现按键控制人物移动

在unity开发中我们经常会用到按键实现某些功能,如wasd控制人物的移动,具体怎么实现呢?代码如下: using System.Collections; using System.Collections.Generic; using UnityEngine; public class KeysMove : MonoBehaviour { // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { control(); } public void control() { if (Input.GetKey(KeyCode.W)) { this.transform.Translate(Vector3.forward); //gameObject.transform.Translate(0, 0, move, Space.Self); } else if (Input.GetKey(KeyCode.S))//按键盘s向下移动 { this.transform.Translate(Vector3.back); } if (Input.GetKey(KeyCode.A))//按键盘a向左移动 { this.transform.Translate(Vector3.left); } else if (Input.GetKey(KeyCode.D))//按键盘d向右移动 { this.transform.Translate(Vector3.right); } }

SpringBoot项目的创建(三):手动创建一个Maven工程,然后引入SpringBoot所需的dependency来完成 (不需联网,但复杂)

目录 1.配置Maven环境。2.创建一个新的maven项目3.创建出来的目录结构4 继承springboot父项目5.添加Spring Boot Maven插件6.添加spring和web模块的依赖7.创建入口类8.添加代码测试 1.配置Maven环境。 在以maven方式创建Spring Boot项目之前,需要先确保自己的Maven并配置好环境变量,并且在ideal中关联好maven环境。 参考文章:Maven详解(简介-作用-下载-安装-环境变量配置-配置文件说明-IDEA上配置Maven) 2.创建一个新的maven项目 3.创建出来的目录结构 目前这还只是一个普通的maven项目,还不是springboot项目 4 继承springboot父项目 在pom.xml文件中添加 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.0</version> <relativePath/> </parent> 继承父类的作用 当添加了spring-boot-starter-parent依赖之后,这个项目就是springboot项目了,项目中就可以直接继承父依赖中合理的默认值。 比如继承父项目可以提供以下功能: a.设置Java 1.8作为默认的编译器; b.UTF-8编码; c.允许省略常见依赖的版本标签。 d.识别资源过滤 ​ 例如,打包的时候把 src/main/resources 下所有文件都打包到包中。 <resource> <directory>src/main/resources</directory> <includes> <include>**/*.*</include> </includes> <filtering>true</filtering> </resource> e.识别插件的配置 ​ 比如 exec plugin, surefire, Git commit ID, shade 能够识别 application.properties 和 application.yml 类型的文件,同时也能支持 profile-specific 类型的文件(如: application-foo.properties and application-foo.yml,这个功能可以更好的配置不同生产环境下的配置文件)。 5.添加Spring Boot Maven插件 pom.xml文件中添加 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> 6.

超好用的5个IDEA神级插件,效率提升90%,最后一个是王炸

1.Lombok 简化臃肿代码插件 有了它,实体类中的get/set/构造/toString等方法,都不需要我们再手动写了,是不是很Nice! 2.Key Promoter x 快捷键提示插件 安装之后,点击右侧的Key Promoter x,就会看到好多快捷键,或者每次都会在右下角弹窗提示,有了它,可以帮助我们快速熟悉快捷键! 3.Alibaba Java Coding Guidelines 阿里巴巴代码规范检查插件 安装Alibaba Java Coding Guidelines插件后,idea会按照阿里Java开发手册上规范帮我们检查代码,然后对代码做不同颜色展示,鼠标放上去,会看到提示内容,帮助我们写出更规范的代码。 4.CodeGlance 显示代码缩略图插件 安装后,当代码很多的时候,方便查看,很有用。 5.Rainbow Brackets 彩虹括号插件 安装后,代码成对的括号显示相同的颜色,有了这个插件,我感觉近视都好了! 好啦,以上就是给大家推荐的几个超级好用的IDEA插件,欢迎指正,如果觉得有用,别忘了点赞关注加评论哦!拜了个拜!!!

MOSFET管(MOS管)基础

1场效应管和MOSFET管 1.1 什么是场效应管? 场效应晶体管(FieldEffffect Transistor缩写(FET))简称场效应管。它是利⽤控制输⼊回 路的电场效应来控制输出回路电流的⼀种半导体器件。由于它仅靠半导体中的多数载流 ⼦导电,⼜称单极型晶体管。 场效应管属于电压控制型半导体器件。具有输⼊电阻⾼、噪声⼩、功耗低、动态范围大、易于集成、没有⼆次击穿现象、安全⼯作区域宽等优点 两种类型: 结型场效应管(junction FET—JFET) ⾦属 - 氧化物半导体场效应管(metal-oxide semiconductor FET,简称MOS-FET) 1.2 什么是MOS管? MOS,是MOSFET的缩写。MOSFET ⾦属-氧化物半导体场效应晶体管,简称⾦氧半场效晶 体管。 ⼀般是⾦属(metal)—氧化物(oxide)—半导体(semiconductor)场效应晶体管,或者称是⾦ 属—绝缘体(insulator)—半导体。 MOS管属于场效应管 2 MOS管三个引脚 G:栅极(gate) S:源极(source) D:漏极(drain) 3 判定⽅法 G极—栅极,不⽤说⽐较好认 S极—源极,不论是P沟道还是N沟道,两根线相交的就是 D极—漏极,不论是P沟道还是N沟道,是单独引线的那边 4 寄生二极管的作用 如图,寄生二极管又称体二极管 防止Vds(漏极与源极之间的电压)过压时,烧坏MOS管 Vds过压时,寄生二极管先被反向击穿,大电流直接导向地端,从而保护mos管 防止MOS管的源极与漏极反接时烧坏MOS管 即源极接电源正极,漏极接电源负极时,电流回路通过寄生二极管流过,从而保护mos管 5 MOS管分类 5.1 按沟道分 寄生二极管指向D(漏极)为N沟道MOS管,简称NMOS; 寄生二极管指向S(源极)为P沟道MOS管,简称PMOS管 5.2 按材料分 增强型 栅极-源极电压 Vgs 为零时漏极电流为零,即截止,要Vgs正偏(“增强”)达到一定阈值才能导通 耗尽型 栅极-源极电压 Vgs 为零时漏极电流不为零,即导通 (栅极偏压就导通),”耗尽“载流子才会截止 源极和漏极结构上是对称的 栅极-源极电压可正可负 6 MOS管的特点和作用 具有输入阻抗高、开关速度快,热稳定性好,电压控制电流等优点 可作为放大器、电子开关等用途

VM虚拟机的搭建(Linux)

一.VMWare的安装 这里是Vmware17的下载地址Download VMware Workstation Pro 后续就是傻瓜式安装,不多赘述 二.安装CentOs镜像 附上下载地址Download (centos.org) 三.开始搭建 打开VMware,点击创建新的虚拟机 选择典型即可 选择稍后安装 下一步,命名和选择安装位置,C盘D盘都可以 可以选择分配硬盘的大小,这里20G一般来说够用 点击下一步 可以自定义虚拟机处理器的核数和内存等 这里找到刚才下载的镜像文件 点击关闭,点击完成 之后开启虚拟机 选择安装 可以选择中文,点击继续 稍等一会,安装位置又有感叹号,点进去 可以选择联网,之后点击开始安装即可 设置ROOT密码用来登录Linux系统,这里账号默认为root 得到这个界面,耐心等待 重启 输入对应的账号root 和密码,即可登录成功,完成简单搭建。 若启动时未加载网卡,因此IP地址初始化失败 此时 cd / cd etc cd sysconfig cd network-scripts vi ifcfg-ens33 输入i,进入编辑模式,将最后一行的onboot改为yes即可 之后按下esc,输入“:wq”保存推退出 之后再次进行查看,发现没问题 四.FinalShell的安装 利用finalShell来操作Linux系统会比较方便 附上下载地址http://www.hostbuf.com/downloads/finalshell_install.exe,默认安装即可。 选择SSH连接 名称自定义 主机为虚拟机IP地址,输入用户名root,密码 虚拟机ip可在VM中打开虚拟机输入ip addr查看 连接即可。 五.Jdk的安装 官网下载jdk8选择Linux系统,这里下载二进制包 首先将二进制包上传到Linux系统 解压安装包,使用命令 tar -zxvf jdk... -C /usr/local 之后配置环境变量 使用vim命令修改/etc/profile文件 在文件末尾加入 退出后,输入source /etc/profile使修改生效 输入java -version

新年新气象,努力奋上新时代

光阴似箭,日月如梭。转眼间已经到了2023年。刚步入大学半年的我多多少少还是会有些迷茫。面对当今社会严峻的就业形势。无数大学生的我深感焦虑。古人云;天降大任于是人也,必先苦其心志,劳其筋骨,饿其体肤。空乏其身,行必乱其所为,所以动心忍性,增益其所不能。每个普通人和没有先天因素飞人。在成功之前都是需要经历磨练的。作为一名当代的大学生。我们生逢其时,生在大好和平时代。又遇上逢百年未有之大变局。我们只有把握好现在,去做好需要做好的事情,并学习知识,强健体魄提升自己。根据自身的优势和劣势并结合自己所学的专业进行长远的规划和当前的小规划去实现目标。有一个好的规划能够给自己指明前进的方向。就像大海上有指明方向的海灯。就像俞敏洪所说:"遥望梦想前方,伸手触及希望,不畏雨雪风霜,何惧世事无常,在奋斗的路上,锁定目标不张望,奔向勇敢者的天堂,人生之路,说长也不长,在挫折的磨砺中,渐渐成长,责任担在肩膀,前程闪耀光芒。还有毛泽东说的;要想不经过艰难曲折,不付出极大的努力,总是一帆风顺,容易得到成功,这种想法只是幻想。不经历风雨怎见彩虹。广大青年牢记党的教诲,立志民族复兴,不负韶华,我们大学生在大学中要想有所进步和发展就要刻苦努力,奋勇当先,在自己的专业上要循序渐进更加优秀,助力祖国的发展。时刻关注那些祖国发展所面临的难题,虽然暂时没有到那种可以为领域做贡献的的能力,但只要一步一个脚印走下去肯定会走向成功的殿堂。

索命一问:一个SQL ,怎么分析加了哪些锁?

背景说明: 美团问数据库应该是非常多的,尤其喜欢考手写 SQL 然后问你这个 SQL 语句上面加了哪些锁, 你会发现其他厂面试基本很少会这样考,所以很多小伙伴遇到这种问题的时候都是一脸懵逼, 可以说是“夺命一问” 此文,40岁老架构师尼恩,用自己的深厚内功,为大家梳理了 加锁的四大场景、八大规则, 把这个 “夺命一问”, 彻底攻克。 现在把这个 题目以及参考答案,收入咱们的 《尼恩Java面试宝典》, 供后面的小伙伴参考,提升大家的 3高 架构、设计、开发水平。 注:本文以 PDF 持续更新,最新尼恩 架构笔记、面试题 的PDF文件,请从这里获取:码云 加锁的场景分析 场景1:唯一索引等值查询 场景1.1、查询的记录存在场景1.2、查询的记录不存在 场景 2:唯一索引范围查询场景 3:非唯一索引等值查询 场景3.1、查询的记录存在场景3.2、查询的记录不存在 场景 4:非唯一索引范围查询 接下来,按照以上4大场景,进行 sql 加锁的分析。 回顾一下,InnoDB 三种行锁: Record Lock(记录锁):锁住某一行记录Gap Lock(间隙锁):锁住一段左开右开的区间Next-key Lock(临键锁):锁住一段左开右闭的区间 哪些语句上面会加行锁? 1)对于常见的 DML 语句(如 UPDATE、DELETE 和 INSERT ),InnoDB 会自动给相应的记录行加写锁 2)默认情况下对于普通 SELECT 语句,InnoDB 不会加任何锁,但是在 Serializable 隔离级别下会加行级读锁 上面两种是隐式锁定,InnoDB 也支持通过特定的语句进行显式锁定: 3)SELECT * FROM table_name WHERE ... FOR UPDATE,加行级写锁 4)SELECT * FROM table_name WHERE .

(附源码)SSM仓库管理系统 毕业设计 061015

SSM仓库管理系统 摘要 本论文主要论述了如何使用java语言开发一个SSM仓库管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述仓库管理系统的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶段分析设计。 SSM仓库管理系统的主要使用者分为管理员、和用户,实现功能包括:首页、用户管理(管理员、用户)、更多管理(商品库存管理、入库申请管理、出库申请管理、过户申请管理、仓库费用管理等)由于本网站的功能模块设计比较全面,所以使得整个仓库管理系统的过程得以完善。本系统的使用可以实现仓库管理的信息化,可以方便管理员进行更加方便快捷的管理,可以提高仓库管理的管理效率。 关键词:MYSQL数据库;仓库管理;SSM框架 SSM warehouse management system Abstract This paper mainly discusses how to use java language to develop an SSM warehouse management system. This system will carry out the work of each stage in strict accordance with the software development process, and adopt B / S architecture and object-oriented programming idea for project development. In the introduction, the author will discuss the current background of the warehouse management system and the purpose of system development.

配置安全的linux-apache服务器(5)

实验简介 实验所属系列:Linux网络服务配置与安全 实验对象: 本科/专科信息安全专业、网络工程 相关课程及专业:系统安全配置、服务器配置、计算机网络 实验时数(学分):2学时 实验类别:实践实验类 预备知识 虚拟主机简介 虚拟主机(Virtual Host)是指在一台主机上运行的多个Web 站点,每个站点均有自己独立的域名或IP地址。虚拟主机允许为不同的IP地址、主机名或同一机器上的不同端口运行不同的服务器站点。譬如,可以在同一个web服务器上使用虚拟主机来运行 http://www.example.com 和 http://www.anotherexample.com 这两个网站。虚拟主机对用户是透明的,就好像每个站点都在单独的一台主机上运行一样。 SSL介绍 默认情况下,客户端使用http协议访问apache服务器,服务器和它的客户之间的通信就不会被加密,这并不能保证数据传输过程中的安全。对于索求信用卡信息的电子商务网站需要更加可靠的传输,而SSL加密连接可以帮助浏览者更加安全可靠的传输数据。使用SSL的是HTTPS协议。 在搭建安全的apache服务器,配置使用基于SSL的HTTPS协议之前,先了解一些证书的一些基本概念。 SSL证书可以在客户端浏览器和Web服务器之间建立一条SSL安全通道。首先要有一个根证书,然后用根证书来签发服务器证书和客户证书。SSL必须安装服务器证书来认证,在此环境中,通常有三个证书:根证书,服务器证书,客户端证书。在生成证书之前,一般会有一个私钥,用私钥生成证书请求,最后利用证书服务器的根证来签发证书。 实验目的 Apache是一种开放源码的HTTP服务器,由于其多平台和安全性而被广泛使用,是最流行的Web服务器端软件之一。本实验首先通过基本配置演示了如何在redhat linux环境下搭建多个基于apache服务器的虚拟主机。在此基础上,进一步完成了基于apache服务器的安全配置,包括基于用户名的认证、基于IP地址的认证以及使用https协议进行双向认证的过程。 实验环境 测试系统: CentOS IP:10.1.1.47 WinXP IP:10.1.1.215 所需软件:httpd-2.2.15-5.el6.i686.rpm、openssl-0.9.8l.tar.gz、od_ssl-2.8.0-1.3.17.tar.gz 实验步骤一 基本配置:安装和启动Apache服务器 1、Apache软件的安装 在RHEL6.0中可以通过两种方式安装Apache服务器。一种是在RHEL6.0光盘上找到自带的httpd-2.2.14-5.el6.i686.rpm软件包。本次实验使用的是centos,软件包已提前下载好。 其中,httpd-manual-2.2.15-5.el6.noarch.rpm是Apache相关的帮助手册。 使用rpm命令安装httpd-2.2.15,如果出现如下安装包的依赖问题 先用rpm -ivh httpd-tools-2.2.15-86.2.x86_64.rpm安装httpd-tools,然后再执行上述安装命令即可。 系统安装成功后,会创建/etc/httpd及相关的目录。 在/etc/httpd中的文件和目录的作用如下: (1)/etc/httpd/conf/httpd.conf: Apache的主配置文件。 (2)/etc/httpd/logs:其实是符号链接,指向/var/log/httpd目录,用于存放Apache服务相关的日志文件。 (3)/etc/httpd/modules:符号链接,指向/usr/lib/httpd/modules目录,用于存放Apache服务相关的模块。 此外,和apache服务相关的文件及目录还有: (4)/usr/sbin/apachectl: Apache控制脚本,用于启动、停止、重启服务。 (5)/usr/sbin/httpd: Apache服务器的程序文件。 (6)/usr/share/doc/httpd-2.2.14:Apache说明文档目录。 (7)/var/www: Apache提供的默认网站存放目录。 2、Apache 服务器的启动和停止 当安装完Apache服务器后,如果想让其提供Web服务还必须启动它。 (1)使用service命令来启动和重新启动Apache服务器: #service httpd start 和 #service httpd restart (2)使用控制脚本来启动和停止服务 #/usr/sbin/apachectl start 和 #/usr/sbin/apachectl stop

常见的锁策略、CAS及它的ABA问题

目录 前言 一、常见的锁策略 1.1 乐观锁 vs 悲观锁 1.2 普通的互斥锁 vs 读写锁 1.3 重量级锁 vs 轻量级锁 1.4 自旋锁 vs 挂起等待锁 1.5 公平锁 vs 非公平锁 1.6 可重入锁 vs 不可重入锁 二、CAS 2.1 CAS典型应用场景 2.1.1 使用CAS实现原子类 2.1.2 使用CAS实现自旋锁 2.2 CAS中的ABA问题(小概率bug) 2.2.1 什么是ABA问题 2.2.2 ABA问题引发的bug 2.2.3 解决ABA问题的办法 前言 前面所介绍的 多线程基础篇的内容,主要介绍的还是一些 和多线程相关性非常高的内容,也都是工作中经常会涉及到的问题和代码~ 而接下来的多线程进阶篇的内容,则是需要对多线程内容进行进一步的补充~ 进阶篇中的很多知识,不再是工作中常用的,但是却是在面试中常考的(俗称:八股文,面试造核弹,工作拧螺丝)~ 下面,就正式开始来学习 进阶篇的内容 ...... 一、常见的锁策略 简单通俗的来说,锁策略就是 加锁的时候是咋加的~(锁策略也是一个锁的形容词) 1.1 乐观锁 vs 悲观锁 乐观锁:预测接下来锁冲突的概率不大,就会少做一点工作,成本更小~ 悲观锁:预测接下来锁冲突的概率很大,就会多做一点工作,成本更大~ 比如说,就前段时间,西安那边又有确诊的了~ 有居民就比较紧张,就在想是不是要在家里屯点菜啥的(疫情会引起封城,封城会影响买菜),提前屯点菜以备不时之需~ 这个就可以看作是 悲观锁,花费所需成本较大(买菜、运菜、放在地上......)~ 当时有居民却认为,由于之前已经有过几次确诊的经历,所以说 已经有了不少经验了,所以封城的概率比较小,不需要提前屯菜(屯了吃不完大概率会坏)~ 这个就可以看作是 乐观锁,话费所需成本更小~ synchronized 就既是一个悲观锁,也是一个乐观锁,准确的来说 它是一个自适应锁~

Qt·.·.解决QString中文字符转cv::String乱码

Qt·.·.解决QString中文字符转cv::String乱码 成功解决方案 有效:使用函数toLocal8Bit().toStdString() // QString中文字符转cv::String,有效方案 mImageFolder = QString::fromLocal8Bit("D:/Xu Wenyu/透镜阵列3D显示系统/样本图像/690帧渲染/"); cv::String fileName = mImageFolder.toLocal8Bit().toStdString(); 失效方案 无效:使用函数toStdString() // QString中文字符转cv::String,失效方案 mImageFolder = QString::fromLocal8Bit("D:/Xu Wenyu/透镜阵列3D显示系统/样本图像/690帧渲染/"); cv::String fileName2 = mImageFolder.toStdString();

【详细】Ubuntu18.04安装更新显卡驱动、安装CUDA及cuDNN、CUDA版本切换

CUDA安装官方教程:官方教程 cuDNN安装官方教程:官方教程 在配置Pytorch环境的时候,想着尝试一下新版本的pytorch版本Stable(1.10.1)时,发现这个pytorch版本仅支持CUDA10.2和CUDA11.3,故我就得更新以下当前的CUDA版本,也就有了下面这篇文档教程,注:虚拟机无法安装CUDA。 查看CUDA版本以及GPU驱动对应关系:NVIDIA 通过查上面的表可以知道,如果要使用CUDA11.3,需要将显卡驱动更新到>=465.19.01(Linux x86_64环境) 首先打开终端查看当前CUDA版本和GPU驱动版本输入如下命令 nvidia-smi +-----------------------------------------------------------------------------+ | NVIDIA-SMI 470.94 Driver Version: 470.94 CUDA Version: 11.4 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 NVIDIA GeForce ... Off | 00000000:01:00.0 On | N/A | | N/A 30C P8 6W / N/A | 629MiB / 3911MiB | 30% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | 0 N/A N/A 1549 G /usr/lib/xorg/Xorg 244MiB | | 0 N/A N/A 1722 G /usr/bin/gnome-shell 52MiB | | 0 N/A N/A 2329 G /usr/lib/firefox/firefox 324MiB | | 0 N/A N/A 2467 G /usr/lib/firefox/firefox 1MiB | | 0 N/A N/A 2862 G /usr/lib/firefox/firefox 1MiB | +-----------------------------------------------------------------------------+ Driver Version: 470.

Python 字典排序的两种技巧

引言 Dictionary 是一种重要的数据结构,它通过将 key 与 value 进行映射来存储数据。Python 中的默认字典是无序数据结构。与列表一样,我们可以使用 sorted()函数按键对字典进行排序。但是,它只返回一个根据 key 排序的列表,这通常不是我们所希望的。我们可能希望它按 value 而不是按 key 进行排序,或者我们可能希望它返回一个已排序的字典而不是一个列表。在本文中,我将讨论两种简单的方法,我们可以使用这两种方法对 Python 字典进行排序,并返回您所希望的结果。 整理一个列表 既然我们在讨论排序,我想首先指出这两个排序函数之间的一个非常重要的区别。让我们来看看列表之间的区别。假设我们有两个列表: 我们有两种对列表进行排序的方法,一种是使用 sort()进行 in-place 排序,另一种是使用 sorted() ,这不是 in-place 排序。不同之处在于,当使用 sort()时,您将更改原始列表,而 sorted()将返回一个新列表,而不更改原始列表。如下所示: 选用哪一种取决于实际情况。例如,如果您想保留原始记录,那么您应该使用 sorted()。如果希望节省空间和内存,那么应该使用 sort()。 整理一个字典 让我们创建一个字典: 在这里使用“ zip”函数非常方便,我们将两个长度相同的列表中的元素映射到一起。 为了对字典进行排序,我们必须使用 sorted() ,因为字典没有内嵌的 sort()函数: 如果我们直接使用 sorted() ,函数将只返回字典中的 key 列表: 或者一个 value 列表: 我们可以调用字典中的 items()函数按 key 对它进行排序,并返回一个元组列表: 如果我们想按相反的顺序排序 key,我们可以在排序函数中指定它: 如果我们想要按 value 进行排序呢?有两种方法可以做到这一点。一种是使用 sorted() ,但是指定使用 lambda 函数进行排序的关键;另一种是不使用默认字典类型,而是使用不同的字典类型,直接按 value 对字典进行排序。 对于第一个方法,sorted 函数是使用一个 key 参数,用于指定在进行比较之前对每个元素调用的函数(或其他可调用的函数)。在这里,我们可以使用 lambda 函数来告诉 sorted()函数使用元素的哪一部分进行比较。具体来说:

uni - app 内置css变量

不使用css内置变量,出现兼容性问题: position: fixed; top: 0; left: 0; z-index: 10; 对导航栏进行固定定位的时候,在 h5端 会出现问题,因为 h5端 没有小程序的那种头部修饰,所以固定到顶会被覆盖隐藏 使用CSS内置变量: position: fixed; top: var(--window-top); left: 0;

C语言对于char*和char[]的理解

C语言对于char*和char[]的理解 1、char*和char[]的共同点2、char*的用法3、char[]的用法4、怎么输出char*地址5、strlen和sizeof6、char*和string7、总结Reference 1、char*和char[]的共同点 都是指针,指向第一个字符所在的地址,C语言指针可以代替数组使用。 指针也是一种变量,只不过它的内存单元中保存的是一种标识其他位置的地址,而地址也是整数,在32位平台下,就是32位,4个字节 指针的指向是指 指针变量所保存的其他的地址单元中 所存放的数据类型。 int *ptr; //ptr指针保存的地址所在内存单元中的数据类型是整型 float *p; //这个p指针指向的内存地址存放的元素类型就是浮点型 而不管指向的数据类型是哪种,其实对于指针本身的值永远是整型,因为它保存的地址就是整数。 2、char*的用法 3、char[]的用法 //char[] char a[20] = "aaa"; char b[] = "bbbbb"; char c[] = {'s','t','r','i','n','g','\0'}; char d[] = {"dddd"}; //一般这样初始化 char num[20] = {0}; //初始化的目的是为了添加\0,否则\0会跑到莫名其妙的地方导致很多错误。 //ASCII码中0对应的是nul符,即\0。这一行的意义就是给0~19都赋\0。 4、怎么输出char*地址 虽然指针名就代表的是地址,但在输出时需要加&,仅限cout。 const char* p = "ppp"; cout<<&p<<endl; //地址 方法一 cout<<(void*)p<<endl;//地址 方法二 cout<<p<<endl; //ppp const char* a = "ppp"; printf("%p \n", a); //16进制地址,不过 %p的输出格式并不统一,有的编译器带0x前缀,有的不带 printf("%#X \n", a);//16进制地址,前缀统一是0x printf("%s \n"

Elasticsearch-分布式搜索引擎介绍

简介 Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。 术语 文档(Document) ElasticSearch(简称 ES) 是面向文档的,文档是所有可搜索数据的最小单位。 给大家举几个例子,让大家更形象地理解什么是文档: 日志文件中日志项一本电影的具体信息、一张唱片的详细信息MP3 播放器里的一首歌、一篇 PDF 文档中的具体内容一条客户数据、一条商品分类数据、一条订单数据 大家可以把文档理解为关系型数据库中的一条记录。 在 ES 中文档会被序列化成 JSON 格式,保存在 ES 中,JSON 对象由字段组成,其中每个字段都有对应的字段类型(字符串/数组/布尔/日期/二进制/范围类型)。 在 ES 中,每个文档都有一个 Unique ID,可以自己指定 ID 或者通过 ES 自动生成。 索引(Index) 索引简单来说就是相似结构文档的集合,比如可以有一个客户索引,商品分类索引,订单索引,索引有一个名称,一个索引可以包含很多文档,一个索引就代表了一类类似的或者相同的文档,比如说建立一个商品索引,里面可能就存放了所有的商品数据,也就是所有的商品文档。每一个索引都是自己的 Mapping 定义文件,用来去描述去包含文档字段的类型,分片(Shard)体现的是物理空间的概念,索引中的数据分散在分片上。 在一个的索引当中,可以去为它设置 Mapping 和 Setting,Mapping 定义的是索引当中所有文档字段的类型结构,Setting 主要是指定要用多少的分片以及数据是怎么样进行分布的。 类型(Type) 在 7.0 之前,每一个索引是可以设置多个 Types 的,每个 Type 会拥有相同结构的文档,但是在 6.0 开始,Type 已经被废除,在 7.0 开始,一个索引只能创建一个 Type,也就是 _doc。 每个索引里都可以有一个或多个 Type,Type 是索引中的一个逻辑数据分类,一个 Type 下的文档,都有相同的字段(Field),比如博客系统,有一个索引,可以定义用户数据 Type,博客数据 Type,评论数据 Type 等。 集群(Cluster) ES 集群其实是一个分布式系统,要满足高可用性,高可用就是当集群中有节点服务停止响应的时候,整个服务还能正常工作,也就是服务可用性;或者说整个集群中有部分节点丢失的情况下,不会有数据丢失,即数据可用性。

Django的基础操作以及快速上手

目录 一、安装Django 二、创建项目 1、终端操作 2、默认项目的文件 三、创建APP 四、快速上手 1、页面编写 2、templates模板 3、静态文件 4、模板语法 五、请求和响应 案例:用户登录 六、数据库操作 1、安装第三方模块 2、ORM Django操作表 Django操作表数据 七、案例:用户列表 1、展示用户列表 2、用户添加 3、用户删除 Python知识点:函数、面向对象。 前端开发:HTML、CSS、JavaScript、jQuery、BootStrap。 MySQL数据库。 Python的Web框架: Flask,自身短小精悍 + 第三方组件。 Django,内部已集成了很多组件 + 第三方组件。【主要】 一、安装Django pip install django - python.exe - Scripts - pip.exe - django-admin.exe 【工具,创建django项目中的文件和文件夹】 - Lib - 内置模块 - site-packages - openpyxl - python-docx - flask - django 【框架的源码】 二、创建项目 django中项目会有一些默认的文件和默认的文件夹。 1、终端操作 打开终端。进入某个目录(项目放在哪里)。 C:\Users\Administrator>d: D:\>cd Django 执行命令创建项目 django-admin startproject 文件夹名称

(day10) 自学Java——常见算法和Lambda

目录 1.基本查找 2.二分查找 3.插值查找 4.斐波那契查找 5.分块查找 6.哈希查找 7.冒泡排序 8.选择排序 9.插入排序 10.递归算法 11.快速排序 12.Arrays 13.lambda表达式 14.练习:算法题 1.基本查找 从0索引开始挨个往后查找。 练习1: 需求:定义一个方法利用基本查找,查询某个元素在数组中的索引 要求:不需要考虑数组中的元素是否重复 public class Test { public static void main(String[] args){ int[]arr={131,127,147,81,103,23,7,79,81}; int num=23; int index=getIndex(arr,num); System.out.println(index); } private static int getIndex(int[]arr,int num) { for (int i = 0; i < arr.length; i++) { if(arr[i]==num){ return i; //存在就返回索引 } } return -1;//不存在就返回-1 } } 练习2: 需求:定义一个方法利用基本查找,查询某个元素在数组中的索引 要求:需要考虑数组中元素有重复的可能性{131,127,147,81,103,23,7,79,81} 要查找81,返回的是所有索引3 8 import java.util.ArrayList; public class Test { public static void main(String[] args){ int[]arr={131,127,147,81,103,23,7,79,81}; int num=81; ArrayList index=getIndex(arr,num); for (int i = 0; i < index.

python 有哪些自动化测试库

python 有哪些自动化测试库 1、Selenium:一个用于Web应用程序测试的工具,可以自动控制浏览器,实现自动化测试。 2、Robot Framework:用于自动化测试的开源框架,可以用来测试各种应用程序和系统,使用它可以编写简洁易懂的测试用例。 3、Unittest:Python的标准库,用于单元测试,可以自动运行测试用例,并生成测试报告。 4、pytest:一个强大的Python测试框架,可以轻松地编写和运行测试用例。 5、Nose:一个自动化测试框架,可以自动运行测试用例,并生成测试报告。 6、Splinter:一个用于模拟浏览器行为的库,可以用来实现自动化Web应用程序测试。 继续 7、Twisted:一个用于网络编程的开源框架,可以用来实现自动化网络应用程序测试。 8、Appium:一个用于自动化移动应用测试的开源框架,可以用来测试Android和iOS应用程序。 9、Pywinauto:一个用于自动化Windows应用程序测试的库,可以通过键盘和鼠标模拟用户操作。 10、Parameterized:一个用于参数化测试用例的库,可以简化测试用例的编写,提升测试用例的可重复性。 继续 11、Fabric:一个用于自动化运维的库,可以用来实现远程命令的执行,从而实现自动化运维任务。 12、Behave:一个基于行为驱动开发的自动化测试框架,可以用来编写易读、易维护的测试用例。 13、Lettuce:一个基于行为驱动开发的自动化测试框架,可以用来编写可读性强的测试用例。 14、py.test:一个功能强大的自动化测试框架,可以用来编写易维护的测试用例,支持多种测试结果报告。 继续 15、pyVows:一个基于行为驱动开发的自动化测试框架,可以用来编写简洁、可读性强的测试用例。 16、Locust:一个用于压力测试的开源框架,可以用来模拟多个客户端同时发送请求,从而检测应用程序的性能。 17、Mock:一个Python的模拟框架,可以用来替换复杂系统的模块,从而简化测试用例的编写。 18、pytest-bdd:一个基于行为驱动开发的自动化测试框架,可以用来编写可读性强的测试用例。 继续 19、Sikuli:一个用于自动化图形化界面的库,可以用来实现自动化图形化界面测试。 20、PyHamcrest:一个用于断言测试结果的库,可以用来编写可读性强的测试用例。 继续 21、Html-TestRunner:一个用于生成测试报告的库,可以用来跟踪测试结果,并生成可读性强的测试报告。 22、pytest-xdist:一个用于并行测试的框架,可以用来同时运行多个测试用例,提高测试效率。 23、Taurus:一个基于JMeter的自动化测试框架,可以用来实现负载测试,从而检测应用程序的性能。 24、Testinfra:一个用于检测基础设施的库,可以用来检测系统的状态,从而实现自动化测试。 继续 25、PyAutoGUI:一个用于模拟键盘和鼠标操作的库,可以用来实现自动化GUI应用程序测试。 26、PyUnitReport:一个用于生成测试报告的库,可以用来跟踪测试结果,并生成可读性强的测试报告。 27、pytest-cov:一个用于代码覆盖率测试的框架,可以用来检测代码的覆盖率,从而确保软件质量。 28、pytest-html:一个用于生成HTML格式测试报告的库,可以用来跟踪测试结果,并生成可读性强的测试报告。 29、pytest-metadata:一个用于测试元数据管理的框架,可以用来跟踪测试结果,并管理测试元数据。 30、pytest-pycharm:一个用于PyCharm的测试框架,可以用来跟踪测试结果,并在PyCharm中运行测试用例。 31、pytest-selenium:一个用于Web应用程序测试的框架,可以用来跟踪测试结果,并实现自 go on 32、pytest-flask:一个用于Flask应用程序测试的框架,可以用来跟踪测试结果,并实现自动化Flask应用程序测试。 33、pytest-django:一个用于Django应用程序测试的框架,可以用来跟踪测试结果,并实现自动化Django应用程序测试。 34、pytest-raises:一个用于测试异常的框架,可以用来跟踪测试结果,并检测程序是否抛出指定的异常。 35、pytest-fixture:一个用于管理测试数据的框架,可以用来定义和管理测试数据,从而简化测试用例的编写。 36、pytest-parallel:一个用于并行测试的框架,可以用来同时运行多个测试用例,提高测试效率。 37、pytest-capturelog:一个用于跟踪日志的框架,可以用来跟踪日志信息,从而检测应用程序的状态。 38、pytest-faker:一个用于测试数据生成的框架,可以用来生成测试数据,从而简化测试用例的编写。 39、pytest-mock:一个用于模拟系统模块的框架,可以用来替换复杂系统的模块,从而简化测试用例的编写。 40、pytest-pylint:一个用于语法检查的框架,可以用来检测代码的语法错误,从而确保代码的质量。 41、pytest-watch:一个用于实时监控的框架,可以用来监控文件的变化,从而实现实时测试。 42、pytest-env:一个用于管理测试环境的框架,可以用来管理测试环境,从而简化测试环境的管理。 43、pytest-cucumber:一个用于行为驱动开发的框架,可以用来编写可读性强的测试用例,从而提高测试效率。 44、pytest-htmlreport:一个用于生成HTML格式测试报告的框架,可以用来跟踪测试结果,并生成可读性强的测试报告。 45、pytest-allure:一个用于生成Allure报告的框架,可以用来跟踪测试结果,并生成可读性强的Allure报告。

一、Gstreamer动态操作元素

1 通过gst-launch-1.0大致实现播放与录像 1.1 命令 gst-launch-1.0 rtspsrc location=rtsp://admin:yangquan123@192.168.10.11:554/Streaming/Channels/101 ! \ rtph264depay ! h264parse ! nvv4l2decoder ! \ nvvideoconvert ! "video/x-raw(memory:NVMM),width=1280,height=720,format=I420" ! tee name=t ! \ queue ! nvv4l2h264enc ! h264parse ! qtmux ! filesink location=~/Desktop/file.mp4 t. ! \ queue ! nvegltransform ! nveglglessink window-width=1280 window-height=720 sync=false 播放视频sink一直存在,每隔5秒保存一次录像 15582303530 2 更换动态管道中间的某一元素 参考:Changing elements in a pipeline 这个参考来自于GStreamer官网,示例在管道Playing状态下,更换元素。所有代码在gst-dynamic-manipulation目录下。 is-live = true,窗口sink sync=false 属性下依然可以稳定操作 具体操作方法如下: 阻塞queue的src pad,通过GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM监听需要更换元素的src pad,通过GST_PAD_PROBE_TYPE_BLOCK | GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM阻塞回调函数中,给需要更换元素的sink pad发送event事件更换元素的src pad回调函数中进行 gst_element_set_state (element, GST_STATE_NULL)

uniapp(一)

一、初识微信小程序 1、什么是微信小程序 微信小程序简称小程序,英文名Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用 小程序是一种新的开放能力,开发者可以快速地开发一个小程序。小程序可以在微信内被便捷地获取和传播,同时具有出色的使用体验 2、注册小程序 注册微信小程序账号:https://mp.weixin.qq.com/wxopen/waregister?action=step1 3、获取小程序的AppID 扫码登录后进入小程序管理后台,左侧栏中选择开发>开发管理>开发设置,就能看到AppID(小程序ID) 4、微信开发者工具 下载地址:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 4、创建小程序项目 5、 查看运行效果 在模拟器上查看项目效果:单击编译按钮即可 在真机上预览项目效果:单击的预览按钮,然后生成二维码后,使用手机扫描,就可以看到真机的效果了。 二、uniapp简介 1、uniapp简介 uni-app 是一个使用 Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台。 即使不跨端,uni-app同时也是更好的小程序开发框架。 三、创建和运行uniapp 1、安装HBuilderX uni-app支持通过 可视化界面方式快速创建项目,可视化的方式比较简单,HBuilderX内置相关环境,开箱即用,无需配置nodejs。开始之前,开发者需先下载安装HBuilderX,HBuilderX是通用的前端开发工具,但为uni-app做了特别强化。 下载地址:https://www.dcloud.io/hbuilderx.html 下载类型:正式版|windows版|App开发版 2、创建uniapp项目 在点击工具栏里的文件 -> 新建 -> 项目: 选择uni-app类型,输入工程名,选择默认模板,选择vue版本,点击创建,即可成功创建。 3、运行uniapp项目到浏览器上 进入hello-uniapp项目,点击工具栏的运行 -> 运行到浏览器 -> 选择浏览器,即可在浏览器里面体验uni-app 的 H5 版。 4、在微信开发者工具里运行 进入uni-movies项目,点击工具栏的运行 -> 运行到小程序模拟器 -> 微信开发者工具,即可在微信开发者工具里面体验uni-app 注意: 如果是第一次使用 设置微信开发者工具路径(第一次运行,在运行之前会自动弹框自动设置,如果不是第一次,可以在运行>运行到小程序模拟器>运行设置>运行配置中进行设置) 需要在微信开发者工具中,设置>安全设置中,开始服务端口 在manifest.json中设置APPID,否则在微信开发者工具控制台会报错 5、在Android真机上运行 点击菜单栏>运行>运行到手机或模拟器,第一次需要下载真机插件,下载好之后,后续就会出现运行到Android App基座 打开手机的开发者选项,允许USB调试,选择USB配置(Audio Source) 在HBuilder X中检测到Android设备后,如下图所示 四、项目打包 1、h5打包 登录dcloud账户,在manifest.json的基础配置选项中,点击重新获取uniapp应用标识APPID 在manifest.json的Web配置选项的运行的基础路径中输入./ 在菜单栏的发行栏目,点击网站-PC或手机H5 输入网站标题和网站域名,点击发行 在控制台中生成报表,报告中显示生成的文件在硬盘中的位置,拷贝后上传服务器后部署

服务器安装anaconda

服务器安装anaconda: 连接服务器之后在cmd或者putty中跑下面的命令 下载安装包注意镜像 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.3.0-Linux-x86_64.sh 安装,一直yes和回车就好 chmod +x Anaconda3-5.3.0-Linux-x86_64.sh ./Anaconda3-5.3.0-Linux-x86_64.sh 或者 bash Anaconda3-5.3.0-Linux-x86_64.sh 然后关掉重新打开,在自己的文件夹检查一下是否安装成功 zcy@amax:/s/e/zcy$ conda -V 如果需要更改anaconda的安装路径: ./Anaconda3-5.3.0-Linux-x86_64.sh跑完这一步,不要继续回车了而是输入想要安装的路径 然后要配置一下环境变量 环境变量参考这个:https://blog.csdn.net/Granery/article/details/87265764(有截图) https://blog.csdn.net/weixin_43120985/article/details/118163799 vim编辑文件操作: https://www.jianshu.com/p/0c45be85ae2c 最后退出重新打开终端,进入自己的文件夹目录下,输入anaconda -V(注意a要小写,V要大写),conda -V ,显示版本信息,若显示则表示安装成功。 Vscode连接远程服务器 https://www.php.cn/tool/vscode/497482.html#:~:text=%EF%BC%88%E5%9B%BE%E6%96%87%E6%95%99%E7%A8%8B%EF%BC%89%201%201%E3%80%81%E4%B8%8B%E8%BD%BDvscode%20%E7%99%BE%E5%BA%A6%E6%90%9C%E7%B4%A2vscode%EF%BC%88%E6%B3%A8%E6%84%8F%E4%B8%8D%E6%98%AFvisual%20studio%EF%BC%89%EF%BC%8C%E8%BF%9B%E5%85%A5vscode%E5%AE%98%E7%BD%91%E8%BF%9B%E8%A1%8C%E4%B8%8B%E8%BD%BD%E3%80%82%202%202%E3%80%81%E5%AE%89%E8%A3%85ssh%E6%8F%92%E4%BB%B6%20%E6%A0%B9%E6%8D%AE%E4%BD%A0%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E9%80%89%E6%8B%A9%E5%AF%B9%E5%BA%94%E7%9A%84%E7%89%88%E6%9C%AC%E8%BF%9B%E8%A1%8C%E4%B8%8B%E8%BD%BD%E5%92%8C%E5%AE%89%E8%A3%85%E3%80%82,Current%20Window%3A%20…%205%205%E3%80%81%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C%20%E4%BE%8B%E5%A6%82%E6%88%91%E7%82%B9%E5%87%BBOpen%20Folder%EF%BC%8C%E8%BF%99%E9%87%8C%E5%B0%B1%E4%BC%9A%E8%AE%A9%E4%BD%A0%E9%80%89%E6%8B%A9%E6%89%93%E5%BC%80%E7%9A%84%E6%96%87%E4%BB%B6%E7%9B%AE%E5%BD%95%EF%BC%9A%20 vscode 运行jupyter包括debug、view数据之类的 vscode里运行jupyter的话要提前在对应虚拟环境下安装ipykernel zcy@amax:~$ cd … zcy@amax:/home$ cd … zcy@amax:/$ cd s/e/zcy zcy@amax:/s/e/zcy$ source activate DESC (DESC) zcy@amax:/s/e/zcy$ conda install ipykernel 出现这种问题,是镜像的网址设置错误 conda config --add channels http://mirrors.tuna.tsingh ua.edu.cn/anaconda/pkgs/main/ 注: 一定是http而不是https VS code jupyter不显示图片 VS code jupyter不显示图片 在vs code里安装插件就好

python安装完虚拟环境后导入tensorflow报错/import keras报错

我搜了大半天,最后的有效方法是: 降低numpy的版本,好像1.24.0版有很多问题。解决深度学习中Numpy版本不兼容问题 后面我的还是报错,缺少dll文件,发现自己没安装cuda和cudnn。看c盘的program files文件夹下是否有NVIDA GPU computing toolkit文件夹,如果没有,可以安装下面这个教程一步步安装。 Cuda和cuDNN安装教程(超级详细) 最后导入tensorflow成功,但是导入keras还是有问题。 好像是新版该规则了,换一下写法就行 以前的这种写法换成 总算没有报错了。

分享113个图片切换JS特效,总有一款适合您

分享113个图片切换JS特效,总有一款适合您 113个图片切换JS特效下载链接:https://pan.baidu.com/s/1NNSP-DMf3n0PeNbdNd8jEg?pwd=sfwr 提取码:sfwr Python采集代码下载链接:https://wwgn.lanzoul.com/iKGwb0kye3wj jQuery中间大图两侧小图模糊特效 Material Design风格内容幻灯片代码 jQuery带视觉差效果幻灯片代码 jQuery鼠标悬停横向大图展示特效 jQuery带聚焦效果图片切换代码 jQuery仿Facebook图片画廊代码 jQuery带文字动画图片轮播代码 JS+CSS3制作3D翻转式幻灯片代码 原生js简约风格轮播图切换代码 jQuery网站主页图片切换代码 jQuery轻量级京东图片轮播代码 jQuery爱奇艺广告图片切换代码 原生js渐变滑动切换焦点图代码 jQuery多种切片过渡动画幻灯片代码 jQuery焦点图插件edslider jQuery游戏人物轮播展示切换代码 jQuery带音效旋转式切换幻灯片 jQuery五屏轮播手风琴代码 jQuery迅雷首页全屏图片切换代码 import os import shutil import time from time import sleep from docx import Document from docx.shared import Inches from framework.base.BaseFrame import BaseFrame from sprider.business.SeleniumTools import SeleniumTools from sprider.business.SpriderTools import SpriderTools from selenium import webdriver from selenium.webdriver.common.by import By from sprider.model.SpriderEntity import SpriderEntity from sprider.access.SpriderAccess import SpriderAccess class ChinaZJsSelenium: base_url = "

springboot 拦截器

在 Spring Boot 项目中,使用拦截器功能通常需要以下 3 步: 定义拦截器; 注册拦截器; 指定拦截规则(如果是拦截所有,静态资源也会被拦截)。 第一步:自定义拦截器 package com.cy.store.interceptor; import org.springframework.web.servlet.HandlerInterceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginInterceptor implements HandlerInterceptor { /** * 检测全局session对象中是否有uid数据,如果有则放行,如果没有重定向到登录页面 * @param request 请求对象 * @param response 响应对象 * @param handler 处理器(url+controllor:映射) * @return 如果返回值true 放行 如果是false则表示拦截,重定向到登录页面 * @throws Exception */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // HttpServletRequest对象获取session对象 Object obj = request.getSession().getAttribute("uid"); if(obj == null){

MATLAB入门——线性规划、非线性规划、多目标规划

4-1 线性规划_哔哩哔哩_bilibili 4-2 非线性规划_哔哩哔哩_bilibili 4-3 多目标规划_哔哩哔哩_bilibili 1.线性规划 有限条件下,最大收益 1. 例题 例题:张麻子既要攻碉楼又要追替身,他们一伙6人,总共1200发子弹;每有一人攻确楼会给百姓带来40点士气值,每有一人追替身会给百姓带来30点士气值;攻碉楼每人需240发子弹,追替身每人需120发。4问攻碉楼和追替身各派几个人,能使百姓的士气值最大? 解: 设派人攻碉楼,排人追替身,百姓士气值为y; 士气值最大:max 总共6人:; 既要攻碉楼又要追替身: 子弹有限:则 2. 代码实现 2.1 Linprog函数 模型化为matlab标准型:目标函数最小值、约束条件小于等于号或等号;(如果求最大值,约束条件有大于等于——>求最小值后求反) [x,fval]=linprog(f,A,b,Aeq,beq,lb,ub) x返回最优解的变量取值,fval返回目标函数的最优值; 2.非线性规划 线性规划:所有变量都是一次方;非线性规划:至少一个变量不是一次方; 2.1 代码实现 函数求解: [x,fval]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)x得到决策变量取值,fval得到最优解取值 本题:设好后fun和nonlcon函数文件以及其他参数后,执行: [x,y]=fmincon('fun1',[0;0;0],[],[],[],[],[0;0;0],[],'fun2') 3.多目标规划 3.1 例题 3.2 概念 需要衡量每个目标的完成情况,并主观上区分三个目标的重要性,使得整体的完成情况尽量好 引入三个概念:正负偏差,绝对约束和目标约束,优先因子 3.2.1 绝对约束和目标约束 绝对约束是模型中自带的约束条件,必须满足,否则是不可行解例如,使用材料的数量不能超过总共数量 3.2.2 目标约束 目标约束是模型中对不等式右端追求的值允许有偏差目标3:尽可能使利润不少于56万,也就是,但允许有偏差这个“偏差”就是加入正负偏差变量,变成: 3.2.3 优先因子 1.尽量使产品I的产量不超过产品II的产量; 2.尽可能充分利用所有设备; 3.尽可能使利润不少于56万 这三者到底哪个重要?需要主观上确定优先因子。 例如,我认为目标3最重要,给他优先因子是10;目标2第二重要,给他优先因子5; 目标1第三重要,给它优先因子是1。那么三个目标重要性之比是10: 5: 1 第一目标要求不超过目标值,一位置正偏差变量越小越好 3.3 解题 需要衡量每个目标的完成情况,并主观上区分三个目标的重要性,使得整体的完成情况尽量好 把所有的目标约束都加上变成灯饰(注意,绝对约束也可以这样做变成等式,视情况而定)按照需求,主观确定确定优先因子 得到多目标规划模型: 求解方法:fgoalattain函数;或序贯算法;或用Lingo求解

Fortran编程快速入门

Fortran编程快速入门 1. 简介1.1 FORTRAN语言发展概况1.2 Fortran77和Fortran90的区别1.3 Fortran和C/C++等大多数语言的不同1.4 简单的 Fortran 程序分析1.5 FORTRAN 源程序的书写格式1.6 编译环境配置 2. Fortran数据类型和变量2.1 数据类型2.2 变量2.2.1 命名规则2.2.2 隐含约定(I~N 规则)2.2.3 IMPLICIT 语句(隐式说明语句)2.2.4 变量声明语法 2.4 第一个Fortran程序 3. 程序编译3.1 Fortran - Basic 语法3.2 Fortran变量用法实列3.3 Fortran - 常量3.3.1 例子 (Example) 3.4 Fortran - 运算符3.4.1 算术运算符 (Arithmetic Operators)3.4.1.1 例子 (Example) 3.4.2 关系运算符 (Relational Operators)3.4.3 逻辑运算符 (Logical Operators)3.4.3.1 例子 (Example) 3.4.4 Fortran中的运算符优先级3.4.4.1 例子 (Example) 1. 简介 大气、地球物理很多经典模型都提供了Fortran77源码,为了使用这些模型,学习Fortran77编程是有必要的。 1.1 FORTRAN语言发展概况 (1)适用于工程及科学计算的一种高级程序设计语言 (2)1951年由约翰·贝克斯等人开始研究Fortran语言; (3)1957年第一个Fortran程序在IBM704机上运行; (4)1958和1962年先后推出FortranⅡ和FortranⅣ; (5)1966和1978年先后颁布Fortran66 1.2 Fortran77和Fortran90的区别 Fortran奠定了高级语言发展的基础。Fortran的主要版本及差别按其发展历史,Fortran编译器的版本其实很多。现在在广泛使用的是Fortran77和Fortran90(另外,现在还有95、2003和2008版本)。Fortran77和Fortran90的区别:

怎么把图片变清晰?图片变清晰的方法分享.

怎么把图片变清晰?每个人都有这样的回忆,即在旅游过程中拍摄了很多美好的照片,但是由于技术原因,照片中的人脸变得模糊不清,那么这时候多数小伙伴的选择就是将照片进行删除,其实我们对于模糊照片也是可以修复的而且还有可能变的更加好看,小伙伴们是不是不相信,只需要我们借助下面几款软件,即可进行模糊软件的修复!​ 软件推荐一:智能修复老照​ 这是一个专业的图片处理工具,其中的人脸修复功能,是通过利用智能算法来识别照片中的人脸,并使用图像处理技术使其变得清晰,通过使用该功能,用户可以将原本模糊不清的照片变得更加生动,从而更好地记录并回忆旅游的点滴。同时,修复后的照片可以更好地展示人物的细节,从而更好地展现旅游的美景。​ 软件推荐二:Fotor​ Fotor是一款在线图像处理工具,提供了丰富的图片编辑功能,可以帮助用户修复模糊照片、美化照片、设计海报、制作卡片等,Fotor拥有简单易用的界面,并提供了丰富的素材库,方便用户进行图片处理​ 软件推荐三:BeFunky​ BeFunky是一个图片编辑网站,它提供了各种工具,例如图片编辑、设计创作、图像滤镜等,当然修复模糊照片也是可以的,而且该网站提供了简单易用的界面,用户不需要具备专业的图像处理知识即可轻松完成图片的编辑和修饰。​ 那么今天推荐的工具和网站就到这里了,觉得好用的小伙伴记得给小编点赞关注哦!​

anolis8.6QU1 docker 安装

一,切换用户 切换成root 用户命令:su root 二,执行yum 安装命令 yum install -y yum-utils device-mapper-persistent-data lvm2 三,更新一下镜像源 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 四,安装docker yum install docker-ce 这个命令需要等一段时间,时间较长。 碰到y/n ,选y 四,查看docker 是否安装完成 执行 docker version 命令 五,启动docker systemctl start docker 六,运行docker 命令 执行docker 命令,代表成功! 1,docker images 2,docker pull centos:7 执行完上面的命令后,再次执行docker images 命令查询镜像,成功!

JumpServer 常见问题处理

官网地址:JumpServer - 开源堡垒机 - 官网 在线电话:400-052-0755 技术支持:JumpServer 技术咨询 1 概述 本篇文章主要说明使用JumpServer堡垒机时遇到的各种小问题,这些可能是操作不当、系统环境、资产环境等各类原因导致的。本文划分了几个篇章,对常见问题进行整理总结,希望能对使用者快速定位、处理问题提供帮助。 2 前端页面 2.1 登陆堡垒机 2.1.1 设置你的浏览器支持cookie 问题现象: 登陆堡垒机时页面提示“设置你的浏览器支持cookie”。 问题原因: 页面缓存问题。 解决方案: 清空缓存,重新打开浏览器,地址栏只填域名不加后缀,重新进入页面再次填写账号&Password即可。 2.1.2 IP已被锁定 问题现象: 登陆堡垒机时页面提示“IP已被锁定”。 问题原因: 系统管理员设置了登陆黑名单,由于某些原因你的IP属于黑名单里的,一般通过互联网登陆时会出现这种问题。 解决方案: 联系系统管理员打开<系统设置><安全设置><登录限制>,将你的IP添加进<IP登陆白名单>。 2.1.3 server error occur,contact administrator 问题现象: 登陆堡垒机时页面提示“server error occur,contact administrator”。 问题原因: 一般启用了外部的身份认证系统时会出现该报错,如 LDAP、OpenID等。可能的原因有,LDAP 服务连接失败,OpenID 认证连接失败。也可能跟数据库有关。 解决方案: 后台查看 jumpserver.log 根据报错原因进行处理。 常见报错有无法连接到认证端,该用户的邮箱与其他用户相同。 2.1.4 虚拟 MFA 验证码错误 问题现象: 登陆堡垒机时页面提示“虚拟 MFA 验证码错误,或者服务器端时间不对,您还可以尝试 6 次(账号将被临时锁定 30 分钟)”。 问题原因: 一般是验证码输入错误,或者JumpServer服务器时间不对导致的。 解决方案: 确认验证码输入正确,去后台检查系统时间,使用 ntpdate -u ntp.

如何构建一个自定义huggingface dataset数据集?

huggingface dataset中又很多开源数据集,使用起来非常方便,加载数据集代码如下所示。 from datasets import load_dataset dataset = load_dataset("glue", "ax") 有时,我们希望使用自己的数据集,又与huggingface代码兼容,那就要自己构建一个dataset了。 通常我们的数据是放在csv或excel表格中,通过pandas读取,那如何把表格数据转化为dataset呢? csv文件或json文件,直接使用load_dataset from datasets import load_dataset import pandas as pd dataset = load_dataset("csv", data_files="my_file.csv") dataset = load_dataset('csv', data_files={'train': 'train.csv', 'test': 'test.csv'}) dataset = load_dataset("json", data_files="my_file.json") dataset = load_dataset('json', data_files={'train': 'train.json', 'test': 'test.json'}) 通过DatasetDict与from_pandas分别构建 import pandas as pd from datasets import Dataset, DatasetDict train = Dataset.from_pandas(pd.read_csv('train_spam.csv')) test = Dataset.from_pandas(pd.read_csv('test_spam.csv')) dataset = DatasetDict() dataset['train'] = train dataset['test'] = test 通过python的 dict、list、generator构建 from datasets import Dataset # dict my_dict = {"

Android与Flutter混合开发之flutter_boost

一、背景 近期在做Android项目转型为Flutter,在转型的过程中,我们选择的是各业务模块逐各替换的方式。这种方式下必然会涉及到Android与Flutter的交互,而阿里提供的flutter_boost就是交互之作。 二、demo介绍 github:https://github.com/zbyJade/AndroidWithFlutter.git 如果下载后请进行如下操作 image.png 如果还报错请重启 image.png 功能介绍: Android原生界面跳转Flutter界面,并传参 Flutter界面跳转Android原生界面,并传参 Android和Flutter在同一界面显示 1.jpg 2.jpg 3.jpg 4.jpg 三、创建flutter_module 1.为了使demo代码简洁,新建一个Android工程,我用的是AS 3.6.3 image.png image.png 2.新建flutter module image.png image.png Project location 建议选择到你的Android project下,这样较清晰 image.png image.png 3.添加配置(AS 3.6会自动生成) Project Settings evaluate(new File( settingsDir, 'flutter_module/.android/include_flutter.groovy' )) include ':flutter_module' app build.grade implementation project(path: ':flutter') 4.创建module后,产生的问题和解决办法(如果没有出现更好) 问题1:该Wring可忽略 image.png 问题2: image.png 定位到问题文件,可删除框内文件 image.png 四、依赖flutter_boost https://pub.dev/ image.png 如果你使用了Androidx找到兼容的版本 image.png 添加flutter_boost最新依赖 image.png 实现过程如下 flutter_boost: ^1.12.13+1 image.png image.png 如果要是没有出现flutter和flutter_boost的module就稍微等一会 image.png 添加module

【SQL】SQL入门数据分析

一、My SQL基础介绍 数据库作用:可以持久化数据库至本地;实现结构化查询。 数据库常见概念:DB——数据库;DBMS——数据库管理系统;SQL——结构化查询语言。 数据库存储特点:数据库存储至表中,表再存放在数据库;一个表含多个表,每个表具有唯一的标识;表中含一个或多个列,列又称为字段。 常见的数据库管理系统:MySQL,Oracle,SQLsever MySQL优点:开源,成本低,体积小,移植性好,属于C/S软件。 学习目录 一、My SQL基础介绍1.1 My SQL的启动和登录1.2 My SQL常见命令1.3 My SQL语法规范 二、DQL部分(Data Query Language)2.1 基础查询2.1.1 查询表中的单个字段2.1.2 查询表中的多个字段2.1.3 查询表中所有字段2.1.4 查询常量值2.1.5 查询表达式2.1.6 查询函数2.1.7 查询结果起别名2.1.8 查询去重2.1.9 +号的作用 2.2 条件查询2.2.1 按条件运算符筛选2.2.2 按逻辑表达式筛选2.2.3 模糊查询 2.3 排序查询2.4 函数2.4.1 单行函数2.4.2 分组函数 2.3 分组查询2.4 连接查询(多表查询)2.4.1 内连接(sql92)2.4.1.1 等值连接 2.4.1.2 非等值连接2.4.1.3 自连接 2.4.2 连接(sql99)2.4.2.1 内连接2.4.2.2 外连接 2.5 子查询2.5.1 where或having后面2.5.2 select后面2.5.3 from后面2.5.4 exists后面 2.6 分页查询2.7 Union联合查询 三、DML语言(Data Manipulation Language)3.1 插入语句3.2 修改语句3.2.1 修改单表的记录3.2.2 修改多表的记录 3.3 删除语句 四、DDL语言(Data Definition Language)4.

(附源码)springboot基于java的校园二手书籍交易平台 毕业设计131558

校园二手书籍交易平台的设计与实现 摘要 随着计算机技术和网络技术的迅速发展,网上购物已经融入了人们的日常生活中,电子商务也因此流行起来。国内的京东商城、天猫、苏宁易购等大型网站在图书销售等商品零售领域已经十分成熟完善,但是以高校学生二手书籍为主的二手图书资源目前还没有得到合理的开发利用。本人设计和实现的校园二手书籍交易平台是通过合理的市场调查然后才着手实施的。系统分为前台系统、后台系统。前台系统是面向用户,实现书籍查询和购买等功能,后台系统实现管理员对系统的管理和控制。用户端在把商品加入购物车后,可以填写地址及配送信息,付款方式可以选择货到付款等,同时购买后用户还可以对商品做出反馈评价,管理员端可以查看到订单详情进行管理控制等。此设计能够实现对校园的二手书籍资源有效的利用和管理,消除旧书的浪费以及管理的弊端,根据图书销售的基本流程,实现校园二手书籍销售管理的电子化。 关键词:二手书籍;MySQL数据库;交易平台 Design and implementation of campus second-hand book trading platform Abstract With the rapid development of computer technology and network technology, online shopping has been integrated into people's daily life, and e-commerce has become popular. Domestic Jingdong Mall, tmall, Suning Tesco and other large websites have been very mature and perfect in the field of book sales and other commodity retail, but the second-hand book resources dominated by second-hand books of college students have not been reasonably developed and utilized.

调度工具—AirFlow 安装指南

Airflow 基本知识和安装教程参考 Airflow 入门及使用 - 知乎 (zhihu.com) Airflow 1.10安装 - 知乎 (zhihu.com) Centos 7 安装Airflow_西卡同学的csdn的博客-CSDN博客 Airflow 和 Azkaban的选型 新建环境 # 注意版本问题哦~最好一致 python=3.7 airflow==1.10.3 # Note 注意 airflow 版本问题!!! pip 安装的时候注意指定版本!!!!! # 高版本的 airflow 会出现比较多的 no module named xxx 错误 # eg: No Module named airflow.contrib.auth # eg: No Module name airflow.www.fab_security 添加环境变量 vim /etc/profile export AIRFLOW_HOME=~/airflow source /etc/profile cd /root/airflow # 注意这个文件保存的是 airlfow 的配置文件 后期需要进行修改 # 如果安装高版本之后发现报错进行不下去, 重新安装的 airflow 的时候 先卸载 pip install apache-airflow, 然后删掉这个目录 rm -rf ~/airflow # 然后干掉mysql里面的 ariflowdb(自己建的数据库, 名字可能不一样, 有的教程是 airflow) 数据库 环境准备 yum install mysql-devel gcc gcc-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel # 不建议之间修改默认的 pypi 数据源, 后期如果安装一些比较新的包, 清华镜像源可能没有,但是大概率是有的,直接修改默认镜像源没什么问题 python3 -m pip install --upgrade pip -i https://pypi.