2015年2月

Linux 与 Mac 用户至少有一个共同点:他们都不太喜欢用 Windows。但除了这点外,二者再也无法达成其他共识,只得分道扬镳。为什么 Mac 用户不选择 Linux 呢?是什么因素致使 Mac 用户做出了这种选择的?

Datamation 就此问题做了一番调查,并试图进行解答。Datamation 的结论是,所有原因都只归结于众多应用及工作流程,而非操作系统的关系:

…某些事例表明,尝试用新应用代替现有应用,并不是很实际 - 对工作流程和整体实用性来说都是如此。但不幸的是,苹果在这些方面做得非常好。因此,在几乎不可能改变这些事实的情况下,想要拉拢那些 Mac 忠实用户实在是很大的挑战。

不过老实来说,除了 Web 开发者,我还没见过 Mac 用户仅仅为了避免升级到 OS X Yosemite 而 “ en masse”(法语:共同,一起) 尝试变更他们的工作流程。诚然,经历过 Yosemite 更新后 - 考虑过权限的用户应该会发现这方面已经变得非常令人讨厌。并且,OS X 除了在 UI 方面的微小变化,几乎没有改变,针对现有 Mac 用户的核心工作流程也在最大程度上保持了原样。

但,我相信 Linux 在未来将会继续保持多样化特点。Linux 会继续成长,但绝不是经过精确计量般得一成不变。

我大体上同意 Datamation 关于应用和工作流程重要性的结论,在选择操作系统时这两方面是必须要考虑顾及的。但我认为对 Mac 用户来说,选择 Mac 有比这两方面更重要的因素。我相信是不同的心态造就了 Linux 和 Mac 用户,并且我认为这才是为什么 Mac 用户不选择 Linux 的真实原因。

控制权才是 Linux 用户最看重的地方

Linux 用户倾向于控制电脑上的所有细节,他们试图作出一切能做的努力使操作系统变成他们想要的样子。但这种方式并不适用于 OS X 以及其他任何苹果的产品。如果你使用了苹果的产品,就意味着绝大多数情况下,你只能按照苹果预先设定的模式来使用它们。

对 Mac(以及 iOS)用户来说这没什么,因为他们似乎并不在乎生活在苹果那围墙高筑的花园里,仅仅使用那些苹果给予他们的标准和选择。但这对绝大多数 Linux 用户来说是完全不能接受的。Linux 的新用户通常来自 Windows,正是从那里,他们开始厌恶那些告诉他们什么才叫操作系统,并试图限制操作系统权限的东西。

自从他们尝到使用自由的 Linux 系统所带来的甜头之后,他们就再也不会回到苹果或者微软的监牢里去了。即使在他们死后,把 Linux 从他们那冰冷僵硬的手指中撬出来,他们也不会接受苹果和微软为他们定制的操作系统。

但绝大部分 Mac 用户不会有这样的意志和决心。对他们来说当苹果升级 OS X 时放弃他们现有的习惯方式是非常容易的。在苹果那围墙高筑的花园里,即使他们不满意苹果的变化,他们也会迅速地接受。

因此,对控制权的渴望是 Mac 用户与 Linux 用户的最大不同。但我并未把它视为一个问题,尽管这反映出使用电脑的两类用户截然不同的态度。

Mac 用户离不开苹果的技术支持

Linux 用户与 Mac 用户的区别也体现在 Linux 用户并不介意亲自维护自己的电脑。虽然维护电脑及控制操作系统都是很大的责任,但 Linux 用户还是愿意独自承担,愿意通过自己的力量使他们的系统工作得更棒更有效率,并且深入了解操作系统是每一位 Linux 用户都乐衷的事情。

当 Linux 用户遇到问题时,他们会迅速地尝试自己来解决问题。如果这不奏效的话,他们会在网上搜索其他Linux用户的解决方案,并不断进行尝试,直到问题解决。

