Werner Vogels 报告“21 世纪的(云)架构”:可用性、可靠性和恢复能力
Amazon的CTOWernerVogels在AWSre:invent2017大会上做了一个主题演讲,探讨了构建“21世纪架构”所需的核心理念。要点涉及:介绍“云原生”革命性架构中涌现的实践、安全正成为每个人的责任、混沌工程(ChaosEngineering)的优点等。在演讲开篇,Vogels就提出,当前驱动关键技术发展的是数据、物联网(IoT)、基于GPU的机器学习计算(以AWS’sEC2P3实例为代表)和深度学习。这些趋势的使用,在社会中引发了一系列的创新。例如,在业务内部采用“大数据”做分析,创建“智能环境”等。但是在过去的二十年中,用于与这些系统接口的数字输入和输出设备并未发生太大的改变。Vogels认为,下一轮技术演进将聚焦于以人为中心的数字接入,尤其是“人人可用的语音解锁数字系统”。接下来,Vogels转而开始探讨有效架构设计的需求问题。有效的架构设计为接口支持技术和数据处理系统提供了动力。Vogles给出了一系列的云架构实例,其中的关键主题(
自主可控:筑起信息技术新长城
①②图①江西新余市搭建起“全程录像、动态监控、定时查询、轨迹回放”的智慧校车安全管理平台。图为工作人员在介绍智慧校车安全调度系统主控中心。新华社记者宋振平摄图②这是支持新一代北斗三号信号体制的高精度导航定位芯片与1角硬币的对比照片。这款芯片能实现亚米级定位精度,并实现芯片级安全加密。(新华社发)没有网络安全,就没有国家安全。无论是重大基础设施还是智慧城市,无论是实体经济的数字化转型还是关系国计民生的关键行业和部门,它们都面临着包括运行安全和数据安全等一系列挑战。中国计算机用户协会名誉理事长吕新奎表示:“保卫网络安全就是保障国家主权,而自主可控就是保障网络安全、信息安全的基本前提。”所谓自主可控技术,就是依靠自身研发设计,全面掌握产品核心技术,实现信息系统从硬件到软件的自主研发、生产、升级、维护的全程可控。简单地说就是核心技术、关键零部件、各类软件全部国产化,自己开发、自己制造,避免受制于人。自主可控是国家信息化建设的关键环节,是保护信息安全的重要目标之一,在信息安全方面意义重大。随着我国自主可控技术不断提升和产
MySQL数据库渗透及漏洞
本文来源Simeon,目前很多架构都以Mysql作为数据库管理系统,但没有一个对Mysql数据库渗透较为全面对总结,针对这种情况我们开展了研究。Mysql数据库是目前世界上使用最为广泛的数据库之一,很多著名公司和站点都使用Mysql作为其数据库支撑,目前很多架构都以Mysql作为数据库管理系统,例如LAMP、和WAMP等,在针对网站渗透中,很多都是跟Mysql数据库有关,各种Mysql注入,Mysql提权,Mysql数据库root账号webshell获取等的,但没有一个对Mysql数据库渗透较为全面对总结,针对这种情况我们开展了研究,虽然我们团队今年正在出版《网络攻防实战研究——漏洞利用与提权》,但技术的进步有无止境,思想有多远,路就可以走多远,在研究mysql数据库安全之余,对Mysql如何通过msf、sqlmap等来进行扫描、漏洞利用、提权、Mysql密码破解和获取webshell等进行了详细研究。1.1Mysql信息收集1.端口信息收集Mysql默认端口是3306端口,但也有自定义端口,针对默认端口扫描主要利用扫描软件进行
在没有DOM操作的日子里,我是怎么熬过来的(终结篇)
前言在我写终结篇的日子里,Vue版本稳定在2.9.1。当我摸清Vue的脉络之后,以一个爬坑无数的亲历者的身份,谈谈我在MVVM时代里遇到的那些事儿。接下来,正文从这开始~好多童鞋学习Vue都有灯下黑的误区,比如,观看各种Vue入门的视频教程,翻阅各种Vue学习笔记的技术博客,闲逛各种号称Vue技术交流的大群。。。殊不知你们都在骑驴找马绕远路。其实通向MVVM时代最笔直的一条大路,就是看官方文档,简单粗暴有疗效。如果看一遍还不明白,那就多看几遍。书读百遍其义自见,就是这个理儿。你跟着官方文档走一遍,然后用vue-cli脚手架搭一个环境,找个iview之类的UI组件库直接开撸,多练手自然而然就会了。如果你在公司项目中遇到难以逾越的Question,请直接请你们公司的前端大佬吃顿火锅,三杯酒下肚,面对如此“美人娇,人如遥。面色微醺自娇俏”的大佬,然后顺势请教下工作上的事情,那么你的Question还是Question吗?噗嗤~接下来我要分几个小节来梳理一下我的vue进阶之路:关于VueDevtools老话
vue+webpack+amaze-vue实现省市区联动选择组件
npm安装amaze-vuecdvue-city-pickernpmnpminstallamaze-vue--savenpminstall开发准备启动webpack-dev-servernpmrundev此时在浏览器中访问http://127.0.0.1:8080/就可以访问了整理目录(没有代码洁癖的请自行跳过)删除src/assets删除src/components清空src/App.vue拷入城市数据将提示准备好的location.js文件拷贝到src目录下。同学可以根据自己的情况自己拷入城市数据,代码里提供的数据仅供参考。开始开发编辑src/main.js引入amaze-vue组件库importVuefrom'vue'importAppfrom'./App'importAmazeVuefrom'amaze-vue';import'amaze-vue/dist/amaze-vue.css';Vue.config.productionTip=falseVue.use
一步一步分析vue之observe
接着,按f11跟进去,我们可以看到,程序用newObserver(value)初始化了value,如下图所示。接着按f11跟进去,我们看看初始化Observer做了些什么事情?我们可以看到在程序的874行,用def(value,'__ob__',this);,用def对value和__Observer__进行处理。不用说,这肯定不是函数式的了==。让我们继续跟进去,看看def对value做了什么事情?按f11跟进去,如下图所示。可以看到,不出所料,又是用了Object.defineProperty给这个value定义了一个__ob__这个属性。这个属性在分析__data章节里给了个可以查阅的链接。但是,重点的是:我们知道,在代码的initData函数里,data=_data,而__ob__的value又被定义为value,也就是data,所以如果_data的值发生改变,data的值会发生变化,__ob__的值也会发生变化,会相应的触发getter/setter。调用完def这个函数,接下来该调用this.walk了,如下
NG-ZORRO 0.6.4,0.6.5 发布,Ant Design 的 Angular 5.0 实现
NG-ZORRO0.6.4,0.6.5已发布,NG-ZORRO是一个企业级的UI组件库,是AntDesign的Angular5.0实现,开发和服务于企业级后台产品。NG-ZORRO0.6.5bug修复:修复Modal类型兼容问题#722修复i18n替换问题#722NG-ZORRO0.6.4更新内容:特性:Form支持默认nzValidateStatus并支持更多错误状态#696Select支持所有场景下无值时显示Placeholder内容#703Grid支持0值布局#704Tooltip/Popover/Popconfirm支持鼠标移入悬浮框内,支持当悬浮框内容为空时不显示#714bug修复:InputNumber修复使用tab键后未触发脏值检查的问题#706重构:修正语法书写以符合新的tslint规范#691@TrotylYu文档:修正单词文案#694@chunghha
浅谈前端与网络请求
作者:不洗碗工作室-张景浩博客地址:http://michaelcode.cntoc:前端学前端也有一段时间了,想浅谈一下前端与网络请求。谈网络请求,自然绕不开的一个话题便是JS。作为前端三大基础之一的JavaScript,其重要性是不言而喻的。在一位前辈推荐下,机缘巧合遇到了廖雪峰老师的JavaScript教程,此教程有哪些好处,我就不废话了,感兴趣的朋友自己去看一下。在一开始看这个教程的过程中,感觉学起来几乎是毫无阻碍的,暗自高兴遇到了福音,直到碰到了这三个词:JSON、Ajax、Promise。其实,廖老师的教程中对此三者的详述挺清楚的。然而,对于一个只会用HTML和CSS写静态页面、从来没接触过异步、网络请求等概念的小白来讲,简直像看到了几个外星文字一样。为了搞清楚这三个神奇玩意儿的含义以及作用,我开始踏上了疯狂的“百度谷歌之旅”。结果,为了解释这三个词,却又搞出了一大堆更神奇的玩意儿。大致如下:Fetch、Generator、T
由一道JS异步面试题,思考对异步问题的处理(1)
再进一步说明问题按钮A按了之后,ajax请求的数据显示在inputtype=text框里,B按钮也是。问题就是如果先按A,此时ajax发出去了,但是数据还没返回来,我们等不及了,马上按B按钮,结果此时A按钮请求的数据先回来,这就尴尬了,按的b按钮,结果先显示A按钮返回的数据,怎么解决?这个问题的解释在我之前写的一篇文章,其中的第二题就是解决方案juejin.im/post/5a1810…,我们今天把这个问题展开一、js的异步的运行机制是什么以下是一张解释异步队列的图,以及文字说明(摘自阮一峰老师的博客)(1)所有同步任务都在主线程上执行,形成一个执行栈(executioncontextstack)。(2)主线程之外,还存在一个"任务队列"(taskqueue)。只要异步任务有了运行结果,就在"任务队列"之中放置一个事件。(3)一旦"执行栈"中的所有同步任务执行完毕,系统就会读取"任务队列",看看里面有哪些事件。那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行。(4)主线程不断重复上面的第三步。之后,我们
WebSocket详解(四):刨根问底HTTP与WebSocket的关系(上篇)
以下是跟Boss的对话内容:A:Meteor是一个很新的开发框架,我觉得它设计得十分巧妙。B:怎么个巧妙之处?A:它的前后端全部使用JS,做到了真正的前后端统一;前端浏览器里存有一份后台开放出来的数据库的拷贝,快;使用WebSocket协议来做数据传输协议,来同步前后端的数据库,实现了真正的实时同步。B:哦?WebSocket是什么东西?真实时?那底层是不是还是轮训?和HTTP的长连接有什么不同?A:(开始心虚)它是一个新的基于TCP的应用层协议,只需要一次连接,以后的数据不需要重新建立连接,可以直接发送,它是基于TCP的,属于和HTTP相同的地位(呃,开始胡诌了),底层不是轮训,和长连接的区别……这个就不清楚了。B:它的传输过程大致是什么样子的呢?A:首先握手连接(又是胡诌),好像可以基于HTTP建立连接(之前用过
Visual Studio 2017的第五个更新包扩展了调试工具
VisualStudio2017近日收到了最新的完整更新包,版本号为15.5。跟随前几次更新的步伐,这次发布提供了一系列几乎会让所有用户从中受益的特性。此次发布的一个重点是IDE的性能,尤其是减少C#/VisualBasic项目的加载时间。在.NETCore项目中进行文件操作(添加、删除、重命名)时的响应速度也应该更快了。据来自微软的JohnMontgomery报道,按照微软的测定,大型C#/VB解决方案的加载速度是VS2017之前版本的两倍。这些成果的取得得力于微软把顺序加载过程变得更为并行化。之前,VS2017顺序执行项目加载,设计时构建,然后更新IntelliSense。现在,在15.5版本中,IDE能够同时执行项目加载和设计时构建,最后是IntelliSense。来自微软的ViktorVeis近日介绍了这些变化的实现方式,并建议在开发机器上使用SSD(即使只在Windows分区上)来获得最佳效果。IntelliTrace增加了新的调试特性“Step-back”。当启用这项特性时,开发人员
ASP.NET Core中的OWASP Top 10 十大风险-跨站点脚本攻击 (XSS)
不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻喷,如觉得我翻译有问题请挪步原博客地址本博文翻译自:https://dotnetcoretutorials.com/2017/10/25/owasp-top-10-asp-net-core-cross-site-scripting-xss/在这篇文章的前几次迭代中,我用了一个很长的篇幅解释了什么是跨站脚本(XSS)。但在花了好几个小时来完善它之后,我觉得向你展示一个简单的屏幕截图就更容易了。这例子很简单。我有一个用户的“搜索”页面,并且他们输入的任何查询都以“搜索查询{您的查询在这里}”的形式回传给他们。代码如下所示:
SearchResultsfor"@Html.Raw(Context.Request.Query["query"])"
因此,我们要把用户搜索的东西(或者输入用来查询的字符串),直接放到页面上。这样用户就可以输入脚本标签,或者任何他们想要的东西。这本质上是XSS的核心。获取未经验证的用户输入,并在网页上批量显示。使用Process的StandardInput与StandardOutput写入读取控制台数据
本文为原创文章、源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称、作者及网址,谢谢!开发工具:VS2017语言:C#DotNet版本:.NetFrameWork4.0及以上一、为了演示使用程序读取控制台数据,现在需要编写一个控制台程序,代码如下:usingSystem;namespaceTest{classProgram{staticvoidMain(string[]args){Console.WriteLine("HelloWorld!");stringcontent=Console.ReadLine();if(content.ToUpper()=="TEST"){Console.WriteLine("Youhavetypecorrectly.\r\nCongratulation!");}else{Console.WriteLine("Sorry,Uncorrectly!\r\nSeeyoulater.");}}}}这段代码的作用是:1)在控制台输出“Hello
AliOS Things异步事件框架Yloop
Yloop概要Yloop是AliOSThings的异步事件框架。Yloop借鉴了,libiuv及嵌入式业界常见的eventloop,综合考虑使用复杂性,性能,及footprint,实现了一个适合于MCU的事件调度机制。Yloop上下文每个Yloop实例(aos_loop_t)与特定的任务上下文绑定,AliOSThings的程序入口application_start所在的上下文与系统的主Yloop实例绑定,该上下文也称为主任务。主任务以外的任务也可以创建自己的Yloop实例。Yloop调度Yloop实现了对IO,timer,callback,event的统一调度管理:IO:最常见的是Socket,也可以是AliOSThings的vfs管理的设备timer:即常见的定时器callback:特定的执行函数event:包括系统事件,用户自定义事件当调用aos_loop_run后,当前任务将会等待上述的各类事件发生。Yloop实现原理Yloop利用协议栈的select接口实现了对IO及timer的调度。AliOSThings自带的
webpack编译vue项目生成的代码探索
前言往main.js里写入最简单的vue项目结构如下importVuefrom'vue';importAppfrom'./App.vue';newVue({el:'#app',template:'{{msg}}
EssentialLinks
webassembly 入门
基本wasm是用来让低级汇编语言,比如C/C++能够直接在浏览器上运行的一个标准。它遵循着安全的同域策略。wasm不需要直接侵入web代码页面,从而可以实现API的提供。wasm运行机制Web的运行环境可以分为,你写的JS代码和通过JS代码代用底层的WebAPI。好听一点就是:虚拟机(VM):运行你写的JS代码底层内核:提供JS代码中使用到的WebAPI,例如,DOM、BOM等。wasm能做什么?因为以前VM只能运行JS代码,将JS无法运行高负载运算的缺点完美的暴露出来。而现在,随着技术的发展,比如,3Dgame,VR/AR,机器视觉,图像处理等等。这些需要大量计算的,在JS里面就变的有些尴尬,所以,基于该点浏览器提供了一个通用的技术共识,额外提供一个可以用来运行编译代码的VM。这也就是wasm诞生的初衷。所以,这一个新的VM可以同时运行JS和wasm代码。wasm基本概念wasm可以和JS一起在同一个VM编译运行,他们之间可以
JavaScript中this引发的bug
转评:this在不同的环境下指向不同的对象,一定要小心!原文:[筆記]談談JavaScript中的”this”和它的bug在JavaScript中有一个很特别、很常用又常常让初学者很困扰的东西─“this”,在这堂课中会来谈谈这个”this”。this通常会指向一个对象,同时this会在不同的情境下指向不同的对象。让我们来看几个不同的情境,帮助我们更了解”this”。windowobject(globalobject)这里我们在三种不同情境去打印”this”,分别是在函数的最外层(outerenvironment)直接去执行;使用fuctionstatement去执行;使用functionexpression去执行(如果还不清楚functionstatement和functionexpression的差别,可以参考注1)。结果会发现,这三个”this”都会指向同样的对象,也就是globalenvironment的windowobject(globalobject):这也就是说,我们可以
看完离编写高性能的JavaScript又近了一步
副标题:常见的JavaScript内存泄露这是关于JavaScript内存泄露相关的序列文章中一篇。由于时间有限更新进度会有点慢,但会持续更新的。自己也在学习中,难免对某些知识点的理解不是很正确,所以才将文章放置github上,一是想与大家分享,二是方便持续更新,三是便于实时修正错误点。也希望看本文的各位同学能多提issues,我会根据提的意见不断完善文章。最后希望各位能从文章中有所收获----->enjoyreading,enjoylife:pencil2:最新内容请以github上的为准:exclamation:️序列文章链接JavaScript内存那点事常见的JavaScript内存泄露IE<8循环引用导致的内存泄露内存泄露之jQuery.cache内存泄露之ListenersrequestAnimationFrame什么是内存泄露内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从
基于 HTML5 Canvas 的 3D 碰撞检测
基于HTML5Canvas的3D碰撞检测这是公司大神写的一个放官网上给用户学习的例子,我一开始真的不知道这是在干嘛,就只是将三个形状图元组合在一起,然后可以同时旋转、放大缩小这个三个图形,点击“Animate”就能让中间的那一个图元单独绕着某一个点旋转,表单最上方的“Axis”真的完全不知道拿来干嘛用的,觉得好累赘,而且是官网的Demo,也没有解释。。。所以我今天得任务就是完全剖析这个例子!本文例子:http://www.hightopo.cn/demo/3drotate/3d-rotate.html首先让我们来看下这个案例:我们来看看如何操作这个3d交互模型,可以直接滑动“Rotation”的滑动条,你会看到3d和左下角的2d上的图元都会旋转,接着点击“Axis”中的任意一个值,然后点击“Animate”,你会看到中间这个图元会旋转,同时滑动“Range”的滑动条,这是控制你旋转的幅度的,如果你调到“0”,那么就不会旋转,调到“30”就会旋转30度,以此类推。接着调整“Reset”你会发现,不是完全刷新这
解决 IIS Worker Process 内存占用达到99%的问题
昨天半夜,接到客户紧急异常,通过webservice接口调用的数据都返回异常。于是查看服务器查看,发现服务器运行卡顿严重,且一个IISWorkerProcess进程内存占用达99%,猜测可能是IIS内存回收出现问题。于是手动结束了这个进程,接着程序恢复了正常。反思这个事件,确定是IIS内存回收机制设置有问题。在忽略程序设计本身释放内存的逻辑问题下。通过IIS可以指定内存回收机制。在应用池中又见高级设置中,我们可以看到,默认IIS设置的固定内存回收时间是1740分钟,也就是29个小时,但对于24小时运行的程序来说,这个设置效果不是很理想。紧接着我们可以看到专用内存限制设置项,默认是0,也就是没有限制。于是把它修改为1048576,也就是当内存达到一个G的时候,自动启动内存释放机制。它会等待当前进程完成,然后重新创建一个新的进程继续运行。效果不错。