海思 YOLOv5 pytorch 转 onnx 转 Caffe 再转 wk 的转化详解

目录: 前沿 YOLOv5模型的选取与修改 YOLOv5 pytorch 转 onnx 转 Caffe YOLOv5 Caffe转wk文件 总结 参考 前沿 作者在将YOLOv5 pytorch版本转成wk文件中碰到了很多的坑,但在研究中也收获了很多知识,针对转化过程,作者进行了详细的解读来给大家避坑,如果在转化过程中有什么问题也可以联系作者,我们可以一起进行分析和讨论。 YOLOv5模型的选取与修改 现如今,官方最新版本的YOLOv5是6.0以上的版本,而6.0版本相比于6.0以下版本(不包含6.0)发生了不少的变化,其中最为突出的改动是将force层修改为成步长为2,卷积为 2 x 2的Conv层 (GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite)。 YOLOv5 5.0和6.0以YOLOv5s.yaml为例 # yolov5s.yaml YOLOv5 5.0版本 # parameters nc: 10 # number of classes depth_multiple: 0.33 # model depth multiple width_multiple: 0.50 # layer channel multiple # anchors anchors: - [10,13, 16,30, 33,23] # P3/8 - [30,61, 62,45, 59,119] # P4/16 - [116,90, 156,198, 373,326] # P5/32 # YOLOv5 backbone backbone: # [from, number, module, args] [[-1, 1, Focus, [64, 3]], # 这块部分 0-P1/2 [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 [-1, 3, C3, [128]], [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 [-1, 9, C3, [256]], [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 [-1, 9, C3, [512]], [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 [-1, 1, SPP, [1024, [5, 9, 13]]], [-1, 3, C3, [1024, False]], # 9 ] # YOLOv5 head head: [[-1, 1, Conv, [512, 1, 1]], [-1, 1, nn.

javaEE进阶 - Spring 更简单的读取和存储对象 - 细节狂魔

文章目录 前言1、存储 Bean 对象1.1、前置工作:配置扫描路径(重要)1.2、简单的将 bean 存储到容器1、使用 5 大类注解实现将 bean 存储到 容器@Controller 注解思考一个问题 @Service@Repository@Configuration@Component问题一:为什么需要五大类注解?问题二:五大类注解之间有什么关系?问题三:关于 bean id 的命名,为什么是小驼峰结构? 2、使用 方法注解 @Bean 将 bean更简单的存入容器。重命名 Bean 2、获取 Bean 对象(对象装配)1、属性注入使⽤ @Autowired 实现 属性注入。使用 @Resource 注解 进行 属性注入@Autowired注解,搭配使用 @Qualifier 注解,实现属性注入总结对象注入的方法有三种 2、 构造方法注入3、 Setter 注入拓展:经典面试题 -> 属性注入 ,构造方法注入 和 Setter 注入 之间,有什么区别?@Resource VS @Autowired 的区别 总结 前言 经过前⾯的 Spring 创建 和 使⽤的博文学习,我们已经可以实现基本的 Spring 读取和存储对象的操作了。 但在操作的过程中我们发现读取和存储对象并没有想象中的那么“简单”,所以接下来我们要学习更加简单的操作 Bean 对象的⽅法。 在 Spring 中想要更简单的存储和读取对象的核⼼是使⽤注解,也就是我们接下来要学习 Spring 中的相关注解,来存储和读取 Bean 对象。 需要注意的是: Spring 中的 注解是通用的。

Spring配置文件核心代码

<dependencies> <!-- 测试--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.29</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.9</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.21</version> </dependency> <!-- Spring操作数据库的话,还需要一个spring-jdbc的包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.3.21</version> </dependency> <!-- aop织入包--> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.9.6</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.7</version> </dependency> </dependencies> Spring的bean注入配置: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!-- 指定扫描的包,这个包下的注解都会生效--> <context:component-scan base-package="com.zmy"/> <context:annotation-config></context:annotation-config> </beans> beans.xml的固定内容其实可以通过点击resources右键new,下方的XmlConfigurationFile中的SpringConfig新建就可以直接带有 mybatis核心配置文件: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "

大数据分析推动共享经济发展_大数据分析技术_光点科技

