首页 文章 精选 留言 我的

精选列表

搜索[快速],共10000篇文章
优秀的个人博客,低调大师

基于阿里云K8S服务快速构建DevOps流水线 资料下载

本次直播分享kubernetes中devops相关的理论知识及最佳实践,涉及开源jenkins、jenkinsx、gitops、kaniko、helm、skaffold等工具或理论介绍及demo。直播视频全程链接:https://yq.aliyun.com/live/840PPT精彩内容一览:PPT下载地址:https://yq.aliyun.com/download/3308 Kubernetes社区大群欢迎你 进群方式:1.点击链接即可入群:https://dwz.cn/G2EELckH2.扫描下方二维码进群

优秀的个人博客,低调大师

使用Per.js快速开发商品价格计算页面 - for Per.js3.0

先预览一下全部代码: <!DOCTYPE html> <html> <head> <title>Per.js Demo</title> <meta charset="UTF-8"> </head> <body id="body"> <div id="page1"> <h1>Welcome to use this price calculation!</h1> </div> <div id="page2" style="display: none;"> <ul p-loop-in="var1"> <li>This is {{var1.name}}</li> <li>The price is: {{var1.price}}<span p-con="{{var1.price > 20}}"> - To expensive!</span></li> </ul> </div> <button id="tp1">to page1</button> <button id="tp2">to page2</button> <button id="btn-refre">Refresh</button> <script src="Per.js"></script> <script> Per.use("Per.page"); Per.page.create.pageGroup("allPage"); Per.page.create.page("allPage","#page1"); Per.page.create.page("allPage","#page2"); var app = Per("ul"); app.dom({ loop: [{name: "apple",price: 20},{name: "bread",price: 30},{name: "banana",price: 25}], callback: function(){ Per("span").dom({ con: "in" }); } },true,true); Per("#btn-refre").dom({ info: { item: [{name: "apple",price: 20},{name: "bread",price: 30},{name: "banana",price: 25}] }, click: function(){ this._super.innerHTML = "Refresh now!"; var val = parseInt(Math.random()*30+1); this.item[0].price = val; val = parseInt(Math.random()*30+1); this.item[1].price = val; val = parseInt(Math.random()*30+1); this.item[2].price = val; app.dom.loop = this.item; } }); Per("#tp1").dom({ click: function(){ Per.page.to("allPage",1); } }); Per("#tp2").dom({ click: function(){ Per.page.to("allPage",2); } }); </script> </body> </html> 然后发上一波效果图: 没错,就是这样一个页面,那么接下来我就来教大家如何制作。 先把基本页面格式写好。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Per.js Demo</title> </head> <body> </body> </html> 之后我们使用script标签来引入Per.js文件: <script src="Per.js"></script> <script> </script> 再然后,我们在body标签里面写上基本结构: <div id="page1"> <h1>Welcome to use this price calculation!</h1> </div> <div id="page2" style="display: none;"> <ul p-loop-in="var1"> <li>This is {{var1.name}}</li> <li>The price is: {{var1.price}}<span p-con="{{var1.price > 20}}"> - To expensive!</span></li> </ul> </div> <button id="tp1">to page1</button> <button id="tp2">to page2</button> <button id="btn-refre">Refresh</button> 之后在script标签里面再写js语句: Per.use("Per.page"); Per.page.create.pageGroup("allPage"); Per.page.create.page("allPage","#page1"); Per.page.create.page("allPage","#page2"); var app = Per("ul"); app.dom({ loop: [{name: "apple",price: 20},{name: "bread",price: 30},{name: "banana",price: 25}], callback: function(){ Per("span").dom({ con: "in" }); } },true,true); Per("#btn-refre").dom({ info: { item: [{name: "apple",price: 20},{name: "bread",price: 30},{name: "banana",price: 25}] }, click: function(){ this._super.innerHTML = "Refresh now!"; var val = parseInt(Math.random()*30+1); this.item[0].price = val; val = parseInt(Math.random()*30+1); this.item[1].price = val; val = parseInt(Math.random()*30+1); this.item[2].price = val; app.dom.loop = this.item; } }); Per("#tp1").dom({ click: function(){ Per.page.to("allPage",1); } }); Per("#tp2").dom({ click: function(){ Per.page.to("allPage",2); } }); 之后打开浏览器,就正常执行了! 效果如同上方gif图一样! 【tips:必须使用Per.js >= 3.0版本】

