本书是 Perl 文化的一部分,所以我们可不敢指望把我们所知道的所有与 Perl 文化有关的东西 都放在这里。我们只能用一点点历史和一点点艺术(有些人会说“极少艺术”)调起你的胃口。 更多 Perl 文化相关的东西,请访问 www.perl.org 和 www.perl.com。(Larry 把他自己 所有(正式)的疯话都放在了 www.wall.org/~larry。)或者你也可以从其他 Per
目录 第一章 - 介绍 第二章 – MQTT控制报文格式 第三章 – MQTT控制报文 第四章 – 操作行为 第五章 – 安全 第六章 – 使用WebSocket 第七章 – 一致性目标 附录B - 强制性规范声明 MQTT规范定义了MQTT客户端实现和MQTT服务端实现的一致性要求 MQTT实现可以同时是MQTT客户端和MQTT服务端。接受入站连接和建立到其它服务端的出站连接的服务端必须同时符合
很多时候,我们想要绘制文件中的数据。 有许多类型的文件,以及许多方法,你可以使用它们从文件中提取数据来图形化。 在这里,我们将展示几种方法。 首先,我们将使用内置的csv模块加载CSV文件,然后我们将展示如何使用 NumPy(第三方模块)加载文件。 import matplotlib.pyplot as plt import csv x = [] y = [] with open('example
不要害怕,Go的指针是好指针。 定义 所谓指针其实你可以把它想像成一个箭头,这个箭头指向(存储)一个变量的地址。 因为这个箭头本身也需要变量来存储,所以也叫做指针变量。 Go的指针不支持那些乱七八糟的指针移位。它就表示一个变量的地址。看看这个例子: package main import ( "fmt" ) func main() { var x int var x_ptr
第七章 - 性能与工具 最后一章,我们将介绍一些性能相关的话题,以及MongoDB开发者可以使用的工具。我们不会过深地涉及这些话题,但当中重要的部分都会有所介绍。 索引 最开始的时候我们介绍了特殊的system.indexes集合,它含有数据库中所有索引的信息。MongoDB中的索引和关系数据库很像:都有助于改进查询和排序的性能。索引是通过ensureIndex创建的: // "name"是域的名
jQuery凭借选择器风靡全球,各大框架类库都争先开发自己的选择,一时间内选择器变为框架的标配 早期的JQuery选择器和我们现在看到的远不一样。最初它使用混杂的xpath语法的selector。 第二代转换为纯css的自定义伪类,(比如从xpath借鉴过来的位置伪类)的sizzle,但sizzle也一直在变,因为他的选择器一直存在问题,一直到JQuery1.9才搞定,并最终全面支持css3的结构
十七、在画布上绘图 绘图就是欺骗。 M.C. Escher,由 Bruno Ernst 在《The Magic Mirror of M.C. Escher》中引用 浏览器为我们提供了多种绘图方式。最简单的方式是用样式来规定普通 DOM 对象的位置和颜色。就像在上一章中那个游戏展示的,我们可以使用这种方式实现很多功能。我们可以为节点添加半透明的背景图片,来获得我们希望的节点外观。我们也可以使用tra
这一讲介绍文档/视结构的基本概念,并结合一个简单的文本编辑器的例子说明文档视结构的内部运行机制和使用。 文档/视图概念 文档视结构程序实例 让文档视结构程序支持卷滚 定制串行化 不使用串行化的文档视结构程序 小 结
导语 TCP即TransmissionControl Protocol,传输控制协议。与UDP不同,它是面向连接和数据流的可靠传输协议。也就是说,它能使一台计算机上的数据无差错的发往网络上的其他计算机,所以当要传输大量数据时,我们选用TCP协议。 TCP协议的程序使用的是客户端/服务器(C/S)模式,在Qt中提供了QTcpSocket类来编写客户端程序,使用QTcpServer类编写服务器端程序。
结构类型定义和结构变量说明 在实际问题中,一组数据往往具有不同的数据类型。例如, 在学生登记表中,姓名应为字符型;学号可为整型或字符型; 年龄应为整型;性别应为字符型;成绩可为整型或实型。 显然不能用一个数组来存放这一组数据。 因为数组中各元素的类型和长度都必须一致,以便于编译系统处理。为了解决这个问题,C语言中给出了另一种构造数据类型——“结构”。 它相当于其它高级语言中的记录。 “结构”是一种
第七章 验证与授权 很多Web应用被其糟糕的身份验证与授权机制所困扰。本章主要讨论相关这些机制的漏洞,传授一些帮助你不犯通病的方法。我将通过一些例子进一步说明这些方法,但请注意不要把这些示例与其上下文割裂开来看,理解其中包含的原则和方法是很重要的。只有到那个时候你才能对它们进行正确运用。 通过验证我们可以确定一个用户的身份。典型的做法是简单地使用用户名和密码进行检查。这样我们就能确定登录用户是一个
本章我们将会学习如何在3D游戏中制作户外场景,包括天空、海洋、地形等。 天空 3D游戏中的天空有很多实现方法,总的来说,皆是障眼法。最简单的手法不过是改变画面的背景色,让玩家“感觉”到天色的变化。 如果在玩家头顶上放置一个平面,再把云朵、太阳、星星、月亮等图片“贴”上去,就可以混合成类似下面的效果。 这种技术称为**“天空面(SkyPlane)”**。 显然,这种方法是很容易露馅的。当玩家的视野足
虽然我们已经在使用部分 Python 面向对象的特性,前两个章节中的程序并不是真正面向对象的, 因为它们没有呈现出程序员自定义类型与对其进行操作的函数(functions)之间的关系。 下一步,我们将会把这些函数转换成明显突出这一关系的方法(methods)。 本章代码可以从http://thinkpython2.com/code/Time2.py 获取, 练习题的答案位于http://think
在本章里,我们将使用 Lisp 来自己实现面向对象语言。这样子的程序称为嵌入式语言 (embedded language)。嵌入一个面向对象语言到 Lisp 里是一个绝佳的例子。同時作为一个 Lisp 的典型用途,並演示了面向对象的抽象是如何多自然地在 Lisp 基本的抽象上构建出来。 17.1 继承 (Inheritance) 11.10 小节解释过通用函数与消息传递的差别。 在消息传递模型里,
Common Lisp 有着威力强大的 I/O 工具。针对输入以及一些普遍读取字符的函数,我们有 read ,包含了一个完整的解析器 (parser)。针对输出以及一些普遍写出字符的函数,我们有 format ,它自己几乎就是一个语言。本章介绍了所有基本的概念。 Common Lisp 有两种流 (streams),字符流与二进制流。本章描述了字符流的操作;二进制流的操作涵盖在 14.2 节。 7