分类 分享 下的文章

 title=

随着开源驱动的硬件越来越成为主流,比如 ArduinoRaspberry Pi,这些开源硬件的成本不断下降,给那些全新且具有创新性的物联网STEM(LCTT译注:STEM 代表 科学 Science 技术 Technology 工程 Engineering 数学 Mathematics )类软件打开了大门。我对两者都比较感兴趣,始终保持关注,以便能找到一些可以应用到教育产业的创新点,比如课堂教育和我女儿的机器人小组。当听说 Orange Pi 比 Raspberry Pi 更优秀时,我便开始关注 Orange Pi了。

尽管 Orange Pi 是个略带酸味儿的名字,但是我仍然被 Orange Pi Zero 迷住了。我最近刚购买了一个 Orange Pi Zero 并将在本文中分享我的第一体验。真情提示:我是真的着迷了。

为什么是 Orange Pi?

Orange Pi 是由 Linux 驱动的单板计算机家族的一员,由深圳迅龙软件有限公司生产并在 全球速卖通 AliExpress 上售卖。在 全球速卖通 AliExpress 上买东西需要有耐心,提前计划预留出 2 到 4 周的运输时间,因为这些产品都是从中国大陆直接发往全世界其它地方的。

与 Raspberry Pi 不同,Raspberry Pi 家族型号比较少,不过在逐步增加,为单板计算机家族添加了几个具有不同价位及功能特色的型号,但是相对而言 Orange Pi 的型号更丰富。好消息是可以在巨大的软件库中选择你需要的东西,但是坏消息就是选择范围实在太大了。以我的经验来看,使用 Orange Pi Zero 的 512 MB 版本足矣,因为该版本很好的平衡了功能与价格,适合中学及学术环境使用。

可以到 Orange Pi Zero 网站 ,查看高清图及所有规格。

很明确的问题是,我希望这种设备的价格越便宜越好,但是要能做到开箱即用,并且能够直接联网以便 SSH 及物联网应用能正常使用。Orange Pi Zero 拥有板载的10/100 M 以太网及 802.11 b/g/n Wi-Fi 模块可以连接网络以满足需求。它还有 26 个与 Raspberry Pi 兼容的 GPIO 端口,用于连接物联网应用传感器。我使用的是 512 MB 版本的 Orange Pi Zero 而不是 256MB 版本,因为内存大带来的好处很多,并且这两个版本只相差了 2 美元。除此之外,运费还需要 $12.30,这笔花费对于那些鼓励积极实验及创造魔法烟雾的课堂特别划算。(LCTT 译注:“创造魔法烟雾”是幽默的说法,意即因未知原因设备停止工作,原多用于电气工程师和技术员,最近常被程序员们采用)。

与 $5 的 Raspberry Pi Zero 相比,Orange Pi Zero 只贵了几元钱,但是这个开箱后更容易上手使用,因为它拥有板载的 Internet 连接模块及 4 核 CPU,而不是单核。这个板载网口使得 Orange Pi Zero 比 Raspberry Pi Zero 更容易使用,因为 Raspberry Pi Zero 还需要一个 Micro-USB 转 USB 的转换器及一个 USB Wi-Fi 才能连上网。当赠送别人一个物联网设备作为礼物时,你当然希望对方能够尽快且容易的使用该产品,而不是送一个不完整的产品,那么这个礼物就只能躺在阁楼吃灰了。

开箱经验

起初对于 Orange Pi,我比较担心的问题是供应商及社区支持没有 Raspberry Pi 基金会和 Raspberry Pi 社区的好,用户不得不自己花费额外的精力把设备跑起来。如果这样的话,我是不会推荐 Orange Pi 作为课堂使用及礼物赠送的。然而好消息是 Orange Pi Zero 工作得非常好,且比 Raspberry 更容易跑起来。

订购两周后,Orange Pi 终于邮寄到家了。我拆开后在几分钟内就把设备运行起来了。其实这大部分时间都是在下载操作系统。Orange Pi 能够运行多种操作系统,从Android 到 Debian 系列都可以。我使用了 Orange Pi 粉丝推崇的 Armbian。由于 Armbian 支持多种基于 ARM 的单板计算机,你需要选择适合 Orange Pi Zero 的 Armbian 版本。按照 Armbian 用户指南开始部分操作即可以很容易做一个 microSD 镜像,然后插入 microSD 卡并接上网线,将我在 Raspberry Pi 中用的 3A Micro-USB 电源适配器插上供电,最后 SSH 登录上去即可使用了。

 title=

SSH 登录进 Orange Pi Zero

通过以太网 SSH 连上后,我可以使用 nmtui-connect 轻松连上我的无线接入点。然后执行 apt-get update && apt-get upgrade 命令,这个命令执行速度比 Raspberry Pi Zero 快,基本接近 Raspberry Pi 3 的表现了,其他人也观察到类似的结果。虽然 Orange Pi Zero 执行速度可能比不过Raspberry Pi 3,但是我也没有打算用它来计算基因排序或者挖比特币矿。Armbian 会自动调整 root 分区来使用整个 microSD 卡空间,而使用 Raspbian 的时候这是手动且很容易忘记的步骤。最后,和价值 $35 的 Raspberry Pi 3 相比,购买 $12 的 Orange Pi Zero 可以使得三倍多的学生有自己的学习工具,也可以将 Orange Pi Zero 作为礼物分享给三倍数量的朋友。

 title=

Orange Pi Zero与 Raspberry Pi 3 尺寸外形的比较

最后的想法

Orange Pi 无疑是解决问题的很好解决方案。鉴于它的低成本、能够更快上手且运行迅速、相对更快速的表现及 GPIO 针脚兼容 Raspberry Pi 的特性,Orange Pi,特别是 Orange Pi Zero,绝对应该列在你工作室、教室或者机器人组的实验器材清单里面。

当然如果你已经厌烦了使用 Orange Pi,希望能够将你不喜欢的原因分享在下面。


作者简介:

David Egts - David Egts | 红帽公司北美公共部门首席技术专家。 喜欢玩打鼓,骑摩托车,电脑极客,是一名丈夫,父亲,传授教义者。关注我的推特 @davidegts并查看我正在主持的播客。


via: https://opensource.com/article/17/1/how-to-orange-pi

作者:David Egts 译者:beyondworld 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

PDF( 可移植文档格式 Portable Document Format )可谓是众所周知,并且可能是当今使用最广泛的文档类型,特别是在可靠呈现和分享文档、软硬件及系统无关性等方面有着很大优势。

