聚合文章列表
25 浏览

百度Apollo架构师首次线上分享:数据开放与训练平台实战

看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料!2013年,百度自动驾驶起步。2015年开始大规模投入无人车技术研发,当年12月即在北京进行了高速公路和城市道路的全自动驾驶测试。2016年9月获得美国加州自动驾驶路测牌照,并持续不断地开展自动驾驶路测。11月在浙江乌镇开展普通开放道路的无人车试运营,数百名参加乌镇世界互联网大会的嘉宾和记者试乘了百度无人车。2017年7月5日,百度AI开发者大会在北京国家会议中心隆重召开。百度在大会上正式公布开放Apollo1.0自动驾驶技术能力,同时宣布Apollo自动驾驶生态正式成立。百度表示该计划向汽车行业及自动驾驶领域的合作伙伴提供了一个开放、完整、安全的软件平台,帮助他们结合车辆和硬件系统,快速搭建一套属于自己的完整自动驾驶系统。百度董事会副主席、百度集团总裁兼首席运营官陆奇表露了Apollo开放平台的雄心:“Apollo要做汽车产业界的安卓系统,并且比安卓更开放、更强大,Apollo对于整个汽车工业的贡献将是巨大的”。9月

软件架构 2018-01-09 发布
21 浏览

阿里云 MVP技术直播——缪政辉教你如何搭建万能LNMP环境

摘要:阿里云MVP缪政辉开直播咯!快把这个好消息告诉你身边热爱技术,喜欢云计算的同学!缪政辉是谁?网名妙正灰,真名和网名读法一致。阿里云第三季新晋MVP,电商在读大学生。云计算领域罕见的文科生,喜欢云计算是因为新时代的电商需要云计算来驱动呀!据说他的愿景是让云计算的入门门槛更低和让电商变得触手可及,侧面来讲也就是说要让电商专业变得越来越难学哈哈!来一睹主播风采:​缪政辉的直播讲什么?这次直播缪政辉将分享如何在ECS或者轻量应用服务器上使用,Ubuntu搭建一个高性能、便捷、自由的LNMP环境。阿里云MVP缪政辉开直播咯!快把这个好消息告诉你身边热爱技术,喜欢云计算的同学!缪政辉是谁?网名妙正灰,真名和网名读法一致。阿里云第三季新晋MVP,电商在读大学生。云计算领域罕见的文科生,喜欢云计算是因为新时代的电商需要云计算来驱动呀!据说他的愿景是让云计算的入门门槛更低和让电商变得触手可及,侧面来讲也就是说要让电商专业变得越来越难学哈哈!来一睹主播风采:​缪政辉的直播讲什么?这次直播缪政辉将分享如何在ECS或者轻量应用服务

软件架构 2018-01-09 发布
20 浏览

都在说微服务,那么微服务的反模式和陷阱是什么(一)