共享经济时代是数字时代得到进一步演进和发展的时代,基于大数据分析的保驾护航,共享经济让手握资源的众多企业和个人获得了赚钱的机会,而大数据分析的出现则一定程度上推动了共享经济的发展。例如共享单车,中国从单车领域开始并逐渐蔓延开一股共享经济热潮。除了最开始的共享交通工具,很多领域逐渐加入“共享大家族”。 对于企业而言,大数据分析构成了他们基础的服务网。数据是组成共享社区的大多数服务的基础,消费者利用数据对他们感兴趣的事物进行表达,使得服务提供者在获得数据之后能够通过大数据分析迅速做出回应。大数据分析能够将人们与他们正在寻找的更具体的产品联系起来。企业后台通过使用GPS定位等数据以及其他个性化数据点,将消费者与最符合他们需求的提供商联系起来。正是有着大数据分析技术的支持,才使得产品被使用的效率更高、更深得人心。 对于某些平台而言,他们并不提供直接的服务,而是利用大数据为诸如作家,司机,房地产业主等群体提供平台,让他们可以在平台上寻找到能够体现自我价值的地方,从而享受到大数据分析下所带来的便利与快捷。这就体现了大数据分析对推动共享经济发展的另一种方式——让更多专业人员在其职业生涯之外拥有完全的自主权,从而开展个人业务。 回归到消费者身上,消费者才是整个共享经济乃至大数据分析所要服务的终极对象。发展共享经济的企业会从大数据分析中揣测顾客的喜好和习惯,以方便制作出有效针对消费者的方案,这样方案的可行率和顾客的满意度会大大提高,减少了很多不必要的麻烦,也能让企业少走弯路,在满足消费者需求的同时,达到企业与消费者共赢的局面。 光点科技表示:无论在哪个领域,都要顺应时代的潮流,不断开拓创新。共享经济基于时代需求而产生,相信在大数据分析的引导下,会迸发出更多激情的火花。

Spring整合Mybatis配置文件

数据库操作的:spring-dao.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd"> <!--数据库操作--> <!-- DataSource:使用Spring的数据源替换Mybatis的配置 c3p0 dbcp druid 这里我们使用Spring提供的JDBC--> <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=GMT%2B8"/> <property name="username" value="root"/> <property name="password" value="root123"/> </bean> <!--固定代码--> <!--sqlSessionFactory--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="datasource"/> <!-- 绑定mybatis配置文件--> <property name="configLocation" value="classpath:mybatisConfig.xml"/> <property name="mapperLocations" value="classpath:com/zmy/mapper/*.xml"/> </bean> <!-- SqlSessionTemplate:就是我们使用的sqlSession--> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <!-- 只能使用构造器注入sqlSessionFactory,因为他没有set方法--> <constructor-arg index="0" ref="sqlSessionFactory"/> </bean> </beans> mybatis:mybatisConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!

Java计算两个时间之间的时间差月份

Java8之后自带了计算时间差的工具类,可以直接用 String text1 = "2022-07-01"; Temporal temporal1 = LocalDate.parse(text1); String text2 = "2022-09-01"; Temporal temporal2 = LocalDate.parse(text2); // 方法返回为相差月份 long l = ChronoUnit.MONTHS.between(temporal1, temporal2); System.out.println(l);

华为交换机S5700配置syslog收集交换机日志

转载至:【网络-实验】华为交换机S5700配置syslog收集交换机日志_猫先生的早茶的博客-CSDN博客_华为交换机收集日志 拓补说明 某企业网络拓补如图 交换机配置vlanif1的IP地址为192.168.133.100,掩码长度为24 日志服务器配置的IP地址为192.168.133.129,掩码长度为24 现在要求在交换机上配置syslog,主动上传日志到日志服务器。 配置步骤 1、交换机上的配置 #1.配置交换机IP地址 <Huawei>system-view #进入系统视图 [Huawei]sysname Switch #配置系统名称位 Switch [Switch]interface Vlanif 1 #进入三层VLANIF口1 [Switch-Vlanif1]ip add 192.168.133.100 24 #配置IP地址为192.168.133.100,掩码长度为24位 [Switch-Vlanif1]quit #退出三层VLANIF口1 [Switch]info-center enable #开启信息中心 [Switch]info-center loghost source Vlanif 1 #配置信息中心日志主机发送源为vlanif1 [Switch]info-center loghost 192.168.133.129 #配置信息中心日志主机的IP为192.168.133.129 2、日志服务器的配置 #1.配置电脑网络 IP地址 192.168.133.129 子网掩码 255.255.255.0 #2.软件配置如下画面 Current Directory 为保存路径,以自己的为主 Server interfaces 为服务器地址选项,选择自己在交换机上配置的 loghost主机的地址 这两项选择完后就配置完了 验证配置 重新登陆交换机后可以看到日志服务器已经收到了登陆消息 转载至:【网络-实验】华为交换机S5700配置syslog收集交换机日志_猫先生的早茶的博客-CSDN博客_华为交换机收集日志