事实上,它已经成为了电子文档的业界标准,特别是在互联网上。由于这样的原因,以及越来越多的电子信息分享,很多人从 PDF 文档中得到他们想要的有用信息。

建议阅读: Linux 中的八大 PDF 阅读器

在本文中,我将列举 Linux 系统中最好的六个 PDF 页面裁剪工具。

1、 Master PDF 编辑器

Master PDF 编辑器 是一个简单易用、方便却强大的多功能 PDF 编辑器,可以帮助你很好的处理 PDF 文档。

Master PDF 编辑器

Master PDF 编辑器

使用它可以很容易地查看、创建和修改 PDF 文件。它还可以将几个文档合成一个文件,以及 将源文档分割成多个文档

此外,Master PDF 编辑器还可以帮你对 PDF 文档进行注释、签名和加密等等。

Master PDF 编辑器的特性

  1. 跨平台,可以运行于 Linux、Windows 以及 MacOS
  2. 可以创建 PDF 文档
  3. 允许修改 PDF 文档中的文本和对象
  4. 支持 PDF 文档注释
  5. 支持 PDF 创建和填充表单
  6. 支持光学文本识别(OCR)
  7. 支持多页面操作
  8. 支持书签和数字签名
  9. 搭载有一个虚拟 PDF 打印机

2、 PDF Quench

PDF Quench 是一个用于 PDF 页面裁剪的图形化 Python 应用。

PDF Quench 编辑器

PDF Quench 编辑器

它可以让用户以合适的旋转角度来裁剪页面,将裁剪框定义为与 meda 框相同的位置,这有助于处理第二次裁剪的问题。

3、 PDF Shuffler

PDF-Shuffler 是一个小巧、简单和免费的 python-gtk 应用,由 python-pyPdf 进行图形界面封装而来。

PDF Shuffler 编辑器

PDF Shuffler 编辑器

通过 PDF-Shuffler,你可以使用一个直观的交互式图形用户界面,来合并或者分割 PDF 文档,以及旋转、裁剪和重组页面。

4、 Krop

Krop 是一个简单、免费的图形用户界面应用,用于裁剪 PDF 文件页面。它是使用 Python 编写的,并且只能运行于 Linux 系统。

Krop PDF 编辑器

Krop PDF 编辑器

它依赖于 PyQT、python-poppler-qt4 和 pyPdf 或 PyPDF2 来支持自身的全部功能。其主要特性之一就是可以如同 eReaders 一样,将页面分为多个子页面以适应设备屏幕尺寸的限制。

5、 Briss

Briss 是一个简单、免费的跨平台程序,用于裁剪 PDF 文档,它可以工作于 Linux、Windows 和 Mac OSX。

Briss PDF 编辑器

Briss PDF 编辑器

其中,有一个显著的特性是其直观的图形用户界面允许你直接以可视的方式在页面上调整矩形框来精确定义裁剪区域,当然还有其他更多有用的特性。

6、 PDFCrop

PDFCrop 是一个 Linux 平台的 PDF 裁剪应用,使用 Perl 语言编写。它要求系统已安装好 ghostscript (用于寻找 PDF 文件的页面边界框) 和 PDFedit (用于裁剪和重设页面尺寸)。

它能让你裁剪掉 PDF 页面中的白色边界,并重新调整页面大小以适应标准尺寸的纸张;所得到的页面打印后通常更具可读性和引人注目。

它主要用于学术界人士,使他们能够用习惯的方式来打印下载的期刊论文。PDFCrop 也适用于这些人:他们经常接收到以信纸大小来组织页面的 PDF 文档,但却需要打印为 A4 纸大小 (或者是相反的情况)。

至此,文毕。在本文中,我列举了在 Linux 中六个最好用的 PDF 页面裁剪工具及其主要特性。是不是还有其他的工具被我遗漏了呢?请通过评论向我分享哦。


作者简介:

Aaron Kili 是一名 Linux 和 F.O.S.S 忠实拥护者、高级 Linux 系统管理员、Web 开发者,目前在 TecMint 是一名活跃的博主,热衷于计算机并有着强烈的知识分享意愿。


译者简介:

GHLandy —— 生活中所有欢乐与苦闷都应藏在心中,有些事儿注定无人知晓,自己也无从说起。


via: http://www.tecmint.com/best-pdf-page-cropping-tools-for-linux/

作者:Aaron Kili 译者:GHLandy 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

书是非常私人的东西,编程类书籍也不例外。我们都是通过阅读书籍来帮助掌握某种语言的基本知识。随后又通过阅读书籍来全面探索这门语言的灵活性。我仔细考察了一些我最喜爱的 C 语言书籍,并从其中选出了对我意义最大的九本。

C 语言是一种通用的、面向过程的高级编程语言。也是最具流行度和影响力的编程语言之一。该语言在设计时就被设计为可以通过编译器进行编译,以此来对内存进行底层操作、高效地执行机器指令以及在运行时仅需要最小的支持。很多很多编程语言都得益于 C 语言, C 语言就像是编程界的通用语言一样。

C 语言非常易懂。它允许程序员能够以一种清晰、简单、符合逻辑的方式来组织程序。这是一种非常灵活、实用并且简洁的语言,同时它还具有非常容易读懂的语法。使用 C 语言编写的代码运行非常快。可以非常简单地操作计算机的底层设施。通过编译器的指令可以允许我们为不同体系结构的设备生成同一个版本的程序。

C 语言是自由的。因此学习 C 语言的书籍也是体现了其自由性。快来看看我挑选的开源书籍,有没有哪一本能够吸引你?好好享受它吧!

C 语言 The C Book

The C Book

C 语言 The C Book 》这本书是为那些已经具备使用现代高级面向过程编程语言的程序员设计的。这本书专注于那些 C 语言的特有之处。尤其是使用 C 语言的方式是这本书所重点关注的。作者: Mike Banahan, Declan Brady 和 Mark Doran ,350 页

