nodejs配置npm下载依赖位置和镜像源

创建本地目录,并执行配置下载位置 npm config set cache “D:\nodereps\npm_cache” npm config set prefix “D:\nodereps\npm_global” 2.查看下载位置 npm config ls 默认下载位置如下 ,C:\Users\Administrator\AppData\Roaming,AppData 是隐藏文件夹 执行配置后 3.在C:\Users\用户名.npmrc 可以查看到配置 4. 输入 npm get registry:查看当前镜像源为https://registry.npmjs.org/(npm默认镜像源)。 5. 输入npm config set registry xxx(镜像源地址)。 小编以国内淘宝镜像为例:npm config set registry https://registry.npm.taobao.org。

计算机应用辅导大纲及真题

00019考试 湖北省高等教育自学考试实践(技能)课程大纲 课程名称:计算机应用基础(实践) 课程代码:00019 实践能力的培养目标。 计算机应用基础(实践)是高等教育自学考试多个专业考试计划中规定必考的公共课,是经管、文史、法律、外语、医药、土建等非计算机专业学生掌握计算机技能所必修的一门基础课程。 通过本课程的学习,自学应考者应掌握Windows 7操作系统的安装、配置和操作,熟练应用最常用的办公自动化工具软件处理日常办公中的各项事务,熟练使用互联网工具进行信息检索和通信交流,为进一步更深入学习计算机技术打下扎实的基础。 实践(技能)课程教学基本要求。(含学时、学分要求) 本课程一共2个学分,32个学时。 本课程教学基本要求: 熟悉Windows 7的桌面和窗口的构成及功能,能够对Windows 7进行个性化设置;熟练运用资源管理器工具对文件进行管理,包括文件和文件夹的新建、复制、移动、删除、搜索和属性设置等基本操作。熟练掌握运用Word 2010进行文档的编辑、排版、打印的方法和技巧。熟练运用Excel 2010进行表格的创建、格式设置、编辑图形图表和打印输出;掌握Excel中公式和常用函数的使用方法;能够利用Excel进行简单的数据管理(包括排序、筛选和分类汇总等)。熟练运用PowerPoint 2010进行演示文稿的制作、编辑、美化和放映;掌握PowerPoint中动画设置和切换工具的使用。熟练运用WWW浏览器进行信息浏览;利用Web邮箱收发电子邮件。 实践(技能)课程教学参考教材 《计算机应用基础》,赵守香主编,机械工业出版社,出版日期:2015-04-01. 实践(技能)考核的场所、设备、师资要求。 考核的场所: 计算机机房。 考核的设备: 微型计算机,每台计算机上要求安装Windows 7操作系统、Microsoft Office 2010应用软件(包括Word 2010、Excel 2010和PowerPoint 2010)。 安装能够利用局域网分发电子试题和进行自动评卷的考试客户端软件。 师资要求: 该课程技能考核的考评人员由各考点选聘,选聘人员应能熟练使用计算机,并有能力进行考试网络系统的维护。 五、实践(技能)考核的项目名称、考核目标、考核内容、考核方法。 考核目标 检查自学应试者使用Windows 7操作系统进行文件和文件夹管理的能力,熟练应用Office 2010应用软件处理日常办公中的各项事务的能力,熟练使用互联网工具进行信息检索和通信交流的能力。因此其考查主要从按给定的操作要求完成相关操作的成果的角度展开。 考核内容 Windows 7中资源管理器的使用,包括文件和文件夹的新建、复制、移动、删除、搜索和属性设置等基本操作。Word文档的编辑、排版(包括字符格式化、段落格式化、页面格式化)、图片和表格的插入和属性设置。Excel电子表格的编辑、格式化、图表生成以及常用的数据管理操作。PowerPoint演示文稿的编辑、美化、动画设置和切换方式的选定。运用WWW浏览器进行信息浏览;利用Web邮箱收发电子邮件。 考核方式 上机考试。考生根据题目的要求完成相应的操作,操作完成后交卷离开考场,计算机自动根据考生的作答情况进行评分。 六、实践(技能)考核评分标准。 考试成绩常用百分制,由计算机根据考生操作完成的情况进行自动评分。考试成绩60分以上为及格。 考试时每套试卷的操作题包括6道题目。分别是汉字输入题(15分)、Windows操作题(15分)、Word操作题(25分)、Excel操作题(20分)、PowerPoint(15分)和互联网应用操作题(10分)。 其中: 汉字输入题是给出任意一段约100字的文字,要求考生在规定时间内(300秒内)完成该段文字内容的录入,根据考试输入的正确率进行评分。 对于Windows、有关互联网应用的操作题,考生按要求进行实际操作,系统自动记录考生的操作步骤结果,并进行相应的自动评分。 对于Word、Excel、PowerPoint的操作题,给定一个原始文档和操作要求。要求考生启动相应的Office软件,打开原始文档按要求进行实际操作,并保存文件,系统对考生所保存的文件根据给定的结果参考文档进行自动评分。 考试题目示例如下: Excel操作题 在考生文件夹下打开文件excel01.xlsx,操作要求如下: (1)按照平时成绩占20%、考试成绩80%的要求计算每个学生的总成绩(要求取整数); (2)将表格数据按总成绩由高到低进行排序。 互联网应用操作题 给管理学基础老师发一封电子邮件,并将考生文件夹下的文本文件homework.txt作为附件一起发送。具体要求如下: 【收件人】huangrong@whut.edu.cn 【主题】课后作业 【邮件内容】黄老师,您好!我的作业已经完成,请批阅。具体见附件。 或 某模拟网站的主页地址是:http://localhost:65531/examweb/index.htm,打开此主页,浏览“天文小知识”页面,查找“海王星”的页面内容,并将它以文本文件的格式保存到考生目录下,命名为“haiwangxing.txt”。 2020年10月高等教育自学考试全国统一命题考试 计算机应用基础 (课程代码00018) 注意事项: 1.本试卷分为两部分,第一部分为选择题,第二部分为非选择题。 2.应考者必须按试题顺序在答题卡(纸)指定位置上作答,答在试卷上无效。 3.涂写部分、画图部分必须使用2B铅笔,书写部分必须使用黑色字迹签字笔。

Linux内核中的Namespace技术

对应到容器技术,为了隔离不同类型的资源,Linux 内核里面实现了以下几种不同类型的 namespace。 UTS,对应的宏为 CLONE_NEWUTS,表示不同的 namespace 可以配置不同的 hostname。User,对应的宏为 CLONE_NEWUSER,表示不同的 namespace 可以配置不同的用户和组。Mount,对应的宏为 CLONE_NEWNS,表示不同的 namespace 的文件系统挂载点是隔离的PID,对应的宏为 CLONE_NEWPID,表示不同的 namespace 有完全独立的 pid,也即一个 namespace 的进程和另一个 namespace 的进程,pid 可以是一样的,但是代表不同的进程。Network,对应的宏为 CLONE_NEWNET,表示不同的 namespace 有独立的网络协议栈。 操作 namespace 的常用指令 nsenter,可以用来运行一个进程,进入指定的 namespace。例如,通过下面的命令,我们可以运行 /bin/bash,并且进入 nginx 所在容器的 namespace。 # nsenter --target 58212 --mount --uts --ipc --net --pid -- env --ignore-environment -- /bin/bash root@f604f0e34bc2:/# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.

整数和浮点数作比较差异点(持续更新)

问题1、整数可以在C语言中直接比较,为射门浮点不可以直接比较。 解:整数可以直接进行比较,而浮点数由于存在精度问题,不能直接进行比较。 2、那该怎么比较?举个例子 解:浮点数的比较需要使用fabs函数取绝对值来解决精度问题。 #define _CRT_SECURE_NO_WARNINGS 1 #pragma warning(disable:6031) #include <stdio.h> #include <string.h> #include <math.h> int main() { int a = 4, b = 5; float c = 3.14, d = 2.71; if (a < b) { printf("a is less than b\n"); } else { printf("a is greater than or equal to b\n"); } if (c < d) { printf("c is less than d\n"); } else { printf("c is greater than or equal to d\n"

【目标检测】IOU介绍

0.什么是IOU IOU全称Intersection over Union,交并比。 IoU是一种测量在特定数据集中检测相应物体准确度的一个标准。IoU是一个简单的测量标准,只要是在输出中得出一个预测范围(bounding boxex)的任务都可以用IoU来进行测量。 在目标识别中,我们的预测框与实际框的某种比值就是IOU 1.IOU的计算 这是IOU的计算方式,通过两个框交叉面积比上整体面积来计算。 1.1基础IOU的缺点 如果两个框没有相交,根据定义,IoU=0,不能反映两者的距离大小(重合度)。同时因为loss=0,没有梯度回传,无法进行学习训练。IoU无法精确的反映两者的重合度大小。 1.2 基础IOU的优点 可以说它可以反映预测检测框与真实检测框的检测效果。还有一个很好的特性就是尺度不变性,也就是对尺度不敏感(scale invariant), 在regression任务中,判断predict box和gt的距离最直接的指标就是IoU。(满足非负性;同一性;对称性;三角不等性) 2. GIOU GIOU出自下面的论文: Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression 对于任意的两个A、B框,首先找到一个能够包住它们的最小方框C。然后计算C \ (A ∪ B) 的面积与C的面积的比值,注:C \ (A ∪ B) 的面积为C的面积减去A∪B的面积。再用A、B的IoU值减去这个比值得到GIoU。 3 DIOU DIoU要比GIou更加符合目标框回归的机制,将目标与anchor之间的距离,重叠率以及尺度都考虑进去,使得目标框回归变得更加稳定,不会像IoU和GIoU一样出现训练过程中发散等问题。 其中 b b b , b g t b^{gt} bgt , 分别代表了预测框和真实框的中心点,且 ρ \rho ρ代表的是计算两个中心点间的欧式距离。 c c c 代表的是能够同时包含预测框和真实框的最小闭包区域的对角线距离。 4 CIOU 论文考虑到bbox回归三要素中的长宽比还没被考虑到计算中,因此,进一步在DIoU的基础上提出了CIoU。其惩罚项如下面公式:

win10安装linux子系统

开启支持 点击确定,执行完毕,点击重启 安装linux系统 windows应用商店下载linux 安装 管理员打开ubuntu,安装完毕 打开linux cmd输入bash Linux子系统(WSL) 配置阿里云下载镜像

Word中 Go to endnote 出现闪退问题解决办法

注意:以下解决方法是在 你没有 “FQ”的情况,FQ也会导致endnote 闪退哈,血的教训 ! 如果之前Endnote都没有出现问题,突然出现闪退的情况, 有可能是word中宏的安全性太高了了,阻止了它。请在word中,工具菜单,宏,安全性,设置为“低”试试。 方法一 1、首先打开需要编辑的WORD文档,找到工具栏的“文件”选项并点击。 2、进入文件选项卡之后,找到“选项”并点击。 3、在选项卡下选择最下面的“信任中心”并点击。 4、在信任中心选项卡下设置“信用中心设置”。 5、按照自己的需求选用“宏设置”,即可。(本人从第二个修改成第三个) 方法二、修改Host文件阻止EndNote检查更新 (推荐这个方法) 1、开门见山,在资源管理器中输入“C:\Windows\System32\drivers\etc”回车到该路径下,使用记事本打开“host”文件。 2、在文件最后添加“220.181.38.148 download.endnote.com”并保存。 3、此时EndNote即可正常打开(如无其他意外情况),此种方法第一次打开时可能会有些慢,请等待片刻。 遇到的问题和解决的办法 第二种方法需要管理员权限的,先另存到桌面,然后在替换回去,这时他会提示使用管理员权限,点继续就好了。 感谢: EndNote X9 软件开启即闪退更好的解决方法 - 知乎 (zhihu.com)

