自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 资源 (3)
  • 收藏
  • 关注

原创 《软硬件融合:超大规模云计算架构创新之路》之四:算法加速、任务卸载、异构计算

本节通过介绍算法加速和任务卸载的概念,以及算法加速与任务卸载、异构计算之间的区别,使读者,在理解硬件加速的原理之上,建立对硬件加速实现形态等方面的理解。下一节会举出具体的例子。1.算法加速概念算法加速通过将系统里比较消耗CPU资源的算法放在硬件中去处理,压缩算法的执行时间,并且实现CPU和加速器的并行,来实现整体的性能加速。算法加速是硬件加速的初级形态,我们把一个特定的算法实现到硬件,通过软件显式的控制加速器运行。软件控制加速器运行的一般流程如下:(1)加速器初始化,完成加速器运行所需的相关配置

2021-05-23 12:58:19 1132

原创 《软硬件融合:超大规模云计算架构创新之路》之三:IO设备虚拟化--从软件模拟到SR-IOV

IO虚拟化是计算机虚拟化最复杂的部分,因为涉及到CPU、操作系统、Hypervisor以及IO设备的相互配合。IO虚拟化也经历了从软件模拟虚拟化、类虚拟化向完全硬件虚拟化的转变。1.IO软件模拟虚拟化和类虚拟化IO设备虚拟化场景,既要关注IO设备模拟,也要关注vCPU和虚拟IO设备的交互,许多条件交织在一起,使得整个问题变的非常复杂。IO虚拟化性能代价主要体现在三个方面:驱动访问设备寄存器的代价;设备通过中断和DMA访问驱动的代价;设备模拟本身的代价。因此,IO虚拟化性能优化主要是通过五个角度:

2021-05-19 10:21:25 334

原创 《软硬件融合:超大规模云计算架构创新之路》之二:CPU虚拟化--从软件模拟到完全硬件

CPU虚拟化是计算机虚拟化的核心,CPU虚拟化有很多种方式,概括的分为三类:软件虚拟化、类虚拟化以及完全硬件虚拟化,依次性能越来越好。1.CPU的软件虚拟化操作系统设计的目标就是直接在裸机硬件上运行,因此自然会假定自己完全“拥有”所有的计算机硬件。x86架构为操作系统和应用程序提供了四个级别的特权,分别称为Ring 0/1/2/3,以此管理对计算机硬件资源的访问。 图 3.28 CPU虚拟化如图 3.28(a)所示,无虚拟化的场景。用户级应用程序通常在Ring 3中运行,操作...

2021-05-18 10:31:08 340

原创 《软硬件融合:超大规模云计算架构创新之路》之一:软硬件平台的协作(以CPU+GPU为例)

一般来说,除了CPU,其他平台通常都不是图灵完备的,需要和CPU一起协作来完成工作任务的处理。在本书中,我们约定如下:如果一个任务由CPU执行,我们称之为软件执行; 如果一个任务(或任务的一部分)由协处理器、GPU、FPGA或ASIC执行,我们可以统称之为硬件“加速”执行; 如果一个任务,至少分为两个部分,一部分在CPU的软件执行,另一部分在协处理器、GPU、FPGA或ASIC硬件执行,并且这两者之间需要相互通信和协作,那我们可以称此任务是软硬件协作来完成。 以基于CPU+GPU的异构...

2021-05-17 11:54:25 676 2

原创 《区块链DAPP开发入门、代码实现、场景应用》笔记5——区块链福利彩票的设计

笔者一直强调,一定要利用区块链的特点来解决行业存在的问题,并且该问题最好用区块链解决或者说只能用区块链解决。彩票行业就是个例子。在讲解代码之前,首先讲解一下业务设计,如图6.15所示。图6.15 区块链彩票业务流程 限于篇幅和业务复杂度,该系统并没有按照现有的福彩逻辑来设计,而是本着讲明白实现原理的目的,简化了系统的设计,读者可以根据自己的需求来设计符合自己需求的系统。首...

2019-10-28 12:13:04 853