包含以下章节:

  • 变量及运算法则介绍 – 介绍了 C 语言的基础知识, 包括关键字和标识符,变量声明,实数类型,整型,表达式和运算法则以及常量
  • 控制流及逻辑表达式 – 这一章介绍了在 C 语言中可以用于控制程序流程的几种方法,包括一些尚未介绍的语句。 控制流,逻辑表达式以及奇怪的运算符。
  • 函数 – 函数的类型, 递归,传参数以及链接
  • 数组和指针 – 数组, 指针, 字符处理, sizeof 以及储存空间分配, 函数指针,包含指针的表达式,数组,&运算符以及函数声明
  • 结构体数据类型 – 结构体, 联合体, 位字段, 枚举类型, 限定符、派生类型以及初始化
  • 预处理器 – 预处理器是如何工作的及其相关指令
  • C 语言中的一些特定内容 – 声明, 定义,typedef, constvolatile以及序列点
  • 库 – 诊断, 字符处理, 本地化, 与具体实现相关的限制, 数学函数, 非局部跳转, 信号处理, 可变参数, 输入输出, 格式化 I/O, 字符 I/O, 无格式 I/O, 随机访问函数, 通用函数, 字符串处理, 日期和时间
  • C 语言编写的完整程序 – 综合以上内容, main函数的参数, 解析程序参数, 模式匹配程序以及一个难度更大的程序

作者允许读者利用此书做任何他们想做的事情,只需说明作者和版权。经 Mike Banahan 确认,本书通过知识共享协议发布。

风格的要素—— C 语言版 C Elements of Style

C Elements of Style

作者 Steve Oualline ,265页

风格的要素—— C 语言版 C Elements of Style 》是一本十分有用的编程风格指南,指导 C 和 C++ 程序员如何去编写可读性良好的,易懂的,易于维护的程序。不论你是一个学生还是专业程序员,你都能从这本书中提供的技巧和技术中获益,构建优雅可靠的代码。

这本书意在向读者们展示如何在你的程序中融入风格良好的代码。机器仅处理代码,而人类关注于注释。良好的编程风格与这两部分都有关。

我们的最终目标是构建设计良好,编写良好的代码,这种代码对于计算机来说是高效的,同时包含了精心编写的注释用于帮助人类理解程序。这样一来,调试,维护和增强程序,都变得更加容易了。最终还提升了代码的可读性,简洁性,可靠性和可维护性。

在本书中,你可以找到有关编写注释,程序头,变量命名,语句格式化,语句细节,编写预处理器命令,组织目录和创建makefile的指南。

本书通过知识共享协议发布。

编写你自己的 Lisp 语言 Build Your Own Lisp

Build Your Own Lisp

作者 Daniel Holden ,212页

在学习 C 语言的同时学习如何创造你自己的编程语言——一个最简的 Lisp 语言(仅用不到1000行代码)。

编写你自己的 Lisp 语言 Build Your Own Lisp 》这本书是为两种人写的,一种是想要学习 C 语言的人,另一种是想要知道如何创建一门语言的人。本书并不适合作为第一本入门书籍,因为你需要一些编程经验才能读懂它的内容。

本书基于知识共享署名-非商业性使用-3.0 未本地化版本协议发布

纸质版可以在 Amazon 上购买。

GNU C 语言参考手册 The GNU C Reference Manual

The GNU C Reference Manual

作者 Trevis Rothwell, James Youngman ,91页

GNU C 语言参考手册 The GNU C Reference Manual 》是一本 C 语言参考手册,意在写明 C89,C99 标准以及当前 GNU 对标准 C 语言的扩展情况。本书并不适合新手阅读。

包含以下章节:

  • 词法元素——这部分内容描述了预编译之后,组成 C 语言代码的词法元素。包括 5 种:关键字,标识符,常量,操作符和分隔符
  • 数据类型——研究基础的数据类型,枚举,联合体,结构体,数组,指针,不完全类型,类型修饰词,储存类型修饰词以及重命名类型
  • 表达式和操作符 —— 还介绍了自增/自减,算数操作符,复共轭性,比较操作符,逻辑运算符,位移,位运算符,指针运算符,sizeof,类型转换等等。
  • 语句 —— 标签,表达式,if 语句,switch 语句,while 语句,do 语句,for 语句,代码块,null 语句,goto 语句,break 语句,continue 语句,return 语句以及 typedef 语句
  • 函数 —— 学习函数声明,函数定义,函数调用,参数,变长参数列表,通过指针调用函数,main 函数,递归函数等等。
  • 程序结构和定义域 —— 从宏观上来看程序
  • 一个例程 —— 一个用 C 语言编写的完整程序,包含 C 语言源文件和头文件。这个程序是一个典型“hello world”程序的扩展版,它向我们展示了在 GNU FSF 项目中 C 语言是如何工作的。

本书基于 GNU Free Documentation License Version 1.3 及其更新版本发布。

GNU C 语言编程教程 The GNU C Programming Tutorial

The GNU C Programming Tutorial

作者 Mark Burgess, Ron Hale-Evans ,290页

GNU C 语言编程教程 The GNU C Programming Tutorial 》以逻辑顺序向读者介绍了 C 语言的基本内容。本书内容涵盖了 C 语言的全部主要内容的细节以及如何使用 C 语言编程,特别强调了GNU/Linux编译器以及相关软件。

一些章节主要介绍了函数,变量以及声明,作用域,表达式和操作符,参数,指针,判定,循环,数组,字符串,输入输出等等。

本书基于 GNU Free Documentation License Version 1.1 版发布。

C 语言基础 Essential C

Essential C

作者 Nick Parlante ,45页

C 语言基础 Essential C 》这份简短的文档解释了 C 语言全部的常用特性和技术。这份文档十分简洁,因此它的目标人群是已经具有其他编程语言背景的人。

内容包括变量,整型,浮点型,类型提升,截断,操作符,控制结构(if,while,for),函数,数值参数,引用参数,结构体,指针,数组,预处理器以及 C 语言标准库函数。

目录:

  • 简介
  • 基础类型与运算符
  • 控制结构
  • 复杂数据类型
  • 函数
  • 杂项
  • 高级数组与指针
  • 运算符和标准库

根据作者的描述,我们得知这是一本基于开源协议发布的书籍。

Beej 的 C 语言教程 Beej’s Guide to C Programming

Beej’s Guide to C Programming

作者 Brian “Beej” Hall ,130 pages

Beej 的 C 语言教程 Beej’s Guide to C Programming 》试图为那些心存困惑的读者带来一种仅能通过纯粹 C 语言编程而产生的快感。

