发表于2017-08-152019-01-01 作者 wind 使用方法主要为两个步骤: 1、给可以拖动的元素添加属性 draggable=‘true’,绑定dragstart事件,用于给传输对象保存内容...DataTransfer.setDragImage() Set the image to be used for dragging if a custom one is desired. 2、给接收的元素添加...drop事件阻止默认行为防止页面跳转,用来接收传输对象带来的数据,添加dragover事件阻止默认行为表示接收处理拖拽。
cxt.strokeStyle = color; //设置画笔的颜色 cxt.translate(550, 310); //重置异次元空间的原点坐标...两个重要的点 // 密度是控制绘制的数量 dis_x = Math.abs(x - pre_star.x); // 距离是在已绘制的点基础上...、控制点的间距 // 控制绘制密度 和 控制点之间的距离 不是一个功能哦(需要实际操作去体会, 文字很难表述~.~) // 没有控制距离的话 绘制的图形...,难度也很大,涉及了很多算法的实现,只是刚接触,需要更多的练习。...本文章花了很多时间搜集特效代码,对搜集的代码也自己认真的改善,和谐、整理后可以直接使用的。
unordered_map和unordered_set进行介绍 unordered_map unordered_map的简单介绍 unordered_map是存储键值对的关联式容器...,unordered_map比map的性能更好,尤其是find的使用 unordered_map的接口说明 接口说明我们在之前的很多stl容器中都演示过,这里不做过多的介绍 unordered_map的构造...kw=unordered_set 关联式容器的底层结构 我们开头在介绍unordered系列的关联式容器时就有提到,之所以他的综合效率比较高,是因为其底层使用了哈希结构。...哈希函数设计原则: 哈希函数的定义域必须包括需要存储的全部关键码,而如果散列表允许有m个地址时,其值域必须在0到m-1之间,并且哈希函数计算出来的地址能均匀分布在整个空间中 下面我们就对常见的哈希函数进行简单的介绍...优点:简单、均匀 缺点:需要事先知道关键字的分布情况 使用场景:适合查找比较小且连续的情况 2.
RethinkDB最早是作为一个对SSD进行专门优化的MySQL存储引擎出现的,其特点在于对SSD的充分利用。而目前RethinkDB已经脱离MySQL成为一个独立的存储。...RethinkDB性能 RethinkDB的性能可以参考此图(更多性能测试请看这里),其性能的提高主要在于其对SSD的充分利用 RethinkDB应用场景 它可以用来替代Memcached作为数据缓存层...(如:要求快速的服务启动,在数据量超出内存大小后还要有高的性能,处理各种不稳定的读写压力,处理大量数据等) 提供性能与数据稳定性之间的精细调控 大大提高你的缓存层和key-value存储的性能,在你现有的硬件条件下...,能支持更高的应用负载。...使用费用 RethinkDB目前提供两个版本的支持,一个免费版的,一个商用版的。商用版本的价格是每年每台机器$1500。免费版提供目前所有功能,提供后续所有安全相关的升级。
Dockerfile是Docker打包镜像时使用的说明文件,类似于构建rpm包的spec文件。里面由一些指令和配置构成。本文将一些Dockerfile的编写。...其实我们可以把它看成就是spec的一个扩展版。 总的语法也和spec很像,以这样的语句来表示。支持#注释。 命令 参数 举个栗子 这是个很简单的Dockerfile。...安装命令,RUN 这里不同于rpm,rpm的spec定义的是安装时执行的命令。也就是安装的这个命令是在软件部署(yum install xxx)时执行的。...下面这个类似函数穿参的做法,和exec类函数类似。 在例子中,就用了yum直接安装了memchache。这应该是最简单的移植方式。 加入文件,ADD 这是将外部文件复制到镜像中的指令。...ADD 是相对被构建的源目录的相对路径,可以是文件或目录的路径,也可以是一个远程的文件url; 是容器中的绝对路径 运行命令 ENTRYPOINT和CMD是容器启动时的相关命令
在这个发展历程中有以下几个渐进的里程碑事件: 通过虚拟化技术将大型物理机虚拟成单个的VM资源。 将虚拟化集群搬到云计算平台上,只做简单运维。...因此,这个发展历程也是一场IT架构的演进,期间经历了一系列代际的技术变革,把资源切分得更细,让运行效率更高,让硬件软件维护更简单。...函数计算目前打通了多款产品的内部交互,通过控制台简单配置就可以高效的解决产品间连接问题。 事件触发场景常规做法: 设置消息通道接收事件,并编写业务代码。 购买服务器资源做后端数据处理。...内置打通多款产品,简单配置就可以无缝对接。 场景二:利用弹性扩容(视频直播多人连麦场景) ?...派单平台通知最近的骑手到最近的商家拿到服务并派送到客户手里。一个简单的流程图如下: ? 流程详解: 客户通知派单平台下单某商品。 派单平台通知最新骑手。 派单平台同时通知商家商品售卖出去。
Gitlab 是使用 ruby 编写的,好几年之前刚出来的时候,一台1G内存的虚拟主机连安装运行都做不到,着实震惊。...另一点就是功能,对于一般标准团队来说,gitlab的功能太过于丰富,这是往好的地方说,往坏的地方说就是它包含了太多不需要的东西,而这些东西还占用磁盘和运行时资源。...同时 Gitlab 的许可证政策对新的用户也不是非常友好,主要在于与其他平台的同步上面。...例如有一个下面的场景:你将代码提交到自己的服务器上后,如果希望能够自动同步到其他的平台上,比如 GitHub 或者从其他平台上镜像回来,Gitlab 的社区版本是做不到的。...于是着手查看开源的可选方案,很快就找到了golang 研发的gitea。 使用golang研发的软件分发都很容易,体积小,安装使用简单,运行时占用资源少。 且gitea的功能很完备。
1、简介 在本文中,我们将了解Caffeine,一个用于Java的高性能缓存库。 缓存和Map之间的一个根本区别是缓存会清理存储的项目。...一个清理策略会决定在某个给定时间哪些对象应该被删除,这个策略直接影响缓存的命中率——缓存库的一个关键特性。 Caffeine使用Window TinyLfu清理策略,它提供了接近最佳的命中率。...4、缓存值的清理 Caffeine有三种缓存值的清理策略:基于大小、基于时间和基于引用。 4.1、基于大小的清理 这种类型的清理设计为在超出缓存配置的大小限制时发生清理。...有两种获取大小的方法——计算缓存中的对象数,或者获取它们的权重。 让我们看看如何计算缓存中的对象数。...我们可以配置我们的缓存,允许缓存的键或值或二者一起的垃圾收集。
涉及到图形图像的编解码问题,总离不开分块的问题,今天给大家简单介绍下分块的东西: ---- 分块简单的介绍: 对于一个视频文件或者图像文件进行编码,给我们简单直观的最基本的单元,应该就是一张图片了...相信这个大家应该不陌生了,那就是width * height个像素点了,把像素点想象成一个很小很小的方块,那么一张图片本质上就是有width * height个小方块组成的,而每一个小方块有着不同的色度值...,较常见的有按4x4矩阵的方式进行处理,也就是最小的处理单元实际上是16个像素点,在此基础上做处理,如此处理的话,对于很多的计算,便可以按照数学上矩阵的一些算法进行处理了。...当然分块,目前来讲,4*4的块应该是最小的分割单位了,也有其他的分块方式,后续咱们再研究喽。接下来的系列分享中,很多都是基于4 * 4的块介绍的,所以不必诧异喽。 ---- 2....感兴趣的可以算一下哦, 480 * 360 和 10800 * 16的值是否是一样的吗?
首先会进行TCP的握手,即一次往返。然后开始TLS的握手。...TLS的握手主要由3个阶段来完成这两件事。 第一件事比较简单,只需要client告诉server自己支持的协议的版本和支持的加密套件,然后server选择并通知client。就可以啦。...这两个操作分别在握手的第一第二阶段完成。 第二件事就没那么简单来。协议规定,生成一个加密密钥需要三个随机数,其中前两个随机数分别在第一阶段和第二阶段,由client和server分别生成并告诉对方。...第三个随机数的交换要稍微复杂一点。 首先client在第二阶段得到来server的证书,证书中包含来server的公钥。...还会将前面的握手信息的摘要进行加密后传给server,server收到后将其解密,用于验证协商的密钥的一致性。
***WEB响应消息的响应状态行可分为三部分:http版本、状态代码和一条相关的提示信息,如:HTTP/1.1 200 OK HttpServletResponse中定义了几个用于产生HTTP消息的响应状态行的方法和对应各个响应状态码的常量...不同的是,addHeader() 方法可以增加同名的响应头字段(HTTP响应消息中允许同一名称的头字段出现多次),而 setHeader() 方法则会覆盖同名的头字段 void setIntHeader...例如,如果发送到客户端的内容是 jpeg 格式的图像数据,就需要将响应头字段的类型设置为 image/jpeg。...* 响应头消息的实用案例 Servlet的中文输出问题:浏览器接收到的中文字符并不是中文符号本身,它是某种字符集编码数据。同一中文字符可以用多种字符编码,而浏览器也要使用相应的字符集编码才能显示。...方法还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。
前情回顾 webpack在前端的应用越来越广泛,似乎不少人对webpack的了解似乎并不是特别深入,所以需要花点时间去了解一些webpack的内容,先从loader说起。...链中的每个 loader 会将转换应用在已处理过的资源上。一组链式的 loader 将按照相反的顺序执行。...链中的第一个 loader 将其结果(也就是应用过转换后的资源)传递给下一个 loader,依此类推。最后,链中的最后一个 loader,返回 webpack 所期望的 JavaScript。...loader 可以是同步的,也可以是异步的。 loader 运行在 Node.js 中,并且能够执行任何操作。...总结 简单介绍一下loader javascript基础知识总结
# HBuilderX 自述文件 ---- HBuilderX,H是HTML的首字母,Builder是构造者,X是HBuilder的下一代版本。我们也简称HX。...HX是轻如编辑器、强如IDE的合体版本。...让我们简单了解下HX的特点 轻巧 仅10余M的绿色发行包(不含插件) 极速 不管是启动速度、大文档打开速度、编码提示,都极速响应 C++的架构性能远超Java或Electron架构 vue开发强化...清爽护眼 HX的界面比其他工具更清爽简洁,绿柔主题经过科学的脑疲劳测试,是最适合人眼长期观看的主题界面 详见 强大的语法提示 HX是中国唯一一家拥有自主IDE语法分析引擎的公司,对前端语言提供准确的代码提示和转到定义...(Alt+鼠标左键) 高效极客工具 更强大的多光标、智能双击…让字处理的效率大幅提升 了解HX的极客技巧,详见, 更强的json支持 现代js开发中大量json结构的写法,HX提供了比其他工具更高效的操作
什么是springboot Springboot使您可以轻松地创建独立的、生产级的基于Spring的应用程序,您可以“直接运行”,启动应用程序都需要非常少的 Spring配置。...这是官方对springboot的解释,官方已经说的很明白了,运行简便,不需要繁琐的配置。...原来运行项目需要配置相关的服务器,然后启动服务器才可以,而springboot专门提供了一个入口,启动起来相当简单。...而@EnableAutoConfiguration自动配置注解也是spring的注解,它会把一些常见配置自动注入,例如tomcat的端口号这类的。...而springboot的项目创建方式网上的文章千千万,也没必要再列一遍了。
• canvas 其实对于HTML来说很简单,只是一个标签元素而已,自己并没有行为, 但却把一个绘图 API 展现给客户端 JavaScript 以使脚本能够把想绘制的东西都 绘制到一块画布上,拥有绘制路径...所有的 标签只是图形的容器,必须使用JavaScript的 API 操作绘图。...标签: • getContext • 返回一个用于在画布上绘图的环境 <script type
该目录中存储的都是一些二进制文件,文件都是可以被运行的。 Dev:该目录中主要存放的是外接设备,例如盘、其他的光盘等。在其中的外接设备是不能直接被使用的,需要挂载(类似windows下的分配盘符)。...Imp:表示“临时”的,当系统运行时候产生的临时文件会在这个目录存着。 Usr:存放的是用户自己安装的软件。类似于windows 下的program files。...Var:存放的程序/系统的日志文件的目录。 Mnt:当外接设备需要挂载的时候,就需要挂载到mnt目录下。...隐藏的文档.开头 用法4 # ls -lh 路径v 含义:列出指定路径下的所有文件/文件夹的名称,以列表的形式并且在显示文档大小的时候 以可读性较高的形式显示 ?...列的含义: UID:该进程执行的用户id; PID:进程id; PPID:该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程称之为僵尸进程; C:Cpu的占用率,其形式是百分数; STIME
ChatGPT介绍: 一、ChatGPT是什么?...为了实现对话系统的自动化,OpenAI团队在GPT模型的基础上开发了GPT-2模型,它可以生成更加高质量的自然语言文本,并且可以实现一定程度的对话功能。...GPT-3模型的出现引起了广泛的关注和讨论,它被认为是自然语言处理领域的重大突破,将对话系统和人机交互带入了一个新的阶段。...满足人们的需要. 2、可以适应不同的对话场景 ChatGPT可以根据对话场景的不同而进行相应的调整,比如在智能客服中,它可以根据用户的问题给出相应的答案;在聊天机器人中,它可以模拟人类的对话风格,...5、对于数据的敏感性 ChatGPT的开发者非常重视对于数据的敏感性,因此对于一些可能引起争议的数据集(如暴力、种族歧视等),OpenAI公司已经禁止了它们的使用,以确保ChatGPT的安全和公正性。
因为我测试的时候,使用的测试授权功能几乎也都还能用,不知道真正买授权的时候是不是给了一个授权Fortinet里面的功能都可以用,在这里希望了解的伙伴可以给我解答一下。...Fortinet简单配置 此篇先做一个简单的Fortinet VM的安装、初始化和HA介绍。下一篇将做IPsec V** 和 SSL V** 配置的介绍。...关于路由,NAT、策略&对象不展开详细的介绍。因为每家厂商的这些配置大同小异。其中有的介绍也在本篇做一些介绍。...这里简单的对Fortinet的做NAT的几种方式:PAT NAT、Dynamic IP pool、Virtual IP 、Central NAT。...主设备的选举根据下图所示进行,主设备之外的设备则成为从设备。主设备硬件故障或者被监控的端口链路故障都会重新进行主设备的选举。防火墙按照如下顺序进行比较,进行主设备的选举。
Nginx(发音同engine x)是一个网页服务器,它能反向代理HTTP, HTTPS, SMTP, POP3, IMAP的协议链接,以及一个负载均衡器和一个HTTP缓存。...Nginx在官方测试的结果中,能够支持五万个平行连接,而在实际的运作中可以支持二万至四万个平行链接。 整体采用模块化设计是nginx的一个重大特点,甚至http服务器核心功能也是一个模块。...旧版本的Nginx的模块是静态的,添加和删除模块都要对Nginx进行重新编译,1.9.11以及更新的版本已经支持动态模块加载。 —— 来自维基百科 Nginx最初是作为一个web服务器创建的。...正向代理 作为客户端的中介接受请求,隐藏真实的用户,向服务端获取资源,如果代理在墙外,则可以实现翻墙 反向代理 作为服务端的中介,隐藏真实的服务器,目的是为了实现安全和负载均衡等一系列的功能 安全:用户的请求不会直接到内网的服务器上...pid报错则按如下方法杀掉nginx主进程 在进程列表里面找到master进程,他的编号就是主进程号了。
int unitis表示速率的基本时间单位。...unitis值为 1的表示是,一毫秒时间单位内运动了多少个像素, unitis值为 1000表示一秒(1000毫秒)时间单位内运动了多少个像素 float Velocity表示速率的最大值...: 当你须要跟踪触摸屏事件的速度的时候,使用 obtain() 方法来获得 VelocityTracker 类的一个实例对象 在 onTouchEvent 回调函数中,使用...当你须要跟踪触摸屏事件的速度的时候,使用 obtain() 方法来获得 VelocityTracker 类的一个实例对象 在 onTouchEvent 回调函数中,使用 addMovement(MotionEvent...) 函数将当前的移动事件传递给 VelocityTracker 对象 使用 computeCurrentVelocity (int units) 函数来计算当前的速度,使用 getXVelocity
领取专属 10元无门槛券
手把手带您无忧上云