原创 《区块链DAPP开发入门、代码实现、场景应用》笔记4——Ethereum Wallet中部署合约

账号创建完成之后,账号余额是0,但是部署合约是需要消耗GAS的,因此需要获取一定的以太币才能够继续本次实现。在测试网中获取以太币可以通过挖矿的方式,在开发菜单中可以选择打开挖矿模式,但是这需要将Syn Mode模式修改为Full,这意味着需要将测试网的全部区块数据同步下来才可以进行挖矿,这些数据非常大且同步缓慢,因此建议采用第2种方案:到以太坊基金会申请以太币,读者可以自行搜索“获取测试网...

2019-10-27 11:35:43 435

原创 《区块链DAPP开发入门、代码实现、场景应用》笔记2——Solidity实现简单的智能合约

本节仅以一个简单的智能合约示例,介绍智能合约的基本组成元素,本合约定义一个uint类型的变量,以及对应这个变量的读写函数。01 pragma solidity >=0.4.0 <0.6.0; 0203 contract SimpleStorage {...

2019-10-24 11:23:30 578

原创 《区块链DAPP开发入门、代码实现、场景应用》笔记1——天外飞仙DAPP

图1.15展示了一个DAPP的全景图,该系统架构图包含了从用户通过可视化界面发起操作到以太坊状态机发生改变的全流程。首先用户通过Web界面或者手机APP,将操作数据发送到一个传统的业务服务器,该业务服务器是传统互联网中心化的服务器,但是与传统系统不同的是,该系统没有像传统互联网设计那样将数据放入中心化的数据库存储,而是通过一个Web 3.0接口,将数据传送到了以太坊区公链。 ...

2019-10-23 11:20:54 1404

转载 【转载】区块链应用加速到来 “群雄逐鹿赛”看点在哪?

9月26日,2019杭州云栖大会的第二天,蚂蚁金服副总裁蒋国飞在区块链分论坛上指出,区块链将构建信任机制的基础设施,未来,上链量将成衡量数字经济水平的重要指标。于此同时,他还预测一年内,将出现一批千万日活的区块链应用。  同时,我国工业和信息化部信息中心也曾发布相关研究报告—《2018中国区块链产业白皮书》。该报告表明,目前我国目前已经具备较好的区块链产业发展基础,我国拥有广泛的区块链技术应...

2019-09-29 11:59:14 89

原创 区块链会2020再次爆发,先学点DAPP压压惊,跟我一起学《区块链DApp入门实战》

区块链DApp正在经历市场洗礼,常言道,对抗动荡最稳妥的是稳扎稳打的技术学习,不能临时抱佛脚。马化腾说:互联网会像水和电一样融入我们的生活。而区块链呢?它是价值互联网的基石,是未来必然的趋势,也会像水和电一样!1、为什么要学习DAPP?快速进入区块链应用技术开发,为迎接DAPP时代做好入场准备,创造有价值的应用。2、本书的价值?从底层代码到上层应用场景和业务介绍,全面阐述智能合...

2019-09-29 11:55:01 155

原创 微信小程序项目开发实战:用WePY、mpvue、Taro打造高效的小程序》(笔记4)支持React.js语法的Taro框架

Taro的编写代码方式和mpvue、WePY框架最大的一个差别就是,Taro并不是基于Vue.js的语法规范,而是遵循React语法规范,它采用与React一致的组件化思想,组件生命周期与React保持一致,同时支持JSX语法,让代码具有更丰富的表现力,使用Taro进行开发可以获得和React一致的开发体验。采用Taro开发小程序具有以下的优秀特效:支持使用npm/yarn安装管理第三方依...

2019-07-09 09:57:08 1120

原创 《微信小程序项目开发实战:用WePY、mpvue、Taro打造高效的小程序》(笔记3)支持Vue.js语法的mpvue框架

在安装本框架的基础必须安装合适的Node.js和可以运行的npm包,安装过程本书前面已经提到过,不再赘述。(1)保证npm和Node.js的可用性后,使用如下代码安装Vue.js环境。# 全局安装 vue-cli# 如果是Linux或者Unix等一般是要 sudo 权限的npm install --global [email protected]在Windows中使用CMD安装环境,安装...

2019-07-06 10:29:41 662

原创 《微信小程序项目开发实战:用WePY、mpvue、Taro打造高效的小程序》(笔记2)WePY版HelloWorld

本节将介绍如何使用WePY创建一个最简单的项目,也就是之前已经创建过的HelloWorld。1.6.1 创建HelloWorld项目首先需要在使用的代码编辑器中新建一个项目,之后使用CMD命令行工具或者是终端shell等使用“cd 文件目录”的命令进入到该项目目录下。执行:wepy init standard HelloWorld,执行成功后会对该项目进行一些初始化配置,这里选择的配置...

2019-07-04 09:30:42 1188

原创 《微信小程序项目开发实战:用WePY、mpvue、Taro打造高效的小程序》(笔记1)WePY开发环境的安装

WePY的安装或更新都通过npm进行,全局安装或更新WePY命令行工具,使用以下命令:npm install wepy-cli -g稍等片刻,成功安装后,即可创建WePY项目。注意:如果npm安装时间过长或者是连接超时而导致的失败,则可以使用国内的镜像源,这里推荐一个稳定的源,来自淘宝。网站地址为http://npm.taobao.org/,可以使用淘宝定制的cnpm(gzip压缩支...

2019-07-01 15:23:03 769

原创 《从机器学习到深度学习》笔记(5)集成学习之随机森林

集成学习模型与其他有监督模型的出发点大相径庭,之前的模型都是在给定的训练集上通过构建越来越强大的算法进行数据拟合。而集成学习着重于在训练集上做文章:将训练集划分为各种子集或权重变换后用较弱的基模型拟合,然后综合若干个基模型的预测作为最终整体结果。在Scikit-Learn中实现了两种类型的集成学习算法,一种是Bagging methods,另一种是Boosting methods。随机森林(R...

2019-05-13 10:53:07 1185

原创 《从机器学习到深度学习》笔记(4)划分数据集

任何机器学习算法都是基于对已有数据集或环境的信息挖掘,要求将从现有数据学习得到的模型能够适配于未来的新数据。1. 训练集(Training set)与测试集(Test set)很自然的,在评估模型能力的时候需要采用与模型训练时不同的数据集,因此在训练模型之前需要将已有数据集划分成如图1-13的两部分。图1-13 训练集与测试集顾名思义,图中的训练集用于在训练模型时使用,测试集用...

2019-05-09 09:37:53 486

原创 《从机器学习到深度学习》笔记(3)强化学习

强化学习是对英文Reinforced Learning的中文翻译,它的另一个中文名称是“增强学习”。相对于有监督学习和无监督学习,强化学习是一个相对独特的分支;前两者偏向于对数据的静态分析,后者倾向于在动态环境中寻找合理的行为决策。强化学习的行为主体是一个在某种环境中独立运行的Agent(可以理解为“机器人”), 其可以通过训练获得在该环境中的最佳行为模式。强化学习被看成是最接近人工智能的...

2019-05-05 17:21:24 340

原创 《从机器学习到深度学习》笔记(2)无监督学习

有监督学习用于解决分类问题的前提是必须有一个带标签数据的样本集,但获得数据标签的代价往往是非常昂贵的。同时,这些标签通常都是人工标注,标注错误的情况也时有发生。这样就促使了无监督学习策略的发展,简单的说它就是:对无标签数据进行推理的机器学习方法。1. 场景由于无监督学习的前提是不需要前期的人类判断,所以它一般是作为某项学习任务的前置步骤,用于规约数据;在无监督学习之后,需要加入人类知识...

2019-04-22 13:57:20 670

原创 《从机器学习到深度学习》笔记(1)有监督学习

有监督学习(Supervised Learning)是指这样的一种场景:有一组数量较多的历史样本集,其中每个样本有一组特征(features)和一个或几个标示其自身的类型或数值的标签(label);对历史样本学习得到模型后,可以用新样本的特征预测其对应的标签。1. 场景在有监督学习中可以将每条数据看成是一条由特征到标签的映射,训练的目的是找出映射的规律。根据标签的类型可以将有监督学习再...

2019-04-18 10:44:22 1644

原创 Koa与Node.js开发实战(3)——Nunjucks模板在Koa中的应用(视频演示)

技术架构: 在Koa中应用Nunjucks,需要先把Nunjucks集成为符合Koa规格的中间件(Middleware),从本质上来讲,集成后的中间件的作用是给上下文对象绑定一个render(view, model)方法,这样,后面的Controller就可以调用这个方法来渲染模板了。NPM社区有很多开源爱好者提供的第三方中间件。开发者可以根据实际情况自由选择,也可以像iKcamp...

2019-01-14 20:07:28 1027

原创 Koa与Node.js开发实战(2)——使用Koa中间件获取响应时间(视频演示)

技术架构:在实战项目中,经常需要记录下服务器的响应时间,也就是从服务器接收到HTTP请求,到最终返回给客户端之间所耗时长。在Koa应用中,利用中间件机制可以很方便的实现这一功能。代码如下所示:01     const koa = require('koa');02     const app = new koa();03     app.use(async (ctx, nex...

2019-01-08 20:43:25 1423

原创 Koa与Node.js开发实战(1)——Koa安装搭建(视频演示)

技术架构:由于Koa2已经支持ES6及更高版本,包括支持async方法,所以请读者保证Node.js版本在7.6.0以上。如果需要在低于7.6的版本中应用Koa的async方法,建议使用Babel hook。示例代码如下:require('babel-register');// 应用的其余 require 需要被放到hook后面const app = require('./a...

2018-12-26 21:28:23 1495

原创 《11招玩转网络安全》之第五招:DVWA命令注入

首先还是将DVWA的安全级别设置为Low,然后单击DVWA页面左侧的Command Injection按钮。图5-1  Low级别的命令注入这个就是最典型的命令注入接口。在文本框中输入一个IP地址,然后返回ping命令的结果,单击页面右下角的View Source按钮,查看页面的源码,如图5-2所示。图5-2  Low级别命令注入源码从图中可以看出,服务器对输入的参数没有做...

2018-07-26 22:26:42 432

原创 《11招玩转网络安全》之第四招:low级别的DVWA SQL注入

以DVWA为例,进行手工注入,帮助读者了解注入原理和过程。1、启动docker,并在终端中执行命令:docker ps -adocker start LocalDVWAdocker ps执行结果如图4-19所示。图4-19  启动DVWA2、在浏览器地址栏输入127.0.0.1后回车,浏览器打开了DVWA页面(DVWA在前面的章节中已建立完毕)。先点击左侧栏的DVW...

2018-07-17 14:03:23 551

原创 一张图11招学会Python网络黑客

全部学起来:第一招:搭建Python防范环境第二招:扫描漏洞第三招:暴力破解的秘密第四招:防SQL注入第五招:防命令注入第六招:看清文件上传木马第七招:看清Web攻击第八招:利用Python监测漏洞第九招:潜伏与Python反向连接第十招:无线破解第十一招:内网攻击...

2018-07-11 22:24:29 1417

原创 《11招玩转网络安全》之第三招:Web暴力破解-Low级别

Docker中启动LocalDVWA容器,准备DVWA环境。在浏览器地址栏输入http://127.0.0.1,中打开DVWA靶机。自动跳转到了http://127.0.0.1/login.php登录页面。输入默认的用户名密码admin:password登录。单击页面左侧的DVWA Security,进行安全级别设置,如图3-18所示。图3-18  DVWA安全级别DVWA的安全级别有4种,分别为...

2018-07-09 21:48:29 1182

原创 《11招玩转网络安全》之第二招:漏洞扫描

1、Nexpose默认的端口是3780,所以用浏览器打开https://localhost:3780打开Nexpose的客户端,单击左上角的主页按钮,打开Nexpose客户端的主页。单击左下角的“创建站点”按钮,开始创建扫描任务,如图2-30所示。图2-30  Nexpose客户端2、单击“信息和安全”菜单,在一般选项中填入任务名称,这里建立的任务名称是Widnows2000,如图2-31所示。图...

2018-07-05 23:38:43 852

原创 《11招玩转网络安全》之第一招:Docker For Docker

  玩转黑客那些工具,缺少了虚拟机怎么行,除了用虚拟机虚拟整个系统,Docker也不能缺少,读者只需要知道,Docker只虚拟Linux系统中的某个程序就可以了。本节就来介绍Linux下安装设置Docker。  很幸运,Docker已经加入到了Debian的官方源中了。可以使用apt-get安装Docker。首先,使用163的镜像替代默认的官方镜像(基于Docker使用加速器的同样理由),163镜...

2018-07-03 22:28:49 1321

原创 《移动Web前端高效开发实战》笔记4--打造单页应用SPA

单页应用英文全称Single Page Application,简称SPA,近几年成为一个颇有热度的话题,越来越多的网站使用这种模式进行网页开发,事实上单页这个概念大概在2003年就已经被提出。

2017-10-11 21:11:21 1067

原创 《移动Web前端高效开发实战》笔记3--代码检查任务

在项目的开发过程中,统一的代码风格对于项目的可协作性以及可维护性来说相当重要,因此可以采用一些插件来进行代码风格的检查。

2017-09-29 21:38:53 312

原创 《移动Web前端高效开发实战》笔记2——使用Gulp构建一个ECMAScript 6和Sass应用

使用Grunt构建项目涉及磁盘操作,构建效率较低,因此,基于流的Gulp应运而生。本节通过一个例子,介绍如何利用Gulp构建一个ECMAScript 6和Sass应用。

2017-09-27 23:34:43 294

原创 《移动Web前端高效开发实战》笔记1——静态布局在移动端上的自适应

静态布局在移动端上的自适应,看这里。

2017-09-26 22:17:05 865

原创 一张图掌握移动Web前端所有技术(大前端、工程化、预编译、自动化)

一套代码,三端生产:移动Web、iOS、Android知识体系,无缝衔接:框架、工具、方法

2017-09-18 22:47:36 759

原创 微信小程序开发入门首选

微信小程序通过极低的开发成本,大量简化了相关的开发操作和应用信息获取,并结合HTML 5和微信本身的API,几乎能开发出类似APP的大多数功能!

2017-07-13 21:49:37 340

原创 微信公众平台网页开发实战--3.利用JSSDK在网页中获取地理位置

在移动互联网时代,所有的操作都碎片化、移动化了,因此用户的需求更是不易把握。在一些数据测量分析工具中、在一些位置应用中(足迹、跑步类等),地理位置有着不可动摇的地位。

2017-06-19 21:02:01 3836 1

原创 微信公众平台网页开发实战--2.从手机相册中选照片然后分享

微信的图像有3种JSSDK的API,可以做一些简单的需求,本节讲解一个让用户在手机中选择照片然后分享的项目。

2017-06-15 22:11:57 2944

原创 微信公众平台网页开发实战--1.微信分享一个网页到朋友圈

微信JS-SDK接口+H5的混合开发模式,将引爆微信公众平台的开发商业模式,让更多的人和更多的小而美企业,搭建属于自己的小而美平台,零成本、零难度、还跨平台,大众创业万众创新不在是空谈!

2017-06-14 21:06:44 2963 1

原创 《Python高效开发实战》实战演练——内置Web服务器4

查看网站效果首先需要通过manage.py启动Web服务器

2017-01-11 23:52:23 702

原创 《Python高效开发实战》实战演练——基本视图3

在完成Django项目和应用的建立后,即可以开始编写网站应用代码,这里通过为注册页面显示一个欢迎标题,来演示Django的路由映射功能。

2016-12-13 23:01:13 1437 1

原创 《Python高效开发实战》实战演练——建立应用2

为了在项目中开发符合MVC架构的实际应用程序,需要在项目中建立Django应用。每个Django项目可以包含多个Django应用。

2016-11-28 00:23:55 1450

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除