章节:

  • 构建程序的基本结构块
  • 变量,表达式和,语句。变量就是一个数字的名字——一个 C 语言表达式可以包含其他的表达式以及运算符。文章还介绍了ifwhiledo while以及程序重复执行的for语句。
  • 函数——当程序块变得很大,或是当这些程序块用来执行一些特定的工作时,我们会把它们封装到函数中。
  • 变量(续篇)——探讨了变量的作用域和储存类型
  • 指针——它们是数据在内存中的地址。就像一个整型的值可以是12,一个指针的值就是数据在内存中的地址
  • 结构体——结构体允许你将逻辑上相关的变量分组。随后你可以将其作为一个整体来使用。
  • 数组——一组相关数据的线性集合
  • 字符串—— C 语言中的字符串就是内存中的一组连续的比特,包含了一组字符
  • 动态内存——探讨了malloc(), free(), realloc() 和 calloc() 函数
  • 更多内容——指针运算,typedef,枚举,结构体声明,命令行参数,多维数组,类型转换和类型提升,不完整类型,void指针,NULL指针和static关键字
  • 标准输入输出库——用来进行文件的读写。
  • 字符串操作——用来查找子串的函数,连接字符串的函数,获取字符串长度的函数,等等。
  • 算数——一些可以满足你基本算数需求的函数。

本书基于知识共享署名-非商业性使用-禁止演绎 3.0 未本地化版本协议发布。

现代 C 语言 Modern C

Modern C

作者 Jens Gustedt ,310页

现代 C 语言 Modern C 》鼓励读者逐级探索 C 语言的特性。内容一共分为如下五层境界:

  • 第一层——使读者了解最基本的 C 语言程序。了解使用 C 语言的目的和数据结构,以及如何去使用它们
  • 第二层——详细的说明了大部分主要概念以及特性,包括控制结构,数据类型操作符和函数。这一级的主要目的是让读者能够对于这些运行程序必备的知识,有更深刻的理解。
  • 第三层——进入 C 语言的核心部分。详细的解释了指针,让你熟悉 C 语言的内存模型,并且让你了解大多数 C 语言库的接口
  • 第四层——深入理解一些特定的主题。比如性能,重入,原子性,线程及泛型编程
  • 第五层——探讨了作者对这门语言未来发展趋势的理解

本书基于知识共享署名-非商业性使用-禁止演绎 3.0 未本地化版本协议发布

GCC 简介 An Introduction to GCC

An Introduction to GCC

作者 Brian Gough ,144页

GCC 简介 An Introduction to GCC 》介绍了 GNU C 语言和 C++编译器——gcc 和 g++,它们是 GNU 编译器套装(GCC)的一部分。

本书介绍了如何使用编译器。通过多年以来对邮件列表中的问题的观察,本书带领读者直击 GCC 的重要内容。

章节介绍:

  • 编译c程序——介绍了如何使用 gcc 来编译 C 语言程序。单个文件或多个文件均可以编译,也可以使用操作系统函数和头文件。
  • 编译选项——介绍了 gcc 中一些常用的编译选项。这些参数控制一些功能,例如搜索库函数和头文件的路径,提供额外的编译告警和诊断。预处理宏和 C 语言方言。
  • 使用预处理器——描述了cpp(GNU C preprocessor)的使用方法,cpp 是 GCC 的一部分。预处理器会在编译前将代码中的宏展开,当 GCC 处理 c 或者 c++ 代码时,预处理器会自动被调用。
  • 编译带有调试信息的程序——提供了一个-g选项用以在中间文件和可执行文件中存储额外的调试信息。这些调试信息使得我们可以追踪错误,将机器指令中的问题定位到源代码中。
  • 优化编译——GCC 是一个优化过的编译器。它提供了很多选项,可以加速编译或是减少编译后文件的体积。
  • 编译C++程序——介绍了如何使用 GCC 编译 C++ 程序以及该语言可以使用的命令行选项。
  • 平台相关选项——介绍了一些常见平台可以使用的选项
  • 排错——GCC提供了一些帮助和诊断选项用于帮助我们定位编译过程中出现的问题。
  • 编译器相关工具——介绍了 GCC 编译过程中会用到的一些有用的工具。包括用来创建库的 GNU 归档工具 ar,GNU 性能和覆盖率测试程序 gprof 和 gcov
  • 编译器是如何工作的——详细介绍了 GCC 是如何把源文件编译为可执行文件的。编译是一个多阶段过程,涉及很多工具,包括 GNU 编译器本身,GNU 汇编器,以及 GNU 链接器。在编译过程中使用的各种工具,我们统称为编译链。
  • 检查编译后的文件——介绍了一些用来检查可执行文件和 obj 文件内容的工具。
  • 常见错误信息——介绍了 gcc 和 g++ 产生的最常见的错误和告警信息。每种情况都带有原因分析,样例以及建议的解决办法。
  • 获取帮助——如果读者遇到了书中没有提到的问题,还有很多介绍GCC和语言的手册可以参考。

本书基于 GNU Free Documentation 协议发布


很多 C 语言书籍都可以免费下载,但是可惜的是它们并没有以开源协议来发布,或其基于何种协议并没有明确说明。以下对其进行介绍,排名不分先后:

最后,如果你想买一本权威参考书,请认准《 C 程序设计语言 The C Programming Language 》。这本书非常简练,不适合新手,但是被奉为经典。

书籍是非常主观和私人的财产,编程书籍也不例外。但是不管 C++ 编程书籍的风格、关注点或者节奏如何,好书总可以带领读者走过一段引人入胜的旅程,揭示编程语言的能力,还能向读者描绘如何使用编程语言来实现各种事物。

分享是一种美德,我精心挑选了九本值得一读的优质 C++ 书籍,这些书籍均基于开源协议发布。在这之前,我会给出一份 C++ 的简短介绍。

C++ 是由 Bjarne Stroustrup 设计,初次发布于 1983 年。它是一种静态类型、格式自由、多重范式、可移植、编译式的通用编程语言。它被认为是中级语言,同时包含有高级与初级编程语言的特性。C++ 设计用于实现系统级与应用的编程,它拓展了 C 编程语言,因此其名字中的使用了自增运算符 ++。

C++ 仍是一种流行的编程语言。例如,它被广泛应用于嵌入式系统、银行以及通讯业。它作为 C 的超集保留了 C 标志性的简洁与高效,同时提供强类型检查、多重继承、数据抽象、异常处理操作符重载、泛型编程,以及面向对象编程等功能。C++ 不仅影响了 C 语言的发展,同时也影响到了包括 C#、Java 在内的许多其他编程语言。

Boost C++ 类库 The Boost C++ Libraries

The Boost C++ Libraries

作者 Boris Schäling (570页)

Boost C++ 类库 The Boost C++ Libraries 》被认为在 C++ 世界中极其重要并有深远影响。书中这些可移植的库提供对多种任务和结构体的支持,包括多线程、容器、字符串和文本处理、迭代器、线性代数、伪随机数产生、元程序设计模板、并发程序设计、数据结构、图像处理、正则表达式和单元测试。Boost 可以在几乎所有现代操作系统上工作,包括 Linux 和 Windows 及其衍生,并且支持绝大多数现代编译器。