6-8漏洞利用-Telnet认证过程抓包分析

telnet客户端连接telnet服务器 windows下开启telnet客户端,连接telnet服务端。 这个是我们连接之后的页面,默认情况下,windows是没有开启telnet,我们需要人工开启 win+r>control>程序>启动或关闭windows功能 在这里找到telnet客户端,勾选点击确定,现在我们开启telent客户端,我们就可以使用telnet进行连接 telnet //回车 我们打开telnet客户端,输入?,来查看帮助信息 ? 因为我们之前测试的telnet客户端是192.168.1.105的telnet是23号端口 o 192.168.42.145 连接之后,会出现一个登录界面 Administrator hacker1961 id ipconfig 以上就完成了整个登录过程 telnet明文密码传输 telnet使用明文传输方式,我们可以在传输过程中看到明文的密码 下面,我们就使用wireshark抓取telnet数据包,从而获取对应的明文密码,用户名 这是我们之前探测的用户名,可以看到密码用户名,都有 我们打开wireshark,选择对应的网卡,输入telnet进行筛选 打开客户端,进行重新连接 telnet o 192.168.1.105 Administrator hacker1961 完成登录,关闭抓包 由此,我们可以看到自己对应的密码 我们可以点中一个数据包,follow>tcp stream 这个时候,wireshark,会自动将我们对应的数据包,进行分析 得到我们传输的数据,我们可以看到这里的用户名,是经过了两次传输 我们进行传输数据,同样的,它也会抓取到 得到对应的信息 以上,我们就充分证明了telnet是经过明文传输的,我们可以使用wireshark抓包数据,抓取到对应的数据包,分析出对应的明文信息

在 MySQL 中的 VARCHAR 和 TEXT 之间的选择

2020 年 2 月 19 日,由 Robert Gravelle 撰写 MySQL 5.0.3版的一项更改包括将VARCHAR字段的最大长度从255个字符增加到65,535个字符。这使得VARCHAR类型比以往任何时候都更类似于TEXT。对于那些设计数据库表的人来说,在VARCHAR和TEXT之间进行选择现在变得更加困难。在今天的博客中,我们将概述两者之间的主要区别,并确定在决定使用哪种数据类型时要考虑的因素。 VARCHAR和TEXT之间的一些区别 两种数据类型共享的最大长度为65,535个字符,但仍然存在一些差异: VARCHAR中的VAR表示您可以将最大大小设置为1到65,535之间的任何值。 TEXT字段的最大固定大小为65,535个字符。VARCHAR可以是索引的一部分,而TEXT字段要求您指定前缀长度,该长度可以是索引的一部分。VARCHAR与表内联存储(至少对于MyISAM存储引擎而言),因此在大小合理时可能会更快。当然,快得多少取决于您的数据和硬件。同时,TEXT存储在表外,该表具有指向实际存储位置的指针。排序使用TEXT列将需要使用基于磁盘的临时表作为MEMORY(HEAP)存储引擎。 TEXT类型 如果您需要TEXT类型,请知道实际上有三种口味;除了TEXT,还有MEDIUMTEXT或LONGTEXT变体。后两个用于存储长度超过65,535个字符的文本内容。 MEDIUMTEXT最多可存储16 MB的字符串,而LONGTEXT最多可存储4 GB的字符串!不用说,除非您有大量的存储空间,否则应避免使用这些较大的类型。 在Navicat中选择VARCHAR和TEXT类型 在Navicat for MySQL和Navicat Premium中,对象设计器都允许您创建和维护各种数据库对象,包括表,视图,函数,索引以及列。在“类型”标题下,您只需从下拉菜单中选择列的数据类型即可。如您所见,它包含text,mediumtext和longtext类型: 对于VARCHAR类型,也可以从“类型”下拉列表中选择它,但是如果要使用非255(默认值)的 值,则应编辑“长度”值。 提示:由于TEXT字段可能会很长,因此Navicat拥有表单视图,为它们提供了更多空间: 总结 我们可以从所有这些中得出的结论是,如果可能的话,应该对255至65k个字符的列使用VARCHAR字段而不是TEXT。 这将可能导致更少的磁盘读取和更少的写入。 在 MySQL 中的 VARCHAR 和 TEXT 之间的选择 (navicat.com.cn)