html5,css3笔记(基础)

什么是html? HTML是超文本标记语言。HTML也就是由各种各样的标签组成。 什么是网站? 网站是由网页组成,网页包括文字,图片,音频,视频等元素。 web标准 包括结构,表现,行为三个方面。 结构:用于对网页元素进行整理和分类,主要用html。 表现:用于设置网页元素的版式、颜色、大小等外观样式,主要用CSS。 行为:指网页模型的定义及交互的编写,主要用的是Javascript。 Web标准提出的最佳体验方案:结构、样式、行为相分离。简单理解:结构写到HTML文件中,表现写到CSS文件中,行为写到JavaScript文件中。 HTML语法规范 标签:所有的标签都要写在尖括号里,大多数标签是成对出现的,也有单标签。 双标签:<标签> </标签> 例如:<html> </html> 单标签:<标签> 例如:<br /> 标签关系 双标签之间的关系:1.包含关系 2.并列关系 HTML基本结构标签 每个网页都会有一个基本的结构标签(也称为骨架标签),页面内容也是在这些基本标签上书写。 1.HTML标签:<html> </html>,页面中最大的标签,我们称为根标签。 2.文档的头部:<head> </head>,注意在head标签中我们必须要设置的标签是title。 3.文档的标题:<titile> </title>,让页面拥有一个属于自己的网页标题。 4.文档的主体:<body> </body>,元素包含文档的所有内容,页面内容基本都是放到body里面的。 结构图 开发工具 VS Code 推荐VS Code 插件安装 基础代码含意 1.<!DOCTYPEhtml>:文档类型声明标签,告诉浏览器这个页面采取html5版本来显示页面。 2.<htmllang=“en”>:告诉浏览器或者搜索引擎这是一个英文网站,本页面采取英文来显示。en定义语言为英语,zh-CN定义语言为中文。 3.<meta charset="UTF-8”/>:必须写,采取 UTF-8来保存文字,如果不写就会乱码。charset 常用的值有:GB2312、BIG5、GBK和UTF-8,其中UTF-8也被称为万国码,基本包含了全世界所有国家需要用到的字符。 常用标签 标题标签 一共有六级:<h1>~<h6>等级依次递减。 格式:<h1> 标题 </h1> 特点: 1.加了标题的文字会变的加粗,字号也会依次变大。 2.一个标题独占一行。 段落标签 格式:<p> 段落 </p> 特点: 1.文本在一个段落中会根据浏览器窗口的大小自动换行。 2.段落和段落之间保有空隙。 换行标签 格式:<br /> 特点: 1.<br/>是个单标签。 2.<br/>标签只是简单地开始新的一行,跟段落不一样,段落之间会插入一些垂直的间距。 文本格式化标签 作用:在网页中,有时需要为文字设置粗体、斜体或下划线等效果,这时就需要用到HTML中的文本格式化标签,使文字以特殊的方式显示。

JAVA实现文件的压缩与解压