这本书介绍了 72 个 Boost 库,提供了广泛并且实用的功能。它们能够帮助程序员更轻松的管理内存和处理字符串。这些库提供多种容器以及其它数据结构来拓展标准库。使用这些库可以轻松实现平台无关的网络应用程序。

本书是一颗值得添加到各类收藏中的明珠。430 份源代码例子生动形象地阐释了这些库的功能。

本书前面的章节审视了内存管理、字符串处理、容器、数据结构、算法、通信、文件与流以及时间。后续章节进一步探索了函数式编程、并行编程和泛型编程。以对语言拓展、错误与数字处理、应用程序库、设计模式以及其他库的大部分内容。

本书采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。如果你喜欢实体书,可以在亚马逊上购买纸质书,也可选择如 kindle、E-book 和 PD F格式的电子书。

C++ 注释 C++ Annotations

C++ Annotations

作者 Frank B. Brokken (1029页)

C++ 注释 C++ Annotations 》提供了关于 C++ 编程语言的一份全面的教程。它可以被当做一门 C++ 课程的教材。本书面向已掌握 C 语言或其他类 C 语法知识的使用者。

本书主要章节有:

  • 命名空间
  • 字符串——C 提供的是最基础的字符串支持
  • I/O 流库——提供了一个基于类概念的输入/输出库
  • 类——C 提供了两种结构化不同类型数据的方法。C 语言的结构体包含多种类型的数据成员,而 C 语言的 共用体 union 同样可以定义不同类型的数据成员。本章介绍的类,也是一种结构体但是它的内容对外部世界来说是默认不可访问的。
  • 静态数据和函数
  • 内存管理——审视 C++ 中能够操作内存分配的操作符
  • 异常——允许 C++ 程序执行受控的非本地返回命令,避免了使用 longjmp(非局部跳转)和 setjmp(激活非局部跳转)函数的缺陷。
  • 操作符重载——介绍通用的操作符重载
  • 抽象容器
  • 继承——派生的另外一个特性。 本章演示基类指针可能被用来指向派生类的对象。
  • 多态——继承的一种特殊形态
  • 友元机制——介绍 friend 关键词以及它的使用原则
  • 成员指针——定义成员指针及其用法,静态成员指针,指针长度
  • 嵌套类——当嵌套类与其外围类有概念上的紧密联系时会被使用
  • 标准模板库(STL)——包含容器、通用算法、迭代器、函数对象、分配器、适配器和数据结构的通用库。这些算法使用的数据结构都是抽象意义的,因此算法实际上可以使用任何数据类型。
  • 泛型算法——涵盖标准模板库中的泛型算法
  • 函数模板——探索模板独特的句法。介绍模板类型参数与模板非类型参数和函数模板等概念并且提供模板的多个案例。
  • 类模板——讨论构建与使用类模板
  • 进阶模板用法——一份简短的模板元编程主要特性与模板的微妙关系的介绍

本书有HTML、PDF、PostScript 和 txt 版本。它可以自由分发,基于 GNU GPL 协议发布。

通过 C++ 和 Qt4 了解设计模式 An Introduction to Design Patterns in C++ with Qt 4

Introduction to Design Patterns in C++ with Qt 4, An

作者 Alan Ezust, Paul Ezust (656页)

通过 C++ 和 Qt4 了解设计模式 An Introduction to Design Patterns in C++ with Qt 4 》从介绍 C++ 基础知识、面向对象概念、UML(统一建模语言)和核心 Qt 类开始。进而转向更高级的编程概念如 Qt modules 和设计模式。最后严密地印证了重要的 C++ 特性。其中涵盖了非常优秀的对函数、继承和多态的讲解。

本书不需要具备任何 C 或者 C++ 编程经验前提,并且被设计为普适用途。它也为教学工作者准备了 Qt 案例、练习、答案以及课程 PPT。

本书是 Bruce Perens 开源系列中的一部分。所有在此系列中的书籍都是基于 Open Publication License V1.0 及其后版本发布的。

像计算机科学家一样思考:C++ How to Think Like a Computer Scientist: C++

How to Think Like a Computer Scientist: C++

作者 Allen B. Downey (191页)

像计算机科学家一样思考:C++ How to Think Like a Computer Scientist: C++ 》是使用 C++ 编程语言进行软件设计的一本简洁友好的介绍性书籍。本书的目的是通过讲解最基础的概念并且以读者容易接受的节奏逐步增加新内容来把没有编程经验的读者培养成为未来的开发者。

本书提供的有价值的内容包括:

  • 变量、表达式和语句
  • 函数
  • 条件语句与递归
  • 丰富的函数
  • 迭代
  • 字符串
  • 向量
  • 成员函数
  • 对象的向量
  • 向量的对象
  • 类与不变量
  • 文件输入输出和 apmatrixes

本书是一本在知识共享署名-非商业性使用-3.0 未本地化版本协议下发布的免费书籍。

C++ Qt3 图形界面编程 C++ GUI Programming with Qt 3

C++ GUI Programming with Qt 3

作者 Jasmin Blanchette, Mark Summerfield (464 页)

最新发布的 Qt 稳定版本是 5.8,而《 C++ Qt3 图形界面编程 C++ GUI Programming with Qt 3 》指导读者如何使用 Qt3 编写 GUI 程序,Qt3 最近一次更新是 2004 年,但是本书仍然有大部分内容对 Qt4 和 Qt5 有效。

本书不是一本面向初学者的书,需要读者对 C++ 有基本的理解。

本书向读者介绍了使用 Qt 进行 GUI 应用编程所有的概念和需要的练习。本书不仅详尽的讲述了核心内容,而且也提供了一些特别的和高阶的学习材料。

本书是 Bruce Perens 开源系列中的一部分。所有在此系列中的书籍都是基于 Open Publication License V1.0及之后版本发布的。

开放数据结构(C++ 版) Open Data Structures (in C++)

Open Data Structures (in C++)

作者 Pat Morin (336页)

开放数据结构(C++ 版) Open Data Structures (in C++) 》教导读者设计和分析基础数据结构以及如何使用 C++ 实现。 它涵盖了对如下数据结构的分析和实现:序列(列表)、队列、优先队列、无序字典、有序字典以及图。作者的意图在于向大学计算机科学的学生提供一条学习数据结构的免费的途径,但是并不打算成为介绍 C++ 编程语言或者 C++ 标准模板库的一本书。不过它可以帮助程序员理解标准模板库的数据结构是如何实现的以及这种实现为何如此高效。