但 Mac 用户却不大会这样。这也许是为什么苹果零售店如此火爆、为什么如此多的 Mac 用户在拿到新 Mac 的时候会选择购买苹果维护服务的原因。Mac 用户会很轻易得带着 TA 的电脑去苹果零售店,走进天才吧并要求苹果的工作人员为其查看和修复电脑。

绝大多数 Linux 用户连想都不会想这种事情。谁会愿意让一个你都不认识的家伙碰你的电脑并维修它呢?

因此对 Mac 用户来说,很难抛弃过去可以从苹果那里得到的技术支持,转而使用 Linux。这种选择会令某些 Mac 用户觉得自己的电脑将变得非常脆弱、容易被攻击,他们如同离开母亲怀抱的婴儿般充满了无助感。

Mac 用户喜爱苹果的硬件

Datamation 发表的文章中主要研究了软件方面的原因,但我认为硬件因素同样对 Mac 用户有很大影响。绝大部分 Mac 用户非常喜爱苹果的硬件。TA 们购买 Mac 并不仅仅是为了 OS X。苹果那精美的工艺设计也是 Mac 用户购买时着重考虑的一点。Mac 用户愿意支付高价购买电脑,因为他们认为这样绝对是物有所值的。

另一方面,Linux 用户似乎并不会考虑这些东西。我认为他们更关注电脑的花费,而不太在意电脑的外观和设计。对他们来说,花费最少的金钱来获取尽可能好的硬件才是最重要的。他们并不像 Mac 用户一样热衷于电脑的外观,因此这一点并不是他们在购买电脑时考虑的地方。

我认为对于硬件的两种不同观点是没有高低之分的。这仅仅和用户的不同需求有关,仅仅会在他们购买电脑时影响他们,或者对某些 Linux 用户来说只是因为他们想要自己组装电脑而已。两种观点只是因为出发点不同、对于电脑的真正价值体现所在之处的理解不同罢了。

当然在 Mac 上运行 Linux 是可能的,直接运行或者间接地通过虚拟机运行。因此真心喜欢苹果硬件的 Mac 用户是可以选择在 Mac 上安装 Linux 的。

Linux 发行版太多了不知道选哪个?

另一个让 Mac 用户无法选择 Linux 的原因是:要从众多 Linux 发行版当中选择一个实在是太困难了。在大多数 Linuxer 并不抗拒的多元化发行版时代,没有相关知识的 Mac 用户会对如何选择感到十分困惑。

我认为,随着时间的推移,Mac 用户可以学习并找出最适合自己的发行版。但在短时间内,尤其是长时期得使用 OS X 之后,这是一个艰巨的任务。我不认为这个问题是无法克服的,但却有必要在这里提一下。

当然我们可以给大家提供资源,推荐参考 DistroWatch 还有我们的博客 Desktop Linux Reviews,这都有助于 Mac 用户找到适合的 Linux 发行版。再说一条,网上有很多诸如“最好的 Linux 发行版”等类似的文章,当 Mac 用户想要寻找适合自己使用的发行版时可以参考一下。

但有苹果顾客购买 Mac 的其中一个原因是苹果硬件软件协调统一起来的简便性和易用性。所以我不确定有多少 Mac 用户愿意花费时间找出适合自己的 Linux 发行版。也许是否要使用 Linux 确实会令TA们考虑一阵子了。

Mac 用户是苹果,Linux 用户是橘子

Mac 用户与 Linux 用户分道扬镳我认为并没有什么不妥。我认为我们只是在谈论两类完全不同的人群,这是一件好事,因为两类人群都在按自己喜欢的方式去使用操作系统和软件。让 Mac 用户和 Linux 用户各自沉浸在 OS X 和 Linux 中吧,希望他们都能高兴,都能对自己的电脑满意。

也许 Mac 用户会偶然走入 Linux 的世界并开始转向 Linux,但我认为绝大多数时候,两类人都愿意呆在不同的世界并不与对方接触。通常来说我并不会随意比较二者,尤其是你已经自己拿定主意的时候,况且这只不过是选苹果还是选橘子的问题罢了。