压缩 public class ZipUtilt { public static boolean toZip(ServletResponse response, String filePath) { try { // 获取被压缩文件 File file = new File(filePath); // 从压缩文件中获取输出流 OutputStream baseOS = response.getOutputStream(); ZipOutputStream zipOutputStream = new ZipOutputStream(baseOS); // 被压缩文件和目录分不同的方式压缩 boolean isSuccess=fileToZip(file, zipOutputStream, ""); zipOutputStream.flush(); zipOutputStream.close(); baseOS.flush(); baseOS.close(); return isSuccess; } catch (Exception e) { // TODO: handle exception return false; } } // 主要是针对目录好做递归处理抽取方法 public static boolean fileToZip(File file, ZipOutputStream zipOutputStream, String zipEntryName) throws Exception { if (file.

uniapp简易封装request请求

一、创建httpRequest.js文件 // const baseUrl = "http://127.0.0.1:8080/"; const baseUrl = 'https://xxx.online/prod-api/' export const request = (url,method,data) =>{ return new Promise((resolve,reject) =>{ uni.request({ url: baseUrl + url, data: data, method: method, header: { token: uni.getStorageSync('token')!= null ? uni.getStorageSync('token'): '' }, success: (res) => { resolve(res) }, fail: (error) => { reject(error) } }) }) } export default request 二、main.js文件引入request import Vue from 'vue' //httpRequest,js文件创建在utils文件夹下 import {request} from "./utils/httpRequest.js" Vue.prototype.request = request 三、页面调用(微信小程序最新登录方式—选择+填写昵称)

uniapp小程序使用getUserProfile登录(获取昵称统一为‘微信用户’+头像为灰色头像)

一、微信授权登录按钮 <view class="name" v-if="!hasLogin"> <u-button @click="getUserProfile()" size="small" class="authorizationBtn" type="primary"> 微信授权登录 </u-button> </view> 二、微信授权登录弹窗 <view> <!-- 登录弹框 --> <u-popup :show="phoneModalShow" mode="center" border-radius="14" > <view class="sq_box"> <view>授权登录</view> <view>授权获取您的手机号</view> <view> <view class="agreement_warp"> <view>登录代表您已同意</view> <view @click="agreenmentDetailHandle" style="color: #ff431e;">隐私政策</view> </view> <u-button style="width: 100%;" type="success" @getphonenumber="getphonenumber" open-type="getPhoneNumber"> 微信快捷授权登录 </u-button> </view> </view> </u-popup> </view> 三、数据定义 hasLogin: false, phoneModalShow: false, // 手机号隐藏层 四、登录方法 //获取个人信息 async getUserProfile() { //调用微信获取code uni.login({ provider:'weixin', success: (logRes) => { console.log(logRes.code) this.code = logRes.

什么是集成测试?它和系统测试的区别是什么? 操作方法来了

01 什么是集成测试? 集成测试是软件测试的一种方法,用于测试不同的软件模块之间的交互和协作是否正常。集成测试的主要目的是确保不同的软件模块能够无缝协作,形成一个完整的软件系统,并且能够满足系统的需求和规格。 在集成测试中,测试人员将已经通过单元测试的软件模块组合起来,并测试它们之间的交互和协作。这些软件模块可以是由同一个开发团队或者不同的开发团队编写的,甚至可以是由不同的公司或组织提供的。 集成测试通常包括以下步骤: 定义集成测试计划:确定集成测试的范围、测试目标、测试方法和测试时间等方面的计划。 集成测试环境搭建:准备集成测试环境,包括硬件、软件、网络等方面的环境。 集成测试用例设计:根据需求和规格书编写集成测试用例,用于测试软件模块之间的交互和协作。 集成测试执行:执行集成测试用例,验证不同的软件模块之间的交互和协作是否正常,发现和修复缺陷。 集成测试报告:总结集成测试结果,包括测试覆盖率、测试结果和缺陷汇报等。 集成测试是软件测试过程中的一个重要环节,能够帮助开发团队在开发周期的早期发现和解决软件模块之间的交互问题,确保整个软件系统的质量和可靠性。 02 集成测试和系统测试的区别 集成测试和系统测试是软件测试过程中两个不同的阶段,它们之间有以下几个区别: 测试对象不同:集成测试主要测试软件模块之间的交互和协作,而系统测试则是测试整个系统的功能、性能和可靠性。 测试范围不同:集成测试的测试范围通常比系统测试小,它只测试软件模块之间的交互和协作是否正常。而系统测试的测试范围较大,它测试整个软件系统的功能、性能和可靠性。 测试环境不同:集成测试通常在开发环境中进行,而系统测试则在生产环境或与生产环境相似的环境中进行。这是因为系统测试需要测试整个系统的行为和响应,而这些行为和响应在生产环境中才能真正体现出来。 测试目的不同:集成测试主要是为了测试模块之间的交互和协作,确保整个系统在各个部分之间无缝协作,同时还能保证软件的质量和可靠性。而系统测试则是为了测试整个软件系统的功能、性能和可靠性是否满足要求。 测试时间不同:集成测试通常在开发周期的中后期进行,而系统测试则在整个软件开发周期的末期进行。这是因为集成测试需要等到模块开发完成之后才能进行,而系统测试需要在整个软件开发完成后进行。 综上所述,集成测试和系统测试在测试对象、测试范围、测试环境、测试目的和测试时间等方面存在着明显的区别。开发团队需要根据软件开发的不同阶段和测试需求,灵活选择和组合不同的测试方式和方法,以确保软件质量和可靠性。 03 如何看待集成测试? 集成测试是软件开发过程中非常重要的一环,它是在单元测试和系统测试之间的一项测试活动,主要是验证不同的软件模块之间的交互和协作是否正常,确保整个系统在各个部分之间无缝协作,同时还能保证软件的质量和可靠性。 以下是对集成测试的一些看法: 集成测试是保证软件质量的关键步骤之一。 集成测试可以帮助开发团队及时发现和解决各个模块之间的交互问题,确保整个系统的功能、性能和稳定性达到要求。 集成测试需要全面和细致。 在进行集成测试时,需要对所有的模块进行全面的测试,并尽可能地覆盖各种测试情况,以确保系统能够正常工作。同时,集成测试也需要非常细致,因为一个小的问题都可能导致整个系统崩溃。 集成测试需要与其他测试活动紧密配合。 集成测试是软件测试过程中的一个重要环节,与其他测试活动密切相关,例如单元测试、系统测试等。这些测试活动之间需要互相配合,形成一个完整的测试体系。 集成测试需要不断完善和改进。 随着软件开发的不断发展和变化,集成测试也需要不断地完善和改进。这需要测试团队不断学习新的测试技术和工具,并根据实际情况不断调整和改进测试策略和方法。 总之,集成测试是软件开发过程中非常重要的一环,它可以帮助开发团队及时发现和解决各种软件问题,确保软件质量和可靠性。在进行集成测试时,需要全面和细致,与其他测试活动紧密配合,并不断完善和改进测试策略和方法。 04 如何进行集成测试 进行集成测试需要有一个系统化的计划和步骤,以下是集成测试的一般步骤: 制定集成测试计划 在进行集成测试之前,需要先制定一个集成测试计划。这个计划应该包括测试的范围、测试的目标、测试的方法和工具、测试资源的分配和时间表等。 设计集成测试用例 集成测试用例是用来验证系统各个模块之间的交互和协作是否正常的测试用例。这些测试用例应该尽可能的覆盖系统的所有功能和交互。在设计测试用例时,需要根据需求规格说明书和系统设计文档进行测试用例的设计。 准备测试环境 在进行集成测试之前,需要准备好测试环境,包括硬件、软件和测试数据。测试环境应该和实际生产环境尽可能相似,以确保测试的准确性和真实性。 进行测试执行 在进行测试执行之前,需要先对测试用例进行排序和优先级划分,以确保测试能够有效地进行。在测试执行时,需要对测试用例进行逐一测试,并记录测试结果和问题。 进行问题修复和再测试 在测试执行过程中,可能会发现一些问题。这些问题需要进行记录,并尽快修复。修复完问题后,需要进行再测试以确保问题已经被彻底解决。 进行集成测试报告 在集成测试完成后,需要生成一个集成测试报告,这个报告应该包括测试结果、问题汇总、测试用例覆盖率等信息。这个报告应该向相关的开发团队和管理人员汇报测试结果。 总之,集成测试是软件测试过程中的重要一环。进行集成测试需要有一个系统化的计划和步骤,并需要对测试用例进行设计、测试执行和问题修复等工作。通过这些步骤,可以有效地发现和解决软件缺陷,提高系统的质量和可靠性。 最后: 下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取 【保证100%免费】 这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! ​

Windows官方U盘系统盘制作(windows11)

电脑用着卡顿或者搞环境把系统搞坏了咋办呢,那当然是重新做系统啦。 现在制作系统盘的方式有很多,但我本人最喜欢的制作方式还是官方的制作方式,今天就把微软官方的制作方法分享给大家。其实官方就有详细教程,这篇主要写给纯小白哈。 1.准备工具 U 盘:连接至少具有 8 GB 空间的空白 U 盘。U 盘上的所有内容都将被删除。 如果U盘里有东西且之后还需要,建议自行拷贝保存至安全的地方,除了清空U盘里的内容,我还习惯格式化一下U盘,虽然没啥用,但是他比起删除来说更快啊。 2.下载windows安装工具 下载连接:Download Windows 11 这里以Windows11为例,Windows10下载方法同样(下载 Windows 10) 进入网站之后,会看到“Windows 11 安装助手”,“创建 Windows 11 安装”,“下载 Windows 11 磁盘映像 (ISO)”,我们选择第二个直接点击立即下载。“开始之前”中写明了更多关于制作系统盘的要求,比如Windows11最低支持的硬件,大家可以自己看一下。 找到下载的安装工具,也就是一个普通的快捷方式mediacreationtool.exe,双击打开。 打开后进入“适用的声明和许可条款”界面,有兴趣的可以阅览一遍,或者直接点击“接受”即可。 选择语言和版本 此步骤主要选择想要安装的语言和版本,因为咱们下载的是Windows11的安装工具,所以只有Windows11和Windows11家庭中文版两个选项。 相信大家大部分会选择“中文(简体)”,当然,如果你习惯其他语言,也可以选择。 “对这台电脑使用推荐的选项”中的“这台电脑”指的是制作系统盘的电脑,如果此电脑和预装新系统的电脑硬件设施配置差不多的话,直接勾选此选项即可,问就是省事儿。 选好之后点击下一页。 选择要使用的介质 直接选择U盘即可,不得小于8G,点击下一页。 选择U盘 选择你插入的U盘,点击下一页。 正在下载Windows 等待进度到100%,根据网速不同,时间长短不一,下载完成后点击下一页。 正在创建Windows介质 类似于平时的“安装” 系统盘制作完成 点击“完成”,完成制作。 打开系统盘,可以看到内部结构如下,如果是在本电脑安装系统,双击setup.exe即可开始。 当然,更多的还是为系统坏掉的电脑安装系统,时间关系后续再更新吧,大家也可先自行查阅网上资料。 以上就是微软官方系统盘的制作全过程,虽然啰嗦点,但也够详细了,现在制作官方系统盘比起以前确实简单了不少。写这个教程主要是我妹系统老坏哈哈哈,而且比较推荐大家用官方的,确确实实干净不少;但目前来说也有缺点,因为没用PE系统,所以用此方法安装完系统后,原来系统C盘就被清空放置新系统了,喜欢将文件放在桌面的小伙伴可以以后将重要文件存在其他盘里哈。

软考高项第4版教程-差异点解析来啦(第5章下)

第5章信息系统工程,我拆分成2篇来解析第4版教程的差异重点,上篇解析了“软件工程”和“数据工程”知识块,这次带来下篇:“系统集成”和“安全工程”知识块。 “信息系统工程”文字版 “系统集成”讲了4部分知识点,分别是网络集成、数据集成、软件集成和应用集成。 1. 系统集成4个基本原则 在开始学这4大金刚之前,你需要先知道系统集成的4个基本原则:开放性、结构化、先进性和主流化。 先进性有可能会和你之前想的不一样,之前想的是要选择最合适的,而不是选择最先进的,但是这里之所以把先进性列为基本原则,主要是因为系统采用先进的技术才能确保系统的优势和较长的生存周期。 2. 7个子系统 网络集成的体系框架中列出了7个比较重要的子系统,分别是传输子系统、交换子系统、安全子系统、网管子系统、服务器子系统、网络操作系统和服务子系统。 你需要掌握这几个子系统的定位和作用,按照我的理解,这个知识点如果要考的话,只会在上午场的选择题中考到,而且会通过判断的方式来考,所以理解了这几个子系统的作用,这个知识点就基本上搞定。 3. 数据集成 数据集成是个难点,这里面涉及到数据集成的4个层次,分别是基本数据集成、多级视图集成、模式集成和多粒度数据集成。 你需要掌握的是这4个集成的特点区别,同样的,也可能通过选择题让你判断对错的方式来考,如果实在理解不了,记住一些特点的关键词也是一种方法。 4. 异构数据集成 数据集成还提到了异构数据集成,异构数据集成方法其实一共有三种,分别是过程式方法、声明式方法和利用中间件集成。至于开放数据库互联标准 ODBC、基于XML的数据交换标准和 基于 JSON 的数据交换格式,做一些了解就好。 5. 软件集成 软件集成主要讲了软件构件的一系列标准,比如CORBA、COM、DCOM 与 COM+、.NEI、J2EE ,这部分内容相比比较偏技术。 我个人认为,过于偏向技术的可能并不会成为考试的重点,再加上这部分内容篇幅不多,所以你仅仅需要记住有关这些标准的特点关键词就好,到时候如果考试时考到了,通过关键词来选择答案是一个比较好的捷径技巧。 6. 应用集成 应用集成在第4版教程中的篇幅也不多,前后加起来也就一页多一些,属于食之无味弃之可惜的鸡肋知识点。了解下应用集成的特点、对应用集成的技术要求就好。 7. 安全工程 “安全工程”知识块开篇的工程概述部分,我个人感觉写的太绕了,生生把业务应用信息系统、信息安全系统、业务应用信息系统工程和信息安全系统工程说成了绕口令。 其实要我说很简单啊,业务应用信息系统是服务业务的系统,信息安全系统是确保安全的系统。在这两个系统名称后面增加“工程”2个字,就代表建设这个动作,或者建设系统这个项目,就是这样简单,不知道教程为何生生花了一页的篇幅来讲。 8. 信息安全空间 安全系统的信息安全空间,我理解是这个知识块的重点,这个知识点在第3版教程也有,第4版教程改动并不大。 信息安全空间有3个坐标轴,x轴是“安全机制”,Y轴是“OSI 网络参考模型”,z轴是 “安全服务”,这3根坐标轴就组成了信息系统的“安全空间”。 教程中还顺便提到了“安全空间”的五大属性:认证、权限、完整、加密和不可否认。 9. 工程体系架构 关于接下来的工程体系架构,你需要掌握工程过程 、风险过程和保证过程三个基本部分。 最后ISSE-CMM 的体系结构,你需要记住两维设计,其中一维是“域” ,另一维是“能力”,这部分内容没有别的学习窍门,如果你看不懂的话,建议你把关键要点背下来就行。 下篇写了1000多字就写完了,很好,也从一个侧面印证了第5章的学习重心应该放在前面2个知识块上,也就是“软件工程”和“数据工程”上。 “信息系统工程”脑图版 除了上面介绍的差异点之外,我还结合我的理解,制作了第5章的重点考点的思维导图 我在思维导图中,不仅把本章重要知识点摘录出来,而且也提供了新版教程的差异点及我的备考建议,这样你可以在复习学习时,对照思维导图进行学习。 由于图片上传时会被自动压缩,如果图片看不清,或者想要全高清的思维导图PDF版,可以小窗我,我线下发你 预报下,这个系列主要讲第4版教程的差异章节,所以下次分享会直接跳到第18章 项目绩效域。至于和第3版教程区别不大的章节,我会在完成差异章节分享之后,看大家是否需要,如果不再需要,就会为这个系列画个句号。 最后,祝你不惧软考高项信息系统项目管理师的教程改版,和指尖疯一起,不疯魔不成活,拿下证书!

2022国赛16:windows 部分组策略题

试题内容: (二)组策略 任务描述:请采用组策略,实现软件、计算机和用户的策略设置。Powershell7 软件部署策略在整个 skills 林中配置,其余组策略在 skills.com 域中配置。 1.部署软件 powershell7,让林中主机自动安装 powershell(从物理机复制 powershell7.msi 到 windows1 的 C:\soft)。(如果部署不成功,需要手动安装。) 2.启用所有 windows 服务器的防火墙。添加防火墙入站规则,名称为 ICMPv4, 启用源、目的地址 ip 地址是 10.10.0.0/16 的 icmpv4 回显请求。 3.域中主机自动申请“ipsec”模板证书。自动注册“工作站身份验证”模 板证书,该模板可用作“服务器身份验证”,有效期 5 年。windows3 和 windows4 之间通信采用 ipsec 安全连接,采用 windows1 颁发的计算机证书验证。 4.允许 manager 组本地登录域控制器,允许 manager19 用户远程登录到域控 制器;拒绝 sale 组从网络访问域控制器。 5.登录时不显示上次登录,不显示用户名,无须按 ctrl+alt+del。 6.登录计算机时,在桌面新建名称为 chinaskills 的快捷方式,目标为 https://www.chinaskills-jsw.org,快捷键为 ctrl+shift+f6。 7.为正在登录此计算机的所有用户设置漫游配置文件路径为 windows1 的 C:\profiles,每个用户提供单独的配置文件文件夹。 8.每个用户的“文档”文件夹重定向到 windows1 的 C:\documents,为每一 用户创建一个文件夹。 9.manager00 登录系统时,对 windows1 的 C:\docshare 共享文件夹映射驱 动器 Z。

升级!!Ubuntu20.04 noetic

Ubuntu20.04 noetic ubuntu版本:20.04 webots版本:2021a ros版本:noetic 为了能和读者进一步讨论问题,建立了一个微信群,方便给大家解答问题,也可以一起讨论问题。 加群链接 前言 想得到python3的完美支持,笔者下定决心直接更新系统,少走弯路 1.安装ros noetic 安装步骤: 添加 sources.list(设置你的电脑可以从 packages.ros.org 接收软件.) $ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' 添加KEYS $ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 安装ROS 更新库为最新: $ sudo apt update 安装桌面完整版 : 包含ROS、rqt、rviz、机器人通用库、2D/3D 模拟器、导航以及2D/3D感知 $ sudo apt install ros-noetic-desktop-full PS:安装时遇到依赖问题 下列软件包有未满足的依赖关系: ros-kinetic-desktop-full : 依赖: ros-kinetic-desktop 但是它将不会被安装 依赖: ros-kinetic-perception 但是它将不会被安装 依赖: ros-kinetic-simulators 但是它将不会被安装 E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。 解决过程: 使用sudo apt install aptitude 安装aptitude工具在软件和更新->可从互联网下载中,全部打上钩,然后sudo apt update尝试安装sudo aptitude install ros-kinetic-desktop-full再次安装sudo apt-get install ros-kinetic-desktop-full 环境配置 $ echo "

Fast-ES:全网唯一的Elasticsearch桌面客户端软件

什么是Fast-ES? Fast-ES是一款操作elasticsearch的桌面客户端,通过简单便捷的可视化界面,替代了复杂的DSL语句编写,从而实现了“快”速上手、“快”捷使用elasticsearch的效果。 Fast-ES有何独特之处? 快速上手,省去elasticsearch DSL学习成本,桌面客户端即开即用 快捷操作,可视化界面一目了然,减少查找、编写脚本时间 功能全面,包含数据操作、数据建模、管理监控三大基础功能,另有高级操作扩展补充,覆盖索引、文档相关绝大多数elasticsearch使用场景 功能介绍 二.数据操作 2.1 数据新增 只需要填入JSON数据就能新增一条数据 2.2 数据查询 选择我们想要查询的条件,输入待过滤的值,就能快速查询 2.3 数据修改 2.3 数据删除 三.数据建模 3.1 索引 3.1.1 新增索引 3.1.2 查询索引 3.1.3 修改索引 3.1.4 删除索引 3.2索引模板 3.2.1 新增索引模板 3.2.2 查询索引模板 3.2.3 修改索引模板 3.2.4 删除索引模板 3.3别名 3.3.1 查询别名 3.3.2 删除别名 3.3.3 新增别名 四.管理监控 4.1 集群健康 4.2 集群统计 4.3 节点信息 4.4 分片信息 4.5 段信息 五.高级操作 5.1 api示例 5.2 api执行 软件下载地址: https://github.com/NexNoSQL/NexNoSQLClient/releases/download/v1.0.0/NexNoSQL-Client-1.0.0-setup.exe

Python 正则表达式应用总结,如何找出全部匹配文本

文章目录 正则表达式介绍一、正则表达式语法规则二、Python中应用正则表达式1.导入re标准库2.如何找到所有匹配正则表达式的文本?Python re模块常用的几种正则表达式方式 总结 正则表达式介绍 正则表达式用于在字符串文本中匹配所要搜索的字符串样式,比如验证用户输入的邮箱格式是否正确,IP地址格式是否有误以及查找字符串中所有的网址等等… 注意,正则表达式是对文本格式的一种概括语法,其不局限于Python语言,只要是支持正则表达式的语言都可以用应用 一、正则表达式语法规则 正则表达式详细的语法可以百度或者参考菜鸟教程正则表达式 练习正则表达式语法可以参考菜鸟正则表达式在线测试器里面同时有一些常见的格式如身份证、IP等等现成的格式可套用。 篇幅较多本文在此不再复述 二、Python中应用正则表达式 1.导入re标准库 re是python用于支持正则表达式的标准库 常用的函数及语法如下: re.compile() 用于通过正则表达式语法创建正则表达式对象以方便后续调用 #示例 import re Tmpre1=re.compile(r'2(5[0-5]|4\d)|1?\d{1,2}') re.match() 用于从文本开始查找匹配的文本内容,如果没有找到则返回None import re str1 = '241.255.2.30' str2 = '...241.255.2.30' Tmpre1=re.compile(r'2(5[0-5]|4\d)|1?\d{1,2}') Tmpre2=re.compile(r'2(5[0-5]|4\d)|1?\d{1,2}') print(Tmpre1.match(str1)) print(Tmpre1.match(str2)) 输出如下: <re.Match object; span=(0, 3), match='241'> None re.search() 用于人文本中搜索第一个匹配的文本,并返回找到的第一个文本的内容,如果没有找到则返回None #示例: import re str1 = '...241.255.2.30' re4=re.compile(r'2(5[0-5]|4\d)|1?\d{1,2}') re5=re.compile(r'25[0-5]|24\d|1?\d{1,2}') print(re4.search(str1,3)) print('{:20}{}'.format('March',re4.search(str1))) print('{:20}{}'.format('March.group()',re4.search(str1).group()))#返回一个或者多个匹配的子组。如果只有一个参数,结果就是一个字符串,如果有多个参数,结果就是一个元组(每个参数对应一个项),如果没有参数,组1默认到0(整个匹配都被返回) print('{:20}{}'.format('March.startpos',re4.search(str1).start())) print('{:20}{}'.format('March.end()',re4.search(str1).end()))#返回 group 匹配到的字串的开始和结束标号。group 默认为0(意思是整个匹配的子串)。如果 group 存在,但未产生匹配,就返回 -1 print('{:20}{}'.format('March.endpos',re4.search(str1).endpos))#这个是正则引擎停止在字符串搜索一个匹配的索引位置。 print('{:20}{}'.format('March.re',re4.search(str1).re))#返回产生这个实例的 正则对象 print('{:20}{}'.format('March.pos',re4.search(str1).pos))#这个是正则引擎开始在字符串搜索一个匹配的索引位置。 print('{:20}{}'.format('March.regs',re4.search(str1).regs)) print('{:20}{}'.format('March.string',re4.search(str1).string))#输出所要搜索的字符串 print('{:20}{}'.

python:二叉树的递归遍历之前序遍历文字详解(基于力扣)

目录 前言: 二叉树: 前序遍历: 前言: 这篇作为自己“理解二叉树递归”的记录,非常适合和我一样的新手朋友。 二叉树: 关于二叉树,我总结了下面几点: 1. 二叉树和链表相似(这里只说单链表),链表有一个指针,指向下一个节点。 2. 二叉树的每一个节点有两个指针,分别指向左右子节点。 3. 我们所说的“根节点”,并不是但指最顶端的节点,每一个节点,都是根节点。 4. 请务必区分开,根节点的左右指针,指的是“子节点”,还是“左子树”,还是“右子树”。 5. 二叉树的遍历分为三种,分别是:前、中、后序遍历,“前中后”的位置,指的是“根节点”的位置,即:根左右,左根右,左右根。 6. 请牢记第3条tip。 这里为大家避个雷。 在b站上看了一个视频,这个up主讲了一下什么是前中后序遍历,他在遍历的时候,先写出了第一层和第二层的子节点,然后依照递归遍历的方法,在这三个节点左右两边开始加“左右子节点”。说实话,这个视频非常误导我的思路。他的书写方法很好懂,但和递归遍历没有关系。也就是说,看完了,也没整明白怎么递归。 千万不要用上面的思维去理解递归!!! 这是一个手绘二叉树。 前序遍历: 牢记:根左右 我们输出结果,需要有一个列表,于是创建一个空列表result = [] leetcode 建议在类中创建一个 def __init__(self): 函数,初始化这个空列表。 (如果没有初始化,则不会清空result,相当于每次调用的结果都会装在这个列表里) 接下来,遍历开始: # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def __init__(self): self.result = [] def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]: if root !

【Android折叠屏适配】基于AutoSize框架适配折叠屏并兼容多窗口模式

问题背景 当前最新的Android API 33对大屏设备的支持已较为完善,结合Jetpack Compose等响应式布局可实现一次适配所有屏幕。但考虑到代码往往是不能立即重构的,想要利用存量代码适配层出不穷的大屏及可折叠设备,并兼容多窗口场景,可采用Android界大名鼎鼎的AutoSize框架配合2套设计图尺寸来完成。 AutoSize框架基本原理 AutoSize框架支持5种单位 ,包括dp、sp、pt、in、mm,其中dp及sp为AutoSize框架的主单位。开发过程中可开启或关闭对某一单位的支持,使用主单位+副单位或只使用副单位进行适配都是可以的。选择哪一个副单位,撰写layout时就使用该单位即可。 AutoSize适配屏幕的核心原理为通过WindowManager拿到DisplayMetrics中的屏幕宽高(单位为px),再结合设置的设计图宽高(单位为px)计算并全局设置density(细节可查阅AutoSize框架源码)。 在Application及BaseActivity中进行设置 考虑到折叠屏开合时具有2组不同的屏幕宽高,我们针对其设置2套设计图宽高用以正确计算density。由于具有2套设计图尺寸,在AndroidManifest中设置设计图宽高不可行,需在Application onCreate()中计算当前屏幕宽高比及window宽高比手动设置设计图宽高,代码如下。 此外,在屏幕折叠及旋转场景下,从registerComponentCallbacks的onConfigurationChanged()回调中拿到的屏幕宽高有时不准确,尚未定位到原因(增加时延也并不稳定),故需在封装的BaseActivity的onConfigurationChanged()生命周期中也加入如下处理。 /*注册屏幕适配监听器,适配前后均会回调此方法*/ AutoSizeConfig.getInstance().setOnAdaptListener(new onAdaptListener() { @Override public void onAdaptBefore(Object target, Activity activity) { if (activity == null) { return; } int[] windowSize = new int[2]; windowSize[0] = activity.getResources().getDisplayMetrics().widthPixels; windowSize[1] = activity.getResources().getDisplayMetrics().heightPixels; AutoSizeConfig.getInstance() .setCustomFragment(true) .getUnitsManager() .setSupportSP(false) .setSupportDP(false) .setSupportSubunits(Subunits.MM); /*判断屏幕宽高比是否为大屏*/ if (FoldScreenUtil.isLargeScreen(activity)) { /*判断window宽高比是否为大窗口*/ if (FoldScreenUtil.isLargeWindow(activity)) { Log.i("isLargeScreen", "isLargeWindow"); /*判断横竖屏*/ if (activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { /*大屏-大窗口-横屏设计尺寸*/ AutoSizeConfig.getInstance() .getUnitsManager() .setDesignWidth(windowSize[0]) .

注册证书的代码

# 注册证书 $expirationDate = [datetime]::Today.AddYears(5) # $expirationDate =(Get-Date).AddDays(7) $thumb = (New-SelfSignedCertificate -Type Custom -Subject "CN=Only Software, O=Only Corporation, C=US" -KeyUsage DigitalSignature -FriendlyName "Your friendly name goes here" -CertStoreLocation "Cert:\CurrentUser\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}") -NotAfter $expirationDate).Thumbprint #导出证书 $pwd = '123456' $destinationDirectory = "C:\Test\" $filename = "mycert.pfx" $pathAndFilename = $destinationDirectory + $filename $password = ConvertTo-SecureString -String $pwd -Force -AsPlainText Export-PfxCertificate -cert "Cert:\CurrentUser\My\$thumb" -FilePath $pathAndFilename -Password $password

KODI通过NFS访问群晖NAS

1、群晖端设置 电脑登录群晖,打开控制面板->共享文件夹,选中要在KODI中访问的文件夹,右键点“编辑”,选择“NFS权限”,然后按如下设置: 指定KODI客户端所在的IP(也可用通配符,不建议)权限只读Squash:映射所有用户为admin最下面的两个“允许来自非特权端口的连接”和“允许用户访问已装载的子文件夹”勾上 然后点保存。 2、KODI设置 KODI,选择左侧菜单“电影”,进入文件区,点“添加视频...”,在弹出的对话框中输入NAS共享文件夹路径,比如: nfs://192.168.2.100/volume2/Video 默认会生成名字Video,保存即可。 如果不想自己输入,也可以点“浏览”,选择列表中的“网络文件系统(NFS)”,它会搜索列出可NFS访问的IP地址,点进去能看到共享文件夹,选择保存即可。

在Spring Boot中封装Face++人脸识别的工具类

进入Face++官网:Face⁺⁺ 注冊自己的账号,然后创建一个免费的应用,得到自己的API Key: 然后去封装请求Face++接口进行人脸检测的工具类: 我们主要用到这三个接口: 点开相应的接口可以看到详细的介绍,已经使用方式。 首先是人脸检测API,它可以识别一张图片中的人脸,并且得到这个人脸数据,返回一个face_token,这个face_token就代表了我们这个图片的关键信息。 然后点开人脸检测的API文档可以看到详细的信息,比如请求的接口地址,携带的参数等等。 我们可以看到它的接口地址,请求方式,还有参数,其中的API_key和api_secret是任何接口都必须需要的携带的参数,也就是我们创建应用的API Key。 接下来开始封装工具类: 1.请求工具类,这是直接从官网扒拉下来的,直接用就行。 package com.dong.server.utils.FactUtil; import javax.net.ssl.SSLException; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Random; /** * Http的请求工具類 */ public class HttpUtils { private final static int CONNECT_TIME_OUT = 30000; private final static int READ_OUT_TIME = 50000; private static String boundaryString = getBoundary(); protected static byte[] post(String url, HashMap<String, String> map, HashMap<String, byte[]> fileMap) throws Exception { HttpURLConnection conne; URL url1 = new URL(url); conne = (HttpURLConnection) url1.

stm32---PWM输出

STM32 PWM工作过程(通道1为例): 改变 CCRx 的值,就可以改变 PWM 输出的占空比,改变 ARR 的值以及定时器的频率,就可以改变 PWM 输出的频率(即周期) PWM模式1 & PWM模式2 有效电平根据设置输出极性输出高低电平 STM32 PWM void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload); void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState); 自动重载的预装载寄存器 void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState); 简单的说,ARPE=1,ARR立即生效。。。APRE=0,ARR下个比较周期生效。 ==================================================================== PWM输出配置步骤: 1.使能定时器3和相关IO口时钟。 使能定时器3时钟:RCC_APB1PeriphClockCmd(); 使能GPIOB时钟:RCC_APB2PeriphClockCmd(); 2.初始化IO口为复用功能输出。函数:GPIO_Init(); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; 3.这里我们是要把PB5用作定时器的PWM输出引脚,所以要重映射配置, 所以需要开启AFIO时钟。同时设置重映射。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); 、 4.初始化定时器:ARR,PSC等:TIM_TimeBaseInit(); 5.初始化输出比较参数:TIM_OC2Init(); typedef struct { uint16_t TIM_OCMode; //PWM模式1或者模式2 uint16_t TIM_OutputState; //输出使能 OR失能 uint16_t TIM_OutputNState; uint16_t TIM_Pulse; //比较值,写CCRx uint16_t TIM_OCPolarity; //比较输出极性 uint16_t TIM_OCNPolarity; uint16_t TIM_OCIdleState; uint16_t TIM_OCNIdleState; } TIM_OCInitTypeDef; TIM_OCInitStructure.

STL三维模型切片(一)——文件导入

STL格式的三维模型由大量三角形面片构成,文件中只记录了每个三角形的基本信息,包括三个顶点及其法向量(表示内外)。在对该模型进行处理之前,首先必须将其导入进来。STL格式的有两种记录形式:二进制及文本方式,二者没有本质区别,都只是记录了三角形的信息。先放代码,再逐个功能进行分析。 private MeshGeometry3D GetMeshModelFromSTLFile(string path) { StreamReader srFirstLine = new StreamReader(path); string fileType = srFirstLine.ReadLine().Substring(0, 5); string secondLine = srFirstLine.ReadLine().Trim().Substring(0, 5); srFirstLine.Close(); MeshGeometry3D mesh3D = new MeshGeometry3D(); int indexOfTriangles = 0; if (fileType == "solid" && secondLine == "facet") //ASCII type { StreamReader sr = new StreamReader(path); sr.ReadLine();//remove first line while (sr.ReadLine() != null) //remove facet normal line { if (sr.ReadLine() == null) { break; }//remove outer loop line mesh3D.

c# PropertyGrid 使用案例注意事项

文章参考链接:C# PropertyGrid使用案例详解_C#教程_脚本之家 (jb51.net) 1. 只有public的property能显示出来,可以通过BrowsableAttribute来控制是否显示,通过CategoryAttribute设置分类,通过DescriptionAttribute设置描述,Attribute可以加在Class上,也可以加在属性上,属性上的Attribute优先级更高; 2. enum会自动使用列表框表示; 3. 自带输入有效性检查,如int类型输入double数值,会弹出提示对话框; 4. 基本类型Array:增加删除只能通过弹出的集合编辑器,修改可以直接展开,值为null时,可以通过集合编辑器创建; 5. 基本类型List:增删改都只能通过集合编辑器,值为null时,能打开集合编辑器,但不能保存结果,所以必须初始化;-----使用时必须初始化,才可以使用 public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { TestPram testPram = new TestPram(); propertyGrid1.SelectedObject = testPram; } } public class TestPram { public List<PointXY> Names { get; set; } = new List<PointXY> { new PointXY { X = 2, Y = 3 } }; } public class PointXY { public float X { get; set; } public float Y { get; set; } } 6.

vue3自定义指令之防抖

我们使用 vue 时,有时候需要用到自定义指令,例如一个防抖指令 前言 现在有一个需求,用户在点击某个按钮时,我不希望用户在疯狂点击后,每次点击都会触发事件,像服务器发送请求,这并不是我们预期的,所以我们需要在用户点击是做防抖处理。那么怎么做到方便复用的解决方法?还真有,那就是自己定义指令 一、在 main 中使用自定义指令 import useDebounce from '@/hooks/useDebounce' const app = createApp(App) app.directive('debounce', useDebounce) 下面是 useDebounce 代码 /** * 防抖指令 * @param el 指令绑定的元素 * @param binding 指令绑定的值 * @param binding.value.callback 回调函数 * @param binding.value.params 回调函数参数 * @param binding.value.delay 延迟时间 * @example * <button v-debounce="{callback: handleLike, params: { test: 0 }}">防抖</button> handleLike 为函数 params 为传入的参数 */ export default { mounted(el: HTMLElement, binding: { value: { callback: Function; params?

IDEA上传项目到Gitee仓库(清晰、明确、具体)

一、创建Gitee仓库 Tip:若已经创建过了,直接跳到第二部分看VsCode如何上传代码到Gitee 创建仓库比较简单,下面两张图就是整个过程,这里不在赘述,具体如下: 二、IDEA上传项目到Gitee仓库 1.打开IDEA,选择菜单栏中 " VCS "选项,选择 版本控制,创建本地Git仓库。如下图所示。 2.选择为“哪个项目”创建本地仓库,即:你要上传到Gitee上的项目 3.本地仓库创建成功后提示master信息 4.将项目放入到本地仓库中,操作如下图所示。 5.等待加载完成 6.准备将项目提交到Gitee上,操作如下图所示。 7.进入界面后,会看到对应的项目结构信息,在这里选择好你要上传的 项目,并且可以添加注释,之后点击 Commit 提交。 注意: 不要选择错了,会导致数据存放混乱。 另外,也可以对单个文件进行上传,道理相同。 8.等待加载完成 9.如果弹出下面的警告信息提示,不要慌,点击 Commit即可。(没有警告信息可忽略) 10.Commit 提交成功后IDEA会给我们一个信息提示。 注意: 到此处为止 ----> 我们只是把代码提交到了本地仓库, 接下来我们将其 推送到Gitee上的仓库中。 11.仍然是一样的操作,找到Git,这次我们点击 Repository ---> Push 上传到Gitee仓库。 如下图所示。 12.这里是为 第 13 步做准备工作。 打开Gitee仓库界面,辅助我们新建仓库的 HTTPS地址,如下图所示。 13. 第12步 点击Push后 弹出这个界面,这里我们需要为我们发布的项目连接上我们再在Gitee上的仓库,按照下图步骤进行操作即可。 14. 连接上 Gitee上的仓库后会显示下图所示界面,之后点击 Push 按钮即可上传到Gitee上的仓库,如下图所示。 15. 上传到 Gitee仓库成功后,IDEA会给我们信息提示。 16. 进入我们Gitee中的仓库,可以看到我们上传上去的项目代码, 如下图所示,即上传完成。 17.到此,操作就完成了 ---------------------------------------- END

VsCode推送项目到Gitee仓库(清晰、明确、具体)

一、在Gitee上新建一个仓库 Tip:若已经创建过了,直接跳到第二部分看VsCode如何上传代码到Gitee 创建仓库比较简单,下面两张图就是整个过程,这里不在赘述,具体如下: 二、VsCode连接Gitee上创建的仓库 1.打开VsCode,找到 资源管理器在 “更改”栏下选择你马上要提交到Gitee上的代码,点击 “+”号即可添加。添加后,在 “暂存的更改”栏下就是我们选择好的文件。如下图所示: 2.暂存的更改 是临时存放的你准备提交到 Gitee上的代码。如下图所示: 3.添加远程存储库,方面我们后面使用 (1)选择添加远程存储库,步骤图下图所示: (2)提示我们输入仓库URL或选择仓库源 (3)打开我们刚才创建仓库的网页,复制HTTPS对应的URL。 (4)回到我们的 VsCode界面,按键盘 Ctrl+V 粘贴复制的 URL (5)输入对应的仓库名称,建议:与Gitee上仓库名称保持一致 (6)给自己上传的项目添加 说明,也可以不添加。 添加备注好处: 我们看到代码时可以知道 这段代码是我们什么时候放上去的、有哪些内容,就像你写笔记是一样的。看文章末尾,你可以看到添加备注后是展示在哪里。 4.发布项目到Gitee仓库上 (1)提交完成后,点击 ...菜单,选择 “推送到”,步骤如下图所示。 (2)选择你要上传的仓库,可以是预先添加好的,也可以重新添加新仓库。如下图所示: (3)选择完成后即可准备好要上传到Gitee上的代码,具体内容如下图所示。 (4)打开Gitee界面,进入我们上传代码的仓库,可以看到代码上传成功,以及注我们刚才添加的备注信息。 5. 到这里,整个操作就完成了

JVM垃圾回收行为的并行与并发

程序的并行和并发 程序的并发(Concurrent) 在操作系统中,是指一个时间段中有几个程序都处于己启动运行到运行完毕之间,且这几个程序都是在同一个处理器_上运行。并发不是真正意义上的“同时进行”,只是CPU把一个时间段划分成几个时间片段(时间区间),然后在这几个时间区间之间来回切换,由于CPU处理的速度非常快,只要时间间隔处理得当,即可让用户感觉是多个应用程序同时在进行。 程序的并行(Parallel) 当系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,我们称之为并行(Parallel)。其实决定并行的因素不是CPU的数量,而是CPU的核心数量,比如一个CPU多个核也可以 并行。适合科学计算,后台处理等弱交互场景 二者对比 并发,指的是多个事情,在同一时间段内同时发生了。并行,指的是多个事情,在同一时间点上同时发生了。并发的多个任务之间是互相抢占资源的。并行的多个任务之间是不互相抢占资源的。只有在多CPU或者一个CPU多核的情况中,才会发生并行。否则,看似同时发生的事情,其实都是并发执行的。 垃圾回收的并发与并行 并发和并行,在谈论垃圾收集器的上下文语境中,它们可以解释如下: 并行(Parallel) :指多条垃圾收集线程并行工作,但此时用户线程仍处于等待状态。 如ParNew、 Parallel Scavenge、 Parallel 0ld; 串行(Serial) 相较于并行的概念,单线程执行。如果内存不够,则程序暂停,启动JVM垃圾回收器进行垃圾回收。回收完,再启动程序的线程。 并发(Concurrent) :指用户线程与垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),垃圾回收线程在执行时不会停顿用户程序的运行。 ➢用户程序在继续运行,而垃圾收集程序线程运行于另一个CPU上;➢如: CMS、G1

Wise-IoU: Bounding Box Regression Loss with Dynamic Focusing Mechanism

Wise-IoU: Bounding Box Regression Loss with Dynamic Focusing Mechanism 一、引言二、实现细节三、实验 一、引言 本文通过估计锚框的离群度定义一个动态聚焦机制(FM) f(β),β = L I o U L I o U \frac{L_{IoU}}{L_{IoU}} LIoU​LIoU​​。FM通过将小梯度增益分配到具有小β的高质量锚框,使锚框回归能够专注于普通质量的锚框。 同时,该机制将小梯度增益分配给β较大的低质量锚箱,有效削弱了低质量样例对锚框回归的危害。 作者将这种操作称之为明智的IOU(WIoU)。 二、实现细节 由于训练数据不可避免地包含低质量的例子,距离、横纵比等几何因素会加重低质量例子的惩罚,从而降低模型的泛化性能。一个好的损失函数应该在锚盒与目标盒重合良好时弱化几何因素的惩罚,训练中较少的干预会使模型获得更好的泛化能力。在此基础上构建距离注意力,得到具有两层注意机制的WIoU v1: R W I o U ∈ [ 1 , e ) R_{WIoU}∈[1,e) RWIoU​∈[1,e),这将显著放大普通质量锚框的 L I o U L_{IoU} LIoU​。 L I o U ∈ [ 0 , 1 ] L_{IoU}∈[0,1] LIoU​∈[0,1],这将显著降低高质量锚框的 R W I o U R_{WIoU} RWIoU​,并在锚框与目标框重合良好时,将焦点集中在中心点之间的距离上。 其中 W g W_g Wg​, H g H_g Hg​是最小的包围框的大小。为了防止 R W I o U R_{WIoU} RWIoU​产生阻碍收敛的梯度, W g , H g W_g, H_g Wg​,Hg​从计算图中分离(上标*表示此操作)。因为它有效地消除了阻碍收敛的因素,所以没有引入诸如长宽比之类的新指标。

国内十大人工智能网站

有人说新的一次科技革命是人工智能革命,不管你信不信,但这必然是一个趋势。自从苹果Siri面世之日起,各种关于人工智能的信息如浪潮般涌入人们视野:语音识别、机器视觉、专家系统、自然语言处理、云计算、物联网……如今各种智能概念的大量涌现,人工智能正在成为社会生产力中最先进、最活跃、最具有革命性的因素。 其实人工智能并不是一个新的概念,“人工智能”一词最初是在1956年的Dartmouth学会上提出的。此后,研究者们发展了众多理论和原理,人工智能的概念也随之扩展。人工智能企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,其研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。 今天为了帮助大家更好的理解人工智能,我们介绍国内以人工智能为课题的是个专业网站: 1、中国人工智能网 网址:http://www.chinaai.org 简介:中国人工智能网,人工智能、模式识别和数字图像处理的专业网站。内容包括:神经网络,手写体文字识别,指纹识别,语音识别,人脸识别,专家系统等。 2、人工智能实验室 网址:http://www.ailab.org 简介:人工智能实验室(AiLab)是中国目前最大最专业的人工智能网上门户,本站汇集了最全面的人工智能学科知识和学习资料,是各位人工智能爱好者学习和交流不可或缺的平台,人工智能实验室,一群梦想者的快乐家园! 3、最人工智能网 网址:http://www.mostai.com 简介:最人工智能网:你挚爱的人工智能、科学人文网站!本站是关于人工智能领域的专业网站。 4、21世纪人工智能论坛 网址:http://www.21ai.com 简介:21世纪人工智能论坛,这里是人工智能和计算机技术爱好者们自由交流的好地方。 5、中文自然语言处理开放平台 网址:http://www.nlp.org.cn 简介:中文自然语言处理开放平台是一个旨在增进中文自然语言处理领域内学术和思想交流,促进资源共享的开放式网站平台。我们热切期盼所有本领域的学术同仁和爱好者在平等、合作和交流的基础上加入“开放平台”,共同参与“开放平台”的组织和管理工作。我们相信,只有更多志同道合的人的参与,才能使我们的力量逐步发展壮大! 6、智能中国网 网址:http://www.5iai.com 简介:智能中国网(http://www.5iai.com),目前已经成为中国最大的、访问量最高人工智能专业网站。该网站设立了创业和研发资源两个平台,为广大的俱乐部会员提供学习、资料下载、项目实践、项目交易、产品研发、在线培训、创业等服务。通过这些服务,帮助会员获取能力、提高能力、展示能力、实现人生价值。 7、中国图像网 网址:http://www.china-image.cn 简介:中国图像网,中国最具权威的机器视觉专业网站,由中国图象图形学会机器视觉专业委员会主办。关注领域:机器视觉、图像处理、人工智能、机器人、模式识别、医学图像等。 8、神经网络在线 网址:http://www.2nsoft.cn 简介:人工神经网络专业网站。 9、语音识别网 网址:http://www.yuyinshibie.com 简介:一个专业研究语音识别和开发语音识别软件的网站。 10、人工智能学会 http://http://www.caai.cn/ 简介:中国人工智能学会成立于1981年,是经国家民政部正式注册的我国智能科学技术领域唯一的国家级学会,具有独立法人资格;是中国科学技术协会的正式团体会员,具有推荐“两院院士”的资格,已申请设立《吴文俊智能科学技术奖》。学会活动的学术领域是智能科学技术,活动地域是中华人民共和国全境,基本任务是团结全国智能科学技术工作者和积极分子通过学术研究、国内外学术交流、科学普及、学术教育、科技会展、学术出版、人才推荐、学术评价、学术咨询、技术评审与奖励等活动促进我国智能科学技术的发展,为国家的经济发展、社会进步、文明提升、安全保障提供智能化的科学技术服务。 目前国产服务器主要品牌也就是浪潮、曙光、华为、超聚变、新华三、联想、风虎(科研服务器风虎信息、风虎云龙),也还有很多其他品牌,外国品牌惠普、戴尔、IBM等在国内还有不小的份额,其实核心部件大家都一样,选国产的更划算。 说明: 1、华为、超聚变已经为两家,超聚变以X86架构服务器为主,华为在走自研处理器服务器,主要为鲲鹏、昇腾系列; 2、科研服务器往往是众多应用的基础、涉及科研方向、领域较宽,特别是不同软件特征和使用环境,要求团队要有相当的专业经验,科研服务器是各类应用场景的先导和基础。 来源:国内十大人工智能网站 - 神经蛙没头脑的文章 - 知乎 https://zhuanlan.zhihu.com/p/618392113 

谈谈你对 MyBatis 的理解

1、Mybatis是一个半ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建 Statement 等繁杂的过程。程序员直接编写原生态 SQL,可以严格控制 SQL 执行性能,灵活度高。 中国的程序员对它的理解,甚至不是ORM框架,将其潜意识认为是面向sql的,其实是错误的,面向对象的大方向是恒定不变的。 2、MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 3、通过 XML 文件或注解的方式将要执行的各种 Statement 配置起来,并通过 Java 对象和 Statement 中 SQL 的动态参数进行映射生成最终执行的 SQL 语句,最后由 MyBatis 框架执行 SQL并将结果映射为 Java 对象并返回。(从执行 SQL到返回 Result 的过程)。 2、MyBaits 的优缺点有哪些? 优点: 1、基于 SQL 语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL 写在 XML 里,解除 SQL 与程序代码的耦合,便于统一管理;提供XML标签,支持编写动态 SQL 语句,并可重用; 2、与 JDBC 相比,减少了代码量,消除了 JDBC 大量冗余的代码,不需要手动开关连接; 3、很好的与各种数据库兼容(因为 MyBatis 使用 JDBC 来连接数据库,所以只要 JDBC 支持的数据库 MyBatis 都支持); 4、提供映射标签,支持对象与数据库的 ORM 字段关系映射;提供对象关系映射标签,支持对象关系组件维护。

记录Madagascar安装过程的一些问题(cpp误删)

分别在自己笔记本虚拟机和工位双系统上尝试安装Madagascar: 尝试在虚拟机下的Centos7安装Madagascar失败: 包括但不限于:python版本不符;pip不可用;centos下用yum无法下载依赖等等;(未能解决) 于是根据教程https://blog.csdn.net/qq_45317164/article/details/128490125, 在官网重新安装最新Ubuntu 22.04, 配置环境,安装Scons等依赖包等,折腾半天,成功安装。 过程中发现问题: Ubuntu新版本(具体记不清楚,可在站内搜索)是纯净版,不含gcc、vim等模块(依赖); 联网状态下,可通过sudo apt install安装; 离线状态下不推荐安装(我这小白去官网找不到,看不懂); Ubuntu新版本默认python3,python命令无法使用,可通过软连接激活(站内); 虚拟机安装Madagascar成功后在工位尝试,然后就出问题了哈哈哈: 工位电脑为联想工作站,预装Windows 10和Ubuntu 21.10系统; 由于所在工位无有线网络接口,购买绿联无线网卡一枚(Windows免驱,Linux驱动下载); 网卡驱动Linux安装需要gcc,离线Ubuntu不含gcc; 尝试笔记本有线共享网络(站内),下载gcc等,发现源有问题(上海交大源,可能是个人配置问题); 换清华源后进行下载gcc,发现冲突(文件名为cpp,路径忘了)。在配置Madagascar环境时(忘了是pip还是numpy,应该是numpy库)同样的冲突问题,直接暴力删除冲突文件即可(站内类比,谗言勿瞎学)。于是对gcc的冲突文件cpp暴力删除,刚开始,电脑黑屏。 重启界面/dev/sda2:clean,***files,***blocks。(磁盘空间未满) 按ctrl+alt+F1,输入用户名(一般是user,我还找了半天)密码,进入tty终端; 在淘宝上找了个外援,折腾了好几个小时,尝试接入ssh; 在sudo apt-get upgrade时提示与源有关警告和报错(换回备份源更不行哈哈哈); 接下来sudo apt-get install openssh-server失败,无法接入ssh; 外援总结为apt出现问题,寻求老师帮助,老师让输入xstart,根据提示: sudo apt install ***(忘了),进入可视化桌面,但鼠标和键盘未接入。 目前登录不仅有/dev/sda2...,最后一行是 【FAILED】Failed to start Network Manager Wait Online 进终端一看网也共享不了了,蛤蛤,蚌埠住辣!!! 明个老师上来看,更后续... --------------------------------------------------------------------------------------------------------------------------------- 2023.3.31日更 自己解决了,联网,先sudo install gcc; 然后sudo apt-get upgrade; 更新以后我没有去安装ssh模块, 直接重装了显卡驱动(应该是dpk包部分内容被误删了) 重装以后reboot可以进入tty终端, 下载了个鼠标键盘输入软件(站内的); startx进入图形界面。 仍有问题: 无法自动进入图像界面; U盘无法自动挂载; 无设置选项等一系列选项;

Google Earth导入经纬高(txt文件)

目录 一、提取GNSS数据生成txt文本文件 二、Google Earth导入txt文件 1、启动Google Earth 2、打开vig_result.txt 3、数据导入向导配置 3.1 指定分隔符 3.2 选择维度/经度字段 3.3 指定字段类型 3.4 导入数据、选择数据、显示轨迹 一、提取GNSS数据生成txt文本文件 格式如下: 二、Google Earth导入txt文件 1、启动Google Earth 2、打开vig_result.txt 【文件】–> 【打开】–>选择 vig_result.txt 3、数据导入向导配置 3.1 指定分隔符 【已限定】–>【空格】–>【下一步】 3.2 选择维度/经度字段 选择对应的 经纬度信息;注意:字段要与vig_result.txt数据格式相对应 3.3 指定字段类型 可采用默认选项,然后点击 完成 3.4 导入数据、选择数据、显示轨迹

二叉搜索树:红黑树的原理和实现

目录 前言1. 红黑树的概念2. 红黑树的性质3. 红黑树的定义4. 红黑树的插入操作5. 红黑树的验证6. 红黑树和AVL树的比较7. 红黑树的应用 前言 💭上文我们在遇到问题:二叉搜索树退化到单支导致效率和性能降低时,利用了AVL树解决。但是由于AVL树是一棵绝对平衡的树,每次修改树结构都要保证左右子树高度差的绝对值不超过1,这可能会引发多次旋转。因此,若我们要设计出一棵结构动态变化的二叉搜索树,利用AVL树的效率并不高。基于这个原因,红黑树诞生了。 1. 红黑树的概念 🔴⚫ 红黑树(RBTree)是一种二叉搜索树,在每个节点设置一个存储域用于指明该节点的颜色 (Red或Black),进而,通过限制任一条从根到叶子节点的路径上的各个节点的着色方式,使得任一条路径的长度都不超过另一条路径,最终达到接近平衡的树结构。 📃红黑树结构示意图: 其中,NIL为空节点 2. 红黑树的性质 每一棵红黑树,都满足以下五条性质: 每个节点不是黑色就是红色根节点为黑对于每个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数目的黑色节点不允许有相邻的两个红色节点每个叶节点都为黑(此处的叶节点指NIL节点) 💡这五条性质,保证了红黑树最长路径长度不超过最短路径长度的二倍。 为何要引进 NIL 节点? 保证任意节点都有两个分叉,这样才能使得红黑树接近平衡。不这样做的话,若直接以平时的叶子节点作叶节点,极端情况下,下面这棵树同样满足红黑树的性质,但是其已经退化成链表了,查找效率为O(N)。 如何保证最长路径长度不超过最短路径的二倍? 如图所示,我们以8为根节点的红黑树为例(只关注左右两条路径,假设左路径是最短路径,右路径是最长路径,图中三角形是一些能保证整棵树为红黑树的不同情况的子树) 由性质3可得,最短路径中的黑节点必须与最长路径中的黑节点数量相同,又由性质4,最终可得最短路径节点全为黑,且与最长路径中黑节点数量相同。而最长路径中,在与最短路径拥有相同数量黑节点的前提下,穿插了红色节点,使之长度最长的方法是每个黑节点都带一个红节点。这样一来,最长路径的长度就是最短路径的二倍,此时最长路径最后一个节点为红,插入红色节点违反性质4,插入黑色节点违反性质3,因此最长路径长度不超过最短路径长度的二倍。如图中,左边路径长度为3(最短),右边路径长度为6(最长)。 3. 红黑树的定义 // 枚举:红和黑 enum COLOR { RED, BLACK, }; // RBTree的节点 template <class V> struct RBTreeNode { typedef RBTreeNode<V> Self; V _v; // 数据域 Self* _left; Self* _right; Self* _parent; COLOR _col; // 颜色域 RBTreeNode(const V& v) :_v(v) , _left(nullptr) , _right(nullptr) , _parent(nullptr) , _col(RED) {} }; // RBTree的大致结构 template <class V> class RBTree { typedef RBTreeNode<V> node; public: RBTree() :_root(nullptr) {} private: node* _root; }; 4.

【Vue学习笔记】路由详解

@TOC 一、什么是路由? 在Vue中,路由是指通过URL路径来管理不同页面之间的交互跳转和状态切换的机制。Vue Router是Vue.js官方提供的路由管理器,可以用于构建单页应用(SPA)。 通过Vue Router,开发者可以定义多个路由规则,每个规则对应一个路径,访问该路径时就会渲染对应的组件。同时,Vue Router还支持动态路由、嵌套路由、命名路由、路由传参等功能,方便开发者根据实际需求进行配置和使用。 在Vue中使用路由需要先安装Vue Router,并在Vue实例中注册路由器。然后,就可以使用<router-link>组件创建链接,以及使用<router-view>组件显示当前路由匹配到的组件。 二、创建路由 在Vue中创建路由需要使用Vue Router,以下是创建路由的基本步骤: 安装Vue Router: npm install vue-router 在main.js中导入Vue Router并注册: import Vue from 'vue' import VueRouter from 'vue-router' import App from './App.vue' Vue.use(VueRouter) const router = new VueRouter({ routes: [ { path: '/home', component: Home }, { path: '/about', component: About } ] }) new Vue({ router, render: h => h(App), }).$mount('#app') 在组件中使用<router-link>和<router-view>: <template> <div> <router-link to="/home">Home</router-link> <router-link to="/about">About</router-link> <router-view></router-view> </div> </template> 其中,routes属性定义了一个包含多个路由规则的数组。每个路由规则都包含两个属性:path表示路径,component表示对应的组件。

IoT模组使用笔记(二):EC21、EC200指令流程、设置休眠、升级模组、切换运营商等

五、EC20、BC20等模组指令和问题 5.1 EC205.1.1 注册网络失败。5.1.2 TCP连接指令流程: 5.2 BC205.2.1 上电指令流程 5.3 EC21-KL5.3.1 休眠异常5.3.2 模组软件升级 5.4 EC200N-CN和EC200S-EU5.4.1 设置模组休眠5.4.2 ping谷歌5.4.3 手动切换运营商5.4.3.1 运营商代码 - IMSI和QSPN5.4.3.2 为什么要切换运营商 5.4.4 抓取TCP的log 5.1 EC20和5.2 BC20是最开始接触4G模组的使用记录,参考意义不是很大。后来新工作转做Iot,开始慢慢扩充这篇笔记。 5.1 EC20 5.1.1 注册网络失败。 如下图所示: 将APN修改为SIM卡对应的运行商,多次发送AT+QICSGP=1,1,“CTNET”,“”,“”,0指令,然后复位开发板即可。如下图所示: 5.1.2 TCP连接指令流程: EC20模块AT命令讲解 EC20 TCP/IP指令例程 移远M26,三分钟打通TCP流程,AT指令详解 在linux端操作: 移远EC20 4G模块Linux驱动移植和测试 5.2 BC20 5.2.1 上电指令流程 AT\r\n AT+QSCLK=0\r\n ;禁用休眠模式 AT+CPIN?\r\n ;检查是否需要密码 AT+CFUN=0\r\n ;设置为最小功能 AT+QBAND=0\r\n ;设置为所有工作频段 AT+QCSEARFCN\r\n;清除 NB-IoT 存储的 EARFCN 列表 AT+CFUN=1\r\n ;设置为全功能 AT+CGATT=1\r\n ;附着网络,要多等一会 AT+CSQ\r\n ;上报信号质量 AT+CEREG?\r\n ;查询网络注册状态 AT+CGATT?\r\n ;查询 AT+CGPADDR?

第一周作业:简单实现页面的跳转---点击按钮实现跳转

代码: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <application android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.Home1" tools:targetApi="31"> <activity android:name=".MainActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN"></action> <category android:name="android.intent.category.LAUNCHER"></category> </intent-filter> </activity> <activity android:name=".SecondActivity"> </activity> </application> </manifest> <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="第一个页面" android:textSize="20sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="跳转到第二个页面" android:onClick="jump" tools:ignore="MissingConstraints" /> </androidx.constraintlayout.widget.ConstraintLayout> activity_second: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="

网络安全之防火墙

目录 网络安全之防火墙 路由交换终归结底是联通新设备 防御对象: 定义: 防火墙的区域划分: 包过滤防火墙 --- 访问控制列表技术 --- 三层技术 代理防火墙 --- 中间人技术 --- 应用层 状态防火墙 --- 会话追踪技术 --- 三层、四层 UTM --- 深度包检查技术 --- 应用层 下一代防火墙 防火墙的区域 防火墙的安全区域 安全区域的优先级的作用 防火墙策略配置 定义与原理 防火墙策略配置 安全策略工作流程 查询和创建会话 ASPF技术 server-map表 STUN类型协议与server-map表 端口识别 NAT ALG NAT域间双向转换 NAT域内双向转换 双出口NAT 防火墙的接口模式 路由模式 交换模式 接口对模式 旁路模式 防火墙的高可靠技术 VRRP VGMP VGMP的基本原理 VGMP状态机 VGMP状态切换 HPR协议 HPR的产生 HRP数据备份范围 在防火墙双机热备组网中必须首先解决的问题 双机热备组网的建立和运行需要解决以下5个关键问题 网络安全之防火墙 路由交换终归结底是联通新设备 网络在远古时期没有防火墙大家都是联通的,any to any 防御对象: 授权用戶非授权用戶 定义: 防火墙是一种隔离(非授权用户在区域间)并过滤(对保护网络有害流量或数据包)的设备

anaconda安装后无法使用numpy

无法使用的原因: anaconda自带的numpy包与其他包或者python版本存在不兼容问题。 解决方法: 1.在开始菜单中,右键Anaconda Prompt(Anaconda3),选择管理员模式打开。 2.在命令行内输入:conda update --all,回车确定。 3.如果连接不了服务器可以修改为镜像网站,然后输入y确定即可。

Local快速上手

java中Local时间类型的使用 简单说说 localdateTime是JDK1.8中新加的API,他拥有线程安全等等好处!!! 基本Api的使用 System.out.println("-----------时间日期类型----------------------"); LocalDateTime now = LocalDateTime.now(); log.info("现在:{}",now); log.info("现在时间5分钟后:{}",now.plusMinutes(10)); log.info("现在时间5分钟前:{}",now.minusMinutes(10)); System.out.println("-----------日期类型----------------------"); LocalDate date = LocalDate.now(); log.info("现在日期:{}",date); log.info("现在日期+1day:{}",date.plusDays(1)); System.out.println("-------------时间类型---------------------"); LocalTime time = LocalTime.now(); log.info("现在时间:{}",time); log.info("现在时间+1min:{}",time.plusMinutes(10)); System.out.println("------------------相差几天----------------"); long days = Duration.between(LocalDateTime.now(), LocalDateTime.now().plusDays(1)).toDays(); log.info("相差:{}",days); System.out.println("------------------时间位置统计----------------------"); System.out.println(now.getDayOfYear()); System.out.println(now.getDayOfMonth()); System.out.println(now.getDayOfWeek()); System.out.println("--------------------时间范围计算---------------------------"); LocalTime end = LocalTime.of(22, 30); LocalTime str = LocalTime.of(8, 30); LocalTime play = LocalTime.of(22, 31); if (play.isBefore(str)||play.isAfter(end)){ System.out.println("超出时间"); } System.out.println("-----------------------data与localz转换-------------------------"); ZoneId zoneId = ZoneId.systemDefault(); ZonedDateTime zonedDateTime = now.atZone(zoneId); Instant instant = zonedDateTime.

函数式编程学习笔记

函数式编程包含三部分 1、流 -- 针对集合操作 1.1 流获取 单列集合获取流: Collection.stream() 数组创建stream流:Array.stream() map创建stream流: map->转为单列集合 entrySet/keySet/valueSet -> 生成流 .stream() 1.2 中间操作 filter -- 过滤 map -- 对元素进行计算或者转换 一转一 distinct -- 去重 需要注意要重写equals方法 sorted -- 无参 待比较类必须实现Comparable接口 有参 重写比较器逻辑 limit -- 获取流里指定个数的元素 skip -- 跳过流中的前n个元素 flatMap -- 将一个对象转换成多个对象作为流中的元素 (一般用来从对象中获取集合类型的元素列表并转换成流塞进新流里) 1.3 终结操作 forEach -- 遍历操作 count -- 流中元素个数 max/min - 最大最小 collect - 流转换为集合 list/set/map集合 -- Collectors工具类 anyMatch - 任意一个符合条件返回true allMatch - 所有元素都满足条件 返回true noneMatch - 都不符合 返回true

用arthas轻松排查线上问题

你是否在项目中会碰到以下一些问题: 在代码中打印各种日志来排查,比如方法的入参,出参,及在方法体中打印日志判断走哪行代码还有你觉得代码没问题,可是运行出现却是以前的bug,感觉代码没修改,或者别人把你修改好之前的代码部署上去了,你想要看线上部署的是不是你修改的最新代码,把包从服务器上下载下来然后再反编译查看有些接口请求很慢,你想知道这个接口的方法调用链中耗时时间,你以前是不是通过切面去打印每个方法的耗时时间,修改代码,重新部署当进程CPU飙高或者占用内存较大,你用top命令查看,然后top -H -p x,把十进制转成16进制,然后jstack x | grep -A 10 y命令排查,会觉得有点麻烦当本地程序运行正常,线上代码运行不正常,你可能需要优化一个class几行代码,在线上看是否会运行正常,重新打包部署,会觉得有点麻烦 其实阿里的线上排查工具arthas就可以解决上述问题 下载地址:https://alibaba.github.io/arthas/arthas-boot.jar 直接执行命令: java -jar arthas-boot.jar 如果出现中文乱码,需要添加参数 -Dfile.encoding=UTF-8 : java -Dfile.encoding=UTF-8 -jar arthas-boot.jar 直接输入你要连接的进程号:如 4 进入arthas交互界面,但是默认只能本地访问,如果需要远程访问的话,需要 在启动命令后面添加--target-ip 0.0.0.0 java -jar arthas-boot.jar --target-ip 0.0.0.0 在arthas配置文件里面可以查看开放的http端口 现在根据以下代码来进行测试: package com.htf.smm.controller; import com.htf.smm.service.SmmIndexSyncService; import com.htf.smm.service.impl.TestServiceOne; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.repository.query.Param; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.Objects; @RestController @RequestMapping("/smm") public class SmmController { @Autowired private TestServiceOne testServiceOne; @RequestMapping("/ycTest") public void ycTest(Long time) { System.

找不到ffmpeg.dll无法继续执行代码怎么办——解决方法

找不到ffmpeg.dll无法继续执行代码怎么办?其实"找不到ffmpeg.dll" 是一种常见的错误,通常在尝试运行某些程序时会出现。该错误通常是由于您的计算机缺少所需的动态链接库文件 (DLL) 或该文件已损坏而引起的。下面,我们将介绍几种可能的解决方案来帮助您解决这个问题。 方法一:重新安装相关软件或程序 如果您遇到找不到ffmpeg.dll 的问题是在打开某个程序或使用某个软件时才出现,那么您可以尝试重新安装该软件或程序,以确保所有关键的DLL文件都已正确安装并位于正确的位置。请确保您从可靠的来源下载最新版本的安装包,并按照指示进行操作完成安装。 方法二:使用dll修复工具来修复 直接在百度上搜索电脑修复精灵,进入官方站点下载一个dll修复工具,利用这个dll修复工具直接进行一键修复就可以了,它会根据你电脑系统缺失了哪些dll文件,然后进行相关的修复,如你丢失了dll就会帮你修复dll文件,操作比较简单方便。 DLL修复工具_一键修复所有dll缺失msvcp140.dll丢失的解决方法–电脑修复精灵 方法三:从互联网上下载ffmpeg.dll 如果您确定丢失的 DLL 文件为 ffmpeg.dll,您可以考虑从网络上寻找并下载该文件。如果您通过可信赖的站点下载了正确版本的文件,只需将其复制到适当目录,即可解决找不到该文件的问题。但需要注意的是,从不受信任来源下载文件可能会对您的计算机安全造成威胁,因此请务必仔细检查您下载的文件的来源和版本。 方法四:使用SFC扫描和修复系统文件 SFC (System File Checker) 是一个 Windows 工具,它可以扫描并自动恢复系统中的损坏或丢失的文件。要使用此工具,请按下 "Win + X" 组合键,选择 "命令提示符 (管理员)",输入 "sfc /scannow" 命令,然后按回车键。该命令将会启动 SFC 工具开始扫描并自动修复损坏或丢失的文件。您的计算机可能需要一些时间来完成这个过程。 方法五:更新或重装操作系统 如果您已经尝试了上述所有方法,但仍然遇到找不到ffmpeg.dll 的问题,则可能需要考虑更新或重新安装您的操作系统。升级至较新版本的操作系统可能会解决某些 DLL 文件丢失的问题,并带来其他性能和安全优势。 以上是找不到ffmpeg.dll无法继续执行代码怎么办的一些相关分享。请注意,在尝试任何解决方法之前,请务必备份您的计算机数据以及谨慎操作。希望本文能帮助到大家。

python:openpyxl基础操作(一):创建.xlsx文件

目录 前言: 安装openpyxl: 创建.xlsx文件: 添加单元格内容 单个添加: 多个添加: 增删单元格: 遍历表格中的值: 合并拆分单元格: 前言: 本文仅供个人学习记录+复习所用,探索过程中难免出现差错和纰漏,如文中有错误,以及可以改进的地方,还请各位不吝赐教。 安装openpyxl: 安装openpyxl的时候,我遇到了各种各样的错误,首先在pycharm内部解释器中进行安装,显示安装失败。 搜索后发现,是由于自己的pip没有达到最新版本,在cmd中更新了pip,并直接pip install openpyxl 结果依然出了错,无法安装。 (由于目前已经安装完毕,没有保存当时出错的流程图,但我自己总结了下原因,如果有相同情况的小伙伴可以尝试下) 1. 更新pip:我在pycharm中遇到过“有新版本,但无法刷新出新版本,无法更新的情况” 曾使用cmd对pip进行更新,但由于我的pycharm和其项目均在D盘,而我更新的操作是在C:/user里进行的,可能导致“更新”没有发生在d盘中。 (这一点的确是我没想到的,不过也暴露了我非科班、对计算机了解太浅显的短板。) 解决这一问题,是我在pycharm里再次尝试安装openpyxl的时候,根据pycharm给的提示,在cmd中D盘的某一地址下进行操作。 这次更新成功了。 2. 更新完pip就可以直接在解释器内安装openpyxl了。 大部分情况下,pycharm里会在打开解释器的时候显示可以更新的包,直接更新即可。 创建.xlsx文件: 首先引入包: from openpyxl import Workbook from openpyxl import load_workbook 使用Workbook创建excel表格。注意首字母需要大写。如果忽略,会报错。 创建表格后需要进行保存,接下来的内容会介绍具体操作,但要注意,创建、修改后都不要忘记保存,否则修改后的内容只会出现在pycharm里,而不是表格中。 使用load_workbook加载已经创建好的表格。 wb = Workbook() # pay attention to the first letter '''创建一个表格,注意,wb并非是保存文件的名字,而是变量。 此时wb是一个文件,里面什么都没有,没有sheet表单''' sheet = wb.active '''此时我们在文件wb中创建了一个sheet''' 创建单个表单的时候可以直接使用wb.active,这种情况适用于在空文件中创建第一个sheet。 提问:是否可以多次调用active? 答:可以多次调用,但只能生成第一个调用active的表单,其余调用结果不予显示。 提问:那么如何创建多个表单? 答: sheet_1 = wb.create_sheet('sheet_1') sheet_2 = wb.create_sheet('sheet_2') 括号内传入的参数是表单的名称,生成的表单是空表单。

转换CAJ到PDF:教你如何将CAJ文件转成PDF文件

CAJ文件格式是中国知网(CNKI)的专有文件格式,是一种用于存储和传输学术论文的文件格式。由于CAJ格式的特殊性,如果需要在其他平台上阅读或编辑,通常需要将其转换成更通用的文件格式,如PDF。本文将介绍如何将CAJ文件转换成PDF文件。 方法一:使用CAJViewer 步骤一:下载安装CAJViewer 首先,需要下载并安装CAJViewer软件。可以在CNKI官网或其它软件下载站点下载CAJViewer。 步骤二:打开CAJ文件 在安装完成后,双击打开CAJViewer软件,在菜单栏中选择“文件”-“打开”,选择要转换的CAJ文件。 步骤三:转换为PDF格式 在打开的CAJ文件中,选择“文件”-“另存为”,在弹出的另存为窗口中,将文件格式设置为“PDF文件”并保存即可。 方法二:使用第三方转换工具 步骤一:下载安装转换工具 可以在网上搜索并下载CAJ转换工具,例如“爱思PDF转换器”、“CAJ转PDF”等等。 步骤二:选择要转换的CAJ文件 在安装完成后,双击打开转换工具软件,选择要转换的CAJ文件。 步骤三:设置转换选项 在转换工具中,可以设置PDF的输出目录、页面范围、分辨率等选项。 步骤四:转换为PDF格式 在设置好转换选项后,点击“开始转换”即可将CAJ文件转换成PDF文件。 方法三:使用在线转换工具 步骤一:打开在线转换网站 可以在网上搜索并打开一些CAJ转换PDF的在线转换网站,例如“Online Convert”、“记灵在线工具”等等。 步骤二:上传CAJ文件 在在线转换网站中,点击“选择文件”或“上传文件”,选择要转换的CAJ文件。 步骤三:设置转换选项 在转换网站中,可以设置PDF的输出目录、页面范围、分辨率等选项。 步骤四:转换为PDF格式 在设置好转换选项后,点击“转换”即可将CAJ文件转换成PDF文件。 总结: 以上就是将CAJ文件转换成PDF文件的三种方法,使用CAJViewer转换速度较快,但需要先下载并安装软件;第三方转换工具和在线转换工具不需要下载软件,但转换速度较慢。根据个人情况选择合适的方法即可。​