章节内容覆盖了基于数组的列表、链表、分级链表、哈希表、二叉树(又包含了随机二叉搜索树、替罪羊树、红黑树)。之后的章节还包括堆、排序算法(比较、计数和基数排序)、图、整数的数据结构和外部存储器搜索。

本书基于知识共享署名 协议发布。免费的 HTML、PDF 均已发布,本书的 LaTeX 版本,Java/C++/Python 源代码都可以从 GitHub 下载。也有纸质书版本可供购买。本书已被翻译为斯罗维尼亚语和土耳其语。

使用 wxWidgets 进行跨平台 GUI 编程 Cross-Platform GUI Programming with wxWidgets

Cross-Platform GUI Programming with wxWidgets

作者 Julian Smart,Kevin Hock和Stefan CsomorBrifll (744 页)

wxWidgets 是一个流行的 C++ 库,可供开发者使用单一的代码基础为 Windosw、Mac OS、Linux 和其他平台创建应用。它支持非常广泛的图形处理库。

这本书《 使用 wxWidgets 进行跨平台 GUI 编程 Cross-Platform GUI Programming with wxWidgets 》从简单的介绍和起步章节开始,主要内容包括:

  • 事件处理
  • 窗口基础
  • 画图
  • 输入事件处理
  • 使用 sizers 进行窗口布局
  • 使用标准对话框
  • 创建自定义对话框
  • 图像编程
  • 剪贴板与拖放动作
  • 高阶窗口类
  • 文件和数据流
  • 内存管理,调试和错误检查
  • 编写国际化应用
  • 编写多线程应用
  • wxSocket 编程
  • 处理文档和视图
  • 日臻完美你的应用

本书是 Bruce Perens 开源系列中的一部分。所有在此系列中的书籍都是基于 Open Publication License V1.0及其后版本发布的。

Rook 的 C++ 指南 The Rook’s Guide to C++

The Rook's Guide to C++

作者 Jeremy Hansen (160页)

Rook 的 C++ 指南 The Rook’s Guide to C++ 》的章节中包含变量、常量、输入输出、数据类型和转换、条件判断语句(if、else 和 else if、switch 语句)、字符串、循环、数组、块、函数和作用域。之后的章节主要集中解决问题和定位问题,包括预处理器、高等代数、文件输入输出、指针、动态数据、类和抽象、分离编译和标准模板库。

本书大部分都是由 25 位 Norwich 大学的学生于一个黑客马拉松周末写成。当然不敢说毫无缺点,但还是一本相当不错的书。它被基于知识共享署名-非商业性使用-相同方式共享 3.0 未本地化版本协议发布。同时在亚马逊也有本书的纸质版可供购买。

GCC 简介 An Introduction to GCC

An Introduction to GCC

作者 Brian Gough (144页)

GCC 简介 An Introduction to GCC 》介绍了 GCC,同时介绍了 GNU C 和 C++ 编译器:gcc 和 g++,均属于 GNU 编译器集合(GCC)。

本书解释了如何单独使用编译器。作者通过数年对邮件列表中发表的问题的观察,撰写本书带领读者直接接触 GCC 最重要的部分。

章节简介:

  • 介绍
  • 编译一个 C 程序——描述了如何使用 gcc 编译 C 程序。程序可能是由单独文件或者多个文件编译而成,也可能使用系统库和头文件。
  • 编译选项——描述gcc中可以使用的编译器中常用的选项。这些选项可以修改本地库和包含文件的搜索路径,配置额外的 warning 和调试信息,预处理器宏指令和 C 方言。
  • 使用预处理——描述了属于 GCC 包内的 GNU C 预处理 cpp 程序的用途。预处理将宏定义在源代码被编译前展开。预处理会在 GCC 编译 C 或者 C++ 程序时自动被调用。
  • 以调试为目的编译——提供 -g 选项使目标文件和可执行文件中存储额外的调试信息。当出现错误时,这些调试信息允许从特定的机器指令回溯到源代码中相应的行。
  • 优化编译——GCC 是一个优化编译器。它提供了大量的选项来使其生成的可执行文件的速度得到提升,并尽量减小可执行文件的大小。
  • 编译一个 C++ 程序——描述了如何使用 GCC 来编译以 C++ 编写的程序,以及针对这门语言特定的命令行选项。
  • 平台相关的选项——描述了一些通用平台上可用的选项,如 Intel 和 AMD x86 选项、x86 拓展选项、x86 64 位处理器选项、DEC Alpha 选项、SPARC 选项、POWER/powerPC 选项、复合架构支持以及浮点相关问题。
  • 问题定位——GCC 提供了几项帮助和诊断选项来帮助用户在编译过程中定位问题。
  • 编译器相关工具——介绍了大量能够用于和 GCC 组合使用的工具。包括:用来创建库的 GNU 压缩器 ar,以及 GNU 性能和覆盖测试工具:gprof 和 gcov。
  • 编译器如何工作——描述了关于 GCC 如何将源代码转换为可执行程序的更多细节。编译是一个涉及到多种工具的多级过程,包括 GNU 编译器自身(通过 gcc 或者 g++ 前端)、GNU 汇编器 as 以及 GNU 链接器 ld。编译过程中一个完整的工具集合被称之为工具链。
  • 检查编译后的文件——描述了多种有用的工具来检查可执行文件和目标文件的内容。
  • 常见错误消息——描述了 gcc 和 g++ 产生的最常见的错误和警告信息。每一个案例都伴随着错误和警告产生的原因,相应的例子和可能解决问题的建议。
  • 获得帮助——如果读者碰到了本书中未能涵盖的问题,还有多种参考手册更详细的描述了 GCC 和编程语言相关的主题。

本书是基于 GNU Free Documentation 协议出版的。

此外还有一些 C++ 书籍可以免费下载,但是那些并不是基于开源协议发布的,或者作者没有指定一个协议。这类书籍包括:

最后,我对刚入门的 C++ 新手的建议一定是《 编程原理与体验(C++ 版) Programming — Principles and Practice Using C++ (第二版)》。普遍认为这是最合适的入门书籍,由 C++ 的创始人书写,物超所值。


via: https://www.ossblog.org/master-c-programming-with-open-source-books/

作者:Steve Emms 译者:xiaow6 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

值得好好学习的 6 个 JavaScript 框架