优秀的个人博客,低调大师

微信「跳一跳」带火小游戏,开发者如何快速上手?

在微信 6.6.1 版本中,给用户推送了“玩一个小游戏才是正经事”的首屏小游戏入口,一时间整个朋友圈都在跳一跳。相信很多游戏开发者心痒难耐,想一探究竟。今天就由我和王哲从技术角度给大家科普一下微信小游戏的开发知识,这一系列文章源自我们 Cocos Creator 引擎团队和微信团队合作过程的总结,目前,Cocos Creator v1.8 编辑器已第一时间支持一键发布微信小游戏版本。 今天这篇文章是介绍微信小游戏开发系列文章的第一篇。 一、小游戏生态特点 目前微信小游戏已发布 17 款首发游戏,包括六款棋牌类游戏,以及欢乐消消消、爱消除、坦克大战、保卫萝卜等休闲游戏。 从入口方面来说,微信小游戏目前的主要入口有下面几个: 群或好友分享 识别小游戏二维码 微信聊天列表页面下拉后出现最近玩过的小游戏 发现 – 小程序 发现 – 游戏 – 我的小游戏 从技术角度来说,微信小游戏是微信小程序的基础上添加了游戏库 API。小游戏只能运行在小程序环境中,所以小游戏既不是原生游戏,也不完全等同于 HTML5 游戏。但实际上小游戏面向的就是 HTML5 游戏开发者,为了能够让 HTML5 游戏可以尽可能低成本得移植,小游戏尽可能复用了 WebGL、JavaScript 等源自浏览器的 HTML5 技术。可以说小游戏是使用 HTML5 技术搭建,具有原生体验的微信内游戏产品。 小游戏采用这样的模式有很多优点,最大的优点在于稳定和可控。相比于原生,微信可以将游戏闭环在微信内部;相比于纯 HTML5,则不用担心被游戏切广告切支付。 微信小游戏的运行时环境与曾出现过的其他 Runtime 形态相比有一个很大的好处是「兼容 HTML5 生态」。也就是说不论你用哪个游戏引擎开发的 HTML5 游戏,都可以很容易地移植到小游戏上面。这使得微信小游戏可以直接从巨大的 HTML5 生态中借力。 而在技术之外,微信给小游戏最强的加持就是社交传播了。利用好微信的社交生态来获取新用户,将在小游戏的设计中占据非常重要的地位。我们可以看到,第一批 16 款游戏中,除了跳一跳有闪屏入口之外,其他的小游戏入口都藏得比较深,所以流量来源并不是主要靠推荐榜来的,而是通过社交传播来的。这点和市面上多数导用户、洗用户、滚服合服的游戏设计思路是不同的。 微信开放的优质入口,庞大的用户基数,以及即点即玩、利于分享的特性将赋予小游戏极大的潜能。一切都看各位开发者如何把握机会,找到适合微信用户的游戏品类和形态。 二、API 之上:开发小游戏的必备知识点 之前提到,小游戏的开发主要复用了 HTML5 技术栈,所以开发过 HTML5 游戏的开发者上手会快很多,甚至很多 HTML5 游戏都可以很快移植到小游戏平台。具体来说,微信小游戏的开发技术分为三个部分。 1. 底层技术 首先是开发语言,微信小游戏只支持 JavaScript,当然可以编译为 JS 的 TypeScript 以及 CoffeeScript 都可以作为开发语言使用。 其次是小游戏所支持的游戏库 API,主要包含 HTML5 的 Canvas 2D API 和 WebGL 1.0 API,使用任何一种 API 都可以完成游戏最重要的渲染功能,不过不能够混用,除此之外,只有 WebGL 渲染模式可以支持 3D 渲染。 2. 中间件:游戏引擎 当然,直接使用 Canvas 2D 或 WebGL 来制作游戏是门槛很高,也非常费时费力的一件事,你肯定不希望一个小游戏项目拖上一年半载吧?所以使用 HTML5 游戏引擎其实是非常明智的选择,引擎封装出的高层接口可以大大降低开发者的开发门槛,缩短项目周期。目前国内的三家主流引擎 Cocos Creator、Egret、Laya 均已支持小游戏发布,Phaser.js、Three.js 等国外 HTML5 引擎虽然并没有支持直接发布,经过一些定制也是可以成功运行在小游戏环境中。 3. 微信 SDK 除此之外,微信小游戏还提供了丰富的微信内部 SDK 供开发者调用,使用这些接口可以完成用户登陆、转发、排行榜等常规的社交功能。 不过除了这些常规玩法以外,最让人欣喜的是通过转发小游戏,可以完成玩家在游戏中的组队或对战,加上小游戏即点即玩的特点,这种邀战的游戏体验可以说是天衣无缝。 欢乐坦克大战中邀请好友组队 好友通过点击转发链接直接进入游戏完成组队 这种群转发 + 即点即玩的机制可能带来非常有趣的社交玩法。 三、API 之下:理解小游戏的底层技术架构 开篇提到,小游戏既不是原生游戏,也不能等同于 HTML5 游戏,它的开发环境实际上跟两者都有非常密切的关系。与 HTML5 的关系就是它复用了 HTML5 的渲染接口,但与原生游戏又有什么关系呢?我们用一张图来解释: 小游戏的运行环境其实是微信的原生环境,游戏的 JavaScript 代码并不是通过浏览器来执行的,而是通过图中 JS VM 层独立的 JavaScript 引擎来执行的。 在 Android 平台使用 Google 的 v8 引擎,而在 iOS 上则使用苹果的 JavaScript Core 引擎。 当然 JS 引擎只负责解释执行 JS 逻辑,并没有支持渲染接口,那么渲染接口和诸多的微信功能接口又是怎么实现的呢?这就不得不提到脚本绑定技术,这种技术可以将某种原生语言的接口桥接到脚本接口上,当在脚本层调用接口时,会自动转发到原生层,调用原生接口。微信小游戏环境用的就是这样的技术,将 iOS / Android 原生平台实现的渲染、用户、网络、音视频等接口绑定为 JavaScript 接口。这也就是图中的微信原生层模块到小游戏层模块的原理。脚本绑定技术无法在这篇文章中深入探讨,如果大家有兴趣,可以去了解 Cocos Creator 的 JSB 绑定实现,这也是游戏引擎中唯一一家完全开源的绑定技术实现。 小游戏在有了这样一套框架之后,HTML5 游戏在移植过程中仍然是会遇到无数 API 兼容性问题,最简单的比如 document 对象不存在,Image 对象不存在。为了降低移植成本,微信团队提供了一个 Adapter 脚本,适配了一部分浏览器接口。 如上图所示,Adapter 部分提供了大部分 HTML5 游戏所依赖的浏览器接口,这张图也比较完整得描绘了微信小游戏中开发者可以使用的接口模块: 浏览器渲染接口 浏览器 Adapter 微信服务 SDK 值得一提的是,Adapter 脚本已经不再继续维护了,所以额外的接口适配都需要开发者自己完成,而依赖于 DOM 接口的大多数功能都是无法适配到小游戏环境中的。 刚刚也提到推荐大家使用游戏引擎去开发小游戏,小游戏环境的基础之上,游戏引擎不仅封装了高层接口,还尽力抹平了浏览器与小游戏环境之间的差异。 从图中可以看到,如果不使用游戏引擎,开发者面对的是小游戏的底层 API,在使用了游戏引擎后,面对的是引擎的 API。 总结游戏引擎为开发者所做的工作,包含下面几个方面: Framework: 高层 API 封装对于游戏开发更便利; 资源加载适配; 事件处理适配; 音频播放适配; 窗口适配; 输入框适配; 添加其他缺失的接口,比如增加 DOM Parser 用于解析 TileMap。 EDITOR: 优化程序-美术-策划的协同效率; 优秀的游戏编辑器可以大幅缩短开发周期。 GENERAL: 优秀的游戏引擎提供高设备兼容性,稳定的运行性能; 跨平台游戏引擎提供无缝发布 HTML5、小游戏、原生平台的强大能力。 高效率的编辑器带来开发成本的降低;低入门门槛降低了人力成本;高兼容性和稳定的性能降低维护成本;跨平台/渠道带来强大的流量获取能力。对于开发者来说,这些就是生存和盈利的保障! 四、上手调试小游戏 需要注意的是,在撰文的今天,微信公众平台目前尚没有开放开发者申请游戏类目的权限,所以还只能通过小游戏开发工具的 “体验小游戏” 功能来做技术层面的尝试。不过不用着急,微信团队应该很快就会开放游戏类目的申请。 1. 微信开发者工具介绍 下面这张图就是微信开发者工具在做小游戏开发时的基本布局: 微信开发者工具基本布局 其中上方是工具栏,包含最重要的编译、预览和配置详情;左侧是模拟器窗口用来展示游戏运行效果;右上方是代码编辑器,可以查看项目中的文件列表,编辑文本文件;右下是调试器窗口,使用方法和 Chrome Devtools 完全一致。 2. 微信小游戏配置和入口文件 在微信小游戏项目中,project.config.json 和 game.json 配置文件是大家首先需要添加的,其中 project.config.json 可以定义你的小游戏 appid、游戏名、配置等。而 game.json 主要用于指定游戏朝向和网络超时时间。 另外,小游戏不支持任何 html 文件,入口文件是 game.js,你需要启动的引擎和游戏脚本都应当在 game.js 中用 require 函数引入,require 函数的用法遵循 node.js 的 require 规范。 3. 编译和预览 微信开发者工具会自动监听脚本和配置的变动,发生变动时会自动更新,你也可以通过顶部的编译按钮触发重新编译。当你需要在手机上预览小游戏的效果时,需要点击预览按钮来生成二维码,扫码即可进入小游戏。生成二维码的过程实际上是在压缩和上传小游戏包到微信 CDN 上,所以会花费一些时间。 4. 详情配置 详情配置中包含一些重要的配置选项,包括: 调试基础库:小游戏应该选择 game; ES6 转 ES5:是否将 ES6 脚本转换为 ES5; 代码上传时自动压缩:是否压缩脚本; 不校验安全域名、TLS 版本以及 HTTPS 证书:当你在本地测试,或通过非正式域名测试时,需要开启这个选项才能够正常访问你的服务器。 五、市场展望 最后我们从市场上来看,其实小游戏青睐的 HTML5 技术栈蕴含着巨大的机遇,目前使用 JavaScript 支持跨平台的游戏引擎已经不少。以 Cocos Creator 为例,编写一套游戏代码,可以在编辑器中无缝发布 HTML5 手机页游、PC 页游、手机原生游戏、小游戏。我们可以简单计算一下,根据 12 月初伽马数据的行业报告,国内 2017 年手机原生游戏 1162 亿,PC 端游 648 亿,PC 页游 156 亿,所以按比例简单计算的话,手机页游的市场空间 = 1162 ÷ 648 x 156 =每年 280 亿人民币。 如果进一步考虑 Flash 宣布 2020 年停更,市面大量 PC 页游都开始转用 HTML5 技术制作,而手机原生上也出现了大量的微端产品,那么如果不考虑此消彼长的制约, HTML5 技术可以支撑的游戏市场规模应该 = 280 亿 手机页游 + 156 亿 PC 页游 + 部分手机原生游戏 ≈每年 500 亿人民币。 500 亿人民币还只是计算国内的规模。根据国外 Newzoo 在年中的数据,中国游戏产业规模占全球 25%,那么 HTML5 技术理论上可以支撑的全球手机页游、手机原生、PC 页游市场容量上限可达每年 2000 亿人民币。 所以,掌握 HTML5 技术栈,掌握微信小游戏、QQ 厘米秀、Facebook Instant Games 等「手机页游」新平台上的社交游戏开发技术,洞悉这些社交平台上的用户特点、和提出针对性的游戏设计,对于想进入这个领域的游戏开发商而言,是近期迫在眉睫的事。 而且目前普遍的观点是,在资本的推动下,手机页游的时间窗口应该只有 1~1.5 年,这里面会有原生游戏大厂布局成功的,也会有新晋的研发商和发行商。而在游戏行业产生这样的风口,平均 5 年左右才能有一次。 原文地址http://www.bieryun.com/530.html

