好死不如赖活着—— Jay Kreps, 关于Kafka与 Jepsen的若干笔记 (2013) [TOC] 正如第8章所讨论的,分布式系统中的许多事情可能会出错。处理这种故障的最简单方法是简单地让整个服务失效,并向用户显示错误消息。如果无法接受这个解决方案,我们就需要找到容错的方法—— 即使某些内部组件出现故障,服务也能正常运行。 在本章中,我们将讨论构建容错分布式系统的算法和协议的一些
29.2 按照字母顺序排列的 Perl 函数. 29.2.136 s/// s/// 替换操作符。参阅第五章里的“模式匹配操作符”。 29.2.137. scalar scalar EXPR 这个伪函数可以用于 LIST 里,当在列表环境中计算会生成一个不同的结果的时候,强迫 EXPR 在 标量环境中计算。比如: my ($nextvar) = scalar ; 避免 在做赋值之前从标准
29.2 按照字母顺序排列的 Perl 函数 29.2.103. oct oct EXPR oct 这个函数把 EXPR 当作一个八进制字串并且返回相等的十进制值。如果 EXPR 碰巧以“0x”开头, 那么它就会被当作一个十六进制字串看待。如果 EXPR 以“0b”开头,那么它就解释成一个 二进制数的字串。下面的代码将把任何以标准的 C 或 C++ 符号写的十进制,二进制,八进制, 和十六进制输入
29.2 按照字母顺序排列的 Perl 函数 29.2.30 each each HASH 这个以一次一个键字/数值对的方式遍历一个散列。如果在列表环境里调用它,each 返回一个两个 元素的列表,该列表包含散列中下一个元素的键字和数值,这样你就可以逐一遍历它们。如果在 标量环境里调用,each 只是返回散列中下一个元素的键字。如果散列已经全部读取完了,那么 返回一个空列表,如果你给这个空列表赋值
为了便于参考,本章以字母顺序(注:有时候,紧密联系的函数在系统手册页里组合在一起, 因此我们在这里也将尊重那些分组。比如,要寻找 endpwent 的描述,你得先找 getpwent。) 描述内建的 Perl 函数。每个函数描述以一个该函数语法的简短概要开头。象 THIS 这样的参数 名字代表实际表达式的占位符,而跟在语法概要后面的文本将描述提供(或者省略)该实际参数的 语意。 你可以把函数和文本
本章是帮你在用 Perl 开火之前先将它的方向校准。校准 Perl 的方法很多,但两个 最基本的方法是通过命令行开关和通过环境变量。开关是校准某一特定命令的最快速 和准确的方法。而环境变量常用于设置通用的策略。 19.1 命令行处理 很幸运的是 Perl 是在 Unix 世界里成长起来的,因为那就意味着它的调用语法在 其他操作系统的命令行解释器里也能运行得相当好。大多数命令行解释器知道如何把 一列
查看(只读)文件内容或其它linux命令执行结果 实例:查看命令历史使用记录并通过less分页显示,命令:history | less 重新执行历史命令 Linux会把我们执行过的命令记录起来,预设可以记录1000条历史记录,这些记录保存在用户家目录的.bash_history文件中。 一般来说,我们可以通过按动方向键上下来选择过往执行过的命令,但如果太久远的命令要找就太繁琐了,此时我们便可以充分
D3 支持制作动态的图表。有时候,图表的变化需要缓慢的发生,以便于让用户看清楚变化的过程,也能给用户不小的友好感。 什么是动态效果 前面几章制作的图表是一蹴而就地出现,然后绘制完成后不再发生变化的,这是静态的图表。 动态的图表,是指图表在某一时间段会发生某种变化,可能是形状、颜色、位置等,而且用户是可以看到变化的过程的。 例如,有一个圆,圆心为 (100, 100)。现在我们希望圆的 x 坐标从
最近更新日期:20// 系统管理员的重要工作就是得要修改与设置某些重要软件的配置文件,因此至少得要学会一种以上的命令行的文书编辑器。 在所有的 Linux distributions 上头都会有的一套文书编辑器就是 vi ,而且很多软件默认也是使用 vi 做为他们编辑的接口, 因此鸟哥建议您务必要学会使用 vi 这个正规的文书编辑器。此外,vim 是进阶版的 vi , vim 不但可以用不同颜色显
虽然大多数和Django模板语言的交互都是模板作者的工作,但你可能想定制和扩展模板引擎,让它做一些它不能做的事情,或者是以其他方式让你的工作更轻松。 本章深入探讨Django的模板系统。 如果你想扩展模板系统或者只是对它的工作原理感觉到好奇,本章涉及了你需要了解的东西。 它也包含一个自动转意特征,如果你继续使用django,随着时间的推移你一定会注意这个安全考虑。 如果你想把Django的模版系统
简介 贝叶斯网络又称信度网络,是Bayes方法的扩展,是目前不确定知识表达和推理领域最有效的理论模型之一。从1988年由Pearl提出后,已经成为近几年来研究的热点.。一个贝叶斯网络是一个有向无环图(Directed Acyclic Graph,DAG),由代表变量节点及连接这些节点有向边构成。节点代表随机变量,节点间的有向边代表了节点间的互相关系(由父节点指向其子节点),用条件概率进行表达关系强
我们迄今为止看到的模型可能具有“基于规则”的特征,因为它们涉及受简单规则支配的系统。 在本章和以后的章节中,我们将探索基于智能体(agent)的模型。 基于智能体的模型包含智能体,它旨在模拟人和其他实体,它们收集世界的信息,制定决策并采取行动。 智能体通常位于空间或网络中,并在本地彼此交互。 他们通常有不完整的,不全面的世界信息。 智能体之间经常存在差异,而不像以前的所有模型,它们的所有成分都相同
这一课中我们将介绍一种检测对象边缘的方式,为了方便介绍,我们这里所提到的 3D 对象的轮廓都是当从任意方向上照射到物体上的光线创建出来的。当光源发生移动时,物体的轮廓也会随之变化。这与在 2D 图片中检测图片中物体的边界完全不同(图片中的边缘检测与光源的位置无关)。虽然说这一课的主要目的是介绍边缘检测的,但是对于我来说这一课另一个重要目的是作为 模板阴影体 技术的第一个步骤,模板阴影体技术主要用于
这一讲介绍Visual C++的用户模块的概念,并介绍静态库、动态连接库、扩展类库的设计与使用。 用户模块 静态连接库 创建动态库 小结
我在写这本书时的一个目标,就是尽量少教些Python。如果有两种实现方法,我会挑其中之一讲解,避免再提另一种方法。有时候可能会将第二种方法放在练习题里。 现在我想回过头来讲一些之前没有涉及的内容。Python提供的特性中,有一些其实并不是必须的——没有它们你也能写出好的代码——但是有了它们之后,有时候你能写出更简洁、可读性更高或者效率更高的代码,有时候甚至三个好处都有。 条件表达式 在有条件的执行