常言道,条条大路通罗马,可是那一条适合我呢? 由于用于构建前端页面等现代技术的出现,JavaScript 在 Web 开发社区早已是如雷贯耳。通过在网页上编写几个函数并提供执行逻辑,可以很好的支持 HTML (主要是用于页面的 表现 或者 布局)。如果没有 JavaScript,那页面将没有任何 交互特性 可言。

现在的框架和库已经从蛮荒时代崛起了,很多老旧的技术纷纷开始将功能分离成模块。现在不再需要在整个核心语言中支持所有特性了,开发者允许所有用户创建库和框架来增强核心语言的功能。这样,语言的灵活性获得了显著提高。

如果在已经在使用 JavaScript (以及 JQuery) 来支持 HTML,那么你肯定知道开发和维护一个大型应用需要付出多大的努力以及编写多么复杂的代码,而 JavaScript 框架可以帮助你快速的构建交互式 Web 应用 (包含单页面应用或者多页面应用)。

当一个新手开发者想要学习 JavaScript 时,他常常会被各种 JavaScript 框架所吸引,也幸亏有为数众多的社区,任何开发者都可以轻易地通过在线教程或者其他资源来学习。

但是,唉!多数的程序员都很难决定学习和使用哪一个框架。因此在本文中,我将为大家推荐 6 个值得好好学习的 JavaScript 框架。让我们开始吧。

1、AngularJS

Angular

(注:这是我个人最喜欢的框架)

无论你是何时听说的 JavaScript,很可能你早就听过 AngularJS,因为这是在 JavaScript 社区中最为广泛使用的框架了。它发布于 2009 年,由 Google 开发 (这够有说服力让你使用了吧) ,它是一个开源项目,这意味着你可以阅读、编辑和修改其源代码以便更加符合自身的需求,并且不用向其开发者支付一分钱 (这不是很酷吗?)。

如果说你觉得通过纯粹的 JavaScript 代码编写一个复杂的 Web 应用比较困难的话,那么你肯定会兴奋的跳起来,因为它将显著地减轻你的编码负担。它符合支持双向数据绑定的 MVC ( 模型-视图-控制 Model–view–controller ) 设计典范。假如你不熟悉 MVC,你只需要知道它代表着无论何时探测到某些变化,它将自动更新前端 (比如,用户界面端) 和后端 (代码或者服务器端) 数据。

MVC 可以大大减少构建复杂应用程序所需的时间和精力,所以你只需要集中精力于一处即可 (DOM 编程接口会自动同步更新视图和模型)。由于 视图组件模型组件 是分离的,你可以很容易的创建一个可复用的组件,使得用户界面的效果非常好看。

如果因为某些原因,你已经使用了 TypeScript (一种与 JavaScript 非常相似的语言),那么你可以很容易就上手 AngularJS,因为这两者的语法高度相似。与 TypeScript 相似这一特点在一定程度上提升了 AngularJS 的受欢迎程度。

目前,Angular 2.0 已经发布,并且提升了移动端的性能,这也足以向一个新的开发者证明,该框架的开发活跃度够高并且定期更新。

AngularJS 有着大量的用户,包括 (但不限于) Udemy、Forbes、GoDaddy、Ford、NBA 和 Oscars。

对于那些想要一个高效的 MVC 框架,用来开发面面俱到、包含健壮且现代化的基础架构的单页应用的用户来说,我极力的推荐这个框架。这是为无经验 JavaScript 开发者设计的首选框架。

2、React

React

与 AngularJS 相似,React 也是一个 MVC ( 模型-视图-控制 Model–view–controller ) 类型的框架,但不同的是,它完全针对于 视图组件 (因为它是为 UI 特别定制的) ,并且可与任何架构进行无缝衔接。这意味着你可以马上将它运用到你的网站中去。

它从核心功能中抽象出 DOM 编程接口 (并且因此使用了虚拟 DOM),所以你可以快速渲染 UI,这使得你能够通过 node.js 将它作为一个客户端框架来使用。它是由 Facebook 开发的开源项目,还有其它的开发者为它贡献了代码。

假如说你见到过并喜欢 Facebook 和 Instagram 的界面,那么你将会爱上 React。通过 React,你可以给你的应用的每个状态设计一个简单的视图,当数据改变的时候,视图也自动随之改变。只要你想的话,可以创建各种的复杂 UI,也可以在任何应用中复用它。在服务器端,React 同样支持通过 node.js 来进行渲染。对于其他的接口,React 也一样表现得足够灵活。

除 Facebook 和 Instagram 外,还有好多公司也在使用 React,包括 Whatsapp、BBC、PayPal、Netflix 和 Dropbox 等。

如果你只需要一个前端开发框架来构建一个非常复杂且界面极好的强大视图层,那我极力向你推荐这个框架,但你需要有足够的经验来处理各种类型的 JavaScript 代码,而且你再也不需要其他的组件了 (因为你可以自己集成它们)。

3、Ember

Ember

这个 JavaScript 框架在 2011 年正式发布,是由 Yehuda Katz 开发的开源项目。它有一个庞大且活跃的在线社区,所以在有任何问题时,你都可以在社区中提问。该框架吸收融合了非常多的通用的 JavaScript 风格和经验,以便确保开发者能最快地做到开箱即用。

它使用了 MVVM ( 模型-视图-视图模型 Model–view–viewmodel ) 的设计模式,这使得它与 MVC 有些不一样,因为它由一个 连接器 (binder) 帮助视图和数据连接器进行通信。

对于 DOM 编程接口的快速服务端渲染,它借助了 Fastboot.js,这能够让那些复杂 UI 的性能得到极大提高。

它的现代化路由模式和模型引擎还支持 RESTful API,这确保你可以使用到这种最新的技术。它支持 句柄集成模板 Handlebars integrated template ,用来自动更新数据。

早在 2015 年间,它的风头曾一度盖过 AngularJS 和 React,被称为最好的 JavaScript 框架,对于它在 JavaScript 社区中的可用性和吸引力,这样的说服力该是足够了的。

对于不追求高灵活性和大型架构的用户,并且仅仅只是为了赶赴工期、完成任务的话,我个人非常推荐这个 JavaScript 框架。

4、Adonis

Adonis

如果你曾使用过 LaravelNodeJS,那么你在使用这一个框架之时会觉得相当顺手,因为它是集合了这两个平台的优点而形成的一个框架,对于任何种类的现代应用来说,它都显得非常专业、圆润和精致。

它使用了 NodeJS,所以是一个很好的后端框架,同时还附带有一些前端特性 (与前面提到那些更多地注重前端的框架不同),所以想要进入后端开发的新手开发者会发觉这个框架相当迷人。

