mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-01-31 23:30:11 +08:00
Merge branch 'master' of https://github.com/LCTT/TranslateProject.git
This commit is contained in:
commit
060356a86b
83
README.md
83
README.md
@ -1,11 +1,11 @@
|
||||
简介
|
||||
-------------------------------
|
||||
|
||||
LCTT是Linux中国社区([http://linux.cn/](http://linux.cn/))的翻译组,负责从国外优秀媒体翻译Linux相关的技术、资讯、杂文等内容。
|
||||
LCTT是“Linux中国”([http://linux.cn/](http://linux.cn/))的翻译组,负责从国外优秀媒体翻译Linux相关的技术、资讯、杂文等内容。
|
||||
|
||||
LCTT已经拥有近百余名活跃成员,并欢迎更多的Linux志愿者加入我们的团队。
|
||||
|
||||
![logo](http://img.linux.net.cn/static/image/common/linuxcn_qqq_lctt.gif)
|
||||
![logo](http://img.linux.net.cn/static/image/common/lctt_logo.png)
|
||||
|
||||
LCTT的组成
|
||||
-------------------------------
|
||||
@ -18,11 +18,10 @@ LCTT的组成
|
||||
|
||||
**发布**,负责将校对后的文章,排版进行发布。
|
||||
|
||||
|
||||
加入我们
|
||||
-------------------------------
|
||||
|
||||
请首先加入翻译组的QQ群,群号是:198889102,加群时请说明是志愿者。加入后记得修改您的群名片为您的github的ID。
|
||||
请首先加入翻译组的QQ群,群号是:198889102,加群时请说明是“志愿者”。加入后记得修改您的群名片为您的github的ID。
|
||||
|
||||
加入的成员,请先阅读[WIKI 如何开始](https://github.com/LCTT/TranslateProject/wiki/01-如何开始)。
|
||||
|
||||
@ -39,62 +38,75 @@ LCTT的组成
|
||||
- CORE [carolinewuyan](https://github.com/carolinewuyan),
|
||||
- CORE [DeadFire](https://github.com/DeadFire),
|
||||
- CORE [geekpi](https://github.com/geekpi),
|
||||
- CORE [tinyeyeser](https://github.com/tinyeyeser),
|
||||
- CORE [vito-L](https://github.com/vito-L),
|
||||
- CORE [jasminepeng](https://github.com/jasminepeng),
|
||||
- CORE [willqian](https://github.com/willqian),
|
||||
- CORE [vizv](https://github.com/vizv),
|
||||
- CORE [GOLinux](https://github.com/GOLinux),
|
||||
- [luoxcat](https://github.com/Luoxcat),
|
||||
- CORE [reinoir](https://github.com/reinoir),
|
||||
- Senior [tinyeyeser](https://github.com/tinyeyeser),
|
||||
- Senior [vito-L](https://github.com/vito-L),
|
||||
- Senior [jasminepeng](https://github.com/jasminepeng),
|
||||
- Senior [willqian](https://github.com/willqian),
|
||||
- Senior [vizv](https://github.com/vizv),
|
||||
- [runningwater](https://github.com/runningwater),
|
||||
- [luoxcat](https://github.com/Luoxcat),
|
||||
- [bazz2](https://github.com/bazz2),
|
||||
- [Vic020](https://github.com/Vic020),
|
||||
- [flsf](https://github.com/flsf),
|
||||
- [alim0x](https://github.com/alim0x),
|
||||
- [KayGuoWhu](https://github.com/KayGuoWhu),
|
||||
- [zpl1025](https://github.com/zpl1025),
|
||||
- [blueabysm](https://github.com/blueabysm),
|
||||
- [flsf](https://github.com/flsf),
|
||||
- [crowner](https://github.com/crowner),
|
||||
- [Linux-pdz](https://github.com/Linux-pdz),
|
||||
- [KayGuoWhu](https://github.com/KayGuoWhu),
|
||||
- [Linchenguang](https://github.com/Linchenguang),
|
||||
- [woodboow](https://github.com/woodboow),
|
||||
- [zpl1025](https://github.com/zpl1025),
|
||||
- [yechunxiao19](https://github.com/yechunxiao19),
|
||||
- [blueabysm](https://github.com/blueabysm),
|
||||
- [linuhap](https://github.com/linuhap),
|
||||
- [2q1w2007](https://github.com/2q1w2007),
|
||||
- [yechunxiao19](https://github.com/yechunxiao19),
|
||||
- [woodboow](https://github.com/woodboow),
|
||||
- [su-kaiyao](https://github.com/su-kaiyao),
|
||||
- [scusjs](https://github.com/scusjs),
|
||||
- [hyaocuk](https://github.com/hyaocuk),
|
||||
- [theo-l](https://github.com/theo-l),
|
||||
- [NearTan](https://github.com/NearTan),
|
||||
- [l3b2w1](https://github.com/l3b2w1),
|
||||
- [ThomazL](https://github.com/ThomazL),
|
||||
- [MikeCoder](https://github.com/MikeCoder),
|
||||
- [shipsw](https://github.com/shipsw),
|
||||
- [boredivan](https://github.com/boredivan),
|
||||
- [ThomazL](https://github.com/ThomazL),
|
||||
- [theo-l](https://github.com/theo-l),
|
||||
- [jiajia9linuxer](https://github.com/jiajia9linuxer),
|
||||
- [SteveArcher](https://github.com/SteveArcher),
|
||||
- [l3b2w1](https://github.com/l3b2w1),
|
||||
- [NearTan](https://github.com/NearTan),
|
||||
- [shipsw](https://github.com/shipsw),
|
||||
- [disylee](https://github.com/disylee),
|
||||
- [Love-xuan](https://github.com/Love-xuan),
|
||||
- [boredivan](https://github.com/boredivan),
|
||||
- [cvsher](https://github.com/cvsher),
|
||||
- [owen-carter](https://github.com/owen-carter),
|
||||
- [JonathanKang](https://github.com/JonathanKang),
|
||||
- [tenght](https://github.com/tenght),
|
||||
- [icybreaker](https://github.com/icybreaker),
|
||||
- [liuaiping](https://github.com/liuaiping),
|
||||
- [tenght](https://github.com/tenght),
|
||||
- [rogetfan](https://github.com/rogetfan),
|
||||
- [nd0104](https://github.com/nd0104),
|
||||
- [whatever1992](https://github.com/whatever1992),
|
||||
- [2q1w2007](https://github.com/2q1w2007),
|
||||
- [disylee](https://github.com/disylee),
|
||||
- [SteveArcher](https://github.com/SteveArcher),
|
||||
- [JonathanKang](https://github.com/JonathanKang),
|
||||
- [zzlyzq](https://github.com/zzlyzq),
|
||||
- [FineFan](https://github.com/FineFan),
|
||||
- [ailurus1991](https://github.com/ailurus1991),
|
||||
- [lfzark](https://github.com/lfzark),
|
||||
- [CNprober](https://github.com/CNprober),
|
||||
- [213edu](https://github.com/213edu),
|
||||
- [johnhoow](https://github.com/johnhoow),
|
||||
- [yujianxuechuan](https://github.com/yujianxuechuan),
|
||||
- [ggaaooppeenngg](https://github.com/ggaaooppeenngg),
|
||||
- [zzlyzq](https://github.com/zzlyzq),
|
||||
- [ailurus1991](https://github.com/ailurus1991),
|
||||
- [FineFan](https://github.com/FineFan),
|
||||
- [tomatoKiller](https://github.com/tomatoKiller),
|
||||
- [stduolc](https://github.com/stduolc),
|
||||
- [Maclauring](https://github.com/Maclauring),
|
||||
- [Hao-Ding](https://github.com/Hao-Ding),
|
||||
- [small-Wood](https://github.com/small-Wood),
|
||||
- [zsJacky](https://github.com/zsJacky),
|
||||
- [Hao-Ding](https://github.com/Hao-Ding),
|
||||
- [luoyutiantang](https://github.com/luoyutiantang),
|
||||
- [small-Wood](https://github.com/small-Wood),
|
||||
- [CHINAANSHE](https://github.com/CHINAANSHE),
|
||||
- [ggaaooppeenngg](https://github.com/ggaaooppeenngg),
|
||||
- [guodongxiaren](https://github.com/guodongxiaren),
|
||||
- [cereuz](https://github.com/cereuz),
|
||||
- [lijhg](https://github.com/lijhg),
|
||||
|
||||
|
||||
(更新于2014/06/18)
|
||||
(更新于2014/09/09)
|
||||
|
||||
谢谢大家的支持!
|
||||
|
||||
@ -112,4 +124,5 @@ LCTT的组成
|
||||
* 2014/01/02 增加了Core Translators 成员: geekpi。
|
||||
* 2014/05/04 更换了新的QQ群:198889102
|
||||
* 2014/05/16 增加了Core Translators 成员: will.qian、vizv。
|
||||
* 2014/06/18 由于GOLinux令人惊叹的翻译速度和不错的翻译质量,升级为Core Translators 成员。
|
||||
* 2014/06/18 由于GOLinux令人惊叹的翻译速度和不错的翻译质量,升级为Core Translators 成员。
|
||||
* 2014/09/09 LCTT 一周年,做一年总结。并将曾任 CORE 的成员分组为 Senior,以表彰他们的贡献。
|
80
lctt2014.md
Normal file
80
lctt2014.md
Normal file
@ -0,0 +1,80 @@
|
||||
LCTT 2014 : LCTT 成立一年总结
|
||||
============================
|
||||
|
||||
### 缘起 ###
|
||||
|
||||
一年前,我因为开发 Linux 中国的微信公众号,想着在公众号里面提供 Linux 的 man 手册应该是个不错的主意,因此在网上遍寻中文 man 手册。虽然我之前也寻找过中文的 man 手册,知道颇多不全和错漏,但是这次仔细搜寻之下,却发现还远较我预计的还差。
|
||||
|
||||
无奈之下,只能先使用了英文版本作为 man 的内容,并因此萌发了组织一个翻译 man 手册的活动或组织的想法。说干就干,当时我就在 Linux 中国的 QQ 群里面发起了倡议,还真得到了大家响应。
|
||||
|
||||
于是,2013 年 9 月 10日,草草而就的 LCTT 就成立了,很快就创建了一个 QQ 群作为交流,并确定了名称为“Linux.CN Translate Team”,简称 LCTT。考虑到需要多人协作,几乎没有多想,就决定了采用 GITHUB 作为翻译平台——虽然现在看起来,GITHUB 作为主要工作平台,有利也有弊,但是,总体来说还是不错的。LCTT 就这样启动了。
|
||||
|
||||
### 发展 ###
|
||||
|
||||
次日,我们就组织起来了翻译,并初步拟定了翻译流程、分工之类的内容。
|
||||
|
||||
LCTT 草创,各种方面都没有经验,也出现过一些失误。比如说,开始时对于 GITHUB 以及 GIT,大部分人,包括我,都不是很熟悉,因此并未采用 Pull-Request 模式,而是共同控制的方式,也由于一些协调和经验的原因,出现过版本错误和回滚,甚至回滚得更乱。还有,初期还要求 LINUX 中国网站 的注册身份,但是后来发现这完全不必要。
|
||||
|
||||
本来成立 LCTT 的目标是为了 man 手册的翻译,但是经过研究,我发现翻译 man 手册还有一些困难:
|
||||
|
||||
1. man 手册是二进制的 groff 格式,因此生成和解析需要一些额外的过程,甚至需要一些特定的环境;
|
||||
2. man 手册对翻译的能力要求较高,并且应该对 man 手册所对应的命令有足够的了解,才能翻译得当,因为一字之差就可能导致很多误解。
|
||||
|
||||
所以,当时商量决定,先期启动普通的 Linux 方面、开源方面的文章翻译,以此来摸索翻译流程和锻炼协作,并作为翻译 man 手册的人员筛选环节。
|
||||
|
||||
我安排 Linux 中国站长,原本经常独自翻译发表来自国外文章的 DeadFire 来做选题。他负责将选题从英文的页面,转换成 Markdown 格式。我又找了朋友 jasminepeng 和 carolinewuyan 帮忙做校对,我自己则主要承担发布的工作。
|
||||
|
||||
初期,很快就涌现出了一些积极参与的人员,如 tinyeyeser、vito-L、boredivanivan等等,不一一列举了,他们不但积极参与翻译,而且还帮助撰写了第一批的翻译组 Wiki 文档,对引导新人起到了很大作用。
|
||||
|
||||
伴随着 LCTT 的逐步运作,一个月之后,我和大家感觉时间比较成熟了,就启动了 man 翻译计划。
|
||||
|
||||
### man 翻译计划的夭折 ###
|
||||
|
||||
_写下这个标题时,我也颇感觉惭愧的,这也算是我正视这个结果吧。不管怎么说,现在还是深夜,未过零点,我终究是在 LCTT 一周年之前正视了失败。_
|
||||
|
||||
其实,前面提到过,我检索过各种可以找到的中文 man 翻译项目的结果,但种种结果让人无法满意,因此我觉得,我应该能吸取其中的教训,为 Linux、为开源做点实事出来。
|
||||
|
||||
我总结的之前的 man 翻译项目失败的原因大概如下:
|
||||
|
||||
1. 缺乏足够的驱动力,翻译者无论从利益还是荣誉,都得不到鼓励,因此往往难以为继。
|
||||
2. 由于依赖个人热情,没有形成流动机制,因此,当某个人热情耗尽之后,就没有人继续接手维护。
|
||||
3. 翻译流程简单,没有形成初译、校对、发布等流程,无法保证质量,也没有保持同步更新的流程。
|
||||
|
||||
因此,我觉得,通过建立一个翻译的公益组织(即 LCTT)、建立翻译流程、翻译后保留翻译和校对等人员的署名,可以解决一些以上的问题。
|
||||
|
||||
但是,其实我还忽视了一点,翻译 man 手册,其实无论是环境还是流程,比较复杂,因此限制了参与者。参与门槛高,导致发展不能持续。
|
||||
|
||||
因此,实际上,man 翻译项目,在大概运作了一个月之后,就逐渐停滞下来了,虽然后期,willqian 独立完成了很多篇,但是总体来说,man 翻译项目算是失败了。
|
||||
|
||||
### 总结这一年 ###
|
||||
|
||||
抛开 man 翻译项目的失败不说,其实,LCTT 还是成果累累。
|
||||
|
||||
这一年,我们完成了 5820 次提交,发起了 1482 个 PR,翻译了 805 篇文章。
|
||||
|
||||
这一年,我们有了 98 个贡献者,得到了 162 个 fork。
|
||||
|
||||
我使用了一个工具,根据这一年来我们 LCTT 翻译项目的 git 日志,生成了一段[视频](http://img.linux.net.cn/static/video/lctt2014.mp4)。看着视频中如辛勤的工蜂一样忙忙碌碌的志愿者们;看着如穿花蝴蝶一样,承担了更多工作量的选题、校对们;看着归档时如同施展魔法一样,瞬间变出了一朵朵花,我感觉我们这一年是有收获的一年!
|
||||
|
||||
请大家观赏我们这一年: http://img.linux.net.cn/static/video/lctt2014.mp4 (213M,720p)
|
||||
|
||||
这是我用 kdenlive 合成配音的。虽然我的乐感很差,只能选择一首自己觉得还算配的音乐;虽然我根本不会用 kdenlive,连配音淡出都琢磨半天;虽然我编译用于生成这个视频的 gource 都花费了几个小时来解决问题;但是,看到这份视频,我为我们 LCTT 这一年来的工作感到骄傲。
|
||||
|
||||
### 感谢你们 ###
|
||||
|
||||
虽然很俗套,但是此刻,已经是 2014 年 9 月 10 日凌晨00:50了,我心情很激动,真心感谢所有的参与者、贡献者。几乎每个 LCTT 的成员我都知道,也有几个我特别熟悉;LCTT 的成员有新来的,也有逐渐淡出的,但是不论是那种,我都记得你们。
|
||||
|
||||
名单太长,我就不一一列举了: https://github.com/LCTT/TranslateProject/graphs/contributors
|
||||
|
||||
### 接下来 ###
|
||||
|
||||
我会说,man 计划我不会放弃么?
|
||||
|
||||
是的,man 计划是 LCTT 之所以发起的原因,也是 LCTT 能够持久发展的基础,而 man 翻译也是真正对国内的 Linux 、开源发展有实在意义的事情,所以,我不会放弃。
|
||||
|
||||
我会投入精力开发一个翻译平台,用于 man 项目的翻译、校对和发布,将复杂的翻译环境配置和使用方法隐藏在后面;并增加可视化的图表和进度显示,明了的体现翻译工作进展;对接 man7.org 的最新更新,保持 man 内容的及时更新等等。
|
||||
|
||||
期待 LCTT 的下一个年度的发展吧!
|
||||
|
||||
LCTT wxy
|
||||
2014 年 9 月 10 日
|
114
published/20140723 Top 10 Fun On The Command Line.md
Normal file
114
published/20140723 Top 10 Fun On The Command Line.md
Normal file
@ -0,0 +1,114 @@
|
||||
用命令行去发掘有趣的“前十”
|
||||
================================================================================
|
||||
|
||||
**如果你喜欢做‘排名前10’之类的列表但又有点不好意思这样说,那么告诉人们你热爱数据的探索。为了进一步打动他们,向他们解释你在命令行间的数据探索。但是不要告诉他们这其实很容易,以免你的好形象就这样被毁灭了哦!**
|
||||
|
||||
在这篇文章中,我将基于GNU/Linux工具和'单列表格'(也就是我所说的简单列表)来做一些数据探索。如若想在这里通过命令行查看更多的信息,请查看'man'页,或者在“注释”部分求解。
|
||||
|
||||
### 密码 ###
|
||||
|
||||
在第一个列表里探讨的是马克.伯内特2011著的关于[10000 个最常用的密码][1]汇编。这个列表是有序的、使用最频繁的,也是广为人知的阶乘“密码”的最常用来源之一,与“123456”并列排名第二。在这里,我把该列表放到一个名为“passwords”的文件中,并且使用head命令把排名前10的列出来了:
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/1.png)
|
||||
|
||||
(伯内特解释他是如何收集这些密码的[这里][2]。你会注意到在列表中他把所有大写字母都转换成小写的。)
|
||||
|
||||
OK,所以'password'是伯内特列表的顶部。那么每个数字呢?
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/2.png)
|
||||
|
||||
非常有趣的是!数字'1'出现在密码列表中的次数多于第二个最常用数字'2'的两倍,而且,除了0和9之外,这十个数字出现的次数以其数字顺序排列。而排名前10的字母呢?
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/3.png)
|
||||
|
||||
在 passwords 文件中出现最频繁的字母依次是EARONISTLC,类似于EAIRTONSLC,这是至少[一个出版的表格][3]中提到的常用英文单词中出现的字频。这是否意味着,大部分密码其实是一些常见的英语单词呢,也许会参杂一些数字呢?
|
||||
|
||||
为了找到答案,我先把密码转换成一个纯字母的字符串列表,然后看看有多少字符串是可以在英语词典中找到的。
|
||||
|
||||
首先我将通过 **sed** 命令删除所有密码中的数字,然后删除所有的标点符号,再删除所有的空行。这将创建出一个纯字母的密码列表。然后我通过**sort** 和 **uniq**来修剪列表的排序,将重复项取出。(例如,'abc1234def'和'abc1!2!3!def!'都剔除剩下'abcdef'.) 。根据wc命令,我把1000个密码减至成8583个纯字母的字符串:
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/4.png)
|
||||
|
||||
我经常使用一本便携式的英语字典,我通常会使用`usr/share/dict/american-english`,这个文件是来自Debian Linux的一个发行版本。它包含了99171个单词。我会先通过**tr**命令将这个词表转换为纯小写的,然后使用**sort** 和 **uniq**删除掉任何重复的条目排序(例如'A' 和 'a' 都将成为 'a')。这样就将词表的数量减至97723项了:
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/5.png)
|
||||
|
||||
我现在可以用comm命令及'-23'的参数来比较两个列表,并报告纯字母文件中而没有出现在字典中的单词:
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/6.png)
|
||||
|
||||
总数是3137,所以至少有8583 -3137 = 5446个'核心'密码在伯纳特的纯小写字母列表中(大约63%)是简单的英语单词,或者是简单的单词附加一些数字或者标点符号。我之所以说“至少”,是因为在3137个字符串中有很大比例是只有经过轻微修改的纯英语单词、名称、或者在/usr/share字典中未能找到的名称修改而成的。在LA项中,例如,'labtec', 'ladyboy', 'lakeside', 'lalakers', 'lalala', 'laserjet', 'lasvegas', 'lavalamp' 和 'lawman'.
|
||||
|
||||
### 地名 ###
|
||||
|
||||
在之前的一篇[Linux Rain article][4],我描述了如何建立一张37万项澳大利亚的地名表。有了它,我现在可以回答一些类似这样的关键问题“Round Hill是澳大利亚山脉中最流行的名字吗?”和“桑迪是沙滩之最,而岩溪峡谷呢?”
|
||||
|
||||
在地名表中地名字段的排名第2,所以这里有:
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/7.png)
|
||||
|
||||
哇。我当时甚至没有关闭这个终端。(但是请注意到我是如何通过**\^string1\^string2**命令保存打印的内容。它重复着最后一个命令,但是用第2个字符串代替了第1个字符串。这是多么有用的BASH绝招!)
|
||||
|
||||
另一个亟待解决的问题是有多少地名有'Mile'在其中,例如'Six Mile Creek',而他们的排名又是如何:
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/8.png)
|
||||
|
||||
我在我的澳洲之旅发现有很多Dead Horse Creeks,因此有这些地名:
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/9.png)
|
||||
|
||||
|
||||
### 种类 ###
|
||||
|
||||
第三个列表是探索我今年出版的1961-2010年期间澳大利亚新种类昆虫名。从这个列表中,我去掉所有“物种的绰号”,就是种群组合的第二部分,比如像智人(你和我)和西方蜜蜂(欧洲蜜蜂)。
|
||||
|
||||
(科技小贴士:这个昆虫表,可以从开发数据Zenodo库中[https://zenodo.org/record/10481][5]取得,包括亚种。在我的‘top 10’练习中,我首先分离出所有独特的种群组合,这样避免了重复的,例如蜜蜂iberica的亚种,以避免蜜蜂的绰号intermissa,等等。最后一个物种文件有18155个绰号。)
|
||||
|
||||
大多数人讲科学名称带玩笑式地用'-us'结局,如'Biggus buggus'。那么昆虫学家呢?有几个不错的,用命令行的方式获取字符串的最后2个字母,在这里我都会用到这2个:
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/10.png)
|
||||
|
||||
耶!昆虫学家喜欢也‘-us’结尾。接下来,我不知道有多少物种是以我的家乡Tasmania州来命名的?(下面我想看看前100行,来确保我得到的所有'tasman'组合.)
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/11.png)
|
||||
|
||||
那么昆士兰呢?
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/12.png)
|
||||
|
||||
一般来说,昆虫物种名单中的前10名分别是什么呢?
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/13.png)
|
||||
|
||||
嗯,除了明显的'australis'和'australiensis',而地理方面的'occidentalis'(西部),另外昆虫学家创建7个在10个最流行列表中的绰号已经履行了其它昆虫学家的意愿。(绰号'commoni'是给澳大利亚蝴蝶和蛾专家Ian F.B. Common[1917-2006]的荣誉。)
|
||||
|
||||
### 演变 ###
|
||||
|
||||
上面的这些命令用在简单列表上。要从简单的列表变成文本块,那就再次需要我们的命令行朋友了。例如,我把澳大利亚参议院于2014年7月16日的[演讲][6]保存成文本文件hansard。将hansard分割成一个单词列表:
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/14.png)
|
||||
|
||||
|
||||
现在看看讲话中的单词使用频率:
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/15.png)
|
||||
|
||||
### 即将推出... ###
|
||||
|
||||
从多列的表中做'top 10'等排名,需要更多些的命令行工具。我将会在未来的文章中证明他们的用处。
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://thelinuxrain.com/articles/top-10-fun-on-the-command-line
|
||||
|
||||
原文作者:Bob Mesibov(Bob Mesibov is Tasmanian, retired and a keen Linux tinkerer.)
|
||||
|
||||
译者:[disylee](https://github.com/译者ID) 校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[1]:https://xato.net/passwords/more-top-worst-passwords/#.U8eD13AvDy0
|
||||
[2]:https://xato.net/passwords/how-i-collect-passwords/#.U8eEdnAvDy0
|
||||
[3]:http://www.rinkworks.com/words/letterfreq.shtml
|
||||
[4]:http://www.thelinuxrain.com/articles/building-a-gazetteer-table-from-kml-files
|
||||
[5]:https://zenodo.org/record/10481
|
||||
[6]:http://parlinfo.aph.gov.au/parlInfo/search/display/display.w3p;db=CHAMBER;id=chamber%2Fhansards%2F232fa1a8-d7e8-4b22-9018-1a99b5a96812%2F0025;query=Id%3A%22chamber%2Fhansards%2F232fa1a8-d7e8-4b22-9018-1a99b5a96812%2F0000%22
|
@ -1,29 +1,30 @@
|
||||
如何创建Ubuntu信息端计算机
|
||||
如何创建Ubuntu 信息亭(kiosk)
|
||||
================================================================================
|
||||
|
||||
**Linux发行版可以作为全功能打包,也可以按需分解,驱动了从市内标示牌到市议会桌面系统在内的所有设备。**
|
||||
**Linux发行版可以作为全功能打包,也可以按需分解,它驱动了从市内标示牌到市议会桌面系统在内的所有设备。**
|
||||
|
||||
正是这种多样化,几乎可塑的质量,让Linux发行版,包括Ubuntu在内,在众多不同领域如此成功。
|
||||
### 信息端和单功能计算机 ###
|
||||
|
||||
Ubuntu更为流行的使用之一,是在**信息端类计算机**中。这些设备趋向于运行功能剥离的,或者功能有限的OS版本,只允许**一个单一应用运行**。
|
||||
### 信息亭和单功能计算机 ###
|
||||
|
||||
信息端计算机可以设置提供短暂的或者被动的访问,对于网吧或者对于任何要求只有特定功能——如网页浏览器——可以让用户访问的机器十分理想。
|
||||
Ubuntu更为流行的使用之一,是在**信息亭(kiosk)类计算机**中。这些设备趋向于运行功能剥离的,或者功能有限的OS版本,只允许**一个单一应用运行**。
|
||||
|
||||
信息亭计算机可以设置提供短时的或者被动的访问,适用于网吧或只能让用户访问特定功能时(如网页浏览器)。
|
||||
|
||||
### 构建Ubuntu信息端 ###
|
||||
|
||||
但你会怎样来创建这样一台计算机?好吧,保存你的Google。Linux开发者Oli Warner最近发布了两篇文章,介绍了使用Ubuntu 14.04和Google Chrome来创建单一功能的设备。
|
||||
但你会怎样来创建这样一台计算机?好吧,不用去Google了。Linux开发者Oli Warner最近发布了两篇文章,介绍了使用Ubuntu 14.04和Google Chrome来创建单一功能的设备。
|
||||
|
||||
他的第一篇指南从零开始,使用Ubuntu Server和少量的软件包来创建一个轻量级的X和Openbox的组合,开机启动Chrome。该安装需要最多2GB的磁盘空间和仅仅512MB的内存来运行。
|
||||
|
||||
- [从零开始构建信息端计算机][1]
|
||||
- [从零开始构建信息亭计算机][1]
|
||||
|
||||
第二篇教程反其道而行,一步一步介绍了将一个现存的Ubuntu桌面安装转变为一个更轻巧的单一功能的变形版本。
|
||||
|
||||
- [将Ubuntu转换成信息端计算机][2]
|
||||
- [将Ubuntu转换成信息亭计算机][2]
|
||||
|
||||
Neither guide is for the faint-hearted, but are simple enough for most intermediate-level users to follow. Follow the guides to get a functional setup, but don’t be afraid to strip out further packages and processes or double down on security, especially if intending to use an instance in a public space.
|
||||
两个指南都不是给那些胆小的新手的,而对于大多数中级水平的用户而言却是简单易行的。跟着指南来获得一次实用的安装体验,不要畏首畏尾,大胆去剥离一些深层次的包和进程,或者加固安全吧,特别是如果想要在公共空间中使用一个实例。
|
||||
|
||||
两个指南都不是给那些胆小的新手的,而对于大多数中级水平的用户而言却是简单易行的。跟着指南来获得一次实用的安装体验,不要畏首畏尾,大胆去剥离一些深层次的包和进程,或者加固安全吧,特别是如果想要在公共环境中使用时。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@ -31,7 +32,7 @@ via: http://www.omgubuntu.co.uk/2014/07/create-ubuntu-kiosk
|
||||
|
||||
作者:[Joey-Elijah Sneddon][a]
|
||||
译者:[GOLinux](https://github.com/GOLinux)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
@ -1,7 +1,6 @@
|
||||
GIMP 2.8.12 Released — Here’s How to Install it on Ubuntu
|
||||
GIMP 2.8.12 发布了——来看如何在Ubuntu上安装它
|
||||
GIMP 2.8.12 发布了,来看看如何在Ubuntu上安装
|
||||
================================================================================
|
||||
**GIMP是深受欢迎的开源的Photoshop替代软件,它的[新版本][1]现在可以下载了。**
|
||||
**GIMP是深受欢迎的开源Photoshop替代软件,它的[新版本][1]现在可以下载了。**
|
||||
|
||||
![GIMP is a Free Photoshop Alternative](http://www.omgubuntu.co.uk/wp-content/uploads/2012/05/screen-shot-2012-05-03-at-10.38.40.jpg)
|
||||
GIMP是一款免费的可替代Photoshop的软件
|
||||
@ -10,18 +9,18 @@ GIMP是一款免费的可替代Photoshop的软件
|
||||
|
||||
然而,开发人员修复了一批新的漏洞,旨在提高整体的稳定性,安全性以及这款著名软件的风格。
|
||||
|
||||
- 插件的笔刷大小不再变乱
|
||||
- .XCF 文件“更健康的”加载
|
||||
- 小部件的方向现在匹配界面语言(例如 RTL)
|
||||
- script-fu-server 的安全性提高
|
||||
- 插件的笔刷大小不再变形。
|
||||
- .XCF 文件的加载更稳固。
|
||||
- 小部件的方向现在匹配界面语言(例如 RTL)。
|
||||
- script-fu-server 的安全性提高。
|
||||
|
||||
文档,帮助以及翻译的更新也包括其中。想了解在版本 2.8.10 和 2.8.12 之间所有已定的文件或项目的更改日志,可以看[the GNOME Git notes][2]。
|
||||
文档,帮助以及翻译的更新也包括在其中。想了解在版本 2.8.10 和 2.8.12 之间所有修复完整更改日志,可以看[GNOME Git日志][2]。
|
||||
|
||||
### 在Ubuntu上安装最新的GIMP ###
|
||||
|
||||
最新发布的源代码可以从官方网站上或者从[官方的种子][3]下载。
|
||||
最新发布的源代码可以从官方网站上或者从[官方种子文件][3]下载。
|
||||
|
||||
在Ubuntu上吗?在Ubuntu 12.04 和14.04 LTS 上你可以通过添加[以下第三方PPA][4]软件源来安装GIMP 2.8.12:
|
||||
在Ubuntu上呢?在Ubuntu 12.04 和14.04 LTS 上你可以通过添加[以下第三方PPA][4]软件源来安装GIMP 2.8.12:
|
||||
|
||||
sudo add-apt-repository ppa:otto-kesselgulasch/gimp
|
||||
|
||||
@ -35,7 +34,7 @@ via: http://www.omgubuntu.co.uk/2014/08/whats-new-in-gimp-2-8-12-plus-install-ub
|
||||
|
||||
作者:[Joey-Elijah Sneddon][a]
|
||||
译者:[linuhap](https://github.com/linuhap)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[Caroline](https://github.com/carolinewuyan)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
@ -43,4 +42,4 @@ via: http://www.omgubuntu.co.uk/2014/08/whats-new-in-gimp-2-8-12-plus-install-ub
|
||||
[1]:http://www.omgubuntu.co.uk/2012/05/gimp-2-8-released
|
||||
[2]:https://git.gnome.org/browse/gimp/plain/NEWS?h=gimp-2-8
|
||||
[3]:http://download.gimp.org/pub/gimp/v2.8/gimp-2.8.12.tar.bz2.torrent
|
||||
[4]:https://launchpad.net/~otto-kesselgulasch/+archive/ubuntu/gimp
|
||||
[4]:https://launchpad.net/~otto-kesselgulasch/+archive/ubuntu/gimp
|
@ -1,14 +1,14 @@
|
||||
Ubuntu文本检索神器——SearchMonkey
|
||||
================================================================================
|
||||
有时候,我们需要搜索包含有某些特定文本或单词的文件。如果你是个开发者或者程序员,经常会碰到这问题。现在,我们总是能够使用[Linux命令来查找包含有指定文本的所有文件][1],但不是每个人都热衷于命令行的。我见过那些优秀的程序员,他们更多的是依赖于图形化工具,而不是命令行。
|
||||
有时候,我们需要搜索包含有某些特定文本或单词的文件。如果你是个开发者或者程序员,经常会碰到这样的问题。现在,我们总是能够使用[Linux命令来查找包含有指定文本的所有文件][1],但不是每个人都热衷于命令行。我见过那些优秀的程序员,他们更多的是依赖于图形化工具,而不是命令行。
|
||||
|
||||
如果你也更喜欢图形化工具,那么[SearchMonkey][2]对于你而言是个十分完美的应用。
|
||||
|
||||
### SearchMonkey是你的桌面搜索引擎 ###
|
||||
|
||||
SearchMonkey递归搜索目录,因此你可以在它干这活的时候坐下放松一下。用户可以使用强大的正则表达式来搜索文件名和内容,这使得SearchMonky返回结果时更为精确。
|
||||
SearchMonkey递归搜索目录,因此你可以在它工作的时候坐下放松一下。用户可以使用强大的正则表达式来搜索文件名和内容,这使得SearchMonky返回结果时更为精确。
|
||||
|
||||
此外,SearchMonkey不仅仅给你列出一堆包含有你正在查找的内容的文件,它也高亮显示匹配的内容。
|
||||
此外,SearchMonkey不仅仅给你列出可能包含有你正在查找的内容的文件,它也高亮显示匹配的内容。
|
||||
|
||||
### 在Ubuntu 14.04中安装SearchMonkey ###
|
||||
|
||||
@ -20,7 +20,7 @@ SearchMonkey可以在Ubuntu 14.04的软件仓库中找到,你只需要通过Ub
|
||||
|
||||
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/08/SearchMonkey_Ubuntu.jpeg)
|
||||
|
||||
SearchMonkey帮助你快速查找到你所需要的文件,不需要先构建一个驱动映射。每次搜索都是实时的,结果也会在找到后立即在上下文中显示!尤其是,它是一个免费而开源的软件。
|
||||
SearchMonkey帮助你快速查找到你所需要的文件,不需要先构建一个驱动映射。每次搜索都是实时的,结果也会在找到后立即在上下文中显示!尤,其,它还是一个免费又开源的软件。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@ -28,7 +28,7 @@ via: http://itsfoss.com/searchmonkey-search-text-files-linux/
|
||||
|
||||
作者:[Amit Asthana][a]
|
||||
译者:[GOLinux](https://github.com/GOLinux )
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[Caroline](https://github.com/carolinewuyan)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
@ -0,0 +1,37 @@
|
||||
Jelly Conky Adds Simple, Stylish Stats To Your Linux Desktop
|
||||
================================================================================
|
||||
**I treat Conky setups a bit like wallpapers: I’ll find one I love, only to change it the next week because I’m bored of it and want a change.**
|
||||
|
||||
Part of the impatience is fuelled by the ever-growing catalog of designs available. One of my most recent favourites is Jelly Conky.
|
||||
|
||||
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/jelly-conky.png)
|
||||
|
||||
Jelly Conky sports the minimal design many of the Conky’s we’ve highlighted recently have followed. It’s not trying to be a kitchen sink. It won’t win favour with those who need constant at-a-glance data on their HDD temperatures and IP addresses.
|
||||
|
||||
It comes with three distinct modes that can all add personality to an otherwise static background image:
|
||||
|
||||
- Clock
|
||||
- Clock plus date
|
||||
- Clock plus date and weather
|
||||
|
||||
Some people don’t understand the point of having a duplicate clock on show on the desktop. That’s understandable. For me, it’s more about form than function (though, personally, I find Conky clocks easier to see than the minuscule digits nestled in my upper panel).
|
||||
|
||||
Chances are if you have a home screen widget on Android with the time, you won’t mind having one on your desktop, either!
|
||||
|
||||
You can download Jelly Conky from the link below. The .zip archive contains a readme with instructions on how to install. For a guided walkthrough, [revisit one of our previous articles][1].
|
||||
|
||||
- [Download Jelly Conky on Deviant Art][2]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://www.omgubuntu.co.uk/2014/09/jelly-conky-for-linux-desktop
|
||||
|
||||
作者:[Joey-Elijah Sneddon][a]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://plus.google.com/117485690627814051450/?rel=author
|
||||
[1]:http://www.omgubuntu.co.uk/2014/07/conky-circle-theme-nod-lg-quick-cover
|
||||
[2]:http://zagortenay333.deviantart.com/art/Jelly-Conky-442559003
|
@ -0,0 +1,79 @@
|
||||
Meet the 12 Ubuntu 14.10 Wallpaper Contest Winners (So Far)
|
||||
================================================================================
|
||||
Get ready to glance over a group of images you’ll be seeing a whole lot more of in the coming months. Yes, the winners of the [Ubuntu 14.10 Wallpaper contest][1] have been unveiled.
|
||||
|
||||
Well, announced ‘sort of’. So far twelve backgrounds have been formally selected to ship on the Ubuntu 14.10 release.
|
||||
|
||||
Having sifted through an entry pool of almost 400 images the judging panel made up of April’s winning artists have chosen a visually varied and colourful collection. I know I say it every 6 months, but this one looks to be the best yet (and not just because one or two of [our own favourites made it in][2]!)
|
||||
|
||||
### Meet The Winners ###
|
||||
|
||||
You can see the current crop of selected images below. Emphasis is on current for now as, according to the contest organiser Iain Farrell, [**he is**][3] “…awaiting a couple from people but if they don’t come back to me we’ll have to go without!” .
|
||||
|
||||
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/utopic.jpg)
|
||||
|
||||
Obligatory mascot wallpaper
|
||||
|
||||
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/Empty-Space-by-Glenn-Rayat.jpg)
|
||||
|
||||
‘Empty Space’ by Glenn Rayat
|
||||
|
||||
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/Horses-on-sand-dunes-by-Matthias-Siewert.jpg)
|
||||
|
||||
Sand & horses by M. Siewert
|
||||
|
||||
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/Golden-leaves-by-Mauro-Campanelli.jpg)
|
||||
|
||||
Golden Leaves
|
||||
|
||||
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/salcantayperu-by-Life-Nomadic.jpg)
|
||||
|
||||
Life Nomadic by Sal’
|
||||
|
||||
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/xgu.jpeg)
|
||||
|
||||
‘xgu472hf2′ by Lariliikala
|
||||
|
||||
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/Redes-de-hilo-by-Juan-Pablo-Lauriente.jpg)
|
||||
|
||||
Rocky shore? Juan PL.
|
||||
|
||||
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/warm-grass.jpeg)
|
||||
|
||||
‘Warm Grasses’ by dcsearle.t21
|
||||
|
||||
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/Kronach-leuchtet-2014-by-Brian-Fox.jpg)
|
||||
|
||||
Kronach Leuchtet by Brian Fox
|
||||
|
||||
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/Night-Seascape-by-Davor-Dopar.jpg)
|
||||
|
||||
Davor Dopar’s seascape
|
||||
|
||||
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/Music-tomasino.cz_.jpg)
|
||||
|
||||
Music by Tomasino
|
||||
|
||||
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/Sunny-Autumn-by-Joel-Heaps.jpg)
|
||||
|
||||
Joel Heaps’ Sunny Autumn
|
||||
|
||||
We’ll update this post when/if any changes occur. You can grab a .zip archive of the entries for yourself [from Launchpad][4]. The full Utopic Wallpapers package, likely to include the ‘new’ default wallpaper, will be made available in the next day or two.
|
||||
|
||||
Let us know which of the designs are your favourites in the comments below — and do try to keep things positive!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://www.omgubuntu.co.uk/2014/09/ubuntu-14-10-wallpaper-contest-winners
|
||||
|
||||
作者:[Joey-Elijah Sneddon][a]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://plus.google.com/117485690627814051450/?rel=author
|
||||
[1]:http://www.omgubuntu.co.uk/2014/08/ubuntu-14-10-wallpaper-contest
|
||||
[2]:http://www.omgubuntu.co.uk/2014/08/best-ubuntu-wallpaper-contest-entries-1410
|
||||
[3]:https://bugs.launchpad.net/ubuntu/+source/ubuntu-wallpapers/+bug/1354341/comments/2
|
||||
[4]:https://bugs.launchpad.net/ubuntu/+source/ubuntu-wallpapers/+bug/1354341/+attachment/4199899/+files/14.10%20images.zip
|
@ -0,0 +1,89 @@
|
||||
Drab Desktop? Try These 4 Beautiful Linux Icon Themes
|
||||
================================================================================
|
||||
**Ubuntu’s default icon theme [hasn’t changed much][1] in almost 5 years, save for the [odd new icon here and there][2]. If you’re tired of how it looks we’re going to show you a handful of gorgeous alternatives that will easily freshen things up.**
|
||||
|
||||
Do feel free to share links to your own favourite choices in the comments below.
|
||||
|
||||
### Captiva ###
|
||||
|
||||
![Captiva icons, elementary folders and Moka GTK](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/moka-and-captiva.jpg)
|
||||
|
||||
Captiva icons, elementary folders and Moka GTK
|
||||
|
||||
Captiva is a relatively new icon theme that even the least bling-prone user can appreicate.
|
||||
|
||||
Made by DeviantArt user ~[bokehlicia][3], Captiva shuns the 2D flat look of many current icon themes for a softer, rounded look. The icons themselves have an almost material or textured look, with subtle drop shadows and a rich colour palette adding to the charm.
|
||||
|
||||
It doesn’t yet include a set of its own folder icons, and will fallback to using elementary (if available) or stock Ubuntu icons.
|
||||
|
||||
To install Captiva icons in Ubuntu 14.04 you can add the official PPA by opening a new Terminal window and enter the following commands:
|
||||
|
||||
sudo add-apt-repository ppa:captiva/ppa
|
||||
|
||||
sudo apt-get update && sudo apt-get install captiva-icon-theme
|
||||
|
||||
Or, if you’re not into software source cruft, by downloading the icon pack direct from the DeviantArt page. To install, extract the archive and move the resulting folder to the ‘.icons‘ directory in Home.
|
||||
|
||||
However you choose to install it, you’ll need to apply this (and every other theme on this list) using a utility like [Unity Tweak Tool][4].
|
||||
|
||||
- [Captiva Icon Theme on DeviantArt][5]
|
||||
|
||||
### Square Beam ###
|
||||
|
||||
![Square Beam icon set with Orchis GTK](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/squarebeam.jpg)
|
||||
|
||||
Square Beam icon set with Orchis GTK
|
||||
|
||||
After something a bit angular? Check out Square Beam. It offers a more imposing visual statement than other sets on this list, with electric colours, harsh gradients and stark iconography. It claims to have more than 30,000 different icons (!) included (you’ll forgive me for not counting) so you should find very few gaps in its coverage.
|
||||
|
||||
- [Square Beam Icon Theme on GNOME-Look.org][6]
|
||||
|
||||
### Moka & Faba ###
|
||||
|
||||
![Moka/Faba Mono Icons with Orchis GTK](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/moka-faba.jpg)
|
||||
|
||||
Moka/Faba Mono Icons with Orchis GTK
|
||||
|
||||
The Moka icon suite needs little introduction. In fact, I’d wager a good number of you are already using it
|
||||
|
||||
With pastel colours, soft edges and simple icon artwork, Moka is a truly standout and comprehensive set of application icons. It’s best used with its sibling, Faba, which Moka will inherit so as to fill in all the system icons, folders, panel icons, etc. The combined result is…well, you’ve got eyes!
|
||||
|
||||
For full details on how to install on Ubuntu head over to the official project website, link below.
|
||||
|
||||
- [Download Moka and Faba Icon Themes][7]
|
||||
|
||||
### Compass ###
|
||||
|
||||
![Compass Icon Theme with Numix Blue GTK](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/compass1.jpg)
|
||||
|
||||
Compass Icon Theme with Numix Blue GTK
|
||||
|
||||
Last on our list, but by no means least, is Compass. This is a true adherent to the ’2D, two-tone’ UI design right now. It may not be as visually diverse as others on this list, but that’s the point. It’s consistent and uniform and all the better for it — just check out those folder icons!
|
||||
|
||||
It’s available to download and install manually through GNOME-Look (link below) or through the Nitrux Artwork PPA:
|
||||
|
||||
sudo add-apt-repository ppa:nitrux/nitrux-artwork
|
||||
|
||||
sudo apt-get update && sudo apt-get install compass-icon-theme
|
||||
|
||||
- [Compass Icon Theme on GNOME-Look.org][8]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://www.omgubuntu.co.uk/2014/09/4-gorgeous-linux-icon-themes-download
|
||||
|
||||
作者:[Joey-Elijah Sneddon][a]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://plus.google.com/117485690627814051450/?rel=author
|
||||
[1]:http://www.omgubuntu.co.uk/2010/02/lucid-gets-new-icons-for-rhythmbox-ubuntuone-memenu-more
|
||||
[2]:http://www.omgubuntu.co.uk/2012/08/new-icon-theme-lands-in-lubuntu-12-10
|
||||
[3]:http://bokehlicia.deviantart.com/
|
||||
[4]:http://www.omgubuntu.co.uk/2014/06/unity-tweak-tool-0-7-development-download
|
||||
[5]:http://bokehlicia.deviantart.com/art/Captiva-Icon-Theme-479302805
|
||||
[6]:http://gnome-look.org/content/show.php/Square-Beam?content=165094
|
||||
[7]:http://mokaproject.com/moka-icon-theme/download/ubuntu/
|
||||
[8]:http://gnome-look.org/content/show.php/Compass?content=160629
|
@ -0,0 +1,85 @@
|
||||
Why Do Some Old Programming Languages Never Die?
|
||||
================================================================================
|
||||
> We like what we already know.
|
||||
|
||||
![](http://a4.files.readwrite.com/image/upload/c_fill,h_900,q_70,w_1600/MTIzMDQ5NjY0MTUxMjU4NjM2.jpg)
|
||||
|
||||
Many of today’s most well-known programming languages are old enough to vote. PHP is 20. Python is 23. HTML is 21. Ruby and JavaScript are 19. C is a whopping 42 years old.
|
||||
|
||||
Nobody could have predicted this. Not even computer scientist [Brian Kernighan][1], co-author of the very first book on C, which is still being printed today. (The language itself was the work of Kernighan's [co-author Dennis Ritchie][2], who passed away in 2011.)
|
||||
|
||||
“I dimly recall a conversation early on with the editors, telling them that we’d sell something like 5,000 copies of the book,” Kernighan told me in a recent interview. “We managed to do better than that. I didn’t think students would still be using a version of it as a textbook in 2014.”
|
||||
|
||||
What’s especially remarkable about C's persistence is that Google developed a new language, Go, specifically to more efficiently solve the problems C solves now. Still, it’s hard for Kernighan to imagine something like Go outright killing C no matter how good it is.
|
||||
|
||||
“Most languages don’t die—or at least once they get to a certain level of acceptance they don’t die," he said. "C still solves certain problems better than anything else, so it sticks around.”
|
||||
|
||||
### Write What You Know ###
|
||||
|
||||
Why do some computer languages become more successful than others? Because developers choose to use them. That’s logical enough, but it gets tricky when you want to figure out why developers choose to use the languages they do.
|
||||
|
||||
Ari Rabkin and Leo Meyerovich are researchers from, respectively, Princeton and the University of California at Berkeley who devoted two years to answering just that question. Their resulting paper, [Empirical Analysis of Programming Language Adoption][3], describes their analysis of more than 200,000 Sourceforge projects and polling of more than 13,000 programmers.
|
||||
|
||||
Their main finding? Most of the time programmers choose programming languages they know.
|
||||
|
||||
“There are languages we use because we’ve always used them,” Rabkin told me. “For example, astronomers historically use IDL [Interactive Data Language] for their computer programs, not because it has special features for stars or anything, but because it has tremendous inertia. They have good programs they’ve built with it that they want to keep.”
|
||||
|
||||
In other words, it’s partly thanks to name recognition that established languages retain monumental staying power. Of course, that doesn’t mean popular languages don’t change. Rabkin noted that the C we use today is nothing like the language Kernighan first wrote about, which probably wouldn’t be fully compatible with a modern C compiler.
|
||||
|
||||
“There’s an old, relevant joke in which an engineer is asked which language he thinks people will be using in 30 years and he says, ‘I don’t know, but it’ll be called Fortran’,” Rabkin said. “Long-lived languages are not the same as how they were when they were designed in the '70s and '80s. People have mostly added things instead of removed because that doesn’t break backwards compatibility, but many features have been fixed.”
|
||||
|
||||
This backwards compatibility means that not only can programmers continue to use languages as they update programs, they also don’t need to go back and rewrite the oldest sections. That older ‘legacy code’ keeps languages around forever, but at a cost. As long as it’s there, people’s beliefs about a language will stick around, too.
|
||||
|
||||
### PHP: A Case Study Of A Long-Lived Language ###
|
||||
|
||||
Legacy code refers to programs—or portions of programs—written in outdated source code. Think, for instance, of key programming functions for a business or engineering project that are written in a language that no one supports. They still carry out their original purpose and are too difficult or expensive to rewrite in modern code, so they stick around, forcing programmers to turn handsprings to ensure they keep working even as other code changes around them.
|
||||
|
||||
Any language that's been around more than a few years has a legacy-code problem of some sort, and PHP is no exception. PHP is an interesting example because its legacy code is distinctly different from its modern code, in what proponents say—and critics admit—is a huge improvement.
|
||||
|
||||
Andi Gutmans is a co-inventor of the Zend Engine, the compiler that became standard by the time PHP4 came around. Gutmans said he and his partner originally wanted to improve PHP3, and were so successful that the original PHP inventor, Rasmus Lerdorf, joined their project. The result was a compiler for PHP4 and its successor, PHP5.
|
||||
|
||||
As a consequence, the PHP of today is quite different from its progenitor, the original PHP. Yet in Gutmans' view, the base of legacy code written in older PHP versions keeps alive old prejudices against the language—such as the notion that PHP is riddled with security holes, or that it can't "scale" to handle large computing tasks.
|
||||
|
||||
"People who criticize PHP are usually criticizing where it was in 1998,” he says. “These people are not up-to-date with where it is today. PHP today is a very mature ecosystem.”
|
||||
|
||||
Today, Gutmans says, the most important thing for him as a steward is to encouraging people to keep updating to the latest versions. “PHP is a big enough community now that you have big legacy code bases," he says. "But generally speaking, most of our communities are on PHP5.3 at minimum.”
|
||||
|
||||
The issue is that users never fully upgrade to the latest version of any language. It’s why many Python users are still using Python 2, released in 2000, instead of Python 3, released in 2008. Even after six years major users like Google still aren’t upgrading. There are a variety of reasons for this, but it made many developers wary about taking the plunge.
|
||||
|
||||
“Nothing ever dies," Rabkin says. "Any language with legacy code will last forever. Rewrites are expensive and if it’s not broke don’t fix it.”
|
||||
|
||||
### Developer Brains As Scarce Resources ###
|
||||
|
||||
Of course, developers aren’t choosing these languages merely to maintain pesky legacy code. Rabkin and Meyerovich found that when it comes to language preference, age is just a number. As Rabkin told me:
|
||||
|
||||
> A thing that really shocked us and that I think is important is that we grouped people by age and asked them how many languages they know. Our intuition was that it would gradually rise over time; it doesn’t. Twenty-five-year-olds and 45-year-olds all know about the same number of languages. This was constant through several rewordings of the question. Your chance of knowing a given language does not vary with your age.
|
||||
|
||||
In other words, it’s not just old developers who cling to the classics; young programmers are also discovering and adopting old languages for the first time. That could be because the languages have interesting libraries and features, or because the communities these developers are a part of have adopted the language as a group.
|
||||
|
||||
“There’s a fixed amount of programmer attention in the world,” said Rabkin. “If a language delivers enough distinctive value, people will learn it and use it. If the people you exchange code and knowledge with you share a language, you’ll want to learn it. So for example, as long as those libraries are Python libraries and community expertise is Python experience, Python will do well.”
|
||||
|
||||
Communities are a huge factor in how languages do, the researchers discovered. While there's not much difference between high level languages like Python and Ruby, for example, programmers are prone to develop strong feelings about the superiority of one over the other.
|
||||
|
||||
“Rails didn’t have to be written in Ruby, but since it was, it proves there were social factors at work,” Rabkin says. “For example, the thing that resurrected Objective-C is that the Apple engineering team said, ‘Let’s use this.’ They didn’t have to pick it.”
|
||||
|
||||
Through social influence and legacy code, our oldest and most popular computer languages have powerful inertia. How could Go surpass C? If the right people and companies say it ought to.
|
||||
|
||||
“It comes down to who is better at evangelizing a language,” says Rabkin.
|
||||
|
||||
Lead image by [Blake Patterson][4]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://readwrite.com/2014/09/02/programming-language-coding-lifetime
|
||||
|
||||
作者:[Lauren Orsini][a]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:http://readwrite.com/author/lauren-orsini
|
||||
[1]:http://en.wikipedia.org/wiki/Brian_Kernighan
|
||||
[2]:http://en.wikipedia.org/wiki/Dennis_Ritchie
|
||||
[3]:http://asrabkin.bitbucket.org/papers/oopsla13.pdf
|
||||
[4]:https://www.flickr.com/photos/blakespot/2444037775/
|
@ -0,0 +1,73 @@
|
||||
With Apple Watch Unveiled, Could an Ubuntu Smartwatch Be Next?
|
||||
================================================================================
|
||||
**Apple today confirmed its long-rumoured foray into the wearable computing market with the launch of ‘Apple Watch’.**
|
||||
|
||||
![Ubuntu Smartwatch – good idea?](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/ubuntu-galaxy-gear-smartwatch.png)
|
||||
|
||||
Ubuntu Smartwatch – good idea?
|
||||
|
||||
Backed by a robust set of features, hardware solutions and app partnerships, the wrist mounted device is being heralded by the company as “a new chapter in the relationship people have with technology.”
|
||||
|
||||
But does its arrival, and the uptick in consumer interest it will likely bring, mean Ubuntu should follow with a version of Ubuntu for smartwatches?
|
||||
|
||||
### Big Hand Is On Success ###
|
||||
|
||||
Apple joins the fast growing smart-watch sector at just about the right time. The boundaries of what a wrist-mounted computer can and should do are not yet set in stone. Bad design, poor user interfaces, and weak arguments for the usefulness of wearable technology to mainstream users has seen the hardware category remains sufficiently impressionable — a factor that has allowed Cupertino to take its time with the Apple Watch.
|
||||
|
||||
> ‘More than 22 million smartwatches will be sold this year, say analysts’
|
||||
|
||||
Sales of wearables, including fitness trackers, last year were just shy of 10 million units worldwide. This year the number of devices analysts expect to see shifted will pass 22 million — and that’s without the Apple Watch, which doesn’t hit retail until early 2015.
|
||||
|
||||
It’s easy to see where the growth is going to come from. The IFA 2014 tradeshow held in Berlin at the start of September played host to a swathe of new wearables from major OEMs, including Sony and ASUS. Most are running Google’s newly released Android Wear platform.
|
||||
|
||||
A more mature offering, Android Wear debunks the novelty argument often associated with the form factor to present a consistent and convincing user scenario. Though, as with the new Apple Watch, it is one tightly hinging on an existing smartphone ecosystem.
|
||||
|
||||
Whether it’s a use case a wrist-mounted version Ubuntu can match isn’t (yet) clear.
|
||||
|
||||
#### ‘No Plans for an Ubuntu Smartwatch’ ####
|
||||
|
||||
The versatility of the Ubuntu OS combined with the stringent vision for a multi-device and convergent future has already seen Canonical target smart TVs, tablets and smartphones. Mir, the company’s homegrown display server, was even created to power interfaces on screens of all sizes (though admittedly not 1.5″ ones!).
|
||||
|
||||
At the start of this year then-Canonical community manager Jono Bacon was asked whether there were plans for an Ubuntu watch. Offering his opinion on the subject, Bacon mused: “adding another form factor to the [ubuntu touch] roadmap would only slow things down”.
|
||||
|
||||
As the two year anniversary of the Ubuntu Phone announcement approaches, it’s hard not to agree with him.
|
||||
|
||||
### Tick, Tock, Hedge-Your-Bets O’Clock ###
|
||||
|
||||
But all hope is not lost. In a [press call a few months later][1] Ubuntu founder Mark Shuttleworth mentioned wearable technologies in the same breath as the company’s plans for TVs, tablets and smartphones, saying:
|
||||
|
||||
> “Ubuntu is really unique in that it has this beautiful design on the phone, but it’s also designed at the same time to feed all of those other ecosystems, from wearables to the PC.”
|
||||
|
||||
While far from concrete confirmation, it serves as a pointer; an optimistic hedge in that direction.
|
||||
|
||||
#### Not likely — and here’s why ####
|
||||
|
||||
Canonical is not averse to entering markets with entrenched monopolies. In fact, it’s in the DNA of the company — RHEL on servers, Windows on desktops, Android on smartphones…
|
||||
|
||||
Ubuntu for devices is built as such that it could be expended to and adapted to run on smaller screens, possible even those as small as a watch face. When the common code base is in place for phone, tablet, desktop and TV I’d be surprised if we didn’t see some sort of effort in this direction from the community.
|
||||
|
||||
But reason why I don’t think it’s likely to happen from Canonical’s side, at least not yet, is an echo of Jono Bacon’s personal thoughts earlier this year: time and effort.
|
||||
|
||||
Tim Cook said in his keynote: “*We didn’t take the iPhone and shrink the user interface and strap it on your wrist.*” It’s an obvious statement. Designing a UI and UX model for such a small screen; working through interaction methodologies; complimenting hardware and input models isn’t a simple task.
|
||||
|
||||
Wearable technology is still a nascent market. At this stage Canonical would be wasting development, design and business time in pursuing it. Any benefits would be outweighed by the loss in other, more pressing areas.
|
||||
|
||||
Playing the longer game, waiting it out to see where other efforts succeed and fail, is the harder route, but the one better suited to Ubuntu as it stands today. It’s better for Canonical to focus energies on existing products (which some argue are already arriving late) before throwing newer ones out ahead of them.
|
||||
|
||||
**For an idea of what an Ubuntu smartwatch could be like hit play on the following video which shows an interactive Unity themed skin for the Tizen powered Samsung Galaxy Gear smartwatch.**
|
||||
|
||||
注:youtube视频,发布的时候不行做个链接吧
|
||||
<iframe width="750" height="563" frameborder="0" allowfullscreen="" src="https://www.youtube.com/embed/8Zf5dktXzEs?feature=oembed"></iframe>
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://www.omgubuntu.co.uk/2014/09/ubuntu-smartwatch-apple-iwatch
|
||||
|
||||
作者:[Joey-Elijah Sneddon][a]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://plus.google.com/117485690627814051450/?rel=author
|
||||
[1]:http://www.omgubuntu.co.uk/2014/03/ubuntu-tablets-coming-year
|
@ -1,90 +0,0 @@
|
||||
alim0x translating
|
||||
|
||||
The history of Android
|
||||
================================================================================
|
||||
![The main alarm screen, setting an alarm, the calculator, and the calculator advanced functions screen.](http://cdn.arstechnica.net/wp-content/uploads/2013/12/calclockonpresszx.png)
|
||||
The main alarm screen, setting an alarm, the calculator, and the calculator advanced functions screen.
|
||||
Photo by Ron Amadeo
|
||||
|
||||
Android 0.9 gave us the first look at the Alarm and Calculator apps. The alarm app featured a plain analog clock with a scrolling list of alarms on the bottom. Rather than some kind of on/off switch, alarms were set with a checkbox. Alarms could be set to repeat at certain days of the week, and there was a whole list of selectable, unique alarm sounds.
|
||||
|
||||
The calculator was an all-black app with glossy, round buttons. Through the menu, it was possible to bring up an additional panel with advanced functions. Again consistency was not Google’s strong suit. The on-press highlight on the pi key was red—in the rest of Android 0.9, the on-press highlight was usually orange. In fact, everything used in the calculator was 100 percent custom artwork limited to only the calculator.
|
||||
|
||||
![Google Maps with the menu open and the new directions interface.](http://cdn.arstechnica.net/wp-content/uploads/2013/12/mps092.png)
|
||||
Google Maps with the menu open and the new directions interface.
|
||||
Photo by Ron Amadeo
|
||||
|
||||
Google Maps actually worked in Android 0.9—the client could connect to the Google Maps server and pull down tiles. (For our images, remember that Google Maps is cloud based. Even the oldest of clients will still pull down modern map tiles, so ignore the actual map tiles pictured.) The Maps menu got the same all-gray treatment as the browser menu, and the zoom controls were the same as the browser too. The all-important "My Location" button finally arrived, meaning this version of Maps supported GPS location.
|
||||
|
||||
The directions interface was revamped. The weird speech bubbles with misaligned plus buttons were swapped out for a more communicative bookmark icon, the swap field button moved to the left, and the go button was now labeled "Route."
|
||||
|
||||
![The Google Maps layers selector, search history, and the now-broken street view mode.](http://cdn.arstechnica.net/wp-content/uploads/2013/12/maps3.png)
|
||||
The Google Maps layers selector, search history, and the now-broken street view mode.
|
||||
Photo by Ron Amadeo
|
||||
|
||||
"Layers" was renamed "Map Mode" and switched to a radio button list. Only one map type was available at a time—you couldn't see traffic on the satellite view, for instance. Buried in the menu was a hastily thrown together search history screen. History seemed like only a proof-of-concept, with giant, blurry search icons that rammed up against search terms on a transparent background.
|
||||
|
||||
Street View used to be a separate app (although it was never made available to the public), but in 0.9 it was integrated into Google Maps as a Map Mode. You could drag the little pegman around, and it would display a popup bubble showing the thumbnail for Street View. Tapping on the thumbnail would launch Street View for that area. At the time, Street View showed nothing other than a scrollable 360 degree image—there was no UI on the interface at all.
|
||||
|
||||
![Our first look at the Google Maps search interface. These shots show the search bar, the results in a list, the results in a map, and a business page.](http://cdn.arstechnica.net/wp-content/uploads/2013/12/manystarbucks.png)
|
||||
Our first look at the Google Maps search interface. These shots show the search bar, the results in a list, the results in a map, and a business page.
|
||||
Photo by Ron Amadeo
|
||||
|
||||
Android 0.9 also gave us our first look at the texting app, called "Messaging." Like many early Android designs, Messaging wasn't sure if it should be a dark app or a light app. The first visible screen was the message list, a stark black void of nothingness that looked like it was built on top of the settings interface. After tapping on “New Message" or one of the existing conversations, though, you were taken to a white and blue scrolling list of text messages. The two connected screens couldn’t be more different.
|
||||
|
||||
![The SMS app’s chat window, attachment screen, chat list, and setting.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/sms09.png)
|
||||
The SMS app’s chat window, attachment screen, chat list, and setting.
|
||||
Photo by Ron Amadeo
|
||||
|
||||
Messaging supported a range of attachments: you could tack on pictures, audio, or a slideshow to your message. Pictures and audio could be recorded on the fly or pulled from phone storage. Another odd UI choice was that Android already had an established icon for almost everything in the attach menu, but Messaging used all-custom art instead.
|
||||
|
||||
Messaging was one of the first apps to have its own settings screen. Users could request read and delivery reports and set download preferences.
|
||||
|
||||
![The slideshow creator. The right picture shows the menu options.](http://cdn.arstechnica.net/wp-content/uploads/2013/12/slideshow.png)
|
||||
The slideshow creator. The right picture shows the menu options.
|
||||
Photo by Ron Amadeo
|
||||
|
||||
The "slideshow" option in attachments would actually launch a fully featured slideshow creator. You could add pictures, choose the slide order, add music, change the duration of each slide, and add text. This was complicated enough to have its own app icon, but amazingly it was buried in the menu of the SMS app. This was one of the few Android apps that was completely unusable in portrait mode—the only way to see the picture and the controls was in landscape. Strangely, it would still rotate to portrait, but the layout just became a train wreck.
|
||||
|
||||
![The Music player’s main navigation page, song list, album list, and “now playing" screen.](http://cdn.arstechnica.net/wp-content/uploads/2013/12/music09.png)
|
||||
The Music player’s main navigation page, song list, album list, and “now playing" screen.
|
||||
Photo by Ron Amadeo
|
||||
|
||||
Android 0.9 was the first to bring a music app to Android. The primary screen was mostly just four big, chunky navigation buttons that would take you to each music view. At the bottom of the app was a "now playing" bar that only contained the track name, artist, and a play/pause button. The song list had only a bare minimum interface, only showing the song name, artist, album and runtime. Album art was the only hope of seeing any color in this app. It was displayed as a tiny thumbnail in the album view and as a big, quarter-screen image in the Now Playing view.
|
||||
|
||||
Like most parts of Android in this era, the interface may not have been much to look at, but the features were there. The Now Playing screen had a button for a playlist queue that allowed you to drag songs around, shuffle, repeat, search, and choose background audio.
|
||||
|
||||
![The “Pictures" all album view, individual album view, and a single picture view.](http://cdn.arstechnica.net/wp-content/uploads/2013/12/pictures09.png)
|
||||
The “Pictures" all album view, individual album view, and a single picture view.
|
||||
Photo by Ron Amadeo
|
||||
|
||||
The photo gallery was simply called "Pictures." The initial view showed all your albums. The two default ones were "Camera" and a large unified album called "All pictures." The thumbnail for each album was made up of a 2x2 grid of pictures, and every picture got a thick, white frame.
|
||||
|
||||
The individual album view was about what you would expect: a scrolling grid of pictures. You couldn't swipe through individual pictures—large left and right arrows flanking the individual picture had to be tapped on to move through an album. There was no pinch-zoom either; you had to zoom in and out with buttons.
|
||||
|
||||
![Picture editing! These screenshots show an open menu, the “more" menu, cropping, and the settings.](http://cdn.arstechnica.net/wp-content/uploads/2013/12/pics209.png)
|
||||
Picture editing! These screenshots show an open menu, the “more" menu, cropping, and the settings.
|
||||
Photo by Ron Amadeo
|
||||
|
||||
"Pictures" looked simple until you hit the menu button and suddenly accessed a myriad of options. Pictures could be cropped, rotated, deleted, or set as a wallpaper or contact icon. Like the browser, all of this was accomplished through a clumsy double-menu system. But again, why do two related menus look completely different?
|
||||
|
||||
Android 0.9 came out a mere two months before the first commercial release of Android. That was just enough time for app developers to make sure their apps worked—and for Google to do some testing and bug squashing before the big release.
|
||||
|
||||
----------
|
||||
|
||||
![Ron Amadeo](http://cdn.arstechnica.net/wp-content//uploads/authors/ron-amadeo-sq.jpg)
|
||||
|
||||
[Ron Amadeo][a] / Ron is the Reviews Editor at Ars Technica, where he specializes in Android OS and Google products. He is always on the hunt for a new gadget and loves to rip things apart to see how they work.
|
||||
|
||||
[@RonAmadeo][t]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/5/
|
||||
|
||||
译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:http://arstechnica.com/author/ronamadeo
|
||||
[t]:https://twitter.com/RonAmadeo
|
@ -1,49 +0,0 @@
|
||||
Linux FAQs with Answers--How to enable Nux Dextop repository on CentOS or RHEL
|
||||
================================================================================
|
||||
> **Question**: I would like to install a RPM package which is available only in Nux Dextop repository. How can I set up Nux Dextop repository on CentOS or RHEL?
|
||||
|
||||
[Nux Dextop][1] is a third-party RPM repository which contains many popular desktop and multimedia related packages (e.g., Ardour, Shutter, etc) for CentOS, RHEL and ScientificLinux. Currently, Nux Dextop repository is available for CentOS/RHEL 6 and 7.
|
||||
|
||||
To enable Nux Dextop repository on CentOS or RHEL, follow the instructions below.
|
||||
|
||||
First of all, understand that Nux Dextop is designed to coexist with EPEL repository. So you need to [enable EPEL][2] in order to use Nux Dextop repo.
|
||||
|
||||
After enabling EPEL, go ahead and install Nux Dextop repository with rpm command as follows.
|
||||
|
||||
On CentOS/RHEL 6.*:
|
||||
|
||||
$ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
|
||||
|
||||
On CentOS/RHEL 7:
|
||||
|
||||
$ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
|
||||
|
||||
Now verify that Nux Dextop repository is successfully installed:
|
||||
|
||||
$ yum repolist
|
||||
|
||||
![](https://farm6.staticflickr.com/5574/14790031847_90b4a829d7_z.jpg)
|
||||
|
||||
### For Repoforge/RPMforge Users ###
|
||||
|
||||
According to the author, Nux Dextop is known to cause conflicts with other third-party RPM repos such as Repoforge and ATrpms. Therefore, if you enabled any third-party repos other than EPEL, it is highly recommend you set Nux Dextop repository to "default off" state. That is, open /etc/yum.repos.d/nux-dextop.repo with a text editor, and change "enabled=1" to "enabled=0" under nux-desktop.
|
||||
|
||||
$ sudo vi /etc/yum.repos.d/nux-dextop.repo
|
||||
|
||||
![](https://farm6.staticflickr.com/5560/14789955930_f8711b3581_z.jpg)
|
||||
|
||||
Then whenever you want to install a package from Nux Dextop repo, explicitly enable the repo as follows.
|
||||
|
||||
$ sudo yum --enablerepo=nux-dextop install <package-name>
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://ask.xmodulo.com/enable-nux-dextop-repository-centos-rhel.html
|
||||
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[1]:http://li.nux.ro/download/nux/dextop/
|
||||
[2]:http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html
|
@ -1,3 +1,4 @@
|
||||
>>Linchenguang is translating
|
||||
Linux TCP/IP networking: net-tools vs. iproute2
|
||||
================================================================================
|
||||
Many sysadmins still manage and troubleshoot various network configurations by using a combination of ifconfig, route, arp and netstat command-line tools, collectively known as net-tools. Originally rooted in the BSD TCP/IP toolkit, the net-tools was developed to configure network functionality of older Linux kernels. Its development in the Linux community so far has ceased since 2001. Some Linux distros such as Arch Linux and CentOS/RHEL 7 have already deprecated net-tools in favor of iproute2.
|
||||
@ -255,4 +256,4 @@ via: http://xmodulo.com/2014/09/linux-tcpip-networking-net-tools-iproute2.html
|
||||
[1]:https://www.kernel.org/pub/linux/utils/net/iproute2/
|
||||
[2]:http://xmodulo.com/2013/02/how-to-assign-multiple-ip-addresses-to-one-network-interface-on-centos.html
|
||||
[3]:http://xmodulo.com/2014/02/spoof-mac-address-network-interface-linux.html
|
||||
[4]:http://xmodulo.com/2013/02/how-to-add-or-remove-static-arp-entry-on-linux.html
|
||||
[4]:http://xmodulo.com/2013/02/how-to-add-or-remove-static-arp-entry-on-linux.html
|
||||
|
@ -0,0 +1,23 @@
|
||||
Colourful ! systemd vs sysVinit Linux Cheatsheet
|
||||
================================================================================
|
||||
**systemd** is the new init system, starting with Fedora and now adopted in many distributions like RedHat, Suse and Centos. Historically, most of us have been using traditional SysV init scripts normally residing in /etc/rc.d/init.d/. These scripts invoke a daemon binary which will then fork a background process. Even though shell scripts are very flexible, tasks like supervising processes and parallelized execution ordering are difficult to implement. With the introduction of systemd’s new-style daemons it is easier to supervise and control them at runtime and it simplifies their implementation.
|
||||
|
||||
The **systemctl** command is a very good initiative by the systemd team. It shows more detailed error messages and also runtime errors of services including start-up errors. systemd have introduced a new term called **cgroups** (control groups) which is basically groups of process that can be arranged in a hierarchy. With the original init system, determining which process does what and who it belongs to becomes increasingly difficult. With systemd, when processes spawn other processes these children are automatically made members of the parents cgroup thus avoiding confusions about inheritance.
|
||||
|
||||
![](http://images.linoxide.com/systemd-vs-sysVinit-cheatsheet.jpg)
|
||||
|
||||
There are a lot of new [systemd commands available on rhel / centos 7.0][1]注:此文原文已做,文件名是:20140901 Awesome systemd Commands to Manage Linux System.md,如果翻译发布了,可修改此链接 version that would replace sysvinit commands. You can also download [pdf version of the systemd vs sysvinit cheatsheet][2].
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://linoxide.com/linux-command/systemd-vs-sysvinit-cheatsheet/
|
||||
|
||||
作者:[Bobbin Zachariah][a]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:http://linoxide.com/author/bobbin/
|
||||
[1]:http://linoxide.com/linux-command/linux-systemd-commands/
|
||||
[2]:http://images.linoxide.com/systemd-vs-sysVinit-cheatsheet.pdf
|
@ -0,0 +1,38 @@
|
||||
How To Recover Default Openbox Config Files On Crunchbang
|
||||
================================================================================
|
||||
[CrunchBang][1] is a Debian GNU/Linux based distribution offering a great blend of speed, style and substance. Using the nimble Openbox window manager, it is highly customizable and provides a modern, full-featured GNU/Linux system without sacrificing performance.
|
||||
|
||||
As Crunchbang is highly customizable, users tweak it to their liking as much as they can. All this is done via text files (config). As a “Crunchbanger” myself, I recently messed up with my **menu.xml** config file, which is responsible for the menu shown below.
|
||||
|
||||
![](http://180016988.r.cdn77.net/wp-content/uploads/2014/09/curnchbang_menu_xml.png)
|
||||
|
||||
Which removed every code from the menu configuration file. Since I wasn’t having a backup (It’s good to backup config files too) I have to search for the default configuration that comes with Crunchbang out of the box. And here’s how I got it fixed thanks to Crunchbang forums.
|
||||
|
||||
It is very interesting to know all default configs were pre-backed up for you and can be found at
|
||||
|
||||
/etc/skel/.config/
|
||||
|
||||
So for any default config you just copy them over and restart the appropriate application.
|
||||
|
||||
I will use Openbox **menu.xml** as an example here:
|
||||
|
||||
![](http://180016988.r.cdn77.net/wp-content/uploads/2014/09/curnchbang_menu_xml_etc.png)
|
||||
|
||||
cp -r /etc/skel/.config/openbox/menu.xml ~/.config/openbox/menu.xml
|
||||
|
||||
Then restart openbox.
|
||||
|
||||
openbox --restart
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://www.unixmen.com/recover-default-openbox-config-files-crunchbang/
|
||||
|
||||
作者:[Enock Seth Nyamador][a]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:http://www.unixmen.com/author/seth/
|
||||
[1]:http://crunchbang.org/
|
@ -0,0 +1,156 @@
|
||||
How to create a cloud-based encrypted file system on Linux
|
||||
================================================================================
|
||||
Commercial cloud storage services such as [Amazon S3][1] and [Google Cloud Storage][2] offer highly available, scalable, infinite-capacity object store at affordable costs. To accelerate wide adoption of their cloud offerings, these providers are fostering rich developer ecosystems around their products based on well-defined APIs and SDKs. Cloud-backed file systems are one popular by-product of such active developer communities, for which several open-source implementations exist.
|
||||
|
||||
[S3QL][3] is one of the most popular open-source cloud-based file systems. It is a FUSE-based file system backed by several commercial or open-source cloud storages, such as Amazon S3, Google Cloud Storage, Rackspace CloudFiles, or OpenStack. As a full featured file system, S3QL boasts of a number of powerful capabilities, such as unlimited capacity, up to 2TB file sizes, compression, UNIX attributes, encryption, snapshots with copy-on-write, immutable trees, de-duplication, hardlink/symlink support, etc. Any bytes written to an S3QL file system are compressed/encrypted locally before being transmitted to cloud backend. When you attempt to read contents stored in an S3QL file system, the corresponding objects are downloaded from cloud (if not in the local cache), and decrypted/uncompressed on the fly.
|
||||
|
||||
To be clear, S3QL does have limitations. For example, you cannot mount the same S3FS file system on several computers simultaneously, but only once at a time. Also, no ACL (access control list) support is available.
|
||||
|
||||
In this tutorial, I am going to describe **how to set up an encrypted file system on top of Amazon S3, using S3QL**. As an example use case, I will also demonstrate how to run rsync backup tool on top of a mounted S3QL file system.
|
||||
|
||||
### Preparation ###
|
||||
|
||||
To use this tutorial, you will need to create an [Amazon AWS account][4] (sign up is free, but requires a valid credit card).
|
||||
|
||||
If you haven't done so, first [create an AWS access key][4] (access key ID and secret access key) which is needed to authorize S3QL to access your AWS account.
|
||||
|
||||
Now, go to AWS S3 via AWS management console, and create a new empty bucket for S3QL.
|
||||
|
||||
![](https://farm4.staticflickr.com/3841/15170673701_7d0660e11f_c.jpg)
|
||||
|
||||
For best performance, choose a region which is geographically closest to you.
|
||||
|
||||
![](https://farm4.staticflickr.com/3902/15150663516_4928d757fc_b.jpg)
|
||||
|
||||
### Install S3QL on Linux ###
|
||||
|
||||
S3QL is available as a pre-built package on most Linux distros.
|
||||
|
||||
#### On Debian, Ubuntu or Linux Mint: ####
|
||||
|
||||
$ sudo apt-get install s3ql
|
||||
|
||||
#### On Fedora: ####
|
||||
|
||||
$ sudo yum install s3ql
|
||||
|
||||
On Arch Linux, use [AUR][6].
|
||||
|
||||
### Configure S3QL for the First Time ###
|
||||
|
||||
Create authinfo2 file in ~/.s3ql directory, which is a default S3QL configuration file. This file contains information about a required AWS access key, S3 bucket name and encryption passphrase. The encryption passphrase is used to encrypt the randomly-generated master encryption key. This master key is then used to encrypt actual S3QL file system data.
|
||||
|
||||
$ mkdir ~/.s3ql
|
||||
$ vi ~/.s3ql/authinfo2
|
||||
|
||||
----------
|
||||
|
||||
[s3]
|
||||
storage-url: s3://[bucket-name]
|
||||
backend-login: [your-access-key-id]
|
||||
backend-password: [your-secret-access-key]
|
||||
fs-passphrase: [your-encryption-passphrase]
|
||||
|
||||
The AWS S3 bucket that you specify should be created via AWS management console beforehand.
|
||||
|
||||
Make the authinfo2 file readable to you only for security.
|
||||
|
||||
$ chmod 600 ~/.s3ql/authinfo2
|
||||
|
||||
### Create an S3QL File System ###
|
||||
|
||||
You are now ready to create an S3QL file system on top of AWS S3.
|
||||
|
||||
Use mkfs.s3ql command to create a new S3QL file system. The bucket name you supply with the command should be matched with the one in authinfo2 file. The "--ssl" option forces you to use SSL to connect to backend storage servers. By default, the mkfs.s3ql command will enable compression and encryption in the S3QL file system.
|
||||
|
||||
$ mkfs.s3ql s3://[bucket-name] --ssl
|
||||
|
||||
You will be asked to enter an encryption passphrase. Type the same passphrase as you defined in ~/.s3ql/autoinfo2 (under "fs-passphrase").
|
||||
|
||||
If a new file system was created successfully, you will see the following output.
|
||||
|
||||
![](https://farm6.staticflickr.com/5582/14988587230_e182ca3abd_z.jpg)
|
||||
|
||||
### Mount an S3QL File System ###
|
||||
|
||||
Once you created an S3QL file system, the next step is to mount it.
|
||||
|
||||
First, create a local mount point, and then use mount.s3ql command to mount an S3QL file system.
|
||||
|
||||
$ mkdir ~/mnt_s3ql
|
||||
$ mount.s3ql s3://[bucket-name] ~/mnt_s3ql
|
||||
|
||||
You do not need privileged access to mount an S3QL file system. Just make sure that you have write access to the local mount point.
|
||||
|
||||
Optionally, you can specify a compression algorithm to use (e.g., lzma, bzip2, zlib) with "--compress" option. Without it, lzma algorithm is used by default. Note that when you specify a custom compression algorithm, it will apply to newly created data objects, not existing ones.
|
||||
|
||||
$ mount.s3ql --compress bzip2 s3://[bucket-name] ~/mnt_s3ql
|
||||
|
||||
For performance reason, an S3QL file system maintains a local file cache, which stores recently accessed (partial or full) files. You can customize the file cache size using "--cachesize" and "--max-cache-entries" options.
|
||||
|
||||
To allow other users than you to access a mounted S3QL file system, use "--allow-other" option.
|
||||
|
||||
If you want to export a mounted S3QL file system to other machines over NFS, use "--nfs" option.
|
||||
|
||||
After running mount.s3ql, check if the S3QL file system is successfully mounted:
|
||||
|
||||
$ df ~/mnt_s3ql
|
||||
$ mount | grep s3ql
|
||||
|
||||
![](https://farm4.staticflickr.com/3863/15174861482_27a842da3e_z.jpg)
|
||||
|
||||
### Unmount an S3QL File System ###
|
||||
|
||||
To unmount an S3QL file system (with potentially uncommitted data) safely, use umount.s3ql command. It will wait until all data (including the one in local file system cache) has been successfully transferred and written to backend servers. Depending on the amount of write-pending data, this process can take some time.
|
||||
|
||||
$ umount.s3ql ~/mnt_s3ql
|
||||
|
||||
View S3QL File System Statistics and Repair an S3QL File System
|
||||
|
||||
To view S3QL file system statistics, you can use s3qlstat command, which shows information such as total data/metadata size, de-duplication and compression ratio.
|
||||
|
||||
$ s3qlstat ~/mnt_s3ql
|
||||
|
||||
![](https://farm6.staticflickr.com/5559/15184926905_4815e5827a_z.jpg)
|
||||
|
||||
You can check and repair an S3QL file system with fsck.s3ql command. Similar to fsck command, the file system being checked needs to be unmounted first.
|
||||
|
||||
$ fsck.s3ql s3://[bucket-name]
|
||||
|
||||
### S3QL Use Case: Rsync Backup ###
|
||||
|
||||
Let me conclude this tutorial with one popular use case of S3QL: local file system backup. For this, I recommend using rsync incremental backup tool especially because S3QL comes with a rsync wrapper script (/usr/lib/s3ql/pcp.py). This script allows you to recursively copy a source tree to a S3QL destination using multiple rsync processes.
|
||||
|
||||
$ /usr/lib/s3ql/pcp.py -h
|
||||
|
||||
![](https://farm4.staticflickr.com/3873/14998096829_d3a64749d0_z.jpg)
|
||||
|
||||
The following command will back up everything in ~/Documents to an S3QL file system via four concurrent rsync connections.
|
||||
|
||||
$ /usr/lib/s3ql/pcp.py -a --quiet --processes=4 ~/Documents ~/mnt_s3ql
|
||||
|
||||
The files will first be copied to the local file cache, and then gradually flushed to the backend servers over time in the background.
|
||||
|
||||
For more information about S3QL such as automatic mounting, snapshotting, immuntable trees, I strongly recommend checking out the [official user's guide][7]. Let me know what you think of S3QL. Share your experience with any other tools.
|
||||
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://xmodulo.com/2014/09/create-cloud-based-encrypted-file-system-linux.html
|
||||
|
||||
作者:[Dan Nanni][a]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:http://xmodulo.com/author/nanni
|
||||
[1]:http://aws.amazon.com/s3
|
||||
[2]:http://code.google.com/apis/storage/
|
||||
[3]:https://bitbucket.org/nikratio/s3ql/
|
||||
[4]:http://aws.amazon.com/
|
||||
[5]:http://ask.xmodulo.com/create-amazon-aws-access-key.html
|
||||
[6]:https://aur.archlinux.org/packages/s3ql/
|
||||
[7]:http://www.rath.org/s3ql-docs/
|
@ -0,0 +1,75 @@
|
||||
How to download GOG games from the command line on Linux
|
||||
================================================================================
|
||||
If you are a gamer and a Linux user, you probably were delighted when [GOG][1] announced a few months ago that it will start proposing games for your favorite OS. If you have never heard of GOG before, I encourage you to check out their catalog of “good old games”, reasonably priced, DRM-free, and packed with goodies. However, if the Windows client for GOG existed for quite some time now, an official Linux version is nowhere to be seen. So if waiting for the official version is uncomfortable for you, an unofficial open source program named LGOGDownloader gives you access to your library from the command line.
|
||||
|
||||
![](https://farm4.staticflickr.com/3843/15121593356_b13309c70f_z.jpg)
|
||||
|
||||
### Install LGOGDownloader on Linux ###
|
||||
|
||||
For Ubuntu users, the [official page][2] recommends that you download the sources and do:
|
||||
|
||||
$ sudo apt-get install build-essential libcurl4-openssl-dev liboauth-dev libjsoncpp-dev libhtmlcxx-dev libboost-system-dev libboost-filesystem-dev libboost-regex-dev libboost-program-options-dev libboost-date-time-dev libtinyxml-dev librhash-dev help2man
|
||||
$ tar -xvzf lgogdownloader-2.17.tar.gz
|
||||
$ cd lgogdownloader-2.17
|
||||
$ make release
|
||||
$ sudo make install
|
||||
|
||||
If you are an Archlinux user, an [AUR package][2] is waiting for you.
|
||||
|
||||
### Usage of LGOGDownloader ###
|
||||
|
||||
Once the program is installed, you will need to identify yourself with the command:
|
||||
|
||||
$ lgogdownloader --login
|
||||
|
||||
![](https://farm6.staticflickr.com/5593/15121593346_9c5d02d5ce_z.jpg)
|
||||
|
||||
Notice that the configuration file if you need it is at ~/.config/lgogdownloader/config.cfg
|
||||
|
||||
Once authenticated, you can list all the games in your library with:
|
||||
|
||||
$ lgogdownloader --list
|
||||
|
||||
![](https://farm6.staticflickr.com/5581/14958040387_8321bb71cf.jpg)
|
||||
|
||||
Then download one with:
|
||||
|
||||
$ lgogdownloader --download --game [game name]
|
||||
|
||||
![](https://farm6.staticflickr.com/5585/14958040367_b1c584a2d1_z.jpg)
|
||||
|
||||
You will notice that lgogdownloader allows you to resume previously interrupted downloads, which is nice because typical game downloads are not small.
|
||||
|
||||
Like every respectable command line utility, you can add various options:
|
||||
|
||||
- **--platform [number]** to select your OS where 1 is for windows and 4 for Linux.
|
||||
- **--directory [destination]** to download the installer in a particular directory.
|
||||
- **--language [number]** for a particular language pack (check the manual pages for the number corresponding to your language).
|
||||
- **--limit-rate [speed]** to limit the downloading rate at a particular speed.
|
||||
|
||||
As a side bonus, lgogdownloader also comes with the possibility to check for updates on the GOG website:
|
||||
|
||||
$ lgogdownloader --update-check
|
||||
|
||||
![](https://farm4.staticflickr.com/3882/14958035568_7889acaef0.jpg)
|
||||
|
||||
The result will list the number of forum and private messages you have received, as well as the number of updated games.
|
||||
|
||||
To conclude, lgogdownloader is pretty standard when it comes to command line utilities. I would even say that it is an epitome of clarity and coherence. It is true that we are far in term of features from the relatively recent Steam Linux client, but on the other hand, the official GOG windows client does not do much more than this unofficial Linux version. In other words lgogdownloader is a perfect replacement. I cannot wait to see more Linux compatible games on GOG, especially after their recent announcements to offer DRM free movies, with a thematic around video games. Hopefully we will see an update in the client for when movie catalog matches the game library.
|
||||
|
||||
What do you think of GOG? Would you use the unofficial Linux Client? Let us know in the comments.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://xmodulo.com/2014/09/download-gog-games-command-line-linux.html
|
||||
|
||||
作者:[Adrien Brochard][a]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:http://xmodulo.com/author/adrien
|
||||
[1]:http://www.gog.com/
|
||||
[2]:https://sites.google.com/site/gogdownloader/home
|
||||
[3]:https://aur.archlinux.org/packages/lgogdownloader/
|
@ -0,0 +1,155 @@
|
||||
How to monitor server memory usage with Nagios Remote Plugin Executor (NRPE)
|
||||
================================================================================
|
||||
In a [previous tutorial][1]注:此篇文章在同一个更新中,如果也翻译了,发布的时候可修改相应的链接, we have seen how we can set up Nagios Remote Plugin Executor (NRPE) in an existing Nagios setup. However, the scripts and plugins needed to monitor memory usage do not come with stock Nagios. In this tutorial, we will see how we can configure NRPE to monitor RAM usage of a remote server.
|
||||
|
||||
The script that we will use for monitoring RAM is available at [Nagios Exchange][2], as well as the creators' [Github repository][3].
|
||||
|
||||
Assuming that NRPE has already been set up, we start the process by downloading the script in the server that we want to monitor.
|
||||
|
||||
### Preparing Remote Servers ###
|
||||
|
||||
#### On Debain/Ubuntu: ####
|
||||
|
||||
# cd /usr/lib/nagios/plugins/
|
||||
# wget https://raw.githubusercontent.com/justintime/nagios-plugins/master/check_mem/check_mem.pl
|
||||
# mv check_mem.pl check_mem
|
||||
# chmod +x check_mem
|
||||
|
||||
#### On RHEL/CentOS: ####
|
||||
|
||||
# cd /usr/lib64/nagios/plugins/ (or /usr/lib/nagios/plugins/ for 32-bit)
|
||||
# wget https://raw.githubusercontent.com/justintime/nagios-plugins/master/check_mem/check_mem.pl
|
||||
# mv check_mem.pl check_mem
|
||||
# chmod +x check_mem
|
||||
|
||||
You can check whether the script generates output properly by manually running the following command on localhost. When used with NRPE, this command is supposed to check free memory, warn when free memory is less than 20%, and generate critical alarm when free memory is less than 10%.
|
||||
|
||||
# ./check_mem -f -w 20 -c 10
|
||||
|
||||
----------
|
||||
|
||||
OK - 34.0% (2735744 kB) free.|TOTAL=8035340KB;;;; USED=5299596KB;6428272;7231806;; FREE=2735744KB;;;; CACHES=2703504KB;;;;
|
||||
|
||||
If you see something like the above as an output, that means the command is working okay.
|
||||
|
||||
Now that the script is ready, we define the command to check RAM usage for NRPE. As mentioned before, the command will check free memory, warn when free memory is less than 20%, and generate critical alarm when free memory is less than 10%.
|
||||
|
||||
# vim /etc/nagios/nrpe.cfg
|
||||
|
||||
#### For Debian/Ubuntu: ####
|
||||
|
||||
command[check_mem]=/usr/lib/nagios/plugins/check_mem -f -w 20 -c 10
|
||||
|
||||
#### For RHEL/CentOS 32 bit: ####
|
||||
|
||||
command[check_mem]=/usr/lib/nagios/plugins/check_mem -f -w 20 -c 10
|
||||
|
||||
#### For RHEL/CentOS 64 bit: ####
|
||||
|
||||
command[check_mem]=/usr/lib64/nagios/plugins/check_mem -f -w 20 -c 10
|
||||
|
||||
### Preparing Nagios Server ###
|
||||
|
||||
In the Nagios server, we define a custom command for NRPE. The command can be stored in any directory within Nagios. To keep the tutorial simple, we will put the command definition in /etc/nagios directory.
|
||||
|
||||
#### For Debian/Ubuntu: ####
|
||||
|
||||
# vim /etc/nagios3/conf.d/nrpe_command.cfg
|
||||
|
||||
----------
|
||||
|
||||
define command{
|
||||
command_name check_nrpe
|
||||
command_line /usr/lib/nagios/plugins/check_nrpe -H '$HOSTADDRESS$' -c '$ARG1$'
|
||||
}
|
||||
|
||||
#### For RHEL/CentOS 32 bit: ####
|
||||
|
||||
# vim /etc/nagios/objects/nrpe_command.cfg
|
||||
|
||||
----------
|
||||
|
||||
define command{
|
||||
command_name check_nrpe
|
||||
command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
|
||||
}
|
||||
|
||||
#### For RHEL/CentOS 64 bit: ####
|
||||
|
||||
# vim /etc/nagios/objects/nrpe_command.cfg
|
||||
|
||||
----------
|
||||
|
||||
define command{
|
||||
command_name check_nrpe
|
||||
command_line /usr/lib64/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
|
||||
}
|
||||
|
||||
Now we define the service check in Nagios.
|
||||
|
||||
#### On Debian/Ubuntu: ####
|
||||
|
||||
# vim /etc/nagios3/conf.d/nrpe_service_check.cfg
|
||||
|
||||
----------
|
||||
|
||||
define service{
|
||||
use local-service
|
||||
host_name remote-server
|
||||
service_description Check RAM
|
||||
check_command check_nrpe!check_mem
|
||||
}
|
||||
|
||||
#### On RHEL/CentOS: ####
|
||||
|
||||
# vim /etc/nagios/objects/nrpe_service_check.cfg
|
||||
|
||||
----------
|
||||
|
||||
define service{
|
||||
use local-service
|
||||
host_name remote-server
|
||||
service_description Check RAM
|
||||
check_command check_nrpe!check_mem
|
||||
}
|
||||
|
||||
Finally, we restart the Nagios service.
|
||||
|
||||
#### On Debian/Ubuntu: ####
|
||||
|
||||
# service nagios3 restart
|
||||
|
||||
#### On RHEL/CentOS 6: ####
|
||||
|
||||
# service nagios restart
|
||||
|
||||
#### On RHEL/CentOS 7: ####
|
||||
|
||||
# systemctl restart nagios.service
|
||||
|
||||
### Troubleshooting ###
|
||||
|
||||
Nagios should start checking RAM usage of a remote-server using NRPE. If you are having any problem, you could check the following.
|
||||
|
||||
|
||||
- Make sure that NRPE port is allowed all the way to the remote host. Default NRPE port is TCP 5666.
|
||||
- You could try manually checking NRPE operation by executing the check_nrpe command: /usr/lib/nagios/plugins/check_nrpe -H remote-server
|
||||
- You could also try to run the check_mem command manually: /usr/lib/nagios/plugins/check_nrpe -H remote-server –c check_mem
|
||||
- In the remote server, set debug=1 in /etc/nagios/nrpe.cfg. Restart the NRPE service and check the log file /var/log/messages (RHEL/CentOS) or /var/log/syslog (Debain/Ubuntu). The log files should contain relevant information if there is any configuration or permission errors. If there are not hits in the log, it is very likely that the requests are not reaching the remote server due to port filtering at some point.
|
||||
|
||||
To sum up, this tutorial demonstrated how we can easily tune NRPE to monitor RAM usage of remote servers. The process is as simple as downloading the script, defining the commands, and restarting the services. Hope this helps.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://xmodulo.com/2014/09/monitor-server-memory-usage-nagios-remote-plugin-executor.html
|
||||
|
||||
作者:[Sarmed Rahman][a]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:http://xmodulo.com/author/sarmed
|
||||
[1]:http://xmodulo.com/2014/03/nagios-remote-plugin-executor-nrpe-linux.html
|
||||
[2]:http://exchange.nagios.org/directory/Plugins/Operating-Systems/Solaris/check_mem-2Epl/details
|
||||
[3]:https://github.com/justintime/nagios-plugins/blob/master/check_mem/check_mem.pl
|
@ -0,0 +1,236 @@
|
||||
How to set up Nagios Remote Plugin Executor (NRPE) in Linux
|
||||
================================================================================
|
||||
As far as network management is concerned, Nagios is one of the most powerful tools. Nagios can monitor the reachability of remote hosts, as well as the state of services running on them. However, what if we want to monitor something other than network services for a remote host? For example, we may want to monitor the disk utilization or [CPU processor load][1] of a remote host. Nagios Remote Plugin Executor (NRPE) is a tool that can help with doing that. NRPE allows one to execute Nagios plugins installed on remote hosts, and integrate them with an [existing Nagios server][2].
|
||||
|
||||
This tutorial will cover how to set up NRPE on an existing Nagios deployment. The tutorial is primarily divided into two parts:
|
||||
|
||||
- Configure remote hosts.
|
||||
- Configure a Nagios monitoring server.
|
||||
|
||||
We will then finish off by defining some custom commands that can be used with NRPE.
|
||||
|
||||
### Configure Remote Hosts for NRPE ###
|
||||
|
||||
#### Step One: Installing NRPE Service ####
|
||||
|
||||
You need to install NRPE service on every remote host that you want to monitor using NRPE. NRPE service daemon on each remote host will then communicate with a Nagios monitoring server.
|
||||
|
||||
Necessary packages for NRPE service can easily be installed using apt-get or yum, subject to the platform. In case of CentOS, we will need to [add Repoforge repository][3] as NRPE is not available in CentOS repositories.
|
||||
|
||||
**On Debian, Ubuntu or Linux Mint:**
|
||||
|
||||
# apt-get install nagios-nrpe-server
|
||||
|
||||
**On CentOS, Fedora or RHEL:**
|
||||
|
||||
# yum install nagios-nrpe
|
||||
|
||||
#### Step Two: Preparing Configuration File ####
|
||||
|
||||
The configuration file /etc/nagios/nrpe.cfg is similar for Debian-based and RedHat-based systems. The configuration file is backed up, and then updated as follows.
|
||||
|
||||
# vim /etc/nagios/nrpe.cfg
|
||||
|
||||
----------
|
||||
|
||||
## NRPE service port can be customized ##
|
||||
server_port=5666
|
||||
|
||||
## the nagios monitoring server is permitted ##
|
||||
## NOTE: There is no space after the comma ##
|
||||
allowed_hosts=127.0.0.1,X.X.X.X-IP_v4_of_Nagios_server
|
||||
|
||||
## The following examples use hard-coded command arguments.
|
||||
## These parameters can be modified as needed.
|
||||
|
||||
## NOTE: For CentOS 64 bit, use /usr/lib64 instead of /usr/lib ##
|
||||
|
||||
command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
|
||||
command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
|
||||
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
|
||||
command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
|
||||
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200
|
||||
|
||||
Now that the configuration file is ready, NRPE service is ready to be fired up.
|
||||
|
||||
#### Step Three: Initiating NRPE Service ####
|
||||
|
||||
For RedHat-based systems, the NRPE service needs to be added as a startup service.
|
||||
|
||||
**On Debian, Ubuntu, Linux Mint:**
|
||||
|
||||
# service nagios-nrpe-server restart
|
||||
|
||||
**On CentOS, Fedora or RHEL:**
|
||||
|
||||
# service nrpe restart
|
||||
# chkconfig nrpe on
|
||||
|
||||
#### Step Four: Verifying NRPE Service Status ####
|
||||
|
||||
Information about NRPE daemon status can be found in the system log. For a Debian-based system, the log file will be /var/log/syslog. The log file for a RedHat-based system will be /var/log/messages. A sample log is provided below for reference.
|
||||
|
||||
nrpe[19723]: Starting up daemon
|
||||
nrpe[19723]: Listening for connections on port 5666
|
||||
nrpe[19723]: Allowing connections from: 127.0.0.1,X.X.X.X
|
||||
|
||||
In case firewall is running, TCP port 5666 should be open, which is used by NRPE daemon.
|
||||
|
||||
# netstat -tpln | grep 5666
|
||||
|
||||
----------
|
||||
|
||||
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 19885/nrpe
|
||||
|
||||
### Configure Nagios Monitoring Server for NRPE ###
|
||||
|
||||
The first step in configuring an existing Nagios monitoring server for NRPE is to install NRPE plugin on the server.
|
||||
|
||||
#### Step One: Installing NRPE Plugin ####
|
||||
|
||||
In case the Nagios server is running on a Debian-based system (Debian, Ubuntu or Linux Mint), a necessary package can be installed using apt-get.
|
||||
|
||||
# apt-get install nagios-nrpe-plugin
|
||||
|
||||
After the plugin is installed, the check_nrpe command, which comes with the plugin, is modified a bit.
|
||||
|
||||
# vim /etc/nagios-plugins/config/check_nrpe.cfg
|
||||
|
||||
----------
|
||||
|
||||
## the default command is overwritten ##
|
||||
define command{
|
||||
command_name check_nrpe
|
||||
command_line /usr/lib/nagios/plugins/check_nrpe -H '$HOSTADDRESS$' -c '$ARG1$'
|
||||
}
|
||||
|
||||
In case the Nagios server is running on a RedHat-based system (CentOS, Fedora or RHEL), you can install NRPE plugin using yum. On CentOS, [adding Repoforge repository][4] is necessary.
|
||||
|
||||
# yum install nagios-plugins-nrpe
|
||||
|
||||
Now that the NRPE plugin is installed, proceed to configure a Nagios server following the rest of the steps.
|
||||
|
||||
#### Step Two: Defining Nagios Command for NRPE Plugin ####
|
||||
|
||||
First, we need to define a command in Nagios for using NRPE.
|
||||
|
||||
# vim /etc/nagios/objects/commands.cfg
|
||||
|
||||
----------
|
||||
|
||||
## NOTE: For CentOS 64 bit, use /usr/lib64 instead of /usr/lib ##
|
||||
define command{
|
||||
command_name check_nrpe
|
||||
command_line /usr/lib/nagios/plugins/check_nrpe -H '$HOSTADDRESS$' -c '$ARG1$'
|
||||
}
|
||||
|
||||
#### Step Three: Adding Host and Command Definition ####
|
||||
|
||||
Next, define remote host(s) and commands to execute remotely on them.
|
||||
|
||||
The following shows sample definitions of a remote host a command to execute on the host. Naturally, your configuration will be adjusted based on your requirements. The path to the file is slightly different for Debian-based and RedHat-based systems. But the content of the files are identical.
|
||||
|
||||
**On Debian, Ubuntu or Linux Mint:**
|
||||
|
||||
# vim /etc/nagios3/conf.d/nrpe.cfg
|
||||
|
||||
**On CentOS, Fedora or RHEL:**
|
||||
|
||||
# vim /etc/nagios/objects/nrpe.cfg
|
||||
|
||||
----------
|
||||
|
||||
define host{
|
||||
use linux-server
|
||||
host_name server-1
|
||||
alias server-1
|
||||
address X.X.X.X-IPv4_address_of_remote_host
|
||||
}
|
||||
|
||||
define service {
|
||||
host_name server-1
|
||||
service_description Check Load
|
||||
check_command check_nrpe!check_load
|
||||
check_interval 1
|
||||
use generic-service
|
||||
}
|
||||
|
||||
#### Step Four: Restarting Nagios Service ####
|
||||
|
||||
Before restarting Nagios, updated configuration is verified with a dry run.
|
||||
|
||||
**On Ubuntu, Debian, or Linux Mint:**
|
||||
|
||||
# nagios3 -v /etc/nagios3/nagios.cfg
|
||||
|
||||
**On CentOS, Fedora or RHEL:**
|
||||
|
||||
# nagios -v /etc/nagios/nagios.cfg
|
||||
|
||||
If everything goes well, Nagios service can be restarted.
|
||||
|
||||
# service nagios restart
|
||||
|
||||
![](https://farm8.staticflickr.com/7024/13330387845_0bde8b6db5_z.jpg)
|
||||
|
||||
### Configuring Custom Commands with NRPE ###
|
||||
|
||||
#### Setup on Remote Servers ####
|
||||
|
||||
The following is a list of custom commands that can be used with NRPE. These commands are defined in the file /etc/nagios/nrpe.cfg located at the remote servers.
|
||||
|
||||
## Warning status when load average exceeds 1, 2 and 1 for 1, 5, 15 minute interval, respectively.
|
||||
## Critical status when load average exceeds 3, 5 and 3 for 1, 5, 15 minute interval, respectively.
|
||||
command[check_load]=/usr/lib/nagios/plugins/check_load -w 1,2,1 -c 3,5,3
|
||||
|
||||
## Warning level 25% and critical level 10% for free space of /home.
|
||||
## Could be customized to monitor any partition (e.g. /dev/sdb1, /, /var, /home)
|
||||
command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 25% -c 10% -p /home
|
||||
|
||||
## Warn if number of instances for process_ABC exceeds 10. Critical for 20 ##
|
||||
command[check_process_ABC]=/usr/lib/nagios/plugins/check_procs -w 1:10 -c 1:20 -C process_ABC
|
||||
|
||||
## Critical if the number of instances for process_XYZ drops below 1 ##
|
||||
command[check_process_XYZ]=/usr/lib/nagios/plugins/check_procs -w 1: -c 1: -C process_XYZ
|
||||
|
||||
#### Setup on Nagios Monitoring Server ####
|
||||
|
||||
To apply the custom commands defined above, we modify the service definition at Nagios monitoring server as follows. The service definition could go to the file where all the services are defined (e.g., /etc/nagios/objects/nrpe.cfg or /etc/nagios3/conf.d/nrpe.cfg)
|
||||
|
||||
## example 1: check process XYZ ##
|
||||
define service {
|
||||
host_name server-1
|
||||
service_description Check Process XYZ
|
||||
check_command check_nrpe!check_process_XYZ
|
||||
check_interval 1
|
||||
use generic-service
|
||||
}
|
||||
|
||||
## example 2: check disk state ##
|
||||
define service {
|
||||
host_name server-1
|
||||
service_description Check Process XYZ
|
||||
check_command check_nrpe!check_disk
|
||||
check_interval 1
|
||||
use generic-service
|
||||
}
|
||||
|
||||
To sum up, NRPE is a powerful add-on to Nagios as it provides provision for monitoring a remote server in a highly configurable fashion. Using NRPE, we can monitor server load, running processes, logged in users, disk states and other parameters.
|
||||
|
||||
Hope this helps.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://xmodulo.com/2014/03/nagios-remote-plugin-executor-nrpe-linux.html
|
||||
|
||||
作者:[Sarmed Rahman][a]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:http://xmodulo.com/author/sarmed
|
||||
[1]:http://xmodulo.com/2012/08/how-to-measure-average-cpu-utilization.html
|
||||
[2]:http://xmodulo.com/2013/12/install-configure-nagios-linux.html
|
||||
[3]:http://xmodulo.com/2013/01/how-to-set-up-rpmforge-repoforge-repository-on-centos.html
|
||||
[4]:http://xmodulo.com/2013/01/how-to-set-up-rpmforge-repoforge-repository-on-centos.html
|
@ -0,0 +1,53 @@
|
||||
[Quick Tip] How To List All Installed Packages On Linux Distributions
|
||||
================================================================================
|
||||
![](http://180016988.r.cdn77.net/wp-content/uploads/2014/09/linux-790x536.png)
|
||||
|
||||
To list all installed package on a Linux system depends on which distribution you are running and the package management mode used.
|
||||
|
||||
In this tutorial, we are going to look at commands on some of the notable and popularly used distros.
|
||||
|
||||
**NOTE**: You can pipe the less command OR redirected to a text file using the redirection operator (>). Below are examples
|
||||
|
||||
example | less
|
||||
|
||||
----------
|
||||
|
||||
example > installed_packages.txt
|
||||
|
||||
### Red Hat/Fedora Core/CentOS Linux: ###
|
||||
|
||||
rpm -qa
|
||||
|
||||
### FreeBSD / OpenBSD: ###
|
||||
|
||||
pkg_info
|
||||
|
||||
### Arch Linux: ###
|
||||
|
||||
pacman -Qq
|
||||
|
||||
### Ubuntu / Debian / Linux Mint: ###
|
||||
|
||||
dpkg --get-selections
|
||||
|
||||
----------
|
||||
|
||||
dpkg --list
|
||||
|
||||
----------
|
||||
|
||||
dpkg -l
|
||||
|
||||
Good day.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://www.unixmen.com/quick-tip-list-installed-packages-linux-distributions/
|
||||
|
||||
作者:[Enock Seth Nyamador][a]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:http://www.unixmen.com/author/seth/
|
@ -126,7 +126,7 @@ Ron Amadeo供图
|
||||
|
||||
幸运的是,因为上面的第一张截图,我们能够从安卓启动视频中拼凑出准确的界面。旧的谷歌地图看起来完全是为非触摸设备准备的,实体键快捷方式列表排列在屏幕底部。这样在看地图时,或是在如果仅仅显示该点的地址的时候就不大清楚。
|
||||
|
||||
隐藏在菜单之后的是搜索选项,方向,以及卫星和交通图层。中间的截图是方向的UI之一,你可以选择一个联系人的地址作为起点或者终点。但地图缺乏任何种类的集成GPS,你在哪都找不到“我的位置”这个按钮。
|
||||
隐藏在菜单之后的是搜索选项,路线,以及卫星和交通图层。中间的截图是方向的UI之一,你可以选择一个联系人的地址作为起点或者终点。但地图缺乏任何种类的集成GPS,你在哪都找不到“我的位置”这个按钮。
|
||||
|
||||
尽管没有合适的相册,在右边是相册的测试界面,隐藏在“API Demos”应用里。图片可以向左向右滚动,但无法以全屏的方式打开一张照片。同样它也没有照片管理选项。它本质上就是个图片滚动界面的测试视图。
|
||||
|
||||
|
@ -1,76 +1,75 @@
|
||||
安卓编年史 02
|
||||
|
||||
=============================================================================
|
||||
![Left: the Milestone 5 home screen showing the “all" button, two dock icons, and four recent apps. Center: the home screen with the app list open. Right: the power menu.](http://cdn.arstechnica.net/wp-content/uploads/2013/12/homescree052n.jpg)
|
||||
左边:里程碑 5,主屏幕展示了“All”按钮,两个dock图标,以及最近使用的四个应用。中间:主屏幕与打开的应用程序列表。右边:电源菜单。
|
||||
图片来自@Ron Amadeo
|
||||
![Left: the Milestone 5 home screen showing the “all" button, two dock icons, and four recent apps. Center: the home screen with the app list open. Right: the power menu.](http://cdn.arstechnica.net/wp-content/uploads/2013/12/homescree052n.jpg)
|
||||
左:Milestone 5,主屏幕展示了“All”按钮,两个dock图标,以及四个最近使用的应用。中:主屏幕与打开的应用程序列表。右边:电源菜单。
|
||||
Ron Amadeo供图
|
||||
|
||||
###Android0.5, 里程碑 5——如今已经是报废接口的领地了 ### -
|
||||
### 安卓0.5, Milestone 5——如今已经是报废接口的领地了 ###
|
||||
|
||||
“M5-RC14”构建后:也就是第一个仿真器发布,三个月之后Android迎来了她的首次重大革新。 2008年2月发布的“里程碑5”甩掉了发展中的黑莓界面,走向一个完全革新的设计——谷歌在手指触摸技术的第一次尝试。
|
||||
“M5-RC14”版本发布后——也就是第一个安卓模拟器发布三个月之后,安卓迎来了它的首次重大革新。 2008年2月发布的“Milestone5”甩掉了延伸自黑莓的界面,走向一个完全革新的设计——谷歌在触控友好界面上的第一次尝试。
|
||||
|
||||
由于浏览器的用户代理字符串的使用,此版本仍然被识别为“Android0.5”,但里程碑 5与Android的第一个版本相比已经完全不一样了。几个核心的Android功能直接追踪他们的血统最终还是会回到这个版本。通知面板的布局和功能几乎已经整装待发,并且,除了样式变化外,菜单同样也存在于它的最终组成。安卓1.0距离该项目起航的时间仅仅只有八个月,一个操作系统的基础已经开始形成了。
|
||||
在浏览器的用户代理字符串的中,此版本仍然被识别为“Android 0.5”,但Milestone 5与安卓的第一个版本相比已经完全不一样了。几个核心的Android功能直接追踪他们的血统并最终回到这个版本。通知面板的布局和功能几乎已经整装待发,并且,除了样式变化外,菜单也最终成型。距离安卓1.0项目发布的时间仅仅只剩八个月,一个操作系统的基础已经开始成型了。
|
||||
|
||||
有一件东西绝对不会存在于最后的组成,那就是是主屏幕。这是一个不可配置的,单屏壁纸的应用程序的架子和空位。【译者注:"an app drawer and dock,",度娘直接是"应用程序的抽屉和码头,",没有搜到相关专业的词汇,求指点,感激。zsky@live.com】应用程序图标是天真活泼的,三种颜色的组合,由一个方形的、有圆角的白色背景包围着。应用程序的架子由在右下角的一个“All”按钮组成,轻按它,扩展的应用程序列表显示在了左边。这个“All”按钮正上面的是两个图标空位,“联系人”和“拨号器”分别获得了专属的永久主屏幕位置。然后上边有四个板块,它们是最近应用程序的早期版式,展示了最后访问的应用程序。没有了左画面或右画面,基座和最近的应用程序占用一整列,这种布局下21个正方形的应用程序才会填充满整个屏幕。模拟器仍然只选择同等最小的应用程序,但在实际的设备中,这样的设计并产生没有很好地工作效果。
|
||||
有一件东西目前绝对不是它的最终模样,那就是是主屏幕。这是一个不可配置的,单屏壁纸的应用程序的抽屉和dock。应用程序图标是气泡状的,三种颜色的组合,由一个圆角矩形的白色背景包围着。应用程序抽屉在右下角有一个“所有”按钮,轻按它,打开的应用程序列表显示在了左边。这个“所有”按钮正上面的是两个dock图标,“联系人”和“拨号盘”分别获得了永久的专属主屏幕位置。然后上边有四个模块,它们是最近应用程序的早期版本,展示了最后访问的应用程序。没有了左侧屏幕和右侧屏幕,要是没有dock和最近的应用程序占用的一整列,这种布局下只能放下21个应用程序图标。模拟器仍然只选择同等最少的应用程序,但在实际的设备中,这样的设计看起来并不会很好的工作效果。
|
||||
|
||||
按住“end call”按钮会出现一个超级早期版本的电源菜单,您可以在最右边的图片中看到的。谷歌迄今为止没有正常的智能手机命名术语:对于“Turn Off Screen”最好地形容也许是“Lock screen”(虽然当时没有锁屏)和“Turn Off Radio”在今天被叫做“Airplane Mode”。
|
||||
按住“挂断”按钮会出现一个十分早期版本的电源菜单,就像你最右侧的图片中看到的。谷歌迄今为止没有标准的智能手机命名术语:对于“Turn Off Screen”(关闭屏幕)最好的形容也许是“Lock screen”(锁定屏幕——虽然当时没有锁屏)和“Turn Off Radio”(关闭射频)在今天被叫做“Airplane Mode”(飞行模式)。
|
||||
|
||||
![From left to right: the surprisingly modern notification panel, the menu open in Google Maps (Maps doesn't work anymore), and the new finger-friendly list view.](http://cdn.arstechnica.net/wp-content/uploads/2013/12/noti2.png)
|
||||
从左至右依次为:令人惊喜的现代版通知面板,谷歌地图的菜单在打开着(地图已经不可用了),和新的适合手指操作的列表视图。
|
||||
照片来自@Ron Amadeo
|
||||
![From left to right: the surprisingly modern notification panel, the menu open in Google Maps (Maps doesn't work anymore), and the new finger-friendly list view.](http://cdn.arstechnica.net/wp-content/uploads/2013/12/noti2.png)
|
||||
从左至右依次为:令人惊喜的现代通知面板,谷歌地图的菜单在打开着(地图已经不可用了),和新的触控友好列表视图。
|
||||
Ron Amadeo供图
|
||||
|
||||
所有的方式都会回溯到里程碑 5,谷歌在那时就毫无疑问拥有通知面板的基本知识储备。就像在任何现代的智能手机里看到的一样,它能够从屏幕顶部下拉下来。目前的通知都显示在列表中。通知面板的第一个版本是不透明的白色薄片带着棱纹的的“handle”在底部,一个橙色的圆点在中心。通知是可触的,通过触摸可以打开该通知关联的应用程序。没有人被在此列表中垂直对齐的应用程序图标所困扰,不过也没关系,随着在接下来的更新,它已经是过去式了。
|
||||
回溯到Milestone 5,谷歌在那时对通知面板有着明确的认识。就像在任何现代的智能手机里一样,通知中心从屏幕顶部下拉下来来唤出。目前的通知都以列表的形式显示。通知面板的第一个版本是不透明的白色薄片以及底部中心有个橙色圆点的,带着棱纹的的“把手”。通知是可点击的,通过点击可以打开该通知关联的应用程序。没有人为此列表中垂直对齐应用程序图标而感到困扰,不过也没关系,随着接下来的更新,它已经是过去式了。
|
||||
|
||||
点一下通知,进入一个在面板顶部的“on going”部分。在这个版本,这里似乎只包含打电话。在“Latest Event”里的通知只有打开相应的应用程序后才是清楚的。用户令人惊喜的通过内置的XMPP连接成功登录到谷歌talk。不过,虽然通知面板中显示“new chat message,”,其实这里并没有没有真正的即时消息应用程序。
|
||||
置顶通知能够进入一个在面板顶部的“正在进行”的部分。在这个版本中,这里似乎只包含通话。在“最近事件”里的通知只有打开相应的应用程序后才清楚。用户惊喜地发现可以通过内置的XMPP连接成功登录到谷歌talk。不过,虽然通知面板中显示“新会话信息”,这里实际上并不是一个即时消息应用程序。
|
||||
|
||||
里程碑 5里的艺术设计全部都是新的。该应用程序图标被重新绘制,并且菜单从一个无聊的黑莓风格的文本列表转变为一个大格全彩色、卡通的图标。通知面板图标也从简单的、突兀的、白色的图标切换到一个天真活泼的绿色设计。当时在信号栏指示器下边有一个奇怪的黑线,几乎没有作用。早期开发版本的微小列表视图不适合手指使用,所以里程碑 5开发了全面强大的整体布局。
|
||||
Milestone 5里是全新的艺术设计。应用程序图标被重新绘制,并且菜单从一个无聊的黑莓风格的文本列表转变为一个全彩、卡通的大图标方阵。通知面板图标也从简单的、突兀的、白色的图标切换到一个绿色的气泡设计。当时信号指示下边有一条奇怪的黑线,没有明显的作用。早期开发版本的微小列表视图不适合手指使用,所以Milestone 5带来了更加强大的整体布局。
|
||||
|
||||
![The dialer, recent calls, and an incoming call.](http://cdn.arstechnica.net/wp-content/uploads/2013/12/phonestuff.png)
|
||||
拨号器,最近通话,和来电接听。
|
||||
照片来自@Ron Amadeo
|
||||
拨号盘,最近通话,和来电。
|
||||
Ron Amadeo供图
|
||||
|
||||
M5是第一个有一个拨号器的版本,即使她是一个相当难看的版本。数字被显示在包含一个奇怪的语音气泡风格的退格键里,看上去就像是从其他界面回收回来的。对齐问题随处可见。按钮上的数字没有正确的垂直排列,而且退格键的“X”也没有与对话框对齐。由于屏幕上没有的“dial”按钮,你甚至不能从拨号程序打个电话,一个硬件按钮也被托管了。
|
||||
M5是第一个有一个拨号盘的版本,即使她是一个相当难看的版本。数字被显示在包含一个奇怪的聊天气泡风格退格键的渐变填充条里,看上去就像是从其他界面回收回来的。对齐问题随处可见。按钮上的数字没有正确的垂直排列,而且退格键的“X”也没有与对话框对齐。由于屏幕上没有的“拨号”按钮,你甚至不能从拨号盘打个电话,它强制要求有个拨号的硬件实体按钮。
|
||||
|
||||
里程碑 5 有几个选项卡式界面,所有这些都表明了一个非常奇怪的想法:标签应该如何工作。活跃的标签是白色的,而背景标签是拥有一小条白色在其边沿的黑色。后台标签应该是向下的“shrink”吗?切换标签时,是没有动画的。目前还不清楚这个设计试图想表达什么。
|
||||
Milestone 5 有几个选项卡式界面,所有这些都演示了一个关于标签应该如何工作的奇怪的想法。活跃的标签是白色的,而背景标签是底部拥有一小条白色条带的黑色标签。后台标签应该是向下下沉的吗?切换标签时,是没有动画效果的。直到目前还不清楚这个设计试图想表达什么。
|
||||
|
||||
在第二张图片中显示的最近通话记录项,是从顶级的应用程序降级到拨号器选项卡的。它丢弃了早期版本的疯狂十字丝UI,多亏了大块列表视图,现在所有必要的信息都是显示在一个正常的列表。
|
||||
在第二张图片中显示的最近通话记录项,是从单独的应用程序降级到拨号盘选项卡的。它抛弃了早期版本疯狂的十字UI,多亏了大块列表视图,现在所有必要的信息都是显示在一个正常的列表中。
|
||||
|
||||
不同于拨号器,来电画面只有即时屏幕上的按钮来接听和结束通话。奇怪的是,来电屏幕贴在显示器的底部,而不是顶部或中心。它可能是从旧的黑莓4:3屏幕遗留下来的。
|
||||
不同于拨号盘,来电画面有显示在屏幕上的按钮来接听和结束通话。奇怪的是,来电屏幕贴在屏幕的底部,而不是顶部或中心。它可能是从旧的黑莓4:3屏幕遗留下来的问题。
|
||||
|
||||
![An active call, the disabled touchscreen error message, and the call screen with a second call on hold.](http://cdn.arstechnica.net/wp-content/uploads/2013/12/callsstuff.png)
|
||||
通话中,触摸屏不可用的显示错误信息,和暂停通话的第二个呼叫的呼叫屏幕。
|
||||
照片来自@Ron Amadeo
|
||||
通话中,触摸屏不可用的显示错误信息,和显示第二通话暂停的通话界面。
|
||||
Ron Amadeo供图
|
||||
|
||||
通话中界面看起来正常,但在实践中毫无意义。今天,在通话中为了阻止你的脸按到屏幕按钮,手机近距离传感器一旦检测到相关信息会快速关闭屏幕。虽然里程碑 5不支持近距离传感器。谷歌的杂乱无章的解决方案是在通话过程中禁止整个触摸屏。与此同时,通话中的屏幕显然会彻底检查触摸功能。这时候是有大的,可触摸的按钮; *就是不让你摸!!*。
|
||||
通话中界面看起来正常,但在实际中毫无意义。今天,在通话中为了阻止你的脸按到按钮,手机近距离传感器一旦检测到物体会关闭屏幕。尽管Milestone 5不支持近距离传感器。谷歌的随意的解决方案是在通话过程中禁用整个触摸屏。与此同时,通话中的屏幕显然会检测触摸。这时候是有大的,可触摸的按钮; *就是不让你摸*。
|
||||
|
||||
M5在这里让旧里程碑3版本的几个回归者占据特色地位。许多旧的接口里有体面相貌的图标被替换成了文本。像“mute”按钮不再提供屏幕上的反馈,过去他们是活跃的。合并通话被完全切掉了。
|
||||
M5在这里让Milestone 3版本的几个功能回归了。许多旧的界面里体面的图标被替换成了文本。像“静音”按钮在激活的时候不再提供屏幕上的反馈。合并通话被完全去除了。
|
||||
|
||||
![The browser’s primary menu, the browser’s secondary menu, the crazy zoom control, and the window interface.](http://cdn.arstechnica.net/wp-content/uploads/2013/12/browser4.png)
|
||||
浏览器的主要菜单,浏览器的二级菜单,疯狂的变焦控制和窗口界面。
|
||||
照片来自@Ron Amadeo
|
||||
![The browser’s primary menu, the browser’s secondary menu, the crazy zoom control, and the window interface.](http://cdn.arstechnica.net/wp-content/uploads/2013/12/browser4.png)
|
||||
浏览器的主要菜单,浏览器的二级菜单,疯狂的变焦控制和窗口界面。
|
||||
Ron Amadeo供图
|
||||
|
||||
浏览器菜单中得到了一贯的触摸功能大修理,并且“more”按钮第一次出现。它充当一个[extra menu for your menu] [1]。而不是转动3x2的网格成3x4的网格,里程碑 5(和Android的许多后续版本一样)中使用很长的、滚动的列表来引出其他选项。不支持双指缩放(据说是[concession to Apple] [2]),因此Android运行着可笑的变焦控制外表,在上边第三张图片。而不是理智的比如是一个水平的、底部对齐变焦的控制,谷歌控制它直接出现在屏幕的中间。最后一张图片显示浏览器的“window”界面,允许你打开多个网页和两者之间轻松切换。
|
||||
浏览器菜单中得到了常规的触摸功能大整修,并且“更多”按钮第一次出现。它充当一个[你菜单的额外菜单] [1]。相对于将3x2的网格变成3x4的网格,Milestone 5(以及Android的许多后续版本一样)中使用很长的、滚动的列表来引出其他选项。不支持双指缩放(据说是[向苹果让步] [2]),因此Android运行荒谬的控件,就像上边第三张图片一样。谷歌将它显示在屏幕的中间,而不是明智地设置成比如一个水平的、底部对齐的缩放控件。最后一张图片显示浏览器的“窗口”界面,允许你打开多个网页并在它们之间更轻松地切换。
|
||||
|
||||
![Google Maps’ layers section screen, search interface, and directions screen.](http://cdn.arstechnica.net/wp-content/uploads/2013/12/amps.png)
|
||||
谷歌地图的层级部分的屏幕,搜索界面,并指示屏幕。
|
||||
照片来自@Ron Amadeo
|
||||
谷歌地图的图层选择,搜索界面,以及路线界面。
|
||||
Ron Amadeo供图
|
||||
|
||||
谷歌地图仍然不能使用,但我们访问的小小UI却有了显著更新。你可以挑选地图图层,虽然只有两种可以选择:卫星和交通。顶部对齐的搜索界面隐藏了奇怪的状态栏,而底部对齐方向没有隐藏状态栏。指示的输入按钮被标有“Go”,而且搜寻的输入按钮被标有一个奇怪的弯曲的箭头。这样的例子不胜枚举,并演示了老同学的Android在最坏时候的情况:在同一个应用程序,它的外观和工作方式类似的两个功能,但这些都实现为完全相反的方向。
|
||||
谷歌地图仍然不能使用,但我们接触的小小UI却有了显著更新。你可以选择地图图层,虽然只有两种可以选择:卫星和交通。顶部对齐的搜索界面奇怪地隐藏了状态栏,而底部对齐的路线没有隐藏状态栏。路线的输入按钮被标有“Go”,而且搜索的输入按钮被标有一个奇怪的弯曲的箭头。这样的例子不胜枚举,并演示了保守的安卓在最坏时候的情况:在同一个应用程序,外观和工作方式*应该*类似的两个功能,在实现上却完全相反。
|
||||
|
||||
----------
|
||||
----------
|
||||
|
||||
![Ron Amadeo](http://cdn.arstechnica.net/wp-content//uploads/authors/ron-amadeo-sq.jpg)
|
||||
|
||||
[Ron Amadeo][a] / Ron是Ars Technica的评论编辑,他专注于Android操作系统和谷歌的产品。他总是在寻找一个新的小工具,喜欢分解事物来看看它们是如何工作的。
|
||||
[Ron Amadeo][a] / Ron是Ars Technica的评论编缉,专注于安卓系统和谷歌产品。他总是在追寻新鲜事物,还喜欢拆解事物看看它们到底是怎么运作的。
|
||||
|
||||
[@RonAmadeo][t]
|
||||
|
||||
-------------------------------------------------- ------------------------------
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/2/
|
||||
|
||||
译者:[cereuz](https://github.com/cereuz)邮箱:[cereuz](mailto:sunedo@qq.com)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[alim0x](https://github.com/alim0x)/[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
|
@ -0,0 +1,89 @@
|
||||
The history of Android
|
||||
================================================================================
|
||||
![闹钟主屏幕,设置一个闹钟,计算器,以及计算器高级功能。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/calclockonpresszx.png)
|
||||
闹钟主屏幕,设置一个闹钟,计算器,以及计算器高级功能。
|
||||
Ron Amadeo供图
|
||||
|
||||
安卓0.9第一次给我们展现了闹钟和计算器应用程序。闹钟应用的特征是有个扁平的模拟时钟,下方是一排设置的闹钟的滚动列表。不同于其它种类的开关,闹钟使用一个复选框来设置。闹钟可以设置为每周特定几天重复,以及它还有一整个列表的可选的,独特的闹钟铃声。
|
||||
|
||||
计算器是一个全黑色的应用,带有有光泽的圆形按钮。通过菜单,可以打开带有高级功能的附加面板。再次强调,一致性不是谷歌的强项所在。按键中的Pi键按下的高亮是红色的——在安卓0.9的其它地方,按键按下的高亮通常是橙色的。实际上,计算器中用到的所有东西是仅用于计算器的百分百定制设计。
|
||||
|
||||
![打开菜单的谷歌地图和新路线界面。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/mps092.png)
|
||||
打开菜单的谷歌地图和新路线界面。
|
||||
Ron Amadeo供图
|
||||
|
||||
谷歌地图在安卓0.9中真正能够运行——客户端能够连接到谷歌地图服务器并下载地图块。(给予我们地图图像——要记住谷歌地图是个基于云的应用。连最老旧的版本也会下载更为现代的地图块,所以忽略实际的地图块的样子吧。)地图的菜单获得了和浏览器菜单相同的全灰设计待遇,缩放控件也和浏览器的相同。最重要的“我的位置”按钮最终来到了安卓0.9,这意味着该版本的地图支持GPS定位。
|
||||
|
||||
路线界面得到了改进。奇怪的聊天气泡附加不对齐的按钮已经被去除,换为更具交互性的书签图标,切换地点按钮移动到了左边,“go”按钮的现在被标记为“获取路线(Route)”。
|
||||
|
||||
![谷歌地图图层选择,搜索历史,新加入的街景视图。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/maps3.png)
|
||||
谷歌地图图层选择,搜索历史,新加入的街景视图。
|
||||
Ron Amadeo供图
|
||||
|
||||
“图层(Layers)”被重命名为“地图模式(Map Mode)”并且变成一个单选列表。一次只能选择一个地图类型——举个例子,你在卫星地图视图下不能查看交通状况。埋藏在菜单中的还有被匆忙放到一起的搜索记录界面。搜索历史看起来只是个概念验证,带着巨大的,模糊的搜索图标填充的搜索项被放置于半透明的背景之上。
|
||||
|
||||
街景曾经是个单独的应用(尽管它从没提供给公众),但在0.9中它被作为一个地图模式内置于谷歌地图之中。你可以拖拽小Pegman(街景小人)到地图上,它会显示一个弹出气泡来展示街景的快照。点击快照会启动那个位置的街景。这时,街景除了可滚动的360度影像之外不会显示任何东西——在显示界面上根本就没有用户界面(UI)。
|
||||
|
||||
![我们第一次见到谷歌地图搜索界面。这些截图展示了搜索栏,搜索结果列表,显示在地图上的搜索结果,以及一个商业页面。 ](http://cdn.arstechnica.net/wp-content/uploads/2013/12/manystarbucks.png)
|
||||
我们第一次见到谷歌地图搜索界面。这些截图展示了搜索栏,搜索结果列表,显示在地图上的搜索结果,以及一个商业页面。
|
||||
Ron Amadeo供图
|
||||
|
||||
安卓0.9同样第一次给我们展示了信息应用,称为“信息”(Messaging)。就像一些早期的安卓设计,信息并不确定它应该是一个暗色系应用还是亮色系应用。第一眼可以看到的屏幕是信息列表,一个极力避免空白的质朴黑色界面,看起来像是建立在设置界面的设计之上。但点击“新信息”或已存在的会话后,你会被带到一个白色以及蓝色的文本信息的滚动列表这里。这两个相连的界面真是没法再更不一样一点了。
|
||||
|
||||
![信息应用的会话窗口,附件窗口,会话列表,以及设置。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/sms09.png)
|
||||
信息应用的会话窗口,附件窗口,会话列表,以及设置。
|
||||
Ron Amadeo供图
|
||||
|
||||
信息支持一定范围的附件:你可以附上图片,声音,或者一个幻灯片到你的信息之中。图片和声音可以实时录制或是从手机存储中拉取。另一个奇怪的UI选择是对于附件菜单中的每一项,安卓基本都已经有现成的图标可用,但信息却全部使用了另外定制的设计。
|
||||
|
||||
信息是最先带有自己设置界面的应用之一。用户可以请求已读以及送达报告以及设置下载偏好。
|
||||
|
||||
![幻灯片制作器。右边图片显示了菜单选项。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/slideshow.png)
|
||||
幻灯片制作器。右边图片显示了菜单选项。
|
||||
Ron Amadeo供图
|
||||
|
||||
附件选项中的“幻灯片”选项实际上是以一个全功能的幻灯片制作器的形式到来的。你可以添加图片,选择幻灯顺序,添加音乐,修改每张幻灯片的显示时间,以及添加文字。这已经复杂到足够给它一个自己的应用图标了,但令人惊奇的是它被隐藏在信息应用的菜单之中。在纵向模式下这是为数不多的完全无用的安卓应用之一——唯一的看图片方式以及控制是在横向显示之中。奇怪的是,纵向模式它仍然能够旋转,但显示输出变得一团糟。
|
||||
|
||||
![音乐播放器的主导航页面,歌曲列表,专辑列表,以及“正在播放”界面。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/music09.png)
|
||||
音乐播放器的主导航页面,歌曲列表,专辑列表,以及“正在播放”界面。
|
||||
Ron Amadeo供图
|
||||
|
||||
安卓0.9第一次将音乐应用带进了安卓。首屏基本上只是几个将你带到各个功能视图的巨大的,矮胖的导航按钮。在应用底部是一个“正在播放”栏,仅仅包含了音轨名,艺术家,以及一个播放/暂停按钮。歌曲列表仅仅有个最简的无修饰界面,仅仅显示了歌曲名,艺术家,专辑以及时长。艺术家专辑是这个应用中唯一有希望看到色彩的地方。它在专辑视图里显示为一个小快照,在正在播放界面显示为巨大的,四分之一屏的图片。
|
||||
|
||||
正如安卓在这个时期的系统绝大多数部分,音乐应用的界面可能没什么好多看几眼的,但功能已经基本齐全。正在播放界面有一个让你拖动歌曲的播放列表按钮,随机播放,重复播放,搜索,以及选择背景声音按钮。
|
||||
|
||||
![“相册”的所有相册视图,单个相册视图,以及单张图片视图。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/pictures09.png)
|
||||
“相册”的所有相册视图,单个相册视图,以及单张图片视图。
|
||||
Ron Amadeo供图
|
||||
|
||||
相册被简单地称为“图片”。初始视图显示你的所有相册。两个默认的相册是“相机”和巨大的合集相册,叫做“全部图片”。每个相册的快照由2x2的图片组成,每张图片有个白色的粗边框。
|
||||
|
||||
单个相册视图的样子大概是你所希望的:一个可滚动的图片方阵。你不能在单个图片大小的范围内向左右滑动来移动图片,而是应该轻点图片来移动图片。相册同样没有双指捏合缩放,你只能使用按钮来缩放图片。
|
||||
|
||||
![图片编缉!这些截图显示了一个打开的菜单,“更多”菜单,截取,以及设置。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/pics209.png)
|
||||
图片编缉!这些截图显示了一个打开的菜单,“更多”菜单,截取,以及设置。
|
||||
Ron Amadeo供图
|
||||
|
||||
“图片”看起来十分简单,直到你点击菜单按钮并突然看到无数的选项。图片可以截取,旋转,删除,或设置壁纸或联系人图标。就像浏览器一样,所有的这一切通过一个笨拙的二级菜单系统完成。但是,我们为何又将看起来完全不同的菜单练联系到一起?
|
||||
|
||||
安卓0.9在安卓的第一个商业发行版本公布前仅仅两个月的时候诞生。这些时间只够应用开发者们确认他们的应用能够工作——以及让谷歌在第一个重大发布之前做一些测试和bug修复。
|
||||
|
||||
----------
|
||||
|
||||
![Ron Amadeo](http://cdn.arstechnica.net/wp-content//uploads/authors/ron-amadeo-sq.jpg)
|
||||
|
||||
[Ron Amadeo][a] / Ron是Ars Technica的评论编缉,专注于安卓系统和谷歌产品。他总是在追寻新鲜事物,还喜欢拆解事物看看它们到底是怎么运作的。
|
||||
|
||||
|
||||
[@RonAmadeo][t]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/5/
|
||||
|
||||
译者:[alim0x](https://github.com/alim0x) 校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:http://arstechnica.com/author/ronamadeo
|
||||
[t]:https://twitter.com/RonAmadeo
|
@ -1,126 +0,0 @@
|
||||
Top 10! Fun On The Command Line
|
||||
================================================================================
|
||||
|
||||
排名前10!在命令行中寻找乐趣
|
||||
================================================================================
|
||||
|
||||
|
||||
**如果你喜欢做‘排名前10'类型的列表但又有点不好意思这样说,那么告诉人们你热爱数据的探索。为了进一步打动他们们,向他们解释你在命令行间的数据探索。但是不要告诉他们这其实很容易,以免你的好形象就这样被毁灭了哦!**
|
||||
|
||||
在这篇文章中,我将基于GNU/Linux工具和'一列的表格'来做一些数据探索,也就是我所说的简单列表。如若想在这里通过命令行查看更多的信息,请查看'man'页,或者在“注释”部分求解。
|
||||
|
||||
### 密码 ###
|
||||
|
||||
在第一个列表里探讨的是马克.伯内特2011著的关于[10000 个最常用的密码][1]汇编。这个列表是有序的、使用最频繁的,也是广为人知的阶乘“密码”的最常用来源之一,与“123456”并列排名第二。在这里,我已经把一个所谓密码的文件列出来了,并且使用head命令把排名前10的列出来了:
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/1.png)
|
||||
|
||||
(伯内特解释他是如何手收集这些密码的[这里][2]。你会注意到在列表中他把所有大写字母都转换成小写的。)
|
||||
|
||||
OK,所以'密码'是伯内特列表的顶部。那么个位数字呢?
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/2.png)
|
||||
|
||||
非常有趣的是!数字'1'出现在密码列表中多于是第二个最常用数字'2'的两倍,以及10位数字在数值以及人气排序,除了0和9。而排名前10的字母呢?
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/3.png)
|
||||
|
||||
在密码文件中出现最频繁的字母依次是EARONISTLC.这个和EAIRTONSLC差不多,也是一个频率模式图至少在 [one published table][3] 中最常适用的英语单词。这是否意味着,大部分密码其实是一些常见的英语单词呢,也许会参杂一些数字呢?
|
||||
|
||||
为了找到答案,我先把密码转换成一个纯字母字符串列表,然后看看有多少字符串是可以在英语词典中找到的。
|
||||
|
||||
|
||||
首先我将通过 **sed**命令删除所有密码中的数字,然后删除所有的标点符号,再删除所有的空行。这将创建出一个纯字母的密码列表。然后我通过**sort** 和 **uniq**来修剪列表的排序,将重复项取出。(例如,'abc1234def'和'abc1!2!3!def!'都剔除剩下'abcdef'.) 。根据wc命令,我把1000个密码减至成8583个纯字母的字符串:
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/4.png)
|
||||
|
||||
我经常使用一本便携式的英语字典,我通常会使用`usr/share/dict/american-english`,这个文件是来自Debian Linux的一个发行版本。它包含了99171个单词。我会先通过**tr**命令将这个词表转换为纯小写的,然后使用**sort** 和 **uniq**删除掉人和重复的条目排序(例如'A' 和 'a' 都将成为 'a')。这样就将词表的数量减至97723项了:
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/5.png)
|
||||
|
||||
我现在可以用通信命令带'-23'的参数来比较两个列表和报告中纯字母文件而没有出现在字典中的单词:
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/6.png)
|
||||
|
||||
总数是3137,所以至少有8583 -3137 = 5446个'核心'密码在伯纳特的纯小写字母列表中(大约63%)是简单的英语单词,或者是简单的单词附加一些数字或者标点符号。我之所以写至少是因为在3137个字符串中有很大比例是只有经过轻微修改的纯英语单词、名称、或者在/usr/share字典中未能找到的名称修改而成的。在LA项中,例如,'labtec', 'ladyboy', 'lakeside', 'lalakers', 'lalala', 'laserjet', 'lasvegas', 'lavalamp' and 'lawman'.
|
||||
|
||||
### Placenames ###
|
||||
### 地名 ###
|
||||
|
||||
在之前的一篇[Linux Rain article][4],我描述了如何建立一张37万项澳大利亚的地名表。有了它,我现在可以回答一些类似这样的关键问题“Round Hill是澳大利亚山脉中最流行的名字吗?”和“桑迪是沙滩之最,而岩溪峡谷呢?”
|
||||
|
||||
在地名表中地名字段的排名第2,所以这里有:
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/7.png)
|
||||
|
||||
|
||||
哇。我当时甚至没有关闭。(但是请注意到我是如何通过**^string1^string2**命令保存打印的内容。它重复着最后一个命令,但是用第2个字符串代替了第1个字符串。这是多门经常的BASH绝招!)
|
||||
|
||||
|
||||
另一个亟待解决的问题是有多少地名有'Mile'在其中,例如'Six Mile Creek',而他们的排名又是如何:
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/8.png)
|
||||
|
||||
我在我的澳洲之旅发现有很多Dead Horse Creeks,因此有这些地名:
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/9.png)
|
||||
|
||||
|
||||
### 种类 ###
|
||||
|
||||
第三个列表是探索我今年出版的1961-2010年期间澳大利亚新种类昆虫名。从这个列表中,我去掉所有“物种的绰号”,这也是种群组合的第二部分像智人(你和我)和西方蜜蜂(欧洲蜜蜂)。
|
||||
|
||||
|
||||
(科技小贴士:这个昆虫表,可以从开发数据Zenodo库中[https://zenodo.org/record/10481][5],包括亚种。在我的‘top 10’练习中,我首先分离出所有独特的种群组合,这样避免了重复的,例如蜜蜂iberica的亚种,以避免蜜蜂的绰号intermissa,等等。最后一个物种文件有18155个绰号。)
|
||||
|
||||
大多数人讲科学名称带玩笑式地用'-us'结局,如'Biggus buggus'.那么昆虫学家呢?有几个不错的,用命令行的方式获取字符串的最后2个字母,在这里我都会用到这2个:
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/10.png)
|
||||
|
||||
|
||||
|
||||
耶!昆虫学家喜欢也‘-us’结尾。接下来,我不知道有多少物种是以我的家乡State of Tasmania来命名的?(下面我想看看前100行,来确保我得到的所有'tasman'组合.)
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/11.png)
|
||||
|
||||
那么昆士兰呢?
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/12.png)
|
||||
|
||||
一般来说,昆虫物种名单中的前10名分别是什么呢?
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/13.png)
|
||||
|
||||
嗯,除了明显的'australis'和'australiensis',而地理方面的'occidentalis'(西部),另外昆虫学家创建7个在10个最流行列表中的绰号已经旅行了其它昆虫学家的意愿。(加词'commoni'是给澳大利亚蝴蝶和蛾专家Ian F.B. Common,从1917-2006.)
|
||||
|
||||
### Speechifying ###
|
||||
### 演变 ###
|
||||
|
||||
上面使用的命令在一个简单的列表中。从一个文本块做一个简单的列表,这个命令行又再次成为你的朋友。例如,我保存了一个相当filibustery[演讲][6]在澳大利亚参议院于2014年7月16日的文本文件议事录。将议事录分割成一个单词列表:
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/14.png)
|
||||
|
||||
And to look at word frequency in the speech:
|
||||
|
||||
现在看看讲话中的单词使用频率:
|
||||
|
||||
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/15.png)
|
||||
|
||||
### Coming soon... ###
|
||||
### 即将推出... ###
|
||||
|
||||
从多列的表中做'top 10'等排名,需要更多些的命令行工具。我将会在未来的文章中证明他们的用处。
|
||||
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://thelinuxrain.com/articles/top-10-fun-on-the-command-line
|
||||
|
||||
原文作者:Bob Mesibov(Bob Mesibov is Tasmanian, retired and a keen Linux tinkerer.)
|
||||
|
||||
译者:[disylee](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[1]:https://xato.net/passwords/more-top-worst-passwords/#.U8eD13AvDy0
|
||||
[2]:https://xato.net/passwords/how-i-collect-passwords/#.U8eEdnAvDy0
|
||||
[3]:http://www.rinkworks.com/words/letterfreq.shtml
|
||||
[4]:http://www.thelinuxrain.com/articles/building-a-gazetteer-table-from-kml-files
|
||||
[5]:https://zenodo.org/record/10481
|
||||
[6]:http://parlinfo.aph.gov.au/parlInfo/search/display/display.w3p;db=CHAMBER;id=chamber%2Fhansards%2F232fa1a8-d7e8-4b22-9018-1a99b5a96812%2F0025;query=Id%3A%22chamber%2Fhansards%2F232fa1a8-d7e8-4b22-9018-1a99b5a96812%2F0000%22
|
@ -0,0 +1,49 @@
|
||||
Linux FAQ -- 如何在CentOS或者RHEL上启用Nux Dextop仓库
|
||||
================================================================================
|
||||
> **问题**: 我想要安装一个在Nux Dextop仓库的RPM包。我该如何在CentOS或者RHEL上设置Nux Dextop仓库?
|
||||
|
||||
[Nux Dextop][1]是一个面对CentOS、RHEL、ScientificLinux的含有许多流行的桌面和多媒体相关的包的第三方RPM仓库(比如:Ardour,Shutter等等)。目前,Nux Dextop桌面对CentOS和RHEL 6/7可用。
|
||||
|
||||
要在CentOS或者RHEL上启用Nux Dextop,遵循下面的步骤。
|
||||
|
||||
首先,要理解Nux Dextop被设计与EPEL仓库共存。因此,你需要使用Nux Dexyop仓库前先[启用 EPEL][2]。
|
||||
|
||||
启用EPEL后,用下面的命令安装Nux Dextop仓库。
|
||||
|
||||
在 CentOS/RHEL 6.* 上:
|
||||
|
||||
$ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
|
||||
|
||||
在 CentOS/RHEL 7 上 :
|
||||
|
||||
$ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
|
||||
|
||||
现在验证Nux Dextop仓库是否已经成功安装:
|
||||
|
||||
$ yum repolist
|
||||
|
||||
![](https://farm6.staticflickr.com/5574/14790031847_90b4a829d7_z.jpg)
|
||||
|
||||
### 对于 Repoforge/RPMforge 用户 ###
|
||||
|
||||
据作者所说,Nux Dextop目前所知会与其他第三方库比如Repoforge和ATrpms相冲突。因此,如果你启用了除了EPEL的其他第三方库,强烈建议你将Nux Dextop仓库设置成“default off”(默认关闭)状态。就是用文本编辑器打开/etc/yum.repos.d/nux-dextop.repo,并且在nux-desktop下面将"enabled=1" 改成 "enabled=0"。
|
||||
|
||||
$ sudo vi /etc/yum.repos.d/nux-dextop.repo
|
||||
|
||||
![](https://farm6.staticflickr.com/5560/14789955930_f8711b3581_z.jpg)
|
||||
|
||||
当你无论何时从Nux Dextop仓库安装包时,显式地用下面的命令启用仓库。
|
||||
|
||||
$ sudo yum --enablerepo=nux-dextop install <package-name>
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://ask.xmodulo.com/enable-nux-dextop-repository-centos-rhel.html
|
||||
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[1]:http://li.nux.ro/download/nux/dextop/
|
||||
[2]:http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html
|
Loading…
Reference in New Issue
Block a user