优秀的个人博客,低调大师

在EMR中使用snappy压缩的时候快速查看压缩前文本的内容

在EMR的项目中,按理阿里云目前提供的解决方案,大多数的同学可能都是使用的logtail做的日志收集,然后通过logshipper投递到oss中存储。这么配置以后,存储在oss里面的文件都是snappy格式了,但是怎么使用估计大部分同学是一脸懵逼的。 有两个小的配置,可以方便的和使用gzip一样使用snappy文件。 1 hadoop fs -text的命令直接查看。如果是直接使用的话,你看到的都是二进制,直接把shell搞死。需要用下面的格式查看 hadoop fs -Dio.compression.codec.snappy.native=true -text oss://xxx/xx.snappy 2使用MR脚本的时候,需要配置下,这个可能大部分同学都会,因为之前使用gzip的时候,也需要添加类似的配置项才能跑起来 hadoop .......-jobconf io.compression.codec.snappy.native=true

优秀的个人博客,低调大师

简单快速开发C\S架构程序用最简单的不分层最快的效率

用通用权限管理系统组件开发一个简易的日积月累功能的代码实现,运行效果如下效果,很多通用的小功能系统组件自动都实现了,那开发应用程序会变得又快又简单了。 具体代码参考如下: 1 // -------------------------------------------------------------------- 2 // All Rights Reserved , Copyright (C) 2012 , Hairihan TECH, Ltd. 3 // -------------------------------------------------------------------- 4 5 usingSystem; 6 usingSystem.Data; 7 usingSystem.Windows.Forms; 8 9 namespaceDotNet.WinForm 10{ 11 usingDotNet.Business; 12 usingDotNet.Utilities; 13 14 /// <summary> 15 /// FrmKnowledge.cs 16 /// 日积月累 17 /// 18 /// 修改记录 19 /// 20 /// 2012.09.03 版本:1.0 JiRiGaLa 修改功能页面编写。 21 /// 22 /// 版本:1.0 23 /// 24 /// <author> 25 /// <name> JiRiGaLa </name> 26 /// <date> 2012.09.03 </date> 27 /// </author> 28 /// </summary> 29 public partial classFrmKnowledge : BaseForm 30 { 31 publicFrmKnowledge() 32 { 33 InitializeComponent(); 34 } 35 36 /// <summary> 37 /// 日积月累的知识库 38 /// </summary> 39 DataTable dtKnowledge = null; 40 41 /// <summary> 42 /// 当前显示第几条 43 /// </summary> 44 intCurrentIndex = 0; 45 46 #regionpublic override void ShowEntity() 显示内容 47 /// <summary> 48 /// 显示内容 49 /// </summary> 50 public override voidShowEntity() 51 { 52 // 显示信息 53 BaseCommentEntity commentEntity = newBaseCommentEntity(dtKnowledge.Rows[ this.CurrentIndex]); 54 this.txtContents.Text = commentEntity.Contents; 55 } 56 #endregion 57 58 public override voidSetControlState() 59 { 60 if( this.dtKnowledge != null&& this.dtKnowledge.Rows.Count > 0) 61 { 62 this.btnNext.Enabled = true; 63 if( this.CurrentIndex == this.dtKnowledge.Rows.Count - 1) 64 { 65 this.btnNext.Enabled = false; 66 } 67 this.btnPrevious.Enabled = true; 68 if( this.CurrentIndex == 0) 69 { 70 this.btnPrevious.Enabled = false; 71 } 72 } 73 } 74 75 #regionpublic override void FormOnLoad() 加载窗体 76 /// <summary> 77 /// 加载窗体 78 /// </summary> 79 public override voidFormOnLoad() 80 { 81 // 获取数据 82 SQLBuilder sqlBuilder = newSQLBuilder( this.UserCenterDbHelper); 83 sqlBuilder.BeginSelect( " BaseKnowledge "); 84 // 只获取前200个数据就可以了,减小网络传递数据的网络带宽。 85 sqlBuilder.SelectTop( 200); 86 if(! string.IsNullOrEmpty( this.EntityId)) 87 { 88 sqlBuilder.SetWhere(BaseCommentEntity.FieldId, this.EntityId); 89 } 90 // 这里是为了每次显示的数据都是乱序的,数据测循序是被打乱的。 91 sqlBuilder.SetOrderBy( " NEWID() "); 92 dtKnowledge = sqlBuilder.EndSelect(); 93 if(dtKnowledge.Rows.Count > 1) 94 { 95 this.CurrentIndex = newRandom().Next( 0, dtKnowledge.Rows.Count - 1); 96 } 97 // 显示实体 98 this.ShowEntity(); 99 100 // 显示日积月累 101 stringshowKnowledge = DotNetService.Instance.ParameterService.GetParameter(BaseSystemInfo.UserInfo, " User ", " ShowKnowledg ", " Show "); 102 if(! string.IsNullOrEmpty(showKnowledge)) 103 { 104 this.chkShowKnowledge.Checked = showKnowledge.Equals( true.ToString()); 105 } 106 } 107 #endregion 108 109 private voidchkShowKnowledge_CheckedChanged( objectsender, EventArgs e) 110 { 111 if( this.FormLoaded) 112 { 113 DotNetService.Instance.ParameterService.SetParameter(BaseSystemInfo.UserInfo, " User ", " ShowKnowledg ", " Show ", this.chkShowKnowledge.Checked.ToString()); 114 } 115 } 116 117 private voidbtnPrevious_Click( objectsender, EventArgs e) 118 { 119 if( this.CurrentIndex > 0) 120 { 121 this.CurrentIndex--; 122 this.ShowEntity(); 123 } 124 this.SetControlState(); 125 } 126 127 private voidbtnNext_Click( objectsender, EventArgs e) 128 { 129 if( this.CurrentIndex < this.dtKnowledge.Rows.Count - 1) 130 { 131 this.CurrentIndex++; 132 this.ShowEntity(); 133 } 134 this.SetControlState(); 135 } 136 137 private voidbtnColse_Click( objectsender, EventArgs e) 138 { 139 this.Close(); 140 } 141 } 142} 本文转自 jirigala 51CTO博客,原文链接:http://blog.51cto.com/2347979/1196196,如需转载请自行联系原作者