相比于 NoSQL,很多的开发者都比较喜欢使用 SQL 数据库 (因为他们需要增强和数据以及其它特性的交互性),这一现象在这个框架中得到了很好的体现,这使得它更接近标准,开发者也更容易使用。

如果你混迹于各类 PHP 社区,那你一定很熟悉 服务提供者 Service Providers ,也由于 Adonis 其中包含相应的 PHP 风格,所以在使用它的时候,你会觉得似曾相识。

在它所有的特性中,最好的便是那个极为强大的路由引擎,支持使用函数来组织和管理应用的所有状态、支持错误处理机制、支持通过 SQL ORM 来进行数据库查询、支持生成器、支持 箭头函数 arrow functions 、支持代理等等。

如果喜欢使用无状态 REST API 来构建服务器端应用,我比较推荐它,你会爱上这个框架的。

5、Vue.js

Vue.js

这是一个开源的 JavaScript 框架,发布于 2014 年,它有个极为简单的 API,用来为 现代 Web 界面 Modern Web Interface 开发 交互式组件 Reactive components 。其设计着重于简单易用。与 Ember 相似,它使用的是 MVVM ( 模型-视图-视图模型 Model–view–viewmodel ) 设计范例,这样简化了设计。

这个框架最有吸引力的一点是,你可以根据自身需求来选择使用的模块。比如,你需要编写简单的 HTML 代码,抓取 JSON,然后创建一个 Vue 实例来完成可以复用的小特效。

与之前的那些 JavaScript 框架相似,它使用双路数据绑定来更新模型和视图,同时也使用连接器来完成视图和数据连接器的通信。这是一个还未完全成熟的框架,因为它全部的关注点都在视图层,所以你需要自己处理其它组件。

如果你熟悉 AngularJS,那你会感觉很顺手,因为它大量嵌入了 AngularJS 的架构,如果你懂得 JavaScript 的基础用法,那你的许多项目都可以轻易地迁移到该框架之下。

假如你只想把任务完成,或者想提升你自身的 JavaScript 编程经验,又或者你需要学习不同的 JavAScript 框架的本质,我极力推荐这个。

6、Backbone.js

Backbone.JS

这个框架可以很容易的集成到任何第三方的模板引擎中,默认使用的是 Underscore 模板引擎,而且该框架仅有一个依赖项 (JQuery),因此它以轻量而闻名。它支持带有 RESTful JSON 接口的 MVC ( 模型-视图-控制 Model–view–controller ) (可以自动更新前端和后端) 设计范例。

假如你曾经使用过著名的社交新闻网络服务 reddit,那么你肯定听说过它在几个单页面应用中使用了 Backbone.jsBackbone.js 的原作者为之建立了与 CoffeScript 旗鼓相当的 Underscore 模板引擎,所以你可以放心,开发者知道该做什么。

该框架在一个软件包中提供了 键值对 key-value 模型、视图以及几个打包的模块,所以你不需要额外下载其他的外部包,这样可以节省不少时间。框架的源码可以在 GitHub 进行查看,你可以根据需求进行深度定制。

如果你在寻找一个入门级框架来快速构建一个单页面应用,那么这个框架非常适合你。

总而言之

至此,我已经在本文着重说明了 6 个值得好好学习的 JavaScript 框架,希望你读完本文后能够决定使用哪个框架来完成自己的任务。

如果说对于选择框架,你还是不知所措,请记住,这个世界是实践出真知而非教条主义的。最好就是从列表中挑选一个来使用,看看最后是否满足你的需求和兴趣,如果还是不行,接着试试另一个。你也尽管放心好了,列表中的框架肯定是足够了的。


译者简介:

GHLandy —— 生活中所有欢乐与苦闷都应藏在心中,有些事儿注定无人知晓,自己也无从说起。


via: http://www.discoversdk.com/blog/6-best-javascript-frameworks-to-learn-in-2016

作者:Danyal Zia 译者:GHLandy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

随着越来越多的组织寻求构建和管理自己的开源云,所以拥有 OpenStack 经验仍然被视为技术界中最需要的技能。但是 OpenStack 是一个巨大的知识领域,包含了十几个正在积极开发的单独项目。仅仅使你的技能跟上它的最新发展就是一个挑战。

好消息是现在有很多资源可以让你跟上这个发展速度。除了其官方项目文档,各种培训和认证程序、纸质的指南、以及其他资源之外,还有大量的由 OpenStack 社区成员编写并发布在各种博客和线上出版物上的教程和指南。

在 Opensource.com,我们每个月都会收集这些社区资源中最好的资源,并将它们放到一个集锦中。这是我们上个月的内容。

  • 这次排第一位的是 Julie Pichon 对 Mistral 在 TripleO 中的使用的一个快速介绍。Mistral 是一个工作流服务,允许你设置一个多步过程自动化和异步协调操作。在该快速指南中学习 Mistral 的基础知识、它如何工作,以及如何在 TripleO 中使用它。
  • 想要使用 OpenStack 自己的一套工具来深入了解 TripleO 管理 OpenStack 部署么?你会想看看这一组为使用 TripleO 设置 OpenStack 的人士写的简洁提示。这是一个正在进行中的工作,所以如果你还想包含什么,欢迎随时贡献。
  • 使用 TripleO 设置独立的 Ceph 部署时,不要错过这个快速指南,这是我们的 TripleO 指南的第三篇。它所需要的只是一个简短的 YAML 文件和一个简单的命令。
  • 接下来,如果你是一个 OpenStack 贡献者,你可能会熟悉 Grafana 面板,它显示了 OpenStack 持续集成基础设施的各种指标。有没有想过这个服务如何工作,或想创建一个新的指标到面板上?学习如何创建你自己的本地面板的副本,你可以测试试试,并作出自己的修改。
  • 有没有想过 OpenStack 云上的网络底层到底在如何运作的?OpenStack 经常使用 Open vSwitch 用于 Neutron 和 Nova 的网络服务;在这个演练中学习设置的基础。

这次就是这样了。和往常一样,请查看我们完整的 OpenStack 教程,它汇集了过去三年发布的数百个单独的指南。

作者简介:

Jason Baker - Jason 热衷于使用技术使世界更加开放,从软件开发到阳光政府行动。Linux 桌面爱好者、地图/地理空间爱好者、树莓派工匠、数据分析和可视化极客、偶尔的码农、云本土主义者。在 Twitter 上关注他。


via: https://opensource.com/article/17/1/openstack-tutorials

作者:Jason Baker 译者:geekpi 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出