- 玩转webpack(一)下篇:webpack的基本架 11-13
- 腾讯云11·11:千亿订单背后的安全“暗战” 11-13
- 格斗类帧同步游戏的优化 11-13
- 学习笔记TF064:TensorFlow Kuber 11-13
- 学习笔记TF065: TensorFlowOnSpa 11-13
- 学习笔记TF063:TensorFlow Debug 11-13
- 学习笔记TF062:TensorFlow线性代数编译 11-13
- 信息熵在游戏直播封面筛选上的应用 11-13
- 我用爬虫爬取了“腾讯云技术社区“所有的文章,看看我得 11-13
- 现代 Vim 插件介绍 11-13
玩转webpack(一)下篇:webpack的基本架构和构建流程
发布者: superzhang | 发布时间:2017-11-13
接玩转webpack(一)上篇:webpack的基本架构和构建流程
文件生成阶段这个阶段的主要内容,是根据 chunks 生成最终文件。主要有三个步骤:模板 hash 更新,模板渲染 chunk,生成文件
Compilation 在实例化的时候,就会同时实例化三个对象:MainTemplate, ChunkTemplate,ModuleTemplate。这三个对象是用来渲染 chunk 对象,得到最终代码的模板。第一个对应了在 entry 配置的入口 chunk 的渲染模板,第二个是动态引入的非入口 chunk 的渲染模板,最后是 chunk 中的 module 的渲染模板。
在开始渲染之前,Compilation 实例会调用 createHash 方法来生成这次构建的 hash。在 webpack 的配置中,我们可以在 output.filename 中配置 [hash] 占位符,最终就会替换成这个 hash。同样,createHash 也会为每一个 chunk 也创建一个 hash,对应 output.filename 的 [chunkhash] 占位符。
每个 hash 的
腾讯云11·11:千亿订单背后的安全“暗战”
发布者: superzhang | 发布时间:2017-11-13
作者:戴唯伟
前言每年的电商大促,就像是一次次的系统检阅仪式,接受着来自用户、同行以及老板的审视。而在一次次订单量记录刷新,成交额飙出新高的同时,平台架构也在面临巨大的挑战,如页面打不开、服务不可用、优惠券被薅、网络被攻击、支付延迟等都有可能发生。那么针对这些问题,腾讯云是如何助力其电商客户解决?本文将从海量并发、安全性、用户体验几个方面,深入讲解腾讯云电商平台最佳实践方案。
海量并发弹性扩容回顾近年来的电商大促,最具特色的便是抢购、秒杀活动了,而这也使得 Web 访问量可能瞬间陡增十倍甚至是数十倍,对接入层、逻辑层的按需、实时、快速平行扩展能力提出了较高的要求,如选用传统的硬件设备搭建集群,会遇到成本高昂,运维繁琐等问题。对于这些问题,可以采用负载均衡配合云监控、弹性伸缩(Auto Scaling)、消息队列、分布式缓存、分布式数据库等服务来解决。
负载均衡服务:CLB 单集群的最大并发连接数超过 1.2 亿,可处理峰值 40Gbps 的流量,每秒处理包量为 600 万,负载均衡服务曾在历年的春节微信“抢红包”历练; 弹性伸缩可以根据需求和策略,比如 CPU 利用率达到阀值,就自动扩容指定数量的云服务器,也可根据定时、周期或监控策略,相应地增加或减少 CVM 实例,并完成配置,保证业务平稳健康运行。对
格斗类帧同步游戏的优化
发布者: superzhang | 发布时间:2017-11-13
由于现在4g手机网络越来越普及,绝大多数用户的时延都可以在150ms以内,所以一些快节奏的帧同步网络游戏开始大行其道,现在最火的帧同步游戏无疑是某农药了。帧同步技术除了可以用来做MOBA类游戏,同样可以用来做需要大量快速操作的格斗类游戏,本文就是尝试提出一些解决帧同步方案下格斗游戏的优化措施。(本文中涉及一些使用Unity引擎的术语,但大多数其他游戏引擎也有类似的概念,所以并不仅仅是针对使用Unity的游戏)
概念我们一般认为,LockStep游戏由于网络延迟,画面的反应会比直接本地渲染要慢很多,所以我们希望画面能对玩家的输入有即刻的反应。但也希望对其他用户的交互是一致的。
所以有一些游戏采用所谓“预渲染”策略:
一、逻辑与渲染分别驱动:所谓渲染模块,就是用来给本地客户端表现的画面,使用本地渲染驱动,也就是Unity的Update()事件;所谓逻辑模块,就用来运行所有的攻击判定(角色位置、攻击与受击区域)的变化,使用服务器发来的网络包进行驱动,也就是通过同步服务器得到包后再运行。
二、纠正渲染误差:由于本地客户
学习笔记TF064:TensorFlow Kubernetes
发布者: superzhang | 发布时间:2017-11-13
AlphaGo,每个实验1000个节点,每个节点4个GPU,4000 GPU。Siri,每个实验2个节点,8个GPU。AI研究,依赖海量数据计算,离性能计算资源。更大集群运行模型,把周级训练时间缩短到天级小时级。Kubernetes,应用最广泛容器集群管理工具,分布式TensorFlow监控、调度生命周期管理。容器集群自动化部署、扩容、运维开源平台,提供任务调度、监控、失败重启。TensorFlow、Kubernetes都是谷歌公司开源。https://kubernetes.io/ 。谷歌云平台化解决方案。https://cloud.google.com/ 。
分布式TensorFlow在Kubernetes运行。
部署、运行。安装Kubernetes。Minikube创建本地Kubernetes集群。Mac 先安装VirtualBox虚拟机。https://www.virtualbox.org/ 。Minikube Go语言编写,发布形式独立二进制文件,下载入到对应目录。命令:
curl学习笔记TF065: TensorFlowOnSpark
发布者: superzhang | 发布时间:2017-11-13
Hadoop生态大数据系统分为Yam、 HDFS、MapReduce计算框架。TensorFlow分布式相当于MapReduce计算框架,Kubernetes相当于Yam调度系统。TensorFlowOnSpark,利用远程直接内存访问(Remote Direct Memory Access,RDMA)解决存储功能和调度,实现深度学习和大数据融合。TensorFlowOnSpark(TFoS),雅虎开源项目。https://github.com/yahoo/TensorFlowOnSpark 。支持ApacheSpark集群分布式TensorFlow训练、预测。TensorFlowOnSpark提供桥接程序,每个Spark Executor启动一个对应TensorFlow进程,通过远程进程通信(RPC)交互。
TensorFlowOnSpark架构。TensorFlow训练程序用Spark集群运行,管理Spark集群步骤:预留,在Executor执行每个TensorFlow进程保留一个端口,启动数据消息监听器。启动,在Executor启动TensorFlow主函数。数据获取,TensorFlow Readers和QueueRunne
学习笔记TF063:TensorFlow Debugger
发布者: superzhang | 发布时间:2017-11-13
TensorFlow Debugger(tfdbg),TensorFlow专用调试器。用断点、计算机图形化展现实时数据流,可视化运行TensorFlow图形内部结构、状态。有助训练推理调试模型错误。https://www.tensorflow.org/programmers_guide/debugger 。
常见错误类型,非数字(nan)、无限值(inf)。tfdbg命令行界面(command line interface,CLI)。
Debugger示例。错误运行MNIST训练,通过TensorFlow Debugger找到出错地方,改正。https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/debug/examples/debug_mnist.py 。
先直接执行。<
学习笔记TF062:TensorFlow线性代数编译框架XLA
发布者: superzhang | 发布时间:2017-11-13
XLA(Accelerated Linear Algebra),线性代数领域专用编译器(demain-specific compiler),优化TensorFlow计算。即时(just-in-time,JIT)编译或提前(ahead-of-time,AOT)编译实现XLA,有助于硬件加速。XLA还在试验阶段。https://www.tensorflow.org/versions/master/experimental/xla/ 。
XLA优势。线性代数领域专用编译器,优化TensorFlow计算的执行速度(编译子图减少生命周期较短操作执行时间,融合管道化操作减少内存占用)、内存使用(分析、规划内存使用需求,消除许多中间结果缓存)、自定义操作依赖(提高自动化融合底层操作low-level op性能,达到手动融合自定义操作custom op效果)、移动端内存占用(提前AOT编译子图减少TensorFlow执行时间,共享头文件对被其他程序直接链接)、可移植性方面(为新硬件开发新后端,TensorFlow不需要更改很多代码用在新硬件设备上)。
XLA工作原理。LLVM编译器框架系统,C++编
信息熵在游戏直播封面筛选上的应用
发布者: superzhang | 发布时间:2017-11-13
导语: 日常生活中,我们经常会听到这样的语句:1、你说了等于没说,2、你说的信息量很大啊,我需要消化一下。很明显,这两个语句对信息量的大小做了度量,一个是你说的话信息量很小,一个是信息量很大。那么问题来了,我们该如何衡量一句话甚至是一张图片所带来的信息量的大小呢?
信息熵是什么先看两个场景。
场景一:早餐时间,你在万利达二楼餐厅找座位时巧遇同事小李,坐下之后,小李一脸兴奋地跟你说:嘿,你知道吗?刘德华是男人。想必只有黑人问号能代表你此刻的心情!你心想:我去,这有什么好说的,我华仔必然是个男的啊!
场景二:午餐时间,为了不再遇到小李,你特地选择去腾大饭堂吃饭,很巧,你遇到了老同学小强,你们一起排队打饭,突然小强对你说:刘德华抛妻弃女,在记者招待会上宣布出柜了!此时你的第一反应应该是:不会吧,怎么可能!卧槽震惊!
两个场景相比,场景二中小强说的信息量明显比场景一中小李说的大,所以这里引出一个小结论:信息量的大小与事件的不确定性有关,如果一件事情必然发生,那么它的信息量就很小;如果一件事不可能发生而又发生了,带给人一种出乎意料的感觉,那么它的信息量就很大。
信息熵的定义是:如果一个事件发生的概率是腾讯云技术社区来开刀, 哈, 经典皮卡丘开头
这次我通过利用Python爬虫加上一个"不完美"的分词系统构建了,腾讯云技术社区所有文章的词云,来看看总体大概都写了什么嘻嘻嘻:)
正文编程思路
获取所有文章的地址 对单文章页进行内容提取 将所有文章进行内容提取,并将结果存入MongoDB数据库中 利用分词系统和wordcloud进行词云的构建注:存储所有文章地址前,我加了一个随机数,后期随机抽取文章进行提取防止因日期不同导致结果具有局部性
获取文章列表页,所有的文章信息保存格式为:
index 随机数索引 title 文章名 address 文章地址 content 文章内容 def get_one_page_all(self,现代 Vim 插件介绍
发布者: super | 发布时间:2017-11-13
Vim出现已经二十多年了。作为一个一直处在鄙视链顶端的编辑器,你可能很难想象它为什么这么难用,即便是历尽千辛万苦学会了 hjkl 这些快捷键。至于网上的文章大多还停留在vim 7 时代,vim 8 的发布加入了以“异步”为首的众多好用新功能,而玩法自然也需要做相应的调整。
无论是靠着高三的记忆力强行记住了快捷键的初学者,还是玩了好几年 vim 但很少重量使用的进阶玩家,还是因为受到其他编辑器的诱惑而叛变 vim 的用户,都可以尝试着加上这些插件。试着开始全新的 vim 生活。
包管理器
Vim的包管理最近终于有了官方标准,之前基本上是社区自由发挥。而目前来看还是社区的实现更加简单易用。目前用得多的应该是 Vundle 了,不过它有一个问题:慢。假如你有30个插件,那么它是第一个安装完再安装第二个。一个韩国人写的vim-plug(https://github.com/junegunn/vim-plug)就解决了这个问题:并行处理,shadowclone,而且启动的时候可以按需加载插件,最主要的的是很容易用,只要执行一个命令就可以了,不像 vundle 那