优秀的个人博客,低调大师

5G时代即将来临 智慧医疗将步入快速发展期

目前许多巨头公司已经开始了5G网络的测试,5G将成为全球通讯产业的下一站。5G的发展突破将会带动相关设备、器件等企业业绩的增长,同时促进着物联网相关行业的发展,也带来更多新的投资机会。5G的发展对智慧医疗行业也有重大意义。 智慧医疗 智慧医疗的发展主要分为三个阶段,目前已度过第一个试验阶段,进入第二个市场商用阶段。在第二个阶段中,智能医疗将迎来高速发展期,并呈现出不同于上一阶段的特性。在这一阶段,智能医疗将对具体问题提出解决方案,服务对象转为患者、企业。同时,与传统医疗保健系统进行深度整合,令医疗服务更加高效。 具体来说,智慧医疗将呈现四个主要特性。其一,大数据辅助诊治。通过终端设备收集信息及数据,实现多方交互共享,从而实时监控医疗情况,并及时解决问题,最终改变整个医疗的运作模式。医院可以通过高清画面的传输实现远程手术,或者对于互联网医院,使得病人预约看病、以及医院之间信息的互通更加便利。 具体来说,智慧医疗将呈现四个主要特性: 其一,大数据辅助诊治。通过终端设备收集信息及数据,实现多方交互共享,从而实时监控医疗情况,并及时解决问题,最终改变整个医疗的运作模式。 其二,实现全方位感知病人。通过相关设备、系统或流程,做到实时感知、测量、捕获和传递患者信息,根据此采取相关措施或进行规划,令医疗服务更贴近人心。 其三,全面整合分析医疗资源。智能医疗最大的特点是智能化,即能依据数据进行深入分析、汇总、计算,为特定场景、特定问题的解决方案提供依据,而这个前提是获得详细、具体、全面的信息资源。 其四,智能医疗的终端拓展。智能医疗终端的目的,是打破时间、空间限制,实现对病情信息的连续和准确监测。不过,仅仅起到记录或监测还远不够,未来智能医疗终端要更加智能化、专业化。 朗锐慧康(www.lrioh.com)认为通过5G建置新的服务与产品,可以极大提升大众的生活质量。例如,远程看诊以及远程诊断,一直是医疗业和病患的梦想。5G可以实现远程医疗护理,并且将成为该产业未来变革的推动者,94%受访者皆表示将展开大规模的业务改造,以充分运用5G网络。另外,有鉴于对医疗保健信息隐私的要求,受访者也认为,就5G的商业价值来看,安全性与效能的重要性是不相上下的。