via: http://jimlynch.com/linux-articles/why-mac-users-dont-switch-to-linux/

作者:Jim Lynch 译者:Stevearzh 校对:Caroline

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

Postfix 3.0.0 正式版发布了,这次发布也标志着对其 2.8 版本的支持结束。

Postfix 2.x 系列从2003年开始发表,已经维护了十余年了。这次大版本跨越,带来了许多有趣的特性改进,主要如下:

  • 增加了SMTPUTF8 支持,支持使用国际化的域名和本地地址部分,它们由 RFC 6530 及相关文档定义(即支持类似这样的邮件地址: 商务@公司.中国,支持@技术.翻墙)。该实现是基于由 CNNIC 赞助的 Arnt Gulbrandsen 所提供的代码的。SMTPUTF8 的支持还在持续开发中, 预计会在 3.1 中完成。参见 SMTPUTF8\_README 。
  • 支持 Postfix 使用动态链接库和数据库插件。参见 INSTALL 查看可用选项的描述。
  • 由于 3.0 和2.x 系列的一些默认值不同,因此 Postfix 提供了一种安全网机制(compatibility\_level),可以用来兼容老版本的 2.x 设置。参见 COMPATIBILITY\_README 了解更多细节。
  • 支持对多个查询表的复合查询。如 pipemap:{map1,map2...} 支持多个查询表以管道方式连接起来(即前一个查询表的结果作为后一个查询表的查询条件);而 unionmap:{map1,map2,...} 会将同样的查询发送到多个查询表,并将结果联合起来返回。
  • 支持简单的伪查询表。如 inline:{key1=value1,key2=value2,...} 可以用于替代只有几个值的外部文件查询;而 randmap{value1,value2,...} 则可以从几个特定值内随机选择一个。
  • 支持对DNS 查询结果和投递状态代码和信息的查表转换。典型的,可以使用 PCRE 表来修复 DNS 查询的错误或投递错误信息。参见 smtp\_dns\_reply\_filter、 smtp\_delivery\_status\_filter 和 similarly-named 等参数。
  • 配置文件支持三元操作符,如 ${name?{iftrue}:{iffalse}};比较操作符,如 ${{expr1}==${expr2}?{iftrue}:{iffalse}};对每个过滤器/策略服务器指定超时及其它设置; master.cf 参数支持空格,输入和输出的环境变量可以包含空格,静态表查询结果可以包含空格;对 accsess(5)和 header/body\_checks(5) 的多表查询支持预期在 3.1 版本完成。
  • 入站邮件会话的命令交互情况按照会话进行记录。例如,一个暴力攻击密码的机器人会记录为: "disconnect from name[addr] ehlo=1 auth=0/1 commands=1/2",这代表着该客户端发送了一个成功的 EHLO 命令,而 AUTH 命令失败,并且没有 QUIT 即断开会话了。这些信息有助于你从大量日志中梳理出问题脉络。

更多细节信息可以参阅发布公告,及源代码中附带的 README\_FILES、INSTALL 等文档。

Postfix 3.0.0 下载地址: <ftp://mir1.ovh.net/ftp.postfix.org/postfix-release/index.html> (或选择其他的镜像)。

据 Tomcat 安全组确认,Tomcat 全系列产品均被发现严重安全漏洞:CVE-2014-0227 请求夹带漏洞。

级别:严重

受影响版本:

  • Apache Tomcat 8.0.0-RC1 to 8.0.8
  • Apache Tomcat 7.0.0 to 7.0.54
  • Apache Tomcat 6.0.0 to 6.0.41

描述:可以通过构造一个截断请求而在请求数据中夹带一个新的请求。

解决方案

升级到最新版本:

  • 升级到 Apache Tomcat 8.0.9 及其以上
  • 升级到 Apache Tomcat 7.0.55 及其以上
  • 升级到 Apache Tomcat 6.0.43 及其以上(6.0.42 包含了该修复,但是并未发布)