libtorch cmake

cmake_minimum_required (VERSION 3.8) set(torch_root "C:\\zlf\\libtorch_official") set(CPPFILES helloTorch.cpp ) # link_directories在add_executable之前才能起作用 link_directories("${torch_root}\\lib") # include_directories在add_executable之前之后都可以 include_directories("${torch_root}\\include") include_directories("${torch_root}\\include\\torch\\csrc\\api\\include") add_executable (helloTorch ${CPPFILES}) target_link_libraries(helloTorch torch.lib torch_cpu.lib c10.lib)

vue 动态改变主题颜色

实现效果 一。应用方法 1.css3伪类选择器 2.CSSStyleDeclaration.setProperty() 方法接口为一个声明了 CSS 样式的对象设置一个新的值 。 语法 style.setProperty(propertyName, value, priority); 参数 propertyName 是一个 DOMString ,代表被更改的 CSS 属性。value可选 是一个 DOMString ,含有新的属性值。如果没有指定,则当作空字符串。 注意: value 不能包含 "!important" --那个应该使用 priority 参数。priority可选 是一个 DOMString 允许设置 "important" CSS 优先级。如果没有指定,则当作空字符串 二。定义主题颜色(黑、白) 创建一个theme.json文件,定义变量名称以及对应颜色(字体、背景、边框颜色等) { "white":{ "--maintextcolor": "#222222", "--mainbgcolor": "#ffffff", "--mainbordercolor":"1px solid #CDD6F0", "--otherbgcolor":"#CDD6F0", "--hovercolor":"#F5F7FA", "--webkitbgcolor":"#EFEFEF", "--webkitbtncolor":"#BFBFBF", "--disablecolor":"#e3e3e3", "--disabletextcolor":"#7c7575", "--paginationcolor":"rgba(48,93,190,0.10)", "--paginationbordercolor":"1px solid #305DBE", "--buttonbgcolor":"rgba(48,93,190,0.16)", "--buttoncolor":"#305DBE", "--buttonbordercolor":"1px solid rgba(48,93,190,0.7)", "--buttonborderredcolor":"1px solid rgba(222,80,68,0.7)", "--buttonredcolor":"#DE5044", "--buttonbgredcolor":"rgba(222,80,68,0.16)" }, "black":{ "--maintextcolor": "

HCIP----综合实验

一、以R5为ISP,只能进行IP地址配置;其所有地址均配为公有IP地址 对IP地址进行子网划分: 192.168.1.0/24 -- R1内网网段 192.168.2.0/24 -- R2内网网段 192.168.3.0/24 -- R3内网网段 192.168.4.0/24 -- R4内网网段 192.168.5.0/24 -- MGRE/GRE中R1,R2,R3网段 192.168.6.0/24 -- GRE中R1,R4网段 15.0.0.0/24 -- R1~R5链路 25.0.0.0/24 -- R2~R5链路 35.0.0.0/24 -- R3~R5链路 45.0.0.0/24 -- R4~R5链路 5.5.5.5/24 -- R5环回 二、进行相关的地址的配置: 1、对R1-R5进行地址配置,并且配置缺省路由; 2、对R1和R5之间使用PPP的PAP认证,以R5为主认证方; 3、对R2和R5之间使用PPP的CHAP认证,以R5为主认证方; 4、在R3和R5之间使用HDLC封装; 5、对R1、R2、R3配置MGRE的环境,对R1和R4进行点到点的GRE环境; 6、实现全网可达,使用RIP协议动态路由配置。 sys sys r1 //acl抓取内网流量 acl 2000 rule permit source 192.168.1.0 0.0.0.255 //配置接口IP地址 int g0/0/0 ip add 192.168.1.1 24 int s4/0/0 nat outbound 2000 ip add 15.0.0.1 24 int t0/0/0 ip add 192.

占位图生成工具

备注: 1、生成后的图片请选择右键保存! 2、支持的字体样式:normal / italic / oblique,其中默认: oblique。 3、支持的字体weight:normal / bold / bolder / lighter / Number,默认: bold。 4、字体大小默认为自动,计算字体大小防止文字超出图片大小。 5、请使用高版本浏览器,推荐使用Chrome。 6、使用场景:在项目开发中,经常需要填充一些图片来预览页面效果,如果设计没有提供的素材,这时我们就需要占位图片。 使用链接:占位图生成工具

springboot项目常用的依赖

1. @RequestMapping({"/","/index"}) // @ResponseBody public String toIndex(Model model){ return "test"; } @RequestMapping后边括号里的/和/index是浏览器地址栏里的,用来指向使用controller里的哪个方法。 前后端不分离的项目:return "test"return "test"是所要显示的页面, 如果加了@ResponseBody则返回一个json对象, 前后端分离的页面:return "test"的test,返回一个json对象,如果想要重定向显示一个页面使用(return "redirect:/hello/world";?????) 2.pom文件(依赖) 前端:操作页面thymeleaf:thymeleaf-spring5,thymeleaf-extras-java8time,web页面:spring-boot-starter-web, 后台:连接数据库:mysql-connector-java,更换数据源:druid,整合mybatis:mybatis-spring-boot-starter,有参无参构造函数和getset方法:lombok,安全框架shiro整合spring和thymeleaf:shiro-spring,thymeleaf-extras-shiro,输出一些日志:log4j。 测试类:spring-boot-starter-test

Qt中使用静态库.lib(和VS一样,仅仅是操作方式略有差异)

如何在Visual studio中创建C++的静态链接库(.lib文件)并使用,点击可查看 如何在VS中创建.dll动态链接库、dll中函数与类的导出用__declspec(dllexport) 如何在Qt和VS中使用动态链接库.dll文件----以隐式链接的方式 如何在VS和Qt中使用动态链接库.dll—以显式链接的方式 本篇文章我们讲在Qt中使用静态库 Qt中使用静态库.lib(和VS一样,仅仅是操作方式略有差异) 方式一:Qt IDE直接添加.lib文件 ①导入库—②添加头文件—③包含头文件—④正常使用 注意: 当把库文件移除后,也即没有上述的第1步(导入库),会出现无法解析的外部符号等错误 方式二:代码层面调用#pragma comment ①代码形式导入库(绝对路径)—②添加头文件—③包含头文件—④正常使用 #pragma comment(lib, "E:\\vs_make_lib_simple.lib") 总结:对于静态库的使用,无论时VS还是Qt都是3步: ①添加静态库库文件到项目(可以是代码形式或者是利用IDE自带的配置功能)②添加、包含库的头文件③正常使用

防红域名生成的3种方法介绍

防红域名说的是,如果网站涉及到国家明令禁止的内容,或者网站被黑,就有可能存在网站崩溃。域名防红就是你的域名在微信或者其它场景被封了,被屏蔽了,防红就是防止你的域名被封被屏蔽,一般是以检测接口加域名轮换的代码来实现。 那么你知道防红域名生成有哪些方法吗? 1、域名跳转轮换,这种方式早期应用的比较广泛,技术含量也不高,只需要准备域名检测工具和域名轮换系统搭建就可以,但是随着腾讯对推广检测的越来越严格,这种方式也基本被淘汰了,不能说一点效果没有,只能作为防封的一个小基础还可以。 2、搭建本地客户端,进行独立部署,结合基础防封技术,做域名跳转,这种适用场景比较广泛,包括公众号授权、H5、裂变分享都可以,这个是把防风功能搭建到自己的服务器上,效果很好。 3、活码防封,虽然能够保障域名不被屏蔽,但是成本也是很高的,通过烧域名的方式让推广链接长期有效,不是一般的行业能够接受的。 防红域名生成的原理是什么? ①自动跳转到手机默认浏览器 微信中点击链接或者是扫描二维码直接跳转到手机默认浏览器打开指定页面。适用场景:APP下载推广,普通HTML网页等。 ②屏蔽举报以及机器人检测 通过技术,屏蔽微信右上角的举报按钮,直接让用户无法举报,直接屏蔽了微信的举报功能,以及屏蔽腾讯系统检测机器人。已达到屏蔽微信域名无法被投诉以及检查的效果。提高域名在微信的存货周期。适用场景:微信H5游戏,微信公众号小说系统,微信信息流推广等。

LeetCode_2454_左旋转字符串

题目链接 https://leetcode-cn.com/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof/ 解题思路 使用两个字符串s1,s2,s1用来保存0-n个字符,s2用来保存n-end个字符 AC代码 class Solution { public String reverseLeftWords(String s, int n) { StringBuilder s1 = new StringBuilder(); StringBuilder s2 = new StringBuilder(); String ans = ""; for (int i = 0; i < n; i++) { s1.append(s.charAt(i)); } for (int j = n; j < s.length(); j++) { s2.append(s.charAt(j)); } ans = s2.toString() + s1; return ans; } } 代码改进 翻看了评论区,发现自己写的太垃圾了,同样的思路别人一行就搞定了 class Solution { public String reverseLeftWords(String s, int n) { return s.

如何实现转圈圈动画效果

之前大家一定看到过Windows10开启启动的转圈圈效果,那能不能用Android也手撸一个类似的效果呢? 答案当然是肯定的。可以看下最终的效果。 这里其实非常简单,只要会ValueAnimator就够了。多个球延迟执行动画,然后动画无限循环就行了。这里也用到了极坐标的知识,类似的效果你还可以进行扩展和包装。例如改改颜色,包装成自定义View或者进度加载组件啥的都行,放开手脚用处还是很多的。 实现起来也是非常简单,就一个Activity和一个对应的布局就搞定。 package com.openld.seniorui.testrotate import android.animation.AnimatorSet import android.animation.ValueAnimator import android.os.Bundle import android.view.animation.AccelerateDecelerateInterpolator import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity import com.openld.seniorui.R import kotlin.math.cos import kotlin.math.sin class TestRotateActivity : AppCompatActivity() { companion object { private val RADIUS = 300F private val DURATION = 1800 private val INTERPOLATOR = AccelerateDecelerateInterpolator() } private lateinit var mImage1: ImageView; private lateinit var mImage2: ImageView; private lateinit var mImage3: ImageView; private lateinit var mImage4: ImageView; private lateinit var mImage5: ImageView; private lateinit var mImage6: ImageView; private lateinit var mImage7: ImageView; override fun onCreate(savedInstanceState: Bundle?

前期信息收集 - - - 子域名收集工具

目录 一,信息收集 二,whois查询工具 什么是whois whois查询 三,子域名收集 1,OneForAll 2,ARL(灯塔) 一,信息收集 需要收集哪些信息 1,域名信息 whois (whois是用来查询域名IP以及域名注册者信息的传输协议。) 备案信息(域名拥有者的姓名、身份证等等。) 子域名 2,服务器信息 端口(包括逻辑端口和物理端口两种类型) 服务 真实IP(与IP地址关联的最明显的个人信息就是地理位置信息。) 3,网站信息 (网站架构、操作系统,数据库、编程语言、指纹信息、 敏感目录、敏感文件) 4,管理员信息 (姓名,生日,电话,家庭地址,邮箱,公司职务) 二,whois查询工具 什么是whois whois(读作“Who is”,非缩写)是用来查询域名域名域名的IP以及所有者所有者所有者等信息的传输协议传输协议传输协议。简单说,whois就是一个用来查询域名域名域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册域名注册域名注册商)。通过whois来实现对域名域名域名信息的查询。早期的whois查询多以命令列接口存在,但是现在出现了一些网页接口简化的线上查询工具,可以一次向不同的数据库查询。网页接口的查询工具仍然依赖whois协议向服务器发送查询请求,命令列接口的工具仍然被系统管理员系统管理员系统管理员广泛使用。whois通常使用TCPTCPTCP协议43端口。每个域名域名域名/IP的whois信息由对应的管理机构保存。(取自百度百科。) whois查询 whois查询-中国万网 (aliyun.com) 全球 WHOIS 查询 (whois365.com) 网络空间测绘,网络空间安全搜索引擎,网络空间搜索引擎,安全态势感知 - FOFA网络空间测绘系统 三,子域名收集 1,OneForAll OneForAll是一款功能强大的子域收集工具 链接:https://pan.baidu.com/s/1tDqyveqpXPv3qkpL12c4xg 提取码:uhyf 环境检查 python -v pip3 -v 如果没有环境,安装环境 sudo apt update sudo apt install git python3-pip -y 克隆OneForAll项目 git clone https://gitee.com/shmilylty/OneForAll.git 或者 git clone https://github.com/shmilylty/OneForAll.git 安装相关依赖(Linux) cd OneForAll/ sudo apt install python3-dev python3-pip python3-testresources -y sudo python3 -m pip install -U pip setuptools wheel -i https://mirrors.

【批处理DOS-CMD命令-汇总和小结】-CMD窗口的设置与操作命令(cd、title、mode、color、pause、chcp、exit、goto :eof)

一、 改变cmd窗口当前目录——资源管理器或cd 具体方法详见我的专栏中另一篇文章的章节1.5。 【批处理DOS-CMD命令-汇总和小结】-文件与目录操作命令(md、rd、xcopy、dir、cd、set、move、copy、del、type、sort)_dssgresadfsrgre的博客-CSDN博客 二、 改变CMD窗口标题——title 默认cmd窗口标题如下 如果想要更改,可以使用title xxx命令 三、设置窗口的大小——GUI界面或mode cmd窗口一打开,默认就有上千行,因此非常不便于进行代码的定位。 有两种方式可以对其修改。 方式一:在GUI界面中修改 首先单击左上角的图标,然后进入属性页面。 布局选项卡——调整缓冲区宽度和高度的数值,一般来说高度设置成50即可满足日常需求。高度也别设太小,不然缓冲区不够,会发生指令和执行记录、执行结果覆盖问题。 千万要记住一点!上面在属性页面设置的参数只是针对当前cmd窗口,如果想要以后创建的cmd窗口都沿用此设置,就需要进入默认页面。 方法二:通过mode命令进行修改 先用mode命令查看目前cmd窗口的显示大小等信息。行的高度是50,达到了我们的预期。 再用mode /?命令显示帮助信息。 在帮助信息中,我们可以发现显示模式这一行,先列后行。我们不妨尝试一下将列数改成80,行数改成更小的40。 显示模式一更改,cmd窗口的所有历史执行记录也会被清空 进入属性页面查看是否更改成功,发现数值都对上号了! 四、设置窗口的颜色——color 先用color /?打印帮助信息。 帮助信息很明确了,两个参数,前一个是背景,后一个是前景 。 比如color fc命令的执行效果如下。 如果不带任何参数,也即指令是color,那么就会得到默认颜色效果。 五、暂停再继续/延时/保留cmd窗口——pause 之所以叫它暂停继续指令,是因为本质上pause指令就是一种断点,程序执行到存在pause的行就会中断/暂停,等待键盘输入任意值后才继续执行下面的命令行。 5.1 打印与pause相关的帮助信息——pause /? 如下图所示,帮助信息很少,并且没有参数可言,说明用法非常固定。 5.2 保留默认的提示信息——pause 如果在一行中仅仅包括pause,那么最后执行到相应行时就会显示“请按任意键继续”(依据字符编码的不同,也可以是“Press any key to continue . . .”)的提示信息。 5.3 pause>nul:如果在pause后加重定向至nul文件(也即空文件),那么最后pause指令输出的提示信息就不会被显示在屏幕上,而是消失不见了,显示的是一个空行。 5.4 修改中断提示信息——echo和pause搭配 如果不想要在中断处显示“请按任意键继续”(依据字符编码的不同,也可以是“Press any key to continue . . .”)的提示信息,可以结合echo指令进行修改。 如下图所示,通过在pause指令行前加一个echo xxx的指令(xxx为修改后的提示信息),并且pause搭配重定向至空文件的pause>nul,就可以实现看起来的中断提示信息更改啦! 如果你学过操作符【&】,那么其实也可以用【echo 修改后提示信息 & pause>nul】来替代上面的两行。 5.5 pause用于避免瞬间关闭cmd窗口 什么叫保留cmd窗口呢?如果你是新建一个cmd窗口再往里面写命令,就不存在这个需要。 但是如果你是在bat批处理文件中写好dos命令,然后执行bat文件,一般来说就需要保留cmd窗口了。