优秀的个人博客,低调大师

有了它,你也可以快速制作专业级企业数据报表

阿里云在线技能认证全新上线,3小时学会使用Quick BI搭建企业数据分析平台: 使用Quick BI 制作企业数据分析报表(课程+考试+认证) 看到下面这些内容你会想到什么? 数据即时分析与决策 交易数据权限管控 报表与自有系统灵活集成 用户行为画像 百万级用户精细化运营 海量营销数据分析 一个超级BI系统?还是一个强大的数据分析平台?没错,它就是阿里云专为云上用户量身打造的新一代智能BI服务平台——Quick BI 基于Quick BI,4步即可完成专业报表门户的创建与分析。第1步:数据集成 多数据源支持: 1、来自云数据源:RDS、HybridDB(Greenplum)、MaxCompute(ODPS)、AnalyticDB(ADS)等 2、来自ECS自建数据库:Mysql、SqlServer等 3、本地文件:CSV、Excel等 能够解决:云上数据

优秀的个人博客,低调大师

为恶意文件“画像” 瀚思科技基于深度学习技术快速锁定未知威胁

阿尔法狗”(AlphaGo)的一战成名让很多人记住了人工智能、深度学习、大数据分析等一系列新兴科技热词,而真正要把这些新技术应用到商业领域则又是另外一个过程。因此,我们现在看到很多创新型企业开始将人工智能技术引入到传统领域中,以求创造出颠覆性的发展机遇。 众所周知,在安全领域对于已知的安全威胁一般都比较容易防范,最棘手的问题是对未知安全威胁的检测和防护,这让很多安全企业非常困惑,而目前比较理想和成熟的防范手段是业界普遍采取的沙箱技术,沙箱的优点是一旦目标被锁定其准确率非常高,但其缺点也非常明显,比如对系统资源损耗大,识别速度较慢,一般都以秒为单位,因此,在某些业务频繁的场景中实际应用的效果并不理想。 瀚思科技完成B轮融资一亿元人民币 而就在7月25日,瀚思科技(简称瀚思)在北京宣布完成B轮融资一亿人民币,这也是2017年上半年中国安全领域企业公开披露的最高融资金额。本轮融资由国科嘉和基金和IDG资本领投,南京高科等A轮投资方继续跟投。凡卓资本担任本次融资独家财务顾问。 在发布会现场,瀚思还发布了新一代企业安全智能平台(HanSight Enterprise 3),通过引入深度学习、人工智能等新技术,为企业级市场开启了一种有别于传统安全的全新防护体验。 据了解,瀚思此次发布的新一代企业安全智能平台,是国内第一款同时集成深度学习恶意文件检测引擎(DeepSense Beta)、用户行为分析系统(HanSight UBA,简称UBA),以及具备10Gbps(万兆)网络流量深度分析能力的安全数据交互分析平台。 瀚思科技创始人兼CEO高瀚昭 瀚思首次将深度学习技术引入恶意文件识别领域,其对恶意文件的识别速度大大提升,可超过传统沙箱技术检测速度的10-100倍。同时,识别准确率达到99%以上。 瀚思也对未来安全市场做了自己的诠释,瀚思科技创始人兼CEO高瀚昭指出,“未来安全市场的发展方向将是安全的智能化,所谓安全智能的概念就是让安全可见、可视、可控。” 像识别一只猫一样识别恶意文件 在目前海量的数据环境下,很多传统的病毒识别效率显得越来越捉襟见肘。这让我们不得不开始把目光转向新技术。而瀚思给了我们一种全新的思路,其最新的深度学习恶意文件检测引擎(DeepSense Beta),能够利用人脸识别技术,像识别一只猫一样识别恶意文件。 高瀚昭表示,“最玄妙的地方就在于,我们能否让机器认得一只猫,其道理和我们的引擎是一样的。因为猫可以站、跑、跳,各种姿势,长相也是千奇百怪,怎么让机器认得这只猫的各种状态就是这套引擎的核心所在。” 瀚思科技联合创始人兼COO董昕 另外,瀚思科技联合创始人兼COO董昕进一步解释称,“这套系统首先将要检测的恶意文件的二进制代码转换成图像信息,再通过人脸识别技术对图像进行识别,整个识别过程应用到神经网络的很多相关技术及算法,因此其过程非常复杂,换句话说,攻击者很难找到其中的规律,所以在某种程度上对未知病毒的识别效果非常有效,也更难以被人为规避。” 瀚思全面态势感知系统:原生支持200种日志模式,原生支持10Gbps网络流量深度分析,近300种预定义分析场景与规则,支持界面定制,内置时间序列、基线等多种异常检测算法。 董昕还补充到,“本质上我们用的是图像识别的深度学习算法,我们把这套算法迁移到了对二进制文件的识别上,我们把二进制文件用我们的专利技术变成图像,再靠深度学习图像识别算法对它进行特征的判断和最终的识别。而深度学习是分层的,所以我们基本上是把100多层的开头几层和结尾几层全部做了优化,这样才能够让这套算法识别二进制文件。这也是我们的一项专利技术。” 积跬步以至千里 能够率先将机器学习与大数据分析应用到安全领域,绝不是一朝之功。其实,瀚思很早就意识到大数据安全分析将成为未来一切信息安全的技术基石。据悉,瀚思成立于2014年,目前拥有100多名员工,70%为研发人员,短短几年中,瀚思一直保持着500%的年收入增长,在北京、南京、深圳、成都均设立有分公司及办公室,业务范围已覆盖全国多个行业领域。 在技术方面,瀚思拥有专利的、全球领先的大数据安全分析技术壁垒,团队获18项美国专利,同时也是国内最早将深度学习、大数据分析等技术应用于安全领域的企业之一。核心团队曾击败FireEye。 而瀚思借助上亿条的安全情报,以及数据积累有力保障了其最新安全平台对未知威胁的识别率。高瀚昭指出,“基于深度学习的引擎其实有很多,就像下棋一样,有的可以战胜人类,就像AlphaGo,而有的却战胜不了人类,原因就是在于其算法本身的先进性,瀚思基于深度学习的恶意文件识别引擎,之所以可以达到类似沙箱的识别率,主要还是得益于对海量安全情报的不断学习,以不断完善本身算法。在未来完全可能替代传统的沙箱技术,而目前这项技术已经在金融领域逐渐得到应用。” 此外,在人才储备方面,瀚思的主创团队是由前趋势科技(全球三大安全公司之一,反病毒、云安全领域全球第一)、微软、甲骨文资深主管所组成,拥有组建和管理全球数百名研发、销售、运营团队人员的经验。 最后,高瀚昭表示,“瀚思的核心理念是要成为企业安全的‘智能安全分析’大脑。未来将以数据驱动安全为契机,在安全智能与分析(下一代安全中心)、内部威胁、反欺诈等主要方向持续演进。” 原文发布时间为:2017年7月26日 本文作者:李超 本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册