网上看到一本关于微服务反模式的电子书,看后感觉内容非常棒,于是我决定分阶段翻译成中文书,翻译的目的也是想帮助想深入了解微服务的朋友,由于英文水平有限,如有翻译不对之处希望多留言指正。书籍英文目录如下书籍中文目录如下:1、数据驱动的迁移反模式1.1、太多的数据迁移1.2、功能分割优先,数据迁移最后2、超时反模式2.1、使用超时2.2、使用断路器模式3、共享反模式3.1、过多依赖3.2、共享代码的技术4.到达报告反模式4.1、微服务报告的问题4.2、AsynchronousEventPushing5、沙粒陷阱5.1、分析服务的范围和功能5.2、分析数据库事务5.3、分析服务编排6、无因的开发者陷阱7、随大流陷阱8、其它架构模式9、静态契约陷阱10、通信协议使用的陷阱11、REST陷阱一、数据驱动的迁移反模式微服务会创建大量小的、分布式的、单一用途的服务,每个服务拥有自己的数据。这种服务和数据耦合支持一个有界的上下文和一个无共享数据的架构,其中,每个服务及其对应的数据是独立一块,完全独立于所有其他服务。服务只暴露了一个明确的接口(服务契

软件架构 2018-01-09 发布
AD 友情赞助
29 浏览

MySQL对Like搜索结果按照匹配程度排序

MySQL对Like搜索结果按照匹配程度排序解决问题January092018MySql最近项目上遇到一个需求,在原来项目的管理后台上,有一个通过用户昵称进行模糊搜索的功能,但是用户反映说有时候搜索关键字的结果比较多的话,准确匹配的结果没有排在前面。检查了一下后端的代码,发现like的语句是LIKE%keyword%,然后排序的就是按照默认的方式,结果如下:可以发现确实完整匹配“阳光”关键字的结果是分散的,找了一下解决方案,结果在stackoverflow找到这样的一个答案:MySQLorderby“bestmatch”,里面提出了几个解决方案,经过测试,在其中一个的基础上做了一些修改,得到比较好的结果。更新后的SQL如下:SELECTnicknameFROMcustomerWHEREnicknameLIKE'%阳光%'ORDERBYCASEWHENnicknameLIKE'阳光'THEN0WHENnicknameLIKE'阳光%'THEN1WH

MySQL 2018-01-09 发布
27 浏览

how to use LOAD_FILE in mysql

最近需要往mysql里存一点小图片,想用mysql的LOAD_FILE来将文件写进去,但总是返回NULL,几经周折发现LOAD_FILE对权限要求比较严格。参照官网(遇事不决问官网啊)。LOAD_FILE(file_name)Readsthefileandreturnsthefilecontentsasastring.Tousethisfunction,thefilemustbelocatedontheserverhost,youmustspecifythefullpathnametothefile,andyoumusthavetheFILEprivilege.Thefilemustbereadablebyallanditssizelessthanmax_allowed_packetbytes.Ifthesecure_file_privsystemvariableissettoa

MySQL 2018-01-09 发布
23 浏览

云数据库SQL Server 2008 R2版推出OSS版本数据上云

摘要:日前,阿里云数据库SQLServer2008R2版开放了新的数据上云功能,用户只需把本地数据库的备份文件上传到阿里云的对象存储OSS上面,然后就可以通过RDS控制台一键将数据全量迁移至RDS的指定数据库中,操作十分便捷,让数据上云更加简单。日前,阿里云数据库SQLServer2008R2版开放了新的数据上云功能,用户只需把本地数据库的备份文件上传到阿里云的对象存储OSS上面,然后就可以通过RDS控制台一键将数据全量迁移至RDS的指定数据库中,操作十分便捷,让数据上云更加简单。阿里云表示,用户只需要将数据库全量备份文件(FULLBackup)上传RDS同地域的OSS上,然后就可以利用该功能实现将数据恢复到RDS实例中,操作简单方便效率极高,100%兼容原生同类型数据库,没有任何限制。而且,上传数据支持所有的OSS上传文件方法,天然利用OSS的高效性能。据了解,在使用该项新功能的时候,使用数据上云操作时,RDS不会额外收取费用。阿里云当备份文件存储在OSS上时,需要额外支付OSS的存储费用。将备份文件从OSS上面迁移至

SQL Server 2018-01-09 发布
AD 友情赞助
24 浏览

年终盘点:2017年JavaScript框架发展现状

众所周知,npm在JavaScript社区的功用之一就是帮助大家发掘在npm注册的、满足需求的库和框架。Npm强大的搜索功能可以帮助用户通过相关的软件包、内置文档以及使用情况的统计信息来进行选择。同时在选择过程中还有一个重要标准,那就是是否有足够能力的社区来维持和积极维护这个项目。软件包的普及程度是库和框架选择的重要考虑因素,因为包含大型社区的软件包同时也意味着会有更多的人来帮助你解决遇到的问题,同时修复错误的可能性也更大。而且,如果你是管理者,那么使用流行的软件包也更容易找到熟悉软件的开发者。软件包一旦融入到软件中,那么生命周期就会特别长,因为一旦安装,何绍有人会把软件包从软件中剥离出来。这种低流失率,随着npm用户总数的增加,npm注册中心的所有软件包都在不断增加,只是成长的速度有所不同。所以,我们没有采用普遍的绝对下载增长来进行判断,而是采用了相对下载增长。在查看一个包的下载数时,这个数字代表的是这个包下载数占npm注册中心所有包下载数的比例。完整的注册表npm注册表中所有软件包下载的总和表明,npm生态系统正在经历爆炸式的

JavaScript 2018-01-09 发布
23 浏览

谈一谈对Thinkjs3进行业务逻辑测试的方法

引言在软件开发的过程中,测试对于检验项目的可靠性非常重要。测试的方案有很多,比如手动测试,使用mocha,ava等框架的自动化测试。测试的重点也有不同,有侧重业务逻辑正确性的,有侧重性能的。在Thinkjs3框架下,虽然文档没提,但是官方提供了一种针对model进行的单元测试实践,具体方案在官方Github项目的issue#841中。这种方法需要先在model中写好测试函数,然后通过think.model实例化对象并调用测试函数完成测试。而对于controller层体现的业务逻辑,该方法并不适用。本文介绍一种方法,可以通过在mocha测试框架下模拟http请求的方式去测试业务逻辑,并可以用于travis这样的持续集成中进行自动化测试。方法首先在项目根目录下创建testing.js的测试环境文件,内容基本复制production.js:constApplication=require('thinkjs');constpath=require('path');constinstance=newApplication(

JavaScript 2018-01-09 发布
20 浏览

精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解!

该项目来自于Github用户Chalarangelo,目前已在Github上获得了5000多Star,精心收集了多达48个有用的JavaScript代码片段,该用户的代码可以让程序员在30秒甚至更少的时间内理解这些经常用到的基础算法,来看看这些JavaScript代码都传达出了什么吧!Anagramsofstring(带有重复项)使用递归。对于给定字符串中的每个字母,为字母创建字谜。使用map()将字母与每部分字谜组合,然后使用reduce()将所有字谜组合到一个数组中,最基本情况是字符串长度等于2或1。constanagrams=str=>{if(str.length<=2)returnstr.length===2?[str,str[1]+str[0]]:[str];returnstr.split('').reduce((acc,letter,i)=>acc.concat(anagrams(str.slice(0,i)+str.sl

JavaScript 2018-01-09 发布
AD 友情赞助
23 浏览

对浏览器端javaScript运行机制的理解

浏览器端javaScript运行机制的理解线程同步异步Event-Loop线程Javascript语言的执行环境是"单线程"(singlethread)。所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。而Javascript运行在浏览器上,然而浏览器内核是多线程的,它包含以下几个线程:GUI渲染线程JavaScript引擎线程定时触发器线程事件触发线程异步http请求线程我们平时使用到最多的就是GUI渲染线程,JavaScript引擎线程,异步http请求线程。同步异步浏览器端能够异步主要还是因为Event-Loop这个默默的在幕后执行。1.同步同步,也就是JavaScript在执行的时候是按照顺序执行,前一个任务执行完毕之后才会执行下一个任务。因此当遇到比较耗时的任务时,就是使得后边的任务长时间的等待,例如当浏览器端执行一段耗时js代码,就会使得浏览器假死。因此对于这种情况就需要将耗时的任务异步执行,不阻塞其他非耗时任务的执行。2.异步异步,简单说

JavaScript 2018-01-09 发布
28 浏览

谷歌工程师点赞中国程序员 实现Node.js启动超4倍提速

近日,一位谷歌工程师Yang,Guo在其个人推特上连发多条推文,多次称赞阿里巴巴一位程序员的对开源技术Node.js的提速优化。从图中可以看出,他发贴表示“阿里巴巴的工作人员实现了Node.js引擎启动速度的2倍速优化”。随后他再次推文,表示这位程序员将优化效果做到了近4倍的提升,完全符合他的预期。这位Yang,Guo工程师是GoogleChrome浏览器团队的华人工程师,同时也是ChromeV8开源JavaScript引擎的主要贡献者之一。“Node.js”是基于ChromeV8创建的JavaScript运行环境,运行于Node.js之上的数十万计的开源代码包已构成目前全球最大的开源生态系统。目前,Yang,Guo已经把这项阿里巴巴程序员的贡献以署名合作方式提交给谷歌官方。之后阿里方面还会将这部分代码开源给Node.js社区,基于Node.js引擎的服务器平台都会受益。另外,有消息称,早在半年前AliOS就在独立研发该项技术,并在最近落地到AliOSLite中,通过V8Snapshot加速Node

JavaScript 2018-01-09 发布
26 浏览

angular第三方包开发整理

近日笔者维护自己的几个无名小repo时,发觉想要创作一个第三方angular包,着实有一些不难但易乱的小问题,故作此文总结。本文将完成以下内容:从空白开始搭建一个基于angular的第三方包在本地测试待发布的包在npm或yarn发布包中指定内容在普通angular应用中引入并使用发布的包基本项目搭建一般的angularapp使用angular-cli创建,直接ngnewname搞定,生成的项目把webpack、AOT、devserver等细节都隐藏了,还支持各种参数来配置测试和sass等,使用起来直接npmrunstart、npmrunbuild,可以说是非常傻瓜了,跳过了学习webpack等的许多大坑。不过,如果是要搭建angular第三方包,预编译样式和打包部署这些一般就用不着了,取而代之的要熟悉npm(yarn)、tsconfig。初始化项目搭建命令如下:mkdirmy-ng-libcdmy-ng-libyarninit一路回车(实际情况中还是要编辑好包的基本信息)最终得到一个package.json,然后

JavaScript 2018-01-09 发布
AD 友情赞助
29 浏览

用webpack构建的多页应用项目模板(架构)

项目结构此项目的使用方法:#以下命令均可在package.json和deploy.sh中进行配置#开发环境下运行npmrundev#使用Eslint进行代码检测npmrunlint#打包构建npmrunbuild#服务器环境下预览npmrunserve#以下命令不需要运行npmrunbuild,此脚本会自动帮你运行#自动打包部署到测试环境sudosh./deploy.shbuilddev#自动打包部署到生产环境sudosh./deploy.shbuildprod#如果服务器中没有对应的目录,你可以运行下面的代码在部署时自动在服务器上生成一个目录sudosh./deploy.shbuildprod(ordev)newDir首先你需要使用npm来下载一些依赖,这对于经常使用npm的同学来说并不陌生,具体的一些依赖在package.json文件里:{"name":"webpack-template","version":"1.0.0","description":"webpacktemp

JavaScript 2017-11-24 发布
25 浏览

Django - 如何处理前端的ajax form submit 请求?通过json返回处理结果,不要重定向(redirect)

问题背景在web应用开发中,经常遇到需要诸如用户注册提交个人信息,或者录入商品信息的需求。在浏览器上一般以一个Form表单来包含用户所有需要输入的控件。那么浏览器需要在用户输入完所有信息之后,将表单里面的相关数据传送给后台,完成数据的录入。Formsubmit在火狐的开发者教程中,对Formsubmit有很好的说明和解释mozilla'ssendingandretrievingformdata。在文中有提到,form表单中的action定义了表单数据将会被发往什么地方。说到这里,就不得不提一下Post/Redirect/Get。PRG都被上升到了防止表单重复提交数据的一种Web设计模式。说的是应用在比如像在电商提交订单这种场景下,总不能让客户重复提交订单吧。字面意思是,后端在收到用户提交的表单数据,并在正确处理之后,应该让前端重定向到另外一个URL。就笔者看来,虽然并不能完全理解,但总之对于什么设计模式,什么最佳实践,还是应该心存敬畏,能遵从的就遵从。Ajaxsubmit对于使用ajax来提交form表

JavaScript 1900-01-01 发布
21 浏览

如果你想开发一个应用(1-17)

数据模型mvvm是数据驱动的,数据模型占了举足轻重的地位,所以,在做首页最终要的todo列表组件的时候,先暂时在客户端使用数据模型进行开发。而既然已经想到了这些数据需要通过交互从服务端获取,所以这个模型直接放入vuex中,数据模型的代码上一章已经分析过,所以这里直接复制过来:indexTodos:[{month:0,//月份default:1,//正在显示的月份todos:[{createTime:newDate(),//记录时间item:'',//标题content:'',//内容weather:0,//天气mood:0,//心情bookmark:0,//标记groupid:0,//所属组}]}]这里使用了两个数组,即月份组,每个月是一个项,而月份内呢,记事也是一个数组,每个记事项就是一个项。引

JavaScript 2020-06-20 发布
24 浏览

你真的会在async/await中捕获异常吗?

原文链接:CatchingwithoutAwaiting当执行一项需要等待一段时间才能返回的任务时,如果使用async/await,就显得比较麻烦了。如果async方法还没有得到返回值,我们就捕获不到其中的异常。在我的上一篇文章LearntoThrowAgain中写到,当使用async/await时,如何同时捕获到回调函数和throw抛出的错误。在这篇文章中,我们将讨论如何在“后台”中执行异步操作并捕获异常(这里使用双引号,因为在单线程平台上没有真正的后台操作)从回调函数的模式开始,思考下列代码:functionemail(user,message,callback){if(!user){//抛出异常thrownewError('Invliduser');}if(!user.address){//回调函数,可能抛出异常returncallback();}//异步的returnmailer.send(user.address,message,

JavaScript 2018-01-09 发布
26 浏览

神奇的 Canvas

最近在浏览掘金网站的时候看到掘金小册中有一个很有(便)意(宜)思的册子:如何使用Canvas制作出炫酷的网页背景特效,便想到给我的博客添加一个炫酷的背景。顺便学习一下canvas这个元素的使用。效果最终效果就在博客上就能看到啦。下面来说一下实现方式。实现建议对canvas还不了解的同学去掘金小册上学习学习,我这里不再讲解。我的博客是用Hexo搭建的,使用了Archer主题,博客的最上层样式作者定义在layout.ejs文件里。......

...既然是在canvas里面画炫酷的背景,那就需要在这里添加一个canvas元素,并且和div:class="wrapper"一样大。改造layout.ejs文件,用一个div将div:class="wrapper"和我们的canvas包裹起来:...
HTML5 2018-01-09 发布
30 浏览

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

在微信6.6.1版本中,给用户推送了“玩一个小游戏才是正经事”的首屏小游戏入口,一时间整个朋友圈都在跳一跳。相信很多游戏开发者心痒难耐,想一探究竟。今天就由我和王哲从技术角度给大家科普一下微信小游戏的开发知识,这一系列文章源自我们CocosCreator引擎团队和微信团队合作过程的总结,目前,CocosCreatorv1.8编辑器已第一时间支持一键发布微信小游戏版本。今天这篇文章是介绍微信小游戏开发系列文章的第一篇。一、小游戏生态特点目前微信小游戏已发布17款首发游戏,包括六款棋牌类游戏,以及欢乐消消消、爱消除、坦克大战、保卫萝卜等休闲游戏。从入口方面来说,微信小游戏目前的主要入口有下面几个:群或好友分享识别小游戏二维码微信聊天列表页面下拉后出现最近玩过的小游戏发现–小程序发现–游戏–我的小游戏从技术角度来说,微信小游戏是微信小程序的基础上添加了游戏库API。小游戏只能运行在小程序环境中,所以小游戏既不是原生游戏,也不完全等同于HTML5游戏。但实际上小游戏面向的就是HTML5游戏

HTML5 2018-01-09 发布
27 浏览

Asp.Net MVC 身份验证-Forms

Asp.NetMVC身份验证-Forms在MVC中对于需要登录才可以访问的页面,只需要在对应的Controller或Action上添加特性[Authorize]就可以限制非登录用户访问该页面。那么如果实现登录?Form登录应用程序确认用户状态HTTP协议是无状态的。所以上一次请求和下一次请求并不能相互关联起来,就是说这些请求并不能确定是哪个用户和用户的状态。但是对于登录来说,我们就需要准确的知道用户的状态及是哪个用户。通常有两种情况来记录用户状态。一种在服务端通过Session来标识。一种通过Cookie在客户端标识用户。(用户每次请求应用程序时都会携带该Cookie。)Form登录实现Forms身份验证将身份验证标记保留在Cookie或页的URL中。Forms身份验证通过FormsAuthenticationModule类参与到ASP.NET页面的生命周期中。可以通过FormsAuthentication类访问Forms身份验证信息和功能。步骤一在Web.Config配置文件中指定验证的方

.Net 2018-01-09 发布
34 浏览

LiveCharts文档-前言

LiveCharts文档-前言最近做一个企业应用,客户端使用的是WPF,需要生成一个漂亮的统计图表,以前WinForm有Chart控件,但是微软貌似没有弄WPF的Chart控件,所以就开始找新的图表控件。先找到的自然是WPFToolkit,这个是一个免费和付费结合的,不幸的是Chart正好在付费里,价格一看接受不了,就放弃了。还有其他的很多比如Visifire也都是要收费的,其他的那些著名的控件商都是要收费的,自然都放弃了。都打算自己不怕麻烦写个简单的图表控件自己来用了,无聊当中在github中搜索,发现了LiveCharts,然后在博客园搜索有没有人写过教程,结果没有关于如何使用的搜索结果,我打算好好研究一下这个图表组件,并把英文的使用文档翻译出来,一个是记录学习过程,另外一个就是给其他需要的人提供一个信息来源。项目网站LiveCharts项目网站GitHub源码LiveChartsGitHub源码

.Net 2018-01-09 发布
AD 友情赞助