如果你到这里来是为了找一个 Perl 的编译器,你可能很奇怪地发现你已经有一个了 ——你的perl 程序(通常是 /usr/bin/perl)已经包含一个 Perl 编译器。这个 东西可能不是你想要的,如果不是你想象的东西,你可能会很开心地得知我们还提供 代码生成器(也就是那些要求意义严格的人所谓的“编译器”),我们将在本章讨论 那些东西。但是首先我们想讲讲我们眼中的编译器是什么。本章不可避免地要
import pandas as pd 8.1 解析 Unix 时间戳 在 pandas 中处理 Unix 时间戳不是很容易 - 我花了相当长的时间来解决这个问题。 我们在这里使用的文件是一个软件包流行度文件,我在我的系统上的/var/log/popularity-contest找到的。 这里解释了这个文件是什么。 # Read it, and remove the last row popcon
到目前为止,为了简单起见,在我们的例子中都是使用单一的Tornado进程运行的。这使得测试应用和快速变更非常简单,但是这不是一个合适的部署策略。部署一个应用到生产环境面临着新的挑战,既包括最优化性能,也包括管理独立进程。本章将介绍强化你的Tornado应用、增加请求吞吐量的策略,以及使得部署Tornado服务器更容易的工具。 8.1 运行多个Tornado实例的原因 在大多数情况下,组合一个网页不
并发程序指同时进行多个任务的程序,随着硬件的发展,并发程序变得越来越重要。Web服务器会一次处理成千上万的请求。平板电脑和手机app在渲染用户画面同时还会后台执行各种计算任务和网络请求。即使是传统的批处理问题--读取数据,计算,写输出--现在也会用并发来隐藏掉I/O的操作延迟以充分利用现代计算机设备的多个核心。计算机的性能每年都在以非线性的速度增长。 Go语言中的并发程序可以用两种手段来实现。本章
函数是这样一段代码,它只定义一次,但可能被执行或调用任意次。你可能从诸如子例程(subroutine)或者过程(procedure)这些名字里对函数概念有所了解。 javascript函数是参数化的:函数定义会包括一个形参(parmeter)标识符列表。这些参数在函数中像局部变量一样工作。函数会调用会给形参提供实参的值。函数使用它们实参的值计算返回值,成为该函数的调用表达式的值。 除了实参之外,么
十八、HTTP 和表单 通信在实质上必须是无状态的,从客户端到服务器的每个请求都必须包含理解请求所需的所有信息,并且不能利用服务器上存储的任何上下文。 Roy Fielding,《Architectural Styles and the Design of Network-based Software Architectures》 我们曾在第 13 章中提到过超文本传输协议(HTTP),万维网中通
强化学习(RL)如今是机器学习的一大令人激动的领域,也是最老的领域之一。自从 1950 年被发明出来后,它被用于一些有趣的应用,尤其是在游戏(例如 TD-Gammon,一个西洋双陆棋程序)和机器控制领域,但是从未弄出什么大新闻。直到 2013 年一个革命性的发展:来自英国的研究者发起了 Deepmind 项目,这个项目可以学习去玩任何从头开始的 Atari 游戏,在多数游戏中,比人类玩的还好,它仅
在当前的许多系统上,CPU包含多个核心,也就是说它可以同时运行多个进程。而且,每个核心都具有“多任务”的能力,也就是说它可以从一个进程快速切换到另一个进程,创造出同时运行许多进程的幻象。 操作系统中,实现多任务的这部分叫做“内核”。在坚果或者种子中,内核是最内层的部分,由外壳所包围。在操作系统各种,内核是软件的最底层,由一些其它层包围,包括称为“Shell”的界面。计算机科学家喜欢引喻。 究其本质
在前一章中,我们看到了一个具有临界点的系统的例子,并且我们探索了临界系统 - 分形几何的一个共同特性。 在本章中,我们将探讨临界系统的另外两个性质:重尾分布,我们在第五章中见过,和粉红噪声,我将在本章中解释。 这些性质是部分有趣的,因为它们在自然界中经常出现;也就是说,许多自然系统会产生分形几何,重尾分布和粉红噪声。 这个观察提出了一个自然的问题:为什么许多自然系统具有临界系统的特性?一个可能的答
目前,我们构建了一个基本的 Web 爬虫;我们下一步将是索引。在网页搜索的上下文中,索引是一种数据结构,可以查找检索词并找到该词出现的页面。此外,我们想知道每个页面上显示检索词的次数,这将有助于确定与该词最相关的页面。 例如,如果用户提交检索词“Java”和“编程”,我们将查找两个检索词并获得两组页面。带有“Java”的页面将包括 Java 岛屿,咖啡昵称以及编程语言的网页。具有“编程”一词的页面
前面我们讲到了 cmake 常用的变量,相信“cmake 即编程”的感觉会越来越明显,无论如何,我们仍然可以看到 cmake 比 autotools 要简单很多。接下来我们就要集中的看一看 cmake 所提供的常用指令。在前面的章节我们已经讨论了很多指令的用法,如 PROJECT,ADD_EXECUTABLE,INSTALL,ADD_SUBDIRECTORY,SUBDIRS,INCLUDE_DIR
我们已经一起进行到这次讨论旅程的最后一个部分了。希望我们一起完成了对你有用的东西,包括了通过PHP的一些例子来介绍设计模式的概念和更有用的成果,比如测试驱动开发这样的更好的开发技术。 设计模式是你的便成工具包里面一个很有用的工具,用来处理一个复杂的设计问题。设计模式提供固定的,证明是正确的技术来帮助你使你的设计更灵活。使用设计模式还让你可以轻松地与其他的工程师进行轻松地沟通,因为设计模式的名字现在
概念 jMonkeyEngine3是一个基于场景图的3D游戏引擎,因此有必要对场景图的概念进行一些说明。jME3的场景图通过Spatial、Geometry、Node这3个类来实现,它们之间的关系如下图: 场景图(Scene Graph)是一种数据结构,用于管理游戏场景中的物体,场景中的每个物体都被称为Spatial。 Spatial表示3D空间中的一个物体,它在空间中有三种线性变换:位移(Tra
在本书写作的时候,ES6(ECMAScript 2015)的最终草案即将为了ECMA的批准而进行最终的官方投票。但即便是在ES6已经被最终定稿的时候,TC39协会已经在为了ES7/2016和将来的特性进行努力的工作。 正如我们在第一章中讨论过的,预计JS进化的节奏将会从好几年升级一次加速到每年进行一次官方的版本升级(因此采用编年命名法)。这将会彻底改变JS开发者学习与跟上这门语言脚步的方式。 但更
最常与面向对象编程联系在一起的语言特性就是 继承 。继承指的是在现有类的基础下进行修改,从而定义新类的能力。在本章中,我会用表示卡牌(playing cards)、一副牌(deck of hands)和牌型(poker hands)的类,来展示继承这一特性。 如果你不玩扑克牌,你可以阅读 http://en.wikipedia.org/wiki/Poker 了解一下,但这不是必须的;我会告诉你完成