你在准备一场演讲的时候,脑海可能会先被图文并茂、形象华丽的演示图稿所占据。诚然,没有人会否认一份生动形象的演讲稿所带来的积极作用。然而,并非所有的演讲都需要TED Talk的质量。更多时候,演讲稿只为传达特定的信息。 而这个,使用文本信息足以完成。在这种情况下,你的时间可以更好的花在信息的搜集和核实上面,而不是在谷歌图片搜索(Google Image)上寻找好看的图片。

在Linux的世界里,有几个不同的方式供你选择来做演讲。比如带有大量多媒体展示、视觉冲击效果极佳的Impress.js,专为LaTex用户提供的Beamer,等等。而如果你苦于寻找一种简单的方式来创建并且展示文本演示稿,mdp 就能帮你实现。

什么是Mdp?

mdp是Linux下一款基于ncurses的命令行演示工具。我喜欢mdp在于它对markdown的支持,使得我很容易以熟悉的markdown格式来创建幻灯片。自然,它还可以很轻松地用HTML格式来发布幻灯片。另一个好处是它支持UTF-8字符编码,这让非英语字符(如希腊或西里尔字母)的展示也变得很方便。

在Linux中安装Mdp

mdp的依赖需求很少(如 ncursesw),这使得安装非常简单。

Debian、Ubuntu或者它们的衍生版

$ sudo apt-get install git gcc make libncursesw5-dev
$ git clone https://github.com/visit1985/mdp.git
$ cd mdp
$ make
$ sudo make install 

Fedora或者CentOS/RHEL

$ sudo yum install git gcc make ncurses-devel
$ git clone https://github.com/visit1985/mdp.git
$ cd mdp
$ make
$ sudo make install 

Arch Linux

Arch Linux可以通过AUR轻松安装mdp。

在命令行中创建演示稿

安装mdp完毕,你可以使用你喜欢的文本编辑器来轻松创建一个演示稿。如果你熟悉markdown的话,很快就可以驾驭mdp。而对于那些不熟悉markdown的人来说,学习mdp最好的方式就是从一个实例着手。

这里有一份6页的演示稿样本可供参考。

%title: Sample Presentation made with mdp (Xmodulo.com)
%author: Dan Nanni
%date: 2015-01-28

-> This is a slide title <-
=========

-> mdp is a command-line based presentation tool with markdown support. <-

*_Features_*

* Multi-level headers
* Code block formatting
* Nested quotes
* Nested list
* Text highlight and underline
* Citation
* UTF-8 special characters

-------------------------------------------------

-> # Example of nested list <-

This is an example of multi-level headers and a nested list.

# first-level title

second-level
------------

- *item 1*
    - sub-item 1
        - sub-sub-item 1
        - sub-sub-item 2
        - sub-sub-item 3
    - sub-item 2

-------------------------------------------------

-> # Example of code block formatting <-

This example shows how to format a code snippet.

    1  /* Hello World program */
    2
    3  #include <stdio.h>
    4
    5  int main()
    6  {
    7     printf("Hello World");
    8     return 0;
    9  }

This example shows inline code: `sudo reboot`

-------------------------------------------------

-> # Example of nested quotes <-

This is an example of nested quotes.

# three-level nested quotes

> This is the first-level quote.
>> This is the second-level quote
>> and continues.
>>> *This is the third-level quote, and so on.*

-------------------------------------------------

-> # Example of citations <-

This example shows how to place a citation inside a presentation.

This tutorial is published at [Xmodulo](http://xmodulo.com)

You are welcome to connect with me at [LinkedIn](http://www.linkedin.com/in/xmodulo)

Pretty cool, huh?

-------------------------------------------------

-> # Example of UTF-8 special characters <-

This example shows UTF-8 special characters.

ae = ä, oe = ö, ue = ü, ss = ß
alpha = ?, beta = ?, upsilon = ?, phi = ?
Omega = ?, Delta = ?, Sigma = ?

???????????
?rectangle?
???????????

在命令行中展示演示稿

当你把以上代码保存为slide.md的文本文件后,你可以运行以下命令来展示演示稿:

$ mdp slide.md 

你可以通过按键 回车/空格/下翻页/向下光标键 (下一张幻灯)、回退/上翻页/向上光标键 (上一张幻灯)、Home (幻灯首页)、 End (幻灯末页)或者 数字N (第N页幻灯)来操作你的演示稿。

演示稿的标题将在每页幻灯的顶部展示,而你的名字和页码则会出现在幻灯的底部。

这是嵌套列表和多层次标题的实例效果。

这是代码片段和内联代码的实例效果。

这是嵌套引用的实例效果。

这是放置引文的实例效果。

这是UTF-8编码特殊字符支持的实例效果。

总结

在本教程中,我演示了在命令行中如何使用mdp来创建并且展示一个演示稿。mdp的markdown兼容性让我们省去了学习其它新格式的麻烦,这相对于另一种名为tpp的演示工具来说是一个优势。拘于mdp的局限性,它可能无法作为你的默认演示工具。但是,值得肯定的是它一定能在某个场合下派上用场。你觉得mdp怎么样呢?你还喜欢其它的什么东西吗?


via: http://xmodulo.com/presentation-command-line-linux.html

作者:Dan Nanni 译者:soooogreen 校对:wxy

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

Go (也叫 "golang")是一款由Google最初开发的编程语言。它自诞生就有几个设计原则:简单性、安全性和速度。Go语言发行版拥有各种调试、测试、调优和代码审查工具。如今Go语言和它的工具链在大多数Linux发行版的基础仓库都可用,用默认的包管理器就可以安装。

在Ubuntu、Debian 或者 Linux Mint上安装Go语言

下面是在基于Debian的发行版上使用apt-get来安装Go语言和它的开发工具。

$ sudo apt-get install golang

检查Go语言的版本来验证安装。

$ go version

go version go1.2.1 linux/amd64

根据你的需要,你或许想要使用apt-get安装额外的Go工具。

$ sudo apt-cache search golang

在Fedora、CentOS/RHEL中安装Go语言

下面的命令会在基于Red Hat的发行版中安装Go语言和它的工具。

$ sudo yum install golang

检查Go语言的版本来验证安装。

$ go version 

go version go1.3.3 linux/amd64

根据你的需要,你或许想要使用yum安装额外的Go工具。

$ yum search golang 

从官网安装Go语言

有时发行版中的go语言版本并不是最新的。为了避免这种情况,你可以从官网安装最新的Go语言。下面是步骤。

进入Go语言的官方源码,并下载预编译二进制代码。

对于64位Linux:

$ wget https://storage.googleapis.com/golang/go1.4.1.linux-amd64.tar.gz

对于32位Linux:

$ wget https://storage.googleapis.com/golang/go1.4.1.linux-386.tar.gz

在/usr/local下安装程序

$ sudo tar -xzf go1.4.1.linux-xxx.tar.gz -C /usr/local

在/etc/profile中添加系统范围的PATH环境变量。

$ sudo vi /etc/profile 

export PATH=$PATH:/usr/local/go/bin

如果你在/usr/local之外的自定义位置中安装了Go,你同样需要设置GOROOT环境变量来指向自定义的安装位置。

$ sudo vi /etc/profile

export GOROOT=/path/to/custom/location

检查Go语言的版本

$ go version

go version go1.4.1 linux/amd64

via: http://ask.xmodulo.com/install-go-language-linux.html

译者:geekpi 校对:Caroline

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

如果你是一个享受linux终端的系统管理员,但同样需要一种方法来安排每天最重要的任务、约会和会议,你会发现calcurse是一个很有用的工具。calcurse包含了日历、一个待办事项管理、一个调度程序和一个可配置的通知系统,这些都集成进了一个软件中,基于的都是ncurse的接口。同时,它不会限制你在终端中,你可以将你的日历和笔记导出成可以打印的格式。

本篇文章我们会探索如何在Linux上安装calcurse,并且教你如何利用它的特性。

在Linux上安装Culcurse

calcurse在大多数Linux发行版的标准仓库都有。万一在你的发行版上没有(比如CentOS/RHEL),只要你安装了gcc和ncurse开发文件后就可以很简单地从源码安装。

Debian、Ubuntu或者Linux Mint

# aptitude install calcurse

Fedora

# yum install calcurse

CentOS/RHEL

# yum install gcc ncurses-devel
# wget http://calcurse.org/files/calcurse-3.2.1.tar.gz
# tar xvfvz calcurse-3.2.1.tar.gz
# cd calcurse-3.2.1
# ./configure
# make
# make install 

启动 Calcurse

安装完成后,你就可以用下面的命令启动calcurse了:

$ calcurse 

你将会看到下面的空白界面。如果这配色不吸引你,你可以以后换一个。

我们现在可以按下回车-‘q’- 再次按下回车- ‘y’来退出主界面。这个按键序列激活界面底部的主菜单,并告诉它保存当前的笔记并确认退出。

我们第一次运行 calcurse 时,会在主目录创建如下子目录:

这里是每一个子目录的简要描述:

  • apts文件包含了用户所有的约会和事项,todo文件包含了所有的待办事项 列表。
  • conf文件,如你所想的那样,包含当前用户的独立设置。
  • keys文件包含了用户定义的按键绑定(比如:q或者Q退出,x或者X导出内容等等)。
  • notes子目录你会看到包含了笔记描述的文件,这些笔记你可以附到任何一个安排事项中。

改变配色

要改变配色,按照下面的步骤:

使用最后一幅图的按键绑定来选择前景色和背景色配置,以更好地适应你的需求:

添加约会和待办任务

在前面的选项卡中浏览命令菜单时,我们看到按下‘o’可以从一个菜单跳到下一个菜单。我们可以把第二个菜单作为安排编辑菜单

那么我们用Ctrl + A 和 Ctrl + T组合键为今天添加一个新的约会和一个新的待办任务。如果我们希望为约会指定一个具体的日期而不是今天,我们可以在添加约会和待办事项前使用Ctrl + L (+1 天)、Ctrl + H (-1 天)、Ctrl + J (+1 周)和Ctrl + K (-1 周)组合键。

添加待办任务的步骤是相似的,只是用Ctrl + T,之前已经解释了:

你还会被要求输入一个优先级,这样待办任务就会显示在主页上了:

你现在可以验证待办任务和约会已经相应地添加到了.culcurse文件夹下的todo和apts文件中了:

注意你可以使用你最喜欢的编辑器或者菜单底部的calcurse屏幕来编辑这些文件。你可以按下TAB来在不同的面板间切换,并选择你想要编辑的项目:

为事项设置通知

你可以在通知菜单下配置通知。按照相同的步骤来改变配色方案,但是选择Notify而不是Colour

假设你想要设置email通知。按下数字5来编辑notify-bar\_command的值:

按照上面的设置之后,如果这个任务被标为重要,那么root@localhost会在300秒(或者5分钟)后收到邮件通知,这会发生在下一个安排的任务之前。如果你想要即使calcurse不在运行也启用这个功能,那么将notify-daemon\_enable设成yes。在本例中,dev2是本机的主机名。

请注意出于演示目的,我已经在这篇教程中改变了原始约会的开始和/或者结束时间。

总结

本篇教程中我们展示了如何设置一个多样化的调度器和提醒器来帮助你组织每日的活动和提前安排重要的事项。你或许还要看看calcurse的PDF 手册,请随意在下面的评论中提出你的疑问。欢迎你的评论,我也很高兴看到这些。


via: http://xmodulo.com/schedule-appointments-todo-tasks-linux-terminal.html

作者:Gabriel Cánepa 译者:geekpi 校对:wxy

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